Jetson Orin Nano nvme系统备份和恢复

news/2025/3/25 12:13:25/

        大家好,我是虎哥,Jeston Orin nano 8G模块,我自己也玩了一段时间,配置了很多环境后,我就在琢磨如何将系统像之前的模块一样捞取出来后,在新模块上进行恢复。过程是曲折的,结果也是曲折的,Orin nano确实继承了NANO的一些风格,这些都不是很友好了,这里给大家提供两种办法,一种我自己画了好几天反复做验证,是可行的,另外一种,是我之前在 nano 上的SD卡系统使用过,料想应该也是可行的,但是NVME存储对应的设备贵太多,反正一趟下来,我整体感觉都不是很好了!

目录

1、前期准备

2、使用initrd 备份文件系统

3、烧写备份系统至至新的NVME存储

4、土豪版方案


1、前期准备

首先准备好你自己的套件。

         我自己用的是微雪的载板,核心模块用的是8G不带SD卡的模块。官方提供的版本是带SD卡座的,注意对比区别。

        其次,你的开发套件已经烧写过系统至NVME,默认的启动也是从NVME启动的。

        最后,你需要找一块和你开发条件上一个大小的NVME存储,建议用同一个型号,存储大小需要一对一一致。这点很重要,我反正目前没有找到大存储恢复到小存储的方案,当然小存储恢复到大存储是没有什么问题。也就是你要满足这两个条件,就可以开始下面的方法了。

  • 载板NVME存储大小要小于你存储备份系统的盘

  • 恢复NVME空盘存储大小要大于等于之前备份的存储

所以,汇总一下,你需要准备好得大致物料清单见下图。

2、使用initrd 备份文件系统

开发套件烧写USB线连接到,然后模块recovery模式启动

 如果你PC端使用的事虚拟机,那这个时候,你电脑就会有一个接入选择

 然后lsusb就可以看到设备接入的ID。

         当然,这个时候由于你已经有系统,所以是可以软件进入recovery模式,登录到你模块的终端,输入以下命令。

sudo reboot --force forced-recovery

在你的主机端,进入烧写环境后,输入下面的命令,模块将启动停止在initrd位置。

$ cd Linux_for_Tegra
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --initrd <board-name> <rootdev>
#我们实际使用的命令(板载NVME系统)
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --initrd --flash-only jetson-orin-nano-devkit nvme0n1p1
#我们实际使用的命令(板载USB存储系统)
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --initrd --flash-only jetson-orin-nano-devkit sda1

 当出现上面的打印的时候,记得把recovery的跳线冒断开。

 如果你使用虚拟机,会在此出现一次让你选择接入。

 到这,模块就已经停在了initrd位置,后续就需要你手动操作了。

在主机端按照提示输入命令。

#SSH登录模块
ssh root@fc00:1:1:0::2
#密码
root

 第一次链接,一般需要你生成秘钥。输入yes,回车。

提示你输入密码登录,密码是root。

这样我们就登录进去了模块。这个时候将我们准备的大的USB存储接入模块的USB。然后输入命令查看存储情况。

fdisk -l

 接下来我们技术输入命令,使用DD,将NVME存储对拷出来

#挂载U盘
$ mount /dev/sda1 /mnt
#DD对拷
$ dd if=/dev/nvme0n1p1 of=/mnt/system.img.raw

 之后再原位置继续输入以下命令

$ sync
$ umount /mnt

 完事后,我们就备份了当前运行的存储。将备份用的USB存储插入你的主机,就可以看到备份文件。

         你可以将这个和NVME存储一样大的文件拷贝到你的主机内,如果空间不够,那也可以继续放到USB存储,接下来我们要制作一个这个文件的压缩img文件,记得,存放这个文件的存储插到你的主机。

在你的主机找到备份文件的存储目录:

 可以进入看一下

 接下来我们就可以制作压缩IMG文件了。

