デバイスファイルが与えられた場合、/dev/sdb
、その背後にあるドライバーを特定することは可能ですか?
具体的には、ストレージデバイスが使用しているドライバーを特定したいと思います。 fdisk -l
は2つのデバイスをリストします:/dev/sda
および/dev/sdb
。 1つはSATAハードドライブで、もう1つはUSBマスストレージデバイス(実際にはSDカード)です。
プログラムでどちらを決定するにはどうすればよいですか?
私はソフトウェアを書いています。初心者がハードドライブを壊さないように保護しながら、SDカードを消し去ることを許可したいと思います。
udevadm info -a -n /dev/sda
を実行し、出力を解析します。次のような行が表示されます
DRIVERS=="ahci"
ahci
ドライバーを使用するSATAディスクの場合、または
DRIVERS=="usb-storage"
uSB接続デバイスの場合。確認のためにベンダー名とモデル名を表示することもできます。また、
ATTR{removable}=="1"
リムーバブルデバイスに存在します。
この情報はすべて/sys
からも取得できますが(実際、ここでudevadm
が検索されます)、/sys
インターフェイスは時々変更されるため、udevadm
は、長期的にはより堅牢です。