Главная >> Инструкции >> Восстановление Grub2

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

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.

sudo fdisk -l

В выводе программы вы видите - разделы всех подключённых к компьютеру дисков, их размер, а также файловую систему. По этим данным вам и предстоит понять, какой раздел используется в качестве корня в вашей системе. Если вы делали разметку вручную, вам не составит труда понять где то, что нужно. Например, у меня корень - /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

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

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

env-update

source /etc/profile

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

Шаг 6. Восстановление Grub2

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

sudo grub2-install /dev/sd*

Здесь /dev/sd* - имя вашего жесткого диска.

Теперь создадим новый конфигурационный файл:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

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

Еще можно использовать команду:

sudo grub-update

Но она работает только в Ubuntu и основанных на ней дистрибутивах.

Шаг 7. Готово

Выйдите из окружения chroot командой:

exit

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

reboot

Теперь все работает.

Восстановление Grub2 без LiveCD

В некоторых случаях повреждения Grub не вызывает полную невозможность загрузки. Например, когда загрузочный код в MBR цел, но программа не может получить доступ к файлам на диске. Тогда загрузчик открывает вместо меню некое подобие терминала с сообщением: Minimal BASH like line editing is supported. С помощью этого терминала мы можем попытаться загрузить систему. Восстановление grub2 без LiveCD не такая уж и сложная задача, хотя, это сложнее, чем первый способ.

Все что вам потребуется - это знать на каком устройстве расположена система и само ядро Linux. Синтаксис и команды очень похожи на обычные команды bash, но немного отличаются по назначению. В начальном режиме восстановления доступны только несколько команд это ls, insmod, set и unset.

Чтобы посмотреть список подключенных к компьютеру дисков просто выполните:

ls

(hd2,msdos1, hd2,msdos2, hd2,msdos3, hd2,msdos4)

Важно отметить, что в grub диски и разделы именуются немного по другому. Здесь каждый жесткий диск имеет название hd и номер диска, например, hd0 или hd1. Разделы именуются начиная с единицы.

Вы можете работать только с одним разделом в определенный момент. Чтобы установить раздел, с которым нужно работать, нужно указать его в переменной root. Для установки переменных окружения используется команда set. Например, у если у меня файлы загрузчика grub находятся на /dev/sdc2, то получится hd2,2:

set root=(hd2,2)

Загрузим нормальную оболочку grub:

insmod ext2
insmod normal
normal

После этого можно найти и запустить ядро. Для этого используйте команду linux. Обычно ядро находится папке /boot:

linux /boot/vmlinuz

И наконец загружаемся:

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

Для запуска выполните:

sudo boot-repair

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

Затем просто дождитесь завершения процесса восстановления:

После этого компьютер можно перезагружать и всё будет работать.

Выводы

Теперь восстановление загрузчика linux mint не вызовет у вас проблем в любых обстоятельствах, независимо от того, есть ли у вас диск с другим дистрибутивом или нет. Если остались вопросы, напишите в комментариях!

