Перейти к содержанию

GRUB2 и восстановление после неудачной загрузки

Руководство описывает безопасную стратегию восстановления, а не универсальный набор команд для изменения разделов загрузки. Детальные операции с ESP, rootfs и GRUB зависят от BIOS/UEFI, дисковой разметки и конкретного профиля НАЙС.ОС.

Нужен доступ к консоли или rescue-среде

Если система не загрузилась, SSH не поможет. Заранее проверьте доступность консоли гипервизора, KVM/IPMI и резервного загрузочного образа. Не выполняйте grub2-install наугад: неправильное устройство/режим прошивки могут усугубить проблему.

До обновления ядра

  1. Сохраните снимок виртуальной машины или резервную копию данных.
  2. Зафиксируйте рабочую версию ядра: uname -r.
  3. Убедитесь, что предыдущее ядро и initramfs сохранены в /boot.
  4. Проверьте доступность GRUB через виртуальную консоль.
  5. Сохраните сведения о разделах: lsblk -f, findmnt /, findmnt /boot, findmnt /boot/efi.

Если после reboot система не стартует

Сценарий A: меню GRUB доступно

Откройте консоль, выберите ранее загружавшееся ядро и запустите систему. После входа сравните версию uname -r, журнал предыдущей загрузки (journalctl -b -1, если доступен) и параметры нового initramfs. Не назначайте новый пункт по умолчанию, пока не выяснена причина отказа.

Сценарий B: система дошла до emergency shell

Сначала зафиксируйте текст ошибки. Частые области: отсутствующий раздел root, неправильный UUID, драйвер контроллера хранения не попал в initramfs, неверные параметры ядра, ошибки файловой системы. Для восстановления используйте тестовый стенд с такой же схемой загрузки и одобренный recovery-процесс организации.

Сценарий C: загрузчик не найден

Проверьте режим BIOS/UEFI виртуальной машины, подключение диска и расположение EFI System Partition. Любая процедура переустановки GRUB должна учитывать текущий режим, таблицу разделов и mounted rootfs. Без этих данных публиковать команду переустановки небезопасно.

Диагностика работающей системы

cat /proc/cmdline
uname -r
lsblk -f
findmnt / /boot /boot/efi 2>/dev/null || true
sudo grub2-editenv list 2>/dev/null || true
sudo ls -lh /boot/vmlinuz* /boot/initramfs* 2>/dev/null

Особенность НАЙС.ОС

В изученном linux.spec генерация меню основана на grub2-mkconfig -o /boot/grub2/grub.cfg, без использования BLS как основного механизма. Но вручную перегенерировать файл на работающем сервере следует только после проверки содержания /etc/default/grub, скриптов GRUB и текущего загрузочного раздела.

Далее: цепочка загрузки, ядро и initramfs.