Come funzionano i settori di avvio e più unità?


17

Non capisco appieno il concetto di settore di avvio, speravo che qualcuno potesse risolverlo per me.

Se si dispone di due dischi rigidi, con un sistema operativo installato su ciascuno, ogni unità ha il proprio settore di avvio? Ogni unità ha bisogno di una partizione MBR?

Ho Linux e Windows su due unità separate. Ho avuto problemi durante l'installazione di Linux e grub, e ora ho finalmente deciso di utilizzare il bootloader di Windows per l'avvio. Windows si sarebbe sbarazzato di grub quando avessi usato / fixmbr o sarebbe rimasto lì nel settore di avvio dell'altra unità?

Risposte:


17

La risposta di Wil è vagamente corretta, ma non è tecnicamente accurata. Sì, un'unità non necessita di un MBR. Senza uno, non sarai in grado di avviare da quell'unità e non sarai in grado di creare partizioni su quell'unità. MA...

Il termine Master Boot Record viene spesso utilizzato per fare riferimento a due cose: è correttamente solo il primo e comunemente applicato erroneamente al secondo:

  1. Una posizione, in particolare, il primo settore a 512 byte di un dispositivo di archiviazione dati partizionato ("Settore LBA 0"). Questa posizione contiene i primi 440 byte del codice del caricatore di avvio (il caricatore di avvio del primo stadio) e la tabella delle partizioni primaria. Vedi l' articolo MBR di Wikipedia per i dettagli sulla struttura di un tipico MBR.

  2. Il codice del caricatore di avvio memorizzato in quella posizione. In un sistema BIOS, questo è il primo codice eseguito all'avvio del BIOS da un'unità. Vedi MBR e bootstrap del sistema e boot loader del primo stadio : sui sistemi i386, questo codice carica il boot loader del secondo stadio , memorizzato nel record di avvio del volume della partizione attiva, che esegue l'avvio effettivo del sistema operativo.

Il volume Boot Record o il settore di avvio della partizione è il primo settore di una partizione ed è dove un sistema operativo installato su quella partizione memorizzerà il suo codice di bootstrap principale. Un VBR viene utilizzato anche su dispositivi di archiviazione dati non partizionati (floppy disk, unità flash USB o anche hard disk utilizzati in ruoli non partizionati).

I sistemi mulitple-boot usano un boot manager (es. Grub). Un boot manager inserisce il proprio codice bootloader nell'MBR e fornisce un menu dal quale un utente può scegliere un sistema operativo da avviare. (In termini tecnici, l'utente sta scegliendo quale bootloader di secondo livello utilizzare.)


Quindi, per rispondere direttamente alle tue domande:

  • Due dischi rigidi con un sistema operativo installato su ciascuno avranno ciascuno il proprio MBR .

    • Entrambi gli MBR conterranno almeno una partizione.
    • Ogni partizione su quei dischi rigidi avrà il proprio VBR. Le partizioni che contengono installazioni del sistema operativo memorizzeranno i loro boot loader di secondo livello in quei VBR; tutte le partizioni che sono solo dati non avranno (probabilmente) un codice di avvio valido nel loro VBR.
    • Se questo sistema si avvia, almeno uno di questi MBR conterrà un caricatore di avvio del primo stadio valido, ma è necessario solo per l'unità da cui il BIOS tenta di avviarsi.

  • Quando hai installato Linux sulla tua seconda unità, probabilmente ha scritto il boot loader di primo stadio di Grub sull'MBR dell'unità Windows. Essa può essere anche scritto il boot loader del primo stadio nel MBR del proprio disco, ma se il BIOS non tenta mai di avvio dall'unità Linux, ti accorgerai mai. Allo stesso modo, quando si utilizza / fixmbr, Windows riscrive il boot loader del primo stadio sull'MBR dell'unità disco di sistema.

    • Onestamente non so se l'utilità Bootrec.exe di Win-7 scriverà anche negli MBR di altre unità. Probabilmente ha la capacità di farlo, ma probabilmente non è l'azione predefinita.
    • Inoltre non so se il programma di installazione di Ubuntu 9.04 installerebbe Grub sugli MBR di entrambe le unità per impostazione predefinita. È possibile farlo a mano se lo si desidera. In alcune situazioni sarebbe una buona cosa: se dovessi disconnettere l'unità Windows e provare ad avviare dall'unità Linux, non avresti avviato se il codice di avvio del primo stadio di Grub non fosse presente.

