Time Machine via RasPi

Ok, avete comprato un Raspberry Pi, avete imparato a condividere i dischi in rete e ad usarlo come torrentbox automatica. Adesso, per caso vi avanza un disco USB in giro? Avreste sempre voluto fare i backup di Time Machine via WiFi ma non avete mai osato comprare una Time Capsule? Ok, è il momento di sfruttare il RasPi per fare anche questo! 😉

Intro: perché, come, limitazioni

Intanto, perché? Boh, perché si può. Perché c’è già per casa un RasPi e un disco esterno USB recuperato, perché si vuole fare il backup del Mac via WiFI.

Poi, come? Beh ci sono n-mila modi, semplici, complicatissimi, efficienti. Io ho scelto il modo semplice e si basa su:

  • l’utilizzo di un disco formattato in EXT4, il filesystem nativo di Linux, così non abbiamo troppi problemi di performance
  • se il disco non ha alimentazione esterna, bisogna utilizzare un hub USB
  • l’installazione dell’attuale versione di Netatalk presente nei repository di Raspbian ad oggi, che è vecchia, è la 2.2.2 quando l’attuale è 3.0.7. Sarà pure vecchia ma funziona benissimo, se siete esperti compilatevi l’ultima versione da sorgente.
  • nessunissima configurazione di Avhai perché nel mio caso funziona tutto a dovere senza dover configurare nulla

Non solo: per formattare il disco userò gparted, ovvero lo strumento grafico di management dei dischi su Debian, l’equivalente di Utility Disco. Ma come, tutta sta menata per usare il Pi da riga di comando e poi usi uno strumento grafico? Hai ragione, però intanto è più facile, e poi c’è la scusa per introdurre xrpd.

Limitazioni? C’è un motivo perché la TimeCapsule da 2TB di Apple costa 299 euro: funziona con delle buone prestazioni. Se ci pensate, non è nemmeno cara: un disco 2TB USB costa sui 95 / 100 euro su Amazon, a cui vanno aggiunti i soldi del RasPi (se non ce l’avete già), quelli dell’eventuale hub USB. Insomma si arriva facile ai 150 / 160 euro, senza avere però prestazioni e design del gingillo Apple.

Infatti già la trasmissione dei dati via WiFi non è il migliore dei metodi, poi ci metti che il RasPi magari sta facendo già qualcos’altro, poi che la trasmissione da RasPi a disco via USB non è il più veloce dei metodoi.. insomma il primo backup potrebbe prendere anche una 10-ina di ore, ma una volta fatto quello i successivi saranno veloci 😉 Il vantaggio è che se avete già il RasPi o avete già deciso di usarlo anche per altro, non dovrete spendere soldi aggiuntivi per un dispositivo che faccia solo i backup. 

Aggiornamento + installazione del software

Questa la facciamo rapida rapida rapida. Aggiornate il sistema:

sudo apt-get update
sudo apt-get upgrade

adesso aggiornate il firmware del pi

sudo rpi-update
---- aspettate tutto il tempo necessario ----
sudo reboot

quindi possiamo finalmente installare il software necessario

sudo apt-get install xrpd netatalk gparted

tutto chiaro? Perfetto, proseguiamo.

Connessione via Remote Desktop

E niente… xrdp l’abbiamo installato prima, adesso scaricate un client RDP per Mac, come ad esempio il gratuito e funzionalissimo CoRD. Scaricate, avviate, inserite l’indirizzo IP del vostro PI e quindi username e password di login. Già fatto? Sì, è Pi!

Formattazione con GParted

Come vi ho già detto nello scorso post, l’utilizzo di un hub alimentato non è obbligatorio se utilizzate un HD esterno a sua volta alimentato.  In ogni caso può essere utile perché magari un domani vorrete appiccicare altra roba al Pi, o magari proprio perché avete un disco USB portatile non alimentato esternamente.

Nel caso vogliate comprare l’hub, sceglietelo bene! Il Pi, anche con l’ultimo aggiornamento firmware, ha qualche problema nel gestire alberi USB complessi e a volte gli hub più economici e con molte porte sono in realtà l’unione in cascata di più hub. In pratica potreste trovarvi con delle porte USB non visibili dal Pi.

Io vi consiglio quello che ho comprato io, non costa molto e con l’ultimo aggiornamento firmware del Pi funziona che è una meraviglia: D-Link DUB-H7 (USB2.0) HUB 7xUSB

Per quanto riguarda l’hard disk, avete l’imbarazzo della scelta. Se ce l’avete già meglio, altrimenti vi consiglio questi due: Toshiba Hard Disk 500GB, WD My Book Hard-Disk 2TB

Io li uso entrambi con soddisfazione (veramente ne ho anche un altro da 1TB). Lo so, il Pi e l’hub non sono in grado di sfruttare la connessione USB3, ma di dischi esterni nuovi con solo l’USB2 è difficile trovarne.

Se non vi dovesse bastare lo spazio, ci sono anche versioni da 4TB: WD My Book 4 TB

Ok, collegate tutto al Pi, avviate CoRD sul Mac e aprite una sessione sul Pi. Quando apparirà il desktop, avviate GParted. Ora, dalla tendina in alto scegliete il disco su cui volete effettuare la formattazione, quindi “smontatelo” dal sistema se era stato montato, e create una nuova MBR (Master Boot Record) lasciando le impostazioni standard.

State attenti perché cancellerete tutto 😉

