Recuperare un installazione Linux o Windows

La tecnica più utilizzata in ambiente domestico è quella di effettuare la clonazione del disco attraverso vari software alcuni commerciali e altri open source. 
Un software commerciale e utilizzato è Acronis True Image che permette di effettuare la clonazione da un hard disk ad un altro in poco tempo. Questo software e altri della stesa tipologia hanno il pregio della rapidità, però quando cambia la dimensione del disco nuovo, se utilizziamo il boot loader grub di Linux all’installazione del nuovo disco, avremo un sistema che non si avvia.
Questo perché sono cambiate le dimensioni delle partizioni, e quindi il boot loader grub non riesce a determinare la posizione del superblocco del filesystem Ext3, Ext4 di Linux. 
Per ovviare a questo problema è possibile utilizzare una tecnica rudimentale ma efficace.
Avvio il computer con disco cd-rom di ubuntu, debian, fedora in modalità live ovvero senza modificare alcuna installazione.
Supponendo di avere la seguente situazione di partizioni (giusto come esempio)

Disco sda (primo disco sata)

Partizione sda1 Windows 7/8 Recovery partition ( ad esempio presnee nei portatili)

Partizione sda5 Partizione di Linux di root quella indicata con /

Partizione sda6 Partizione ntfs di Windows il nosrto disco C: per intenderci

Partizione sda7 Partizione ntfs aggiuntiva di Windows il nostro disco D:

Partizione sda2 Linux Swap

L’elenco delle partizioni posso comunque ricavarlo dando nel terminale di Linux il comando:

fdisk -l

devo analizzare la partizione sda5 di Linux. In questo caso la cartella di boot di Linux è nella partizione sda5, ma potrebbe succedere di avere una partizione di boot separata (ad esempio nella maggioranza delle installazioni server).
Ora dopo aver avviato Linux da cd, apro il terminale e da linea di comando lancio i seguenti comandi:

sudo mkdir /tmp/disco

Sto creando il punto di montaggio della root di Linux sul disco fisso

sudo mount /dev/sda5 /tmp/disco

Sto montando la partizione di root sulla cartella /tmp/disco

sudo mount -t bind /dev /tmp/disco/dev

sudo mount -t bind /proc /tmp/disco/proc

sudo mount -t bind /sys /tmp/disco/sys

Questi comandi non fanno altro che montare l’elenco dei device, della cartella virtuale dei device /proc e /sys non sulla cartella root della live cd, ma sulla cartella root del disco quella che è presente in sda5.

Poi sudo chroot /tmp/disco
con questo comando traslo la cartella / sul mio punto di montaggio /tmp/disco, ovvero la cartella di root deve essere automaticamente mappata come punto di ingresso su /tmp/disco.
A questo punto lancio

sudo grub-install /dev/sda

sudo update-grub2

sudo grub-install-recheck /dev/sda

Procediamo con i comandi in sequenza

cd –

sudo umount /tmp/disco/dev

sudo umount /tmp/disco/proc

sudo umount /tmp/disco/sys

sudo umount /tmp

sudo reboot

Se tutto è andato a buon fine al riavvio dovrebbe presentarsi di nuovo il boot loader. 
E’ utilie notare che questo può essere fatto ogni qualvolta per un motivo o per un altro vi è un problema dell’avvio del boot loader a patto che non sia LILO (il vecchio linux loader ormai in disuso).
In alternativa è possibile utilizzare un software opersource per la clonazione che è systemrescuecd o clonezilla (quest’ultimo svolge clonazioni anche in rete).

Riferimenti bibliografici:

Sito di Linux Ubuntu

Sito di clonezilla