У меня есть гостевая ОС fedora в VMware. Я хочу расширить /boot
раздел, поэтому я добавляю другой виртуальный диск к этой виртуальной машине и пытаюсь клонировать диск.
После dd if=/dev/sda1 of=/dev/sdb1
этого blkid
сообщите, что / dev / sda1 и / dev / sdb1 имеют одинаковый UUID / GUID.
Странно, что в юниверсе есть 2 одинаковых UUID. Как изменить одно из них на другое значение UUID?
Обновление 2017-01-25
Тема изменена, здесь UUID означает UUID файловой системы, а не UUID раздела.
Поскольку это UUID файловой системы, утилиты, специфичные для файловой системы, необходимы для изменения UUID или использования hexeditor для изменения необработанных данных на диске ( ОПАСНО, не рекомендуется, если вы не знаете, что делаете ).
linux
filesystems
cloning
uuid
LiuYan 刘 研
источник
источник
Ответы:
Чтобы сгенерировать случайный новый UUID, можно использовать:
Фактическое изменение UUID зависит от файловой системы.
Предполагая файловую систему ext-family
Или, если вы уверены, что uuidgen будет работать:
Предполагая файловую систему btrfs
UUID хранится в суперблоке, поэтому побайтная копия файловой системы будет иметь тот же UUID.
источник
Использование:
если это файловая система ext , или
если это файловая система XFS .
Причина, по которой второй раздел имеет такой же UUID, заключается в том, что
dd
просто копирует данные из одного файла в другой (dd if=/dev/sda1 of=/dev/sdb1
=cat /dev/sda1 > /dev/sdb1
);dd
не знает, что такое раздел или как генерировать UUID, поэтому он просто скопировал все данные, как есть, включая UUID, который хранится в суперблоке filysystem рядом с началом раздела.Кстати,
я также думаю, что UUID (Universally Unique IDentifier) - странное имя. Он должен называться PGUID (возможно, глобально уникальный идентификатор) или, что еще лучше, просто ARLN (достаточно большое число).
источник
Помимо ext2 / ext3 / ex4 и xfs, вы также можете изменить UUID следующей файловой системы или блочного устройства.
Поменять местами
swaplabel -U $NEW_UUID
Программный RAID (MD Raid)
Для MD RAID необходимо сначала остановить RAID, а затем обновить UUID при повторной сборке. Поэтому, если ваш RAID-массив подключен
/
, вам нужно обновить UUID в автономном режиме - для этого используйте live CD.mdadm --stop $RAID_DEVICE
mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...
Пример:
mdadm --stop /dev/md127
mdadm --assemble /dev/md127 --update=uuid --uuid=2A1D2A1D-2A1D-2A1D-2A1D-2A1D2A1D2A1D /dev/sda2 /dev/sdb2
После обновления UUID вам может потребоваться обновить
grub.cfg
(rd.md.uuid=$NEW_UUID
вlinux/linuxefi/linux16
командной строке) и / илиfstab
и / или /mdadm.conf
и / илиupdate-initramfs
(семейство Debian), и / илиdracut --force
(семейство Red Hat), чтобы вы могли успешно загрузиться в следующий раз.ЛУКС (cryptsetup)
cryptsetup luksUUID --uuid=$NEW_UUID $LUKS_DEVICE
Пример:
cryptsetup luksUUID --uuid=e0c0e0c0-e0c0-e0c0-e0c0-e0c0e0c0e0c0 ~/encrypted-LUKS.loop
FAT / NTFS / exFAT
Это другая история здесь,
в настоящее время нет утилит для изменения UUID файловой системы этих файловых систем.(См . Ответ Рейххарта -mlabel
инструмент), но мы можем изменить необработанные данные на диске, чтобы сделать это.ВНИМАНИЕ, изменять необработанные данные на диске опасно, и они могут быть потеряны без тщательной эксплуатации.
Вот подробные шаги, чтобы изменить необработанные данные на диске, используя
hexedit
.blkid
Запишите UUID файловой системы на бумаге или запомните. Строка UUID в FAT / exFAT выглядит так1122-3344
, как выглядит строка UUID в NTFS1122334455667788
.Открыть раздел устройства с помощью hexedit
hexedit <partition device such as /dev/sda1>
blkid
сообщается1234-ABCD
, затемCDAB3412
выполните поиск) для поиска данных UUID на диске.blkid
проверить UUID.grub.cfg
и / илиfstab
загрузка в следующий раз.fsck <partition device such as /dev/sda1>
и увидите сообщение «Есть различия между загрузочным сектором и его резервной копией» . Чтобы решить эту проблему, выберите «1) Копировать оригинал в резервную копию» , и, если вас спросят «Выполнить изменения? (Да / нет)» , нажмите y.источник
mkfs.exfat -i 01234567 /dev/partitionname
гдеmkfs.exfat
команда была установлена пакетом exfat-utils в Fedora Linux. Может быть, вы должны добавить это к своему ответу, так как вариант hexedit довольно опасен!ntfslabel
инструмент. askubuntu.com/questions/642591/…Для XFS используйте:
xfs_admin -U <uuid> <device>
Используйте
xfs_admin -u <device>
для просмотра UUID (обратите внимание на строчную букву для просмотра, в отличие от прописной). В другом посте на U & L была указанаblkid
команда для просмотра всех или некоторых UUID в системе.источник
Частичный ответ для VFAT
Для файловых систем ext * и xfs уже есть хорошие ответы. Но для VFAT я настоятельно рекомендую использовать mlabel из пакета mtools. Использование шестнадцатеричных редакторов ОПАСНО.
Используйте что-то вроде этого, чтобы создать новый UUID:
источник
mlabel -n -i /dev/sdb3 ::
BTRFS
Запуск
btrfsck
рекомендуется, потому что изменение UUID в BTRFS не является атомарной операцией.источник
Для NTFS проверьте эту тему для деталей.
Резюме:
источник
В Fedora 27 я обнаружил, что порядок аргументов играет решающую роль ... Сначала вы должны написать устройство, иначе UUID не изменится. Например
источник
-U
передdevice
.Чтобы изменить команду dd, в результате получился дублированный раздел диска UUID / s - используйте GParted.
В пользовательском интерфейсе GParted выберите диск, выберите раздел, размонтируйте раздел. В «Папке разделов» выберите «Новый UUID», повторяйте, пока все дублированные разделы диска uuid / s не будут помечены для замены. Для загрузочных дисков не заменяйте UUI раздела UEFI.
Просмотрите выбранную букву диска и раздел / ы - Все в порядке? ...
Нажмите значок «Применить все операции» в пользовательском интерфейсе GParted.
Для загрузочных дисков отредактируйте файл / etc / fstab UUID = string / s и точку монтирования / s .:
источник