Cosa fa decidere esattamente il BIOS se un'unità è avviabile o no?
Il BIOS decide se un'unità è avviabile in base al record di partizione a 16 byte, presente dopo l'area del codice MBR (contenuta in una tabella che inizia al 446 ° byte). Il primo byte in ogni record di partizione rappresenta lo stato di avvio dell'unità (ed è impostato su 0x80
se avviabile o in 0x00
caso contrario). Alcuni BIOS possono controllare altre parti dell'MBR (ad es. Tipi di partizione, checksum), ma il requisito di base è il flag di avvio.
In che modo la sequenza di avvio salta dall'unità n. 1 e procede tentando l'avvio dall'unità n. 2 se nel sistema è installata più di un'unità?
Questo dipende dall'implementazione ed è il motivo per cui è necessario selezionare correttamente un ordine di avvio. Nella maggior parte dei casi, il BIOS esaminerà tutti i supporti di archiviazione nell'ordine impostato e determinerà se è possibile eseguire l'avvio da quel dispositivo (tramite i dati MBR). In tal caso, lo fa - in caso contrario, continua a scorrere gli altri dispositivi (di nuovo, nell'ordine selezionato).
Dopo che il BIOS ha trasferito il controllo al bootloader sull'unità n. 1 che non aveva partizioni "avviabili", come viene invocato esattamente il bootloader sulla seconda unità?
Una volta trovato un dispositivo di avvio valido (ovvero è impostato il flag di avvio e vengono superati altri controlli aggiuntivi), il BIOS copia il settore MBR nella RAM. Il BIOS trasferisce quindi il puntatore dell'istruzione all'inizio di questa posizione (utilizzando JUMP
un'istruzione), in cui si trova il segmento del codice MBR, quindi il computer si avvia.
Se il BIOS supporta le specifiche di avvio del BIOS , il codice MBR può restituire il controllo al BIOS con una determinata istruzione, segnalandolo in caso di errore di avvio e chiedendogli di provare il dispositivo successivo. Tuttavia, i BIOS precedenti stampano solo un messaggio di errore. Una buona notizia se il BIOS lo supporta è se è possibile eseguire l'avvio da USB.
La mia comprensione è che l'unica cosa che il BIOS normalmente controlla su un MBR è la sua firma alla fine del settore a 512 byte, quindi trasferisce il controllo al bootloader iniziale situato nei primi 446 byte del settore di avvio.
Ciò è corretto, anche se va notato che la maggior parte dei BIOS moderni cercherà anche una tabella delle partizioni GUID e la tabella di MBR tradizionale, più vecchia.
Implica che i primi 446 byte del settore di avvio DEVONO contenere un codice di bootloader significativo anche se il disco non è avviabile?
No , ma l'unità deve avere una tabella delle partizioni MBR o GUID valida, altrimenti non verrà rilevata dal computer. Mentre la parte di codice dell'MBR può effettivamente essere vuota, il primo settore dell'unità deve avere un MBR / GPT ben formato.