System plików na zewnętrznym nośniku (extroot)

Wraz z pojawieniem się nowej(lepszej) implementacji fstab w OpenWrt do grona nowych funkcjonalności doszła możliwość przeniesienia systemu plików na zewnętrzny i większy nośnik. Powszechnie wiadomo, że routery nie posiadają zbyt dużej przestrzeni na system plików w tym nowe pakiety, dlatego też pojawienie się takiej opcji powiększa możliwości naszego routera.

Wymagania

1) Zainstalowane odpowiednie pakiety:

opkg update
opkg install block-extroot block-mount block-hotplug 

(opcjonalnie)

opkg install e2fsck

Czas inicjowania dysku wynosi domyślnie 20s, i zdecydowanie wystarczy. W przypadku, gdy jest za krótki zmieniamy go w pliku /lib/preinit/00_extroot.conf po zainstalowaniu block-extroot.

2) Ze względu że extroot to w zasadzie rozszerzenie fstaba to nie ma sensu przedstawiać jak przygotować dysk twardy. Potrzebujemy dysku podzielonego na dwie partycje. Zaleca się, zwłaszcza dla dysków twardych z głowica ruchomą, aby swap umieszczać na początku dysku, w celu szybszego docierania do tych danych. W przypadku flaszy, kart SD nie ma to większego znaczenia. Sposób podziału i przygotowania dysku jest na oddzielnej podstronie

Kopia ustawień i aplikacji (opcja)

Jeżeli posiadamy już skonfigurowany router warto po prostu te dane przenieść na nowy dysk, tak żeby po restarcie routera działał poprawnie. Pomijając ten krok trzeba mieć na uwadze, że ustawienia będą domyślne(IP 192.168.1.1 na telnecie)

Zadanie jest proste do wykonania, montujemy dysk tymczasowo i zgrywamy dane:

mkdir /tmp/hdd
mount -t <nazwa system plików, np. ext3> /dev/sda1 /tmp/hdd
mkdir -p /tmp/hdd/etc/config

cp -a /overlay/etc/config/* /tmp/hdd/etc/config/
umount /tmp/hdd

Konfiguracja fstab'a

Partycje przed extrootem:

root@OpenWrt:/# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                 3200      3200         0 100% /rom
tmpfs                    63504        56     63448   0% /tmp
tmpfs                      512         0       512   0% /dev
/dev/mtdblock3           12096       476     11620   4% /overlay
mini_fo:/overlay          3200      3200         0 100% /

Przykładowa konfiguracja dla dysku podzielonego na dwie partycje (/dev/sda1 - ext3, /dev/sda2 - swap):

uci show fstab
fstab.automount=global
fstab.automount.from_fstab=1
fstab.automount.anon_mount=1
fstab.autoswap=global
fstab.autoswap.from_fstab=0
fstab.autoswap.anon_swap=0
fstab.@mount[0]=mount
fstab.@mount[0].options=rw,noatime
fstab.@mount[0].enabled_fsck=1
fstab.@mount[0].device=/dev/sda1
fstab.@mount[0].is_rootfs=1
fstab.@mount[0].enabled=1
fstab.@mount[0].fstype=ext3
fstab.@swap[0]=swap
fstab.@swap[0].device=/dev/sda2
fstab.@swap[0].enabled=1

Niezwykle ważna opcja to is_rootfs=1, bez tego poprostu nic nie zadziała. Włączenie tej opcji jest proste:

uci set fstab.@mount[0].is_rootfs=1
uci commit fstab

Warto również włączyć sprawdzanie system plików( wymagany jest pakiet e2fsck):

uci set fstab.@mount[0].enabled_fsck=1
uci commit fstab

Ostatecznie dodajemy do autostartu i restartujemy:

/etc/init.d/fstab enable
reboot

Tabela montowania po rebocie wyglÄ…daja inaczej:

root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 3.1M      3.1M         0 100% /rom
tmpfs                    62.0M     44.0K     62.0M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda1                 1.8G     34.9M      1.7G   2% /overlay
mini_fo:/overlay          3.1M      3.1M         0 100% /

Zamontowana partycja jako /overlay reprezentuje nasz dysk, wniosek - extroot działa.

Podsumowanie

Usunięcie/wypięcie dysku z extrootem nie spowoduje uszkodzenia firmware routera lub przypadku, że się nie uruchomi. Po prostu zbotuje z pamięci flash z ustawieniami, pakietami przez dokonaniem przeniesienia systemu plików na dysk zewnętrzny.

uzytkowanie/extroot.txt · ostatnio zmienione: 2011/05/15 18:06 przez arteq
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0
Profesjonalny Hosting