文章目录
前言
前置条件:需要一个能用的linux系统的主板
记录一下如何备份镜像。(怕之前好不容易配的镜像再次崩掉,呜呜)
Jetson Nano 4GB B01
系统:Ubuntu18.04
实操
用另外一个装linux系统板子打开(不是要拷贝的那个镜像),这里我用的是之前一张配过的卡开的nano机,将要拷贝的镜像卡插上。
1.检查要备份的卡有没有坏,并修复。
df -h //显示所有目前在 Linux 系统上的文件系统磁盘使用情况统计 看有没有并看下已用多少G
umount /dev/sdb1 //dev/sdb1是硬盘分区 将其卸载,e2fsck不能能修复当前系统正在运行的那个卡和挂载的卡
e2fsck -p /dev/sdb1 //修复挂载的卡
补充如何挂载
//先创建一个空的文件夹 (已有的跳过)
mkdir /home/rem/sdb
mount /dev/sdb1 /home/rem/sdb //(已有的空的文件夹)
2.改小尺寸,将大小改为可以存放当前所有文件的尺寸(前面看下的多少G,我这里是已用30G)
(改小尺寸 先缩小分区resize2fs 再缩小系统文件fs)因为系统文件是装在分区里
sudo su
resize2fs /dev/sdb1 36G //已用30G 怕文件溢出和其他没有备份的文件,改大点
//如果它要求先你运行e2fsck -f /dev/sdb1 //则运行
fdisk /dev/sdb
d //删除
1 //第一个分区
n //创建
1 //第一个分区
\n //enter键 默认
+36G //已用30G 怕文件溢出和其他没有备份的文件,改大点
n //不移除签名
w //保存
mount /dev/sdb1 /home/rem/sdb //重新挂载
df -h//查看是否已缩小
补充如何扩大
(在扩大时,必须先扩大分区(fdisk),然后再扩大fs(resize2fs))
fdisk /dev/sdb
d
1
n
1
\n
\n //扩大到sd卡尺寸就不操作
n
w
resize2fs /dev/sdb1 //会直接把sdb1调整为和在fdisk里相同的大小
//如果它要求先你运行e2fsck -f /dev/sdb1 //则运行
mount /dev/sdb1 /home/rem/sdb
df -h//查看
3.运用dd命令备份
先插上一个exfat格式或者ntfs格式的U盘,fat32的不行,它最大只支持2^32次字节的输入输出(即4GB),如果自己sd卡里有足够空间存放镜像,也可以不插。
exfat的移动硬盘如不能识别 (sudo apt-get install exfat-fuse exfat-utils)
插上后,自动挂载
df -h //查看u盘和要拷贝的镜像卡是否都已挂载,没挂载的挂载
fdisk /dev/sdb
p //打印分区表
q
找到最大的 75526243为最末尾的扇区数,512是扇区大小,
运用dd指令dd_linux
if 是要拷贝的镜像卡
of 是目标位置(插的usb卡的话 df -h 看挂载点的地方我挂载点的地方为/media/rem/WD_BLACK)
bs 是块大小 我们取512扇区大小
count 是块个数 我们取之前找到的最大的值,即分区最末尾的数 +1 防止没有完全拷贝
dd if=/dev/sdb of=/media/rem/WD_BLACK/beifenka.img bs=512 count=75526244
查看进度,我们是看不到它进度的。df -h 可以查看u盘内存变少多少来查看进度。
注意:这里是/dev/sdb
因为我们拷贝的是所有分区,而不是一个/dev/sdb1
可以压缩拷贝
具体为:
$ sudo dd if=/dev/sdc | gzip>/home/rem/raspberry.gz
不过更耗cpu,会很慢的。
4.拷贝完,我们再用balenaetcher烧录进一张超过自己镜像的sd卡,
然后扩大镜像到sd卡大小
fdisk /dev/mmcblk0 //如果有让你写w修复就按w,可能溢出的空文件夹就没了
d
1
n
1
\n
\n //扩大到sd卡尺寸就不操作
n
w
resize2fs /dev/mmcblk0 //会直接把sdb1调整为和在fdisk里相同的大小
df -h
注fdisk可以操作正在运行的镜像的,只是e2fsck不能
最后介绍一个好用的修复镜像的软件Linux File Systems for Windows by Paragon Software,可以检查分区和修复,相当于e2fsck。
5.最后一个一摸一样的镜像就可以再次运行了。
总结
其他板子应该也一样操作,如:树莓派