GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser dd sous Linux sans détruire votre disque

Cet article est extrait du chapitre 4 de Linux in Action, publié par Manning.

Que vous essayiez de récupérer des données à partir d'un lecteur de stockage mourant, de sauvegarder des archives sur un stockage distant ou de faire une copie parfaite d'une partition active ailleurs, vous devez savoir comment copier des lecteurs et des systèmes de fichiers en toute sécurité et de manière fiable. Heureusement, dd est un outil de copie d'images simple et puissant qui existe depuis presque toujours. Et pendant tout ce temps, rien n'est venu qui fait mieux le travail.

Faire des copies parfaites de disques et de partitions

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Il y a toutes sortes de choses que vous pouvez faire avec dd si vous faites des recherches assez approfondies, mais là où ça brille, c'est dans la façon dont il vous permet de jouer avec les partitions. Vous pouvez, bien sûr, utiliser tar ou même scp pour répliquer des systèmes de fichiers entiers en copiant les fichiers d'un ordinateur, puis en les collant tels quels sur une nouvelle installation Linux sur un autre ordinateur. Mais, comme ces archives de système de fichiers ne sont pas des images complètes, elles nécessitent un système d'exploitation hôte en cours d'exécution aux deux extrémités pour servir de base.

Utilisation de dd , d'autre part, peut créer des images parfaites octet par octet de, eh bien, à peu près tout ce qui est numérique. Mais avant que vous ne commenciez à lancer des partitions d'un bout à l'autre de la terre, je dois mentionner qu'il y a une part de vérité dans cette vieille blague d'administrateur Unix :"dd signifie destructeur de disque ." Si vous tapez ne serait-ce qu'un seul caractère erroné dans un dd commande, vous pouvez effacer instantanément et définitivement un lecteur entier de données précieuses. Et oui, l'orthographe compte.

N'oubliez pas : Avant d'appuyer sur la touche Entrée pour invoquer dd , faites une pause et réfléchissez bien !

Opérations dd de base

Maintenant que vous avez été correctement averti, nous allons commencer par quelque chose de simple. Supposons que vous vouliez créer une image exacte d'un disque entier de données désigné comme /dev/ sda . Vous avez branché un lecteur vide (ayant idéalement la même capacité que votre /dev/ sda système). La syntaxe est simple :if= définit le lecteur source et of= définit le fichier ou l'emplacement où vous souhaitez enregistrer vos données :

# dd if=/dev/sda of=/dev/sdb

L'exemple suivant créera une archive .img du /dev/ sda lecteur et enregistrez-le dans le répertoire d'accueil de votre compte utilisateur :

# dd if=/dev/sda of=/home/username/sdadisk.img

Ces commandes ont créé des images de disques entiers. Vous pouvez également vous concentrer sur une seule partition à partir d'un lecteur. L'exemple suivant fait cela et utilise également bs pour définir le nombre d'octets à copier en une seule fois (4 096, dans ce cas). Jouer avec le bs la valeur peut avoir un impact sur la vitesse globale d'un dd fonctionnement, bien que le réglage idéal dépende de votre profil matériel et d'autres considérations.

# dd if=/dev/sda2 of=/home/username/partition2.img bs=4096

La restauration est simple :en effet, vous inversez les valeurs de if et of . Dans ce cas, if= prend l'image que vous souhaitez restaurer, et of= prend le lecteur cible sur lequel vous souhaitez écrire l'image :

# dd if=sdadisk.img of=/dev/sdb

Vous pouvez également effectuer les opérations de création et de copie en une seule commande. Cet exemple, par exemple, créera une image compressée d'un lecteur distant à l'aide de SSH et enregistrera l'archive résultante sur votre ordinateur local :

# ssh [email protected] "dd if=/dev/sda | gzip -1 -" | dd of=backup.gz

Vous devriez toujours tester vos archives pour confirmer qu'elles fonctionnent. S'il s'agit d'un lecteur de démarrage que vous avez créé, insérez-le dans un ordinateur et voyez s'il se lance comme prévu. S'il s'agit d'une partition de données normale, montez-la pour vous assurer que les fichiers existent et sont correctement accessibles.

Effacer les disques avec dd

Il y a des années, j'avais un ami qui était responsable de la sécurité dans les ambassades de son gouvernement à l'étranger. Il m'a dit un jour que chaque ambassade sous sa direction recevait un marteau officiel émis par le gouvernement. Pourquoi? Au cas où l'installation risquait d'être envahie par des ennemis, le marteau devait être utilisé pour détruire tous leurs disques durs.

Qu'est-ce que c'est? Pourquoi ne pas simplement supprimer les données ? Tu plaisante, n'Est-ce pas? Tout le monde sait que la suppression des fichiers contenant des données sensibles des périphériques de stockage ne supprime pas réellement les données. Avec suffisamment de temps et de motivation, presque tout peut être récupéré à partir de pratiquement n'importe quel support numérique, à l'exception peut-être de ceux qui ont été bien martelés.

Vous pouvez cependant utiliser dd pour rendre beaucoup plus difficile pour les méchants d'accéder à vos anciennes données. Cette commande passera du temps à écrire des millions et des millions de zéros dans tous les coins et recoins du /dev/sda1 partition :

# dd if=/dev/zero of=/dev/sda1

Mais ça va mieux. Utilisation de /dev/ urandom comme source, vous pouvez écrire sur un disque avec des caractères aléatoires :

# dd if=/dev/urandom of=/dev/sda1

Surveillance des opérations dd

Étant donné que l'archivage de disque ou de partition peut prendre très longtemps, vous souhaiterez peut-être ajouter un moniteur de progression à votre commande. Installer Pipe Viewer (sudo apt install pv sur Ubuntu) et insérez-le dans dd . Avec pv , cette dernière commande pourrait ressembler à ceci :

# dd if=/dev/urandom | pv | dd of=/dev/sda1
4,14MB 0:00:05 [ 98kB/s] [      <=>                  ]

Différer les sauvegardes et la gestion des disques ? Avec dd, vous n'avez plus trop d'excuses. Ce n'est vraiment pas difficile, mais soyez prudent. Bonne chance !


Linux
  1. Comment utiliser BusyBox sous Linux

  2. Comment j'utilise cron sous Linux

  3. Comment partitionner un disque sous Linux

  4. Comment utiliser FIND sous Linux

  5. Comment utiliser la commande Su sous Linux

Comment utiliser la commande Disown sous Linux

Comment utiliser la commande Linux SS

Comment utiliser la commande Linux nohup

Comment utiliser concrètement votre terminal Linux (partie 2)

Comment utiliser TeamViewer sur Ubuntu 20.04 Linux sans installation

Comment installer et utiliser Docker dans votre système Linux