1 |
Alas, here I am self-replying a few hours later... |
2 |
|
3 |
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 [1] 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 it... |
4 |
|
5 |
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. |
6 |
|
7 |
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. |
8 |
|
9 |
As far as a summary of changes, here's what I ended up doing: |
10 |
|
11 |
https://github.com/pendor/gentoo-zfs-overlay/, branch master |
12 |
ebuild: (Versus the stock -9999 ebuild in portage) |
13 |
* Change git to dracut branch of forked repo |
14 |
* Add dep for Dracut |
15 |
* Add use flag based dep for ZFS (explicit on -9999 version for now as there's been no release with the necessary changes) |
16 |
|
17 |
|
18 |
https://github.com/pendor/genkernel-zfs, branch dracut |
19 |
genkernel: (Versus dracut branch from git.overlays.gentoo.org) |
20 |
* Remove -nonet flag from xsltproc call (couldn't build with it set) |
21 |
* Add 'zfs' to list of Dracut modules in gen_dracut.sh |
22 |
* Add '--zfs' flag to command line & ZFS setting to conf file, update docs to match. |
23 |
* Pass log level to Dracut based on Genkernel's log level |
24 |
* Try to catch Dracut failures and die rather than reporting success after broken initramfs. |
25 |
|
26 |
|
27 |
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. |
28 |
|
29 |
Best regards, |
30 |
Zac Bedell |