Second Extended File System
by Dave Poirier (
Project Page

View the information in:
html - pdf

Last update: Wednesday, May 8th 2019

Document Updated!

When I was working at my first ext2 driver implementation, I found myself short of documentation on the subject. It wasn't so much the information not being available as of it not being available all in one place.

This project tries to fix this, by bringing in one single place all the useful information in one easy to understand package. I try to not tie the documentation to any particular operating system, so that it may be useful to the widest audience.

Change Log

May 8th, 2019
  • Fixed typography in EXT2_SECRM_FL description
  • Clarification to s_log_block_size
  • Corrections to s_mnt_count and s_max_mnt_count
  • Removed dead link to htree performance graph and replaced with link to paper by Daniel Phillips
  • February 4th, 2011
  • Updated the EXT2_*_FL values
  • February 1st, 2011
  • Updated sample disk layouts
  • Clarified location of the superblock
  • Updated i_blocks definition in section 3.5.10
  • October 3rd, 2010
  • Updated i_blocks definition
  • February 9th, 2009
  • Rewrote & updated most sections
  • Indexed directories still need updates
  • August 5th, 2002
  • Added a note to .i_blocks and .i_dtime
  • August 2nd, 2002
  • Updated the values of EXT2_S_IFLNK and EXT2_S_IFSOCK as noted by Jeremy Stanley of AccessData Inc
  • Added a note about the reserved inode entries
  • July 31st, 2002
  • Fixed the 0 and 1 definitions for the block and inode bitmaps.
  • June 16th, 2002
  • Cleared up the confusion about the location of the group descriptors in section 'Group Descriptor'
  • April 1st, 2002
  • Added the description of EXT2_INDEX_FL (Hash Indexed Directory)
  • Fixed many table layouts
  • March 31st, 2002
  • Added the Indexed Directory Format
  • Added .i_flags descriptions
  • Added a collaborator section and a credits appendix
  • Added some notes for compat/incompat features
  • Completed the inode chapter
  • March 25th, 2002
  • Added extended attributes

  • References:
  • Physical Layout
  • e2fsprogs (e2fsck)
  • Design & Implementation
  • Journaling (ext3)
  • Hashed Directories
  • Filesystem Resizing
  • Extended Attributes & Access Control Lists
  • Compression (*)

  • Implementations for:
  • Windows 95/98/NT/2000
  • Windows 95 (*)
  • DOS client (*)
  • OS/2 (*)
  • Unununium

  • (*) no longer actively developed/supported (as of March 2002)
    graciously hosted by Savannah