Compago

...free knowledge

 
  • Increase font size
  • Default font size
  • Decrease font size
Home Manuali Windows Guida al MBR master boot record

Guida al MBR master boot record

E-mail Stampa PDF

Quando accendete il computer, viene eseguita una complessa serie di operazioni, che inizia dalle istruzioni contenute nella memoria non volatile del BIOS (Basic Input/Output System), per maggiori informazioni vedi Note sul bios e codici errore del bios.

Per prima cosa viene eseguito il POST (Power-On Self Test), una serie di test dei principali componenti hardware, dopo di che il BIOS legge il primo record (settore di 512 byte) del primo hard disk, che si chiama Master Boot Record (record di avvio principale) perché è il punto di partenza per trovare il sistema operativo da caricare.

In presenza di più hard disk, nel setup del BIOS avete la possibilità di specificare il tipo di drive di boot (per esempio ATA o SCSI) e la sequenza delle unità, così che il BIOS legga l'MBR dal disco di sistema.

Se il BIOS cercasse l'MBR su un disco di lavoro, non troverebbe il sistema operativo e si bloccherebbe con un messaggio di errore.

Per informazioni più approfondite leggete questo articolo MBR

L'MBR di solito viene scritto dal sistema operativo, per esempio in occasione della prima formattazione di una partizione del disco oppure dalla console Gestione Disco in Gestione Computer (Windows 2000/XP); l'MBR è presente su tutti gli hard disk, ma viene usato solo se il computer è di tipo x86 e il disco contiene la partizione di sistema.

Il BIOS, dopo aver copiato l'MBR in memoria, passa il controllo al codice contenuto nella prima parte del record (detto master boot code), che contiene istruzioni (300 byte) e messaggi di errore (80 byte).

La parte finale dell'MBR contiene i 64 byte della partition table (tabella delle partizioni) e una “firma” di due byte con valore AA55h (h sta per esadecimale), senza la quale l'MBR non è considerato valido.

Il master boot code, caricato a un indirizzo fisso della memoria di sistema, esegue quattro azioni:

  1. scansione della partition table alla ricerca della partizione attiva
  2. localizzazione del settore iniziale della partizione attiva
  3. caricamento in memoria di una copia del settore di boot della partizione attiva
  4. trasferimento del controllo al codice eseguibile contenuto nel settore di boot.

Avvio e partizioni
Per chiarire la funzione dell'MBR, rivediamo brevemente le caratteristiche della partition table. Nei 64 byte disponibili, c'è posto per quattro descrittori di partizioni. Un hard disk può contenere fino a quattro partizioni primarie e può contenere una partizione estesa, nel qual caso potranno esserci fino a tre partizioni primarie.

Una partizione primaria è completamente descritta dalla sua voce di partition table, che include tipo, posizione e dimensioni della partizione.

La partizione estesa è un contenitore suddiviso in partizioni logiche (fino a 24), dette anche drive logici, che formano una struttura concatenata.

Nella partition table ci sono solo le dimensioni e la posizione della partizione estesa, mentre i descrittori delle partizioni logiche sono contenuti all'inizio delle partizioni stesse.

Sul disco di avvio, solo una delle partizioni primarie può essere dichiarata “attiva” e sarà utilizzata per il boot del sistema operativo.

Ognuno dei quattro descrittori nella partition table include i seguenti campi:

  • indicatore di boot (un byte) che vale 80 se la partizione è attiva, altrimenti 00;
  • numero di testina (o superficie dei piatti) dove inizia la partizione (un byte);
  • settore iniziale della partizione (6 bit);
  • cilindro iniziale (10 bit); system id (un byte),
  • l'identificatore del tipo di partizione (per es. 07h per partizione NTFS);
  • testina finale (un byte);
  • settore finale (6 bit);
  • cilindro finale (10 bit);
  • relative sectors (4 byte), il numero di settori tra l'inizio del disco e l'inizio della partizione; numero totale di settori della partizione (4 byte).

Ricordiamo che nei processori Intel e compatibili i numeri maggiori di un byte sono memorizzati in ordine inverso di byte, partendo cioè dai bit meno significativi. Ad esempio, i due byte finali AA55h dell'MBR appaiono come 55AAh quando visualizzate il contenuto del settore.

Prendiamo come esempio un PC con il disco di avvio suddiviso in una partizione primaria e in una partizione estesa composta di due partizioni logiche.

Supponiamo che nella partizione primaria sia installato Windows 2000 e che Windows XP sia installato nella seconda partizione logica.

