Fix wolf.sh: mount /home/retro/.local/share, not just .config
Confirmed live: Dolphin's "data is corrupted" / "could not write to/read from Wii system memory" was ~/.local/share/dolphin-emu (the emulated Wii NAND) not existing at all inside the container — ls: cannot access '/home/retro/.local/share/dolphin-emu/': No such file or directory Only /home/retro/.config had a persistent mount (retro-home, added earlier this session for the RetroArch permission-denied fix) — /home/retro/.local/share, the other half of the XDG base directory split many apps use (config vs. actual data), was never addressed and started completely empty on every container launch. Any NAND state Dolphin wrote mid-session vanished the moment that container was torn down, which is consistent with "corrupted" rather than merely "empty" if a session ended mid-write. Same fix as the earlier .config mount: a new retro-home-data host directory mounted at /home/retro/.local/share in both the esde and retroarch app profiles (both CATALOG copies), forced to 1000:1000 ownership like the other retro-home dirs since the container's retro user is hardcoded to that uid regardless of the host account.
This commit is contained in:
+16
-8
@@ -753,7 +753,7 @@ UDEV
|
||||
"$GAME_STORAGE_DIR/steam-cache" \
|
||||
"$GAME_STORAGE_DIR/bios" "$GAME_STORAGE_DIR/retroarch/cores" \
|
||||
"$GAME_STORAGE_DIR/retroarch/shaders" "$GAME_STORAGE_DIR/retroarch/overlays" \
|
||||
"$GAME_STORAGE_DIR/retro-home"
|
||||
"$GAME_STORAGE_DIR/retro-home" "$GAME_STORAGE_DIR/retro-home-data"
|
||||
|
||||
# ── Wolf state folder on the game drive ───────────────────────────────────
|
||||
# This is the clean way to keep Steam (and everything else) off the OS
|
||||
@@ -805,13 +805,17 @@ UDEV
|
||||
|
||||
chown -R "$ACTUAL_USER:$ACTUAL_USER" "$GAME_STORAGE_DIR" 2>/dev/null || true
|
||||
# The GoW app containers' 'retro' user is hardcoded to uid 1000 regardless
|
||||
# of what ACTUAL_USER's own uid happens to be — force these two directly
|
||||
# onto 1000:1000 so they're writable inside the container even when
|
||||
# ACTUAL_USER isn't uid 1000. Both are mounted at/under /home/retro/.config
|
||||
# (see the esde/retroarch CATALOG mounts) — retro-home in particular is
|
||||
# what /home/retro/.config itself binds to, so anything an app writes
|
||||
# there directly (Waybar, Sway, RetroArch's own state) needs this.
|
||||
chown -R 1000:1000 "$GAME_STORAGE_DIR/retro-home" "$GAME_STORAGE_DIR/retroarch" 2>/dev/null || true
|
||||
# of what ACTUAL_USER's own uid happens to be — force these directly onto
|
||||
# 1000:1000 so they're writable inside the container even when
|
||||
# ACTUAL_USER isn't uid 1000. retro-home/retro-home-data back
|
||||
# /home/retro/.config and /home/retro/.local/share respectively (see the
|
||||
# esde/retroarch CATALOG mounts) — apps split state across both XDG dirs
|
||||
# (Waybar/Sway/RetroArch's own config lives under .config; Dolphin's
|
||||
# emulated Wii NAND in particular lives under .local/share/dolphin-emu —
|
||||
# confirmed live: "data is corrupted" / "could not write to/read from Wii
|
||||
# system memory" was this directory not existing at all, since only
|
||||
# .config had a persistent mount before this).
|
||||
chown -R 1000:1000 "$GAME_STORAGE_DIR/retro-home" "$GAME_STORAGE_DIR/retro-home-data" "$GAME_STORAGE_DIR/retroarch" 2>/dev/null || true
|
||||
log_success "Storage layout: $GAME_STORAGE_DIR/{roms/<system>/,steam,saves,media,emulators,...}"
|
||||
log_info "ES-DE ROM directories pre-created. Drop ROMs in the matching subfolder."
|
||||
|
||||
@@ -1444,6 +1448,7 @@ CATALOG = {
|
||||
f'{games}/media:/media:rw',
|
||||
f'{games}/bios:/home/retro/bioses:rw',
|
||||
f'{games}/retro-home:/home/retro/.config:rw',
|
||||
f'{games}/retro-home-data:/home/retro/.local/share:rw',
|
||||
f'{games}/retroarch:/home/retro/.config/retroarch:rw',
|
||||
f'{games}/emulators:/mnt/games/emulators:rw',
|
||||
f'{games}/emulators:/home/retro/Applications:rw'],
|
||||
@@ -1469,6 +1474,7 @@ CATALOG = {
|
||||
f'{games}/saves:/mnt/games/saves:rw',
|
||||
f'{games}/bios:/home/retro/bioses:rw',
|
||||
f'{games}/retro-home:/home/retro/.config:rw',
|
||||
f'{games}/retro-home-data:/home/retro/.local/share:rw',
|
||||
f'{games}/retroarch:/home/retro/.config/retroarch:rw'],
|
||||
env=STD_ENV, cap_add=STD_CAP, security_opt=[], ipc_mode='host',
|
||||
ulimits=[], privileged=False,
|
||||
@@ -2743,6 +2749,7 @@ CATALOG = {
|
||||
f'{games}/media:/media:rw',
|
||||
f'{games}/bios:/home/retro/bioses:rw',
|
||||
f'{games}/retro-home:/home/retro/.config:rw',
|
||||
f'{games}/retro-home-data:/home/retro/.local/share:rw',
|
||||
f'{games}/retroarch:/home/retro/.config/retroarch:rw',
|
||||
f'{games}/emulators:/mnt/games/emulators:rw',
|
||||
f'{games}/emulators:/home/retro/Applications:rw'],
|
||||
@@ -2768,6 +2775,7 @@ CATALOG = {
|
||||
f'{games}/saves:/mnt/games/saves:rw',
|
||||
f'{games}/bios:/home/retro/bioses:rw',
|
||||
f'{games}/retro-home:/home/retro/.config:rw',
|
||||
f'{games}/retro-home-data:/home/retro/.local/share:rw',
|
||||
f'{games}/retroarch:/home/retro/.config/retroarch:rw'],
|
||||
env=STD_ENV, cap_add=STD_CAP, security_opt=[], ipc_mode='host',
|
||||
ulimits=[], privileged=False,
|
||||
|
||||
Reference in New Issue
Block a user