Przywrócenie montownia nośników w sposób zgodny z OpenWrt
Ostatnia zmiana: 2019-11-09 21:10
Gargoyle ma własny mechanizm montowania dysków (zawarty w pakiecie
plugin-gargoyle-usb-storage), który automatycznie montuje znalezione nośniki w katalogu
/tmp/usb_mount/. Nie w każdym przypadku odpowiada to użytkownikom, którzy chcieli by mieć pełniejszą kontrolę nad miejscem montowania czy innymi parametrami tego procesu. Można bezproblemowo wrócić do sposobu montowania nośników który jest standardem w OpenWrt - z wykorzystaniem pakietu
block-mount i pliku
/etc/config/fstab. Poniższe dane są prawdziwe dla wydań Gargoyle o numerach 1.5.7 i późniejszych (bazujących na OpenWrt Attitude Adjustment).
Mamy do wyboru albo całkowitą rezygnację z mechanizmów stosowanych w Gargoyle i przywrócenie standardowego sposobu montowania nośników (omawia tu punkt pierwszy), mamy możliwość także zrobienia extroota (punt drugi) lub integracji extroota z istniejącym rozwiązaniem stosowanym w Gargoyle (punkt trzeci). Należy wybrać jeden z tych sposobów.
Przywrócenie standardowego sposobu montowania
Podstawowym działaniem jest odinstalowanie pakietu
plugin-gargoyle-usb-storage. Stracimy w ten sposób możliwość konfigurowania udostępniania zasobów przez sambę, ftp i nfs z poziomu GUI, ale jeżeli zostawimy go to będzie niepotrzebnie ponownie rywalizował w montowaniu partycji w systemie, co czasami może przynieść niepożądane efekty.
# opkg remove plugin-gargoyle-usb-storage
Teoretycznie to wszystko, ale zostają jeszcze wpisy w menu Gargoyle, które nie są usuwane automatycznie. Należy je więc usunąć poleceniami
# uci del gargoyle.display.system_usb_storage
# uci del gargoyle.scripts.system_usb_storage
# uci del gargoyle.system.usb_storage
# uci commit gargoyle
Instalujemy pakiet
block-mount i koniecznie włączamy montowanie na starcie systemu
# opkg update
# opkg install block-mount
# /etc/init.d/fstab enable
# uci set fstab.automount.anon_mount=1
# uci commit
Konfiguracja opisana jest w
innym dokumencie. Należy pamiętać o zmodyfikowaniu pliku konfiguracyjnego
/etc/config/fstab (w szczególności - pierwszej sekcji gdzie zdefiniowane jest urządzenie
/dev/sda1!)
extroot
Wymaga tak samo instalacji pakietu
block-mount. Konfiguracja standardowo w pliku
/etc/config/fstab, opisana jest w
tym dokumencie. Jeżeli mamy pendrive z systemem plików
ext4 to sekcja konfiguracyjna może wyglądać następująco:
config mount
option target /overlay
option device /dev/sda1
option fstype ext4
option options rw,noatime
option enabled 1
Należy pamiętać, że po włączeniu extroota system jest bez konfiguracji, należy ustawić wszystko od nowa (lub przenieść wcześniej istniejąca z flash na pendrive)
UWAGA: Pakiety
samba36-server, vsftpd i nfs-kernel-server w Gargoyle są zmodyfikowane do współpracy z pakietem
plugin-gargoyle-usb-storage i konfiguruje się je przez
uci. Aby odzyskać normalną funkcjonalność pakietów, należy je po prostu ponownie zainstalować z repozytorium OpenWrt (nie Gargoyle!).
Integracja extroota z pakietem plugin-gargoyle-usb-storage (konfiguracja ręczna)
Najczęściej jednak oczekiwane jest zrobienie extroota wraz zachowaniem możliwości konfigurowania usług przy pomocy gui. Możliwe jest to do wykonania, mając pod uwagę kilka ograniczeń:
- partycja systemowa (na której jest system plików - extroot) nie będzie widoczna dla pluginu gargoyle usb-storage, czyli tym samym nie da się udostępnić z niej danych. Dane muszą być na innym dysku lub innej partycji
- montowanie dodatkowych dysków lub partycji wykonywane jest przez plugin-gargoyle-usb-storage. fstab będzie służył tylko i wyłącznie do wykonania extroota
- usługi które zastaną zainstalowane ręcznie na extroocie (np. minidlna) i odwołują się partycji innych dysków (nie extroota) muszą uruchamiać się z opóźnieniem aby widziały dysk. Dyski montowane są przez procesy pluginu mogą być dostępne dopiero po kilku sekundach po starcie systemu, więc wszystkie usługi przed korzystaniem z dysku muszą poczekać na jego dostępność.
W przeciwieństwie do przedstawionego wyżej metody na "normalnie" przywrócenie montowania nośników, tu pakiet
block-mount wykorzystywany jest tylko do zrobienia extroota. Należy wykonać następujące czynności:
- zainstalować pakiet block-mount (jeżeli nie ma go jeszcze w systemie)
# opkg update
# opkg install block-mount
- wyłączyć automatyczne montowania nośników przez hotplug w block-mount
# uci set fstab.automount.anon_mount=0
# uci commit fstab
Dzięki tej opcji fstab nie będzie automatycznie montował innych partycji i nie będzie konkurował z pluginem gargoyle usb-storage.
- zrobić extroota - przytoczony dokument opisuje ten proces. Jeżeli mamy pendrive z systemem plików ext4 to sprowadza się to poleceń:
# uci set fstab.@mount[0].target=/overlay
# uci set fstab.@mount[0].uuid=<uuid_partycji>
# uci set fstab.@mount[0].fstype=ext4
# uci set fstab.@mount[0].options=rw,noatime
# uci set fstab.@mount[0].enabled=1
# uci commit fstab
Należy bezwzględnie pamiętać o stosowaniu UUID zamiast nazw dysków jeżeli mamy zamiar kiedykolwiek używać więcej niż jednego nośnika. Identyfikator UUID można uzyskać wykonując polecenie
blkid.
# /etc/init.d/fstab enable
Po restarcie routera zostanie zamontowana partycja jako główny system plików (extroot) i na tym skończy się działanie pakietu
block-mount. Później plugin gargoyle usb-storage przejmie kontrolę nad pozostałymi niezamontowanymi partycjami i będzie je obsługiwał w sposób specyficzny dla Gargoyle - w szczególności będzie umożliwiał graficzną konfigurację usług na tych pozostałych nośnikach.
Tworzenie extroota z poziomu interfejsu użytkownika
Niezależnie od możliwości "ręcznego" utworzenia extroota, należy pamiętać że od wersji 1.5.9.10 możliwe jest wykonanie tego także z poziomu GUI podczas formatowania nośnika.
Formatowanie pozwala na utworzenie świeżego systemu plików na
całym nośniku oraz określenie wielkości partycji wymiany (swap) - maksymalnie zostaną utworzone więc tylko dwie partycje. Jeżeli zostanie zaznaczone odpowiednie pole, na tym nośniku zostanie wykonany automatycznie
extroot oraz zostanie przeniesiona cała istniejąca konfiguracja systemu na nowy nośnik. Należy pamiętać o ograniczeniach wymienionych w poprzednim punkcie.
Czy został wykonany extroot można przekonać się z zakładce "Dodatki" - pamięć wewnętrzna powinna pokazywać pojemność użytego nośnika oraz na zakładce "Nośniki USB" - powinna pojawić się informacja że extroot jest użyty. Z poziomu tej zakładki można też "bezpiecznie" usunąć extroota.
Podobnie jak w poprzednim przypadku, partycja systemowa (na której jest system plików - extroot) nie będzie widoczna dla pluginu gargoyle usb-storage, czyli tym samym nie da się udostępnić z niej danych z poziomu gui. Dane muszą być na innym dysku lub innej partycji.