Powiedzmy /dev/sdb
, że na podstawie pliku urządzenia można ustalić, który sterownik za nim stoi?
W szczególności chcę ustalić, jakiego sterownika używają moje urządzenia pamięci masowej. fdisk -l
wyświetla 2 urządzenia: /dev/sda
i /dev/sdb
. Jeden to dysk twardy SATA, a drugi to urządzenie pamięci masowej USB - właściwie karta SD.
Jak programowo ustalić, która jest która?
Piszę oprogramowanie i chcę uchronić początkującego przed zatarciem dysków twardych, jednocześnie pozwalając na zatarcie kart SD.
linux
drivers
devices
block-device
Alex Chamberlain
źródło
źródło
Odpowiedzi:
Uruchom
udevadm info -a -n /dev/sda
i przeanalizuj dane wyjściowe. Zobaczysz takie liniedla dysku SATA przy użyciu
ahci
sterownika, lubdla urządzenia podłączonego przez USB. Będziesz także mógł wyświetlać nazwy dostawców i modeli w celu potwierdzenia. Również,
jest obecny na urządzeniach wymiennych.
Wszystkie te informacje można również uzyskać poprzez
/sys
(w rzeczywistości właśnie tamudevadm
należy szukać), ale/sys
interfejs zmienia się od czasu do czasu, więc parsowanieudevadm
jest bardziej niezawodne w dłuższej perspektywie.źródło
-n
oczekuje ścieżki do urządzenia blokowego (coś poniżej/dev
), podczas-p
gdy ścieżka oczekuje/sys
(np-p /sys/block/sda
.).