I ran into serious trouble booting several boxes off UEFI. On modern hardware, the ESP is around 200 - 300 MB in size and usually I install /efi/freebsd/loader.efi, loader.efi taken from /boot/loader.efi. On some older hardware, specifically on a Lenovo E540 with latest available firmware (2.28), which uses 12-STABLE and a ZFS-only installation, there seems no working loader anymore! The installation of the Laptop has been performed using 12.0-PRERELEASE on an Samsung EVO 860 500GB SSD. The ESP is 200M in size and contained /efi/boot/BOOTx64.efi and /efi/boot/startup.nsh. The ESP has been destroyed by accident. Now I tried to solve the problem by installing a new ESP and the proper loader, assuming that /boot/loader.efi (taken from a FreeBSD-13-CURRENT or from 12-STABLE of the same revision and sompiled on the same platform (Intel Haswell) as the lost laptop's revison of the OS is at. But I fail doing so. Somehow Lenovo's firmware is setting up a lot of UEFI boot numbers as provided via "efibootmgr -b 000X", X some Hex numer. -b 000A is usually denoted/labeld with "ATA HDD0". Installing the proper boot/loader.efi loader file from 12-STABLE (r351108) and setting the EFI variable according the following steps: mount -t msdosfs /dev/ada0p1 /mnt (ESP is on GPT partition 1, 0p2 is zroot) Install then loader.efi either as BOOTx64.efi or loader.efi under /mnt/efi/boot/ or /mnt/efi/freebsd/ and then set the boot environment accordingly via delete 000A first: efibootmgr -B -b 000A create the new efi boot var: efibootmgr -a -b 000A -c -l /mnt/efi/{freebsd|boot}/{loader.efi|BOOTx64.efi} -L FreeBSD The result is a non booting system, the Lenovo firmware jumps immediately into the menu for selecting a proper boot media. The same happens with /boot/boot1.efi installed as loader.efi or BOOTx64.efi shown above. In case I just brute-force flash the ESP with /boot/boot1.efifat, dd if=boot1.efifat of=/dev/ada0p1 (ESP) (taken from the propper 12-STABLE system I spoeke of above), then booting fails again, but this time with an error I watch on so many boxes recently: [...] Ignoring Boot000a: Only one DP found Trying ZFS pool Setting currdev to zfs:zroot/ROOT/default: Then the console freezes at that point and only RESET or POWER OFF is capable of a revive. What is wrong here? What am I missing? Thanks in advance, ohReceived on Wed Aug 21 2019 - 17:23:05 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:21 UTC