如何按控制器分组列出树状层次结构中的所有磁盘设备?例如,主板上连接了 2 个 PCI 4 端口 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 记忆棒时,它有时会弄乱一些东西...所以,通过类似于持久网络接口名称的控制器 id 来寻址 sd 设备的方法会很好。
答案1
我发现 /dev/disk/by-path 包含指向 sdX 文件的符号链接,其中包含 PCI/USB 控制器 ID 和端口……这不是我想要的输出,但我可以用它来获取关联 sdX=>portID。