Является ли проблемой временно иметь одинаковый 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