Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

UEFI-Boot von USB

1 view
Skip to first unread message

Marc Haber

unread,
Sep 28, 2022, 9:59:16 AM9/28/22
to
Hallo,

ich habe hier einen USB-Stick, von dem ich gerne einen Rechner im
UEFI-Modus (also kein CSM) booten möchte. Auf einem Thinkpad habe ich
das schon so weit, das die UEFI-Firmware den Shim lädt, dieser den
grub, und dieser dann grml.

Wenn ich denselben Stick in das eigentliche Zielsystem (ein ASUS Prime
X470 Pro) hineinstecke, bootet der Stick nicht. Ich habe in der
UEFI-Firmware eingestellt, dass er nur von UEFI booten soll, und er
fällt mir immer wieder in das UEFI-Setup zurück anstelle zu booten.
Secure Boot ist aus.df

Wie findet eine UEFI-Firmware die EFI-Partition auf dem geplanten
Bootmedium? Was ist wenn in einem System mehrere EFI-Partitionen
präsent sind? Ist der Inhalt der EFI-Partition systemabhängig, so dass
das, was das Thinkpad problemlos booten lässt, vom Asus-Board nicht
gesehen wird?

in der EFI-Partition gibt ein Verzeichnis EFI/debian mit
BOOTX64.CSV fbx64.efi grub.cfg grubx64.efi mmx64.efi shimx64.efi

BOOTX64.CSV enthält:
shimx64.efi,debian,,This is the boot entry for debian

Die grub.cfg enthält:
search.fs_uuid be9683dc-0eb7-44b6-bce0-b913891e3da3 root hd1,gpt2
set prefix=($root)'/grub'
configfile $prefix/grub.cfg

und die grub/grub.cfg im boot-Filesystem sieht so aus wie eine
grub.cfg halt aussieht.

Wenn ich das Thinkpad boote, bekomme ich erstmal einen Auswahl-Dialog,
in dem ich "debian" auswähle, dann kommt der grub aus der
grub/grub.cfg.

Warum klappt das mit dem Asus-Board nicht?

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

Marco Moock

unread,
Sep 28, 2022, 10:11:11 AM9/28/22
to
Am 28.09.2022 um 15:59:09 Uhr schrieb Marc Haber:

> Wie findet eine UEFI-Firmware die EFI-Partition auf dem geplanten
> Bootmedium? Was ist wenn in einem System mehrere EFI-Partitionen
> präsent sind? Ist der Inhalt der EFI-Partition systemabhängig, so dass
> das, was das Thinkpad problemlos booten lässt, vom Asus-Board nicht
> gesehen wird?

Ich bin gänzlich kein UEFI-Kenner.
Ich kenne es aber so, dass man das Gerät im Bootmenü wählen muss.
Alternativ kann man zumindest bei HP (ich bin mir sicher
grundsätzlich) auch eine Datei wählen, dann wählt man eben die
efi-Partition vom Stick.

Schau im Handbuch, welche Taste man für das Bootmenü drücken muss.

Manfred Haertel

unread,
Sep 28, 2022, 11:00:02 AM9/28/22
to
Marc Haber schrieb:

> in der EFI-Partition gibt ein Verzeichnis EFI/debian mit
> BOOTX64.CSV fbx64.efi grub.cfg grubx64.efi mmx64.efi shimx64.efi
>
> BOOTX64.CSV enthält:
> shimx64.efi,debian,,This is the boot entry for debian

Du brauchst noch ein Verzeichnis EFI/boot, das eine *Kopie* des
anzubootenden EFI-Binaries (also shimx64.efi) enthält, aber explizit
unter dem Namen bootx64.efi (unterstellt, dass es sich um einen
x86-64-Prozessor handelt).

(Nur) wenn die EFI System Partition so aufgesetzt ist, klappt es bei mir
mit dem automatischen Boot.

--
Manfred Härtel, DB3HM mailto:Manfred...@rz-online.de
http://rz-home.de/mhaertel

Marc Haber

unread,
Sep 28, 2022, 11:04:14 AM9/28/22
to
Die klassische Auswahl der Bootreihenfolge verschwindet aus dem Setup,
sobald man die Bootmethode auf "UEFI only" stellt.

Wenn ich beim Booten F8 ("select boot device") drücke, komme ich in
ein Auswahlmenü. Da steht der USB-Stick zweimal drin; einmal mit
"UEFI" Prefix und einmal ohne. Wähle ich "UEFI", fällt das System
sofort ins Setup von der UEFI-Firmware; wähle ich die Version ohne den
Prefix komme ich in "grub rescue", ohne natürlich zu wissen ob das der
grub vom Stick ist oder ein kaputter Grub von den eingebauten Platten.

