Backup e ripristino Master Boot Record (MBR)

Informatica

Questa pagina contiene informazioni importanti su come fare il backup e come ripristinare il Master Boot Record (MBR) dei dischi installati. Questo ci permette di ripristinare la tabella delle partizioni anche dopo che è stata corrotta o che è stata rimossa o modificata per errore, e ci permette anche di ripristinare il boot loader (qualsiasi boot loader). Come sempre, il sistema di riferimento è GNU/Linux.
Lo schema di partizionamento è quello PC BIOS, usato per la maggior parte dei computer oggi, ma che è diverso dallo schema di partizionamento usato nei computer Apple, ad esempio.

Non sono in grado di dire se quanto scritto in questa pagina sia applicabile ad altri schemi di partizionamento, ed in particolare non so se vale per i sistemi Apple Mac e Sun Solaris.

Il master boot record è il primo settore (512 byte) di un hard disk e contiene queste informazioni, così suddivise:

446 bytes : codice di boot/boot loader
 64 bytes : tabella partizioni
  2 bytes : "magic number 55AA"

output di fdisk -l

Un modo per fare un backup dello stato delle partizioni è annotarsi l'output del comando fdisk -l.

Disco /dev/sda: 160.0 GB, 160041885696 byte

255 testine, 63 settori/tracce, 19457 cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte
Identificativo disco: 0xecd7ecd7

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       19457   156288321   8e  Linux LVM

Disco /dev/sdb: 203.9 GB, 203928109056 byte

255 testine, 63 settori/tracce, 24792 cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte
Identificativo disco: 0x55555555

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       24792   199141708+  8e  Linux LVM

Disco /dev/sdc: 251.0 GB, 251000193024 byte

255 testine, 63 settori/tracce, 30515 cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte
Identificativo disco: 0xc01b9939

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sdc1   *           1        3916    31455238+   7  HPFS/NTFS
/dev/sdc2            3917       30515   213656467+   5  Esteso
/dev/sdc5            3917        5874    15727603+  83  Linux
/dev/sdc6            5875       22683   135018261   83  Linux
/dev/sdc7           22684       30241    60709603+   7  HPFS/NTFS
/dev/sdc8           30242       30515     2200873+  82  Linux swap / Solaris

output di fdisk -u -l

In alternativa, si può usare anche l'output di fdisk -u -l.

Disco /dev/sda: 160.0 GB, 160041885696 byte

255 testine, 63 settori/tracce, 19457 cilindri, totale 312581808 settori
Unità = settori di 1 * 512 = 512 byte
Identificativo disco: 0xecd7ecd7

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   312576704   156288321   8e  Linux LVM

Disco /dev/sdb: 203.9 GB, 203928109056 byte

255 testine, 63 settori/tracce, 24792 cilindri, totale 398297088 settori
Unità = settori di 1 * 512 = 512 byte
Identificativo disco: 0x55555555

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   398283479   199141708+  8e  Linux LVM

Disco /dev/sdc: 251.0 GB, 251000193024 byte

255 testine, 63 settori/tracce, 30515 cilindri, totale 490234752 settori
Unità = settori di 1 * 512 = 512 byte
Identificativo disco: 0xc01b9939

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sdc1   *          63    62910539    31455238+   7  HPFS/NTFS
/dev/sdc2        62910540   490223474   213656467+   5  Esteso
/dev/sdc5        62910603    94365809    15727603+  83  Linux
/dev/sdc6        94365873   364402394   135018261   83  Linux
/dev/sdc7       364402458   485821664    60709603+   7  HPFS/NTFS
/dev/sdc8       485821728   490223474     2200873+  82  Linux swap / Solaris

Backup e ripristino della tabella delle partizioni e del boot loader

Metodi possibili:

  • Usando l'output di fdisk ottenuto come sopra (solo tabella delle partizioni), indicando interattivamente i dati.
  • Usando sfdisk e i file di backup (solo tabella partizioni), usando i comandi

    sfdisk -d /dev/hda > hda-pt     # backup
    sfdisk /dev/hda < hda-pt        # ripristino
    
  • Usando dd e i file di backup, usando i comandi

    dd if=/dev/hda of=hda-mbr.bin bs=512 count=1    # backup di tutto l'MBR
    dd if=hda-mbr.bin of=/dev/hda                   # ripristino MBR (bl + pt)
    dd if=hda-mbr.bin of=/dev/hda bs=446 count=1    # ripristino boot loader
    dd if=hda-mbr.bin of=/dev/hda bs=1 count=66 seek=446 skip=446   # ripr pt
    

Ricorda di fare un backup della tabella delle partizioni corrente PRIMA di ripristinare il backup

Fonti di conforto in caso di emergenza:

Partition-Rescue HOWTO MBR - [email protected]

Programmi per analizzare e ripristinare tabelle delle partizioni compromesse

TestDisk
gpart

Trackback URL for this post:

http://gerlos.altervista.org/trackback/443

commenti

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Allowed HTML tags: <a> <em> <strong> <del> <cite> <code> <img> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Linee e paragrafi vanno a capo automaticamente.
  • Insert Flickr images: [flickr-photo:id=230452326,size=s] or [flickr-photoset:id=72157594262419167,size=m].
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.

CAPTCHA
Per provare che sei un visitatore umano, rispondi a questa domanda. È per evitare l'inserimento di messaggi spam.
Image CAPTCHA
Enter the characters shown in the image without spaces, also respect upper and lower case.