Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Jun 2025 21:05:13 -0400
From:      Karl Denninger <karl@denninger.net>
To:        freebsd-hackers@freebsd.org
Subject:   An idea for the EFI (LUA) loader....
Message-ID:  <eef03d5d-c906-40ea-b319-0497eda6812b@denninger.net>

next in thread | raw e-mail | index | archive | help
This is a cryptographically signed message in MIME format.

--------------ms080703050309070505040206
Content-Type: multipart/alternative;
 boundary="------------3H139n7VtK4cxaHAoJOZHh9g"

--------------3H139n7VtK4cxaHAoJOZHh9g
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

SGVyZSdzIHRoZSBzY2VuYXJpbzogL1lvdSBoYXZlIGFuIGVtYmVkZGVkIHN5c3RlbSB0aGF0
IGJvb3RzIEVGSS7CoCBZb3UgDQpjYW4ndCBjb250cm9sIG90aGVyIHRoYW4gdGhlIG1lZGlh
IHRoYXQncyBpbiB0aGUgYm94IHRoYXQgaXQgYm9vdHMgZnJvbSANCih3aGljaCBzb21lb25l
IHN0aWNrcyBpbiB0aGVyZS4pwqAgVGhlcmUgbWlnaHQgYmUgb3RoZXIgbWVkaWEgaW4gdGhl
cmUsIA0KYW5kIHRoZXJlIG1pZ2h0IG5vdC4vDQoNClJpZ2h0IG5vdyB0aGUgRnJlZUJTRCBF
RkkgbG9hZGVyIHdpbGwgYm9vdCBmcm9tIHRoZSBmaXJzdCBib290YWJsZSANCiJ0aGluZyIg
aXQgZmluZHMgdW5sZXNzIHRvbGQgb3RoZXJ3aXNlIChlLmcuICJyb290ZGV2PSIpDQoNClRo
ZSBwcm9ibGVtIGlzIHRoYXQgaXQgd2FudHMgc29tZXRoaW5nIGxpa2UgInJvb3RkZXY9ZGlz
azBzMWEiIC0tIGEgZnVsbCANCnNwZWNpZmljYXRpb24uDQoNCkJ1dCB3aGF0IGhhcHBlbnMg
aWYgc29tZW9uZSBzdGlja3MgYW5vdGhlciBkZXZpY2UgaW4gdGhlcmUgL2FuZCB0aGUgRUZJ
IA0KQklPUyBlbnVtZXJhdGVzIGl0IGZpcnN0Py/CoCBJdHMgbm90IGJvb3RhYmxlIChkb2Vz
bid0IGhhdmUgYW4gRUZJIA0KcGFydGl0aW9uKSBzbyB0aGUgQklPUyBkb2Vzbid0IHRyeSB0
byBib290IGl0LCBidXQgaXQgL2RvZXMgL2VudW1lcmF0ZSANCml0IHNvIG5vdyB0aGUgZGlz
ayBpcyAiZGlzazFzMWEiIC0tIGFuZCBpZiB5b3Ugc2V0IGRpc2swIHlvdSBhcmUgbm93IA0K
c3R1Y2sgYXQgdGhlIGxvYWRlciBwcm9tcHQuDQoNCldoaWNoIGlzIG9rIGlmIHRoZXJlJ3Mg
YSBjb25zb2xlIHlvdSBjYW4ga2V5IGluIHdoZXJlIHRvIGJvb3QgZnJvbSBhbmQgDQp0aGVu
IGZpeCBsb2FkZXIuY29uZi7CoCBJZiB0aGUgbWFjaGluZSBpcyBoZWFkbGVzcy4uLi4uDQoN
CklmIGxvYWRlci5lZmkgY291bGQgdGFrZSBhIHN5bnRheCAvd2l0aG91dCAvdGhlIGRpc2sg
KGUuZy4gInMxYSIpIGFuZCwgDQppZiB0aGF0IHdhcyB3aGF0IHdhcyBzcGVjaWZpZWQgL2l0
IHdvdWxkIGxvb2sgb24gdGhlIGRldmljZSBsb2FkZXIuZWZpIA0Kd2FzIGxvYWRlZCBmcm9t
IC90aGVuIGl0IHdvdWxkbid0IG1hdHRlciBpZiBzb21lb25lIGRpZCB0aGlzLsKgIE9uY2Ug
dGhlIA0Ka2VybmVsIGlzIGxvYWRlZCBpdCBzaG91bGQgYmUgb2suDQoNCllvdSdkIHRoaW5r
IHlvdSBjb3VsZCBkZXRlY3QgdGhpcyB3aXRoIGVpdGhlciBlZmlib290bWdyICh3aGF0IG9y
ZGVyIA0Kd2lsbCBpdCBlbnVtZXJhdGUgaW4/KSBvciBmcm9tIHN5c2N0bCB0byBmaWd1cmUg
b3V0IHdoZXJlIGl0IGJvb3RlZCANCmZyb20sIGJ1dCBub3BlIC0tIHdoYXQncyBpbiB0aGVy
ZSBtYXkgbm90IG1hdGNoIGhvdyB0aGUgQklPUyBlbnVtZXJhdGVkIA0KaXQsIG5ldmVyIG1p
bmQgdGhhdCBzb21lb25lIGNvdWxkIHVucGx1ZyBhIFVTQiBkZXZpY2UgKG9yIHB1bGwgYW4g
blZNRSANCnN0aWNrKSBhbmQgY2hhbmdlIGl0LsKgIEkndmUgZ290IGEgbWFjaGluZSBoZXJl
IHRoYXQgZGVtb25zdHJhdGVzIHRoaXM7IA0KaXQgU0FZUyBpdCBsb2FkZWQgb2ZmIGRpc2sw
IGJ1dCB0aGUgQklPUyBzYXlzIHRoZSBib290IGRldmljZSBpcyBkaXNrMSANCmFuZCBpZiBJ
IHB1dCBkaXNrMC4uLi4gaW4gbG9hZGVyLmNvbmYgaXQgdHJpZXMgdG8gYm9vdCB0aGUgblZN
RSBkZXZpY2UgDQppbnN0ZWFkIG9mIHRoZSBVU0Igc3RpY2suDQoNCkEgbWluaW1hbCB3YXkg
d291bGQgYmUgdG8gYmUgYWJsZSB0byBkaXNjZXJuIHdoYXQgdGhlIEJJT1Mgc2F3IGFzIHRo
ZSANCmVudW1lcmF0ZWQgZGV2aWNlIGl0IGxvYWRlZCBmcm9tLCBidXQgZXZlbiBiZXR0ZXIs
IEkgdGhpbmssIHdvdWxkIGJlIHRvIA0KYmUgYWJsZSB0byBzcGVjaWZ5IGp1c3QgdGhlIHBh
cnRpdGlvbiBhbmQgc2xpY2UvZmlsZXN5c3RlbSBhbmQgaGF2ZSB0aGUgDQpkcml2ZSBkZWZh
dWx0IHRvICJ3aGVyZSBsb2FkZXIuZWZpIGNhbWUgZnJvbSIgd2hpY2gsIEkgc3VzcGVjdCwg
d291bGQgDQpyZXNvbHZlIGJvdGggcG9zc2liaWxpdGllcy4gT2J2aW91c2x5IGlmIHRoZSBC
SU9TIGVudW1lcmF0ZXMgc29tZXRoaW5nIA0KdGhhdCBoYXMgYSB2YWxpZCBFRkkgcGFydGl0
aW9uIGl0IGNhbiBzdGlsbCBnZXQgaXQgd3JvbmcgYnV0IGlmIG5vdCB0aGF0IA0Kc2hvdWxk
IHdvcmsgLS0geWVzPw0KDQpBbSBJIG51dHM/IDotKQ0KDQpQUzogSSd2ZSBnb3QgemVybyBl
eHBlcmllbmNlIHdpdGggbHVhIGFzIGEgbGFuZ3VhZ2Ugc28gaWYgSSBzdGFydCANCmRpZ2dp
bmcgaW50byB0aGlzIHRoZSBsZWFybmluZyBjdXJ2ZSBtaWdodCBiZSBwcmV0dHkgc3RlZXAg
d2hlcmUgZm9yIA0Kc29tZW9uZSB3aG8ncyBjb2RlZCBpbiBsdWEgaXQgbWlnaHQgYmUgZml2
ZSBtaW51dGVzLi4uLi4gdW5sZXNzIEknbSANCndpbGRseSBvZmYtYmFzZSBoZXJlLg0KDQot
LSANCkthcmwgRGVubmluZ2VyDQprYXJsQGRlbm5pbmdlci5uZXQNCi9UaGUgTWFya2V0IFRp
Y2tlci8NCi9bUy9NSU1FIGVuY3J5cHRlZCBlbWFpbCBwcmVmZXJyZWRdLw0K
--------------3H139n7VtK4cxaHAoJOZHh9g
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF=
-8">
  </head>
  <body>
    <p>Here's the scenario: <i>You have an embedded system that boots
        EFI.=C2=A0 You can't control other than the media that's in the b=
ox
        that it boots from (which someone sticks in there.)=C2=A0 There m=
ight
        be other media in there, and there might not.</i></p>
    <p>Right now the FreeBSD EFI loader will boot from the first
      bootable "thing" it finds unless told otherwise (e.g. "rootdev=3D")=
</p>
    <p>The problem is that it wants something like "rootdev=3Ddisk0s1a" -=
-
      a full specification.</p>
    <p>But what happens if someone sticks another device in there <i>and
        the EFI BIOS enumerates it first?</i>=C2=A0 Its not bootable (doe=
sn't
      have an EFI partition) so the BIOS doesn't try to boot it, but it
      <i>does </i>enumerate it so now the disk is "disk1s1a" -- and if
      you set disk0 you are now stuck at the loader prompt.</p>
    <p>Which is ok if there's a console you can key in where to boot
      from and then fix loader.conf.=C2=A0 If the machine is headless....=
=2E</p>
    <p>If loader.efi could take a syntax <i>without </i>the disk (e.g.
      "s1a") and, if that was what was specified <i>it would look on
        the device loader.efi was loaded from </i>then it wouldn't
      matter if someone did this.=C2=A0 Once the kernel is loaded it shou=
ld
      be ok.</p>
    <p>You'd think you could detect this with either efibootmgr (what
      order will it enumerate in?) or from sysctl to figure out where it
      booted from, but nope -- what's in there may not match how the
      BIOS enumerated it, never mind that someone could unplug a USB
      device (or pull an nVME stick) and change it.=C2=A0 I've got a mach=
