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

整体操作一共三步:
一、将Rk3288的整个根文件系统的文件,通过ssh拷贝到PC系统(Ubuntu);
二、将此拷贝的全部文件,加载到虚拟光盘中,制作成img文件;
三、将img文件,再烧回RK3288开发板,进行测试。

工具:
1、RK3288上的Ubuntu系统需要安装:ssh、rsync;
2、PC电脑(虚拟机)上安装:ssh、rsync;

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

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

如该root账户没有设置密码,Ubuntu设置root密码,后面导出文件时需要超管密码:

su root

2、配置网络,为了网络稳定和节省时间,我插得网线(保证虚拟机中能ping通开发板即可)。

3、更新软件列表

sudo apt-get update

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

sudo vim /etc/ssh/sshd_config

找到PermitRootLogin这项,设置为yes,如图:


保存退出后,重启sshd:

/etc/init.d/ssh restart

经过这此修改后就可以远程登陆root帐户了,可以通过ssh工具验证

要确保,外界可以通过ssh 登录root账户,只有这样才能将本地所有文件导出。(无法ssh登录,需进行ssh的安装和启动)

5、 先在PC主机(自己电脑为Ubuntu)上创建一个目录,用来同步保存开发板上的文件系统:

mkdir UbuntuSystem

rsync -avx [email protected]:/ UbuntuSystem

**执行上面代码前确保开发板上安装了rsync,开发板执行以下命令可安装rsync

sudo apt-get install rsync

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

二、打包生成img文件

1、制作镜像了,用dd工具创建镜像文件:

dd if=/dev/zero of=linuxroot.img bs=1M count=2048

格式化镜像文件

sudo mkfs.ext4 linuxroot.img
//sudo mkfs.ext4 -F -L linuxroot linuxroot.img

挂载镜像并往里面拷入修改后的文件系统:

mkdir rootfs
sudo mount linux-rootfs.img rootfs/
sudo cp -rfp UbuntuSystem/*  rootfs/

/**
 * sudo mount -o loop linux-rootfs/jdk8/linux-rootfs.img rootfs/      // 挂载已有镜像
 *
 *e2fsck -f linux-rootfs.img       // 检查镜像
 *
 * resize2fs linux-rootfs.img 4096M       // 增大img镜像至4G
 *
 * resize2fs -M linux-rootfs.img         // 把镜像缩到最小
 *
 * resize2fs -PM linux-rootfs.img       // 在修改的过程显示进度(大写的,P)
 *
 * resize -p linux-rootfs.img           // 显示镜像里真正的文件大小(小写的,p)
 *
 *
 */

缷载镜像:

sudo umount rootfs

此时发现根目录已经有linuxroot.img镜像文件

**
这样linuxroot.img里就已经有刚才制作的根目录内容了,但linuxroot.img文件大小却是定义的分区大小,不是文件系统的实际大小,所以还要经过一些处理才能发布。
检查并修复linuxroot.img镜像的文件系统,不熟悉的朋友可以通过网络了解此工具:

e2fsck -p -f linux-rootfs.img

减小linuxroot.img镜像文件的大小:

resize2fs  -M linux-rootfs.img

执行上面两命令后,linuxroot.img瘦身不少

下来就可以用来烧录了。

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

猜你喜欢

转载自blog.csdn.net/zhangwen_x/article/details/101346248