GNU/Linux >> Linux Esercitazione >  >> Linux

Come funzionano più caricatori di avvio su una partizione di sistema Efi?

Il mio ESP è simile a questo

Boot Dell fedora Microsoft

Nella directory Boot, c'è un bootloader chiamato bootx64.efi che ho capito è il caricatore di avvio predefinito che viene avviato per primo. Ma nella directory fedora c'è un altro bootloader (grub2) chiamato grubx64.efi .

Qual è la funzione di ciascuno di questi bootloader? Quale fornisce il boot-menu ?

Risposta accettata:

bootx64.efi non inizia prima. La maggior parte delle volte non si avvia affatto.

Il firmware EFI ha il proprio "menu di avvio", analogo al menu presentato da GRUB ma in una fase precedente del processo di avvio. Proprio come GRUB ti consente di scegliere quale kernel Linux eseguire, il menu di avvio EFI ti consente di scegliere quale programma di avvio EFI eseguire:le scelte sono cose come GRUB stesso o il bootloader di Windows. (E, come il menu di GRUB, il menu di avvio EFI in genere non viene mostrato per impostazione predefinita; devi premere un tasto di scelta rapida durante l'avvio per vederlo.)

Le voci nel menu di avvio EFI sono definite dai dati di configurazione archiviati nella NVRAM della scheda madre (la memoria "Impostazioni BIOS"). Questa configurazione non è memorizzata in un file, ma in Fedora dovresti essere in grado di vederla usando efibootmgr programma. Ogni voce contiene un nome leggibile dall'uomo (da mostrare nel menu) e un percorso a un programma di avvio in una partizione di sistema EFI, nonché un numero di priorità che determina quale voce viene avviata per impostazione predefinita quando non si preme il tasto di scelta rapida per vedere il menu.

Queste voci di avvio della NVRAM sono (in genere) create dai programmi di installazione del sistema operativo. Quando si installa un sistema operativo e si inserisce un file di bootloader nella partizione di sistema EFI, viene aggiunta anche una voce alla configurazione della NVRAM in modo che il nuovo bootloader sia disponibile nel menu di avvio di EFI. (In molti casi, rende anche quella nuova voce predefinita, in modo che il sistema operativo appena installato si avvii da solo senza che sia necessario aprire il menu di avvio EFI e sceglierlo manualmente.)

Il Boot/bootx64.efi programma è un fallback per quando EFI non è stato configurato con alcuna voce di avvio NVRAM che fa riferimento ad altri programmi di avvio sul disco. È importante per i supporti rimovibili come CD avviabili e unità USB, ma su un disco rigido generalmente non viene utilizzato. Il programma di installazione di Windows crea un Boot/bootx64.efi come fail-safe; È solo una copia di Microsoft/Boot/bootmgfw.efi (almeno in Windows 7; non conosco altre versioni).

Correlati:come eseguire un equivalente di `head -z` quando non ho l'opzione `-z` disponibile?

Sui miei sistemi, ho sostituito Microsoft bootx64.efi con una copia di EFI Shell, in modo che se in qualche modo mi ritrovo senza alcuna voce di avvio NVRAM e facendo effettivamente affidamento sul bootloader di fallback, vengo rilasciato a una shell in cui posso esaminare la situazione ed eseguire manualmente uno degli altri programmi di avvio invece di avere il sistema che avvia Windows automaticamente. (Ho anche aggiunto una voce per esso nel menu di GRUB in modo da avere la possibilità di avviare la shell EFI anche quando il sistema funziona correttamente.)


Linux
  1. Come eseguire il dual boot di Manjaro e Windows 10

  2. GRUB su sistema compatibile con EUFI

  3. Come aggiungere una nuova voce di avvio del sistema operativo al menu Grub2?

  4. Come disabilitare NUMA sui caricatori di avvio EFI utilizzando GRUB2 (CentOS/RHEL 6)

  5. Ridimensionamento della partizione di avvio

Riavvio di Crontab:come eseguire automaticamente un lavoro all'avvio

Come eseguire il dual boot di Kali Linux e Windows 10

Come creare un nuovo file system Ext4 (partizione) in Linux

Come avviare Linux Mint 20 in modalità Rescue/Emergenza

Come controllare/riparare il file system Linux all'avvio

Come controllare la cronologia di riavvio del sistema e il tempo di avvio in Linux