Il Backup è quella cosa che andava fatta prima…
Negli anni decine di miei clienti hanno perso foto di famiglia, documenti di lavoro, email importanti solo per aver tralasciato la cosa più importante… il backup!
Gli utenti Mac, di default, trovano preinstallata la funzionalità TimeMachine, un backup molto semplificato dei file che però necessità di particolari accorgimenti, in particolare un server di rete in grado di gestire TimeMachine.
Guarda caso, hai un fantastico RasberryPi li vicino ed è giunto il momento di dargli un nuovo potere, quello di mettere al sicuro i tuoi dati.
Necessario
Partiamo dal necessario, ovviamente un
- RaspberryPi
- SD
- Disco USB alimentato da dedicare al progetto
- Mezz’oretta di tempo libero
Preparazione
Iniziamo con l’installare Raspbian. Inseriamo la scheda SD nel PC, scarichiamo Etcher e la il file .img di Raspbian, scegli Lite o Full in base alle tue preferenze, io ho testato la guida su RaspberryPi 3 con Raspbian Desktop Stretch.
Avviamo, come amministratore, il programma Etcher e selezioniamo la scheda SD corretta e il file .img appena scaricato, poi premiamo Flash!
La copia dell’immagine impiega un po’ di tempo, in base alla velocità della schedina, e alla versione di Raspbian scelta.
Perfetto, una volta completato avviamo il nostro RaspberryPi ed iniziamo con la configurazione iniziale, partendo dalla connessione alla rete (nel sito troverai guide e discussioni al riguardo).
Prima di tutto è bene, tramite il comando
sudo raspi-config
espandere la partizione e settare tutti i parametri necessari in base alle nostre preferenze.
Una volta connessi alla rete, è necessario aggiornare il tutto, quindi procedi con il comando
sudo apt update; sudo apt-get dist-upgrade ; reboot now
Sistema operativo pronto!
Disco USB
Per evitare confusione, sarebbe meglio partire con un disco senza partizioni, ci sono vari modi per farlo, io per abitudine da windows, avvio diskpart come amministrazione, cerco il disco giusto con
list disk
lo seleziono con
select disk n (dove n è il numero del disco)
lo svuoto con
clean
RaspberryPi ha un piccolo difetto, non è in grado di fornire molta corrente tramite le porte USB, quindi potresti incontrare problemi nel collegare hard disk da 2.5″che non hanno una alimentazione separata.
Su alcuni modelli di RaspberryPi, è necessario aggiungere nel file /boot/config.txt la voce
safe_mode_gpio=4 max_usb_current=1
per avere la massima corrente disponibile sulle porte USB (1200 mA). Questa è sempre da intendersi come corrente totale di tutte le USB disponibili sul vostro RaspberryPi. Se l’hard disk che volete collegare assorbe più corrente, dovrete ricorrere a un alimentatore separato, o a un HUB USB alimentato.
ATTENZIONE: ora bisogna formattare il disco USB! Andranno persi tutti i dati in esso contenuti, quindi fate attenzione ad usare un disco senza dati indispensabili.
Il filesystem è la base su cui poggiano i file. Il filesystem principalmente utilizzato in Windows è NTFS, in Linux EXT4, MAC HFS+. Mac lavora bene con HFS+, quindi formattiamo in HFS+.
Cerchiamo il disco USB tramite il comando
sudo fdisk -l |grep sd sudo apt-get install hfsutils hfsprogs
se hai collegato solo la microSD ed il disco, quest’ultimo dovrebbe essere sda.
Nel mio caso
Disk /dev/sda: 14,7 GiB, 15716057088 bytes, 30695424 sectors
Per sicurezza, verifichiamo la dimensione del disco.
Fate un bel respiro e poi formattiamo con
sudo mkfs.hfsplus /dev/sda -v timemachine
dove sda va sostituito con l’identificativo del vostro disco, mentre timemachine è il nome della nuova partizione.
l’output sarà simile a questo
Initialized /dev/sda as a 14988 MB HFS Plus volume
Linux vuole che vengano montate le partizioni in un directory dedicata, per fare questo, creiamone una e assegnamole i permessi:
sudo mkdir /media/tm sudo chmod -R 777 /media/tm
Una volta creata la directory che fungerà da mount point, troviamo il codice univoco UUID della partizione
ls -lha /dev/disk/by-uuid | grep sd
il quale sarà simile ad
lrwxrwxrwx 1 root root 9 mar 6 19:31 20728a11-1dbf-3ef3-840d-e2049ce95aab -> ../../sda
Quasi pronto! manca solo un dettaglio, bisogna montare la partizione ad ogni avvio.
Per farlo, si usa il file fstab che gestisce il montaggio dei volumi con le relative opzioni.
Apriamo il file con
sudo nano /etc/fstab
ed aggiungiamo alla fine: (ovviamente metti il tuo codice UUID)
UUID=20728a11-1dbf-3ef3-840d-e2049ce95aab /media/tm hfsplus force,rw,user,noauto 0 0
usciamo e salviamo con Ctrl+X.
Adesso riavviamo il RaspberryPi, per verificare che sia andato tutto liscio.
Eseguiamo un test di montaggio
mount /media/tm
e tramite il df potremme verificare i dettagli
df -h | grep sd
io ho usato una chiavetta usb, quindi lo spazio è poco
/dev/sda 15G 17M 15G 1% /media/tm
Netatalk
E’ giunto il momento di configurare il software per Time Machine.
Se lo installassimo tramite apt, avremmo una versione molto vecchia, quindi procediamo col metodo lungo per ottenere l’ultima versione, attualmente la 3.1.12
sudo apt-get install build-essential libevent-dev libssl-dev libgcrypt11-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libtdb-dev libmariadbclient-dev avahi-daemon libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libio-socket-inet6-perl tracker libtracker-sparql-1.0-dev libtracker-miner-1.0-dev
poi scarichiamo l’ultima versione, ma attenzione, adatta il numero alla versione attuale
wget https://prdownloads.sourceforge.net/netatalk/netatalk-3.1.12.tar.gz && tar -xf netatalk-3.1.12.tar.gz && cd netatalk-3.1.12
procediamo con la creazione della configurazione
./configure \ --with-init-style=debian-systemd \ --without-libevent \ --without-tdb \ --with-cracklib \ --enable-krbV-uam \ --with-pam-confdir=/etc/pam.d \ --with-dbus-daemon=/usr/bin/dbus-daemon \ --with-dbus-sysconf-dir=/etc/dbus-1/system.d \ --with-tracker-pkgconfig-version=1.0
il successivo
make
nel RaspberryPi 3 ci sono voluti circa 10 minuti per completare l’operazione, il tempo varia in base alla velocità della microSD e processore.
Dopo la pausa caffè, proseguiamo con
sudo make install
ed in fine, verifichiamo il risultato tramite
netatalk -V
il quale ci elencherà un po’ di dettagli del software appena installato.
Configurazione Netatalk
Bene, software installato, ma ancora da configurare, andiamo a modificare il file nsswitch.conf aggiungendo dopo dns, le voci mdns4 mdns , ottenendo
# /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have theglibc-doc-reference' and
info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. passwd: compat group: compat shadow: compat gshadow: files hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
Successivamente modifichiamo afp.conf
sudo nano /usr/local/etc/afp.conf
aggiungendo
[Global] mimic model = TimeCapsule6,106 [Time Machine] path = /media/tm time machine = yes
Tutto configurato e pronto all’azione! Avviamo i servizi.
sudo service avahi-daemon start && sudo service netatalk start
Nessun errore? Fantastico, allora programmiamo il loro avvio con crontab ed un leggero ritardo, per permettere ai dispositivi usb di essere pronti all’avvio.
sudo crontab -e
@reboot sleep 30 && mount /media/tm && sleep 10 && service avahi-daemon start && service netatalk start
Riavviamo il tutto tramite
sudo service avahi-daemon restartsudo service netatalk restart
Configurare Time Machine
Da finder selezioniamo connetti al server, nella voce indirizzo scriviamo afp://ip del raspberry o il nome
nel mio caso
afp://raspberry3test
premendo connetti verranno richieste le credenziali di accesso, che sono identiche a quelli del RaspberryPi, di default utente pi e password raspberry.
Configurando TimeMachine, durante la ricerca della destinazione per il backup, comparirà il nostro RaspberryPi pronto a ricevere i dati.
Finito! O quasi…
Se il tuo RaspberryPi è esposto ad internet, ti consiglio di seguire la guida per la messa in sicurezza presente nel blog.