Il filesystem ext3 (o ext3fs - third extended filesystem) è essenzialmente un filesystem ext2 a cui è stata aggiunta la caratteristica di journaling. La caratteristica fondamentale di ext3 è quella di essere compatibile al 100% con ext2, infatti la struttura del filesystem rimane praticamente la stessa a parte l’introduzione del journal. Il kernel di GNU/Linux supporta il filesystem ext3 a partire dalla versione 2.4.16 (il kernel deve essere opportunamente compilato per poter gestire tale filesystem).
In genere i journaled filesystem annotano nel journal le modifiche prima di apportarle ai metadati, ma ext3 ha la possibilità di annotare nel journal anche le modifiche che apporterà ai dati. Ovviamente questo va a scapito delle prestazioni ma diminuisce le probabilità di perdita di dati. La modalità di funzionamento del filesystem può essere impostata specificando l’opportuna opzione nella riga del file /etc/fstab (v. più avanti) che si riferisce al filesystem ext3. Le righe di tale file contengono infatti l’impostazione della modalità di journaling subito dopo la stringa ext3, come illustrato di seguito
/dev/hda3 /opt ext3 defaults 1 0
Il passaggio da ext2 a ext3 può essere fatto on-the-fly (cioè “a caldo”) proprio perché le strutture dei due filesystem sono pienamente compatibili. Non si rende quindi necessario un backup dei dati presenti sul filesystem da aggiornare ed una sostituzione del filesystem, presente sulla partizione considerata, con un alrto. Per convertire una partizione dal filesystem ext2 al filesystem ext3 è sufficiente digitare il comando
# tune2fs -j partition
dove partition è la partizione del disco contenente il filesystem da convertire (es. /dev/hda3).
Per ulteriori dettagli si veda la relativa man page (tune2fs(8)). È evidente che
dopo aver convertito il filesystem, è necessario modificare opportunamente il file
/etc/fstab per informare il sistema operativo che la partizione non sarà più di tipo
ext2, ma di tipo ext3. Ad esempio, se tale file prima della conversione conteneva la
riga
/dev/hda3 /opt ext2 defaults 1 2
/dev/hda3 /opt ext3 defaults 1 0
È doveroso comunque far notare che il filesystem ext3, poiché è stato progettato per essere totalmente compatibile con la struttura del filesystem ext2, non ha alcune delle caratteristiche tipiche dei filesystem di ultima generazione come l’indicizzazione dei blocchi per mezzo di una struttura albero binario (b-tree) bilanciato che ridurrebbe i tempi di accesso agli oggetti del filesystem man mano che questo cresce, oppure la creazione dinamica degli inode.