如何使用 smartctl 检查 NVMe ssd?

如何使用 smartctl 检查 NVMe ssd?

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

我的笔记本电脑配有 NVMe 固态硬盘,最近经常崩溃,并出现奇怪的磁盘读取错误。幸运的是,重新启动暂时解决了这个问题,但我试图确认问题是固态硬盘性能下降,而不是其他问题,例如主板故障。

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

sudo smartctl -i /dev/sdX

但是,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

我应该检查其中哪一个?这/dev/nvme0n1p2是我的主要数据分区,但我还想确保其他分区未损坏,因此我可能需要检查其中一个“父”分区。

我是否应该检查/dev/nvme0/dev/nvme0n1

答案1

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

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

(另外:这些不是挂载点——它们是设备节点。挂载某些东西的目录将成为挂载点,例如 /home。

答案2

您似乎对 SMART 的功能存在误解。

SMART 不是用于检查分区,而是用于检查硬件驱动器的物理状态/错误。在smartctl或 上/dev/sda运行都没有区别/dev/sda1,输出将始终引用物理驱动器/dev/sda

相关内容