Это старая версия документа!
# Восстановление 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 Мб, 500 Mb хватит точно и за глаза), имеет файловую систему fat32 и флаг ESP.
Если такого раздела нет, нужно его создать, (например с помощью Gparted). Раздел создаём с соответствующими параметрами: _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 ```
