
1. Introduzione
Questa guida è pensata per lettori tecnici e amministratori che vogliono sperimentare concetti di immutabilità su sistemi Debian/Ubuntu. Tutti i comandi sono testabili in VM; verifica i dispositivi di storage prima di applicare su hardware reale.
root
o con sudo
. Testa in VM.2. Che significa “immutabile” (in breve)
Immutabile = parte di sistema fornita come immagine read-only (OSTree, snaps, A/B partitions, subvolumes). Aggiornamenti atomici, rollback semplici e separazione tra sistema e applicazioni (Flatpak, snaps, container).
3. Panoramica delle opzioni su Debian-based
- Ubuntu Core — immutabile per definizione (snap-only)
- Btrfs + Snapper — snapshot & rollback su Debian tradizionale
- OverlayFS — root in sola lettura con overlay temporaneo
- Containerizzazione (Podman) — separare le applicazioni dal sistema
Quando scegliere quale
- IoT/Kiosk → Ubuntu Core
- Desktop sperimentale → Btrfs + Snapper
- Kiosk temporaneo/lab → OverlayFS
- Isolamento app → Podman / containers
4. Ubuntu Core — immutabilità totale (esempio)
Target: IoT, kiosk, dispositivi embedded.
Installazione (succinta)
- Scarica l'immagine da Ubuntu Core per la piattaforma desiderata.
- Flash su SD/EMMC con
dd
o balenaEtcher. - Primo avvio: associa account Ubuntu One.
Comandi utili
# lista snap (include parti di sistema)
```
snap list
# installare un'app
sudo snap install hello-world
# aggiornare gli snap
sudo snap refresh
# ripristinare una versione precedente (se disponibile)
sudo snap revert hello-world
```

snap list
.Note operative
Ubuntu Core non usa apt
per il sistema: kernel, gadget e base sono gestiti come snap. Controlla sempre il canale degli snap prima del deploy (stable/candidate).
5. Btrfs + Snapper su Debian 12 — snapshot e rollback
Questo approccio mantiene l'installazione Debian tradizionale ma aggiunge snapshot affidabili sul filesystem Btrfs
.
Prerequisiti
- Root su subvolume Btrfs (root @)
- pacchetti:
btrfs-progs
,snapper
Installazione
sudo apt update
```
sudo apt install -y btrfs-progs snapper
# creare la config per root
sudo snapper -c root create-config /
# verificare config
sudo snapper -c root list-configs
```
Workflow tipico
# snapshot prima
```
sudo snapper -c root create --description "before-upgrade"
# aggiornamento sistema
sudo apt update && sudo apt full-upgrade -y
# snapshot dopo
sudo snapper -c root create --description "after-upgrade"
# elencare snapshot
sudo snapper -c root list
# rollback ad uno snapshot (esempio: ID 5)
sudo snapper -c root rollback 5
# riavviare
after rollback: sudo reboot
```

snapper -c root list
.Come funziona il rollback
Snapper crea snapshot Btrfs montabili; il comando rollback
promuove uno snapshot come subvolume attivo. Testalo in VM prima di usarlo in produzione.
6. OverlayFS: root in sola lettura (kiosk / lab)
OverlayFS permette di montare la root come lowerdir e scrivere le modifiche in un upperdir che puoi resettare.
Esempio rapido
# creare directory per overlay
```
sudo mkdir -p /overlay/{upper,work}
# montare overlay (esempio minimale; test in VM)
sudo mount -t overlay overlay -o lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work /
# verificare che eventuali modifiche finiscano in /overlay/upper
ls -la /overlay/upper
```

mount
che mostra l'overlay montato su /
.7. Container (Podman) per applicazioni immutabili
Usare container per isolare applicazioni è una via pratica per ottenere un sistema di base “pulito” e applicazioni aggiornabili separatamente.
Installazione Podman
sudo apt update
```
sudo apt install -y podman
```
Esempi
# eseguire nginx in container
```
podman run --name test-nginx -d -p 8080:80 docker.io/nginx:latest
# vedere container
podman ps
# fermare e rimuovere
podman stop test-nginx && podman rm test-nginx
```

podman ps
.Best practice
- Usa volumi per dati persistenti.
- Usa digest immutabili per le immagini in produzione (es.
nginx@sha256:...
). - Automatizza aggiornamenti immagine con pipeline CI/CD.
8. Workflow raccomandato (desktop & server)
Desktop (developer laptop)
- Base: Debian 12 su Btrfs + Snapper.
- App desktop: Flatpak.
- Dev tools: Podman / containers.
- Test rollback mensile in VM.
Server / Edge
- Preferire immagini immutabili (Ubuntu Core / Flatcar) per fleet.
- Se si resta su Debian: Snapper + Ansible per orchestrare rollback.
- Pianificare rolling reboot per applicare aggiornamenti A/B.
9. Suggerimenti per screenshot e grafica
Lista rapida di screenshot utili da includere nell'articolo:
- Terminale:
snap list
,snapper -c root list
,btrfs subvolume list /
,mount
,podman ps
. - Diagramma aggiornamento atomico (schema SVG).
- Prima/Dopo: file in
/etc
che scompare dopo reboot con OverlayFS.
Consiglio UX: inserisci le immagini in una griglia responsive usando row
/ col-md-6
e img-fluid
.
10. Conclusione e risorse
Immutabilità = maggiore affidabilità e sicurezza, a costo di minore flessibilità. Su Debian puoi ottenere buoni risultati con Btrfs+Snapper o OverlayFS; per immutabilità completa preferisci Ubuntu Core o soluzioni immutabili native.
Risorse utili
- Documentazione Ubuntu Core (snapcraft)
- Snapper / Btrfs: pagine ufficiali e wiki
- Podman: guida ufficiale