#进入你的烧写工作目录,注意你自己的目录
cd ~/O100/O100_JetPack_5.1.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra
#执行压缩命令
./bootloader/mksparse --fillpattern=0 /media/nvidia/be2deb0f-3381-45c3-a1bc-32bf2139e5ef/system.img.raw system.img

 等待制作镜像完毕就可以了。

 制作完毕

3、烧写备份系统至至新的NVME存储

将一个空的NVME存储,刚换到你的系统上。注意新的NVME存储大小要大于等于之前备份的存储大小

将新的NVME安装到模块上。然后开发套件烧写USB线连接到,然后模块recovery模式启动。

此时你的主机还是老规矩,首先确认Orin模块连接到你的主机了。

lsusb

 此时,需要先烧写一遍空系统,可以直接执行命令,准备好环境。这一步是为了确保你的nvme0n1p1存储前面的引导部分全部都准备好。

#进入你的烧写工作目录,注意你自己的目录
cd ~/O100/O100_JetPack_5.1.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra
#全部生成烧写
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \-c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \--showlogs --network usb0 jetson-orin-nano-devkit internal

 准备制作镜像。

 执行完毕后,其实官方脚本将系统制作到了如下目录。

cd {your path}/Linux_for_Tegra/tools/kernel_flash/images/external

 实际执行烧写的时候,最终是烧写这个目录的文件。

将备份的压缩文件覆盖这个img文件。

#先删除
sudo rm -f tools/kernel_flash/images/external/system.img
#拷贝之前备份的
sudo cp -f system.img tools/kernel_flash/images/external/

         这个时候,需要将烧写的空系统模块完成Ubuntu setup,这一步是必须的。不然后续恢复备份会出现空间不足,因为空系统不进行初始化,只有64G的镜像。

        开机之后就进入上图“Step 1. Ubuntu setup(oem-config)”阶段,进行以下9个步骤的系统配置工作:

1、同意授权:点选左下角“I accept the terms of thses licences”左边的框,然后点击右下角“Continue”按钮进行下一步;

2、选择“语言”种类:建议这个阶段先不要选择中文,直接点击右下角“Continue”按钮进行下一步;

3、选择“键盘布局”:直接点击右下角“Continue”按钮进行下一步;

4、连接WIFI无线热点:可以根据您的实际状况选择热点,或者现在先不连接,等后面进系统之后在连接,然后点击右下角“Continue”进行下一步;

5、选择“区域”:用鼠标点击图里“中国”范围,下面地区会更新为“Shanghai”,然后点击右下角“Continue”进行下一步;

6、 配置用户名与密码:这个步骤算得上是最重要的环节,因为没有预设值,因此包含用户名(Your Name)、设备名称(Your computer’s name)、密码(Choose a password)都需要自行输入,然后点击右下角“Continue”进行下一步;

7、 配置使用的磁盘空间:预设为最大可用空间,建议不做修改,然后点击右下角“Continue”进行下一步;

8、是否安装Chromium浏览器:接受预设值(安装),然后点击右下角“Continue”进行下一步;

 接下去系统就会根据前面的选择,执行“System configuration”,如下面两张图所示的步骤。

         执行完系统配置之后,就会自动重启,然后进入Ubuntu 20.04 L4T(Linux for Tegra)桌面级操作系统,如同所有Ubuntu操作系统第一次登录时需要执行的步骤一样,都选择“Next”就可以,然后就会看到下面这个熟悉的Ubuntu标准桌面。

 然后开发套件烧写USB线连接到,然后模块recovery模式启动。

此时开始烧写我们备份的。此时你的主机还是老规矩,首先确认Orin模块连接到你的主机了。

lsusb

 然后开始烧写替换后的系统

#只更新 APP,似乎有用 flash APP partition in the NVMe:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only --external-only \--network usb0 -k APP --external-device nvme0n1 \-c tools/kernel_flash/flash_l4t_external.xml jetson-orin-nano-devkit internal

烧写完毕,系统正常启动。

 载板系统中已经变大了,之前装的ROS之类的都在了。

4、土豪版方案

