[+] Lista zamontowanych systemów plików z usb
[+] Lista zamontowanych systemów plików z usb
Witam.
Potrzebuję pobrać listę zamontowanych systemów plików z urządzeń usb (pendrive, telefon, dysk przenośny). Wiem, że urządzenie w takim przypadku będzie używać sterownika usb-storage, ale nijak nie wiem jak powiązać te dane z systemem plików ani jak wydobyć sterownik dla zadanego urządzenia.
Potrzebuję aby to polecenie dało się wykonać bez uprawnień roota, mógłby ktoś nieco podpowiedzieć? Siedzę już kilka zdrowych godzin nad tym a jest mi to niezbędne na wczoraj.
Potrzebuję pobrać listę zamontowanych systemów plików z urządzeń usb (pendrive, telefon, dysk przenośny). Wiem, że urządzenie w takim przypadku będzie używać sterownika usb-storage, ale nijak nie wiem jak powiązać te dane z systemem plików ani jak wydobyć sterownik dla zadanego urządzenia.
Potrzebuję aby to polecenie dało się wykonać bez uprawnień roota, mógłby ktoś nieco podpowiedzieć? Siedzę już kilka zdrowych godzin nad tym a jest mi to niezbędne na wczoraj.
Jak zrobić to jednym poleceniem nie wiem, ale bazując na mojej skromnej wiedzy zrobiłbym to tak:
Na początku identyfikujemy które dyski są z usb. Można to zrobić poleceniem:
Jak widać w tym przypadku są dwa wyniki: pierwszy to nazwa urządzenia, drugi oznacza że na urządzeniu znajduje się jedna partycja. Teraz identyfikujemy urządzenie:
Problem w tym, że te urządzenia wcale nie muszą być zamontowane. Resztę kombinowałbym szukając powiązań pomiędzy powyższym, a tym co wyświetla:
Żadne z powyższych poleceń nie wymaga roota.
Może to trochę na około ale inaczej nie umiem, a nie chce mi się szukać.
Na początku identyfikujemy które dyski są z usb. Można to zrobić poleceniem:
Kod: Zaznacz cały
ls /dev/disk/by-id/usb*
/dev/disk/by-id/usb-Kingston_DataTraveler_2.0_0019E06B587B5C89160E3E09-0:0
/dev/disk/by-id/usb-Kingston_DataTraveler_2.0_0019E06B587B5C89160E3E09-0:0-part1
Kod: Zaznacz cały
readlink /dev/disk/by-id/usb-Kingston_DataTraveler_2.0_0019E06B587B5C89160E3E09-0\:0
../../sdc
Kod: Zaznacz cały
mount
Może to trochę na około ale inaczej nie umiem, a nie chce mi się szukać.
Dziękuję, readlinka mi właśnie brakowało.
Dodane:
Już się nacieszyłem tym rozwiązaniem, okazuje się, że dyski zewnętrzne są montowane pod
Czyli w tym samym miejscu co pozostałe dyski twarde. Problem pozostaje niestety nie rozwiązany, jeśli ktoś ma jakiś pomyśl to byłbym wdzięczny
Dodane:
Już się nacieszyłem tym rozwiązaniem, okazuje się, że dyski zewnętrzne są montowane pod
Kod: Zaznacz cały
/dev/disk/by-id/ata*
Bez względu na zachowanie systemu, automatyczne działania niektórych opcji (programów) zawsze można dodatkowo zamontować urządzenie zewnętrzne w dowolnym katalogu.
Dysk komputera to zazwyczaj:
Kolejne dyski to:
Nie wiem ile dysków zewnętrznych podpinasz w danym momencie, ale więcej niż dwa to moim zdaniem nie jest wskazane.
Jeżeli pamiętasz w jakiej kolejności podpinasz dyski to możesz je zawsze montować jako:
pierwszy dysk itd.
Ja w taki sposób montuję dyski zewnętrzne, na dowolnym Linuksie, kiedy muszę dotrzeć do określonej partycji zewnętrznego dysku np. na nie swoim systemie lub z poziomu livecd.
Ja korzystam z katalogu /mnt ale można zrobić to w dowolnie innym miejscu.
Dysk komputera to zazwyczaj:
Kod: Zaznacz cały
sda
Kod: Zaznacz cały
sdb
sdc
itd.
Jeżeli pamiętasz w jakiej kolejności podpinasz dyski to możesz je zawsze montować jako:
Kod: Zaznacz cały
mount /dev/sdb1 /mnt/ala | mkdir /mnt/ala
Ja w taki sposób montuję dyski zewnętrzne, na dowolnym Linuksie, kiedy muszę dotrzeć do określonej partycji zewnętrznego dysku np. na nie swoim systemie lub z poziomu livecd.
Ja korzystam z katalogu /mnt ale można zrobić to w dowolnie innym miejscu.
Przeczytaj temat od początku i zastanów się, czy szukam tego co napisałeś? Chcę wylistować punkty montowania urządzeń usb, potrzebne mi to do użycia w programie więc wszystko musi być dynamiczne, a nie tu na oko coś sprawdzę i tam.
Obecnie mam coś takiego:
ale jak już wspomniałem, brakuje mi tu dysków twardych podłączonych poprzez usb. Co prawda polecenie lsusb wyświetla kompletną listę urządzeń usb razem z dyskiem, ale niestety nie mam pomysłu jak to połączyć z wynikami polecenia df czy mount?
Obecnie mam coś takiego:
Kod: Zaznacz cały
for i in `ls /dev/disk/by-id/usb* | grep part`; do readlink $i; done | awk -F '/' '{ system( "df /dev/" $3 " | sed 1d") }' | awk '{ print $6" " $7}'
Moim zdaniem, to niedokładnie wiesz jak działa montowanie urządzeń np. usb w Linuksie i w ogóle nie zrozumiałeś tego o czym napisałem." pisze:Przeczytaj temat od początku i zastanów się, czy szukam tego co napisałeś?
Podepnij jakieś urządzenie usb i wydaj polecenie:
Kod: Zaznacz cały
dmesg | tail -n50
Kod: Zaznacz cały
blkid
Sprawdź zawartość katalogu:
Kod: Zaznacz cały
/media
Gwoli ścisłości, u mnie polecenie blkid nie wymaga uprawnień roota, wymaga jedynie wywołania z pełną ścieżką dostępu. Inna sprawa, że może to zależeć od grup, do których należy użytkownik.
Kod: Zaznacz cały
darkwater@blackhole:~$ /sbin/blkid /dev/sda1: UUID="7C143B2B143AE7B2" TYPE="ntfs"
/dev/sda2: UUID="02fd3be3-e41a-4417-b2f6-6d439c59765c" TYPE="ext4"
/dev/sda4: UUID="575ffe84-a0a1-492c-b2e1-bac905b2f65a" TYPE="ext3