Как установить GRUB на Linux: подробная инструкция

Чёрный экран с надписью GRUB rescue> после перезагрузки или сообщение «no bootable device» — типичный признак того, что загрузчик GRUB повреждён или не установлен, и систему придётся загружать заново через установку загрузчика вручную. Такое часто происходит после установки Windows второй системой, переноса Linux на другой диск или неудачного обновления ядра.

В этой статье разберём, как установить GRUB на Linux в разных сценариях: чистая установка, восстановление через LiveCD, переустановка после конфликта с Windows. Инструкции проверены на популярных дистрибутивах — Ubuntu, Debian, Fedora и Arch Linux, но общие принципы применимы практически везде.

Что такое GRUB и когда его нужно устанавливать

GRUB (GRand Unified Bootloader) — стандартный загрузчик большинства дистрибутивов Linux. Он запускается раньше операционной системы, показывает меню выбора ОС и передаёт управление ядру Linux. Без корректно установленного загрузчика компьютер просто не найдёт, откуда загружать систему.

Установка GRUB вручную требуется в нескольких ситуациях:

  • 🔧 Windows, установленная после Linux, перезаписала загрузочную запись
  • 💾 Диск с системой перенесён на другой компьютер или клонирован на новый накопитель
  • ⚙️ Загрузчик повреждён после сбоя обновления или неправильного выключения
  • 🖥️ Система установлена вручную (например, Arch или Gentoo), где GRUB ставится отдельным шагом
  • 🔄 Нужно перейти с другого загрузчика (systemd-boot, rEFInd) на GRUB

Перед началом работы определите, в каком режиме работает ваш компьютер — BIOS (Legacy) или UEFI. От этого зависит вся процедура установки. Проверить режим можно командой ls /sys/firmware/efi: если каталог существует и не пуст — система загружена в режиме UEFI.

Подготовка: определяем диски и разделы

Ошибка на этапе определения разделов — самая частая причина неудачной установки. Поэтому сначала посмотрите структуру дисков командой:

lsblk -f

Вывод покажет все диски, разделы, их файловые системы и точки монтирования. Найдите корневой раздел Linux (обычно это что-то вроде /dev/sda2 или /dev/nvme0n1p2) и, если система в режиме UEFI, раздел EFI System Partition — небольшой раздел с файловой системой FAT32, помеченный типом EFI System.

ЭлементBIOS (Legacy)UEFI
Куда ставится GRUBВ MBR диска, например /dev/sdaВ EFI-раздел (ESP)
Требуемый разделКорневой раздел LinuxКорневой + ESP (FAT32)
Ключевая опция--target=i386-pc--target=x86_64-efi
Типичная командаgrub-install /dev/sdagrub-install --efi-directory=/boot/efi
⚠️ Внимание: при установке в режиме BIOS указывайте именно диск целиком (/dev/sda), а не раздел (/dev/sda1). Установка на раздел приведёт к нерабочему загрузчику.

Установка GRUB из работающей системы

Если Linux загружается, но загрузчик нужно переустановить или обновить (например, после смены диска), всё делается прямо из системы. Сначала убедитесь, что пакет GRUB установлен: в Debian и Ubuntu это sudo apt install grub2 (или grub-efi-amd64 для UEFI), в Fedora — sudo dnf install grub2-efi-x64, в Arch — sudo pacman -S grub efibootmgr.

Для режима UEFI смонтируйте EFI-раздел, если он ещё не смонтирован, и выполните:

sudo mount /dev/sdX1 /boot/efi

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

sudo update-grub

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

sudo grub-install /dev/sda

sudo update-grub

Команда update-grub (в Fedora и Arch — grub2-mkconfig -o /boot/grub2/grub.cfg) генерирует конфигурационный файл меню, сканируя диски на предмет установленных систем. После её выполнения в выводе должны отобразиться найденные ядра Linux и, если установлен os-prober, другие операционные системы.

📊 В каком режиме работает ваш компьютер?
UEFI
BIOS (Legacy)
Не знаю, как проверить
Двойная загрузка с Windows

Восстановление GRUB через LiveCD и chroot

Когда система вообще не загружается, потребуется LiveUSB с любым дистрибутивом — подойдёт тот же установочный образ Ubuntu. Загрузитесь с флешки в режиме «Try without installing» и откройте терминал.

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

sudo mount /dev/sdX2 /mnt

sudo mount --bind /dev /mnt/dev

sudo mount --bind /proc /mnt/proc

sudo mount --bind /sys /mnt/sys

sudo chroot /mnt

Для UEFI-систем дополнительно смонтируйте EFI-раздел внутри chroot: mount /dev/sdX1 /boot/efi. После этого выполните установку GRUB и обновление конфигурации, как в предыдущем разделе. Завершите работу командой exit, отмонтируйте разделы и перезагрузитесь без флешки.

☑️ Восстановление GRUB через LiveCD

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

Критически важно загружать LiveUSB в том же режиме (UEFI или Legacy), в котором установлена система — иначе grub-install запишет загрузчик не того типа, и проблема не решится.

