( https://thinkpad-forum.de/threads/123262-EFI-Grub2-Multiboot-HowTo )
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: gparted3.jpeg
Dannach
klickt auf Partition, Markierung bearbeiten und setzt den Boot-Flag:
gparted1.jpeg
So
sollte die Partition dann ausschauen: gparted2.jpeg
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:
(parted) print Model: ATA SAMSUNG HD502HJ (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 106MB 105MB fat32 EFI system partition boot 2 106MB 240MB 134MB Microsoft reserved partition msftres 3 240MB 121GB 120GB ntfs Basic data partition 6 121GB 270GB 149GB Daten 5 270GB 278GB 8000MB linux-swap(v1) 4 278GB 500GB 222GB ext4
Erstellt euch, falls noch nicht vorhanden, das Verzeichnis /boot/efi/EFI
Code:
# mkdir -p /boot/efi/EFIJetzt geht es an die eigentliche Installation von Grub:
Code:
# modprobe dm-mod # grub-install <DEVICE> --boot-directory=/boot/efi/EFI --bootloader-id=grub --no-floppy --recheck
(DEVICE z.B. /dev/sda1)
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 # grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg
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:
# 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
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:
# grub-probe --target=device /boot/efi/efi/grub/grub.efi
Code:
# modprobe efivars
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_EF I_PARTITION
Code:
# efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "GRUB2" --loader "\\EFI\\grub\\grub.efi"
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:
cp /boot/efi/efi/grub/grub.efi /boot/efi/shellx64.efi
oder
Code:
cp /boot/efi/efi/grub/grub.efi /boot/efi/EFI/shellx64.efi
oder
Code:
cp /boot/efi/efi/grub/grub.efi /boot/efi/EFI/shell/shellx64.efi
4) Bugs
Wenn ihr beim
Booten folgende Meldung bekommt:
error: no suitable mode
found
Booting however
Kopiert
Code:
# cp /usr/share/grub/unicode.pf2 /boot/efi/efi/grub/
und fügt
Code:
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
fiin /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:
# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi 088f-0db9
Jetzt könnt ihr den Menüeintrag in /boot/efi/EFI/grub/grub.cfg vornehmen:
Code:
menuentry "Windows x86_64 UEFI-GPT" {
search --fs-uuid --no-floppy --set=root 088f-0db9
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}6) Quellen
https://wiki.archlinux.org/index.php/GRUB2#UEFI_systems
https://wiki.archlinux.org/index.php...ware_Interface