Ubuntu: migrare da ext3 a ext4 il filesystem root

Ho sempre aggiornato installazioni di Ubuntu alle ultime versioni, lasciando come filesystem ext3. Solo su macchine virtuali ho sperimentato ext4 come filesystem di default per Karmic Koala e Lucid Lynx, non notando mai sostanziali miglioramenti per l’utilizzo che faccio di Ubuntu. Ma complice il passaggio di Google a ext4 per i propri cluster Linux, ho deciso di migrare da ext3 a ext4 senza formattare.

Per sperimentare la migrazione ho scelto l’installazione di Ubuntu 9.10 sul mio Samsung NC10, su cui ho impostato un layout di partizioni davvero “rozzo” cioè con un’unica partizione “/” formattata ext3 e una piccola partizione di swap. Ecco i passaggi che ho effettuato per migrare da ext3 a ext4 senza formattare:

  1. Ho scaricato una ISO Ubuntu 9.10 Desktop e l’ho trasferita su pen drive con Unetbootin
  2. Ho impostato sul BIOS del Samsung NC10 come prima unità di boot la pen drive
  3. Una volta avviata la Live di Ubuntu ho montato la partizione con la versione di Karmic su cui effettuare la migrazione da ext3 a ext4. Basta un clic su “Risorse\Nome partizione da montare”
  4. Ho modificato con nano il file /etc/fstab della Ubuntu da migrare, cambiando il filesystem da ext3 a ext4
  5. Ho smontato la partizione (tasto destro sull’icona del disco e poi “Smonta”)
  6. A questo punto ho eseguito il seguente comando da terminale:
    sudo tune2fs -O extents,uninit_bg,dir_index /dev/sdx # sdx va cambiato con il nome della partizione che dovete migrare a ext4
  7. Fatto questo ho verificato e corretto gli errori sul filesystem migrato, da terminale ho dato:
    sudo fsck -yfD /dev/sdcx #l’operazione può durare molto tempo quindi armatevi di pazienza

Fatto questo ho riavviato e scelto l’avvio dalla Ubuntu migrata a ext4. Tutto è andato per il verso giusto: mount del nuovo filesystem e sistema nuovamente funzionante con ext4.

Secondo l’ottimo howto di Debian Administration per sfruttare appieno le possibilità offerte da ext4 è necessario eseguire due comandi da shell per abilitare gli extents mentre la documentazione di Ubuntu consiglia alla fine delle procedure una reinstallazione di GRUB. Personalmente non ho effettuato nessuna delle due operazioni suggerite e il sistema migrato a ext4 ha continuato a funzionare senza problemi.

Va detto però che la migrazione così effettuata apporta vantaggi solo ai file scritti su disco successivamente alla migrazione, i file preesistenti non avranno alcun giovamento a meno che non sia scritti nuovamente ed è proprio a questo scopo che Debian Administration suggerisce un chattr +e su tutti i file e directory presenti: come detto, personalmente non ho ritenuto necessario effettuare questa operazione ma a voi la scelta 😉