Existe-t-il un moyen rapide de comprendre un type de "stockage" sous Linux? S'agit-il d'un disque dur ou SSD (ou NVMe)? Il est déjà connu que l'hôte est une machine physique et non une machine virtuelle. La première chose à laquelle j'ai pensé était le rotational
drapeau sous le /sys/block/<device>/queue/
répertoire. Mais d'après mon expérience, même pour les périphériques SSD, il peut contenir une valeur "1". La deuxième façon et plus réaliste et véridique était une latence. C'est un peu plus difficile à mesurer (certains fonctionnent avec / proc / diskstats), mais cela semble plus préférable.
Y a-t-il d'autres moyens? Il est important de mentionner que je n'ai pas besoin de connaître le modèle exact du "stockage", juste son type.
smartctl
mentionné ici, d'autres utilitaires tels quelshw
etlsblk
rapportent les mêmes informations. Voir aussi askubuntu.com/q/792814/295286lshw
.lsblk
S'appuie également sur l'rotational
indicateur dans le répertoire sysfs, donc je ne peux pas lui faire confiance.smartctl
utilise l'appel ioctl et demande des informations directement depuis l'appareil.Réponses:
Que diriez-vous de quelque chose comme
sudo smartctl -a /dev/<device> | grep Rotation
- si cela revientRotation Rate: Solid State Device
, alors c'est un SSD. Je ne sais pas si cette méthode à l'épreuve des balles non plus.la source