Diberikan file perangkat, katakanlah /dev/sdb
, apakah mungkin untuk menentukan driver apa yang ada di belakangnya?
Secara khusus, saya ingin menentukan driver apa yang digunakan perangkat penyimpanan saya. fdisk -l
daftar 2 perangkat: /dev/sda
dan /dev/sdb
. Salah satunya adalah hard drive SATA dan yang lainnya adalah perangkat USB Mass Storage - sebenarnya kartu SD.
Bagaimana cara menentukan, secara terprogram, yang mana?
Saya sedang menulis perangkat lunak, dan saya ingin melindungi pemula dari melenyapkan hard drive mereka, sementara memungkinkan mereka untuk melenyapkan kartu SD mereka.
linux
drivers
devices
block-device
Alex Chamberlain
sumber
sumber
Jawaban:
Jalankan
udevadm info -a -n /dev/sda
dan parsing output. Anda akan melihat garis sepertiuntuk disk SATA menggunakan
ahci
driver, atauuntuk perangkat yang terhubung USB. Anda juga dapat menampilkan nama vendor dan model untuk konfirmasi. Juga,
hadir pada perangkat yang dapat dilepas.
Semua informasi ini juga dapat diperoleh melalui
/sys
(pada kenyataannya, itu adalah tempatudevadm
untuk melihat), tetapi/sys
antarmuka berubah dari waktu ke waktu, sehingga penguraianudevadm
lebih kuat dalam jangka panjang.sumber
-n
mengharapkan jalur ke perangkat blok (sesuatu di bawah/dev
) sedangkan-p
mengharapkan jalur di bawah/sys
(misalnya-p /sys/block/sda
).