制作ext4文件系统

2019-07-13 09:10发布

本文适配fs4412开发板,使用的内核为linux4.9.9。
1.源码下载
从以下地址可以下载到最新的格式化工具:
http://down1.chinaunix.net/distfiles/e2fsprogs-1.42.5.tar.gz
2.解压 tar xvf e2fsprogs-1.42.5.tar.xz 3.配置
gun的开源软件的配置方式都类似下面的配置方式:
形如:./configure –host=xxx –prefix=xxx
**–host 指明所使用的交叉编译工具链
–prefix 指明执行make install的安装目录**
执行完后会在当前目录下生成Makefile
执行: ./configure --enable-elf-shlibs --host=arm-none-linux-gnueabi --prefix=/home/linux/install/tool 4.编译 make 在编译到最后可能会有个错误如下:
make[1]: [libext2fs.dvi] Error 1 (ignored)
这个不用理会,其实我们需要的文件都编译好了
5.安装 make install 6.脚本编写
当然以上的3,4,5步可以编写成一个脚本,来方便我们:
创建build.sh文件写入如下内容: #! /bin/sh ./configure --enable-elf-shlibs --host=arm-none-linux-gnueabi --prefix=/home/linux/install/tool make make install 然后赋予可执行权限: chmod +x build.sh 执行: ./build.sh 7.拷贝可执行文件和路文件到我们的根文件目录中: cp /home/linux/install/tool/sbin/mkfs.ext4 /source/rootfs/sbin/ p /home/linux/install/tool/lib/* /source/rootfs/lib/ 8.修改u-boot的启动参数 setenv bootargs root=/dev/nfs nfsroot=172.16.21.104:/source/rootfs rw ip=172.16.21.160 init=/linuxrc console=ttySAC2,115200 setenv bootcmd tftp 41000000 uImage;tftp 42000000 exynos4412-liebao.dtb;bootm 41000000 - 42000000 saveenv 9.分区
重启开发板,在倒计时按任意键进入uboot的命令行:
执行: fdisk -c 0 结果如下: FS4412 # fdisk -c 0 .fdisk is completed partion # size(MB) block start # block count partition_Id 1 13256 3366912 27148288 0x0C 2 300 40960 614400 0x83 3 1024 655360 2097152 0x83 4 300 2752512 614400 0x83 10.重启开发板
进入系统后执行: mkfs.ext4 -F /dev/mmcblk1p2 重新格式化/dev/mmcblk1p2为ext4(mmc的分区根据自己的板子决定,注意不要与SD卡冲突)
11.修改开发板的/etc/fstab文件
最后面添加:
/dev/mmcblk1p2 /mnt defaults 0 0
12.重启开发板观察现象 执行mount命令查看: [root@liebao:/]#mount | grep mmcblk1p2 /dev/mmcblk1p2 on /mnt type ext4 (rw,relatime,data=ordered) 可以看到挂载了/dev/mmcblk1p2作为用户的文件系统,且文件系统为ext4。 查看/dev/mmcblk1p2有多少空间可以供我们使用: [root@liebao:/mnt]#df -mh /mnt/ Filesystem Size Used Available Use% Mounted on /dev/mmcblk1p2 282.5M 2.0M 265.5M 1% /mnt 注:有关linux4.9.9内核的移植见《移植最新的linux4.9.9内核(适配fs4412平台)》:
http://blog.csdn.net/liebao_han/article/details/79436819
文章内容持续更新。