Introduction

Introduction

Ce que vous lisez n'est que le premier des nombreux articles de la série «Apprentissage Linux». Pourquoi voudrions-nous faire une telle chose? Car il vous est utile d'avoir toutes les options et l'utilisation possible d'une commande largement utilisée en un seul endroit. Vous trouverez des options ou même des commandes que vous ne connaissiez même pas, et votre vie en tant qu'utilisateur / administrateur de Linux deviendra plus facile. Si vous n'avez pas peur d'ouvrir un terminal et de connaître les bases de l'utilisation d'un système Linux, cet article est pour vous.

Pourquoi DD?

Nous avons choisi DD comme premier concurrent de notre série car c'est un outil utile qui a beaucoup d'options, comme vous le verrez. Cela en fait presque l'un des couteaux de l'armée suisse du monde Linux. Ouais, ce terme (couteau suisse de l'armée) est utilisé plus qu'il ne devrait l'être par les écrivains d'articles orientés vers Linux, donc nous ne pouvions pas passer l'opportunité de l'utiliser nous-mêmes.

Utilisation générale

Avant de commencer, nous voulions vous donner une idée générale de la façon dont DD est utilisé. Tout d'abord, le nom provient de «Data Duplicator», mais il est également dit en plaisantant en plaisantant «Disk Destroyer» ou «Data Destroyer» car c'est un outil très puissant. Nous recommandons donc des soins supplémentaires lors de l'utilisation de DD car un moment de négligence peut vous coûter des données précieuses. La syntaxe générale d'une commande DD est

 # dd if = $ input_data de = $ output_data [Options]

Les données d'entrée et de sortie peuvent être des disques, des partitions, des fichiers, des appareils… principalement tout ce que vous pouvez écrire ou lire. Comme vous le verrez, vous pouvez utiliser DD dans un contexte en réseau pour envoyer des flux de données à travers votre LAN, par exemple. Vous ne pouvez avoir que la partie d'entrée dans votre commande DD, ou uniquement la commande de sortie, et vous pouvez même éliminer les deux dans certains cas. Tout cela sera traité dans le tableau ci-dessous.



Exemples

Apprendre la commande Linux DD avec des exemples
Syntaxe de commande Linux Description de la commande Linux
Systèmes de fichiers
dd if = / dev / urandom de = / dev / sda bs = 4k
Remplit le lecteur de données aléatoires
dd if = / dev / sda de = / dev / sdb bs = 4096

Duplication d'entraînement

dd if = / dev / zéro de = / dev / sda bs = 4k
Nettoyer un disque dur (peut être répété)
dd if = inputfile de = / dev / st0 bs = 32k conv = sync = sync
Copier du fichier à l'appareil de bande
dd if = / dev / st0 de = outfile bs = 32k conv = sync =
Ce qui précède, inversé
dd if = / dev / sda | hexdump -c | grep [^ 00]
Vérifiez si le lecteur est vraiment à zéro
dd if = / dev / urandom de = / home / $ utilisateur / fortefile \ bs = 4096
Remplit une partition (prudence avec les partitions système!)
ls -l myfile -rw-r - r-- 6703104 oct 31 18:25 myfile dd if = / dev / urandom de = myfile bs = 6703104 count = 1
Brouiller un fichier (peut-être avant de le supprimer)
dd if = / dev / sda3 de = / dev / sdb3 bs = 4096 \ conv = notrunc, noerror
Copiez une partition dans une autre partition
dd if = / proc / filesystems | hexdump -c | moins
Afficher les systèmes de fichiers disponibles
dd if = / proc / partitions | hexdump -c | moins
Afficher les partitions disponibles dans KB
dd if = / dev / sdb2 ibs = 4096 | gzip> partition.image.gz \ conv = noerror
Crée une image gzidip de la deuxième partition
du deuxième disque
dd bs = 10240 cbs = 80 conv = ascii, unblock \ if = / dev / st0 de = ascii.dehors
Copiez le contenu d'un lecteur de bande dans un fichier, convertissant
De EBCDIC à ASCII
dd if = / dev / st0 ibs = 1024 obs = 2048 de = / dev / st1
Copier du périphérique de bloc 1 Ko à un périphérique de bloc 2KB
dd if = / dev / zéro de = / dev / null bs = 100m count = 100 100 + 0 enregistre en 100 + 0 enregistre sur 10485760000 octets (10 Go) copiés, 5.62955 S, 1.9 Go / s
Copier 10 Go de zéros aux ordures.
dd if = / dev / zero of = / dev / sda bs = 512 count = 2 fdisk -s / dev / sda dd if = / dev / zero of = / dev / sda Seek = \ (number_of_sectors - 20) bs = 1k
Effacer GPT du disque. Depuis GPT écrit des données au début
Et à la fin du trajet, après
Effacement depuis le début, nous devons découvrir le numéro
des secteurs (deuxième commande), puis effacez les 20 derniers secteurs.
dd if = / home / $ utilisateur / bootImage.img de = / dev / sdc
Créer un lecteur USB bootable (ici illustré AS / DEV / SDC)
dd if = / dev / sda de = / dev / null bs = 1m
Une bonne façon de vérifier les mauvais blocs
Sauvegarde et système
dd if = / dev / sda de = / dev / fd0 bs = 512 count = 1
Copie le MBR à une disquette
dd if = / dev / sda1 de = / dev / sdb1 bs = 4096
Duplication d'entraînement
dd if = / dev / sr0 de = / home / $ utilisateur / mycdimage.ISO \ BS = 2048 Conv = Nosync
Créer une image d'un CD
Mount -o Loop / Home / $ User / MYCDIMAGE.iso \ / mnt / cdimages /
Mount cette image localement
dd if = / dev / sda de = / dev / sdb bs = 64k conv = sync = sync
Utile lors du remplacement d'un disque par une autre taille identique
dd if = / dev / sda2 de = / home / $ user / hddimage1.img \ bs = 1m count = 4430 dd if = / dev / sda2 de = / home / $ user / hddimage2.IMG \ bs = 1m Count = 8860 […]
Créer des images DVD d'une partition (utile pour sauvegarder)
dd if = / $ emplacement / hddimage1.img de = / dev / sda2 \ bs = 1m dd if = / $ emplacement / hddimage2.img de = / dev / sda2 \ Seek = 4430 bs = 1m dd if = / $ localisation / hddimage3.img de = / dev / sda2 \ Seek = 8860 bs = 1m [et ainsi de suite…]
Restaurer de la sauvegarde au-dessus
dd if = / dev / zéro nombre = 1 bs = 1024 Seek = 1 of = / dev / sda6
Détruire le superblock
dd if = / dev / zéro nombre = 1 bs = 4096 Seek = 0 of = / dev / sda5
Une autre façon de détruire le superblock
dd if = / home / $ utilisateur / suspect.Doc | clamp -
Vérifiez le fichier pour les virus (a besoin de cllamav)
DD if = / home / $ utilisateur / fichier binaire | hexdump -c | moins
Regardez le contenu d'un fichier binaire (a besoin de hexdump)
dd if = / home / $ utilisateur / bigfile de = / dev / null dd if = / dev / zero of = / home / $ utilisateur / bigfile \ bs = 1024 count = 1000000
Benchmarks disque dur pour la vitesse de lecture / écriture
dd if = / dev / sda de = / dev / sda
Donne une nouvelle vie aux disques durs plus anciens qui n'ont pas été utilisés depuis un certain temps (le disque doit être non monté)
dd if = / dev / mem | Strings | grep 'string_to_search'
Examiner le contenu de la mémoire (lisible par l'homme, c'est-à-dire)
dd if = / dev / fd0 de = / home / $ utilisateur / disquette.image \ bs = 2x80x18b conv = notrunc
Copier un disquette
dd if = / proc / kcore | hexdump -c | moins
Afficher la mémoire virtuelle
dd if = / proc / filesystems | hexdump -c | moins
Afficher les systèmes de fichiers disponibles
dd if = / proc / kallsyms | hexdump -c | moins
Afficher les modules chargés
dd if = / proc / interruptions | hexdump -c | moins
Afficher la table d'interruption
dd if = / proc / du temps de disponibilité | hexdump -c | moins
Voir la disponibilité en secondes
dd if = / proc / partitions | hexdump -c | moins
Afficher les partitions disponibles dans KB
dd if = / proc / meminfo | hexdump -c | moins
Voir les memstats
dd if = / dev / urandom de = / home / $ utilisateur / myrandom \ bs = 100 count = 1
Crée un fichier de 1 Ko de charabia aléatoire
dd if = / dev / mem of = / home / $ utilisateur / mem.bin \ bs = 1024
Crée une image de l'état réel de la mémoire de votre système
dd if = / home / $ utilisateur / myfile
Imprime le fichier à stdout
dd if = / dev / sda2 bs = 16065 | hexdump -c \ | grep 'text_to_search'
Rechercher une partition entière pour une chaîne; Même s'il est sécurisé,
vous pouvez démarrer un livecd
dd if = / home / $ utilisateur / fichier.bac skip = 64k bs = 1 \ of = / home / $ utilisateur / convain.poubelle
Copier un fichier.poubelle pour convaincre.Bin sautant les 64 premiers Ko
dd if = / home / $ utilisateur / bootImage.img de = / dev / sdc
Créer un lecteur USB bootable (ici illustré AS / DEV / SDC)
dd if = / dev / mem bs = 1k skip = 768 count = 256 \ 2> / dev / null | Strings -N 8
Lire le bios.
dd bs = 1k if = image.NRG de = ImageFile.ISO Skip = 300k
Convertir l'image Nero en image standard ISO.
C'est possible car la seule différence entre
Les deux sont un en-tête de 300 kb Néron ajoute à un fichier ISO standard.
Echo -n "Hello Vertical World" | dd cbs = 1 \ conv = unblock 2> / dev / null
Essayez-le, c'est sûr. 🙂
dd if = / dev / sda1 | gzip -c | Split -b 2000m - \ / mnt / hdc1 / sauvegarde.IMG.gz
Créer une image gzipied d'une partition à l'aide de Split
chat / mnt / hdc1 / sauvegarde.IMG.gz.* | gzip -dc | \ dd de = / dev / sda1
Restaurer au-dessus de la sauvegarde
dd if = / dev / zéro de = Myimage bs = 1024 Count = 10240
Créer une image de disque vide
dd ibs = 10 skip = 1
Strip 10 premiers octets de Stdin
dd bs = 265b conv = noerror if = / dev / st0 \ of = / tmp / bad.enregistrer.image
Faire l'image d'un lecteur de bande avec de mauvais points
dd if = / dev / sda count = 1 | hexdump -c
Voir votre MBR
dd if = / dev / sda | NC -L 10001 NC $ SYSTEM_TO_BACKUP_IP 10001 | dd \ of = sysbackupsda.IMG
Sauvegarde du réseau rapide à l'aide de netcat
dd if = / dev / zéro de = / dev / sdx \ bs = 1024000 count = 1
Effacer les 10 premiers Mo de la partition
dd if = / dev / zero of = tmpswap bs = 1k \ count = 1000000 chmod 600 tmpswap mkswap tmpswap swapon tmpswap
Créer un espace d'échange temporaire
dd if = / dev / sda de = / dev / null bs = 1024k \ count = 1024 1073741824 octets (1.1 Go) copié, 24.1684 S, 44.4 Mo / s
Déterminez la vitesse des E / S séquentielle de votre lecteur. Fichier de lecture de 1 Go
dd if = / dev / random count = 1 2> / dev / null | od -t u1 | \ awk 'print $ 2' | tête -1
Générer un nombre aléatoire
dd if = / dev / mem of = myram bs = 1024
Copier la mémoire de RAM dans un fichier
dd if = / dev / sda bs = 512 count = 1 | od -xa
Voir le contenu de votre MBR au format Hex et ASCII
dd if = / my / old / mbr de = / dev / sda bs = 446 count = 1
Restaurer le MBR sans déranger l'enregistrement de la table de partition
qui se situe entre 447 et 511 octets
dd if = / dev / sda1 | Split -b 700m - SDA1-IMAGE
Créez une copie de partition et enregistrez des images où
La taille du volume est de 700 Mo
Manipulation de texte
ls -l | dd conv = ucase
Convertir la sortie d'une commande en majuscules
Echo "My Upper Case Text" | dd conv = lcase
Convertir n'importe quel texte en minuscules
dd if = / etc / passwd cbs = 132 conv = eBcDic de = / tmp / passwd.eBCDIC
Convertir le fichier de mot de passe système en fichier EBCDIC-Format de longueur fixe
dd if = texte.ascii de = texte.eBCDIC CONV = EBCDIC
Convertir de ASCII en EBCDIC
dd if = myfile of = myfile conv = ucase
Convertir un fichier en majuscules (remplacement SED ou TR simple)

Conclusion

Cela n'a été qu'une petite partie de ce que DD peut faire, et nous espérons que cet article a réussi à comprendre les exemples les plus utiles pour l'utilisateur quotidien. Cependant, avant d'aller plus loin, nous vous recommandons de lire la documentation de votre disque dur, de chercher des choses comme la limitation de LBA et de prendre des soins supplémentaires lorsque vous utilisez DD dans un terminal racine.
Bien sûr, vous avez déjà des sauvegardes, mais un peu de soin supplémentaire vous fera économiser des heures de travail inutile.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Téléchargement Linux
  • Choses à installer sur Ubuntu 22.04
  • Ubuntu 20.04 Guide
  • Installez Arch Linux dans VMware Workstation
  • Comment doubler Kali Linux et Windows 10
  • Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…