System backup (Italiano)

Stato della traduzione
Questo articolo è la versione tradotta di
System backup
. Data dell'ultima traduzione: 2026-02-13. Se ci sono
cambiamenti
nella versione inglese, è possibile dare una mano a sincronizzarne la traduzione.
Related articles
Programmi di sincronizzazione e backup
Manutenzione del sistema#Backup
Crittografia dei dati a riposo#Backup per scenari di crittografia del disco
Clonazione del disco
Migrare l'installazione in un nuovo hardware
Recupero dei file
Da
Wikipedia
:
Con backup, nella sicurezza informatica, si indica un processo di
disaster recovery
ovvero, in particolare, la messa in sicurezza delle informazioni di un sistema informatico attraverso la creazione di ridondanza delle informazioni stesse (una o più copie di riserva dei dati), da utilizzare come recupero (ripristino) dei dati stessi in caso di eventi malevoli accidentali o intenzionali o semplice manutenzione del sistema.
Un metodo comune e generalmente efficace è quello di seguire la strategia 3-2-1:
mantenere tre copie dei propri dati;
usare due differenti tipi di supporto di memorizzazione;
conservare una copia fuori sede.
Usare gli snapshot Btrfs
Si veda
Btrfs#Snapshot
,
#Snapshot e partizione /boot
e
Snapper
.
Usare gli snapshot LVM
Si veda
LVM#Snapshot
,
Create root filesystem snapshots with LVM
e
#Snapshot e partizione /boot
.
Usare rsync
Si veda
rsync#Come strumento di backup
.
Usare tar
Si veda
Backup completo del sistema con tar
.
Usare SquashFS
Si veda
Backup completo del sistema con SquashFS
.
Nota
SquashFS non supporta le
ACL
.
Backup avviabile
Avere un backup avviabile può essere utile nel caso in cui il file system si corrompa o se un aggiornamento compromette il sistema. Il backup può anche essere utilizzato come ambiente di prova per gli aggiornamenti, abilitando ad esempio il repository
testing
, ecc. Se il sistema è stato trasferito su una partizione o un disco differente e si desideri avviarlo, il processo è semplice: basta aggiornare il file
/etc/fstab
del backup e il file di configurazione del boot loader.
Questa sezione presuppone che sia stato eseguito il backup del sistema su un altro disco o partizione, che l'attuale boot loader funzioni correttamente e che si desideri poter avviare anche il backup.
Aggiornare l'fstab
Senza riavviare, modificare il file
fstab
del backup commentando o rimuovendo ogni voce esistente. Aggiungere una voce per la partizione che contiene il backup come nell'esempio seguente:
/dev/sda
X
/
ext4
defaults                 0   1
Ricordarsi di utilizzare il nome del dispositivo e il tipo di file system corretti.
Aggiornamento del file di configurazione del boot loader
Per
Syslinux
è sufficiente duplicare la voce corrente, modificando il puntatore affinché faccia riferimento a un disco o a una partizione differente.
Suggerimento
Invece di modificare
syslinux.cfg
, è possibile editare temporaneamente il menu durante l'avvio. Quando appare il menu, premendo il tasto
Tab
si possono cambiare le voci pertinenti. Le partizioni vengono conteggiate a partire da uno, i dischi a partire da zero.
Per
GRUB
si raccomanda di
rigenerare automaticamente il file di configurazione principale
. Se si desidera installare ex novo tutti i file di GRUB in una posizione diversa da
/boot
, come ad esempio
/mnt/newroot/boot
, è necessario utilizzare il flag
--boot-directory
.
È inoltre necessario verificare la nuova voce di menu in
/boot/grub/grub.cfg
. Bisogna assicurarsi che l'UUID corrisponda alla nuova partizione, altrimenti il sistema potrebbe ancora avviare quello vecchio. L'UUID di una partizione può essere individuato con
lsblk
:
$ lsblk -no NAME,UUID /dev/sdXY
dove
/dev/sdXY
è la partizione desiderata (es.
/dev/sdb3
). Per elencare gli UUID delle partizioni che GRUB ritiene di poter avviare, si può utilizzare
grep
:
# grep UUID= /boot/grub/grub.cfg
Primo avvio
Riavviare il computer e selezionare la voce corretta nel boot loader. Questo caricherà il sistema per la prima volta. Tutte le periferiche dovrebbero essere rilevate e le cartelle vuote in
/
verranno popolate.
Ora è possibile modificare nuovamente
/etc/fstab
per aggiungere le partizioni e i punti di montaggio precedentemente rimossi.
Snapshot e partizione /boot
Se il
file system
supporta gli snapshot (ad es.
LVM
o
Btrfs
), questi molto probabilmente escluderanno la partizione
/boot
o la partizione
ESP
.
È possibile copiare automaticamente la partizione di boot nella partizione di
root
in occasione di un aggiornamento del kernel tramite un
hook di pacman
(assicurandosi che il file dell'hook sia di proprietà di root):
/etc/pacman.d/hooks/55-bootbackup_pre.hook
[Trigger]
Operation = Upgrade
Operation = Install
Operation = Remove
Type = Path
Target = usr/lib/modules/*/vmlinuz

[Action]
Depends = rsync
Description = Backing up pre /boot...
When = PreTransaction
Exec = /usr/bin/bash -c 'rsync -a --mkpath --delete /boot/ "/.bootbackup/$(date +%Y_%m_%d_%H.%M.%S)_pre"/'
/etc/pacman.d/hooks/95-bootbackup_post.hook
[Trigger]
Operation = Upgrade
Operation = Install
Operation = Remove
Type = Path
Target = usr/lib/modules/*/vmlinuz

[Action]
Depends = rsync
Description = Backing up post /boot...
When = PostTransaction
Exec = /usr/bin/bash -c 'rsync -a --mkpath --delete /boot/ "/.bootbackup/$(date +%Y_%m_%d_%H.%M.%S)_post"/'
Automazione
I backup creati solo manualmente sono raramente aggiornati quando se ne presenta la necessità. Pertanto, si consiglia di impostare un processo automatizzato per garantire che le procedure di backup siano eseguite regolarmente. Le soluzioni più comuni sono fornite da
systemd/Timers
e
cron
.
Per un backup locale dell'intero sistema che richieda l'accesso in lettura a tutti i file, il timer e il servizio systemd seguenti possono essere utili come modello per i processi di backup automatizzati.
Per utilizzare un'unità timer,
abilitarla
e
avviarla
come qualsiasi altra unità.
/etc/systemd/system/backup.timer
[Unit]
Description=Timer for backups

[Timer]
OnCalendar=weekly
Persistent=true
Unit=backup.service

[Install]
WantedBy=timers.target
L'esempio seguente è configurato per l'esecuzione con i permessi minimi necessari, impedendo al contempo modifiche da parte degli utenti normali per una maggiore sicurezza.
Si noti che questo esempio bloccherà il processo di spegnimento qualora venisse avviato mentre il backup è in esecuzione. Ciò garantisce che il backup non venga interrotto, ma può causare un ritardo durante lo spegnimento o il riavvio se è necessario salvare molti nuovi file.
/etc/systemd/system/backup.service
[Unit]
Description=Backup system

[Service]
Type=simple
User=
backupuser
AmbientCapabilities=CAP_DAC_READ_SEARCH
CapabilityBoundingSet=CAP_DAC_READ_SEARCH
DevicePolicy=closed
LockPersonality=yes
MemoryDenyWriteExecute=yes
NoNewPrivileges=yes
PrivateDevices=yes
PrivateTmp=yes
ProtectClock=yes
ProtectControlGroups=yes
ProtectHome=read-only
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
ProtectProc=invisible
ProtectSystem=full
RemoveIPC=yes
RestrictAddressFamilies=AF_UNIX
RestrictNamespaces=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
SystemCallFilter=@system-service
UMask=7007

ExecStart=/usr/local/bin/backup.sh
ExecStop=bash -c 'if [ -n "$MAINPID" ]; then tail --pid="$MAINPID" -f /dev/null; fi'
CAP_DAC_READ_SEARCH
imposta la capability che consente di bypassare i controlli dei permessi di lettura dei file nel file system; in questo modo, tutti i file nel sistema risulteranno accessibili senza richiedere i permessi di root.
Per i backup remoti, è consentito l'uso di protocolli di rete:
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6