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三思而后行 ❤️