Dracut - ПО для создания загрузочного образа (initramfs) в НАЙС ОС

Dracut — это утилита для создания загрузочных образов initramfs в Linux. В НАЙС ОС Dracut используется для генерации initramfs, который необходим для загрузки операционной системы. В этом руководстве мы рассмотрим, как использовать Dracut для создания и управления initramfs, а также приведем примеры использования.

Что такое initramfs?

initramfs (initial RAM filesystem) — это временная файловая система, используемая при загрузке Linux. Она монтируется в память и содержит необходимые драйверы и утилиты для инициализации системы и монтирования корневой файловой системы.

Основные команды Dracut

Dracut предоставляет несколько команд для создания и управления initramfs. Рассмотрим основные из них.

Создание нового initramfs

Для создания нового initramfs используется команда dracut. По умолчанию Dracut создаст initramfs для текущего загруженного ядра.


# Создание initramfs для текущего ядра
sudo dracut

# Создание initramfs для конкретного ядра
sudo dracut -f /boot/initramfs-$(uname -r).img $(uname -r)

# Пример:
sudo dracut -f /boot/initramfs-5.10.0-8-amd64.img 5.10.0-8-amd64
    

Обновление существующего initramfs

Для обновления существующего initramfs используется команда dracut с параметром -f.


# Обновление initramfs для текущего ядра
sudo dracut -f

# Обновление initramfs для конкретного ядра
sudo dracut -f /boot/initramfs-$(uname -r).img $(uname -r)

# Пример:
sudo dracut -f /boot/initramfs-5.10.0-8-amd64.img 5.10.0-8-amd64
    

Просмотр информации о содержимом initramfs

Для просмотра информации о содержимом initramfs используется команда lsinitrd.


# Просмотр содержимого initramfs
lsinitrd /boot/initramfs-$(uname -r).img

# Пример:
lsinitrd /boot/initramfs-5.10.0-8-amd64.img
    

Добавление модулей в initramfs

Для добавления дополнительных модулей в initramfs используется опция --add.


# Создание initramfs с дополнительными модулями
sudo dracut --add "module1 module2" -f /boot/initramfs-$(uname -r).img $(uname -r)

# Пример:
sudo dracut --add "network base" -f /boot/initramfs-5.10.0-8-amd64.img 5.10.0-8-amd64
    

Исключение модулей из initramfs

Для исключения модулей из initramfs используется опция --omit.


# Создание initramfs без определенных модулей
sudo dracut --omit "module1 module2" -f /boot/initramfs-$(uname -r).img $(uname -r)

# Пример:
sudo dracut --omit "drm plymouth" -f /boot/initramfs-5.10.0-8-amd64.img 5.10.0-8-amd64
    

Настройка Dracut через конфигурационные файлы

Dracut можно настроить через конфигурационные файлы, расположенные в каталоге /etc/dracut.conf.d/. Эти файлы позволяют задавать параметры по умолчанию для создания initramfs.

Пример конфигурационного файла


# Создание конфигурационного файла
sudo nano /etc/dracut.conf.d/custom.conf

# Пример содержимого файла:
# Включить дополнительные модули
add_dracutmodules+="module1 module2"
# Исключить модули
omit_dracutmodules+="module3 module4"
# Сжать initramfs с использованием lz4
compress="lz4"
    

Перезагрузка и применение изменений

После создания или обновления initramfs необходимо перезагрузить систему для применения изменений.


# Перезагрузка системы
sudo reboot
    

Полезные опции и параметры Dracut

Dracut поддерживает множество опций и параметров для тонкой настройки процесса создания initramfs. Некоторые из них:

  • -H, --hostonly — включает только необходимые для текущей системы модули.
  • -m, --modules — явно указывает, какие модули включить в initramfs.
  • -c, --conf — указывает файл конфигурации.
  • --force — принудительно перезаписывает существующий initramfs.

Эти команды и примеры помогут вам эффективно использовать Dracut для создания и управления initramfs в НАЙС ОС, обеспечивая надежность и гибкость загрузочного процесса.