GRUB2 può condividere la partizione di sistema EFI con Windows?


30

Ho un'installazione esistente di Windows 7 GPT, che ha già una partizione di sistema EFI.

Ora sto cercando di installare un Linux su un disco rigido separato, anch'esso formattato GPT. Non ho trovato alcun modo di avviare grub senza partizione di sistema EFI, quindi la mia domanda è:

È possibile per grub2 utilizzare la stessa partizione di sistema EFI di Windows? Come faccio a dire a grub2 di usarlo?

Per chiarire la mia configurazione:

gpt /dev/sda:
    1 EFI System partition created by windows (100MB)
    2 "Microsoft reserved partition" (200MB)
    3 Windows root (rest of disk)

gpt /dev/sdb:
    # After answering my own question: this partition is not needed
    1 boot partition containing grub, kernels etc.(32MB)
    2 crypto LVM partition (rest of disk)

Voglio che grub2 usi la /dev/sda1partizione EFI esistente .

PS: la mia scheda madre è compatibile con EFI.

Risposte:


22

Dopo una giornata di ricerche, ora posso rispondere alla mia domanda: sì, è possibile, e puoi anche usare quella partizione come / boot e archiviare i tuoi kernel / initramfs / etc. Là.

Requisiti:

  • Grub> = 2.00 (1.98 e 1.99 non funzionano)
  • Grub deve essere installato da un kernel Linux, che supporta le variabili EFI ( CONFIG_EFI_VARScompilato o come modulo efivars)
  • Per creare la voce di avvio EFI è necessario efibootmgr

Impostare:

Innanzitutto montare la partizione EFI su / boot

mount /dev/sdX1 /boot

Se guardi la voce mount, vedrai che è semplicemente una partizione FAT (32). Sotto /bootdovresti trovare una directory efi.

Come chiamerà grub efibootmgr, dovresti caricare evivars, se non è compilato nel kernel:

modprobe efivars

Ora puoi installare grub:

# Replace x86_64 by i386 for 32 bit installations
grub2-install --target=x86_64-efi

Grub installa i suoi file come al solito /boot/grub2. Se tutto ha funzionato correttamente, ora dovresti avere anche una cartella /boot/efi/grub2o /boot/efi/your_distros_name. Con --bootloader-id=isert_name_herete puoi anche specificare tu stesso il nome della cartella.

Grub chiama efibootmgrautomaticamente e crea una voce di avvio con quel nome nel menu di avvio EFI (nel mio caso, ciò significa che si presenta come un dispositivo avviabile nel menu EFI, non sono sicuro che questo sia il caso su ogni scheda EFI)

Un'ulteriore installazione non differisce dalla solita installazione di grub2, grub2-mkconfigaggiungerà i moduli appropriati per EFI al tuo grub.cfg.

Caricamento a catena di Windows:

Come ho chiesto un doppio avvio con Windows, includerò la configurazione di grub per il suo caricamento a catena:

Il caricamento a catena di un'installazione di Windows su EFI è leggermente diverso da quello su un disco MBR. Non avrai bisogno dei moduli ntfso part_mbr, invece fate part_gptsono necessari.

Inoltre, non è richiesta l'impostazione di root, queste informazioni vengono archiviate dal proprio boot manager di Windows. Invece specifica il searchcomando. I parametri necessari per questo possono essere determinati da

grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

Questo ti darà i parametri per la ricerca specificando la posizione della partizione EFI, dovrebbe assomigliare a:

--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28

Invece di indicare chainloaderil numero di settori da leggere, sarà necessario impostare il percorso del caricatore EFI di Windows nella partizione EFI. Questo è lo stesso per tutte le installazioni di Windows EFI. La voce risultante dovrebbe apparire così:

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
}

Fonti: riguardano alcuni altri casi, se si desidera avviare da EFI, vale la pena leggere:


Per me (Fedora24) ho messo le finestre 10 partizione EFI a mount /dev/sdXX /boot/efi, poi seguito questo e corse bcdedit /set {bootmgr} path \EFI\fedora\shim.efida Windows a bootstrap EFI.
jozxyqk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.