My experiences with ext4 on Jaunty

Tim Gardner tcanonical at
Wed Dec 31 18:58:18 UTC 2008

Ext4 is now supported as a stable file system by the Jaunty 2.6.28 kernel.

I'm really impressed with ext4. The 2 most improved features that I
immediately noticed were file removal, and (I assume) file creation.

In the course of my work flow I often remove whole kernel trees and all
of the compiled objects. Under ext3 removing 228K files could take as
long as 5 minutes on a relatively fast disk (98 Mbyte/sec, Supermicro
dual quad core @ 2.40GHz). Under ext4 it takes about 15 _seconds_.

Kernel build performance also improved dramatically, an improvement that
I assume is largely attributable to file creation and write performance.
Under ext3 a build cycle for all i386/amd64 flavours typically took 40
minutes with a populated ccache. Under ext4 its now taking about 20 minutes.

I can't say much about stability, though I've been using ext4 on my
primary build server for several days. It has performed flawlessly, but
absence of evidence is not evidence of absence.

In order to enjoy the full benefits of ext4 you must format a partition
using mkfs.ext4. Here are a couple of articles that I read about
migrating to ext4:

Creating an ext4 file system in Jaunty is a bit difficult because its
not an option supported (yet) by the installers, nor does grub 1 support
booting from an ext4 file system. About your only choice is to format an
existing non-boot partition, which I did in the following way:

1) Install from scratch using the manual partitioning method wherein
/home is mounted on a separate partition.

2) 'sudo su -' and set a root password. Exit all the way out to a login
prompt, then login directly as root.

3) deluser on the one account whose home directory is on /home

4) 'umount /home', mkfs.ext4 on the device upon which /home was mounted,
e.g. 'mkfs.ext4 /dev/sda3'

5) Determine the new volume ID and replace the current value in
/etc/fstab, e.g., 'vol_id --uuid /dev/sda3'

6) 'mount /home' and recreate your user info using adduser.

Simple, huh? In retrospect there are simpler ways of dealing with the
account on /home, like temporarily moving it to someplace on /, but this
is the way I did it.

Tim Gardner tim.gardner at

More information about the kernel-team mailing list