3.9.1.4 Dracut - ПО для создания загрузочного образа (initramfs)
Скачать документ Основные опции
Создание образа initramfs
Информация об образе
Окружение
- Версия РЕД ОС: 8
- Конфигурация: Рабочая станция
- Версия ПО: dracut-056-9
Dracut — набор инструментов, обеспечивающих расширенные функции для автоматизации процесса загрузки Linux. Инструмент под названием dracut используется для создания загрузочного образа Linux (initramfs) путем копирования инструментов и файлов из установленной системы и объединения их со средой dracut, которая обычно находится в каталоге /usr/lib/dracut/modules.d.
В отличие от существующих загрузочных образов Linux, платформа Dracut пытается ввести как можно меньше жестко запрограммированной логики в initramfs. По сути, initramfs имеет одну цель: найти и смонтировать настоящую корневую файловую систему, чтобы процесс загрузки мог перейти к ней. Эта функция зависит от доступности устройства. Поэтому вместо жестко запрограммированных сценариев для определения доступности и пригодности устройства initramfs dracut зависит от диспетчера устройств Linux (udev) для создания символических ссылок на узлы устройств. Когда появляется узел устройства корневой файловой системы, Dracut монтирует его как новую корневую файловую систему, что помогает сократить время, необходимое для initramfs.
Основные опции
К основным опциям dracut относятся:
--kver <версия_ядра>
- позволяет создать образ с указанной версией ядра (по умолчанию образ сохраняется в каталог /boot);-f, --force
- перезаписать существующий файл initramfs;-a, --add <список_модулей_dracut>
- добавить список модулей dracut (через пробел) к набору модулей по умолчанию;-o, --omit <список_модулей_dracut>
- отключить указанный список модулей dracut (через пробел);-m, --modules <список_модулей_dracut>
- список модулей dracut (через пробел) для вызова при сборке initramfs. Этот параметр позволяет dracut включать только указанные модули;--add-drivers <список_модулей_ядра>
- список модулей ядра (через пробел) для добавления в initramfs. Модули ядра должны быть указаны без суффикса «.ko»;--filesystems <список_модулей_ФС>
- список модулей файловой системы ядра (через пробел) для включения в initramfs только общего назначения. Модули должны быть указаны без суффикса «.ko»;-H, --hostonly
- создать образ только с теми параметрами, которые необходимы для загрузки конкретной машины.
Создание образа initramfs
Для создания образа initramfs используется команда:
dracut
Данная команда создаст образ initramfs общего назначения со всеми возможными функциями, полученными в результате комбинации установленных модулей dracut и системных инструментов. Образ /boot/initramfs-<версия_ядра>.img будет содержать модули используемого в данный момент системой ядра.
Если такой initramfs-образ уже существует, будет выведена ошибка с предложением использования опции --force для перезаписи уже существующего образа.
dracut dracut: Will not override existing initramfs (/boot/initramfs-5.15.125-1.el7.3.x86_64.img) without --force
Также можно указать собственное имя для создаваемого образа, передав его команде в качестве аргумента:
dracut new-images-03-10-2023.img
Файлы образов по умолчанию хранятся в каталоге /boot. Однако обратите внимание, что при указании собственного имени образа (как приведено в примере выше) он будет сохранен в той директории, из которой выполнялась команда. Для сохранения образа в необходимом каталоге потребуется указать полный путь к создаваемому образу, например:
dracut /boot/new-images-03-10-2023.img
Для просмотра содержимого каталога /boot и списка имеющихся образов выполните следующую команду:
ll /boot
Информация об образе
Для просмотра информации об используемом образе можно воспользоваться командой:
lsinitrd | less
В выводе отображается имя образа, его размер, версия dracut и список включенных в образ модулей dracut:
Image: /boot/initramfs-5.15.125-1.el7.3.x86_64.img: 33M ======================================================================== Version: dracut-056-9.el7 Arguments: --force dracut modules: bash systemd systemd-initrd systemd-sysusers nss-softokn dbus-broker rngd dbus i18n network-manager network ifcfg drm plymouth dm kernel-modules kernel-modules-extra kernel-network-modules ...
Некоторые модули в dracut по умолчанию отключены, но их можно добавить, используя файл конфигурации /etc/dracut.conf или команду вида:
dracut --add module <название_модуля>
Используя команду dracut --list modules
, можно вывести список всех модулей dracut, доступных в системе:
dracut --list modules bash systemd systemd-network-management warpclock fips systemd-ac-power systemd-ask-password systemd-coredump systemd-hostnamed systemd-initrd systemd-integritysetup systemd-journald systemd-ldconfig systemd-modules-load systemd-networkd systemd-repart systemd-resolved systemd-rfkill systemd-sysctl ...
Все модули dracut расположены в каталоге /usr/lib/dracut/modules.d. В этом каталоге все модули представлены в виде подкаталогов и содержат ряд скриптов. Каждый модуль обеспечивает определенную функциональность.
После секции модулей выведен список содержимого сжатого образа:
======================================================================== drwxr-xr-x 12 root root 0 Sep 6 17:12 . crw-r--r-- 1 root root 5, 1 Sep 6 17:12 dev/console crw-r--r-- 1 root root 1, 11 Sep 6 17:12 dev/kmsg crw-r--r-- 1 root root 1, 3 Sep 6 17:12 dev/null crw-r--r-- 1 root root 1, 8 Sep 6 17:12 dev/random crw-r--r-- 1 root root 1, 9 Sep 6 17:12 dev/urandom lrwxrwxrwx 1 root root 7 Sep 6 17:12 bin -> usr/bin drwxr-xr-x 2 root root 0 Sep 6 17:12 dev drwxr-xr-x 15 root root 0 Sep 6 17:12 etc drwxr-xr-x 2 root root 0 Sep 6 17:12 etc/authselect -rw-r--r-- 1 root root 2428 Jul 31 10:58 etc/authselect/nsswitch.conf drwxr-xr-x 2 root root 0 Sep 6 17:12 etc/cmdline.d drwxr-xr-x 2 root root 0 Sep 6 17:12 etc/conf.d -rw-r--r-- 1 root root 124 Sep 6 17:12 etc/conf.d/systemd.conf drwxr-xr-x 7 root root 0 Sep 6 17:12 etc/dbus-1 drwxr-xr-x 2 root root 0 Sep 6 17:12 etc/dbus-1/interfaces drwxr-xr-x 2 root root 0 Sep 6 17:12 etc/dbus-1/services -rw-r--r-- 1 root root 838 Oct 10 2022 etc/dbus-1/session.conf drwxr-xr-x 2 root root 0 Sep 6 17:12 etc/dbus-1/session.d -rw-r--r-- 1 root root 833 Oct 10 2022 etc/dbus-1/system.conf ...
Функционал программы также предоставляет возможность ручного добавления драйверов, отключения ненужных модулей, добавление дополнительной информации для ускорения загрузки. Дополнительно реализована возможность поиска корневого раздела на сетевом диске.
Подробную информацию о работе с dracut можно получить, выполнив команду:
man dracut
Дата последнего изменения: 24.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.