So verwenden Sie den DD -Befehl unter Linux

So verwenden Sie den DD -Befehl unter Linux
Der dd Befehl wird verwendet, um viele wichtige Dinge zu tun. Die häufigste und am weitesten verbreitete Verwendung der dd Befehl besteht darin, bootfähige USB -Laufwerke von einem zu machen ISO oder Img Bilddatei. Ich benutze es viel, um bootfähige USB -Laufwerke verschiedener Linux -Verteilungen durchzuführen. Aber es gibt andere Verwendungen der dd Befehl auch. Zum Beispiel die dd Der Befehl kann verwendet werden, um eine Sicherung der Partitionstabelle zu erstellen, Texte und Dateien zu konvertieren, einen Bootloader auf ein Festplattenlaufwerk, SSD oder USB -Laufwerk zu installieren. Der dd Der Befehl kann auch verwendet werden, um die Leistung von Speichergeräten wie Latenz Ihrer Festplatte, Lesen und Schreiben von Geschwindigkeit Ihrer Festplatte usw. durchzuführen.

In diesem Artikel werde ich Ihnen einige der gemeinsamen Verwendungen der dd Befehl in Linux. Ich werde Debian 9 Stretch für die Demonstration verwenden. Aber es sollte auf einer anderen Linux -Verteilung funktionieren. Lass uns anfangen.

Erstellen eines bootfähigen USB -Laufwerks mit DD:

Erstellen eines bootfähigen USB -Laufwerks Ihres bevorzugten Betriebssystems mit dem dd Befehl ist sehr einfach. Alles was Sie brauchen ist ein USB -Laufwerk und eine ISO oder Img Bild des Betriebssystems, das Sie einen bootfähigen USB von erstellen möchten.

Nehmen wir an, Sie haben eine heruntergeladen ISO Bild von Alpine Linux und der Datei wird in der gespeichert ~/Downloads Verzeichnis als Alpine-Standard-3.8.0-X86_64.ISO

Jetzt können Sie alle angeschlossenen Speicher- oder Block -Geräte mit dem folgenden Befehl auflisten:

$ sudo lsblk

Wie Sie sehen können, sind alle angeschlossenen Speicher- oder Blockgeräte aufgeführt. Hier, /dev/sdb Ist mein USB -Laufwerk. Es hat zwei Partitionen, /dev/sdb1 Und /dev/sdb2. Aber wenn Sie USB -bootfähige Laufwerke machen, müssen Sie die verwenden /dev/sdb, das gesamte Blockgerät, keine Partitionen.

Machen Sie nun mit dem folgenden Befehl das bootfähige USB -Laufwerk von Alpine Linux:

$ sudo dd if = ~/downloads/alpine-standard-3.8.0-X86_64.ISO von =/dev/sdb bs = 1m

Hier, wenn =~/Downloads/alpine-standard-3.8.0-X86_64.ISO Option wird verwendet, um es zu sagen dd dass sich die Eingabedatei im Pfad befindet ~/Downloads/alpine-standard-3.8.0-X86_64.ISO und von =/dev/sdb Option wird verwendet, um es zu sagen dd dass sich die Ausgabedatei im Pfad befindet /dev/sdb. Das bs =1m erzählt dd aus lesen ~/Downloads/alpine-standard-3.8.0-X86_64.ISO und schreibe an /dev/sdb 1 Megabyte Daten gleichzeitig.

Wie Sie sehen können, wird die ISO -Datei in das Blockgerät kopiert /dev/sdb. Jetzt können Sie es verwenden, um Alpine Linux zu installieren.

Dieser Befehl ist sehr destruktiv. Der dd Der Befehl wischt die Partitionstabelle und andere Metadaten aus, Flaggen aus dem Blockgerät. Sie müssen also vorsichtig sein.

Fortschrittsleiste anzeigen:

Standardmäßig die dd Der Befehl zeigt keine Fortschrittsleiste an. Aber du kannst es sagen dd es mit dem zeigen Status = Fortschritt Möglichkeit.

Zum Beispiel, um Daten von zu kopieren /dev/sda Zu /dev/sdb 1 Megabyte gleichzeitig und zeigen Sie auch die Fortschrittsleiste, führen Sie den folgenden Befehl aus:

