Ext3 is a journaled FileSystem based on Ext2. It also has some additional features such as extents (which reduce the amount of overhead with storing where a file is stored on the disk for large files), and hash based lookups on directories solving the problem Ext2 has with large directories being very slow. Ext4 is the next generation of this filesystem.

Note that despite journalling, you should periodically fsck(8) Ext3 FileSystems to ensure they are consistent. HardDisk errors can still introduce problems.

You can turn Ext2 FileSystems into Ext3 ones at any time by issuing

tune2fs -j /dev/partition

Note that unlike most disk tool commands, you add the journal to a currently mounted partition.

You can also add -J to pass journal options. The only one currently supported is size=xMB. See tune2fs(8) for min/max size.

Given Kernel support (eg CONFIG_EXT3_FS_POSIX_ACL in a 2.6.x Kernel), you can use POSIX ACLs by either adding acl to the mount options column in fstab(5) or setting a default mount option in the partition itself by issuing

tune2fs -o acl /dev/partition

Remember to change fstab(5) to mount the partition as Ext3, and then unmount/remount it or reboot. (You do not have to do this immediately).

You can always mount an Ext3 partition as type Ext2 — you just will not have any journalling performed. However, beware: do not do this if the ext3 partition was not cleanly unmounted! If the journal was not empty before doing so, your FileSystem may become corrupted. This may happen either right away due to incomplete journal operations or once you mount it as Ext3 again because the Kernel will then happily commit old operations to your now modified FileSystem. So make sure the Ext3 FileSystem was properly flushed and unmounted before you attempt to mount it as Ext2. (AddToMe: is this sufficient to ensure integrity?)

You can also enabled hashed directories with a 2.6 Kernel. This speeds up lookups for directories that contain a large numbers of files/directories.

tune2fs -O dir_index /dev/partition
fsck.ext3 -D /dev/partition

The fsck is required to move the existing directories to the new format. If you ever remount the filesystem as ext2, directories that are written to will be converted back to the old format, so you need rerun the fsck.

If you still get filesystem checks occuring on a crash and you get a message such as mounting ext3 filesystem as ext2 appearing then you probably are using Ext3 on the root filesystem and put it in as a Module. You need to build it into the Kernel or use initrd(4) - the reason this occurs is that it can't get the module before it mounts the filesystem but it can't mount the filesystem as ext3 without the module.