打包开发板根文件系统,并制作成img镜像。
打包根文件系统,并制作成img镜像。
整体操作一共三步:
一、将开发板的整个根文件系统的文件,通过ssh拷贝到PC系统(Ubuntu);
二、将此拷贝的全部文件,加载到虚拟光盘中,制作成img文件;
三、将img文件,再烧回开发板,进行测试。
楼主就用自己的一块瑞芯微的PX30开发板做测试吧。
第一步
先创建2个目录。一个是挂载虚拟盘用的,一个是根文件系统的所有源目录。
rootfs为虚拟盘用,现在是空的,rootf-source就是我们的rootfs的根文件系统。
操作完这些,就已经完成四分之一的工作了,是不是很简单。
第二步
或许有人说我,我怎么知道你是不是自己定制的根文件系统?
我在自己的rootfs-source目录中创建一个文件夹,比较醒目的那种。
又创建了一个文件夹。名叫test-zc。
下面开始具体创建镜像文件的操作,打包生成img文件
用dd工具创建镜像文件
1 2 3 4 5 | dd if=/dev/zero of=linux-rootfs.img bs=1M count=1024 /dev/zero:为虚拟盘的名字。 linux-rootfs.img为你的穿建的镜像文件。 bs=1M count=1024为此镜像的大小。一般1G的根文件系统很大了,如果担心不够用,也可以直接2048. |
格式化镜像文件
1 | sudo mkfs.ext4 linux-rootfs.img |
挂载镜像并往里面拷入修改后的文件系统:
1 2 | sudo mount linux-rootfs.img rootfs sudo cp -rfp rootfs-source/* rootfs/ |
卸载镜像
1 | sudo umount rootfs |
这样linux-rootfs.img里就已经有刚才制作的根目录内容了,但linux-rootfs.img文件大小却是定义的分区大小,不是文件系统的实际大小,所以还要经过一些处理才能发布。
检查并修复linux-rootfs.img镜像的文件系统,不熟悉的朋友可以通过网络了解此工具:
1 | sudo e2fsck -p -f linux-rootfs.img |
1 | sudo resize2fs -M linux-rootfs.img |
可以看一下,我们的img镜像现在变成只有487MB了。这个也就是我们需要烧录的镜像的img完全包。
第三步
img烧录到设备froot分区
1、开发板链接Windows电脑,并打开AndroidTools烧录工具,让开发板进入Loading模式;
2、选择rootfs 分区,并选择前面制作的根文件系统linux-rootfs.img,进行烧录;
3、烧录进度100% 后,开发板会自动重启,进入新系统。