22 Sep 2008 davej   » (Master)

initrd clarifications.

After reading some of the comments at lwn about my sessions last week at kernel summit/plumbers conf about writing a 'make initrd' target for the kernel that would work on every distro, I feel some clarifications are in order.

What I am not doing.
  • Dropping the Fedora mkinitrd script into the kernel.org tree and hoping other distros will make it work for them.
  • Obsoleting the existing mkinitrd from Fedora for a considerable amount of time. (Think RHEL7 timeframe).


What I am doing.
  • Right now, nothing but decompressing. Last week was pretty intense, with a lot of feedback to take in.


What I've done
  • I've looked at other distros initrd's & creation tools. They all suck equally. Really. If you disagree, you either haven't looked hard enough, or you have emotional attachment issues. There is really nothing amazing about your distros tools over any others. (Which is why I'm of the opinion that "do it right, once, upstream" is the right answer.
  • Written very little code. A few dozen lines of shell on the planeride home. I'm not posting anything until it at least is limping[1] along.


What I'll do next
  • Yes, I'm starting afresh. I'll be borrowing some bits from various distros initrd's as I stumble into "hmm, how _does_ this currently work" territory, but this is going to be done with baby steps, first of all just booting off simple setups with /dev/[hs]da, no root on nfs/iscsi/nbd etc.
  • At least in part, I'm starting with something completely new for political reasons. It's the only way to get anyone to agree on how to make progress. With everyone so invested in their current working solutions, "just use the debian one" or "just use the fedora one" isn't going to get us anywhere.


How is this going to work?
  • For Fedora systems, we'll be building an additional initrd. Currently we only build it at kernel RPM install time, tailored for that system. Going forward, a one-size-fits-all initrd will be made during the package build process. Which gets used will depend on an /etc/sysconfig/kernel/ setting. This way, we can continue to use the crufty mkinitrd until this thing is ready, and the bleeding edge lunatics and people actually wanting to work on this can set the variable and have the new hotness.
  • The very first step however is recovering from some of the fallout of the boot/init session of plumbersconf. Reviewing our CONFIG options. It's likely that use of 'make initrd' will imply that certain options should be set certain ways.


Once I'm feeling a little more on my feet[2], I'll make some more posts on what I intend to do, and how. Until then, continue to speculate wildly.


[1] Trapped sciatic nerves are the _worst_.
[2] Seriously. Screw flying anywhere for a while. I'm staying home.

Syndicated 2008-09-22 19:38:43 from Dave Jones recollection of stuff that happened.

Latest blog entries     Older blog entries

New Advogato Features

FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!