De acuerdo con la documentación de rasbery pi , puede cargar su sistema operativo en una tarjeta flash con / dev / disk o / dev / rdisk.
rdisk significa disco en bruto.
/ dev / disk es un dispositivo de nivel de bloque, ¿por qué rdisk sería 20 veces más rápido?
Usando Mac OSX
Nota: en OS X, cada disco puede tener dos referencias de ruta en / dev: / dev / disk # es un dispositivo almacenado en búfer, lo que significa que cualquier información que se envíe se procesa de manera adicional. / dev / rdisk # es una ruta sin procesar, que es mucho más rápida y perfectamente correcta cuando se utiliza el programa dd. En una tarjeta SD de Clase 4, la diferencia era alrededor de 20 veces más rápida usando la ruta de disco.
sd-card
dd
disk-utility
dev
Spuder
fuente
fuente
Respuestas:
De
man hdiutil
:En términos simples,
/dev/rdisk
va casi directamente al disco y/dev/disk
pasa por una ruta más larga y costosafuente
La respuesta aceptada es correcta, pero no entra en muchos detalles.
Una de las diferencias clave entre
/dev/disk
y/dev/rdisk
, cuando accede a ellos desde el espacio del usuario, es que/dev/disk
está almacenado en el búfer. La ruta de lectura / escritura/dev/disk
divide la E / S en fragmentos de 4KB, que se lee en la memoria caché del búfer, y luego se copia en el búfer de espacio del usuario (y luego emite la próxima lectura de 4KB ...). Esto es bueno porque puedes hacer lecturas y escrituras sin alinear, y simplemente funciona. En contraste,/dev/rdisk
básicamente solo pasa la lectura o escritura directamente al dispositivo, lo que significa que el inicio y el final de la E / S deben alinearse en los límites del sector.Si lees o escribes en más de un sector
/dev/rdisk
, esa solicitud se pasará directamente. Las capas inferiores pueden dividirlo (p. Ej., USB lo divide en partes de 128 KB debido al tamaño máximo de carga útil en el protocolo USB), pero generalmente puede obtener E / S más grandes y más eficientes. Al transmitir, como a través dedd
, 128 KB a 1 MB son tamaños bastante buenos para obtener un rendimiento casi óptimo en el hardware actual sin RAID.El almacenamiento en caché realizado por
/dev/disk
las rutas de lectura y escritura es muy simple y casi cerebral. Se almacena en caché aunque no sea estrictamente necesario; como si el dispositivo pudiera asignar un mapa de memoria y transferirlo directamente al búfer de su aplicación. Hace E / S pequeñas (4KB), lo que genera una gran sobrecarga por E / S. No lee ni escribe con antelación.fuente
Parece
/dev/disk
y/dev/rdisk
funciona diferente para HDD y SSD. ¿Quieres comprobarlo para la tarjeta MicroSD? Acabo de escribir una imagen de disco de 2GB en Sandisk Ultra MicroSD 64GB ( https://www.amazon.com/gp/product/B073JYVKNX ).Repetimos pruebas varias veces, pero los resultados fueron estables: 17 MB / s para
/dev/disk
vs 20 MB / s para/dev/rdisk
. Cambiarbs=1m
a nobs=16m
da absolutamente ninguna diferencia en la velocidad de escritura.Escribiendo a
/dev/disk2
Escribiendo a
/dev/rdisk2
Entonces decidí probar la velocidad de lectura: 26MB / s para
/dev/disk
vs 87MB / s para/dev/rdisk
. Cambiarbs=1m
a nobs=16m
da absolutamente ninguna diferencia en la velocidad de lectura.Leyendo de
/dev/disk2
Leyendo de
/dev/rdisk2
fuente
Sé que este es un hilo viejo, pero otras personas podrían estar interesadas en las implicaciones de velocidad de lo que he intentado. Quiero hacer una copia de seguridad de mi SSD interna en mi MacBook Pro 13 "Retina (con una SSD Silicon Power 1 TB) en una unidad de disco duro USB 3.0 2.5" externa, con el deseo de capturar las particiones macOS y BOOTCAMP. Mi línea de comando inicial fue:
Los resultados fueron una tasa de copia de ~ 31.3 MB / segundo. Esto fue demasiado tiempo para hacerme esperar. Entonces, en el segundo intento, la línea de comando fue:
¡Usar en
/dev/rdisk
lugar de/dev/disk
acelerar significativamente las cosas, a aproximadamente 98.4 MB / segundo! Sin embargo, se pone aún mejor. Entonces, para el tercer intento, utilicé esta línea de comando:La opción dispersa le dice a DD que no se moleste en escribir en los bloques de salida que son todos ceros en la entrada. Lo bueno es que esto se vuelve mucho más rápido de lo que piensas, incluso en el medio de las áreas "llenas" del disco. En cualquier unidad que no esté llena, tendrá enormes fragmentos de 0, acelerando aún más el DD. Hasta ahora, al menos, DD se trata de correr a la velocidad de transferencia teórica de mi disco duro: ~ 116.4 MB / segundo, y aún no ha alcanzado esas grandes áreas en blanco.
Prueba estas opciones: ¡funcionan! Tenga en cuenta: cambie CUIDADOSAMENTE
if=
yof=
señale correctamente las unidades correctas enumeradas por (para Mac):fuente
conv=sparse
es genial cuando estás copiando archivos. Me preocuparía que pueda introducir corrupción al copiar un disco completo, una partición o un sistema de archivos , a menos que sepa con 100% de certeza que el disco de destino no contiene más que ceros.Para el registro, al menos en macOS High Sierra, / dev / disk parece ser mucho más rápido que / dev / rdisk. Ejecutando dd o ddrescue, mi copia de comparación de rendimiento de un HD magnético a un SSD fue de 3.7MBps usando / dev / rdisk, y 45MBps usando / dev / disk. Por lo tanto, en versiones posteriores de macOS, puede ser mejor usar / dev / disk en lugar de / dev / rdisk para obtener el mejor rendimiento.
fuente
Pienso antes de discutir qué nodo de ruta es más rápido o sumergirme en una serie de pruebas. Deberíamos considerar otro factor que afectará dramáticamente la velocidad final de lectura / escritura.
como las especificaciones de la tarjeta Micro SD, clase 4/10 / HC I ... chip lector de tarjeta SD e interfaz, usb 1.1 / 2.0 / 3.0 / 3.1 os memoria total / memoria libre, carga os, tipo de disco duro os, HDD / SSD, HDD velocidad de centrifugado y tamaño de caché, tamaño SSD / caché / espacio libre / interfaz de disco duro del sistema operativo, ata / sata / esata,
Si algún factor se convirtió en un cuello de botella, tendremos una conclusión falsa.
Aquí está mi resultado: OSX 10.12.6, SSD,
lea microSD 16G con una tarjeta usb 2.0 lea y escriba en un disco duro externo de 3.5 pulgadas con usb 3.0,
escriba microSD 32G a través de la tarjeta interna de lectura y la fuente de datos es un disco duro externo de 3.5 pulgadas con usb 3.0
puedes ver, velocidad de escritura> velocidad de lectura !!
fuente