Guida al MBR (Master Boot Record

)
All’accensione del computer, viene eseguita una complessa serie di operazioni contenute nel BIOS (Basic Input/Output System). 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. L'MBR viene scritto dal sistema operativo, in occasione della prima formattazione di una partizione del disco oppure dalla console Gestione Disco in Gestione Computer; l'MBR è presente su tutti gli hard disk. 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:  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 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), numero di settori tra inizio del disco e 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 è 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 ne sono 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. Multiboot In generale, se i sistemi operativi installati sono tutti versioni di Windows e sono stati installati nella sequenza corretta (dal più vecchio al più nuovo 2000/XP/Vista e 7), 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 che potete scaricare da Internet, ciascuno dei quali inserisce il proprio codice nel Master Boot Record. 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. 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. Strumenti per l’analisi ed il Backup dell’MBR Il Master Boot Record (MBR) è una sezione di 512 Kb presente sul disco rigido, che viene interpretata subito dopo la lettura del Bios all'accensione del pc, e contiene l'elenco delle partizioni presenti su disco, la loro dimensione e il loro file system. Il MBR è una componente indispensabile per l'avvio del sistema operativo, infatti in caso di corruzione del MBR il sistema operativo non si avvierà più. Sul MBR vengono installati anche eventuali boot manager che consentono di scegliere tra l'avvio di multipli sistemi operativi. Una delle precauzioni che potete adottare per proteggere l'MBR è farne una copia, così che, in caso di necessità, possiate verificare se è corrotto ed eventualmente ripristinarlo. 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 consente di leggere e scrivere sui settori di boot in maniere facile e veloce. Può anche esaminare altri dispositivi 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 infezione. Da Microsoft potete scaricare Sector Inspector, un tool che visualizza informazioni sugli hard disk e il contenuto dei settori in formato esadecimale. Lo scaricate da: http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&familyid=DD3EF22AA586-4079-9489-C3EA14573FC4 e lo eseguite in finestra prompt comandi. 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://firesage.com/download.php. Tra le sue funzioni, permette di attivare/disattivare una partizione. Uno strumento analogo per operare e creare backup dell'MBR è MBR Tool

(www.diydatarecovery.nl/mbrtool.htm). Molti sconsigliano di usare le utility originali di Windows, come fixmbr, che sembrano riparare l'MBR, ma possono causare guai. Nel caso, non avete timore, la procedura è la seguente:  Avviare il PC con il CD di Windows e far avviare l’installazione  Scegliere ripristino installazione (con il tasto R) e poi Ripristino da Console di Emergenza  Dalla console che apparirà digitare: fixboot e poi invio fixmbr e poi invio  Riavviare il PC 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 AA55h sono stati cancellati, la partition table viene cancellata. Come riparare il MBR di Windows utilizzando Linux Ubuntu Se voleste provare a riparare l' MBR (Master Boot Record) di Windows, la pratica più consigliata è quella di utilizzare il disco d’installazione originale di Windows, ma come alternativa potreste utilizzare Ubuntu. Ecco come fare:  Avviare il live CD di Ubuntu.  Andare nel menu Sistema > Amministrazione > Sorgenti Software ed abilitare gli Universal repository.  Aprire il terminale con permessi da amministratore e dare il comando sudo apt-get install ms-sys per installare ms-sys (http://ms-sys.sourceforge.net/)  Rilevare la partizione in cui è installato Windows dando il comando sudo fdisk -l.  La partizione di Windows dovrebbe chiamarsi più o meno /dev/sda1 1 9327 74919096 83 NTFS. Da notare il /dev/sda1 che indica la partizione e la voce NTFS che ne indica il file system.  Dare il comando sudo ms-sys –mbr /dev/sda1 (dove /dev/sda1 sta per la partizione, quindi potreste doverlo cambiare) per riparare il MBR.  Riavviare il PC. SITOGRAFIA: Note sul bios (http://www.compago.it/manuali/35-utilita/147-note-sul-bios.html ) Codici errore bios (http://www.compago.it/manuali/35-utilita/216-codici-errore-del-bios.html ) MBR (http://www.compago.it/index.php/manuali/34-linux/64-master-boot-record-mbr ) Boot.ini (http://www.compago.it/manuali/39-windows/93-guida-al-bootini.html ) Sector Inspector (http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&familyid=DD3EF22AA586-4079-9489-C3EA14573FC4 ) MBR Wizard (http://firesage.com/download.php ) MBR Tool (www.diydatarecovery.nl/mbrtool.htm ) MS-SYS (http://ms-sys.sourceforge.net )