地平线机器人 · 2022年07月22日

《旭日X3派开发小技巧》-- 备份与恢复SD卡镜像

0.前言

很多小伙伴们在开发旭日X3派后,想备份自己魔改后的镜像,官方手册中提供了根文件系统制作的方法,但此种方法对于想备份自己开发魔改过后的镜像非常不方便,在这里给大家提供一个较为简便的方法,可以方便的备份与恢复SD卡镜像。

1.准备

· 平台准备

· 旭日X3派+SD卡

· PC端Ubuntu主机 或 Ubuntu虚拟机

· 软件工具

· 镜像备份阶段

· gparted - 磁盘分区编辑工具

· fdisk - 一个创建和维护分区表的命令行工具

· dd - 一个从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出的命令行工具,用于拷贝SD卡分区镜像到文件

· 镜像恢复阶段

· balenaEtcher - 镜像烧写工具

· growpart - 分区扩容工具

· resize2fs - 文件系统调整工具

2. 备份镜像

在SD卡中,有非常多的部分是未用到的空间,如64G的内存卡,实际内容仅占用了10G,那么在备份的过程中,我们就没有必要把空闲的50多G也备份下来,我们只需要备份有内容的部分就可以了,那么我们就需要先压缩SD卡空闲分区,然后再备份有内容的部分,步骤如下:

· 首先在PC端Ubuntu主机或者Ubuntu虚拟机中安装Gparted工具

sudo apt-get install gparted

· 将旭日X3P的SD卡通过读卡器连接到PC端Ubuntu,启动Gparted

sudo gparted

· 选择SD卡,操作分区,压缩掉空闲的分区。
1.png
选择SD卡
2.png
Unmount SD卡
3.png
4.png
拖动滑块压缩分区,白色部分为空闲分区,黄色部分为占用分区,注意拖动的时候要保留一部分白色部分,防止启动时空间不足。
5.png
确认执行操作,此时即完成了压缩分区的工作
6.png
将SD卡分区从59.48G压缩到了10.59G
· 使用fdisk命令查看SD卡分区信息
sudo fdisk -u -l
7.png
可以看到其中的/dev/sdb就是我们的SD卡的磁盘编号,然后用如下命令查看SD卡分区信息
sudo fdisk -u -l /dev/sdb
8.png
· 使用dd命令备份SD卡到img文件
sudo dd bs=512 count=[fdisk命令中最大的end数+1] if=/dev/sdb of=backup_x3p.img
9.png
耐心等待命令执行完成~~~

执行完成后,可以看到在当前目录下,出现了一个名为backup_x3p.img的文件,这就是我们备份的系统镜像。此时,我们就完成了镜像备份的工作。

3. 烧写恢复镜像

我们备份好镜像后,就可以使用备份的镜像来恢复SD卡,步骤如下:

· 与官方烧写镜像的步骤一致,使用balenaEtcher工具将前文备份的IMG镜像文件烧写到新SD卡中
10.png
· 将SD卡插到旭日X3P中,启动并连接到X3P,不出意外的话,X3P可以正常启动并进入系统:
11.png
· 使用df -h命令查看系统空间
12.png
此时可以看到,系统空间为压缩后的大小,并不是SD卡实际的大小,这是因为我们在备份镜像的时候进行了空闲分区的压缩,那么接下来,我们就需要去恢复分区大小为当前实际SD卡大小

· 使用growpart工具扩展分区大小
sudo growpart /dev/mmcblk2 1
13.png
如出现找不到growpart命令,需要先安装growpart工具
sudo apt-get install cloud-utils
· 使用resize2fs工具恢复文件系统
sudo resize2fs /dev/mmcblk2p1
14.png
· 重启!此时再用df -h指令查看系统空间
15.png
可以看到系统空间已恢复成SD卡实际大小~
Enjoy~!

**本文转自地平线开发者社区
原作者:大圣GemiTech
原链接:https://developer.horizon.ai/...**
推荐阅读
关注数
1251
内容数
65
我们的使命是 AI 赋能万物 共创智能未来。我们致力于打造最实用、最好用、最易用的边缘 AI 开发平台。通过地平线自研的高算力 AI 芯片,开发工具,让更多的 AI 开发者,中小企业,学习和加速 AI 产品开发和创新!
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息