On Fri, 22 May 2026, Sad Clouds wrote:

I think I may just give up boot.cfg as I can't get it to work reliably
with multiple root partitions.

I reduced the names of root partitions, to make sure "NAME=<label>"
fits within 15 chars. It still refuses to boot from the correct
partition when using boot.cfg. Manually typing "boot NAME=root-main:"
at the bootloader prompt does boot from the correct partition.

# gpt show -l ld0
     start       size  index  contents
         0          1         PMBR
         1          1         Pri GPT header
         2         32         Pri GPT table
        34       2014         Unused
      2048     262144      1  GPT part - boot-efi
    264192    2097152      2  GPT part - root-diag
   2361344    4194304      3  GPT part - root-main
   6555648  127660032      4  GPT part - cgd
 134215680       2015         Unused
 134217695         32         Sec GPT table
 134217727          1         Sec GPT header

# cat /boot-efi/efi/netbsd/boot.cfg
# Boot into NetBSD diagnostic environment
menu=Boot root-diag:rndseed /var/db/entropy-file;boot NAME=root-diag:
menu=Boot root-diag single user:rndseed /var/db/entropy-file;boot 
NAME=root-diag: -s

# Boot into NetBSD main environment
menu=Boot root-main:rndseed /var/db/entropy-file;boot NAME=root-main:
menu=Boot root-main single user:rndseed /var/db/entropy-file;boot 
NAME=root-main: -s

[..]


That should work, and it does for me. Testing just now on a very old 10.99.14
on Qemu:

Disk layout
```
qemu1# gpt show -l sd0
     start      size  index  contents
         0         1         PMBR
         1         1         Pri GPT header
         2        32         Pri GPT table
        34        30         Unused
        64    262144      1  GPT part - EFI
    262208   4095936      2  GPT part - Root1
   4358144   4194304      4  GPT part - Root2
   8552448   4194304      5  GPT part - Root3
  12746752   4194304      6  GPT part - Root4
  16941056   1490944         Unused
  18432000   2539456      3  GPT part - Swap
  20971456        31         Unused
  20971487        32         Sec GPT table
  20971519         1         Sec GPT header
qemu1#
```

/boot.cfg (on Root1)
```
menu=Boot normally:gop 21;rndseed /var/db/entropy-file;boot NAME=Root1:netbsd
menu=Boot single user:rndseed /var/db/entropy-file;boot -s
menu=Boot Root2:gop 21;rndseed /var/db/entropy-file;boot NAME=Root2:netbsd
menu=Boot Root3:gop 21;rndseed /var/db/entropy-file;boot NAME=Root3:netbsd
menu=Boot Root4:gop 21;rndseed /var/db/entropy-file;boot NAME=Root4:netbsd
menu=Drop to boot prompt:prompt
default=1
timeout=5
clear=1
```

/etc/fstab (on Root1)
```
# NetBSD /etc/fstab
# See /usr/share/examples/fstab/ for more examples.
NAME=Root1      /       ffs     rw               1 1
NAME=Swap       none    swap    sw,dp            0 0
tmpfs           /tmp    tmpfs   rw,-m=1777,-s=ram%25
kernfs          /kern   kernfs  rw
ptyfs           /dev/pts        ptyfs   rw
procfs          /proc   procfs  rw
/dev/cd0a       /cdrom  cd9660  ro,noauto
tmpfs           /var/shm        tmpfs   rw,-m1777,-sram%25
```

Of course, the other fstabs have different rootdev names, and also hostnames
(qemu2, qemu3 & qemu4) for testing purposes.

-RVP

Reply via email to