Please follow 72 columns standard in e-mail. :-)
Regarding mdev, it was not even taken into account when writing Dracut.
It is very possible that issues arise in such a combination.
I haven't reviewed your code yet, but from what you've described, seems
to be great work! When I find some more time, I'll review the code and
think how it's best to import it. Please also contact Alexey Shvetsov
<email@example.com>. He's working on bringing ZFS to Gentoo. I'm
CC'ing this reply to him. (That's why I'm top-posting, don't beat me
Thank you for sharing your work and such a good summary!
Excerpts from Zachary Bedell's message of Sun Jul 03 22:37:18 +0200 2011:
> Alas, here I am self-replying a few hours later...
> I figured out how to get everything running properly with the Dracut
> initramfs, though I'm afraid I'm stuck at the 6th stage of debugging
>  on this one... My system didn't have udev set to start at any
> runlevel. Adding it to boot made everything work properly with both
> the Dracut and classic initramfs. I haven't the slightest idea how it
> worked with the classic Genkernel initramfs, but I guess I'll take
> So all told, I have some genkernel patches and some ZFS patches (all
> for the Dracut module) to contribute. I'll pass along the ZFS changes
> upstream, though I'm not sure if that's something that Dracut would
> eventually want to pull in? I think for the time being given that
> ZFSonLinux is rather actively evolving, it might make sense to leave
> the modules over there until things quiet down a bit. As it is, if
> you install the Dracut branch of Genkernel, Dracut itself, and the git
> version of ZFS, all of the files end up in the right places so
> everything works together. Merging them into Dracut probably doesn't
> buy anything right now.
> Patches are attached, and everything's in a public git repo if some
> other format is desired. For the record, this is all released under
> GPL-2 or any later version at your option.
> As far as a summary of changes, here's what I ended up doing:
> https://github.com/pendor/gentoo-zfs-overlay/, branch master
> ebuild: (Versus the stock -9999 ebuild in portage)
> * Change git to dracut branch of forked repo
> * Add dep for Dracut
> * Add use flag based dep for ZFS (explicit on -9999 version for now
> as there's been no release with the necessary changes)
> https://github.com/pendor/genkernel-zfs, branch dracut
> genkernel: (Versus dracut branch from git.overlays.gentoo.org)
> * Remove -nonet flag from xsltproc call (couldn't build with it set)
> * Add 'zfs' to list of Dracut modules in gen_dracut.sh
> * Add '--zfs' flag to command line & ZFS setting to conf file, update
> docs to match.
> * Pass log level to Dracut based on Genkernel's log level
> * Try to catch Dracut failures and die rather than reporting success
> after broken initramfs.
> I also made some minor changes to the zfs-9999 ebuild originally taken
> from the Science overlay. The most important is the creation of
> /etc/hostid if it doesn't exist as Gentoo's hostid binary doesn't
> appear to write that file if it doesn't exist.
> Best regards,
> Zac Bedell
>  http://mark.aufflick.com/blog/2005/11/10/six-stages-of-debugging
> On Jul 3, 2011, at 12:33 PM, Zachary Bedell wrote:
> > I've managed to make a bit of progress with getting
> > Genkernel/Dracut/ZFS to all play nicely together. I'm running into
> > some trouble with devices after the initramfs is actually done, and
> > I'm not sure if I'm just hitting the current limitations of the
> > Genkernel/Dracut branch or if there's something silly I might be
> > doing. My first suspicion is that Dracut's using udev while the
> > rest of my system is setup for mdev is probably the source of my
> > issues, but my knowledge of the various device manager packages is
> > pretty limited at this point.