为移动硬盘禁用 UAS

使用 UAS 可能导致 smartmontools 等工具无法正常工作。可以通过编辑 GRUB 配置给内核传递参数,为某一特定设备禁用 UAS。

例如,编辑 /etc/grub.d/10_linux 文件,在文件首部添加 GRUB_CMDLINE_LINUX="usb_storage.quirks=idVendor:idProduct:u" 这一行配置,将 idVendoridProduct 替换为设备的实际值。

idVendoridProduct 可以通过 dmesg 获得。

比如下面的 dmesg 信息:

    usb 2-1: new SuperSpeed USB device number 8 using xhci_hcd
    usb 2-1: New USB device found, idVendor=0bc2, idProduct=231a
    usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [...]
    scsi host4: uas
    scsi 4:0:0:0: Direct-Access     VENDOR-NAME               0204 PQ: 0 ANSI: 6
    sd 4:0:0:0: Attached scsi generic sg2 type 0
    sd 4:0:0:0: [sdc] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
    sd 4:0:0:0: [sdc] 4096-byte physical blocks
    sd 4:0:0:0: [sdc] Write Protect is off
    sd 4:0:0:0: [sdc] Mode Sense: 53 00 00 08
    sd 4:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
    sdc: sdc1 sdc2
    sd 4:0:0:0: [sdc] Attached SCSI disk

从中我们可以得到 idVendor0bc2idProduct231a

编辑完 GRUB 配置文件,运行 update-grub 使配置生效。重启后,即可为 idVendor:idProduct 设备禁用 UAS。