Dimensione: 11283
Commento:
|
Dimensione: 11280
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 |
|
single boot |
|
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
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 |
|
Selezionare "Installazione manuale" |
|
Configurare le partizioni: |
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
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.
- 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.