Лаборатория: обновление ядра с контролем GRUB2/dracut¶
Все материалы по ядру: единый раздел НАЙС.ОС. Теория ГОСТ-примитивов вынесена в справочник алгоритмов.
Установка новой версии ядра НАЙС.ОС CLOUD — операция, требующая отдельной проверки загрузочного контура. В сборочном рецепте linux.spec после RPM-транзакции запускаются dracut и grub2-mkconfig, а некоторые ошибки этих этапов могут игнорироваться скриптом установки. Поэтому успешный код возврата менеджера пакетов не доказывает готовности новой системы к перезагрузке.
Исходные условия¶
- Работа ведётся на тестовой VM с резервной консолью гипервизора.
- Создан проверенный бэкап данных или snapshot VM вне гостевой ФС.
- Подтверждена совместимость приложений, драйверов, модулей ядра и гостевых агентов.
- Установочный источник RPM доверен и его подпись проверена.
- Имеется предыдущая рабочая версия ядра или полноценный образ для восстановления.
Шаг 1. Зафиксировать параметры загрузки¶
cat /etc/os-release
uname -r
cat /proc/cmdline
rpm -q linux
findmnt -no SOURCE,FSTYPE /
lsblk -f
ls -lh /boot/vmlinuz-* /boot/initramfs-*.img 2>/dev/null
ls -l /boot/grub2/grub.cfg 2>/dev/null
test -d /sys/firmware/efi && echo UEFI || echo 'BIOS/other'
Не исходите из предположения, что uname -r совпадает с последним установленным ядром или что EFI System Partition всегда монтируется по одному пути.
Шаг 2. Составить карту пакетов¶
rpm -q linux linux-devel 2>/dev/null || true
rpm -qa | grep -Ei '^linux|^dracut|^grub2' | sort
rpm -q --scripts linux
Проверьте, не нужны ли внештатные модули (ZFS, специфичный сетевой драйвер, GOST-модуль, модули виртуализации), и поддерживает ли их новая версия ядра. В SPEC linux имеются дополнительные subpackages, но это не значит, что они установлены.
Шаг 3. Подготовить обновление RPM¶
Прочитайте список предлагаемых пакетов через установленный DNF/TDNF и убедитесь, что не исчезнут нужные драйверы/зависимости. Выполняйте обновление только через утверждённый репозиторий. Конкретные ключи команд обновления и политика удержания версий зависят от установленного менеджера и профиля машины; не используйте скачанный RPM с недоверенного сайта.
После транзакции не перезагружайтесь автоматически.
Шаг 4. Проверить создание initramfs¶
rpm -q linux
ls -lh /boot/vmlinuz-* /boot/initramfs-*.img 2>/dev/null
command -v dracut
command -v lsinitrd
Для целевой версии ядра должен существовать соответствующий файл vmlinuz-<версия> и initramfs-<версия>.img. Если доступен lsinitrd, проверьте, что образ читается и содержит необходимые для вашего boot-root драйверы. Нельзя заключать, что initramfs корректно работает на конкретном storage только потому, что файл существует.
Шаг 5. Проверить GRUB2¶
Прочитайте конфигурацию для предполагаемого нового ядра, сравните параметры root= и пути initramfs. Не перезаписывайте GRUB без понимания установленного BIOS/UEFI. BLS не используется как основной путь обновления ядра в рассматриваемом linux.spec, но фактическая загрузка конкретного ISO должна подтверждаться проверкой.
Шаг 6. Контролируемая перезагрузка¶
Резервная консоль должна быть открыта до systemctl reboot. Убедитесь, что рядом есть предыдущий проверенный пункт загрузки или доступный rescue-образ. После старта:
uname -r
systemctl --failed --no-pager
journalctl -b -p err --no-pager -n 100
networkctl list
iptables -S
ss -lntp
Проверьте бизнес-сервис, сеть, Docker, драйверы и дисковую подсистему. Если новая версия не загружается, выполняйте восстановление через меню GRUB/консоль по заранее подготовленному плану; не удаляйте предыдущее ядро до завершения тестирования.
Что документировать после теста¶
Номер ISO/редакции, версия установленного RPM и запущенного ядра, список дополнительных модулей, boot mode, размер и контрольная сумма initramfs, время загрузки, проверки сетевых служб и результат аварийного возврата. Именно эти данные делают руководство проверенным для НАЙС.ОС, а не универсальной статьёй Linux.
Источники: Core/linux/SPECS/linux.spec %posttrans; загрузка, диагностика, RPM.