The object of my attention this morning is dracut, the replacement for the venerable mkinitrd in the RHEL/Fedora lines.
Dracut has great promise, in that it is being built as a construction kit for initial ramdisk for booting Linux.
Unfortunately, like mkinitrd, it has a number of … er … failures.
Happily it has a concept of an shell you can drop into if things go pear shaped. mkinitrd generates initrd’s that will often simply kernel panic with no way to debug. Dracut lets you debug.
Been playing with it for a while, and now that we are sending machines out with RHEL 6.1, it would be nice to make sure that the initrd/initramfs are built correctly.
This is in part due to the (very) fragile way Linux starts up. And the use of loadable modules for most drivers. Yeah, it makes sense for some things, but … not for everything.
I look at how SystemRescue CD does it … or any number of other tools … Elements are simply autodetected correctly, and the correct driver run. RAIDs are automatically assembled. Networks are turned on.
Kind of a shame that a multibillion dollar company such as Red Hat can’t grab their idea … it works … on pretty much all the hardware I’ve thrown at it. Its not distro specific. But the set of tools that they use … just work …
This said, dracut has promise, though it is rapidly turning into a nightmare in terms of the complexity of the internal rule sets (sort of like udev, which really wasn’t stable until recently … and oh … there was, in the past, no way to debug it).
So its somewhere between delight and dread that I look at this. To a degree its reminiscent of the change from grub to grub2 in Ubuntu. That one didn’t make much sense … still doesn’t. But mkinitrd was aging and it was growing far too complex. So, replace it with something …. er …. more complex?
At least RHEL has started using something akin to upstart (very similar capability). Makes startup much faster.
FWIW: Our kernels do work on RHEL. We are working on building the magic dracut invocation and/or patches that will enable it to work properly. Had the same issue in the past with RHEL 5.x and mkinitrd. Some of the things that are done in these tools prevent non-RHEL kernels from booting with software MD RAID. Turns out the naive “lets try the default” simply don’t work. Go figure.