# Master boot record

Il master boot record (MBR) (lett. "settore di avvio principale"), in informatica ed elettronica, nell'ambito dell'architettura dei personal computer, è quel settore del disco rigido di un computer composto dai primi 512 byte (mezzo chilobyte) del disco, che contiene la sequenza di comandi/istruzioni necessarie all'avvio (boot) del sistema operativo, tipicamente il boot manager/boot loader del sistema e la tabella delle partizioni dei file system presenti nel disco.
È un elemento fondamentale dell'architettura software o piattaforma operativa ed un suo malfunzionamento provoca l'inavviabilità del sistema.

## Funzionamento
### Avvio del sistema

Il processo d'avvio è diverso a seconda che il disco sia partizionato o meno. In entrambi i casi però il firmware di avvio contenuto nella ROM del BIOS carica ed esegue inizialmente il master boot record dopo averlo letto in memoria trasferendogli il controllo del disco.
Di solito l'MBR include la tabella delle partizioni, che è usata dal PC per caricare ed avviare il settore di avvio della partizione scelta dall'utente attraverso il boot manager. Questo permette al BIOS di caricare qualunque sistema operativo senza bisogno di sapere esattamente dove si trovi il rispettivo settore di avvio all'interno della partizione dedicata poiché questo potrebbe non coincidere con il primo settore fisico della partizione.
Il settore di avvio (che, fisicamente, corrisponde al primo blocco) di una partizione avviabile si chiama partition boot record (PBR) e, a volte, volume boot record (VBR). Nel PBR sono contenute le istruzioni per eseguire lo specifico boot loader (specifico del sistema operativo installato sulla partizione avviabile). Il settore di avvio di qualsiasi partizione (marcata nella tavola delle partizioni come avviabile) si chiama boot sector. Avviabile significa "volume di sistema" o "volume di avvio" (un ambiente di ripristino è anch'esso un volume di avvio).
Dunque se il disco è partizionato l'MBR contiene il codice di selezione della partizione selezionata che a sua volta carica il settore di avvio della partizione stessa, attraverso il boot loader, trasferendogli il controllo del disco; altrimenti, se non ha partizioni, è il settore di avvio stesso che, sempre attraverso il boot loader, carica l'unica partizione segnata come attiva avviando il sistema operativo.
In estrema sintesi e semplificando di molto complessi tecnicismi, sono questi i passaggi del processo di boot:
* l'UEFI cede il controllo al MBR (grazie all'identificazione dell'indirizzo del gestore di avvio contenuto nel settore principale del disco, il MBR appunto, nonché all'istruzione contenuta); il settore di avvio principale è uno "speciale" settore di avvio: è il "master" appunto, quello che presiede tutti gli altri (avviabili, mediante il PBR, e non avviabili);
* il MBR carica il gestore di avvio attivo;
* il gestore legge, dalla tavola delle partizioni contenuta nel MBR, la mappa delle partizioni; in particolare, analizza quali sono i volumi avviabili (in parole povere, le partizioni ove è installato un sistema operativo o un ambiente di ripristino o comunque un sistema con un settore di boot);
* tramite l'indirizzo contenuto nel PBR di ciascuna partizione, il gestore identifica i settori del disco ove si trovano fisicamente i caricatori di avvio di ogni partizione avviabile;
* a seconda di come si è configurato il boot, il gestore lancia in automatico il sistema prescelto (attivo) oppure presenta un menù di scelta e/o le opzioni di avvio. Il volume (se esistente) non solo contrassegnato "di sistema" e di "avvio" ma anche "attivo" è quello che contiene il sistema operativo (di avvio) predefinito.
Per i processori Intel x86 la sequenza di comandi assembly del master boot record opera in modalità reale, anche quando il sistema operativo da caricare lavora (la maggior parte del tempo) in modalità protetta.
Poiché il MBR è letto quasi subito all'avvio del computer, molti virus, creati prima che gli antivirus fossero diffusi, operavano cambiando il codice del MBR rendendo impossibile l'avvio del sistema.
Con l'avvento del firmware di tipo UEFI, alcune funzioni del boot manager sono, per così dire, incorporate e anticipate da questa interfaccia/strato.

## Struttura
### MBP

MBP (Master Boot Program) è un codice eseguibile che si trova nei primi 446 byte del Master Boot Record. Viene avviato dal BIOS con un interrupt 19H, subito dopo le operazioni di POST. Si occupa di scansionare le partizioni, trovare e avviare il rispettivo boot loader che deve essere eseguito.

### MBT

MBT (Master Boot Table) è una tabella che si trova subito dopo l'MBP. La sua dimensione è 64 byte. Contiene informazioni sulle partizioni (tipologia, bootable, CHS iniziale, CHS finale, LBA del primo settore, numero di settori della partizione).
Nel caso dell'esistenza delle partizioni estese sul disco, verrà allocato un nuovo record (EBR, Extended Boot Record) nel primo settore di ogni partizione logica. La struttura è identica all'MBR, ma lo spazio riservato al Master Boot Program risulta inutilizzato. L'EBR contiene il settore di inizio della partizione logica e il puntatore alla prossima partizione logica.

### Magic Number

Gli ultimi 2 byte sono riservati al magic number dell'MBR, che identifica la fine dello stesso. È normalmente 55 AA.