I found that the issue was caused by the /etc/fstab file, which still contained the previous hard drive configuration:
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=FB2A-A65C /boot/efi vfat defaults 0 1
After removing this UUID entry, the system was able to boot normally. However, a new configuration UUID entry is automatically generated in the fstab file.
I checked the fstab configuration in JP6.0 and noticed that it does not include any UUID entry.
What is the purpose of this configuration? Is there a way to prevent it from being generated?
If remove the UUID configuration in fstab and reboot, the system can boot normally, but the UUID configuration is restored.
I think this issue arises in JP6.1, when I clone JP6.0 rootfs, there was no UUID configuration in the fstab.
Using grep, I found that the issue might be caused by lines 828 to 898 in the file Linux_for_Tegra/rootfs/opt/nvidia/l4t-bootloader-config/nv-l4t-bootloader-config.sh.
Comparing the nv-l4t-bootloader-config.sh files in JP6.0 and JP6.1, I noticed that this part was newly added. nv-l4t-bootloader-config.sh-JP6.0.txt (18.8 KB) nv-l4t-bootloader-config.sh-JP6.1.txt (29.0 KB)
We came across the same issue when using the l4t_backup_restore.sh approach, on every boot, the efi entry is added to the fstab. So before taking a backup image, we had to remove the entry from the fstab and then take the backup. Otherwise, when restoring to a different carrier board, the system would be stuck on boot.
Is this behavior wanted?
I deleting the EFI entry from fstab before creating a backup image, and the clone.img restoring to another board can boot normally.
I also tried commenting out lines 870-871 in /Linux_for_Tegra/rootfs/opt/nvidia/l4t-bootloader-config/nv-l4t-bootloader-config.sh during system customization. This prevented the EFI entry from appearing in fstab, and the system can boot normally.
# Configure the /etc/fstab to mount esp automatically at boot time.
# sed -i '/UUID='"${esp_uuid}"'/d' "${FS_TABLE}"
# sed -i '$a\UUID='"${esp_uuid}"' '"${ESP_MOUNT_POINT}"' vfat defaults 0 1' "${FS_TABLE}"
I’m not sure which method is appropriate, nor do I know if this behavior is necessary.