Как мне перечислить все дисковые устройства в древовидной иерархии, сгруппированной по контроллеру? Например, если к материнской плате подключены две карты PCI 4port SATA + 2 диска SATA, я бы хотел увидеть что-то вроде:
---- mobo SATA controller
| |- mobo port 1: WD80EFZX sda
| \- mobo port 2: WD80EFZX sdb
---- PCIe SATA controller #1
| |- card1 port 1: WD80EFZX sdc
| |- card1 port 2: WD80EFZX sdd
| |- card1 port 3: WD80EFZX sdf
| \- card1 port 4: WD80EFZX sde
\--- PCIe SATA controller #2
|- card1 port 1: WD80EFZX sdg
|- card1 port 2: WD80EFZX sdi
|- card1 port 3: WD80EFZX sdj
\- card1 port 4: WD80EFZX sdk
Использование sdX становится проблематичным, поскольку иногда при работе с USB он портится. При подключении к нему приставка ... поэтому какой-то способ адресации sd-устройства по идентификатору контроллера, подобный именам постоянных сетевых интерфейсов, был бы неплох.
Я обнаружил, что / dev / disk / by-path содержит символические ссылки на файлы sdX, которые содержат идентификатор и порт контроллера PCI / USB ... не совсем вывод, который я хотел, но я могу использовать его для получения ассоциация sdX => portID.