mercredi 11 novembre 2015

Cloner un disque vers une image disque plus petite - méthode rapide et dangereuse

Voici une méthode pour cloner un disque vers une image disque plus petite que la taille du disque sauvegardé pour la restaurer sur un disque de même taille ou plus grand.

Attention : La procédure décrite ci-après peut ne pas fonctionner dans tous les cas, il faut faire des tests de restauration pour éviter des pertes de données. Pour plus de fiabilité, suivre cette autre méthode.

Par défaut la commande dd crée une image disque de la taille totale du disque donc si on a une clé USB de 32 Go avec seulement 500 Mo utilisé, l'image disque fera quand même 32 Go, ce n'est pas très pratique si on veut stocker l'image disque.

Pour éviter cela, on utilise la commande dd en utilisant un paramètre count plus grand que la somme de la taille de toutes les partitions (sauf la dernière) + la taille de l'espace disque utilisé de la dernière partition + quelques Mo de sécurité.

Le disque à copier est /dev/sda (une carte SD de 32 Go avec une partition de 65 Mo et une autre de 30 Go avec environ 500 Mo utilisés.

Pour obtenir une image disque de 600 Mo, on utilise la commande :
dd if=/dev/sda of=/mnt/imagedisque.img bs=1M count=600

bs=1M est la taille de bloc en Mo (peut être en octets si on ne met pas le M).
count est le nombre de blocs de l'espace disque à copier (si bs est 1 Mo, count indique la taille en Mo).

Pour connaitre la valeur de count :

Afficher la liste des partitions pour connaitre leur taille :
root@debian:/home/user# fdisk -l /dev/sda
Disk /dev/sda: 29,3 GiB, 31440502784 bytes, 61407232 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0005bdc5

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 133119 131072 64M b W95 FAT32
/dev/sda2 133120 61407231 61274112 29,2G 83 Linux

Monter la dernière partition (ici sda2) et afficher la taille de l'espace disque utilisé, puis démonter la partition :
root@debian:/home/user# mount /dev/sda2 /media/
root@debian:/home/user# du -hs /media/
459M /media/
root@debian:/home/user# umount /media/

Pour connaitre la valeur de count, on additionne donc les 64 Mo de la partition 1, les 459 Mo de la partition 2 et on ajoute quelques Mo de sécurité, soit 600 Mo.

Résultat :
On obtient une image disque de 600 Mo qu'on peut restaurer sur un disque de même taille ou plus grand (mais pas plus petit car sinon la taille des partitions dépasse la taille du disque et cela corrompt le système de fichiers rendant le disque inutilisable) soit avec dd sous Linux soit avec Win32diskimager sous Windows.

Remarque : On peut aussi copier directement un disque sur un autre avec dd et utiliser count pour limiter la copie à l'espace utilisé et ainsi réduire le temps de copie.
dd if=/dev/sda of=/dev/sdb bs=1M count=600

Aucun commentaire:

Enregistrer un commentaire