23 комментария к “Восстановление Grub2”

  1. Спасибо Вам за статьи по Ubantu. На прошлой неделе они помогали мне. Установила Ubantu правда 14.04 Ставила разные версии больше 10 раз. Grub никак не восстанавливался, находила в инете массу советов, видео - проделывала и все равно никак. У меня Биос с огромным кол-ом настроек - UEFI GPT + диск с виндой 10 SSD, ключи базы, дескрипторы - туча всего. То ошибки при первой загрузке ubantu + этот не восстанавливающийся Grub. Что помогло - поймала статью на английском по grub и там инсталляция Ubantu шла с экранами когда grub при установке инициализировался с настройками биоса и когда не инициализировался. Поэкспериментировала с биосом и поймала сочетание настроек биоса на инициализацию grub при инсталляции. Потом искала как устанавливать пакеты для раскладки русского языка - никак у меня не работала смена языка по сочетанию + русский язык в написании. Потом не ставились пакеты, постоянно просит еще не найденные зависимости. Устанавливаю требуемое, а все равно не ставятся. Да уж...
    Нашла экспериментальную версию винды 10 со встроенной bash консолью + Ubantu. Правда еще не пробовала в ней ничего.

    Ответить
  2. А мне может помочь данная статья, если в BIOS переключил режим работы SATA-контроллера из режима IDE native в режим ACHI? В ACHI режиме перестает загружаться загрузчик GRUB2, а если вернуть прежний режим то работоспособность загрузки Линукс восстанавливается.

    Ответить
  3. Здравствуйте! У меня такая проблема: на ноуте стояли 2 системы: Минт (Роза) и Манджаро, последнюю я удалил вместе с разделом, на котором она стояла, и после этого перестал загружаться и Минт. На черном экране пишет: "error: no such partition. Entering rescue mode... grub rescue>" и моргает курсор. Можно ли спасти загрузчик? В линуксе недавно, слабо ориентируюсь. Спасибо. Сергей.

    Ответить
  4. Ещё хотелось бы добавить на некоторых версиях биос данные методы не работают, загрузку линукс можно восстановить только из под биос после чего произвести sudo update-grub.

    Ответить
  5. В восстановлении без LiveCD терминал ругался на две последние команды:
    $ sudo grub2-install /dev/sda
    $ sudo grub2-mkconfig -o /boot/grub/grub.cfg
    Говорит, их не существует. Ubuntu 18.04.
    Убрала двойки после grub, помогло:
    $ sudo grub2-install /dev/sda
    $ sudo grub2-mkconfig -o /boot/grub/grub.cfg

    Ответить
  6. Установлена Windows 10 поверх Ubuntu 18.04 LTS. Способ с Live CD помогает восстановить grub, но в меню загрузки grub появляется только Windows, т.к. sudo grub-mkconfig -o /boot/grub/grub.cfg производит поиск установленных ОС с помощью os-prober, а os-prober передаёт в grub данные о всех системах, кроме той, из под которой сам запущен. А запущен он получается не из под Live CD, а из под установленной Ubuntu. Поэтому в меню загрузки только Windows, Ubuntu нет. Пробовал на двух компах, результат одинаковый. В общем, пришлось воспользоваться Boot-Repair.

    Ответить
  7. У меня случился гораздо более неординарный случай. поэтому его стоит упомянуть.
    Опущу детали, сразу перейду к исходной точке. Есть ssd диск который вставлен в ноутбук. при загрузке всплывает консоль grub, но на диске только раздел в Windows 10. Как сделать так что бы винда грузилась без проблем, когда линукса уже нет.
    Вводим команду ls. Она выдаст все существующие разделы.
    Далее перебираем их делая set root=раздел, и вызывая даллее ls /. Нужно перебрать все разделы пока не найдется тот у которого будет в корне директория EFI.
    В моем случае это был раздел вида (hd0,gpt2).
    далее вводим команду chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    и кажется сразу после этого грузится винда стандартным способом.
    Я точно не знаю как это все работает, только могу догадываться, тем не менее это сработало. И теперь при включении ноутбук сам грузится без вмешательства и grub там даже не видно.

    Ответить
  8. Инструкция не работает на Ubuntu 20.04 Fossa и Windows 10 Pro. Sorry. Раньше работало как Швейцария. Сейчас нет. Учтите, надо переработать. Для Linux Ubuntu 18/16/14 Windows xp/2008 и другие сервера (на 10/12/16 не тестировал) идёт на ура. Но готовьтесь. Если нет админиского опыта с Linux и Windows 2010.....с этой версией инструкции могут быть проблемы.
    P. S. Автору: без личных обид

    Ответить
  9. ВОССТАНОВЛЕНИЕ В BOOT REPAIR. после некоторых манипуляций заработал, сама прога все подсказывает. остановил в терминале прогу ctrl+c. запустил то что он предложил (предв. скопировал) удалил grub. запустил прогу уже просит восстановить. копировать то что предложил остановил ctrl+c. вставил в терминал. восстановил. дальше не запускался BOOT repair, потому перезагрузил. еще раз запустил как в инструкции. он подумал. перезагрузил и все ок стало. даже вин 7 стала запускаться. ubuntu 20/04

    Ответить
  10. root@mint:/# sudo grub2-install /dev/sda3
    sudo: grub2-install: команда не найдена
    root@mint:/# grub2-install /dev/sda3

    Команда «grub2-install» не найдена. Возможно, вы имели в виду:

    command 'grub-install' from deb grub2-common (2.04-1ubuntu26.9)
    command 'grub-install' from deb lupin-support (0.57build1)

    Try: apt install

    root@mint:/# sudo grub-install /dev/sda3
    Выполняется установка для платформы x86_64-efi.
    grub-install: ошибка: не удалось найти каталог EFI.
    root@mint:/# grub-install /dev/sda3
    Выполняется установка для платформы x86_64-efi.
    grub-install: ошибка: не удалось найти каталог EFI.

    Ответить
  11. Вся проблема, что вместо Биоса откривается Граб. Нету надписи нажмите F2. Чертовая Федора.. Снял ССДшник, вошел в Биос ,заменил настройки на MBR легаси, накатил лайв убунту. Радуюсь жизни.

    Ответить

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