Setelah seharian melakukan penelitian, saya sekarang dapat menjawab pertanyaan saya sendiri: ya itu mungkin, dan Anda bahkan dapat menggunakan partisi itu sebagai / boot dan simpan kernel / initramfs / etc Anda. sana.
Persyaratan:
- Grub> = 2.00 (1.98 dan 1.99 tidak berfungsi)
- Grub harus diinstal dari kernel Linux, yang memiliki dukungan untuk variabel EFI (
CONFIG_EFI_VARS
dikompilasi dalam atau sebagai modul efivars
)
- Untuk membuat entri boot EFI Anda perlu
efibootmgr
Mendirikan:
Pertama pasang partisi EFI Anda ke / boot
mount /dev/sdX1 /boot
Jika Anda melihat entri mount, Anda akan melihat, bahwa itu hanyalah partisi FAT (32). Di bawah /boot
Anda harus menemukan direktori efi
.
Ketika grub akan memanggil efibootmgr
, Anda harus memuat evivars
, jika itu tidak dikompilasi ke dalam kernel:
modprobe efivars
Sekarang Anda dapat menginstal grub:
# Replace x86_64 by i386 for 32 bit installations
grub2-install --target=x86_64-efi
Grub menginstal file-nya seperti biasa ke /boot/grub2
. Jika semuanya berfungsi dengan benar, Anda seharusnya sekarang juga memiliki folder /boot/efi/grub2
atau /boot/efi/your_distros_name
. Dengan --bootloader-id=isert_name_here
Anda juga dapat menentukan nama untuk folder sendiri.
Grub memanggil efibootmgr
secara otomatis dan membuat entri boot dengan nama itu di menu boot EFI (dalam kasus saya, itu berarti muncul sebagai perangkat yang dapat di-boot dalam menu EFI, tidak yakin apakah ini terjadi pada setiap papan EFI)
Pengaturan lebih lanjut tidak berbeda dari pengaturan grub2 biasa, grub2-mkconfig
akan menambahkan modul yang sesuai untuk EFI ke Anda grub.cfg
.
Pemuatan Rantai Windows:
Ketika saya meminta dual boot dengan Windows, saya akan menyertakan konfigurasi grub untuk chainloading:
Chainloading instalasi Windows pada EFI sedikit berbeda dari yang ada pada disk MBR. Anda tidak akan memerlukan modul ntfs
atau part_mbr
, sebagai gantinya fat
dan part_gpt
diperlukan.
Selain itu, pengaturan root tidak diperlukan, informasi ini disimpan oleh boot manager Windows sendiri. Alih-alih tentukan search
perintah. Parameter yang dibutuhkan untuk itu dapat ditentukan oleh
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Ini akan memberi Anda parameter untuk pencarian yang menentukan lokasi partisi EFI, seharusnya terlihat seperti:
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
Alih-alih memberi tahu chainloader
jumlah sektor untuk dibaca, Anda perlu mengatur path ke Windows EFI loader di partisi EFI. Ini sama untuk semua instalasi Windows EFI. Entri yang dihasilkan akan terlihat seperti ini:
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
}
Sumber: Ini mencakup beberapa kasus lagi, jika Anda ingin boot dari EFI, layak dibaca:
mount /dev/sdXX /boot/efi
, kemudian mengikuti ini dan berlaribcdedit /set {bootmgr} path \EFI\fedora\shim.efi
dari windows ke bootstrap EFI.