dcfldd : copie ou backup système Linux avec progression

Fonction très utiles livrée avec toute les distributions linux la commande dd permet de faire une copie bloc par bloc tout ou partie d’un volume

cette commande est notamment très pratique  pour effectuer des backups de ses systèmes. Je l’utilise pour ma part énormément pour faire des backups de mes désormais nombreux RaspberryPi.

la copie d’un système peu prendre plus ou moins de temps en fonction du volume à traiter.

dd ne fournit pas à la base de possibilité de suivre l’avancement d’un copie. C’est la que dcfldd est intéressant. c’est exactement la même commande avec la même syntaxe mais qui donne en plus un état d’avancement de la copie.

 

  • INSTALLATION

Tout d’abord installez dcfldd

sudo apt-get update
sudo apt-get install dcfldd

 

  • AVERTISSEMENT

Avant de commencer je vais tout d’abord lancer un avertissement :

dd est surnomée « destructeur de disque » : A ce titre il est primordial de parfaitement et toujours vérifier votre commande avant de la lancer. en effet, renseignée à l’envers il n’y aura pas d’erreur, celle-ci va tout simplement effacer les données sources..et adieu le système.

Il est impératif que le volume copié soit « démonté » avant de lancer cette commande

de même il est fortement déconseiller de stopper une copie en cours qui pourrait endommager les données sources.

Il conviendra donc :

 

1/ de bien vérifier les volumes que l’on veut copier : les repérer

commande fdisk -l ou mount

 

2/ de bien revérifier la syntaxe de sa commande avant de lancer

 

  • UTILISATION

Très succinctement elle s’utilise de la manière suivante

dcfldd if=</chemin/source> of=</chemin/cible> bs=<taille de bloc souhaitée>

La taille des blocs va influencer notamment la vitesse de copie. mais aussi la stabilité de l’image à la sortie. ce paramètre est donc à régler selon vos préférences mais avec soin

Pour ma part j’ai toujours utilisé des bloc de 1M et cela me satisfait en terme d’écriture et de qualité d’image Systeme.

 

Personnellement je n’ai jamais testé ce que dit le tuto ubuntu, à vous de voir et de faire vos tests :

bs=4k indiquera à dd d’utiliser un bloc de taille 4 kiloctets. J’ai trouvé que bs=4k est le plus rapide pour la copie de disques sur une machine moderne.

 

  • EXEMPLE

je veux créer une image disque d’une clé usb qui par exemple pourrait contenir un système live de Debian

 

1/ on recherche la clé

sudo fdisk -l

qui nous renvoie donc le résultat suivant

Disque /dev/sda : 8 GiB, 8589934592 octets, 16777216 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x4ad6c17f

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 16281599 16279552 7,8G 83 Linux
/dev/sda2 16283648 16777215 493568 241M 5 Extended
/dev/sda5 16287744 16777215 489472 239M 82 Linux swap / Solaris

Disque /dev/sdb : 7,3 GiB, 7813988352 octets, 15261696 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x00000000

Device Boot Start End Sectors Size Id Type
/dev/sdb1 256 15261949 15261694 7,3G 83 Linux

 

 

notre clé est donc repérée comme le disque /dev/sdb et contiens une partition principale /dev/sdb1

Pour l’identifier vous pouvez regarder les indications de tailles et de type de système de fichier par exemple.

Si Vous ne savez toujours quel est votre clé faite une comparaison de deux commande fdisk en regardant les lignes qui se rajoutent lorsque votre clé usb est connectée.

 

 

2/ on vérifie que celle ci ne soit pas montée

sudo mount

Le résultat de la commande vous donne tout les volumes montés (« accessibles ») sur le système. Dans notre exemple, si /dev/sdb1 apparaît c’est qu’il est monté. sinon c’est qu’il ne l’est pas.

Si votre volume contiens plusieurs partitions (sdb2, sdb3 etc…)et que vous voulez copier le disque entier, Il faudra également vérifier que ces partitions ne sont pas montée et le cas échéant, démonter toute ces partitions une par une

 

 

3/ Si il est monté on le démonte

sudo umount /dev/sdb1

et de même si besoin pour sdb2, sdb3 etc…

 

4/ on détermine l’emplacement de destination de notre image voulue

pour l’exemple nous utiliserons /home/user/backup/

 

5/ on détermine le paramètre bs en fonction de nos besoins

pour nous ce sera donc bs=1M (on aurait pu par exemple mettre bs=4M

 

6/ on peut écrire désormais la commande comme suit et laisser suivre son cours

sudo dcfldd if=/dev/sdb of=/home/user/backup/nom-de-votre-copie.img bs=1M

notez que nous avons indiqué sdb et pas sdb1. En effet ici nous voulons copier un système entier. Nous devons copier l’intégralité du disque avec sa partition MBR (cachée)

Si nous voulions copier seulement une partition (pour une récupération de donnée par exemple) nous aurions pu noter /dev/sdb1

 

7/ Avancement de la commande et arguments supplémentaires

La commande va alors lancer la copie. Tel quel vous aurez une indication d’avancement assez succincte avec le nombre de bloc et le volume copié.

Pour avoir des indications de temps plus précises vous pourrez ajouter les arguments suivant à la commande dcfldd :

sizeprobe=if statusinterval=5

Ces arguments vous donnerons le pourcentage effectué et le temps restant.

 

 

Pour plus d’informations je vous invite à compléter tout ça avec le Tuto ubuntu.fr très complet sur la commande dd

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Show Buttons
Hide Buttons