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

Загрузка НАЙС.ОС: от GRUB до входа в систему

НАЙС.ОС CLOUD использует типичную для самостоятельной серверной Linux-системы цепочку загрузки: прошивка BIOS/UEFI, загрузчик GRUB2, ядро Linux, initramfs, корневая файловая система, PID 1 (systemd), системные службы и приглашение входа.

Логическая последовательность

BIOS / UEFI
     │
     ▼
GRUB2 — выбор ядра и параметров загрузки
     │
     ▼
Linux + initramfs (dracut) — обнаружение диска и подготовка root
     │
     ▼
Корневая файловая система
     │
     ▼
systemd (PID 1)
     ├─ udev / монтирование
     ├─ systemd-networkd / systemd-resolved
     ├─ iptables / sshd (в зависимости от зависимостей и профиля)
     └─ прочие службы
     │
     ▼
TTY / SSH

Это архитектурная схема, а не точный порядок старта unit: systemd запускает независимые сервисы параллельно согласно зависимостям.

Определите текущий режим загрузки

cat /etc/os-release
uname -r
uname -m
cat /proc/cmdline
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS-or-other
findmnt /boot
ls -l /boot
systemd-analyze time

Для режима BIOS/UEFI одного отсутствия /sys/firmware/efi недостаточно, чтобы доказать, что хост — обычная машина BIOS: это может быть специфичный режим виртуализации. Сопоставляйте результат с настройками гипервизора.

Где проверять GRUB

В исследованном linux.spec предусмотрено обновление /boot/grub2/grub.cfg при установке нового ядра. Для вашего образа проверьте:

sudo ls -l /boot/grub2/grub.cfg /boot/grub2/grubenv 2>/dev/null
sudo grub2-editenv list 2>/dev/null || true
sudo ls -l /boot/vmlinuz* /boot/initramfs* 2>/dev/null

В SPEC есть явный комментарий, что BLS не используется как основной путь, а генерация конфигурации выполняется grub2-mkconfig. Поэтому не переносите вслепую инструкции других RPM-дистрибутивов, которые полагаются на BLS и kernel-install.

Как расследовать медленную загрузку

systemd-analyze time
systemd-analyze blame | head -n 30
systemd-analyze critical-chain
systemctl --failed
journalctl -b -p warning --no-pager

systemd-analyze blame показывает продолжительность старта unit, но не всегда означает, что этот unit задерживал общую загрузку: для этого полезнее critical-chain.

Дальше: ядро и initramfs, GRUB и восстановление.

Следующие материалы