He estado instalando algunas distribuciones de Linux en una tarjeta SD desde mi MacBook, aunque tardan más de una hora en transferir unos cientos de MB (usando dd
y /dev/disk1
).
Si observa la salida anterior, ¡está funcionando a aproximadamente 0,31 MB/s! La tarjeta SD es Clase 10 y mi MacBook Pro es Intel Core 2 Duo de 2,66 GHz, DDR3 de 4 GB y 1067 MHz y OS X Lion 10.7.4. Aquí está el informe de hardware para el lector de tarjetas:
Lector de tarjetas SD integrado:
Id. de proveedor: 0x05ac
Id. de producto: 0x8403
Revisión: 1.00 Número de serie: 9833Tarjeta SDHC:
Capacidad: 7,97 GB (7.969.177.600 bytes)
Medios extraíbles: Sí Nombre BSD: disk1
Tipo de mapa de partición: MBR (Registro de arranque maestro)
Estado SMART: No admitido
Volúmenes:PI:
Capacidad: 7,96 GB (7964983296 bytes)
Sistema de archivos: MS-DOS
Nombre BSD: disk1s1
Contenido: DOS_FAT_32
¿Alguna idea de por qué la transferencia /dev/disk1
es tan lenta y cómo podría acelerarla?
Acabo de encontrarme con el mismo problema y parece que /dev/disk*
es lento porque está almacenado en el búfer. Si usa el dispositivo rdisk correspondiente (por ejemplo: /dev/rdisk1s1
), debería obtener la velocidad que espera. Aparentemente, esto es algo de BSD.
Ejemplo:
% sudo dd if=pi.bin of=/dev/disk1 bs=1m count=4095
^C408+0 records in
407+0 records out
426770432 bytes transferred in 1393.452305 secs (306268 bytes/sec)
% sudo dd if=pi.bin of=/dev/rdisk1 bs=1m count=4095
4095+0 records in
4095+0 records out
4293918720 bytes transferred in 378.669512 secs (11339489 bytes/sec)
Árbitro:
disk1
Bien podría ser que la tarjeta SD sea tan lenta.
Eche un vistazo a este punto de referencia (Random Write, 4 KB (QD=1) [MB/s]) y verá que la mayoría de las tarjetas SD tienen un pésimo rendimiento de escritura (menos de 100 kB/s) para archivos pequeños, y un La instalación típica de Linux consiste en una gran cantidad de archivos pequeños que se escriben en el disco.
El lector de tarjetas interno debe ser capaz de leer/escribir al menos 20 MB/s; es muy poco probable que otro lector de tarjetas mejore su experiencia con esta misma tarjeta SD.
Una vez que todos los archivos están escritos, es decir, el sistema está instalado, es posible que pueda ejecutar Linux desde la tarjeta SD a una velocidad aceptable, ya que en su mayoría es acceso de lectura.
Si la tarjeta está montada con la opción de sincronización, esto significa que cada archivo que se cierra hace que la escritura se vacíe en el disco y, por lo tanto, su rendimiento en archivos pequeños será terrible en comparación con archivos grandes. Si elimina la sincronización de las opciones de montaje, entonces no hay garantía de que escribir un archivo haga que se vaya al disco: debe llamar manualmente a la sincronización desde la línea de comandos o desmontar el dispositivo antes de quitarlo o apagarlo. Sin embargo, sin sincronización, debería ver que el rendimiento de escritura de archivos pequeños mejora drásticamente.
man mount
, async ya es el valor predeterminado.No, esto es claramente un problema con Mac OS. Obtengo un rendimiento significativamente más rápido cuando realizo esta misma operación con Linux en una máquina virtual que se ejecuta en el mismo Macintosh. Es decir, la VM es aproximadamente 5 veces más rápida que el sistema operativo nativo.
ladrones
StuR
olsmit