Fedora 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. If you want to update or rebase to Fedora Linux 40 on your Fedora Silverblue system, this article tells you how. It not only shows you what to do, but also how to revert things if something unforeseen happens.
Update your existing system
Prior to actually doing the rebase to Fedora Linux 40, you should apply any pending updates. Enter the following in the terminal:
$ rpm-ostree update
or install updates through GNOME Software and reboot.
Note
rpm-ostree is the underlying atomic technology that all the Fedora Atomic Desktops use. The techniques described here for Silverblue will apply to all of them with proper modifications for the appropriate desktop.
Rebasing using GNOME Software
GNOME Software shows you that there is new version of Fedora Linux available on the Updates screen.
First thing to do is download the new image, so select the Download button. This will take some time. When it is done you will see that the update is ready to install.
Select the Restart & Upgrade button. This step will take only a few moments and the computer will restart when the update is completed. After the restart you will end up in a new and shiny release of Fedora Linux 40. Easy, isn’t it?
Rebasing using terminal
If you prefer to do everything in a terminal, then this part of the guide is for you.
Rebasing to Fedora Linux 40 using the terminal is easy. First, check if the 40 branch is available:
$ ostree remote refs fedora
You should see the following in the output:
fedora:fedora/40/x86_64/silverblue
If you want to pin the current deployment (meaning that this deployment will stay as an option in GRUB until you remove it), you can do this by running this command:
# 0 is entry position in rpm-ostree status $ sudo ostree admin pin 0
To remove the pinned deployment use the following command:
# 2 is entry position in rpm-ostree status $ sudo ostree admin pin --unpin 2
Next, rebase your system to the Fedora Linux 40 branch.
$ rpm-ostree rebase fedora:fedora/40/x86_64/silverblue
Finally, the last thing to do is restart your computer and boot to Fedora Linux 40.
How to roll back
If anything bad happens (for instance, if you can’t boot to Fedora Linux 40 at all) it’s easy to go back. At boot time, pick the entry in the GRUB menu for the version prior to Fedora Linux 40 and your system will start in that previous version rather than Fedora Linux 40. If you don’t see the GRUB menu, try to press ESC during boot. To make the change to the previous version permanent, use the following command:
$ rpm-ostree rollback
That’s it. Now you know how to rebase Fedora Silverblue to Fedora Linux 40 and roll 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 38 Silverblue to Fedora 40 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 (38->39 for example) to avoid unnecessary errors.
Question: I have rpm-fusion layered and I get 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.
Question: Could this guide be used for other ostree editions (Fedora Atomic Desktops) as well like Kinoite, Sericea (Sway Atomic), Onyx (Budgie Atomic),…?
Yes, you can follow the Rebasing using the terminal part of this guide for every Fedora Atomic Desktop. Just use the corresponding branch. For example, for Kinoite use fedora:fedora/40/x86_64/kinoite
Matthew Phillips
I used GNOME Software for the upgrade and it worked great, no problems. Well done as always Fedora team!
Flywaybetter
Hi Michal,
Thanks for this informative post.
Ĉandace
(###)nope.
Richard England
Can you elaborate on this comment, Ĉandace?
Steven
Thanks for including the RPMFusion info. That tripped me up a few releases ago. I’m not using that repo at all now, and the upgrades have been very smooth.
james
I rebased and it seemed to work fine, except it needed me to replace mozilla-openh264 which i had layered.
Since using 40, I have had no amazon prime in firefox, so the widevine doesn’t work, although it works in Chrome. Also, everytime I update, I lose my browser history, am unable to copy (ctrl-c) anything in firefox, and gnome has booted to a broken display, and when I updated first, all user input stopped working (I had autologin enabled). I had to boot from the previous install, pin it and then delete the broken upgrade and re-upgrade.
And it wasn’t the user prefix becoming contaminated as I used a different login account with similar issues.
I have never had any faults on silverblue before, nor fedora workstation before it, so I am a bit disappointed.
My next port of call is to completely reinstall from a usb.
james
Hi, I just commented before about firefox failing to play amazon prime. It seems that it is necessary to install mozilla-openh264 as per the following comment…
https://github.com/fedora-silverblue/issue-tracker/issues/536#issuecomment-1974780009
lars martin
Waiting in queue…
The following packages have to be installed:
gnome-software-rpm-ostree-46.1-1.fc41.x86_64 rpm-ostree backend for gnome-software
ostree-2024.5-3.fc41.x86_64 Tool for managing bootable, immutable filesystem trees
rpm-ostree-2024.5-2.fc41.x86_64 Hybrid image/package system
rpm-ostree-libs-2024.5-2.fc41.x86_64 Shared library for rpm-ostree
Proceed with changes? [N/y] u
Proceed with changes? [N/y] y
Waiting in queue…
Waiting for authentication…
Waiting in queue…
Loading list of packages….
Downloading details about the software repositories….
Requesting data…
Testing changes…
Installing packages…
error: This system was not booted via libostree.
Currently, most rpm-ostree commands only work on ostree-based host systems.
Michal Konečný
This guide is for atomic editions only. If you are using Fedora Workstation it will not work for you.
James
Why is that? What sort of errors might this create? You can’t change anything in the system directories and the entire image is simply replaced on update, so I’m curious why skipping major versions might cause issues. Why is doing something crazy like rebasing to, say, openSUSE Micro OS or something a bad idea? Actually…is that even possible?
I’m interested in using Silverblue but I was curious how exactly ostree worked.