@ Карта сайта News Автора!

Bog BOS: dracut - создание initramfs

Последние изменения:
2017.05.19: sysadmin: Файловая система zfs под Linux для архива

Последнее изменение файла: 2016.02.12
Скопировано с www.bog.pp.ru: 2017.06.29

Bog BOS: dracut - создание initramfs

dracut - утилита создания initramfs, используемого при загрузке Linux (файл с образом файловой системы, загружаемый в оперативную память) в качестве первоначальной корневой файловой системы. Заменяет mkinitrd (с Fedora 12 и RHEL 6). Задача initramfs - обеспечить монтирование "настоящей" корневой файловой системы для нормальной работы, после чего корневая файловая система переключается на неё. dracut автоматически распознаёт имеющееся оборудование и включает в образ необходимые загружаемые модули ядра. dracut имеет модульную структуру (/usr/share/dracut/modules.d или /usr/lib/dracut/modules.d/; 63 в RHEL7). Основной модуль - 99base - задаёт скрипт, запускаемый ядром после монтирования initram. В RHEL7 dracut использует systemd со всеми его целями и сервисами (см. dracut.bootup(7) и dracut-*.service). Дополнительно описываются используемые при загрузке ядра ключи командной строки, которые распознают внедрённые в образ утилитой dracut скрипты и программы.

Создание initramfs

Не все модули включены по умолчанию. Настройки в файлах /etc/dracut.conf и /etc/dracut.conf.d/*.conf и /usr/lib/dracut/dracut.conf.d/*.conf (см. dracut.conf(5)). Ключи dracut перебивают настройки (журнал создания в /var/log/dracut.log):

Возможна загрузка корневой файловой системы по сети - пакет dracut-network. Загрузчик локальный или PXE.

При установке пакета с новым ядром вызывается скрипт "/sbin/new-kernel-pkg --package kernel --install версия", который вызывает "dracut -f /boot/initramfs-версия.img версия-ядра".

Утилита lsinitrd позволяет посмотреть содержимое initram. Ключ "-f имя-файла" выводит содержимое указанного файла.

Параметры загрузки

При загрузке ядра распознаются следующие параметры (dracut.8; в RHEL7 к именам параметров добавлен префикс "rd."; берутся из командной строки и из initram в файлах /etc/cmdline, /etc/conf.d/, /etc/cmdline.d/*.conf; параметры без значения - булевы, можно задавать 0 или 1):

Предсказуемые имена сетевых интерфейсов (по данным BIOS/прошивки):

В случае проблем при установке пользователь попадает в командную оболочку (rd.shell), в файл /run/initramfs/rdsosreport.txt записывается отчёт. В командной строке можно найти/создать нужное устройство и сделать на него символьную ссылку в /dev/root, по команде exit загрузка продолжается.

Для выхода в командную оболочку при завершении работы системы надо (RHEL7):

mkdir -p /run/initramfs/etc/cmdline.d
echo "rd.break=pre-shutdown" > /run/initramfs/etc/cmdline.d/debug.conf
touch /run/initramfs/.need_shutdown
reboot

Ссылки

@ Карта сайта News Автора!

Bog BOS: dracut - создание initramfs

Последние изменения:
2017.05.19: sysadmin: Файловая система zfs под Linux для архива

TopList

Copyright © 1996-2017 Sergey E. Bogomolov; www.bog.pp.ru (КГБ знает все, даже то что у Вас на диске ;)