Debian SID con btrfs e snapper per una maggiore stabilità
2024-11-10
Premessa: snapshot vs backup
Un backup è una copia completa dei dati archiviata separatamente dalla fonte originale, riducendo il rischio di perdita dovuta a guasti hardware, errori software o altri eventi catastrofici.
Gli snapshot non sono dei backup. Quando viene creato uno snapshot, viene registrato lo stato attuale dei metadati e dei blocchi di dati. Questo processo è rapido e occupa poco spazio, poiché non viene effettuata una copia completa dei dati, ma solo una registrazione dei vari metadati associati.
Quando un blocco di dati viene modificato dopo la creazione dello snapshot, la modifica non sovrascrive il blocco originale. Invece, il nuovo dato viene scritto in un’area designata, e i metadati vengono aggiornati per riflettere questa modifica. Questo consente di mantenere l’integrità dei dati originali.
Quando si ripristina un sistema a uno snapshot precedente, i blocchi di dati che sono stati modificati o aggiunti dopo la creazione dello snapshot vengono rimossi o ripristinati allo stato originale. Questo processo consente di annullare modifiche indesiderate, recuperare file eliminati o ripristinare interi volumi a uno stato precedente.
Nella configurazione successiva, i backup della /home
saranno gestiti tramite Borg
e salvati su due dischi in RAID 1
. Per maggiori informazioni: RAID
Debian netinstall
Scaricare Debian netinstall versione stabile o testing, in base alle esigenze.
Installazione
Avviare il dispositivo di installazione, andare alle impostazioni avanzate e scegliere l’opzione Expert Install .
Procedere con l’installazione scegliendo le opzioni che meglio si adattano alle esigenze; si tratta di un’installazione piuttosto standard fino a quando non arriveremo alla fase di partizionamento del disco.
Quando viene chiesto di Impostare utenti e password, non consentire il login come utente root. In questo modo, il nostro utente sarà automaticamente inserito nel gruppo sudo. È infatti una prassi consigliata non utilizzare l’account root per le operazioni quotidiane, permettendo una gestione più sicura del sistema.
Partizionamento
Scegliere l’opzione per il partizionamento manuale.
Selezionare il disco desiderato e creare una nuova tabella delle partizioni. Se il tuo sistema è UEFI, come tutti i sistemi moderni, scegli di creare una nuova tabella delle partizioni gpt; altrimenti, se si tratta di un sistema di avvio legacy, dovresti utilizzare mbr.
EFI
Crea una nuova partizione con una dimensione di 512 MB; questo è più che sufficiente per la partizione EFI.
boot
Crea una nuova partizione da 1 GB, formattala come ext4 e seleziona come punto di montaggio /boot
.
main
Infine, crea una nuova partizione utilizzando tutto lo spazio rimanente e seleziona di utilizzarla come physical volume for encryption.
Configure encrypted volumes
Ora seleziona Configure encrypted volumes. Verrà chiesto di scrivere le modifiche su disco; selezionare yes e procedere.
- Selezionare Crea volumi crittografati
- Selezionare il dispositivo da crittografare, che dovrebbe essere quello che hai creato come physical volume for encryption.
Ora l’installatore cancellerà e sovrascriverà il volume crittografato.
Quando il processo è terminato, verrà chiesto di impostare una nuova password per la crittografia del volume; assicurarsi di impostare una password forte.
LVM
Ora che abbiamo impostato il volume crittografato, dobbiamo configurare LVM. Selezionare Configure the Logical Volume Manager.
- Scrivere le modifiche su disco.
- Selezionare Create Volume Group.
- Assegnare un nome al Volume Group; per semplicità, VG0.
- Selezionare il dispositivo crittografato per il nuovo Volume Group.
- Scrivere le modifiche su disco.
- Ora creare un singolo Logical Volume, chiamato LV0, utilizzando tutto lo spazio disponibile.
- Premere Fine.
Btrfs
Selezionare il solo Logical Volume e impostare la nuova partizione Btrfs
:
- Usa come: file system Btrfs con journaling
- Punto di montaggio: /
Ora possiamo completare il partizionamento.
Quando viene chiesto se si desidera tornare indietro e creare una partizione SWAP, dobbiamo selezionare NO; non abbiamo bisogno di una partizione SWAP poiché utilizzeremo ZRAM.
Scrivere le modifiche su disco e procedere al passaggio successivo, ma NON INSTALLARE ANCORA IL SISTEMA!
Prima dell’installazione: configurazione del sistema
Dobbiamo ancora configurare meglio il nostro sistema btrfs e creare i subvolume che utilizzeremo.
Premere Alt+CTRL+F2
per accedere alla shell.
Utilizzare il comando df
per vedere il file system attualmente montato. Dovremo smontare il target file system con i seguenti comandi:
umount /target/boot/efi/
umount /target/boot/
umount /target/
/target è una directory utilizzata per rappresentare il file system di destinazione in cui il sistema operativo verrà installato
Montare la nostra partizione crittografata con il seguente comando:
mount /dev/mapper/$VOLUME_GROUP_NAME /mnt
Bisogna sostituire $VOLUME_GROUP_NAME
con il nome del volume group creato in precedenza (es: VG0-LV0
).
Successivamente, spostiamoci nel sistema appena montato:
cd /mnt
Vediamo cosa abbiamo all’interno della partizione montata:
ls
@rootfs
Dovresti vedere solo @rootfs
. Dobbiamo rinominare questo subvolume in @
per renderlo compatibile con Timeshift, nel caso volessimo successivamente utilizzarlo:
mv @rootfs/ @
Ora possiamo creare ulteriori subvolume btrfs:
btrfs su cr @snapshots
btrfs su cr @home
btrfs su cr @cache
btrfs su cr @crash
# GNOME related subvolumes
btrfs su cr @AccountsService
btrfs su cr @gdm # @sddm for KDE
btrfs su cr @log
btrfs su cr @tmp
L’idea di separare il sistema principale in diversi sottovolumi è quella di gestire e risparmiare spazio su disco. Ci sono molti file che vogliamo escludere dagli snapshot del file system root. Il layout che sto utilizzando è solo uno dei tanti suggeriti; puoi utilizzare più o meno subvolume a seconda delle tue esigenze.
Altri subvolume che potresti considerare di creare includono volumi relativi a Gnome, come gdm3 e AccountsService, montati in /var/lib/
. Gnome ha bisogno di questi subvolume che contengono informazioni di accesso degli utenti e devono essere sempre scrivibili. Se provi ad avviare uno snapshot di Gnome in sola lettura senza questi subvolume, il sistema si bloccherà prima della schermata di accesso.
NAME MOUNTPOINT TYPE
[main] / mainvolume
snapshots /.snapshots subvolume
home /home subvolume
cache /var/cache subvolume
crash /var/crash subvolume
AccountsService /var/lib/AccountsService subvolume
gdm /var/lib/gdm subvolume
log /var/log subvolume
tmp /var/tmp subvolume
Directory escluse dagli snapshot
-
/var/cache
,/var/crash
,/var/tmp
: queste directory contengono file temporanei e cache. Sono escluse dagli snapshot, poiché i loro contenuti non sono necessari per il ripristino del sistema. -
/var/lib/AccountsService
,/var/lib/gdm
: queste directory contengono dati relativi a Gnome. Devono essere sempre scrivibili. Se si prova ad avviare uno snapshot dal menu GRUB, questo viene avviato in sola lettura, il che causa il blocco del sistema poco prima che appaia la schermata di accesso di Gnome. -
/var/log
: contiene i file di log. Sarà creata per prevenire la perdita di dati di log durante i rollback.
Ora montiamo il subvolume root per poter creare le directory aggiuntive per i vari subvolume definiti in precedenza:
mount -o noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@ /dev/mapper/$VOLUME_GROUP /target
$VOLUME_GROUP nel nostro esempio VG0-LV0
Punti di mount
Ora creiamo i punti di montaggio per ciascun subvolume. I punti di montaggio sono le directory in cui i subvolume verranno montati nel file system:
cd /target
mkdir -p .snapshots
mkdir -p home
mkdir -p var/cache
mkdir -p var/crash
mkdir -p var/lib/AccountsService
mkdir -p var/lib/gdm3
mkdir -p var/log
mkdir -p var/tmp
montaggio dei subvolume
Ora montiamo ciascun subvolume nei rispettivi punti di mount:
cd /target
mount -o noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@snapshots /dev/mapper/$VOLUME_GROUP /target/.snapshots
mount -o noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@home /dev/mapper/$VOLUME_GROUP /target/home
mount -o noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@cache /dev/mapper/$VOLUME_GROUP /target/var/cache
mount -o noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@crash /dev/mapper/$VOLUME_GROUP /target/var/crash
mount -o noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@AccountsService /dev/mapper/$VOLUME_GROUP /target/var/lib/AccountsService
mount -o noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@gdm /dev/mapper/$VOLUME_GROUP /target/var/lib/gdm3
mount -o noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@log /dev/mapper/$VOLUME_GROUP /target/var/log
mount -o noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@tmp /dev/mapper/$VOLUME_GROUP /target/var/tmp
# Non dimenticare di montare anche le partizioni "boot" e "efi". Nel caso di dischi NVME
mount /dev/nvme0n1p2 /target/boot
mount /dev/nvme0n1p1 /target/boot/efi
# Nel caso di normali SSD
# mount /dev/sdX2 boot
# mount /dev/sdX1 boot/efi
Parametri di Montaggio
-
noatime
: questo parametro disabilita l’aggiornamento del timestamp di accesso ai file. Di default, ogni volta che un file viene letto, il sistema aggiorna il suo timestamp di accesso. Disabilitare questa funzionalità può migliorare le prestazioni. -
space_cache=v2
: questo parametro abilita la space cache per il file system Btrfs. La cache aiuta a migliorare le prestazioni di scrittura e a ridurre la frammentazione. -
compress=zstd:1
: questo parametro abilita la compressione dei dati utilizzando l’algoritmo zstd. Il valore 1 indica il livello di compressione, dove 1 è un livello di compressione più veloce e meno intensivo in termini di CPU, mentre valori più alti (fino a 19) offrono una compressione migliore, ma richiedendo più risorse. -
discard=async
: questo parametro abilita la funzionalità di discard, che consente al file system di informare l’unità SSD di quali blocchi non sono più in uso e possono essere liberati. Con questa configurazione le operazioni di discard verranno eseguite in modo asincrono, migliorando le prestazioni rispetto all’esecuzione sincrona, poiché non verranno bloccate le operazioni di scrittura.
fstab
Ora dobbiamo modificare la nostra file system table per rendere queste modifiche permanenti.
Procediamo quindi a modificare il file /target/etc/fstab
, che contiene informazioni descrittive sui file system che il sistema può montare. fstab viene solo letto dai programmi e non viene scritto.
Il risultato finale dovrebbe essere qualcosa del tipo:
# <file system> <mount point> <type> <options> <dump> <pass>
# Assicurarsi che la voce seguente sia commentata
# /dev/mapper/VG0-LV0 / btrfs defaults,subvol=@rootfs 0 0
/dev/nvme0n1p2 /boot ext4 defautls 0 2
/dev/nvme0n1p1 /boot/efi vfat umask=0077 0 1
/dev/mapper/$VOLUME_GROUP / btrfs noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@ 0 0
/dev/mapper/$VOLUME_GROUP /.snapshots btrfs noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@snapshots 0 0
/dev/mapper/$VOLUME_GROUP /home btrfs noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@home 0 0
/dev/mapper/$VOLUME_GROUP /var/cache btrfs noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@cache 0 0
/dev/mapper/$VOLUME_GROUP /var/crash btrfs noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@crash 0 0
/dev/mapper/$VOLUME_GROUP /var/lib/AccountsService btrfs noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@AccountsService 0 0
/dev/mapper/$VOLUME_GROUP /var/lib/gdm3 btrfs noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@gdm 0 0
/dev/mapper/$VOLUME_GROUP /var/log btrfs noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@log 0 0
/dev/mapper/$VOLUME_GROUP /var/tmp btrfs noatime,space_cache=v2,compress=zstd:1,ssd,discard=async,subvol=@tmp 0 0
dump
: campo utilizzato dal comando dump, che è uno strumento per il backup dei file system. Indica se il file system deve essere incluso nei backup. Nella maggior parte dei casi, questo campo è impostato su 0, poiché dump non è comunemente utilizzato nei sistemi moderni.
pass
: determina l’ordine in cui i file system devono essere controllati dafsck
(file system check) durante l’avvio del sistema. Valori:0: Il file system non verrà controllato da fsck all’avvio.
1: Il file system verrà controllato per primo.
2: Il file system verrà controllato dopo quelli con valore 1.
Infine:
cd /
unmount /mnt
exit
Ora possiamo tornare all’installazione standard. Premere Ctrl+Alt+F1
e proseguire con l’installazione del sistema di base.
Installazione del sistema
Procedere con l’installazione predefinita, scegliendo le opzioni che meglio si adattano alle esigenze, oppure utilizzare semplicemente le impostazioni predefinite.
Ecco le opzioni utilizzate comunemente:
- Kernel da installare:
linux-image-amd64
- Driver da includere nell’initrd:
generic
- Mirror di rete: Sì, http
- Usare firmware non libero: Sì
- Usare software non libero: Sì
- Servizi da utilizzare: security updates / releases updates / backported software
- Nessun aggiornamento automatico
- spuntare solo standart system utilities: successivamente installeremo un DE o WM minimale
- Forzare l’installazione di GRUB su EFI removable…: No
- Aggiornare NVRAM: Sì
- Impostare l’orologio di sistema su UTC: No
Dopo aver completato questi passaggi, il sistema dovrebbe essere installato correttamente. Una volta riavviato, si dovrebbe essere in grado di accedere a Debian.
The first boot
Finora abbiamo completato la nostra installazione minimale, Debian senza GUI. Il primo snapshot sarà il nostro punto di default, così potremo sempre tornare a un’installazione pulita.
ZRAM
ZRAM utilizza la RAM stessa per memorizzare i dati compressi.
I dati vengono compressi, il che significa che occupano meno spazio rispetto a quanto occuperebbero normalmente in RAM. Questo consente di aumentare la quantità di dati che possono essere memorizzati in memoria senza dover ricorrere a uno swap su disco. ZRAM offre quindi prestazioni migliori rispetto allo swap tradizionale, poiché l’accesso alla RAM è molto più veloce rispetto all’accesso al disco.
Per maggiori informazioni: How to Install ZRAM to Boost Ubuntu Performance
Poiché non abbiamo creato una partizione swap dedicata, configuriamo ZRAM, installando il pacchetto:
sudo apt update && sudo apt upgrade
sudo apt install zram-tools
Ecco la configurazione utilizata:
sudo nano /etc/default/zramswap
# Compression algorithm selection
# speed: lz4 > zstd > lzo
# compression: zstd > lzo > lz4
ALGO=lz4
# Specifies the amount of RAM that should be used for zram
# based on a percentage the total amount of available memory
# This takes precedence and overrides SIZE below
PERCENT=20 # In questo caso, il 20% della RAM totale sarà dedicato a ZRAM
# Specifies a static amount of RAM that should be used for
# the ZRAM devices, this is in MiB
#SIZE=256
# Specifies the priority for the swap devices, see swapon(2)
# for more details. Higher number = higher priority
# This should probably be higher than hdd/ssd swaps.
#PRIORITY=100
Snapper
Installare Snapper e i pacchetti necessari per impostare GRUB-BTRFS
:
sudo apt install snapper inotify-tools git make
Dobbiamo fare alcuni preparativi per impostare Snapper in modo che salvi i nostri snapshot nel subvolume @snapshots
che abbiamo creato in precedenza.
Il modo predefinito in cui Snapper funziona è quello di creare automaticamente un nuovo subvolume chiamato .snapshots
nel path del subvolume in cui viene configurato. Poiché vogliamo mantenere i nostri snapshot in un sottovolume separato, dobbiamo rimuovere il subvolume .snapshots
creato da Snapper e poi rimontare il sottovolume creato in precedenza nel medesimo path.
Possiamo fare questo spostandoci nella directory /
, smontando la directory .snapshots
e poi rimuovendola:
cd /
sudo umount .snapshots
sudo rm -r .snapshots/
Ora possiamo creare una nuova configurazione per Snapper col comando:
sudo snapper -c root create-config /
Questa nuova configurazione dovrebbe aver creato una nuova directory .snapshots
e anche un nuovo subvolume btrfs con lo stesso nome. Rimuoveremo questo nuovo subvolume e collegheremo il nostro subvolume @snapshots
a questo percorso.
Rimuovere il subvolume creato automaticamente:
sudo btrfs subvolume delete /.snapshots
Creare di nuovo la directory:
sudo mkdir /.snapshots
Ora possiamo rimontare il nostro subvolume @snapshots
su /.snapshots
:
sudo mount -av
L’opzione -a
monta tutti i file system elencati in /etc/fstab
, mentre -v
fornisce un output verboso per vedere cosa viene montato.
Configurazione di Snapper
Snapper può creare automaticamente nuovi snapshot secondo un programma, ad ogni avvio, prima e dopo l’installazione di un nuovo pacchetto. Per ora non utilizzerò alcuno snapshot creato automaticamente, quindi imposteremo tutto su manuale.
- Disabilitare gli snapshot automatici all’avvio del sistema:
sudo systemctl disable snapper-boot.timer
- Disabilitare la creazione automatica di snapshot basati su una timeline, il che significa che non verranno creati snapshot a intervalli regolari:
sudo snapper -c root set-config 'TIMELINE_CREATE=no'
- Aggiungere Snapper al il gruppo
sudo
, in modo da consentire agli utenti che appartengono a questo gruppo di utilizzare Snapper:
sudo snapper -c root set-config 'ALLOW_GROUPS=sudo'
sudo snapper -c root set-config 'SYNC_ACL=yes'
In questo modo, Snapper non creerà snapshot automaticamente. Tuttavia, Snapper creerà automaticamente una coppia di snapshot pre e post ogni volta che si utilizza il comando apt
per installare un nuovo pacchetto, il che è utile per il ripristino in caso di problemi durante l’installazione.
Se si desidera modificare questo comportamento, si deve modificare il file di configurazione di Snapper per apt:
sudo nano /etc/apt/apt.conf.d/80snapper
Possiamo impostare il numero massimo di snapshot che vogliamo mantenere. Una volta superato questo limite, Snapper eliminerà gli snapshot in eccesso:
sudo snapper -c root set-config "NUMBER_LIMIT=10"
sudo snapper -c root set-config "NUMBER_LIMIT_IMPORTANT=10"
Dove NUMBER_LIMIT
si riferisce al numero totale di snapshot che Snapper manterrà, mentre NUMBER_LIMIT_IMPORTANT
si riferisce al numero di snapshot contrassegnati come importanti.
L’algoritmo di pulizia viene eseguito una volta al giorno; per modificare la frequenza bisogna agire sul file: /lib/systemd/system/snapper-timeline.timer
Per eseguire manualmente l’algoritmo di pulizia:
sudo snapper cleanup number
Anche se non utilizziamo gli snapshot temporali, prima di procedere modifichiamo il file di configurazione per impostare il numero massimo di snapshot da mantenere, nel caso in cui decidessimo di utilizzare la timeline in futuro:
sudo nano /etc/snapper/configs/root
TIMELINE_MIN_AGE="1800" # Imposta l'età minima (in secondi) di uno snapshot a 1800 secondi (30 minuti). Questo significa che Snapper non creerà un nuovo snapshot se non è passato almeno questo tempo dall'ultimo.
TIMELINE_LIMIT_HOURLY="5"
TIMELINE_LIMIT_DAILY="7"
TIMELINE_LIMIT_WEEKLY="0" # Non mantiene snapshot settimanali
TIMELINE_LIMIT_MONTHLY="0"
TIMELINE_LIMIT_YEARLY="0"
First snapshot
Infine, creiamo il nostro primo snapshot; questo sarà uno snapshot di tipo single
e sarà conservato fino a quando non lo elimineremo manualmente:
sudo snapper -c root create --description "default fresh install"
GRUB-BTRFS
GRUB-BTRFS non è disponibile nei repository di Debian, quindi lo installeremo da sorgente:
cd
git clone https://github.com/Antynea/grub-btrfs.git
cd grub-btrfs
sudo make install
Ora dobbiamo abilitare il servizio responsabile dell’aggiornamento automatico del menu di GRUB ogni volta che vengono creati o eliminati snapshot:
sudo systemctl enable --now grub-btrfsd
Infine:
cd ..
rm -rf grub-btrfs/
From Stable to SID
Debian SID (unstable) offre diversi vantaggi come aggiornamenti continui (rolling-release), permettendo l’accesso alle ultime versioni dei pacchetti. In caso di problemi, possiamo sempre ritornare allo snapshot iniziale default fresh install
.
Modificare il file /etc/apt/sources.list
nel modo seguente:
# Debian SID
deb http://deb.debian.org/debian/ unstable main contrib non-free non-free-firmware
Aggiornare quindi la lista dei pacchetti e infine aggiornare il sistema per passare a SID:
sudo apt update
sudo apt full-upgrade
sudo shutdown -r now
All’avvio, possiamo verificare la versione coi comandi:
cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux trixie/sid"
NAME="Debian GNU/Linux"
VERSION_CODENAME=trixie
ID=debian
cat /etc/debian_version
trixie/sid
Eseguire quindi uno snapshot: sudo snapper -c root create --description "debian SID"
GRUB config
Modificare il file /etc/default/grub
nel modo seguente:
GRUB_DEFAULT=0 # Imposta il primo elemento del menu come predefinito
GRUB_TIMEOUT_STYLE=hidden # Nasconde il menu di GRUB all'avvio
GRUB_TIMEOUT=0 # Nessun tempo di attesa, avvio immediato del sistema predefinito
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` # Nome della distribuzione, predefinito a Debian
GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.show_status=1" # Opzioni del kernel
GRUB_CMDLINE_LINUX="" # Opzioni del kernel per tutte le modalità di avvio (vuoto in questo caso)
GRUB_PASSWORD="changeme" # Password per accedere al menu di GRUB (cambiare con una password sicura)
GRUB_GFXMODE=1920x1080 # Imposta la risoluzione grafica del menu di GRUB
GRUB_GFXPAYLOAD_LINUX=keep # Mantiene la risoluzione grafica durante il caricamento del kernel
Se si desidera accedere al menu di GRUB quando è nascosto, premere durante il processo di avvio il tasto Shift (su sistemi BIOS) o Esc
(su sistemi UEFI) subito dopo che il computer inizia a caricarsi. Questo dovrebbe forzare la visualizzazione del menu di GRUB.
Altrimenti, modificare la configurazione precedente:
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=5
Dare infine il comando: sudo update-grub
. Eseguire infime uno snapshot: sudo snapper -c root create --description "configurato GRUB"
Restore del sistema
Se si desidera ripristinare uno snapshot precedente, ci sono diversi modi per farlo. Eseguire un rollback
, che ricreerà completamente il sistema a partire da uno snapshot, oppure utilizzare undochanges
, che confronta le differenze tra due snapshot e rimuove le modifiche.
Per vedere gli snapshot disponibili usare il comando:
sudo snapper ls
Per eseguire un rollback:
sudo snapper --ambit classic rollback <snapshot_number>
sudo shutdown -r now
dove --ambit classic
specifica il tipo di rollback che si desidera eseguire. classic
indica che si sta eseguendo un rollback completo, ripristinando il sistema allo stato esatto dello snapshot selezionato. Tutte le modifiche apportate dopo la creazione di quello snapshot verranno annullate.
Se il rollback è stato eseguito con successo, riavviare il sistema, ma nel menu di GRUB NON AVVIARE ANCORA DALLA VOCE PREDEFINITA.
Bisogna navigare sulla voce degli snapshot e avviare dall’ultimo snapshot disponibile; questo dovrebbe essere il nuovo sistema predefinito che appena ripristinato. Una volta avviato in questo sistema, dare il seguente comando per rendere le modifiche permanenti:
sudo update-grub
Ora puoi riavviare e selezionare la voce predefinita nel menu di GRUB.
Cancellazione degli snapshot
Per eliminare manualmente uno snapshot, utilizzare il comando:
sudo snapper -c myconfig delete 1
Per eliminare invece gli snapshot da 1 a 3:
sudo snapper -c myconfig delete 1-3
GNOME
Per installare e configurare GNOME, si rimanda a questo articolo, dove si trovano anche i miei dotfiles
.
Spiral Linux
SpiralLinux è una versione di Debian che mira a fornire agli utenti desktop un’esperienza immediatamente utilizzabile. Btrfs, Snapper, snapshot, GRUB-Btrfs, Pipewire e ZRAM sono configurati di default, in modo da semplificare la vita agli utenti meno esperti.
Non si tratta di una distribuzione derivata, ma di una versione di Debian ottimizzata con una serie di script e configurazioni, con un focus sulla semplicità e sull’usabilità immediata in tutti i principali ambienti desktop. Quindi, un’installazione di SpiralLinux è in realtà un’installazione legittima di Debian che può essere aggiornata all’infinito dai repository ufficiali, mantenendo al contempo la sua configurazione unica.
SpiralLinux è progettato per essere sostenibile e per sfruttare le risorse e l’infrastruttura di Debian, riducendo il rischio di abbandono del progetto.
Il sito di SpiralLinux
La documentazione ufficiale
Riferimenti
- Btrfs Assistant
- snapper-in-debian-guide
- snapper
- btrfs
- Installing Debian with BTRFS, Snapper backups and GRUB-BTRFS
- Install fedora 38 with snapshot and rollback support
- How to manage snapshots with Snapper on Linux
- Installing Debian & Sway
- Installing Hyprland on Debian
- PipeWire-Guide
- SpiralLinux: The New Distro Making Debian Easier for Beginners