Építsünk fájl szervert Raspberry Pi segítségével

A Raspberry Pi lehetőségei korlátlanok, vannak olyanok, amelyekhez azért nem árt komolyabb technikai felkészültség, netán egy forrasztópáka, de akadnak olyan hasznos projektek is, amelyekhez nem kell bepiszkolni a kezünket, mégis hasznos és szórakoztató lehet.

A címből már látható, hogy nagyjából miről fog szólni ez a bemutató. A lényege, hogy mit kezdjünk akkor, ha ott van a kezünkben egy Pi, és van otthon elfekvőben egy (lehetőleg) jó nagy USB-s winchester. Könnyedén fájl szervert építhetünk ezek segítéségével. Előnyeit nem kell ecsetelni nagyon, de röviden: a Pi segítségével megoszthatjuk a hálózatunkon a merevlemezt és annak tartalmát, amit később használhatunk biztonsági mentésre, média tárolásra, vagy közös munkára.

Kezdjünk bele a műveletbe. Feltételezzük, hogy a Pi-n már fut valamilyen – itt preferált a Raspian Wheezy – operációs rendszer. Indítsunk egy terminált a gépen, vagy nyissunk egy SSH kapcsolatot a Pi-ra asztali számítógépünkről. Ha ez megvan, gépeljük be a következő parancsokat, majd figyeljük a “kimenetét”.

tail -f /var/log/messages

Ezzel nem teszünk mást, mint a /var/log alatt lévő messages fájl tartalmát figyeljük. Ide kerül be többek között az az üzenet is, amikor valamit csatlakoztatunk a Pi-hoz. Dugjuk tehát be az USB port-ba a külső merevlemezt, és figyeljük az SSH ablakot, hogy milyen üzeneteket kapunk.

Ha mindent jól csináltunk, itt olyan soroknak kell megjelenni, amik tartalmazzák a “new USB device found” szavakat, majd később meg is jelenik a meghajtó – valószínűleg – /dev/sda néven.  Ha valami ilyesmit látunk még további adatok mellett, akkor minden rendben van, egy CTRL+C lenyomásával megszakíthatjuk az előző parancsot. A lényeget már tudjuk, hogy milyen néven ismerte fel a Linux a merevlemezt.

Most csinálunk egy helyet, ahova csatlakoztatni tudjuk a merevlemezt, hogy a tartalmát el is tudjuk érni. Adjuk ki folyamatosan ezeket a parancsokat a terminálba, vagy az SSH kapcsolaton a programban:

Készítsük el a könyvtárat:

sudo mkdir /media/USBDRIVE

Mountoljuk, azaz csatlakoztassuk az eszközt a megfelelő beállításokkal a helyre. Ebben az esetben feltételezzük, hogy NTFS formátumra van formázva a meghajtó.

sudo mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/USBDRIVE/

Ha tudjuk, hogy FAT32 formátumú a meghajtó, akkor a következő parancsot adjuk ki:

sudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/USBDRIVE/

Ha netán olyan hibaüzenetet kapunk, hogy az ntfs-3g nem támogatott, semmi pánik, a következő paranccsal tudjuk orvosolni a hibát, telepítjük a hiányzó szoftvert, majd ismét próbálkozzunk meg az előzővel.

sudo apt-get install ntfs-3g

Ezzel máris megvagyunk ez első lépéssel, a meghajtót látja a Pi, és fel is van csatlakoztatva. Ellenőrizzük le, lépjünk be a mappába: cd /media/USBDRIVE és adjuk ki az ls parancsot. Ekkor az USB-s merevlemez gyökerében lévő fájlokat és mappákat fogja kilistázni a terminálba a Pi.

Viszont ha most újraindítjuk a rendszert, kezdhetünk minden elölről, nem fogja megjegyezni a beállításokat a Linux.  Mi sem könnyebb azonban, mint hogy megmondjuk neki, végezze el ezeket a parancsokat induláskor.

Mentsük le a biztonság kedvéért az fstab nevű fájlt, ami a csatolási információkat tárolja:

sudo cp /etc/fstab /etc/fstab.backup

Ezek után nyissuk meg a fájlt a következő paranccsal:

sudo mcedit /etc/fstab

Ha azt a hibát kapjuk, hogy nem található ez a parancs, akkor az előbb már megismert parancs segítségével telepíthetjük:

sudo apt-get install mc

A programból, ha megnyitottuk a fájlt, és a következő sort beleírtuk az F10 billentyű lenyomásával tudunk kilépni. Ezt a sort vigyük fel:

/dev/sda1 /media/USBDRIVE ntfs-3g rw,defaults 0 0

Ha ez kész, még állítsuk be a jogosultságokat:

sudo chmod 775 /media/USBDRIVE

Meg is vagyunk, innentől a Pi minden egyes indítást követően automatikusan felcsatolja a merevlemezt, ha az elérhető. Ha a külső HDD-nek kell táp, természetesen fontos, hogy legyen bekapcsolva.

A Pi tehát már látja a merevlemez tartalmát, most már csak azt kell megoldani, hogy a hálózaton is megossza. Pár parancs után erre is könnyedén rávehetjük.

Frissítsük a telepítési információkat tartalmazó állományokat, ha még nem tettük volna meg, majd telepítsük a samba programot, aminek a segítségével tudjuk Windows hálózaton elérni a fájlokat.

sudo apt-get update

sudo apt-get install samba samba-common-bin

Frissítés és telepítés után készen áll a samba a megosztásra, már csak létre kell hozni egy felhasználót és beállítani pár dolgot:

sudo smbpasswd -a pi

Adjunk meg egy jelszót, amivel majd később elérjük a hálózaton keresztül a merevlemez tartalmát. Ha ez kész, akkor a samba beállításokat tartalmazó fájlt (amit telepítéskor generált) szépen a már megismert módon lementjük a biztonság kedvéért:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Szerkesszük a fájlt:

sudo mc/etc/samba/smb.conf

Első lépésben a munkacsoport, azaz WORKGROUP részt keressük meg. Windows XP, illetve Vista alatt érdemes erre beállítani (ugyanis ezeknél ez az alapértelmezett telepítéskor)

workgroup = WORKGROUP

Ha Windows 7-et vagy Windows 8-at használunk, akkor más az alapértelmezett:

workgroup = HOME

Természetesen, ha mi ezt korábban beállítottuk másra, akkor azt használjuk.

Engedélyezzük a biztonsági beállításoknál a belépéseket, azaz vegyük ki a # jelet a következő sor elől:

security = user

A jobb teljesítmény érdekében érdemes a következő sor elől is kivenni a komment (#) jelet:

socket options = TCP_NODELAY

Ne adjuk fel, mindjárt itt a vége, csak létre kell hozni az USB meghajtóhoz tartozó beállításokat:

[USB]
path = /media/USBDRIVE
comment = My USB Drive
valid users = pi
writeable = yes
browseable = yes

Mentsük el a fájlt, és lépjünk ki a szerkesztőből. Indítsuk újra a samba szolgáltatást:

sudo /etc/init.d/samba restart

Valami hasonlót kell látnunk:

[ok] Stopping Samba daemons: nmbd smdb.

[ok] Starting Samba daemons: nmbd smdb.

Ha ez így történt, akkor a hálózaton vagyunk, gratulálunk! Na jó, de milyen néven is? Derítsük ki, a Pi milyen címen érhető el a hálózaton. Ehhez adjuk ki a következő tömör és rövid parancsot:

hostname

Amit visszaír a Pi, azzal a címmel már a Windows-t futtató számítógépek is elérik azt. Legegyszerűbb, ha nyitunk egy Start menüt, és oda beírjuk a következőt (kacsacsőrök nélkül):

\\<a hostnev amit kaptunk az előbb>

Ekkor egy új ablaknak kellene felbukkanni, ahol látni kellene az USB néven megosztott külső merevlemezt. Ha így van, kattintsunk a mappára. Ne ijedjünk meg, felhasználónevet és jelszót fog kérni. Adjuk meg azt, amit az imént beállítottunk. Voila, kész is a fájlszerverünk! A legnagyobb kényelem érdekében érdemes egy hálózati meghajtóként csatlakoztatni a Pi által megosztott könyvtárat. Kattintsunk jobb egérrel a mappán, és csatlakoztassuk egy nekünk tetsző meghajtó névvel. Ha gond lenne a csatlakozással, kicsit túrjuk fel az internetet, van pár tuti tipp, például a titkosítás visszaállítása. Ez szokott rendszeresen előfordulni, de általában megoldható.