In un sistema dual boot, in che modo il BIOS sceglie quale bootloader eseguire?

21

Ho un doppio avvio di Windows e Ubuntu. Quando accendo la macchina, il BIOS esegue il POST e successivamente viene avviato il bootloader.

Voglio capire come il BIOS sceglie quale bootloader eseguire. Voglio sapere il processo in corso tra il BIOS e il bootloader in un computer con doppio avvio.

    
posta Prashant Singh 29.11.2017 - 10:58
fonte

3 risposte

36

Il firmware del BIOS in realtà non sceglie il bootloader. Carica il codice dal settore 0 di un'unità e lo esegue. Qualunque cosa sia, verrà eseguita. Si spera che sia un bootloader (o qualcosa che carica un bootloader) ma non deve esserlo. Nei primi giorni del PC hai avuto giochi su floppy disk che sarebbero semplicemente stati avviati ed eseguiti senza un SO: questi sono ora chiamati "booter".

Il firmware UEFI in realtà comprende partizioni e file system e scansiona le unità per un tipo di partizione di sistema UEFI. Poiché questo è un filesystem, possono essere posizionati più bootloader qui. Il firmware UEFI dovrebbe fornire un menu o altro modo per selezionare quale bootloader è utilizzato.

Molti sistemi UEFI si stanno avviando in "modalità legacy" - dove UEFI carica un "modulo di servizio di compatibilità" - qualcosa che lo fa sembrare un BIOS - e funziona in realtà come il BIOS.

GRUB è un bootloader open source comune che può avviare Linux o "chainload" (dare il controllo a) un bootloader di Windows (tipicamente winload.exe nella cartella Boot di una partizione Windows). GRUB è ciò che ti sta dando la possibilità di prendere una decisione. GRUB può leggere i file di configurazione e prendere la sua scelta predefinita da loro.

Leggi questo se vuoi dettagli copiosi e cruenti.

    
risposta data LawrenceC 29.11.2017 - 15:22
fonte
10

Questo diagramma mostra come il controllo passa dal firmware (BIOS o UEFI) al bootloader e dal bootloader al sistema operativo in Ubuntu.


BIOS vs. UEFI

Se i sistemi operativi sono stati installati in diverse modalità (BIOS e UEFI), il doppio avvio di Windows e Ubuntu non può funzionare.

  • Rivedi link nella sezione su Conversione di Ubuntu in modalità UEFI .

  • Il grub bootloader può anche essere convertito nella direzione opposta da UEFI a BIOS. Linux può avviare correttamente da un disco GPT in modalità BIOS. Guarda questa risposta: Converti da EFI in BIOS boot

risposta data karel 29.11.2017 - 12:37
fonte
7

Nella modalità legacy (BIOS boot e non UEFI) il BIOS controlla l'ordine di guida. C'era una volta che questo era controllato dai cavi; ma cambiare l'impostazione del BIOS batte l'apertura della scatola & amp; cambiare i cavi.

Il BIOS carica (in memoria) il primo settore (512 byte di disco chiamato MBR o master boot record) del primo disco (o ordine di unità controllato dal BIOS) e quindi passa il controllo (CPU) a questo 'bootloader'. Il BIOS ha quindi completato il suo lavoro e il codice nel primo settore viene eseguito.

    
risposta data guiverc 29.11.2017 - 11:15
fonte

Leggi altre domande sui tag