Silverblue is an operating system for your desktop built on Fedora Linux. It’s excellent for daily use, development, and container-based workflows. It offers numerous advantages such as being able to roll back in case of any problems. Let’s see the steps to upgrade to the newly released Fedora 38 Beta, and how to revert if anything unforeseen happens.
Before attempting an upgrade to the Fedora 38 Beta, apply any pending upgrades.
Updating using terminal
Because the Fedora 38 Beta is not available in GNOME Software, the whole upgrade must be done through a terminal.
First, check if the 38 branch is available, which should be true now:
$ ostree remote refs fedora
You should see the following line in the output:
fedora:fedora/38/x86_64/silverblue
If you want to pin the current deployment (this deployment will stay as option in GRUB until you remove it), you can do it by running:
# 0 is entry position in rpm-ostree status $ sudo ostree admin pin 0
To remove the pinned deployment use following command (2 corresponds to the entry position in rpm-ostree
status
):
$ sudo ostree admin pin --unpin 2
Next, rebase your system to the Fedora 38 branch.
$ rpm-ostree rebase fedora:fedora/38/x86_64/silverblue
Finally, the last thing to do is restart your computer and boot to Fedora Silverblue 38 Beta.
How to revert
If anything bad happens — for instance, if you can’t boot to Fedora Silverblue 38 Beta at all — it’s easy to go back. Pick the previous entry in the GRUB boot menu (you need to press ESC during boot sequence to see the GRUB menu in newer versions of Fedora Silverblue), and your system will start in its previous state. To make this change permanent, use the following command:
$ rpm-ostree rollback
That’s it. Now you know how to rebase to Fedora Silverblue 38 Beta and back. So why not do it today?
FAQ
Because there are similar questions in comments for each blog about rebasing to newer version of Silverblue I will try to answer them in this section.
Question: Can I skip versions during rebase of Fedora? For example from Fedora 36 Silverblue to Fedora 38 Silverblue?
Answer: Although it could be sometimes possible to skip versions during rebase, it is not recommended. You should always update to one version above (37->38 for example) to avoid unnecessary errors.
Question: I have rpm-fusion layered and I got errors during rebase. How should I do the rebase?
Answer: If you have rpm-fusion layered on your Silverblue installation, you should do the following before rebase:
rpm-ostree update --uninstall rpmfusion-free-release --uninstall rpmfusion-nonfree-release --install rpmfusion-free-release --install rpmfusion-nonfree-release
After doing this you can follow the guide in this blog post.
Please read the below thread before rebase from ostree variants 37 to 38 - it is about sshd might failed to start after the rebase.
Thank you Sampson for posting this. Indeed, we have a fix in flight, but if you require connecting into your Silverblue machine via
ssh
then you may consider waiting to switch until we have the fix rolled out.It is worth noting that once the fix rolls out affected machines will be back to a good state.
I pin and unpin deployments with silverpin. Yeah, I’ve been told it looks complex to install but pre-assembled binaries are also available and I find it extremely handy once installed on the system.
This is the first direct rebase test from SB37 to latest SB38 without the sshd error:
Assembly is definitely an interesting choice for such a utility.