How to debug ZFS boot on UEFI?

DTD doug at
Mon Jul 30 20:10:36 UTC 2018

On Mon, 30 Jul 2018, Grzegorz Junka wrote:

> On 30/07/2018 01:14, doug wrote:
>> On Sun, 29 Jul 2018, Grzegorz Junka wrote:
>>> Hi,
>>> I've followed (more or less) this thread:
>>> I have two disks nvd0 and nvd1 with three partitions on each: efi, 
>>> freebsd-swap and freebsd-zfs. I've created the ZFS pool and installed 
>>> FreeBSD manually (because on nvd1 I have also a few partitions used by 
>>> Windows). On nvd1p1 I've created the hierarchy of files as outlined in the 
>>> post:
>>> efi/boot/BOOTx64.efi (copied from /boot/boot1.efi
>>> boot/loader.rc (with the content as outlined in the post)
>>> In UEFI boot menu I can see all partitions (Windows, UEFI shell, UEFI USB 
>>> stick for 11.2, and the one I created). Booting from any partition works 
>>> apart from the one I created - when that partition is selected UEFI shows 
>>> a black screen for a second and then goes back to the boot menu.
>>> How can I debug what's wrong?
>>> Thanks
>>> GrzegorzJ
>> Did you try verbose boot? If you get nothing from that as far as I can tell 
>> that means the code in the firmware did not find any thing to transfer 
>> control to. I could never get beyond that point.
> Thanks for your prompt response. I will try the rest of your advice when I 
> get back to my computer, but in the meantime can you please tell me how to 
> verbose boot?

An option on the boot menu. It may be possible to set something in one of the 
/boot conf files. If so, I do not know how. My experience when getting a error 
because the EFI boot was not recognized was to make sure the file that was there 
was what the docs and experts said should be there. And then to return the 
failing hardware and try again. I had this luxury because I was getting a new 
system to be used on our internal network. Dell just worked, legacy or uefi.

> As a side note, when I initially installed FreeBSD using mirror ZFS and 
> guided installation the zdb label ended up on /dev/nvd0 device. When I 
> installed the pool manually from shell it ended up on the /dev/nvd1p3 device. 
> I actually had problem with recognizing the correct pool in the installer 
> until I force-cleared zfs label from nvd0.

My one ZFS install was a gift (Dell just worked). I have never done a ZFS manual 
install. In both those cases I picked apart the guide and modified it to do a 
UFS install. On the install I did it gave me a choice of disks. In my case the 
PC had a SSD with Windows and another disk. So I installed on the empty disk.

> I would like to try to move the zdb label from nvd1p3 to nvd0 to see if that 
> makes any difference. Could be that the ZFS efi loader doesn't see ZFS 
> properly until it's labelled on the main device rather than on a partition (I 
> don't know much about ZFS labels). Is that possible?

I would still hope for more knowledgeable responders here. My assumption as noted 
if you get an error prior to running in FreeBSD, the firmware was not happy. 
This is one reason refind might be a good solution, dual boot or not. What PC 
will not boot Windows? My understanding of refind is that it gets control first 
and then it knows how to boot whatever. My Lenovo install worked that way for 
sure. As to ZFS, I bought this last PC and John Lucas's book to learn about it.

Douglas Denault
doug at
Voice: 301-217-9220
   Fax: 301-217-9277

More information about the freebsd-questions mailing list