1,建立目录,名称为rootfs
内含目标linux系统可见的根目录,比如/mnt,/dev,/proc,/mnt等等,注意sbin和bin目录内容用busybox来填充
hemin@ubuntu1:~/work/mkrootfs/rootfs$ tree -L 1
.
├── bin
├── dev
├── etc
├── home
├── lib
├── linuxrc -> bin/busybox
├── mnt
├── pro
├── root
├── sbin
├── sys
├── tmp
├── usr
└── var
2,busybox瑞士军刀编译拷贝
busybox是一个集成了一百多个最常用linux命令和工具的软件,我的理解就是用来生成linux下的常用命令的小程序。把编译后的busybox程序放到我们的要做的系统中后,我们就能用一些linux下的常用命令了。
#make //编译busybox
#make install //安装busybox
编译好后在busybox目录下生成子目录_install,里面的内容:
bin
linuxrc -> bin/busybox
sbin
拷贝到rootfs目录中去
3,创建空白文件系统 rootfs.ext2 ,
文件系统格式化为ext2,文件大小为 8M。
dd if=/dev/zero of=rootfs.ext2 bs=512 count=4096
mke2fs -F rootfs.ext2 -L "ramdisk" -b 512 -m 0
chmod 777 rootfs.ext2
4,通过挂载对镜像进行内容拷贝
mkdir ramdisk
mount -o loop -t ext2 rootfs.ext2 ramdisk/
cp -R rootfs/* ramdisk
这样镜像的内容就是rootfs的内容了,将其卸载就可以生成完整的镜像文件
umount ramdisk/
5,最终得到的rootfs.ext2就是我们所需要的根文件系统镜像