Dopo l'installazione di Windows 2000, la partizione primaria (C:) era attiva e la partizione estesa era vuota. Quando Windows XP (parente stretto di Windows 2000) è stato installato in F: (partizione logica), il setup ha aggiornato i file di C: utilizzati per avviare il sistema operativo, tra cui NTLDR, Boot.ini e Ntdetect.com. Il risultato è che la partizione attiva resta C:, detta partizione di sistema perché è quella da cui viene caricato il sistema operativo.

Ora riprendiamo la sequenza di passi all'avvio del computer dal momento in cui il BIOS passa il controllo al codice del MBR. Il master boot code trova nella partition table l'ubicazione della partizione attiva (quella contrassegnata con 80) e ne legge il primo settore, che è il boot record (record di avvio) della partizione.

Le istruzioni contenute nel boot record di C: determinano l'esecuzione di NTLDR (NT loader), dopo averlo copiato in memoria dalla directory principale della partizione attiva, che è C:.

NTLDR, per decidere quale sistema operativo caricare (nel nostro esempio ce n'è due), legge Boot.ini, un file di testo in C:\ che elenca i sistemi operativi installati e la loro ubicazione sugli hard disk.

Quindi NTLDR propone all'utente di scegliere da un menu quale sistema avviare, si procura informazioni sulla configurazione hardware e cerca la partizione di boot del sistema operativo scelto dall'utente.

Se scegliamo Windows XP, NTLDR trova in Boot.ini che XP è installato nella directory \Windows della terza partizione del primo disco, quindi dà inizio al caricamento del sistema operativo e gli passa il controllo.

 

Catena di operazioni
Nell’esempio vediamo che la successione delle operazioni di avvio inizia dal BIOS e coinvolge in sequenza l’MBR (istruzioni di avvio e partition table), il boot record della partizione attiva (che è anche la partizione di sistema per Windows 2000 e XP), il file Boot.ini e la partizione di boot (quella dove è installato il sistema operativo selezionato dall’utente).

Un altro componente critico per il processo di avvio del computer è la memoria CMOS utilizzata dal BIOS per salvare la configurazione del sistema.

Questa piccola memoria volatile, leggibile e scrivibile, è mantenuta alimentata da una batteria, che di solito è al litio, riconoscibile dalla forma a moneta sulla scheda madre.

Non è così raro che, su un sistema con più hard disk, qualche evento modifichi la sequenza di boot dei dischi nella configurazione CMOS e che sia quindi impossibile riavviare il sistema.

Prima di disperarvi, entrate nel setup del BIOS e verificate che nella sequenza di boot compaia il disco di sistema e non un disco di lavoro.

Altri dati
Appena prima della partition table (che inizia all’indirizzo 1BEh o 446 decimale), dopo l’area di padding (riempimento) che segue il master boot code, ci sono sette byte a partire da 1B5h.

I primi tre sono utilizzati da Windows 2000/XP per localizzare i tre messaggi di errore in memoria; il loro valore varia secondo la lingua.

In italiano, i tre byte 2C, 50 e 7D indicano che i messaggi di errore sono ubicati agli indirizzi 072Ch, 0750h e 077Dh.
I quattro byte da 1B8h rappresentano la disk signature (firma del disco) lasciata da Windows per identificare gli hard disk installati. Questa firma ricorre in varie chiavi del registro di sistema, tra cui HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices e HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\STORAGE\Volume.

Multiboot
In generale, se i sistemi operativi installati sono tutti versioni di Windows e sono stati installati nella sequenza corretta (prima Windows 9x/Me, poi Windows 2000 e per ultimo XP), NTLDR e Boot.ini svolgono senza problemi le funzioni di Boot Manager.

Se anziché Windows avete installato Linux, troverete nell’MBR il codice di caricamento di Linux (LILO, Linux Loader). Se desiderate installare tanti sistemi operativi eterogenei sullo stesso computer, avete a disposizione diversi boot manager (shareware e commerciali) che potete scaricare da Internet, ciascuno dei quali inserisce il proprio codice nel Master Boot Record.

Dal celebre Partition Magic in poi, si sono visti numerosi boot manager sul mercato e le recensioni pubblicate su Internet aiutano a scoprire quali prodotti sono da evitare e quali non causano troppi problemi.

Vulnerabilità
L’MBR è la struttura di dati più importante del disco; se viene corrotta per effetto di malfunzionamenti, errori, virus o altro, si rischia di non poter più accedere al disco e di non poter riavviare il sistema operativo.

Lo stesso è vero per i boot record delle partizioni: se danneggiati, possono impedire l’accesso alla partizione e al sistema operativo che vi fosse installato.

Due modi comuni per contrarre un’infezione virale sono avviare il computer da un floppy disk infetto o eseguire un programma infetto.

Windows XP durante il normale funzionamento è protetto da virus di MBR e boot record, ma non è protetto nella fase di avvio, prima che XP attivi i driver di disco in modalità protetta. Inoltre XP è vulnerabile nel caso il PC sia utilizzato anche in DOS o Windows 9x/Me.

Come sempre, quando si tratta di sicurezza, la prevenzione è di gran lunga più efficace ed economica rispetto alla riparazione per disinfestare un sistema compromesso e recuperare, se possibile, dati, dischi e partizioni.

Oltre alla necessità di avere in funzione un antivirus quando si immettono file ed e-mail nel computer, si devono prendere precauzioni nel download ed esecuzione di programmi di origine non garantita e nell’uso degli allegati di posta.

 

Strumenti
Una delle precauzioni che potete adottare per proteggere l'MBR è farne una copia di backup, così che, in caso di necessità, possiate verificare se è corrotto ed eventualmente ripristinarlo.Anche una copia stampata è meglio di niente.

Togliersi il dubbio sull'integrità del MBR è un primo passo per orientare la diagnosi del problema. Lo stesso si può fare con i boot record delle partizioni.

Ci sono molti strumenti disponibili, sia gratuiti sia shareware o commerciali, che permettono di visualizzare, salvare, ripristinare e modificare i settori di boot e in generale qualsiasi settore di disco.

Il più "chiaro" e semplice da usare se sapete come è fatto un MBR è il Boot Sector Explorer che potrete trovare sul sito della Diamondcs e scaricarlo in versione assolutamente freeware.

DiamondCS Boot Sector Explorer consente di leggere e scrivere sui settori di boot in maniere facile e veloce. Può anche esaminare aItri dipositivi diversi dagli hard disk come ad esempio CD-ROMs, DVDs, penne  USB e altro.

Alcuni trojans, worms, viruses, rootkits e vari altri tipi di malware è noto che vanno a modificare i settori di avvio, ma grazie a questo piccolo strumento noi potremo fare un backup dei settori originali e ripristinarli in un eventuale infezzione.

Da Microsoft potete scaricare Sector Inspector, un support tool che visualizza informazioni sugli hard disk e il contenuto dei settori in formato esadecimale. Lo scaricate da questo indirizzo e lo eseguite in finestra prompt.

Per vedere l'MBR del primo disco fisico, il comando è Secinspect -dchs PhysicalDrive0 0/0/1 1 (disco 0, cilindro 0, testina 0, settore 1, un settore visualizzato).

Uno strumento facile da usare per salvare e ripristinare l'MBR è MBR Wizard, scaricabile da http://mbr.bigr.net/ e disponibile in due versioni, una per DOS e una eseguibile in finestra prompt di Windows. Tra le sue funzioni, permette di attivare/disattivare una partizione.

Uno strumento analogo per operare sull'MBR è MBR Tool (www.diydatarecovery.nl/mbrtool.htm).

Un'utility gratuita per esplorare in lettura una partizione NTFS da DOS, è NTFS Reader, scaricabile gratuitamente da www.ntfs.com/products.htm.

Non c'entra con i boot record, ma quando Windows non parte per problemi di boot o di partizioni non accessibili, vorrete verificare se i vostri file sono ancora in qualche modo accessibili.

Non consigliamo di usare utility, come fixmbr, che sembrano promettere di riparare l'MBR, perché possono causare guai peggiori.

In ogni caso fate prima un backup dell'MBR, così da poterlo ripristinare se l'utility ha peggiorato le cose (per esempio cancellando la partition table).

Anche Fdisk /mbr dovrebbe ripristinare il master boot code senza toccare la partition table, ma se per qualche motivo gli ultimi due byte AA55 sono stati cancellati, la partition table viene spazzata via.

Per ripristinare l'mbr per windows usando linux leggere questa guida.

Varianti
Il MBR non è presente su media come floppy disk e dischi Zip, dove il volume inizia direttamente con il settore di boot della partizione.

Inoltre, quanto abbiamo descritto sopra si applica ai dischi di base, supportati dalle vecchie versioni di Windows e da XP Home Edition.

Windows 2000 e XP Professional supportano anche i dischi dinamici, per i quali cambia la struttura della partition table.

I dettagli sulla struttura dei file system e dei settori di boot sono descritti nel Resource Kit di Windows XP, che esiste sia come libro di Microsoft Press, sia in versione on line.

Il capitolo su dischi e file system si trova a questa pagina.

Ultimo aggiornamento ( Lunedì 27 Luglio 2009 06:03 )  
Loading

Login