Tar è uno strumento considerato parte integrante dei sistemi basati su UNIX e le famiglie UNIX-Like come Linux. Nonostante la lunghissima carriera, questo programma rimane molto potente e popolare. Oggi vi spiegherò come usarlo per effettuare un backup del vostro sistema (a patto che sia basato su Linux).

tar-backup

I vantaggi di affidarsi a Tar per i vostri backup sono la semplicità (intesa nel senso KISS), la compressione del file in tempo reale e la conservazione di permessi e attributi delle varie cartelle. Con pochi comandi da terminale è infatti possibile creare un backup o ripristinare il sistema da un archivio creato in precedenza senza compromettere il funzionamento del sistema operativo.

Boot da live media

Per prima cosa, è necessario una versione live di una distribuzione GNU/Linux. Vanno bene quasi tutte, nel dubbio potete essere sicuri che le live di Ubuntu (e derivate) sono adatte allo scopo come anche quelle di Arch Linux. Arch è consigliabile perchè i tempi di boot di un disco o chiavetta usb sono notevolmente più corti pur offrendo tutto il necessario.

Montare le partizioni

Una volta effettuato il boot nel sistema live (preferibilmente come root per non dover usare sudo ogni volta) occorre montare le partizioni del vostro sistema in cartelle adeguate. Trovate i nomi delle partizioni usando il comando

fdisk -l

 

tar backup guida

Montatele usando mount:

mount /dev/sdxn /mnt

sostituendo /dev/sdxn con il nome della partizione. Potete usare /mnt o qualunque altra cartella vuota, ma tenetene conto. Se avete altre partizioni, come ad esempio una partizione home dedicata, montatele nelle cartelle appropriate della vostra partizione root. Non dimenticate di montare anche il dispositivo di storage dove intendete salvare il backup – in questo esempio supponiamo di averlo montato in /opt/backup.

A questo punto occorre usare chroot per avere accesso ad attributi e permessi dei vostri file:

chroot /mnt /bin/bash

specificando che vogliamo usare bash come interprete dei comandi.

Comandi Tar

Ora è il momento di usare Tar. Se volete escludere alcuni file dal backup (come ad esempio i file temporanei) potete usare il flag –exclude-from=file_da_escludere. I flag –xattrs e -p servono a mantenere attributi estesi e permessi rispettivamente.

tar --exclude-from=file_da_escludere --xattrs -czpvf /opt/backup/nome_file_backup /

sostituendo file_da_escluderenome_file_backup con il percorso e il nome dei rispettivi file. Per il backup suggeriamo di usare il formato giorno_mese_anno.tar.gz ma potete sbizzarrirvi come preferite.

L’operazione può essere prolissa a seconda di quanti sono e quanto spazio occupano i vostri file. Rimuovere il flag -v può velocizzare il processo, ma senza di esso non vi verranno mostrati i progressi effettuati.

Una volta finito, mettete il vostro backup al sicuro (nel cloud ad esempio). Per ripristinare un backup da un archivio .tar.gz salvato in questo modo, dovrete montare le partizioni esattamente come descritto in precedenza e spostarvi nella cartella di root, poi dare il comando:

tar --xattrs -xpf nome_file_backup

Questo non cancella i file che non erano presenti prima del backup, quindi è consigliabile riscrivere i filesystem delle partizioni prima di procedere. Da Arch potete usare fdisk o cfdisk, in altre distribuzioni sono presenti anche strumenti di partizionamento che includono un’interfaccia grafica avanzata.

