6.55. E2fsprogs-1.44.3

E2fsprogs 软件包包含处理 ext2 文件系统的工具。 此外它也支持 ext3ext4 日志文件系统。

估计编译时间: 1.6 SBU
需要硬盘空间: 96 MB

6.55.1. 安装 E2fsprogs

E2fsprogs 文档推荐在源代码目录树中的一个子目录中构建该软件包:

mkdir -v build
cd build

准备安装 E2fsprogs:

../configure --prefix=/usr           \
             --bindir=/bin           \
             --with-root-prefix=""   \
             --enable-elf-shlibs     \
             --disable-libblkid      \
             --disable-libuuid       \
             --disable-uuidd         \
             --disable-fsck

环境变量和配置选项的含义:

--with-root-prefix=""--bindir=/bin

某些程序(例如 e2fsck 程序)被认为是关键的。在 /usr 尚未挂载等情况下, 这些程序仍然必须可用。它们应该放置在 /lib/sbin 等目录中。如果没有向 e2fsprogs 配置脚本传递该参数,这些程序会被安装到 /usr 目录。

--enable-elf-shlibs

该选项表示创建该软件包中一些程序使用的共享库。

--disable-*

该选项防止 e2fsprogs 构建和安装 libuuidlibblkid 库, uuidd 守护程序,以及 fsck 包装器, 因为 Util-linux 会安装更新的版本。

编译该软件包:

make

为了设定和运行测试套件,我们首先要从 /tools/lib 链接一些库到测试程序的搜索位置。执行以下命令运行测试:

ln -sfv /tools/lib/lib{blk,uu}id.so.1 lib
make LD_LIBRARY_PATH=/tools/lib check

某个 e2fsprogs 测试会试图分配 256MB 内存。 如果您的内存刚刚超过或者甚至不足这个大小, 一定要为测试启用足够的交换空间。 阅读 第 2.5 节 “在分区上建立文件系统”第 2.7 节 “挂载新的分区” 了解创建和启用交换空间的详细过程。已知名为 f_bigalloc_badinode 和 f_bigalloc_orphan_list 的两个测试可能失败。

安装二进制程序、文档和共享库:

make install

安装静态库和头文件:

make install-libs

将安装好的静态库变为可写的,以便之后移除调试符号:

chmod -v u+w /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a

该软件包安装了一个 gzip 压缩的 .info 文件,却没有更新系统的 dir 文件。执行以下命令解压该文件,并更新系统 dir 文件:

gunzip -v /usr/share/info/libext2fs.info.gz
install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info

如果需要,执行以下命令创建并安装一些额外的文档:

makeinfo -o      doc/com_err.info ../lib/et/com_err.texinfo
install -v -m644 doc/com_err.info /usr/share/info
install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info

6.55.2. E2fsprogs 的内容

安装的程序: badblocks, chattr, compile_et, debugfs, dumpe2fs,e2freefrag, e2fsck, e2image, e2label, e2undo, e4defrag, filefrag, fsck.ext2, fsck.ext3, fsck.ext4, fsck.ext4dev, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.ext4dev, mklost+found, resize2fs, 以及 tune2fs
安装的库: libcom_err.so, libe2p.so, libext2fs.so, 以及 libss.so
安装的目录: /usr/include/e2p, /usr/include/et, /usr/include/ext2fs, /usr/include/ss, /usr/share/et, 以及 /usr/share/ss

简要描述

badblocks

在一个设备(一般是磁盘分区)上搜索坏块

chattr

ext2 文件系统上修改文件属性,也适用于 ext3 文件系统, 即ext2 文件系统的日志版本

compile_et

一个错误表编译器; 它将包含错误编号名称和消息的表转化成 C 源代码,以和 com_err 库一起使用

debugfs

一个文件系统调试器;可以检验并修改 ext2 文件系统的状态

dumpe2fs

打印给定设备上文件系统的超级块和块组信息

e2freefrag

报告可用空间碎片信息

e2fsck

用于检查或修复 ext2 文件系统和 ext3 文件系统

e2image

用于将 ext2 文件系统关键数据保存到文件

e2label

显示或修改给定设备上的 ext2 文件系统标签

e2undo

重放设备上找到的 ext2/ext3/ext4 文件系统撤销日志 undo_log [可以用于撤销 e2fsprogs 程序的失败操作。]

e4defrag

ext4 文件系统在线碎片整理器

filefrag

报告特定文件碎片化程度

fsck.ext2

默认情况下检查 ext2 文件系统, 是 e2fsck 的硬链接

fsck.ext3

默认情况下检查 ext3 文件系统, 是 e2fsck 的硬链接

fsck.ext4

默认情况下检查 ext4 文件系统, 是 e2fsck 的硬链接

fsck.ext4dev

默认情况下检查 ext4 开发版文件系统,是 e2fsck 的硬链接

logsave

将命令输出保存到日志文件

lsattr

列出 ext2 文件系统上的文件属性

mk_cmds

将包含命令名称和帮助信息的表格转换成 C 源代码文件,以便和 libss 子系统库一起使用

mke2fs

在给定设备上创建 ext2ext3 文件系统

mkfs.ext2

默认情况下创建 ext2 文件系统, 是 mke2fs 的硬链接

mkfs.ext3

默认情况下创建 ext3 文件系统, 是 mke2fs 的硬链接

mkfs.ext4

默认情况下创建 ext4 文件系统, 是 mke2fs 的硬链接

mkfs.ext4dev

默认情况下创建 ext4 开发版文件系统,是 mke2fs 的硬链接

mklost+found

用于在 ext2 文件系统上创建 lost+found 目录; 它为该目录预先分配磁盘块,以减轻 e2fsck 的负担

resize2fs

可以用于扩大或压缩 ext2 文件系统

tune2fs

调整 ext2 文件系统的可调参数

libcom_err

公用错误显示子程序

libe2p

dumpe2fschattr, 和 lsattr 使用

libext2fs

包含允许用户级程序操纵 ext2 文件系统的子程序

libss

debugfs 使用