- Device: NVIDIA Jetson AGX Orin Developer Kit
- Jetson Linux: R36.3 (JetPack 6.0)
- Boot Storage: NVMe SSD (nvme0n1)
- Kernel: 5.15.136-tegra
The AGX Orin uses a dual-storage boot architecture:
| Storage | Location | Contents |
|---|---|---|
| QSPI Flash | On Orin module | Bootloader (UEFI), firmware, hardware config |
| NVMe SSD | External | Rootfs (APP), kernel, recovery partitions |
When you copy only the NVMe disk with dd, the QSPI bootloader data is not included. The bootloader contains device-specific configuration that must be present for the system to boot.
nvme0n1p1 - APP (rootfs, ext4)
nvme0n1p2 - A_kernel
nvme0n1p3 - A_kernel-dtb
nvme0n1p4 - A_reserved_on_user
nvme0n1p5 - B_kernel
nvme0n1p6 - B_kernel-dtb
nvme0n1p7 - B_reserved_on_user
nvme0n1p8 - recovery
nvme0n1p9 - recovery-dtb
nvme0n1p10 - esp (EFI System Partition)
nvme0n1p11 - recovery_alt
nvme0n1p12 - recovery-dtb_alt
nvme0n1p13 - esp_alt
nvme0n1p14 - UDA
nvme0n1p15 - reserved
- Host PC running Ubuntu 20.04 or 22.04 (x86_64)
- Jetson Linux R36.3 BSP downloaded from NVIDIA
- USB-C cable connecting Orin to host PC
- Target Orin in Recovery Mode
# On host PC
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/release/jetson_linux_r36.3.0_aarch64.tbz2
tar xf jetson_linux_r36.3.0_aarch64.tbz2
cd Linux_for_Tegra
# Install prerequisites
sudo ./tools/l4t_flash_prerequisites.shOn the Jetson AGX Orin:
- Power off the device
- Hold the RECOVERY button (middle button)
- Press and release the POWER button
- Wait 2 seconds, then release RECOVERY
Verify on host PC:
lsusb | grep -i nvidia
# Should show: ID 0955:7023 NVIDIA Corp. APXcd Linux_for_Tegra
# Full backup including QSPI + NVMe
sudo ./tools/backup_restore/l4t_backup_restore.sh -b -e nvme0n1 jetson-agx-orin-devkitThe backup image is saved to:
Linux_for_Tegra/tools/backup_restore/images/
Put the target Orin in Recovery Mode, then:
sudo ./tools/backup_restore/l4t_backup_restore.sh -r -e nvme0n1 jetson-agx-orin-devkitFor flashing multiple identical Orin devices:
cd Linux_for_Tegra
# Generate package for up to N devices simultaneously
sudo ./tools/kernel_flash/l4t_initrd_flash.sh \
--no-flash \
--massflash 5 \
jetson-agx-orin-devkit externalThis creates: mfi_jetson-agx-orin-devkit.tar.gz
Copy the package to any host PC:
tar xf mfi_jetson-agx-orin-devkit.tar.gz
cd mfi_jetson-agx-orin-devkit
# Flash devices (put each in Recovery Mode)
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only --massflash 5- Create a golden image on one fully-configured Orin
- Generate a massflash package and archive it
- Version control your customizations (extlinux.conf, device tree overlays)
- Test restore on a spare device before relying on backups
Since your devices fail due to battery-related sudden shutdowns:
- Consider adding a UPS or supercapacitor for graceful shutdown
- Mount filesystems with
syncoption for critical partitions - Use
fsckon recovery to repair filesystem corruption - Keep the massflash package on an external drive for quick recovery
| Method | Backs Up | Use Case | Works? |
|---|---|---|---|
dd on NVMe |
Rootfs only | — | No |
l4t_backup_restore.sh -b |
QSPI + NVMe | Single device | Yes |
l4t_initrd_flash.sh --massflash |
Complete package | Multiple devices | Yes |
- NVIDIA Jetson Linux Developer Guide - Flashing Support
- NVIDIA Developer Forum - Backup and Clone Orin
- README_backup_restore.txt (in BSP package)
- README_initrd_flash.txt (in BSP package)