如何在不知道 grub 中的先前设备 ID 的情况下禁用 USB 的 UAS?

如何在不知道 grub 中的先前设备 ID 的情况下禁用 USB 的 UAS?

我有一个带外部 USB HDD 磁盘的 USB 集线器。我发现如果在 Linux 中专门启用了 UAS,Seagate HDD 不会提供智能信息(由于版权问题?)。这里,阅读讨论。

如果您知道设备 ID,则有一些选项可以专门针对 USB 设备禁用 UAS。但是,我遇到了 3 个问题:

  • 启动时 USB 磁盘可能处于打开或关闭状态
  • 我认为设备 ID 可能会改变
  • USB 集线器中的所有 3 个希捷磁盘都具有相同的设备 ID。
Bus 002 Device 019: ID 0bc2:aa15 Seagate RSS LLC Basic
Bus 002 Device 013: ID 0bc2:aa15 Seagate RSS LLC Basic
Bus 002 Device 023: ID 0bc2:aa15 Seagate RSS LLC Basic

禁用 UAS 的选项包括

  • 启动后:sudo rmmod usb-storagesudo modprobe usb-storage quirks=0bc2:aa15:u。但是,这不起作用rmmod: ERROR: Module usb_storage is in use by: uas

  • 创建新文件/etc/modprobe.d/disable-uas.confoptions usb-storage quirks=0bc2:aa15:u添加update-initramfs -u

  • 编辑/etc/default/grub和添加GRUB_CMDLINE_LINUX: ="usb-storage.quirks=0bc2:aa15:u"

  • (新发现)echo "0bc2:aa15:u"" | sudo tee /sys/module/usb_storage/parameters/quirks但也不起作用。

第一个选项不起作用。其他选项需要事先知道设备 ID,即使 USB 磁盘已关闭并在启动后打开,即使我已将其打开,启动后它们仍可能获得任何 ID(请参阅问题)。

我可以做什么?

答案1

USB 供应商和设备 ID 不是由操作系统提供的,而是设备本身的嵌入信息,因此除非您用另一个驱动器(不同型号)替换它,否则它不会改变。

驱动器是否打开/连接并不重要,因为模块参数只会让加载到内存中的驱动程序在插入匹配的设备时以不同的方式工作。

对于第三个问题,你可能无能为力:要么没有,要么全部。如果你不喜欢它,请使用不同型号的驱动器(或修改固件,使它们具有不同的 ID)。

相关内容