Linux

Обновление GRUB в Ubuntu: полное руководство по пересборке

Этот гайд подробно объясняет, как правильно обновить и пересобрать конфигурацию загрузчика GRUB в Ubuntu. Вы научитесь решать типичные проблемы, когда система не видит другие ОС или не загружается после изменений в разметке диска.

Обновлено 16 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04 LTSUbuntu 22.04 LTSUbuntu 24.04 LTSDebian 11/12Linux Mint 21+

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

GRUB (Grand Unified Bootloader) — это загрузчик, который появляется при включении компьютера и позволяет выбрать операционную систему или версию ядра. Конфигурация GRUB автоматически генерируется на основе файлов в /boot и обнаруженных разделов. Обновлять её нужно, когда:

  • Вы установили новую ОС (например, Windows или другую Linux-дистрибутив) рядом с Ubuntu.
  • Удалили старое ядро или обновили систему.
  • Меняли разметку дисков (создавали/удаляли разделы).
  • Меню GRUB не отображает нужные системы или показывает ошибки.

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

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

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

  1. У вас есть доступ к терминалу Ubuntu с правами администратора (sudo).
  2. Система загружена и работает в нормальном режиме (не из Live-USB, если только вы не пытаетесь починить установленную систему).
  3. Подключены все диски, которые могут содержать другие операционные системы (особенно важно для внешних HDD/SSD или если вы меняли SATA-порты).
  4. Для автоматического обнаружения Windows/Linux установлен пакет os-prober (в некоторых дистрибутивах он есть по умолчанию).

Пошаговая инструкция

Шаг 1: Проверка и установка os-prober

Пакет os-prober — это скрипт, который сканирует диски на наличие других ОС. В большинстве случаев он уже установлен.

sudo apt update
sudo apt install os-prober

Если пакет уже установлен, команда сообщит об этом. Важно: В Ubuntu 22.04 и новее os-prober по умолчанию отключен в конфиге GRUB из соображений безопасности (чтобы случайно не добавить непроверенную ОС). Если вы хотите, чтобы GRUB искал другие системы, перейдите к следующему шагу.

Шаг 2: Активация поиска ОС (если нужно)

Отредактируйте главный конфигурационный файл GRUB:

sudo nano /etc/default/grub

Найдите строку GRUB_DISABLE_OS_PROBER. Если её нет, добавьте в конец файла:

GRUB_DISABLE_OS_PROBER=false

Если строка есть и равна true, измените на false. Сохраните файл (Ctrl+O, Enter) и закройте редактор (Ctrl+X).

💡 Совет: Если вы не хотите, чтобы GRUB автоматически добавлял найденные ОС (например, для безопасности), оставьте эту настройку true и добавляйте пункты вручную через /etc/grub.d/40_custom.

Шаг 3: Запуск обновления конфигурации GRUB

Теперь выполните основную команду. Она соберёт информацию о всех ядрах Linux в /boot и о других ОС (если os-prober активен).

sudo update-grub

Вы увидите примерно такой вывод:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-78-generic
Found initrd image: /boot/initrd.img-5.15.0-78-generic
Found Windows Boot Manager on /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi
done

Здесь Found Windows Boot Manager означает, что Windows успешно обнаружена.

Шаг 4: Проверка результата (опционально)

После выполнения команды можно посмотреть, что именно попало в конфигурационный файл:

grep -E "menuentry|submenu" /boot/grub/grub.cfg | head -n 10

Эта команда выведет первые 10 пунктов меню. Ищите названия ваших операционных систем и версий ядер. Если нужная ОС (например, Windows) отсутствует, вернитесь к шагу 2 и проверьте, правильно ли активирован os-prober.

Шаг 5: Перезагрузка

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

sudo reboot

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

Проверка результата

  1. При включении компьютера появится меню GRUB.
  2. В списке должны быть все установленные операционные системы (Ubuntu с разными версиями ядра, Windows, другие Linux).
  3. Вы можете успешно загрузиться в любую из них.
  4. Если вы обновляли GRUB из-за проблем с загрузкой (например, "grub rescue>"), то система должна загружаться в нормальный режим без ошибок.

Если проблема осталась (например, Windows не появляется), перейдите к разделу "Возможные проблемы".

Возможные проблемы

Проблема: os-prober не найден, или update-grub не видит Windows

Решение:

  1. Убедитесь, что раздел Windows не отключен в UEFI/BIOS (например, через Fast Boot или Secure Boot).
  2. Проверьте, смонтирован ли EFI-раздел (для UEFI-систем). Обычно он монтируется в /boot/efi. Если нет, смонтируйте его вручную и запустите update-grub снова.
  3. Вручную добавьте Windows в GRUB через файл /etc/grub.d/40_custom. Пример записи для UEFI:
    sudo nano /etc/grub.d/40_custom
    
    Добавьте в конец:
    menuentry "Windows 11" {
        insmod part_gpt
        insmod fat
        insmod chain
        set root='(hd0,gpt1)'  # Замените на ваш EFI-раздел, узнайте через `sudo fdisk -l`
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }
    
    Затем снова выполните sudo update-grub.

Проблема: После обновления GRUB система не загружается, появляется grub rescue>

Решение: Это означает, что GRUB не может найти свои модули или конфиг. Загрузитесь с Live-USB Ubuntu и смонтируйте корневой раздел вашей системы. Затем chroot в систему и переустановите GRUB:

# Предположим, корневой раздел на /dev/sda2
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi  # Если используется UEFI
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install /dev/sda  # Установка в MBR (для BIOS) или
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu  # Для UEFI
update-grub
exit
sudo reboot

Проблема: В меню GRUB слишком много старых ядер

Решение: Удалите старые ядра через apt:

sudo apt autoremove --purge

Или вручную, посмотрев список: dpkg --list | grep linux-image. Затем снова выполните sudo update-grub.

Проблема: GRUB не показывает меню, сразу загружает Ubuntu

Решение: Возможно, скрыт пункт меню. Проверьте настройку GRUB_TIMEOUT в /etc/default/grub. Она должна быть больше 0 (например, GRUB_TIMEOUT=10). После изменения файла обязательно выполните sudo update-grub.

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

Нужно ли перезагружать компьютер после update-grub?
Чем отличается команда update-grub от grub-install?
Что делать, если update-grub не находит Windows?
Можно ли обновить GRUB без интернета?

Полезное

Проверка наличия os-prober
Активация os-prober (если требуется)
Запуск обновления конфигурации GRUB
Проверка сгенерированного конфига
Перезагрузка системы