From 877c4b815fd81376a331f95936cf1c262b8c3a2d Mon Sep 17 00:00:00 2001 From: MajorLinux Date: Thu, 11 Jun 2026 22:48:55 -0400 Subject: [PATCH] wiki: add WSL2 Fedora 44 in-place upgrade article (gcc14 blocker + CUDA repo swap) --- .../wsl2-fedora44-inplace-upgrade.md | 119 ++++++++++++++++++ 01-linux/index.md | 1 + SUMMARY.md | 1 + 3 files changed, 121 insertions(+) create mode 100644 01-linux/distro-specific/wsl2-fedora44-inplace-upgrade.md diff --git a/01-linux/distro-specific/wsl2-fedora44-inplace-upgrade.md b/01-linux/distro-specific/wsl2-fedora44-inplace-upgrade.md new file mode 100644 index 0000000..298d2dd --- /dev/null +++ b/01-linux/distro-specific/wsl2-fedora44-inplace-upgrade.md @@ -0,0 +1,119 @@ +--- +title: WSL2 In-Place Upgrade to Fedora 44 (with gcc14 Blocker + CUDA Repo Swap) +domain: linux +category: distro-specific +tags: + - wsl2 + - fedora + - windows + - upgrade + - dnf + - cuda + - majorrig +status: published +created: 2026-06-11 +updated: 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 +# PowerShell — backup first +wsl --shutdown +wsl --export FedoraLinux-43 D:\backups\fedora43.tar +``` + +```bash +# 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 +# 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`. + +```powershell +wsl --shutdown +mkdir D:\backups +wsl --export FedoraLinux-43 D:\backups\fedora43.tar +``` + +2. **Fully update the current release, then restart the distro** + +```bash +sudo dnf upgrade --refresh -y +sudo shutdown -h now +``` + +3. **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): + +```bash +sudo dnf remove gcc14-c++ gcc14 +``` + +4. **Download and apply the upgrade** + +```bash +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: + +```bash +export DNF_SYSTEM_UPGRADE_NO_REBOOT=1 +sudo -E dnf system-upgrade reboot +``` + +5. **Verify and tidy up** + +```bash +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 +``` + +```powershell +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: + +```bash +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 + +- [WSL2 Instance Migration (Fedora 43)](wsl2-instance-migration-fedora43.md) +- [WSL2 Backup via PowerShell](wsl2-backup-powershell.md) diff --git a/01-linux/index.md b/01-linux/index.md index 085d332..6046087 100644 --- a/01-linux/index.md +++ b/01-linux/index.md @@ -27,3 +27,4 @@ A collection of guides covering Linux administration, shell scripting, networkin - [Linux Distro Guide for Beginners](distro-specific/linux-distro-guide-beginners.md) - [WSL2 Instance Migration to Fedora 43](distro-specific/wsl2-instance-migration-fedora43.md) +- [WSL2 In-Place Upgrade to Fedora 44](distro-specific/wsl2-fedora44-inplace-upgrade.md) diff --git a/SUMMARY.md b/SUMMARY.md index 5135b69..8de7b0d 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -16,6 +16,7 @@ updated: 2026-05-15T09:00 * [WSL2 Instance Migration to Fedora 43](01-linux/distro-specific/wsl2-instance-migration-fedora43.md) * [WSL2 Training Environment Rebuild](01-linux/distro-specific/wsl2-rebuild-fedora43-training-env.md) * [WSL2 Backup via PowerShell](01-linux/distro-specific/wsl2-backup-powershell.md) + * [WSL2 In-Place Upgrade to Fedora 44](01-linux/distro-specific/wsl2-fedora44-inplace-upgrade.md) * [Self-Hosting & Homelab](02-selfhosting/index.md) * [Self-Hosting Starter Guide](02-selfhosting/docker/self-hosting-starter-guide.md) * [Docker vs VMs for the Homelab](02-selfhosting/docker/docker-vs-vms-homelab.md)