boot1.efi does not detect ZFS pools created on whole disks (i.e. NOT on freebsd-zfs partitions).
My (limited) understanding is that sys/boot/zfs/zfs.c should detect whole disk ZFS pools since comments in zfs_probe_dev seem to indicate that this function first tries to probe whole disk before probing partitions.
- 1 SSD with a GPT scheme and just one EFI partition populated with dd if=/boot/boot1.efifat
- 6 HDDs with a raidz2 pool created with:
zpool create -f $MYPOOL raidz2 ada0 ada1 ada2 ada3 ada4 ada5
on brand new disks (There were no freebsd-zfs partition created. Not even a GPT scheme)
Some more info:
- The ZFS pool on my raidz2 array is functional (I can import it when booting in the "Live CD" mode of a FreeBSD 11 install media)
- Originally, I had the system installed with a zroot pool on my SSD, but for various reasons, I need to have my system live on my raidz2 pool)
- If there is a way to let boot1.efi know how to find my pool, I would be happy with that
Apparently, devices without logical partitions are not even probed with (ufs|zfs)_module.c
in boot1.c, line 492:
Commenting out the two lines in boot1.c allowed boot1.efi to detect my zfs pool, and to load loader.efi .
However, loader.efi could not find any zfs pool neither (nothing in the ZFS section of the output of lsdev)
Is this still a problem on 12-ALPHA?
yes this still happens on 12.0-ALPHA8 r339251
I checked the source code of the EFI boot loader. Its seems thats its not able to boot ZFS from a whole disk. Next week I try to find out what needs to be done to make it work.
Today I filed tho bug reports bug #235380 and bug #235388 related to this bug report.