ext3 和 ext4 支持哪些类似 Busybox 的二进制文件?

ext3 和 ext4 支持哪些类似 Busybox 的二进制文件?

我们正在构建一个工具,其中包括通过 PXE 启动一个小型 Linux 环境,并让它执行许多系统配置操作而无需加载更大的系统。(格式化磁盘、创建文件系统等)我们一直计划在这个系统中使用 BusyBox,因为在这种情况下,将大多数系统工具放在一个小型静态二进制文件中显然很棒。

但问题是:我们的需求发生了变化,需要支持创建 ext3(也许还有 ext4)文件系统,而 BusyBox 不支持。有人知道有类似的独立二进制工具可用于创建这些文件系统吗?它不需要也是 BusyBox(我可以包含一些额外的工具),但它不能需要一堆动态库。

答案1

使用静态链接编译 e2fsprogs,并从中选择所需的二进制文件。您可能只需要 mke2fs(它可以生成所有类型的 EXT 系列文件系统 - mkfs.ext4 只是它的符号链接)。

如果您无法使静态编译工作,“ldd mke2fs”至少会显示您需要安装哪些库。

答案2

我执行了以下命令来编译e2fsprogspkg静态地针对 ARM:

apt-get install gcc-arm-linux-gnueabi

wget http://kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.6/e2fsprogs-1.42.6.tar.bz2

tar -jxvvf e2fsprogs-1.42.6.tar.bz2

cd e2fsprogs-1.42.6

./configure CFLAGS='-g -O2 -static' CC=arm-linux-gnueabi-gcc  --host=arm-linux-gnueabi

make

编译成功后,您将在目录mke2fs下找到二进制文件misc/。为确保生成了正确的二进制文件,请检查二进制格式:

$ file ./mke2fs*
./mke2fs: **ELF 32-bit LSB  executable**, **ARM,** EABI5 version 1 ...

现在,我将这个二进制文件原样复制到我的目标平台。

要使用 ext4 格式化分区:

mke2fs -t ext4  /dev/xxx

相关内容