Guida verificata con Ubuntu: 22.04 24.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
La seguente guida illustra l'ottimizzazione di un subvolume per un filesystem Btrfs su Ubuntu.
Per altre informazioni di carattere più generale sull'argomento consultare questa guida.
Creare vari subvolumi può comportare alcuni vantaggi:
Esclusione dagli snapshot quando usiamo strumenti (ad esempio timeshift).
Disabilitare COW, settare un diverso algoritmo di compressione o disabilitare la compressione.
Inviare l'intero subvolume su un disco esterno o di rete per un backup con Btrfs send (come unico requisito è Btrfs come filesystem sul dispositivo di destinazione).
Per individuare la lettera e il numero di partizione del filesystem radice, digitare nel terminale:
mount -t btrfs
L'output sarà del tipo:
/dev/sda2 on / type btrfs (rw,noatime,compress=zstd:1,ssd,subvolid=983,subvol=/@)
/dev/sda2 on /home type btrfs (rw,noatime,compress=zstd:1,ssd,subvolid=257,subvol=/@home)
Subvolume cartella /var/tmp
Montare la radice su /mnt (la cartella montata è di esempio, si può scegliere o creare altre cartelle per il montaggio):
sudo mount -t btrfs -o --options-source /dev/sda2 /mnt
Creare subvolume della cartella:
sudo btrfs subvolume create /mnt/@vartmp
Impostare i permessi della cartella tramite il bit sticky:
sudo chmod 1777 /mnt/@vartmp
Copiare il contenuto della cartella nel subvolume:
sudo cp -a /mnt/@/var/tmp/* /mnt/@vartmp/
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab e scriverci le opzioni di montaggio:
UUID=UUID /var/tmp btrfs noatime,subvol=@vartmp
Fare clic su Ctrl+S per salvare e su Ctrl+Q per chiudere l'editor.
Smontare il filesystem:
sudo umount /mnt
Subvolume cartella /var/cache
Montare la radice su /mnt (la cartella montata è di esempio, si può scegliere o creare altre cartelle per il montaggio):
sudo mount -t btrfs -o --options-source /dev/sda2 /mnt
Creare subvolume della cartella:
sudo btrfs subvolume create /mnt/@varcache
Copiare il contenuto della cartella nel subvolume:
sudo cp -a /mnt/@/var/cache/* /mnt/@varcache/
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab e scriverci le opzioni di montaggio:{{{:
UUID=UUID /var/cache btrfs noatime,subvol=@varcache
Fare clic su Ctrl+S per salvare e su Ctrl+Q per chiudere l'editor.
Smontare il filesystem:
sudo umount /mnt
Subvolume cartella /var/log
Montare la radice su /mnt (la cartella montata è di esempio, si può scegliere o creare altre cartelle per il montaggio):
sudo mount -t btrfs -o --options-source /dev/sda2 /mnt
Creare subvolume della cartella:
sudo btrfs subvolume create /mnt/@varlog
Copiare il contenuto della cartella nel subvolume:
sudo cp -a /mnt/@/var/log/* /mnt/@varlog/
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab e scriverci le opzioni di montaggio:
UUID=UUID /var/log btrfs noatime,compress=zstd:1,subvol=@varlog
Fare clic su Ctrl+S per salvare e su Ctrl+Q per chiudere l'editor.
Smontare il filesystem:
sudo umount /mnt
Subvolume flatpak
È utile in caso di ripristino di sistema da uno snapshot, poiché le applicazioni flatpak non vengono ripristinate.
Montare la radice su /mnt (la cartella montata è di esempio, si può scegliere o creare altre cartelle per il montaggio):
sudo mount -t btrfs -o --options-source /dev/sda2 /mnt
Creare subvolume della cartella:
sudo btrfs subvolume create /mnt/@varlibflatpak
Copiare il contenuto della cartella nel subvolume:
sudo cp -a /mnt/@/var/lib/flatpak/* /mnt/@varlibflatpak/
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab e scriverci le opzioni di montaggio:
UUID=UUID /var/lib/flatpak btrfs noatime,compress=zstd:1,subvol=@varlibflatpak
Fare clic su Ctrl+S per salvare e su Ctrl+Q per chiudere l'editor.
Smontare il filesystem:
sudo umount /mnt
Subvolume VM gestite da VirtManager
Montare la radice su /mnt (la cartella montata è di esempio, si può scegliere o creare altre cartelle per il montaggio):
sudo mount -t btrfs -o --options-source /dev/sda2 /mnt
Creare subvolume della cartella:
sudo btrfs subvolume create /mnt/@varlibvirt
Da libvirt version 6.6.0 non è più necessario disattivare il COW manualmente, se rileva Btrfs come filesystem, viene disattivato in automatico per le nuove immagini.
Non disattivare COW se si utilizza una configurazione di mirroring (raid1, raid1cN, raid10, ecc.). Per ulteriore dettagli: https://github.com/kdave/btrfs-progs/issues/481
Disattivare il COW sul subvolume:
sudo chattr +C /mnt/@varlibvirt
Copiare il contenuto della cartella nel subvolume:
sudo cp -a /mnt/@/var/lib/libvirt/images/* /mnt/@varlibvirt/
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab e scriverci le opzioni di montaggio:
UUID=UUID /var/lib/libvirt/images/ btrfs noatime,subvol=@varlibvirt
Fare clic su Ctrl+S per salvare e su Ctrl+Q per chiudere l'editor.
Smontare il filesystem:
sudo umount /mnt
Subvolume immagini di GNOME-Boxes
Per la versione di flatpak che si trova sullo store flathub, il percorso alle immagini VM è /.var/app/org.gnome.Boxes/data/gnome-boxes/images.
Con GNOME-Boxes già installato seguire i seguenti passaggi.
Creare la cartella temporanea:
sudo mkdir /home/utente/boxtmp
Copiare il contenuto della cartella:
sudo cp -a /home/username/.local/share/gnome-boxes/images/* /home/username/boxtmp/
Elimina la cartella /images per creare il subvolume:
sudo rm -r /home/username/.local/share/gnome-boxes/images
Creare subvolume della cartella:
sudo btrfs subvolume create /home/username/.local/share/gnome-boxes/images
Ripristinare il contenuto della cartella /images:
sudo cp -a /home/username/boxtmp/* /home/username/.local/share/gnome-boxes/images/
Se GNOME-Boxes non è già installato, prima d'installarlo creare il subvolume /home/username/.local/share/gnome-boxes/images e successivamente installare GNOME-Boxes.
