fedora-initramfs-builder is a script for crafting a feature rich initramfs for use as a rescue image and custom fedora installer.
I want to run Fedora on a 100% zfs managed disk. That means no ext4 /boot and no swap (who needs swap anyway).
The plan is to leaning on ipxe and a large custom initramfs to boot strap over the network for ease of use and to avoid having to deal with /boot and grub.
In the case of a laptop which cannot rely on network booting all the time, I will create a bootable usb key with just grub and /boot for bootstraping - this usb key can be removed once the system boots.
Keep complexity low and visibility high. I want this to be easy to understand even if that means boot times are long. I don’t care much about boot times but I care alot about reproducability and the ability to wipe a machine back to a known state quickly and automatically.
This should also lay the ground-work for easier updates between fedora releases and ease of switching back to an old setup in the event of a catastrophic failure or user error.
- vm boots ipxe.iso
- ipxe pulls down latest fedora29 kernel and initramfs generated by initramfs-builder.sh
- boot into initramfs.igm (which has full zfs support)
- setup zfs filesystem on the local disk
- install fedora packages into local disk filesystem
- apply any config changes or manual hacks to the local disk filesystem
- kexec to stock fedora kernel + stock dracut generated initramfs (with zfs support added)