前言:
借鉴网上的教程,项目做了5天,环境搭建好了,只需要进一步的编程,这时想要把环境备份一下,本来想做成.iso或者.img的镜像,但是在网上找了好久都没有可行的方案,有些需要装软件的,我的Linux也装不上。之后接下来的5天,我就一直在思考怎么备份。然后我找到的解决方案,个人认为适用于大多数Linux系统。(在SD卡中的系统)

我的环境| 硬件配置(我用到了哪些东西)
1.win10电脑
文件系统的类型: windows是NTFS,Linux是EX3和EX4,优盘是NTFS。
3.闪迪内存卡一张32g(有我想备份的linux系统),一张64g(干净的linux系统),三星U盘128g(储存盘)
4.一个读卡器
5.jetson nano 4g内存版 一个
6.荣耀手机一个
7.Ubuntu18.04
借鉴方案
1.https://www.jetsonhacks.com/2020/08/08/clone-sd-card-jetson-nano-and-xavier-nx/
2.https://www.cnblogs.com/ginvip/p/6370836.html
3.https://www.cnblogs.com/ginvip/p/6370836.html

我想要实现的
1.备份32g卡中的系统备份到U盘中
2.用32g卡的备份,去让64g卡有相同的环境

总的思路
为啥我敢说我的方法适用于大多数Linux系统,因为他只需要使用LINUX的命令即可。
1.首先我先将我搭建好的系统的SD卡(就叫他A卡吧)插在读卡器上。
2.再把读卡器插在一个linux系统的电脑上(这是主机)(jetson nano也行),将A卡用几行命令全盘复制到主机上(是一个压缩包的形式)。
3.然后将这个压缩包放在U盘中(难点)
4.最后将目标盘(一个SD卡)插在主机上,将U盘中的文件用命令行解压在目标盘中,此时目标盘盘中就有了和A卡一模一样的环境了。

具体过程
第一步:将你搭建好的系统做成一个压缩文件
把搭建好系统的SD卡通过读卡器插在另一个LINUX主机上(我是32g的sd卡做好的系统(A卡),用64g的sd卡(B卡)插在jetson nano上做linux主机)

1.查看你的A卡的路径(形如 /dev/sda1 )

sudo parted -l

2.将你的A卡从linux系统上卸载
在这里插入图片描述
假设你的A卡路径为、dev/sda1/

sudo umount /dev/sda1

如下图,有提示umount说明已经卸载
在这里插入图片描述

3.将你的A卡"dd"命令拷贝到主机中

 $ sudo dd if=/dev/sda1 conv=sync,noerror bs=64K | gzip -c > ~/backup_image.img.gz

/dev/sda1/是A卡的路径, //backup_image.img.gz 是在home文件夹下生成A卡的名为“backup_image.img.gz ”压缩文件

###下面是我参考的教程的截图###
在这里插入图片描述


注意你生成的那个压缩文件和你要备份的系统卡的容量接近(我要备份的系统卡容量32g,压缩包20g) 所以你的Linux主机的容量一定要足够。

我的Linux主机用的64g sd卡,因此可以装的下压缩包。


到这里你的环境就备份好了,备份文件在64g的那张卡上

问题
如果我想让备份文件那个压缩包给到U盘怎么办呢?
直接把U盘插上可以,然后copy可以么,使用cp命令是可以的(优盘的文件类型要对,否则系统不识别)
在这里插入图片描述
但是我发现优盘在linux下能别识别,但是在windows环境下就不能被识别了,因此我想找一种方法让我的U盘可以在两个系统下都用。方便使用。
#下面是我的方法(突发奇想)#
我把我的荣耀v30插在Linux系统上,把压缩包先拷贝到手机里,之后把U盘插在手机上,然后用手机格式化一下U盘,再把文件移动到优盘里。如此操作,优盘中的既能被windows识别也能被Linux识别。
在这里插入图片描述
可是我的鸿蒙支持NTFS的U盘,并且插在linux上也可读可写

**

最后一个任务

**
将搭好的环境写到64g的卡中

查看路径

sudo fdisk -l

1.将64g的那张卡从nano中拔出来,插在读卡器里。
2.用32g的卡做主机,启动linux系统。
3.把装有64g内存卡的读卡器和U盘都插在nano上。
4.卸载64g的U盘

sudo umount  dev/sdb1/

在这里插入图片描述
有提示说明已经卸载了
5.获取超级权限

sudo su

4.把U盘中的备份文件解压在64g的卡里就行。

sudo gunzip -c /media/tietie/android/backup_image.img.gz |dd of=/dev/sdb1 bs=64K

OR

sudo gunzip -c /media/jetbot/android/64back.img.gz |dd of=/dev/sda bs=4M

NOTE: .gz |dd of=/dev/sda ge shi = kong ge

在这里插入图片描述
下图是我在这一步参考的教程
在这里插入图片描述

中间遇到的问题
1.如下图提示Permission denied,是权限不够
在这里插入图片描述
解决方法

命令前加 sudo

若不行的话

执行下面的命令获得超级权限后,再用sudo+命令

sudo su

2.提示No such file or directory
在这里插入图片描述
检查地址是否正确 ~/ 是在当前地址下 / 是绝对地址。

注意观察dd of= 后面跟的地址是磁盘的地址。形如 /dev/sda1
gzip和gunzip后面跟的地址是 你在压缩包文件夹下打开终端上面提示的所在地址。

如有不妥,敬请指正
如有疑问建议,欢迎留言
如有帮助,点个赞呗

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