在 Linux 上使用 UAS USB3 存储的变通方法

发布: (2026年1月20日 GMT+8 09:53)
3 min read
原文: Dev.to

Source: Dev.to

Identify Storage

lsusb -tv
# view USB tree and the kernel driver in use (uas vs usb-storage)
# view VID:PID

Tip: lsusb -tv 是确认内核实际绑定到设备的驱动(uas 还是 usb‑storage)的最简方法。

Quirk Flags (What u and m mean)

usb-storage 模块接受一个 quirks= 参数,参数中可以包含一个或多个形如:

VID:PID:FLAGS

的条目。

常用的标志包括:

  • u = IGNORE_UAS – 强制内核不要为该设备绑定 uas 驱动,而使用 usb-storage(BOT)驱动。
  • m = MAX_SECTORS_64 – 将传输大小限制为 64 扇区(32 KB)。这可以在某些设备/桥接芯片对大传输不稳定时提升稳定性(但会牺牲性能)。

常见的组合是 mu:同时禁用 UAS 并限制传输大小,以获得更好的稳定性。

Temporary Settings (runtime / non‑persistent)

向 sysfs 写入只会影响当前运行的内核,重启后会失效。

Single device

echo "0bc2:231a:u" | sudo tee /sys/module/usb_storage/parameters/quirks
# disconnect and reconnect

Multiple devices (comma‑separated)

printf '0bc2:231a:u,6795:2756:mu\n' | sudo tee /sys/module/usb_storage/parameters/quirks
# disconnect and reconnect

Notes

  • 使用逗号分隔,不能有空格。
  • 这会覆盖当前值(不会追加)。

Add a device without losing existing entries

由于 sysfs 不支持追加模式,需要先读取当前值,加入新条目后再写回:

cur=$(cat /sys/module/usb_storage/parameters/quirks)
new='0bc2:231a:u'

if [ -z "$cur" ]; then
  printf '%s\n' "$new" | sudo tee /sys/module/usb_storage/parameters/quirks >/dev/null
else
  printf '%s,%s\n' "$cur" "$new" | sudo tee /sys/module/usb_storage/parameters/quirks >/dev/null
fi
# disconnect and reconnect

要让 quirks 在重启后仍然生效,需通过 modprobe.d 设置。

创建例如 /etc/modprobe.d/usb-storage-quirks.conf

options usb-storage quirks=0bc2:231a:u,6795:2756:mu

随后重启,或重新加载模块(重启通常是最简单、最可靠的方式,尤其是涉及 USB 存储绑定时)。

initramfs note (dracut / update‑initramfs)

在多数情况下,只需添加 modprobe.d 文件并重启即可。但如果系统在 initramfs 阶段就加载存储驱动(例如从 USB 存储启动,或在受影响的设备上使用 LUKS/LVM),则需要重新生成 initramfs,才能让新的 modprobe.d 设置在早期引导时生效。

RHEL/CentOS/Rocky/Alma/Fedora (dracut)

sudo dracut -f
sudo reboot

Debian/Ubuntu (initramfs‑tools)

sudo update-initramfs -u
sudo reboot

Notes

  • grub2-mkconfig 通常 不需要 用于 modprobe.d 的更改(它只用于 GRUB 菜单或内核命令行的修改,而不是模块选项文件)。
  • 即使重新生成了 initramfs,仍可能需要拔插设备(或重启)以让驱动重新绑定。

Confirm

确认设备正在使用 usb-storage(而非 uas):

lsusb -tv

查找类似 Driver=usb-storage 的行,以确认对应的设备路径。

References

Back to Blog

相关文章

阅读更多 »

Rapg:基于 TUI 的密钥管理器

我们都有这种经历。你加入一个新项目,首先听到的就是:“在 Slack 的置顶消息里查找 .env 文件”。或者你有多个 .env …

技术是赋能者,而非救世主

为什么思考的清晰度比你使用的工具更重要。Technology 常被视为一种魔法开关——只要打开,它就能让一切改善。新的 software,...

踏入 agentic coding

使用 Copilot Agent 的经验 我主要使用 GitHub Copilot 进行 inline edits 和 PR reviews,让我的大脑完成大部分思考。最近我决定 t...