On Sat, Mar 28, 2020 at 12:14 PM Toomas Soome <tso...@me.com> wrote: > > > > > On 28. Mar 2020, at 05:28, Chris <bsd-li...@bsdforge.com> wrote: > > > > On Fri, 27 Mar 2020 18:31:50 -0700 bsd-li...@bsdforge.com > > <mailto:bsd-li...@bsdforge.com> said > > > >> On Fri, 27 Mar 2020 17:27:27 -0600 Warner Losh i...@bsdimp.com said > >> > On Fri, Mar 27, 2020 at 4:54 PM Chris <bsd-li...@bsdforge.com> wrote: > >> > > > On Sat, 28 Mar 2020 01:10:37 +0300 Andrey Fesenko f0and...@gmail.com > >> > > > said > >> > > > >> > > > On Sat, Mar 28, 2020 at 12:53 AM Chris <bsd-li...@bsdforge.com> > >> > > > wrote: > >> > > > > > >> > > > > On an experiment of the FreeBSD EFI implementation. I installed > >> > > > > a copy of releng/12 from install media. Which left me with: > >> > > > > # gpart show ada0 > >> > > > > => 40 312581728 ada0 GPT (149G) > >> > > > > 40 409600 1 efi (200M) > >> > > > > 409640 31047680 2 freebsd-ufs (15G) > >> > > > > 31457320 7680000 3 freebsd-swap (3.7G) > >> > > > > 74788904 237792864 - free - (141G) > >> > > > > > >> > > > > On this Intel based system, I can stab the F12 key to pick > >> > > > > my UEFI bootable OS, or let it boot according to the order > >> > > > > I setup in the BIOS. So far, so good. > >> > > > > I needed a copy of releng/13 to also work with. Installed a copy > >> > > > > from install media. Which left me with: > >> > > > > # gpart show ada0 > >> > > > > => 40 312581728 ada0 GPT (149G) > >> > > > > 40 409600 1 efi (200M) > >> > > > > 409640 31047680 2 freebsd-ufs (15G) > >> > > > > 31457320 7680000 3 freebsd-swap (3.7G) > >> > > > > 39137320 532480 4 efi (260M) > >> > > > > 39669800 35119104 5 freebsd-ufs (17G) > >> > > > > 74788904 237792864 - free - (113G) > >> > > > > I *assumed* that the install would activate the new install, and I > >> > > > > would boot straight into it. But no. I am still on the previous > >> > > > > install, and worse, I can't get into the new install -- even if > >> > > > > picking it via stabbing the F12 key. I *still* end up in the > >> > > > > previous > >> > > > > install. So looking at what might be causing it. I found the > >> > following: > >> > > > > # releng/12 > >> > > > > # mount -t msdosfs /dev/ada0p1 /mnt/ > >> > > > > > >> > > > > # ls /mnt/efi/boot/ > >> > > > > BOOTx64.efi > >> > > > > startup.nsh > >> > > > > > >> > > > > # cat /mnt/efi/boot/startup.nsh > >> > > > > BOOTx64.efi > >> > > > > > >> > > > > # umount /mnt/ > >> > > > > > >> > > > > releng/13 > >> > > > > # mount -t msdosfs /dev/ada0p4 /mnt/ > >> > > > > > >> > > > > # ls /mnt/EFI/freebsd/ > >> > > > > loader.efi > >> > > > > > >> > > > > Why the difference? When will FreeBSD (u)EFI work as expected? > >> > > > > > >> > > > > Thanks in advance for any insights! > >> > > > > > >> > > > > >> > > > Require only single efi part > >> > > > > >> > > > See > >> > > > > >> > > > >> > https://forums.freebsd.org/threads/two-freebsd-installations-and-efi.73968/ > >> > > Thanks for they reply, and link, Andrey! > >> > > Well that confirms it. FreeBSD, unlike other OS implementations, will > >> > > not > >> > > permit booting your chosen "version" via EFI. > >> > > Firstly, *huge* thanks for your informative reply, Warner! > >> > It does today. If you use efibootmgr, you can boot exactly what you > >> > want. I > >> > do it all the time... Though your BIOS may overwrite the EFI vars if you > >> > set too many (I'm looking at you supermicro). When you use the efi > >> > BootXXXX > >> > variables, it's possible to boot one of many different things on the > >> > system... Though I've not done 11, just 12 and current. > >> Well. That's the thing. I *am* on 12 && 13. Well *trying* to get into 13. > >> When I started this whole thing, I had some 15 entries returned by > >> efibootmgr(8) -v. > >> So I trimmed the list down to the 2 my BIOS presents as UEFI: > >> Boot0015 UEFI: WDC WD1600JS-98MHB0 > >> PciRoot(0x0)/Pci(0x1f,0x2)/Sata(0x0,0xffff,0x0)/HD(4,GPT,6688c5af-6f93... > >> Boot0011* UEFI: WDC WD1600JS-98MHB0 > >> PciRoot(0x0)/Pci(0x1f,0x2)/Sata(0x0,0xffff,0x0)/HD(1,GPT,260d2df2-6a10... > >> another entry created when I installed releng/13: > >> Boot0014 FreeBSD (ada0p4) > >> HD(4,GPT,6688c5af-6f93-11ea-adbb-4c72b9f5e07f,0x2553028,0x82000)/File(\EFI\free... > >> and a Windows reference (currently not installed). > >> I activated *both* Boot0015 and Boot0011: > >> efibootmgr -a 0015 0011. Output confirmed success. Bounced box, choose > >> Boot0015. Which booted > >> initial releng/12 install. Fail. OK Try something different; > >> efibootmgr -a 0014 -L FreeBSD-13. Output confirms the -L switch is broken, > >> but 00114 is active. > >> Bounce box && choose 0014. Boots to initial releng/12 install. > >> Conclusion; FreeBSD EFI/ESP is not ready for prime time. :( > >> Thanks again for the reply, Warner! :) > >> --Chris > > > How loader is working is that it does search for *first* “usable” freebsd > partition and will use it. Usable is defined as having /boot/loader.efi. > > Therefore, you may have 2 or more freebsd instances on the disk, it really > does not matter, only first is used. If you have multiple disks, you can have > different order on second disk. > > Why it is so? We do build loader.efi and we do copy it to the ESP, and > currently there is no way to tell where is the root file system. > > How could we tell where from to load the OS? Well, there are few options to > think about: > > 1. record the hint into the loader.efi binary - this would need special > installer and would break signing. > 2. record EFI variable - it should reflect OS instance version and that > version should be bound with specific loader binary. Coordination is pain > there. > 3. record partition to loader.env file > > The current loader code is reading "/efi/freebsd/loader.env” from ESP. IMO > this sounds most promising, but would need support from installer or manual > setup. Would work as is with multiple ESP instances. Would need versioned > /efi/freebsdXX directories for single shared ESP and installer update. > > 4. We still do have BE menu in loader, populated automatically from zfs > snapshots. It can be complemented with entries from file based index (I wrote > about that idea already). This would allow to create simple switch to > different instance or initiate chain load of third party boot loader. >
With ZFS may work set bootfs on zpool _______________________________________________ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"