web-dev-qa-db-ja.com

特定のデバイスファイルの背後にあるドライバーは何ですか?

デバイスファイルが与えられた場合、/dev/sdb、その背後にあるドライバーを特定することは可能ですか?

具体的には、ストレージデバイスが使用しているドライバーを特定したいと思います。 fdisk -lは2つのデバイスをリストします:/dev/sdaおよび/dev/sdb。 1つはSATAハードドライブで、もう1つはUSBマスストレージデバイス(実際にはSDカード)です。

プログラムでどちらを決定するにはどうすればよいですか?

私はソフトウェアを書いています。初心者がハードドライブを壊さないように保護しながら、SDカードを消し去ることを許可したいと思います。

10

udevadm info -a -n /dev/sdaを実行し、出力を解析します。次のような行が表示されます

DRIVERS=="ahci"

ahciドライバーを使用するSATAディスクの場合、または

DRIVERS=="usb-storage"

uSB接続デバイスの場合。確認のためにベンダー名とモデル名を表示することもできます。また、

ATTR{removable}=="1"

リムーバブルデバイスに存在します。

この情報はすべて/sysからも取得できますが(実際、ここでudevadmが検索されます)、/sysインターフェイスは時々変更されるため、udevadmは、長期的にはより堅牢です。