restic backup: come cifrare i dati su disco esterno (Linux, Windows, macOS)
restic è un programma a riga di comando per i backup. Cifra i dati e salva una sola volta i contenuti ripetuti. Questa guida serve a chi vuole una copia dei propri file su un disco esterno e usa Linux, Windows o macOS. I comandi per creare, leggere e ripristinare i backup sono gli stessi sui tre sistemi: cambiano solo l’installazione e il percorso del disco.
Alla fine avrete sul disco un repository cifrato con dentro il primo backup. Saprete elencare gli snapshot, controllare che il repository sia integro e recuperare una cartella intera o un solo file. I comandi sono quelli della documentazione ufficiale di restic, versione 0.19.1, elencata in fondo.
Cosa serve
- Un computer con Linux, macOS o Windows. Su Windows restic si usa da PowerShell o dal Prompt dei comandi (CMD).
- Un disco esterno collegato, con abbastanza spazio libero per i dati da salvare.
- I privilegi di amministratore, per alcuni metodi di installazione: i gestori di pacchetti di Linux e WinGet con l’opzione
--scope Machine. - Una password robusta per il repository e un posto sicuro dove conservarla, per esempio un gestore di password.
Installare restic su Linux con il gestore di pacchetti
Su Linux conviene il pacchetto della distribuzione, che si installa e si aggiorna come il resto del sistema. Il pacchetto si chiama sempre restic. I comandi richiedono i privilegi di amministratore: se non siete root, scrivete sudo prima del comando.
Su Debian e sulle distribuzioni derivate, come Ubuntu, si usa apt-get:
apt-get install restic
Su Fedora si usa dnf:
dnf install restic
Su Arch Linux il pacchetto sta nei repository ufficiali e si installa con pacman:
pacman -S restic
La pagina di installazione di restic riporta i comandi anche per Alpine, Gentoo, openSUSE, RHEL e altre distribuzioni. Se il pacchetto della vostra distribuzione è vecchio, potete usare il binario ufficiale: nella stessa pagina, la sezione «Official binaries» porta alla pagina delle release del progetto. Scaricate il file adatto al vostro sistema e avviatelo.
Installare restic su macOS con Homebrew
Su macOS il metodo più diretto è Homebrew:
brew install restic
In alternativa la pagina di installazione indica pkgx e MacPorts. Al termine il comando restic è disponibile nel Terminale.
Installare restic su Windows con Scoop o WinGet
Su Windows restic si installa con Scoop oppure con WinGet. Con tutti e due i metodi restic.exe viene aggiunto da solo al PATH, quindi il comando restic funziona in PowerShell e nel Prompt dei comandi. Con Scoop:
scoop install restic
Con WinGet:
winget install --exact --id restic.restic --scope Machine
Senza opzioni, WinGet installa restic solo per l’utente corrente, nella cartella %LOCALAPPDATA%. L’opzione --scope Machine lo mette invece in %ProgramFiles%, la scelta consigliata per i backup che riguardano tutto il sistema. In questo caso servono i privilegi di amministratore: aprite PowerShell come amministratore. In alternativa potete scaricare il binario per Windows dalla pagina delle release e avviarlo.
Controllare la versione e aggiornare il binario ufficiale
Su tutti i sistemi, il primo controllo è chiedere a restic la sua versione:
restic version
Il programma stampa una riga con il proprio numero di versione, la versione di Go con cui è stato compilato e la piattaforma, per esempio linux/amd64.
L’aggiornamento automatico vale solo per il binario ufficiale. Se avete installato restic con apt-get, dnf, pacman, Homebrew, Scoop o WinGet, aggiornatelo con lo stesso gestore di pacchetti.
Il comando restic self-update scarica da GitHub l’ultima release e sostituisce il file di restic che state usando. Prima di installarla verifica la firma GPG dei file, senza bisogno di altri programmi. L’utente che lo esegue deve avere il permesso di sovrascrivere il binario di restic.
restic self-update
Se l’aggiornamento riesce, l’ultima riga lo conferma indicando la nuova versione. Potete verificarlo lanciando di nuovo restic version.
Trovare il percorso del disco esterno
Collegate il disco e annotate il percorso in cui il sistema lo rende disponibile: lì creerete la cartella del repository. Di solito i percorsi sono questi:
- Linux:
/media/NOMEUTENTE/NOMEDISCO, dove NOMEUTENTE è il vostro utente e NOMEDISCO è l’etichetta del disco. - macOS:
/Volumes/NOMEDISCO, dove NOMEDISCO è il nome che il disco ha nel Finder. - Windows: una lettera di unità, per esempio
E:\, che trovate in Esplora file alla voce Questo PC.
Nei comandi che seguono il repository si trova in /srv/restic-repo. Sostituite questo percorso con una cartella sul vostro disco: per esempio /media/NOMEUTENTE/NOMEDISCO/restic-repo, /Volumes/NOMEDISCO/restic-repo oppure E:\restic-repo. Usate sempre lo stesso percorso in tutti i comandi.
Creare il repository cifrato sul disco
Il repository è la cartella che contiene i backup, i loro metadati e le chiavi di cifratura. Si crea una volta sola, con il comando init, sostituendo /srv/restic-repo con il percorso sul vostro disco.
Attenzione alla password. Durante la creazione restic chiede una password, che servirà per ogni operazione futura. Se la perdete, i dati nel repository sono persi e non si recuperano in alcun modo. Prima di continuare salvatela in un gestore di password o in un altro posto sicuro, separato dal disco del backup.
restic init --repo /srv/restic-repo
restic chiede di scrivere la password due volte. Se tutto è andato bene, la risposta conferma la creazione del repository e ricorda che senza password i dati non si possono recuperare:
created restic repository 085b3c76b9 at /srv/restic-repo
Please note that knowledge of your password is required to access the repository.
Losing your password means that your data is irrecoverably lost.
Nel vostro caso il codice esadecimale e il percorso saranno diversi. Le opzioni per fornire la password in modo automatico sono descritte nella pagina sulla preparazione del repository.
Fare il primo backup di una cartella
In restic ogni backup produce uno snapshot, cioè il contenuto di una cartella in un preciso momento. Da qui in avanti i comandi indicano il repository con -r, che è la forma breve di --repo. Nell’esempio la cartella da salvare è ~/work: sostituitela con quella che volete proteggere, per esempio la cartella Documenti. Su Windows indicate il percorso completo della cartella. L’opzione --verbose mostra più dettagli sull’avanzamento.
restic -r /srv/restic-repo --verbose backup ~/work
restic chiede la password del repository, analizza la cartella e copia i dati. Riporta quanti file sono nuovi, modificati o invariati e quanti dati ha aggiunto al repository. Alla fine compare una riga di questo tipo:
snapshot 40dc1520 saved
Quel codice esadecimale è l’identificativo dello snapshot. La riga compare anche quando alcuni file non si sono potuti leggere: controllate quindi che non siano segnalati errori (vedi la sezione «Se qualcosa va storto»).
Se rilanciate lo stesso comando, restic salva solo ciò che è cambiato. Nell’esempio della documentazione sul backup, il secondo backup di una cartella rimasta identica non aggiunge dati al repository ma crea comunque un nuovo snapshot.
Elencare gli snapshot e controllare il repository
Per vedere quali backup contiene il repository si usa snapshots:
restic -r /srv/restic-repo snapshots
Compare una tabella con l’ID di ogni snapshot, la data, il nome del computer, la cartella salvata e la sua dimensione. La colonna della dimensione c’è solo per gli snapshot creati con restic 0.17.0 o versioni successive. Annotate l’ID: vi servirà per il ripristino.
Conviene controllare regolarmente che la struttura del repository sia integra, con il comando check:
restic -r /srv/restic-repo check
Se non ci sono problemi, l’ultima riga è questa:
no errors were found
Potete anche elencare i file contenuti in uno snapshot. Nel comando, sostituite c0899509 con un ID preso dall’elenco di snapshots:
restic -r /srv/restic-repo ls c0899509
restic stampa il percorso completo di ogni file e cartella dello snapshot. Sono i percorsi da passare a --include per ripristinare un singolo file, come spiega la documentazione sul ripristino. Altri comandi per esplorare il repository sono nella pagina sulla gestione dei repository.
Ripristinare i file in una cartella separata
Il ripristino copia i file da uno snapshot in una cartella di destinazione, indicata con --target. Negli esempi la destinazione è /tmp/restore: sostituitela con una cartella nuova e vuota, separata da quella originale. Su Windows, per esempio, una cartella nuova sul disco C:.
Prima di ripristinare: per impostazione predefinita restic sovrascrive i file già presenti nella destinazione. Non indicate mai come destinazione la cartella originale o una cartella che contiene dati che vi servono.
Il primo passo è una prova a vuoto, che mostra cosa verrebbe ripristinato senza scrivere nulla. Il comando usa latest, cioè l’ultimo snapshot. Usate lo stesso snapshot nella prova e nel ripristino vero: se volete ripristinarne un altro, sostituite latest con il suo ID; se volete l’ultimo, scrivete latest al posto dell’ID anche nei comandi successivi.
restic -r /srv/restic-repo restore --target /tmp/restore --dry-run --verbose=2 latest
Nell’elenco, i file nuovi compaiono come restored, quelli che verrebbero modificati come updated e quelli già aggiornati come unchanged. Alla fine c’è una riga di riepilogo con il numero di file e la dimensione totale. Se la destinazione è una cartella che non esiste ancora, nessun file risulterà updated.
Per ripristinare un intero snapshot, sostituite 79766175 con l’ID scelto:
restic -r /srv/restic-repo restore 79766175 --target /tmp/restore
Al termine i file si trovano nella destinazione, con la struttura delle cartelle originali. Per recuperare un solo file si aggiunge --include con il percorso del file dentro lo snapshot, quello mostrato da ls. Nell’esempio è /home/user/work/foo:
restic -r /srv/restic-repo restore 79766175 --target /tmp/restore --include /home/user/work/foo
Il file viene ripristinato in /tmp/restore/home/user/work/foo, cioè nella destinazione seguita dal suo percorso originale. Su Windows, per ripristinare i collegamenti simbolici e i descrittori di sicurezza completi servono privilegi particolari oppure una console da amministratore.
Dopo il primo backup
Con il tempo gli snapshot vecchi si eliminano con forget e prune, e i backup si possono pianificare con systemd o cron su Linux e con l’Utilità di pianificazione su Windows: sono argomenti per un’altra guida.
Se qualcosa va storto
- Il pacchetto della distribuzione è vecchio: usate il binario ufficiale, che poi si aggiorna con
restic self-update. - Su Fedora avevate già usato restic dal repository copr: rimuovete quel repository per evitare conflitti, come indica la pagina di installazione.
- Errore di password su Windows con MSYS2 o Cygwin: restic supporta solo la console standard di Windows. Con terminali come Mintty o rxvt usate PowerShell o CMD, oppure lo strumento winpty indicato nella documentazione.
- Il backup termina con codice di uscita 3: alcuni file non si potevano leggere, per esempio per un problema di permessi. Lo snapshot è stato creato ma non contiene quei file. Con il codice 1 c’è stato un errore grave, come un repository non scrivibile o una password sbagliata, e lo snapshot non è stato creato.
- Disco pieno durante il backup: lo snapshot non viene creato, ma quelli precedenti restano validi. Liberate spazio e rilanciate il backup.
checksegnala errori: il repository va riparato. Finché è danneggiato, alcuni ripristini possono fallire e i nuovi snapshot potrebbero non essere ripristinabili. Seguite le istruzioni stampate dacheck: per un indice danneggiato suggeriscerestic repair index.
Documentazione di riferimento
Pagine della documentazione ufficiale di restic (versione 0.19.1), consultate il 16 ottobre 2026:


