Dodanie dysku USB do routera z OpenWrt

Zawarto┼Ť─ç

Dzisiaj nieco nietypowe rozwi─ůzanie, ot├│┼╝ m├│j dysk sieciowy (NAS) ostatnio odm├│wi┼é pos┼éusze┼ästwa, a ┼╝eby zrobi─ç z nim porz─ůdek, potrzebuj─Ö w nim co nieco pogrzeba─ç, w zwi─ůzku, w mi─Ödzy czasie z tym chcia┼ébym wykorzysta─ç port USB 3.0 wbudowany w m├│j router WRT3200ACM z oprogramowaniem OpenWrt w celu udost─Öpnienia w sieci dysku USB.

Do tego celu u┼╝ywam 2TB dysk w obudowie WD My Book Essential (3.5ÔÇŁ z zewn─Ötrznym zasilaniem) ze z┼é─ůczem USB 3.0. Dysk sformatowa┼éem w exFat (z poziomu komputera nim zacz─ů┼éem), ze wzgl─Ödu na kompatybilno┼Ť─ç zar├│wno w Windows, jak i Mac. Gdy b─Öd─Ö chcia┼é go od┼é─ůczy─ç z sieci, zawsze b─Öd─Ö mia┼é dost─Öp do danych, pod┼é─ůczaj─ůc kabel USB bezpo┼Ťrednio do komputera.

A wi─Öc zaczynamy…

Wi─Ökszo┼Ť─ç krok├│w odbywa─ç si─Ö z poziomu terminala.

W tym wpisie skupię się na tym, jak dodać dysk do routera. W osobnym wpisie (link na końcu) opiszę jak udostępnić ten dysk w sieci lokalnej.

Sprawdzone w wersji OpenWrt 21.02 oraz OpenWrt 22.03

Instalacja obsługi dysku USB #

W pierwszej kolejno┼Ťci aktualizujemy pakiety.

opkg update

Nast─Öpnie dodajemy wsparcie dla urz─ůdze┼ä USB.

opkg install kmod-usb-storage kmod-usb-storage-uas

W moim przypadku musz─Ö doda─ç r├│wnie┼╝ obs┼éug─Ö exFat. W zale┼╝no┼Ťci, jaki system plik├│w wybierzecie, musicie zainstalowa─ç go zgodnie z tym poradnikiem.

opkg install kmod-fs-exfat libblkid

Dodatkowo potrzebne nam b─Öd─ů narz─Ödzia do sprawdzenia, czy nasze urz─ůdzenie USB dzia┼éa prawid┼éowo. Instalujemy je za pomoc─ů poni┼╝szej komendy:

opkg install usbutils

Teraz mo┼╝emy pod┼é─ůczy─ç nasz dysk.

Je┼╝eli wszystko wykonali┼Ťmy prawid┼éowo, wykonuj─ůc poni┼╝sz─ů komend─Ö, zobaczymy nasz dysk na li┼Ťcie urz─ůdze┼ä pod┼é─ůczonych do USB.

lsusb -t

Powinni┼Ťmy zobaczy─ç co┼Ť takiego:

root@OpenWrt:~# lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
    |__ Port 1: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

lub w przypadku wspieranego protokołu UASP:

root@OpenWrt:~# lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
    |__ Port 1: Dev 4, If 0, Class=Mass Storage, Driver=uas, 5000M

Sprawdzenie widoczno┼Ťci dysku #

Sprawdzamy, czy nasz dysk i partycje s─ů widoczne w systemie.

ls -l /dev/sd*

Powinni┼Ťmy zobaczy─ç co┼Ť takiego:

root@OpenWrt:~# ls -l /dev/sd*
brw-------    1 root     root        8,   0 May  1 21:20 /dev/sda
brw-------    1 root     root        8,   1 May  1 21:20 /dev/sda1

W nast─Öpnym kroku zainstalujemy dodatkowe narz─Ödzie, kt├│re b─Ödziemy u┼╝ywali do montowania partycji.

opkg install block-mount

Wykonujemy komend─Ö:

block info | grep "/dev/sd"

Powinni┼Ťmy zobaczy─ç co┼Ť takiego:

root@OpenWrt:~# block info | grep "/dev/sd"
/dev/sda1: UUID="5EAC-6F27" LABEL="2TB" TYPE="exfat"

Montowanie dysku #

Przygotowujemy plik konfiguracyjny:

block detect | uci import fstab

W┼é─ůczenie automatycznego montowania na podstawie wygenerowanego pliku konfiguracyjnego:

uci set fstab.@mount[-1].enabled='1'
uci commit fstab

Montujemy nasz dysk:

block mount

(Opcjonalne) Jeżeli chcemy się upewnić, czy automatyczne montowanie dysku działa przy starcie systemu, wykonujemy:

reboot

Sprawdzamy, czy nasz dysk jest widoczny za pomoc─ů:

