Страницы

воскресенье, 16 марта 2014 г.

Восстановление GRUB2 после клонирования

Описание ситуации

Установлен Windows 7, потом Ubuntu, все ок, никаких проблем.
Нужно клонировать систему на другую машину, клонировал при помощи Acronis TI.
На клонированной машине выдает ошибку:
dracut warning no root device "block:/dev/disk/by-uuid/e392350a......" found
Droppaing to debug shell
sh: can't access tty; job control turned off
dracut:/# nano
sh: nano: not found
dracut:/#
ну из ошибки понятно, что нужно обратиться к HDD по UUID, но жесткий диск другой и UUID соответственно тоже.

Вопрос: как лечить?
Было несколько способов...

1. Восстановление GRUB2 при помощи Live CD (в моем случае USB)

Запустил систему с Live USB и открыл терминал. Для этого можно нажать Alt+F2 и ввести команду:
gnome-terminal
Далее необходимо было узнать таблицу разделов. Используйте команду:
sudo fdisk -l
На экран должна быть выведена примерно такая таблица:
/dev/sda1 29 8369 66999082+ 83 HPFS/NTFS
/dev/sda2 8370 13995 45190845 7 HPFS/NTFS
/dev/sda3 13996 14593 4803435 5 Linux swap
/dev/sda4* 14593 30584 66999082+ 83 Linux 
(набрал приблизительно:)

Из таблицы видим, что Linux стоит (в нашем случае) на разделе /dev/sda4
Теперь подключим этот раздел в /mnt следующей командой:
sudo mount /dev/sda1 /mnt
Затем, для записи grub в MBR, вводите следующую команду:
sudo grub-install --root-directory=/mnt /dev/sda
В случае, если нужно только восстановить MBR диска (например, после переустановки Windows), то этого достаточно.
Если нужно обновить и меню grub (например, после установки Windows), то нужно сделать:
sudo update-grub --output=/mnt/boot/grub2/grub.cfg
Восстановление закончено!
Источник Ubuntu.ru

Судя по отзывам эта инструкция помогла многим, но у меня восстановилась загрузка только Windows 7, Ubuntu так и не грузился, хотя команды для восстановления отработали без ошибок.
Так же по этой теме можно почитать здесь http://ru.wikibooks.org/wiki/Grub_2

2. Восстановление GRUB2 при помощи Boot-Repair

Загрузил клонированный компьютер при помощи той же Live-USB, установил Boot Repair при помощи следующих команд:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)
После запуска программы установил на вкладке "Main options" установил флажок Reinstall GRUB

boot-repair

Ну, конечно же нажал "Apply", после перезагрузки все заработало. Источник help.ubuntu.com
Нормально загружается и Ubuntu и Windows.

Вопросы

Но, остались некоторые вопросы, может кто-то ответит? Предполагается клонирование десятка машин, пока стоит вопрос о нормальной загрузке обеих операционных систем.
1. Можно ли клонировать систему чем-то таким, что сбросит UUID в конфигурационных файлах GRUB. Возможно заменить UUID на имя раздела sda3 и т.п.
2. Что будет, а точнее каких проблем можно ожидать, если в ручную изменить UUID диска в GRUB? Может есть какие-то программы, которым тоже важен UUID, а они будут использовать старый?
3. Может при таком клонировании будут еще какие-то проблемы?
Очень важен опыт людей, которые сталкивались с такой проблемой, спасибо.

Пометки в тему, можно не читать. Изменение загрузочного меню GRUB.
Finally, change the GRUB_DEFAULT option in /etc/default/grub to point to the new stanza you added.
 0 will refer to the first stanza, 1 to the second, and so on.
For example:
GRUB_TIMEOUT=5
GRUB_DEFAULT=0
grub2-mkconfig --output=/boot/grub2/grub.cfg