Malgrado qualcuno ritenesse che quell'acronimo fosse l'abbreviazione di Make Boot Record (del tutto lecita), in realtà racchiudeva (e racchiude tuttora) in sè un concetto ben più importante e fa riferimento alla struttura principe di ogni disco rigido: il Master Boot Record.
Il Master Boot Record rappresenta una struttura importantissima del nostro disco rigido. Basti pensare che se un semplice virus s'insinua al suo interno, potrebbe tranquillamente impedire il corretto avvio della macchina. In passato, quando mi dilettavo a studiare queste strutture con il mio PC, avevo costruito un piccolo programmino di test in C++ che sovrascriveva opportunamente i primi 3 byte di questo settore, provocando un riavvio continuo del sistema. A chiunque non avesse chiaro come fosse strutturato un disco rigido poteva sembrare impossibile ripristinare le condizioni della propria macchina senza riformattare tutto, ma in realtà , bastava un semplice comando per mettere il tutto a posto.
In questo articolo, dunque, non ci soffermeremo approfonditamente sui dettagli "tecnici" che riguardano il significato di termini come testine, cilindri, cluster e quant'altro ruoti attorno all'argomento perché credo siano più o meno conosciuti da tutti. Tuttavia vedremo cosa s'intende per MBR e quali strumenti abbiamo a disposizione per ricostruirlo.
Il Master Boot Record
Il Master Boot Record, com'è facile intuire, costituisce il primo settore assoluto di ogni disco rigido. Il termine assoluto è necessario poichè molti confondono spesso questo settore con il Boot Record di ogni partizione che, in maniera analoga, costituisce il primo settore di ogni partizione.
Per essere ancora più precisi, possiamo sintetizzare ancora in questo modo:
* MBR: acronimo di Master Boot Record. Costituisce il primo settore di ogni disco rigido ed è localizzato alle coordinate Cilindro 0, Testina 0, Settore 1;
* BR: acronimo di Boot Record. Rappresenta il primo settore di ogni partizione presente sul proprio disco rigido. Naturalmente, la posizione assoluta di ogni BR dipende dalle partizioni presenti.
La struttura di un MBR è sostanzialmente simile a quanto riportato in figura:

Malgrado possa sembrare complicato comprendere la sua struttura, in realtà , esso è composto solo da due parti:
* Master Boot Loader (o Master Boot Record Code).
* Tabella delle partizioni (evidenziata in rosso).
Il primo blocco di byte, i primi 446 per l'esattezza, rappresentano il Master Boot Loader, un piccolo programma in grado di leggere la tabella delle partizioni, individuare quella di boot e "saltare" al suo Boot Record per avviare il sistema operativo installato. Nel caso di più dischi rigidi presenti sullo stesso sistema, va sottolineato che tale porzione di codice è utilizzata soltanto laddove esista la system partition.
La tabella delle partizioni è costituita da una struttura di 4 record, ciascuno di 16 byte, contenente informazioni sulle partizioni presenti sul disco rigido. In particolare:
* Partizione 1: offset 0x01BE (446)
* Partizione 2: offset 0x01CE (462)
* Partizione 3: offset 0x01DE (478)
* Partizione 4: offset 0x01EE (494)
Accanto ad ogni record è presente, in formato esadecimale e decimale, l'offset rispetto all'inizio del settore.
La tabella delle partizioni termina sempre con due byte, 0x55AA.
Chiunque volesse approfondire l'argomento, indagando "direttamente" sul proprio disco rigido e visualizzando il contenuto dei settori in esso presenti, può utilizzare l'utility DiskProbe a corredo del sistema operativo o Sector Inspector mostrata più avanti.
Prima di vedere in che maniera ripristinare un MBR corrotto, è importante aver compreso bene quando il problema è da ricercare nell'MBR o quando va ricercato altrove. Infatti, una delle difficoltà principali è proprio l'individuazione del punto in cui il sistema si blocca. Nel caso si riscontrassero problemi con il Master Boot Record, possiamo affidarci all'utility FIXMBR della Recovery Console.
Ripristinare l'MBR
Per poter ripristinare un Master Boot Record corrotto, esistono vari sistemi che Microsoft mette a disposizione. Il primo tool da considerare è FIXMBR e può essere utilizzato soltanto dopo aver avviato la modalità Recovery Console di Windows.
L'utilizzo di FIXMBR è piuttosto semplice da utilizzare:
FIXMBR
dove per device s'intende il disco rigido sul quale operare. Nel caso di un solo disco rigido, il comando sarà :
FIXMBR \Device\Hardisk0
Purtroppo, però, FIXMBR non consente di ripristinare una tabella delle partizioni corrotta. Infatti, la sua area di validità , è semplicemente quella delimitata dai primi 446 byte dell'MBR (vale a dire l'intero settore a meno della Partition Table).
Una buona strategia che andrebbe adottata sempre è, quindi, quella di crearsi una copia aggiornata dell'intero MBR, comprensivo anche di PT per poterla ripristinare al momento opportuno in qualche maniera. Un utilissimo tool in grado di aiutarci in queste ed altre operazioni, è Sector Inspector, prelevabile dal sito Microsoft.
Ecco di seguito la schermata con l'elenco delle opzioni:
Sector Inspector Copyright Microsoft Corporation 2003
===========================================================================
Command Line Help
===========================================================================
Display Help Screen
SECINSPECT.EXE -h
SECINSPECT.EXE -?
Generate a standard report that includes a complete hex dump.
SECINSPECT.EXE
Generate Report with no hex dump information.
SECINSPECT.EXE -n
Dump a sector range using 64 bit LBN.
SECINSPECT.EXE -dsec DeviceName LBN NumberOfSectors
Example: SECINSPECT.EXE -dsec \\.\c: 63 2
Dump a sector range using Cylinder, Head, Sector notation.
SECINSPECT.EXE -dchs PhysicalDrive C/H/S NumberOfSectors
Example: SECINSPECT.EXE -dchs PhysicalDrive0 5/121/12 30
Dump a file in hex.
SECINSPECT.EXE -dfile FileName
Save a sector range as a binary .DSK file.
SECINSPECT.EXE -backup DeviceName FileName LBN NumberOfSectors
Example: SECINSPECT.EXE -backup c: d:\backup.dsk 0 63
Restore a sector range from a binary .DSK file.
SECINSPECT.EXE -restore DeviceName FileName LBN [CONFIRM]
Example: SECINSPECT.EXE -restore PhysicalDrive2 d:\backup.dsk 0
Example: SECINSPECT.EXE -restore c: d:\backup.dsk 0 CONFIRM
Display FILETIME as UTC time
SECINSPECT.EXE -TIME 64BitHex
===========================================================================
In particolare, con il comando:
SECINSPECT -backup PhysicalDrive0 c:mbr.dsk 0 1
creiamo un file binario mbr.dsk (visualizzabile anche attraverso DiskProbe) contenente l'intero Master Boot Record della macchina e ripristinabile attraverso l'uso del parametro restore di Sector Inspector.
Ecco un esempio sull'output ottenuto lanciando il comando precedente:
Sector Inspector Copyright Microsoft Corporation 2003
===========================================================================
Performing backup of sector range.
Source Device : \\.\PhysicalDrive0.
Destination file : c:mbr.dsk.
Start LBN : 0
Number of sectors : 1
Granularity : 1
Sector Inspector is attempting to lock the volume \\.\PhysicalDrive0.
Backing up requested sector range.
.
1 of 1 sectors were backed up.
Nessun commento:
Posta un commento