EFI - Allgemeines, Kernel, efibootmgr, Grub2Wichtige Informationen über EFI. AllgemeinesDer EFI Bootmanager durchsucht alle FAT Partitionen nach Boot Dateien. Standard Pfad/Datei ist /efi/boot/bootx64.efi Bei Festplatten wird die GUID Partition Table für Partitionen verwendet. Üblicherweise hat die erste Partition die Partitions ID EF00 (EFI System), ist eine FAT Partition mit ca. 300 MB, FAT32 formatiert, enthält die Boot Dateien. Unter Linux kann man die EFI Booteinstellungen mit dem Programm 'efibootmgr' ändern. Um Linux zu booten kann man einen Bootmanager wie Grub2 verwenden, oder den Linux Kernel direkt mit EFI booten. Linux Kernel direkt bootenUm den Linux Kernel direkt mit EFI zu booten, müssen zwei Optionen in der Kernelkonfiguration aktiviert sein. Es ist 'EFI stub support' und 'Built-in kernel command line'. Den Kernel kompilieren:
Kopieren Sie 'bzImage' (wenn kompiliert, von arch/x86/boot/bzImage) in das '/efi/boot' Verzeichnis auf der EFI Partition. Wenn Sie 'bzImage' zu 'bootx64.efi' umbenennen, dann findet der EFI Bootmanager den Kernel automatisch. Verwenden Sie 'efibootmgr' um den EFI Bootmanager zu konfigurieren. Beispiel um einen neuen Booteintrag mit der Datei 'bootx64.efi' erstellen: efibootmgr -c -d /dev/sda -p 1 -L "Plop Linux" -l "\efi\boot\bootx64.efi"Hier muß der Backslash verwendet werden! efibootmgrMit diesem Programm kann man die Booteinträge vom EFI System bearbeiten. Mit 'efibootmgr -h' werden alle Programmoptionen aufgelistet. Booteinträge auflisten efibootmgr oder efibootmgr -v Ausgabe mit -v: BootCurrent: 0001 Timeout: 3 seconds BootOrder: 0000,0002 Boot0000* Plop Linux HD(1,GPT,7fda9dd2-426e-42eb-a37d-fdb42d5d8eb8,0x800,0x100000)/File(\EFI\BOOT\BOOTx64.EFI) Boot0001* Some OS HD(1,GPT,7fda9dd2-426e-42eb-a37d-fdb42d5d8eb8,0x800,0x100000)/File(\EFI\BOOT\OTHER.EFI) Boot0002* Grub HD(1,GPT,7fda9dd2-426e-42eb-a37d-fdb42d5d8eb8,0x800,0x100000)/File(\EFI\BOOT\GRUB.EFI) Menüeintrag hinzufügen und als Standardbootoption einstellen Beispiel 1: efibootmgr -c -d /dev/sda -p 1 -L "Plop Linux" -l "\efi\boot\bootx64.efi" Beispiel 2: efibootmgr -c -d /dev/sda -p 1 -L "Grub" -l "\efi\boot\grub.efi" -c: Neuen Eintrag erstellen -d: Gerät mit der Boot Datei -p: Partitionsnummer -L: Label -l: Datei mit dem kompletten Pfad. Hier muß man den Backslash verwenden! Der neue Menüeintrag wird automatisch zur Standardbootoption. BootOrder - Bootsequenz einstellen Einträge auflisten 'efibootmgr'. BootCurrent: 0000 Timeout: 3 seconds BootOrder: 0000,0002 Boot0000* Plop Linux Boot0001* Some OS Boot0002* Grub Ändern zu Grub als erster Eintrag und Plop Linux als zweiter Eintrag: efibootmgr -o 2,0 BootCurrent: 0000 Timeout: 3 seconds BootOrder: 0002,0000 Boot0000* Plop Linux Boot0001* Some OS Boot0002* Grub Die Nummern 0, 2 sind von Boot0000, Boot0002. Eintrag löschen Beispiel: Den Eintrag 'Boot0001* Some OS' löschen Einträge auflisten 'efibootmgr'. BootCurrent: 0000 Timeout: 3 seconds BootOrder: 0000,0002 Boot0000* Plop Linux Boot0001* Some OS Boot0002* Grub Löschen: efibootmgr -Bb 1 BootCurrent: 0000 Timeout: 3 seconds BootOrder: 0000,0002 Boot0000* Plop Linux Boot0002* Grub Die Nummer 1 kommt von Boot0001. Grub2Vorbereitetes Paket für die EFI Partition: Download efi.tar.gz Konfigurationsdatei: /efi/grub/grub.cfg Grub2 bootx64.efi generieren: grub-mkstandalone -O x86_64-efi -o /boot/efi/boot/bootx64.efi
© 2024 by
Elmar Hanlhofer |