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.

Reklamy

14 Responses to Podłączam dysk USB do DLinka DIR-320

  1. domik82 says:

    Witam,
    sam niedługo będę musiał kupić jakiś ruter i patrząc po poprzednich wpisach to chyba nie będę się specjalnie męczył z szukaniem 😉

  2. Rafał says:

    Hej, miałem kiedyś DIR-300 z DD-WRT – niestety był problem z klonowanie MAC’a. http://www.dd-wrt.com/dd-wrtv2/bugtracker/view.php?id=3024
    Czy mógłbyś sprawdzić, czy podobne problemy występują tutaj?

  3. Bogdan says:

    Witam

    Mam pytanie jakiego huba usb używasz, tzn. pasywny czy aktywny z dodatkowym zasilaniem?
    Jeżeli nie jest tajemnicą, jaki to model/producent?

    Pozdrawiam

    • techniczny says:

      Od niedawna hub aktywny, zasilany, 7 portów (odkąd trafiłem go przypadkiem na wyprzedaży za 24zł), niestety nie pamiętam marki. Wcześniej używałem pasywnego noname z podłączoną drukarką i pendrive. Czy pasywny pociągnąłby dysk – mam wątpliwości.

      • Bogdan says:

        Dokładnie ja tak miałem.
        Na pasywnym pendrive + drukarka hp1015 działały bez problemu ale dysk na usb (w kieszeni) już nie chciał działać.

      • Bogdan says:

        Korekta hp1018 😉

  4. lech says:

    „Na pamięci flash nie mogliśmy tego zrobić ze względu na jej specyfikę.”

    Czy mógłbyś to rozwinąć? Lubię mieć pełne informację – wtedy łatwiej zapamiętuję 🙂

    • techniczny says:

      Swap charakteryzuje się dużą ilością zapisów (w stosunku do normalnego użytkownia przy przechowywaniu plików). Pamięci flash mają ograniczoną ilość zapisów, a pendrive w przeciwieństwie do dysków SSD nie mają mechanizmów równomiernego zapisywania danych na różnych obszarach dysku.

  5. Pingback: Ściągamy pliki bez komputera « Techniczny

  6. Czczek says:

    Ostatnio tez sie zastanawialem nad routerem do upc. Domownicy coraz czesciej dobijaja sie do komputera i nazwyczajniej musze zrobic w koncu wifi w domu.

    ALE

    Przy okazji posiadania routera, chcialbym aby sluzyl mi on jako mini ftp/apache.
    Czy jest mozliwosc uruchomienia apache na openwrt/ddwrt. Podepne do niego prawdopodobnie pendrajwa 4gb

    pozdrawiam

  7. 201ty says:

    Witam,
    jestem zainteresowany kupnem DIR-320, podłączeniem dysku HDD i uruchomieniem SAMBA. Jak wygląda prędkość odczytu z dysku poprzez LAN? Robiłeś jakieś testy ?

  8. Piotr_Be says:

    Dziękuję za opis i dołączam co nieco od siebie. Otóż nie jestem zbyt biegły w posługiwaniu się linuxem, więc pewne rzeczy wykonuję nieco dookoła. Pierwszy problem na jaki napotkałem w czasie instalacji to było sformatowanie pendrive z użyciem windows. Niestety, nie znalazłem żadnego prostego narzędzia które by mi to umożliwiło, więc finalnie nagrałem płytkę z Knoppixem i była to dobra decyzja, gdyż ta instalacja jest bardzo życzliwa w swojej prostocie do wykonywania podstawowych czynności systemowych w środowisku Linux. Tak więc bez większych kłopotów korzystając z fdisk, lub bardziej przejrzystego cfdisk wykasowałem dotychczasowe partycje tworząc tę o numerze 83 linux a następnie wytworzyłem jak w opisie poprzedniego artykułu system plików ext3. Następny krok to instalacja Midnight Commandera, bo do tych okienek jestem mocno przywiązany jeszcze z czasów MS-DOS. I tutaj po instalacji pakietu poleceniem: /opt/bin/ipkg-opt –tmp-dir /tmp install mc – okazało się że nie da się go używać gdyż nie działają strzałki ani klawisze funkcyjne. Jedyne co działa to ctrl+z powodujące wyjście z paneli do wiersza poleceń terminala. Na polskojęzycznych formach raczej niewiele znalazłem. Ale na anglojęzycznych i owszem. Trzeba przed uruchomieniem mc skonfigurować środowisko pracy w następujący sposób:

    #!/bin/sh
    export TERMINFO=”/opt/lib/terminfo”
    export TERM=”linux”
    export LD_LIBRARY_PATH=/opt/lib
    /opt/bin/mc

    Ten zestaw poleceń umieściłem w pliku o nazwie mcc, który dałem do katalogu /opt/usr/sbin – jako że system ma ścieżkę dostępu do tego katalogu. Po wpisaniu mcc uruchamia się więc mój ulubiony Midnight Commander. Jeszcze klawisze funkcyjne. Trzeba F9 (ten działa) wejść do menu górnego, potem Option-Learn Key i „nauczyć” go klawiszy od F1-F5 wskazując pierw spacją a następnie wciskając właściwy klawisz. Tylko że jest mały kłopot. Ponowne uruchomienie Putty, nowa sesja i klawisze już na nowo trzeba definiować. Czy ktoś może podpowiedzieć jakieś bardziej eleganckie rozwiązanie tego problemu tak, aby przy każdej nowej sesji nie trzeba było ponownie definiować tych klawiszy? A najlepiej żeby można było gdzieś zdefiniować to środowisko dla MC. Tak na marginesie, funkcja Run-on-mount Script Name (np: /opt/etc/mc.sh) pomimo że skrypt z poziomu shella się wykonuje poprawnie – tu nie działa. Chyba że to środowisko musi być uruchomione dla konkretnej sesji terminala.

    • Michał says:

      @Piotr:
      Dzięki, bo właśnie miałem ten sam problem, zacząłem szukać i na ten komentarz trafiłem.
      Trochę późno, ale komuś innemu może się przydać:
      MC ustawienia klawiszy trzyma w /home/root/.mc/ini
      Niestety /home jest trzymane w RAMie i po restarcie czyszczone. Można sobie poradzić robiąc kopię /home w /opt (albo gdzieś indziej, gdzie dane nie znikają 😉 ) i do skryptu startowego dodać polecenie kopiujące /home/.mc z powrotem np. cp -a /opt/home/root/.mc /home/root

      (mam Tomato – w DD-WRT wget mi nie działał, ale to już inna zagwozdka – więc mogą być jakieś różnice, jednak OptWare to samo i problem z MC też)

      PS. A dla autora bloga to już w ogóle wielkie dzięki, bo mnie zainspirowałeś i genialną zabawę mam 😀

  9. Artur says:

    Cześć, próbował może ktoś podłączyć modem blueconnect pod usb w Dlink dir-320? Jest szansa na internet z 3G z WRT?

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

%d blogerów lubi to: