Indice

Fare il backup completo di un intero sistema Gnu/Linux

Autore: Fabio Di Matteo
Ultima revisione: 11/07/2024 - 12:47

L'idea è quella di fare un backup file per file di un intero sistema Gnu/Linux in esecuzione. Sul disco di destinazione ricreare partizioni aggiustare /etc/fstab in modo opportuno e installare il bootloader Grub. Per copiare i file useremo il tool Rsync in modalità archivio. In questa modalità conserverà gli attributi dei file e terra conto dei link senza risolverli.

Sistemi BIOS

Ecco un esempio del comando per file root che contengono la directory boot all'interno:

sudo rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/root_fs 

Una volta copiata tutta la root dobbiamo modificare /etc/fstab aggiustando gli uuid delle partizioni originali con quelli della nuova partizione. E' utile a tale scopo il comando blkid. Procediamo in seguito all'installazione del bootloader GRUB.

Entriamo in chroot nella cartella montata per la copia della root appena fatta /mnt/root_fs. Io ho usato una archLinux e quindi ho a disposizione lo script arch-chroot.

arch-chroot /mnt/root_fs
grub-install --target=i386-pc /dev/sdx  
grub-mkconfig -o /boot/grub/grub.cfg

Dove /dev/sdx deve essere cambiato con il device del disco che conterrà grub. Dico disco, non partizione. Quindi non includere un numero tipo /dev/sd1 per esempio.

Sistemi EFI

Se invece volessimo backuppare sistemi efi con la directory boot su un'altra partizione dobbiamo aggiustare il comando come segue:

sudo rsync -aAXv / --exclude={"/dev/*","/boot/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/root_fs 
sudo rsync -aAXv /boot/ /mnt/boot_fs

Una volta copiata tutta la root dobbiamo modificare /etc/fstab aggiustando gli uuid delle partizioni originali con quelli della nuova partizione. E' utile a tale scopo il comando blkid. Procediamo in seguito all'installazione del bootloader GRUB.

arch-chroot /mnt/root_fs/
mount -t vfat /dev/(partizione dove c'è boot) /boot/
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub  
grub-mkconfig -o /boot/grub/grub.cfg