Grub – это загрузчик, используемый для запуска системы в большинстве дистрибутивов Linux, в том числе и в Linux Mint. Повреждение загрузчика может быть вызвано различными причинами, например, установкой Windows, другого дистрибутива Linux или переразметкой диска, изменением размера и положения разделов на диске и так далее.
В случае с установкой другой системы, чтобы восстановить загрузчик Linux Mint нам понадобится LiveCD с любым Linux-дистрибутивом. Самая частая задача из этой категории – восстановление Grub после Windows. Если же ошибка возникла из-за работы с разделами или повреждения файловой системы и загрузчик загружается с сообщением Minimal BASH like line editing is supported – это значит что мы можем справиться и без LiveCD своими силами. Конечно, восстановление grub в linux mint с помощью LiveCD системы намного проще, но не всегда под руками есть нужный диск.
Восстановление Grub2 с помощью LiveCD
В этой статье мы рассмотрим, как выполняется восстановление Grub2 обоими способами. Начнем с более простого способа – с помощью LiveCD. Хотя и статья ориентирована на Linux Mint, но на самом деле подойдет абсолютно для любого дистрибутива, потому что во всех дистрибутивах загрузчик один и тот же, и команды такие же, только версии могут немного отличаться.
Начнем с того, что вам нужна LiveCD система, той же разрядности, что и ваша система Linux Mint, на которую был установлен Grub. Причем, неважно будет там графический интерфейс или нет. Обычно все необходимые инструменты поддерживаются всеми дистрибутивами. А нужны нам только утилиты fdisk, mount и chroot. Чтобы восстановить загрузчик grub2 просто следуйте описанным ниже шагам.
Шаг 1. Загрузка LiveCD
Сначала вставьте носитель с LiveCD системой в дисковод или порт USB, если это флешка. Для загрузки с носителя, возможно, вам сначала понадобится зайти в меню BIOS и выставить приоритет загрузки с внешнего устройства.
Для запуска BIOS нажмите Del, F2, F8 или Shift +F2. В открывшимся меню найдите раздел Boot, и в пункте Boot Device Priority или 1st Boot Device или Boot Option #1 выберите нужное устройство:
Дальше перейдите на вкладку Exit и выберите Exit & Save settings. Дальше начнется загрузка образа.
Шаг 2. Определение разделов
Перед тем как восстановить Grub2, нам нужно понять – на каком разделе установлена система, и на каком разделе были или должны быть файлы загрузчика. Самый простой способ это сделать – воспользоваться утилитой fdisk.
В выводе программы вы видите – разделы всех подключённых к компьютеру дисков, их размер, а также файловую систему. По этим данным вам и предстоит понять, какой раздел используется в качестве корня в вашей системе. Если вы делали разметку вручную, вам не составит труда понять где то, что нужно. Например, у меня корень – /dev/nvme0n1p5 – размером 37 гигабайт, а для загрузчика отдельный раздел не выделялся. Но обычно он тоже имеет файловую систему ext4 ил ext2, а размер до 500 мегабайт. В случае с обычным SSD или HDD диском имя раздела будет начинаться с /dev/sd*. Например: /dev/sda или /dev/sdb и так далее
Шаг 3. Монтирование файловой системы
Теперь вам предстоит смонтировать вашу корневую файловую систему в каталог /mnt:
mount /dev/nvme0n1p5 /mnt
Кроме того нужно смонтировать раздел boot. Например, если бы он у меня находился по адресу /dev/nvme0n1p1:
mount /dev/nvme0n1p1 /mnt/boot
Шаг 4. Подготовка к входу в систему
Чтобы восстановить загрузчик Linux мы будем использовать вашу основную систему 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
Шаг 5. Вход в окружение системы
Для входа в окружение вашей системы используйте команду:
chroot /mnt /bin/bash
Первый параметр указывает папку, в которую была смонтирована корневая файловая система, а второй – оболочка, используемая для интерпретации команд пользователя.
Затем выполните эти команды для загрузки и обновления переменных профиля:
Теперь вы находитесь в Linux Mint, и можете выполнять почти все его программы, разумеется, недоступны сервисы, поскольку во время загрузки не использовалась система инициализации, а также как следствие, недоступно графическое окружение.
Шаг 6. Восстановление Grub2
Теперь восстановление Grub в Linux Mint. Просто выполните следующие команды. Первая, для переустановки загрузчика на жесткий диск:
sudo grub2-install /dev/sd*
Здесь /dev/sd* – имя вашего жесткого диска.
Теперь создадим новый конфигурационный файл:
sudo grub2-mkconfig -o /boot/grub/grub.cfg
Путь к конфигурационному файлу может немного отличаться, так что будьте внимательны.
Еще можно использовать команду:
Но она работает только в Ubuntu и основанных на ней дистрибутивах.
Шаг 7. Готово
Выйдите из окружения chroot командой:
И перезагрузите компьютер:
Теперь все работает.
Восстановление Grub2 без LiveCD
В некоторых случаях повреждения Grub не вызывает полную невозможность загрузки. Например, когда загрузочный код в MBR цел, но программа не может получить доступ к файлам на диске. Тогда загрузчик открывает вместо меню некое подобие терминала с сообщением: Minimal BASH like line editing is supported. С помощью этого терминала мы можем попытаться загрузить систему. Восстановление grub2 без LiveCD не такая уж и сложная задача, хотя, это сложнее, чем первый способ.
Все что вам потребуется – это знать на каком устройстве расположена система и само ядро Linux. Синтаксис и команды очень похожи на обычные команды bash, но немного отличаются по назначению. В начальном режиме восстановления доступны только несколько команд это ls, insmod, set и unset.
Чтобы посмотреть список подключенных к компьютеру дисков просто выполните:
(hd2,msdos1, hd2,msdos2, hd2,msdos3, hd2,msdos4)
Важно отметить, что в grub диски и разделы именуются немного по другому. Здесь каждый жесткий диск имеет название hd и номер диска, например, hd0 или hd1. Разделы именуются начиная с единицы.
Вы можете работать только с одним разделом в определенный момент. Чтобы установить раздел, с которым нужно работать, нужно указать его в переменной root. Для установки переменных окружения используется команда set. Например, у если у меня файлы загрузчика grub находятся на /dev/sdc2, то получится hd2,2:
Загрузим нормальную оболочку grub:
insmod ext2
insmod normal
normal
После этого можно найти и запустить ядро. Для этого используйте команду linux. Обычно ядро находится папке /boot:
И наконец загружаемся:
Теперь, когда система загрузится, вам останется только открыть терминал, и выполнить следующие команды, чтобы завершить восстановление загрузчика linux mint:
sudo grub2-install /dev/sd*
sudo grub2-mkconfig -o /boot/grub/grub.cfg
Где sd* – имя вашего диска, на котором установлена система. Обратите внимание, что нужно именно имя диска, а не раздела, никакие цифры добавлять не надо. Вот и все.
Восстановление в Boot Repair
Наверное самый простой способ восстановить загрузчик Grub – это использовать утилиту Boot Repair. Для её запуска вам понадобится LiveCD с Ubuntu или другим дистрибутивом. Сначала загрузитесь в Live среду, как описано в первом методе, затем добавьте PPA к системе:
sudo add-apt-repository -y ppa:yannubuntu/boot-repair
После этого установите утилиту:
sudo apt install boot-repair
Для запуска выполните:
Далее для восстановления загрузчика достаточно нажать кнопку Рекомендуемый способ восстановления:
Затем просто дождитесь завершения процесса восстановления:
После этого компьютер можно перезагружать и всё будет работать.
Выводы
Теперь восстановление загрузчика linux mint не вызовет у вас проблем в любых обстоятельствах, независимо от того, есть ли у вас диск с другим дистрибутивом или нет. Если остались вопросы, напишите в комментариях!