Imaginez ce scénario. Vous êtes un débutant qui a une expérience limitée avec Linux. Vous avez récemment acheté un nouvel ordinateur portable préinstallé avec Linux, par exemple Ubuntu. Vous ne savez pas vraiment si le disque installé est un SSD (Solid State Drive) ou un HDD normal (Hard Disk Drive). Aucun problème! Ce bref guide vous apprendra comment déterminer si le disque est SSD ou HDD dans les systèmes d'exploitation Linux.
Trouver si le disque est un SSD ou un HDD sous Linux
À partir de la version du noyau 2.6.29 , les systèmes d'exploitation Linux peuvent détecter automatiquement les SSD. Il existe plusieurs façons de déterminer si le disque est un SSD ou un HDD. Ici, j'ai donné 7 méthodes.
Méthode 1 - Vérifier si le disque est en rotation
Comme vous le savez peut-être déjà, le disque dur (HDD) traditionnel stocke les données sur un disque circulaire appelé plateau . Lorsque le disque tourne, la tête mobile de lecture/écriture accède aux données. Plus le disque tourne (tourne) vite, plus le disque dur fonctionne vite.
D'autre part, Solid State Drive (SDD) est une technologie de stockage moderne et un type de lecteur de disque plus rapide qui stocke les données sur des puces de mémoire flash accessibles instantanément. Contrairement aux disques durs traditionnels, les SSD ne comportent aucune pièce mobile et les SSD ne tournent pas .
Ainsi, pour savoir si le disque installé est un SSD ou un HDD normal, vérifiez simplement si le disque est rotatif à l'aide de la commande suivante :
$ cat /sys/block/sda/queue/rotational
Si la sortie est 1 , le disque est HDD. Si la sortie est 0 (zéro), le disque est SDD. Parce que les SSD ne tournent pas. La sortie doit donc être nulle si vous avez un SSD dans votre système.
Chaque lecteur a un répertoire dans /sys/class/block/ emplacement. Ainsi, vous pouvez également vérifier les détails d'autres lecteurs.
$ cat /sys/block/sdb/queue/rotational
$ cat /sys/block/sdc/queue/rotational
Remarque :
Si vous êtes sur une machine virtuelle invitée KVM, la lettre de lecteur serait vda . Le résultat variera en fonction du type de bus vous avez choisi lors de la machine virtuelle. Par exemple, si vous choisissez SATA comme type de bus pour le disque virtuel, vous verrez la sortie suivante :
$ cat /sys/block/vda/queue/rotational 1
Méthode 2 - Utilisation de la commande lsblk
Le lsblk la commande lit le sysfs système de fichiers et udev db pour collecter des informations sur tous les périphériques de bloc disponibles ou spécifiés. La commande lsblk fait partie de util-linux package et est pré-installé avec la plupart des distributions Linux.
Juste au cas où la commande lsblk n'est pas disponible, installez simplement le package util-linux à l'aide du gestionnaire de packages de votre distribution.
Par exemple, sur les systèmes basés sur Arch, vous pouvez l'installer à l'aide de la commande :
$ sudo pacman -S util-linux
Sur les systèmes basés sur Debian :
$ sudo apt install util-linux
Sur les systèmes basés sur RPM :
$ sudo yum install util-linux
Sur openSUSE :
$ sudo zypper install util-linux
Maintenant, trouvez si le disque est SSD ou HDD en utilisant la commande :
$ lsblk -d -o name,rota
Exemple de résultat :
NAME ROTA loop0 1 loop1 1 loop2 1 loop3 1 loop4 1 loop5 1 loop6 1 loop7 1 loop8 1 loop9 1 loop10 1 loop11 1 loop12 1 loop13 1 loop14 1 loop15 1 loop16 1 loop17 1 loop18 1 loop19 1 loop20 1 sda 1 sr0 1
Ici, "rota" signifie dispositif de rotation . Si vous obtenez la valeur de rotation dans la sortie ci-dessus comme 1 , le disque est HDD. Si la valeur est 0 (zéro) , alors le disque est SSD.
Méthode 3 - Utiliser les outils de surveillance SMART
L'autre façon de savoir si le disque est SSD ou HDD utilise smartctl commande. Le smartctl fait partie du package d'outils de surveillance S.M.A.R.T, qui est utilisé pour contrôler et surveiller S.M.A.R.T. disques durs ATA et SCSI activés.
Pour installer les outils de surveillance SMART sur Arch Linux et ses variantes, exécutez :
$ sudo pacman -S install smartmontools
Sur Debian, Ubuntu :
$ sudo apt install smartmontools
Sur RHEL, CentOS :
$ sudo yum install smartmontools
Sur openSUSE :
$ sudo zypper install smartmontools
Après avoir installé le package smartmontools, exécutez la commande suivante pour déterminer si le disque est un SSD ou un HDD :
$ sudo smartctl -a /dev/sda | grep 'Rotation Rate'
Si le disque est un SSD, vous obtiendrez une sortie comme ci-dessous.
Rotation Rate: Solid State Device
Si le disque est HDD, vous obtiendrez cette sortie :
Rotation Rate: 5400 rpm
Méthode 4 - Utilisation de dmesg + Google
Ce n'est pas une approche directe pour trouver le type de disque. Dans cette méthode, nous utilisons dmesg commande pour trouver le modèle de disque, puis google les détails pour savoir si le disque est SSD ou HDD.
$ dmesg | grep -i -e scsi -e ata
Vous verrez le nom du modèle de disque parmi tous les autres détails.
[...] [ 1.845159] scsi 0:0:0:0: Direct-Access ATA ST9500325AS DEM1 PQ: 0 ANSI: 5 [...]
Recherchez simplement ce modèle sur Google pour trouver les détails du disque.
Méthode 5 - Utilisation des détails SCSI + Google
C'est la même chose que la méthode ci-dessus. Nous récupérons le modèle de disque de /proc répertoire à l'aide de la commande :
$ cat /proc/scsi/scsi
Exemple de résultat :
Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST9500325AS Rev: DEM1 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi4 Channel: 00 Id: 00 Lun: 00 Vendor: PLDS Model: DVD+-RW DS-8A8SH Rev: KD11 Type: CD-ROM ANSI SCSI revision: 05 Host: scsi6 Channel: 00 Id: 00 Lun: 00 Vendor: Generic- Model: Multi-Card Rev: 1.00 Type: Direct-Access ANSI SCSI revision: 00
Et puis Google les détails pour savoir si le disque est SSD ou HDD.
Méthode 6 - Utilisation des utilitaires Sg3
Utilitaires Sg3 est une collection d'utilitaires pour les périphériques utilisant le jeu de commandes SCSI. Chaque utilitaire de ce package implémente une commande SCSI.
Sg3-utils est disponible dans les dépôts par défaut de Debian et Ubuntu. Pour l'installer sur votre système, exécutez simplement :
$ sudo apt install sg3-utils
Maintenant, vérifiez les données vitales du produit (VPD) pour les caractéristiques du périphérique de bloc en exécutant la commande suivante :
$ sudo sg_vpd --page=bdc /dev/sda
Exemple de résultat :
Block device characteristics VPD page (SBC): Nominal rotation rate: 5400 rpm Product type: Not specified WABEREQ=0 WACEREQ=0 Nominal form factor not reported ZONED=0 BOCS=0 FUAB=0 VBULS=0
Passez par la sortie. Si la sortie contient cette ligne - "Taux de rotation nominal :5 400 tr/min" , c'est le disque dur. Pour SSD, vous verriez probablement - "Support non rotatif" .
Méthode 7 – Analyse comparative des performances d'accès au disque
Déterminez si le disque est un SSD ou un HDD en lisant des blocs aléatoires du disque à l'aide de la commande :
time for i in `seq 1 1000`; do dd bs=4k if=/dev/sda count=1 skip=$(( $RANDOM * 128 )) >/dev/null 2>&1; done
Cette commande lira 1000 blocs aléatoires de 4k à partir des 16 premiers Go d'un disque.
Si votre disque est un SSD, l'opération devrait se terminer en environ une seconde . Si le disque est un disque dur, cela prendra quelques secondes.
Cela sera utile pour vérifier les disques de votre VPS. Si vous utilisez un VPS et que vous vouliez vérifier si l'hébergeur vous a fourni un SSD ou un HDD, c'est une façon de le savoir !
Et s'il y a plusieurs disques ?
Que se passe-t-il si j'ai deux disques, l'un SSD et l'autre HDD ? Les deux disques sont de même taille et du même fabricant. Je ne sais pas sur quel disque mon Linux est installé. Dans ce cas, recherchez simplement sur quel disque se trouve le système de fichiers racine à l'aide de la commande suivante :
$ df / -h
Exemple de résultat :
Filesystem Size Used Avail Use% Mounted on /dev/sda1 458G 341G 95G 79% /
Vous pouvez également utiliser lshw commande pour trouver plus de détails sur les disques :
$ sudo lshw -short -C disk
Exemple de résultat :
H/W path Device Class Description ==================================================================== /0/100/1d/1/1/6/0.0.0 /dev/sdb disk Multi-Card /0/100/1d/1/1/6/0.0.0/0 /dev/sdb disk /0/1/0.0.0 /dev/sda disk 500GB ST9500325AS /0/2/0.0.0 /dev/cdrom disk DVD+-RW DS-8A8SH
Comme vous le voyez dans la sortie ci-dessus, mon système de fichiers racine est installé dans /dev/sda . Suivez maintenant l'une des méthodes ci-dessus pour déterminer si le disque est un disque dur ou un SSD.
Remarque :
Dans certains nouveaux ordinateurs portables comme Lenovo ideapad s240 , vous verrez un nom d'appareil différent, par exemple nvme0n1 . Voyons la liste des périphériques de bloc disponibles à l'aide de la commande :
$ ls /sys/block
Exemple de résultat :
loop0 loop11 loop14 loop17 loop2 loop3 loop6 loop9 loop1 loop12 loop15 loop18 loop20 loop4 loop7 nvme0n1 loop10 loop13 loop16 loop19 loop21 loop5 loop8
Découvrons sur quel disque se trouve le système de fichiers racine :
$ df / -h
Exemple de résultat :
Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p6 96G 34G 58G 34% /
Comme vous le voyez dans les sorties ci-dessus, il n'y a pas de sda ou sdb . Ne pas paniquer! C'est normal. Le /dev/nvme ... le nom de l'appareil indique le nouveau NVMe "disques". Si le disque est connecté via un port NVM Express au lieu d'un port SATA ou SAS traditionnel, vous verrez un nom de périphérique différent, comme indiqué dans la sortie ci-dessus.
Ici, /dev/nvme0n1 est équivalent à /dev/sda . Par conséquent, /dev/nvme0n1p6 est équivalent à /dev/sda6 .
Lecture suggérée :
- Comment trouver les spécifications matérielles sous Linux
- Comment vérifier si un système Linux est une machine physique ou virtuelle
- Comment vérifier si un système Linux est 32 bits ou 64 bits
- Comment savoir si un processeur prend en charge la technologie de virtualisation (VT)
Ce sont quelques méthodes pour savoir si le disque est SSD ou HDD sous Linux. J'espère que cela a été utile.
Icône SSD Image par PagDev de Pixabay
Hdd icon Image par Clker-Free-Vector-Images de Pixabay