热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《LinuxFromScratch》第三部分:构建LFS系统第六章:安装基本的系统软件6.28.E2fsprogs1.42.12...

E2fsprogs软件包包含用于处理ext2文件系统的工具。它也支持ext3和ext4日志文件系统。大概编译时间:2.7SBU需要磁盘空间:52MB6.

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

大概编译时间: 2.7 SBU
需要磁盘空间: 52 MB

6.28.1. 安装 E2fsprogs

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

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

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

PKG_CONFIG_PATH, LIBS, CFLAGS

这些变量启用之前在  5.33, “Util-linux-2.26” 构建的软件包编译 e2fsprogs。

--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 的其中一个测试程序会试图分配 256M 的内存。如果你没有比这更多的 RAM,确保为测试启用了足够的交换空间。阅读 2.3, “在分区上创建文件系统” 以及 2.4, “挂载新分区” 查看创建和启用交换空间的详细信息。

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

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.28.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, resize2fs, 以及 tune2fs
安装的库: libcom_err.{a,so}, libe2p.{a,so}, libext2fs.{a,so}, libquota.a, 和 libss.{a,so}
安装目录: /usr/include/e2p, /usr/include/et, /usr/include/ext2fs, /usr/include/quota, /usr/include/ss, /usr/share/et, 和 /usr/share/ss

简要介绍

badblocks

搜索设备(通常是一个磁盘分区)的坏块

chattr

更改 ext2 文件系统中文件的属性;它也可以更改 ext3 文件系统,这是ext2 文件系统的日志版本

compile_et

错误表编译器;它将错误代码名称和信息对照表转换为适用于 com_err 库的 C 源文件。

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

列出二级扩展文件系统中一个文件的属性

mk_cmds

将命令名称和帮助信息的映射表转换为适用于 libss 子系统库的 C 源文件

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

用于 dumpe2fs, chattr, 以及 lsattr

libext2fs

包含使用户层程序可以操作 ext2 文件系统的例程

libquota

提供一个创建和更新限额文件和 ext4 超级块字段的接口

libss

用于 debugfs




推荐阅读
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 本文介绍了在Linux系统下进行文件压缩与解压的常用命令,包括tar命令的基本使用和参数,以及gzip、bz2、compress、rar和zip等不同格式的压缩与解压方法。同时还提供了常见的压缩文件后缀名及对应的解压命令,方便用户进行文件的压缩和解压操作。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • OpenCV4.5.0+contrib编译流程及解决错误方法
    本文介绍了OpenCV4.5.0+contrib的编译流程,并提供了解决常见错误的方法,包括下载失败和路径修改等。同时提供了相关参考链接。 ... [详细]
author-avatar
用户r8l5835vd6
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有