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 32 e 33
Versione 32 del 08/11/2021 18.00.22
Dimensione: 9844
Commento:
Versione 33 del 13/11/2021 19.09.33
Dimensione: 11154
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 102: Linea 102:
 0. 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 "{}" \;
}}}
 0. Terminato il bilanciamento, possiamo smontare la partizione:{{{
sudo umount /mnt/

0. Eliminare dalla radice della partizione tutti i file e le cartelle, eccetto i subvolume '''@''' e '''@home''', digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
find /mnt -mindepth 1 -maxdepth 1 ! -path '*/@*' -execdir sudo rm -r "{}" +}}}

0. Terminato il bilanciamento, smontare la partizione:{{{
sudo umount /mnt
Linea 111: Linea 112:
 0. Eseguire un '''[[AmministrazioneSistema/Chroot|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
}}}
 0. Montare le cartelle `dev, proc, sys, run`:{{{
for i in dev proc sys run; do sudo mount --bind /$i /mnt/$i; done
}}}
 0. Effettuare il chroot sul sistema:{{{
sudo chroot /mnt
}}}
 0. Annotare il nuovo UUID delle cartelle '''@''' e '''@home''' della partizione, visibile con il seguente comando:{{{
sudo blkid /dev/sda3
}}}
 0. Aprire con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] e un [[Ufficio/EditorDiTesto|editor]] di testo (si consiglia [[Ufficio/EditorDiTesto/Nano|nano]]) il file `/etc/fstab` e commentare con un «`#`» la linea:{{{
UUID=f6e9afa7-5b2f-2c3d-af00-aff1122b6fd6 / ext4 errors=remount-ro 0 1
}}}
 0. 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
}}}
 0. Montare il subvolume '''@''' in `/mnt` digitando nel [[AmministrazioneSistema/Terminale|terminale]] uno dei seguenti comandi:
  * Abilitando la compressione (consigliato):{{{
sudo mount -t btrfs -o compress=zstd:1,subvol=@ /dev/sda3 /mnt}}}
  * Oppure senza compressione:{{{
sudo mount -t btrfs -o subvol=@ /dev/sda3 /mnt}}}
Linea 143: Linea 118:
 {{{#!wiki note
 Se presente eliminare la riga dello swapfile, su Btrfs deve essere creato su un subvolume separato e con l'attributo '''nocow'''
}}}
 0. Montare le cartelle `/dev`, `/dev/pts`, `/proc`, `/sys` e `/run` digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
for i in dev dev/pts proc sys run; do sudo mount --bind /$i /mnt/$i; done}}}
Linea 147: Linea 121:
 0. Reinstallare e aggiornare il bootloader '''[[AmministrazioneSistema/Grub|Grub]]''' con i comandi:{{{
grub-install /dev/sda
}}}{{{
update-grub2
}}}
 0. Solo per sistemi [[AmministrazioneSistema/Uefi|UEFI]], montare anche `/sys/firmware` e la partizione EFI digitando nel [[RigaDiComando|terminale]] i seguenti comandi:{{{
sudo mount --bind /sys/firmware /mnt/sys/firmware
sudo mount /dev/sdXN /mnt/boot/efi}}}
 Sostituire `sdXN` con la partizione EFI del proprio sistema.

 0. Effettuare il '''chroot''' sul sistema digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
sudo chroot /mnt}}}

 0. Prendere nota del nuovo UUID della partizione convertita, visualizzabile digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
lsblk -no UUID /dev/sda3}}}

 0. Aprire con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] e un [[Ufficio/EditorDiTesto|editor]] di testo (si consiglia [[Ufficio/EditorDiTesto/Nano|nano]]) il file `/etc/fstab`.
 
 0. Individuare la riga che fa riferimento alla partizione di Root, 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. Incollare in fondo al file le seguenti righe, sostituendo `<NUOVO UUID>` con il valore annotato in precedenza:
  * Abilitando la compressione (consigliato):{{{
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. Reinstallare il boot loader '''Grub''' digitando nel [[AmministrazioneSistema/Terminale|terminale]] uno dei seguenti comandi:
  * Per sistemi legacy BIOS:{{{
grub-install /dev/sda}}}
  * Per sistemi [[AmministrazioneSistema/Uefi|UEFI]]:{{{
grub-install}}}

 0. Aggiornare la configurazione di '''Grub''' digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
update-grub}}}
Linea 153: Linea 157:
 0. Uscire dal '''Chroot''':{{{
exit
}}}
 0. Smontare tutte le cartelle:{{{
cd ~
for i in /dev /proc /sys /run /; do sudo umount -l /mnt$i; done
}}}
 0. Smontare la partizione convertita:{{{
sudo umount -t btrfs -o subvol=@ /dev/sda3 /mnt
}}}
Linea 164: Linea 158:
Al termine riavviare il sistema.  0. Uscire dal '''chroot''' digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
exit}}}

 0. Smontare tutte le cartelle digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
for i in dev/pts dev proc sys/firmware sys run; do sudo umount -l /mnt/$i; done}}}

 0. Solo per sistemi [[AmministrazioneSistema/Uefi|UEFI]], smontare la partizione EFI digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
sudo umount /mnt/boot/efi}}}
 
 0. Smontare il subvolume '''@''' digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
sudo umount /mnt}}}

 0. Riavviare il sistema.


Guida verificata con Ubuntu: 20.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

btrfs-convert è uno strumento che consente di convertire partizioni formattate in ext2, ext3, ext4 o reiserfs nel file system btrfs. 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 root di Ubuntu, considerando un sistema installato in unica partizione (eccetto l'eventuale partizione EFI per i sistemi UEFI). Vengono inoltre illustrate tutte le operazioni successive necessarie per rendere il sistema avviabile, efficiente e performante.

La partizione da convertire deve avere almeno il 10% di spazio disponibile. 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 backup dei dati e reinstallare Ubuntu scegliendo la voce Altro nella schermata 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.

Operare sulle partizioni espone al rischio di perdere i dati, in conseguenza di eventuali errori o malfunzionamenti. Pertanto è fortemente raccomandato effettuare un backup dei propri dati prima di procedere.

Operazioni preliminari

  1. Avviare una sessione live del rilascio più recente di Ubuntu (minimo 20.04).

    Se il sistema da convertire è stato installato in modalità UEFI, assicurarsi di avviare la sessione live in tale modalità.

    In alternativa è possibile operare da un altro sistema Ubuntu installato in dual boot. In tal caso per operare da Ubuntu 20.04 o successivo sarà necessario installare il pacchetto btrfs-progs presente nei repository. Invece per Ubuntu 18.04 scaricare ed installare manualmente i pacchetti btrfs-progs_5.4.1-2_amd64.deb, libbtrfs0_5.4.1-2_amd64.deb e libbtrfsutil1_5.4.1-2_amd64.deb.

  2. Individuare la partizione da convertire.

    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.

  3. Verificare l'integrità del file system da convertire digitando il seguente comando nel terminale:

    sudo fsck.ext4 -f /dev/sda3

Conversione

  1. Convertire il file system:

    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 file system. Il nuovo file system 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 file system 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 file system:

    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 file system.

  11. Eliminare dalla radice della partizione tutti i file e le cartelle, eccetto i subvolume @ e @home, digitando nel terminale il seguente comando:

    find /mnt -mindepth 1 -maxdepth 1 ! -path '*/@*' -execdir sudo rm -r "{}" +
  12. Terminato il bilanciamento, smontare la partizione:

    sudo umount /mnt

Accesso al sistema con Chroot

  1. Montare il subvolume @ in /mnt digitando nel terminale uno dei seguenti comandi:

    • Abilitando la compressione (consigliato):

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

      sudo mount -t btrfs -o subvol=@ /dev/sda3 /mnt
  2. Montare le cartelle /dev, /dev/pts, /proc, /sys e /run digitando nel terminale il seguente comando:

    for i in dev dev/pts proc sys run; do sudo mount --bind /$i /mnt/$i; done
  3. Solo per sistemi UEFI, montare anche /sys/firmware e la partizione EFI digitando nel terminale i seguenti comandi:

    sudo mount --bind /sys/firmware /mnt/sys/firmware
    sudo mount /dev/sdXN /mnt/boot/efi

    Sostituire sdXN con la partizione EFI del proprio sistema.

  4. Effettuare il chroot sul sistema digitando nel terminale il seguente comando:

    sudo chroot /mnt
  5. Prendere nota del nuovo UUID della partizione convertita, visualizzabile digitando nel terminale il seguente comando:

    lsblk -no UUID /dev/sda3
  6. Aprire con i privilegi di amministrazione e un editor di testo (si consiglia nano) il file /etc/fstab.

  7. Individuare la riga che fa riferimento alla partizione di Root, 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
  8. Incollare in fondo al file le seguenti righe, sostituendo <NUOVO UUID> con il valore annotato in precedenza:

    • Abilitando la compressione (consigliato):

      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
  9. Salvare il file e chiudere l'editor di testo.
  10. 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
  11. Aggiornare la configurazione di Grub digitando nel terminale il seguente comando:

    update-grub
  12. 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.

  13. Uscire dal chroot digitando nel terminale il seguente comando:

    exit
  14. Smontare tutte le cartelle digitando nel terminale il seguente comando:

    for i in dev/pts dev proc sys/firmware sys run; do sudo umount -l /mnt/$i; done
  15. Solo per sistemi UEFI, smontare la partizione EFI digitando nel terminale il seguente comando:

    sudo umount /mnt/boot/efi
  16. Smontare il subvolume @ digitando nel terminale il seguente comando:

    sudo umount /mnt
  17. Riavviare il sistema.

Ulteriori risorse

CategoryAmministrazione