nvme-cli 命令拥有诸多实用的选项,且它是控制和管理数据一种很好的方式。
NVMe 是指非易失性内存规范Non-Volatile Memory Express,它规范了软件和存储通过 PCIe 和其他协议(包括 TCP)进行通信的方式。它是由非营利组织领导的 开放规范,并定义了几种形式的固态存储。
我的笔记本电脑有一个 NVMe 驱动器,我的台式机也有。而且它们的速度很快。我喜欢我的电脑启动的速度,以及它们读写数据的速度。几乎没有延迟。
没过多久,我就对驱动这种超高速存储的技术产生了好奇,所以我做了一些调查。我了解到,NVMe 驱动器消耗的电力更少,而提供的数据访问速度甚至比 SATA 的 SSD 驱动器快得多。这很有趣,但我想知道更多关于我的特定 NVMe 驱动器的信息,我想知道它们与其他驱动器有何区别。我可以安全地擦除驱动器吗?我怎样才能检查它的完整性?
带着这些问题我在互联网上搜索,发现了一个开源项目,其中有一系列管理 NVMe 驱动器的工具。它被称为 nvme-cli。
安装 nvme-cli
你可以从你的发行版的包管理器中安装 nvme-cli。例如,在 Fedora、CentOS 或类似系统上:
$ sudo dnf install nvme–cli在 Debian、Mint、Elementary 和类似系统上:
$ sudo apt install nvme–cli探索 NVMe 驱动器
在安装 nvme-cli 后,我想探索我的驱动器。nvme-cli 没有手册页,但你可以通过输入 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: listList all NVMe devices and namespaces on machine list–subsys List nvme subsystems id–ctrl SendNVMeIdentifyController id–ns SendNVMeIdentifyNamespace, display structure id–ns–granularity SendNVMeIdentifyNamespaceGranularityList, display structure list–ns SendNVMeIdentifyList, display structure list–ctrl SendNVMeIdentifyControllerList, display structure nvm–id–ctrl SendNVMeIdentifyController NVM CommandSet, display structure primary–ctrl–caps SendNVMeIdentifyPrimaryControllerCapabilities […]列出所有的 NVMe 驱动器
sudo nvme list 命令列出你机器上所有的 NVMe 设备和命名空间。我用它在 /dev/nvme0n1 找到了一个 NVMe 驱动器。下面是命令输出结果:
$ sudo nvme list Node SN ModelNamespaceUsageFormat FW Rev —————————————–—————————————-———————————–—————-——– /dev/nvme0n1 S42GMY9M141281 SAMSUNG MZVLB256HAHQ–000L71 214.68 GB /256.06 GB 512 B +0 B 0L2QEXD7我有一个名为 nvme0n1 的驱动器。它列出了序列号、品牌、容量、固件版本等等。
通过使用 id-ctrl 子命令,你可以得到更多关于该硬盘和它所支持的特性的信息:
$ sudo nvme id–ctrl /dev/nvme0n1 NVME IdentifyController: 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 […]驱动器健康
你可以通过 smart-log 子命令来了解硬盘的整体健康状况:
$ sudo nvme smart–log /dev/nvme0n1 SmartLogfor 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 WarningTemperatureTime:0 CriticalCompositeTemperatureTime:0 TemperatureSensor1:21 C TemperatureSensor2:22 C ThermalManagement T1 TransCount:0 ThermalManagement T2 TransCount:0 ThermalManagement T1 TotalTime:0 ThermalManagement T2 TotalTime:0这为你提供了硬盘的当前温度、到目前为止的使用时间、不安全的关机次数等等。
格式化一个 NVMe 驱动器
你可以用 nvme-cli 格式化一个 NVMe 驱动器,但要注意。这将删除驱动器上的所有数据!如果你的硬盘上有重要的数据,你必须在这样做之前将其备份,否则你将会丢失数据。子命令是 format:
$ sudo nvme format /dev/nvme0nX(为了安全起见,我用 X 替换了驱动器的实际位置,以防止复制粘贴的错误。将 X 改为 1 或 nvme list 结果中列出的实际位置。)
安全地擦除 NVMe 驱动器
当你准备出售或处理你的 NVMe 电脑时,你可能想安全地擦除驱动器。这里的警告与格式化过程中的警告相同。首先要备份重要的数据,因为这个命令会删除这些数据!
$ sudo nvme sanitize /dev/nvme0nX尝试 nvme-cli
nvme-cli 命令是在 GPLv2 许可下发布的。它是一个强大的命令,有很多有用的选项,用来有效地控制和管理数据。
原文链接:https://linux.cn/article-13822-1.html