手上有多块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

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

  1. 【TX2】TX2开发板系统默认串口有ttyS0(调试口)、ttyTHS1、ttyTHS2、ttyTHS3,通过修改设备树文件,可以新增三个串口

    1.简述 TX2开发板系统默认串口有ttyS0(调试口).ttyTHS1.ttyTHS2.ttyTHS3,通过修改设备树文件,可以新增三个串口. 2.设备树 设备树中关于串口部分的描述 2.1 基础配 ...

  2. ARM开发板系统移植-----rootfs的制作

    前面两篇文章分别介绍了mini2440开发板上运行的bootloader和kernel,到这里系统启动后其实是停留在一个"僵死"的状态---无法挂载根文件系统. 这里将介绍如何制作 ...

  3. 玩转mini2440开发板之【制作和修改linux启动logo图片】

    今天玩一玩linux启动logo图片的修改和制作. 对于我手头的mini2440开发板,其实厂家友善之臂原本是有配一个转换工具的,用起来会比较简单.但是,它那个工具仅针对32位的Fedora 9系统开 ...

  4. marvell 开发板Ubuntu镜像制作及配置步骤

    http://wiki.macchiatobin.net/tiki-index.php?page=Boot+from+removable+storage+-+Ubuntu marvell开发板的烧写步 ...

  5. 香蕉派 BPI-M5折腾记录(1)—— 开发板系统烧写

    最近又从咸鱼上淘了一块二手开发板Banana Pi M5,之所以选这块是因为树莓派4溢价太高,不划算了.总体而言Banana Pi M5配置还是挺不错的,性价比挺高,韩国还有一款开源开发板 Odroi ...

  6. UEFI开发探索81- YIE002USB开发板(04 制作HID设备)

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) YIE002USB开发板之制作HID设备-USB系统概述 1 USB规范简介 2 软件工程师眼中 ...

  7. UEFI开发探索82- YIE002USB开发板(05 制作HID设备)

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) YIE002USB开发板之制作HID设备-USB标准描述符 1 USB描述符概述 2 USB标准 ...

  8. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON3 LED流水灯

    LED流水灯例程讲解 若要观看该博客配套的视频教程,可点击此链接 开发板实物图 图1.FPGA设计流程 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去 ...

  9. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON4数码管静态显示

    数码管静态显示例程讲解 若要观看该博客配套的视频教程,可点击此链接 开发板实物图 图1.FPGA设计流程 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省 ...

  10. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON7串口通信

    串口通信例程讲解 若要观看该博客配套的视频教程,可点击此链接 开发板实物图 图1.FPGA设计流程 根据多年工作经验,总结出的FPGA的设计流程,概括起来总共有以上12步,其中根据项目难易度可省去其中 ...

最新文章

  1. LDR 、ADR介绍
  2. [转]myeclipse 8.5最新注册码(过期时间到2016年)
  3. 周鸿祎的“流氓”可否借鉴?
  4. winfrom DotNetBar sideNav控件使用问题
  5. 嵌入式单片机及外设(硬件)知识基础一
  6. 比特客区块链 | 从A到Z速记区块链词汇表
  7. 如何在手机上做读书笔记?手机做读书笔记的软件
  8. Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535
  9. 电厂GPS北斗时钟同步(卫星时间同步系统)组成及配置
  10. 服务器声卡如何虚拟,服务器没声卡远程桌面连接怎么实现听到服务器的声音
  11. Vue轮子-Lottie-动画实现
  12. seo关键字优化条例
  13. nginx文件服务器5万并发量,Nginx服务器高性能优化-轻松实现10万并发访问量
  14. 如何支持github账号登录
  15. List的containsAll()方法的正确理解
  16. 种下一颗知识的种子,知识只有流转起来,才能在团队协作中真正发挥作用。
  17. 计算机软件创业论文,计算机软件专业创新创业人才培养对策论文
  18. 我在云南躺平,这里来了就不想走
  19. w3c创建就web标准 例如html,WEB编程基础-中国大学mooc-题库零氪
  20. 美国工程师挣多少钱(from http://forum.eet-cn.com)

热门文章

  1. 《设计模式》笔记 02 - 实例研究:设计一个文档编辑器
  2. 【opencv4.3.0教程】04之基础结构及其常用功能介绍1
  3. python魔方程序算法_《Python基础教程》第9章 魔方方法、属性和迭代器
  4. Linux登录mysql密码正确被拒绝访问
  5. 程序员的圣诞礼物:计算机寓言之夏
  6. Axure设计原型如何如何插入视频
  7. 飞桨AI Studio之加州房价预测——机器学习的Hello world
  8. 我们一起追逐过的大肥猫——tomcat部署
  9. 积化和差、和差化积公式
  10. 2021-10-21python中spilt函数的学习