ARCH R

Updating ArchR

How to upgrade to a new release without losing your saves and configs

ArchR doesn't ship over-the-air updates today — every new version is a full image release. The good news: re-flashing does not wipe your /storage partition (it has your saves, ROMs, configs). Only the BOOT and ROOT partitions are overwritten.


Update flow

Back up the things you can't easily re-create

Even though /storage survives the re-flash, paranoid is good. Over SSH:

# from your PC
scp -r root@archr.local:/storage/saves       ~/r36s-backup/saves/
scp -r root@archr.local:/storage/states      ~/r36s-backup/states/
scp -r root@archr.local:/storage/.config     ~/r36s-backup/config/
scp -r root@archr.local:/storage/screenshots ~/r36s-backup/screenshots/

ROMs are large; you don't need to back those up unless you've curated metadata in gamelist.xml per system.

Power off cleanly

ES → power button (long press) → Power Off. Ensures any pending writes hit the SD.

Flash the new image

Using the ArchR Flasher, pick the new image and the same panel/board you used before. The Flasher wipes the partition table and writes from scratch — wiping is what gives you a clean install.

Alternatively: dd if=ArchR-R36S.aarch64-DATE-*.img of=/dev/sdX bs=4M conv=fsync status=progress.

First boot

The first boot of the new image resizes the storage partition to use the full SD again, then reboots. Boot 2 sees that /storage/.config already has your data and skips re-creation. ROMs intact. Saves intact. Custom themes intact.

Verify

ES boots. Your ROM library is there. Your save-states load. Your custom configs are intact.

If something looks off, restore selectively from the backup you took in step 1.


What gets reset by a re-flash

PathSurvives re-flash?
/ (ROOT, ext4)❌ Replaced
/flash (BOOT, FAT32)❌ Replaced
/storage/roms/✅ Survives
/storage/saves/✅ Survives
/storage/states/✅ Survives
/storage/screenshots/✅ Survives
/storage/.config/✅ Survives
/storage/.cache/services/*.conf✅ Survives — your enabled services persist
Theme overrides in /storage/.emulationstation/themes/✅ Survives

Said differently: everything you put on the SD as a user survives. Everything that comes from the image gets replaced.

The only edge case: if you customized something in /etc/ or /usr/ directly (over SSH, as root), that's gone — those live on ROOT. Persistent customizations belong in /storage/.config/ or /etc/profile.d/ (which 045-userconfig regenerates from /storage/.config/profile.d/ if present).


Going back

Same flow in reverse: re-flash an older image. /storage data created on a newer ArchR may have config schema deltas the older one doesn't recognise — usually it falls through to defaults gracefully, but in extreme cases (renamed settings) you may need to re-toggle a few options.


Manual update (without the Flasher)

If you only have an older .img.gz:

# decompress
gunzip ArchR-R36S.aarch64-*.img.gz

# write
sudo dd if=ArchR-R36S.aarch64-*.img of=/dev/sdX bs=4M conv=fsync status=progress

# (optional) verify checksum
sha256sum -c ArchR-R36S.aarch64-*.img.gz.sha256

The Flasher additionally wipes the FAT BOOT signatures (1 MB at start + 1 MB at end of the disk) before dd, which prevents stale partition tables from confusing U-Boot. Manual dd doesn't do this — if you see a black screen after re-flashing manually, run:

sudo dd if=/dev/zero of=/dev/sdX bs=1M count=1
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=1 \
        seek=$(( $(blockdev --getsize64 /dev/sdX) / 1024 / 1024 - 1 ))

Then re-dd the image.


When OTA arrives

Future releases may ship .tar update bundles dropped at /storage/.update/ — same mechanism ROCKNIX uses. Until then, re-flash is the path.

On this page