Linux 上一致的 USB 设备适配器命名

Linux 上一致的 USB 设备适配器命名

我有一个 USB 端口,我经常将各种不同的 USB 磁盘插入其中。内核不会始终为其分配相同的设备,因此每次插入后我都必须四处寻找。我怎样才能始终获得相同的设备名称?

请注意,通过 UUID 或类似方式驱动此磁盘不起作用,因为我对不同的磁盘使用相同的端口。这不是我想要一致命名的磁盘,而是位于一致端口中的当前磁盘。

我一直希望有某种/sys/…/controllerX/…/portY/…路径可以识别 USB 端口而不是磁盘,但是我找不到。

答案1

/dev/disk/by-path/就是你所寻求的。

例如,我的“某个”USB 端口中的 U 盘是:

pci-0000:03:00.0-usb-0:1:1.0-scsi-0:0:0:0 -> ../../sdc

断开连接并插入另一个端口后,情况如下:

pci-0000:03:00.0-usb-0:2:1.0-scsi-0:0:0:0 -> ../../sdc

在另一个港口:

pci-0000:00:1d.0-usb-0:1.2:1.0-scsi-0:0:0:0 -> ../../sdc

我把它放在那里,将另一个 U 盘插入“特定”端口。现在这两个是:

pci-0000:00:1d.0-usb-0:1.2:1.0-scsi-0:0:0:0 -> ../../sdc
pci-0000:03:00.0-usb-0:1:1.0-scsi-0:0:0:0 -> ../../sdd

请注意,sdd(另一个 U 盘)的“路径”名称sdc与它在“特定” USB 端口时的名称相同。文件系统中的完整路径是

/dev/disk/by-path/pci-0000:03:00.0-usb-0:1:1.0-scsi-0:0:0:0

在我的例子中。它的第一个分区是

/dev/disk/by-path/pci-0000:03:00.0-usb-0:1:1.0-scsi-0:0:0:0-part1

我相信这能解决你的问题。

相关内容