Satria (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== GRUB2 unter Windows installieren == Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gib…“) |
Satria (Diskussion | Beiträge) K (→Win10 PE ISO image booten) |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
# [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. | # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. | ||
− | # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. | + | # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. [[Windows_10#EFI_Partition_verf.C3.BCgbar_machen | EFI Partition verfügbar machen]]). Angenommen, sie ist als Laufwerk A: gemounted. |
− | # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können. | + | # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --target=x86_64-efi --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können und angenommen wird, es handelt sich um ein x86 64bit System. |
# Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. | # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. | ||
# Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html | # Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html | ||
# Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable | # Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable | ||
+ | |||
+ | == GRUB2 Config == | ||
+ | === USB-Stick suchen === | ||
+ | Außerhalb der menuentry Blöcke, steht das hier: | ||
+ | <pre> | ||
+ | insmod search_fs_uuid | ||
+ | search --no-floppy --set=usb --fs-uuid 0123-9876 | ||
+ | </pre> | ||
+ | 0123-9876 ist die Datenträger-Seriennummer, die per chkdsk herausgefunden werden kann. | ||
+ | |||
+ | In den menuentry Blöcken ist ($usb) dann verwendbar und stellt den USB-Stick dar. | ||
+ | |||
+ | === Win10 PE ISO image booten === | ||
+ | Man benötigt [https://ipxe.org/wimboot wimboot] | ||
+ | |||
+ | Der menuentry Block soll ungefähr so aussehen: | ||
+ | <pre> | ||
+ | menuentry 'Windows 10 PE ISO' { | ||
+ | insmod part_gpt | ||
+ | insmod fat | ||
+ | set isofile="Win10PE.iso" | ||
+ | search --set=usb --file $isofile | ||
+ | loopback loop ($usb)$isofile | ||
+ | linux16 /EFI/BOOT/grub/wimboot rawbcd | ||
+ | initrd16 \ | ||
+ | newc:bootmgr:(loop)/BOOTMGR \ | ||
+ | newc:bootmgr.exe:(loop)/bootmgr.exe \ | ||
+ | newc:bcd:(loop)/Boot/bcd \ | ||
+ | newc:segmono_boot.ttf:(loop)/Boot/fonts/segmono_boot.ttf \ | ||
+ | newc:segoe_slboot.ttf:(loop)/Boot/fonts/segoe_slboot.ttf \ | ||
+ | newc:segoen_slboot.ttf:(loop)/Boot/fonts/segoen_slboot.ttf \ | ||
+ | newc:wgl4_boot.ttf:(loop)/Boot/fonts/wgl4_boot.ttf \ | ||
+ | newc:boot.sdi:(loop)/Boot/boot.sdi \ | ||
+ | newc:boot.wim:(loop)/sources/boot.wim | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | === GRUB environment variables === | ||
+ | Einige Dinge, wie z.B. timeout und default Startblock können außerhalb der grub.cfg gepflegt werden. In der grub.cfg sollte nur am Anfang stehen: | ||
+ | load_env | ||
+ | |||
+ | Diese Variablen werden in einem Blockfile neben der grub.cfg gespeichert, welches so erzeugt wird: | ||
+ | grub-editenv A:\EFI\BOOT\grub\grubenv create | ||
+ | vorausgesetzt, A:\EFI\BOOT\grub\ ist das korrekte Verzeichnis der grub.cfg. | ||
+ | |||
+ | Werte setzen geht so: | ||
+ | grub-editenv A:\EFI\BOOT\grub\grubenv set timeout=5 | ||
+ | grub-editenv A:\EFI\BOOT\grub\grubenv set saved_entry=0 | ||
+ | saved_entry definiert hierbei persistent den Standardeintrag, der nach Ablauf des Countdowns automatisch geladen wird. | ||
+ | |||
+ | == Quellen == | ||
+ | https://www.gnu.org/software/grub/manual/grub/grub.html | ||
+ | |||
+ | https://wiki.archlinux.org/index.php/Multiboot_USB_drive |
Aktuelle Version vom 24. Februar 2021, 14:51 Uhr
Inhaltsverzeichnis
GRUB2 unter Windows installieren
Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird.
- Hier gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken.
- Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. EFI Partition verfügbar machen). Angenommen, sie ist als Laufwerk A: gemounted.
- Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus:
grub2-install --target=x86_64-efi --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME
wobei --boot-directory und --bootloader-id frei gewählt werden können und angenommen wird, es handelt sich um ein x86 64bit System. - Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt.
- Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html
- Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable
GRUB2 Config
USB-Stick suchen
Außerhalb der menuentry Blöcke, steht das hier:
insmod search_fs_uuid search --no-floppy --set=usb --fs-uuid 0123-9876
0123-9876 ist die Datenträger-Seriennummer, die per chkdsk herausgefunden werden kann.
In den menuentry Blöcken ist ($usb) dann verwendbar und stellt den USB-Stick dar.
Win10 PE ISO image booten
Man benötigt wimboot
Der menuentry Block soll ungefähr so aussehen:
menuentry 'Windows 10 PE ISO' { insmod part_gpt insmod fat set isofile="Win10PE.iso" search --set=usb --file $isofile loopback loop ($usb)$isofile linux16 /EFI/BOOT/grub/wimboot rawbcd initrd16 \ newc:bootmgr:(loop)/BOOTMGR \ newc:bootmgr.exe:(loop)/bootmgr.exe \ newc:bcd:(loop)/Boot/bcd \ newc:segmono_boot.ttf:(loop)/Boot/fonts/segmono_boot.ttf \ newc:segoe_slboot.ttf:(loop)/Boot/fonts/segoe_slboot.ttf \ newc:segoen_slboot.ttf:(loop)/Boot/fonts/segoen_slboot.ttf \ newc:wgl4_boot.ttf:(loop)/Boot/fonts/wgl4_boot.ttf \ newc:boot.sdi:(loop)/Boot/boot.sdi \ newc:boot.wim:(loop)/sources/boot.wim }
GRUB environment variables
Einige Dinge, wie z.B. timeout und default Startblock können außerhalb der grub.cfg gepflegt werden. In der grub.cfg sollte nur am Anfang stehen:
load_env
Diese Variablen werden in einem Blockfile neben der grub.cfg gespeichert, welches so erzeugt wird:
grub-editenv A:\EFI\BOOT\grub\grubenv create
vorausgesetzt, A:\EFI\BOOT\grub\ ist das korrekte Verzeichnis der grub.cfg.
Werte setzen geht so:
grub-editenv A:\EFI\BOOT\grub\grubenv set timeout=5 grub-editenv A:\EFI\BOOT\grub\grubenv set saved_entry=0
saved_entry definiert hierbei persistent den Standardeintrag, der nach Ablauf des Countdowns automatisch geladen wird.