Как изменить UUID раздела vfat
? Для ext2/ext3/ext4
это делается с помощью простого
tune2fs -U <new-uuid> /dev/<partition>
Есть ли подобная команда для разделов vfat
?
Как изменить UUID раздела vfat
? Для ext2/ext3/ext4
это делается с помощью простого
tune2fs -U <new-uuid> /dev/<partition>
Есть ли подобная команда для разделов vfat
?
Идентификатор тома FAT32 хранится в первом секторе со смещением 67 (0x43), для FAT16 он равен 39 (0x27). Для чтения можно использовать команду dd
(замените /dev/sdc1
реальным разделом):
dd bs=1 skip=67 count=4 if=/dev/sdc1 2>/dev/null \
| xxd -plain -u \
| sed -r 's/(..)(..)(..)(..)/\4\3-\2\1/'
И, конечно же, можно также сохранить новый UUID (замените 1234-ABCD
на желаемое значение):
UUID="1234-ABCD"
printf "\x${UUID:7:2}\x${UUID:5:2}\x${UUID:2:2}\x${UUID:0:2}" \
| dd bs=1 seek=67 count=4 conv=notrunc of=/dev/sdc1
Ссылка: физическая структура FAT (смещение серийного номера тома): https://technet.microsoft.com/en-us/library/cc776720(v=ws.10).aspx#w2k3tr_fat_how_gkxz
Может быть полезно знать, почему вы хотите это сделать. Я не знаю инструмента, чтобы делать то, что вы хотите, но могут быть и другие варианты ....
Технически разделы FAT не имеют UUID; у них есть серийные номера, которые могут использоваться несколькими инструментами и файлами Linux (такими как mount
и /etc/fstab
) вместо UUID. На GPT-дисках разделы, содержащие файловые системы FAT, имеют GUID, которые (в достаточно недавних дистрибутивах Linux) могут называться PARTUUID в mount
и /etc/fstab
. И файловые системы FAT, и (на GPT-дисках) разделы, которые их содержат, также могут иметь имена, которые также могут использоваться mount
или в /etc/fstab
. Любая из этих функций может использоваться вместо серийного номера FAT.
Хотя я не знаю инструмента для изменения серийных номеров разделов FAT, их можно установить, когда файловая система создается с помощью параметра -i
для mkdosfs
, например:
mkdosfs -i ABCD1234 /dev/sdc1
В этом примере для серийного номера /dev/sdc1
значение ABCD-1234. Если файловая система достаточно мала, вы можете создать ее резервную копию, создать новую файловую систему с нужным серийным номером и восстановить ее. Если вы пытаетесь установить серийный номер как часть сценария установки диска или установки, возможно, вам понадобится установить его с помощью mkdosfs
.
Вы можете изменить GUID раздела с помощью gdisk
или sgdisk
. Используя последнее, вы выполняете работу с помощью опции -u
, как в:
sgdisk -u 1:BC87D91A-02F3-4C52-87CD-536A3DF2A074 /dev/sdc
В этом примере для GUID /dev/sdc1
значение BC87D91A-02F3-4C52-87CD-536A3DF2A074. (Обратите внимание, что -u
принимает разделенный двоеточиями набор параметров, первый из которых - номер раздела, а второй - значение GUID. Имя файла устройства для всего диска [ не раздела] является окончательным вариантом.)
В зависимости от ваших потребностей, один из этих подходов может работать. Двигаясь дальше, вы можете установить метку файловой системы с помощью инструмента dosfslabel
; или вы можете изменить имя раздела GPT с помощью опции sgdisk
-c
, которая работает так же, как -u
, но принимает имя, а не GUID.