Enable ext4 file system as boot partition


Original GSoC proposal.

The original text of my GSoC proposal.

Incompatible ext4 new features.

There are several fundamental changes in ext4. Here I list some most importance incompatible features, among which, extent feature will be the first to get grub support through this project.

Method to distinguish ext2/3/4 file systems.

Since ext4 file system has some fundamental changes in on-disk structure, in order to provide support for ext4 file system, it is essential to distinguish ext4 from ext2/3. Here are some basic steps to do so.

Understanding extent feature in ext4.

Extent feature might be a most important feature in ext4 file system. It is a new mapping method used to replace indirect block mapping in ext2/3.

Recognize an extent-enabled inode, and an non-extent inode

Extent-enabled inode and non-extent inode can be differentiated by checking eh_magic of ext4_extent_header with EXT4_EXT_MAGIC.

How root command gets executed in grub legacy

To understand how grub operates, an analysis of root command execution is made here.

Introduction to grub and grub4ext4

I gave an introduction to grub ant grub4ext4 project at a get-together party of BBS.

Setup qemu test enviroment and a simple test case

To simplify testing the code, I built an test enviroment with qemu and a USB storage device.

Error codes designed to show in grub4ext4

Grub might fail to install or boot the kernel when some unsupported features presented.

Google Beijing office meetup

We had a wonderful day visiting Google Beijing office under the direction of James Su.

Build grub4ext4 with openSuSE build service

openSuSE build service is a convenient place to build packages for distributions.

Wrapping up Google Summer of Code 2008

As a final step, I uploaded my code sample plus user documents and development notes to a Google code hosting site(as required by Google). Everything you want to know about grub4ext4 can be found there.

Check out the wonderful gifts sent by Google.

Google, you really rock!


updates :

1. openSuSE has accepted my patch for grub legacy in openSuSE 11.1 beta, which was done silently because openSuSE seems not willing to provide ext4 support officially...

2. I gave a brief talk on a BLUG(Beijing Linux User Group) meeting, introducing Google Summer of Code program and grub4ext4. Check the website and the slides.

3. At a BOF(Birds of a Feather) leaded by Coly Li and me on Gnome Asia Summit, I gave a similar talk, sharing my experience of applying GSoC slot and working with the open source cummunity. Check the website and pictures.

4. Eric Sandeen from said(here and here) that Fedora is reviewing the patch.

5. Fedora 12 has applied the patch.

Grub4ext4 is a GSoC 2008 project aiming at enabling grub legacy to boot an ext4 partition.

  • You can find the source code here
  • Or check my resume here.