该方法可以在Ubuntu的开发机上生成一个img镜像,后续可以直接使用rufus软件烧录备份好的镜像。
Step 1:在Ubuntu的开发机上安装gparted软件
如果安装失败则需要为您的Ubuntu开发机换源,这里推荐阿里源:https://developer.aliyun.com/article/753753
sudo apt-get install gparted
Step 2:将SD卡通过读卡器,插入到开发机。
如果使用的是虚拟机,需要选择将设备连接到虚拟机,例如VMWare在选项栏中选择:虚拟机 - 可移动设备 - 设备名称 - 连接(断开与主机的连接),其中设备名称可以通过设备管理器查看、逐个尝试或者插入拔出前后比较等方法来确定。
Step 3:通过gparted软件查看扇区备份的终点
sudo gparted # 通过终端运行
假装要压缩
查看分区的终点,记住这个Total sectors,我这边是15208448
这里就可以退出了,不用去点确认,点了也没啥,只是原来的镜像压缩了罢了。
Step 4:开始备份
sudo dd bs=512 count=[Total sectors+1] if=/dev/mmcblk0 of=rdkx3_backup.img
其中count=[Total sectors+1]
就是count=15208449
,if=/dev/mmcblk0
就是设备,我这边是/dev/mmcblk0
,一般U盘是/dev/sdb*
啥啥,of=rdkx3_backup.img
就是保存的镜像名称为rdkx3_backup.img
Tips:dd命令没有进度条,我们可以另外开一个Terminal,通过df -h命令来估算
df -h ~/
~/
是我备份的目录,可以看到目录占用在慢慢增加,等增加了7个GB左右说明差不多了。
Step 5:利用rufus烧录打包的img镜像,同时拓展SD卡空间
如果使用df -h 命令查看最大空间,发现不是SD卡最大空间,可以参考以下命令拓展:
# 如使用V1.x版本,使用以下命令
sudo growpart /dev/mmcblk2 1
sudo resize2fs /dev/mmcblk2p1
#如使用V2.x版本,使用以下命令
$ sudo growpart /dev/mmcblk2 2
$ sudo resize2fs /dev/mmcblk2p2
参考:
【1】https://zhuanlan.zhihu.com/p/337167256
【2】https://www.originbot.org/guide/image_install/#originbot-sd_2