Atlas 200DK系统折腾纪实:(8)关于系统备份的123。。。
笔者之前折腾Atlas200 DK的博客是分7篇发的:
华为Atlas 200DK初体验——写在昇腾新品发布的第二天 https://bbs.huaweicloud.com/blogs/193847
Atlas 200DK系统折腾纪实:(1)论图片及18.04.1的诞生 https://bbs.huaweicloud.com/blogs/194291
Atlas 200DK系统折腾纪实:(2)视频的诞生 https://bbs.huaweicloud.com/blogs/194641
Atlas 200DK系统折腾纪实:(3)强大的yolo3物体检测——你想看的内容已被系统提取 https://bbs.huaweicloud.com/blogs/194816
Atlas 200DK系统折腾纪实:(4)18.04.1的软件安装及双系统切换验证 https://bbs.huaweicloud.com/blogs/195227
Atlas 200DK系统折腾纪实:(5)Atlas让黑白照片原彩重现 https://bbs.huaweicloud.com/blogs/195391
Atlas 200DK系统折腾纪实:(6)Atlas让黑白视频原彩重现 https://bbs.huaweicloud.com/blogs/195590
Atlas 200DK系统折腾纪实:(7)流媒体人体检测 https://bbs.huaweicloud.com/blogs/195833
所以今天用8档起步。。。
话说,经过笔者这么长时间的折腾,一直在考虑一个问题,要是系统坏了咋办?比如,如果虚拟机的ubuntu系统坏了,怎么恢复?如果开发板的ubuntu系统坏了,怎么修复?还是像我前面的博客那样按照手册装半天吗?显然不是一个好的办法。
由于一开始虚拟机使用VMWare装的,@Jokey 大大指出,VMWare其实是有快照功能的。。
可以通过拍摄快照来做备份,然后通过快照管理器来进行管理:比如把快照恢复到系统中。
不过笔者本人对这个高大上的东西总是有点不大敢尝试,笔者的土办法是:先Shutdown系统,然后找到VMWare虚拟机所在的数据文件目录,将这个目录复制一份。
因为笔者认为与其做快照恢复,还不如直接改个目录名称,直接打开就完了。。。。这样也许最快。
毕竟Vmware的虚拟机发生故障,或者因为笔者安装软件包错误,(比如错误地把16.04升级导致系统无法运行等等),造成软件无法运行的可能性还是有的。谁都不是完人,何况笔者这种小白。
所以,笔者在进行重大安装的时候(比如在空白的Unbuntu 18.04上装atlas 200DK的软件包),都会考虑将之前的目录备份一下(记得一定要在关机的情况下备份才保险)
这样,原来的那个系统,不仅可以给你装200DK的软件包,还可以给你装其他系统玩别的东西。。这样子下来,atlas 200DK的虚拟机备份的事情就解决了。
那么怎么恢复呢?也很简单,像上图的例子,将ATLAS200DK的目录改名为ATLAS200DK-old,然后将ATLAS200DK-20200830的目录拷贝一份到ATLAS200DK就行了(为什么不用改名而用复制,因为你总要留一个好的备份在。不然当你这个系统也给你装坏了,那就没有好的系统玩了。。。)——其实这点有点像小时候玩游戏,把最好的记录存档下来。然后接着最好的记录往下打,一旦打的不好,就重启加载那个记录继续重打。。。)
那我们就来谈一谈难度有点高的开发板的SD卡的备份吧。
我们知道,开发板的SD卡,其实是手机卡MicroSD卡,俗称TF卡。
真正的SD卡应该是原来照相机里面用的那种大卡:
但是我们这里还是把前面那个卡叫做SD卡。
这个SD卡如果在虚拟机里面直接看,是这样的情况:(可以使用root用户fdisk -l,也可以使用ascend用户做sudo fdisk -l)
从开发板拔出来,插入USB接口的TF卡读卡器,是这样的情况:
可见,这个16.04的ubuntu ARM系统有三个分区。原来打算使用Win32DiskImager进行备份,后来发现,好像没法选择三个分区(只能选择盘符)
好像貌似镜像在windows上不大好做。
那么,我们还是把卡切换到虚拟机的系统中去。(具体方法是在虚拟机VMWare的菜单:虚拟机-可移动设备-Realtek USB3.0-CRW-连接)
上面Realtek USB3.0-CRW 是我的USB读卡器的设备名,大家自己的USB读卡器可能是别的名称。
这样,又可以用sudo fdisk -l看到SD卡的信息:(跟前面的图一样不贴了)
下面的骚操作借鉴了这段博客:https://blog.csdn.net/running_free/article/details/103028160
首先开一个Terminal窗口,执行以下命令:
执行完会显示以下窗口:
然后,在原来的终端,执行以下命令:
这样,可以依次看到 系统从/dev/sdb的sd卡读取信息,通过gzip压缩后写入到altas200dk_v16.gz文件的进度。。。
直到上面的画面出现,16G的内容就都被复制成功了。
让我们看一下复制的结果:
不好意思,前面dd命令的gz文件名敲错了,atlas敲成了altas...没关系,名字mv一下就可以。
可见。16G的SD卡,最后的镜像压缩后大概是991M左右。
我们可以及时地将这个gz文件用scp拷贝出来。以后待用。
下面,我们需要做的事情是找到另外一张SD卡:
同样的方法,将其挂到虚拟机中:(里面的东西记得备份。。。但是没必要删除,因为恢复镜像的时候会自动覆盖)
然后再看看这张卡的信息:
它的磁盘名称也叫/dev/sdb,只不过原来是一个分区。
那我们来试着恢复吧。。。。
记得,前面的那个watch命令的窗口不要关(如果你是十年以后做的恢复,那也麻烦把那个watch命令用新的终端启动下。。。)
唉,感觉这张卡速度好慢。会不会做完后启动不起来呢?早知道拿个高速卡试一下了(旁白:你给我钱买的额外的高速卡?)
不管了,先耐心等待吧。。。
好像有点不妙。。。怎么有个错误?
仔细再看一下,如果不是卡坏了,就是两张卡有点不一致:
源卡:
目的卡:
感觉不行。这卡不仅速度慢,还比源卡容量小。。小了0.1G。。。唉,三星你做sd卡就为了省这0.1G吗?看来我要禁用你了。。。。
那怎么办?再找一张卡试验吧。。。还能怎样?
笔者只好把原来放在小米摄像机里面的TF(SD)卡取出来。。。
居然有32G。
也不知道16G的镜像如果还原到32G的卡上是否可以?
笔者自己猜想:按理说应该是将 16G的内容全部映射过去,剩下的可能就是未分区的空间。。也不知道这种猜想对不对。反正继续开干吧。。
从速度上来说,好像比原来16G卡写入的速度要快1倍。。。
继续等(中途经过吃饭,睡觉,等一系列环节。。。)
中途看了看,已经dd超出了原来16G卡的出错范围。。。看来要等到16G的内容全部dd完毕才行。。。
继续等吧。。。。
2/3的进度。。。
终于dd成功了。
先记下这个时刻,共耗时4662.43秒,也就是73.3333分钟。。1小时加1刻钟左右。如果后面能启动成功的话,这样的时间还是值得的。毕竟不要装那些东西了。。。(不过32G的18.04可能时间要double,笔者突然庆幸自己是用16G的16.04做的实验。。。)
那我们试一下能不能用新卡启动开发板吧。。。。
拔卡的时候注意点:
断开虚拟机后,弹出个窗口:
那是windows 10识别出来SD卡了。可你千万不要将其格式化。。
你可以去看看计算机管理看看这张卡的分区情况:
果然,前面的部分应该跟源卡是吻合的,后面14G左右没有分配空间。。。看来可行。。。
为了保险,我们再次安全地断掉硬件:
将其插入到开发板:
为了证明真实性,笔者将两张原来的卡放在旁边:
加电启动:
发现了sd卡:
连接后ssh登录开发板:
一切正常。。。(如果一开始没显示出网卡地址,可以重启下虚拟机再连接)
笔者就这样完成了16.04卡的备份和还原。。。
下面再试一下18.04卡的备份,还原就不试了。。。
过程跟前面16.04的同样,这里只贴几张截图:
watch启动后:
查看sd卡信息:
执行dd:
速度感觉非常快啊 。。。。毕竟是自称是90M/s的卡。。。
dd成功结束:
花了12分钟。。应该还是蛮值得的。
最后备份的压缩包有2.2G左右。赶紧将其备份出来吧。。。
今天的博文到此结束,观众可以撒花了。。。
BTW:我要去东哥那里买卡了。买两张32G的卡,做个备份还是值得的。。。至于这张卡,还得还原到小米摄像头上去,不然家里东西被偷了都没有记录。。。
(全文完,谢谢阅读)
- 点赞
- 收藏
- 关注作者
评论(0)