ine
      here that demonstrates this; it SAYS it loaded off disk0 but the
      BIOS says the boot device is disk1 and if I put disk0.... in
      loader.conf it tries to boot the nVME device instead of the USB
      stick.<br>
    </p>
    <p>A minimal way would be to be able to discern what the BIOS saw as
      the enumerated device it loaded from, but even better, I think,
      would be to be able to specify just the partition and
      slice/filesystem and have the drive default to "where loader.efi
      came from" which, I suspect, would resolve both possibilities.=C2=A0=

      Obviously if the BIOS enumerates something that has a valid EFI
      partition it can still get it wrong but if not that should work --
      yes?<br>
    </p>
    <p>Am I nuts? :-)</p>
    <p>PS: I've got zero experience with lua as a language so if I start
      digging into this the learning curve might be pretty steep where
      for someone who's coded in lua it might be five minutes.....
      unless I'm wildly off-base here.<br>
    </p>
    <div class=3D"moz-signature">-- <br>
      Karl Denninger<br>
      <a href=3D"mailto:karl@denninger.net" class=3D"moz-txt-link-freetex=
t">karl@denninger.net</a><br>
      <i>The Market Ticker</i><br>
      <font size=3D"-2"><i>[S/MIME encrypted email preferred]</i></font><=
/div>
  </body>
</html>

--------------3H139n7VtK4cxaHAoJOZHh9g--

