Menurut dokumentasi pi rasbery , Anda dapat memuat OS Anda ke kartu flash dengan / dev / disk atau / dev / rdisk.
rdisk adalah singkatan dari raw disk.
/ dev / disk adalah perangkat tingkat blok, mengapa rdisk akan 20 kali lebih cepat?
Menggunakan Mac OSX
Catatan: Dalam OS X setiap disk dapat memiliki dua referensi jalur di / dev: / dev / disk # adalah perangkat buffered, yang berarti setiap data yang dikirim mengalami pemrosesan ekstra. / dev / rdisk # adalah jalur mentah, yang jauh lebih cepat, dan sangat oke ketika menggunakan program dd. Pada kartu SD Class 4 perbedaannya sekitar 20 kali lebih cepat menggunakan jalur rdisk.
sd-card
dd
disk-utility
dev
spuder
sumber
sumber
Jawaban:
Dari
man hdiutil
:Dalam istilah awam
/dev/rdisk
hampir langsung ke disk dan/dev/disk
pergi melalui rute yang lebih mahal lagisumber
Jawaban yang diterima benar, tetapi tidak terlalu rinci.
Salah satu perbedaan utama antara
/dev/disk
dan/dev/rdisk
, ketika Anda mengaksesnya dari ruang pengguna, adalah yang/dev/disk
disangga. Jalur baca / tulis untuk/dev/disk
memecah I / O menjadi potongan 4KB, yang terbaca ke dalam cache buffer, dan kemudian menyalin ke buffer ruang pengguna (dan kemudian mengeluarkan 4KB baca selanjutnya ...). Ini bagus karena Anda dapat melakukan baca dan tulis yang tidak selaras, dan hanya berfungsi. Sebaliknya,/dev/rdisk
pada dasarnya hanya meneruskan membaca atau menulis langsung ke perangkat, yang berarti awal dan akhir I / O perlu disejajarkan pada batas-batas sektor.Jika Anda membaca atau menulis lebih dari satu sektor
/dev/rdisk
, permintaan itu akan diteruskan. Lapisan bawah dapat memecahnya (mis., USB memecahnya menjadi potongan-potongan 128KB karena ukuran muatan maksimum dalam protokol USB), tetapi Anda biasanya bisa mendapatkan I / Os yang lebih besar dan lebih efisien. Saat streaming, seperti viadd
, 128KB ke 1MB adalah ukuran yang cukup bagus untuk mendapatkan kinerja mendekati optimal pada perangkat keras non-RAID saat ini.Caching yang dilakukan oleh
/dev/disk
jalur baca dan tulis sangat sederhana dan hampir mati otak. Tembolok bahkan jika tidak benar-benar diperlukan; seperti jika perangkat dapat memetakan memori dan langsung mentransfer ke buffer aplikasi Anda. Itu kecil (4KB) I / Os, yang mengarah ke banyak overhead per-I / O. Itu tidak membaca atau menulis di belakang.sumber
Tampaknya
/dev/disk
dan/dev/rdisk
berfungsi berbeda untuk HDD dan SSD. Ingin memeriksanya untuk kartu MicroSD. Baru saja menulis gambar disk 2GB ke Sandisk Ultra MicroSD 64GB ( https://www.amazon.com/gp/product/B073JYVKNX ).Tes berulang beberapa kali, tetapi hasilnya stabil: 17MB / s untuk
/dev/disk
vs 20MB / s untuk/dev/rdisk
. Mengubahbs=1m
menjadibs=16m
sama sekali tidak ada perbedaan dalam kecepatan menulis.Menulis untuk
/dev/disk2
Menulis untuk
/dev/rdisk2
Kemudian saya memutuskan untuk menguji kecepatan membaca: 26MB / s untuk
/dev/disk
vs 87MB / s untuk/dev/rdisk
. Mengubahbs=1m
menjadibs=16m
sama sekali tidak ada perbedaan dalam kecepatan membaca.Membaca dari
/dev/disk2
Membaca dari
/dev/rdisk2
sumber
Saya tahu ini adalah utas lama, tetapi orang lain mungkin tertarik pada implikasi kecepatan dari apa yang saya coba. Saya ingin mencadangkan SSD internal saya di Retina MacBook Pro 13 "saya (dengan Silicon Power 1 TB SSD) ke hard disk USB 3.0 2.5" eksternal, yang ingin menangkap partisi macOS dan BOOTCAMP. Baris perintah awal saya adalah:
Hasilnya adalah tingkat salinan ~ 31,3 MB / detik. Ini terlalu lama untuk membuatku menunggu. Jadi, pada upaya kedua, baris perintah adalah:
Menggunakan
/dev/rdisk
alih-alih/dev/disk
mempercepat secara signifikan, sekitar 98,4 MB / detik! Namun, itu menjadi lebih baik. Jadi, untuk upaya ketiga, saya menggunakan baris perintah ini:Opsi jarang memberi tahu DD untuk tidak repot menulis ke blok keluaran yang semuanya 0s pada input. Apa yang keren adalah bahwa ini menjadi jauh lebih cepat daripada yang Anda pikirkan, bahkan ketika di tengah-tengah "penuh" area disk. Pada setiap drive yang tidak penuh, Anda akan memiliki potongan besar 0s, lebih lanjut mempercepat DD. Sejauh ini, setidaknya, DD hanya berjalan dengan kecepatan transfer teoritis hard disk saya: ~ 116,4 MB / detik, dan belum mencapai area kosong yang besar itu.
Cobalah opsi ini - mereka berhasil! Harap perhatikan: DENGAN SEKSAMA ubah
if=
danof=
untuk menunjuk dengan benar ke drive yang benar yang terdaftar oleh (untuk Mac):sumber
conv=sparse
sangat bagus saat Anda menyalin file. Saya akan khawatir bahwa itu mungkin memperkenalkan korupsi ketika menyalin seluruh disk, partisi atau sebuah filesystem , kecuali Anda tahu dengan kepastian 100% bahwa disk tujuan berisi apa-apa tapi nol.Sebagai catatan, setidaknya di macOS High Sierra, / dev / disk tampaknya jauh lebih cepat daripada / dev / rdisk. Menjalankan dd atau ddrescue, perbandingan throughput saya menyalin dari HD magnetik ke SSD adalah 3,7MBps menggunakan / dev / rdisk, dan 45MBps menggunakan / dev / disk. Jadi, pada versi macOS yang lebih baru, mungkin lebih baik menggunakan / dev / disk daripada / dev / rdisk untuk kinerja terbaik.
sumber
Saya pikir sebelum berdebat jalur mana node lebih cepat atau menyelam ke dalam tes serial. Kita harus mempertimbangkan faktor lain yang secara dramatis akan mempengaruhi kecepatan baca / tulis akhir.
seperti spesifikasi kartu Micro SD, kelas 4/10 / HC I ... sd card reader chip dan interface, usb 1.1 / 2.0 / 3.0 / 3.1 os total memori / memori bebas, os load, os jenis harddisk, HDD / SSD, HDD kecepatan putaran dan ukuran cache, ukuran SSD / cache / ruang bebas / antarmuka harddisk os, ata / sata / esata,
jika ada faktor yang menjadi hambatan, maka kita akan mendapatkan kesimpulan yang salah.
inilah hasil saya: osx 10.12.6, ssd,
membaca microSD 16G dengan kartu usb 2.0 membaca dan menulis ke HDD 3,5 inci eksternal dengan usb 3.0,
tulis microSD 32G melalui pembacaan kartu internal dan sumber data adalah HDD 3,5 inci eksternal dengan usb 3.0,
Anda dapat melihat, menulis kecepatan> kecepatan baca !!
sumber