感谢csdn博主荒野火狐,本教程在他的教程上完善而来,下面是他的原帖
【jetson nano 4GB】dd备份镜像(手把手超详细)
前置条件:需要一个能用的ubuntu系统的主机
Jetson Nano 4GB B01
系统:Ubuntu18.04
一.将要拷贝的sd卡塞入读卡器插入主机,检查要备份的卡有没有坏,并修复。
sudo -s //进入root
df -h //显示所有目前在 Linux 系统上的文件系统磁盘使用情况统计 看有没有并看下已用多少G
umount /dev/sdb1 // /dev/sdb1是制作镜像的系统分区 将其卸载,e2fsck不能能修复当前系统正在运行的那个卡和挂载的卡
e2fsck -p /dev/sdb1 //修复挂载的卡
2.改小尺寸,将大小改为可以存放当前所有文件的尺寸(前面看下的多少G,我这里是已用23G)
(改小尺寸 先缩小分区resize2fs 再缩小系统文件fs)因为系统文件是装在分区里
确认是否已经卸载sd卡
resize2fs /dev/sdb1 23G //已用22G 怕文件溢出和其他没有备份的文件,建议+1G到2G左右,如果不够是会报错的
如果出现 “Please run ‘e2fsck -f /dev/sdb1’ first.” 提示,运行命令
e2fsck -f /dev/sdb1
fdisk /dev/sdb
d //删除
1 //第一个分区
n //创建
1 //第一个分区
\n //enter键 默认
+23G //已用22G 怕文件溢出和其他没有备份的文件,建议+1G到2G左右
n //不移除签名
w //保存
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 //退出fdisk
找到最大的 75526243为最末尾的扇区数,512是扇区大小,
dd if=/dev/sdb of=/media/rem/WD_BLACK/beifenka.img bs=512 count=75526244
运行dd指令制作ubuntu镜像
if 是要拷贝的镜像卡地址
of 是目标位置(要烧录的目标sd卡地址)
bs 是块大小 我们取512扇区大小
count 是块个数 我们取之前找到的最大的值,即分区最末尾的数 +1 防止没有完全拷贝
查看进度,我们是看不到它进度的。另外打开一个终端,输入:
sudo pkill -USR1 -n -x dd
注意:这里是/dev/sdb 因为我们拷贝的是所有分区,而不是一个/dev/sdb1 可以压缩拷贝
4.烧录制作的镜像
sudo -s
dd if=/path/to/img of=/dev/sdb bs=512
5.扩大分区空间
sudo -s
fdisk /dev/sdb //如果有让你写w修复就按w,可能溢出的空文件夹就没了
d //删除分区
1 //分区编号1
n //创建分区
1 //分区编号1
\n //起始区块,直接回车默认
\n //区块数量,直接回车默认,扩大到sd卡尺寸
n //不用抹去签名
w //保存设置
resize2fs /dev/mmcblk0 //会直接把sdb1调整为和在fdisk里相同的大小
df -h
注:fdisk可以操作正在运行的镜像的,只是e2fsck不能