在我们的机器人系统开发过程中,需要提前安装配置操作系统和依赖项,将这些依赖全部安装完成后,将系统镜像备份。在之后的系统安装中只要将备份好的镜像烧录进开发板中,岂不快哉~
下面讲的便是地地平线开发板中镜像备份与恢复过程
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卡,操作分区,压缩掉空闲的分区。
使用fdisk命令查看SD卡分区信息 sudo fdisk -u -l
可以看到其中的/dev/sdb就是我们的SD卡的磁盘编号,然后用如下命令查看SD卡分区信息
sudo fdisk -u -l /dev/sdb
使用dd命令备份SD卡到img文件
sudo dd bs=512 count=[fdisk命令中最大的end数+1] if=/dev/sdb of=backup_x3p.img
执行完成后,可以看到在当前目录下,出现了一个名为backup_x3p.img的文件,这就是我们备份的系统镜像。此时,我们就完成了镜像备份的工作。
3. 烧写恢复镜像
我们备份好镜像后,就可以使用备份的镜像来恢复SD卡,步骤如下:
· 与官方烧写镜像的步骤一致,使用balenaEtcher工具将前文备份的IMG镜像文件烧写到新SD卡中
通过Ubuntu主机或虚拟机恢复SD尺寸
在将sd卡连接到主机上(Ubuntu系统) 通过 gparted 可视化工具恢复, 如果主机上未安装,执行下面的指令安装 sudo apt-get install gparted
执行 sudo gparted 指令打开工具界面 1. 选择需要调整的硬盘 2. 调整分区大小:
右击需要调整尺寸的分区,选择调整大小 将未分配区全部添加到当前调整分区 执行确认操作,等待完成即可