如何检测 udev 规则中的任意 SSD?

如何检测 udev 规则中的任意 SSD?

我想添加一个 udev 规则来设置sysctl -w vm.swappiness = 100引导分区位于闪存设备上的计算机。

我当前的系统使用 NVMe 卡,我可以将其检测为SUBSYSTEM="nvme",但我认为(目前我没有可用于检查的值)SATA SSD 的值为"scsi",这不是 SSD 特定的。事实上,当我写这篇文章时,我依稀记得一些制造商最近宣布了旋转磁盘 NVMes 用于某些利基用途,所以这也不完美(尽管它适合我的目的)。

我怎样才能在udev规则中可靠地检测存储设备的“技术”?

答案1

您可以检查/sys/block/*/queue/rotational内核是否认为它是具有旋转介质的存储设备。这与子系统无关。

它甚至可以用于udev

udevadm info -a /dev/nvme0n1 | grep -F 'ATTR{queue/rotational}'
    ATTR{queue/rotational}=="0"

相关内容