145 lines
5.6 KiB
Plaintext
145 lines
5.6 KiB
Plaintext
README file for the second extended file system
|
|
|
|
Release 0.4a
|
|
93/11/29
|
|
|
|
Remy Card
|
|
(card@masi.ibp.fr)
|
|
|
|
This file documents the latest release (0.4a) of the second extended
|
|
file system.
|
|
|
|
The second ext file system
|
|
==========================
|
|
|
|
The 2nd ext file system is an extension of the ext file system to get
|
|
more functionalities and better performances.
|
|
|
|
The functionalities of this file system are :
|
|
- file names from 1 to 255 characters (as in the ext fs but the
|
|
directory structure has changed and the routines have been rewritten)
|
|
- the maximum size of a file system is 4 TB (but the implementation
|
|
currently restricts it to 2 GB - still enough I hope)
|
|
- the maximum size of a file is 16 GB
|
|
- separate atime/ctime/mtime are supported
|
|
- dtime (deletion time) is supported to allow an undelete program (not
|
|
written yet) to work
|
|
- inode version is supported (may be used one day by a NFS server)
|
|
- Access Control List for files (not supported yet)
|
|
- blocks bigger than 1KB and fragments (not supported yet)
|
|
- st_blocks/st_blksize support
|
|
- blocks reserved for the super user (5% by default)
|
|
- a directory cache used to speed up directory lookups
|
|
- new free blocks/inodes management (the bitmaps are back)
|
|
- 12 direct data blocks in the inode allowing more files to be coded
|
|
without indirection
|
|
- a valid flag avoiding checks when the fs is clean
|
|
- super block and groups descriptors duplication in each group allowing
|
|
a recovery even if critical data is damaged
|
|
- fast symbolic links whose content is stored in the inode itself
|
|
|
|
How to integrate the second ext file system
|
|
============================================
|
|
|
|
As of linux 0.99 pl7, the second extended file system has been included
|
|
in the standard kernel distribution. Thus, there is no need to patch the
|
|
kernel source to use it. Simply answer yes to the question "Second extended fs
|
|
support" at the "make config" step when compiling the kernel.
|
|
|
|
Using the second ext fs
|
|
=======================
|
|
|
|
The second ext fs programs are :
|
|
- mke2fs : creation of a second extended file system
|
|
- e2fsck : check of a second extended fs
|
|
- dirdump : dump of directories in a second extended file system
|
|
- mklost+found : creates a lost+found directory if it has been removed
|
|
- tune2fs : changes the parameters of the file system
|
|
- chattr : changes files attributes
|
|
- lsattr : lists files attributes
|
|
|
|
Man pages are included with the programs.
|
|
|
|
A second ext fs can be mounted by :
|
|
mount -t ext2 /dev/hdXX /dir
|
|
|
|
Second ext fs internals
|
|
=======================
|
|
|
|
The second extended file system now uses bitmaps for free blocks/inodes
|
|
management. A file system is divided in groups. Each group currently
|
|
contains 8192 blocks (in the future, I will add an option to mke2fs allowing
|
|
a different group size). Each group contains a bitmap block for blocks, a
|
|
bitmap block for inodes, some blocks for a part of the inode table and some
|
|
data blocks.
|
|
|
|
The file system has the following structure :
|
|
|
|
-------------------------------------------
|
|
|Boot | Group 0 | Group 1 | ... | Group N |
|
|
|block| | | | |
|
|
-------------------------------------------
|
|
|
|
Each group has the following structure :
|
|
|
|
----------------------------------------------------------
|
|
| Super | Groups | Blocks | Inodes | Inode | Data |
|
|
| block | descriptors | bitmap | bitmap | table | blocks |
|
|
----------------------------------------------------------
|
|
|
|
Status of the second ext fs and its limitations
|
|
===============================================
|
|
|
|
|
|
The known bugs or limitations of the second ext fs are :
|
|
- there is no conversion program from the ext fs to the 2nd ext fs yet.
|
|
I also have an old version of it (written by Wayne Davison) which
|
|
has to be adapted (BTW, even if this conversion program worked, I
|
|
would not release it until the 2nd ext fs is stable).
|
|
|
|
Future plans for the 2nd ext fs
|
|
===============================
|
|
|
|
I am still working on the 2nd ext fs to improve it :
|
|
- implement Access Control List (other people have shown interest in
|
|
that),
|
|
- implement bigger blocks and fragments management,
|
|
- write an undelete program (other people have shown interest in that),
|
|
- fix bugs,
|
|
- ...
|
|
|
|
In case of bugs
|
|
===============
|
|
|
|
If you find a bug in the 2nd ext fs, please send a mail to me to report
|
|
it.
|
|
|
|
Credits
|
|
=======
|
|
|
|
Lots of people have helped me during my work on this file system.
|
|
|
|
The 2nd ext fs is based on the ext fs which is itself based on the
|
|
minix file system routines written by Linus Torvalds. Linus also gave me some
|
|
very good advices and suggestions during the design and the implementation of
|
|
this file system (and he also corrected bugs in some of my patches ...).
|
|
|
|
Other people have influenced the design of this file system :
|
|
- Roger Binns suggested the valid flag,
|
|
- Werner Almesberger and Theodore Ts'o suggested ACL,
|
|
- Werner Almesberger wanted an undelete feature,
|
|
- William Davidsen and Theodore Ts'o made me understand that bitmaps
|
|
are better than free lists to obtain good performances,
|
|
- Adam Richter has enhanced mkefs (the changes have been adapted in
|
|
mke2fs) to figure out the size of a file system,
|
|
- Arnt Gulbrandsen suggested the dtime to be used in an undelete
|
|
programs.
|
|
|
|
I'd also like to thank the testers of the (old) ext fs. Their reports
|
|
have helped me to improve it and to implement the second ext fs.
|
|
|
|
And finally, all my thanks go to the co-developpers of the second
|
|
extended file system : Wayne Davison has helped me so much during the design
|
|
and the implementation of the 2nd ext fs and Stephen Tweedie has rewritten
|
|
some important parts to make it much faster.
|