V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
louisxxx
V2EX  ›  问与答

NVMe 的盘符重启时会发生变化吗?

  •  
  •   louisxxx · 322 天前 · 776 次点击
    这是一个创建于 322 天前的主题,其中的信息可能已经有所发展或是发生改变。
    机子上接 5 个 U.2 NVMe 的盘,当前盘符号如下
    /dev/nvme0n1
    /dev/nvme1n1
    /dev/nvme2n1
    /dev/nvme3n1
    /dev/nvme4n1

    系统装在 /dev/nvme0n1 上,物理硬件不动的情况下重启系统时这些盘符和物理盘映射关系是一致的吗?
    普通盘 /dev/sda /dev/sdb 这种映射关系相对稳定。nvme 情况不得而知了
    12 条回复    2023-06-09 02:24:00 +08:00
    OutOfMemoryError
        1
    OutOfMemoryError  
       322 天前
    看 blkid ,挂载的时候用 UUID= 就不怕变化了
    zhlxsh
        2
    zhlxsh  
       322 天前 via iPhone
    我觉得跟内核参数和 udev 配置有关,不修改上两项重启不会有变化
    louisxxx
        3
    louisxxx  
    OP
       322 天前
    @zhlxsh
    @OutOfMemoryError 做了 md raid1 后把 nvme0n1p1 ( efi 分区)克隆到了 nvme1n1p1 上。现在从这 2 个盘都能启动。
    有一个问题是有时候启动看 /boot/efi 显示挂载了 nvme0n1p1 上,有时重启后又显示挂载到了 nvme1n1p1 上
    fstab 里挂 /boot/efi 用的是 uuid, 估计是我前面把 nvme0n1p1 ( efi 分区)克隆到了 nvme1n1p1 上,所以这 2 个盘上的分区 UUID 是一模一样的,导致启动会在两上盘上随机。
    louisxxx
        4
    louisxxx  
    OP
       322 天前
    NAME UUID
    nvme0n1
    ├─nvme0n1p1 FA59-9BCD
    └─nvme0n1p2 e7bbc320-1592-29cb-5adb-fe35c608d751
    └─md0 FGhfvc-pTcf-wI6M-cucT-t45c-Atqi-IJU4SA
    └─vg0-lv0 74e5af35-504b-4854-93b6-e6783b838d2a
    nvme1n1
    ├─nvme1n1p1 FA59-9BCD
    └─nvme1n1p2 e7bbc320-1592-29cb-5adb-fe35c608d751
    └─md0 FGhfvc-pTcf-wI6M-cucT-t45c-Atqi-IJU4SA
    └─vg0-lv0 74e5af35-504b-4854-93b6-e6783b838d2a
    nvme3n1
    ├─nvme3n1p1 FA59-9BCD
    └─nvme3n1p2 e7bbc320-1592-29cb-5adb-fe35c608d751
    └─md0 FGhfvc-pTcf-wI6M-cucT-t45c-Atqi-IJU4SA
    └─vg0-lv0 74e5af35-504b-4854-93b6-e6783b838d2a
    nvme2n1
    ├─nvme2n1p1 FA59-9BCD
    └─nvme2n1p2 e7bbc320-1592-29cb-5adb-fe35c608d751
    └─md0 FGhfvc-pTcf-wI6M-cucT-t45c-Atqi-IJU4SA
    └─vg0-lv0 74e5af35-504b-4854-93b6-e6783b838d2a

    efi 分区 uuid 全一样,目前这样使用不知道有没什么大隐患。
    ryd994
        5
    ryd994  
       322 天前 via Android
    @louisxxx UUID 可以修改的,用 mlabel

    你这样 boot 分区来回跳,那下次系统更新的时候就坑了
    因为更新需要把新的 initramfs 写到 boot 分区里
    然后你就有了两个不一样的 boot 分区
    ho121
        6
    ho121  
       322 天前 via Android
    我有两个 nvme 盘,实测硬盘编号会变,比如 nvme1 重启后可能变 nvme0 了。
    louisxxx
        7
    louisxxx  
    OP
       321 天前
    @ryd994 更新时要手动执行一个 hook 克隆脚本把更新的同步到其他盘上
    louisxxx
        8
    louisxxx  
    OP
       321 天前
    @ho121 我想过另一种方案,把 nvme1n1p1 也做成 Raid1 然后 /boot/efi 挂载 md1 不知道行不行。这样可以保证 /boot 里数据变化时自动同步到所有盘。
    louisxxx
        9
    louisxxx  
    OP
       321 天前
    我想过另一种方案,把 nvme1n1p1 也做成 Raid1 然后 /boot/efi 挂载 md1 不知道行不行。这样可以保证 /boot 里数据变化时自动同步到所有盘。

    /boot/efi 挂载 md1
    /boot 挂载在根目录上的( md0 )。

    @ryd994
    ho121
        10
    ho121  
       321 天前
    不妨看看 /dev/disk/by-path 和 /dev/disk/by-path ,这里面都是软连接到 /dev/xxx 的。
    louisxxx
        11
    louisxxx  
    OP
       321 天前
    @ho121 这个好像没有用,在建 raid 时输入 uuid 路径会自动按 uuid 找出盘符,然后实际是用盘符组的 raid
    ryd994
        12
    ryd994  
       321 天前 via Android
    最简单办法是只留一个,其他全部清空
    这样可以保证每次启动用的都是同一个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4640 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 04:03 · PVG 12:03 · LAX 21:03 · JFK 00:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.