Есть ли быстрый способ понять тип «хранилища» в Linux? Это жесткий диск или SSD (или NVMe)? Уже известно, что хост - это физическая машина, а не виртуальная машина. Первое, о чем я подумал - rotational
флаг под /sys/block/<device>/queue/
каталогом. Но по моему опыту даже для SSD-устройств оно может содержать значение «1». Вторым способом, более реалистичным и правдивым, была латентность. Это немного сложнее измерить (некоторые работают с / proc / diskstats), но выглядит более предпочтительным.
Есть ли другие способы? Важно отметить, что мне не нужно знать точную модель «хранилища», просто ее тип.
smartctl
упомянутыми здесь другими утилитами, такими какlshw
иlsblk
сообщают ту же информацию. См. Также askubuntu.com/q/792814/295286lshw
. Такжеlsblk
полагается наrotational
флаг в каталоге sysfs, поэтому я не могу доверять ему.smartctl
использует вызов ioctl и запрашивает информацию напрямую с устройства.Ответы:
Как насчет чего-то вроде
sudo smartctl -a /dev/<device> | grep Rotation
- если это вернетсяRotation Rate: Solid State Device
, то это SSD. Не уверен, что этот пуленепробиваемый метод тоже.источник