Grub2Win
Ihttp://sourceforge.net/projects/grub2win/
Es gibt den Windows-Standard-MBR und PBR bei Partitionen größer als 8 GB. Bootmgr ist der erste Bootloader.
Vermutung: BIOS aus Windows 7 Zeit endlich. Lesen Sie: Hersteller getestet Booten von einem Diskpart USB-Laufwerk.
BCD ist so konfiguriert, dass grub2win Loader geladen wird.
call :add_bootsector \grub2\winloader\grub2.boot "Start GRUB2"
- Bootsector hinzufügen
for /f "tokens=1-3" %%a in ('%bcdedit% %BCD_store% /create /application BOOTSECTOR') do set guid=%%c %bcdedit% %BCD_store% /set %guid% device boot %bcdedit% %BCD_store% /set %guid% path %1 %bcdedit% %BCD_store% /set %guid% description "%~2" %bcdedit% %BCD_store% /displayorder %guid% /addlast goto :eof
Es gibt eine Konfigurationsdatei \grub2\grub.cfg. Loopback-fähige Anwendungen werden geladen. Außerdem wird grub4dos grub.exe aufgerufen, um BIOS-kompatible ISO-Images zu laden.
Bootmgr.efi kann grub2.boot nicht laden: Grub2Win funktioniert nicht im UEFI-Modus.
Im UEFI-Modus gehe ich von Windows Secure Boot aus (keine Hardware, nicht getestet).
Aktuelle Fedora's SecureBoot-Implentation: https://fedoraproject.org/wiki/Features/SecureBoot. Es gibt ein Bootloader-Shim der ersten Stufe, das von dem von Microsoft gehosteten Signierdienst signiert wurde. Shim lädt als nächstes Grub2.
http://www.nic.funet.fi/pub/mirrors/fedora...fc18.x86_64.rpm copy boot\EFI\fedora\shim-fedora.efi EFI\boot\bootx64.efi
http://www.nic.funet.fi/pub/mirrors/fedora...fc18.x86_64.rpm copy boot\EFI\fedora\gcdx64.efi boot\EFI\grubx64.efi copy usr\lib\grub\x86_64-efi \EFI\boot\x86_64-efi
Es wird eine einzige grub.cfg-Datei verwaltet: \EFI\BOOT\grub.cfg lädt \grub2\grub.cfg
configfile /grub2/grub.cfg
Unterschiedliche Boot-Modi BIOS/UEFI sind in /grub2/grub.cfg definiert.
if [ "$grub_platform" = "pc" ]; then set root=$winpart set bootmode=BIOS fi
if [ "$grub_platform" = "efi" ]; then insmod loopback set bootmode=UEFI fi
menuentry "$bootmode: Windows" { if [ "$grub_platform" = "pc" ]; then ntldr /bootmgr else chainloader /efi/microsoft/bootx64.efi fi }
if [ "$grub_platform" = "pc" ]; then menuentry "Windows XP x86 - loaded with grub4dos" { linux16 /grub2/grub.exe --config-file=configfile /images/XP_x86.lst } fi