15 сент. 2013 г.

Восстановление GRUB на Ubuntu

Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt+F2 и ввести команду:
gnome-terminal
Далее необходимо узнать Вашу таблицу разделов. Используйте команду:
sudo fdisk -l
На экран должна быть выведена примерно такая таблица:
/dev/sda1 29 8369 66999082+ 83 Linux
/dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS
/dev/sda3 13996 14593 4803435 5 Extended
Из таблицы видим, что Linux стоит (в нашем случае) на разделе /dev/sda1
Теперь подключим этот раздел в /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/grub/grub.cfg
Восстановление закончено!

Восстанавливаем Grub 2

Восстанавливаем Grub 2

Итак, предположим, у нас есть правильный диск с Linux. Загружаемся с него (в режиме Live). Открываем консоль и монтируем нужный логический диск (тот, на котором установлена восстанавливаемая система).
sudo mount /dev/sda1 /mnt
Где /dev/sda1 -- это внутреннее именование нужного раздела диска.
Если вы не знаете, как называется нужный раздел диска, выполните команду "mount" -- она покажет все примонтированные разделы. После чего зайдите в файловый менеджер и примонтируйте нужный раздел. Снова посмотрите в mount -- там добавилась строчка. В самом начале которой написано нечто вроде /dev/sdXY. X -- буква, Y -- число. Итак, используя написанную выше команду, примонтируйте раздел в папку /mnt.
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
Этими командами мы монтируем служебные папки внутри примотированного раздела. Теперь, когда подготовлен нужный раздел, перейдём в него командойchroot.
sudo chroot /mnt
И выполним восстановление grub:
sudo grub-install /dev/sdX
Где X -- это всё та же буква, что и выше.

Проблемы при восстановлении

Если после выполнения всех вышеуказанных действий продолжает загружаться Windows -- проверьте с правильного ли физического диска вы загружаетесь (в BIOS).
Если выдаёт:
chroot: cannot run command `/bin/bash': Exec format error
значит архитектура Live системы не совпадает с восстанавливаемой -- воспользуйтесь другим диском для восстановления.

Восстановление GRUB

Grub может быть затерт переустановкой Windows или по другим причнам, здесь я постараюсь расказать как его восстановить. Вам понадобится любой LiveCD (многие установочные диски умеют грузится в "режим восстановления"). В этом руководстве я буду использовать sda1 как обозначение корневого раздела. (используйте свое обозначение) создадим каталог для монтирования, и смонтируем корневой раздел.
mkdir -p /mnt/recovery
mount /dev/sda1 /mnt/recovery
Если вы используете отдельный boot раздел (в примере sda2), смонтируйте его:
mount /dev/sda2 /mnt/recovery/boot
Смените root каталог на /mnt/recovery:
chroot /mnt/recovery /bin/bash
Создайте mtab:
grep -v rootfs /proc/mounts > /etc/mtab
Установите grub:
grub-install /dev/hda
Размонтируйте разделы и перезагрузитесь:
cd /
exit
cd /
umount /dev/sda1
reboot
Возможно вы получите следующую ошибку:
can't read /boot/grub/device.map: No such file or directory
В этом случае при установке grub используйте следующую команду:
grub-install --recheck /dev/hda