Menu Fermer

Comment créer une image système avec Linux avec dd

Dans cet article, nous allons voir comment créer une image système sous GNU/Linux.
Cette image système permet de sauvegarder vos partitions de disques incluant Windows.
Pour rappel, vous pouvez utiliser Clonezilla pour créer des images disques, ici l’idée est d’en créer manuellement avec la commande dd.

Ce tutoriel vous explique comment créer une image système avec Linux avec dd.

Comment créer une image système avec dd sur Linux pour restaurer des partitions ou disques

Introduction à la commande dd

La commande dd (data dump) permet d’effectuer des copies de disques bloc à bloc, mais elle peut aussi être utilisé pour copier les bloc vers un fichier.
On peut donc sauvegarder une partition ou un disque vers un fichier iso pour ensuite à partir du fichier recopier les données vers le disque.
Cela permet donc d’effectuer une sauvegarde des disques, notamment, il était question de cette commande dd sur la page : comment cloner son disque dur.

La syntaxe de la commande dd est la suite :

dd if=<source> of=<cible> bs=<taille des blocs>

On indique donc la source (partition ou disque) avec if et la cible avec of, dans notre cas, ce sera un fichier.
La taille des bloc joue sur la vitesse de copie et est liée au cache de votre disque dur, il faut respecter la taille des blocs de la partition.

Dans cet exemple, on utilisera un Live CD Ubuntu mais vous pouvez utiliser n’importe quelle distribution, dd est embarqué sur toutes les distribution.
Si vous êtes en dual-boot Windows / Linux, vous pouvez effectuer la sauvegarde depuis votre Linux.

Comment créer une image système avec Linux

Créer et restaurer une image système sur Linux

Sur la machine testée, les disques sont les suivants :

  • /dev/sda est le disque 0 qui contient une installation de Windows, avec une partition principale /dev/sda1 de 60 Go non pleine, une partition EFI (100 mo) et une partition de récupération de Windows (450 Mo)
  • /dev/sdb est le disque 1 de sauvegarde avec une partition /dev/sdb1 de 60 Go.
Comment créer une image système avec Linux

Nous allons donc effectuer une image de disque avec un Windows installé, mais on peut avoir un Linux, ou même un Dual-Boot, cela fonctionnerait.
Pour rappel, Windows propose aussi son propre logiciel pour effectuer des images de disque :

Créer l’image de disque

Avant de commencer, assurez-vous qu’aucune des partitions ne soit monter.
la commande suivante permet de vérifier cela :

mount|egrep sda

Si l’on reprend l’exemple donné en introduction, dans notre cas, la syntaxe devrait être :

dd if=/dev/sda of=/tmp/sdb1/save.iso bs=512

Le problème ici est que les disques sont identiques en terme de taille 60 Go.
Ainsi le fichier save.iso va faire 60 Go (les blocs vides vont aussi être copiées dans le fichier).
L’idéal est donc de compresser le fichier de destination afin de gagner en place disque, cela est tout à fait possible en utilisant la commande suivante :

dd if=/dev/sda bs=512 | gzip > /tmp/sdb1/sda-backup.gz
Comment créer une image système avec Linux

Il faut bien respecter la taille des blocs de la partition, pour cela, récupérez la taille des blocs de la partition avec fdisk :

sudo fdisk -l
Comment créer une image système avec Linux

Ici, le disque est entièrement copié vers le fichier sda-backup.gz mais vous pouvez sauver une partition de disque à la fois.

dd if=/dev/sda bs=512 | gzip -c | split -a3 -b2G - /tmp/sdb1/sda-backup.gz
Comment créer une image système avec Linux

Enfin, il faut sauvegarder la structure des partitions de disques, pour cela, on peut utiliser la commande :

sfdisk -d /dev/sda > /tmp/sdb1/part_table

Pour information, le fichier est obtenu est un fichier texte qui décrit la structure des partitions de disques.

Comment créer une image système avec Linux

Vérifier l’image de disque

Avec Testdisk, vous pouvez vérifier l’image de disque :

testdisk /tmp/sdb1/sda-backup

en version compressée, pour vérifier testdisk, on obtient :

gzip -c /tmp/sda-backup.gz | testdisk
Comment créer une image système avec Linux

Vérifiez bien que le boot sector (si MBR) est OK.

Comment créer une image système avec Linux

et que vous pouvez naviguer dans les dossiers.

Comment créer une image système avec Linux

Restaurer l’image de disque Linux

on restaure notre image disque Linux en utilisant les commandes suivants.

dd if=/tmp/sdb1/save.iso of=/dev/sda bs=512

et dans le cas où l’image disque est compressée, la syntaxe devient alors :

gzip -c /tmp/sda-backup.gz | sudo dd of=/dev/sda

Enfin on réimporte la structure des partitions :

sfdisk /dev/sda < /tmp/sdb1/part_table