Как исправить UUID в Grub после восстановления с другой машины?

Я хочу восстановить полную резервную копию tar Ubuntu 12.04 со всеми моими настройками, документами, установленным программным обеспечением и т. Д. На другом компьютере.

Я сделал резервную копию с помощью следующих команд:

sudo su
cd /
tar cvpzf ububackup.tgz --exclude=/ububackup.tgz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/tmp --exclude=/media /

На новом компьютере я сделал новую установку Ubuntu 12.04, переместил на нее файл резервной копии и затем восстановил с помощью файла резервной копии. со следующим:

tar xvpfz backup.tgz -C /

Как и ожидалось (см. Майк Уизер, ответивший на этот вопрос: Скопируйте дистрибутив Ubuntu со всеми настройками с одного компьютера на другой ), это сломало личинку. Когда я включаю компьютер, я получаю сообщение об ошибке:

error: no such device: ...

press any key to continue ...

Я полагаю, что причина того, что Grub не работает, состоит в том, что UUID, который он ищет, соответствует на старом жестком диске, а не на жестком диске для компьютер.

Как мне починить мой grub, чтобы он распознал новый жесткий диск? Я искал в интернете справку «Fix GRUB UUID», но шаги казались либо устаревшими, либо сложными. Ответ Майка, на который я ссылался выше, вселяет надежду, что существует довольно простой способ исправить это.

25
задан 13 April 2017 в 15:24

4 ответа

Чтобы решить вашу текущую проблему, вам нужно изменить UUID(ы) в "/etc/fstab" и "/boot/grub/grub.cfg" (очень хитро).

Вы можете использовать установочный диск Ubuntu, чтобы получить UUID(ы) с gparted (вам нужно просто щелкнуть правой кнопкой мыши по разделу, для которого вы хотите получить UUID, и нажать кнопку "Информация", затем выбрать UUID и скопировать его с помощью CTRL + C) или командной строки (sudo blkid).

Затем нужно отредактировать "/etc/fstab" на правом томе с помощью gedit, nano или иначе.

В терминале введите:

gksudo gedit /etc/fstab

и замените старые UUID-ы на новые.

ВАЖНО: Конечно, если вы используете загрузочный CD для этого, вам нужно будет добавить "/media/xxxx" перед "/etc/fstab": "/media/xxxx/etc/fstab". Вы также можете использовать gksudo gedit и открыть файл для самостоятельного редактирования.

ПРЕДУПРЕЖДЕНИЕ : Изменить "/boot/grub/grub.cfg" очень сложно. Обычно она должна быть сгенерирована командой sudo update-grub.

Замените старые UUID на новые в "/boot/grub/grub. cfg", введя в терминале :

gksudo gedit /boot/grub/grub.cfg

IMPORTANT : Конечно, если вы используете для этого загрузочный CD, то перед "/boot/grub/grub.cfg" нужно добавить "/media/xxxx/boot/grub.cfg": "/media/xxxx/boot/grub/grub.cfg". Вы также можете использовать gksudo gedit и открыть файл для самостоятельного редактирования.

Если вы используете хитрое решение, я рекомендую запустить sudo update-grub после успешной загрузки системы.

Более чистым, но простым способом правильной настройки grub может быть использование загрузочного диска восстановления типа "Boot-Repair-Disk" : http://sourceforge.net/p/boot-repair-cd/home/Home/

Я надеюсь, что это поможет вам решить вашу проблему.

Однако вы можете использовать Clonezilla для репликации старого компьютера на новом, как указано в моем комментарии.

23
ответ дан 13 April 2017 в 15:24

В моем случае UUID, установленный grub, отличался от моего текущего UUID ( sudo blkid ) для моего раздела Windows (подтверждено в grub.cfg). Пробовал разные методы безуспешно. Наконец, я смонтировал раздел Windows с помощью файлового менеджера и снова запустил update-grub , и UUID был успешно обновлен в grub.cfg.

0
ответ дан 13 April 2017 в 15:24

Предположительно это означает, что grub запускается и отображает опцию загрузки в Ubuntu, но когда вы выбираете, что он не загружается?

Думаю, есть два варианта:

  1. С помощью линейного редактора GRUB изменить опцию загрузки linux, чтобы правильно загрузить linux (а затем запустить grub-install от имени root, чтобы окончательно установить правильную конфигурацию).
  2. Загрузитесь с USB-носителя Ubuntu, смонтируйте раздел диска ubuntu, загрузитесь в него в chroot, а затем запустите grub-install.

Первый случай должен быть проще, если у вас только Ubuntu и только один жесткий диск, в этом случае выберите опцию "Восстановление Ubuntu" и нажмите "e" для редактирования:

Запись должна выглядеть так:

insmod gzio
insmod part_msdos
insmod ext2
set root=('hd0,msdos0')
search --no-floppy --fs-uuid --set=root XXXXXX
linux /boot/vmlinuz-YYYYY root=UUID=XXXXXX ro recovery nomodeset
initrd /boot/initrd.img-YYYYY

Удалите строку "search" и замените "root=UUID=XXXXX" в строке "linux" на "root=/dev/sda1". Попробуйте загрузиться и, надеюсь, через некоторое время вы получите меню восстановления Ubuntu, в котором должна быть опция grub, которая должна правильно переустановить grub.

В противном случае, или, если вы предпочитаете не связываться с grub напрямую (на котором должно быть предупреждение о здоровье, используйте CD/USB карту, как описано в https://help. ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2

3
ответ дан 13 April 2017 в 15:24

Что я сделал вместо редактирования fstab и grub:

  1. Я поддержал эти файлы при новой установке ubuntu ( tar -cvf /somedir/boot.tar / etc / fstab /boot/grub/grub.cfg)
  2. Восстановлено из резервной копии ( tar -xvpf /mnt/remotebk/full.tar )
  3. скопировать восстановленный файл fstab ( cp / etc / fstab /somedir/fstab.restored)
  4. восстановить мои свежие установочные загрузочные файлы ( tar -xvpf / somedir / boot .tar -C / )
  5. Перезагрузился, и все заработало.

Я использую виртуальные машины vmware, я проделал этот процесс для перемещения одного Linux-сервера с одного хоста на другой.

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

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