Ora vi rivelerò un trucchetto che ho imparato dalla mia esperienza con gentoo! Iniziamo con il dire che a mio parere gentoo dovrebbe essere nel patrimonio di ogni buon appassionato di informatica, perché insegna tanto ed è una bella soddisfazione vedere un sistema operativo creato con le proprie mani a colpi di shell!

Gentoo

Gentoo mette a disposizione dei sistemi operativi base, chiamati stages, con giusto l’essenziale (compilatore, bash e poco altro) per poter costruire il vostro sistema operativo! Ma quella dello stages è un’idea che può essere ripresa e usata a nostro vantaggio per creare backup del nostro sistema Unix, GNU/Linux o *BSD che sia!

L’idea base è prendere la nostra Ubuntu e impacchettarla, cosicché sia pronta per essere ripristinata in quattro e quattr’otto! Lo strumento che useremo per la magia è tar, il programma di archiviazione! E’ vero, esistono varie versioni grafiche, ma a noi andrà meglio quella da linea di comando!😀

Prima parte: l’istantanea!

Allora, intanto ci sono due vie, una richiede un pò di conoscenza del nostro filesystem, l’altra no! Noi prenderemo la seconda, per ovvi motivi più comoda, ma più avanti perderò due righe anche sull’altra!
Quello che ci occorre è una qualsiasi distribuzione live (il cd di installazione di Ubuntu e derivate, Knoppix, anche distribuzioni minimali come Insert vanno bene, purché abbiano tar), una partizione (o hard disk esterno) per salvare il backup e un pò di pazienza per l’attesa che verrà! Ah, per non dilungarmi troppo ho deciso di tagliare la parte dell’articolo in cui parlavo di fdisk e mount, comandi che servono a trovare la partizione di Ubuntu e a montarla.

  • Iniziamo con l’avviare la distribuzione live che abbiamo sottomano, ricordate che in genere è preferibile avviarla con l’opzione lang=it, dove il simbolo ‘=‘ corrisponde a ‘ì‘ sulla tastiera, in quanto di default la mappatura utilizzata è quella inglese!
  • Ora che la distribuzione live è avviata aprite una console qualsiasi.
  • Usiamo fdisk da root per trovare la partizione con ubuntu (es: sudo fdisk /dev/sda)
  • Ora pensiamo a montare il filesystem che contiene il sistema operativo da salvare! Per coloro che si sono persi (spero pochi!), montare un filesystem è l’operazione con la quale assegnamo una cartella ad una memoria di massa, ma fare due esempi chiarirà tutto! In Ubuntu quando si inserisce una penna usb viene automaticamete montata sulla cartella /media/disk (o il nome della penna), mentre sotto Windows viene montata in G: (o comunque la prima lettera libera)!
  • In alternativa molte distribuzioni hanno tool per il mount automatico, in Ubuntu live ad esempio è sufficiente aprire la partizione interessata e verrà automaticamente montata! Quindi niente fdisk e mount! Ma ricordate, molte non è tutte!
  • Adesso, stando bene attenti a:
    • essere root
    • avere i diritti di lettura sulla partizione GNU/Linux
    • avere i diritti di scrittura e spazio a sufficienza sulla partizione di salvataggio

    passiamo a crearci il nostro backup, per farlo da console spostiamoci nella partizione del sistema operativo (es: cd /media/ubuntu, oppure cd /mnt/ubuntu) e lanciamo il comando:
    tar cvjpf /media/disk/backup.tbz2 *
    Dove /media/disk/backup.tbz2 è il percorso dove verrà salvato il file di backup.
    Passiamo ad analizzare le opzioni che ho usato in tar:

    • c: crea un archivio
    • v: verbose, ovvero ci dà indicazioni su quello che sta succedendo
    • j: comprime usando la compressione bz2 (male che vada lo spazio occupato del sistema operativo sarà circa la metà!)
    • p: preserva i diritti, ovvero per ogni file memorizza proprietario e gruppo. Serve per non perdere tutto il sistema di diritti del sistema Unix, senza quest’opzione il backup sarebbe impensabile!
    • f: salva l’archivio creato su file (nel nostro caso backup.tbz2, nella directory /media/disk)
  • Non ci resta che aspettare!

Prima di iniziare con i vari passi avevo detto che c’era una seconda via, più immediata. In pratica si tratta di fare lo stesso procedimento però dal sistema operativo stesso, escludendo dal backup directory particolari, come per esempio il filesystem /proc, e le partizioni montate. Usando una distribuzione live non diamo al sistema la possibilità di impostare le varie directory e quindi il problema non si pone!

Ora passiamo alla seconda parte: il ripristino!

Per il ripristino dobbiamo usare obbligatoriamente una distribuzione live. La procedura è semplice e veloce, ecco i passi:

  • Avviamo la distribuzione live (ricordate lang=it)
  • montiamo le partizioni, stavolta stando attenti a
    • essere root
    • avere i diritti di scrittura sulla partizione del sistema operativo
    • avere i diritti di lettura sulla partizione con il backup
  • da console portiamoci nelle directory del nostro sistema operativo (nell’esempio una fantomatica ubuntu)
    cd /media/ubuntu
  • eliminiamo tutto quello che è presente
    sudo rm -rf *
  • ripristiniamo il sistema
    tar xvjpf /media/disk/backup.tbz2
    Analizziamo anche ora le varie opzioni passate:

    • x: estrae
    • v: verboso, ci dà indicazioni su quel che avviene
    • j: indica che l’archivio da decomprimere usa bz2
    • p: preserva i diritti dei file e delle directory
    • f: indica il file da dove prendere l’archivio
  • riavviamo

Conclusioni:

Ora, arrivati alla fine, alcuni si chiederannno, perché abbiamo usato tar? Non ci sono programmi molto migliori per il backup? Si, i programmi ci sono eccome e sono tutti validissimi, ma tar è un formato standard, supportato di base da tutte le distribuzioni e comodo da salvare, quindi ecco perché non uso altri programmi e mi trovo bene così!😉

Nota per i possessori di Ubuntu:

Ubuntu per localizzare le partizioni sul proprio sistema assegna loro un UUID, quindi guardando /etc/fstab non ci saranno /dev/hda vari ma UUID. Se al comando rm -rf * qualcuno avrà preferito formattare inserendo un nuovo filesystem (usando mk2fs -j, ad esempio) per evitare l’attesa della rimozione dei file, dovrà modificare di conseguenza il file /etc/fstab inserendo il nuovo UUID della partizione.
Per trovare l’UUID di partizioni Ext2/Ext3 potete usare il programma tune2fs con l’opzione -l passandogli la partizione desiderata (es: tune2fs -l /dev/hda2), mentre il programma per tutti i filesystem è blkid.

Nota per gli utilizzatori di lilo (e non grub):

In seguito al ripristino del sistema operativo dovrete ripristinare anche lilo usando la distribuzione live, purtroppo non uso lilo e non ricordo il comando… Forse era proprio lilo!