Und eine Möglichkeit, das System so einzustellen, dass es immer von
dem Stick bootet, habe ich auch noch nicht gefunden

Ich komme also nichtmal dorthin, wo man mir unter anderem das "Debian"
anbietet.

Bernd Mayer

unread,
Sep 28, 2022, 11:04:20 AM9/28/22
to
Am 28.09.22 um 15:59 schrieb Marc Haber:
> Hallo,
>
> ich habe hier einen USB-Stick, von dem ich gerne einen Rechner im
> UEFI-Modus (also kein CSM) booten möchte. Auf einem Thinkpad habe ich
> das schon so weit, das die UEFI-Firmware den Shim lädt, dieser den
> grub, und dieser dann grml.
>
> Wenn ich denselben Stick in das eigentliche Zielsystem (ein ASUS Prime
> X470 Pro) hineinstecke, bootet der Stick nicht.
> Warum klappt das mit dem Asus-Board nicht?

Hallo,

hast Du die mal zuständigen BIOS-Einstellungen kontrolliert?


Bernd Mayer

Marc Haber

unread,
Sep 28, 2022, 11:12:54 AM9/28/22
to
Bernd Mayer <beamb...@yahoo.com> wrote:
>hast Du die mal zuständigen BIOS-Einstellungen kontrolliert?

Im Prinzip so wie ich das im Original-Artikel beschrieb. Da dies aber
das erste Mal ist dass ich einen EFI-Boot quasi von Hand orchestriere
weiß ich nicht was da einzustellen ist. Deswegen hatte ich parallel
noch das Thinkpad benutzt.

Marc Haber

unread,
Sep 28, 2022, 11:29:03 AM9/28/22
to
Manfred Haertel <Manfred...@rz-online.de> wrote:
>Marc Haber schrieb:
>
>> in der EFI-Partition gibt ein Verzeichnis EFI/debian mit
>> BOOTX64.CSV fbx64.efi grub.cfg grubx64.efi mmx64.efi shimx64.efi
>>
>> BOOTX64.CSV enthält:
>> shimx64.efi,debian,,This is the boot entry for debian
>
>Du brauchst noch ein Verzeichnis EFI/boot, das eine *Kopie* des
>anzubootenden EFI-Binaries (also shimx64.efi) enthält, aber explizit
>unter dem Namen bootx64.efi (unterstellt, dass es sich um einen
>x86-64-Prozessor handelt).
>
>(Nur) wenn die EFI System Partition so aufgesetzt ist, klappt es bei mir
>mit dem automatischen Boot.

Es gibt also zwei verschiedene Ansätze, die EFI verwendet? Auf dem
Thinkpad klappt es ohne das Verzeichnis.

Wenn ich ein Debian mit dem Installer auf einen USB-Stick installiere,
schreibt er in der Tat nochein EFI/BOOT:
|efi/EFI/BOOT
|efi/EFI/BOOT/BOOTX64.EFI
|efi/EFI/BOOT/grubx64.efi
|efi/EFI/BOOT/fbx64.efi
und dieser Stick bootet.

Mit welchem Tool erzeugt der Installer das? Ich habe auf dem
"handgemachten" Stick nur grub-install ausgeführt

fbx64.efi kommt aus shim, grub64.efi wird sowohl in shim als auch in
grub2 referenziert, und BOOTX64.EFI wird irgendwo in grub2
hineingepatcht. Kannst Du erklären, was da passiert und wie man dieses
Verzeichnis zusammenstellt bzw. erzeugt?

Marc Haber

unread,
Sep 28, 2022, 11:59:45 AM9/28/22
to
Ingrid Haber <mh+usene...@zugschl.us> wrote:
>Es gibt also zwei verschiedene Ansätze, die EFI verwendet? Auf dem
>Thinkpad klappt es ohne das Verzeichnis.
>
>Wenn ich ein Debian mit dem Installer auf einen USB-Stick installiere,
>schreibt er in der Tat nochein EFI/BOOT:
>|efi/EFI/BOOT
>|efi/EFI/BOOT/BOOTX64.EFI
>|efi/EFI/BOOT/grubx64.efi
>|efi/EFI/BOOT/fbx64.efi
>und dieser Stick bootet.
>
>Mit welchem Tool erzeugt der Installer das? Ich habe auf dem
>"handgemachten" Stick nur grub-install ausgeführt

