Gemäß der rasbery pi-Dokumentation können Sie Ihr Betriebssystem entweder mit / dev / disk oder / dev / rdisk auf eine Flash-Karte laden.
rdisk steht für raw disk.
/ dev / disk ist ein Block-Level-Gerät. Warum ist rdisk 20-mal schneller?
Verwenden von Mac OSX
Hinweis: In OS X kann jede Festplatte zwei Pfadverweise in / dev haben: / dev / disk # ist ein gepuffertes Gerät, was bedeutet, dass alle gesendeten Daten einer zusätzlichen Verarbeitung unterzogen werden. / dev / rdisk # ist ein unformatierter Pfad, der viel schneller ist und bei Verwendung des Programms dd vollkommen in Ordnung ist. Auf einer SD-Karte der Klasse 4 war der Unterschied unter Verwendung des Festplattenpfads etwa 20-mal schneller.
sd-card
dd
disk-utility
dev
Spuder
quelle
quelle
Antworten:
Von
man hdiutil
:In Laienbegriffen
/dev/rdisk
geht das fast direkt auf Platte und/dev/disk
geht über einen längeren, teureren Wegquelle
Die akzeptierte Antwort ist richtig, geht aber nicht ins Detail.
Einer der Hauptunterschiede zwischen
/dev/disk
und/dev/rdisk
, wenn Sie vom Benutzerbereich aus darauf zugreifen, ist die/dev/disk
Pufferung. Der Lese- / Schreibpfad für/dev/disk
teilt die E / A in 4-KB-Blöcke auf, die in den Puffercache eingelesen und dann in den Benutzerbereichspuffer kopiert werden (und dann den nächsten 4-KB-Lesevorgang ausgeben ...). Das ist insofern schön, als Sie unausgerichtete Lese- und Schreibvorgänge ausführen können, und es funktioniert einfach. Im Gegensatz dazu wird/dev/rdisk
das Lesen oder Schreiben im Grunde nur direkt an das Gerät weitergeleitet, was bedeutet, dass Anfang und Ende der E / A an Sektorgrenzen ausgerichtet werden müssen.Wenn Sie mehr als einen Sektor lesen oder schreiben
/dev/rdisk
, wird diese Anforderung direkt weitergeleitet. Die unteren Schichten können es aufteilen (z. B. USB zerlegt es aufgrund der maximalen Nutzlastgröße im USB-Protokoll in 128 KB-Teile), aber Sie können im Allgemeinen größere und effizientere E / A erhalten.dd
128 KB bis 1 MB sind beim Streamen, wie beispielsweise über , recht gute Größen, um auf aktueller Nicht-RAID-Hardware eine nahezu optimale Leistung zu erzielen.Das Zwischenspeichern über
/dev/disk
die Lese- und Schreibpfade ist sehr einfach und fast hirntot. Es wird zwischengespeichert, auch wenn dies nicht unbedingt erforderlich ist. Als ob das Gerät Speicher zuordnen und direkt in den Puffer Ihrer App übertragen könnte. Es führt kleine (4 KB) E / As aus, was zu einem hohen E / A-Overhead führt. Es wird weder vorgelesen noch hinterher geschrieben.quelle
Es scheint
/dev/disk
und/dev/rdisk
funktioniert anders für Festplatten und SSDs. Willst du es für MicroSD-Karte überprüft. Habe gerade ein 2 GB-Image auf Sandisk Ultra MicroSD 64 GB geschrieben ( https://www.amazon.com/gp/product/B073JYVKNX ).Wiederholte Tests mehrmals, aber die Ergebnisse waren stabil: 17 MB / s für
/dev/disk
vs 20 MB / s für/dev/rdisk
. Der Wechselbs=1m
zubs=16m
gibt absolut keinen Unterschied in der Schreibgeschwindigkeit.Schreiben an
/dev/disk2
Schreiben an
/dev/rdisk2
Dann habe ich beschlossen, die Lesegeschwindigkeit zu testen: 26 MB / s für
/dev/disk
vs 87 MB / s für/dev/rdisk
. Der Wechselbs=1m
zubs=16m
gibt absolut keinen Unterschied in der Lesegeschwindigkeit.Lesen aus
/dev/disk2
Lesen aus
/dev/rdisk2
quelle
Ich weiß, dass dies ein alter Thread ist, aber andere Leute interessieren sich vielleicht für die Auswirkungen der Geschwindigkeit, die ich ausprobiert habe. Ich möchte meine interne SSD in meinem MacBook Pro 13 "Retina (mit einer Silicon Power 1 TB SSD) auf einer externen USB 3.0 2.5" -Festplatte sichern und sowohl die macOS- als auch die BOOTCAMP-Partition aufzeichnen. Meine anfängliche Befehlszeile war:
Das Ergebnis war eine Kopierrate von ~ 31,3 MB / Sekunde. Das war einfach zu lang, um mich warten zu lassen. Beim zweiten Versuch lautete die Befehlszeile also:
Mit
/dev/rdisk
statt/dev/disk
deutlich beschleunigten Dingen auf ca. 98,4 MB / Sekunde! Es wird jedoch noch besser. Für den dritten Versuch habe ich die folgende Befehlszeile verwendet:Die Option sparse weist DD an, sich nicht darum zu kümmern, in Ausgabeblöcke zu schreiben, die alle 0en am Eingang haben. Was cool ist, ist, dass dies viel schneller als man denkt, auch wenn es mitten in "vollen" Bereichen der Festplatte ist. Auf jedem Laufwerk, das nicht voll ist, haben Sie riesige Brocken von Nullen, was die DD weiter beschleunigt. Zumindest läuft DD bislang nur mit der theoretischen Übertragungsgeschwindigkeit meiner Festplatte: ~ 116,4 MB / Sekunde, und diese großen leeren Bereiche sind noch nicht erreicht.
Probieren Sie diese Optionen aus - sie funktionieren! Bitte beachten Sie: SORGFÄLTIG ändern
if=
undof=
auf die richtigen Laufwerke verweisen, die von (für Macs) aufgelistet werden:quelle
conv=sparse
ist großartig, wenn Sie Dateien kopieren . Ich befürchte, dass es beim Kopieren einer gesamten Festplatte, einer Partition oder eines Dateisystems zu Beschädigungen kommen könnte , es sei denn, Sie wissen mit hundertprozentiger Sicherheit, dass die Zieldisk nur Nullen enthält.Zumindest in MacOS High Sierra scheint / dev / disk viel schneller zu sein als / dev / rdisk. Als ich entweder dd oder ddrescue ausführte, betrug mein Durchsatzvergleich beim Kopieren von einer magnetischen Festplatte auf eine SSD 3,7 MBit / s unter Verwendung von / dev / rdisk und 45 MBit / s unter Verwendung von / dev / disk. Daher ist es in späteren Versionen von macOS möglicherweise am besten, / dev / disk anstelle von / dev / rdisk zu verwenden, um die bestmögliche Leistung zu erzielen.
quelle
Ich überlege mir vorher, welcher Pfadknoten schneller ist oder tauche in serielle Tests ein. Wir sollten einen anderen Faktor berücksichtigen, der die endgültige Lese- / Schreibgeschwindigkeit dramatisch beeinflusst.
Wie Micro SD-Karten-Spezifikation, Klasse 4/10 / HC I ... SD-Kartenleser-Chip und -Schnittstelle, USB 1.1 / 2.0 / 3.0 / 3.1 OS Gesamtspeicher / Freier Speicher, OS Load, OS Festplattentyp, HDD / SSD, HDD Spin-Geschwindigkeit und Cache-Größe, SSD-Größe / Cache / freier Speicherplatz / OS-Festplatten-Schnittstelle, ata / sata / esata,
Wenn ein Faktor zu einem Engpass wurde, werden wir eine falsche Schlussfolgerung ziehen.
hier ist mein ergebnis: osx 10.12.6, ssd,
Lese microSD 16G von einer USB 2.0-Karte Lese- und Schreibzugriff auf eine externe 3,5-Zoll-Festplatte über USB 3.0,
Schreibe microSD 32G durch interne Karte lesen und Datenquelle ist externe 3,5-Zoll-Festplatte von USB 3.0,
Sie können sehen, Geschwindigkeit schreiben> Geschwindigkeit lesen!
quelle