web-dev-qa-db-fra.com

Comment savoir si un disque est un SSD ou un disque dur

Je veux savoir si un disque est un disque SSD ou un disque dur.

lshw n'est pas installé. Je fais yum install lshw et il indique qu'il n'y a pas de paquet nommé lshw. Je ne sais pas quelle version de http://pkgs.repoforge.org/lshw/ convient à mon CentOS.

Je recherche sur le net et il n'y a rien qui explique comment savoir si un lecteur est SSD ou HDD. Dois-je simplement les formater en premier?

Résultat 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 détecte automatiquement les SSD et depuis la version 2.6.29 du noyau, vous pouvez vérifier sda avec:

cat /sys/block/sda/queue/rotational

Tu devrais obtenir 1 pour les disques durs et 0 pour un SSD.

Cela ne fonctionnera probablement pas si votre disque est un périphérique logique émulé par du matériel (comme un contrôleur RAID).

Voir cette réponse pour plus d'informations ...

347
Totor

Avec lsblk (partie du util-linux paquet):

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

ROTA signifie rotational device (1 si vrai, 0 si faux)

111
don_crissti

Utilisez smartctl (installez en installant smartmontools) pour récupérer les informations du fournisseur,

Sudo smartctl -a /dev/sdb

Si vous voyez une ligne comme celle-ci,

Rotation Rate: Solid State Device

Ce serait un lecteur SSD.

54
daisy

Je devais le faire sur le VPS et aucune des solutions fournies ne fonctionnait pour moi,

cette réponse a fait l'affaire

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

il s'agit donc de lire des données aléatoires sur le lecteur et d'évaluer l'heure.

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

voici mes résultats pour SSD

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

et disque dur

real    0m14.249s
user    0m0.752s
sys     0m6.284s
31
dav

Les autres réponses vous indiquent déjà comment obtenir ces informations de différentes manières, notamment /proc. Mais vous devez vous attendre à ce que tous ces mécanismes mentent s'il y a une virtualisation sur le chemin, comme un tableau hybride SAN avec plusieurs niveaux, ou si la machine Linux est une machine virtuelle (où Linux sera probablement signaler le disque comme un disque rotatif SCSI de base, quel que soit le matériel)

14
Tim Cutts

vérifier cat /proc/scsi/scsi. là, vous devriez voir le modèle exact de votre disque. il vous suffit ensuite de rechercher le modèle sur Google pour trouver des informations à ce sujet.

11
replay

Ceci est un ancien poste mais je voulais partager une autre façon de le faire que j'ai découverte par accident:

sg_vpd --page=bdc /dev/sda

Cette commande récupère les données vitales du produit pour les caractéristiques du périphérique de bloc. Pour un disque à tête rotative, la sortie comprendra: Taux de rotation nominal: 7200 tr/min Pour un SSD, il comprendra: Support non rotatif (par exemple à l'état solide)

4
user177312

Tapez ceci dans votre terminal Linux:

cat /proc/scsi/scsi

Comme le mien:

$ 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

Vous pouvez voir le modèle de votre disque dur s'il est SSD ou HHD.

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

la commande lsblk représentant le bloc de liste a la capacité de détecter le type de disque: un SSD ou un disque dur classique, combinée avec la commande awk, elle rend la sortie humaine lisible et plus facile à voir sur un terminal, plutôt que de jouer avec 0 et 1 valeur.

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

Ceci recherche tous les périphériques de bloc et vérifie s'il est rotatif (1); sinon (0) c'est ssd.

Cela n'affiche que les disques marqués ssd.

1
user515185