如何在 Ubuntu 上使用 smartctl 检查 NVMe ssd 的运行状况?
我的笔记本电脑有一个 NVMe 固态驱动器,最近由于奇怪的磁盘读取错误而经常崩溃。幸运的是,重新启动暂时解决了这个问题,但我正在尝试确认这个问题是一个降级的 ssd,而不是其他问题,比如有故障的主板。
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
?
/dev/nvme0
代表原始设备并且是您用来配置硬件的“控制”设备节点,而/dev/nvme0n1
代表块存储 - 或其中的一个块。(具体来说,nvme0n1 是一个命名空间——类似于分区的逻辑划分,但在“硬件”级别,与 SCSI LUN 稍有相似。理论上,单个 NVMe 设备可以有多个命名空间,例如不同的加密设置。)通常,SMART 信息(以及任何其他类型的硬件状态)对设备来说是全局的,因此使用
nvme0
节点会更合适,但在当前的 Linux 版本中,控制设备和块存储设备都将接受 SMART ioctls 所有相同的。(特别是在消费类 SSD 上,只会出现一个命名空间。)(另外:那些不是挂载点——它们是设备节点。挂载某些东西的目录成为挂载点,例如 /home。)
您似乎对 SMART 的功能有误解。
SMART 不是用于检查分区,而是用于检查硬件驱动器的物理状态/错误。如果您
smartctl
在/dev/sda
or上运行,则不会有任何区别/dev/sda1
,输出将始终参考物理驱动器/dev/sda
。