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.
Table des matières
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.
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.
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
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
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
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.
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
Vérifiez bien que le boot sector (si MBR) est OK.
et que vous pouvez naviguer dans les dossiers.
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