我有一个HP Microserver gen8我正在使用它进行测试和一些小备份。
这台机器安装了 debian 9,我打算有时间的时候将其升级到 debian 12,无论如何这台机器都没有连接到互联网。
我买了一个Seagate ST8000DM004 8TB 硬盘用作不需要 RAID 冗余的不太重要的备份的外部附加驱动器。
我把它放在Orico USB3外置盒,将所有驱动器格式化为 GPT + 仅一个分区 EXT4,并将其连接到机器的一个 usb3 端口。
在控制台中我可以看到这个错误:
[2729.934652] xhci_hcd 0000:04:00.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
[2747.675287] xhci_hcd 0000:04:00.0: @000000013c688ef0 00000000 00000000 1b000000 01078001
我有点疑惑,在网上搜索了一下,有人说更换 USB 电缆即可解决问题-> 没有,我尝试了各种 usb3 电缆,更改了机器上的 usb3 端口,甚至更换了盒子(我有 3 个副本并且在其他操作系统下使用它们没有问题)。
我尝试将东西复制到驱动器和从驱动器复制东西,一切正常,我确实复制了大约 200 MB 的文件并进行了一些 md5 和 sha256 比较,它们完全匹配。
我还注意到在任何 usb2 端口下,错误都不会溢出但这意味着驱动器将以非常低的速度运行,这非常烦人。
我可能会冒什么风险?我可以假设以这种方式使用驱动器是安全的吗? 错误是否会稍后出现,我是否会遇到文件系统损坏的问题,或者操作系统是否足够智能,可以查看传输的数据是否存在问题并重新发送数据?
TL;DR:usb3 是否像 TCP 数据包一样自动检查数据是否正确发送或者是否有任何检查?
我的担心:
- 传输的数据一生中可能会出现一次传输错误,但也许可以通过像使用 rsync 那样制作校验和副本来防止这种情况。
- 仅通过 usb3 端口连接驱动器一次就会导致文件系统退化,所以我必须对其进行格式化并永远使用它,因为裸初始格式始终在 usb2 中?
顺便说一下,我用于安装驱动器的命令很简单
mount /dev/sdf1 /mounthpath