Otro problema más de transferencia lenta. Tengo una unidad SanDisk USB 3.0 recién comprada. La computadora portátil solo tiene USB 2.0, pero obtengo velocidades de transferencia de ~2 MB/s de manera constante.
Estoy transfiriendo .img
a la unidad:
dd if=my.img of=/dev/sdb status=progress
Tanto los anteriores como iostat
muestran 2 MB/s consistentes.
kern.log cuando se conecta da:
usb 2-1.2: new high-speed USB device number 6 using ehci-pci
usb 2-1.2: New USB device found, idVendor-0781, idProduct=5583
usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-1.2: Product: Ultra Fit
usb 2-1.2: Manufacturer: SanDisk
usb 2-1.2: SerialNumber: 4C53....
usb-storage 2-1.2:1.0: USB Mass Storage device detected
scsi host7: usb-storage 2-1.2:1.0
scsi 7:0:0:0 Direct-Access SanDisk Ultra Fit 1.00 PQ: 0 ANSI: 6
sd 7:0:0:0 Attached scsi generic sg2 type 0
sd 7:0:0:0 [sdb] 30031250 512-byte logical blocks: (15.4 GB/14.3GiB)
sd 7:0:0:0 [sdb] Write Protect is off
sd 7:0:0:0 [sdb] Mode Sense: 43 00 00 00
sd 7:0:0:0 [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sd 7:0:0:0 [sdb] Attached SCSI removable disk
Parte relevante de lsusb -t
la producción:
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver-ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
|__ Port 2: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 480M
Ejecutando el servidor Ubuntu 16.04 LTS en Dell 6320.
Para agregar controladores:
# lsmod | grep pci
pci_stub 16384 1
vboxpci 24576 0
vboxdrv 454656 3 vboxnetadp,vboxnetflt,vboxpci
sdhci_pci 28672 0
sdhci 45056 1 sdhci_pci
# lsmod | grep hci
ahci 36864 4
sdhci_pci 28672 0
hibachi 32768 1
sdhci 45056 1 sdhci_pci
Respuesta1
Simplemente debes aumentar el tamaño del bloque de dd
. El valor predeterminado es 1 byte, pero puedes acelerar drásticamente el proceso transfiriendo fragmentos de datos más grandes a la vez. El parámetro responsable se llama bs
.
Quizás quieras experimentar un poco con los valores óptimos, pero algo alrededor de 4kB (4096 bytes) debería estar bien. Algunas fuentes también recomiendan tamaños de bloque más grandes, por ejemplo, 32 kB, 64 kB o incluso 128 kB. Depende en gran medida de la estructura física del disco de destino cuál es el valor óptimo y casi sólo puede descubrirse mediante experimentos. Puedes pensar en 4kB como límite inferior, aunque los tamaños de bloque más pequeños suelen ser mucho más lentos.
dd
Puede encontrar más información sobre los tamaños de bloque óptimos enesta pregunta relacionada sobre Unix y Linux.
dd if=my.img of=/dev/sdb bs=4096 status=progress