本文参考了 [loop设备及losetup命令介绍] (http://blog.csdn.net/ustc_dylan/article/details/6878252) 以及[制作ext2根文件系统(http://blog.csdn.net/zhengmeifu/article/details/24174513)
TIP:在制作EXT2之前首先**检验该根文件系统是否可用.
制作步骤:
1:在根文件系统所在的文件夹目录(同级水平下)新建目录: sunyi@mint /exports $ sudo mkdir ext2_rfs
(后面文件系统就挂载在这里).
2: 创建空的磁盘镜像文件,这里创建一个10**M的软盘(注意查看根文件系统的大小,如果新建的空间太小容易导致出现 **No space left on device ,并且根文件系统所在的文件夹名称则为:rfs
dd if=/dev/zero of=rfs.ext2 bs=1024 count=10240
3:使用 losetup将磁盘镜像文件虚拟成快设备
losetup /dev/loop1 rfs.ext2
4:建立ext2文件系统
mke2fs -m 0 /dev/loop1 10240
5:挂载块设备
mount -t ext2 /dev/loop1 ./ext2_rfs/
6:将根文件夹(rfs)下所有内容拷贝到ext2_rfs下:
sudo cp ../rfs/* ./ -rf
若出现No space left on device,则两种可能,1:(http://www.linuxidc.com/Linux/2016-06/132330.htm)
2:可能在dd if=/dev/zero of=rfs.ext2 bs=1024 count=10240时分配的10M内存过小,需要加大数据,如count=10240*/
7:解除映射关系
umount /dev/loop1
losetup -d /dev/loop1
8:完成后得到的rootfs.ext2就是我们做好的rootfs镜像。拿去烧录即可,在烧录时需要针对不同的开发板使用不同的bootargs,示例:
set bootargs console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext2