You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(boot): WSL boot-blockers + mios-ai container user lookup
Five interlocking fixes for the boot-time failures surfaced by the
deployed WSL2 image (visible in journalctl as cascading service
failures + user-shell "Failed to connect to system/user scope bus"):
1. mios-ai container "unable to find user mios-ai":
- 50-mios-ai.conf: pin UID/GID to 817 (was dynamic, causing podman's
in-container /etc/passwd lookup to fail because the localai image
has no mios-ai user).
- mios-ai.container, mios-cockpit-link.container: switch
User/Group= from name to numeric 817:817. Same UID host-side and
container-side keeps shared-volume ownership consistent.
- mios-forgejo-runner.container: switch User=root to numeric 0
for parser parity with the other Quadlets.
2. dbus-daemon-wsl.service: remove OOMScoreAdjust=-900.
The WSL2 kernel restricts unprivileged OOM-score-adjust below 0;
setting -900 caused dbus-daemon to exit before binding the system
bus, dbus.socket retries hit the trigger limit, and every service
that needs the system bus (logind, polkit, NetworkManager,
homectl) cascade-failed with "Failed to connect to system scope
bus via local transport".
3. sshd port 22 collision on WSL2 mirrored networking:
New sshd.service.d/10-mios-wsl2.conf with ConditionVirtualization=!wsl.
Windows host's :22 (Microsoft OpenSSH) is already exposed inside
the distro via mirrored networking; sshd in MiOS can't bind. WSL
access goes through `wsl -d MiOS` from the host instead. Bare-metal,
Hyper-V, QEMU, and VM-shape deployments are unaffected -- sshd
binds :22 normally there.
4. /etc/subuid + /etc/subgid for the mios user (WSL firstboot):
wsl-firstboot now appends `mios:100000:65536` to both files if
absent. Without these, `wsl -d MiOS -- <gui-app>` aborts with
"no subuid ranges found for user 'mios' in /etc/subuid" when
podman/buildah's rootless path engages.
5. systemd user-session lingering (WSL firstboot):
`loginctl enable-linger mios` so the user-systemd manager and user
D-Bus session bus start at boot and survive without an interactive
login. `wsl -d MiOS -- <cmd>` enters the distro without spawning
a login shell; without lingering, GTK apps (ptyxis, epiphany)
surface "Cannot autolaunch D-Bus without X11 $DISPLAY" and
cgroupv2 falls back to cgroupfs.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Label=org.opencontainers.image.description=Self-hosted CI runner for the MiOS self-replication loop. Builds OCI images via podman build, signals bootc-switch.
0 commit comments