Восстановление загрузчика 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)
Степан:
ноя 14, 2018 at 11:15
А что делать, если Grub запрещает загрузить модуль загрузки Linux? Заранее спасибо за ответ.