ubuntu - 使用 USB 3.0 将 HDD 连接到 RPi4 时出现 IO 错误,但使用 USB 2 时没有
问题描述
几个星期以来,我一直在遭受以下问题的困扰:
我想用一个 Raspberry Pi 4 和两个 WD Red 设置一个运行 ubuntu 服务器的 NAS,因为 RPi 4 终于支持 USB 3.0。因为 HDD 需要更多功率,所以我从一开始就使用有源 SATA-USB 适配器。但是,磁盘总是被弹出然后重新安装。这个过程只需要一两秒,而且每次驱动器号都会改变(sda > sdc ...)。此外,每次我的软件突袭被破坏并且磁盘必须重新同步。
在进行故障排除时,我偶然发现了两条错误消息
over-current change #34
uas_eh_abort_handler 0 uas-tag 13 inflight: CMD OUT
第二个是UAS导致问题,所以我立即将其屏蔽如下:
创建/boot/firmware/cmdline.txt
添加这一行:
usb-storage.quirks=174c:55aa:u
更新 initramfs
现在,与 UAS 相关的错误消失了。
对于第一个错误,我需要一些时间来找出问题所在。后来事实证明,除了有源 SATA USB 适配器之外,我还需要一个有源 USB 集线器才能消除此错误消息。
但是现在我仍然会定期弹出硬盘。我无法可靠地重现该错误。我确定的是:错误消息是:
usb 2-1.2: reset SuperSpeed Gen 1 USB device number 4 using xhci_hcd
usb 2-1.2: device firmware changed
usb 2-1.2: USB disconnect, device number 4
sd 1:0:0:0: [sdb] Synchronizing SCSI cache
blk_update_request: I/O error, dev sdb, sector 114344960 op 0x0:(READ) flags 0x0 phys_seg 4 prio class 0
blk_update_request: I/O error, dev sdb, sector 114345472 op 0x0:(READ) flags 0x0 phys_seg 5 prio class 0
blk_update_request: I/O error, dev sdb, sector 114352128 op 0x0:(READ) flags 0x0 phys_seg 22 prio class 0
sd 1:0:0:0: [sdb] Synchronize Cache(10) failed: Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
usb 2-1.2: new SuperSpeed Gen 1 USB device number 5 using xhci_hcd
usb 2-1.2: New USB device found, idVendor=174c, idProduct=55aa, bcdDevice= 1.00
New USB device strings: Mfr=2, Product=3, SerialNumber=1
usb 2-1.2: Product: ASM105x
usb 2-1.2: Manufacturer: ASMedia
usb 2-1.2: SerialNumber: WD-WCC7K0ZET7JE
usb 2-1.2: UAS is blacklisted for this device, using usb-storage instead
usb-storage 2-1.2:1.0: USB Mass Storage device detected
usb-storage 2-1.2:1.0: Quirks match for vid 174c pid 55aa: c00000
scsi host2: usb-storage 2-1.2:1.0
scsi 2:0:0:0: Direct-Access ASMedia ASM105x 0 PQ: 0 ANSI: 6
sd 2:0:0:0: Attached scsi generic sg1 type 0
sd 2:0:0:0: [sdc] 7814037168 512-byte logical blocks: (4.00 TB/3.64 TiB)
sd 2:0:0:0: [sdc] 4096-byte physical blocks
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Mode Sense: 43 00 00 00
sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, does not support DPO or FUA
sdc: sdc1
sd 2:0:0:0: [sdc] Attached SCSI disk
md: super_written gets error=10
md: super_written gets error=10
md: super_written gets error=10
[...more lines with the same message...]
Aborting journal on device md0-8.
Buffer I/O error on dev md0, logical block 488144896, lost sync page write
JBD2: Error -5 detected when updating journal superblock for md0-8.
当我没有发生这些错误
- 将有源 USB 3.0 集线器直接插入 USB 2 端口。
- 使用有源 USB2 集线器。
由此我得出结论,这个问题与树莓派上的 USB 3.0 有关。
目前 NAS 在 USB 2 端口上运行,没有任何其他错误。(已经好几天了。)但我宁愿不使用 USB 2 运行 NAS,因为我可以使用 USB 3 来利用我的千兆连接。
有谁知道这些错误来自哪里?
解决方案
推荐阅读
- c# - 尝试使用 Newtonsoft 将对象序列化为流,得到一个空流
- r - 错误:无法加载包“rJava”但库(rJava)正在工作
- c# - .net Core 2.2 Angular 模板 - 基础 href
- android - 底部导航视图与 RecyclerView 的最后一项重叠
- regex - 将正则表达式应用于文本文件并将结果保存在字典 python 中
- machine-learning - 如何在给定数据上正确构建模型以预测目标参数?
- webpack - Webpack:将每个入口点放到其单独的文件中
- c# - Xamarin.Android - 布局设计器空白
- artifactory - JFrog Xray 安装 Docker 在 CentOS 上安装 - 权限被拒绝
- java - 迭代变量在for循环之外是+1?