Date: Fri, 27 Jul 2018 08:54:48 +0300 From: Toomas Soome <tsoome@me.com> To: "O. Hartmann" <ohartmann@walstatt.org> Cc: "Rodney W. Grimes" <freebsd-rwg@pdx.rh.CN85.dnsmgr.net>, freebsd-current <freebsd-current@freebsd.org>, Allan Jude <allanjude@freebsd.org> Subject: Re: [UEFI] Boot issues on some UEFI implementations Message-ID: <6C5D21D2-59C6-42DB-AC75-79D98BA5E62B@me.com> In-Reply-To: <20180727074558.75b2d730@freyja.zeit4.iv.bundesimmobilien.de> References: <1E6058D2-5804-480B-B6AF-66AA02CDD7AD@me.com> <201807251430.w6PEUWPn041286@pdx.rh.CN85.dnsmgr.net> <20180726155821.6f9906e9@freyja.zeit4.iv.bundesimmobilien.de> <7FA45CAF-6869-4DF6-AA93-5F96F83EF958@me.com> <20180727074558.75b2d730@freyja.zeit4.iv.bundesimmobilien.de>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 27 Jul 2018, at 08:46, O. Hartmann <ohartmann@walstatt.org> wrote: >=20 > On Thu, 26 Jul 2018 19:23:43 +0300 > Toomas Soome <tsoome@me.com> wrote: >=20 > (reply inline/at the end) >=20 >=20 >>> On 26 Jul 2018, at 16:58, O. Hartmann <ohartmann@walstatt.org> = wrote: >>>=20 >>> On Wed, 25 Jul 2018 07:30:32 -0700 (PDT) >>> "Rodney W. Grimes" <freebsd-rwg@pdx.rh.CN85.dnsmgr.net >>> <mailto:freebsd-rwg@pdx.rh.CN85.dnsmgr.net>> wrote:=20 >>>>>> On 25 Jul 2018, at 12:10, O. Hartmann <o.hartmann@walstatt.org> = wrote: >>>>>>=20 >>>>>> On Wed, 25 Jul 2018 11:46:07 +0300 >>>>>> Toomas Soome <tsoome@me.com> wrote: >>>>>>=20 >>>>>>>> On 25 Jul 2018, at 10:59, O. Hartmann <ohartmann@walstatt.org> = wrote: >>>>>>>>=20 >>>>>>>> On Tue, 24 Jul 2018 08:53:36 +0300 >>>>>>>> Toomas Soome <tsoome@me.com> wrote: >>>>>>>>=20 >>>>>>>>=20 >>>>>>>> Hello Toomas Soome, >>>>>>>>=20 >>>>>>>> I CC Allan Jude since I discovered something weird today = regarding the >>>>>>>> UEFI boot capabilities of USB flash devices and SSDs. See = below. >>>>>>>>=20 >>>>>>>>>> On 24 Jul 2018, at 08:16, O. Hartmann = <ohartmann@walstatt.org> wrote: >>>>>>>>>>=20 >>>>>>>>>> On Mon, 23 Jul 2018 10:56:04 +0300 >>>>>>>>>> Toomas Soome <tsoome@me.com> wrote: >>>>>>>>>>=20 >>>>>>>>>>>> On 23 Jul 2018, at 10:27, O. Hartmann = <ohartmann@walstatt.org> >>>>>>>>>>>> wrote: >>>>>>>>>>>>=20 >>>>>>>>>>>> On Fri, 13 Jul 2018 18:44:23 +0300 >>>>>>>>>>>> Toomas Soome <tsoome@me.com <mailto:tsoome@me.com>> wrote: >>>>>>>>>>>>=20 >>>>>>>>>>>>>> On 13 Jul 2018, at 17:44, O. Hartmann = <o.hartmann@walstatt.org >>>>>>>>>>>>>> <mailto:o.hartmann@walstatt.org>> wrote: >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>> -----BEGIN PGP SIGNED MESSAGE----- >>>>>>>>>>>>>> Hash: SHA512 >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>> Am Fri, 13 Jul 2018 14:26:51 +0300 >>>>>>>>>>>>>> Toomas Soome <tsoome@me.com <mailto:tsoome@me.com> >>>>>>>>>>>>>> <mailto:tsoome@me.com <mailto:tsoome@me.com>>> schrieb: = =20 >>>>>>>>>>>>>>>> On 13 Jul 2018, at 14:00, O. Hartmann = <ohartmann@walstatt.org> >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> The problem is some kind of weird. I face UEFI boot = problems on >>>>>>>>>>>>>>>> GPT drives where the first partition begins at block 40 = of the >>>>>>>>>>>>>>>> hdd/ssd. >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> I have two host in private use based on an >>>>>>>>>>>>>>>> outdated ASRock Z77-Pro4-M and Z77-Pro4 mainboard = (IvyBridge, >>>>>>>>>>>>>>>> Socket LGA1155). Both boards are equipted with the = lates >>>>>>>>>>>>>>>> official available AMI firmware revision, dating to = 2013. This >>>>>>>>>>>>>>>> is for the Z77-Pro4-M revision 2.0 (2013/7/23) and for = the Z77 >>>>>>>>>>>>>>>> Pro4 revision 1.8 (2013/7/17). For both boards a BETA = revision >>>>>>>>>>>>>>>> for the Spectre/Meltdown mitigation is available, but I = didn't >>>>>>>>>>>>>>>> test that. But please read. >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> The third box I realised this problem is a brand new = Fujitsu >>>>>>>>>>>>>>>> Esprimo Q956, also AMI firmware, at V5.0.0.11 R 1.26.0 = for >>>>>>>>>>>>>>>> 3413-A1x, date 05/25/2018 (or 20180525). >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> Installing on any kind of HDD or SSD manually or via = bsdinstall >>>>>>>>>>>>>>>> the OS using UEFI-only boot method on a GPT partitioned = device >>>>>>>>>>>>>>>> fails. The ASRock boards jump immediately into the = firmware, >>>>>>>>>>>>>>>> the Fujitsu offers some kind of CPU/Memory/HDD test = facility. >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> If on both type of vendor/boards CSM is disabled and = UEFI boot >>>>>>>>>>>>>>>> only is implied, the MBR partitioned FreeBSD = installation USB >>>>>>>>>>>>>>>> flash device does boot in UEFI! I guess I can assume = this when >>>>>>>>>>>>>>>> the well known clumsy 80x25 char console suddenly gets = bright >>>>>>>>>>>>>>>> and shiny with a much higher resoltion as long the GPU = supports >>>>>>>>>>>>>>>> EFI GOP. Looking with gpart at the USB flash drives = reveals >>>>>>>>>>>>>>>> that the EFI partition starts at block 1 of the device = and the >>>>>>>>>>>>>>>> device has a MBR layout. I haven't found a way to force = the GPT >>>>>>>>>>>>>>>> scheme, when initialised via gpart, to let the = partitions start >>>>>>>>>>>>>>>> at block 1. This might be a naiv thinking, so please be = patient >>>>>>>>>>>>>>>> with me. >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> I do not know whether this is a well-known issue. On = the ASRock >>>>>>>>>>>>>>>> boards, I tried years ago some LinuxRed Hat and Suse = with UEFI >>>>>>>>>>>>>>>> and that worked - FreeBSD not. I gave up on that that = time. >>>>>>>>>>>>>>>> Now, having the very same issues with a new Fujitsu = system, >>>>>>>>>>>>>>>> leaves me with the impression that FreeBSD's UEFI >>>>>>>>>>>>>>>> implementation might have problems I'm not aware of. >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>> Can someone shed some light onto this?=20 >>>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>> The first thing to check is if the secure boot is = disabled. We >>>>>>>>>>>>>>> do not support secure boot at all at this time. = =20 >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>> Secure boot is in every scenario disabled! >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>> If you have efi or bios version running - you can check = from >>>>>>>>>>>>>>> either console variable value (it can have efi or = vidconsole or >>>>>>>>>>>>>>> comconsole) or better yet, see if efi-version is set = (show >>>>>>>>>>>>>>> efi-version) - if efi-version is not set, it is BIOS = loader >>>>>>>>>>>>>>> running. Another indirect way is to see lsdev -v, with = device >>>>>>>>>>>>>>> paths present, it is uefi:) =20 >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>> What are you talking about? >>>>>>>>>>>>>> What is the point of entry - running system, loader? >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>> sysct machdep.bootmethod: BIOS >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>> This makes me quite sure that the system has booted via = BIOS - as >>>>>>>>>>>>>> I'm sure since I've checked that many times. UEFI doesn't = work on >>>>>>>>>>>>>> those systems with FreeBSD. I'm not sure antmore, but I = tried >>>>>>>>>>>>>> also Windows 7 on those mainboards booting via UEFI - and = I might >>>>>>>>>>>>>> recall that they failed also. I also recall that there = were >>>>>>>>>>>>>> issues with earlier UEFI versions regarding booting only = Windows >>>>>>>>>>>>>> 8/8.1 - and nothing else, but the fact that Linux worked = confuses >>>>>>>>>>>>>> me a bit. >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>> If this ASRock crap (never ever again this brand!) = doesn't work >>>>>>>>>>>>>> at all - who cares, I intend to purchase new server grade >>>>>>>>>>>>>> hardware. But the more puzzling issue is with the = Fujitsu, which >>>>>>>>>>>>>> I consider serious and from the behaviour the Fujitsu = failure >>>>>>>>>>>>>> looks exactly like the ASRock - Windows 7 works, RedHat = 7.5 >>>>>>>>>>>>>> works (I assume I can trust the Firmware settings when I = disable >>>>>>>>>>>>>> CSM support, that the Firmware will only EFI/UEFI capable >>>>>>>>>>>>>> loader? Or is there a ghosty override somwhere to be = expected?). >>>>>>>>>>>>>> Also on ASRock disabling CSM should ensure not booting a >>>>>>>>>>>>>> dual-bootstrap-capable system. This said, on the recent = Fujitsu, >>>>>>>>>>>>>> it seems to boil down to a FreeBSD UEFI-firmware = interaction >>>>>>>>>>>>>> problem, while the ASRock is still under suspicion to be = broken >>>>>>>>>>>>>> by design. =20 >>>>>>>>>>>>>>>=20 >>>>>>>>>>>>>>> GPT partitions can never start from disk absolute sector = 1; this >>>>>>>>>>>>>>> is because at sector 0 there is MBR (for compatibility), = sector >>>>>>>>>>>>>>> 1 is GPT table and then sectors 2-33 have GPT partition = table >>>>>>>>>>>>>>> entries, so the first possible data sector is 34 = (absolute 34). >>>>>>>>>>>>>>> Thats assuming 512B sectors. For details see UEFI 2.7 = Chapter >>>>>>>>>>>>>>> 5.3.1 page 131. =20 >>>>>>>>>>>>>>=20 >>>>>>>>>>>>>> Thanks for the explanation. That implies the installer = did right, >>>>>>>>>>>>>> gpart did also right and therefore there must be an issue = with >>>>>>>>>>>>>> the stuff located within the EFI partition? =20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Ok, so, it is not about UEFI bootcode but BIOS, and if we = reach >>>>>>>>>>>>> BIOS loader at all or not - that is, if the BIOS bootstrap = is >>>>>>>>>>>>> actually caring to read the MBR code and start it, since = once the >>>>>>>>>>>>> MBR code is started, it is all about our code. =20 >>>>>>>>>>>>=20 >>>>>>>>>>>> I'm getting confused a bit here. Do you mean by "BIOS" the = CSM? or >>>>>>>>>>>> do you mean that specific portion of the UEFI firmware, = which looks >>>>>>>>>>>> for the proper UEFI partition? >>>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> BIOS as either native or CSM. Note that from boot code point = of view >>>>>>>>>>> the CSM boot *is* BIOS boot, we have no access to UEFI = features. >>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>> The boxes in question, most notably the more recent Fujitsu = Esprimo >>>>>>>>>>>> Q956, refuse booting UEFI, even if properly setup (in terms = of what >>>>>>>>>>>> FreeBSD provides on recent CURRENT) is applied and CSM is = switched >>>>>>>>>>>> off in the firmware. Again: GPT partition scheme. >>>>>>>>>>>>=20 >>>>>>>>>>>> The system boots properly if a second partition of type >>>>>>>>>>>> "freebsd-boot" is applied and bootcode is properly applied = via >>>>>>>>>>>> "gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 2 ada0" = (ada0 is >>>>>>>>>>>> the device). =20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> btw, you can try to validate the installed boot blocks by = using >>>>>>>>>>>>> recent enough loader (usb or iso) and then you can use = from OK >>>>>>>>>>>>> prompt: =20 >>>>>>>>>>>>=20 >>>>>>>>>>>> lsdev provides me with the follwoing informations (CSM = enabled): >>>>>>>>>>>>=20 >>>>>>>>>>>> OK lsdev >>>>>>>>>>>> disk devices: >>>>>>>>>>>> disk0: BIOS DRIVE C ... >>>>>>>>>>>>=20 >>>>>>>>>>>> disk0p1: EFI >>>>>>>>>>>> disk0p2: FreeBSD BOOT >>>>>>>>>>>> disk0p3: FreeBSD SWAP >>>>>>>>>>>> disk0p4: FreeBSD ZFS >>>>>>>>>>>> zfs devices: >>>>>>>>>>>> zfs:zroot >>>>>>>>>>>>=20 >>>>>>>>>>>> OK chain disk0 >>>>>>>>>>>> open failed (so for disk0p{1-4}. >>>>>>>>>>>>=20 >>>>>>>>>>>> OK chain zroot >>>>>>>>>>>> failed to read disk (just for completeness) =20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> chain command does use only device name (such as disk0: or >>>>>>>>>>> disk0p2: ), but not zfs pool as device. I just found I = haven?t >>>>>>>>>>> ported the code to read the file. =20 >>>>>>>>>>=20 >>>>>>>>>> ?? >>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> the point for chain command test is to see if the normal = read and >>>>>>>>>>> execute would work, so in your case please try: >>>>>>>>>>>=20 >>>>>>>>>>> chain disk0: =20 >>>>>>>>>>=20 >>>>>>>>>> As stated above, I did so, and the result is also mentioned = above, I >>>>>>>>>> always get "open failed". >>>>>>>>>> This is the same for=20 >>>>>>>>>>=20 >>>>>>>>>> chain disk0 >>>>>>>>>> chain disk0p1 >>>>>>>>>> chain disk0p2 >>>>>>>>>> chain disk0p3 >>>>>>>>>> chain disk0p4 >>>>>>>>>>=20 >>>>>>>>>> as already said. CSM is enabled in this case. =20 >>>>>>>>>=20 >>>>>>>>> sigh? chain command does take device as argument, device must = always >>>>>>>>> end with colon?. in this case, the devil is in details:) as I = wrote >>>>>>>>> above, the command should be: >>>>>>>>>=20 >>>>>>>>> chain disk0: >>>>>>>>>=20 >>>>>>>>> The disk0p1: etc will only work when partition boot code was = installed >>>>>>>>> (which you most likely do not have - the only possible = candidate could >>>>>>>>> be FreeBSD ZFS partition). =20 >>>>>>>>=20 >>>>>>>> The command "chain disk0:" works as expected (CSM enabled, GPT >>>>>>>> partition scheme, but with PMBR bootblock installed and = freebsd-boot >>>>>>>> partition conatining gptzfsboot installed. >>>>>>>>=20 >>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> to read pmbr (512B) and execute it. The expected outcome = would be >>>>>>>>>>> that pmbr boot code would browse the GPT, read stage1 from = disk0p2: >>>>>>>>>>> and execute it; stage1 would detect FreeBSD ZFS from = disk0p4: and >>>>>>>>>>> load and execute /boot/loader. If that will happen, it means = the >>>>>>>>>>> boot code in our stages is just fine, but the bios (CSM) = does not >>>>>>>>>>> load pmbr?. if thats true, it would mean that you either = need to >>>>>>>>>>> use UEFI boot or need to have some hack to fool the BIOS or = just not >>>>>>>>>>> use GPT on that machine with CSM. =20 >>>>>>>>>>=20 >>>>>>>>>> To make it clear here: The only way to boot this box is using = CSM (as >>>>>>>>>> it is the same with the ASRock boards mentioned earlier). But = my >>>>>>>>>> intention is to disable CSM and use a GPT/UEFI environment = only! And >>>>>>>>>> GPT/UEFI doesn't work with FreeBSD, neither with 12-CURRENT, = nor >>>>>>>>>> 11.2-RELENG. >>>>>>>>>>=20 >>>>>>>>>> It would be nice if this could be fixed. I'm more interested = in the >>>>>>>>>> fix on the recent Fujitsu device than the outdated ASRock = crap, but >>>>>>>>>> if the fix for the Fujitsu Firmware could fix older issues as = a >>>>>>>>>> byproduct, I'd appreciate that. >>>>>>>>>>=20 >>>>>>>>>> Kind regards, >>>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> ok, somehow I have lost that part of the discussion. Well, you = wrote >>>>>>>>> that the UEFI boot fails when the first partition starts from = sector >>>>>>>>> 40 - does it mean you have boot when the partition will start = from >>>>>>>>> some other sector? I think, there is something else going on. = =20 >>>>>>>>=20 >>>>>>>> Well, I simply try to describe what I "see" to make things >>>>>>>> disambiguous. I'm not familiar with the deeper insights of disk = layouts >>>>>>>> on a binary level. So, you explained to me the reason, why ESP = (EGI >>>>>>>> partition) starts at block 40. I compared that to the FreeBSD = USB flash >>>>>>>> image FreeBSD provides, but this is another story since the = image uses >>>>>>>> MBR scheme as I figured out. >>>>>>>>=20 >>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> What you can do is to see if that firmware will offer you EFI = shell >>>>>>>>> option, from there you can try to start the bootx64.efi = manually and >>>>>>>>> see what error you will get. However, the number 1 cause for = failing >>>>>>>>> to start the bootloader in UEFI is secure boot - we do not = support it >>>>>>>>> and secure boot must be switched off.=20 >>>>>>>>>=20 >>>>>>>>> However, they seem to claim "The Secure Boot option is = available in >>>>>>>>> the UEFI/BIOS of most if not all ASRock boards. It is disabled = by >>>>>>>>> default.?=20 >>>>>>>>>=20 >>>>>>>>> Still suggest to double check if thats really the case. Also, = if the >>>>>>>>> bootx64.efi start will fail and no messages are appearing on = screen, >>>>>>>>> then either there is something in firmware logs or you could = get them >>>>>>>>> from trying to start bootx64.efi from UEFI shell. =20 >>>>>>>>=20 >>>>>>>> Since I'm with this problem since 2014 and try from time to = time, be >>>>>>>> ausred that I tried every possible permutationof all reasonable >>>>>>>> options, even those nonsense, to get rid of that problem. >>>>>>>>=20 >>>>>>>> I never had any problems with any other UEFI capable = server/workstation >>>>>>>> firmware so far booting FreeBSD off in UEFI-native (GPT = partition >>>>>>>> scheme, CSM disabled) so far - until now, when I ran into this = Fujitsu >>>>>>>> ESPRIMO Q956 with the most recent firmware (as of lat week, = week 29 of >>>>>>>> 2018) having the very same problems.=20 >>>>>>>>=20 >>>>>>>>=20 >>>>>>>>=20 >>>>>>>> I figured out something strange on the Fujitsu - and that is = the same >>>>>>>> with the ASRock boards. >>>>>>>>=20 >>>>>>>> We/I prepare some USB flash drives to boot a NanoBSD for a very = small >>>>>>>> appliance, but nevertheless, the USB flash device is booted on = Fujitsu >>>>>>>> servers with UEFI-only configurations. I assume at this point = that >>>>>>>> disabling on the most recent Fujitsu firmwares on reasonable = "new" >>>>>>>> hardware (not older than three years) will disable any(!) = legacy BIOS >>>>>>>> capabilities. The same is assumed for the Fujitus ESPRIMO Q956. = I can >>>>>>>> not speak for the ASRock A77 Pro4/m boards mentioned = above/earlier, >>>>>>>> they are from 2012/2013 and "quite old". >>>>>>>>=20 >>>>>>>> The NanoBSD image of ours doesn't have a "freebsd-boot" = partition. The >>>>>>>> partition scheme of the flash device is GPT. The layout looks = like >>>>>>>> this: >>>>>>>>=20 >>>>>>>> gpart show -l da4 =20 >>>>>>>> =3D> 40 15425456 da4 GPT (7.4G) =20 >>>>>>>> 40 2000 1 efiboot0 (1.0M) >>>>>>>> 2040 1453584 3 disk1a (710M) >>>>>>>> 1455624 4096 5 disk3 (2.0M) >>>>>>>> 1459720 13965776 - free - (6.7G) >>>>>>>>=20 >>>>>>>> I created the flash with md, gpart and dd straightforward, = efiboot0 is >>>>>>>> the ESP partition and its format/content is created via dd >>>>>>>> if=3D/boot/boot1.efifat of=3D/dev/da4p1 - I presume this is = very simple. >>>>>>>>=20 >>>>>>>> This USB flash device boots(!) successfully (UEFI!) on both the = ASRock >>>>>>>> boards and the Esprimo Q956! >>>>>>>>=20 >>>>>>>> But any SSD prepared the same way doesn't. Why?=20 >>>>>>>>=20 >>>>>>>> On the ASRock, I recall having fiddled around with HDD also for = a while >>>>>>>> conatining Windows 7/SP1 and FreeBSD. Windows7 booted, FreeBSD = - I >>>>>>>> can't remember.=20 >>>>>>>>=20 >>>>>>>> In the lack of proper hardware I'm unable to check whether = USB-attached >>>>>>>> HDD or SSD will boot or HDD will boot (just in case the local = SATA has >>>>>>>> problems booting UEFI and USB not). >>>>>>>>=20 >>>>>>>> Kind regards, >>>>>>>>=20 >>>>>>>> Oliver=20 >>>>>>>>=20 >>>>>>>=20 >>>>>>> Am. well. I think the suggestion to test out FAT32 is still good = one to >>>>>>> test. This is because it is known that some vendors do not = support >>>>>>> booting FAT12/FAT16 from HDD (the likely reason is that UEFI >>>>>>> specification does not tell which FAT must be supported, and = only hint >>>>>>> about FAT12/FAT16 in context of removable devices). =20 >>>>>>=20 >>>>>> I prepared yesterday a GTP/ZFS-only 11.2-RELENG on the ESPRIMO = Q956. It >>>>>> took me a time to circumvent the installer and I had to install = the >>>>>> system manually. In that strain, I also "tried" to establish the = ESP with >>>>>> FAT32, as Allen Jude suggested earlier. I didn't find any ad hoc = help how >>>>>> to find out the format (FAT12/16/32) of the ESP, so I assume when = using >>>>>> 12-CURRENT's or 11.2-RELENG's installer with AUTO-ZFS and GPT = (UEFI) >>>>>> (only!) the resulting ESP is FAT12 or FAT16 (300mb by default). I = also >>>>>> assume, that when dd'ing the /boo/boot1.efifat image to a = partition, the >>>>>> format is FAT, but not FAT32. Therefore, I refomatted the = manually >>>>>> created ESP (using "gpart add -t efi ...") using "newfs_msdos -F = 32 -b >>>>>> xxx ...". I had to fiddle around a bit with option -b to fit in a = proper >>>>>> format to meet a 512mb ESP - I'm not sure whether this is the = proper >>>>>> option to deal with. When using the default and only -F32, the = size of >>>>>> the partition has to be 4G at least I assume. Having done that, I = copied >>>>>> the the content of boot1.efifat (mdconfig -t vnode ..., I guess = we know >>>>>> the drill ...) to the newly formatted ESP to /boot/efi/ ... >>>>>>=20 >>>>>> Having so far no knowledge of how to asure that the created ESP = is FAT32, >>>>>> I assume it is FAT32. >>>>>>=20 >>>>>> The result is negative on the ESPRIMO Q956. When disabling the = CSM, the >>>>>> box is not willing to boot from SSD with the ESP prepared as = decribed. >>>>>> So, a chance that this might still be due to a misconfiguration = lies now >>>>>> within the -b option of newfs_msdos - if the -b option is assumed = the >>>>>> proper option? >>>>>>=20 >>>>>> At the moment, the ESP of the Esprimo is subject to changes, if = you wish, >>>>>> but not in size, since it is limited to 512mb. >>>>>>=20 >>>>>> Thanks and kind regards, >>>>>>=20 >>>>>> Oliver =20 >>>>>=20 >>>>> Yea, i was hoping fstyp command would report the FAT type, but it = does not >>>>> (request for feature?:) =20 >>>>=20 >>>> FYI, the file(1) command is very good at disecting a disk image to = tell >>>> you what the MBR looks like, and at looking at partitions if = pointed at >>>> them with the -s option. It should be able to detect FAT12/16/32. >>>>=20 >>>> root@x230a:/home/ISO/x # file -s /dev/md2s1 >>>> /dev/md2s1: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "BSD4.4 = ", >>>> root entries 512, sectors 1600 (volumes <=3D32 MB) , sectors/FAT 5, >>>> sectors/track 63, heads 1, serial number 0xbd4111ee, label: "EFISYS = ", >>>> FAT (12 bit), followed by FAT >>>>=20 >>>>>=20 >>>>> However, the more annoying idea would be to install some OS which = will >>>>> boot with UEFI on this machine, then copy boot1.efi from freebsd = to it >>>>> (the default program the UEFI will load is = ESP:EFI/boot/bootx64.efi in >>>>> case of UEFI64 and ESP:EFI/boot/bootia32.efi for EFI32. However, = we do >>>>> not support EFI32. >>>>>=20 >>>>> note that boot1.efi alone will not do much but printing on screen = how it >>>>> will search for freebsd, but for the purpose of the test it would = suffice >>>>> - that would give us confirmed working ESP file system (since the = other os >>>>> would be able to boot) and then we can confirm if boot1.efi itself = is >>>>> OK. =20 >>>>=20 >>>=20 >>> Some new results. >>> I installed RedHat 7.5 and inestigated the ESP. >>>=20 >>> - The ESP starts at block 2048, while FreeBSD's ESP starts at block = 40. >>> - size is both 200mb if installed automatically. I forgit to = investigate the >>> FAT format, but this might be unnecessary as shown further in this = post. >>> - RedHat's ESP contains ~ 10 MB of data in two >>> folders, /efi/boot, /efi/redhat. copying FreeBSD's BOOTX64.efi over >>> RedHat's doesn't change anything, also renaming /efi/boot/fbx64.efi = of >>> RedHat's installation. But renaming /efi/redhat renders RedHat to = fail the >>> boot process on the Fujitsu with the signs of the built-in = testprogram as >>> reported. >>>=20 >>> I took the liberty and installed 11.2-RELENG again, ZFS only, UEFI = boot only >>> (CSM in firmware disabled, but there is still a gptzfsboot-prepared >>> partition for later use, just for the record). Booting UEFI-only = fails as >>> reported. On this installation I copied the RedHat ESP completely = into >>> FreeBSD's ESP, renamed /efi/boot/BOOTX64.efi to = /efi/boot/BOOTX64.efi.rh >>> and copied FreeBSD's BOOTX64.efi to /efi/boot.=20 >>> The Esprimo Q956 tries then to boot(!) RedHat's kernel. It seems, = that >>> the /efi/redhat folder of the ESP is important, if renamed, the = whole >>> process dies as I reported earlier. >>>=20 >>> Still unanswered is the question: why is a NanoBSD prepared = UEFI-only USB >>> flash booting with CSM disabled (so asumingly UEFI only then) on = both >>> ASRock and Fujitsu (as described in more detail initially and = earlier), >>> while SSDs fail? Is there a difference? Since FreeBSD boots in UEFI = mode >>> from USB flash prepared as described (straight forward, 800k ESP = starting >>> at block 40, the boot1.efifat image dd'ed onto the partition, UFS = partition >>> following, no freebsd-boot partition or MBR/PMBR bootcode applied = ever!), I >>> think BOOTX64.EFI is technically all right. There must be then an = issue >>> with the SATA/SSD/HDD boot pathway. >>>=20 >>> Hope I could provide some more details, sorry if it sounds confusing = or way >>> too long, but I try to descibe the situation as thorough as = possible. >>>=20 >>=20 >> OK, this is already good hint. The thing with ESP is that there is = =E2=80=9Cdefault=E2=80=9D >> file system tree: EFI/BOOT/BOOT<sysname>.EFI, this is noted as = default for >> *removable* media, fortunately it is usable for hard disks as well, = or at >> least in most cases. >>=20 >> Now, for non-removable media, the UEFI does provide boot manager = interface to >> define boot entries, and the fact that renaming efi/redhad directory = did >> break the redhat boot, is very loud hint. And this means, this system = is >> probably ignoring efi/boot tree on non-removable media and is = expecting the >> boot manager entry to be created instead. >=20 > This inplication I'd confirm for the recent Fujitsu ESPRIMO Q956 = firmware (not > tested on ASRock Z77-Pro4 firmware). >=20 >>=20 >> UEFI boot manager can be configured /usually/ manually via firmware = menu, or >> by application, such as efibootmgr. The normal approach is to create >> efi/<vendorname> directory and to copy the application there, then = create the >> boot manager configuration. >>=20 >> See UEFI specification v2.7, chapter 3 Boot Manager, page 79. >>=20 >> What is different in FreeBSD case is that the whole interface to = program the >> UEFI Boot Manager is currently being developed, so either it has to = be done >> manually or from some other OS (see = https://wiki.gentoo.org/wiki/Efibootmgr >> <https://wiki.gentoo.org/wiki/Efibootmgr> for example, first hit from >> google:D). >=20 > Well, thanks for this important hint! FreeBSD 12-CURRENT's and FreeBSD > 11.2-RELENG's USB flash devices are capable of booting off on = Fujitsu's ESPRIMO > and ASRock's boards. As a note: after "kldload efirt.ko" I was able to = use the > already in FreeBSD present toolset efibootmgr(8) and sibblings (the = tools do > not do anything useful when booted non-UEFI). >=20 > Mounting the ESP of the harddrive (in my case, ada0p1) to /mnt and = following > the steps in the examples and having created /efi/freebsd/BOOTx64.efi = as > recommended by copy from /efi/boot, let me create a proper boot = variable. >=20 > To make things sure, I also applied "efibootmgr -a VARIABLENAME". >=20 > And ... it worked! Yes, it worked! The ESP is FAT32 formatted, I do = not know > whether this will also work with FAT12/16, I should test this case, = too. >=20 > There is a bug in the manpage of efibootmg(8). It does not explain the = options > -d and -p, although they could be "implied" by reading carefully. = There is now > a PR at=20 >=20 > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D230080 >=20 > for this issue. >=20 > So, it's apity that the handbook has no note I could easily find on = this;=20 >=20 > Thank you very much for your patience and help! >=20 > Kind regards, > Oliver yep, efibootmgr does call UEFI RuntimeServices to set up the variables, = and this is only possible when booted UEFI. But glad we finally found = the root cause. It would be good to have HW notes for such cases, it is = important to know that those systems wont boot UEFI from HDD unless the = boot manager setup is done. rgds, toomas=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6C5D21D2-59C6-42DB-AC75-79D98BA5E62B>