![无法通过 USB 正确检测 SSD 功能(旋转/丢弃)](https://linux22.com/image/1060009/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20USB%20%E6%AD%A3%E7%A1%AE%E6%A3%80%E6%B5%8B%20SSD%20%E5%8A%9F%E8%83%BD%EF%BC%88%E6%97%8B%E8%BD%AC%2F%E4%B8%A2%E5%BC%83%EF%BC%89.png)
我在 Thinkpad W520 上使用 Ubuntu 16.04,内核为 4.10.0-20-generic(hwe-edge)。我有两个 SSD 驱动器:一个闪存 USB 3.0 棒和一个 SATA Samsung 850 EVO SSD。当我将它们连接到 USB(闪存棒直接连接,SSD 位于 Orico 2.5 英寸 SATA3.0 HDD 外壳内)时,内核将它们检测为旋转设备(lsblk -o name,rota 显示 1,/sys/block/<device>/queue/rotational 也显示)。
当我通过 eSATA 直接连接 SSD 时,它可以正确检测到旋转 = 0。
通过 USB 连接时如何纠正此问题?这很重要,因为例如 BTRFS 在检测到 SSD 驱动器时会自动启用一些特定于 SSD 的优化,并且它检测此问题的方式是通过查询 sysfs 中的旋转属性。我可以将我的 BTRFS 分区添加到 fstab 并在那里为 BTRFS 添加 SSD 选项,但这听起来像是黑客行为。
此外,当通过 USB 连接 SSD 时,无法检测到 SSD 的 DISCARD 功能(lsblk -D 显示 DISC-GRAN 和 DISC-MAX 为 0)。
答案1
我偶然发现了这个帖子,他们解释说这种情况发生是因为 USB-SATA 控制器不支持此功能。看来你必须为 SSD 购买特殊的 SATA 外壳。