How to resolve rootfs AB problem on Jetson Orin NX

Hi, I’m an amateur to Jetson Orin programming, and I accidentally triggered rootfs AB error attempting to install nvidia-l4t-kernel (which I now know that I shouldn’t). I would like to know how to resolve the rootfs AB issue (Asked AI and it told me that I have to re-flash the board?).

Below is the output of apt:

ERROR. Rootfs AB is enabled. Should never reach here.
dpkg: error processing package nvidia-l4t-kernel (–configure):
installed nvidia-l4t-kernel package post-installation script subprocess returned error exit status 1
Processing triggers for nvidia-l4t-initrd (36.4.7-20250918154033) …
Include /etc/nv-update-initrd/list.d/binlist
Include /etc/nv-update-initrd/list.d/modules
nv-update-initrd: Updating /boot/initrd from /etc/nv-update-initrd/list.d for kernel version 5.15.148-tegra..
Add /usr/sbin/nvluks-srv-app
Error: /lib/modules/5.15.148-tegra/updates/drivers/net/ethernet/nvidia/nvethernet/nvethernet.ko not found
Cleaning up the temporary directory for updating the initrd..
dpkg: error processing package nvidia-l4t-initrd (–configure):
installed nvidia-l4t-initrd package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
nvidia-l4t-kernel
nvidia-l4t-initrd
E: Sub-process /usr/bin/dpkg returned an error code (1)

Also the output when running sudo nvbootctrl -t rootfs dump-slots-info
Current rootfs slot: A
Active rootfs slot: A
num_slots: 2
slot: 0, retry_count: 3, status: normal
slot: 1, retry_count: 3, status: normal

*** Please note that this reply is generated by LLM automatically ***

To resolve the rootfs AB issue on your Jetson Orin Nano, you need to reflash the board. Here’s a step-by-step guide to help you through the process:

Step 1: Determine the type of your Jetson module

To determine the type of your Jetson module, you need to check the output of the lsusb command. Open a terminal window on your host computer and enter the command lsusb. Look for the message that indicates the type of your Jetson module. In your case, since you have a Jetson Orin Nano, the output should show 0955:7523 or 0955:7623, which corresponds to the Jetson Orin Nano (P3767-0003 and P3767-0005 with 8GB) or Jetson Orin Nano (P3767-0004 with 4GB), respectively.

Step 2: Prepare the flashing environment

To flash your Jetson Orin Nano, you need to prepare the flashing environment. Make sure you have the following:

  • A Linux host computer
  • A USB cable to connect your Jetson Orin Nano to the host computer
  • The Linux_for_Tegra directory, which contains the flashing tools and scripts
  • The nv-oem-config setup files, which are included in the apply_binaries.sh script

Step 3: Flash the Jetson Orin Nano

To flash your Jetson Orin Nano, follow these steps:

  1. Connect your Jetson Orin Nano to the host computer using a USB cable.
  2. Open a terminal window on the host computer and navigate to the Linux_for_Tegra directory.
  3. Run the following command to flash the Jetson Orin Nano:

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -u <pkc_keyfile> [-v <sbk_keyfile>] --uefi-keys uefi_keys/uefi_keys.conf -p “-c ./bootloader/generic/cfg/flash_t234_qspi.xml” -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-orin-nano-devkit external

   Replace `<pkc_keyfile>` and `<sbk_keyfile>` with the actual file paths to your PKC and SBK key files, respectively.

**Step 4: Apply the nv-oem-config setup files**

After flashing the Jetson Orin Nano, you need to apply the `nv-oem-config` setup files. Run the following command:
   ```bash
sudo ./apply_binaries.sh -r <root>

Replace <root> with the actual mount point of the backup.img.raw file.

Step 5: Set the default target

To set the default target, run the following commands:

cd $root/etc/systemd/system
sudo rm default.target
sudo ln -s /lib/systemd/system/nv-oem-config.target default.target

Replace <root> with the actual mount point of the backup.img.raw file.

Step 6: Unmount the device

After setting the default target, unmount the device:

umount $root

Replace <root> with the actual mount point of the backup.img.raw file.

Step 7: Create a sparse version of the updated image file

To create a sparse version of the updated image file, run the following command:

sudo ./mksparse -v –fillpattern=0 /path/to/backup.img.raw system.img

Replace /path/to/backup.img.raw with the actual file path to the backup.img.raw file.

Step 8: Flash the system.img file

Finally, flash the system.img file to the target device. For details, see the documentation on cloning a Jetson device and flashing.

By following these steps, you should be able to resolve the rootfs AB issue on your Jetson Orin Nano and get your device up and running again.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

hello lazilynn,

I assume it’s not an issue with Rootfs-A/B, it should an issue that you were moving from r36.4.4 to r36.4.7 accidentally, right?
in order to avoid this, you may running sudo apt-mark hold to avoid apt update for overwriting your customize kernel.
for instance,
$ sudo apt-mark hold nvidia-l4t-display-kernel nvidia-l4t-kernel nvidia-l4t-kernel-dtbs nvidia-l4t-kernel-headers nvidia-l4t-kernel-oot-headers nvidia-l4t-kernel-oot-modules

BTW, please see-also UEFI automatic update? for reference.

Hi, thanks for replying. I don’t think I intended or ever attempted to move from r36.4.4 to r36.4.7. But I did run sudo apt install nvidia-l4t-kernel –only-upgrade, is this the command to install r36.4.7?
In the future I’ll definitely avoid overwriting the kernel. But right now is flashing the board the only option?

hello lazilynn,

I’m not sure the actual failure you’ve met,

according to above, it should not installed.

Hi,

Yes, that command can upgrade you to a newer Jetson Linux (L4T) release, depending on what NVIDIA APT repository your system is pointing to.

Does sudo apt install nvidia-l4t-kernel --only-upgrade install r36.4.7?

Yes, it can.

Jetson uses NVIDIA’s APT repositories, and the package nvidia-l4t-kernel is versioned by Jetson Linux release.

If your system’s APT sources point to the r36.4.7 repo, then running:

sudo apt install nvidia-l4t-kernel --only-upgrade

will upgrade your kernel to the r36.4.7 kernel package, even if the rest of the system is still r36.4.4.

This creates a mismatched system:

  • Rootfs still r36.4.4

  • Kernel now r36.4.7

That mismatch is exactly what can cause boot failures, module version errors, and driver breakage.

You can confirm what happened with:

dpkg -l | grep nvidia-l4t-kernel

and

apt-cache policy nvidia-l4t-kernel

I totally recommend reflashing the board in your case scenario.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.