NVIDIA experts, I am using the latest version of r38.4 and have found that nvbootctrl set-active-boot-slot can successfully switch between slot A and slot B. However, after upgrading slot B bootloader from slot A, the system switches to slot B on boot, but the rootfs is still nvme0n1p1. What’s going on here?I feel it should correspond to nvme0n1p2.
root@tegra-ubuntu:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p1 177G 28G 140G 17% /
tmpfs 62G 140K 62G 1% /dev/shm
tmpfs 25G 23M 25G 1% /run
tmpfs 5.0M 8.0K 5.0M 1% /run/lock
efivarfs 256K 12K 245K 5% /sys/firmware/efi/efivars
/dev/nvme0n1p5 505M 78K 505M 1% /boot/efi
tmpfs 13G 112K 13G 1% /run/user/121
tmpfs 13G 96K 13G 1% /run/user/0
root@tegra-ubuntu:~# nvbootctrl dump-slots-info
Current version: 38.4.0
Capsule update status: 1
Current bootloader slot: B
Active bootloader slot: B
num_slots: 2
slot: 0, status: normal
slot: 1, status: normal
I can switch to slot B using set-active-boot-slot, and I see it shows nvme0n1p2. when I check with fdisk -l, I can see that there are two rootfs partitions.
root@tegra-ubuntu:~# fdisk -l
Disk /dev/loop0: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Disk /dev/nvme0n1: 3.73 TiB, 4096805658624 bytes, 8001573552 sectors
Disk model: S1200ITT4-T2M24T-C1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 340E1840-0C92-4A3B-9CC2-F73B7FE1E879
Device Start End Sectors Size Type
/dev/nvme0n1p1 5591104 383078463 377487360 180G Microsoft basic data
/dev/nvme0n1p2 383078464 760565823 377487360 180G Microsoft basic data
/dev/nvme0n1p3 40 204839 204800 100M Microsoft basic data
/dev/nvme0n1p4 204840 206375 1536 768K Microsoft basic data
/dev/nvme0n1p5 206376 1254951 1048576 512M EFI System
/dev/nvme0n1p6 1254952 2042919 787968 384.8M Microsoft basic data
/dev/nvme0n1p7 2042920 2247719 204800 100M Microsoft basic data
/dev/nvme0n1p8 2247720 2249255 1536 768K Microsoft basic data
/dev/nvme0n1p9 2249256 3297831 1048576 512M Microsoft basic data
/dev/nvme0n1p10 3297832 4085799 787968 384.8M Microsoft basic data
/dev/nvme0n1p11 4085824 4905023 819200 400M Microsoft basic data
/dev/nvme0n1p12 4905024 5591103 686080 335M Microsoft basic data
One thing I’d like to add is that I modified the UEFI, and possibly disabled some configurations. I don’t think these should have any impact, though.
Switching via nvbootctrl set-active-boot-slot works normally, but it’s not working properly through the update capsule.
root@tegra-ubuntu:~# nvbootctrl dump-slots-info
Current version: 38.4.0
Capsule update status: 0
Current bootloader slot: B
Active bootloader slot: B
num_slots: 2
slot: 0, status: normal
slot: 1, status: normal
root@tegra-ubuntu:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p2 177G 28G 140G 17% /
tmpfs 62G 140K 62G 1% /dev/shm
tmpfs 25G 23M 25G 1% /run
tmpfs 5.0M 8.0K 5.0M 1% /run/lock
efivarfs 256K 12K 244K 5% /sys/firmware/efi/efivars
/dev/nvme0n1p5 505M 78K 505M 1% /boot/efi
tmpfs 13G 96K 13G 1% /run/user/0
tmpfs 13G 112K 13G 1% /run/user/121
root@tegra-ubuntu:~#
Could you share the full log when you were generating the capsule payload on the host?
And also, the log when you performed capsule update on the board.
It may not affect the result, but it will be great if you can also verify on the devkit w/o any custom change.
I’m not clear why the log messages look deprecated.
It was booting from slot A, and switched to slot B after update as expected.
There’re some register access error after boot up and it triggers the reboot!?
Sorry, I might not have explained clearly above. Both the capsule update and reboot were performed by me through SSH login to the board. Please refer to the log above: 192.168.137.11 (root)_2026-01-16-115731.log.
We are verifying if the similar issue can be reproduced on our AGX Thor devkit.
At the meantime, please check the follow result when you hit the issue.
I did check the dump-slots-info at that time, Please refer to the log above: 192.168.137.11 (root)_2026-01-16-115731.log. and the information for -t rootfs. I’ll try it again later on my end.actually , I’ve also checked -t rootfs is-rootfs-ab-enabled before, i remember there was no prompt or output.
Okay, we may identify what causes the current issue.
You might lost adding ROOTFS_AB=1 when you were generating the BUP.
Please refer to the following commands which has been verified from us locally. (On AGX Thor devkit with JP7.1GA)
I am using a Single-Spec BUP. I referred to the command below, but I didn’t add ROOTFS_AB=1 when generating it. The command you mentioned above is for Multi-Spec BUP. Can I add the ROOTFS_AB=1 parameter to my command as well?
We haven’t yet tried adding ROOTFS_AB=1 to build_l4t_bup.sh for generating a single-spec BUP. I suggest using the commands I shared previously for verification, as they are confirmed to work. Additionally, it would be worthwhile to test ROOTFS_AB=1 during the single-spec BUP generation process.
There is another question I would like to ask. After I set set-active-boot-slot in NFS and reboot, can the system switch successfully? I just manually set the boot from nvme to slot1, but the root filesystem of slot1 is abnormal, and I found that I cannot enter slot1. So, I wanted to switch to slot0 without reflashing the device. Therefore, I accessed the system via NFS, but I found that the switch did not take effect.
Please check the relevant logs in BPMP.txt and CCPLEX0.txt below.So, how can I enter slot0 without reflashing the device now?I am now trying to replace nvme0n1p2 in NFS.
Assuming that we are already in slot B, I manually switched from A to B, so I believe the slot A status in the UEFI menu should be normal. Setting the status through the menu should not cause a switch back to slot A. Later, I repaired the rootfs of slot B in NFS, and only after successfully booting into slot B could I manually switch back to slot A.
Sorry that the logs are separate so that I can not map their order.
Could you help to capture the log w/o using demuxer tool?
There may be the slot related information in the serial console log of MB1/MB2.