Введение / Зачем это нужно
Если Ubuntu не доходит до экрана входа или зависает на чёрном фоне, проблема почти всегда скрыта в загрузчике, ядре или начальной файловой системе. Вместо переустановки системы можно восстановить загрузку за несколько шагов. Вы получите рабочее меню GRUB, корректное ядро и целостный корневой раздел без потери данных.
Требования / Подготовка
- Установочный USB-диск Ubuntu или Live-сессия с тем же релизом (22.04/24.04).
- Доступ к EFI-разделу (ESP) для систем с UEFI — обычно это FAT32 около 100–500 МБ.
- Права администратора (sudo) в Live-окружении или recovery shell.
- Знание метки или UUID корневого раздела (обычно ext4) — поможет
lsblkилиblkid.
Пошаговая инструкция
Шаг 1: Получить доступ к системе
Если меню GRUB всё ещё видно, выберите «Дополнительные параметры Ubuntu» → recovery mode → root. Если экран чёрный или пишет grub rescue, загрузитесь с Live-USB и откройте терминал.
Подключите корневой раздел и ESP (для UEFI). Пример для типичной разметки:
sudo -i
mount /dev/nvme0n1p2 /mnt
mount /dev/nvme0n1p1 /mnt/boot/efi
Для BIOS-систем ESP не требуется — достаточно смонтировать корень.
Шаг 2: Проверить и исправить файловую систему
Перед работой с загрузчиком убедитесь, что ФС не повреждена. Отмонтируйте раздел, если он был смонтирован, и запустите проверку:
umount /mnt
e2fsck -f /dev/nvme0n1p2
Если e2fsck найдёт и исправит ошибки, перемонтируйте корень:
mount /dev/nvme0n1p2 /mnt
mount /dev/nvme0n1p1 /mnt/boot/efi
Шаг 3: Переустановить GRUB
В chroot-окружении восстановите загрузчик. Для UEFI:
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
grub-install /dev/nvme0n1
update-grub
Для BIOS вместо grub-install используйте:
grub-install /dev/sda
update-grub
⚠️ Важно: указывайте диск (например,
/dev/nvme0n1), а не раздел, чтобы избежать повреждения таблицы разделов.
Шаг 4: Пересобрать initramfs
Повреждённый или неполный образ начальной файловой системы часто вызывает kernel panic. Пересоберите его для текущего ядра:
update-initramfs -u -k all
Если в системе несколько ядер, можно ограничиться конкретным:
update-initramfs -u -k 5.15.0-124-generic
Шаг 5: Проверить доступность ядра
Убедитесь, что файлы ядра присутствуют в /boot:
ls /boot/vmlinuz-*
ls /boot/initrd.img-*
Если образов нет, доустановите ядро:
apt update
apt install --reinstall linux-image-generic linux-modules-extra-generic
После этого снова выполните update-grub, чтобы меню отразило доступные версии.
Проверка результата
Перезагрузите систему:
exit
reboot
Если восстановление прошло успешно, GRUB загрузит меню, а Ubuntu — корректно. При наличии нескольких ядер выберите стабильную версию в дополнительных параметрах.
Возможные проблемы
- Ошибка «file not found» в GRUB rescue — обычно указывает на неверный UUID в
/boot/grub/grub.cfg. Послеupdate-grubконфиг должен обновиться автоматически. - Сбой
grub-installна EFI — убедитесь, что ESP смонтирован в/boot/efiи имеет флагboot,esp. Проверьте наличие каталога/boot/efi/EFI/ubuntu. - Kernel panic после обновления — загрузите старое ядро из меню GRUB, затем удалите проблемное ядро:
apt purge linux-image-<сломанная-версия>. - Не монтируется корень — проверьте таблицу разделов через
lsblkи убедитесь, что метка или UUID в/etc/fstabсоответствуют текущей разметке.