Skip to main content

Migrate /home Data from Jetson Orin Nano Developer Kit to reComputer

Introduction

When moving from an NVIDIA Jetson Orin Nano Developer Kit to a Seeed Studio reComputer, you may want to keep your user workspace, project files, Conda environments, scripts, and application data. However, restoring a full developer kit system image directly onto a reComputer is not recommended because the carrier board, device tree, bootloader, and BSP configuration are different.

This wiki shows how to use the reComputer Classic backup to Super migration project to migrate only /home from the source Jetson Orin Nano Developer Kit to a target reComputer. In this guide, reComputer J4012 and reComputer Super J4012 are used as target examples. Flash the target reComputer with its matching Seeed JetPack 6 BSP first, then restore the /home package on top of that clean reComputer system.

Hardware Reference

This guide uses the Jetson Orin Nano Developer Kit as the source device and reComputer J4012 / reComputer Super J4012 as target examples. The same /home-only migration idea can also be used for other Jetson-to-reComputer combinations when both systems are running JetPack 6 / L4T R36 and the target has been flashed with its matching Seeed BSP.

Source DeviceTarget Example 1Target Example 2

Jetson Orin Nano Developer Kit


reComputer J4012

reComputer Super J4012

What This Migration Does

The migration package contains:

  • /home
  • source system metadata
  • /home user and group metadata
  • manually installed APT package list, if available
  • installed dpkg package list, if available
  • package checksums

It intentionally does not restore:

  • /boot
  • /boot/dtb
  • /lib/modules
  • /usr/lib/modules
  • /etc/nv_boot_control.conf
  • /etc/fstab
  • bootloader partitions
  • board-specific BSP files
caution

This workflow is for user data migration, not full system cloning. Applications installed under /usr, services configured under /etc, Docker images under /var/lib/docker, and system-level BSP changes are not migrated. Reinstall or reconfigure those components on the target reComputer after the /home restore.

Prerequisites

  • Source NVIDIA Jetson Orin Nano Developer Kit running JetPack 6 / L4T R36
  • Target reComputer J4012 or reComputer Super J4012 running its matching Seeed JetPack 6 BSP
  • Network access or removable storage to transfer the package
  • Enough free space for a compressed /home backup package
  • git, tar, sha256sum, awk, and find
note

Before restoring the package, flash the target reComputer with the correct Seeed firmware. For reComputer J4012, refer to Flash JetPack OS to J401 Carrier Board. For reComputer Super J4012, refer to Getting Started with reComputer Super.

Workflow Overview

  1. Flash the target reComputer with the matching Seeed JetPack 6 BSP.
  2. Clone the migration project on the source Jetson Orin Nano Developer Kit.
  3. Create a /home migration package on the source device.
  4. Copy the package to the target reComputer.
  5. Inspect or dry-run the restore on the target.
  6. Restore /home on the target and reboot.
  7. Reinstall any required system packages or services that are outside /home.

Backup on the Source Jetson Orin Nano Developer Kit

Step 1. Install git if it is not already installed.

sudo apt update
sudo apt install -y git

Step 2. Clone the migration project.

git clone https://github.com/jjjadand/reComputer_classic-backup-to-super.git
cd reComputer_classic-backup-to-super
chmod +x *.sh

Step 3. Create a backup package.

Replace /path/to/output with a directory that has enough free space, such as a USB drive, external SSD, or a shared network folder.

sudo ./backup_home_jp6.sh -o /path/to/output

After the backup finishes, you will see two files:

jetson-home-jp6-<hostname>-<timestamp>.tar.gz
jetson-home-jp6-<hostname>-<timestamp>.tar.gz.sha256

By default, the script excludes common cache directories to reduce package size:

/home/*/.cache
/home/*/.ccache
/home/*/.nv/ComputeCache
/home/*/.npm/_cacache
/home/*/.local/share/Trash
/home/*/.local/share/gvfs-metadata

If you need a closer copy of the user cache data, add --include-caches:

sudo ./backup_home_jp6.sh -o /path/to/output --include-caches

If you need to exclude additional data, create an exclude file with tar exclude patterns and pass it to the script:

sudo ./backup_home_jp6.sh -o /path/to/output --exclude-file /path/to/exclude-patterns.txt
info

The backup script uses --one-file-system for /home. If you mount external storage inside /home, back up that mounted data separately.

