rk3328或树莓派开发板系统镜像备份制作剪裁

 

手上有多块firefly rk3328开发板,在一块开发板上面安装了ubuntu和ROS kinetic之后,想着直接把镜像备份出来,然后再将镜像刷入其他的内存卡,这样的话就无需一一去安装系统和ros了。

准备:

(1)firefly rk3328开发板一块。我的是2G内存的规格。

(2)16G内存卡一个。

(3)U盘一个(用于存储备份下来的镜像)。

我们这里不用win32diskImager制作,因为它会读取整个内存卡的空间,占用的空间很大,无法刷到容量更小的内存卡。我这里用了一张16G内存卡,实际上安装完系统和ROS还有qt等软件之后,一共才用了6.4G,所以这个是可以安装在8G内存卡上的。

开始吧!

1.查看当前系统所占容量:

sudo fdisk -l

如下图:

可以看到,这个内存卡上一共有5个分区,前三个分区我也不知道是什么,第四个分区是EFI引导分区,就是我们说的boot分区,第5个分区是linux的系统分区,我们只需要备份后面两个分区即可。

然后再通过df -h查看一下占用情况:

可以看到系统占用了6.4G。

我们也可以通过计算得知当前系统占用的大小:大概再6.6G左右,保险起见,我们就多分配一些。我这里就分配7.4G吧。

2.安装工具

dosfstools:fat32分区格式化工具

dump:dump & restore 备份工具

parted & kpartx:虚拟磁盘工具

安装:

sudo apt-get install dosfstools dump parted kpartx

如下图为安装成功:

3.创建镜像文件

创建一个空白的image文件,用于存储备份的系统文件。

sudo dd if=/dev/zero of=firefly_rk3328_ubuntu16.04_ros.img bs=1M count=$df

 这里的count=$df需要根据自己的实际系统大小调整,比如我分配了7.4G的大小:

sudo dd if=/dev/zero of=firefly_rk3328_ubuntu16.04_ros.img bs=1M count=7400

此处注意
dd命令中【1k=1024b;1KB=1000b;1M=1024kb;1MB=1000kb】

这一步需要在16G U盘里面做,因为我们生成的系统镜像是存储在U盘里方便拷贝的。如下图:

 4.分割虚拟磁盘

看一下mmcblk0上面的具体数据块分割情况:

sudo fdisk -l /dev/mmcblk0

 如下图所示:

 还可以通过命令:

df -T

 查看的到分区的文件系统。我这里boot分区是fat32格式的,root分区时ext4格式的。如下图:

 然后,我们开始分割虚拟磁盘:

sudo parted firefly_rk3328_ubuntu16.04_ros.img --script -- mklabel msdos
sudo parted firefly_rk3328_ubuntu16.04_ros.img --script -- mkpart primary fat32 2048s 497144s
sudo parted firefly_rk3328_ubuntu16.04_ros.img --script -- mkpart primary ext4 497145s -1

 5.挂载虚拟磁盘并格式化

首先我们通过以下命令查看所有回环设备:

losetup -a

然后通过losetup命令将我们创建的镜像文件的第一个分区即boot分区映射到loop设备:

sudo losetup -o 32768 --sizelimit 134183936 -f firefly_rk3328_ubuntu16.04_ros.img

再次查看所有回环设备,看多出了哪个设备下面我们需要用。

格式化设备:

sudo mkfs.vfat /dev/loop0  //这里的loop0为我们刚刚看到的那个多出来的回环设备。

 然后,我们挂载回环设备:

mount /dev/loop0 /media_p          //这里的media_p为我们创建的挂载映像分区的文件夹

 然后拷贝boot文件夹下所有数据到映像文件的第一个分区:

sudo cp -rfp /boot/* /media_p

 这样第一个boot分区就备份成功了。

卸载影响文件的第一个分区:

umount media_p

接下来我们备份另一个分区。

同样的,通过losetup命令将我们创建的镜像文件的第二个分区即boot分区映射到loop设备

sudo losetup -o 134217216 --sizelimit 7624245248 -f firefly_rk3328_ubuntu16.04_ros.img

格式化设备:

sudo mkfs.ext4 /dev/loop1

 然后,我们挂载回环设备:

mount /dev/loop1 /media_p          //这里的media_p为我们创建的挂载映像分区的文件夹

 复制数据:

sudo cp -rfp /* /media_p

 

rsync -av --exclude /media/root --exclude /media_p . /media_p

卸载分区:

sudo cp -rfp /boot/* /media_p

 备份完成!

卸载loop设备:

sudo losetup -d loop0
sudo losetup -d loop1

 

 

参考:

1.https://blog.csdn.net/talkxin/article/details/50456282

2.https://blog.csdn.net/liuwei000000/article/details/8575737

3.https://blog.csdn.net/zhongbeida_xue/article/details/109657867

4.https://my.oschina.net/surenpi/blog/605176

5.http://blog.sina.com.cn/s/blog_9ac48e3c0102ybep.html

6.https://blog.csdn.net/u010867294/article/details/78107315

7.https://blog.csdn.net/weixin_29668721/article/details/116813447

8.https://blog.csdn.net/liuwei000000/article/details/8575737

9.https://www.cnblogs.com/fsong/p/12036853.html?ivk_sa=1024320u

10.https://blog.csdn.net/u011391839/article/details/11771919/

11.https://blog.csdn.net/hejinjing_tom_com/article/details/45599049

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allen953

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值