
Ubuntu 26.04 LTS “Resolute Raccoon” landed on April 23, 2026, and if you are still running Ubuntu 24.04 LTS “Noble Numbat” on your desktop or server, the upgrade path is officially open. Staying on an older release is not automatically wrong — Ubuntu 24.04 LTS is still supported until April 2029 — but moving to 26.04 LTS puts you on a system that gets five years of fresh security patches, Linux kernel 7.0, and all the improvements that shipped across three interim releases since 2024.
This Linux server tutorial walks you through the complete process to upgrade from Ubuntu 24.04 LTS to 26.04 LTS using the official command-line tool, from pre-flight checks to post-upgrade validation. Every step includes an explanation of why it matters, not just what to type — because understanding a command is what separates an administrator who recovers gracefully from one who scrambles when things go sideways.
By the end of this guide you will have a clean, fully functional Ubuntu 26.04 LTS system with zero guesswork. The process typically takes between 30 and 90 minutes depending on your internet connection and hardware.
What Makes Ubuntu 26.04 LTS Worth Upgrading To
Before touching a single command, it helps to understand what you are actually gaining. Ubuntu 26.04 LTS “Resolute Raccoon” is a Long-Term Support release, which means Canonical commits to five years of security updates and critical bug fixes — support runs until April 2031. With an Ubuntu Pro subscription, that window extends to ten years through Expanded Security Maintenance.
Here is what changes under the hood when you move from 24.04 to 26.04:
- Linux kernel 7.0, replacing kernel 6.8 that shipped with Ubuntu 24.04 LTS — better support for AMD Zen 5, Intel Arrow Lake CPUs, Wi-Fi 7 adapters, and modern NVMe hardware
- Two years of cumulative improvements from Ubuntu 24.10, 25.04, and 25.10 land in one upgrade, covering scheduler improvements, memory management fixes, and I/O stack optimizations
- Mesa 26.0.x for improved open-source GPU performance and better Wayland stability
- Fresher upstream versions of Python, GCC, OpenSSL, and systemd — versions that Canonical does not backport to 24.04
- A longer support runway: Ubuntu 24.04 LTS reaches end-of-life in April 2029; 26.04 LTS buys you until April 2031
The practical reason most sysadmins upgrade proactively is simple: a planned migration on your schedule is always cleaner than a forced one under deadline pressure when an older release hits end-of-life.
Understanding the Ubuntu LTS Upgrade Path
Ubuntu enforces a sequential upgrade model. You cannot skip LTS versions — meaning a server still on Ubuntu 22.04 LTS cannot jump directly to 26.04. It must pass through 24.04 LTS first, then proceed to 26.04 LTS as a separate operation.
If you are on Ubuntu 24.04 LTS, you are in the right place. This guide covers that exact path.
The upgrade channel is controlled by a single configuration file at /etc/update-manager/release-upgrades. The Prompt=lts value in that file tells the upgrade tool to only offer upgrades to the next LTS release, not to interim releases like 24.10 or 25.04. Step 3 in this guide confirms and enforces that setting before you start the upgrade.
One more important note: Canonical does not open the LTS upgrade channel until the first point release (26.04.1) ships, which typically happens several months after the initial release. Until then, you need the -d flag to access the upgrade. This is covered in Step 5.
Prerequisites Before You Start
Run through this checklist before executing any commands. Skipping these checks is the single most common reason upgrades fail halfway through.
System requirements:
- Ubuntu 24.04 LTS fully installed and running (desktop or server)
- At least 15 GB of free disk space on the root partition (
/) for package downloads and installation - Active
sudoor root access - Stable internet connection — wired Ethernet is strongly preferred for server upgrades; the process downloads 800 MB to 1.5 GB of packages
Before you touch the upgrade tool:
- All pending system updates applied
- No held-back or broken packages in
apt - A verified backup of your data stored off the system (covered in Step 1)
- A list of active third-party PPAs — the upgrade tool disables them automatically, so you need the list to restore them afterward
For remote/SSH-managed servers:
screenortmuxinstalled and active before starting the upgrade (covered in Step 5)- A console or out-of-band access fallback in case SSH drops
Step 1: Back Up Your System
This step is not optional for production systems. A major release upgrade replaces hundreds of core packages simultaneously. If a power cut, network failure, or unexpected package conflict hits mid-process, the system may not boot. A backup is your only guaranteed path to recovery.
Option A: Timeshift or Clonezilla (Recommended for Desktops)
Both tools create a full system snapshot that restores in minutes. If you have Timeshift installed, create a snapshot before proceeding.
Option B: tar Archive (CLI / Server-Friendly)
sudo tar czf /backup-2404lts.tar.gz \
--exclude=/backup-2404lts.tar.gz \
--exclude=/dev \
--exclude=/run \
--exclude=/mnt \
--exclude=/proc \
--exclude=/sys \
--exclude=/tmp \
--exclude=/media \
--exclude=/lost+found \
/
What this does: Creates a compressed .tar.gz archive of the entire filesystem.
Why each --exclude flag matters: The directories /dev, /proc, /sys, and /run are virtual filesystems that exist only in memory — they have no real data to archive. Excluding /tmp and /media keeps the archive clean by dropping ephemeral and mount-point data. Without these exclusions, the archive grows unnecessarily large and may include unstable runtime files.
After the archive is created, move it off the system immediately:
# Move to external drive, NAS, or remote server
scp /backup-2404lts.tar.gz user@remote-server:/backups/
A backup stored on the same physical disk does not protect you against disk failure. Store it somewhere independent.
Step 2: Fully Update Ubuntu 24.04 LTS
Before running the upgrade tool, bring your current system to a fully patched state. The do-release-upgrade tool calculates dependency resolution based on your current package state — unresolved upgrades or held packages cause the tool to abort or install a broken dependency chain.
Run these commands in sequence:
sudo apt update
What it does: Refreshes the local package index from all configured repositories.
Why it matters: Without this, apt works from a stale index and may miss recent package versions.
sudo apt upgrade -y
What it does: Installs all pending upgrades without adding or removing packages.
Why it matters: This resolves all known updates before the upgrade tool takes over, giving it the cleanest possible starting point.
sudo snap refresh
What it does: Updates all installed Snap packages.
Why it matters: The do-release-upgrade tool does not manage Snap packages. Leaving stale Snaps creates version mismatches post-upgrade.
sudo apt autoremove --purge
What it does: Removes orphaned dependency packages and their configuration files.
Why it matters: Orphaned packages from previous updates increase the upgrade surface unnecessarily and occasionally trigger dependency conflicts.
After these commands complete with no errors, reboot the system:
sudo reboot
Why reboot now: If apt upgrade updated the kernel or core libraries, running processes still use the old binaries loaded in memory. A reboot forces the system to start clean on the updated stack, which prevents version mismatches when the upgrade tool runs.
Step 3: Configure the Release Upgrade Prompt
After rebooting, verify that the upgrade tool is configured to follow the LTS upgrade channel. This is a quick check that takes less than one minute and prevents the upgrade tool from offering the wrong release or finding nothing at all.
Check the current configuration:
cat /etc/update-manager/release-upgrades
Expected output:
[DEFAULT]
Prompt=lts
If the Prompt line reads normal or never, correct it:
sudo sed -i 's/Prompt=.*/Prompt=lts/' /etc/update-manager/release-upgrades
What this does: Uses sed to find and replace the Prompt= value in the file in-place, without opening a text editor.
Why the three values matter:
Prompt=lts— only offers upgrades to the next LTS release; correct for production systemsPrompt=normal— offers every six-month interim release; appropriate only for bleeding-edge desktopsPrompt=never— disables all upgrade prompts entirely
For servers managed with Ansible, Puppet, or Chef, enforce Prompt=lts as a configuration management policy to prevent team members from accidentally running an interim upgrade.
Step 4: Install the Upgrade Manager Tool
The update-manager-core package provides the do-release-upgrade binary that drives the entire upgrade process. On Ubuntu Desktop installations it is typically pre-installed. On minimal server installations it may be missing. Either way, refreshing the package ensures you have the latest version with current upgrade metadata.
sudo apt install update-manager-core -y
Verify the tool can reach Canonical’s upgrade metadata servers before starting the real upgrade:
sudo do-release-upgrade --check-dist-upgrade-only
What it does: Contacts Canonical’s upgrade infrastructure and reports whether an upgrade is available, without actually starting the upgrade process.
Why verify first: A proxy issue, DNS failure, or firewall rule caught at this stage is straightforward to fix. The same problem discovered mid-upgrade, after the package database has already been switched to 26.04 repositories, can leave the system in an inconsistent state requiring manual recovery.
Step 5: Run the Upgrade from Ubuntu 24.04 LTS to 26.04 LTS
This is the core step in the process to upgrade from Ubuntu 24.04 LTS to 26.04 LTS. Read this section fully before executing the command.
For Remote / SSH-Managed Servers: Start a screen Session First
This is not optional for remote systems. If your SSH connection drops after the upgrade has already switched the package sources and started installing packages, the process dies mid-installation — leaving the system potentially unbootable.
sudo apt install screen -y
screen -S ubuntu-upgrade
What this does: Creates a persistent terminal session named ubuntu-upgrade that continues running on the server even if your SSH connection is interrupted.
If your SSH session drops during the upgrade: Reconnect via SSH and run screen -r ubuntu-upgrade to reattach to the session. The upgrade will still be running.
Run the Upgrade Command
sudo do-release-upgrade -d
What the -d flag does: Forces the upgrade tool to check Canonical’s development/latest channel. This flag is currently required because Canonical does not open the standard LTS upgrade channel until 26.04.1 ships. The -d flag is safe to use — Ubuntu 26.04 LTS is a fully released, stable version.
Once 26.04.1 is available on the regular LTS channel, the standard command without the -d flag will work:
sudo do-release-upgrade
What Happens During the Upgrade
The tool runs through these stages automatically:
- Checks your current system state and prerequisites
- Switches all entries in
/etc/apt/sources.listfrom Ubuntu 24.04 (“noble”) to Ubuntu 26.04 (“resolute”) repositories - Displays a package summary: number of packages to install, upgrade, and remove
- Downloads all required packages
- Installs packages and handles service restarts
At the service restart prompt: Select Yes when asked whether services should be restarted automatically. This keeps the upgrade smooth and avoids a chain of individual service prompts for every affected daemon.
At the configuration file prompt: If the tool detects a locally modified config file (common with SSH, Nginx, MySQL, or Postfix), it pauses and asks what to do. On servers with custom configurations, choose Keep the local version currently installed and review the maintainer’s new defaults manually after the upgrade.
At the “Remove obsolete packages?” prompt: Confirm with y. Packages from Ubuntu 24.04 that have no equivalent in 26.04 are left behind otherwise, wasting disk space and occasionally creating security exposure from unmaintained old library versions.
Step 6: Reboot and Verify the Upgrade
When the upgrade finishes, the tool will prompt you to reboot. Confirm:
# The upgrade tool prompts this automatically — confirm with y
# Or reboot manually:
sudo reboot
Why a reboot is mandatory: The upgrade replaced the kernel, systemd, and core C libraries. Every currently running process still belongs to the old Ubuntu 24.04 stack loaded in memory. Without a reboot, the new system cannot fully initialize and some services will behave unexpectedly or fail.
After logging back in, confirm the upgrade succeeded:
lsb_release -a
Expected output:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 26.04 LTS
Release: 26.04
Codename: resolute
Confirm the new kernel is active:
uname -r
You should see a kernel version starting with 7.0.
Run one final update pass to catch any packages the upgrade tool missed:
sudo apt update && sudo apt upgrade -y
sudo apt autoremove --purge
sudo snap refresh
Post-Upgrade Checklist
The upgrade gets the OS to 26.04, but it does not validate your applications or custom configurations. Run through this checklist before putting the system back into production:
- Re-enable third-party PPAs: Open
/etc/apt/sources.list.d/and look for lines commented out with# disabled on upgrade to resolute. Manually un-comment repos that have 26.04-compatible packages available. - Check GPU drivers: If you use proprietary Nvidia drivers, verify they loaded correctly:
nvidia-smiAMD GPU users can confirm with
glxinfo | grep "OpenGL renderer". - Test critical services: Databases, web servers, and custom application stacks should be smoke-tested before declaring the upgrade complete.
sudo systemctl status nginx sudo systemctl status mysql - Scan for boot-time errors:
journalctl -p err -bThis filters the system journal for error-level messages from the current boot session. Address any unfamiliar errors before continuing.
- Confirm Ubuntu Pro status (if enrolled):
pro status
Troubleshooting Common Upgrade Errors
Error 1: “No new release found”
Cause: The LTS upgrade channel is not yet open (26.04.1 has not shipped) or Prompt is misconfigured.
Fix: Use the -d flag to access the latest channel:
sudo do-release-upgrade -d
Also confirm Prompt=lts is set in /etc/update-manager/release-upgrades.
Error 2: “Could not calculate the upgrade” or Broken Packages
Cause: Unresolved dependencies or held packages exist from before the upgrade.
Fix:
sudo apt -f install
sudo dpkg --configure -a
sudo apt autoremove --purge
sudo do-release-upgrade -d
Run these in order. The -f flag tells apt to fix broken dependencies; dpkg --configure -a resumes any packages stuck in a half-configured state.
Error 3: Third-Party Repository Conflicts
Cause: A PPA or external repository does not have packages compatible with Ubuntu 26.04, blocking dependency resolution.
Fix: Identify and disable all third-party repositories before upgrading:
sudo add-apt-repository --remove ppa:repository-name/ppa
Re-add them after the upgrade once you confirm 26.04-compatible versions exist.
Error 4: SSH Session Drops Mid-Upgrade
Cause: Network interruption kills the terminal session and the upgrade process with it.
Fix: Reconnect via SSH and run:
screen -r ubuntu-upgrade
If the screen session ended because the upgrade process exited, resume the interrupted installation:
sudo dpkg --configure -a
sudo apt -f install
This is why starting a screen session before the upgrade is so important.
Error 5: System Drops to initramfs After Reboot
Cause: The new kernel cannot find the root filesystem — usually a missing or mismatched initramfs image.
Fix: At the initramfs prompt, run:
update-initramfs -u -k all
exit
If the system cannot proceed from the initramfs prompt, boot from an Ubuntu 26.04 LTS live USB, mount the broken installation, chroot into it, and run:
sudo mount /dev/sdX1 /mnt
sudo chroot /mnt
update-initramfs -u -k all
Replace /dev/sdX1 with your actual root partition.