感觉上面的办法很繁琐,所以我们还提供一种土豪办法,简单一点,可以淘宝上找NVME存储对拷机,可以帮你完成母盘对拷。

 这种算是比较便宜的,对于一些公司批量做,可以考虑一拖多的对拷。


http://www.ppmy.cn/news/205139.html

相关文章

【CesiumJS入门】(2)ImageryLayer之图层加载与管理

前言 在上一篇博客中&#xff0c;我们加载了一个空空的蓝色地球&#xff0c;现在我们将会为地球加载上地图。 步骤&#xff1a; 创建ImageryProvider &#xff08;数据源&#xff09;创建ImageryLayer &#xff08;图层&#xff09;将图层添加进视图中&#xff08;viewer&…

华为鸿蒙麒麟玉兔_华为!《鸿蒙出世:中国神兽图鉴》

站长说&#xff1a; 8月9日下午&#xff0c;华为开发者大会上&#xff0c;鸿蒙OS终于揭开面纱。 这场大会上&#xff0c;站长听到最热血的一句话&#xff0c;就是“如果安卓不能用&#xff0c;鸿蒙随时可用。” 鸿蒙一开&#xff0c;神兽出世&#xff01;中国的科技人用自己的诗…

腾讯云TcaplusDB 华为鲲鹏完成兼容性认证

近日&#xff0c;腾讯云TcaplusDB与华为鲲鹏完成兼容性测试认证。本次认证TcaplusDB基于华为鲲鹏TaiShan 200服务器硬件&#xff0c;从功能、性能、兼容性、可靠性、功耗、安全这六个维度进行相关的测试。 ​ TcaplusDB是一款高性能内存式分布式数据库系统&#xff0c;具有高性…

华为全国产计算机,华为不再沉默!第一台“全国产”PC横空出世,微软一下子整懵了?...

推荐语&#xff1a;众所周知&#xff0c;如今消费者使用的电脑&#xff0c;基本上没有核心的国产技术。以至于全球最大的电脑厂商联想&#xff0c;都被人视为一家组装厂仅此而已。不管是芯片还是在操作系统领域&#xff0c;都是外国企业占据主导的地位。面对这样的情况&#xf…

华为的鸿蒙系统是海思_很多人并没有用华为,而为何如此关注鸿蒙系统?

为什么很多人不用华为&#xff0c;却很关注鸿蒙&#xff1f; 鸿蒙系统诞生是一个非常时期&#xff0c;而且不仅仅代表华为&#xff0c;还代表国家的科技力量&#xff0c;如果一旦做成功了&#xff0c;这就是中国的骄傲。这丝毫不亚于看奥运会中国夺冠、看中国神舟飞船上天、看吴…

华为鸿蒙麒麟玉兔_鸿蒙、麒麟、鲲鹏……这是属于中华的浪漫

CFIC导读 华为自研操作系统半揭面纱:华为申请的“华为鸿蒙”商标已申请通过,并标注可用于操作系统程序。 鸿蒙!仅这个名字已让不少网友热血沸腾!今天一起来聊聊这些科技成果的命名,感受专属国人的终极浪漫。 点击播放 GIF 0.8M 国家知识产权局商标局发布的《商标公告》第1…

华为鸿蒙的科技话题作文800字,科技的发展作文800字4篇

科技的发展作文800字4篇 科技改变生活,可以说没有科技的高速发展就没有今天的我们。那么以下是小编为大家整理的科技的发展作文800字,欢迎大家阅读! 科技的发展作文800字(一) 随着科学技术的高度发展,科技是利是弊成了人们热议的话题。它可以造福于人类,让人类的明天更加美…

华为云各行业数据库服务整体解决方案、数据库迁移上云解决方案

一、数据库历史回顾和趋势&#xff1a;云化&#xff0c;融合是方向 数据库技术是信息技术领域的核心技术之一,几乎所有的信息系统都需要使用数据库系统来组织、存储、操纵和管理业务数据。数据库领域也是现代计算机学科的重要分支和研究方向。数据库技术于60年代诞生&#xff…