Con l’uscita della nuova versione di Ubuntu ho deciso di convertire i file-system che (ahimé) avevo ancora in ext3 a ext4, per guadagnarne in performance ed affidabilità senza però formattare la partizione (e perdere i miei dati).

[Una piccola nota: non sono un grande fan di ext*, infatti come sapete sono un grande sostenitore di XFS, ma la conversione ext3->XFS non è stata ancora implementata.]

Vediamo la procedura per convertire da ext3 a ext4 un file-system non-root, ovvero su cui non risiede la root / del vostro filesystem. I dati nella partizione sono al sicuro e non verranno intaccati (in ogni caso consiglio sempre di avere un backup recente a portata di mouse).

Andiamo con ordine:

  1. Identifichiamo la partizione non-root che vogliamo convertire, (nel mio caso /media/store e quindi /dev/sdb1):
michele@cletus:~$ mount | grep ^/dev/
/dev/sda2 on / type ext3 (rw,relatime,errors=remount-ro)
/dev/sdb1 on /media/store type ext3 (rw)
  1. Facciamo un umount della partizione che vogliamo convertire:
umount /media/store
  1. Lanciamo un controllo preventivo del file-system per prepararlo alla conversione (da qui in avanti sostituite /dev/sdb1 con la partizione identificata al punto 1):
fsck.ext3 -pf /dev/sdb1
  1. Se il controllo è terminato senza problemi, passiamo alla conversione vera e propria:
tune2fs -O extents,uninit_bg,dir_index /dev/sdb1
  1. Rilanciamo un controllo del file-system per verificare che tutto sia andato per il verso giusto:
fsck -pf /dev/sdb1
  1. Apriamo il file /etc/fstab, modificando con ext4 il tipo di file-system per la voce relativa a /media/store.
  2. Possiamo rimontare la partizione:
sudo mount /media/store

L’operazione è assolutamente trasparente, nel senso che i dati non sono stati intaccati e la partizione viene ora riconosciuta come ext4:

michele@cletus:~$ mount | grep ^/dev/
/dev/sda2 on / type ext3 (rw,relatime,errors=remount-ro)
/dev/sdb1 on /media/store type ext4 (rw)

L’operazione è anche molto veloce: per convertire un volume da 500 GB (SATA) sono richiesti circa 40 minuti.