dd 直接連接到裝置時 USB 傳輸速度慢

dd 直接連接到裝置時 USB 傳輸速度慢

另一個緩慢的傳輸問題。我有一個新買的 SanDisk USB 3.0 驅動器。筆記型電腦只有 USB 2.0,但我的傳輸速度始終達到約 2MB/s。

我正在將 a 傳輸.img到驅動器:

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

以上均iostat顯示一致的 2MB/s。

連接時的 kern.log 給出:

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

輸出的相關部分lsusb -t

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

在 Dell 6320 上執行 Ubuntu 16.04 LTS 伺服器。

新增驅動程式:

# 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

答案1

您應該簡單地增加 的區塊大小dd。預設值為 1 個單字節,但您可以透過一次傳輸更大的資料區塊來大幅加快該過程。負責的參數稱為bs

您可能想嘗試最佳值,但大約 4kB(4096 位元組)應該沒問題。一些來源還建議使用更大的區塊大小,例如 32kB、64kB 甚至 128kB。它很大程度上取決於目標驅動器的物理結構,哪個值是最佳的並且幾乎只能透過實驗找到。不過,您可以將 4kB 視為下限,較小的區塊大小通常會慢得多。

有關最佳區塊大小的更多資訊dd可以在Unix 和 Linux 上的這個相關問題

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

相關內容