GRUB2 и восстановление после неудачной загрузки¶
Руководство описывает безопасную стратегию восстановления, а не универсальный набор команд для изменения разделов загрузки. Детальные операции с ESP, rootfs и GRUB зависят от BIOS/UEFI, дисковой разметки и конкретного профиля НАЙС.ОС.
Нужен доступ к консоли или rescue-среде
Если система не загрузилась, SSH не поможет. Заранее проверьте доступность консоли гипервизора, KVM/IPMI и резервного загрузочного образа. Не выполняйте grub2-install наугад: неправильное устройство/режим прошивки могут усугубить проблему.
До обновления ядра¶
- Сохраните снимок виртуальной машины или резервную копию данных.
- Зафиксируйте рабочую версию ядра:
uname -r. - Убедитесь, что предыдущее ядро и initramfs сохранены в
/boot. - Проверьте доступность GRUB через виртуальную консоль.
- Сохраните сведения о разделах:
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.