Hi,
I am deploying multiple Jetson Orin NX devices and noticed that both flashing and backup/restore workflows result in identical /etc/machine-id values across all devices.
Environment
JetPack 6.2 / L4T R36.4.3
Reference documentation:
Jetson Linux download:
Flash workflow
I use l4t_initrd_flash.sh with NVMe rootfs:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh \
--external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_t234_nvme.xml \
-p "-c bootloader/generic/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 \
jetson-orin-nano-devkit internal
Backup/restore workflow
I also tested backup and restore using:
sudo ./tools/backup_restore/l4t_backup_restore.sh \
-e nvme0n1 \
-b jetson-orin-nano-devkit
Restore:
sudo ./tools/backup_restore/l4t_backup_restore.sh \
-e nvme0n1 \
-r jetson-orin-nano-devkit
After restoring the image onto multiple devices, all boards still share the same:
- /etc/machine-id
- /var/lib/dbus/machine-id
Observation
On the host side:
cat ~/Linux_for_Tegra/rootfs/etc/machine-id
cat ~/Linux_for_Tegra/rootfs/var/lib/dbus/machine-id
Content:
5dbfb12414a3456d9014d88183e338b1
It appears that both flashing and backup/restore workflows copy the entire rootfs directly, including:
/etc/machine-id
/var/lib/dbus/machine-id
As a result, all deployed devices end up with the same machine identity.
Questions
- Is this expected behavior in JetPack 6.2?
- Does NVIDIA officially recommend removing /etc/machine-id before flashing or backup?
- Is there an official first-boot initialization mechanism for regenerating unique IDs?
- Should oem-config or cloud-init regenerate machine-id automatically?
- What is the recommended mass-production workflow for Jetson devices?
Current workaround
Currently I manually regenerate machine-id on first boot:
sudo rm -f /etc/machine-id
sudo rm -f /var/lib/dbus/machine-id
sudo systemd-machine-id-setup
Would appreciate any official guidance or recommended production workflow.
Thanks!