Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "saxtro/prova01"
Differenze tra le versioni 22 e 23
Versione 22 del 15/05/2024 23.23.30
Dimensione: 11283
Autore: saxtro
Commento:
Versione 23 del 16/05/2024 02.59.45
Dimensione: 11280
Autore: saxtro
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 156: Linea 156:
sed s@rw.*,subvolid=.*,@defaults,@ | \  sed s@rw.*,subvolid=.*,@defaults,@ | \
Linea 180: Linea 180:
sed s@rw.*,subvolid=.*,@<opzione 1>,<opzione 2>,@ | \   sed s@rw.*,subvolid=.*,@<opzione 1>,<opzione 2>,@ | \


Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

HowTo: Noble su btrfs con layout snapper

In questo "HowTo", verrà descritto come installare Ubuntu 24.04 con un layout del filesystem btrfs "OpenSuse-like". Al termine della procedura il risultato sarà una installazione Ubuntu Noble su filesystem btrfs. Le funzionalità del filesystem verranno gestite con snapper + Btrfs Assistant. La procedura prevede che il device di installazione, sia preparato in anticipo rispetto l'installazione, e sarà un'attività manuale. L'obiettivo è fornire una procedura di tipo "copia e incolla" alla portata di tutti.

Tabella spazio temporale

L'installazione è stata divisa in diversi passaggi. La tabella di seguito pubblicata, cataloga i vari passaggi in relazione all'ambiente di esecuzione e allo stato dell'installazione.

Passaggio

Ambiente

Installazione in corso

Preparazione del disco

Live

No

Preparazione del volume btrfs

Live

No

Installazione di Ubuntu

Live

Si, in corso

Attività successive l'installazione

Live

No, terminata

Primo avvio

Ubuntu

N/A

Installazione di btrfsassistant

Ubuntu

N/A

Preparazione del disco

L'installazione proposta prevede che il dispositivo di installazione sia già pronto, e non necessiti di formattazione. I requisiti minimi per l'installazione, in termini di storage sono:

  • partizione EFI/ESP (almeno 100Mb, in caso di dual boot si condivide quella di windows)
  • partizione btrfs (consigliati un minimo di 50Gb)

Il dispositivo di installazione si può preparare anche con gparted nella Live. Se si sta installando in dual boot, e sia necessario ridurre una (o più) partizione(i) in uso, si consiglia di utilizzare gli strumenti di windows.

caso di esempio

device su gparted

dual boot

DUAL_BOOT.PNG

single boot

SINGLE_BOOT.PNG

Questa guida è pensata per essere eseguita in modalità copia e incolla. Prima di effettuare il copia e incolla verificare che la variabile BTRFSDEV della guida, risolve correttamente il device da utilizzare (in alternativa, modificare il device $BTRFSDEV, con il proprio device btrfs).

BTRFSDEV=$(sudo blkid | grep btrfs | cut -d ":" -f1)
echo $BTRFSDEV

VARIABILE.PNG

Preparazione del volume btrfs

Prima di avviare l'installazione, sarà necessario preparare il volume btrfs. E' possibile utilizzare un terminale dalla Live.

Creazione del subvolume @

Si monta il filesystem btrfs creato nel precedente step, e si crea il subvolume @ (ID=256) (il secondo subvolume del volume. Il primo è subvolid=5).

BTRFSDEV=$(sudo blkid | grep btrfs | cut -d ":" -f1)
sudo mount $BTRFSDEV /mnt  
sudo btrfs subvolume create /mnt/@

Il "first root filesystem"

Si crea la directory:

sudo mkdir /mnt/@/etc/snapper/configs -p

Si modifica il default subvolume, e si rimonta il volume:

BTRFSDEV=$(sudo blkid | grep btrfs | cut -d ":" -f1)
sudo btrfs subvolume set-default /mnt/@
sudo umount /mnt && sudo mount $BTRFSDEV /mnt

Si installa, configura e utilizza snapper per creare il "first root filesystem" (sulla Live)

sudo apt install snapper -y
systemctl stop snapper-timeline.timer  # prima dell'installazione non vogliamo le snapshot di tipo timeline
sudo snapper create-config /mnt
sudo cp /etc/snapper/configs/root  /mnt/etc/snapper/configs/
sudo sed -i s@\"/mnt\"@\"/\"@ /mnt/etc/snapper/configs/root
sudo snapper create -t single -d "first root filesystem" --read-write --from 0

