Hello,
I am working with a Jetson Orin Nano Developer Kit (P3767-0004) running JetPack 6.2 (L4T R36.4.x).
I attempted to create a golden image by backing up the root filesystem from a configured Jetson and restoring it onto another device.
Below are the exact steps I performed and the problem I encountered
1. Steps I followed
(A) On the source Jetson (working system)
I created a rootfs backup:
sudo tar --numeric-owner -cpzf nvme_backup_rootfs.tar.gz --one-file-system /
Then I copied the backup to the host PC.
(B) On the host PC
I extracted the backup into Linux_for_Tegra/rootfs:
sudo rm -rf Linux_for_Tegra/rootfs/*
sudo tar xpf nvme_backup_rootfs.tar.gz -C Linux_for_Tegra/rootfs --numeric-owner
I modified rootfs/boot/extlinux/extlinux.conf to replace:
root=PARTUUID=xxxx
with:
root=/dev/nvme0n1p1
(because the target device has a different PARTUUID).
(C) Flashing
I flashed using:
sudo ./flash.sh -r jetson-orin-nano-devkit nvme0n1p1
The flash completed successfully.
2. The problem
When I reboot the Jetson after flashing, it does not boot.
Instead, it shows the following errors on the display:
VFS: Cannot open root device "PARTUUID=xxxx" or unknown-block(0,0)
mount: /mnt/sysroot: mount point does not exist
cp: cannot create regular file '/mnt/sysroot/etc/resolv.conf'
Switching from initrd to actual rootfs
Kernel panic - not syncing: Attempted to kill init!
Even though I changed root=/dev/nvme0n1p1 in extlinux.conf, during boot the kernel still tries to use the old PARTUUID.
The system enters a kernel panic and resets repeatedly.
I also tried to backup via sudo ./tools/backup_restore/l4t_backup_restore.sh -e nvme0n1 -b jetson-orin-nano-devkit but it failed, error at step 3:
-
* -
Step 3: Start the flashing process *
-
*
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for device to expose ssh …Timeout
Device should have booted into initrd kernel now. However, the host cannot connect to its ssh server
Command failed: ping6 -c 1 fe80::1%enx42f3fa974e19. Check your network settings (firewall, VPN,…) so that it can ping fe80::1%enx42f3fa974e19
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether d0:50:99:84:a2:19 brd ff:ff:ff:ff:ff:ff
inet 192.168.6.39/24 brd 192.168.6.255 scope global dynamic noprefixroute enp2s0
valid_lft 449874sec preferred_lft 449874sec
inet6 fe80::434a:72f7:39a5:671a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 72:6e:20:f9:0d:eb brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::706e:20ff:fef9:deb/64 scope link
valid_lft forever preferred_lft forever
10: br-f6824b08c474: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 76:5f:53:a8:35:5a brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global br-f6824b08c474
valid_lft forever preferred_lft forever
inet6 fe80::745f:53ff:fea8:355a/64 scope link
valid_lft forever preferred_lft forever
45: enx42f3fa974e19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
link/ether 42:f3:fa:97:4e:19 brd ff:ff:ff:ff:ff:ff
inet6 fc00:1:1::1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::40f3:faff:fe97:4e19/64 scope link
valid_lft forever preferred_lft forever
inet6 fe80::2/64 scope link
valid_lft forever preferred_lft forever
Cleaning up…
My goal:
I want to clone the entire software environment (source code, libraries, Python environment, CUDA/TensorRT setup, system configuration, etc.) from one Jetson Orin Nano and flash the exact same environment onto multiple other Jetson Orin Nano devices.
I need the correct, NVIDIA-supported workflow for creating a Golden Image / Custom RootFS Image on JetPack 6.x (L4T R36.x) that can be flashed to many Jetsons reliably (NVMe boot, P3767-0004).
Thanks