Comment 15 for bug 1530953

Revision history for this message
Richard Laager (rlaager) wrote :

Can you also ship an /etc/udev/rules.d/90-zfs-vdev.rules with these contents?

KERNEL=="sd*[0-9]", IMPORT{parent}=="ID_*", ENV{ID_FS_TYPE}=="zfs_member", SYMLINK+="$env{ID_BUS}-$env{ID_SERIAL}-part%n"

This makes GRUB work if the user uses /dev/disk/by-id/x names, which upstream ZFS-on-Linux recommends. Without that, the user is required to use /dev/sdx names.

Note that this ONLY supports root-on-ZFS-on-partitions. Using partitions is what the upstream HOWTO recommends, what the current version of my HOWTO recommends (but not past versions), how other filesystems are configured on Linux, and what Solaris and its derivatives use for root-on-ZFS (which is also the default there).

I fought the good fight trying to make ZFS "wholedisk" root installs a thing on Linux, but that cannot work well without changes to GRUB. GRUB is simply not architected in a way to handle this well. (I wrote a patch to GRUB that makes it work, but it feels hacky and was rejected by upstream GRUB.) Fundamentally, the idea of giving ZFS the whole disk but then having ZFS partition the disk and use a partition is just messy. It's definitely a layering violation.

So for now, I'd like to see Ubuntu support root-on-ZFS-on-partitions. If circumstances change, it's easy to expand that later. But if you start supporting root-on-ZFS-on-wholedisk, then you're kinda stuck supporting that forever. So I'd rather see the conservative approach of only supporting partitions for now.