dd est un outils puissant sous linux qui remplacera largement les Ghost et autre alcohol 120% ou deamon tools.
Voici comment faire une image d’un disque dur avec l’utilitaire dd
dd if=/dev/hda1 of=/tmp/fichier_image
Avec ce code, vous venez de mettre l’intégralité de la partition hda1 dans le fichier fichier_image
Pour faire l’image d’un disque entier spécifiez /dev/hda sans indiquer le numéro de la partition.
Vous venez de scratcher plusieurs fichiers et votre système d’exploitation ne fonctionne plus !!
Il est temps de restaurer votre sauvegarde avec cette commande.
dd if=/tmp/fichier_image of=/dev/hda1
Il est évident que l’image du disque ne doit pas se trouver sur le disque lui-meme.
C’est la que ca devient fun, imaginons que vous avez scratché un fichier et que vous voulez récupérer seulement ce fichier sans tout restaurer.
Tout va bien se passer si vous avez fait l’image d’une partition.
Créer un répertoire vide afin de monter l’image sur ce répertoire.
Monter l’image sur ce répertoire avec la commande suivante.
mount -o loop /tmp/fichier_image /tmp/repertoire
Copiez ensuite le ou les fichiers que vous désirez.
N’oubliez de démonter l’image.
umount /tmp/repertoire
Dans le cas de la récupération d’un fichier sur une image de disque entier, nous allons devoir procéder à plusieurs étapes.
Avant tout, regardons les infos du disque dont nous avons fait l’image
rachael:/home/jasonb# fdisk -l Disk /dev/hda: 4871 MB, 4871301120 bytes 255 heads, 63 sectors/track, **592** cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 463 3719016 7 HPFS/NTFS /dev/hda2 464 592 1036192+ 5 Extended /dev/hda5 464 479 128488+ 82 Linux swap /dev/hda6 480 592 907641 83 Linux
Retenons le nombre de cylindre qui est de 592 dans cet exemple.
Voyons maintenant les partitions disponibles dans notre fichier image avec la commande suivante :
faith:/home/jasonb# fdisk -C 592 /nebula/hda_dd.image Command (m for help): **p** Disk /nebula/hda_dd.image: 0 MB, 0 bytes 255 heads, 63 sectors/track, 592 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /nebula/hda_dd.image1 * 1 463 3719016 7 HPFS/NTFS /nebula/hda_dd.image2 464 592 1036192+ 5 Extended /nebula/hda_dd.image5 464 479 128488+ 82 Linux swap /nebula/hda_dd.image6 480 592 907641 83 Linux
Nous devrions avoir ici la même chose que lorsque nous regardions la structure du disque dur physique.
Maintenant, pour pouvoir monter une partition issue de l’image, nous devons savoir à partir de quel octet la partition commence.
faith:/home/jasonb# fdisk -l -u -C 592 /nebula/hda_dd.image Disk /nebula/hda_dd.image: 0 MB, 0 bytes 255 heads, 63 sectors/track, 592 cylinders, total 0 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System /nebula/hda_dd.image1 *63 7438094 3719016 7 HPFS/NTFS /nebula/hda_dd.image2 7438095 9510479 1036192+ 5 Extended /nebula/hda_dd.image5 7438158 7695134 128488+ 82 Linux swap /nebula/hda_dd.image6 7695198 9510479 907641 83 Linux
Cet offset doit être en octet, nous devons donc prendre le nombre de la colonne Start et le multiplier par 512.
Dans notre exemple nous allons monter l’image linux.
7695198 * 512 = 3939941376
faith:/usr/src# mount -o loop,offset=3939941376 -t ext3 /nebula/hda_dd.image /mnt