Ci creano i subvolumi di interesse, infine si modifica il default subvolume con il "first root filesystem".

sudo btrfs subvolume create /mnt/home
sudo mkdir /mnt/var/lib -p
sudo btrfs subvolume create /mnt/var/cache
sudo btrfs subvolume create /mnt/var/log
sudo btrfs subvolume create /mnt/var/tmp
sudo btrfs subvolume create /mnt/var/lib/flatpack
sudo btrfs subvolume set-default /mnt/.snapshots/1/snapshot
sudo umount /mnt

Inizia l'installazione.

Installazione di Ubuntu

Eseguire l'installazione seguendo le istruzioni a video. E' sufficiente personalizzare il setup del device di installazione:

Schermata di installazione

Operazione da effettuare

MANUALE2.PNG

Selezionare "Installazione manuale"

PARTIZIONI2.PNG

Configurare le partizioni:
  1.  ESP/EFI da utilizzare in /boot/efi 
  2.  btrfs da utilizzare in / 

Attenzione, le partizioni non vanno formattate, il dispositivo è stato configurato per l'installazione, durante i passaggi Preparazione del disco, e Preparazione del volume btrfs.

Non riavviare dopo l'installazione. Si renderà necessario effettuare delle attività, successive l'installazione e precedenti il primo avvio.

Attività successive l'installazione

Questi comandi vanno eseguiti nell'ambiente Live di installazione.

Montare i subvolumi

Si verifica che tutti subvolumi si montino correttamente dove atteso e come atteso

BTRFSDEV=$(sudo blkid | grep btrfs | cut -d ":" -f1)
sudo mount $BTRFSDEV /mnt
sudo mount -o subvol=@/home $BTRFSDEV /mnt/home
sudo mount -o subvol=@/var/cache $BTRFSDEV /mnt/var/cache
sudo mkdir /mnt/var/lib/flatpack -p
sudo mount -o subvol=@/var/log $BTRFSDEV /mnt/var/log
sudo mount -o subvol=@/var/tmp $BTRFSDEV /mnt/var/tmp
sudo mount -o subvol=@/var/lib/flatpack $BTRFSDEV /mnt/var/lib/flatpack
sudo mount -o subvol=@/.snapshots $BTRFSDEV /mnt/.snapshots

Aggiornare fstab

Si aggiorna il file '/mnt/etc/fstab' perchè monti i subvolumi attesi dove atteso.

BTRFSDEV=$(sudo blkid | grep btrfs | cut -d ":" -f1)
line=$(grep -n btrfs /mnt/etc/fstab | cut -d":" -f1)
echo "sudo sed -i '"$line"s/.$/0/' /mnt/etc/fstab" | sh # vedi Nota
DISP=$(grep btrfs /mnt/etc/fstab | awk '{print $1}')
echo -n -e "\n# btrfs\n" | sudo tee -a /mnt/etc/fstab
grep btrfs /etc/mtab | \
grep -v target | \
grep -v "1/snapshot" | \
sed s@rw.*,subvolid=.*,@defaults,@ | \
sed s@/mnt@@ | \
sed s@$BTRFSDEV@$DISP@ | \
sudo tee -a /mnt/etc/fstab

FSTAB.PNG

Qualora si volessero personalizzare le opzioni di mount, l'operazione è possibile in questo contesto. Eseguire i comandi modificati con le opzioni, al posto del valore "defaults". Maggiori dettagli riguardo le opezioni di mount: Opzioni di mount

BTRFSDEV=$(sudo blkid | grep btrfs | cut -d ":" -f1)
line=$(grep -n btrfs /mnt/etc/fstab | cut -d":" -f1)
echo "sudo sed -i '"$line"s/.$/0/' /mnt/etc/fstab" | sh
echo "sudo sed -i '"$line"s/defaults/<opzione 1>,<opzione 2>/' /mnt/etc/fstab" | sh 
DISP=$(grep btrfs /mnt/etc/fstab | awk '{print $1}')
echo -n -e "\n# btrfs\n" | sudo tee -a /mnt/etc/fstab
grep btrfs /etc/mtab | \
grep -v target | \
grep -v "1/snapshot" | \
sed s@rw.*,subvolid=.*,@<opzione 1>,<opzione 2>,@ | \
sed s@/mnt@@ | \
sed s@$BTRFSDEV@$DISP@ | \
sudo tee -a /mnt/etc/fstab