Grazie per la risposta molto dettagliata: -) ... Mi chiedevo sempre perché l'MBR fosse usato per due significati diversi, e ora so ahah
GiH,

1
@GiH sei il benvenuto. grazie per aver posto questa domanda; può servire come introduzione di base per MBR e bootloader per i futuri lettori.
Quack Quixote

hai una fonte per "Il termine Master Boot Record è spesso usato per riferirsi a due cose - è propriamente solo il primo e comunemente applicato male al secondo:" Sono sicuro che sia giusto e l'ho letto da qualche parte .. ma interessante se hai una fonte per quello. Inoltre, poiché ecco un termine per bootloader, esiste un termine per la parte non bootloader dell'MBR? E quando si tratta di GPT, GPT include bootloader e tabella delle partizioni e quale terminologia distingue tra GPT e la tabella delle partizioni?
barlop

3

Un'unità non ha bisogno di un MBR, tuttavia, senza uno, non sarà possibile eseguire l'avvio da tale unità.

Tanto per cominciare, la macchina si avvierà su qualunque disco venga richiesto dal BIOS. Questo è l'unico disco che necessita di un MBR (questo è su macchine basate su BIOS, ad esempio la maggior parte sul mercato, non EFI).

Avere un MBR dirà sostanzialmente alla macchina che l'unità è avviabile (e non restituisce il temuto "Nessun errore del disco o del disco" o un messaggio simile), quindi il bootloader verrà caricato.

Quando viene caricato il bootloader, fondamentalmente farà ciò che gli viene richiesto, questo può essere quello di caricare altri bootloader (ad esempio, Grub caricamento del boot loader di Windows) o sistemi operativi - Ad esempio, è possibile scegliere unità / partizione.

Quindi, devi solo avere l'MBR (e il Bootloader) sull'unità di avvio effettiva.


Ok, ma è possibile che entrambi i miei dischi abbiano un MBR dal momento che avevo grub funzionante prima? Fondamentalmente quello che sto cercando di capire è se la mia unità Linux sta sprecando spazio su un MBR perché non sto usando grub, o quando ho installato il bootloader di Windows, si è sbarazzato di grub e l'MBR? Scusami se la mia domanda è confusa ...
GiH,

1
Puoi avere solo un MBR in quanto non è tanto un file, ma una posizione: se hai installato un sistema operativo diverso su un'unità diversa, è possibile che tu lo abbia ancora sull'altra unità, ma è così insignificativamente piccolo, Non sarei davvero preoccupato (stiamo parlando di qualche centinaio di byte (penso che max sia ~ 500), se questo, su un disco con molti miliardi di byte!). Tuttavia, è possibile che tu abbia ancora i file grub - ma, di nuovo, è molto piccolo.
William Hilsum,

3
@GiH, re: spreco di spazio - no, l'MBR fornisce anche la tabella delle partizioni per l'unità, in modo che lo spazio sia riservato (non utilizzato dal sistema operativo) indipendentemente dal fatto che contenga un record di avvio valido o meno. puoi pensarlo come una piccola quantità di overhead per i tuoi filesystem; rispetto alle moderne capacità del disco rigido, la quantità di spazio "sprecato" è troppo piccola di cui preoccuparsi.
Quack Quixote

1

MBR (Master Boot Record) è il primo settore su cui è possibile scrivere. Ha una posizione e dimensioni fisse (molto piccole), quindi puoi avere solo un MBR per disco.

MBR è il primo settore letto nella sequenza di avvio dopo il caricamento del BIOS. Può essere usato per avviare un sistema operativo o per caricare un boot loader come grub o lilo per scegliere quale sistema caricare.

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.