Введение / Зачем это нужно
GRUB (Grand Unified Bootloader) — это критически важный компонент, который загружает операционную систему. Если его конфигурация повреждена (например, после неудачного обновления, сбоя диска или переустановки Windows), компьютер может выдавать ошибки grub rescue>, no such partition или просто зависать на чёрном экране. Данное руководство поможет вам восстановить загрузчик без переустановки системы и без потери данных. Мы рассмотрим как классический BIOS/Legacy, так и современный UEFI.
Требования / Подготовка
Перед началом убедитесь, что у вас есть:
- Другой компьютер или живой USB-носитель (флешка) с любой Linux-системой (рекомендуется Ubuntu/Debian или их live-образы).
- Базовые навыки работы с терминалом и понимание, как mounts работают в Linux.
- Знание, на каком разделе находится ваша основная система (если не помните, мы это определим на первом шаге).
- Доступ к BIOS/UEFI для настройки загрузки с USB-носителя (обычно клавиша
F2,F12,Delпри включении).
⚠️ Важно: Если у вас шифрованная система (LUKS), процесс восстановления GRUB будет сложнее и потребует дополнительных шагов по открытию контейнера. Данное руководство предполагает обычные (нешифрованные) разделы.
Шаг 1: Загрузка с Live-USB и определение разделов
- Вставьте live-USB и загрузитесь с него, выбрав опцию "Try Ubuntu" (или аналогичную).
- После загрузки откройте терминал (
Ctrl+Alt+T). - Выполните команду, чтобы увидеть все диски и разделы:
sudo fdisk -l
Или:lsblk -f - Найдите ваш основной диск (обычно
/dev/sda,/dev/nvme0n1или/dev/vda). Выходной список будет примерно таким:NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat ESP ABCD-1234 # Раздел ESP (UEFI) ├─sda2 ext4 root 1234abcd-5678-ef90-1234-567890abcdef # Ваш корневой раздел (/) └─sda3 swap swap-uuid-1234- Для UEFI вам понадобятся два раздела: корневой (
ext4,xfs) и ESP (FAT32, обычно первый, ~100-500 МБ, может быть помечен какbootилиESP). - Для BIOS/Legacy понадобится только корневой раздел (
ext4,xfs).
- Для UEFI вам понадобятся два раздела: корневой (
Запишите имена ваших разделов (например, /dev/sda2 для корня, /dev/sda1 для ESP).
Шаг 2: Монтирование разделов и вход в chroot
Теперь смонтируем вашу систему в каталог /mnt, чтобы работать с ней как с корневой.
- Смонтируйте корневой раздел (замените
/dev/sda2на ваш):sudo mount /dev/sda2 /mnt - Если у вас UEFI, смонтируйте раздел ESP в
/mnt/boot/efi:sudo mount /dev/sda1 /mnt/boot/efi💡 Совет: Если у вас несколько дисков, убедитесь, что монтируете разделы с той же системы, которую пытаетесь восстановить.
- Смонтируйте виртуальные файловые системы, необходимые для работы
grub-installиupdate-grub:for fs in dev proc sys run; do sudo mount --bind /$fs /mnt/$fs; done - Перейдите в chroot-окружение вашей системы:
Приглашение командной строки изменится, например, наsudo chroot /mntroot@ubuntu:/#. Теперь все команды будут выполняться внутри вашей повреждённой системы.
Шаг 3: Переустановка и обновление GRUB
Внутри chroot выполните следующие команды.
- Переустановите GRUB на диск (не на раздел!). Замените
/dev/sdaна ваш диск (например,/dev/nvme0n1), а не на раздел (/dev/nvme0n1p1).- Для BIOS/Legacy:
grub-install /dev/sda - Для UEFI команда та же, но GRUB автоматически найдет и использует смонтированный ESP:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB⚠️ Если
grub-installв UEFI выдаёт ошибку, проверьте, что раздел ESP смонтирован именно в/boot/efiи имеет типvfat.
- Для BIOS/Legacy:
- Обновите конфигурацию GRUB (просканирует ядра и сгенерирует меню):
update-grub
Вы должны увидеть строкиFound linux image...иFound initrd image...для вашего ядра. - (Опционально) Проверьте конфигурацию:
cat /boot/grub/grub.cfg | head -20
Убедитесь, что файл не пустой.
Шаг 4: Выход и перезагрузка
- Выйдите из chroot:
exit - Размонтируйте все разделы в правильном порядке:
for fs in run sys proc dev; do sudo umount /mnt/$fs; done sudo umount /mnt/boot/efi # Только для UEFI sudo umount /mnt - Извлеките live-USB и перезагрузите компьютер:
sudo reboot
Проверка результата
После перезагрузки вы должны увидеть:
- Меню GRUB с выбором ядер (если оно было раньше).
- Автоматическую загрузку вашей основной системы без ошибок (
grub rescue>,error: no such partition). - Если система загружается, но меню не появляется — это нормально, если в конфигурации GRUB стоит таймаут 0. Проверьте, что система работоспособна.
💡 Совет: Если после восстановления система всё равно не загружается, проверьте настройки BIOS/UEFI (режим загрузки: UEFI/Legacy, приоритет загрузочного устройства) и порядок записей в загрузчике (например,
efibootmgrв UEFI).
::in-article-ad
::
Возможные проблемы
Ошибка: "grub-install: error: failed to get canonical path of `overlay'"
Причина: Не хватает смонтированных виртуальных ФС (/dev, /proc, /sys).
Решение: Убедитесь, что вы выполнили команду монтирования из шага 2 перед chroot.
Ошибка: "error: couldn't translate filesystem offset" или "file not found"
Причина: Неверно указан раздел ESP (UEFI) или он не отформатирован в FAT32.
Решение: Перепроверьте lsblk -f. Раздел ESP должен быть типа vfat. Если его нет, возможно, ваш диск использует чисто BIOS-загрузку, или ESP находится на другом диске.
Ошибка: "grub-install: error: will not proceed with blocklists"
Причина: GRUB не может записать boot-сектор из-за нестандартного расположения разделов (часто на RAID или LVM).
Решение: Попробуйте добавить флаг --force к команде grub-install, но только если уверены в целостности диска. В сложных случаях (RAID, LVM) может потребоваться более глубокое восстановление через grub-probe и ручное указание корня.
После восстановления система загружается, но нет меню выбора ядер
Причина: В /etc/default/grub установлен GRUB_TIMEOUT=0.
Решение: Войдите в систему, отредактируйте файл:
sudo nano /etc/default/grub
Измените строку на GRUB_TIMEOUT=5, затем выполните sudo update-grub.
Система не загружается, снова вылетает в grub rescue>
Причина: Вы указали не тот диск в grub-install (например, /dev/sda1 вместо /dev/sda) или восстановили GRUB на другой диск.
Решение: Перезагрузитесь с live-USB и повторно проверьте, на какой диск (/dev/sdX) установлен загрузчик (можно через sudo fdisk -l посмотреть раздел с * в колонке Boot). Установите GRUB именно на этот диск.
В UEFI после восстановления появляется сообщение "no bootable device"
Причина: Запись GRUB не была добавлена в UEFI Boot Order. Решение: В chroot или в live-среде (с смонтированным ESP) выполните:
efibootmgr -c -d /dev/sda -p 1 -L "GRUB" -l '\EFI\ubuntu\grubx64.efi'
(Замените /dev/sda, 1 и путь \EFI\ubuntu\... на ваши). Затем проверьте efibootmgr -v и установите приоритет через BIOS/UEFI.