Является ли проблемой временно иметь одинаковый UUID для двух разделов?

Следуя инструкциям, приведенным в разделе " Переместите установку Linux на новый твердотельный накопитель - даже меньший", я застрял сразу после пункта "9". где я скопировал UUID sdb6 (файловая система работающей Ubuntu на HDD) на sda1 (хочу новую файловую систему на SSD), используя tune2fs.

Хотя я пытаюсь освободиться...(скоро я напишу об этом), проблема в том, чтобы запустить систему, имея один и тот же UUID на двух разделах?

Если это так, учитывая также, что я не знаю исходный UUID раздела sda1, можно ли было бы его просто изобрести, например, изменив символ UUID?

Системная информация Ubuntu 16.04

$ fdisk -l

Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
...
Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 225282211 225280164 107.4G 83 Linux


Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
...
Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1            2048 318919887 318917840 152.1G  7 HPFS/NTFS/exFAT
/dev/sdb2       318920702 976771071 657850370 313.7G  5 Extended
/dev/sdb5       960151552 976771071  16619520   7.9G 82 Linux swap / Solaris
/dev/sdb6       318920704 960151551 641230848 305.8G 83 Linux

1 ответ

Решение

Некоторые системные инструменты ссылаются на разделы по номерам UUID. Это часто встречается в /etc/fstab, например; разделы идентифицируются для монтажа по их номерам UUID, а не каким-либо другим способом. Таким образом, дубликаты номеров UUID могут вызвать путаницу и несогласованность - при одной загрузке может быть смонтирован один раздел; но при другом монтировании другой раздел может быть смонтирован. Это может создать проблемы, если файлы в этом разделе будут изменены, как, вероятно, в большинстве разделов.

Вы можете узнать, какой UUID раздел использует через blkid команда:

$ sudo blkid /dev/sdc3
/dev/sdc3: UUID="5028fa50-0079-4c40-b240-abfaf28693ea" TYPE="ext4" PARTLABEL="Xubuntu /boot" PARTUUID="74ed9e82-2e96-4a12-89e0-e0563c296a08"

Этот пример показывает, что /dev/sdc3 имеет UUID 5028fa50-0079-4c40-b240-abfaf28693ea.

Вы можете изменить UUID с помощью различных инструментов, специфичных для файловой системы. Для ext2/3/4fs этот инструмент называется tune2fs, и вы передаете это -U возможность изменить UUID. Однако вам потребуется новый UUID, и вы можете сгенерировать его с помощью uuidgen инструмент, который вы можете вызвать как часть вызова tune2fs:

$ sudo tune2fs -U $(uuidgen) /dev/sdc3

Вам нужно изменить идентификатор устройства (/dev/sdc3 в этом примере) для вашей системы, конечно.

Если ваш раздел использует файловую систему, отличную от ext2/3/4fs, вам потребуется использовать инструмент, отличный от tune2fs, такие как xfs_admin для XFS или btrfstune для Btrfs.

Если раздел монтируется в /etc/fstabидентифицируется UUID в grub.cfg файл или иная ссылка, вам может потребоваться изменить этот файл конфигурации после внесения изменений.

Если вам нужно изменить UUID для разделов NTFS, это немного по-другому:

На самом деле это очень хорошее решение для этой ветки форума Ubuntu.


Для разделов NTFS это полный список шагов, которые я сделал (все прошло хорошо, и данные для меня не пропали):

Всегда сохраняйте резервную копию раздела, который вы собираетесь редактировать.

blkid чтобы проверить существующие UUID вашего раздела с помощью, FYI, это мой вывод, обратите внимание на UUID для дальнейшего

/dev/sdd1: LABEL="EXT-HD-JS" 
TYPE="ntfs" 
UUID="983C4B493C4B221C" 
PARTUUID="0021f320-01"

mount | grep "/dev/sdd1" Убедитесь, что ваш раздел не смонтирован!

Теперь мы устанавливаем hexeditor, копируем 512-байтовые данные суперблока в ваш домашний пользователь и редактируем данные:

sudo apt install ncurses-hexedit
sudo dd if=/dev/sdd1 of=~/superblock1 bs=512 count=1
sudo hexeditor ~/superblock1

Посмотрите на байты от 0x48 до 0x4f: 1C 22 4B 3C 49 4B 3C 98

Это байты в обратном порядке, поскольку UUID отображается с blkid

Изменить начало на 1D (минимальные изменения всегда лучше)

Выйдите из гекседитора с помощью Ctrl+X, введите enter, чтобы сохранить под тем же файлом.

Затем мы копируем обратно данные суперблока с измененным UUID, перезагружаемся и снова проверяем UUID:

sudo dd if=~/superblock1 of=/dev/sdd1 bs=512 count=1
sudo reboot now
blkid
Другие вопросы по тегам