preLINUX

Master Boot Record

Il primo settore di un disco, i primi 512 byte, sono estremamente importanti: la tabella delle partizioni, che permette l'accesso al disco, è registrata in questo settore. Oltre alla tabella delle partizioni nel MBR è registrato il Master Boot Code: un piccolo programma che viene eseguito dal BIOS per avviare la fase di boot. Questo piccolo programma eventualmente è in grado di trasferire l'esecuzione al programma di boot registrato nel settore iniziale della partizione usata per l'avvio.

Chiaramente il meccanismo evidenziato permette, anche in presenza di più partizioni, l'avvio di un solo sistema operativo. Se nel computer sono installati più sistemi operativi il minimo che si richiede è avere la possibilità di scegliere quale sistema avviare fra quelli installati nel disco. Per provvedere a questa necessità sono stati sviluppati i boot-loaders. Un boot-loader è un programma che all'avvio della macchina mostra un menù dei sistemi operativi installati e, in rapporto alla scelta effettuata dall'utente, cede il controllo al sistema scelto. Il boot loader installato da Linux è GRUB (GRand Unified Bootloader).

In ragione dell'importanza del MBR è opportuno effettuare copie di backup in modo da ripristinarlo in caso di malfunzionamenti:

# dd if=/dev/sda of=mbr.out count=1 bs=512

Il comando dd (Disk Dump) permette di ottenere una copia esatta, byte per byte, di una parte di un dispositivo (dumping del dispositivo). Il parametro if (Input File) specifica il file da dove copiare (il file /dev/sda associato all'HD), of (Output File) rappresenta il file destinazione, dove copiare (in questo caso un file che sarà salvato nella directory corrente e che avrà nome mbr.out). I successivi parametri indicano la quantità di byte da copiare: 1 blocco (count=1) di 512 byte (bs, Block Size), giusto la dimensione del MBR.

# sfdisk -d /dev/sda > sda.out

Il parametro -d di sfdisk permette di effettuare un dumping della tabella delle partizioni quando esistono partizioni logiche e le informazioni relative non sono presenti nel MBR. L'output potrà essere successivamente utilizzato da sfdisk per il ripristino.

I due piccoli file generati possono essere conservati in un unità di backup e, in caso di necessità, la situazione precedente può essere ripristinata utilizzando gli stessi comandi:

# dd if=mbr.out of=/dev/sda
# sfdisk < sda.out

Non è inutile sottolineare il significato delle ultime due operazioni descritte: si sta sovrascrivendo una parte importante del disco di avvio e si sta manipolando la tabella delle partizioni. È necessario porre la massima attenzione quando si usano comandi di tale importanza: eventuali errori commessi avrebbero, come conseguenza, effetti che comprometterebbero la funzionalità del disco.

Tutti i comandi specificati, come evidenziato dal prompt #, vanno impartiti con i diritti di root.

http://ennebi.solira.org