$ sudo dd if =/dev/sda von =/dev/sdb bs = 1m Status = Fortschritt

Wie Sie sehen können, wird die Fortschrittsleiste angezeigt. Sie können sehen, wie viel Daten kopiert werden und welche Rate, mit der sie kopiert werden.

Messen Sie das Lesen und Schreiben der Leistung eines Speichergeräts mit DD:

Sie können die Lese- und Schreibgeschwindigkeit eines Speichergeräts mit messen dd ganz einfach. Natürlich gibt es viele grafische Software, die diese Informationen liefern, aber die Befehlszeilenliebhaber würden dies sehr interessant finden.

Zuerst müssen Sie die Partition oder das Speichergerät in Ihrem Dateisystem montieren. Wenn Sie keine Partition auf Ihrem Speichergerät haben, können Sie sie jederzeit mit dem erstellen fdisk Befehl und formatieren Sie es in Ihrem gewünschten Dateisystem (wie z FAT32, Ext4, NTFS, Xfs usw). Hier gehe ich davon aus, dass Sie eine Partition haben /dev/sdb1 und es ist formatiert wie Ext4.

Sagen wir, Sie möchten montieren /dev/sdb1 Partition zu /mnt Verzeichnis, dann den folgenden Befehl ausführen:

$ sudo montage /dev /sdb1 /mnt

Wie Sie sehen können, die Partition /dev/sdb1 ist einmontiert /mnt Verzeichnis.

$ df -h

Erstellen wir nun eine 1 -GB -Datei testrw im /mnt Verzeichnis mit dd:

$ sudo dd if =/dev/null von =/mnt/testrw bs = 1g count = 1 oflag = Direct

Hier, count = 1 bedeutet, lesen BS = 1G das ist 1 Gigabyte von /dev/null, und schreiben Sie es an /mnt/testrw Datei.

Der Oflag = Direct Die Option wird verwendet, um die Diskette zu deaktivieren. Wenn die Disk -Caching aktiviert ist, erhalten Sie keine sehr genauen Ergebnisse.

NOTIZ: Denken Sie daran, dass Sie für diesen Vorgang mindestens 1 GB kostenlosen Speicher oder RAM auf Ihrem Computer haben müssen. Wenn Sie sich nicht so viel freien RAM leisten können, reduzieren Sie die BS -Größe. Zum Beispiel festlegen BS = 128 m oder noch weniger, BS = 64 m.

Wie Sie sehen können, beträgt die Schreibgeschwindigkeit meines USB -Laufwerks ungefähr 6.1 MB pro Sekunde.

Sie können auch die Lesegeschwindigkeit Ihres Speichergeräts mit dem folgenden Befehl testen:

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

Wie Sie sehen können, kann ich um 4 lesen.3 MB pro Sekunde.

Testen der Latenz der Speichervorrichtung mit DD:

Die Latenz eines Speichergeräts ist die Zeit, die zum Zugriff auf das Gerät benötigt wird. Es ist ein wichtiger Parameter, den wir mit Hilfe des dd Befehl.

Um Latenz zu testen, können wir kleine Datenbrocken (ca. 512 Bytes gleichzeitig) schreiben oder lesen und sehen, wie lange es dauert. Dann können wir berechnen, wie lange es dauert, ein einzelnes Datenback zu lesen oder zu schreiben. Dies wird als Latenz des Speichergeräts bezeichnet.

Nehmen wir zum Beispiel an, Sie möchten die Schreiblatenz berechnen. Führen Sie nun den folgenden Befehl aus, um 512 Bytes -Chunk etwa 1000 Mal zu schreiben:

$ sudo dd if =/dev/null von =/mnt/testx bs = 512 count = 1000 Oflag = Direkt

Wie Sie sehen können, dauert es herum 16.4541 Sekunden zum Schreiben 1000 Stücke von 512 Bytes Daten. Um nun einen einzelnen Datenback zu schreiben, dauert es ungefähr (16.4541s / 1000 = 0.0164 s) 0.0164 Sekunden. Die Schreiblatenz beträgt also ungefähr 0.0164 Sekunden für dieses Speichergerät.

Sie können die Leselatenz auf die gleiche Weise berechnen.

So verwenden Sie DD und Testleistung eines E/A -Geräts damit. Danke, dass du diesen Artikel gelesen hast.