Can I have A/B file system redundancy on TX2 NX?

Just wondering can we have two root file systems in the Jetson TX2 NX device if boots from NVMe drive? The internal 16 GB eMMC is probably not sufficient for rootfs redundancy.

So I am planning to flash the JetPack onto NVMe drive according to this guide.

Hi,

Please try to read initrd flash workflow in README_initrd_flash.txt.

There is one for Rootfs A/B in external drive.

Thanks Wayne. I have tried with initrd_flash tool. However, I am having some problems and still have some questions:

1. Before running the following command, how should I prepare the NVMe drive? Do I format it on the Jetson device? Should I just format it and add an EXT4 partition as “nvme0n1p1”? Or is this step unnecessary?

sudo ROOTFS_AB=1 ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1 -c ./tools/kernel_flash/flash_l4t_nvme_rootfs_ab.xml -S 8GiB --showlogs jetson-xavier-nx-devkit-tx2-nx external

2. I am using a 250 GB NVMe drive. do I just need to modify the nvm_sectors in file “flash_l4t_nvme_rootfs_ab.xml” and keep the rest as default? I am trying to use the default setting.

The size of the partition nvme0n1p1 is 250GB (250,058,113,024 bytes), I just change num_sectors to 488394752.

Here is my log
log1.txt (119.0 KB)
.
showing
"[ 3]: l4t_flash_from_kernel: Error: partprobe failed. This indicates that:

  • the xml indicates the gpt is larger than the device storage
  • the xml might be invalid
  • the device might have a problem.
    Please make correction.
    Cleaning up…"

Do you see any problems with my steps above?

Last fundamental question: does TX2 NX support “Flashing with initrd”
with NVIDIA’s Jetpack 4.6? Ridgerun page says TX2 NX is not supported.

Updates with Release 32.7.1

  1. I use sudo mkfs.ext4 /dev/nvme0n1 to format the disk

  2. Check the sector size and size of NVMe using

Sector size: cat /sys/block/nvme0n1/queue/hw_sector_size
Size: cat /sys/block/nvme0n1/size

and then replace the num_sectors in flash_l4t_nvme_rootfs_ab.xml.

  1. Perform the following command, still getting the same error.

sudo ROOTFS_AB=1 ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1 -c ./tools/kernel_flash/flash_l4t_nvme_rootfs_ab.xml -S 8GiB --showlogs jetson-xavier-nx-devkit-tx2-nx external

error `Writing primary_gpt partition done
Error: Invalid argument during seek for read on /dev/sda
[ 3]: l4t_flash_from_kernel: Error: partprobe failed. This indicates that:

  • the xml indicates the gpt is larger than the device storage
  • the xml might be invalid
  • the device might have a problem.
    Please make correction.
    Error flashing non-qspi storage’

Do I miss anything?

Sorry for the late response, is this still an issue to support? Thanks

Hi Kayccc,
Thanks for asking. I have fixed the problem by modifying the sector_number. Although the developer guide (for release 32.6.1) says Flashing with initrd Applies to: Jetson Xavier NX and Jetson AGX Xavier series only, it actually applies to TX2 NX for both Jetpack 4.6 and 4.6.1.