-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Whole system crash after upgrading SteamOS #20
Comments
So I reinstalled rootfs partitions via recovery image, and It can be reproduced again with following steps:
|
I think the We still need to follow ArchLinux's system maintenance guide, Partial Upgrade is not supported by rolling release distro and will always break things, install packages without We need to rethink how to keep the system from crashing. |
You have a good point. This project doesn't stop you from shooting yourself in the foot, which is exceedingly easy if you're switching between SteamOS branches. I'm not sure how we could safely recover from that, yet. Thanks for reporting! |
I can confirm that each branch of SteamOS uses its own pacman repo setting currently for rwfus: |
Is this fixed ? I just made an update of SteamOS after installing rwfus and now my Steam Deck is stuck at the Steam Deck logo and wont boot. Although, I want to point out that it was not a update channel switch that caused my Steam Deck to crash since I was on Beta already when I first installed rwfus. It's only the latest update of that channel that did cause my Steam Deck to not boot. |
Nvm. I see that you did give some instructions on how to do that above. I'm gonna try that.` |
After reinstalling SteamOS and updating to the latest (with the SteamOS 3.4 update), I tried to install rwfus and then I got errors about glibc 2.34 not found. The system then stopped working right after I ran the |
Reopening this, because two people having similar issues, one without prompting, can't be a coincidence. I'm visiting family right now, so I can't promise a quick resolution, but I'll look into it when I have the chance. |
@sim590 Did you happen to install any packages which rely on glibc before updating? I'm failing to reproduce this with rwfus dev on SteamOS 3.4.3 Preview |
FYI: Recent SteamOS update pulled new snapshot of Arch Linux, which contains a GLIBC update(2.34 to 2.36). so a old glibc remained in rwfus overlay will conflict with newer ABI requirement see this Stable Channel Release Note |
@sim590 btw you can fix your Deck without reinstalling by:
|
This issue may also related to Valve's pacman repository since their repo is not really consistent |
Had to reinstall SteamOS after the recent update because my Deck was stuck on the logo at boot as well. |
Thanks! That worked like a charm. However, would there have been another way to do this in order to keep my installed packages? The idea of using rwfus is to do just that, so I would like a way to do that while waiting for a fix, but I don't really know how. I guess that the part where I did
Yeah. That must be what happened. Hope this doesn't happen too often until we find a way to solve this cleanly.
Here is my |
@sim590 there is really no good way to avoid this conflict issue, especially a system-wide dependency like GLIBC. do a full system package upgrade(pacman with -Syu) on current SteamOS branch before upgrading your SteamOS maybe a possible way to avoid this, though there is no guaranty on this :D |
I'll update the install notes. |
@ValShaped I did explicitly run Actually, this here explains pretty much what I experienced before reinstalling https://steamcommunity.com/app/1675200/discussions/0/5135803832902211410/ |
I don't think I can fix this. It's one case where I think the smart thing to do would be |
I think we can try recording current SteamOS version to but if |
Installing user-mode softwares on a rolling release, like Arch Linux, also possibly required to a core libraries upgrading afaik. |
Bearing in mind that Valve doesn't tend to update packages on non- Regarding your solution of flag files, I think the presence or absence of those files would be sufficient, however, I'm not sure of the operating environment after a mismatched glibc trashes everything. |
The goal is to make sure user can run basic commands, so at least they can fix their system without a recovery media drive, more integrity tests can be introduced later as this project goes on |
Since Rwfus is written entirely in Bash, it's reliant on everything else still functioning, as far as I know. That's what "I'm not sure of the operating environment" refers to; Is Rwfus capable of surviving? How would I know if it did? |
I'm adding an explicit check for glibc's presence in the next beta; if present, Rwfus will not mount the overlays and log an error. |
As it turns out, the default pacman.conf explicitly ignores glibc updates. Deactivating after an unsuccessful boot should go on the roadmap, but for a variety of reasons I can't support reinstalling glibc. |
Hey, I installed glibc the other day. What steps can I take to undo this so I don't get a system crash the next update? (I would guess a simple Edit: I'm just reinstalling rwfus, I don't wanna risk having to reformat my Deck. |
I'm sure there's an easy way to do it, but I'm not confident enough with |
So I appreciate this, but fwiw, I had installed glibc via rwfus (I'm guessing from when I installed Ironically, when I pulled in the latest changes to rwfus' dev branxh and ran Once I downgraded to the last tag and reran What I suspect is going on here is that I haven't added any new mirrors--I still get all my packages from the Valve repos. Please correct me if I'm wrong, but I believe this means that system upgrades with rwfus are perfectly safe for me, since Valve isn't including anything in the persistent filesystem that's not sourced from there, so long as I perform a I'm being a little glib (🥁) here, as I probably don't want to actually go through with an update that installs overlays for newer versions of packages that are solely part of the persistent filesystem, but:
|
@OpenBagTwo I'm glad it worked out for you! Unfortunately, the issue isn't with adding software from other repos -- that should be perfectly fine, as long as that software isn't glibc. The issue lies when Valve updates their glibc dependency in the SteamOS base image, and a Rwfus user has it installed in the overlay. When Rwfus activates, glibc is downgraded to whatever version the user has installed. It's a critical flaw in the design of Rwfus, and one I really don't know how to fix well enough for an inexperienced user. As far as I know, Valve doesn't update glibc in the SteamOS base image very often, but they did just before this issue was opened, as part of the SteamOS 3.4 beta (and for everyone else as part of the SteamOS 3.4 update). Different SteamOS branches use different pacman repositories (currently they're *-rel and *-main, previously *-beta and *-main), so there's no clean way to update glibc except to pull in the glibc version from the branch you intend to switch to before switching. As for a "do as I say" option, I could add something to the config file for that, sure. I'll work on that when I get home this evening. Also, if you're running out of space, you can update the Disk_Image_Size config option in /etc/opt/rwfus.conf to whatever size you want, (i.e. 16G,) then run |
Are you saying that as long as your glibc is at least as new as the one that Valve uses, you'll be okay? I guess the part I'm confused by is the recommendation to avoid |
That recommendation is there to keep people from accidentally installing base SteamOS packages in their Rwfus directory. If you already have base SteamOS packages in yours, go ahead and ignore it. However, I consider that basically equivalent to enabling steamos-devmode and running everything on the bare filesystem, with the added benefit of having to get a physical mouse and keyboard out and enter single-user mode whenever it breaks. |
SteamOS 3.5 has a
As a package manager, Nix is equipped to do dependency management across packages with incompatible dependencies (like, for example, versions of glibc,) which Rwfus has no clean way to do. As such, the workaround instituted in 0.4.2/0.5.0 will be staying. |
Step to reproduce:
pacman -Sy glibc
The text was updated successfully, but these errors were encountered: