1.使用镜像文件挂载的方式
这种方式系统重启之后只需要再mount一下就可以,存在文件夹的文件都还在。因为挂载在本地磁盘上,可限制的文件夹大小不受内存大小限制,可以更大些。
1.1移植ext4格式化工具
1)下载源码
从http://sourceforge.net/projects/e2fsprogs/ 下载e2fsprogs源码包
2)配置
./configure CC=arm-linux-gnueabihf-gcc --enable-elf-shlibs --host=arm --prefix=release/
release为安装目录,需自定义
3)make & make install
4)编译安装后会在release目录下产生lib,sbin等目录,mkfs.ext4等格式化工具和库就在该目录下
5)由于当前系统上已有部分工具,所以不需要全部移植到开发板上,经测试需移植的有如下内容:
1.复制/sbin目录下的mkfs.etx2,mkfs.etx3,mkfs.etx4到开发板上的/usr/sbin;
2.复制/lib目录下的libext2fs.so.2.4到开发板上的/lib;
1.2板上分配镜像文件的脚本mount_img.sh
#!/bin/bash
DISK_PATH=/var/core/
DISK_NAME=core_disk.img
LOOP_PATH=/dev/loop0
MOUNT_PATH=/mnt/core
mkdir -p $MOUNT_PATH
if [ -s $DISK_PATH$DISK_NAME ];then
dd if=/dev/zero of=/var/core/core_disk.img bs=1M count=10
else
mkdir -p $DISK_PATH
touch $DISK_PATH$DIAK_NAME
dd if=/dev/zero of=/var/core/core_disk.img bs=1M count=10
fi
losetup /dev/loop0 $DISK_PATH$DISK_NAME
mkfs.ext3 $LOOP_PATH
ps:以上脚本功能为:限制镜像文件/var/core/core_disk.img的大小为10M
1.3开机挂载镜像文件
mount /dev/loop0 /mnt/core