Adrien's log

Yet Another Note Pad

Une image de disque avec dd

by adrien on 23 janvier 2011

Il est où dd ?

dd est un petit programme qui permet de faire la copie d’un fichier, d’une partition, voir d’un disque dur. On peut ainsi s’en servir pour créer une image ISO d’un CD/DVD, pour remplacer son disque dur en copiant l’ensemble des données ou encore réaliser une image du disque dur que l’on pourra restaurer en cas de crash de ce dernier.

Image d’un disque ? Facile !

De base, dd a besoin de deux paramètres : la source et la destination. Ainsi, la copie d’un CD se fera via la commande suivante :

dd if=/dev/cdrom of=/tmp/cd.iso

Et l’espace libre ?

Le problème de dd, c’est quand on veut copier un disque dur que l’on s’en aperçoit, c’est qu’il va copier absolument tout le disque, espace libre comprit. Un disque d’1 To occupé à 5% vous donnera un fichier de 1 To, c’est plutôt gênant tout cet espace disque gâché.

Mais heureusement, il y a une ruse ! Bon, elle est un peu tordu certes mais elle fonctionne très bien. Il s’agit de remplir l’espace libre sur le disque à copier par des zéros puis de faire passer la sortie de dd vers un logiciel de compression (style gzip). Voilà la procédure complète afin de créer une image disque ayant un faible encombrement :

Premièrement, mettons tous les bits de l’espace libre à zéro. Pour cela, on va créer un énorme fichier rempli de zéros (avec dd toujours) :

dd if=/dev/zero of=/tmp/zero.tmp

Cette commande peut prendre du temps suivant la place qu’il vous reste sur votre disque dur.

La prochaine commande sera la suppression du fichier que nous venons de créé :

rm /tmp/zero.tmp

Ensuite, nous pouvons enfin créé notre image :

dd if=/dev/sda | gzip -c > sda.img.gz

Cette commande prends comme source le fichier représentant votre disque dur (dans mon cas, sda), envoie la sortie de dd vers gzip (grâce au |), ce dernier stock ce qu’on lui envoie au format gz dans le fichier sda.img.gz

Attention : Sauvegarder l’image d’un disque sur ceux même disque est une expérience à ne pas tenter. En effet, arrivé à l’endroit où l’image est stockée, dd se retrouve bloqué face à un fichier qui grossi indéfiniment : l’image en question.

Quand l’inévitable arrive …

Pour la restauration d’une image, il faut faire la commande inverse :

gzip -d sda.img.gz -c | dd of=/dev/sda

Ici, gzip avec le paramètre -d décompresse notre image et le paramètre -c indique à gzip qu’il doit écrire sur la sortie standard, enfin le | redirige vers dd le flux de gzip afin qu’il puisse écrire le contenu de l’image vers la destination.

Voilà, vous savez tout sur la création d’image disque allégé en matières grasses.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *