Introduction
- 3184
- 791
- Anaïs Charles
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…