08.11.2016

Восстановление Grub из консоли (rescue mode)

На данную тему написано много статей, я всего лишь постараюсь внести некоторую ясность. Иногда случается, что "слетает" меню Grub и вместо диалога выбора ОС вы наблюдаете консоль Grub.

Относительно консоли и доступных команд можно прочесть  здесь: http://help.ubuntu.ru/wiki/grub


Приступим к загрузке Linux и восстановлению загрузчика.

Поиск разделов ОС для загрузки

Для начала, даем команду

ls

В ответ получаем приблизительно следующее:

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)

Это перечень наших дисков и разделов на них. Для дальнейших действий нам нужно найти корневой раздел и раздел с образами ядер, чаще всего это один и тот же раздел, но бывают и другие случаи. Если вы заранее знаете необходимый раздел, это существенно упростит вашу задачу, в противном случае, приступаем к поиску.

Я лично произвожу поиск перебором каждого обнаруженного раздела.

set prefix=(hdX,Y)/

set root=(hdX,Y)

ls /

Более правильным вариантом считается поиск при помощи

ls (hdX,Y)/

Если вы видите следующие директории

bin

boot

dev

etc

home

lib

sbin

tmp

usr

var

Это корневой раздел, запоминаем его  (hd0,msdos5)

Проверяем, на этом ли разделе находятся файлы ядра

ls /boot/

Должна присутствовать директория grub и файлы initrd.img-......-generic и vmlinuz-......-generic

Если директория пустая, значит, boot вынесен отдельным разделом. Продолжаем искать раздел boot (в его корне будут находится файлы ядра).

Загрузка системы

1. На корневом разделе находятся файлы ядра.

Для примера, корневой раздел (hd0,msdos5),  ему соответствует /dev/sda5 (Для hd1 - sdb)

set prefix=(hd0,msdos5)/boot/grubset root=(hd0,msdos5)

linux /boot/vmlinuz-3.13.0-93-generic root=/dev/sda5

initrd /boot/initrd.img-3.13.0-93-generic

boot

3.13.0-93 - версия ядра, я выбираю предпоследнюю из доступных в директории /boot

2. Файлы ядра находятся на отдельном разделе

Например, корневой раздел (hd0,msdos5) , раздел с файлами ядра (hd0,msdos1)

set prefix=(hd0,msdos1)/grub

set root=(hd0,msdos1)

linux /boot/vmlinuz-3.13.0-93-generic root=/dev/sda5

initrd /boot/initrd.img-3.13.0-93-generic

boot

Операционная система должна загрузиться.

Восстановление загрузчика Grub

После загрузки операционной системы открываем консоль и выполняем переустановку загрузчика

sudo grub-install /dev/sdX

где sdX - диск, на котором был установлен GRUB.

И обновляем меню

sudo update-grub

После этого перезагружаемся.

P.S. Статья не претендует на 100% панацею, но при этом, данным методом был восстановлен не один "упавший" загрузчик.

Комментариев нет:

Отправить комментарий