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

17

Я хочу восстановить полную резервную копию 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 /

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

error: no such device: ...

press any key to continue ...

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

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

задан snowguy 03.08.2012 в 09:59
источник

4 ответа

14

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

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

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

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

gksudo gedit /etc/fstab

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

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

ВНИМАНИЕ: Изменение «/boot/grub/grub.cfg» очень сложно. Обычно он должен быть сгенерирован командой sudo update-grub .

Замените старые UUID на новые в «/boot/grub/grub.cfg», введя в терминале следующее:

gksudo gedit /boot/grub/grub.cfg

ВАЖНО: конечно, если вы используете загрузочный компакт-диск, вам нужно добавить «/ media / xxxxx» перед «/boot/grub/grub.cfg»: «/ media / xxxxx / boot / grub /grub.cfg». Вы также можете использовать gksudo gedit и открыть файл для редактирования самостоятельно.

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

Более простой, но простой способ перенастроить grub может быть использован для восстановления диска восстановления, такого как «Boot-Repair-Disk»: Ссылка

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

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

    
ответ дан Golboth 03.08.2012 в 11:41
источник
1

Предположительно это означает, что 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

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

В противном случае, или если вы предпочитаете не путать с grub напрямую (в котором должно быть предупреждение о работоспособности, используйте CD / USB-накопитель, как описано в Ссылка

    
ответ дан chronitis 03.08.2012 в 11:00
0

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

    
ответ дан Tavo 09.05.2013 в 07:50
0

Что я сделал вместо редактирования 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-сервер с одного хоста на другой хост.

    
ответ дан Roberto Dimas 19.11.2014 в 23:53