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

Обычно на каждом диске есть MBR (главная загрузочная запись, master boot record) и при включении компьютера, BIOS обращается к ней за информацией для дальнейшей загрузки. В Linux системах в качестве загрузчика используется GRUB, о вариантах восстановления которого я и напишу ниже.

Посмотреть версию GRUB можно командой:

grub-install --version

1) Первый вариант.
Запускаем систему с LiveCD/USB, например в образе Ubuntu Desktop кроме установки есть возможность запустить систему.
Откроем терминал, для этого нажмем клавишами Alt+F2 и введем команду:

gnome-terminal

Посмотрим список разделов:

sudo fdisk -l
ls /dev/[hsv]d[a-z]*[0-9]*

Допустим раздел с загрузчиком на /dev/sda1, подключим его в директорию /mnt:

sudo mount /dev/sda1 /mnt

Если используется программный RAID, то:

ls /dev/md*
mount /dev/md2 /mnt

Либо LVM:

ls /dev/mapper/*
mount /dev/mapper/vg0-root /mnt

И установим grub в MBR следующей командой:

sudo grub-install --root-directory=/mnt /dev/sda

Возможно также понадобится обновить меню grub:

sudo update-grub --output=/mnt/boot/grub/grub.cfg

Готово, grub восстановлен!

2) Второй вариант через chroot.
Опять же нужно запустить систему с LiveCD/USB и открыть терминал.
Допустим раздел с загрузчиком вместе с основным разделом на /dev/sda1.

Подключим его в /mnt, а также привяжем несколько необходимых директорий:

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, например так:

sudo mount /dev/sda2 /mnt/boot

Перейдем в chroot:

sudo chroot-prepare /mnt
sudo chroot /mnt

Установим GRUB:

grub-install /dev/sda

В случае ошибки наберем:

grub-install --recheck /dev/sda

Можно еще так:

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

Выходим из chroot:

exit

Отсоединим разделы:

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

Аналогично /boot если он отдельно:

sudo umount /mnt/boot

Перезагрузим компьютер:

sudo reboot

3) Третий вариант, используя режим восстановления.
Посмотрим какие разделы есть следующей командой (нумерация дисков начинается с 0, а разделов с 1, то есть диск /dev/sda может называться например hd0, а раздел /dev/sda1 — hd0,1):
ls

Укажем этот раздел:

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

И проверим есть ли тут grub:

ls /boot/grub

Если есть, подгружаем модули:

insmod ext2
insmod normal
normal

Если раздел в формате btrfs, то выполним чуть другие команды:

set prefix=(hd0,1)/@/boot/grub
set root=(hd0,1)
insmod btrfs
insmod normal
normal

После команд запустится Grub и определит какие операционные системы установлены.
На последок запустим Linux и от root пользователя установим grub на нужный диск, например /dev/sda:

grub-install /dev/sda

Перезапустим систему и проверим:

reboot

Готово.

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

Добавить комментарий