I understand there are a few threads about this out there but my issue seems particular.
Recently my boot disk, an SSD, failed and I have just rebuilt it. Given the opportunity, I thought I might go ahead and build it with a ZFS boot device (ie 'root on ZFS'). I installed
gpart bootcode. But when I tried to boot I get the well-known 'BTX halted' error message, with the contents of registers. On a few attempts, there was a message saying something like "Can't find ZFS volume".
I read that this is thought to be due to some interaction with the BIOS and FreeBSD, so I went to try to enter the BIOS to fiddle around. Unfortunately, it looks like there is a problem with the motherboard or the BIOS, because I can't access the menu. But I'm able to boot fine from my live USB, and it seems unlikely that anything substantial has changed with the motherboard since that would be an enormous coincidence with the failure of the SSD. In any case I have no interest fiddling with the BIOS at the moment and would just like to get the system back to where it was.
The live USB I'm running is a copy of the memstick installer, except with the main partition replaced with my own installation of FreeBSD. So it uses UEFI, I think, as its first partition is 'efi', but I did not set that up manually so I'm not sure what exactly the differences are between that and the device I'm trying to boot from.
Since I understood my BTX Halted issue to possibly be related to root on ZFS, I decided to try a hybrid approach where I have a UFS root filesystem, and a ZFS pool for the other data to be mounted from fstab. However this yields the same BTX halted error. (Does not include any other messages at the top as it occasionally did before, such as 'Cant find ZFS volume'). This alternative was configured with gptboot instead of gptzfsboot (ie
gpart bootcode -b pmbr -p gptboot -i $index $device).
Now, there is another thing I should mention just for the sake of completeness, that there could be corruption in the kernel (though unlikely) since I had to selectively reinstall a few modules in the kernel due to corruption on the original device. I believe this is irrelevant because the
BTX halted error is occurring in the loader before the kernel has been touched.
Since the live USB works fine, my next step will be to use it as a 'test case', starting with it on my boot device and incrementally adding what I want onto it until I figure out what causes the error. I'm not sure how to setup the efi boot since the original, failed SSD used GPT (actually it used a 'boot on SSD' guide on the FreeBSD website which I can't seem to find now) and I have never set up efi.
However before I start this next step I was hoping for some input on what is going on since putting together the drive in small increments will be time consuming and it would be preferable if it isn't wasted.