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

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

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

1 ответ1

2

/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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .