fedup-dracut - initramfs environment for Fedora Upgrades
This is fedup-dracut, the initramfs environment for Fedora Upgrades.
Components
It has the following parts:
90system-upgrade/
This module provides a (distro-neutral) framework for running upgrades.
-
Adds three dracut hooks:
upgrade-pre,upgrade, andupgrade-post. -
Adds
upgrade.target, which runs the above hooks (in order) -
Automatically includes any other modules named
system-upgrade-* -
BONUS: adds system-upgrade-shell.service
85system-upgrade-fedora/
This is the Fedora system-upgrade implementation.
-
Includes upgrade tool, SELinux policy, plymouth, etc.
-
Copies initramfs to
$NEWROOT/system-upgrade-root -
Runs system-upgrade-fedora binary in the
upgradehook -
Save log & journal to
/var/log/upgrade.{log,journal}before reboot
system-upgrade-fedora.c
The actual upgrade tool.
-
Upgrades system using packages from
$UPGRADELINK -
Sends progress updates to
plymouthd -
Sends status output to console + journal
The actual upgrade setup is handled in the main fedup package, which can be found here: https://github.com/wgwoods/fedup
Building
You’ll want to build the initramfs on the newer distro version.
-
Install build requirements
-
rpm-devel >= 4.10.0
-
plymouth-devel >= 0.8.6
-
systemd >= 195
-
glib2-devel
-
-
Install dracut modules
-
make install, or-
make archive -
rpmbuild -ta fedup-dracut*.tar.xz -
rpm -ivh [freshly-built RPMs]
-
-
-
Build upgrade initramfs
-
OLDTHEME=$(plymouth-set-default-theme) -
plymouth-set-default-theme fedup -
dracut --add system-upgrade upgrade.img -
plymouth-set-default-theme $OLDTHEME
-