如何使用smartctl检查NVMe SSD?

Cer*_*rin 4 linux ssd hard-drive ubuntu smartctl

如何在 Ubuntu 上使用 smartctl 检查 NVMe ssd 的运行状况?

我的笔记本电脑配备 NVMe 固态硬盘,最近经常崩溃,并出现奇怪的磁盘读取错误。幸运的是,重新启动已暂时解决了该问题,但我正在尝试确认问题是 SSD 降级,而不是其他原因,例如主板故障。

smartctl 的一般用法是运行如下命令:

sudo smartctl -i /dev/sdX
Run Code Online (Sandbox Code Playgroud)

然而,NVMe 并不是这样安装的。它们使用 nvm* 前缀和额外的安装点层安装,显示:

ls -lah /dev/nv*
crw------- 1 root root 238,   0 Oct 31 10:11 /dev/nvme0
brw-rw---- 1 root disk 259,   0 Oct 31 10:11 /dev/nvme0n1
brw-rw---- 1 root disk 259,   1 Oct 31 10:11 /dev/nvme0n1p1
brw-rw---- 1 root disk 259,   2 Oct 31 10:11 /dev/nvme0n1p2
brw-rw---- 1 root disk 259,   3 Oct 31 10:11 /dev/nvme0n1p3
crw------- 1 root root  10, 144 Oct 31 10:11 /dev/nvram
Run Code Online (Sandbox Code Playgroud)

我该检查哪一个?这/dev/nvme0n1p2是我的主数据分区,但我还想确保其他分区没有损坏,所以大概我想检查“父”分区之一。

我检查/dev/nvme0还是/dev/nvme0n1

use*_*686 8

/dev/nvme0代表原始设备,是用于配置硬件的“控制”设备节点,而/dev/nvme0n1代表块存储 \xe2\x80\x93 或其块。(具体来说,nvme0n1 是一个命名空间\xe2\x80\x93 ,是一个类似于分区的逻辑划分,但处于“硬件”级别,与 SCSI LUN 略有相似。理论上,单个 NVMe 设备可以具有多个命名空间,例如具有不同的加密设置。)

\n

一般来说,SMART 信息(以及任何其他类型的硬件状态)对于设备来说是全局的,因此使用nvme0节点会更合适,但在当前的 Linux 版本中,控制设备和块存储设备都将接受 SMART ioctl所有相同的。(特别是在消费类 SSD 上,只有一个命名空间会出现。)

\n

(另外:这些不是挂载点 \xe2\x80\x93,它们是设备节点。挂载某些内容的目录成为挂载点,例如 /home。)

\n