Speriamo che questa guida vi sia stata utile, fateci sapere come gestite i vostri backup!

  • Da sempre fiero utilizzatore di dd 🙂

  • Kib

    Mi sembra una modo di effettuare i backup un po’ rischioso e immagino anche piuttosto lento

    • Giorgio Ghisotti

      dd in quanto potentissimo pone dei rischi, certo, ma se usato correttamente é veloce e affidabile.

  • Simone Picciau

    Un aspetto che non è spiegato benissimo:
    il flag
    –exclude-from=file_da_escludere
    Dove file_da_escludere è un file di testo che contiene una lista di più nomi di file o directories che non vogliamo includere nel nostro backup, uno per riga.
    Se vogliamo specificare soltanto uno o piu files o directories dovremo usare:
    –exclude=file1 –exclude=file2 –exclude=directory1
    e così via, nella stessa riga di comando.

  • Aster

    Ottima guida per un backup alternativo

  • ArchEmi

    Sapete se posso farci anche il backup del raspberry?

    • Giorgio Ghisotti

      In teoria si, ma potrebbe essere problematico dato che il raspberry non puó eseguire un sistema live come un computer “normale” con architettura intel. Nulla impedisce di fare il backup della schedina con un’altra macchina peró.

  • sabayonino

    il chroot su un sistema live è un passo non strettamente necessario.
    che sia / o altra partizione , basta montarla con –bind ed evitare tutti gli altri filesystem montati o virtuali che siano e lavori con gli stessi permessi
    Montando ad esempio / in /mnt/system , è possibile effettuare il tar del sistema a caldo

    # mount -o bind / /mnt/system

    opzioni quali –one-file-system permettono di salatare ulteriori filesystem virtuali o fisici montati

    oltre a –xattrs , –numeric-owner e –numeiric-ids permette di mantenere il proprietario “numerico” indipendentemente da come un altro sistema li gestisce

    l’opzione -a è di una comodità stupenda , riconosce il suffisso (tar.gz,tgz,tar.bz2…) e di conseguenza abilita il sistema di compressione in automatico (non il livello di compressione) e non serve indicae le opzioni di compressione se non ci si ricorda a quale “lettera” corrisponde il compressore voluto

    è possibile con tar effettuare anche backup incrementali –listed-incremental=FILE dove “FILE” è il nome del file che tiene traccia dei files cancellati ed inseriti e vengono cancellati quelli non più presenti nel caso di ripristino

    che dire, TAR è molto potente, flessibile ed adattabile

    il suo manuale è ricco di opzioni ed è ben documentato ci si possono fare di quei scripts di backup personalizzatissimi da leccarsi i baffi 😀

    Happy new-2017-backup.tar.xz

    • sabayonino

      dimenticavo : per una copia a caldo nel caso ci siano dei cambianmenti in corso nel fileystem , è possibile montare la “bind-directory” in sola lettura

      # mount -o remount,ro,bind / /mnt/system

      questo vi permette di poter eseguire l’archiviazione senza errori anche se nel filesystem originale viene cambiato qualcosa (ad esempoio un aggiornamento)

      per LVM , essendo quest’ultimo un “layer” non è possibile bindizzare il filesystem si dovrà ricorrere agli snapshots di LVM (lvmsnap) e procedere con l’archiviazione del solo snapshot

      più o meno come approcio le cose si equivalgono

  • giupardeb

    ottima guida! Avrei una domanda banale da porre. Se facessi il backup con Tar del mio portatile, nel momento in cui cambio portatile con lo stesso sistema Operativo, posso ripristinarlo in quest’ultimo e non aver nessun problema di compatibilità?

    • sabayonino

      di installarci il bootloader dopo il ripristino (fai riferimento alle guide della distro in uso)
      controllare l’/etc/fstab e vedere se è impostato correttamente

      se utilizza l’UUID del disco e nel pc nuovo cambiano i valori , devi ripristinare i valori corretti.

      TAR lavora a livello di filesystem. ma non sa se questo è stato cambiato o meno. ripristina solo i file.

  • g cong

    dal mio piccolo… provai a fare un backup con dd dell’intero HD (win + arch) e ando’ tutto ok (feci il restore del sistema sotto una macchina virtuale e funzionava tutto regolarmente. Poi mi sono cimentato anche con tar e con rsync, ma il restore non ebbe altrettanto successo, purtroppo.
    Il problema e’ sempre il restore, e’ questa la prova del nove per vedere se il tipo di backup prescelto funziona 🙂

    • sabayonino

      le opzioni da passare ai comandi vanno ponderate bene , non bastano le semplici opzioni.
      un conto è fare un restor “a caldo” , altro conto su live.

      tar e rsync non fanno un backup dell’MBR o della tabella di partizione.
      se il backup è stato fatto bene lo si può ripristinare su un qualsiasi sistema.

      DD in linea di massima si utilizza su dischi uguali (ma con qualche smanettamento è possibile utilizzarlo su dischi più grandi ma non più piccoli, vedasi clonezilla)

      c’è anche fsarchiver che è un buon tool , è l’evoluzione di partimage

      sono tool che si possono trovare su systemrescuecd live

      ogni tool ha i suoi pro e contro , ma hanno gli stessi obiettivi per diverse esigenze…

      • g cong

        ciao Sabayonino, si’ sicuramente ho sbagliato qualcosa, non volevo certo dire che tar e rsync non sono sistemi affidabili, anzi. Ricordo anche di aver letto vari thread sul forum di Gentoo al quale anche tu sei affezionato 🙂 Tutto l’argomento del backup di sistema mi ha sempre interessato molto, e ci ho passato anche un po’ di tempo sopra. Magari ci ritorno se mi viene di nuovo l’ispirazione. Un saluto.

No more articles