Langsame USB-Übertragung bei direkter DD-Übertragung zum Gerät

Langsame USB-Übertragung bei direkter DD-Übertragung zum Gerät

Noch ein Problem mit langsamer Übertragung. Ich habe ein neu gekauftes SanDisk USB 3.0-Laufwerk. Der Laptop hat nur USB 2.0, aber ich erreiche konstant Übertragungsgeschwindigkeiten von ~2 MB/s.

Ich übertrage .imgauf das Laufwerk:

dd if=my.img of=/dev/sdb status=progress

Sowohl die oben genannten als auch die oben genannten iostatzeigen konstante 2 MB/s.

kern.log gibt beim Verbinden Folgendes aus:

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

Relevanter Teil der lsusb -tAusgabe:

/:  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

Ubuntu 16.04 LTS Server auf Dell 6320 wird ausgeführt.

So fügen Sie Treiber hinzu:

# 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

Antwort1

Sie sollten einfach die Blockgröße von erhöhen dd. Der Standardwert ist 1 einzelnes Byte, aber Sie können den Vorgang erheblich beschleunigen, indem Sie größere Datenblöcke auf einmal übertragen. Der verantwortliche Parameter heißt bs.

Sie sollten vielleicht ein wenig mit den optimalen Werten experimentieren, aber etwas um die 4 kB (4096 Bytes) sollte in Ordnung sein. Einige Quellen empfehlen auch größere Blockgrößen von z. B. 32 kB, 64 kB oder sogar 128 kB. Es hängt stark von der physischen Struktur des Ziellaufwerks ab, welcher Wert optimal ist, und kann fast nur durch Experimentieren herausgefunden werden. Sie können 4 kB jedoch als Untergrenze betrachten, kleinere Blockgrößen sind normalerweise viel langsamer.

Weitere Informationen zu optimalen Blockgrößen ddfinden Sie indiese verwandte Frage zu Unix und Linux.

dd if=my.img of=/dev/sdb bs=4096 status=progress

verwandte Informationen