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?
Odpowiedzi:
Kilka myśli -
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.
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.
źródło