我尝试将文件rsync
从笔记本电脑复制到 USB 3.0 外置硬盘,但速度非常慢。仅供参考,这是我使用的命令:
rsync -a src/ dest/ --info=progress2
我所说的慢是指有时慢至 5 MB/s。我想说大多数时候它保持在 15 到 20 MB/s 之间。
我非常有信心问题不在于rsync
,也不在于我正在复制多个文件。复制单个大文件 (9 GB) 也很慢。
我知道我有一个功能正常的 USB 3.0 端口,因为 Windows 可以以 120 MB/s 的速度进行复制。
Linux似乎要了解这是一个USB 3.0设备。以下是lshw
关于我的 USB 端口和外置硬盘的说明:
*-usbhost:1
product: xHCI Host Controller
vendor: Linux 6.1.0-13-amd64 xhci-hcd
physical id: 1
bus info: usb@2
logical name: usb2
version: 6.01
capabilities: usb-3.10
configuration: driver=hub slots=6 speed=10000Mbit/s
*-usb
description: Mass storage device
product: EXTERNAL_USB
vendor: TOSHIBA
physical id: 2
bus info: usb@2:2
logical name: scsi2
version: 0.00
capabilities: usb-3.00 scsi emulated
configuration: driver=usb-storage maxpower=896mA speed=5000Mbit/s
*-disk
description: SCSI Disk
product: EXTERNAL_USB
vendor: TOSHIBA
physical id: 0.0.0
bus info: scsi@2:0.0.0
logical name: /dev/sdb
version: 0
size: 931GiB (1TB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=6 logicalsectorsize=512 sectorsize=512 signature=3083634d
这是输出lsusb -t
:
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
|__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
|__ Port 3: Dev 8, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=rtsx_usb, 480M
|__ Port 6: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 6: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 10: Dev 5, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 10: Dev 5, If 1, Class=Wireless, Driver=btusb, 12M
我不明白。如果我没看错的话,我的复制速度应该超过 100 MB/s。但似乎离那还很远。怎么了?
(我很欣赏评论中的所有建议,但我不是在寻找备份工具。我无法复制整个分区,因为我没有足够的外部硬盘来匹配我的笔记本电脑中的分区。此外,我正在寻找一个能让我的 USB 3.0 正常工作的解决方案)
答案1
dd
直接用和测试USB硬盘status=progress oflag=direct
,看看是否是USB/驱动器的问题。 IE dd if=/dev/urandom bs=4M status=progress oflag=direct of=/dev/sdX
(注意:urandom 本身可能是一个瓶颈,您可以尝试读取 nvme 或其他内容(如果您有的话)。)如果您直接获得驱动器的良好速度,则可能与文件系统格式相关。
假设您使用的是 NTFS-3g 模块,我也遇到过类似的性能问题。您可以尝试将驱动器格式化为 ext4/btrfs,看看使用第一方格式是否可以获得良好的性能。如果您需要在 Windows 中访问数据,您可以尝试 exFAT 或 FAT32(有 4GB 文件限制)。GParted
如果您不知道/想在 CLI 中进行格式化,可以使用来帮助在 Linux 上进行格式化。
如果直接测试速度dd
很慢,那么您可以尝试修改 BIOS/固件中的 USB/xHCI 设置。 xHCI 切换是某些主板具有的一项功能,我个人不得不在 Linux 计算机上将其关闭一次,以防止它随机断开 USB 设备。那里可能需要一些调整。