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

Аватара пользователя
Dja
Сообщения: 1418
Зарегистрирован: 27 авг 2016, 20:03
Решено: 9
Откуда: Воскресенск
Благодарил (а): 225 раз
Поблагодарили: 150 раз
Контактная информация:

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

Сообщение #1 Dja » 10 фев 2017, 14:06

ВОССТАНОВЛЕНИЕ С ПОМОЩЬЮ LiveCD/USB

Запустите систему с 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


Восстановление закончено!

ВОССТАНОВЛЕНИЕ ИСПОЛЬЗУЯ CHROOT

Запустите систему с 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 раздел (здесь это sda1) и

еще несколько важных директорий:


Код: Выделить всё

sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys


Если раздел /boot находится отдельно, то Вам необходимо

примонтировать его в /mnt/boot !


Теперь перейдем в окружающую среду chroot !

Код: Выделить всё

sudo chroot /mnt


Теперь необходимо установить GRUB, используя команду:

Код: Выделить всё

grub-install /dev/sda


Если Вы получили сообщение об ошибке, то используйте команду:

Код: Выделить всё

grub-install --recheck /dev/sda


Также в некоторых случаях может помочь вариант:

Код: Выделить всё

grub-install --recheck --no-floppy /dev/sda


Если все прошло успешно, выходим из chroot командой:



Теперь необходимо отмонтировать разделы:

Код: Выделить всё

sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt


Если Вы монтировали раздел /boot воспользуйтесь командой:

Код: Выделить всё

sudo umount /mnt/boot


Затем перезагрузим Ваш компьютер командой:

Код: Выделить всё

sudo reboot


При необходимости Вы можете обновить меню загрузчика командой:

Код: Выделить всё

sudo update-grub


ВОССТАНОВЛЕНИЕ В RESCUE MODE

При отсутствии загрузочного диска, можно восстановить Grub из его

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

нужно подгрузить все модули, чтобы стала доступна вся

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

Как известно, Grub состоит из двух частей. Первая часть записана в MBR

диска. Она содержит базовую функциональность, то есть в ней есть

консоль в rescue mode и ничего больше. Вначале нужно определить, на

каком разделе находится вторая часть груба (она лежит в каталоге

/boot/grub), подгрузить недостающие модули. И только потом можно

будет дать команду запуска с нужного раздела. В rescue mode доступно

всего четыре команды:


Код: Выделить всё

ls
set
unset
insmod


Вначале следует дать команду:



В ответ она выведет, например, следующее:

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

Иногда Grub может неправильно опеределить, какие файловые системы

находятся на разделах дисков. В данном случае определяет их как

msdos. Нам нужно постараться угадать, какие диски мы видим. В

данном случае видно два диска. Диск с индексом 0 содержит три

раздела, диск с индексом 1 содержит два раздела. Зная структуру своих

дисков несложно определить нужный диск.

Grub называет разделы
в обратном порядке. И становится непонятно,

что имеется в виду под (hd0,msdos3) - первый раздел или третий? Тут

можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что

в Grub счет дисков начинается с 0, а счет разделов - с 1. Предположим,

что Linux установлен на первый диск в первый раздел, то есть (hd0,1).

Даем команду:


Код: Выделить всё

set prefix=(hd0,1)/boot/grub
set root=(hd0,1)


Этими командами мы указываем использовать диск (hd0,1) для

дальнейших команд. После чего нужно проверить, действительно ли на

этом разделе есть то, что нам нужно. Даем команду:


Код: Выделить всё

ls /boot/grub


если в ответ получаем список всех файлов в этой директории, то диск и

раздел выбраны правильно. Подгружаем модули:


Код: Выделить всё

insmod ext2
insmod normal
normal


Проверьте правильность написания первой команды для файловых

систем ext3 и ext4


После чего Grub перейдёт в полнофункциональный режим. Он

автоматически найдет все операционки, которые можно подгружать, и

покажет своё Grub-меню.

Дальнейшее восстановление сводится к тому, чтобы загрузить нужный

нам Linux, и в нем от рута дать команду:


Код: Выделить всё

grub-install /dev/sdX


Где sdX, диск, на который нужно установить Grub.

Информация любезно предоставлена пользователем avkP3
Новичок? - ознакомься с правилами
Изображение
В поисках истины :grabli:
Изображение

Вернуться в «Загрузка системы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость