Cómo saber si un disco es SSD o HDD
Teóricamente, tengo dos discos duros actualmente montados, uno SSD (sólido) y otro HDD (de aguja). ¿Será verdad?
Primero, necesitamos saber qué discos tenemos montados en nuestro sistema. Entre otros modos, lo podemos hacer con df
:
$ df -h | grep sd /dev/sda2 439G 310G 108G 75% / /dev/sda1 511M 5,3M 506M 2% /boot/efi /dev/sdc2 4,6T 4,6T 43G 100% /media/fernando/9ADC8B3BDC8B10A5
Ahora que ya sé que mis dos discos se encuentran en /dev/sda y /dev/sdc, puedo comprobar si es HDD (es rotatorio) o SSD (no rota) con el fichero queue/rotational asociado a cada disco. Si el valor almacenado es 1, es que rota (HDD) y si el valor es 0, es que no rota, por lo que será SSD:
$ cat /sys/block/sda/queue/rotational 0
$ cat /sys/block/sdc/queue/rotational 1
Por lo tanto, los discos que tengo montados ahora son uno SSD y otro HDD.
queue/rotational de un pendrive
¿Y los pendrives?
Los pendrives no son rotatorios, por lo que, en teoría debería devolver 0. Vamos a probarlo:
$ df -h | grep sd /dev/sda2 439G 310G 108G 75% / /dev/sda1 511M 5,3M 506M 2% /boot/efi /dev/sdc2 4,6T 4,6T 43G 100% /media/fernando/9ADC8B3BDC8B10A5 /dev/sdd1 15G 928K 15G 1% /media/fernando/KINGSTON
Tengo pinchado un pen en el dispositivo /dev/sdd, por lo que puedo probar con:
$ cat /sys/block/sdd/queue/rotational 1
Por lo tanto, si usamos con algo que no es un disco duro como tal, sino un pendrive, devuelve 1. Es contraintuitivo, pero es así, y por eso lo expongo aquí, para evitarles problemas que yo he tenido.