English / Deutsch | Druckversion Plop Linux  
Twitter
twitter

<< Zurück
32-Bit beim 64-Bit System

Inhaltsverzeichnis

Weiter >>
Grub2

EFI - Allgemeines, Kernel, efibootmgr, Grub2


Wichtige Informationen über EFI.


Allgemeines


Der 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 booten


Um 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:

  • Entpacken Sie den Linux Kernel Source Code und wechseln Sie in das entpackte Verzeichnis.
  • Entpacken Sie die aktuelle Konfiguration mit 'zcat /proc/config.gz > .config'.
  • Starten Sie das Konfiguratonsprogramm mit 'make menuconfig'.
  • Wechseln Sie in das 'Processor type and features' Menü.
  • Ändern Sie 'EFI runtime service support' zu '[*]'.
  • Ändern Sie 'EFI stub support' zu '[*]'.
  • Ändern Sie (ganz unten im Menü) 'Built-in kernel command line' zu '[*]' und setzten Sie den Wert auf 'root=/dev/sda2' wenn Linux auf dieser Partition installiert ist.
  • Verlassen Sie das Konfigurationsprogramm und speichern Sie die Änderungen.
  • Kompilieren Sie mit 'make bzImage'.

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!


efibootmgr


Mit 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.


Grub2


Vorbereitetes 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
Die EFI Partition ist zu '/boot' gemountet.




<< Zurück
32-Bit beim 64-Bit System

Inhaltsverzeichnis

Weiter >>
Grub2


© 2018 by Elmar Hanlhofer