Comment utiliser la commande DD dans Linux

Comment utiliser la commande DD dans Linux
Le dd La commande est utilisée pour faire beaucoup de choses importantes. L'utilisation la plus courante et la plus répandue du dd La commande consiste à fabriquer des lecteurs USB démarrés à partir d'un ISO ou IMG fichier d'image. Je l'utilise beaucoup pour fabriquer des lecteurs USB boostables de différentes distributions Linux. Mais il y a d'autres usages du dd Commande aussi. Par exemple, le dd La commande peut être utilisée pour effectuer une sauvegarde de la table de partition, convertir des textes et des fichiers, installer un chargeur de démarrage sur un disque dur, un lecteur SSD ou USB. Le dd La commande peut également être utilisée pour faire du test les performances des périphériques de stockage tels que la latence de votre disque dur, la lecture et la vitesse d'écriture de votre disque dur, etc.

Dans cet article, je vais vous montrer quelques-uns des usages courants du dd Commande dans Linux. J'utiliserai Debian 9 Stretch pour la démonstration. Mais cela devrait fonctionner sur toute autre distribution Linux. Commençons.

Faire un lecteur USB amorçable avec DD:

Faire un lecteur USB amorçable de votre système d'exploitation préféré avec le dd La commande est très facile. Tout ce dont vous avez besoin est un lecteur USB et un ISO ou IMG Image du système d'exploitation que vous souhaitez créer un USB amorçable.

Supposons que vous avez téléchargé un ISO Image de Alpine Linux et le fichier est enregistré dans le ~ / Téléchargements répertoire comme Alpine-standard-3.8.0-x86_64.ISO

Maintenant, vous pouvez répertorier tous les périphériques de stockage ou de blocage connectés avec la commande suivante:

$ sudo lsblk

Comme vous pouvez le voir, tous les périphériques de stockage ou de blocs connectés sont répertoriés. Ici, / dev / sdb est mon lecteur USB. Il a deux partitions, / dev / sdb1 et / dev / sdb2. Mais lorsque vous créez des lecteurs de démarrage USB, vous devez utiliser le / dev / sdb, L'appareil de bloc entier, pas de partitions.

Maintenant, créez le lecteur USB démarrable de Alpine Linux avec la commande suivante:

$ sudo dd if = ~ / téléchargements / Alpine-standard-3.8.0-x86_64.ISO de = / dev / sdb bs = 1m

Ici, si =~ / Téléchargements / Alpine-standard-3.8.0-x86_64.ISO L'option est utilisée pour dire dd que le fichier d'entrée est sur le chemin ~ / Téléchargements / Alpine-standard-3.8.0-x86_64.ISO et de =/ dev / sdb L'option est utilisée pour dire dd que le fichier de sortie est sur le chemin / dev / sdb. Le bs =1m raconte dd lire ~ / Téléchargements / Alpine-standard-3.8.0-x86_64.ISO et écrire à / dev / sdb 1 mégaoctets de données à la fois.

Comme vous pouvez le voir, le fichier ISO est copié sur le périphérique de bloc / dev / sdb. Vous pouvez maintenant l'utiliser pour installer Alpine Linux.

Cette commande est très destructrice. Le dd La commande essuie la table de partition et les autres métadonnées, les signaux du périphérique de bloc. Alors tu dois faire attention.

Affichage de la barre de progression:

Par défaut, le dd La commande ne montre aucune barre de progrès. Mais tu peux dire dd pour le montrer avec le statut = progression option.

Par exemple, pour copier des données à partir de / dev / sda pour / dev / sdb 1 mégaoctets à la fois et affichez également la barre de progression, exécutez la commande suivante:

$ sudo dd if = / dev / sda de = / dev / sdb bs = 1m statut = progress

Comme vous pouvez le voir, la barre de progression est affichée. Vous pouvez voir quelle part des données sont copiées et le taux à laquelle il est copié.

Mesurer les performances de lecture et d'écriture d'un périphérique de stockage avec DD:

Vous pouvez mesurer la vitesse de lecture et d'écriture d'un périphérique de stockage avec dd très facilement. Bien sûr, il existe de nombreux logiciels graphiques qui fournissent ces informations, mais les amateurs de ligne de commande trouveraient cela très intéressant.

Tout d'abord, vous devez monter la partition ou le périphérique de stockage sur votre système de fichiers. Si vous n'avez pas de partition sur votre périphérique de stockage, vous pouvez toujours le créer avec le fdisk commander et le formater au système de fichiers souhaité (comme Fat32, Ext4, NTFS, XFS etc). Ici, je suppose que vous avez une partition / dev / sdb1 Et il est formaté comme Ext4.

Disons, tu veux monter / dev / sdb1 partitionner / mnt Répertoire, puis exécutez la commande suivante:

$ sudo mont / dev / sdb1 / mnt

Comme vous pouvez le voir, la partition / dev / sdb1 est monté sur / mnt annuaire.

$ df -h

Créons maintenant un fichier de 1 Go testrw dans le / mnt répertoire avec dd:

$ sudo dd if = / dev / zero of = / mnt / testrw bs = 1g count = 1 oflag = Direct

Ici, compter = 1 signifie, lire bs = 1g qui est 1 gigaoctet de / dev / zéro, Et écrivez-le à / mnt / testrw déposer.

Le oflag = direct L'option est utilisée pour désactiver la mise en cache du disque. Si la mise en cache des disques est activée, vous n'obtiendrez pas de résultats très précis.

NOTE: N'oubliez pas que pour cette opération, vous devez avoir au moins 1 Go de mémoire libre ou de RAM sur votre ordinateur. Si vous ne pouvez pas vous permettre autant de RAM gratuits, réduisez la taille BS. Par exemple, régler bs = 128m ou encore moins, bs = 64m.

Comme vous pouvez le voir, la vitesse d'écriture de mon lecteur USB est environ 6.1 Mo par seconde.

Vous pouvez également tester la vitesse de lecture de votre périphérique de stockage avec la commande suivante:

$ sudo dd if = / mnt / testrw de = ~ / downloads / test bs = 1g count = 1 oflag = Direct

Comme vous pouvez le voir, je peux lire à 4.3 Mo par seconde.

Tester la latence du périphérique de stockage avec DD:

La latence d'un périphérique de stockage est le temps nécessaire pour accéder à l'appareil. C'est un paramètre important que nous pouvons déterminer à l'aide du dd commande.

Pour tester la latence, nous pouvons écrire ou lire de petits morceaux de données (environ 512 octets à la fois) x fois et voir combien de temps il faut. Ensuite, nous pouvons calculer le temps qu'il faut pour lire ou écrire un seul morceau de données très facilement. C'est ce qu'on appelle la latence du périphérique de stockage.

Par exemple, disons que vous souhaitez calculer la latence d'écriture. Maintenant, exécutez la commande suivante pour écrire 512 octets Chunk environ 1000 fois:

$ sudo dd if = / dev / zéro de = / mnt / testx bs = 512 count = 1000 oflag = direct

Comme vous pouvez le voir, il faut sur 16.4541 secondes pour écrire 1000 morceaux de 512 Données octets. Maintenant, pour écrire un seul morceau de données, il faut environ (16.4541s / 1000 = 0.0164 S) 0.0164 secondes. Donc la latence d'écriture est d'environ 0.0164 secondes pour ce périphérique de stockage.

Vous pouvez calculer la latence de lecture de la même manière.

C'est ainsi que vous utilisez DD et testez les performances d'un appareil d'E / S avec. Merci d'avoir lu cet article.