Jetson Xavier NX TF/SD卡系统镜像的备份与恢复

  • 备份环境
  • 系统备份
  • 系统恢复



本次操作是通过 dd 命令完整克隆系统。这种方法是块设备的 bit 复制,所以完全不需要了解上层文件系统的结构和内容,只需要保证目标磁盘设备的空间大于源设备就可以实现。


使用 dd 方式克隆系统虽然具有和系统无关简单便利的特性,理论上总是能够成功。但是,这种方式需要 bit-to-bit 完整读取整个源磁盘,所以存在以下不足:


1、必须完整读取磁盘,对于只使用了部分磁盘空间的系统复制效率很低;


2、无法选择只备份必要数据,造成存储资源浪费;


3、目标磁盘必须大于源盘,硬件上有限制。

备份环境

1、Ubuntu16.04(可使用虚拟机操作)ps.我没试过在ubuntu18.04中操作,感兴趣的小伙伴可以试试)
2、需要备份镜像的TF卡

系统备份

第一步:将需要进行系统备份的SD卡插入ubuntu电脑中,并确认哪个驱动器是我们接入的SD卡。
使用命令

gym@gym:~$ sudo parted -l

gym@gym:~$ sudo fdisk -l

均可查出结果

ubuntu live cd镜像 ubuntu dd镜像_ubuntu live cd镜像


第二步:确保SD卡未挂载

使用命令

gym@gym:~$ sudo umount /dev/sdb

输出结果为:

ubuntu live cd镜像 ubuntu dd镜像_ubuntu_02


第三步:使用sudo -s命令进入root模式开始备份

gym@gym:/home$ sudo -s
root@gym:/home# sudo dd if=/dev/sdb conv=sync,noerror bs=64k | gzip -c > jetson-xavier-nx.img.gz

输入这个命令后是没有提示的,如果需要查看备份进度,另开一个终端,输入命令:

gym@gym:~$ sudo pkill -USR1 -n -x dd

即可查看

ubuntu live cd镜像 ubuntu dd镜像_系统备份_03


完成备份后可以在之前设定的目录下查看镜像,我之前备份是放在home目录下的:

ubuntu live cd镜像 ubuntu dd镜像_ubuntu live cd镜像_04

系统恢复

第一步、第二步与系统备份的第一第二步骤执行的操作一致
第三步:使用sudo -s 命令进入超级用户模式后开始进行系统恢复
输入命令:

gym@gym:~$ cd /home
gym@gym:/home$ sudo -s
root@gym:/home# gunzip -c jetson-xavier-nx.img.gz  | dd of=/dev/sda bs=64k

这里需要注意的是,/dev/sdX中的X需要在前两步确认,可能与备份查出来的驱动器号不一致。

ubuntu live cd镜像 ubuntu dd镜像_ubuntu_05


到这里,就已经完成了Jetson Xavier NX系统的备份与烧录了。

参考:

https://www.jetsonhacks.com/2020/08/08/clone-sd-card-jetson-nano-and-xavier-nx/ https://youtu.be/uPpVoX8fumA