--------------ms080703050309070505040206
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC
C4owggWZMIIDgaADAgECAhRZU8dKdMneRI1Vq5kv0k54Q5rQuDANBgkqhkiG9w0BAQsFADB2
MQswCQYDVQQGEwJVUzESMBAGA1UECAwJVGVubmVzc2VlMRYwFAYDVQQKDA1EZW5uaW5nZXIu
TmV0MRcwFQYDVQQDDA5EZW5uaW5nZXIgUm9vdDEiMCAGCSqGSIb3DQEJARYTYWRtaW5AZGVu
bmluZ2VyLm5ldDAeFw0yNDA1MDkyMTA4MDNaFw00NDA1MDQyMTA4MDNaMF0xCzAJBgNVBAYT
AlVTMRIwEAYDVQQIDAlUZW5uZXNzZWUxFjAUBgNVBAoMDURlbm5pbmdlci5uZXQxIjAgBgNV
BAMMGURlbm5pbmdlci5OZXQgU2lnbmluZyBJbnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDbR0tSiuLG5HPfo+cWtdeYQ8jc8Bjfuo0GTcNRT0glHnH1apUtInIktUknEZDH
ohahInN+mMBdKg54FCHOiYZrJbyxBIo9FwX7hRmOc+spxmSYWnOd2E/YcGInMK4ZpjPzldzB
Yt1n3zygkhx2bssxTJS3x4nv1qAXfLSZd1VwqoQufifEoPyTtymkkvHLv86vLgqAqooM/cXc
4LSIQ5u2uM308n42r8RkKtp7X1v9fJW8oRZN2XnFZtiUPH44YY2rHqyN2Hea9Y3+TXbldXjo
xhPHTA+JYVFq8KTmbQBqU7YcMhlIG0cSxPeFLMxnP6pqPcIVTAlK+a6YGRFppfjZAgMBAAGj
ggE2MIIBMjAdBgNVHQ4EFgQUH+VuxXhBxaJAQrvDekwkH91hBi4wgbMGA1UdIwSBqzCBqIAU
RFYC4p6L6KITnEvrpx2cyt+PcMmheqR4MHYxCzAJBgNVBAYTAlVTMRIwEAYDVQQIDAlUZW5u
ZXNzZWUxFjAUBgNVBAoMDURlbm5pbmdlci5OZXQxFzAVBgNVBAMMDkRlbm5pbmdlciBSb290
MSIwIAYJKoZIhvcNAQkBFhNhZG1pbkBkZW5uaW5nZXIubmV0ghQZE7NBItWtQsCouuwU6jZ+
HPPwnjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+gLaAr
hilodHRwOi8vd3d3LmRlbm5pbmdlci5uZXQvcm9vdC1yZXZva2VkLmNybDANBgkqhkiG9w0B
AQsFAAOCAgEAfFbhPc82AfhyUqONs7IccYD36w+OP4nQgwfC4IWf3y/aQAZ2Zk6IITzYqwf7
PFM0bJRT3zi7xyetolqHDhfMJvnOQWpITZiyM/FSKwIvuBsy/uJUqPuqui4XQMYoSbAA1qmI
MW/z7VZZHwaRFoeWE40UirYcf0fNcooBZ72bmd+iBaVyjtZvky0Vgcz0eC6e6LR5kNb23yC6
TkyQIlGyQkK5/afXUYFzk49rOHVbVyxW3oXRfq8Ow6HCrpDGAS8p84S04MFwBVAUfbe4aXs3
bampaI2LzKgkVywyFP14LSvvdjCfLYfnLy1Z9hm2EHMqNHA2tCGdRhWp2d7aZC1MYFqng0ZS
fjPJjqHrI1qPU0p6k9A1GxAtrQlL2v/IUzUnMZkiawFV3qlxMGZf/kTYTUOcJhx1KU4zSLHu
80qO7ldRpp5gHssCAGFbeTu2gp6LxfmaFhLPDBJ1VGfdPx9lUrU/9OcoHczcl5x2Rb8IUZyX
9elzP5WdAU8p5R/DLlOAq24VcabhFtYBCA2dOESLupSfWKNQuJCN/1gz7ysSc+mjnnPV77IO
mpszJfkFFJEDNJlGIVKX1vwwygtC/9Ulox8frgbZlRAYAgDc/YbOBFxticVVre0Y3Ujx6Kzb
tkgZRlgfdZWbT1W5smncqJxg5qAL8e/yTb3fCe2nJ0jhiP4wggXpMIIE0aADAgECAhMAmNFt
CiCF3j+FwQLYtBTmGjzkMA0GCSqGSIb3DQEBCwUAMF0xCzAJBgNVBAYTAlVTMRIwEAYDVQQI
DAlUZW5uZXNzZWUxFjAUBgNVBAoMDURlbm5pbmdlci5uZXQxIjAgBgNVBAMMGURlbm5pbmdl
ci5OZXQgU2lnbmluZyBJbnQwHhcNMjQwNTEwMTkyNjU5WhcNMjkwNTA5MTkyNjU5WjBXMQsw
CQYDVQQGEwJVUzESMBAGA1UECAwJVGVubmVzc2VlMRcwFQYDVQQKDA5LYXJsIERlbm5pbmdl
cjEbMBkGA1UEAwwSa2FybEBkZW5uaW5nZXIubmV0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
MIICCgKCAgEAvh1UssVbSYctzobPjwBkbjv/w4WvQNepeRTwE6+sLnXvc41+X9pa5EclPL4Q
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
9c5YaBj+LE1T1yXbksMKAAAAAAAA
--------------ms080703050309070505040206--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?eef03d5d-c906-40ea-b319-0497eda6812b>