## page was renamed from AmministrazioneSistema/ConvertireFileSystemBtrfs
#page created by wilecoyote
#format wiki
#LANGUAGE it
<<BR>>
<<Indice(depth=2)>>

<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=641293"; rilasci="20.04 18.04")>>

= 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.
}}}

<<Anchor(preliminari)>>
= 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}}}

<<Anchor(bootloader)>>
= 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.<<BR>>

  * 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]].

<<Anchor(rollback)>>
== 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