ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Jetson Nano 系统重装全攻略:格式化、烧录与避坑指南

Jetson Nano 系统重装全攻略:格式化、烧录与避坑指南 1. Jetson Nano 系统重装的核心逻辑与方案选型Jetson Nano 到手之后真正让人头疼的往往不是写代码而是系统崩了之后怎么把它救回来。我自己前前后后重装过不下十次从最开始对着黑屏手足无措到后来能在十五分钟内完成从格式化到烧录的全流程中间踩的坑足够写一本小册子。这篇文章就把这套流程完整拆开讲清楚每一步背后的原理、为什么这么选、以及哪些地方最容易翻车。Jetson Nano 本质上是一块 ARM 架构的嵌入式计算板它没有传统 PC 那样的 BIOS 和硬盘系统是跑在一张 microSD 卡上的。这一点决定了它的重装逻辑和普通电脑完全不同——你不需要进 BIOS 改启动项也不需要 PE 盘核心工作只有两件事把卡格式化干净把镜像烧录进去。听起来简单但实际操作中卡的质量、格式化工具的选择、烧录软件的参数设置每一个环节都可能让你卡上几个小时。先说清楚这套方案适合谁。如果你手里的 Jetson Nano 出现了无法开机、系统卡死、SSH 连不上、或者你想换一个全新的 Ubuntu 版本那这套流程就是为你准备的。哪怕你之前从来没接触过嵌入式设备只要跟着步骤走也能独立完成。我下面会从方案选型的逻辑讲起再进入具体的实操细节最后把常见问题和排查技巧整理成速查表。1.1 为什么重装系统是 Jetson Nano 的必修课Jetson Nano 的使用场景决定了它特别容易需要重装。很多人拿它做 YOLOv5 推理、跑 Qwen 这类小模型、或者做边缘计算节点这些任务对系统环境的依赖很强。你装了一个版本的 CUDA又装了一个版本的 cuDNN再装 PyTorch版本之间稍微不匹配整个环境就废了。更麻烦的是Jetson Nano 的 eMMC 版本和 SD 卡版本在存储结构上还有差异eMMC 版本一旦刷坏恢复起来比 SD 卡版本复杂得多。另一个高频场景是 SD 卡本身的问题。Jetson Nano 对 microSD 卡的要求比较高读写速度不够或者质量差的卡用一段时间就会出现文件系统损坏表现为开机卡在 NVIDIA logo、或者进入系统后频繁报 I/O 错误。这种情况下格式化往往解决不了问题必须重新烧录镜像。我遇到过一张杂牌卡格式化之后看着正常烧录也成功但开机就是进不去系统换了一张三星的卡立刻就好了。所以重装系统这件事不只是软件操作还涉及到硬件的排查。还有一类情况是系统升级导致的。Jetson Nano 官方支持的 Ubuntu 版本是 18.04 和 20.04如果你试图升级到更高的版本或者手动改了源很容易把系统搞崩。这时候最省时间的做法不是修复而是直接重装。我个人的经验是只要系统层面的问题超过半小时还没定位到原因重装的成本远低于继续排查的成本。1.2 格式化与烧录的工具选型对比格式化这一步Windows 自带的格式化工具其实不太够用。它只能处理常见的 FAT32、exFAT、NTFS 格式而 Jetson Nano 的镜像烧录需要把卡恢复到干净的状态有时候还需要处理分区表残留的问题。我试过几种方案下面这张表是我实际用下来的对比。工具名称适用场景优点缺点SD Card Formatter日常格式化官方工具操作简单兼容性好无法处理分区表损坏DiskGenius分区表修复能删除所有分区重建分区表界面复杂误操作风险高diskpart 命令行彻底清理系统自带能清除只读属性命令需要记新手不友好balenaEtcher烧录兼格式化烧录前会自动格式化格式化选项少我现在的习惯是先用 SD Card Formatter 做一次快速格式化如果卡还能正常识别这一步就够了。如果卡出现无法格式化、显示只读、或者容量异常那就上 diskpart 命令行把卡彻底清干净。diskpart 的好处是它能处理一些 Windows 图形界面搞不定的情况比如卡被写保护了或者分区表乱了。烧录工具方面balenaEtcher 是用的最多的因为它跨平台Windows、Linux、macOS 都能用而且烧录完会自动校验这一点很重要。我见过有人用 Win32 Disk Imager 烧录烧完不校验结果开机失败又得重来。balenaEtcher 的校验虽然多花几分钟但能确保镜像写进去是完整的。另一个选择是 NVIDIA 官方的 SDK Manager但那个主要是给 eMMC 版本用的SD 卡版本用 balenaEtcher 就够了。1.3 镜像版本的选择逻辑镜像版本的选择直接决定了你后面能跑什么。NVIDIA 官方为 Jetson Nano 提供了几个版本的镜像主要是 JetPack 4.6 系列对应的 Ubuntu 是 18.04。后来也有社区维护的 Ubuntu 20.04 镜像但官方支持不如 18.04 完善。如果你要跑 YOLOv5JetPack 4.6 是稳妥的选择因为 NVIDIA 的 TensorRT 和 CUDA 版本都是配套的。如果你要跑 Qwen 这类需要较新 Python 环境的模型那可能得考虑 Ubuntu 20.04 的社区镜像但要做好折腾依赖的准备。我一般会建议先确认自己的需求。如果只是学习用跑跑官方的示例那 JetPack 4.6 的官方镜像最省心。如果是要做项目需要特定的库版本那就得先查清楚那个库对 CUDA 和 Python 版本的要求再倒推选哪个镜像。这一步花十分钟查清楚能省掉后面几个小时的折腾。2. 格式化操作的深度拆解与实操要点格式化听起来是个很基础的操作但在 Jetson Nano 的重装流程里它是最容易出问题的一步。我见过太多人卡在“microSD 卡无法格式化”这个提示上最后以为是卡坏了其实只是方法不对。这一章把格式化的各种情况和对应的处理方式讲透。2.1 正常情况下的格式化流程如果卡还能被电脑正常识别格式化本身很简单。把 microSD 卡通过读卡器插到电脑上打开“此电脑”找到对应的盘符右键选择“格式化”。文件系统选 exFAT 或者 FAT32 都行因为后面烧录镜像的时候会覆盖掉。簇大小保持默认勾选“快速格式化”点开始就行。但这里有个细节要注意Jetson Nano 的镜像烧录会重建分区所以格式化成什么文件系统其实不影响烧录结果。真正影响的是卡的状态是否干净。如果卡上有多个分区或者有隐藏分区Windows 的格式化可能只处理了当前可见的那个分区其他分区还在。这种情况下烧录工具可能会报错或者烧录后系统启动异常。我的做法是格式化之前先打开“磁盘管理”看看这张卡到底有几个分区。如果只有一个分区那直接格式化没问题。如果有多个分区或者有“未分配”的空间那就得先把所有分区删掉再重新建一个。这一步用磁盘管理就能做右键每个分区选“删除卷”全部删完后卡会变成“未分配”状态然后再新建简单卷格式化。2.2 卡无法格式化时的排查思路“microSD 卡无法格式化”是我被问得最多的问题之一。这个提示背后可能有几种原因处理方式各不相同。第一种是写保护。有些 SD 卡侧面有一个物理的写保护开关如果拨到了锁定位置电脑就只能读不能写格式化自然失败。这个开关很小容易忽略先检查一下。如果没有物理开关那可能是卡被软件写保护了这时候需要用 diskpart 来清除。第二种是文件系统损坏。卡在异常断电或者拔出的情况下文件系统可能损坏Windows 的格式化工具处理不了。这时候可以试试用 diskpart 的 clean 命令。具体操作是以管理员身份打开命令提示符输入diskpart然后list disk找到你的卡对应的磁盘编号select disk X最后clean。这个命令会把卡上所有分区信息清掉相当于恢复出厂状态。执行完之后再到磁盘管理里新建分区并格式化。第三种是卡本身寿命到了。microSD 卡是有写入寿命的尤其是用作系统盘的情况下频繁读写会加速磨损。如果卡用了很久而且格式化总是失败那可能是闪存颗粒已经坏了。这种情况下换卡是唯一的办法。我一般会建议用三星、闪迪这类品牌的高速卡容量至少 32GBClass 10 以上。便宜的杂牌卡虽然能用但稳定性差很多用在 Jetson Nano 上容易出问题。2.3 格式化后的验证步骤格式化完成之后不要急着拔卡。先确认几件事卡的总容量是否正常显示有没有出现容量缩水的情况。有些卡损坏后会显示成很小的容量比如 32GB 的卡只显示 30MB这说明卡已经坏了。另外可以在卡里随便拷一个文件再删掉确认读写正常。还有一个容易被忽略的点是盘的盘符。有时候格式化之后盘符会变比如原来是 E 盘格式化后变成了 F 盘。烧录工具一般会自动识别但如果你手动选盘一定要看清楚别选错了把电脑的硬盘给烧了。我见过有人不小心选错盘把移动硬盘的数据全毁了这种错误代价太大。提示格式化之前务必确认卡里没有重要数据。格式化是不可逆的操作一旦执行数据恢复的难度很大。3. 镜像烧录的完整流程与参数解析烧录是重装系统的核心步骤也是决定成败的关键。这一章把 balenaEtcher 的烧录流程拆开讲清楚每个选项的含义以及烧录过程中可能遇到的问题。3.1 镜像文件的获取与校验镜像文件一般是从 NVIDIA 官网下载文件格式是 .zip 或者 .img。下载完之后第一件事是校验文件的完整性。NVIDIA 官网会提供 SHA256 校验值你可以用命令行或者校验工具算一下下载文件的哈希值对比一下。如果哈希值不一致说明下载过程中文件损坏了需要重新下载。这一步很多人会跳过但它是避免烧录失败的第一道防线。我遇到过好几次下载的镜像不完整烧录到一半报错或者烧录成功但开机失败。后来养成习惯下载完先校验校验通过再烧录省了很多时间。校验命令在 Windows 上可以用certutil -hashfile 文件名 SHA256在 Linux 上可以用sha256sum 文件名。镜像文件下载后不需要解压balenaEtcher 可以直接识别 .zip 文件。如果你解压了得到的是 .img 文件也可以直接烧录。但要注意解压后的 .img 文件会占用很大的磁盘空间Jetson Nano 的镜像解压后大概有 10GB 以上确保你的电脑有足够的空间。3.2 balenaEtcher 烧录的详细步骤打开 balenaEtcher界面很简洁三步选择镜像、选择目标盘、开始烧录。第一步点“Flash from file”选择你下载的镜像文件。如果是 .zip 文件直接选就行Etcher 会自动处理。第二步点“Select target”选择你的 microSD 卡。这里要特别小心Etcher 会列出所有可移动存储设备如果你电脑上插了 U 盘或者其他存储卡一定要看清楚再选。选错的后果就是那个设备的数据全没了。第三步点“Flash”开始烧录。烧录过程中Etcher 会显示进度条和剩余时间。烧录完成后它会自动进行校验这一步会再读一遍卡里的数据和镜像对比。校验通过后会显示“Flash Complete”。整个过程根据卡的速度大概需要 10 到 20 分钟。高速卡会快一些低速卡可能更久。烧录完成后Windows 可能会弹出一个提示说“使用光盘之前需要格式化”这是因为 Windows 不认识 Jetson Nano 的分区格式。这个提示直接关掉就行不要点格式化。点了的话烧录好的镜像就被破坏了又得重来。3.3 烧录失败的常见原因与处理烧录失败的原因有很多我整理了几种最常见的情况。第一种是卡的速度太慢。有些卡标称是 Class 10但实际写入速度很慢烧录过程中会超时。这种情况下Etcher 会报错提示写入失败。解决办法是换一张速度更快的卡或者用读卡器换一个 USB 接口USB 3.0 的接口比 2.0 快很多。第二种是读卡器的问题。有些便宜的读卡器稳定性差烧录过程中会断开连接导致烧录失败。我建议用品牌读卡器或者直接用电脑自带的 SD 卡槽。如果用的是 USB 读卡器尽量插在机箱后面的 USB 接口上前面的接口有时候供电不足。第三种是镜像文件损坏。前面提到的校验步骤就是为了排除这种情况。如果校验不通过重新下载镜像。第四种是卡本身有坏块。烧录过程中如果写到坏块会报错。这种情况下卡基本可以报废了。可以用一些工具检测卡的坏块但修复的可能性不大换卡是最直接的办法。注意烧录完成后不要急着拔卡。先安全弹出等系统提示可以安全移除后再拔。直接拔卡可能导致数据没写完烧录失败。4. 系统启动与首次配置的关键细节烧录完成只是第一步把卡插到 Jetson Nano 上开机还有一堆配置要做。这一章讲清楚首次启动的流程和容易踩的坑。4.1 首次开机的正确姿势把烧录好的 microSD 卡插到 Jetson Nano 的卡槽里注意方向卡的金手指朝下插到底会有一个轻微的卡扣感。然后接上电源、显示器、键盘鼠标。Jetson Nano 的电源接口是 Micro USB 或者 DC 圆口取决于你的版本。官方推荐用 5V 4A 的 DC 电源Micro USB 供电有时候功率不够会导致开机失败或者运行不稳定。接好线之后按下电源键等待系统启动。第一次启动会比较慢因为系统要做一些初始化的工作大概需要一到两分钟。屏幕上会先显示 NVIDIA 的 logo然后进入 Ubuntu 的启动界面。如果卡在 logo 界面超过三分钟那可能是烧录有问题或者卡不兼容。我遇到过一种情况开机后屏幕一直是黑的但电源灯亮着。后来发现是 HDMI 线的问题换了一根线就好了。所以如果开机没反应先检查线材和显示器再怀疑系统。4.2 系统初始化配置的步骤第一次进入系统Ubuntu 会引导你做一系列初始化配置。首先是选择语言建议选 English因为中文环境下有些终端命令会显示乱码。然后是键盘布局选 English (US) 就行。接下来是时区选 Shanghai。然后是创建用户设置用户名和密码。这一步设置的密码后面会经常用到比如 sudo 命令所以记牢。配置完成后系统会重启。重启后进入桌面这时候系统基本可用了。但还有几件事要做更新软件源、安装必要的工具、配置 SSH。更新软件源可以用sudo apt update和sudo apt upgrade但要注意Jetson Nano 的官方源有时候会比较慢可以换成国内的镜像源速度会快很多。SSH 的配置也很重要尤其是你打算用电脑远程连接 Jetson Nano 的时候。默认情况下SSH 服务是开启的你只需要知道 Jetson Nano 的 IP 地址就可以用ssh 用户名IP连接。IP 地址可以在 Jetson Nano 的终端里用ifconfig查看或者在路由器的管理界面里找。4.3 首次启动后的环境检查系统起来之后别急着跑项目先做几项检查。第一确认 CUDA 和 cuDNN 是否正常。可以用nvcc -V查看 CUDA 版本用dpkg -l | grep cudnn查看 cuDNN 版本。第二确认 Python 版本Jetson Nano 的 JetPack 4.6 自带 Python 3.6如果你需要其他版本得自己装。第三确认 TensorRT 是否可用可以用 Python 导入 tensorrt 试试。这些检查看起来繁琐但能帮你提前发现问题。我见过有人烧录完系统直接开始装 PyTorch结果发现 CUDA 版本不对又得重装。先花五分钟检查能省掉后面几个小时的返工。5. 常见问题与排查技巧实录这一章把我这些年遇到的各种问题整理成速查表方便你遇到问题时快速定位。5.1 烧录与启动问题速查表问题现象可能原因解决方法烧录到一半报错卡速度慢或读卡器不稳定换高速卡或换 USB 3.0 接口烧录成功但开机黑屏HDMI 线或显示器问题换线材确认显示器输入源开机卡在 NVIDIA logo镜像损坏或卡不兼容重新烧录换品牌卡系统启动后频繁报 I/O 错误卡有坏块或质量差换卡无法格式化 microSD 卡写保护或文件系统损坏检查物理开关用 diskpart clean烧录后 Windows 提示格式化分区格式不被 Windows 识别忽略提示不要格式化5.2 独家避坑经验分享第一个经验是关于卡的。Jetson Nano 对卡的兼容性比较挑剔不是所有卡都能用。我试过几张不同品牌的卡三星的 EVO 系列和闪迪的 Extreme 系列都比较稳杂牌卡经常出问题。如果你手头的卡烧录后开机失败先别怀疑系统换一张卡试试。第二个经验是关于电源的。Jetson Nano 在跑推理任务的时候功耗会上去如果电源功率不够会突然断电或者重启。我建议用 5V 4A 的 DC 电源不要用 Micro USB 供电。另外电源线也要用质量好的太细的线压降大也会导致供电不足。第三个经验是关于烧录工具的。balenaEtcher 虽然好用但有时候会抽风比如识别不到卡或者烧录进度卡住不动。遇到这种情况先关掉 Etcher拔掉读卡器重新插再打开 Etcher。如果还是不行换一个 USB 接口试试。我遇到过 Etcher 识别不到卡换到机箱后面的 USB 接口就好了。第四个经验是关于系统备份的。系统装好之后建议做一次备份。可以用dd命令把整个卡备份成镜像文件下次再出问题直接烧录备份镜像省去重新配置的时间。备份命令是sudo dd if/dev/sdX ofbackup.img bs4M其中 /dev/sdX 是你的卡设备名。这个操作需要小心别把 if 和 of 写反了写反了会把镜像写到卡上覆盖掉系统。5.3 系统重装后的环境恢复技巧重装系统之后最烦的是重新配置环境。如果你之前装了很多库和工具重装后要一个个装回来很费时间。我的做法是在系统正常的时候把常用的配置和安装脚本整理成一个 shell 脚本重装后直接跑一遍。比如安装 PyTorch、配置 pip 源、安装常用工具都写进脚本里。另外pip 的源建议换成国内的镜像下载速度会快很多。可以用pip config set global.index-url来设置。apt 的源也可以换编辑/etc/apt/sources.list把官方的源替换成国内的镜像源。这些配置在重装后能帮你省不少时间。还有一个技巧是用 Docker。如果你把项目环境都放在 Docker 容器里重装系统后只需要装好 Docker然后拉取之前的镜像环境就恢复了。Jetson Nano 支持 Docker而且 NVIDIA 提供了适配的容器运行时。用 Docker 的好处是环境隔离不会因为系统重装而丢失配置。我现在的项目基本都用 Docker 跑重装系统后恢复环境只需要几分钟。5.4 长期使用的维护建议系统装好之后日常使用中也有一些维护建议。第一不要频繁断电Jetson Nano 没有电池突然断电容易损坏文件系统。关机用sudo shutdown now等系统完全关闭后再拔电源。第二定期清理日志和缓存sudo apt autoremove和sudo apt clean可以清理不需要的包和缓存。第三监控卡的寿命可以用sudo smartctl或者一些工具查看卡的写入量如果接近寿命上限提前备份换卡。我个人的习惯是每半年做一次系统备份把重要的配置和数据备份到外部存储。这样即使卡突然坏了也能快速恢复。Jetson Nano 虽然是个小设备但用好了能做的事情很多花点时间维护是值得的。最后再分享一个小技巧如果你有多张 microSD 卡可以给每张卡贴个标签写上系统和用途。比如一张卡是 JetPack 4.6 基础系统一张卡是 YOLOv5 环境一张卡是 Qwen 测试环境。这样需要切换的时候直接换卡就行不用重装。这个习惯帮我省了很多时间尤其是同时跑多个项目的时候。
返回列表