![如何通过 sysfs 确定主/辅 IDE 通道(如果可能)](https://linux22.com/image/47734/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20sysfs%20%E7%A1%AE%E5%AE%9A%E4%B8%BB%2F%E8%BE%85%20IDE%20%E9%80%9A%E9%81%93%EF%BC%88%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%EF%BC%89.png)
虽然我已经有了很好的基本了解sysfs
,但仍然有一些事情我无法自己解决。
首先,我想弄清楚通过sysfs
(当然稍后通过脚本)块设备(HDD、DVD...)连接到哪个通道。
有趣的是我可以弄清楚如何主人或奴隶!树中有一个根深蒂固的内部 ID sysfs
,它泄露了这一点:因此9:0:1
意味着该设备已连接到(主要或次要)奴隶渠道。 (最后一位数字为 0 时为主通道;最后一位数字为 1 时为从通道)好的,但这仍然无法告诉我它是主通道还是辅助通道。
在对此进行一些研究时,我发现了一个Linux 2.6LKML 中的相关帖子:https://lkml.org/lkml/2006/3/25/20显示示例路径,例如../../../devices/pci0000:00/0000:00:04.0/ide0/0.0/
.
嗯,这正是我所需要的!
但不幸的是,从 Linux 3.x 开始ideX
就找不到了。sysfs
也许它在内核版本 3 中被永久删除了?
答案1
事情已经重新安排。
现在,ATA 设备(旧的 IDE PATA — 并行 — 和较新的 SATA — 串行)都位于路径下/sys/devices/pcixxxx:xx/xxxx:xx:xx.x/atax
(其中x
代表数字),例如/sys/devices/pci0000:00/0000:00:11.0/ata1/link1
第一个控制器上的第一个设备。