Согласованное присвоение имен адаптерам USB в Linux

277
Johannes Ernst

У меня есть USB-порт, в который я со временем вставляю всевозможные USB-диски. Ядро не всегда выделяет для него одно и то же устройство, поэтому мне приходится охотиться после каждой вставки. Как я всегда могу получить одно и то же имя устройства?

Обратите внимание, что управление этим из UUID или около того не работает, потому что я использую один и тот же порт для разных дисков. Это не тот диск, который я хочу постоянно называть, это текущий диск, который находится в согласованном порту.

Я надеялся, что найдется какой-то /sys/…/controllerX/…/portY/…путь, который идентифицирует USB-порт, а не диск, но я не нашел его.

0

1 ответ на вопрос

2
Kamil Maciorowski

/dev/disk/by-path/ это то, что вы ищете.

Например, мой pendrive в «определенном» USB-порту был:

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 

Я оставил его там, подключил другой pendrive к «определенному» порту. Теперь эти два:

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(другой pendrive) имеет то же имя «by-path», которое 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 

Я считаю, что это решает вашу проблему.

Я не думал искать в / dev. Johannes Ernst 6 лет назад 0