По файлу устройства, скажем /dev/sdb
, можно определить, какой драйвер стоит за ним?
В частности, я хочу определить, какой драйвер используют мои устройства хранения данных. fdisk -l
списки 2 устройств: /dev/sda
и /dev/sdb
. Один из них представляет собой жесткий диск SATA, а другой - запоминающее устройство USB - фактически SD-карту.
Как определить программно, какой именно?
Я пишу часть программного обеспечения, и я хочу защитить новичка от уничтожения их жестких дисков, в то же время позволяя им стирать свои SD-карты.
linux
drivers
devices
block-device
Алекс Чемберлен
источник
источник
Ответы:
Запустите
udevadm info -a -n /dev/sda
и проанализируйте вывод. Вы увидите такие строки, какдля диска SATA с использованием
ahci
драйвера, илидля устройства, подключенного через USB. Вы также сможете отображать названия поставщиков и моделей для подтверждения. Также,
присутствует на съемных устройствах.
Всю эту информацию также можно получить с помощью
/sys
(на самом деле, это то, чтоudevadm
нужно искать), но/sys
интерфейс время от времени меняется, поэтому анализudevadm
в долгосрочной перспективе является более надежным.источник
-n
ожидает путь к блочному устройству (что-то под/dev
), тогда как-p
ожидает путь под/sys
(например-p /sys/block/sda
).