df

Powinni┼Ťmy zobaczy─ç co┼Ť takiego:

root@OpenWrt:/mnt# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1            195341.     10368 1953408896   0% /mnt/sda1

Oraz:

uci show fstab

Powinni┼Ťmy zobaczy─ç co┼Ť takiego:

root@OpenWrt:~# uci show fstab
fstab.@mount[0]=mount
fstab.@mount[0].target='/mnt/sda1'
fstab.@mount[0].uuid='5EAC-6F27'
fstab.@mount[0].enabled='1'

Je┼╝eli mamy jakie┼Ť problemy, upewniamy si─Ö, ┼╝e w polu @mount[0].enabled widnieje warto┼Ť─ç 1.

Je┼╝eli mamy jakie┼Ť dane na dysku, mo┼╝emy je zobaczy─ç:

ls -l /mnt/sda1

Upewniamy si─Ö, ┼╝e wszystko dzia┼éa prawid┼éowo wykonuj─ůc komend─Ö:

block info

Powinni┼Ťmy zobaczy─ç co┼Ť takiego:

root@OpenWrt:~# block info
/dev/sda1: UUID="5EAC-6F27" LABEL="2TB" MOUNT="/mnt/sda1" TYPE="exfat"

Ca┼éo┼Ť─ç ko┼äczymy komend─ů:

service fstab boot

U┼Ťpienie dysku (Opcjonalne) #

Moja kieszeń WD posiada wbudowane oprogramowanie, które po czasie wstrzymuje silnik dysku / usypia go. Dysk nadal jest dostępny, ale gdy jest nieużywany, nie będzie się niepotrzebnie kręcił. W momencie, gdy dysk jest potrzebny, wówczas rozkręci się na nowo.

Je┼╝eli nie mamy mo┼╝liwo┼Ťci programowej, w├│wczas mo┼╝emy wesprze─ç si─Ö dodatkowym rozwi─ůzaniem, pozwoli nam zaprogramowa─ç bezpo┼Ťrednio dysk w celu wykonania tego samego.

W tym celu instalujemy hdparm:

opkg update
opkg install hdparm

Zak┼éadaj─ůc (z powy┼╝szych krok├│w), ┼╝e nasz dysk jest dost─Öpny jako /dev/sda1, poni┼╝sz─ů komend─ů ustawiamy, po jakim czasie dysk przejdzie w stan wstrzymania. Czas ten ustawiamy jako wielokrotno┼Ť─ç 5-ciu sekund. Minuta to warto┼Ť─ç 12, je┼╝eli chcemy ustawi─ç 15 minut, potrzebujemy warto┼Ť─ç 180.

hdparm -S 180 /dev/sda1

Powy┼╝sza opcja jest opcj─ů sprz─Ötow─ů. Wprowadza on zmiany w ustawieniach dysku, dzi─Öki czemu zostaj─ů one zachowane, nawet gdy pod┼é─ůczymy nasz dysk do innego urz─ůdzenia / komputera. Niestety, nie zawsze to dzia┼éa. Niekt├│re obudowy odmawiaj─ů przyj─Öcia powy┼╝sze komendy, zwracaj─ůc b┼é─ůd. W tym przypadku istnieje dodatkowe programowe rozwi─ůzanie o nazwie hd-idle, kt├│ra mo┼╝e by─ç zintegrowane z naszym panelem administracyjnym routera z poziomu przegl─ůdarki internetowej.

Pakiet hd-idle, po okre┼Ťlonym czasie (zdefiniowanym w panelu administracyjnym) wysy┼éa komend─Ö spindown-now w celu wy┼é─ůczenia obrot├│w dysku i przej┼Ťcia w stan wstrzymania.

Instalujemy go za pomoc─ů komendy:

opkg install luci-app-hd-idle

Po czym przechodzimy do naszego panelu sterowania, Services > HDD idle, gdzie ustawiamy, czy ta opcja programowa ma by─ç w┼é─ůczona, dla jakiego dysku oraz czas.

OpenWrt Service hdd idle

OpenWrt hdd idle

Zalecam najpierw sprawdzi─ç, czy sprz─Ötowa opcja dzia┼éa (czy to wbudowana, czy zaprogramowana), gdy┼╝ nie wymaga ona ┼╝adnych dodatkowych pakiet├│w, kt├│re musz─ů by─ç w┼é─ůczone na naszym routerze a dopiero wybra─ç rozwi─ůzanie programowe.


I to by by┼éo na tyle, je┼╝eli chodzi o dodanie dysku, mo┼╝emy przej┼Ť─ç dalej do udost─Öpnienia naszego dysku w sieci lokalnej. Ten krok opisa┼éem jednak w osobnym wpisie: Udost─Öpnienie dysku USB w sieci z routera OpenWrt


Credits1

Komentarze