记录一次SD卡内存卡数据备份和恢复

提要:

        在做嵌入式linux开发时,开发板上有SD内存卡作为系统的启动盘,由于各种原因,比如做这套东西的人离开了,原本没有留下任何资料,然后需要再做一套设备时,要求恢复和原本状态一致。此时就需要将原本的镜像进行备份和恢复了。

1. 备份:

        想要将原本的内存卡进行备份包括SD卡的分区情况也进行备份,否则不能正常启动,同时在不了解系统挂载的分区的名是什么的时候,将各个分区单独备份,然后使用烧录软件“STM32CubeProgrammer”进行烧录时也会产生不能启动系统的现象。因此需要全盘备份,然后恢复,才能正常运行整个系统。

        踩坑:在win下使用各类备份软件:“傲梅”,“DiskGenius.exe”,“Win32DiskImager_v1.0”,这几款软件都可以做备份。

        但是,经过踩坑发现:“傲梅软件”备份后在恢复不能完整的恢复;“DiskGenius.exe”想用完整的备份恢复,需要专业版价格四百元左右;“Win32DiskImager_v1.0”在win11下插入读卡器,找不到设备,不能做备份。

        踩坑:在虚拟机里运行Ubuntu虚拟机,可以进行备份,通过dd命令,但是虚拟机找不到读卡器(读卡器蓝色接口),需要在虚拟机设置中增加USB3.1的支持,这样可以解决U盘接入虚拟机时U盘不能识别问题

        备份开始:

        a. 找到读卡器设备:通常情况下,存储设备可以通过 df -h查看,也可以通过 ls /dev/ 查看到,外接存储设备的名称为sda,sdb,sdc,依次类推,sda1,sda2...表示这个存储器的分区号。我使用的SD卡在这里是sdc,因为我记得它有6个分区,通过这个也能判断是sdc设备。

注,我的sdb设备只有1和4分区是因为特殊的需要,把他的其他分区移除了。

        b. 备份命令:在备份目录下

mkdir SD-backup
cd SD-backup
sudo dd if=/dev/sdc of=back.img bs=1M

      dd命令可以将设备的所有值进行备份到back.img里,bs=1M,通常dd命令后面可以跟count=数字,这表示从(if)interface导出bs*count字节的数据。这里不加count表示导出 /dev/sdc所有数据包括分区表,每个字节统统存到back.img中,最后产生的back.img的大小为SD卡的大小。

        注:dd命令,通常需要管理员权限,所以需要注意,且dd命令无进度输出,窗口会堵在这里。

        恢复开始:

        备份完毕,插入新的SD卡,使用dd命令可以将back.img写入到SD卡中。将新写入的SD卡插入设备中,可以正常使用。

cd SD-backup  # 如果在当前目录下可以忽略
sudo dd of=/dev/sdc if=back.img bs=1M

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值