dracut-networkroot

Модуль initrd dracut-networkroot позволяет монтировать корневую файловую систему LiveCD по сети — по NFS или CIFS (SMB).
Роса устанавливается не попакетно, а путем копирования готового образа ОС (через rsync), что делает установку быстрой и детерминированной (предсказуемой). При установке по PXE приходится в initrd скачивать образ ОС, который будет копироваться на диск, и хранить его в оперативной памяти, а ее может оказаться недостаточно. Этот модуль позволяет монтировать образ по сети, чтобы не было необходимости хранить его копию в оперативной памяти.

Разберем на примере, как использовать dracut-networkroot.
Пусть есть установочный образ со встроенным пакетом dracut-networkroot — ROSA_2021.1_PLASMA5_x86_64_54259.iso.
Монтируем образ:
 mkdir -p /tmp/1 /tmp/2
 sudo mount ROSA_2021.1_PLASMA5_x86_64_54259.iso /tmp/1
 sudo mount /tmp/1/LiveOS/squashfs.img /tmp/2

Файл /tmp/2/LiveOS/rootfs.img нужно положить на сетевую шару NFS или CIFS (SMB).
Пример, как это сделать с NFS:
 sudo dnf install nfs-utils
В конец файла /etc/exports добавить строку:
 /srv *(ro)
Вместо каталога /srv можно использовать любой другой. Здесь и далее приводится /srv в качестве примера.
Выполнить:
 sudo systemctl restart nfs-server
 sudo cp -v /tmp/2/LiveOS/rootfs.img /srv
Для проверки корректности работы сетевой шары можно примонтировать ее, например, так:
 sudo mount -t nfs 192.168.122.1:/srv /mnt
 ls /mnt
Должен быть виден файл rootfs.img.

При запуске ОС для установки добавьте в cmdline ядра:
 networkroot=nfs://server/path/to:file.ext4
Например:
 networkroot=nfs://192.168.122.1/srv:rootfs.img

Однако необходимо, чтобы сеть автоматически настроилась.
Пример с автоматической настройкой сети по DHPC:
 ip=dhcp
Пример, когда будет использован IP-адрес 192.168.122.50, шлюз 192.168.122.1, маска подсети 255.255.255.0, а DHCP будет отключен:
 ip=192.168.122.50::192.168.122.1:255.255.255.0:::off
Дополнительно можно указать DNS-сервер Яндекса:
 ip=192.168.122.50::192.168.122.1:255.255.255.0:::off:77.88.8.8
Подробнее см. в dracut.cmdline(7).

Пример того, что нужно добавить в cmdline ядра:
 ip=dhcp networkroot=nfs://192.168.122.1/srv:rootfs.img
Также может быть указан кикстарт-файл (inst.ks=... systemd.unit=anaconda.target) для полностью автоматизированной установки.
