From owner-freebsd-hackers@freebsd.org Fri May 1 16:45:47 2020 Return-Path: Delivered-To: freebsd-hackers@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 05B7D2D9F2C for ; Fri, 1 May 2020 16:45:47 +0000 (UTC) (envelope-from danny@cs.huji.ac.il) Received: from mailman.nyi.freebsd.org (mailman.nyi.freebsd.org [IPv6:2610:1c1:1:606c::50:13]) by mx1.freebsd.org (Postfix) with ESMTP id 49DJ622xWcz3JC6 for ; Fri, 1 May 2020 16:45:46 +0000 (UTC) (envelope-from danny@cs.huji.ac.il) Received: by mailman.nyi.freebsd.org (Postfix) id 631022D9F29; Fri, 1 May 2020 16:45:46 +0000 (UTC) Delivered-To: hackers@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 62CF32D9F28 for ; Fri, 1 May 2020 16:45:46 +0000 (UTC) (envelope-from danny@cs.huji.ac.il) Received: from kabab.cs.huji.ac.il (kabab.cs.huji.ac.il [132.65.116.210]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 49DJ606Glhz3JC5 for ; Fri, 1 May 2020 16:45:44 +0000 (UTC) (envelope-from danny@cs.huji.ac.il) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=cs.huji.ac.il; s=57791128; h=References:To:Cc:In-Reply-To:Date:Subject:Mime-Version:Content-Type:Message-Id:From; bh=K15BdRScFOXyiEyTiSjrYvUsdm1xHrH8fCrIivfeG/g=; b=rFd9uQWV0iZVOfPTEGCpHV03ZqCeZhFs4/udJulhXkbYo25ztlTPr9R51WKmbL+fDCBbOV21X7IfSdUEbV6gfQn0rfxACnIqNC95Zc7HC3SIifJANRJntS3tk8alvi5sVKpXCjMZKYaQgYDwlbgjvI0e2qW/WbmkwGh016wontVJ/9RscpR78ChIXR+3USx4x4QqgSwE3i1iKl2mqc0PCye/yMBzNgz5g85MXvUegsdbd9LRHNwU5UTrJZeWz9ggzdaNBMTR9AKSItL8nJGgG55kvuR7kvVkEJ4nkOEScqbv165W6vUQxosqpibPnOPvx4ThdZkU9c+1dS7pH/rrhw==; Received: from macmini.bk.cs.huji.ac.il ([132.65.179.19]) by kabab.cs.huji.ac.il with esmtp id 1jUYnE-0003Nj-Mt; Fri, 01 May 2020 19:45:40 +0300 From: Daniel Braniss Message-Id: Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: Re: efi boot question Date: Fri, 1 May 2020 19:45:40 +0300 In-Reply-To: Cc: =?utf-8?Q?Trond_Endrest=C3=B8l?= , "freebsd-hackers@freebsd.org" To: Warner Losh References: <8B798F61-783C-4A1C-AEED-4B42E88E5010@cs.huji.ac.il> <9FAAF98B-77D1-4D39-8E8E-D20F2B4C2E5C@cs.huji.ac.il> X-Mailer: Apple Mail (2.3608.80.23.2.2) X-Rspamd-Queue-Id: 49DJ606Glhz3JC5 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=cs.huji.ac.il header.s=57791128 header.b=rFd9uQWV; dmarc=pass (policy=none) header.from=huji.ac.il; spf=none (mx1.freebsd.org: domain of danny@cs.huji.ac.il has no SPF policy when checking 132.65.116.210) smtp.mailfrom=danny@cs.huji.ac.il X-Spamd-Result: default: False [-4.74 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[cs.huji.ac.il:s=57791128]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; MV_CASE(0.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; IP_SCORE(-2.44)[ip: (-6.35), ipnet: 132.64.0.0/13(-3.29), asn: 378(-2.63), country: IL(0.05)]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[cs.huji.ac.il:+]; DMARC_POLICY_ALLOW(-0.50)[huji.ac.il,none]; RCVD_IN_DNSWL_NONE(0.00)[210.116.65.132.list.dnswl.org : 127.0.10.0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:378, ipnet:132.64.0.0/13, country:IL]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2020 16:45:47 -0000 > On 1 May 2020, at 18:34, Warner Losh wrote: >=20 >=20 >=20 > On Fri, May 1, 2020 at 3:54 AM Daniel Braniss > wrote: >=20 >=20 > > On 1 May 2020, at 11:42, Trond Endrest=C3=B8l = > = wrote: > >=20 > > On Fri, 1 May 2020 11:16+0300, Daniel Braniss wrote: > >=20 > >> hi, > >> I have none efi boot that: > >> - the bios is set to do network boot/pxe > >> - if the dhcpd.conf is configured with filename set to = pxeboot, it loads as diskless,=20 > >> or if set to =E2=80=9Cpmbr=E2=80=9D then goes and boots off = the hard disk. > >> (this is faster than changing the bios boot order) > >>=20 > >>=20 > >> so now i'm experimenting with efi boot,=20 > >> the GPT is: > >>=20 > >> =3D> 40 5857345456 mfid0 GPT (2.7T) > >> 40 409600 1 efi (200M) > >> 409640 8388608 2 freebsd-ufs ( 4.0G) > >> 8798248 100663296 3 freebsd-swap (48G) > >> 109461544 5747883952 4 freebsd-zfs (2.7T) > >>=20 > >> but am at loss figuring out what boot file to download. > >> any insight is appreciated, > >=20 > > You can try this: > >=20 > > gpart bootcode -p /boot/boot1.efifat -i 1 mfid0 > >=20 > > This will populate /dev/mdid0p1 with a FAT filesystem containing=20 > > /boot/boot1.efi, saved as efi/boot/BOOTx64.efi. You may later = replace=20 > > the latter file with /boot/loader.efi. You will also find=20 > > efi/boot/startup.nsh which simple instructs the boot firmware to = load=20 > > and run BOOTx64.efi. > >=20 > > I haven't worked out how you can grow the small 800K FAT filesystem = to=20 > > take advantage of your 200M partition. And indeed, we will need an = ESP=20 > > of more than 800K in the near future. > >=20 > > This fstab entry might be handy: > >=20 > > # Device Mountpoint FStype Options = Dump Pass# > > /dev/mfid0p1 /esp msdosfs rw,-l,-m=3D664,-M=3D775,noauto = 0 0 > >=20 > > --=20 > > Trond. >=20 >=20 > the fat partition is fine, has all that is needed, but > I need the right bootblock instead of pmbr, and there are many *efi* = in /boot and I don=E2=80=99t > know which one to use :-( >=20 > You don't need boot blocks in UEFI. >=20 > Create the FAT partition, use newfs_msdos to initialize it. mount it = and create a top-level directory named EFI. >=20 > There are several options from here: >=20 > (1) use the 'old style' of putting boot1.efi or loader.efi into = EFI/BOOT/BOOTX64.EFI. If you have a really simple setup, this is likely = the easiest. It usually works (though there are exceptions for some = crazy BIOSes). This works because the UEFI BIOS looks for removable = devices with a ESP that has /EFI/BOOT/BOOTxxx.EFI (where xxx varies on = architecture, for AMD64 its X64). It loads this. Both boot1.efi and = loader.efi know what to do from here if your root filesystem is on the = same disk as the ESP. boot1.efi searches a little harder for things, = while loader.efi is more disciplined in what it searches for to allow = for predictable behavior. This option works great for a FreeBSD only = machine. >=20 > (2) Use the new style. mount the esp somewhere, say /boot/efi. Put = loader.efi into /boot/efi/EFI/FreeBSD and use the following command: > efibootmgr --create --loader /boot/efi/efi/freebsd/loader.efi --kernel = /boot/kernel/kernel --label "FreeBSD Rocks" --activate --verbose >=20 > which creates and activates a UEFI boot variable, that tells it to = load loader.efi first and have it load the default kernel and to label = it "FreeBSD Rocks". >=20 > This also works well for FreeBSD only machines and gives you more = control if you are doing things like having redundant partitions and you = want to nail down exactly the right one. This also works for people that = want to have multiple versions of FreeBSD on the machine (though 11 and = older works less well than 12 and newer). >=20 > (3) There are a number of 3rd party chain loaders rEFInd is likely the = most popular. I don't use those, so I can't comment on them further. = These work well when you have multiple OSes that each have their own = fussy notion of the proper early boot setup. >=20 > Warner my problem is that the bios is set to network boot/pxe. In such case the dhcp responds with =E2=80=98filename=E2=80=99. With no efi = partition, just freebsd-boot, setting file to pmbr - which get loaded = via tftp , it works fine, it boots from the disk =E2=80=99s freebd-ufs partition - if there are several, setting = bootme does the trick. my problem is that using pmbr it failed when the partition is efi (fat = and all the files are there) with no boot found - or something similar. so im wondering if there is some other file tat can be loaded via tftp = that will load the right stuff from the efi/fat partition. danny