导出RK3288开发板上的根文件系统,并打包img

背景:开发板RK3288上跑的是LUbuntu系统,现在需要将此系统的根文件系统打包成img。
整体操作一共三步:
1、将Rk3288的整个根文件系统的文件,通过ssh拷贝到PC系统(Ubuntu);
2、将此拷贝的全部文件,加载到虚拟光盘中,制作成img文件;
3、将img文件,再烧回RK3288开发板,进行测试。
工具:
1、RK3288上的LUbuntu系统需要安装:ssh、rsync;
2、PC电脑上安装:ssh、rsync;

下面是详细的操作步骤:

一、从设备导出根文件系统

1、给开发板接好显示器、鼠标键盘,启动开发板。先用键盘登陆ubuntu用户,如果连sudo工具都没有,就直接切换到root用户来操作,如下:

su root
按提示输入密码,密码是做镜像时的设置的。

Firefly默认密码为: firefly
2、配置网络,为了网络稳定和节省时间,我插得网线。
3、更新软件列表

sudo apt-get update

4、vim /etc/ssh/sshd_config 修改ssh配置文件,便于外界访问。(导出本地所有文件)
Ubuntu环境下SSH服务安装、SSH远程登录以及SSH数据传输(如该没有安装ssh)
如该root账户没有设置密码,Ubuntu设置root密码:

sudo passwd root
sudo vim /etc/ssh/sshd_config

导出RK3288开发板上的根文件系统,并打包img_第1张图片
找到PermitRootLogin这项,设置为yes,如图:
导出RK3288开发板上的根文件系统,并打包img_第2张图片
保存退出后,重启sshd:

/etc/init.d/ssh restart
经过这此修改后就可以远程登陆root帐户了,可以通过ssh工具验证。

要确保,外界可以通过ssh 登录root账户,只有这样才能将本地所有文件导出。(无法ssh登录,需进行ssh的安装和启动)
5、 先在PC主机(自己电脑为Ubuntu)上创建一个目录,用来同步保存开发板上的文件系统:

cd ~/Ubuntu/rootfs

mkdir ubuntuBoard
rsync -avx [email protected]:/ ubuntuBoard
**执行上面代码前确保开发板上安装了rsync,开发板执行以下命令可安装rsync

sudo apt-get install rsync

上一句命令中的 root表示开发板的管理员账户名称,若开发板管理员账户名称为别的,这里需要进行修改。

上边的IP要根据开发板实际情况修改,信息由ifconfig得到。
命令执行完后,ubuntuBoard里就保存着和开发板系统上一样的文件系统内容了。

二、打包生成img文件

1、制作镜像了,用dd工具创建镜像文件:
dd if=/dev/zero of=ubuntu.img bs=1M count=3000

格式化镜像文件,并加入linuxroot卷标:
sudo mkfs.ext4 -F -L linuxroot ubuntu.img
导出RK3288开发板上的根文件系统,并打包img_第3张图片
挂载镜像并往里面拷入修改后的文件系统:
mkdir ubuntu-mount
sudo mount ubuntu.img ubuntu-mount
sudo cp -rfp ubuntuBoard/ ubuntu-mount*
缷载镜像:
sudo umount ubuntu-mount
**
这样ubuntu.img里就已经有刚才制作的根目录内容了,但ubuntu.img文件大小却是定义的分区大小,不是文件系统的实际大小,所以还要经过一些处理才能发布。
检查并修复ubuntu.img镜像的文件系统,不熟悉的朋友可以通过网络了解此工具:
e2fsck -p -f ubuntu.img

减小ubuntu.img镜像文件的大小:
resize2fs -M ubuntu.img
导出RK3288开发板上的根文件系统,并打包img_第4张图片
执行上面两命令后,ubuntu.img瘦身不少,可以用来烧录了。

三、img烧录到设备froot分区

1、开发板链接Windows电脑,并打开AndroidTools烧录工具,让开发板进入Loading模式;
2、选择rootfs 分区,并选择前面制作的根文件系统ubuntu.img,进行烧录;
3、烧录进度100% 后,开发板会自动重启,进入新系统。

你可能感兴趣的:(导出RK3288开发板上的根文件系统,并打包img)