两个NVMe SSD驱动器挂载一个驱动器很混乱

The*_*ist 4 ssd fstab mount nvme 18.04

我的新电脑有两个 NVMe SSD 芯片。两者都在主板上(不涉及 PCIe 卡)。其中一个是操作系统,另一个是用于大数据存储。为此,我写了这个/etc/fstab

/dev/nvme1n1p1    /mnt/data    auto    defaults    0    1
Run Code Online (Sandbox Code Playgroud)

但是,它们中的哪一个是nvme0n1p1,哪一个是nvme1n1p1?这完全是随机的,并且可能会在我的系统每次重新启动时发生变化。

由于该fstab行,有时正确的驱动器安装在 上/mnt/data,有时安装在系统驱动器上。因此,要解决此问题,我必须手动转到fstab并将数字从 0 更改为 1 或相反,然后

sudo umount /mnt/data
Run Code Online (Sandbox Code Playgroud)

然后

sudo mount -a
Run Code Online (Sandbox Code Playgroud)

这解决了问题。但我必须时不时地手动执行此操作。这使得无法将数据驱动器上的任何内容与启动相关联,因为我永远不会知道它们中的哪些将安装在/mnt/data.

你怎么认为?这个问题从何而来?

我正在使用 Ubuntu 18.04。

The*_*ist 6

感谢 guiverc 指出解决方案。它只是使用 UUID 而不是驱动器路径进行挂载。这是这样做的方法:

  1. 获取驱动器列表:
$ lsblk
Run Code Online (Sandbox Code Playgroud)

返回:

nvme1n1     259:0    0   1,8T  0 disk
??nvme1n1p1 259:5    0   1,8T  0 part /mnt/data
Run Code Online (Sandbox Code Playgroud)
  1. 获取您感兴趣的驱动器的 UUID:
$ sudo blkid | grep -i nvme1n1p1
Run Code Online (Sandbox Code Playgroud)

现在更改我的 fstab 行:

/dev/nvme1n1p1    /mnt/data    auto    defaults    0    1
Run Code Online (Sandbox Code Playgroud)

对此:

UUID=388f4772-1f41-4b13-9c74-9ed56c4bacc5    /mnt/data    auto    defaults    0    1
Run Code Online (Sandbox Code Playgroud)

就是这样。

  • 您可以使用 lsblk `lsblk -f` 看到 mount 和 UUID (3认同)