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
1 |
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
1 |
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
1 |
list disk |
lo seleziono con
1 |
select disk n (dove n è il numero del disco) |
lo svuoto con
1 |
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
1 2 |
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
1 2 |
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
1 |
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
1 |
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
1 |
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:
1 2 |
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
1 |
ls -lha /dev/disk/by-uuid | grep sd |
il quale sarà simile ad
1 |
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
1 |
sudo nano /etc/fstab |
ed aggiungiamo alla fine: (ovviamente metti il tuo codice UUID)
1 |
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
1 |
mount /media/tm |
e tramite il df potremme verificare i dettagli
1 |
df -h | grep sd |
io ho usato una chiavetta usb, quindi lo spazio è poco
1 |
/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
1 |
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
1 |
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
1 2 3 4 5 6 7 8 9 10 |
./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
1 |
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
1 |
sudo make install |
ed in fine, verifichiamo il risultato tramite
1 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-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
1 |
sudo nano /usr/local/etc/afp.conf |
aggiungendo
1 2 3 4 5 6 |
[Global] mimic model = TimeCapsule6,106 [Time Machine] path = /media/tm time machine = yes |
Tutto configurato e pronto all’azione! Avviamo i servizi.
1 |
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.
1 |
sudo crontab -e |
1 |
@reboot sleep 30 && mount /media/tm && sleep 10 && service avahi-daemon start && service netatalk start |
Riavviamo il tutto tramite
1 2 |
sudo service avahi-daemon restart sudo 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
1 |
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.
Spero che questa guida vi possa tornare utile, condividetela con chi pensiate ne abbia bisogno e per le domande ci sentiamo nel forum, nella discussione dedicata.
Riferimenti utili
- RaspberryPi: Tutti i comandi utili a colpo occhio
- Proteggi il Raspberry Pi dagli hacker
- Vpn Facile! Accedi alla rete con un paio di comandi
Condividi e seguici su Facebook, cosi da ricevere le notifiche per ogni nuovo articolo.
Ringraziamo il nostro amico Lorenzo_ per averci suggerito la scrittura di questa guida.