Содержание статьи:
- Восстановление Grub
- ШАГ 1
- ШАГ 2
- ШАГ 3
- Вопросы и ответы: 4
Всем доброго времени!
Эта заметка будет довольно специфична и пригодится только тем, у кого на компьютере установлено несколько версий ОС: Windows, Linux…
Так вот, при переустановке (обновлении) одной из ОС (обычно, так делает Windows) — может затереться загрузчик Grub, и при включении ПК более не будет появляться «черного» меню с предложением выбрать какую систему загружать… 👀
Разумеется, чтобы не переустанавливать ОС (и не настраивать всё заново) — лучше просто восстановить сам этот загрузчик. Как правило, для этого достаточно загрузиться с LiveCD (👉 Linux Mint, Elementary OS, Ubuntu и пр.), смонтировать корневой раздел Linux и ввести спец. команды для восстановления…
Однако, «ручная» работа через терминал имеет «тонкости» (и не всегда выполняется просто). Поэтому здесь хочу предложить гораздо более легкий вариант! 👌
*
Восстановление Grub
ШАГ 1
Для начала нам нужно подготовить загрузочную флешку (LiveCD) c одним из дистрибутивов Linux. Скорее всего она у вас должна быть!
(Если у вас одна из «разновидностей» Ubuntu — я бы порекомендовал использовать образ 👉 с Linux Mint — т.к. в нем уже предустановлена нужная утилита // Boot Repair).
На всякий случай здесь приведу несколько ссылок в помощь:
1) Как создать загрузочную флешку с Linux;
2) Как загрузиться с USB-флешки или внешнего HDD.
Будем считать, что загрузиться с подготовленной флешки у вас получилось… 👌
*
ШАГ 2
Далее (после загрузки с LiveCD с Linux) нам понадобиться установить утилиту Boot Repair (если у вас последняя версия Linux Mint — то она встроена, и чтобы ее запустить — откройте меню «Пуск / Administration / Boot Repair»).
После можно переходить к ШАГУ 3 (для тех, у кого нет встроенной Boot Repair — чуть ниже я покажу как ее установить).
Linux Mint — Boot Repair
Для инсталляции Boot Repair сначала проверьте, что у вас есть подключение к Интернет.
Далее необходимо открыть терминал (обычно, для этого используют сочетания Ctrl+Alt+T или Win+T) и ввести поочередно следующие три команды (после каждой нажимать Enter!).
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
Xubuntu (для примера) — устанавливаем Boot Repair
После в меню «Пуск» должна появиться ссылка на нашу утилиту (обратите внимание, что на русском она называется как «Восстановление загрузки»… 👇). Кстати, запустить Boot Repair можно и из консоли. Команда:
boot-repair
ПУСК — восстановление загрузки (Boot Repair)
*
ШАГ 3
1) В большинстве случаев утилита Boot Repair справляется с восстановлением Grub в автоматическом режиме. Поэтому порекомендую вам сразу же нажать на первый пункт «Recommended Repair». Пару скринов ниже. 👇
Boot Repair (на английском)
Рекомендуемый способ восстановления (русская версия)
2) Как правило, на весь процесс требуется 1-2 мин. 👇
Процесс пошел!
3) Если всё прошло успешно — увидите окно об успешном восстановлении Grub. Теперь можно выключить ПК (ноутбук), вынуть из USB-порта флешку с LiveCD и проверить как загружается устройство: появляется ли меню Grub?.. 👌
Загрузка успешно восстановлена
GNU Grub version 2.04 — все заработало!
4) Кстати, иногда утилита Boot Repair может попросить вас выполнить ряд команд в терминале (сочетание клавиш для его запуска: Ctrl+Alt+T или Win+T).
Сами команды, разумеется, утилита приводит в своем окне. После их выполнения — нажмите на кнопку «Forward» (если вы не выполнили команды — утилита снова покажет текущее окно). Ничего «опасного» и удаляющего данные с домашних разделов диска —в них быть не должно!
Эти команды нужно будет ввести вручную в терминал (и нажать Enter)
PS
Кстати, у Boot Repair есть расширенные настройки, в которых можно вручную задать ряд параметров. Если вы слабо представляете «что, где и как…» — то лучше это меню не трогать (во избежание лишних проблем…).
*
Другие простые решения, — само собой, приветствуются!
На сим пока всё, удачи!
👋
В данной статье рассматривается процесс восстановления загрузчика GRUB 2.
Причины, по которым может понадобится восстановить GRUB, могут быть разными.
Очень часто требуется восстанавливать GRUB после установки Windows. Если у вас был установлен Linux и вы установили в соседний раздел или на соседний диск Windows, то после перезагрузки компьютера загрузится Windows, как будто Linux вообще пропал. Загрузчик GRUB даже не появился. Иногда подобное происходит при обновлении существующего Windows.
Иногда требуется восстановление GRUB после установки Linux, когда неверно был выбран раздел для установки загрузчика.
Во всех случаях нужно выполнить восстановление загрузчика GRUB. Существуют разные способы восстановления. В данном руководстве рассматривается процесс использованием загрузочного Live-образа Linux. Загрузившись в Live-систему вам нужно будет ввести несколько команд, чтобы выполнить восстановление. Рассматривается способ восстановления без использования сторонних программ.
Также иногда различают процесс восстановления для систем с BIOS и с UEFI. Описанный ниже способ рассматривает оба этих случая. Я тестировал его как на компьютерах с традиционным BIOS, так и с UEFI.
Подготовка
Для восстановления GRUB потребуется загрузочный диск или флешка с дистрибутивом Linux. Если у вас его нет, то нужно скачать образ с дистрибутивом. Например, можно скачать ISO образ Ubuntu.
Для создания загрузочной флешки можно воспользоваться программой Etcher. Она работает в Linux, Windows и MacOS. Подробная инструкция: Как создать загрузочную флешку.
Загрузка в Live-режиме
Теперь нужно загрузиться с созданного диска или флешки.
Чтобы это сделать сначала нужно в BIOS выбрать приоритет загрузки с CD/DVD или с USB (если вы используете флешку).
На современных компьютерах, где используется BIOS/UEFI, для входа в BIOS нужно при включении компьютера удерживать специальную клавишу. У разных производителей клавиша может быть разной. Обычно это: F2, Del, F10, Esc, F11 или F3.
На старых компьютерах, где используется классический BIOS, чтобы войти в BIOS нужно при загрузке компьютера, в самом начале, когда появляется логотип материнской платы, нажать специальную клавишу. Для разных материнских плат клавиша может быть разной. Обычно это одна из клавиш: Del, F1, F2, F8, F10 или какая-нибудь другая, или даже сочетание клавиш. Подробности: Настройка BIOS для загрузки с CD/DVD-диска или с USB-носителя
Открываем терминал
Итак, вы загрузились в Live-режиме. Теперь нужно открыть терминал.
В Ubuntu и некоторых других дистрибутивах это можно сделать нажатием сочетания клавиш Ctrl+Alt+T. Или запустить терминал через меню программ.
Определение разделов
Теперь нужно определить раздел диска, на котором был установлен GRUB.
Выведем список разделов, для этого выполняем команду (в конце команды стоит строчная буква L):
sudo fdisk -l
Вывод fdisk для BIOS
Пример вывода команды:
В моем случае мы видим 2 диска: /dev/sda (SSD диск) и /dev/sdb (флешка, с которой сейчас загружена Live-система).
Нас интересует диск /dev/sda. На диске /dev/sda создано несколько разделов. В моем случае /dev/sda4, на котором установлен Windows, а также 4 раздела с пометкой Linux (см. последний столбец таблицы). У вас скорее всего может быть один раздел Linux (корневой раздел) или два раздела (корневой и home). На одном из этих разделов установлен GRUB.
То есть из таблицы вы должны определить какой раздел является корневым, на нем скорее всего у вас установлен GRUB. В моем случае GRUB установлен в раздел /dev/sda2. Далее по тексту я буду его использовать (вы должны будете указывать свой раздел).
Иногда бывает, что для загрузчика GRUB выделен отдельный раздел (он называется boot-раздел). Если это так, то на следующем шаге вам нужно будет примонтировать корневой раздел и раздел с загрузчиком.
Вывод fdisk для UEFI
Для новых компьютеров с UEFI вывод команды fdisk -l может быть примерно следующим:
Нам нужно определить, на каком разделе установлен Linux (корневой раздел), а также определить EFI-раздел. В моем случае это разделы: /dev/nvme0n1p5 и /dev/nvme0n1p1, которые расположены на диске /dev/nvme0n1.
Монтирование разделов
Примонтируем корневой раздел. Выполняем команду (вместо /dev/sda2 вы должны указать свой раздел):
sudo mount /dev/sda2 /mnt
Мы примонтировали раздел /dev/sda2 в директорию /mnt.
Если для загрузчика у вас выделен отдельный раздел, то нужно примонтировать еще и его (вместо /dev/sdX укажите ваш boot-раздел):
sudo mount /dev/sdX /mnt/boot
Теперь можно посмотреть содержимое директории /mnt, чтобы убедиться, что мы примонтировали верный раздел:
ls /mnt
Вывод команды должен быть примерно следующим. Обратите внимание есть ли в этом списке каталог /boot, так как именно в нем установлен GRUB.
Также можно проверить, что директория boot не пустая:
ls /mnt/boot
У меня вывод команды выглядит следующим образом. Обратите внимание на присутствие каталога с именем grub.
Далее нужно создать ссылки на несколько директорий, к которым GRUB должен иметь доступ для обнаружения всех операционных систем. Для этого выполните команды:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
Монтирование EFI-раздела
Если у вас используется UEFI, то еще нужно примонтировать EFI-раздел в директорию /mnt/boot/efi (выше я указал пример вывода команды fdisk -l в котором показан EFI-раздел):
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
Выполняем chroot на /mnt
На предыдущем шаге мы смонтировали все необходимые директории в директорию /mnt. Теперь переключимся (выполним chroot) на данную директорию. Выполняем команду:
sudo chroot /mnt
Генерация файла конфигурации GRUB
Данный шаг нужно выполнять не всем. Если у вас был установлен GRUB и вы уверены, что его конфигурация верная, то можно перейти к следующему шагу.
Для генерации файла конфигурации GRUB используется команда update-grub. Данная команда автоматически определяет файловые системы на вашем компьютере и генерирует новый файл конфигурации. Выполняем команду:
sudo update-grub
В выводе команды будет показано, какие операционные системы были найдены.
Если вдруг утилита update-grub не определила ваш Windows (у меня такое было для UEFI), то можно будет запустить update-grub повторно уже из вашей Linux-системы, когда вы в нее загрузитесь (мне это помогло и Windows определился).
Устанавливаем GRUB
Осталось выполнить установку GRUB на диск. Мы определили раздел на котором у нас установлен GRUB на первом шаге данного руководства. В моем случае это раздел /dev/sda2, который расположен на диске /dev/sda.
Для установки GRUB используется команда grub-install, которой нужно передать в качестве параметра диск, на который будет выполняться установка (в моем случае это диск /dev/sda):
grub-install /dev/sda
Перезагрузка компьютера
Выходим из окружения chroot, для этого выполняем команду:
exit
Отмонтируем все разделы, которые мы примонтировали:
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev/pts
sudo umount /mnt/dev
Если вы монтировали boot-раздел, то его тоже нужно отмонтировать:
sudo umount /mnt/boot
Если вы монтировали EFI-раздел, отмонтируем:
sudo umount /mnt/boot/efi
Отмонтируем корневой раздел:
sudo umount /mnt
Перезагружаем компьютер. Для этого выполняем команду:
reboot
Если во время перезагрузки компьютера меню GRUB не появилось, то это еще не значит, что он не восстановился. Возможно, просто установлена нулевая задержка и меню не показывается. Чтобы показать меню GRUB нужно во время загрузки, после того, как появился логотип материнской платы:
- удерживать клавишу Shift, если у вас классический BIOS;
- нажать Esc, если у вас UEFI.
Если у вас, при выполнении grub-update, не определился Windows и не был добавлен в меню GRUB, то уже загрузившись в вашу систему Linux (не LiveCD), откройте терминал и выполните:
sudo grub-update
Мне это помололо на компьютере, который использует UEFI.
Шпаргалка
Мы рассмотрели процесс восстановления загрузчика GRUB 2. Для удобства привожу краткую шпаргалку по командам, которые мы выполняли. Учитывайте, что названия и имена разделов (/dev/sd…) у вас могут отличаться.
sudo fdisk -l
sudo mount /dev/sda2 /mnt
# sudo mount /dev/sdaX /mnt/boot
# sudo mount /dev/sdaY /mnt/boot/efi
sudo mount --bind /dev /mnt/dev && sudo mount --bind /dev/pts /mnt/dev/pts && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
sudo update-grub
grub-install /dev/sda
Как вернуть меню выбора ОС после установки Windows рядом с Linux? Рассказываем о двух способах восстановления загрузчика GRUB — для новичков (с утилитой boot-repair) и для продвинутых пользователей (с помощью chroot).
Поставили Windows рядом с Ubuntu, и теперь можете запустить только ОС от Майкрософт? Рассказываем, как восстановить загрузчик GRUB после установки Windows 10 или 11 — вам хватит 20 минут, даже если вы новичок в администрировании VPS.
Аренда VPS/VDS виртуального сервера от AdminVPS — это прозрачная и честная услуга с доступной ценой
Представьте: вы установили Ubuntu, настроили систему, а потом решили поставить Windows рядом. Но после перезагрузки вместо привычного меню GRUB (grand unified bootloader) вы увидите только загрузчик Windows. Это происходит потому, что Windows не дружит с альтернативными загрузчиками: при установке она перезаписывает главную загрузочную запись (MBR) или заменяет файлы в разделе EFI. И если GRUB, стандартный загрузчик для Linux, может работать с несколькими ОС, то загрузчики NTLDR (Windows 11) и Bootmgr (Windows 10) не умеют. Когда вы ставите Windows после Ubuntu, они просто «не видят» ОС, установленную первой.
Что нужно знать перед восстановлением GRUB
Прежде всего разберёмся с базовыми понятиями — это поможет избежать ошибок и сэкономит время.
UEFI или BIOS
Современные компьютеры используют два типа firmware (микропрограммы для управления железом):
- BIOS — это устаревший стандарт, загрузчик записывается в первый сектор диска (mbr);
- UEFI — современная замена BIOS, работает с разделом EFI (fat32), где хранятся файлы загрузчиков в формате .efi.
Чтобы проверить, какой режим на вашем компьютере, зайдите в bios/uefi (нажмите клавишу del, f2 или f12 при запуске). Если в настройках есть пункты Secure Boot, UEFI Mode — значит, у вас используется UEFI.
Или выполните в Linux:
ls /sys/firmware/efi
Если директория существует — система загрузилась через UEFI.
Live USB с Linux
Чтобы восстановить GRUB, понадобится загрузочная флешка с любым дистрибутивом (Ubuntu, Fedora, Mint).
Как создать Live USB:
- Скачайте iso-образ с официального сайта ОС.
- Создайте Live USB с помощью специальных программ:
- Rufus (на Windows) — выберите «GPT для UEFI» или «MBR для BIOS» в зависимости от прошивки вашего компьютера;
- BalenaEtcher (на Linux/Mac).
- Проверьте целостность образа после записи (в некоторых программах есть опция «verify»).
Как восстановить GRUB из-под Windows: два способа
Восстановление через boot-repair (для новичков)
Если вы не хотите работать в терминале, воспользуйтесь утилитой boot-repair. Она автоматизирует 90 % работы.
Шаг 1. Загрузка с Live USB
- Вставьте флешку, перезагрузите компьютер.
- Нажмите клавишу выбора загрузочного устройства (обычно f12, ESC или f8).
- Выберите флешку в меню.
Если у вас UEFI, загружайтесь в режиме UEFI, а не в Legacy! Иначе раздел EFI не будет обнаружен.
Шаг 2. Установка boot-repair
- Откройте терминал в Live-системе.
- Добавьте репозиторий и установите утилиту (далее все команды выполняются в режиме суперпользователя):
add-apt-repository universe # добавляйте репозиторий в Ubuntu до версии 22.04
apt update
apt install -y boot-repair
Шаг 3. Запуск и настройка
- Запустите boot-repair:
boot-repair
- Выберите «recommended repair».
- Следуйте инструкциям на экране: утилита сама определит установленные ОС, восстановит GRUB и обновит конфигурацию.
Если возникли ошибки:
- проверьте подключение к Интернету (boot-repair иногда скачивает дополнительные пакеты);
- убедитесь, что live-система загружена в правильном режиме (uefi/bios).
Ручное восстановление через chroot (для продвинутых пользователей)
Если первый метод не сработал или вы хотите понять процесс изнутри, восстановите GRUB вручную.
Шаг 1. Определение разделов
- Загрузитесь с Live USB.
- Откройте терминал и узнайте список дисков:
fdisk -l
или
lsblk -f
Команда lsblk -f показывает типы файловых систем и точки монтирования.
- Пример вывода lsblk:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ntfs Windows ABCD-1234
├─sda2 ext4 Ubuntu 5678-90AB
└─ sda3 vfat ESP CDEF-1234
Обратите внимание на:
- корневой раздел Linux (ext4, btrfs и т. д.) — нам нужен именно он;
- раздел EFI (vfat) — если система на UEFI;
- раздел подкачки (swap) — не нужен для восстановления.
Шаг 2. Монтирование разделов
- Создайте точку монтирования:
mkdir /mnt/Linux
- Примонтируйте корневой каталог с Ubuntu:
mount /dev/sda2 /mnt/Linux
Для UEFI примонтируйте каталог EFI:
mount /dev/sda3 /mnt/Linux/boot/efi
Если у вас отдельный раздел /boot, монтируйте его:
mount /dev/sdaX /mnt/Linux/boot
Шаг 3. Вход в chroot
Chroot (change root) — это команда, которая изменит видимый корневой каталог, чтобы вы вошли в систему из live-окружения.
- Привяжите системные директории:
mount --bind /dev /mnt/Linux/dev
mount --bind /proc /mnt/Linux/proc
mount --bind /sys /mnt/Linux/sys
- Войдите в среду chroot:
chroot /mnt/Linux
Шаг 4. Установка GRUB
- Если прошивка BIOS (MBR):
grub-install /dev/sda # здесь sda — диск, а не раздел
update-grub
- Если прошивка UEFI (GPT), убедитесь, что пакет grub-efi установлен:
apt install grub-efi-amd64
Перед grub-install нужно обновить загрузочный список в efibootmgr, иначе в некоторых UEFI-системах GRUB не будет загружаться:
efibootmgr -c -d /dev/sda -p 1 -L "GRUB" -l "\EFI\GRUB\grubx64.efi"
Здесь -d /dev/sda — диск, -p 1 — номер EFI-раздела (уточните их с помощью lsblk).
Установите GRUB в раздел EFI:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
- Обновите конфигурацию:
update-grub
- После update-grub в выводе должны появиться строки «found Windows» или «found os probe entries».
Шаг 5. Выход и перезагрузка
- Выйдите из chroot:
sync # запись данных
exit
- Отмонтируйте разделы:
sudo umount -R /mnt/Linux
- Перезагрузите компьютер.
Возможные проблемы и их решение
Даже если вы всё сделали правильно, могут возникнуть проблемы.
GRUB не видит Windows
Причина: os-prober не активирован (утилита для автоматического обнаружения установленных ОС).
Решение. В /etc/default/grub раскомментируйте строку:
GRUB_DISABLE_OS_PROBER=false
Установите os-prober:
apt install os-prober
Обновите загрузчик (update-grub).
Ошибка «grub-install: error: cannot find efi directory»
Причина: неправильно указан путь к разделу EFI.
Решение. Проверьте, примонтирован ли раздел EFI в /boot/efi. Проверьте тип раздела: он должен быть vfat (FAT32).
Загрузчик установился, но система не загружается
Причина: неверный порядок загрузки в uefi/bios или повреждённые файлы GRUB. Также включённый Secure Boot может блокировать работу GRUB.
Решение. Зайдите в настройки UEFI/BIOS и выберите GRUB в качестве первого загрузочного устройства. Отключите Secure Boot в UEFI. Если это не помогло — переустановите GRUB через chroot.
Как избежать проблем в будущем
- Если планируете устанавливать две операционные системы, то сначала установите Windows, потом Linux.
- Создайте резервную копию EFI/MBR.
Для BIOS:
dd if=/dev/sda of=backup.mbr bs=512 count=1
Для UEFI — просто скопируйте содержимое раздела EFI в место для хранения.
- Создайте отдельный раздел EFI для Linux. Это минимизирует конфликты с Windows.
Заключение
Восстановить загрузчик GRUB после установки Windows — задача, которая кажется сложной только на первый взгляд. Даже если вы новичок, boot-repair справится за пару кликов. Для тех, кто хочет глубже разобраться в процессе, подойдёт ручной способ через chroot.
Наши технические специалисты помогут вам определиться с конфигурацией и настроят ваш VPN-сервер под ключ, если это будет необходимо.
Читайте в блоге:
- Как поменять TTL для раздачи Интернета: настройка Default TTL и изменение значения на 64 или 65
- Что такое директория в Linux
- Как сменить владельца папки и изменить права доступа в Linux
Как известно, после установки/переустановки системы Windows на компьютере, где раньше была установлена система Linux или несколько систем, эгоистичный виндовский MBR «затирает» загрузчик GRUB и при включении компьютера загружается только Windows, без возможности загружать систему/системы Linux.
В сети есть много инструкций на тему восстановления загрузчик GRUB после установки Windows, но лично я использую метод, который исправно работает.
Необходимые условия:
Обязательное подключение к интернет.
Образ дистрибутива Ubuntu/Linux Mint, который установлен на компьютере, записанный на диск/флешку.
1. Вставляем в компьютер диск/флешку с диcтрибутивом, перезагружаемся и загружаем образ системы Linux в Live-режиме на английском языке.
2. После того как система загрузилась открываем браузер Firefox, вводим в поиск Compizomania, открываем сайт и вводим в поиск по блогу boot repair:
3. Откройте любую страницу с инструкцией по установке Boot Repair и выполните установку согласно инструкции:
Примечание 1. Во время установки любой программы в Live-режиме терминал под именем Ubuntu не будет запрашивать пароль, но программа будет установлена:
4. После установки откройте Boot Repair из меню. Должно начаться сканирование системы программой:
5. По завершении сканирования откроется основное окно Boot Repair:
Вы можете сразу нажать на кнопке Recommend repair, чтобы начать восстановление, а лучше убедитесь куда будет установлен загрузчик GRUB, нажатием на кнопке Advanced options ->GRUB location:
6. Нажмите Apply (Применить), после чего начнётся обновление загрузчика GRUB на указанный раздел с системой:
Примечание 2. В период восстановления будьте внимательны, т.к. могут быть заданы вопросы и инструкции с терминальными командами, которые следует выполнить для продолжения восстановления.
7. По окончании восстановления загрузчика GRUB, перезагрузите компьютер.
Вот таким образом я восстанавливаю загрузчик GRUB после переустановки Windows и меня данный метод ещё не подводил.
P.S. Кстати, этот же метод должен работать после установки Linix систем на компьютер с UEFI, когда также не отображается GRUB.
Удачи.
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
- Восстановление в Boot Repair
- Выводы
Восстановление 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 не вызовет у вас проблем в любых обстоятельствах, независимо от того, есть ли у вас диск с другим дистрибутивом или нет. Если остались вопросы, напишите в комментариях!