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. My setup: - 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: if (!blkio->Media->LogicalPartition) return (EFI_UNSUPPORTED);
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.