Po całym dniu badań mogę teraz odpowiedzieć na własne pytanie: tak, jest to możliwe, możesz nawet użyć tej partycji jako / boot i przechowywać swoje jądra / initramfs / etc. tam.
Wymagania:
- Grub> = 2,00 (1,98 i 1,99 nie działają)
- Grub musi być zainstalowany z jądra Linux, które obsługuje zmienne EFI (
CONFIG_EFI_VARSskompilowane w lub jako moduł efivars)
- Do utworzenia wpisu rozruchowego EFI będziesz potrzebować
efibootmgr
Ustawiać:
Najpierw zamontuj partycję EFI w / boot
mount /dev/sdX1 /boot
Jeśli spojrzysz na wpis montowania, zobaczysz, że jest to po prostu partycja FAT (32). Poniżej /bootpowinieneś znaleźć katalog efi.
Jak wywoła grub efibootmgr, powinieneś go załadować evivars, jeśli nie jest wkompilowany w jądro:
modprobe efivars
Teraz możesz zainstalować grub:
# Replace x86_64 by i386 for 32 bit installations
grub2-install --target=x86_64-efi
Grub instaluje swoje pliki jak zwykle /boot/grub2. Jeśli wszystko działało poprawnie, powinieneś teraz mieć także folder /boot/efi/grub2lub /boot/efi/your_distros_name. Za pomocą --bootloader-id=isert_name_heremożesz także samodzielnie określić nazwę folderu.
Grub wywołuje efibootmgrautomatycznie i tworzy pozycję rozruchową o tej nazwie w menu rozruchowym EFI (w moim przypadku oznacza to, że pojawia się jako urządzenie rozruchowe w menu EFI, nie jestem pewien, czy tak jest na każdej płycie EFI)
Dalsza konfiguracja nie różni się od zwykłej konfiguracji grub2, grub2-mkconfigdoda odpowiednie moduły dla EFI do twojego grub.cfg.
Windows ładowanie łańcucha:
Gdy poprosiłem o podwójny rozruch w systemie Windows, dołączę konfigurację grub do ładowania łańcucha:
Ładowanie łańcuchowe instalacji systemu Windows na EFI różni się nieznacznie od instalacji na dysku MBR. Zamiast tego nie będziesz potrzebować modułów ntfslub i są one potrzebne.part_mbrfatpart_gpt
Ponadto ustawienie roota nie jest wymagane, ta informacja jest przechowywana przez własnego menedżera rozruchu systemu Windows. Zamiast tego podaj searchpolecenie. Potrzebne do tego parametry można określić za pomocą
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
To da ci parametry wyszukiwania określające lokalizację partycji EFI, powinna ona wyglądać mniej więcej tak:
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
Zamiast podawać chainloaderliczbę sektorów do odczytania, musisz ustawić ścieżkę do modułu ładującego EFI systemu Windows na partycji EFI. To samo dotyczy wszystkich instalacji Windows EFI. Wynikowy wpis powinien wyglądać następująco:
menuentry "Microsoft Windows x86_64 UEFI-GPT" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root <insert ouput from grub-probe here>
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
Źródła: Obejmują one więcej przypadków, jeśli chcesz uruchomić z EFI, warto je przeczytać:
mount /dev/sdXX /boot/efi, następnie podążyłem za tym i pobiegłembcdedit /set {bootmgr} path \EFI\fedora\shim.efiz systemu Windows do bootstrap EFI.