ValveSoftware/SteamOS

[main][20230908.1000] Missing /etc/steamos-atomupd/client.conf breaks SteamOS updater

Closed this issue ยท 10 comments

Your system information

  • Steam client version:
  • SteamOS version: 20230908.1000
  • Opted into Steam client beta?: No
  • Opted into SteamOS beta?: main
  • Have you checked for updates in Settings > System?: Yes

Please describe your issue in as much detail as possible:

The newest update on the main channel 20230908.1000, does not include the /etc/steamos-atomupd/client.conf file which the SteamOS updater needs:

$ sudo steamos-update
Traceback (most recent call last):
  File "/usr/bin/steamos-atomupd-client", line 39, in <module>
    client.main()
  File "/usr/lib/python3.11/site-packages/steamosatomupd/client.py", line 951, in main
    ret = client.run()
          ^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/steamosatomupd/client.py", line 736, in run
    with open(args.config, 'r', encoding='utf-8') as f:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/etc/steamos-atomupd/client.conf'
Failed to check for updates

One could pick the file from the other slot as a fix:

mkdir -p /tmp/self /tmp/other
sudo mount -o ro /dev/disk/by-partsets/other/rootfs /tmp/other
sudo mount /dev/disk/by-partsets/self/rootfs /tmp/self
sudo btrfs property set /tmp/self  ro false
sudo cp -a /tmp/other/etc/steamos-atomupd/client.conf /tmp/self/etc/steamos-atomupd/
sudo btrfs property set /tmp/self  ro true
sudo umount /tmp/self /tmp/other
sudo mount -o remount /etc

Steps for reproducing this issue:

  1. Update to main 20230908.1000
  2. Check for updates
  3. Receive the error popup message

There's another missing file:

$ sudo steamos-update
Job for rauc.service failed because the control process exited with error code.
See "systemctl status rauc.service" and "journalctl -xeu rauc.service" for details.
Traceback (most recent call last):
  File "/usr/bin/steamos-atomupd-client", line 39, in <module>
    client.main()
  File "/usr/lib/python3.11/site-packages/steamosatomupd/client.py", line 951, in main
    ret = client.run()
          ^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/steamosatomupd/client.py", line 771, in run
    set_rauc_conf()
  File "/usr/lib/python3.11/site-packages/steamosatomupd/client.py", line 668, in set_rauc_conf
    subprocess.run(['systemctl', 'restart', 'rauc'], check=True)
  File "/usr/lib/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['systemctl', 'restart', 'rauc']' returned non-zero exit status 1.
Update failed
systemctl status rauc                      
ร— rauc.service - RAUC Update Service
     Loaded: loaded (/usr/lib/systemd/system/rauc.service; static)
     Active: failed (Result: exit-code) since Sun 2023-09-10 09:24:10 CEST; 19s ago
       Docs: https://rauc.readthedocs.io
    Process: 4895 ExecStart=/usr/bin/rauc --mount=/run/rauc service (code=exited, status=1/FAILURE)
   Main PID: 4895 (code=exited, status=1/FAILURE)
        CPU: 14ms

Sep 10 09:24:10 sakuradeck systemd[1]: Starting RAUC Update Service...
Sep 10 09:24:10 sakuradeck rauc[4895]: Failed to initialize context: Failed to load system config (/etc/rauc/system.conf): No such file or directory
Sep 10 09:24:10 sakuradeck systemd[1]: rauc.service: Main process exited, code=exited, status=1/FAILURE
Sep 10 09:24:10 sakuradeck systemd[1]: rauc.service: Failed with result 'exit-code'.
Sep 10 09:24:10 sakuradeck systemd[1]: Failed to start RAUC Update Service.

Missing /etc/rauc/system.conf

So

mkdir -p /tmp/self /tmp/other
sudo mount -o ro /dev/disk/by-partsets/other/rootfs /tmp/other
sudo mount /dev/disk/by-partsets/self/rootfs /tmp/self
sudo btrfs property set /tmp/self  ro false
sudo cp -a /tmp/other/etc/rauc/system.conf /tmp/self/etc/rauc/
sudo btrfs property set /tmp/self  ro true
sudo umount /tmp/self /tmp/other
sudo mount -o remount /etc

to fix

EDIT:

yikes

Update available
0%
100%
ERROR:client.py:938: Failed to install update file: Failed to install bundle: 1: installing
  0% Installing
  0% Determining slot states
 20% Determining slot states failed.
100% Installing failed.
LastError: Bootname or device of booted slot not found
idle
Installing `https://steamdeck-images.steamos.cloud/steamdeck/20230907.1000/steamdeck-20230907.1000-3.5.0.raucb` failed

Update failed

A

sudo steamos-bootconf set-mode reboot-other

Was necessary after all.

I updated to 20230907.1000 and the updater seems fine now.

Thanks for the information. Hopefully they fix this soon.

EDIT: I'm not having any issues currently? Not sure what they changed, but it's working now without having to follow the above steps.

I solved this issue by rebooting to previous slot via the PolicyKit helper which doesn't require sudo, so no password setup is actually needed:

/usr/bin/steamos-polkit-helpers/steamos-reboot-other

Thank you for the tips folks, saved my SD too.
How did you learn about steamos-reboot-other and "sudo steamos-update". Is this documented anywhere?
On a side note, I'm not sure if it's related, it was possible to switch partitions by holding QAM button (...) during startup, but I noticed that doesn't work anymore.
Actually, none of the held buttons during startup seem to work anymore (bios, boot manager, verbose boot).

@octopuserectus AFAIK there is no official documentation on SteamOS internals. Most of my knowledge comes from SteamOS sources and logs. The only community documentation effort I know is steamos-teardown and it wasn't much updated.

I didn't even know about switching partition by holding buttons. It may be broken in main branch as well. Since this switch is automatic when the OS has failed to boot, I think it's more handy to have a button for this action in the developer settings.

To Valve: please add steamos-reboot-other action button to Developer menu. It could have been very helpful in situations such as this.

Thanks for the report everyone.

Due to a last minute update one the steamos-customizaions-jupiter ended without any of the updater files. That is fixed now and new OS versions (main, beta, etc) dated 20230911 should be out shortly.

The problematic version was also pulled. For anyone having this issue - steamos-reboot --reboot-other will get you back into the other/older OS.

Looking through the images - 20230911.100 and 20230911.1000 seems to be out - although I didn't try them myself.

Can anyone check those out (should pop-up via the steam client UI) and let us know, how it goes.

Edit: Scratch that - images have been generated, but are not available via the client just yet. Still keep an eye open and let us know how it goes.

We had a few main and beta-candidate images since the above issue and the issue seems to be resolved on my end.

So unless the OP can provide details how the latest version is failing, I suspect we can close this?

Closing per the last comment.