How to backup 64g module system image and restore to 32g module

  • Basic Info:

hardware: jetson-agx-orin-devkit
JetPack : 6.2
Jetson Linux : 36.4.3

I using a 64g devkit, and backup the system partition , for example system-64g.img

and I flash the system-64g.img to a 32g module, and I encounter a issue as below console shows

[ 10.040837] pci 0005:00:00.0: Removing from iommu group 8
[ 10.040846] pci_bus 0005:00: busn_res: [bus 00-ff] is released
[ 10.626113] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
[ 26.970547] ERROR: mounting PARTUUID=020de4bd-9427-4f32-9029-1bb7f79811ac as /mnt fail…
[ 26.972014] ERROR: PARTUUID=020de4bd-9427-4f32-9029-1bb7f79811ac mount fail…
[ 26.973393] ttyTCU0: Press [ENTER] to start bash in 30 seconds…
[ 27.037573] Starting bash…

it seems that the partition uuid is not right, so how to resolve this issue?

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

Based on the provided context, it appears that you are experiencing an issue with flashing a system image from a 64GB Jetson AGX Orin development kit to a 32GB module. The error message suggests that the partition UUID is not correct.

To resolve this issue, you need to understand how the partition configuration works on Jetson devices. The partition configuration is described in the partition_config.txt file, which is used by the flash.sh script to flash the images to the device.

When you backup the system partition from a 64GB development kit, the resulting system64g.img file contains the partition configuration for a 64GB device. However, when you flash this image to a 32GB module, the partition configuration is not compatible, resulting in the error message.

To resolve this issue, you need to modify the partition configuration to match the 32GB module. You can do this by editing the partition_config.txt file and updating the partition sizes and UUIDs to match the 32GB module.

Here are the steps to follow:

  1. Extract the partition_config.txt file from the system64g.img file using the flash.sh script with the -x option:
$ sudo ./flash.sh -x system64g.img partition_config.txt
  1. Edit the partition_config.txt file to update the partition sizes and UUIDs to match the 32GB module. You can use a text editor or a tool like uuidgen to generate new UUIDs.
  2. Save the updated partition_config.txt file.
  3. Flash the updated partition_config.txt file to the 32GB module using the flash.sh script:
$ sudo ./flash.sh -u <pkc_keyfile> -v <sbk_keyfile> jetson-agx-orin-devkit internal

Replace <pkc_keyfile> and <sbk_keyfile> with the actual file names and paths.

By updating the partition configuration to match the 32GB module, you should be able to resolve the issue and successfully flash the system image to the device.

Note that if you are using a different Jetson module or development kit, the partition configuration may vary. It is essential to consult the Jetson Linux documentation and the specific device’s documentation to ensure that you are using the correct partition configuration.

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

Hi

How do you back up the system image of a NVIDIA Jetson device?
Should you follow the steps from the developer guide (see: developer guide) for this process?
Please provide a detailed explanation of each step involved in both backing up and restoring the Jetson system image.

Thank you.

backup : connect 64g module and copy the image to bootloader folder and rename it to system.img

sudo ./flash.sh -k APP -G system-64g.img jetson-agx-orin-devkit mmcblk0p1

flash: using 32g module

sudo ./flash.sh -r -k APP jetson-agx-orin-devkit mmcblk0p1

Hi,

Please ensure that the /etc/fstab file remains the same as the clean BSP version when restoring to other devices.

# /etc/fstab: static file system information.
#
# These are the filesystems that are always mounted on boot, you can
# override any of these by copying the appropriate line from this file into
# /etc/fstab and tweaking it as you see fit.  See fstab(5).
#
# <file system> <mount point>             <type>          <options>                               <dump> <pass>
/dev/root            /                     ext4           defaults                                     0 1

Thanks

the default /etc/fstab is below

cat /etc/fstab
# /etc/fstab: static file system information.
#
# These are the filesystems that are always mounted on boot, you can
# override any of these by copying the appropriate line from this file into
# /etc/fstab and tweaking it as you see fit.  See fstab(5).
#
# <file system> <mount point>             <type>          <options>                               <dump> <pass>
/dev/root            /                     ext4           defaults                                     0 1
UUID=FC8A-775D /boot/efi vfat defaults 0 1

so, am I need to delete the efi partiton in fstab? I’ll try that out

I try to comment out the line mount /boot/efi, and reboot the system, found this line is auto generated

Hi,

When the device boots up, certain services update the /etc/fstab file if the /boot/efi configuration not set.

Thanks

what is this “certain” services

the “certain” services update with UUID will cause this issue in this scenario

Hi,

Please access the device and check /opt/nvidia/l4t-bootloader-config/nv-l4t-bootloader-config.sh and search # Configure the /etc/fstab to mount esp automatically at boot time.

Thanks