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

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

2026.09.16                  


Подробный гайд: Как пересобрать initramfs и перезагрузить систему Astra Linux - Часть 1Подробный гайд: Как пересобрать initramfs и перезагрузить систему Astra Linux - Часть 1 Важный момент: в уже загруженной системе “перезапустить” initramfs как службу нельзя. initramfs отрабатывает на раннем этапе загрузки ядра.

Поэтому под “перезапуском” обычно понимают одно из двух:

  1. Пересобрать initramfs после изменений и перезагрузить систему.
  2. Если система уже упала в (initramfs) — исправить проблему и выйти/перезагрузиться.

Ниже подробный гайд для Astra Linux.


Короткий вариант, если всё штатно



Если вам нужно просто пересобрать initramfs для текущего ядра:

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

Если нужно пересобрать для всех установленных ядер:

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

Подробный гайд

1. Понять, какой инструмент используется

Astra Linux основана на Debian, поэтому обычно используется initramfs-tools и команда update-initramfs. Но в некоторых конфигурациях может быть установлен dracut.

Проверьте:

command -v update-initramfs
command -v dracut
dpkg -l | grep -E 'initramfs-tools|dracut'

Если есть update-initramfs, скорее всего используется стандартный Debian-механизм.

Также полезно посмотреть текущее ядро и файлы в /boot:

uname -r
ls -lh /boot | grep -E 'vmlinuz|initrd|initramfs'

Примерно вы увидите:

vmlinuz-6.1.0-...
initrd.img-6.1.0-...

2. Сделать резервную копию

Перед любыми действиями с загрузкой лучше сохранить текущие файлы.

Если /boot небольшой, копируйте не в /boot, а, например, в /root/backup.

sudo mkdir -p /root/backup/boot-$(date +%F)
sudo cp -a /boot/vmlinuz-* /root/backup/boot-$(date +%F)/ 2>/dev/null || true
sudo cp -a /boot/initrd.img-* /root/backup/boot-$(date +%F)/ 2>/dev/null || true

Также можно сохранить конфигурацию:

sudo cp -a /etc/initramfs-tools /root/backup/initramfs-tools-$(date +%F)

Проверьте свободное место в /boot:

df -h /boot

Если /boot переполнен, пересборка может завершиться ошибкой.


3. Проверить состояние пакетов

Желательно убедиться, что пакетная система не находится в сломанном состоянии:

sudo dpkg --configure -a
sudo apt update
sudo apt --fix-broken install

Если initramfs-tools отсутствует или повреждён:

sudo apt install --reinstall initramfs-tools

4. Пересобрать initramfs для текущего ядра

Узнайте версию текущего ядра:

uname -r

Затем выполните:

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

Где:

  • -u — обновить существующий образ;
  • -v — подробный вывод;
  • -k "$(uname -r)" — версия текущего ядра.

Пример:

sudo update-initramfs -u -v -k 6.1.0-13-amd64

Если всё прошло успешно, вы увидите сообщения о создании/обновлении образа, например:

update-initramfs: Generating /boot/initrd.img-6.1.0-13-amd64

5. Пересобрать initramfs для всех установленных ядер

Если вы меняли настройки глобально, например модули, шифрование, LVM, RAID, resume-раздел, лучше обновить все образы:

sudo update-initramfs -u -v -k all

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


6. Если образа нет: создать новый

Если файл initrd.img-... отсутствует, можно создать его заново:

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

Где:

  • -c — создать новый образ.

Для всех ядер:

sudo update-initramfs -c -k all

Но обычно безопаснее и правильнее использовать -u, если образ уже существует.


7. Альтернативная ручная генерация через mkinitramfs

Обычно лучше использовать update-initramfs, потому что он корректно обрабатывает имена файлов и симлинки.

Но если нужно вручную создать образ для проверки:

sudo mkinitramfs -v -o /tmp/initrd.img-test "$(uname -r)"

Проверить содержимое:

sudo lsinitramfs /tmp/initrd.img-test | less

Например, проверить наличие модулей:

sudo lsinitramfs /tmp/initrd.img-test | grep -E 'nvme|ext4|xfs|dm_mod|crypt'

Если нужно распаковать для глубокой диагностики:

mkdir -p /tmp/initrd-check
sudo unmkinitramfs /tmp/initrd.img-test /tmp/initrd-check

Не заменяйте рабочий образ вручную без резервной копии.

Для штатной пересборки лучше использовать:



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

Когда нужно пересобирать initramfs

Обычно пересборка требуется после изменений, влияющих на раннюю загрузку.

Например:

  1. Изменили /etc/fstab.
  2. Изменили /etc/crypttab.
  3. Перешли на другой контроллер диска.
  4. Добавили модули ядра, которые нужны до монтирования корня.
  5. Изменили настройки шифрования дисков.
  6. Настроили LVM, mdraid, ZFS, btrfs и т. п.
  7. Изменили параметры resume для гибернации.
  8. Правив конфиги initramfs-tools.
  9. Переносили систему на другой диск или другой контроллер.
  10. Меняли параметры модулей через /etc/initramfs-tools/modules.

Настройка initramfs перед пересборкой

Файл модулей

Если нужно, чтобы определённые модули ядра гарантированно попадали в initramfs, их добавляют в:

/etc/initramfs-tools/modules

Открыть файл:

sudo nano /etc/initramfs-tools/modules

Добавить модули по одному на строку, например:

nvme
nvme-core
sd_mod
ext4
xfs
dm_crypt
dm_mod

После этого пересобрать:

sudo update-initramfs -u -v -k all

Основной конфиг

Основной файл конфигурации:

/etc/initramfs-tools/initramfs.conf

Открыть:

sudo nano /etc/initramfs-tools/initramfs.conf

Там могут быть параметры вроде:

MODULES=most
BUSYBOX=auto
COMPRESSION=zstd
RESUME=UUID=...

Например:

  • MODULES=most — включать распространённый набор модулей.
  • MODULES=dep — включать зависимости для корневой файловой системы.
  • RESUME=... — раздел/устройство для гибернации.

После изменений:

sudo update-initramfs -u -v -k all

Если используется LVM, RAID или LUKS

Если корневая файловая система находится на LVM, RAID или LUKS, убедитесь, что нужные пакеты установлены.

Для LVM:

sudo apt install lvm2

Для mdraid:

sudo apt install mdadm

Для поддержки LUKS в initramfs обычно нужен пакет вроде:

sudo apt install cryptsetup-initramfs

Названия пакетов могут немного отличаться в зависимости от версии и репозитория Astra, но логика такая: нужны пакеты, которые добавляют соответствующие хуки в initramfs.

После установки или изменения /etc/crypttab:

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

Нужно ли обновлять GRUB?

После обычной пересборки initrd.img с тем же именем update-grub чаще всего не обязателен.

Но выполните его, если:

  • меняли параметры ядра в /etc/default/grub;
  • меняли UUID дисков;
  • добавляли/удаляли ядра;
  • меняли параметры загрузки;
  • система не видит новый образ;
  • меняли crypttab, влияющий на загрузку;
  • вручную создавали/меняли загрузочные файлы.

Команда:

sudo update-grub

Если update-grub отсутствует:

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

Перезагрузка после пересборки

После обновления образа нужно перезагрузить систему:

sudo systemctl reboot

или:

sudo reboot

или:

sudo shutdown -r now

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

uname -r
ls -lh /boot/initrd.img-$(uname -r)

И при необходимости содержимое:

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

Например:

sudo lsinitramfs /boot/initrd.img-$(uname -r) | grep -E 'nvme|ext4|xfs|crypt|lvm|md_mod'

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


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

Комментарии

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