Cerca nel mio blog

Avviso


APPUNTIDILINUX E' STATO SPOSTATO SU UN NUOVO SITO: WWW.APPUNTIDILINUX.IT

QUESTO RIMMARRÀ COME ARCHIVIO STORICO DEI POST DALLA NASCITA DEL PROGETTO AD OGGI MARZO 2016.

GRAZIE A TUTTI VI ASPETTO SUL NUOVO SITO.
ROBERTO LISSANDRIN

sabato 27 giugno 2009

Salvare e ripristinare il master boot record

POST INDEX

IL MASTER BOOT RECORD

Se si reinstalla uindous su un sistema dual boot con Linux, al riavvio troviamo la spiacevole sorpresa di non trovare più il menù di avvio del boot-loader Grub. Linux però è sempre presente, si è solo sovrascritto l'MBR dell'Hard Disk.

Il Master Boot Record non è altro che i primi 512 byte del disco rigido, della pen-drive Usb o in generale di una memoria di massa.

Questo piccolo ma importante settore del disco è fondamentale in quanto contiene sia la tabella delle partizioni sia il riferimento al file di avvio, ossia a quale programma deve essere caricato in memoria quando il Bios, finite le operazioni di inizializzazione del sistema, deve passare il controllo al sistema operativo.

Nell'installazione dei sistemi microsoft l'MBR viene sempre sovrascritto per far si che si avvi direttamente il sistema microsoft. Ad essere precisi quello che viene sovrascritto sono i primi 446 byte dell'MBR. Per risolvere il problema sopra descritto si può procedere in 2 modi:

  1. Salvare l'MBR prima di [re]installare uindous per poi ripristinare il vecchio MBR
  2. Ricreare l'MBR usando la shell di GRUB

Per seguire la politica del Backup & Restore c'è un unico vincolo fondamentale: nell'installazione di uindous o comunque dopo aver salvato l'MBR non bisogna modificare le partizioni. Viceversa il disco dopo il ripristino in questo caso di un MBR sbagliato, poichè esso contiene anche la tabella delle partizioni, risulterà inusabile.

Detto questo dalla shell di linux basta un solo comando per salvare l'MBR:
# dd if=/dev/sda of=/percorso/sda.mbr bs=512 count=1

Dove:

  1. dd è il comando per la copia a basso livello, ossia byte per byte.
  2. if=/dev/sda indica che il device su cui leggere è /dev/sda, quindi potrebbe essere diverso nel vostro caso, forse /dev/hda, /devsdb ma in ogni caso senza numeri finali (es. no /dev/sda2) perchè questi indicano le singole partizioni, non l'intero disco.
  3. of=/percorso/sda.mbr è il percorso dove salvare il contenuto dell'MBR che il comando andrà a leggere, il nome del file sda.mbr è solo un esempio, non importa ne che abbia estensione ".mbr" ne che si chiami così, l'importante è che ricordate dove lo mettete, magari meglio su una pen-drive USB.
  4. bs=512 indica il numero di byte da copiare, ossia 512
  5. count=1 vuol dire che la lettura va ripetuta una sola volta.

Fatto questo si può riavviare il pc e ritrovare all'avvio il menù di Grub.

Si tenga presente che salvando tutto l'MBR si salva anche la tabella delle partizioni, quindi se questa viene modificata successivamente non si potrà più ripristinare l'MBR dal backup precedente, ma bisognerà farlo inserendo bs=446, ossia solo la parte relativa al settore d'avvio.

Fonte: Scritto da E. Mottola

Esempi

per salvare:


sudo dd if=/dev/(partizione del disco es.hda o sda) of=mbr.img bs=512 count=1

per ripristinare:

sudo dd if=mbr.img of=/dev/hda/(partizione del disco es.hda o sda) 


esempio:

lissa@lissa-desktop ~ $ sudo dd if=/dev/sda of=mbr.img bs=512 count=1[sudo] password for lissa:
1+0 record dentro
1+0 record fuori
512 byte (512 B) copiati, 0,000125344 s, 4,1 MB/s
sudo dd if=mbr.img of=/dev/(partizione disco) bs=512 count=1

Si consiglia salvataggio della immagine dell'mbr anche su penna usb

Roberto Lissandrin