我将 USB provisioning_mode 设置为 unmap,以允许支持 TRIM 的外部 USB SSD 丢弃 TRIM。系统在重新启动后恢复为 provisioning_mode full。TRIM 在 provisioning_mode 设置为 unmap 时工作良好,因此我可以根据需要手动 TRIM 分区或整个驱动器。我有多个 etc/udev/rules.d 文件 - 10-uas-discard.rules、10-trim.rules、50-usb-ssd-trim.rules 和 90-usb-discard.rules - 都包含完全相同的数据 - ACTION=="add|change", ATTRS{idVendor}=="174c", ATTRS{idProduct}=="55aa, SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"
有什么方法可以防止这种情况发生吗?我遗漏了什么吗?
ASMedia 芯片组:
驱动器统计:
fstab
:
USB udev 规则:
provisioning_mode 位置:
更多TRIM数据:
答案1
代替
ACTION=="add|change", ATTRS{idVendor}=="174c", ATTRS{idProduct}=="55aa, SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"
使用以下两行:
ACTION=="add", ATTRS{idVendor}=="174c", ATTRS{idProduct}=="55aa", SUBSYSTEM=="scsi_disk", RUN+="/usr/bin/sh -c 'sleep 1 && udevadm trigger --subsystem-match=scsi_disk'"
ACTION=="change", ATTRS{idVendor}=="174c", ATTRS{idProduct}=="55aa", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"
这是一个肮脏的解决方法,但它有效