Linux

Восстановление GRUB: пошаговое руководство для Ubuntu и CentOS

Это руководство поможет восстановить повреждённый загрузчик GRUB на системах Ubuntu, Debian, CentOS и других дистрибутивах Linux. Вы узнаете, как загрузиться с live-USB, определить разделы и переустановить GRUB, чтобы система снова загружалась.

Обновлено 17 февраля 2026 г.
15-30 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04/22.04Debian 11/12CentOS 7/8/Rocky 8/9RHEL 8/9

Введение / Зачем это нужно

GRUB (Grand Unified Bootloader) — это критически важный компонент, который загружает операционную систему. Если его конфигурация повреждена (например, после неудачного обновления, сбоя диска или переустановки Windows), компьютер может выдавать ошибки grub rescue>, no such partition или просто зависать на чёрном экране. Данное руководство поможет вам восстановить загрузчик без переустановки системы и без потери данных. Мы рассмотрим как классический BIOS/Legacy, так и современный UEFI.

Требования / Подготовка

Перед началом убедитесь, что у вас есть:

  1. Другой компьютер или живой USB-носитель (флешка) с любой Linux-системой (рекомендуется Ubuntu/Debian или их live-образы).
  2. Базовые навыки работы с терминалом и понимание, как mounts работают в Linux.
  3. Знание, на каком разделе находится ваша основная система (если не помните, мы это определим на первом шаге).
  4. Доступ к BIOS/UEFI для настройки загрузки с USB-носителя (обычно клавиша F2, F12, Del при включении).

⚠️ Важно: Если у вас шифрованная система (LUKS), процесс восстановления GRUB будет сложнее и потребует дополнительных шагов по открытию контейнера. Данное руководство предполагает обычные (нешифрованные) разделы.

Шаг 1: Загрузка с Live-USB и определение разделов

  1. Вставьте live-USB и загрузитесь с него, выбрав опцию "Try Ubuntu" (или аналогичную).
  2. После загрузки откройте терминал (Ctrl+Alt+T).
  3. Выполните команду, чтобы увидеть все диски и разделы:
    sudo fdisk -l
    

    Или:
    lsblk -f
    
  4. Найдите ваш основной диск (обычно /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).

Запишите имена ваших разделов (например, /dev/sda2 для корня, /dev/sda1 для ESP).

Шаг 2: Монтирование разделов и вход в chroot

Теперь смонтируем вашу систему в каталог /mnt, чтобы работать с ней как с корневой.

  1. Смонтируйте корневой раздел (замените /dev/sda2 на ваш):
    sudo mount /dev/sda2 /mnt
    
  2. Если у вас UEFI, смонтируйте раздел ESP в /mnt/boot/efi:
    sudo mount /dev/sda1 /mnt/boot/efi
    

    💡 Совет: Если у вас несколько дисков, убедитесь, что монтируете разделы с той же системы, которую пытаетесь восстановить.

  3. Смонтируйте виртуальные файловые системы, необходимые для работы grub-install и update-grub:
    for fs in dev proc sys run; do sudo mount --bind /$fs /mnt/$fs; done
    
  4. Перейдите в chroot-окружение вашей системы:
    sudo chroot /mnt
    
    Приглашение командной строки изменится, например, на root@ubuntu:/#. Теперь все команды будут выполняться внутри вашей повреждённой системы.

Шаг 3: Переустановка и обновление GRUB

Внутри chroot выполните следующие команды.

  1. Переустановите 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.

  2. Обновите конфигурацию GRUB (просканирует ядра и сгенерирует меню):
    update-grub
    

    Вы должны увидеть строки Found linux image... и Found initrd image... для вашего ядра.
  3. (Опционально) Проверьте конфигурацию:
    cat /boot/grub/grub.cfg | head -20
    

    Убедитесь, что файл не пустой.

Шаг 4: Выход и перезагрузка

  1. Выйдите из chroot:
    exit
    
  2. Размонтируйте все разделы в правильном порядке:
    for fs in run sys proc dev; do sudo umount /mnt/$fs; done
    sudo umount /mnt/boot/efi  # Только для UEFI
    sudo umount /mnt
    
  3. Извлеките 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.

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

В чём разница между восстановлением GRUB в UEFI и BIOS?
Можно ли восстановить GRUB, не имея live-USB?
При восстановлении GRUB пропадут мои данные?
Что делать, если команда `grub-install` выдает ошибку 'file not found'?

Полезное

Загрузка с Live-USB и определение разделов
Монтирование разделов в chroot
Переустановка и обновление GRUB
Выход и перезагрузка

Эта статья помогла вам решить проблему?