Date: Fri, 05 Jun 2026 16:00:26 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 201788] UEFI boot1.efi doesn't honor GPT bootme/bootonce flags Message-ID: <bug-201788-227-IXhTqHbuoy@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-201788-227@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=201788 --- Comment #7 from Jose Luis Duran <jlduran@FreeBSD.org> --- Just as a matter of documentation. The bootcode that should be used is gptboot.efi(8). Take this hypothetical NanoBSD image: # gpart show -l => 34 7999933 vtbd0 GPT (3.8G) 34 6 - free - (3.0K) 40 121 1 gptboot0 (61K) 161 1887 - free - (944K) 2048 532480 2 efiboot0 (260M) 534528 532480 3 efiboot1 (260M) 1067008 532480 4 efiboot2 (260M) 1599488 3198976 5 code1 (1.5G) 4798464 3198976 6 code2 (1.5G) 7997440 2048 7 cfg (1.0M) 7999488 479 - free - (240K) We'll just use efiboot0 (vtbd0p2). The partition vtbd0p2 has: # mount_msdosfs /dev/gpt/efiboot0 /mnt # ls -R /mnt EFI /mnt/EFI: BOOT /mnt/EFI/BOOT: BOOTX64.EFI Where BOOTX64.EFI is /boot/gptboot.efi: # sha256 -q /boot/gptboot.efi 21150c71a7a00075a76dde5eb65dc876570d5e7ea937dac061aee1358083a52e # sha256 -q /mnt/EFI/BOOT/BOOTX64.EFI 21150c71a7a00075a76dde5eb65dc876570d5e7ea937dac061aee1358083a52e Now, let's test the flags: # df -h / Filesystem Size Used Avail Capacity Mounted on /dev/gpt/code1 1.5G 1.3G 241M 84% / # gpart set -a bootonce -i 6 vtbd0 bootonce set on vtbd0p6 # gpart show -l => 34 7999933 vtbd0 GPT (3.8G) 34 6 - free - (3.0K) 40 121 1 gptboot0 (61K) 161 1887 - free - (944K) 2048 532480 2 efiboot0 (260M) 534528 532480 3 efiboot1 (260M) 1067008 532480 4 efiboot2 (260M) 1599488 3198976 5 code1 (1.5G) 4798464 3198976 6 code2 [bootonce,bootme] (1.5G) 7997440 2048 7 cfg (1.0M) 7999488 479 - free - (240K) Let's restart and see if it boots from code2: # shutdown -r now ... # df -h / Filesystem Size Used Avail Capacity Mounted on /dev/gpt/code2 1.5G 1.3G 241M 84% / It did! The /etc/rc.d/gptboot script also properly cleared the flags: # gpart show -l => 34 7999933 vtbd0 GPT (3.8G) 34 6 - free - (3.0K) 40 121 1 gptboot0 (61K) 161 1887 - free - (944K) 2048 532480 2 efiboot0 (260M) 534528 532480 3 efiboot1 (260M) 1067008 532480 4 efiboot2 (260M) 1599488 3198976 5 code1 (1.5G) 4798464 3198976 6 code2 (1.5G) 7997440 2048 7 cfg (1.0M) 7999488 479 - free - (240K) Rebooting again should boot from code1: # shutdown -r now ... # df -h / Filesystem Size Used Avail Capacity Mounted on /dev/gpt/code1 1.5G 1.3G 241M 84% / -- You are receiving this mail because: You are the assignee for the bug.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-201788-227-IXhTqHbuoy>
