4

Я запускаю Debian Wheezy самостоятельно на своем ПК и недавно скопировал корневой раздел на другой с помощью rsync, поскольку обнаружил, что он работает хорошо (я также знаю о dd и ddrescue, но они оставляют неиспользуемое пространство в новом разделе). Я сгенерировал новый случайный UUID для нового раздела с помощью sudo tune2fs -U random /dev /hda9, а также обновил записи fstab / и / home.

Тогда, поскольку я так мало знаю о GRUB, я использовал графический интерфейс пользователя (GRUB Customizer) для поиска новой ОС и добавления записи в GRUB, а MBR -it делает запись /etc/grub.d, затем обновляет GRUB.

При запуске список GRUB содержит новую ОС (на sda9), но он загружает первую ОС (которую я скопировал из -sda5).

/boot/grub/grub.cfg содержит новую ОС Debian, но выглядит это так

set root='(hd0,msdos9)'  
search --no-floppy --fs-uuid --set=root 64662470-0e58-4dfd-90ac-43227d773556  
linux /boot/vmlinuz-3.2.0-2-amd64 root=UUID=cc3bca0d-aee4-4b9c-95c2-57212cc36d4d ro quiet  
initrd /boot/initrd.img-3.2.0-2-amd64

1-й UUID sda9, но 2-й UUID sda5. Я могу изменить 2-й uuid при запуске (с E), и он загружает sda9.
Итак, как я могу исправить grub.cfg, чтобы запись sda9 GRUB постоянно загружалась из sda9?

3 ответа3

3

Просто отредактируйте /boot/grub/grub.cfg/ и замените UDID sda5 на sda9:

search --no-floppy --fs-uuid --set=root 64662470-0e58-4dfd-90ac-43227d773556  
linux /boot/vmlinuz-3.2.0-2-amd64 root=UUID=64662470-0e58-4dfd-90ac-43227d773556 

Чтобы избежать ошибок такого типа в будущем, запустите update-grub из системы, которую вы хотите использовать. Если вы запустите его со старой ОС, он подберет текущий корневой раздел и установит grub.cfg для загрузки с него.

0

Мне пришлось удалить /boot/grub/menu.lst (сначала нужно сделать резервную копию), а затем update-grub сказать «да» для создания нового. Затем он обнаружил правильный UUID раздела для загрузки.

0

Когда вы запускаете update-grub из sda5 он читает /boot/grub/grub.cfg из sda9 который был скопирован из sda5 . Сначала загрузитесь в sda5 который является вашей основной ОС. Затем используйте эти команды для исправления:

SourceUUID=cc3bca0d-aee4-4b9c-95c2-57212cc36d4d
TargetUUID=64662470-0e58-4dfd-90ac-43227d773556
sudo mkdir /mnt/clone
sudo mount -t auto -v /dev/sda9 /mnt/clone
sudo sed -i "s/$SourceUUID/$TargetUUID/g" /mnt/clone/boot/grub/grub.cfg
sudo update-grub
sudo umount /mnt/clone -l

Я основал этот ответ на клоне Ubuntu 16.04 LTS для нового скрипта раздела.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .