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
| Path | Survives 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.sha256The 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.