Utilisez cet outil de ligne de commande Linux pour en savoir plus sur vos lecteurs NVMe

NVMe signifie Mémoire non volatile Express, et il fait référence à la façon dont les logiciels et le stockage communiquent entre PCIe et d’autres protocoles, y compris TCP. C’est un spécification ouverte dirigé par une organisation à but non lucratif et définit plusieurs formes de stockage à l’état solide.
Mon ordinateur portable a un lecteur NVMe, tout comme mon ordinateur de bureau. Et ils sont rapides. J’aime la rapidité avec laquelle mes ordinateurs démarrent et à quelle vitesse ils sont capables de lire et d’écrire des données. Il n’y a pas de retard perceptible.
Il ne m’a pas fallu non plus longtemps pour m’intéresser à la technologie à l’origine de ce stockage ultra-rapide, j’ai donc fait une petite enquête. J’ai appris que les disques NVMe consomment moins d’énergie tout en offrant un accès aux données beaucoup plus rapide que même les disques SSD sur SATA. C’était intéressant, mais je voulais en savoir plus sur mes disques NVMe particuliers, et je voulais savoir comment ils se comparaient aux autres disques. Puis-je effacer le lecteur en toute sécurité ? Comment puis-je vérifier son intégrité?
Ces questions m’ont conduit à une recherche sur Internet qui a abouti à un projet open source avec une collection d’outils pour gérer les disques NVMe. C’est appelé nvme-cli.
Contents
Installer nvme-cli
Vous pouvez installer nvme-cli
depuis le gestionnaire de paquets de votre distribution. Par exemple, sur Fedora, CentOS ou similaire :
$ sudo dnf install nvme-cli
Sur Debian, Mint, Elementary et similaires :
$ sudo apt install nvme-cli
Explorer un lecteur NVMe
Après l’installation nvme-cli
pour ma distribution, j’ai voulu explorer mon drive. Il n’y a pas de page de manuel pour nvme-cli
, mais vous pouvez obtenir beaucoup d’aide en entrant nvme help
:
$ nvme help
nvme-1.14
usage: nvme <command> [<device>] [<args>]The '<device>' may be either an NVMe character device (ex: /dev/nvme0) or an
nvme block device (ex: /dev/nvme0n1).The following are all implemented sub-commands:
list List all NVMe devices and namespaces on machine
list-subsys List nvme subsystems
id-ctrl Send NVMe Identify Controller
id-ns Send NVMe Identify Namespace, display structure
id-ns-granularity Send NVMe Identify Namespace Granularity List, display structure
list-ns Send NVMe Identify List, display structure
list-ctrl Send NVMe Identify Controller List, display structure
nvm-id-ctrl Send NVMe Identify Controller NVM Command Set, display structure
primary-ctrl-caps Send NVMe Identify Primary Controller Capabilities
[...]
Répertorier tous les lecteurs NVMe
Les sudo nvme list
La commande répertorie tous les périphériques et espaces de noms NVMe sur votre machine. Je l’ai utilisé et j’ai trouvé un lecteur NVMe à /dev/nvme0n1
. Voici la sortie :
$ sudo nvme listNode SN Model Namespace Usage Format FW Rev
--------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 S42GMY9M141281 SAMSUNG MZVLB256HAHQ-000L7 1
214.68 GB / 256.06 GB 512 B + 0 B 0L2QEXD7
J’ai un lecteur appelé nvme0n1
. Il répertorie le numéro de série, la marque, la taille, la révision du micrologiciel, etc.
Vous pouvez obtenir encore plus d’informations sur le lecteur et les fonctionnalités qu’il prend en charge en utilisant le id-ctrl
sous-commande :
$ sudo nvme id-ctrl /dev/nvme0n1
NVME Identify Controller:
vid : 0x144d
ssvid : 0x144d
sn : S42GMY9M141281
mn : SAMSUNG MZVLB256HAHQ-000L7
fr : 0L2QEXD7
rab : 2
ieee : 002538
cmic : 0
mdts : 9
cntlid : 0x4
ver : 0x10200
rtd3r : 0x186a0
rtd3e : 0x7a1200
[...]
Santé du lecteur
Vous pouvez en savoir plus sur la santé globale d’un disque avec le smart-log
sous-commande :
$ sudo nvme smart-log /dev/nvme0n1
Smart Log for NVME device:nvme0n1 namespace-id:ffffffff
critical_warning : 0
temperature : 21 C
available_spare : 100%
available_spare_threshold : 10%
percentage_used : 2%
endurance group critical warning summary: 0
data_units_read : 5,749,452
data_units_written : 10,602,948
host_read_commands : 77,809,121
host_write_commands : 153,405,213
controller_busy_time : 756
power_cycles : 1,719
power_on_hours : 1,311
unsafe_shutdowns : 129
media_errors : 0
num_err_log_entries : 1,243
Warning Temperature Time : 0
Critical Composite Temperature Time : 0
Temperature Sensor 1 : 21 C
Temperature Sensor 2 : 22 C
Thermal Management T1 Trans Count : 0
Thermal Management T2 Trans Count : 0
Thermal Management T1 Total Time : 0
Thermal Management T2 Total Time : 0
Cela vous fournit la température actuelle du lecteur, les heures d’utilisation qu’il a eues jusqu’à présent, le nombre de fois qu’il a été arrêté de manière dangereuse, etc.
Formater un lecteur NVMe
Vous pouvez formater un lecteur NVMe avec nvme-cli
, mais attention : cela efface toutes les données du disque ! S’il y a des données importantes sur votre disque, vous doit sauvegardez-le avant de faire cela, sinon vous volonté perdre des données. La sous-commande est format
:
$ sudo nvme format /dev/nvme0nX
(Pour des raisons de sécurité, j’ai remplacé l’emplacement réel du lecteur par X pour éviter les accidents de copier-coller. Changer la X à 1 ou l’emplacement approprié tel qu’indiqué dans les résultats de nvme list
.)
Effacement sécurisé d’un lecteur NVMe
Lorsque vous vous préparez à vendre ou à vous débarrasser de votre ordinateur NVMe, vous souhaiterez probablement effacer le lecteur en toute sécurité. Les mêmes avertissements s’appliquent ici qu’avec le processus de formatage : Sauvegardez d’abord les données importantes car cette commande les efface !
$ sudo nvme sanitize /dev/nvme0nX
Essayez nvme-cli
Les nvme-cli
la commande est libérée sous un GPLv2 Licence. C’est une commande robuste avec de nombreuses options utiles, et c’est un excellent moyen de prendre le contrôle de la façon dont vous gérez vos données.