Apple Time Capsule szerver Raspberry Pi segítéségvel

Az Apple Time Capsule szervere egy rendkívűl jól működő, és kifinomult megoldás a biztonsági mentések automatikus, hálozaton történtő megoldására. Mac gépek gazdáinak “kötelező” használni a Time Machine-t egyszerű biztonsági megoldás, ami a külső merevlemezek mellett a Time Capsule szerverekre is képes menteni.

550x-apple-time-capsule-wifi

A Time Capsule ára azonban meglehetősen borsos, és ha már van egy jól felépítet hálózatunk routerel lehet felesleges is. Egy Pi és egy megfelelő méretű merevlemez kombincáiójával – na és persze némi idővel – ugyanis mi magunk is készíthetünk egy saját Time Capsule szervert.

Mire van szükségünk:

  • egy Raspberry Pi-re, amin már van hálózat
  • egy USB-s merevlemezre
  • Mac számítógépre a Time Machine miatt

Lássunk is neki, nem lesz túl bonyolult.

Lemez előkészítése

Első lépés a merevlemez formázása, és előkészítése a Time Machine számára. Ehhez a cfdisk és parted nevű parancsokat fogjunk használni. Telepítsük fel a cfdisket, ha még nem lenne a rendszerben, a parted nagy valószínűésggel már rendelkezésre áll. A parancsokat root felhasználóval adjuk ki!

apt-get install cfdisk

Most már csak fel kell csatolni, és formázni a meghajtót. Ha még nem lenne csatlakoztatva a lemez, csatlakoztassuk, ha pedig már rádugtuk, huzzuk ki, majd csatlakoztassuk ismét. A dmesg parancs kiadásával ellenőrizhejtük, hogy milyen eszköz azonosítóval ismerte fel a Pi az USB-s merevelemezt, a kiadott parancs utolsó pár sorában valami hasonlónak kell lennie:

[sdb] Attached SCSI removable disk

Ha már van egy USB-s eszköz a Pi-n, akkor nagy valószínűséggel /dev/sdb lesz a cím, ha még nincs, akkor /dev/sda -ra számítsunk.

Formázzuk meg, és hozzuk létre a megfelelő particíót:

cfdisk /dev/sdb
parted /dev/sdb
mklabel gpt
unit s
mkpart primary 2048s 100%
name 1 BFS
quit

Vegyük figyelembe, hogy a fenti parancs 2TB, vagy anál nagyobb méretű eszközök számára ideális. Ha kész a partíciónálás, ideje létrehozni a fájlrendszert neki:

mkfs.ext4 /dev/sdb

A lemez előkészületekkel meg vagyunk, már csak fel kell csatolni a lemezt, hogy a kezelni is tudjuk rendszeren. Ehhez az /etc/fstab fájlt fogjuk szerkeszteni. Ebben az egyszerű fájlban van tárolva ugyanis, hogy milyen meghajtókat, hova csatalkoztasson az indulás során a Linux. Ha nem írnánk ide be, csak a mount parancs segítésével felcsatolnánk a lemezt, egy újraindítás után nem lenne ott automatikusan a lemez.

Nyissuk meg a fájlt a kedvenc szerkesztőnkkel (vim, mcedit, nano):

mcedit /etc/fstab

Majd adjuk hozzáa a következő sort:

/dev/sdb1   /mnt/data  ext4    noexec,defaults  0   0

Ami változhat, az természetesen az eszköz azonosítója, illetve a második paraméter, ami a csatolási pontot adja meg. Ebbe a “könyvtárba” fog ugyanis felcsatolódni a külső lemez. Lépjünk ki mentéssel a szerkesztőból, és hozzuk létre az előbb említett mappát:

mkdir /mnt/data

Elvileg mindent jól előkészítettünk, úgyhogy próbáljuk meg felcsatolni a merevlemezt:

mount -a

Ezzel a paranccsal minden meghajtót, ami az fstab fájlban le van írva felcsatol azonnal a rendszer. Ha hiba nélkül lefutott akkor jók vagyunk. A df -h parancs kiadásával tudjuk ellenőrizni, hogy megjelent-e a lemez a megfelelő helyen, és láthatjuk azt is azonnal, hogy mekkora a kapacitás és a foglalt hely.

Szoftverek telepítése, és konfiguráció

Az egyetlen további extra csomag, amit telepíteni kell a netatalk, amely képes beszélni az AFP protokoll nyelvét. Ez pedig ezért kell nekünk, mert az Apple Time Machine ezen keresztül kommunikál a gépekkel. Telepítsük fel, majd állítsuk be, hogy a rendszer bootlásakor ezt a szolgáltatást is elindítsa a linux:

apt-get install netatalk

update-rc.d netatalk defaults

Ezek után személyre kell kicsit szabni a dolgokat, de ez sem lesz bonyolult. A Linux a szolgáltatások beállításait az /etc alatt gyűjti össze, és nincs ez mása netatalk esetében sem. Vegyük elő újra a kedvenc szerkesztőnket, és nyissuk meg a beállításokat tartalmazó fájlokat. Természetesen ezt is root felhasználóval kell végezni.

mcedit /etc/afp.conf

Illeszük be a következő alap konfigurációs fájlt:

[Global]
mimic model = TimeCapsule6,106
log level = default:warn
log file = /var/log/afpd.log
hosts allow = 196.168.1.0/24

[Homes]
basedir regex = /home

[TimeMachine]
path = /mnt/data/timecapsule/
valid users = pi wife
time machine = yes

Pár dolgot még módosítani kell, elsőképpen a host allow részben a megfelelő hálózat kell megadnunk. Az ifconfig paranncsal tudjuk ellenőrzni, hogy nálunk milyen ip-t osztott ki a router, és ennek megfelelően tudjuk megadni a hozzá tartozó range-t is.

Be kell állítani, hogy a Time Capsule melyik könyvtárba dolgozzon. Ha az előzőleg máshova mountoltuk fel a lemezt, akkor a path részen is azt adjuk meg. A “timecapsule” mappát még létre kell hoznunk.

Meg kell adni még azt is, hogy milyen felhasználók kapcsolódhatnak a Time Capsule-hoz. A “wife” egy új felhasználó, ami eddig nem volt a pi-n létrehozva, így hozzunk létre, és adjuk meg neki a megfelelő jogosultságokat.

useradd wife
passwd wife
groupadd users
usermod -aG users wife

Létrehoztuk a felhasználót, beállítottunk neki egy jelszót, és beraktuk a “users” csoportba.

Utolsó lépsben még annak a könyvtárnak a jogosultságait kell megfelelően beállítani, ahova a Time Machine majd menteni fogja a dolgokat:

chown pi:users /mnt/data/timecapsule
chmod 775 /mnt/data/timecapsule

A faragással kész is vagyunk, nincs más hátra mint az OS X-en elindítani a Time Machine-t, és beállítani, hogy a pi-n található Time Capsule-ra mentsen. Itt jelszót és felhasználó nevet fog kérni, használhatjuk az alapértelmezetten pi user-t, és az előbb fent létrehozott wife nevű felhasználót is.

forrás: https://raymii.org/s/articles/Build_a_35_dollar_Time_Capsule_-_Raspberry_Pi_Time_Machine.htlm