Étant donné un fichier de périphérique, par exemple /dev/sdb
, est-il possible de déterminer quel pilote se trouve derrière?
Plus précisément, je veux déterminer quel pilote mes périphériques de stockage utilisent. fdisk -l
répertorie 2 appareils: /dev/sda
et /dev/sdb
. L'un est un disque dur SATA et l'autre est un périphérique de stockage de masse USB - en fait une carte SD.
Comment déterminer, par programme, lequel est lequel?
J'écris un logiciel, et je veux protéger le débutant de l'effacement de leurs disques durs, tout en leur permettant d'effacer leurs cartes SD.
linux
drivers
devices
block-device
Alex Chamberlain
la source
la source
Réponses:
Exécutez
udevadm info -a -n /dev/sda
et analysez la sortie. Vous verrez des lignes commepour un disque SATA utilisant le
ahci
pilote, oupour un périphérique connecté par USB. Vous pourrez également afficher les noms des fournisseurs et des modèles pour confirmation. Également,
est présent sur les appareils amovibles.
Toutes ces informations peuvent également être obtenues via
/sys
(en fait, c'est là queudevadm
va chercher), mais l'/sys
interface change de temps en temps, donc l'analyseudevadm
est plus robuste à long terme.la source
-n
attend un chemin vers un périphérique de bloc (quelque chose sous/dev
) alors qu'il-p
attend un chemin sous/sys
(par exemple-p /sys/block/sda
).