desarrollo-web-br-bd.com

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

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 un paquete llamado lshw. No sé qué versión de http://pkgs.repoforge.org/lshw/ 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. ¿Debería formatearlos primero?

Consecuencia 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
221
user4951

Linux detecta automáticamente SSD y desde versión del núcleo 2.6.29, puede verificar sda con:

cat /sys/block/sda/queue/rotational

Deberías obtener 1 para discos duros y 0 para un SSD.

Probablemente no funcionará si su disco es un dispositivo lógico emulado por hardware (como un controlador RAID).

Ver esta respuesta para más información ...

347
Totor

Con lsblk (parte de la util-linux paquete):

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

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

111
don_crissti

Use smartctl (instalar instalando smartmontools) para recuperar 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.

54
daisy

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

esta respuesta hizo el truco

https://serverfault.com/questions/551453/how-do-i-verify-that-my-hosting-provider-gave-me-ssds/551495#551495

por lo tanto, se trata de leer datos aleatorios del disco 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
31
dav

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

14
Tim Cutts

cheque cat /proc/scsi/scsi. allí debería ver el modelo exacto de su disco. entonces solo googleas el modelo para encontrar información al respecto.

11
replay

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á: Velocidad de rotación nominal: 7200 rpm Para un SSD, incluirá: Medio no giratorio (por ejemplo, estado sólido)

4
user177312

Escriba esto en su terminal de Linux:

cat /proc/scsi/scsi

Como el mío:

$ cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST1000LM024 HN-M Rev: 0004
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: SAMSUNG SSD PM83 Rev: 3D1Q
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: HL-DT-ST Model: DVD+-RW GT80N    Rev: A103
  Type:   CD-ROM                           ANSI  SCSI revision: 05

Puede ver el modelo de su disco duro si es SSD o HHD.

1
user386433
lsblk -d -o name,rota | awk '{ if ($2 =="1") print $1 "[HDD]"; else if ($2 =="0") print $1 "[SDD]";}'

el comando lsblk que representa el bloque de lista 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 sea legible y más fácil de ver en un terminal, en lugar de jugar con 0 y 1 valor.

1
A.HEDDAR
find /sys/block/* -maxdepth 1 -exec echo {} \; -exec grep '0' {}/queue/rotational \; | grep -B1 '^0' | grep '^/' | sed 's/^.*\///g'

Esto busca todos los dispositivos de bloque y verifica si es giratorio (1); si no (0) es ssd.

Esto solo muestra discos marcados como ssd.

1
user515185