The E2fsprogs package contains the utilities for handling the ext2 file system. It also supports the ext3 journaling file system.
Approximate build time: 0.6 SBU Required disk space: 48.4 MB
E2fsprogs installation depends on: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Sed, Texinfo.
It is recommended to build E2fsprogs outside of the source tree:
mkdir ../e2fsprogs-build cd ../e2fsprogs-build
Prepare E2fsprogs for compilation:
../e2fsprogs-1.35/configure --prefix=/usr --with-root-prefix="" \ --enable-elf-shlibs
The meaning of the configure options:
--with-root-prefix="": Certain programs (such as the e2fsck program) are considered essential programs. When, for example, /usr isn't mounted, these essential programs have to be available. They belong in directories like /lib and /sbin. If this option isn't passed to E2fsprogs's configure, the programs are placed in the /usr directory, which is not what we want.
--enable-elf-shlibs: This creates the shared libraries which some programs in this package use.
Compile the package:
make
If you to test the results, first make sure an mtab file exists with touch /etc/mtab to prevent some sixty tests from failing, and (if it doesn't already exist) fake the presence of an old pager with ln -s /tools/bin/cat /bin/more to prevent one test from failing, then issue: make check.
Install most of the package:
make install
Also install also the shared libraries:
make install-libs
Installed programs: badblocks, blkid, chattr, compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, findfs, fsck, fsck.ext2, fsck.ext3, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, mklost+found, resize2fs, tune2fs and uuidgen.
Installed libraries: libblkid.[a,so], libcom_err.[a,so], libe2p.[a,so], libext2fs.[a,so], libss.[a,so] and libuuid.[a,so]
badblocks searches a device (usually a disk partition) for bad blocks.
blkid is a command line utility to locate and print block device attributes.
chattr changes the attributes of files on a second extended (ext2) file system, and also ext3 file systems, the journaling version of ext2 file systems.
compile_et is an error table compiler. It converts a table of error-code names and messages into a C source file suitable for use with the com_err library.
debugfs is a file system debugger. It can be used to examine and change the state of an ext2 file system.
dumpe2fs prints the super block and blocks group information for the file system present on a given device.
e2fsck is used to check, and optionally repair, second extended (ext2) file systems, and also ext3 file systems.
e2image is used to save critical ext2 file system data to a file.
e2label will display or change the file system label on the ext2 file system present on a given device.
findfs finds a file system by label or UUID (Universally Unique Identifier).
fsck is used to check, and optionally repair, file systems. By default it checks the file systems listed in /etc/fstab
logsave saves the output of a command in a log file.
lsattr lists the attributes of files on a second extended file system.
mk_cmds converts a table of command names and help messages into a C source file suitable for use with the libss subsystem library.
mke2fs is used to create a second extended file system on the given device.
mklost+found is used to create a lost+found directory on a second extended file system. It pre-allocates disk blocks to this directory to lighten the task of e2fsck.
resize2fs can be used to enlarge or shrink an ext2 file system.
tune2fs is used adjust tunable file system parameters on a second extended file system.
uuidgen creates new UUID. Each new UUID can reasonably be considered unique among all UUIDs created, on the local system and on other systems, in the past and in the future.
libblkid contains routines for device identification and token extraction.
libcom_err is the common error display routine.
libe2p is used by dumpe2fs, chattr, and lsattr.
libext2fs contains routines to enable user-level programs to manipulate an ext2 file system.
libuuid contains routines for generating unique identifiers for objects that may be accessible beyond the local system.