## 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