SysLinuxOS Guida alla gestione degli snapshot
1. Introduzione
SysLinuxOS 13.2 utilizza btrfs come filesystem predefinito e integra snapper, grub-btrfs e l’helper syslinuxos-rollback per fornire snapshot automatici del filesystem avviabili direttamente da GRUB.
Ogni volta che il sistema viene aggiornato o viene creato uno snapshot manuale, una copia del filesystem radice viene salvata in /.snapshots. Questi snapshot appaiono come voci di avvio nel menu GRUB, consentendo di avviare il sistema in uno stato precedente senza perdere dati e senza richiedere una ISO live.
Questa guida copre i comandi principali per ispezionare, creare, eliminare e ripristinare gli snapshot su SysLinuxOS.
2. Requisiti
I seguenti pacchetti devono essere installati e attivi (presenti in SysLinuxOS 13.2):
syslinuxos-snapshots— forniscesyslinuxos-rollback, gli helper grub.d e lo script di configurazionesnapper>= 0.10grub-btrfs>= 4.14btrfs-progs
Per verificare che la configurazione sia completa:
sudo snapper -c root list systemctl status snapper-timeline.timer snapper-cleanup.timer grub-btrfsd.service
Se /.snapshots è assente o la configurazione di snapper non esiste, rieseguire la procedura di setup:
sudo /usr/sbin/syslinuxos-snapshots-setup
3. Visualizzare gli snapshot
Elencare tutti gli snapshot esistenti:
sudo snapper -c root list
L’output mostra il numero dello snapshot, il tipo (single, pre, post), la data, la descrizione e se lo snapshot è in sola lettura. La riga 0 rappresenta sempre lo stato corrente del sistema e non è uno snapshot reale.
Per visualizzare le informazioni dettagliate di uno snapshot specifico:
sudo snapper -c root info N
Sostituire N con il numero dello snapshot.
4. Creare uno snapshot
Creare uno snapshot manuale di tipo single con una descrizione:
sudo snapper -c root create --description "prima dell'aggiornamento del kernel" --type single
Creare una coppia pre/post intorno a un’operazione (ad esempio un aggiornamento di pacchetti):
sudo snapper -c root create --type pre --description "pre apt upgrade" sudo apt upgrade sudo snapper -c root create --type post --description "post apt upgrade"
5. Eliminare gli snapshot
Eliminare uno snapshot specifico per numero:
sudo snapper -c root delete N
Eliminare un intervallo di snapshot:
sudo snapper -c root delete N-M
Snapper esegue anche una pulizia automatica tramite il servizio snapper-cleanup.timer. I limiti attivi sono:
- Numero massimo di snapshot regolari conservati: 5
- Numero massimo di snapshot importanti conservati: 5
- Snapshot giornalieri della timeline conservati: 7
- Voci snapshot mostrate in GRUB: 8
Questi valori vengono impostati da syslinuxos-snapshots-setup e possono essere modificati manualmente:
sudo snapper -c root set-config "NUMBER_LIMIT=10" sudo snapper -c root set-config "TIMELINE_LIMIT_DAILY=14"
6. Snapshot automatici (timeline)
La timeline crea uno snapshot ogni ora e conserva gli snapshot giornalieri più recenti in base ai limiti configurati. Il servizio è gestito da due timer systemd:
systemctl status snapper-timeline.timer systemctl status snapper-cleanup.timer
Per verificare la configurazione della timeline:
sudo snapper -c root get-config
La creazione automatica è abilitata per impostazione predefinita (TIMELINE_CREATE="yes"). Per disabilitarla:
sudo snapper -c root set-config "TIMELINE_CREATE=no"
7. Avvio da uno snapshot (GRUB)
Al momento dell’avvio, il menu GRUB include un sottomenu denominato SysLinuxOS — snapshots. Selezionare una voce snapshot per avviare il sistema nello stato in cui si trovava al momento della creazione dello snapshot.
Il sistema si avvia da una copia in sola lettura dello snapshot. Da questo stato temporaneo è possibile verificare il corretto funzionamento del sistema e decidere se procedere con il ripristino.
Il sottomenu è generato da grub-btrfsd, che monitora /.snapshots e aggiorna /boot/grub/grub-btrfs.cfg automaticamente quando gli snapshot vengono creati o eliminati. Per rigenerarlo manualmente:
sudo update-grub
8. Ripristinare uno snapshot (rollback)
Il ripristino sostituisce il sottovolume radice corrente (@) con una copia in lettura-scrittura dello snapshot scelto. Il precedente @ viene conservato come @.rollback-bak-<timestamp> sul volume btrfs di primo livello a scopo di recupero.
8.1 Metodo 1 — Da uno snapshot avviato (consigliato)
Avviare il sistema dallo snapshot desiderato tramite il sottomenu snapshot di GRUB, dopo il login, quindi eseguire:
sudo syslinuxos-rollback
Lo strumento rileva automaticamente il numero dello snapshot dal percorso del sottovolume corrente.
8.2 Metodo 2 — Dal sistema in esecuzione o da una ISO live
Specificare esplicitamente il numero dello snapshot:
sudo syslinuxos-rollback N
In entrambi i casi lo strumento chiede conferma prima di apportare modifiche, quindi mostra le operazioni che eseguirà:
- Rinominare
@in@.rollback-bak-<timestamp> - Creare un nuovo
@in lettura-scrittura dallo snapshotN - Ricreare
@/.snapshotscome sottovolume btrfs vuoto (snapper riprende normalmente)
Al termine, riavviare il sistema:
sudo reboot
Dopo aver verificato il corretto funzionamento del sistema ripristinato, è possibile eliminare il sottovolume di backup (vedere la sezione successiva).
9. Pulizia dei backup di rollback
Ogni rollback lascia un sottovolume @.rollback-bak-<timestamp> sul volume btrfs di primo livello. Questi vengono conservati intenzionalmente come rete di sicurezza e NON compaiono nel menu snapshot di GRUB.
Per elencarli e rimuoverli:
sudo mkdir -p /mnt/tmp sudo mount -o subvolid=5 /dev/sdXN /mnt/tmp sudo btrfs subvolume delete -R -c /mnt/tmp/@.rollback-bak-<timestamp> sudo umount /mnt/tmp
Sostituire /dev/sdXN con la partizione btrfs (visibile con lsblk).
10. Accedere agli snapshot di un’altra installazione SysLinuxOS
Se più installazioni SysLinuxOS sono presenti su partizioni diverse, il menu GRUB include due sezioni aggiuntive generate dal pacchetto syslinuxos-snapshots:
- Altre installazioni Linux su btrfs: voce di primo livello per ciascuna installazione secondaria, più un sottomenu Advanced options con tutti i kernel disponibili e le voci di recovery. Sostituisce il rilevamento mancante di os-prober per i layout btrfs con sottovolume
@(bug Debian 921004, 940710). - SysLinuxOS — Snapshots of other installs: un sottomenu che carica via configfile il
grub-btrfs.cfgdi ciascuna installazione secondaria. Selezionando una voce si avvia uno snapshot specifico di quell’installazione.
Entrambe le sezioni sono generate da /etc/grub.d/13_syslinuxos-btrfs-otheros e /etc/grub.d/14_syslinuxos-snapshots-otheros. Possono essere disabilitate individualmente in /etc/default/grub:
GRUB_DISABLE_BTRFS_OTHEROS=true GRUB_DISABLE_BTRFS_SNAPSHOTS_OTHEROS=true
Dopo aver modificato queste variabili, rigenerare la configurazione GRUB:
sudo update-grub
11. Rieseguire la configurazione
Lo script di setup è idempotente e può essere rieseguito in qualsiasi momento. Salterà i passaggi già completati e applicherà solo ciò che manca:
sudo /usr/sbin/syslinuxos-snapshots-setup
Utilizzarlo dopo una modifica manuale alla configurazione di snapper, dopo un errore di snapper-boot.service, o quando si configura un sistema installato senza il pacchetto syslinuxos-snapshots.

