Podłączam dysk USB do DLinka DIR-320

Wczoraj wreszcie trafiłem na ciekawą promocję i kupiłem przenośny dysk twardy. Samsung 2,5", 320GB w całkiem zgrabnej obudowie. Przez dłuższą chwilę zastanawiałem się nad niewiele droższym dyskiem 3,5". Pojemność trzy razy większa a cena podobna. Przeważyły jednak dwie kwestie - energooszczędność, a co za tym idzie temperatura w szafce i hałas. Mimo, że producent zarzekał się na pudełku jaki to eko-cichy jest dysk, to jednak miałem wewnętrzne opory, żeby w to uwierzyć. Dysk 3,5" jest zupełnie niesłyszalny z szafki w przedpokoju, nawet w nocy.

Po co mi taki duży dysk podłączony do routera? Czasem chciałbym coś ściągnąć, czy to przez ftp, scp czy torrenta, bez pozostawiania włączonego komputera. Poza tym chciałbym robić kopie zapasowe ważniejszych plików z komputerów domowych a także robić kopię niektórych plików z serwera. Zastanawiam się jedynie nad bezpieczeństwem. Czy można zaufać bezpieczeństwu danych na dysku routera podłączonego na stałe do sieci? Na pewno podtrzymam wstępne założenie - tylko port dla ssh jest otwarty na zewnątrz. Wszelkie inne usługi mają być tunelowane przez ssh.

Nie wiem czy wszyscy pamiętają jaka jest sytuacja - w szafce jest sobie DLink DIR-320 z wgranym DD-WRT. Do portu USB podłączony jest hub, do którego z kolei wpięta jest drukarka i pendrive mountowany pod /opt. Na razie całość wyłączymy, żeby przenieść dane z klucza USB na nowy dysk. Przy okazji przećwiczymy jak bezpiecznie zrobić kopię zapasową danych na podłączonym pendrive/dysku. Od początku zakładaliśmy, że ile się da z konfiguracji, skryptów startowych, itp. będziemy trzymać na dysku a nie na routerze - żeby łatwo było odtworzyć ustawienia po upgrade DD-WRT czy wymianie routera.

Backup

Odłączamy pendrive od routera i przenosimy do komputera. Ubuntu automatycznie podmountował go do katalogu /media/disk-3. Przechodzimy więc do tego katalogu i tarujemy całą zawartość katalogu:

sudo -i cd /media/disk-3 tar czf /home/techniczny/ddwrt-opt-backup.tar.gz .

Backup wykonany, klucz USB można więc odłączyć i zająć się nowym dyskiem.

Przygotowanie dysku

Dysk podzielimy sobie na 4 partycje, zgodnie z zaleceniami z wiki DD-WRT. Pierwsza partycja będzie miała 2GB i będzie tam nasz katalog /opt - to co skopiowaliśmy z pendrive. Drugą partycję, niewielką, 128 albo 256MB przeznaczymy na swap (jakby routerowi brakowało pamięci). Na pamięci flash nie mogliśmy tego zrobić ze względu na jej specyfikę. Trzecia partycja będzie główna - większa część dysku. A czwarta to jakieś 2GB z przeznaczeniem na jffs (a co tam, może się przyda).

Najszybciej i najwygodniej można to zrobić fdiskiem, jednak jak ktoś się nie czuje na siłach to lepiej, żeby użył jakiegoś graficznego programu, bo w tym kroku przez nieuwagę można popsuć sobie partycję systemową. U mnie w każdym razie, po całej operacji fdsik pokazuje takie partycje:

/dev/sdb1 1 262 2104483+ 83 Linux /dev/sdb2 263 296 273105 82 Linux swap / Solaris /dev/sdb3 297 38600 307676880 83 Linux /dev/sdb4 38601 38913 2514172+ 83 Linux

Pora utworzyć na nich systemy plików i tworzymy swap:

mkfs.ext3 /dev/sdb1 mkfs.ext3 /dev/sdb3 mkfs.ext3 /dev/sdb4 mkswap /dev/sdb2

Systemy plików utworzone, podmountowane do lokalnego systemu. Upewniamy się gdzie mamy pierwszą partycję dysku:

mount ... /dev/sdb1 on /media/disk-2 type ext3 (rw,nosuid,nodev,uhelper=hal) ...

Przechodzimy więc do /media/disk-2 i rozpakowujemy utworzoną wcześniej kopię zapasową.

cd /media/disk-2 tar xvzf /home/techniczny/ddwrt-opt-backup.tar.gz

Jeżeli pliki rozkompresowały się poprawnie, możemy odmountować dysk i podłączyć go do routera.

Dysk podłączony

Jeżeli wszystkie operacje zostały wykonane poprawnie, to pierwsza partycja dysku powinna podmountować się automatycznie, tak jak to było w przypadku pendrive. Wszystko powinno działać jak do tej pory. Upewnijmy się, czy /opt jest mountowany.

root@home:~# mount rootfs on / type rootfs (rw) /dev/root on / type squashfs (ro) none on /dev type devfs (rw) proc on /proc type proc (rw) ramfs on /tmp type ramfs (rw) /dev/discs/disc0/part1 on /opt type ext3 (rw)

Zobaczmy też czy DD-WRT widzi wszystkie nasze partycje

root@home:~# ls /dev/discs/disc0/ disc part1 part2 part3 part4

Super. Dopiszmy więc do naszego skryptu startowego (/opt/config/startup.sh) linie pozwalające na mountowanie pozostałych partycji i używanie swapa.

mount /dev/discs/disc0/part4 /jffs mount /dev/discs/disc0/part3 /mmc swapon /dev/discs/disc0/part2

Jak łatwo zauważyć główną część dysku dołączyliśmy do katalogu /mmc. Całkiem niezłe miejsce, tym bardziej, że nie mamy planów użycia tego katalogu. W powyższych komendach jest jednak mały haczyk. Nie możemy użyć komendy swapon, bo na razie nasz mały Linux jej nie zna. Trzeba to zmienić

/opt/bin/ipkg install busybox

Busybox to program zastępujący wiele popularnych komend liksowych/unixowych. W tym także mkswap, swapon i swapoff. Jeżeli instalacja się powiodła, możemy zrobić reboot routera i po chwili powinniśmy zobaczyć, że wszystkie partycje zostały zamountowane

root@home:~# mount rootfs on / type rootfs (rw) /dev/root on / type squashfs (ro) none on /dev type devfs (rw) proc on /proc type proc (rw) ramfs on /tmp type ramfs (rw) /dev/discs/disc0/part1 on /opt type ext3 (rw) /dev/discs/disc0/part4 on /jffs type ext3 (rw) /dev/discs/disc0/part3 on /mmc type ext3 (rw)

Sprawdźmy jeszcze poziom zajętości dysków

root@home:~# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 2432 2432 0 100% / /dev/discs/disc0/part1 2071384 106300 1859860 5% /opt /dev/discs/disc0/part4 2474604 69300 2279596 3% /jffs /dev/discs/disc0/part3 302848112 195548 287268720 0% /mmc

Wszystko się udało zgodnie z założeniami. Jak trochę podziała to może napiszę więcej o użyciu dysku, a także o uruchomieniu drukarki i openvpna, których już używam od pewnego czasu.