1)Erstellen der EFI System Partition
Falls ihr Windows 7 installiert habt, dann wurde die Partition bereits erstellt und ihr könnt zu Punkt 2 gehen.
EFI benötigt zum Booten eine kleine FAT32 Partiton. Diese kann entweder mit GNU Parted/GParted oder mit Gdisk erstellt werden. Wichtig dabei ist, dass die FAT32 Partition ca. 200 MB groß ist und die Flag „boot“ besitzt.
Mit GParted:
Wählt eure Festplatte, klickt auf Neu und erstellt einen neue Partition:
Dannach klickt auf Partition, Markierung bearbeiten und setzt den Boot-Flag:
So sollte die Partition dann ausschauen:
2) Installation von Grub
Installiert das Grub 2 EFI Paket für eure Distribution:
Dannach wird die erstellte EFI System Partition gemountet und ein neues Verzeichnis erstellt:
Mounten der Partition:
Falls ihr nicht wisst, welche Partition die EFI System Partition ist, installiert euch parted und lasst euch mit view alle Partitionen anzeigen.
Der letzte Schritt ist, dass Grub im EFI-Menü angewählt werden und gestartet werden kann. Da aber dazu das Betriebsystem (in meinem Fall Debian) bereits im EFI-Modus gestartet werden muss, muss eine EFI-Applikation erstellt werden:
Mit GParted:
Wählt eure Festplatte, klickt auf Neu und erstellt einen neue Partition:
Dannach klickt auf Partition, Markierung bearbeiten und setzt den Boot-Flag:
So sollte die Partition dann ausschauen:
2) Installation von Grub
Installiert das Grub 2 EFI Paket für eure Distribution:
Code:
# apt-get install grub-efi-amd64
Dannach wird die erstellte EFI System Partition gemountet und ein neues Verzeichnis erstellt:
Code:
# mkdir /boot/efi
Mounten der Partition:
Code:
# mount /dev/sda1 /boot/efi
Falls ihr nicht wisst, welche Partition die EFI System Partition ist, installiert euch parted und lasst euch mit view alle Partitionen anzeigen.
Code:
[LEFT](parted) print
Model: ATA SAMSUNG HD502HJ (scsi)
[/LEFT]
[LEFT]Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B[/LEFT]
[LEFT]Partition Table: gpt
[/LEFT]
[LEFT]Number Start End Size File system Name Flags
1 1049kB 106MB 105MB fat32 EFI system partition boot
[/LEFT]
[LEFT] 2 106MB 240MB 134MB Microsoft reserved partition msftres
[/LEFT]
[LEFT] 3 240MB 121GB 120GB ntfs Basic data partition
6 121GB 270GB 149GB Daten
5 270GB 278GB 8000MB linux-swap(v1)
[/LEFT]
[LEFT] 4 278GB 500GB 222GB ext4[/LEFT]
Erstellt euch, falls noch nicht vorhanden, das Verzeichnis /boot/efi/EFI
Code:
# mkdir -p /boot/efi/EFI
Jetzt geht es an die eigentliche Installation von Grub:
Code:
# modprobe dm-mod
# grub-install --boot-directory=/boot/efi/EFI --bootloader-id=grub --no-floppy --recheck
Als Letztes werden noch die von EFI benötigten Schriftarten kopiert und die Config erstellt:
Code:
# cp /usr/share/grub/unicode.pf2 /boot/efi/EFI/grub
[LEFT] # grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg
[/LEFT]
3)Grub im EFI-Menü anzeigen lassen
Der letzte Schritt ist, dass Grub im EFI-Menü angewählt werden und gestartet werden kann. Da aber dazu das Betriebsystem (in meinem Fall Debian) bereits im EFI-Modus gestartet werden muss, muss eine EFI-Applikation erstellt werden:
Code:
[LEFT]# grub-mkimage -d /usr/lib/grub/x86_64-efi -O x86_64-efi -p "" -o /boot/efi/EFI/grub/grub_custom.efi part_gpt fat iso9660 udf normal chain linux ls search search_fs_file search_fs_uuid search_label help boot configfile echo efi_gop
[/LEFT]
Nun startet in das EFI-Menü im erweiterten Modues, geht auf Beenden und wählt: EFI Shell aus Datenträger starten. Nach kurzem Laden sollte Grub 2 starten. Jetzt seit ihr im EFI-Modues in eurem Betriebsystem. Um Grub in das EFI-Menü aufzunehmen macht ihr folgendes:
Code:
[LEFT]# grub-probe --target=device /boot/efi/efi/grub/grub.efi
[/LEFT]
Code:
[LEFT]# modprobe efivars
[/LEFT]
Falls ihr beim Laden von efivars eine Fehlermeldung bekommen habt, seit ihr nicht im EFI-Modus oder euer Kernel unterstützt efivars nicht. Euer Kernel sollte folgende Module haben:
Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION
Code:
[LEFT]# efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "GRUB2" --loader "\\EFI\\grub\\grub.efi"
[/LEFT]
Bei label könnt ihr den Namen wählen, den ihr im EFI-Menü angezeigt bekommen wollt.
Nun startet euer Betriebsystem neu und wählt im EFI-Menü GRUB2, falls Grub nicht starten sollte, probiert folgendes:
Code:
[LEFT]cp /boot/efi/efi/grub/grub.efi /boot/efi/shellx64.efi
[/LEFT]
oder
Code:
[LEFT]cp /boot/efi/efi/grub/grub.efi /boot/efi/EFI/shellx64.efi
[/LEFT]
oder
Code:
[LEFT]cp /boot/efi/efi/grub/grub.efi /boot/efi/EFI/shell/shellx64.efi
[/LEFT]
4) Bugs
Wenn ihr beim Booten folgende Meldung bekommt:
error: no suitable mode found
Booting however
error: no suitable mode found
Booting however
Kopiert
Code:
# cp /usr/share/grub/unicode.pf2 /boot/efi/efi/grub/
und fügt
Code:
[LEFT]insmod efi_gop
insmod efi_uga
insmod font
if loadfont ${prefix}/unicode.pf2
then
insmod gfxterm
set gfxmode=auto
set gfxpayload=keep
terminal_output gfxterm
fi
[/LEFT]
in /boot/efi/EFI/grub/grub.cfg hinzu.
5) Windows 7 in Grub 2 aufnehmen
Falls Windows schon installiert ist, müsst ihr nur noch die UUID in der FAT32 Partition des Windows Bootmanagers finden.
Code:
[LEFT]# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
088f-0db9
[/LEFT]
Jetzt könnt ihr den Menüeintrag in /boot/efi/EFI/grub/grub.cfg vornehmen:
Code:
[LEFT]menuentry "Windows x86_64 UEFI-GPT" {
search --fs-uuid --no-floppy --set=root [COLOR=#000000]088f-0db9[/COLOR]
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
[/LEFT]
6) Quellen
Zuletzt bearbeitet: