E2fsprogs 软件包包含用于处理 ext2 文件系统的工具。它也支持 ext3 和 ext4 日志文件系统。

安装 E2fsprogs

首先进入到源码目录,解压软件包:

cd /sources
tar xf e2fsprogs-1.42.12.tar.gz
cd e2fsprogs-1.42.12

首先,修复上游找到的一个潜在安全问题:

sed -e '/int.*old_desc_blocks/s/int/blk64_t/' \
-e '/if (old_desc_blocks/s/super->s_first_meta_bg/desc_blocks/' \
-i lib/ext2fs/closefs.c

E2fsprogs 的文档建议在源目录树的一个子目录中编译软件包:

mkdir -v build
cd build

准备编译 E2fsprogs:

LIBS=-L/tools/lib                    \
CFLAGS=-I/tools/include \
PKG_CONFIG_PATH=/tools/lib/pkgconfig \
../configure --prefix=/usr \
--bindir=/bin \
--with-root-prefix="" \
--enable-elf-shlibs \
--disable-libblkid \
--disable-libuuid \
--disable-uuidd \
--disable-fsck

编译软件包:

make

要设置和运行测试套件,我们首先需要把 /tools/lib 中的一些库链接到测试程序查找的位置。

输入命令运行测试:

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

E2fsprogs 的其中一个测试程序会试图分配 256M 的内存。如果你没有比这更多的 RAM,确保为测试启用了足够的交换空间。

安装二进制文件、文档以及共享库:

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

安装完成后清理工作:

cd ../..
rm -rf e2fsprogs-1.42.12



本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️