https://www.heise.de/ct/artikel/Linux-bootet-nicht-nach-BIOS-Update-4690544.html
hat geholfen. Daraus lernte ich: Informationen mindestens über den
letzten Boot wird im NVRAM abgelegt. Daraus holt das Thinkpad, auf dem
der Stick gebaut wurde, die Informationen die es zum booten ohne
EFI/BOOT braucht.

Das Asus-Board hat diese Informationen nicht und braucht sie. Das
Zauberword zum Anlegen von EFI/BOOT lautet grub-install --removable.

Damit ist das Problem gelöst.

Marco Moock

unread,
Sep 28, 2022, 1:53:30 PM9/28/22
to
Am 28.09.2022 um 17:59:43 Uhr schrieb Marc Haber:

> Das Asus-Board hat diese Informationen nicht und braucht sie. Das
> Zauberword zum Anlegen von EFI/BOOT lautet grub-install --removable.

Die Debian-Images netboot und mini.iso funktionieren direkt, wenn man
sie per dd auf einen Stick kopiert. Ich musste da nie manuell einen
GRUB installieren.

Marc Haber

unread,
Sep 28, 2022, 2:42:30 PM9/28/22
to
Ich möchte nicht den Installer, sondern das installierte System von
diesem Medium booten. Das grml ist nur der erste Schritt.

Marco Moock

unread,
Sep 28, 2022, 3:15:30 PM9/28/22
to
Am 28.09.2022 um 20:42:29 Uhr schrieb Marc Haber:

> Ich möchte nicht den Installer, sondern das installierte System von
> diesem Medium booten. Das grml ist nur der erste Schritt.

Dann von der EFI-Datei booten und dann im System den grub im UEFI
installieren, sodass es nen Eintrag gibt.
Das kann man zur Not auch in nem Live-System in chroot-Umgebung machen.

https://wiki.ubuntuusers.de/GRUB_2/Reparatur/#Reparatur-mittels-Desktop-CD

Marcus Jodorf

unread,
Sep 28, 2022, 6:35:05 PM9/28/22
to
Marc Haber <mh+usene...@zugschl.us> schrieb:

> Es gibt also zwei verschiedene Ansätze, die EFI verwendet? Auf dem
> Thinkpad klappt es ohne das Verzeichnis.

Das liegt an kaputter Firmware, wenn es nicht klappt.

efi/EFI/BOOT/BOOTX64.EFI

Ist der Default, wo Windows den Bootloader hinpackt. Das klappt daher
ziemlich sicher mit jedem Gerät.
Mein alter Dell hier braucht das als Workaround z.B. auch, weil die
das Ding offenbar nur für Windowsnutzer entwickelt und sich den Aufwand,
es korrekt zu implementieren, gespart haben (Wobei neuere Dell es
dagegen in der Regel alle korrekt können und man sich die Windows-Mimik
sparen kann).
Bei der Debian installation kann man irgendwo beim Grubinstall da auch
auswählen, ob der Workaround parallel zur Debian Folderhierarchie auch
noch angelegt werden soll, wenn ich recht erinnere.

> Mit welchem Tool erzeugt der Installer das? Ich habe auf dem
> "handgemachten" Stick nur grub-install ausgeführt

Sorry, weiß ich jetzt nicht auswendig. Der Debian Installer kann das
allerdings veranlassen - also muß es da auch irgendeinen Switch für
geben.
In den zwei Fällen, wo ich das bei Rechnern mit dem Bug bisher brauchte,
habe ich das auch einfach manuell angelegt und seitdem ist mir das seit
Jahren nicht mehr begegnet.

> fbx64.efi kommt aus shim, grub64.efi wird sowohl in shim als auch in
> grub2 referenziert, und BOOTX64.EFI wird irgendwo in grub2
> hineingepatcht. Kannst Du erklären, was da passiert und wie man dieses
> Verzeichnis zusammenstellt bzw. erzeugt?

Ich verwende keinen shim aber sinngemäß müßte es ähnlich funktionieren.
Wenn man eine defekte Firmware hat die partout nur den Windowsloader
starten will, dann kopiert man einfach

efi/EFI/debian/grubx64.efi
nach
efi/EFI/BOOT/BOOTX64.EFI
und fertig.

Somit wird der grub EFI Bootloader gefunden, gestartet und ab da geht es
normal weiter. Der findet den restlichen Kram dann in /boot und
/boot/grub.

Ob in das in der Shim Variante auch reicht oder Du evt. noch ein paar
der zusätzlichen Sachen auch noch kopieren mußt, kann ich Dir leider
nicht sagen, weil wie gesagt nicht verwendet. Sollte aber schnell durch
Probieren herauszufinden sein.


Gruß,

Marcus
⚂⚃
0 new messages