ZFS support for EFI

Eric McCorkle eric at metricspace.net
Mon Mar 30 00:45:53 UTC 2015


Hi folks,

I've been messing around off and on for a while with adding ZFS support
to the EFI boot.  It's been mostly exploratory and self-contained up to
this point, but I've gotten to a point that warrants some discussion.


First, I've converted boot1.c (the EFI boot block) to use an FS module
framework.  This facilitates the addition of ZFS, and should also come
in handy if someone wants to add other functionality later (ie. crypto,
netboot, etc.)


More importantly, the EFI loader doesn't seem to make use of its
command-line arguments at all.  But a ZFS-enabled loader would really
need the ability to take arguments from boot1 (or grub, or whatever
else).  On the boot1 side, with ZFS you need to load and parse
/boot/loader.conf (which may cause you to switch pools), then hand off
the information to loader.  In the BIOS loader, that's done through a
binary data object that gets passed in.  Command-line strings seem like
the most sensible way to do it with EFI.

Would this be the right way to go, and if so, what ought these
command-line strings look like?


Thanks,
Eric


More information about the freebsd-hackers mailing list