Подробный гайд: Как пересобрать initramfs и перезагрузить систему Astra Linux - Часть 2

Как пересобрать и обновить initramfs в Astra Linux: команды update-initramfs, dracut, GRUB, резервные копии, chroot и восстановление загрузки.

2026.09.16                  


Подробный гайд: Как пересобрать initramfs и перезагрузить систему Astra Linux - Часть 2Подробный гайд: Как пересобрать initramfs и перезагрузить систему Astra Linux - Часть 2

Если используется не initramfs-tools, а dracut

Если в системе используется dracut, то пересборка выполняется иначе.

Проверка:

command -v dracut

Обычно образ пересоздаётся так:

sudo dracut --force --verbose /boot/initrd.img-"$(uname -r)" "$(uname -r)"

Если у вас файлы называются иначе, сначала посмотрите, какие образы есть в /boot:

ls -lh /boot | grep -E 'initrd|initramfs'

Например, если образ называется initramfs-6.1.0-13-amd64.img, команда будет аналогичной, но с этим именем:



sudo dracut --force --verbose /boot/initramfs-6.1.0-13-amd64.img 6.1.0-13-amd64

Для всех установленных ядер можно выполнить цикл:

for kver in /lib/modules/*; do
    kver="${kver#/lib/modules/}"
    sudo dracut --force --verbose "/boot/initrd.img-${kver}" "${kver}"
done

Но перед этим обязательно убедитесь, что именно такой формат имён используется в вашей системе.


Если система не загружается и попадает в (initramfs)

Если после загрузки вы видите приглашение вида:

(initramfs)

это не нормальная работа системы, а аварийная оболочка.

Там можно попробовать:

exit

Иногда это продолжает загрузку, если проблема была временной.

Если нужно перезагрузиться из этой среды:

reboot -f

или:

poweroff -f

Но полноценно пересобрать initramfs из аварийного initramfs обычно нельзя, потому что там минимальное окружение без полноценного apt и дисковой системы.

Дальше есть несколько путей:

  1. Загрузиться с предыдущим ядром через GRUB.
  2. Загрузиться в recovery mode.
  3. Исправить проблему вручную, если понимаете причину.
  4. Загрузиться с установочного/спасательного носителя и выполнить chroot.

Вариант 1: загрузиться с другим ядром

При включении откройте меню GRUB. Обычно нужно удерживать Shift или Esc, в зависимости от конфигурации.

Выберите:

Advanced options for Astra Linux

и загрузите предыдущее ядро.

Если старое ядро загрузилось, пересоберите образ для проблемного ядра:

sudo update-initramfs -u -v -k all
sudo update-grub

Вариант 2: восстановление через chroot с Live-носителя

Если система не загружается совсем, загрузитесь с установочного или спасательного носителя, затем выполните chroot в установленную систему.

Шаг 1. Найти корневой раздел

lsblk -f
blkid

Например, корень может быть:

/dev/sda2
/dev/nvme0n1p2
/dev/mapper/vg-root
/dev/mapper/cryptroot

Шаг 2. Смонтировать корень

Для обычного раздела:

sudo mount /dev/sda2 /mnt

Для LVM:

sudo vgchange -ay
sudo mount /dev/mapper/vg-root /mnt

Для LUKS:

sudo cryptsetup luksOpen /dev/sda2 cryptroot
sudo mount /dev/mapper/cryptroot /mnt

Если внутри LUKS находится LVM:

sudo cryptsetup luksOpen /dev/sda2 cryptroot
sudo vgchange -ay
sudo mount /dev/mapper/vg-root /mnt

Шаг 3. Смонтировать /boot, если он отдельный

Если /boot отдельный:

sudo mount /dev/sda1 /mnt/boot

Шаг 4. Смонтировать EFI-раздел, если используется UEFI

Обычно EFI-раздел монтируется в /boot/efi:

sudo mount /dev/sda1 /mnt/boot/efi

Но номер раздела и путь зависят от вашей системы.

Шаг 5. Привязать системные каталоги

for i in dev dev/pts proc sys run; do
    sudo mount --bind /$i /mnt/$i
done

Если используется UEFI и в дальнейшем потребуется работа с EFI-переменными, можно дополнительно привязать:

sudo mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars 2>/dev/null || true

Шаг 6. Войти в chroot

sudo chroot /mnt /bin/bash

Внутри chroot выполнить:

export TERM=xterm
dpkg --configure -a
update-initramfs -u -v -k all
update-grub

Если нужно переустановить пакеты:

apt update
apt install --reinstall initramfs-tools

Выход:

exit

Размонтирование:

sudo umount -R /mnt

Если монтировали отдельно /boot и /boot/efi, убедитесь, что всё размонтировано:

findmnt | grep /mnt

Частые ошибки и их решение

1. update-initramfs: command not found

Скорее всего, не установлен initramfs-tools, либо используется dracut.

Проверить:

command -v update-initramfs
command -v dracut

Если используется initramfs-tools, установить:



sudo apt install initramfs-tools

Если используется dracut, применяйте команды dracut.


2. E: /boot is full или No space left on device

Проверьте:

df -h /boot

Удалите старые резервные файлы из /boot, если вы их туда складывали. Если нужно удалить старые ядра, делайте это осторожно.

Сначала посмотрите установленные ядра:

dpkg -l | grep linux-image

Текущее ядро:

uname -r

Нельзя удалять пакет текущего загруженного ядра.

Для очистки старых пакетов можно использовать:

sudo apt autoremove --purge

Но в корпоративных системах с фиксированным набором ПО лучше сначала убедиться, что это допустимо политикой администрирования.


3. update-initramfs выдаёт предупреждения о недостающем firmware

Пример:

W: Possible missing firmware /lib/firmware/...

Часто это предупреждения, не мешающие загрузке. Если устройство действительно не определяется, может потребоваться установка соответствующих пакетов прошивок, если они доступны в вашей версии Astra.


4. Система не видит новый образ

Проверьте:

ls -lh /boot
readlink -f /boot/initrd.img

Обновите GRUB:

sudo update-grub

или:

sudo grub-mkconfig -o /boot/grub/grub.cfg

5. initramfs пересобирается, но система всё равно падает

Причины могут быть не в самом образе, а в:

  • неправильном /etc/fstab;
  • неправильном /etc/crypttab;
  • неверном root= в GRUB;
  • отсутствии модуля контроллера;
  • ошибке файловой системы;
  • проблеме с UUID;
  • повреждении файловой системы;
  • ошибке LVM/RAID/LUKS.

Проверьте:

cat /etc/fstab
cat /etc/crypttab
cat /etc/default/grub
blkid
lsblk -f

Важные замечания для защищённой среды Astra

В защищённых редакциях и конфигурациях могут действовать ограничения:

  • мандатный контроль доступа;
  • замкнутая программная среда;
  • запрет на установку пакетов;
  • контроль целостности;
  • ограничения на изменение загрузчика;
  • требования к подписанным компонентам.

Если это рабочая система в защищённом контуре:

  1. Не отключайте механизмы безопасности без решения администратора безопасности.
  2. Согласуйте изменения, если система аттестована.
  3. Перед изменениями делайте резервную копию.
  4. Используйте только доверенные репозитории и пакеты.
  5. Учитывайте, что изменения загрузочных компонентов могут требовать повторного контроля целостности.

Проверка результата после перезагрузки

После перезагрузки выполните:

uname -r
lsinitramfs /boot/initrd.img-$(uname -r) | less

Если нужно проверить конкретный модуль:

sudo lsinitramfs /boot/initrd.img-$(uname -r) | grep nvme
sudo lsinitramfs /boot/initrd.img-$(uname -r) | grep ext4
sudo lsinitramfs /boot/initrd.img-$(uname -r) | grep crypt

Посмотреть параметры загрузки ядра:

cat /proc/cmdline

Минимальная шпаргалка

Обновить текущее ядро:

sudo update-initramfs -u -v -k "$(uname -r)"

Обновить все ядра:

sudo update-initramfs -u -v -k all

Создать образ, если его нет:

sudo update-initramfs -c -k "$(uname -r)"

Обновить GRUB:

sudo update-grub

Перезагрузка:

sudo systemctl reboot

Проверка содержимого:

sudo lsinitramfs /boot/initrd.img-$(uname -r) | less

В Astra Linux под “перезапуском” initramfs обычно следует понимать:

sudo update-initramfs -u -v -k all
sudo systemctl reboot

Если используется dracut, тогда:

sudo dracut --force --verbose /boot/initrd.img-"$(uname -r)" "$(uname -r)"
sudo systemctl reboot

Если система не загружается, нужно загрузиться с предыдущим ядром или через спасательный носитель и пересобрать initramfs в chroot.


Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта