Re: uefi(8) fails to boot from ZFS with compression=zstd

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Fri, 23 Oct 2020 08:40:38 +0200
Toomas Soome <tsoome_at_me.com> writes:

>
>> On 23. Oct 2020, at 05:02, Jan Beich <jbeich_at_freebsd.org> wrote:
>> 
>> After r366657 (currently, on r366953) I've tried to boot from a
>> compression=zstd dataset but it failed to reach loader(8), see below.
>> However, switching to CSM path (boot1.efi -> gptzfsboot) makes it work.
>> 
>> Am I missing something?
[...]
> Does it boot when you copy loader.efi to bootx64.efi?

Yes, skipping boot1.efi works fine. Luckily, my gptzfsboot + loader.efi
still fit into 1Mb I've reserved for boot partitions.

$ gpart show nda0
=>        40  1000215136  nda0  GPT  (477G)
          40         320     1  freebsd-boot  (160K)
         360        1688     2  efi  (844K)
        2048  1000213120     3  freebsd-zfs  (477G)
  1000215168           8        - free -  (4.0K)

$ sh /usr/share/examples/bhyve/vmrun.sh -ATE -d /dev/nda0 -d /dev/nda1 host-freebsd
Launching virtual machine "host-freebsd" ...
fbuf frame buffer base: 0x827800000 [sz 16777216]
Consoles: EFI console
    Reading loader env vars from /efi/freebsd/loader.env
Setting currdev to disk0p2:
FreeBSD/amd64 EFI loader, Revision 1.1
(Thu Oct 22 23:48:55 UTC 2020 foo_at_bar)

   Command line arguments: loader.efi
   Image base: 0x1e907000
   EFI version: 2.40
   EFI Firmware: BHYVE (rev 1.00)
   Console: efi (0x20001000)
   Load Path: \EFI\BOOT\BOOTX64.EFI
   Load Device: PciRoot(0x0)/Pci(0x3,0x0)/Sata(0x0,0x0,0x0)/HD(2,GPT,<REDACTED>,0x168,0x698)
   BootCurrent: 0000
   BootOrder: 0000[*] 0001 0002 0003
   BootInfo Path: PciRoot(0x0)/Pci(0x3,0x0)/Sata(0x0,0x0,0x0)
Ignoring Boot0000: Only one DP found
Trying ESP: PciRoot(0x0)/Pci(0x3,0x0)/Sata(0x0,0x0,0x0)/HD(2,GPT,<REDACTED>,0x168,0x698)
Setting currdev to disk0p2:
Trying: PciRoot(0x0)/Pci(0x3,0x0)/Sata(0x0,0x0,0x0)/HD(1,GPT,<REDACTED>,0x28,0x140)
Setting currdev to disk0p1:
Trying: PciRoot(0x0)/Pci(0x3,0x0)/Sata(0x0,0x0,0x0)/HD(3,GPT,<REDACTED>,0x800,0x3B9E0A80)
Setting currdev to zfs:tank/ROOT/freebsd-zstd:
Loading /boot/defaults/loader.conf
Loading /boot/defaults/loader.conf
Loading /boot/device.hints
Loading /boot/loader.conf
Loading /boot/loader.conf.local
/
-  ______               ____   _____ _____
  |  ____|             |  _ \ / ____|  __ \
  | |___ _ __ ___  ___ | |_) | (___ | |  | |
  |  ___| '__/ _ \/ _ \|  _ < \___ \| |  | |
  | |   | | |  __/  __/| |_) |____) | |__| |
  | |   | | |    |    ||     |      |      |
  |_|   |_|  \___|\___||____/|_____/|_____/
                                                 ```                        `
 ┌───────────Welcome to FreeBSD────────────┐    s` `.....---.......--.```   -/
 │                                         │    +o   .--`         /y:`      +.
 │  1. Boot Multi user [Enter]             │     yo`:.            :o      `+-
 │  2. Boot Single user                    │      y/               -/`   -o/
 │  3. Escape to loader prompt             │     .-                  ::/sy+:.
 │  4. Reboot                              │     /                     `--  /
 │  5. Cons: Dual (Serial primary)         │    `:                          :`
 │                                         │    `:                          :`
 │  Options:                               │     /                          /
 │  6. Kernel: default/kernel (1 of 2)     │     .-                        -.
 │  7. Boot Options                        │      --                      -.
 │  8. Boot Environments                   │       `:`                  `:`
 │                                         │         .--             `--.
 └─────────────────────────────────────────┘            .---.....----.


Loading kernel...
/boot/kernel/kernel text=0x10c7c8 text=0x99a088 text=0x1a75e4 data=0x140 data=0x131aa4+0x4cd55c syms=[0x8+0x10f4d0+0x8+0x112349]
Loading configured modules...
/boot/firmware/intel-ucode.bin size=0x303800
/etc/hostid size=0x25
/boot/entropy size=0x1000
/boot/kernel/ichwd.ko size 0x8558 at 0x1b27000
Start _at_ 0xffffffff8030d000 ...
EFI framebuffer information:
addr, size     0xc1000000, 0x1000000
dimensions     1024 x 768
stride         1024
masks          0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000
Received on Fri Oct 23 2020 - 04:40:42 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:25 UTC