Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Eseguire il backup di un'intera distribuzione con il comando cp

Come eseguire un backup di un'intera distribuzione Linux con l'uso della shell e del semplice comando cp ('copy')
Come eseguire un backup di un'intera distribuzione Linux con l'uso della shell e del semplice comando cp ('copy')
Link copiato negli appunti

La potenza di un sistema GNU/Linux si nota anche nella sua estrema semplicità. Tradizionalmente in sistemi operativi unix-like le utilità più semplici e basilari si integrano tra loro a formare un ecosistema in cui ogni compito è assolto da una precisa applicazione. Non capita raramente però di scoprire che qualcuna di quelle semplici applicazioni può essere usata per scopi per cui non erano state concepite.

È questo il caso di cp, il programma che normalmente assolve al compito di "copiare" (cp è un'abbreviazione di copy). Vedremo adesso, infatti, come si può sfruttare questa semplice utilità per fare il backup di una intera distro, e ricavarne anche vantaggi. È il caso di avvertire i lettori che esistono metodi magari più eleganti per compiere questa operazione, ma lo scopo di questo articolo non è l'eleganza o la semplicità: è dimostrare la potenza di un piccolo comando.

I vantaggi nell'usare questa procedura sono che:

  • Si esplora un uso poco conosciuto del funzionamento di cp
  • Si impara a conoscere il filesystem Unix e la sua infinita flessibilità
  • Copiando l'intera distribuzione in una partizione diversa si esegue la deframmentazione di tutti i file
  • Non si ha bisogno di utilità esterne o di procedure complicate per fare il backup

Immaginiamo di voler spostare la nostra distribuzione dalla partizione "A" alla partizione "A-copia". Dopo aver effettuato i controlli necessari, aver ripulito la nuova partizione e creato un filesystem secondo le nostre preferenze, siamo pronti a cominciare a copiare. Per motivi di praticità vi mostrerò come copiare la distribuzione usando un liveCD, che chiameremo "B". Questo ci torna utile soprattutto nel momento in cui andiamo a copiare alcune directory speciali o "virtuali". In sostanza usiamo B come mezzo per copiare A in A-copia.

Sconsiglio di usare una qualsiasi interfaccia grafica per compiere questa operazione, proviamo ad usare direttamente la shell con cp, o al massimo il file manager ncurses MC. La prima preoccupazione deve essere quella di preservare correttamente i permessi e i proprietari di ogni singolo file copiato, altrimenti all'avvio del nuovo sistema operativo copiato, potremmo avere un semplice mucchio di file e directory completamente fuori uso. Per questo se si usa cp bisognerà stare attenti a passare sempre il parametro -a (consultate il manuale di cp per riferimenti), mentre se si usa MC si avrà cura ad abilitare l'opzione "Preserva gli attributi".

Procediamo. Bisogna prima di tutto montare la partizione vuota appena creata e dotata un filesystem che conterrà A-copia. Dal momento che per operare si sta usando una terza distribuzione, che potrebbe essere un liveCD o una distribuzione installata, possiamo copiare direttamente quasi tutto il contenuto della directory radice di A.

Si faccia molta attenzione all'opzione "Preserva gli attributi" e si eviti di includere nella selezione da copiare le directory /media /mnt e tutti i link o le directory che contengono link a filesystem in uso, come /cdrom, o che potrebbero fare riferimento a directory indesiderate o, ciò che peggio, collegamenti ricorsivi. Ecco un'immagine di MC:

Figura 1: un'immagine di MC
Un'immagine di MC

Il comando cp invece sarebbe qualcosa come:

$: sudo cp -a /bin /boot /dev /etc /home /initrd /lib /lost+found /opt /proc /root /sbin /srv /sys /tmp /usr /var /media/hdb6

L'intero processo può durare alcuni minuti, molto dipende dalle dimensioni della distribuzione da copiare e dalla velocità del computer sul quale si effettua l'operazione. Una volta completata la copia si potranno creare le directory che abbiamo precedente omesso, in questo caso /media e /mnt, e creare gli eventuali link, come /cdrom, /initrd.img /vmlinuz e così via.

Il prossimo passo è rendere il nuovo sistema avviabile e adeguarlo alla nuova partizione. Per fare questo agiamo sostanzialmente su un unico file, che indica al sistema la sua disposizione su disco: /etc/fstab. Si dovrà aver cura di adeguare soprattutto la voce che fa riferimento alla "root", la directory radice, che adesso avrà un campo /dev/hdxn differente, nel caso che vedete nella schermata di MC in alto, il nuovo campo diverrebbe /dev/hdb6, dal momento che si sta spostando il sistema in quella partizione. L'ultimo tocco sarà quello di aggiungere una voce al bootloader, lilo o grub, per caricare A-copia.


Ti consigliamo anche