Tło: Próbuję zamontować dysk USB jako tylko do odczytu, ale moja instalacja Ubuntu instaluje go po podłączeniu dysku.
Mogę ręcznie odmontować dysk i zamontować go ręcznie jako tylko do odczytu za pomocą poleceń umount i mount, ale to nie jest zabawne. Czy ktoś mógłby mi szybko wyjaśnić, w jaki sposób podłączenia USB są automatycznie wykonywane w typowym systemie Linux (udev? Tło historyczne też jest fajne) i może w jaki sposób mogę ulepszyć ten proces, aby pozwolić mi odczytać dysk na dysku?
Dzięki.
Edycja: Używam gnome, jeśli to w ogóle pomaga.
Edycja2: W pośpiechu zapomniałem podać trochę więcej informacji. Tak wygląda dysk z wyjścia „mount”.
/dev/sdb1 on /media/LaCie type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
Edycja3: Może to również być na swój sposób ponownie. W wyjściu mount mam również następujące elementy:
gvfs-fuse-daemon on /home/fletcher/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=fletcher)
Myślałem, że mogło to być związane z powyższym mocowaniem Fuseblk, ale dowiedziałem się o tym.
Gvfs to wirtualny system plików Gnome. Jest to wirtualny system plików zbudowany na bazie już istniejącego vfs jądra. gvfs korzysta z biblioteki GIO (która jest interfejsem API VFS), aby uzyskać dostęp do plików, urządzeń, zdalnych lokalizacji sieciowych itp. W tym przypadku powyżej („gvfs-fuse-daemon”) gvfs używa FUSE do montowania plików / lokalizacji / urządzeń. Zasadniczo dzieje się to po zamontowaniu zdalnego połączenia sieciowego w Nautilusie. Użyje FUSE, aby zamontować lokalizację (wewnątrz?) Katalogu .gvfs, a następnie komunikuje się z warstwą wirtualnego systemu plików gnome, aby komunikować się z nowym montowaniem.
Zasadniczo ta struktura pozwala użytkownikowi dynamicznie montować nowe lokalizacje i wchodzić z nimi w interakcje za pomocą nautilusa.
Tylko w celach informacyjnych: FUSE to system plików przestrzeni użytkownika, znany też jako umożliwiający uruchamianie montowania, nawet jeśli ten użytkownik nie jest rootem)
Więc gdzie mnie to opuszcza? Cóż, dysk LaCie jest montowany z typem fuseblk. To tylko urządzenie blokowe zamontowane z bezpiecznikiem. Więc jakiś demon automatycznie wykrył dysk, kiedy był podłączony, a następnie poszedł dalej i uruchomił bezpiecznik, aby zamontować moje urządzenie blokowe. Czym więc jest ten demon i jak jest skonfigurowany (domyślam się, że to jakiś wewnętrzny gnom) jest najważniejszym pytaniem. Drugim pytaniem jest, w jaki sposób system automatycznie wykrył nowo włożony dysk USB, ale myślę, że jest to trochę na bok i znacznie niższy poziom tutaj (czytaj: udev?).
Spinki do mankietów:
źródło
Odpowiedzi:
Próbowałem to zrobić na komputerze i to działa :)
Najpierw otrzymuję nazwę mojego urządzenia:
W moim przypadku jest to / proc / disk / by-id / usb-09a6_8001
Dodałem tę linię do / etc / fstab:
I działa, kiedy podłączę mój usbkey, jest on zamontowany ro i jest własnością mojego użytkownika.
źródło
Obecnie domyślnymi rozwiązaniami są, o ile wiem
udisk
, demon zapewniający interfejs API dbus oraz interfejs wiersza poleceń . Dostępnych jest również wiele opakowań udisk i automounter.Zazwyczaj nie konfigurujesz
udisk
się, ponieważ robi to, co mu powiedziano, więc musisz zajrzeć do Gnome. Być może Gnome Disk Utility pozwala modyfikować / zmieniać same flagi montowania.źródło
Jak powiedział Ulrich Dangel, w dzisiejszych czasach referencje powinny być udisk. Nie widziałem jeszcze, jak jest powiadamiany (udev-> dbus-> udisks?), Ale ręcznie można go użyć do zamontowania urządzenia z potrzebnymi opcjami.
Udisks rozmawia z polkit, aby zobaczyć, co użytkownik może zrobić z woluminami. Zgaduję tutaj, ale jeśli moglibyśmy znaleźć miejsce do ustawienia właściwości dla nazwanego dysku / urządzenia, powinno ono działać.
Korzystając z udisksctl, użytkownik powinien mieć możliwość zamontowania urządzenia za pomocą potrzebnych opcji, takich jak to:
udisksctl mount -b / dev / sdxy -o ro / mountpoint
Jednak nie wiem, gdzie umieścić opcje.
AKTUALIZACJA: Po sugestiach Ulricha poszedłem do narzędzia dyskowego Gnome i osiągnąłem to, czego potrzebujesz, ale nie jestem pewien, czy jest to najbardziej eleganckie rozwiązanie, czy nie. Używam Kororaa 17 (opartego na Fedorze 17) z Cinnamon + Gnome3, poszedłem do narzędzia „Dyski” i zmodyfikowałem opcje montowania dla mojego napędu USB, dodałem „ro” i zapisałem.
Dodaje wpis do fstab (tam nie uważam go za eleganckie rozwiązanie, myślę, że powinien on pozostać jako konfiguracja użytkownika, a nie systemowa), podłączam dysk i jest on montowany automatycznie w wybranym punkcie montowania z opcjami Zapisałem w narzędziu Dyski Gnome.
źródło
udev→dbus→udisk
jednakudev/uevent→udisk→dbus
ro
opcją.Na temat tego, jak jądro wykrywa sprzęt,
oto bardzo fajny artykuł na temat tego, co się dzieje.W podsumowaniu:
/sys/
./dev/
W tym momencie urządzenie jest gotowe do użycia przez przestrzeń użytkownika. Gvfs i FUSE są systemami plików przestrzeni użytkownika.
źródło
udev
zwykle nie powiadamia aplikacji za pośrednictwem aplikacjidbus
podmiotów zewnętrznych. Jeśli użyjeszqdbus --system
, nie zobaczysz żadnych nazw udev. Zazwyczaj aplikacje po prostu subskrybują sięuevents
lub wysyłają własne reguły