Изменить UUID под Linux?

2200
goangit

Мне нужно создать и назначить новый UUID для обычного раздела диска под Linux.

Какие инструменты доступны и как их использовать?

3
Вам нужно изменить UUID _partition_ (by-partuuid) или _filesystem_ (by-uuid)? grawity 9 лет назад 0

1 ответ на вопрос

2
goangit

Those working with ordinary disks can do this simply with tune2fs and uuidgen.

Example: using a not currently mounted device /dev/sdb1

tune2fs /dev/sdb1 -U `uuidgen` 

The new UUID will be immediately visible under

ls -l /dev/disk/by-uuid 

if, say, you need to copy the value to /etc/fstab for automatic mount.

However, blkid will continue to (erroneously) report the old value until the cache is updated (on reboot, for example; though the cache may be bypassed with sudo blkid -c /dev/null).

Alternatively, the new UUID may be obtained via udev with

sudo lsblk -fo UUID /dev/sdb1 

Those working with LVM disks might like to check the answer here.

Так что это метка для файловой системы? tune2fs работает для ext2 / 3/4, или другие файловые системы даже имеют / используют идентификаторы блоков? Xen2050 9 лет назад 1
Это хороший вопрос, который я не рассматривал. Файловая система, которую я имел в виду при написании, действительно ext4, но я, безусловно, открыт для ответов по другим контекстам файловой системы. goangit 9 лет назад 0
Да, многие файловые системы имеют уникальные идентификаторы (хотя они не всегда в формате UUID). Используйте `tune2fs -U` для ext; `xfs_admin -U` для xfs; `jfs_tune -U` для JFS; `ntfslabel --new-serial` для NTFS и так далее. (Я думаю, что btrfs может не позволить изменить UUID, поскольку он широко используется внутри.) Аналогично, разделы GPT и тома LVM имеют свои собственные уникальные идентификаторы. (Первый называется «PARTUUID» и его можно увидеть в «by-partuuid».) grawity 9 лет назад 2
Что касается `blkid`, он работает путем чтения непосредственно с диска, и из-за этого ему необходимо кэшировать извлеченную информацию в месте, доступном для обычных пользователей. Вы можете обойти кеш, используя `blkid -c / dev / null` от имени root. Однако лучше использовать такие инструменты, как `lsblk -f`, который запрашивает автоматически обновляемый кеш udev. grawity 9 лет назад 1
Спасибо за понимание кеша `blkid`, высоко ценится. Ответ обновлен, чтобы отразить этот вклад. goangit 9 лет назад 0

Похожие вопросы