initramfs environment for fedup
C Shell Makefile
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
85system-upgrade-fedora
90system-upgrade
plymouth
.gitignore
COPYING
Makefile
README.asciidoc
TODO.asciidoc
fedup-dracut.spec.in
makefeduprepo
system-upgrade-fedora.c

README.asciidoc

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, and upgrade-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 upgrade hook

  • 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.

  1. Install build requirements

    • rpm-devel >= 4.10.0

    • plymouth-devel >= 0.8.6

    • systemd >= 195

    • glib2-devel

  2. Install dracut modules

    • make install, or

      1. make archive

      2. rpmbuild -ta fedup-dracut*.tar.xz

      3. rpm -ivh [freshly-built RPMs]

  3. Build upgrade initramfs

    • OLDTHEME=$(plymouth-set-default-theme)

    • plymouth-set-default-theme fedup

    • dracut --add system-upgrade upgrade.img

    • plymouth-set-default-theme $OLDTHEME