Come reinstallare il bootloader grub-efi su Fedora Linux?


11

Di recente ho installato Fedora 18 usando l'avvio EFI. Come le altre attuali distribuzioni di Linux, imposta GRUB2 per me.

Ho esperienza con la reinstallazione della versione BIOS di GRUB quando le cose vanno male. So ad esempio come avviare un disco di ripristino, eseguire il chroot nel sistema installato, eseguire grub-installe possibilmente update-grub/ grubby/ grub-mkconfig.

Come potrei reinstallare la versione EFI di GRUB quando le cose vanno male? (So ​​che le cose andranno male: le rompo).


Perché hai posto una domanda vaga e poi hai risposto immediatamente? Sebbene la risposta fornisca informazioni utili, la domanda ha davvero bisogno di chiarimenti: sapere che hai cambiato qualcosa non è sufficiente. Comprendere esattamente cosa è stato modificato è davvero necessario per fornire una buona risposta alla domanda.
Rod Smith,

@RodSmith grazie per aver risposto alla mia e-mail su EFI in precedenza :). E per aggiungere il tuo commento ai voti negativi. La domanda con cui ho iniziato era letteralmente questa. Ho esperienza con la reinstallazione di grub-pc. Voglio avere lo stesso livello di confidenza, che so come recuperare un sistema EFI. Ho modificato la domanda una volta per sottolineare che si trattava di reinstallare Grub ... Immagino che dovrei riprovare ed essere più esplicito sul mio motivo.
sourcejedi,

Perché stai usando grub se hai UEFI? Quale vantaggio offre il concatenamento dei due bootloader?
Marco,

@Marco UEFI non è il boot loader supportato da nessuna distribuzione Linux che conosco! Fedora aggiorna automaticamente GRUB quando installa un nuovo kernel e installa le opzioni di avvio necessarie come root =. Non lo fa per EFI. Ho potuto abbandonare il supporto di distribuzione e uso la scansione automatica di ritrovare w / opzioni del kernel in refind.conf , ma che sarebbe comunque il concatenamento boot loader / manager! E Microsoft non firma i driver GPL, quindi Secure Boot deve andare SHIM-> boot loader-> Linux comunque, e vuoi davvero un menu di avvio dopo la parte UEFI-> SHIM.
sourcejedi,

Dopo aver installato un nuovo kernel efibootmgrè sufficiente una sola chiamata per aggiornare la voce nel menu UEFI. Non conosco rEFInd o SHIM. Personalmente non concatenare più caricatori di avvio. Tutti i sistemi operativi vengono aggiunti al menu di avvio UEFI e funziona perfettamente.
Marco,

Risposte:


9

Innanzitutto, avrai bisogno di un sistema linux avviato da EFI . Se hai ancora il supporto di installazione originale (CD / DVD / chiavetta USB), di solito dovrebbe includere un adeguato sistema di salvataggio. Potrebbe anche avere un'opzione di riparazione con un clic :).

In alternativa, la comunità Ubuntu fornisce un'immagine di ripristino automatico del boot . Sostiene di sostenere Fedora. Se vuoi sapere cosa fa effettivamente, ti suggerisco di leggere in anticipo questa spiegazione di terze parti .