Inspect the Backup Package

Before restoring, you can inspect the package on either the source device or the target device.

./inspect_home_package.sh /path/to/jetson-home-jp6-xxx.tar.gz

The inspect command verifies the package checksum and prints the package format, source system metadata, source /home users, and the first entries in the /home archive.

Copy the Package to the Target reComputer

Copy the .tar.gz package to the target reComputer. For example, using scp:

scp /path/to/jetson-home-jp6-xxx.tar.gz seeed@<recomputer-ip>:/home/seeed/

You can also copy the package using a USB drive or external SSD.

note

Keep the .sha256 file as an external checksum record. The restore script also verifies the checksums embedded inside the migration package.

Restore on the Target reComputer

Step 1. Make sure the target reComputer has already been flashed with the correct Seeed JetPack 6 BSP and completed the first boot setup.

Step 2. Clone the migration project on the target.

git clone https://github.com/jjjadand/reComputer_classic-backup-to-super.git
cd reComputer_classic-backup-to-super
chmod +x *.sh
note

The restore script name contains super because the original project was created for a reComputer Super migration scenario. In this guide, it is still used only to verify and overlay the /home package on the selected reComputer target.

Step 3. Run a dry run first.

./restore_home_on_super_jp6.sh --dry-run /home/seeed/jetson-home-jp6-xxx.tar.gz

The dry run verifies the package and prints a summary without restoring files.

Step 4. Restore the package.

sudo ./restore_home_on_super_jp6.sh --create-users /home/seeed/jetson-home-jp6-xxx.tar.gz

The --create-users option creates missing source users and groups by UID/GID before extracting the package. This helps preserve file ownership when the source user does not yet exist on the target reComputer system.

By default, the restore script creates a rollback archive of the current target /home before overlaying the source package:

/var/backups/jetson_home_migration/super-home-before-restore-<timestamp>.tar.gz

If /var/backups does not have enough space, use another backup directory:

sudo ./restore_home_on_super_jp6.sh --create-users --backup-dir /path/to/backup-dir /home/seeed/jetson-home-jp6-xxx.tar.gz

Only use --no-backup if you already have a separate backup of the target /home:

sudo ./restore_home_on_super_jp6.sh --create-users --no-backup /home/seeed/jetson-home-jp6-xxx.tar.gz
caution

The restore operation overlays files onto /home. It overwrites matching files from the package, but it does not delete files that exist only on the target.

Step 5. Reboot the target.

sudo sync
sudo reboot

Validate the Migration

After the target reComputer reboots, check the restored users and files:

ls -lah /home
id <source-user>
du -sh /home/<source-user>

Then validate your application data and user environments:

ls -lah /home/<source-user>/projects
conda env list
python3 --version

If you use Jetson tools such as jtop, run them again on the target reComputer:

jtop
info

If an application command is missing after migration, it was probably installed outside /home. Use the metadata in the package to check the source package list, then reinstall the required software on the target reComputer system.

Roll Back the Target /home

If you need to restore the target /home state that existed before migration, use the rollback archive created by the restore script.

sudo tar --extract \
--gzip \
--file /var/backups/jetson_home_migration/super-home-before-restore-xxx.tar.gz \
--directory / \
--preserve-permissions \
--same-owner \
--acls \
--xattrs \
--xattrs-include='*' \
--numeric-owner \
--overwrite

sudo sync
sudo reboot

Troubleshooting

The Script Warns That the System Does Not Look Like JetPack 6

The scripts check /etc/nv_tegra_release and expect L4T R36. Confirm that both the source and target are running JetPack 6.

cat /etc/nv_tegra_release

File Ownership Looks Numeric After Restore

This usually means the target does not have the same UID/GID users as the source. Run the restore command with --create-users, or manually create users with matching UID/GID before restoring.

The Package Is Too Large

Use the default cache exclusions, remove unnecessary files from /home, or provide an additional exclude pattern file with --exclude-file.

Some Files Changed During Backup

The backup script accepts tar status 1, which usually means live files changed during the backup. Close running applications and repeat the backup if the changed files are important.

Docker Images or System Services Are Missing

This migration only restores /home. Docker images, system services, APT-installed applications, and files under /etc, /usr, and /var need to be reinstalled or reconfigured on the target reComputer system.

Resources

Tech Support & Product Discussion

Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.

Loading Comments...