Что такое загрузчик GRUB и как он работает

Чёрный экран с надписью grub rescue> или меню выбора операционных систем при старте компьютера — это и есть проявление работы GRUB, загрузчика, который встречается практически на каждой Linux-машине. Если система перестала загружаться после обновления ядра или установки Windows второй системой, причина почти всегда связана именно с ним.

GRUB (Grand Unified Bootloader) — это программа-загрузчик, которая запускается сразу после прохождения самотестирования оборудования (POST) и передаёт управление ядру операционной системы. Без него компьютер с Linux просто не узнает, откуда и что загружать. Разберём, как он устроен, чем отличаются его версии и что делать при типичных сбоях.

Зачем нужен загрузчик и какое место занимает GRUB

Когда вы нажимаете кнопку питания, процессор ещё «не знает» ни о файловых системах, ни об операционных системах. Прошивка материнской платы — BIOS или UEFI — проверяет оборудование и ищет на диске небольшую программу, способную продолжить запуск. Этой программой и является загрузчик.

Задачи, которые решает GRUB:

  • 🐧 загрузка ядра Linux и образа initramfs в оперативную память;
  • 💻 выбор между несколькими установленными системами (dual boot с Windows, несколько дистрибутивов);
  • ⚙️ передача ядру параметров запуска — например, quiet, splash или режим восстановления;
  • 🔄 выбор одного из нескольких установленных ядер, если после обновления старое сохранилось.

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

Версии GRUB: Legacy и GRUB 2

Существует два поколения загрузчика, и путать их не стоит — у них разные конфигурационные файлы и команды. GRUB Legacy (версии 0.9x) считается устаревшим и почти не встречается на современных системах, а актуальным стандартом де-факто стал GRUB 2.

КритерийGRUB LegacyGRUB 2
Конфигурацияmenu.lst, правится вручнуюgrub.cfg, генерируется автоматически
Нумерация разделовс нулядиски с нуля, разделы — с единицы
Поддержка UEFIотсутствуетесть
Статусустарелиспользуется в большинстве дистрибутивов

Определить установленную версию можно командой в терминале:

grub-install --version

Если вывод содержит номер вида 2.x — перед вами GRUB 2. Далее в статье речь идёт именно о нём, поскольку именно эта версия установлена в Ubuntu, Debian, Fedora, Linux Mint и других актуальных дистрибутивах.

📊 Как вы чаще всего сталкиваетесь с GRUB?
Меню выбора ОС при dual boot
Ошибка grub rescue
Настройка после установки Linux
Только читаю теорию

Как происходит загрузка системы через GRUB

Процесс старта выглядит как цепочка передачи управления. На системах с классическим BIOS прошивка считывает первый сектор диска — MBR, куда записан начальный код GRUB. Тот подгружает основные модули, находит конфигурацию и показывает меню либо сразу запускает систему по умолчанию.

На машинах с UEFI схема иная: прошивка обращается к специальному разделу ESP (EFI System Partition) с файловой системой FAT32 и запускает оттуда исполняемый файл загрузчика, например grubx64.efi. Проверить, в каком режиме работает ваша система, можно так:

[ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS"

После выбора пункта меню GRUB загружает ядро и initramfs в память, передаёт ядру параметры командной строки и отдаёт ему управление. Дальше загрузкой занимается уже сама система — загрузчик свою работу завершил.

Где хранится конфигурация GRUB

Главный файл меню — /boot/grub/grub.cfg — напрямую редактировать не следует: он перезаписывается при каждом обновлении ядра или запуске утилиты генерации. Вместо этого настройки задаются через файл /etc/default/grub и скрипты в каталоге /etc/grub.d/.

Типичный порядок изменения настроек такой: вы правите параметры в /etc/default/grub (например, таймаут меню GRUB_TIMEOUT или систему по умолчанию GRUB_DEFAULT), а затем применяете изменения командой:

sudo update-grub

В некоторых дистрибутивах вместо неё используется эквивалент grub2-mkconfig -o /boot/grub/grub.cfg — уточните в документации своего дистрибутива, какой вариант принят именно там.

⚠️ Внимание: ручная правка grub.cfg — частая причина потери загрузки после ближайшего обновления. Все изменения вносите только через /etc/default/grub и перегенерируйте конфигурацию официальной командой.

Типичные проблемы и их признаки

Чаще всего о неполадках GRUB сообщает экран с приглашением grub rescue> — это аварийный режим, в который загрузчик переходит, когда не может найти свои модули или конфигурацию. Возможные причины: повреждение загрузочной записи, изменение разметки диска, удаление раздела с Linux, установка Windows поверх Linux.

Другой сценарий — система грузится сразу в Windows, и меню выбора пропало. Обычно это значит, что установщик Windows перезаписал загрузочную запись, и GRUB нужно просто восстановить, данные Linux при этом не пострадали.

  • 🆘 grub rescue> — загрузчик не находит раздел с модулями;
  • ⏱️ меню мелькает слишком быстро — маленький GRUB_TIMEOUT;
  • 🪟 грузится только Windows — затёртая загрузочная запись;
  • 🧱 чёрный экран после обновления ядра — возможно, конфигурация не перегенерировалась корректно.
Что можно сделать прямо из grub rescue

В минимальном режиме доступны команды ls (показать диски и разделы), set (посмотреть переменные), insmod (подгрузить модуль). Найдя раздел с /boot, иногда удаётся вручную указать prefix и root, загрузить модуль normal и попасть в обычное меню. Это временное решение — после входа в систему загрузчик нужно переустановить.

Как восстановить GRUB: общий безопасный порядок

Точные команды зависят от режима (BIOS или UEFI) и разметки диска, поэтому ниже — общий порядок, который применим в обоих случаях. Вам понадобится загрузочная флешка с тем же или совместимым дистрибутивом в режиме Live.

☑️ Восстановление GRUB с Live-флешки

Выполнено: 0 / 6

Суть метода: из Live-окружения вы «входите» в установленную систему через chroot и заново устанавливаете загрузчик штатными средствами дистрибутива. Это обратимая операция — она не трогает пользовательские файлы, а лишь перезаписывает загрузочный код и конфигурацию.

⚠️ Внимание: перед grub-install убедитесь, что указываете правильный диск (например, /dev/sda, а не раздел вида /dev/sda1 — если только речь не об установке в раздел осознанно). Ошибка в имени устройства может повредить загрузку другого диска.

Если после восстановления меню появилось, но Windows в нём нет, загрузитесь в Linux и снова выполните sudo update-grub — при установленном пакете os-prober загрузчик обычно находит другие системы автоматически. В некоторых дистрибутивах os-prober по умолчанию отключён, тогда его включают параметром GRUB_DISABLE_OS_PROBER=false в /etc/default/grub.

Альтернативы GRUB

Хотя GRUB 2 — стандарт для большинства дистрибутивов, существуют и другие загрузчики. На системах с UEFI нередко применяется systemd-boot — более простой и минималистичный вариант, однако он работает только в режиме UEFI. Для старых машин встречается LILO, а rEFInd используют как удобный графический менеджер загрузки, в первую очередь на компьютерах Apple и в сложных конфигурациях с несколькими ОС.

Выбор зависит от задач: для dual boot с Windows и поддержки разных файловых систем GRUB остаётся наиболее универсальным решением, а systemd-boot подходит тем, кто ценит простоту и готов отказаться от режима Legacy BIOS.

Часто задаваемые вопросы

Можно ли удалить GRUB, если Linux больше не нужен?

Да, но просто удалить раздел Linux недостаточно — загрузочный код останется, и компьютер уйдёт в grub rescue. Корректный путь: сначала восстановить загрузчик Windows (например, средствами установочного носителя Windows), и только потом удалять разделы Linux.

Почему после обновления Windows пропало меню GRUB?

Крупные обновления Windows иногда меняют порядок загрузки в UEFI, ставя свой загрузчик первым. Обычно достаточно зайти в настройки UEFI и вернуть запись с GRUB (часто она называется по имени дистрибутива, например «ubuntu») на первое место.

Чем отличается GRUB от BIOS?

BIOS (или UEFI) — это прошивка материнской платы, она работает всегда и независимо от операционной системы. GRUB — программа на диске, которую прошивка запускает следующим шагом. Одно не заменяет другое: они работают последовательно.

Как посмотреть меню GRUB, если оно скрыто?

На многих системах с одной ОС меню не показывается. Удерживайте клавишу Shift (для BIOS-режима) или нажимайте Esc (для UEFI) сразу после включения — меню должно появиться. Точное поведение может отличаться в зависимости от дистрибутива.

Безопасно ли править параметры ядра в меню GRUB?

Да: нажатие клавиши «e» на пункте меню открывает редактирование только на один запуск, изменения не сохраняются. Это штатный способ, например, добавить параметр для диагностики. Если система не загрузилась — просто перезагрузитесь, и конфигурация вернётся к исходной.