Right now, I'm doing most of my testing using a qemu/kvm guest and
-generating the initramfs on another box. I then can boot the guest
+generating the initramfs on another box but the support is all present
+to build for the "running" machine. For the former, you can boot the guest
using qemu's -kernel and -initrd options. Currently supported rootfs
types are regular partitions, root-on-lvm and root-on-lvm-on-encrypted-pv.
-generate.sh exists and will build an image. Right now, it depends on
-some existing pieces of the Fedora initrd infrastructure, but moving
-those out is a priority now that the basic functionality has been
-proven.
+dracut exists and will build an image. It is command-line equivalent
+to most mkinitrd implementations and should be pretty straight-forward
+to use.
+
+To use, just run dracut with an output file name and, optionally, a
+kernel version (it defaults to using the current). The appropriate
+modules will be copied over and things should be good to go. If you'd
+like to customize the list of modules copied in, edit /etc/dracut.conf
+and set
+ modules="foo bar baz"
-To use, just run generate.sh with an output file for the initrd. It
-will copy over some binaries as well as the appropriate shared library
-dependencies. If you are doing a rootfs type that requires modules
-(on Fedora, this is just encrypted root now), you'll want to have the
-modules tree to copy in in a modules/ sub directory.
Requirements:
* udev
Current TODO list, broken into things which are relevant for the
-initramfs itself (/init et al) vs the generator
+initramfs itself (/init et al) vs the generator. A lot of things
+are/should be marked with "FIXME" in the code
INITRAMFS TODO
--------------
* root= parsing should be done with udev creating /dev/root symlink
for us appropriately
* Support thaw (resume from hibernate)
-* Currently requires the drop-nash branch of plymouth; get merged into
-master and released
* Proving some support with a simple network based root would be good
* Do we just call dhclient, etc or try to get NetworkManager going?
* Would be nice not to have to kill and restart udev across switchroot
* mdraid
* dmraid
* multipath
-* SELinux policy either needs to be loaded from the initramfs or /init
-on the rootfs
-
+* Should SELinux policy be done in the initramfs or from the real rootfs?
GENERATOR TODO
--------------
-* Needs to be written to look at the current kernel and get the
-modules so it can be used on a running system.
-* Move the needed pieces of Fedora mkinitrd's initrd-functions into
-this tree. This should mainly be around shlib resolution/copying at
-present
-* We should just grab appropriate modules rather than all of them.
- * Should default to basically all storage drivers, possibly allow to
- specify less
- * Maybe use class based specifiers (=ata, =net, etc) that we do
- today with Fedora mkinitrd
-* Certainly more as this is a huge hack right now
+* Default module specificatoin could use some work
+* udev rule copying, as mentioned above, is a bit too hard-coded