majorwiki/01-linux/distro-specific/wsl2-fedora44-inplace-upgrade.md

4.2 KiB

title domain category tags status created updated
WSL2 In-Place Upgrade to Fedora 44 (with gcc14 Blocker + CUDA Repo Swap) linux distro-specific
wsl2
fedora
windows
upgrade
dnf
cuda
majorrig
published 2026-06-11 2026-06-11

WSL2 In-Place Upgrade to Fedora 44 (with gcc14 Blocker + CUDA Repo Swap)

In-place upgrade of the FedoraLinux-43 WSL2 instance on MajorRig to Fedora 44 using dnf system-upgrade + dnf5 offline reboot. Hit one transaction blocker (gcc14 compat package retired in F44) and swapped the stale cuda-fedora39 repo to cuda-fedora44 afterward. Performed 2026-06-11.

The Short Answer

# PowerShell — backup first
wsl --shutdown
wsl --export FedoraLinux-43 D:\backups\fedora43.tar
# Inside Fedora
sudo dnf upgrade --refresh -y
sudo shutdown -h now
# relaunch, then:
sudo dnf remove gcc14-c++ gcc14        # F44 dropped gcc14 — blocks the transaction
sudo dnf system-upgrade download --releasever=44
sudo dnf5 offline reboot               # applies offline upgrade, shuts distro down
# wait a few minutes, relaunch:
cat /etc/fedora-release                # → Fedora release 44 (Forty Four)
# PowerShell — keep WSL itself current
wsl --update

Steps

  1. Back up the instance (PowerShell). The export tar is roughly the size of the installed system — this one was 86 GB. The target directory must already exist or you get Wsl/ERROR_PATH_NOT_FOUND.
wsl --shutdown
mkdir D:\backups
wsl --export FedoraLinux-43 D:\backups\fedora43.tar
  1. Fully update the current release, then restart the distro
sudo dnf upgrade --refresh -y
sudo shutdown -h now
  1. Remove upgrade blockers. gcc14/gcc14-c++ (compat packages) were retired in Fedora 44, so the transaction fails with "does not belong to a distupgrade repository". Remove them (or use --allowerasing and review the summary):
sudo dnf remove gcc14-c++ gcc14
  1. Download and apply the upgrade
sudo dnf system-upgrade download --releasever=44
sudo dnf5 offline reboot

The "reboot" applies the offline transaction and shuts the distro down — there's no real systemd reboot in WSL. Wait a couple of minutes, then relaunch. If it errors on systemctl, the fallback is:

export DNF_SYSTEM_UPGRADE_NO_REBOOT=1
sudo -E dnf system-upgrade reboot
  1. Verify and tidy up
cat /etc/fedora-release      # Fedora release 44 (Forty Four)
sudo dnf upgrade --refresh   # catch post-upgrade updates
gcc --version                # F44 ships gcc 16; reinstall with `dnf install gcc gcc-c++` if removed
wsl --update   # fixes the post-upgrade Wsl/Service/E_UNEXPECTED catastrophic failure some users hit

CUDA Repo Swap

dnf repolist still showed cuda-fedora39-x86_64 — NVIDIA repos are pinned per Fedora release and don't follow distro upgrades. NVIDIA publishes a fedora44 repo:

sudo rm /etc/yum.repos.d/cuda-fedora39*.repo
sudo dnf config-manager addrepo --from-repofile=https://developer.download.nvidia.com/compute/cuda/repos/fedora44/x86_64/cuda-fedora44.repo
sudo dnf upgrade --refresh
sudo dnf repolist   # confirm cuda-fedora44-x86_64

WSL caveat: never install the NVIDIA driver inside WSL — the Windows host driver provides the GPU. Only install toolkit packages (e.g. cuda-toolkit).

Gotchas & Notes

  • Don't skip more than two releases in one jump — staged upgrades otherwise.
  • The WSL distro name is just a Windows label — it still says "FedoraLinux-43" after the upgrade. Cosmetic fixes: Windows Terminal profile name, Start Menu shortcut, and DistributionName/ShortcutPath under HKCU\Software\Microsoft\Windows\CurrentVersion\Lxss\{uuid}.
  • Keep the backup tar until the upgraded instance has proven stable for a few days, then delete to reclaim the space.
  • Restore path if needed: wsl --import FedoraRestore C:\WSL\FedoraRestore D:\backups\fedora43.tar — remember imports default to root; fix via /etc/wsl.conf [user] default=majorlinux.

See Also