我有一个 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
我相信这能解决你的问题。