Cómo saber si un disco es un SSD o un HDD

159

Quiero saber si un disco es una unidad de estado sólido o un disco duro.

lshw no está instalado. Hago yum install lshw y dice que no hay ningún paquete llamado lshw. No sé qué versión de enlace es adecuada para mi CentOS.

Busco en la red y no hay nada que explique cómo saber si una unidad es SSD o HDD. ¿Debo formatearlos primero?

Resultado de fdisk -l :

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00074f7d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          14      103424   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              14         536     4194304   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             536       14594   112921600   83  Linux

Disk /dev/sdc: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdb: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdd: 480.1 GB, 480103981056 bytes
255 heads, 63 sectors/track, 58369 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
    
pregunta user4951 21.02.2013 - 08:43

8 respuestas

71

Con lsblk (parte del paquete util-linux ):

lsblk -d -o name,rota
NAME ROTA
sda     0
sdb     0
sdc     1

donde ROTA significa rotational device ( 1 si es verdadero, 0 si es falso)

    
respondido por el don_crissti 04.09.2015 - 11:02
37

Utilice smartctl (instale instalando smartmontools ) para recuperar la información del proveedor,

sudo smartctl -a /dev/sdb

Si ves una línea como esta,

Rotation Rate: Solid State Device

Eso sería una unidad SSD.

    
respondido por el daisy 21.02.2013 - 09:07
23

Necesitaba hacer esto en el VPS y ninguna de las soluciones proporcionadas funcionó para mí,

esta respuesta hizo el truco

enlace

por lo tanto, se trata de leer datos aleatorios de la unidad y evaluar el tiempo.

time for i in 'seq 1 1000'; do
    dd bs=4k if=/dev/sda count=1 skip=$(( $RANDOM * 128 )) >/dev/null 2>&1;
done

aquí están mis resultados para SSD

real    0m1.375s
user    0m0.285s
sys     0m0.944s

y HDD

real    0m14.249s
user    0m0.752s
sys     0m6.284s
    
respondido por el dav 08.01.2016 - 14:38
9

Las otras respuestas ya le dicen cómo obtener esta información de varias maneras, incluido /proc . Pero debe esperar que todos estos mecanismos se encuentren si hay alguna virtualización en el camino, como una matriz SAN híbrida con múltiples niveles, o si la máquina Linux es una máquina virtual (donde Linux probablemente informará al disco como un disco giratorio SCSI básico , independientemente de lo que realmente sea el hardware)

    
respondido por el Tim Cutts 04.09.2015 - 13:25
6

comprueba cat /proc/scsi/scsi . Allí deberías ver el modelo exacto de tu disco. luego simplemente busca en Google el modelo para encontrar información al respecto.

    
respondido por el replay 21.02.2013 - 09:01
2

Esta es una publicación antigua, pero quería compartir otra forma de hacerlo que descubrí por accidente:

sg_vpd --page=bdc /dev/sda

Este comando obtiene los datos vitales del producto para las características del dispositivo de bloque. Para un disco de cabezal giratorio, la salida incluirá: Tasa de rotación nominal: 7200 rpm Para un SSD, incluirá:   Medio no giratorio (por ejemplo, estado sólido)

    
respondido por el user177312 29.06.2016 - 12:13
-1
lsblk -d -o name,rota | awk '{ if ($2 =="1") print $1 "[HDD]"; else if ($2 =="0") print $1 "[SDD]";}'

el comando lsblk witch stand for list block tiene la capacidad de detectar el tipo de disco: un SSD o un disco duro clásico, combinado con el comando awk, solo hace que la salida de humain sea legible y más fácil de ver en una terminal, en lugar de que jugando con 0 y 1 valor.

    
respondido por el A.HEDDAR 27.04.2018 - 09:49

Lea otras preguntas en las etiquetas