Jak zrobić domowy serwer NAS na bazie Raspberry Pi - poradnik Spider's Web
Coraz większą popularność zdobywają mini-komputery typu Raspberry Pi, Raspberry Pi 2 czy Netduino. Kosztują one bardzo niewiele, pracują bezgłośnie, nie grzeją się, i zużywają minimalne ilośći energii elektrycznej. Doskonale się nadają jako domowy serwer, odtwarzacz filmów (są wyposażone w wyjście HDMI), czy też nawet jako maszynka do prostych gier, np. na emulatorach poprzednich generacji konsol.
Raspberry Pi, tak jak inne tego rodzaju komputerki, zazwyczaj kupujemy "gołe" - bez obudowy, okablowania etc. Polecam kupno co najmniej obudowy, aby zapobiec brudzeniu się i kurzeniu wnętrza urządzenia, jak również przypadkowego jego uszkodzenia.
Przyjrzyjmy się dziś, jak można na bazie Raspberry Pi lub Raspberry Pi 2 zbudować serwer NAS (Network Attached Storage) udostępniający na przykład filmy, muzykę, czy dokumenty wszystkim w naszej domowej sieci lokalnej.
Co musisz mieć
Sprzęt
Karta SD
- Kabel sieciowy Ethernet
- Kabel HDMI - przynajmniej na początek instalacji
- Monitor albo telewizor z wejściem HDMI - na początek instalacji
- Klawiatura USB - na początek instalacji
- Zasilacz do Raspberry Pi - najlepiej dedykowany, ale pasują też niektóre ładowarki do komórek
- Komputer (tutaj zakładamy, że posiadasz komputer z systemem Windows) - potrzebny do części procesu konfiguracji. Komputer powinien mieć czytnik kart SD (jako zewnętrzny czytnik po USB lub wbudowany)
- Dysk zewnętrzny (USB), który chcemy udostępnić w NAS
Raspberry Pi podłączamy do sieci przy pomocy kabla Ethernet. Niektóre z modeli posiadają również sieć bezprzewodową, ale wszystkie czynności przeprowadza się analogicznie.
Oprogramowanie
- Obraz instalacyjny Noobs: http://www.raspberrypi.org/downloads/
- SD Formatter - programik do formatowania kart SD: https://www.sdcard.org/downloads/formatter_4/eula_windows/index.html
- Putty - aplikacja do połączenia terminalowego. Zakładamy, że podłączyć swój mały komputerek w jakimś mało widocznym miejscu, być może z dala od monitora czy telewizora, i będziesz chciał odłączyć od niego klawiaturę. Wtedy przyda się możliwość pracy zdalnej przez sieć lokalną. Do tego właśnie przyda się Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/
Instalacja systemu
Po ściągnięciu pliku instalacyjnego (ZIP) z obrazem systemu, musimy go przenieść na kartę SD. Ja użyłem karty firmy Kingston o pojemności 8GB. Generalnie im szybsza, tym lepiej. Kartę powinniśmy sformatować przy pomocy dedykowanego programu.
W programie do formatowania ustawiamy opcje Format size adjustment = on oraz Format type = Full (erase).
Następnie wypakowujemy pliki ze ściągniętego pliku zip z Noobs do osobnego folderu. Następnie po prostu kopiujemy rozpakowane pliki na kartę.
Kartę przekładamy do Raspberry Pi, podłączamy kartę sieciową, klawiaturę i monitor (lub telewizor) i włączamy zasilanie. Na karcie powinniśmy mieć program NOOBS - New Out Of Box Software - swego rodzaju instalator do systemów operacyjnych.
Po chwili naszym oczom ukaże się ekran wyboru systemu operacyjnego do zainstalowania. Całe menu jest obsługiwane klawiaturą, choć możemy też podłączyc myszkę. Wybieramy opcje "Raspbian" i tworzenie partycji na dane (dwie pierwsze opcje). Pozycje wybieramy spacją na klawiaturze. Następnie wciskamy "i" aby rozpocząć instalację. Mamy teraz przerwę na kawę.
Uwaga - jeśli po podłączeniu do telewizora lub monitora nie widzimy nic na ekranie, spróbujmy nacisnąć "2" na klawiaturze - przełącza to wyjście HDMI na "tryb bezpieczny" o niższej rozdzielczości.
Po zakończeniu instalacji kończymy przyciskiem "OK" (spacja), i komputerek się restartuje. Na pierwszym ekranie po instalacji możemy ustawić kilka rzeczy, ale nic w tej chwili nie robimy, przechodzimy (Tab) na "Finish" i wciskamy Enter.
Od tej chwili możemy, jeśli chcemy, odłączyć już klawiaturę i monitor i dalszy ciąg instalacji i konfiguracji przeprowadzić przez sieć. Nic nie stoi jednak na przeszkodzie aby kontynuować na ekranie.
Instalacja potrzebnych programów
W tym momencie musimy się dowiedzieć, jeśli chcemy dostać się do raspberry pi zdalnie, jaki komputerek otrzymał adres IP w naszej sieci. Możemy się tego dowiedzieć logując się na router i odnajdując pozycję "raspberrypi" w sekcji która zazwyczaj nazywa się Local Network -> DHCP client list. Możemy też sprawdzić to bezpośrednio na urządzaniu, wydając polecenie ifconfig:
Od tej chwili z pomocą może nam przyjść program putty. Po uruchomieniu, wystarczy że wypełnimy pole "Hostname or IP address" i wybierzemy "SSH" jako rodzaj połączenia. Możemy również zapisać adres tak, aby nie musieć wpisywać go ponownie.
Po chwili zobaczymy okno logowania. Jako użytkownika wpisujemy "pi" jako hasło "raspberry". Po chwili jesteśmy już w zdalnej sesji.
Musimy wykonać teraz kilka czynności tak, aby komputerek automatycznie montował nasz dysk. Wpierw jednak dokonamy aktualizacji oprogramowania. W tym celu wpisujemy:
sudo apt-get update
Aktualizuje to listę zainstalowanych pakietów.
Każde polecenie które od tej chwili będziemy wpisywać w linii poleceń, zatwierdzamy Enterem.
Następnie wpisujemy:
sudo apt-get upgrade
Aktualizuje to te pakiety, których nowe wersje zostały znalezione w repozytoriach. Możliwe jest że w trakcie tego procesu będziemy pytani czy kontynuować (naciskamy Y i Enter).
Proces ten może, w zależności od prędkości sieci i karty, kilka minut.
Mamy zaktualizowane oprogramowanie, czas zająć się konfiguracją udostępniania dysku.
Podłączamy teraz dysk który chcemy udostępnić. Nie będzie on od razu dostępny w systemie, musimy go znaleźć i zamontować.
Aby znaleźć nasz dysk, wpisujemy polecenie:
sudo fdisk -l
Teraz musimy rozpoznać nasz dysk. Możemy to zrobić po wielkości lub typie partycji. Zapamiętajmy jego adres w systemie plików, będzie to coś w stylu /dev/sda1:
Aby zamontować dysk, musimy mu stworzyć odpowiedni katalog w strukturze plików. Standardem jest tworzenie takiego katalogu jako podkatalog w /media:
sudo mkdir /media/USBHD
Możesz użyć innej nazwy niż USBHD.
Możemy teraz spróbować zamontować dysk w stworzonym właśnie katalogu:
sudo mount -t auto /dev/sda1 /media/USBHD
Pamiętaj aby zastąpić ścieżki odpowiednimi dla twojego systemu!
Możemy sprawdzić czy widzimy pliki na naszym dysku, wpisując:
ls /media/USBHD
Niestety, po restarcie komputerka będziemy musieli czynność powtórzyć. Aby dysk automatycznie montował się w katalogu, musimy zmodyfikować plik fstab. W tym celu wykorzystamy prosty edytor tekstowy nano, który jest standardowo zainstalowany w Rasbianie:
sudo nano /etc/fstab
Używając klawiszy kursora (strzałek) przechodzimy na koniec pliku i dodajemy linijkę:
/dev/sda1 /media/USBHD auto defaults 0 2
Pomiędzy poszczególnymi kolumnami używamy klawisza Tab.
Aby wyjść z edytora, naciskamy Ctrl-X, następnie "Y" i Enter.
Przetestujmy teraz automatyczne montowanie przez wydanie polecenia restartu:
sudo reboot
Oczywiście przy restarcie nasza sesja putty zostanie rozłączona, musimy po około 2-3 minutach połączyć się ponownie. Po restarcie wykonujemy ponownie polecenie ls /media/USBHD aby sprawdzić czy dysk został automatycznie zamontowany:
Pierwszy krok mamy za sobą. Czas przejść do konfiguracji udostępniania dysku w sieci jako NAS (Network Attached Storage). W tym celu zainstalujemy na komputerku pakiet Samba, obsługujący typowy dla sieci lokalnej standard udostępniania plików SMB.
sudo apt-get install samba
sudo apt-get install samba-common-bin
Te dwa polecenia instalują wszystko co potrzebujemy do współdzielenia plików.
Linux nie byłby linuksem, gdybyśmy teraz nie musieli wyedytować jakiegoś kolejnego pliku konfiguracyjnego. Ponownie użyjemy programu nano:
sudo nano /etc/samba/smb.conf
Mamy tu do zrobienia dwie rzeczy. Po pierwsze, usuwamy znak # (znak komentarza) z linijki security = user w sekcji Authentication:
Następnie dodajemy całą sekcję na końcu pliku:
[USBHD]
comment=Dysk udostepniony
path = /media/USBHD
valid users = @users
force group = users
create mask = 0777
directory mask = 0777
read only = no
writeable = yes
browseable = yes
public = yes
Całą sekcję możemy skopiować stąd (Ctrl-C), i wkleić w putty przy pomocy prawego klawisza myszki.
Tak jak poprzednio, wychodzimy z nano poprzez naciśnięcie Ctrl-X i potwierdzenie zapisania pliku.
Konfiguracja wymaga dodania użytkownika, w którego imieniu system będzie udostępniał pliki. Wykorzystajmy w tym celu istniejącego użytkownika pi.
sudo smbpasswd -a pi
Zostaniemy dwukrotnie spytani o hasło - nie jest to hasło którym się logujemy do systemu (raspberry), lecz hasło które będą musieli podać użytkownicy którzy będą chcieli skorzystać z dysku sieciowego. Ja ustawiłem pi/pi aby było łatwo zapamiętać.
Teraz wystarczy abyśmy zrestartowali samą usługę Samba - nie ma potrzeby restartować całego komputerka:
sudo service samba restart
Od tej chwili powinniśmy widzieć nasze Raspberry Pi w sieci:
Po podwójnym kliknięciu naszym oczom ukaże się udostępniony dysk:
Ponowne kliknięcie umożliwia nam wpisanie użytkownika i hasła (w przypadku naszego przykładu pi/pi):
Warto zaznaczyć "Zapamiętaj uwierzytelnianie" / "Remember my credentials".
I po chwili my, jak i wszyscy uczestnicy sieci domowej możemy się cieszyć dostępem do dysku.
Taki serwerek, mimo, że musieliśmy mu poświęcić trochę czasu na konfigurację, jest praktycznie bezobsługowy. Jego funkcjonalność możemy jeszcze dowolnie rozbudowywać, co mam nadzieję pokazać w kolejnym wpisie na ten temat.