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
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 ...
Avec lsblk
(partie du util-linux
paquet):
lsblk -d -o nom, rota
NAME ROTA
sda 0
sdb 0
sdc 1
où ROTA
signifie rotational device
(1
si vrai, 0
si faux)
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.
Je devais le faire sur le VPS et aucune des solutions fournies ne fonctionnait pour moi,
cette réponse a fait l'affaire
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
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)
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.
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)
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.
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.
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.