![从一个大型外部驱动器复制到另一个外部驱动器时出现异常 USB I/O 错误](https://linux22.com/image/201539/%E4%BB%8E%E4%B8%80%E4%B8%AA%E5%A4%A7%E5%9E%8B%E5%A4%96%E9%83%A8%E9%A9%B1%E5%8A%A8%E5%99%A8%E5%A4%8D%E5%88%B6%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%A4%96%E9%83%A8%E9%A9%B1%E5%8A%A8%E5%99%A8%E6%97%B6%E5%87%BA%E7%8E%B0%E5%BC%82%E5%B8%B8%20USB%20I%2FO%20%E9%94%99%E8%AF%AF.png)
在 Ubuntu 20.04.3 LTS 下运行 Linux 5.4.0。
我有一个问题让我发疯。我最近购买了一些 12 TB 外部 USB 驱动器(WD MyBook 12 TB,通过 gparted 重新分区的 ext4),打算从我当前使用的 4 TB 外部 USB 驱动器迁移。在大多数情况下,12 TB 驱动器工作正常;但在某些情况下,我会从它们那里得到 I/O 错误。进一步来说:
- 将几乎已满的 4 TB 驱动器的内容复制到新的 12 TB 驱动器:没有问题
- 将复制到新 12 TB 驱动器上的超过 3 TB 数据与数据来源的旧 4 TB 驱动器进行比较:没有问题。
- 将新 12 TB 驱动器上所有超过 3 TB 的数据复制到 /dev/null,就像快速读取测试一样:没有问题。
- 使用不同的新 12 TB 驱动器执行上述三个步骤:没有问题。
- 从一个新的 12 TB 驱动器复制到另一个新的 12 TB 驱动器:I/O 错误导致副本中的源驱动器(正在读取的驱动器)出现 wazoo。
再次强调一下:当我从较小的驱动器复制到新的 12 TB 驱动器时,或者当我与原来的较小驱动器进行比较时,或者当我从它们读取数据以复制到新的 12 TB 驱动器时,不会产生错误。位桶。但如果我从一个新驱动器复制到另一个驱动器上,就会出现 I/O 错误。
与正在读取的源 12 TB 驱动器相关的错误如下所示:
Jan 25 00:00:25 stax kernel: [190374.338268] usb 2-6.2: Disable of device-initiated U2 failed.
Jan 25 00:00:25 stax kernel: [190374.418582] usb 2-6.2: reset SuperSpeed Gen 1 USB device number 4 using xhci_hcd
Jan 25 00:00:25 stax kernel: [190374.441059] sd 4:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
Jan 25 00:00:25 stax kernel: [190374.441066] sd 4:0:0:0: [sdb] tag#0 CDB: Read(16) 88 00 00 00 00 01 5e 4e d7 00 00 00 02 00 00 00
Jan 25 00:00:25 stax kernel: [190374.441073] blk_update_request: I/O error, dev sdb, sector 5877192448 op 0x0:(READ) flags 0x80700 phys_seg 32 prio class 0
在我按住 ctrl-c 复制副本之前,我会不断收到这些错误。我用谷歌搜索了这些错误消息,通常的共识是这些错误消息与故障驱动器有关。但忽略它们是全新的这一事实(因为新驱动器有时会损坏),坏块不会对新的 12 TB 驱动器产生任何问题,而且只要我不尝试,它们在各方面都工作得很好。从一个新驱动器复制到另一个新驱动器。特别是,当复制到我已有的较小驱动器或从较小驱动器复制时,它们工作得很好。
在所有情况下,所使用的驱动器都连接到供电的 USB 集线器,然后连接到计算机上的物理端口。我尝试将两个 12 TB 驱动器放在同一个集线器上,以及不同的集线器上,这些集线器本身连接到与主板上不同 USB 控制器关联的物理 USB 端口。
这对我来说太奇怪了,我不知道如何继续。任何建议都会非常有帮助。