Guida verificata con Ubuntu: 20.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Btrfs-convert è uno strumento per convertire il formato di un filesystem al filesystem btrfs, utile per modificare a posteriori il tipo scelto per una partizione.
Sono convertiti i filesystem ext2, ext3, ext4 e reiserfs.
Per convertire tra filesystem semplici leggere questa pagina.
Questa procedura necessità d'essere eseguita o da un sistema avviato in live, oppure da un sistema installato su un secondo disco.
Operando sulle partizioni si corre il rischio in caso di errore di perdere i dati presenti sul disco rigido. È fortemente raccomandato di munirsi di una copia di backup dei propri dati prima di proseguire.
Il processo di conversione richiederà almeno un 1 minuto per ogni GB della partizione da convertire, ad esempio una partizione da 10 GB richiederà almeno 10 minuti per essere convertita.
È importante che la partizione che si desideri formattate abbia uno spazio libero residuo d'almeno il 10%.
Installazione
Da 20.04
Installare il pacchetto btrfs-progs.
In 18.04
Il pacchetto btrfs-prosg presente nei repository di Ubuntu 18.04 è una versione obsoleta priva del programma btrfs-convert, necessario per eseguire la conversione, nonché di alcune funzioni e dalle prestazioni talora carenti.
Pertanto occorre scaricare e installare la versione del pacchetto presente nel repository per il rilascio 20.04, ora distribuito sotto forma d'una suite di più pacchetti.
Scaricare da questo indirizzo i seguenti pacchetti .deb:
btrfs-progs_5.4.1-2_amd64.deb libbtrfs0_5.4.1-2_amd64.deb libbtrfsutil1_5.4.1-2_amd64.deb
Spostarsi nella cartella dove sono stati salvati i pacchetti scaricati.
Installare i pacchetti digitando nel terminale il seguente comando:
sudo dpkg -i *_amd64.deb
Uso del programma
Preliminari
Nel seguente esempio viene convertita al filesystem btrfs la partizione /dev/sda3 con filesystem ext4.
Individuare la partizione da convertire digitando nel terminale il seguente comando:
sudo blkid
che restituirà ad esempio questa uscita:
/dev/sda1: UUID="CA49-3B2C" TYPE="vfat" /dev/sda2: UUID="72C0DE8EC0DE57C5" LABEL="windows" TYPE="ntfs" /dev/sda3: UUID="f6e9afa7-5b2f-2c3d-af00-aff1122b6fd6" TYPE="ext4" /dev/sda4: UUID="8c4e69f8-5074-42c0-8134-0b2429c4c02c" TYPE="swap" /dev/sdb1: UUID="4848-E35A" TYPE="vfat"
Smontare la partizione da convertire:
sudo umount -t ext4 /dev/sda3
Verificare il filesystem da convertire:
sudo fsck.ext4 /dev/sda3
Conversione
Convertire il filesystem:
btrfs-convert /dev/sda3
- Montare la partizione convertita:
Se non s'usa la compressione digitare il seguente comando:
sudo mount -t btrfs /dev/sda3 /mnt
Abilitando la compressione (consigliato) digitare il seguente comando:
sudo mount -t btrfs -o compress=zstd:1
Listare i subvolumi:
sudo btrfs subvolume list /mnt
Eliminare il subvolume di backup del vecchio filesystem:
sudo btrfs subvolume delete /mnt/ext2_save
Creare lo snapshot del subvolume genitore e rinominarlo in @ per usare i snapshot:
sudo btrfs subvolume snapshot /mnt/ /mnt/@
Creare il subvolume @Home:
sudo btrfs subvolume create /mnt/@home
Spostare i dati della vecchia Home nel subvolume @Home:
sudo mv /mnt/@/home/* /mnt/@home/
Verificare che tutte le cartelle siano al loro posto:
ls /mnt
Solo se s'usa la compressione digitare il seguente comando:
sudo btrfs filesystem defragment -r -v -czstd /mnt/
Opzionalmente rimuovere le cartelle originali:
find /mnt -maxdepth 1 -type d -not -path '*/@*' -not -name "." -execdir sudo rm -r "{}" \;
Accesso al sistema con Chroot
Eseguire un Chroot alla radice della partizione convertita:
Se non s'usa la compressione digitare il seguente comando:
sudo mount -t btrfs /dev/sda3 /mnt
Abilitando la compressione (consigliato) digitare il seguente comando:
sudo mount -t btrfs -o compress=zstd:1,subvol=@ /dev/sda3 /mnt
Montare le cartelle dev, proc, sys, run:
for i in dev proc sys run; do sudo mount --bind /$i /mnt/$i; done
Effettuare il chroot sul sistema:
sudo chroot /mnt
Annotare il UUID_NUOVO delle cartelle @ e @home della partizione:
sudo blkid /dev/sda3
Aprire con i privilegi di amministrazione e l'editor nano il file /etc/fstab e commentare con un # la linea:
UUID=f6e9afa7-5b2f-2c3d-af00-aff1122b6fd6 / ext4 errors=remount-ro 0 1
- Incollare nel file le seguenti linee, scrivendo il UUID_NUOVO annottato:
Se non s'usa la compressione:
UUID=UUID_NUOVO btrfs / noatime,autodefrag,subvol=@ 0 0 UUID=UUID_NUOVO btrfs /home noatime,autodefrag,subvol=@home
Abilitando la compressione (consigliato):
UUID=UUID_NUOVO btrfs / noatime,compress=zstd:1,autodefrag,subvol=@ 0 0 UUID=UUID_NUOVO btrfs /home noatime,compress=zstd:1,autodefrag,subvol=@home
Reinstallare il bootloader Grub:
grub-install /dev/sda
Aggiornare il Grub:
update-grub2
Installare il pacchetto btrfs-progs.
Uscire dal Chroot:
exit
Smontare tutte le cartelle:
cd ~ for i in /dev /proc /sys /run /; do sudo umount -l /mnt$i; done
Smontare la partizione convertita:
sudo umount -t btrfs -o subvol=@ /dev/sda3 /mnt
Al termine riavviare il sistema.