ZFS support in GRUB
[ Please CC me on your replies ]
It's nice to see you guys are making progress about ZFS. I figured a
status report about ZFS support in GRUB would be useful to you.
GRUB has complete support for ZFS in current trunk, provided that the
contrib ZFS code in grub-extras is overlaid (as it is in the Debian
package). Some of my fixes already made it to sid, but not all, so if
you want to play with it either grab upstream Bazaar trunk or wait
for next snapshot.
grub-install and update-grub are fully functional (even when using ZFS
as root filesystem), but still not widely tested, so I encourage you to
play with it and report any problems. If you find problems with ZFS
support, I recommend that you put me on CC when reporting them, as I
don't actively monitor grub-devel (or any mailing list) these days.
There are, however, some caveats you should be aware of:
- Only ZFS up to (and including) version 14 is supported. For newer
versions, we could make update-grub work with separate /boot with
minimal effort (poke me if you think this is needed), but complete
support for ZFS in root isn't currently being worked on. We need
help in this area.
- Multi-device arrays are not supported. If they're RAID1 (mirror),
we work around this by selecting the first member and using that for
boot later. For array types where more than one disk is needed, GRUB
can't boot. Using a separate /boot can resolve this, however.
- Gzip compression is not supported. It can probably be implemented
without much effort, given that GRUB already has gzip code (for a
different purpose, so the API isn't generic enough, but this can be
fixed). Note that the default in ZFS is no compression, and when
compression is enabled the default is LZJB, so this is not a big
problem. Also note that in case you enable gzip compression, a
separate /boot is not necessary to work around missing support in
GRUB. Simply create new ZFS filesystems for /boot and /lib/modules
inside the same zpool, and adjust compression settings accordingly.