三、使用buildroot制作mke2fs (mkfs.ext2、mkfs.ext3、mkfs.ext4)

最近维护公司的一款产品,在开机脚本中需要将emmc格式化为ext4的文件系统,发现在方案厂商提供的根文件系统中不存在mkfs.ext4工具。这里想到一种快速的临时解决办法,使用buildroot将mke2fs编译出来,然后移植到产品的根文件系统镜像中。

1、编译buildroot

进入buildroot的根目录,执行:

make menuconfig

其他菜单的配置可以参考我的博客 二、buildroot菜单配置,这里只关注 Target package 选项。

进入 Target package 菜单:
在这里插入图片描述

再进入Filesystem and flash utilities 菜单:
在这里插入图片描述

选择配置如下:
在这里插入图片描述

保存菜单配置并退出。执行

sudo make

等待编译完成。

2、移植mke2fs

进入output/target/sbin目录,将mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4复制到目标文件系统的 /sbin 或者 /bin目录下,根据个人习惯或者公司习惯来决定。我将其放在 /bin 目录下。
在这里插入图片描述
查看 mke2fs 所依赖的动态库有哪些:

objdump -p mke2fs | grep NEEDED

在这里插入图片描述
这些依赖的动态库也一并复制到目标 根文件系统 的 /lib 或者 /usr/lib 中去。

3、mke2fs的使用方法

mke2fs -t <文件系统格式> <块设备>
实例:
mke2fs -t ext4 /dev/mmcblck1

mkfs.ext2、mkfs.ext3、mkfs.ext4都是mke2fs的软连接,使用它们可以省略文件系统格式的参数。
在这里插入图片描述

mke2fs -t ext4 /dev/mmcblck1
可以简写为:
mkfs.ext4 /dev/mmcblck1

猜你喜欢

转载自blog.csdn.net/weixin_44698673/article/details/127688231
今日推荐