Sauvegarder, Restaurer, cloner des disques avec dd ou cat

Source : linuxtricks.fr/wiki/sauvegarder-restaurer-cloner-des-disques-avec-dd-ou-cat

Introduction

D’habitude, je clone des disques avec Clonezilla, mais parfois, le logiciel ne veut pas cloner à cause d’erreurs (RAID).
Voici comment faire avec la traditionnelle commande dd.
On peut aussi le faire avec la commande cat. Ca va plus vite, il y a moins d’options (mais OK pour un disque entier) mais on n’a pas d’infos sur la progression.
Dans ce tutoriel, je démarre sur un Live CD

Sauvegarder un disque dans une image

Pour sauvegarder le disque /dev/sda dans un fichier, on monte d’abord la destination de la sauvegarde dans /mnt par exemple :
Disque local :
Copier vers le presse-papierCode BASH :

mount /dev/sdb1 /mnt

Disque distant avec sshfs :
Copier vers le presse-papierCode BASH :

sshfs adrien@server/home/images /mnt

Ensuite, on sauvegarde, et on compresse au passage
Copier vers le presse-papierCode BASH :

dd status=progress if=/dev/sda bs=100M | gzip -c  > /mnt/image.dd.gz

Je mets un BS de 100M pour que ça aille plus vite (testé OK sur un SSD, à adapter sur un HDD)
Si on veut aller plus vite, on peut le faire avec la commande cat + compresser avec gzip. Cela fonctionne bien pour un disque entier :
Copier vers le presse-papierCode BASH :

cat /dev/sda | gzip -c > /mnt/image.cat.gz

Restaurer une image dans le disque

Pour restaurer on effectue le processus inverse. Je passe la partie de montage de l’image :
Copier vers le presse-papierCode BASH :

gzip -dc /mnt/image.dd.gz | dd status=progress of=/dev/sda

Si on a sauvegardé avec cat + gzip, pour restaurer on utilise :
Copier vers le presse-papierCode BASH :

gzip -dc /mnt/image.cat.gz > /dev/sda

Cloner un disque A sur le B

Imaginons, le disque A est la source et le disque B la destination.
Il faut que B soit égal ou plus grand que A.
Pour cloner direct de disque à disque, on peut toujours utiliser dd :
Copier vers le presse-papierCode BASH :

dd status=progress if=/dev/sda of=/dev/sdb bs=100M

Je mets un BS de 100M pour que ça aille plus vite (testé OK sur un SSD, à adapter sur un HDD)
Pour cloner avec cat, on utilise simplement :
Copier vers le presse-papierCode BASH :

cat /dev/sda > /dev/sdb

Cloner à travers ssh

Si on veut s’éclater à copier une machine sur une autre, on peut démarrer les 2 machines sur un live CD.
Sur la machine de destination, on définit un mot de passe à root et on démarre le serveur SSH.
Si les 2 disques s’appellent /dev/sda, on pourra cloner depuis la machine source via :
Copier vers le presse-papierCode BASH :

dd if=/dev/sda bs=100M | ssh machinedistante  'dd of=/dev/sda'

Et si on veut compresser au passage (à tester) :
Copier vers le presse-papierCode BASH :

dd status=progress if=/dev/sda bs=100M  | gzip | ssh 10.21.21.231  'gzip -d | dd of=/dev/sda'