Tuttavia ho usato un sistema di salvataggio per scopi generici con strumenti console. Oltre a supportare l'avvio EFI, mi sono assicurato che efibootmgrfosse nell'elenco dei pacchetti . Capita di chiamarsi GRML e si basava su Debian. Ecco le informazioni sugli strumenti della console e grub-efi che ho scoperto durante il salvataggio del mio sistema Fedora:

  1. Quando si esegue un sistema Fedora 18 avviato da EFI, non eseguiregrub2-install . Reclamerà il successo, ma rompe il sistema di avvio Fedora grub-efi.

    • Il file /boot/EFI/fedora/grub.efiè installato dal pacchetto grub-efi. Se non desidera reinstallarlo, utilizzare yum reinstall grub-efi. (Per fare questo da un sistema di salvataggio generico, puoi farlo dopo aver inserito mounte chrootinserito il tuo sistema Fedora installato). Fedora grub-efi usa il file di configurazione /boot/EFI/fedora/grub.cfg(presumibilmente generato da grubby). Fedora su EFI non genererà un file in /boot/grub2/grub.cfg. L'esecuzione grub2-installsostituirà grub.efi con un'immagine che tenta di leggere /boot/grub2/grub.cfge pertanto non riuscirà.

    • grub2-installinstalla una voce di avvio EFI per grub.efi. Tuttavia, se non hai disabilitato Secure Boot nel tuo firmware certificato Windows 8, questa voce non verrà avviata. Devi shim.efiinvece avviare (ignora shim-fedora.efi, non sono sicuro di cosa si tratti esattamente). Vedi sotto.

  2. È possibile perdere la voce di avvio EFI per Fedora se le impostazioni del firmware vengono ripristinate. (Manualmente o tramite aggiornamento del firmware o perché il firmware è difettoso - quest'ultimo è stato segnalato in natura). Ecco come creare manualmente una voce di avvio EFI per Fedora con avvio sicuro:

    $ sudo efibootmgr -c -L Fedora -d /dev/sda -p 100 -l \\EFI\\fedora\\shim.efi
    

    Questo esempio usa la partizione numero 100 sul primo disco standard riconosciuto da linux. Dovresti adattare le opzioni -d /dev/sdae -p 100identificare il filesystem su cui monta Fedora /boot/efi. Questa è una partizione di sistema EFI. Il programma di installazione di Fedora avrà creato un ESP dedicato da utilizzare per l'installazione di Fedora, separato dagli ESP utilizzati da qualsiasi altro sistema operativo. ( Questo è diverso da Ubuntu e OpenSUSE ).

    Si noti che il efibootmgrcomando richiede di eseguirlo da un sistema avviato da EFI.


"Nota che il comando efibootmgr richiede di eseguirlo da un sistema avviato da EFI." - in questo caso come si "avvia" un sistema avviato EFI? (la mia attuale USB non si avvia quando si seleziona l'opzione UEFI)
jozxyqk

1
Installa supporto è il modo supportato per avviare il tuo sistema. Penso che dovresti anche essere in grado di avviare un sistema EFI senza installare le variabili del firmware EFI, implica la creazione /EFI/boot/bootx64.efi(presupponendo UEFI a 64 bit). Questo è esattamente il modo in cui funzionano i supporti di installazione USB (qualsiasi cosa diversa da CD / DVD). Potrebbe essere sufficiente copiare shim.efi lì, ma non sono sicuro che sia impostato per funzionare o meno.
FonteJedi

5

Se si esegue il dual-boot con UEFI Windows, esiste un'altra possibilità. che non richiede un disco di ripristino.

È possibile avviare Windows, aprire una riga di comando con privilegi di amministratore ed eseguire il comando seguente:

bcdedit /set {bootmgr} path \EFI\fedora\shim.efi

Questo sostituirà la voce di avvio di Windows in UEFI, con una che si avvia in GRUB. Supponendo che il tuo menu di GRUB includa una voce funzionante per Windows, ora hai il dual-boot funzionante :-). Speriamo che tutto ciò funzioni senza disabilitare l'avvio sicuro.

Ho dovuto farlo da solo dopo un aggiornamento di Windows e sembra aver fatto il trucco.

Fonte e ulteriori informazioni: http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/ .


In alternativa, vedere le due soluzioni descritte in askubuntu.com/a/799734/462004 (utilizzando EasyUEFI o come modificare l'ordine di avvio utilizzando bcdedit.exeinvece della voce di Windows come fa il comando).
phk,

1

https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems :

dnf reinstall grub2-efi grub2-efi-modules shim

(supponendo che abbiate già quei pacchetti installati e una configurazione precedente sia esistente)


Grazie! "Crea una voce del menu di avvio: TL; DR: questo dovrebbe accadere automaticamente" - yay.
sourcejedi,

Oh sì, lo fa: grub2-mkconfig -o /boot/grub2/grub.cfg(o su un (E) sistema EFI sarebbe qualcosa di simile grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg. Non ha funzionato?

Spiacenti, intendevo dire che il wiki implica che la reinstallazione del pacchetto grub ricrea le variabili EFI necessarie per avviare GRUB (che potrebbe essere necessario ricreare, ad esempio se si ripristinano le impostazioni "BIOS" per qualche motivo). Non credo di aver provato dnf reinstall, e se vero sembra abbastanza grande.
sourcejedi,

0

Solo per mantenerlo semplice qui è tutto ciò che fai:

yum reinstall grub2-efi

NON eseguire grub2-install, il sistema si romperà presentandoti un menu di avvio di grub vuoto (questo perché grub2-install ti darà un file .efi generico / errato che tenta di caricare grub.cfg da una posizione errata.

Inoltre, potresti voler aggiornare grub-config se hai eseguito la migrazione a nuovi dischi o la tua partizione / layout è cambiata con:

grub2-mkconfig -o /boot/EFI/fedora/grub.cfg

Bello leggere alcune conferme :). Ho proposto una modifica che mostra come usare grub2-mkconfig -o. Non sono chiaro quanto sia utile la semplice risposta - non che la mia sia strettamente più utile, ma questo presuppone che tu sia ancora in grado di avviare il sistema Fedora in qualche modo, o hai notato che avresti fatto un errore prima di chiudere. (La mia risposta è fatta a mano sui dischi di ripristino generici, ma AFAIK devi eseguire il chroot nell'installazione, assicurandoti di montare tutti i filesystem necessari ... questa è la cosa bella di un sistema di salvataggio specializzato come l'installatore Debian, fa mount + chroot per te).
sourcejedi
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.