我如何指示 ubuntu 将驱动器映射到特定的 /dev/xxx

我如何指示 ubuntu 将驱动器映射到特定的 /dev/xxx

这是关于如何识别哪个物理驱动器匹配的大量问题的反向问题/dev/sdx。当驱动器发生故障时,我想避免问这个问题。

我买了一个可以连接 8 个驱动器的适配器 (9211-8i)。两条 SFF-8087 电缆都标记清晰,因此我知道哪个是哪个物理驱动器。

但是,连接的驱动器被映射为/dev/sdx

仅供参考,我的 M.2 启动驱动器安装得很好,与/dev/nvmxxx系统中的其他驱动器很好地区分开来。

那么,我如何指示 ubuntu 设备映射器将我的控制器连接的驱动器映射为与驱动器所连接的物理端口完全匹配的不同的东西,例如/dev/scsi[abcdefgh]?事实上,我甚至更喜欢数字端口号,但我不确定它是否符合 unix 映射规则,其中驱动器用字母标记,然后是分区号,例如/dev/sda->/dev/sda1

谢谢

答案1

看一下/dev/disk/by-path/,它本质上就是这么做的。另一种方法是通过 UUID 或标签来引用它,这是分区的属性,而不是硬件的属性。如果您通过 UUID 引用磁盘,即使您将驱动器移动到另一台计算机,这也不会改变。

$ ls /dev/disk/
by-id  by-label  by-path  by-uuid

$ ls /dev/disk/by-path/
pci-0000:03:00.0-scsi-0:0:0:0        pci-0000:03:00.0-scsi-0:0:0:0-part2
pci-0000:03:00.0-scsi-0:0:0:0-part1  pci-0000:03:00.0-scsi-0:0:0:0-part5

如您所见,这根据路径(包括总线连接)唯一地标识了驱动器。这些文件是指向实际设备的符号链接:

$ ls -la pci-0000\:03\:00.0-scsi-0\:0\:0\:0
lrwxrwxrwx 1 root root 9 Oct 18 09:08 pci-0000:03:00.0-scsi-0:0:0:0 -> ../../sda

要识别驱动器,该实用程序lsblk很有用:

lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0      2:0    1    4K  0 disk
sda      8:0    0    8G  0 disk
├─sda1   8:1    0  7.6G  0 part /
├─sda2   8:2    0    1K  0 part
└─sda5   8:5    0  383M  0 part [SWAP]
sr0     11:0    1  247M  0 rom

要查看磁盘的 UUID,您可以运行sudo lsblk -f。这将显示 UUID,您也可以在以下位置找到它/dev/disk/by-uuid/

$ sudo lsblk -f
[...]
    └─system-swap  swap          73195006-1ae6-4d5f-87df-78cb52f48f15   [SWAP]
$ ls -la /dev/disk/by-uuid/73195006-1ae6-4d5f-87df-78cb52f48f15
    lrwxrwxrwx 1 root root 10 Oct 20 17:33 /dev/disk/by-uuid/73195006-1ae6-4d5f-87df-78cb52f48f15 -> ../../dm-3

这也可以在 fstab 中使用。例如:

UUID=f0a2eebe-1791-4c44-ab86-75ea81a82c43 /boot ext4 acl,user_xattr 1 2

将在 /boot 上挂载具有该 UUID 的分区。

相关内容