Установка GRUB при чистой ручной установке (Arch, Gentoo)

В дистрибутивах с ручной установкой загрузчик ставится как отдельный шаг после настройки системы. Порядок действий внутри chroot свежеустановленной системы выглядит так:

  • 📦 Установите пакеты grub и efibootmgr (для UEFI)
  • 📁 Смонтируйте ESP-раздел в /boot или /boot/efi
  • ⚙️ Выполните grub-install с нужным target
  • 📝 Сгенерируйте конфиг: grub-mkconfig -o /boot/grub/grub.cfg

Для двойной загрузки с Windows дополнительно поставьте пакет os-prober и раскомментируйте строку GRUB_DISABLE_OS_PROBER=false в файле /etc/default/grub — тогда Windows появится в меню загрузки после повторной генерации конфига.

Почему Windows не появляется в меню GRUB

Чаще всего причина в отключённом os-prober — в современных версиях GRUB он выключен по умолчанию из соображений безопасности. Проверьте файл /etc/default/grub, включите параметр GRUB_DISABLE_OS_PROBER=false, установите os-prober и выполните update-grub повторно. Также убедитесь, что Windows и Linux установлены в одном режиме (обе UEFI или обе Legacy) — смешанные режимы GRUB не увидит.

Типичные ошибки и их решение

Даже при точном следовании инструкции установка может завершиться ошибкой. Разберём самые частые сообщения и что с ними делать.

«grub-install: error: will not proceed with blocklists» — возникает в BIOS-режиме, когда между MBR и первым разделом нет свободного места, либо диск размечен в GPT без специального раздела BIOS boot. Решение: создать раздел типа BIOS boot (размером около 1–2 МБ) в начале диска через gdisk или parted.

«EFI variables are not supported on this system» — система загружена в Legacy-режиме, а вы пытаетесь установить UEFI-версию GRUB. Перезагрузитесь с флешки в UEFI-режиме (выберите вариант с пометкой UEFI в загрузочном меню).

⚠️ Внимание: если после установки GRUB компьютер загружается сразу в Windows, зайдите в настройки UEFI и проверьте порядок загрузки — запись с Linux (например, «ubuntu» или «GRUB») должна стоять первой. Некоторые прошивки игнорируют сторонние загрузчики, тогда помогает опция --removable в grub-install.

Ещё одна ситуация — меню GRUB появляется, но система не стартует, падая в initramfs или emergency mode. Возможная причина — неверные UUID в конфиге, особенно после клонирования диска. Сверьте UUID разделов в выводе blkid с содержимым /etc/fstab и при необходимости исправьте, затем пересоздайте конфиг GRUB.

Проверка результата и обновление конфигурации

После установки не спешите сразу перезагружаться — сначала убедитесь, что конфигурация сгенерирована корректно. Откройте файл /boot/grub/grub.cfg и проверьте, что в нём есть пункты меню menuentry с правильными путями к ядру (файлы вида vmlinuz-*) и корректный параметр root=.

В UEFI-системах дополнительно проверьте, что запись загрузчика появилась в прошивке: команда efibootmgr -v покажет список загрузочных записей и их порядок. Если вашей записи нет — установка в ESP не прошла, вернитесь к шагу монтирования EFI-раздела.

После перезагрузки и успешного входа в систему имеет смысл обновить конфиг ещё раз и настроить поведение меню: таймаут ожидания, систему по умолчанию, параметры ядра. Всё это редактируется в файле /etc/default/grub, после чего обязательно выполняется sudo update-grub — без этого изменения не применятся.

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

Можно ли установить GRUB без LiveCD, если система не грузится?

Да, если доступна оболочка GRUB rescue — можно вручную указать раздел с ядром командами set root, linux, initrd и загрузиться, после чего переустановить загрузчик штатно. Однако для новичка проще и надёжнее использовать LiveUSB.

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

GRUB Legacy — устаревшая версия (0.9x), которая давно не поддерживается. Все современные дистрибутивы используют GRUB 2 с другой структурой конфигурации: вместо ручного редактирования menu.lst конфиг генерируется скриптами из /etc/grub.d и /etc/default/grub.

Удалится ли Windows при установке GRUB?

Нет, установка GRUB не затрагивает данные Windows. Загрузчик лишь добавляется в загрузочную область или EFI-раздел и при наличии os-prober автоматически находит Windows и добавляет её в меню выбора систем.

Какая команда обновляет конфиг GRUB в разных дистрибутивах?

В Debian и Ubuntu — update-grub, в Fedora и RHEL — grub2-mkconfig -o /boot/grub2/grub.cfg, в Arch — grub-mkconfig -o /boot/grub/grub.cfg. По сути это одна и та же операция генерации конфигурационного файла.

Что делать, если после установки GRUB появляется только консоль grub>?

Это значит, что загрузчик установлен, но не нашёл свой конфигурационный файл. Проверьте, что grub.cfg существует по пути /boot/grub/grub.cfg, что раздел /boot смонтирован корректно, и повторите grub-install с правильными параметрами из chroot-окружения.