Second Extended File System
by Dave Poirier (
Project Page

View the information in:
dvi - html - pdf - ps - rtf

Last update: August 5th, 2002

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

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