NVMe 存储设备的持久设备命名

Mou*_*inX 7 storage devices block-device

Linux 内核对存储设备的简单命名(例如 /dev/sda、/dev/sdb)可以在启动时随机更改。NVMe 存储设备也是如此吗?这些名称有 /dev/nvme0n1p1 和 /dev/nvme0n1p2 等。

小智 9

简短:不。您不能依赖描述符的名称。而你很可能永远不会。

NVMe 命名标准描述了:

  • nvme0:第一个注册设备的设备控制器
  • nvme0n1:第一个注册设备的第一个命名空间
  • nvme0n1p1:第一个注册设备的第一个命名空间的第一个分区

所以整体命名取决于你的物理布局。这可以根据您的用例通过添加/删除块设备、驱动器故障等而改变。

与 sd_ 描述符基本相同。

您可以依赖的是每个设备列出的分区的顺序,因为这些分区将存储在块设备的分区表中并从中读取。只要您不更改分区布局,顺序就保持不变。

最后,即使使用 NVMe,引用设备 UUID 或 PARTUUID 仍然是最佳做法。根据用例,参考 LABEL 可能更方便。