Jak nadążyć za urządzeniem zmieniającym blok, bez konieczności demontażu i ponownego montażu?

2

Używam więc Arch on miniature system (BeagleBone Black). Na tej płycie mam kartę SD (/ dev / mmcblk1) do przesyłania przez USB do komputera hosta z modułem jądra g_mass_storage. Działa to doskonale, a wszelkie zmiany w tym fałszywym dysku USB pojawiają się natychmiast w pliku urządzenia blokowego.

Problem polega na tym, co chcę zrobić z tym urządzeniem blokowym. Chcę go zamontować tylko do odczytu w katalogu głównym serwera Nginx. W większości działa to dobrze, a wszelkie zmiany wprowadzone na dysku USB wydają się wyglądać dobrze na głównym serwerze. Jednak, zmiany wymagają, aby urządzenie blokujące zostało odmontowane i ponownie zamontowane, zanim się pojawią. Idealnie, gdy tylko dokonam zmiany na dysku USB, pojawi się on w punkcie podłączenia, ale pomyślałem, że byłoby to skomplikowane.

Czy jest jakiś prosty sposób na zamontowanie urządzenia blokowego w sposób, w jaki Linux oczekiwałby, że będzie się ciągle zmieniał, podobnie jak montowanie sieci, takie jak SSH i FTP reaguje na obce zmiany?

user1125238
źródło
Czy jakoś to rozwiązałeś?
Eun

Odpowiedzi:

0

Kilka myśli -

  1. Czy naprawdę musisz odmontować i ponownie zainstalować, aby zmiany zostały wyświetlone? Ogólnie ty może użyć składni mount / dev / resource -o remount, ro i zamontować / dev / resource -o remount, rw, aby ponownie podłączyć urządzenie tylko do odczytu lub zapisu i odczytu.

  2. Nie rozumiem specyfiki tego, co próbujesz zrobić, ale to brzmi jak odpowiedź może leżeć w „udev”. W większości wersji Linuksa istnieje zestaw reguł (W Ubuntu 12.04 w /etvc/udev/rules.d - spodziewałbym się czegoś podobnego w wielu innych dystrybucje), które mapują urządzenia i zdarzenia jądra na rzeczy, na które można działać. (Na przykład Zwykłem wykrywać, kiedy podłączony jest zewnętrzny dysk USB i skrypt runa. Aby to zrobić, musisz opracować atrybuty specyficzne dla urządzenia blokowego (Uruchamianie informacji o udevadm -a -p $ (informacje o udedm -q ścieżka -n / dev / sdX), a następnie budowanie reguła wykorzystująca te atrybuty do tworzenia akcji po wykryciu zmiany.

    Używanie UDEV nie było trudne, ale całkiem nieźle działało.

davidgo
źródło
Niestety, reguły udev nie będą działać, ponieważ to tylko da mi możliwość aktualizacji na działaniach urządzenia. Potrzebuję urządzenia blokowego, które ma być zamontowane w taki sposób, aby wszelkie wprowadzone zmiany były odzwierciedlane w czasie rzeczywistym w punkcie montowania.
user1125238