Linux

某個設備文件背後的驅動程序是什麼?

  • August 12, 2012

給定一個設備文件,比如說/dev/sdb,是否有可能確定它背後的驅動程序是什麼?

具體來說,我想確定我的儲存設備正在使用什麼驅動程序。fdisk -l列出 2 個設備:/dev/sda/dev/sdb. 一個是 SATA 硬碟驅動器,另一個是 USB 大容量儲存設備 - 實際上是 SD 卡。

我如何以程式方式確定哪個是哪個?

我正在編寫一個軟體,我想保護初學者不破壞他們的硬碟,同時允許他們清除他們的 SD 卡。

執行udevadm info -a -n /dev/sda並解析輸出。你會看到像

DRIVERS=="ahci"

對於使用ahci驅動程序的 SATA 磁碟,或

DRIVERS=="usb-storage"

對於 USB 連接的設備。您還可以顯示供應商和型號名稱以供確認。還,

ATTR{removable}=="1"

存在於可移動設備上。

所有這些資訊也可以通過/sys(其實就是udevadm去那裡看),但是/sys介面時常變化,所以udevadm長期來看解析更加健壯。

引用自:https://unix.stackexchange.com/questions/45267