## page was renamed from AmministrazioneSistema/ConvertireFileSystemBtrfs
#page created by wilecoyote
#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
'''btrfs-convert''' è uno strumento che consente di convertire partizioni formattate in '''ext2''', '''ext3''', '''ext4''' o '''reiserfs''' nel file system [[AmministrazioneSistema/Filesystem/Btrfs|btrfs]]. La partizione deve avere almeno il 10% di spazio disponibile. L'operazione può richiedere molto tempo, circa 1 minuto per GB.
Questa guida spiega come utilizzare '''btrfs-convert''' per convertire in '''btrfs''' la partizione di Ubuntu, considerando un sistema installato in unica partizione (eccetto l'eventuale partizione EFI per i sistemi [[AmministrazioneSistema/Uefi|UEFI]]). Vengono inoltre illustrate tutte le operazioni successive necessarie per rendere il sistema avviabile, efficiente e performante.
{{{#!wiki note
Una volta completata la procedura non sarà possibile tornare al file system precedente, a meno di non reinstallare il sistema. Di norma è preferibile eseguire un [[AmministrazioneSistema/BackupDelSistema|backup]] dei dati e [[Installazione/InstallareUbuntu|reinstallare]] Ubuntu scegliendo la voce '''[[Installazione/InstallareUbuntu#manu|Altro]]''' nella schermata '''[[Installazione/InstallareUbuntu#Tipo_di_installazione|Tipo di installazione]]''' e specificando '''file system btrfs con journaling''' per la partizione di root. La conversione del file system è una soluzione non esente da rischi da valutare solo se la reinstallazione rappresenta un'opzione troppo difficoltosa o impossibile.}}}
{{{#!wiki important
Operare sulle partizioni espone al rischio di perdere i dati, in conseguenza di eventuali errori o malfunzionamenti. Pertanto __è fortemente raccomandato__ effettuare un [[AmministrazioneSistema/BackupDelSistema|backup]] dei propri dati prima di procedere.
}}}
<>
= Operazioni preliminari =
In tutte le fasi successive di questa guida, a titolo di esempio, viene convertita nel file system '''btrfs''' la partizione '''/dev/sda3''' con file system '''ext4'''.
0. Avviare una sessione ''[[Installazione/CreazioneLiveUsb/CreatoreDischiDiAvvio|live]]'' del [[Rilasci|rilascio]] più recente di Ubuntu (minimo '''20.04'''). Se il sistema da convertire è installato in modalità '''UEFI''', assicurarsi di avviare la sessione live [[AmministrazioneSistema/Uefi#Avvio_della_Live|in tale modalità]].
{{{#!wiki tip
In alternativa è possibile operare da un altro sistema Ubuntu installato in dual boot. In tal caso per operare da '''Ubuntu 20.04''' o successivo è necessario [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://btrfs-progs|btrfs-progs]] presente nei repository. Invece per '''Ubuntu 18.04''' scaricare ed [[AmministrazioneSistema/InstallareProgrammi/PacchettiDebian|installare manualmente]] i pacchetti [[http://ubuntu.mirror.garr.it/ubuntu/pool/main/b/btrfs-progs/btrfs-progs_5.4.1-2_amd64.deb|btrfs-progs_5.4.1-2_amd64.deb]], [[http://ubuntu.mirror.garr.it/ubuntu/pool/main/b/btrfs-progs/libbtrfs0_5.4.1-2_amd64.deb|libbtrfs0_5.4.1-2_amd64.deb]] e [[http://ubuntu.mirror.garr.it/ubuntu/pool/main/b/btrfs-progs/libbtrfsutil1_5.4.1-2_amd64.deb|libbtrfsutil1_5.4.1-2_amd64.deb]].}}}
0. [[Hardware/DispositiviPartizioni/IndividuarePartizioni|Individuare]] la partizione da convertire.
0. Verificare l'integrità del file system da convertire digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
sudo fsck -f /dev/sda3}}}
= Conversione e creazione dei subvolume =
0. Convertire il file system digitando nel terminale il seguente comando:{{{
sudo btrfs-convert /dev/sda3
}}}{{{#!wiki note
Questa operazione può richiedere diversi minuti.}}}
0. Montare la partizione convertita digitando nel terminale uno dei seguenti comandi:
* Abilitando la compressione (consigliato, non compatibile con '''Ubuntu 18.04''' in modalità '''legacy BIOS'''):{{{
sudo mount -o compress=zstd:1 /dev/sda3 /mnt}}}
* Oppure senza compressione:{{{
sudo mount /dev/sda3 /mnt}}}
0. Creare uno snapshot della radice con nome '''@''' digitando nel terminale il seguente comando:{{{
sudo btrfs subvolume snapshot /mnt /mnt/@}}}
0. Creare un subvolume per la Home con nome '''@home''' digitando nel terminale il seguente comando:{{{
sudo btrfs subvolume create /mnt/@home}}}
0. Spostare i dati dalla cartella `/home` al subvolume '''@home''' digitando nel terminale il seguente comando:{{{
sudo mv /mnt/@/home/* /mnt/@home}}}
0. Eliminare dalla radice della partizione tutti i file e le cartelle, eccetto i subvolume '''@''', '''@home''' e '''ext2_saved''', digitando nel terminale il seguente comando:{{{
find /mnt -mindepth 1 -maxdepth 1 ! -path '/mnt/@*' ! -path '/mnt/ext2_saved' -exec sudo rm -r "{}" +}}}
{{{#!wiki note
Questa operazione può richiedere alcuni minuti.}}}
= Aggiornamento del file fstab =
0. Prendere nota del nuovo UUID della partizione convertita, visualizzabile digitando nel terminale il seguente comando:{{{
sudo blkid -s UUID -o value /dev/sda3}}}
0. Aprire con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/mnt/@/etc/fstab`.
0. Individuare la riga che fa riferimento alla partizione di sistema, ovvero quella con punto di montaggio '''/''', e commentarla aggiungendo il carattere «`#`» all'inizio della riga. Il risultato sarà simile al seguente:{{{
#UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 errors=remount-ro 0 1}}}
0. Se è presente una riga che fa riferimento allo ''swapfile'', commentarla aggiungendo il carattere «`#`» all'inizio della riga. Il risultato sarà simile al seguente:{{{
#/swapfile none sw 0 0}}}
Dopo aver portate a termine tutte le fasi di questa guida, consultare il paragrafo [[#Swapfile|Swapfile]].
0. Incollare in fondo al file le seguenti righe, sostituendo `NUOVO_UUID` con il valore annotato in precedenza:
* Abilitando la compressione (consigliato, non compatibile con '''Ubuntu 18.04''' in modalità '''legacy BIOS'''):{{{
UUID=NUOVO_UUID / btrfs compress=zstd:1,autodefrag,subvol=@
UUID=NUOVO_UUID /home btrfs compress=zstd:1,autodefrag,subvol=@home}}}
* Oppure senza compressione:{{{
UUID=NUOVO_UUID / btrfs autodefrag,subvol=@
UUID=NUOVO_UUID /home btrfs autodefrag,subvol=@home}}}
0. Salvare il file e chiudere l'editor di testo.
0. Smontare la partizione:{{{
sudo umount /mnt}}}
<>
= Boot loader e btrfs-progs =
0. Montare il subvolume '''@''' in `/mnt` digitando nel terminale uno dei seguenti comandi:
* Abilitando la compressione (consigliato, non compatibile con '''Ubuntu 18.04''' in modalità '''legacy BIOS'''):{{{
sudo mount -o compress=zstd:1,subvol=@ /dev/sda3 /mnt}}}
* Oppure senza compressione:{{{
sudo mount -o subvol=@ /dev/sda3 /mnt}}}
0. Montare le cartelle necessarie digitando nel terminale il seguente comando:{{{
for i in dev dev/pts proc run sys sys/firmware; do sudo mount --bind /$i /mnt/$i; done}}}
0. Solo per sistemi '''UEFI''', montare anche la partizione EFI digitando nel terminale il seguente comando:{{{
sudo mount /dev/sdXN /mnt/boot/efi}}}
Sostituire `sdXN` con la partizione EFI del proprio sistema.
0. Effettuare il '''chroot''' sul sistema digitando nel terminale il seguente comando:{{{
sudo chroot /mnt}}}
0. Reinstallare il boot loader '''Grub''' digitando nel terminale uno dei seguenti comandi:
* Per sistemi '''legacy BIOS''':{{{
grub-install /dev/sda}}}
* Per sistemi '''UEFI''':{{{
grub-install}}}
0. Aggiornare la configurazione di '''Grub''' digitando nel terminale il seguente comando:{{{
update-grub}}}
0. Scaricare e installare il pacchetto ''btrfs-progs'':
* Per '''Ubuntu 20.04''' e successivi digitare nel terminale il seguente comando:{{{
apt install btrfs-progs}}}
* Per '''Ubuntu 18.04''' digitare nel terminale i seguenti comandi:{{{
mkdir ~/btrfs-progs && cd ~/btrfs-progs}}}{{{
wget http://ubuntu.mirror.garr.it/ubuntu/pool/main/b/btrfs-progs/btrfs-progs_5.4.1-2_amd64.deb http://ubuntu.mirror.garr.it/ubuntu/pool/main/b/btrfs-progs/libbtrfs0_5.4.1-2_amd64.deb http://ubuntu.mirror.garr.it/ubuntu/pool/main/b/btrfs-progs/libbtrfsutil1_5.4.1-2_amd64.deb}}}{{{
dpkg -i ~/btrfs-progs/*.deb}}}{{{
rm -r ~/btrfs-progs}}}
0. Uscire dal '''chroot''' digitando nel terminale il seguente comando:{{{
exit}}}
0. Smontare tutte le cartelle digitando nel terminale il seguente comando:{{{
for i in dev/pts dev proc run sys/firmware sys; do sudo umount /mnt/$i; done}}}
0. Solo per sistemi '''UEFI''', smontare la partizione EFI digitando nel terminale il seguente comando:{{{
sudo umount /mnt/boot/efi}}}
0. Smontare il subvolume '''@''' digitando nel terminale il seguente comando:{{{
sudo umount /mnt}}}
0. Riavviare il sistema.
= Deframmentazione e bilanciamento =
Se il sistema si avvia e funziona correttamente, è possibile procedere alle operazioni di pulizia, deframmentazione e bilanciamento. In caso contrario, ovvero se si riscontrano degli errori o altri problemi, [[#rollback|ripristinare il file system precedente]].
{{{#!wiki important
Non sarà possibile [[#rollback|ripristinare il file system precedente]] dopo aver applicato le indicazioni di questo paragrafo.}}}
0. Montare la radice della partizione convertita digitando nel terminale uno dei seguenti comandi:
* Abilitando la compressione (consigliato, non compatibile con '''Ubuntu 18.04''' in modalità '''legacy BIOS'''):{{{
sudo mount -o subvol=/,compress=zstd:1 /dev/sda3 /mnt}}}
* Oppure senza compressione:{{{
sudo mount -o subvol=/ /dev/sda3 /mnt}}}
0. Eliminare il subvolume '''ext2_saved''' digitando nel terminale il seguente comando:{{{
sudo btrfs subvolume delete /mnt/ext2_saved}}}
0. Attendere qualche minuto, quindi verificare che l'eliminazione del subvolume '''ext2_saved''' sia stata portata a termine digitando nel terminale il seguente comando:{{{
sudo btrfs subvolume list -d /mnt}}}
* Se l'eliminazione è ancora in corso viene restituito un risultato simile al seguente:{{{
ID 1020 gen 4140456 top level 0 path DELETED}}}
In tal caso attendere qualche minuto e ridare il comando.<
>
* Se non viene restituito alcun risultato procedere al punto successivo.
0. Smontare la radice della partizione convertita digitando nel terminale il seguente comando:{{{
sudo umount /mnt}}}
0. Deframmentare il sistema digitando nel terminale uno dei seguenti comandi:
* Abilitando la compressione (consigliato, non compatibile con '''Ubuntu 18.04''' in modalità '''legacy BIOS'''):{{{
sudo btrfs filesystem defragment -rf -czstd /
sudo btrfs filesystem defragment -rf -czstd /home}}}
* Oppure senza compressione:{{{
sudo btrfs filesystem defragment -rf /
sudo btrfs filesystem defragment -rf /home}}}{{{#!wiki note
La deframmentazione può richiedere diversi minuti. Si consiglia di non utilizzare il sistema fino al termine dell'operazione.}}}
0. Bilanciare il file system digitando nel terminale il seguente comando:{{{
sudo btrfs balance start --full-balance /}}}
{{{#!wiki note
Il bilanciamento può richiedere molto tempo. Si consiglia di non utilizzare il sistema fino al termine dell'operazione.}}}
= Risoluzione dei problemi =
== Swapfile ==
Se il sistema fa uso di una partizione di swap non sono necessarie ulteriori operazioni. Se invece fa uso di un file di swap (''swapfile'') consultare la pagina [[Hardware/DispositiviPartizioni/Swap/SwapfileSuBtrfs|SwapfileSuBtrfs]].
<>
== Ripristino del file system precedente ==
Il ripristino del file system precedente è possibile solo se il subvolume '''ext2_saved''' non è stato eliminato e non sono stati eseguiti deframmentazione e bilanciamento.
0. Seguire i primi due punti del paragrafo [[#preliminari|Operazioni preliminari]].
0. Ripristinare il file system precedente digitando nel terminale il seguente comando:{{{
sudo btrfs-convert -r /dev/sda3}}}
Sostituire `sda3` con la partizione da ripristinare.
0. Eseguire il [[AmministrazioneSistema/Grub/Ripristino|ripristino di Grub]].
= Ulteriori risorse =
* [[https://btrfs.wiki.kernel.org/index.php/Main_Page|Sito ufficiale del programma btrfs-progs]]
* [[https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3/4_and_ReiserFS|Istruzioni sulla conversione sul sito ufficiale]]
* [[https://btrfs.wiki.kernel.org/index.php/Balance_Filters|Approfondimenti su ulteriori caratteristiche]]
* [[https://help.ubuntu.com/community/btrfs|Informazioni sul file system btrfs sull'aiuto di Ubuntu]]
CategoryAmministrazione