Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "emanuc/BtrfsConv"
Differenze tra le versioni 1 e 23 (in 22 versioni)
Versione 1 del 31/10/2021 11.09.16
Dimensione: 7594
Autore: emanuc
Commento:
Versione 23 del 01/11/2021 22.46.21
Dimensione: 9655
Autore: emanuc
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 25: Linea 25:
{{{#!wiki important
Il consiglio è, se possibile, di fare una nuova installazione scegliendo come file system il Btrfs. Il processo di conversione è da riservare ai casi in cui una reinstallazione sia difficoltosa o improponibile. Se si decide di procedere si dev'essere consapevoli che potrebbero esservi dei bachi e dover reinstallare il sistema operativo.
}}}
Linea 38: Linea 42:
<<Anchor(btrfsprogs)>>
Linea 67: Linea 71:
 0. Smontare la partizione da convertire:{{{
sudo umount -t ext4 /dev/sda3
}}}
Linea 77: Linea 78:
btrfs-convert /dev/sda3 sudo btrfs-convert /dev/sda3
Linea 86: Linea 87:
 {{{#!wiki important
 Eliminando lo snapshot '''ext2_saved''', non si potrà più ripristinare la partizione ext4.
}}}
 0. Eliminare il volume '''ext2_saved''' per liberare spazio{{{
sudo btrfs subvolume delete /mnt/ext2_saved
}}}
Linea 99: Linea 107:
 0. Verificare che tutte le cartelle siano al loro posto:{{{
ls /mnt
}}}
{{{#!wiki note
Attenzione, eliminando lo snapshot '''ext2_save''', non si potrà più ripristinare la partizione ext4.
}}}
 0. Eliminare il volume '''ext2_save''' per liberare spazio{{{
sudo btrfs subvolume delete /mnt/ext2_save
}}}

 0. Solo se si usa la compressione, digitare i seguenti comandi:
    * Deframmentare il volume radice:{{{
sudo btrfs filesystem defragment -r -v -f -czstd /mnt/@
}}}
    * Deframmentare il volume '''home''':{{{
sudo btrfs filesystem defragment -r -v -f -czstd /mnt/@home
}}}
    * Bilanciare i due volumi:{{{
sudo btrfs balance start -m /mnt/
}}}
 0. Opzionalmente rimuovere le cartelle originali:{{{

 {{{#!wiki note
 È 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. Questa procedura eliminerà la possibilità di ripristinare il filesystem precedente.
}}}
 0. Prima di procedere al defrag e bilanciamento, controllare che il volume '''ext2_saved''' sia del tutto rimosso:{{{
   sudo btrfs subvolume list -d /mnt/
}}}
 {{{#!wiki note
 Se è in fase di eliminazione, si vedrà a schermo un risultato simile '''ID 1020 gen 4140456 top level 0 path DELETED''', se è stato rimosso non restituirà nessun risultato, quindi si può procedere.
}}}
 0. Procedura per deframmentare senza comprimere i dati:
  * Deframmentare il subvolume '''@''':{{{
sudo btrfs filesystem defragment -rf /mnt/@
}}}
  * Deframmentare il volume '''@home''':{{{
sudo btrfs filesystem defragment -rf /mnt/@home
}}}
 0. Procedura per deframmentare e comprimere i dati con l'algoritmo '''zstd''' livello '''3''':
    * Deframmentare il volume '''@''':{{{
sudo btrfs filesystem defragment -rf -czstd /mnt/@
}}}
    * Deframmentare il volume '''@home''':{{{
sudo btrfs filesystem defragment -rf -czstd /mnt/@home
}}}
 0. Bilanciare il filesystem:{{{
sudo btrfs balance start /mnt/
}}}
 {{{#!wiki note
 Aspettiamo il Timer di 10 secondi con un avviso di un '''full-balance''' che potrebbe richiedere molto tempo, in base alla dimensione del filesystem.
}}}
 0. Opzionalmente rimuovere le cartelle originali (QUESTO é ROTTO E DA SISTEMARE O EVITARE):{{{
Linea 127: Linea 145:
sudo mount -t btrfs /dev/sda3 /mnt sudo mount -t btrfs -o subvol=@ /dev/sda3 /mnt
Linea 131: Linea 149:
}}} 0. Montare la partizione EFI ('''Solo su BIOS UEFI'''):{{{
sudo mount /dev/sdaN /mnt/boot/efi
Linea 146: Linea 166:
UUID=NUOVO_UUID btrfs / noatime,autodefrag,subvol=@ 0 0 UUID=NUOVO_UUID btrfs / noatime,autodefrag,subvol=@
Linea 150: Linea 170:
UUID=NUOVO_UUID btrfs / noatime,compress=zstd:1,autodefrag,subvol=@ 0 0 UUID=NUOVO_UUID btrfs / noatime,compress=zstd:1,autodefrag,subvol=@
Linea 153: Linea 173:

 {{{#!wiki note
 Se presente eliminare la riga dello swapfile, su Btrfs deve essere creato su un subvolume separato e con l'attributo '''nocow'''
}}}
Linea 158: Linea 183:
 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://btrfs-progs|btrfs-progs]].  0. In '''Ubuntu 20.04 e successive''' [[AmministrazioneSistema/InstallareProgrammi|Installare]] direttamente il pacchetto [[apt://btrfs-progs|btrfs-progs]], in '''Ubuntu 18.04''' seguire le procedure di [[#btrfsprogs|questo paragrafo]] per installare il pacchetto `btrfs-progs`.


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 file system il Btrfs. Il processo di conversione è da riservare ai casi in cui una reinstallazione sia difficoltosa o improponibile. Se si decide di procedere si dev'essere consapevoli che potrebbero esservi dei bachi 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. Verificare il filesystem da convertire:

    sudo fsck.ext4 /dev/sda3

Conversione

  1. Convertire il filesystem:

    sudo 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
    • Eliminando lo snapshot ext2_saved, non si potrà più ripristinare la partizione ext4.

  3. Eliminare il volume ext2_saved per liberare spazio

    sudo btrfs subvolume delete /mnt/ext2_saved
    • Questa procedura ti da la possibilità di dividere i volumi root e home, per sfruttare le funzionalità di Btrfs, ad esempio gli snapshot.
  4. Creare lo snapshot della partizione Btrfs e rinominarlo in @:

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

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

    sudo mv /mnt/@/home/* /mnt/@home/
    • È 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. Questa procedura eliminerà la possibilità di ripristinare il filesystem precedente.
  7. Prima di procedere al defrag e bilanciamento, controllare che il volume ext2_saved sia del tutto rimosso:

       sudo btrfs subvolume list -d /mnt/
    • Se è in fase di eliminazione, si vedrà a schermo un risultato simile ID 1020 gen 4140456 top level 0 path DELETED, se è stato rimosso non restituirà nessun risultato, quindi si può procedere.

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

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

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

    • Deframmentare il volume @:

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

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

    sudo btrfs balance start /mnt/
    • Aspettiamo il Timer di 10 secondi con un avviso di un full-balance che potrebbe richiedere molto tempo, in base alla dimensione del filesystem.

  11. Opzionalmente rimuovere le cartelle originali (QUESTO é ROTTO E DA SISTEMARE O EVITARE):

    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 -o subvol=@ /dev/sda3 /mnt
    • Con compressione (consigliato):

      sudo mount -t btrfs -o compress=zstd:1,subvol=@ /dev/sda3 /mnt

      0. Montare la partizione EFI (Solo su BIOS UEFI):

      sudo mount /dev/sdaN /mnt/boot/efi
  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
    • Se presente eliminare la riga dello swapfile, su Btrfs deve essere creato su un subvolume separato e con l'attributo nocow

  7. Reinstallare e aggiornare il bootloader Grub con i comandi:

    grub-install /dev/sda
    update-grub2
  8. In Ubuntu 20.04 e successive Installare direttamente il pacchetto btrfs-progs, in Ubuntu 18.04 seguire le procedure di questo paragrafo per 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