Guida al MBR master boot record

Transcript

Guida al MBR master boot record
Guida al MBR master boot record
Scritto da Administrator
Venerdì 29 Agosto 2008 08:23 - Ultimo aggiornamento Lunedì 27 Luglio 2009 06:03
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).
1/9
Guida al MBR master boot record
Scritto da Administrator
Venerdì 29 Agosto 2008 08:23 - Ultimo aggiornamento Lunedì 27 Luglio 2009 06:03
La parte finale dell'MBR contiene i 64 byte della partition table (tabella delle partizioni) e una
“firma” di due byte con valore AA55 h (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.
2.
3.
4.
scansione della partition table alla ricerca della partizione attiva
localizzazione del settore iniziale della partizione attiva
caricamento in memoria di una copia del settore di boot della partizione attiva
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 dri
ve 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.
2/9
Guida al MBR master boot record
Scritto da Administrator
Venerdì 29 Agosto 2008 08:23 - Ultimo aggiornamento Lunedì 27 Luglio 2009 06:03
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
AA55 h dell'MBR appaiono come 55AA h 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.
3/9
Guida al MBR master boot record
Scritto da Administrator
Venerdì 29 Agosto 2008 08:23 - Ultimo aggiornamento Lunedì 27 Luglio 2009 06:03
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
4/9
Guida al MBR master boot record
Scritto da Administrator
Venerdì 29 Agosto 2008 08:23 - Ultimo aggiornamento Lunedì 27 Luglio 2009 06:03
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_MACHINESYSTEMMountedDevices e
HKEY_LOCAL_MACHINESYSTEMControlSet001EnumSTORAGEVolume.
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
5/9
Guida al MBR master boot record
Scritto da Administrator
Venerdì 29 Agosto 2008 08:23 - Ultimo aggiornamento Lunedì 27 Luglio 2009 06:03
causano troppi problemi.
Vulnerabilità
L’MBR è la struttura di dati più importante del disco; se viene corrotta per effetto di malfunzion
amenti, 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
6/9
Guida al MBR master boot record
Scritto da Administrator
Venerdì 29 Agosto 2008 08:23 - Ultimo aggiornamento Lunedì 27 Luglio 2009 06:03
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 h
ttp://mbr.bigr.net/
7/9
Guida al MBR master boot record
Scritto da Administrator
Venerdì 29 Agosto 2008 08:23 - Ultimo aggiornamento Lunedì 27 Luglio 2009 06:03
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.ht
m
).
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.
8/9
Guida al MBR master boot record
Scritto da Administrator
Venerdì 29 Agosto 2008 08:23 - Ultimo aggiornamento Lunedì 27 Luglio 2009 06:03
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 .
9/9