Вопрос: Изменить UUID раздела vfat


Как изменить UUID vfat раздел? Для ext2/ext3/ext4 это делается с помощью простого

tune2fs -U <new-uuid> /dev/<partition>

Есть ли аналогичная команда для vfat перегородки?


4
2017-09-06 16:44


Источник




Ответы:


Возможно, было бы полезно узнать, почему вы хотите это сделать. Я не знаю, как сделать то, что вы хотите, но могут быть другие варианты.

Технически разделы 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«s -c вариант, который очень похож на -u, но принимает имя, а не GUID.


3
2017-09-07 18:11



Сервисный номер устройства vfat можно изменить с помощью команды mlabel Исспользуя, - liquidat


Идентификатор объема 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


7
2018-02-14 12:30



это восхитительно! Это особенно удобно, если вы хотите обменять внешнюю микро-SD-карту на Android-устройство и хотите, чтобы новый соответствовал тому же пути, что и старый. - therealmarv
Обратите внимание, что для томов FAT12 / FAT16 смещение составляет 39, а не 67! Это может произойти, если ваш раздел действительно небольшой (мой был 256M microSD). Вы можете сделать проверку работоспособности, если вы сравните показания с помощью ddс выходом blkid прежде чем пытаться записать в свой раздел. - Ruslan