====== Les images avec dd ======
dd est un outils puissant sous linux qui remplacera largement les Ghost et autre alcohol 120% ou deamon tools.
===== Faire une sauvegarde =====
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.
===== Faire une restauration =====
==== Restauration intégrale ====
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.
==== Restauration partielle ====
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.
=== à partir d'une image d'une partition ===
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
=== à partir d'une image de disque dur entier ===
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