Adesso è il momento di creare una/due/numerose partizioni. Io, per semplicità di gestione, ne ho creata una sola. Ho tre dischi monopartizione, ognuno fa il backup di qualcosa, compresi backup di backup!

Vi consiglio di formattare in formato EXT4, così da velocizzare le operazioni di lettura/scrittura di grossi file e avere un supporto affidabile del file system da parte del sistema. Se un domani dovesse friggersi il Pi e voi voleste comunque accedere ai vostri file via OS X, potete usare OSXFuse e ext4fuse che consente l’accesso in sola lettura. Ecco un rapido screencast che spiega il tutto:

Ok, formattato il disco, vediamo di montarlo nel sistema e rendere il mount automatico. Lo so che ve l’ho già spiegato qui, ma adesso lo facciamo in modo un po’ diverso, utilizzando l’identificativo univoco del disco, o UUID invece del nome e numero di partizione. Questo sistema funziona bene se il disco ha una sola partizione.

Gli step sono:

  1. creazione della cartella di mount: sudo mkdir /media/quello_che_vuoi
  2. attribuzione dei permessi: sudo chmod 755 /media/quello_che_vuoi
  3. attribuzione dell’owner: sudo chown pi:pi /media/quello_che_vuoi
  4. identificazione del uuid del disco: sudo blkid e quindi copiate la spataffiata di caratteri che sta in UUID="la_spataffiata_di_caratteri"
  5. inserimento del mount nella tabella di sitema: sudo nano /etc/fstab a cui va aggiunta la riga
    /dev/disk/by-uuid/la_spataffiata_di_caratteri /media/quello_che_vuoi ext4 rw,defaults 0 0

fine.

Configurazione di Netatalk

Netatalk è già attivo, va solo configurato. Per prima cosa stoppiamo il servizio:

sudo /etc/init.d/netatalk stop

quindi andiamo a modificare il file di configurazione:

sudo nano /etc/netatalk/AppleVolumes.default

vi apparirà un file lunghissimo, scorrete fino alla fine del file usando la combinazione ctrl+v. Le ultime righe saranno:

# The line below sets some DEFAULT, starting with Netatalk 2.1.
:DEFAULT: options:upriv,usedots

# By default all users have access to their home directories.
~/ "Home Directory"

# End of File

Come vedete la home del Pi è condivisa in automatico. Per aggiungere la condivisione del disco su cui fare il backup Time Machine, dovete modificare il file aggiungendo una righa:

# The line below sets some DEFAULT, starting with Netatalk 2.1.
:DEFAULT: options:upriv,usedots

# By default all users have access to their home directories.
~/ "Home Directory"
/media/quello_che_vi_pare "nome_qualsiasi" options:tm,rw

# End of File

Dpve “tm” sta per “Time Machine” e “rw” per “read and write”. Adesso uscite con ctrl+x e salvate con S o Y.

a questo punto bisogna solo far ripartire il servizio e sul Pi abbiamo finito:

sudo /etc/init.d/netatalk start

fatto. Passiamo al Mac, dove andrete a connettervi al disco “nome_qualsiasi”

Configurare il Mac per fare il backup sul RasPi

Facilissimo. Tra i dispositivi condivisi visibili nella Finder dovreste trovare il vostro Pi.

finder - raspi afp

Se questo non fosse visibile potrete raggiungerlo collegandovi manualmente tramite il menu Vai>Connessione al server…, usando l’indirizzo IP del Pi: afp://192.168.1.198 per esempio.

finder - raspi afp

Connettetevi utilizzando le credenziali di accesso con cui fate login sul Pi. Per aggiungere il disco di backup di Time Machine andate in Preferenze di Sistema>Time Machine>Aggiungi/Rimuovi disco di backup…

finder - raspi timemachine

Il primo Back up ci metterà anche le sue belle 8 o 10 ore ad essere pronto, dipende da quanto è veloce il vostro network, quanto è rapido il disco, quanti file avete sul disco rigido del Mac. Dal primo back up in poi sarà tutto più veloce.

Per aumentare la sicurezza dei vostri backup, potete aggiungere più dischi. Così facendo il sistema eseguirà backup alternati sui vari dischi.

Conclusioni

Con questa fnatastica 🙂 guida avete imparato a connettervi tramite desktop remoto al Pi, formattare i dischi in EXT4, montarli sfruttando l’UUID, installare Netatalk e compiere tutti i passi necessari per utilizzare il Raspberry Pi come sostituivo di una TimeCapsule.

’nuff said

  • Herik

    XRDP, non XRPD! 😀

  • Nervino

    Ciao, ottimo lavoro! ho fatto tutto come detto solo che quando vado ad aggiungere il disco per TM mi chiede nome utente e psw, inserisco quelli di Pi e mi dice:

    “Non disponi dei privilegi di lettura, scrittura e aggiunta sul disco di backup del network selezionato. collegati con un altro utente oppure contatta l’amministratore del network”

    • jeby

      Ciao, può essere un problema di privilegi! Devi utilizzare il comando chown (change owner): assumendo che l’utente del Raspberry Pi è “pi” e che il disco sia montato sul Raspberry al percorso /media/timemachine allora il comando sarà

      sudo chown pi:pi /media/timemachine

      già che ci sei assicurati che il disco sia scrivibile almeno da “pi” utilizzando il comando chmod (change mode)

      sudo chmod 755 /media/timemachine

      puoi rendere entrambi i comandi recursivi (chambia owner e permessi per tutte le sottocartelle) utilizzando l’opzione -R, ma occhio a non fare danni 🙂