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

Для загрузки некоторых операционных систем Linux используется загрузчик GRUB (Grand Unified Bootloader). Как правило, после установки/переустановки системы Windows, затирается загрузчик GRUB и при включении компьютера загружается только Windows. Поэтому необходимо восстановить загрузочную запись и сам GRUB. Опишу здесь несколько способов восстановления загрузчика GRUB2.


Способ №1.

Восстановление GRUB2 с LiveCD (chroot).


Для восстановления GRUB2 будем использовать LiveCD дистрибутива Linux, загружаемся и запускаем консоль. Авторизируемся пользователем root.

Сначала необходимо определить, на каком разделе находится системная директория, с помощью команды fdisk получим общий список разделов:

sudo fdisk -l

На экране будет отображена таблица разделов, например:

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1            2048     4196351     2097152   82  Linux swap / Solaris
/dev/sda2   *     4196352    88082133    41942891   83  Linux
/dev/sda3        88082134   625140334   268529100+  83  Linux

Следующим шагом необходимо примонтировать раздел с установленной системой (в данном случае это /dev/sda2), в выделенную директорию (например /mnt).

mount /dev/sda2 /mnt

Так же необходимо подключить каталоги устройств и процессов.

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

Теперь зайдем в примонтированную систему как root:

sudo chroot /mnt

Для установки/восстановления GRUB2 нужно выполнить:

grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

Если возникла ошибка, попробуйте перезапустить команду с ключом --recheck:

grub-install --recheck /dev/sda

Теперь необходимо покинуть окружение chroot, и перезагрузить компьютер:

exit
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt
sudo reboot


Способ №2.

Восстановление GRUB2 (grub rescue)


Ситуация предполагает, что при загрузке доступна только консоль восстановления GRUB.

grub rescue>

Алгоритм восстановления загрузчика сводится к следующим действиям:

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

ls

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

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

К примеру у нас корневой раздел находится на (hd0,1), посмотрим что там находиться:

ls (hd0,1)/

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

Определившись с разделом, укажем путь к модулям ядра:

set prefix=(hd0,1)/boot/grub2

А так же путь к файловой системе:

set root=(hd0,1)

После этого нужно загрузить модуль загрузки Linux:

insmod /boot/grub2/i386-pc/linux.mod

Теперь нужно указать ядро и загрузиться:

linux /boot/vmlinuz root=/dev/sda1 ro
initrd /boot/initrd
boot

После попадания в Linux надо восстановить загрузчик, выполнив от суперпользователя следующие команды:

grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

Перезагружаемся

reboot

Комментарии (1)

  1. Степан:
    ноя 14, 2018 at 11:15

    А что делать, если Grub запрещает загрузить модуль загрузки Linux? Заранее спасибо за ответ.

    Ответить