How to Upgrade Fedora 44 to Fedora 45
Back up, fully update Fedora 44, then download the Fedora 45 packages and reboot into the offline upgrade. Fedora 45 is scheduled for 20 October 2026; run this from that date.
sudo dnf upgrade --refresh
sudo reboot
sudo dnf system-upgrade download --releasever=45
sudo dnf system-upgrade reboot
The machine reboots, installs the upgrade on a plain progress screen, and reboots again into Fedora 45.
Before you start: five pre-checks
Most failed Fedora upgrades come from one of these, so spend five minutes here.
- Confirm your version and edition. Workstation, KDE Plasma, Server and the Spins use
dnf system-upgrade. Silverblue, Kinoite and other Atomic desktops userpm-ostreeinstead (see below).cat /etc/fedora-release rpm -E %fedora # Atomic desktops show a deployment list here; normal installs say "command not found" rpm-ostree status - Back up. At minimum your home directory — the rsync home backup script does this. Fedora Workstation uses Btrfs by default, so you can also take a snapshot of the root subvolume (next section).
- Check free space. The download lands in the DNF cache under
/varand the install needs room on/as well. Aim for at least 5–10 GB free, and some headroom on/bootfor the new kernel.df -h / /boot /var sudo dnf clean all - List your third-party repositories. RPM Fusion is fine; COPRs, vendor repos (Google Chrome, VS Code, Docker, NVIDIA CUDA) and manually installed RPMs are what cause dependency errors.
dnf repo list --enabled # packages not from any enabled repo (local RPMs, removed repos) dnf list --extras - Plug in the power and use a stable connection. The download can be resumed; the offline install phase cannot be interrupted safely.
Optional: a Btrfs snapshot to roll back to
dnf has no rollback for release upgrades. If your root filesystem is Btrfs (the Workstation and KDE default), a read-only snapshot gives you a copy of the Fedora 44 system to restore from a live USB if things go badly wrong:
# check the filesystem type of /
findmnt -no FSTYPE /
# create a read-only snapshot of the root subvolume
sudo btrfs subvolume snapshot -r / /f44-pre-upgrade
sudo btrfs subvolume list /
This snapshot covers / only, not /home (a separate subvolume) and not /boot (a separate ext4 partition). It is a safety net for the system, not a replacement for a backup of your files. Delete it after a week or two of a working Fedora 45 with sudo btrfs subvolume delete /f44-pre-upgrade, because it holds disk space.
Option 1: upgrade from the desktop (GNOME Software or Discover)
On Workstation, once Fedora 45 is released, GNOME Software shows a banner: Fedora Linux 45 Now Available. Click Download, wait, then Restart & Upgrade. On the KDE Plasma edition, Discover shows the same offer under Updates. Both use the same offline upgrade mechanism as the terminal method.
The graphical route hides error messages. If the download fails or the banner never appears, use the terminal method below; it tells you exactly which package or repository is the problem.
Option 2: upgrade with dnf system-upgrade (recommended)
Step 1: fully update Fedora 44 and reboot
sudo dnf upgrade --refresh
sudo reboot
The upgrade is computed against the newest Fedora 44 packages, and running the current kernel and DNF avoids known upgrade bugs that were fixed in late updates.
Step 2: download the Fedora 45 packages
sudo dnf system-upgrade download --releasever=45
DNF resolves the whole transaction, shows the package count and download size, and asks for confirmation. It may also ask you to import the Fedora 45 GPG key — accept it if it says Fedora 45 and comes from /etc/pki/rpm-gpg/. Nothing is installed yet; you can keep using the machine while it downloads.
If the download complains about a conflict or a package that cannot be upgraded, retry with --allowerasing, which lets DNF remove packages that block the upgrade:
sudo dnf system-upgrade download --releasever=45 --allowerasing
Read the list of packages it plans to remove before typing y. Removing an old library or a retired application is normal; removing something you rely on means you should fix the repository it came from first (see the third-party section).
Step 3: reboot into the offline upgrade
sudo dnf system-upgrade reboot
The system reboots into a minimal target that installs the packages with nothing else running, which is why Fedora upgrades are reliable. You see the Fedora logo with a progress bar (press Esc for text output). Do not power off during this phase. When it finishes, the machine reboots into Fedora 45.
With DNF5, dnf system-upgrade reboot and dnf offline reboot do the same thing; either works.
Step 4: confirm it worked
cat /etc/fedora-release
uname -r
# log of the offline upgrade
sudo dnf system-upgrade log
sudo dnf system-upgrade log --number=-1
Example output:
Fedora release 45 (Forty Five)
Third-party repositories: RPM Fusion, COPR, vendor repos
| Source | What happens | What to do |
|---|---|---|
| RPM Fusion free/nonfree | Uses $releasever, so it follows you to 45 automatically. | Nothing, unless the download errors on an RPM Fusion package in the first days after release; then wait a day or temporarily add --disablerepo='rpmfusion*'. |
| COPR repositories | Only work if the COPR owner has enabled builds for Fedora 45. | Disable COPRs that fail; re-enable after the owner adds 45. sudo dnf copr disable owner/project |
| Vendor repos (Chrome, VS Code, Docker, 1Password…) | Most use a generic repo that works on any Fedora; a few hardcode the release number. | If one returns 404 for 45, disable it, upgrade, then check the vendor's instructions. |
Local RPMs (dnf list --extras) | Kept, but may block the upgrade if they depend on old library versions. | Remove them or use --allowerasing, then reinstall a build for 45. |
To disable a repository by its ID (shown in dnf repo list) with DNF5:
sudo dnf config-manager setopt REPO_ID.enabled=0
# re-enable after the upgrade
sudo dnf config-manager setopt REPO_ID.enabled=1
A metadata error such as Failed to download metadata for repo during the download step is almost always a third-party repo that does not have a Fedora 45 tree yet. See Failed to download metadata for repo for the full diagnosis.
NVIDIA drivers from RPM Fusion
The akmod-nvidia package rebuilds the kernel module for the new kernel on first boot. That build can take a few minutes, during which you may land on a lower-resolution desktop or nouveau. Wait, then reboot once more. If you get a black screen instead, follow NVIDIA black screen fix. A quick check after boot:
modinfo -F version nvidia
sudo akmods --force
nvidia-smi
Silverblue, Kinoite and other Atomic desktops
Image-based editions upgrade with rpm-ostree. The new image is staged beside the old one, and the old deployment stays in the boot menu, so rollback is built in.
rpm-ostree status
sudo rpm-ostree upgrade
# Silverblue example; use kinoite, sericea, etc. for your edition
rpm-ostree rebase fedora:fedora/45/x86_64/silverblue
systemctl reboot
# if Fedora 45 misbehaves
rpm-ostree rollback
Check the exact ref names with ostree remote refs fedora | grep 45 before rebasing. GNOME Software also offers the upgrade on Silverblue.
After the upgrade: cleanup
None of these steps are required, but they keep a long-lived install tidy.
# remove the downloaded upgrade packages
sudo dnf system-upgrade clean
# sync any packages that were held back or are newer in 44 updates
sudo dnf distro-sync
# packages that no longer exist in Fedora 45
sudo dnf install remove-retired-packages
remove-retired-packages 44
# dependency problems and duplicates
sudo dnf repoquery --unsatisfied
sudo dnf repoquery --duplicates
# orphaned dependencies (review the list before confirming)
sudo dnf autoremove
Configuration files you edited and that the new package also changed are saved as .rpmnew (new default kept aside) or .rpmsave (your version kept aside). Merge them with rpmconf:
sudo dnf install rpmconf
sudo rpmconf -a
Finally, re-enable any repositories you disabled and run sudo dnf upgrade --refresh.
When the upgrade fails: recovery
The download step refuses to resolve
- "Problem: package X requires Y, but none of the providers can be installed" — usually a third-party or local package. Remove it (
sudo dnf remove X) or retry with--allowerasing. - Metadata or 404 errors — a repo without Fedora 45 content. Disable it as shown above.
- GPG key errors — make sure Fedora 44 is fully updated (
fedora-gpg-keysships the next release's key), thensudo dnf system-upgrade download --releasever=45 --refresh. - If you want to start over:
sudo dnf system-upgrade clean, then run the download again.
The system will not boot after the upgrade
- Boot an older kernel. Press Esc or hold Shift during boot to show the GRUB menu and pick the previous kernel entry. The rest of the system is already Fedora 45, but an older kernel often gets you to a desktop when a driver module failed to build.
- Get a shell. In GRUB press e on an entry and add
systemd.unit=multi-user.target(text login) orrd.breakto thelinuxline. See kernel parameters for how editing the boot line works. - Finish an interrupted transaction. If power was lost during the offline phase, boot to a shell and run:
sudo dnf distro-sync --releasever=45 sudo dnf reinstall kernel-core sudo dracut --regenerate-all --force - Read the errors.
journalctl -b -1 -p errshows errors from the previous boot;sudo dnf system-upgrade log --number=-1shows the upgrade log. - GRUB itself is broken. Use a Fedora live USB and follow fix grub rescue.
Restoring the Btrfs snapshot
If you took the snapshot above and want Fedora 44 back, boot a Fedora live USB, mount the Btrfs top level and swap the subvolumes:
# on the live system; replace /dev/nvme0n1p3 with your Btrfs partition (check with lsblk -f)
sudo mount -o subvolid=5 /dev/nvme0n1p3 /mnt
# Fedora names the root subvolume "root"; confirm with: sudo btrfs subvolume list /mnt
sudo mv /mnt/root /mnt/root-broken-f45
# writable copy of the snapshot becomes the new root subvolume
sudo btrfs subvolume snapshot /mnt/root-broken-f45/f44-pre-upgrade /mnt/root
sudo umount /mnt
Because /boot is a separate partition, it still contains the Fedora 45 kernels after you restore /. Boot the old Fedora 44 kernel from the GRUB menu, then run sudo dnf distro-sync to bring /boot back in line. If you are not comfortable with this, restoring from a backup onto a fresh Fedora install is the simpler path.
Upgrade paths and timing
| You are on | Command | Notes |
|---|---|---|
| Fedora 44 | --releasever=45 | Released 28 April 2026. Supported until about four weeks after Fedora 46 ships, so there is no rush. |
| Fedora 43 | --releasever=45 (skip one) or 44 | End of life 9 December 2026. Jumping straight to 45 is supported. |
| Fedora 42 or older | Upgrade in steps of at most two releases | Out of support. Upgrade to 44 first, then 45, or reinstall. |
Fedora's own documentation is at docs.fedoraproject.org: Upgrading Fedora using DNF system plugin. For how Fedora's release and support windows compare with Ubuntu and Debian, see Linux release cycles.
Frequently asked questions
When can I upgrade to Fedora 45?
Fedora 45 is scheduled for 20 October 2026. The upgrade command works from that day on; before it, --releasever=45 pulls the pre-release (beta) packages, which is fine for testing but not for a machine you depend on.
Can I upgrade from Fedora 43 straight to Fedora 45?
Yes. Fedora supports skipping one release, so 43 to 45 is a supported path with --releasever=45. Fedora 43 reaches end of life on 9 December 2026, so do it soon.
Do I still need dnf-plugin-system-upgrade?
No. Since Fedora 41 DNF5 is the default dnf and system-upgrade is built in. Installing the old plugin package is not needed.
How long does a Fedora upgrade take?
The download is typically 2–4 GB for a desktop and the offline install phase usually takes 10–40 minutes depending on disk speed and how many packages you have. Do not power off during the install phase.
Can I roll back a Fedora upgrade?
Not with dnf. Your options are a Btrfs snapshot or backup taken beforehand, or rpm-ostree rollback on Silverblue and other Atomic desktops. Downgrading with distro-sync --releasever=44 is unsupported and often fails.
Spotted a mistake or a command that no longer works? Send a correction — pages are re-checked when reports come in.