Top.Mail.Ru

Я читаю: GRUB 2: как работает главный загрузчик большинства Linux-систем

Загрузка

GRUB 2: как работает главный загрузчик большинства Linux-систем

GRUB 2 остаётся наиболее распространённым загрузчиком операционных систем семейства Linux уже более 20 лет. Несмотря на то что большинство пользователей почти никогда не взаимодействует с ним напрямую, именно GRUB 2 отвечает за запуск ядра, передачу параметров и возможность выбора операционной системы при двойной загрузке. Понимание его устройства помогает быстро восстанавливать систему после сбоев и настраивать нестандартные сценарии загрузки.

Краткая история и роль GRUB

Первая версия GRUB появилась в 1995 году. В начале 2000-х началась масштабная переработка, результатом которой стал GRUB 2 — современная версия, используемая практически во всех актуальных дистрибутивах Linux (Arch, Ubuntu, Fedora, Debian, openSUSE, ALT Linux, Astra Linux и др.).

GRUB 2 выполняет следующие ключевые задачи:

  • загружает ядро Linux и initramfs в оперативную память;
  • передаёт ядру параметры командной строки (root=, ro/rw, quiet, splash и др.);
  • поддерживает цепную загрузку (chainloading) других операционных систем — Windows, macOS, BSD;
  • предоставляет меню выбора ОС и командную оболочку для ручной загрузки.

Если GRUB 2 по какой-то причине не запускается или меню не отображается — чаще всего это и есть причина, по которой система «зависает на чёрном экране с мигающим курсором».

Как увидеть меню GRUB 2

По умолчанию во многих дистрибутивах меню скрыто, если установлен только один Linux. Чтобы оно всегда появлялось при загрузке системы:

  1. Откройте файл /etc/default/grub с правами администратора.
  2. Установите или измените параметры:
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10

(10 — время ожидания в секундах; можно установить 5 или 30).

  1. Обновите конфигурацию:
sudo update-grub

(на Debian/Ubuntu-основанных системах)
или

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

(на Arch, Fedora, openSUSE и др.).

После перезагрузки появится текстовое или графическое меню GRUB 2.

Ручная загрузка через командную строку GRUB

Если автоматическая загрузка сломалась, можно запустить систему вручную:

  1. В меню GRUB нажмите c → откроется командная строка GRUB (>).
  2. Посмотрите доступные диски и разделы:
ls

Обычно вывод выглядит так: (hd0) (hd0,gpt1) (hd0,gpt2) ...

  1. Найдите нужный раздел с Linux:
ls (hd0,gpt5)/

(покажет содержимое раздела — ищите папки boot, etc, home и т.д.).

  1. Установите корневой раздел:
set root=(hd0,gpt5)
  1. Укажите ядро и параметры:
linux /boot/vmlinuz-6.8.0-45-generic root=/dev/sda5 ro quiet splash

(версия ядра и путь могут отличаться — смотрите по содержимому /boot).

  1. Укажите initramfs:
initrd /boot/initrd.img-6.8.0-45-generic
  1. Запустите загрузку:
boot

Этот способ часто спасает систему, когда grub.cfg повреждён или после неудачного обновления ядра.

UEFI vs Legacy BIOS: важные различия

Современные компьютеры используют UEFI, старые — BIOS (Legacy). Это влияет на установку и поведение GRUB:

UEFI
Использует таблицу GPT
Файлы загрузчика хранятся в разделе EFI (обычно монтируется в /boot/efi или /efi)
Основные файлы: /EFI/ubuntu/grubx64.efi, shimx64.efi (для Secure Boot)
Установка: grub-install --target=x86_64-efi --efi-directory=/boot/efi

Legacy BIOS
Использует MBR
Загрузчик записывается в первые 512 байт диска (MBR)
Установка:

grub-install /dev/sda

(без номера раздела!)

Важно: никогда не указывайте раздел при установке на MBR-систему — это приведёт к ошибке.

Полезные возможности настройки

GRUB 2 позволяет:

  • загружать ISO-образы напрямую (без записи на флешку);
  • устанавливать собственные фоны и темы;
  • менять порядок и названия пунктов меню;
  • добавлять собственные записи в /etc/grub.d/40_custom.

Пример добавления загрузки ISO (Puppy Linux):

В файл /etc/grub.d/40_custom добавить:

menuentry "Puppy Linux ISO" {
    set isofile="/iso/puppy.iso"
    loopback loop $isofile
    linux (loop)/vmlinuz pmedia=iso
    initrd (loop)/initrd.gz
}

Затем:

sudo update-grub

Рекомендации

  • Никогда не редактируйте /boot/grub/grub.cfg вручную — файл перезаписывается автоматически.
  • Экспериментируйте только в виртуальной машине (VirtualBox, VMware).
  • Храните резервную копию рабочего grub.cfg и /etc/default/grub.
  • При двойной загрузке с Windows устанавливайте GRUB последним — он умеет находить Windows, а Windows обычно перезаписывает загрузчик.

GRUB 2 — мощный, но требующий аккуратности инструмент. Базовое понимание его работы позволяет самостоятельно восстановить систему в большинстве типичных аварийных ситуаций и настроить загрузку под свои задачи.

svg

Что вы думаете?

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

Комментировать

svg
Быстрая навигация
  • 01

    GRUB 2: как работает главный загрузчик большинства Linux-систем