Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 10 del 31/10/2021 11.35.08

Nascondi questo messaggio


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 convertibili i filesystem ext2, ext3, ext4 e reiserfs.

Per convertire tra filesystem semplici leggere questa pagina.

Questa procedura necessita di 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 consiglio è se possibile, di fare una nuova installazione scegliendo come filesystem Btrfs. Il processo di conversione potrebbe non essere l'idea. Se decidi di procedere sei consapevole che potrebbero esserci dei bug e dover reinstallare il sistema operativo.

Il processo di conversione richiederà almeno un minuto per ogni GB della partizione da convertire (per esempio una partizione di 10 GB richiederà almeno 10 minuti per essere convertita).

È importante che la partizione che si desidera formattare abbia uno spazio libero residuo di almeno il 10%.

Installazione

Ubuntu 20.04 e successive

Installare il pacchetto btrfs-progs.

Ubuntu 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 di suite con più pacchetti.

  1. Scaricare da questo indirizzo i seguenti pacchetti in formato di file .deb:

    btrfs-progs_5.4.1-2_amd64.deb
    libbtrfs0_5.4.1-2_amd64.deb
    libbtrfsutil1_5.4.1-2_amd64.deb
  2. Installare i pacchetti scaricati.

Uso del programma

Operazioni preliminari

Nel seguente esempio viene convertita nel filesystem btrfs la partizione /dev/sda3 con filesystem ext4.

  1. Individuare la partizione da convertire digitando nel terminale il seguente comando:

    sudo blkid

    che restituirà un output simile al seguente:

    /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"
  2. Smontare la partizione da convertire:

    sudo umount -t ext4 /dev/sda3
  3. Verificare il filesystem da convertire:

    sudo fsck.ext4 /dev/sda3

Conversione

  1. Convertire il filesystem:

    btrfs-convert /dev/sda3
  2. Montare la partizione convertita, con uno dei seguenti comandi:
    • Mount con le opzioni di default, senza compressione:

      sudo mount -t btrfs /dev/sda3 /mnt
    • Mount abilitando la compressione (consigliato):

      sudo mount -t btrfs -o compress=zstd:1 /dev/sda3 /mnt
    • Questa procedura ti da la possibilità di dividere i volumi root e home, per sfruttare le funzionalità di Btrfs, ad esempio gli snapshot.
  3. Creare lo snapshot della partizione Btrfs e rinominarlo in @:

    sudo btrfs subvolume snapshot /mnt/ /mnt/@
  4. Creare il subvolume della cartella /home:

    sudo btrfs subvolume create /mnt/@home
  5. Spostare i dati della vecchia Home nel subvolume @home:

    sudo mv /mnt/@/home/* /mnt/@home/
  6. Verificare che tutte le cartelle siano al loro posto:

    ls /mnt
    • Attenzione, eliminando lo snapshot ext2_save, non si potrà più ripristinare la partizione ext4.

  7. Eliminare il volume ext2_save per liberare spazio

    sudo btrfs subvolume delete /mnt/ext2_save
    • È fortemente consigliato deframmentare i volumi e bilanciare il filesystem. Il nuovo filesystem eredita il posizionamento dei blocchi e la frammentazione dei dati dei file. Per questo motivo si consiglia vivamente di eseguire una deframmentazione completa e un ribilanciamento completo prima dell'uso in "produzione". Non è necessario per il funzionamento generale, ma influirà sulle prestazioni.

  8. Procedura per deframmentare senza comprimere i dati:
    • Deframmentare il subvolume @:

      sudo btrfs filesystem defragment -rvf /mnt/@
    • Deframmentare il volume @home:

      sudo btrfs filesystem defragment -rvf /mnt/@home
  9. Procedura per deframmentare e comprimere i dati con l'algoritmo zstd livello 3:

    • Deframmentare il volume @:

      sudo btrfs filesystem defragment -rvf -czstd /mnt/@
    • Deframmentare il volume @home:

      sudo btrfs filesystem defragment -rvf -czstd /mnt/@home
  10. Bilanciare il filesystem:

    sudo btrfs balance start -m /mnt/
  11. Opzionalmente rimuovere le cartelle originali:

    find /mnt -maxdepth 1 -type d -not -path '*/@*' -not -name "." -execdir sudo rm -r "{}" \;

Accesso al sistema con Chroot

  1. Eseguire un Chroot alla radice della partizione convertita, con uno dei seguenti comandi:

    • Senza compressione:

      sudo mount -t btrfs /dev/sda3 /mnt
    • Con compressione (consigliato):

      sudo mount -t btrfs -o compress=zstd:1,subvol=@ /dev/sda3 /mnt
  2. Montare le cartelle dev, proc, sys, run:

    for i in dev proc sys run; do sudo mount --bind /$i /mnt/$i; done
  3. Effettuare il chroot sul sistema:

    sudo chroot /mnt
  4. Annotare il nuovo UUID delle cartelle @ e @home della partizione, visibile con il seguente comando:

    sudo blkid /dev/sda3
  5. Aprire con i privilegi di amministrazione e un editor di testo (si consiglia nano) il file /etc/fstab e commentare con un «#» la linea:

    UUID=f6e9afa7-5b2f-2c3d-af00-aff1122b6fd6 /               ext4    errors=remount-ro 0       1
  6. Incollare nel file le seguenti linee, scrivendo il nuovo UUID annottato in precedenza, a seconda dei casi con:
    • Senza compressione:

      UUID=NUOVO_UUID btrfs / noatime,autodefrag,subvol=@ 
      UUID=NUOVO_UUID btrfs /home noatime,autodefrag,subvol=@home
    • Con compressione (consigliato):

      UUID=NUOVO_UUID btrfs / noatime,compress=zstd:1,autodefrag,subvol=@ 
      UUID=NUOVO_UUID btrfs /home noatime,compress=zstd:1,autodefrag,subvol=@home
  7. Reinstallare e aggiornare il bootloader Grub con i comandi:

    grub-install /dev/sda
    update-grub2
  8. Installare il pacchetto btrfs-progs.

  9. Uscire dal Chroot:

    exit
  10. Smontare tutte le cartelle:

    cd ~
    for i in /dev /proc /sys /run /; do sudo umount -l /mnt$i; done
  11. Smontare la partizione convertita:

    sudo umount -t btrfs -o subvol=@ /dev/sda3 /mnt

Al termine riavviare il sistema.

Ulteriori risorse

CategoryAmministrazione