在 Linux(如 Ubuntu / Debian)系统下,使用采用 ASMedia(祥硕)主控芯片(如 174c:1156)的移动硬盘盒或底座时,内核默认启用的 UAS (USB Attached SCSI Protocol) 协议极易在高负载读写或并发传输时触发协议超时,导致硬盘突然掉盘、卡死甚至提示“输入/输出错误(Input/Output error)”。
本教程将引导你将驱动强制切换为稳健传统的 usb-storage 模式,彻底解决高负载掉盘问题。
第一步:确认设备 ID 与当前驱动状态
1.确认移动硬盘盒的 Vendor/Product ID:
lsusb
找到绿联硬盘盒对应的行,形如:
Bus 001 Device 003: ID 174c:1156 ASMedia Technology Inc. Ugreen Storage Device2.查看当前使用的内核驱动:
lsusb -t
如果看到对应接口显示 Driver=uas,说明当前正处于容易掉盘的 UAS 模式。
第二步:配置 USB 忽略规则 (Quirks) 与内核黑名单
下面操作将导致系统中所有使用 UAS 协议的 USB 存储设备(如其他高速移动硬盘、固态硬盘盒等)全部被迫降级运行在低速、传统的
usb-storage 驱动下。但其更加稳定! = ̄ω ̄=为了防止 uas 驱动在开机或插拔时被系统优先加载,需要同时写入 Quirks 规则与内核模块黑名单:
# 1. 针对 174c:1156 设备禁用 uas(标志位 u 代表 ignore-uas)
echo "options usb-storage quirks=174c:1156:u" | sudo tee /etc/modprobe.d/disable-uas.conf
# 2. 彻底屏蔽 uas 模块加载
echo "install uas /bin/true" | sudo tee /etc/modprobe.d/block-uas.conf
# 3. 更新内核引导镜像(使规则在系统启动初期生效,耗时约 10-20 秒)
sudo update-initramfs -u
如果是其他型号的绿联硬盘盒,查原盘ID(如
lsusb),把第一个命令里的174c:1156换成新ID即可。后面同理!!!第三步:无需重启,立即生效与驱动切换
系统在运行中不会自动把已被 uas 绑定的设备切过来,无需重启系统,运行以下命令向当前内存注入规则并重新识别设备:
# 1. 动态注入规则到内存中的 usb-storage 驱动,同理诺不同则把174c:1156换成新ID
echo "174c:1156:u" | sudo tee /sys/module/usb_storage/parameters/quirks
# 2. 解绑并重新绑定 USB 设备(假设硬盘在端口 1-1.6,请根据实际情况调整)
DEV_IF=$(basename /sys/bus/usb/drivers/uas/1-*) && \
echo "$DEV_IF" | sudo tee /sys/bus/usb/drivers/uas/unbind && \
echo "$DEV_IF" | sudo tee /sys/bus/usb/drivers/usb/bind
如果在执行解绑时提示设备 busy,也可以先执行
sudo umount -l /挂载路径,然后将 USB 数据线重新拔插一次。第四步:掉盘后的文件系统修复与重新挂载
如果之前掉盘导致了目录提示 输入/输出错误 或挂载点卡死,需要先清理旧挂载并修复文件系统(fsck):
# 1. 强制延迟解挂失效的旧挂载点(请将 /你的挂载路径 替换为实际目录)
sudo umount -l /你的挂载路径 2>/dev/null
# 2. 查看硬盘分区盘符与文件系统类型(从列表中找到你的分区,如 sdb1、nvme0n1p1 等)
lsblk -f
# 3. 修复文件系统逻辑错误(请将 /dev/你的分区 替换为实际盘符,如 /dev/sdd1)
# 注:根据文件系统选择命令,ext4 用 fsck.ext4,ntfs 用 ntfsfix,xfs 用 xfs_repair
sudo fsck.ext4 -y /dev/你的分区
# 4. 重新挂载到目录
sudo mount /dev/your_partition /你的挂载路径
第五步:验证
1.检查驱动:
lsusb -t
验证:对应设备端口应显示 Driver=usb-storage。
2.检查挂载与数据读写:
df -h | grep "/WB4T-raid1"
ls -la /WB4T-raid1
验证:命令能正常列出文件目录结构,且无任何 Input/Output error 报错。

Comments NOTHING