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.
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.
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