上位机使用篇---Jetson的烧写和备份
Jetson的系统烧写和备份,是每个开发者在项目起始和收尾阶段都必须掌握的关键技能。简单来说,系统烧写是让板子“活起来”,而系统备份则是让精心配置的开发环境能够“被复活”。
📥 系统烧写:为Jetson安装“灵魂”
“烧写”(Flashing)通俗讲就是给Jetson安装操作系统,但它并不是在Jetson上直接操作,而是通过你的Ubuntu主机,将系统镜像写入Jetson的存储(eMMC、SD卡或SSD)中。
这背后,NVIDIA提供了两套核心工具,从简到繁,覆盖不同需求:
| 特性 | SDK Manager | 命令行 (flash.sh) |
|---|---|---|
| 操作方式 | 图形化界面 (GUI),指引清晰,适合新手 | 命令行,直接与底层脚本交互,更灵活 |
| 主要优势 | 一键式安装,可同时安装CUDA等SDK组件,简化环境配置 | 适合批量生产、自动化脚本和CI/CD集成;备份与恢复操作多依赖于此 |
| 典型场景 | 初次上手、个人开发环境快速部署 | 产线批量烧写、系统克隆、自动化测试、服务器端无GUI操作 |
无论用哪种工具,流程核心都是一致的:
进入恢复模式:用USB线连接主机和Jetson,然后按住板子上的RECOVERY键再按RESET键(或接通电源),此时Jetson会变成一个等待刷写的USB设备。
执行烧写:在主机上通过SDK Manager或运行
sudo ./flash.sh [board] [rootdev]命令将系统写入。其中[board]需替换为板子型号,如jetson-agx-orin-devkit,[rootdev]通常是mmcblk0p1。
如果你手边只有一块全新的Jetson板子,强烈建议先用SDK Manager跑通一遍,能最大程度降低环境配置的门槛。
💾 系统备份:给开发环境“拍个快照”
备份就是把你调好的系统、装好的驱动和配置的依赖,完整地“克隆”下来。这非常重要,因为:
节省重复劳动:不用再花半天重装系统、配置环境。
环境一致性:能保证每次恢复的环境都一模一样,是复现bug、部署多个相同设备的基础。
方便的灾难恢复:系统崩溃或SD卡坏了,几分钟就能用备份恢复如初。
如何创建完整备份?
官方推荐的方法是通过命令行生成克隆镜像:
# 在Linux_for_Tegra目录下执行 sudo ./flash.sh -r -k APP -G backup.img [board] mmcblk0p1执行后,会生成backup.img(稀疏镜像,体积小)和backup.img.raw(完整原始镜像,体积等于整个分区大小)两个文件,它们就是你的系统“快照”。
🔄 从备份中恢复系统
当需要恢复时,就是把备份的镜像文件“烧”回去:
把生成的
backup.img复制到bootloader/目录下,并重命名为system.img。再次让Jetson进入恢复模式,执行恢复命令:
sudo cp backup.img bootloader/system.img sudo ./flash.sh -r -k APP [board] mmcblk0p1
命令中的-r参数会跳过重新构建system.img,直接使用我们刚才替换的那个克隆文件进行烧写。
补充一点:Jetson还支持更高级的A/B系统冗余机制。这相当于给系统做了一个“双保险”,把存储分为两个槽位,平时只从一个启动。更新系统时先更新备用槽,如果启动失败还能自动回滚到原来的系统,在需要高可靠性的场景下非常实用。
✨ 总结框图
掌握了烧写和备份,你就能在Jetson上大胆折腾,因为随时可以“时光倒流”到一个干净、完好的系统状态。
