Quale driver si trova dietro un determinato file del dispositivo?


10

Dato un file dispositivo, diciamo /dev/sdb, è possibile determinare quale driver è dietro di esso?

In particolare, desidero determinare quale driver utilizzano i miei dispositivi di archiviazione. fdisk -lelenca 2 dispositivi: /dev/sdae /dev/sdb. Uno è un disco rigido SATA e l'altro è un dispositivo di archiviazione di massa USB, in realtà una scheda SD.

Come posso determinare, a livello di codice, quale è quale?

Sto scrivendo un software e voglio proteggere il principiante dall'annullare i loro dischi rigidi, permettendo loro di cancellare le loro schede SD.


Presumo che tu stia eseguendo Linux, in base alla scelta del nome del dispositivo.
Gilles 'SO- smetti di essere malvagio' l'

@Gilles Sì, mi dispiace che probabilmente è un'informazione piuttosto importante ... Grazie!
Alex Chamberlain,

Risposte:


12

Esegui udevadm info -a -n /dev/sdae analizza l'output. Vedrai linee come

DRIVERS=="ahci"

per un disco SATA che utilizza il ahcidriver o

DRIVERS=="usb-storage"

per un dispositivo collegato tramite USB. Sarai anche in grado di visualizzare i nomi dei fornitori e dei modelli per la conferma. Anche,

ATTR{removable}=="1"

è presente su dispositivi rimovibili.

Tutte queste informazioni possono anche essere ottenute attraverso /sys(in effetti, è lì che udevadmva a cercare), ma l' /sysinterfaccia cambia di volta in volta, quindi l'analisi udevadmè più solida a lungo termine.


@AlexChamberlain Siamo spiacenti, si -naspetta un percorso verso un dispositivo a blocchi (qualcosa sotto /dev) mentre si -paspetta un percorso sotto /sys(ad esempio -p /sys/block/sda).
Gilles 'SO- smetti di essere malvagio' il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.