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_VARS
skompilowane 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 /boot
powinieneś 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/grub2
lub /boot/efi/your_distros_name
. Za pomocą --bootloader-id=isert_name_here
możesz także samodzielnie określić nazwę folderu.
Grub wywołuje efibootmgr
automatycznie 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-mkconfig
doda 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 ntfs
lub i są one potrzebne.part_mbr
fat
part_gpt
Ponadto ustawienie roota nie jest wymagane, ta informacja jest przechowywana przez własnego menedżera rozruchu systemu Windows. Zamiast tego podaj search
polecenie. 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ć chainloader
liczbę 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.efi
z systemu Windows do bootstrap EFI.