Инструменты пользователя

Инструменты сайта


linux:administration:recovery_grub2

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

При установке новой ОС, переразметке диска, изменении размера и положения разделов на диске, и т.п. может произойти повреждение загрузчика Grub.

При этом загрузчик загружается с сообщением:

Minimal BASH-like line editing is supported.  
For the first word, TAB lists possible command completions.  
Anywhere else TAB lists possible device or file completions.

После чего для восстановления загрузчика Grub можно пойти двумя путями.

Путь 1. Загрузка через командную строку Grub.

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

Для этого в командной строке Grub нужно набрать команду ls после чего выведется список имеющихся в системе дисков и их разделов.
В Grub каждый жесткий диск имеет название hd и номер диска, например, hd0 или hd1. Разделы именуются начиная с единицы.

В результате выглядеть этот список будет примерно как:

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

с указанием размеров разделов.
Обычно этого хватает, чтоб угадать нужный диск.

Далее в командной строке Grub нужно ввести следующие команды:

grub> set prefix=(hd0,msdos1)/boot/grub/ 
grub> insmod normal 
grub> normal

где (hd0,msdos1) - раздел на который был установлен Grub

Если раздел был указан верно, то попадаем в графическое меню Grub, после чего можно войти в систему привычным способом. И затем переходить к восстановлению/установке загрузчика Grub.

Путь 2. Загрузка с LiveCD

Здесь нужна будет LiveCD с системой, той же разрядности, что и уже установленная система Linux, на которую был установлен Grub. Причем, неважно будет на LiveCD графический интерфейс или нет, т.к. нужны будут только утилиты fdisk, mount и chroot, которые присутствуют в абсолютном большинстве дистрибутивов.

Перед восстановлением Grub, нужно понять на каком разделе установлена система, и на каком разделе были или должны быть файлы загрузчика.
Самый простой способ это сделать - воспользоваться утилитой fdisk.

 sudo fdisk -l

В выводе программы будут показаны разделы всех подключённых к компьютеру дисков, их размер, а также их файловая система. По этим данным предстоит понять, какой раздел используется в качестве корневого в системе.

Далее предстоит смонтировать корневую файловую систему в каталог /mnt:

 mount /dev/sda2 /mnt

Если раздел boot находится на отдельном разделе, то нужно смонтировать и раздел boot.
Например, если бы он находился по адресу /dev/sda1:

 mount /dev/sda1 /mnt/boot

Чтобы восстановить загрузчик Grub используют основную систему Linux, запущенную на ядре от LiveCD.
Такую возможность предоставляет команда chroot.

Но перед тем, как ее использовать нужно вручную подключить к корневой ФС, смонтированной в /mnt все необходимые файловые системы взаимодействия с ядром - /dev, /sys, /proc:

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

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

 chroot /mnt /bin/bash

Первый параметр указывает папку, в которую была смонтирована корневая файловая система, а второй - оболочка, используемая для интерпретации команд пользователя.

Затем выполните эти команды для загрузки и обновления переменных профиля:

env-update
source /etc/profile

Теперь пользователь находится в своей основной ОС Linux, и может выполнять почти все его программы.
При этом, разумеется, будут недоступны сервисы, поскольку во время загрузки не использовалась система инициализации, а также как следствие, недоступно графическое окружение.

Тем не менее для дальнейших действий по восстановлению загрузчика Grub этого достаточно.

После восстановления/установки загрузчика необходимо выйти из окружения chroot командой:

 exit

И перезагрузить компьютер.

Установка Grub UEFI GPT

В виду распространенности в последнее время технологии UEFI загрузчик Grub UEFI GPT будет являться наиболее оптимальным вариантом.

Установка Grub UEFI GPT производится в отдельный раздел диска. Этот раздел занимает немного места (обычно около 100 Мб, 512 Mb, судя по отзывам, хватит точно и за глаза), имеет файловую систему fat32 и флаг ESP.

Если такого раздела нет, нужно его создать, (например с помощью Gparted, parted или fdisk).
Раздел создаём с соответствующими параметрами: 100 Мегабайт, флаги boot и esp, имя раздела ESP, файловая система fat32.

После чего подключаем его к файловой системе:

 sudo mkdir /boot/efi
$ sudo mount /dev/sda2 /boot/efi

Здесь /dev/sda2 - это созданный EFI раздел.

Далее необходимо установить нужные пакеты, если они еще не установлены:

 sudo apt install grub-efi efibootmgr

Дальше останется только установка grub efi. Система сама определит нужный раздел и скопирует туда все файлы:

grub-install /dev/sda

а так же произведет обновление конфигурационного файла Grub: /boot/grub/grub.cfg

/var/www/html/dokuwiki/data/pages/linux/administration/recovery_grub2.txt · Последнее изменение: — so_v_a