Linux 内核对存储设备的简单命名(例如/dev/sda、/dev/sdb)可以在引导过程中随机更改。 NVMe 存储设备也是如此吗?它们的名称例如 /dev/nvme0n1p1 和 /dev/nvme0n1p2 等。
答案1
简而言之:不可以。您不能依赖描述符的名称。而你很可能永远不会。
NVMe命名标准描述:
- nvme0:第一个注册设备的设备控制器
- nvme0n1:第一个注册设备的第一个命名空间
- nvme0n1p1:第一个注册设备的第一个命名空间的第一个分区
因此,整体命名取决于您的物理布局。这可以根据您的用例通过添加/删除块设备、驱动器故障等来改变。
与 sd_ 描述符基本相同。
您可以依赖的是每个设备列出的分区的顺序,因为这些分区存储在块设备的分区表中并从中读取。只要不更改分区布局,顺序就保持不变。
最后,即使使用 NVMe,引用设备 UUID 或 PARTUUID 仍然是最佳实践。根据使用情况,参考 LABEL 可能会更方便。