Riavvio

Si smontano tutti i subvolumi montati in /mnt, e si riavvia.

sudo umount /mnt/.snapshots 
sudo umount /mnt/var/tmp 
sudo umount /mnt/var/cache
sudo umount /mnt/var/log
sudo umount /mnt/var/lib/flatpack
sudo umount /mnt/home 
sudo umount /mnt
sudo shutdown -r now

Primo avvio

Configurare snapper sul sistema appena avviato

Si installa e configura snapper.

sudo apt install snapper -y

Il file di configurazione /etc/snapper/configs/root, è stato ereditato dal subvolume @. Abilitiamo la configurazione root nel file /etc/default/snapper.

sudo sed -i s/SNAPPER_CONFIGS=\"\"/SNAPPER_CONFIGS=\"root\"/g /etc/default/snapper

Si riavvia snapper per attivare la configurazione.

sudo systemctl restart snapperd

Si abilita la quota, in questo modo l'algoritmo di pulizia e raccolta delle snapshots, potrà onorare le direttive SPACE_LIMIT e FREE_LIMIT. Inoltre, l'output del comando snapper list fornirà informazioni riguardo lo spazio utilizzato.

sudo btrfs quota enable /
sudo snapper setup-quota
sudo snapper list

Creare la configurazione per la /home

Si crea la configurazione home, in modo da usufruire delle snapshots anche per il subvolume /home.

sudo snapper -c home create-config /home

Installare Btrfs Assistant

Un tool grafico, potente e intuitivo, che si può utilizzare per gestire snapper, è certamente Btrfs Assistant.

Sfortunatamente, questo software, non è disponibile nei repository ufficiali. Non esiste neanche un repository PPA.

Attualmente, l'unico riferimento ufficiale(?) ad un pacchetto Ubuntu è: btrfs assistant su launchpad (la versione 1.8, è vecchia di un anno. La versione corrente è 2.1)

Le istruzioni per l'installazione sono disponibili nella documentazione ufficiale.

Repository

  • Prerequisiti per l'installazione

sudo apt install git cmake fonts-noto qt6-base-dev qt6-base-dev-tools \
g++ libbtrfs-dev libbtrfsutil-dev pkexec qt6-svg-dev qt6-tools-dev
  • Scaricare i sorgenti

Per questo punto, si hanno a disposizione due opzioni: la versione main, o ultima versione. Se si vuole installare la versione main:

git clone https://gitlab.com/btrfs-assistant/btrfs-assistant.git
cd btrfs-assistant

Per l'ultima versione:

wget https://gitlab.com/btrfs-assistant/btrfs-assistant/-/archive/2.1/btrfs-assistant-2.1.tar.gz
tar xvf btrfs-assistant-2.1.tar.gz
cd btrfs-assistant-2.1
  • Compilarere il software

cmake -B build -S . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE='Release'
make -C build
  • Installare il software

sudo make -C build install
  • Disinstallazione (eventuale)

Perchè il software possa essere disinstallato, è necessario conservare la directory in cui è stato costruito. La lista dei files installati, è presente nella sottodirectory build. Il comando di disinstallazione è:

cd build
sudo xargs rm < install_manifest.txt

Contenuto del file install_manifest dopo l'installazione:

/etc/btrfs-assistant.conf
/usr/share/applications/btrfs-assistant.desktop
/usr/share/metainfo/btrfs-assistant.metainfo.xml
/usr/share/polkit-1/actions/org.btrfs-assistant.pkexec.policy
/usr/bin/btrfs-assistant
/usr/bin/btrfs-assistant-launcher
/usr/bin/btrfs-assistant-bin

Nel caso si installasse il pacchetto btrfsmaintenance, il software Btrfs Assistant, potrà essere utilizzato anche per gestire le operazioni di manutenzione del filesystem.


CategoryHomepage CategoryNuoviDocumenti