How to Upgrade to Ubuntu 20.04 LTS

Upgrading Ubuntu should feel less like defusing a bomb and more like changing trains: prepare your luggage, confirm the route, and avoid jumping off halfway through. Ubuntu 20.04 LTS, code-named Focal Fossa, introduced a newer Linux kernel, GNOME desktop improvements, updated development tools, and five years of standard maintenance following its 2020 release.

However, there is an important modern-day catch: Ubuntu 20.04 ended standard security maintenance on May 31, 2025. That does not make this guide useless. You may need Ubuntu 20.04 for legacy application compatibility, laboratory testing, an offline appliance, or as the required intermediate step between Ubuntu 18.04 and Ubuntu 22.04.

For an internet-connected machine, plan either to enable Ubuntu Pro with Expanded Security Maintenance or continue upgrading to a currently supported LTS release.

What You Need Before Upgrading to Ubuntu 20.04 LTS

A release upgrade replaces thousands of packages, changes system libraries, installs a newer kernel, and may rewrite configuration files. It usually works smoothly, but “usually” is not a backup strategy.

Confirm Your Current Ubuntu Version

Ubuntu 20.04 originally supported direct upgrades from Ubuntu 18.04 LTS and Ubuntu 19.10. Ubuntu 19.10 is now an end-of-life release, so its repositories and upgrade procedure may require special handling. Systems older than Ubuntu 18.04 must be upgraded one supported release at a time or replaced with a clean installation.

If the output already says Ubuntu 20.04, you do not need this upgrade. You should instead install all available updates, check Ubuntu Pro status, or plan the next upgrade to Ubuntu 22.04.

Create a Complete Backup

Back up personal files, databases, web roots, application secrets, SSH keys, and important files under /etc. For a virtual machine or cloud server, create a snapshot, but do not treat a snapshot as the only copy of irreplaceable data.

Test that you can actually restore the backup. A backup that has never been tested is merely an optimistic collection of bytes.

For servers, record the manually installed packages and currently active services:

Check Free Disk Space and Power

Use df -h to confirm that the root filesystem and boot partition are not nearly full. The exact space required depends on your installed packages, but several gigabytes of free space is a practical starting point.

A laptop should be connected to power. A server should have a maintenance window, a tested console or recovery method, and enough time to finish without someone rebooting it because “the website looked sleepy.”

Review Third-Party Repositories and Application Compatibility

PPAs and vendor repositories are among the most common causes of dependency conflicts. The release upgrader normally disables third-party sources during the process. Before starting, identify software that depends on a particular PHP, Python, database, graphics driver, CUDA, Docker, or monitoring-agent version.

Ubuntu 20.04 changed several important components. It introduced the Linux 5.4 kernel, GNOME 3.36 on the standard desktop, Python 3 as the primary Python runtime, PHP 7.4 in the default repositories, and MySQL 8.0. An old application that expects Python 2, PHP 7.2, or an earlier MySQL authentication method may need code or configuration changes.

Prepare the Existing Ubuntu System

Do not begin a distribution upgrade while the current release has broken packages or unfinished updates. First refresh package information and fully update the existing system.

After rebooting, run the following commands to check for dependency problems:

If apt update reports unavailable repositories, unsigned packages, or dependency errors, fix those problems before continuing. Release upgrades are not famous for curing package chaos through positive thinking.

Install the Release Upgrade Tool

Ubuntu Desktop normally includes the required tools. On a minimal or server installation, ensure that update-manager-core is installed:

Set the Upgrade Channel to LTS

Open the release-upgrade configuration file:

For an LTS-to-LTS upgrade, the file should contain:

Save the file and exit. Avoid changing the setting to a development channel. The -d option shown in some old 2020 tutorials was intended for development releases or early upgrade testing. It is not the correct way to target Ubuntu 20.04 today.

Method 1: Upgrade to Ubuntu 20.04 Using the Desktop Interface

The graphical method is convenient for a personal computer running Ubuntu Desktop.

Step 1: Open Software & Updates

Open the application menu, search for Software & Updates, and select the Updates tab. Set Notify me of a new Ubuntu version to For long-term support versions.

Step 2: Install All Current Updates

Launch Software Updater and install every available update. Restart the computer if prompted. Reopen Software Updater after the restart.

Step 3: Start the Release Upgrade

If Ubuntu 20.04 is available as the next supported release, the updater displays an upgrade notification. Click Upgrade, read the release notes, and follow the prompts.

You can also check for a release upgrade from a terminal:

Step 4: Review Package and Configuration Prompts

The installer may ask whether to remove obsolete packages or replace modified configuration files. Read each prompt carefully.

If you deliberately customized a service file, keeping the local version may prevent immediate downtime, but you should compare it with the package maintainer’s new version afterward. On an ordinary desktop with no intentional customization, accepting the maintainer’s version is often reasonable.

Step 5: Restart the Computer

When the upgrade completes, restart the computer. Do not force it off while packages are being installed, even if the progress bar appears to be practicing meditation.

Method 2: Upgrade to Ubuntu 20.04 from the Command Line

The command-line method is standard for Ubuntu Server and useful for desktops when the graphical updater is unavailable.

Step 1: Protect Remote Access

For a remote server, start from a stable SSH connection and make sure you also have access to the cloud provider’s browser console, serial console, or recovery environment.

The Ubuntu Server upgrader commonly runs inside a screen session and may offer a temporary SSH service on another port if the main connection fails. Follow any on-screen firewall instructions exactly.

Step 2: Launch the Release Upgrader

The tool checks the upgrade path, downloads release information, calculates package changes, disables incompatible third-party repositories, and asks for confirmation. Review the estimated download size and disk-space requirement before answering y.

Step 3: Answer Interactive Questions Carefully

During the upgrade, you may be asked to restart services automatically, replace configuration files, or remove obsolete packages. For production servers, note every modified configuration file so you can compare old and new versions later.

Never close the terminal simply because the process pauses. It may be patiently waiting for an answer while you are patiently waiting for it. Linux can be awkward at parties.

Step 4: Reboot and Verify

After reconnecting, confirm the installed release and kernel:

The release description should identify Ubuntu 20.04 LTS. The exact kernel version may vary because point releases and hardware-enablement updates can use different supported kernels.

Post-Upgrade Checks You Should Not Skip

Install Remaining Updates

Check Failed Services and System Errors

Investigate failures involving networking, storage, databases, web servers, display drivers, or security agents. Some warning messages are harmless, but “it probably always did that” is not a diagnostic method.

Test Essential Applications

On a desktop, test the browser, office tools, VPN, printer, audio devices, Bluetooth, graphics acceleration, and development environment.

On a server, test DNS, SSH, firewall rules, scheduled jobs, database connections, TLS certificates, web applications, mail delivery, monitoring, disk mounts, and backups.

Re-enable Third-Party Repositories Selectively

Do not blindly re-enable every old PPA. Confirm that each vendor provides packages specifically for Ubuntu 20.04, whose codename is focal.

Re-enable one repository at a time, run sudo apt update, and watch for signing, architecture, or dependency errors.

Decide How Ubuntu 20.04 Will Receive Security Updates

Because standard support ended in 2025, an internet-connected Ubuntu 20.04 machine needs a security plan. Check its current status with:

You can attach an eligible Ubuntu Pro subscription to receive Expanded Security Maintenance, or use Ubuntu 20.04 only as a temporary stop while upgrading to Ubuntu 22.04. From 22.04, you can continue to Ubuntu 24.04 through the supported sequential path.

Common Ubuntu 20.04 Upgrade Problems and Fixes

“No New Release Found”

Confirm that the current system is fully updated, update-manager-core is installed, and Prompt=lts is set.

If the source release is already end-of-life, standard mirrors may no longer provide its packages. Follow Ubuntu’s end-of-life upgrade procedure rather than manually replacing every release name in sources.list. Manual substitutions can leave you with a half-upgraded system that is neither old nor newjust confused.

“An Unresolvable Problem Occurred While Calculating the Upgrade”

Disable third-party repositories and remove or downgrade packages installed from incompatible PPAs. Review the distribution-upgrade logs:

Also run the following command and confirm that sudo apt update completes without errors:

The SSH Connection Dropped

Reconnect through the provider console first. If the upgrader created a screen session, list and reattach to it:

Do not start a second upgrade process. Two release upgraders fighting over the package database is less “high availability” and more “Linux cage match.”

The System Boots to a Black Screen

Try an older kernel from the GRUB Advanced options menu. Proprietary NVIDIA drivers are a frequent suspect after major upgrades. Booting into recovery mode, removing the incompatible driver, and reinstalling the recommended driver can restore the graphical session.

A Service Stopped Working After the Upgrade

Compare saved configuration files, inspect the service status, and review its journal entries:

Language runtimes and database versions may have changed. Test application dependencies instead of repeatedly restarting the service and hoping it becomes emotionally ready.

Should You Perform an In-Place Upgrade or a Clean Install?

An in-place Ubuntu upgrade preserves user accounts, installed packages, and most configuration. It is convenient for a personal computer or a straightforward server.

A clean installation is often safer when the system has years of abandoned PPAs, manually compiled libraries, unusual storage layouts, or business-critical workloads that cannot tolerate an unpredictable recovery period.

For cloud infrastructure, a strong alternative is to create a new instance with the desired Ubuntu release, deploy the application from automation or documented steps, copy the data, test everything, and then switch traffic.

This blue-green style of migration provides a clearer rollback path than modifying the only working server in place. If the new server misbehaves, traffic can return to the original machine without reconstructing an operating system from the smoking remains of your optimism.

Practical Experience: What a Real Ubuntu 20.04 Upgrade Usually Teaches You

A typical successful upgrade is surprisingly uneventfulright up until one small custom package reminds you that it has been living under the floorboards since 2018. The most useful lesson from administrators who have upgraded desktops, virtual machines, and web servers is that preparation determines whether the process feels routine or theatrical.

Consider a common Ubuntu 18.04 web server running Nginx, PHP, MySQL, a firewall, and several vendor repositories. The operating-system upgrade itself may complete without an obvious error. The real work begins after reboot. Nginx starts, but the application returns a blank page because the PHP version changed and a required extension is missing. MySQL starts, but an older authentication expectation breaks a legacy connector. A monitoring agent remains disabled because its repository was turned off during the release upgrade.

None of these problems necessarily means Ubuntu failed. They mean the workload depended on components beyond the base operating system.

The better approach is to create a small acceptance checklist before touching the machine. Record the homepage response, login flow, database connectivity, outbound email, cron jobs, backup completion, disk mounts, firewall rules, and TLS certificate dates. After upgrading, repeat the same checks.

This turns vague confidence into evidence. “The server is up” is not the same as “the business process works.” A server can respond perfectly to ping while the checkout page quietly displays an error to every customer.

Desktop upgrades reveal a different set of lessons. Personal files usually survive, but custom GNOME extensions, proprietary graphics drivers, printer packages, VPN clients, and old PPAs may not. Users often blame the new Ubuntu release when the real issue is an extension designed for an older desktop shell. Temporarily disabling extensions and testing with a clean user session can separate a system-wide fault from a user-profile problem.

Another practical lesson is to resist doing cleanup before stability testing. Immediately deleting old kernels, configuration backups, and obsolete packages may save disk space, but it also removes clues and fallback options. First verify the new kernel, network, display, applications, and backups. Then remove packages the upgrader identifies as obsolete and review any .dpkg-old, .dpkg-dist, or disabled repository files.

Remote upgrades deserve special caution. Administrators who rely only on SSH eventually learn why cloud consoles exist. A firewall prompt, network-service restart, or changed interface configuration can disconnect the session at the most inconvenient moment. Running the supported upgrader, keeping the provider console available, and documenting the recovery procedure makes the difference between a brief reconnect and a midnight rescue mission involving coffee strong enough to compile its own kernel.

Finally, upgrading specifically to Ubuntu 20.04 in 2026 should be treated as a compatibility decision, not a default modernization plan. It can be the correct temporary platform for software certified only on Focal Fossa, or the necessary bridge from Ubuntu 18.04 to later LTS releases.

Once compatibility is confirmed, define the next step immediately: attach Ubuntu Pro for continued security maintenance or continue to Ubuntu 22.04 and then Ubuntu 24.04. A migration without a support plan is merely procrastination wearing a progress bar.

Conclusion

To upgrade to Ubuntu 20.04 LTS safely, verify that you are following a supported sequential path, create tested backups, fully update the current system, disable problematic third-party repositories, and use either Software Updater or sudo do-release-upgrade.

After rebooting, verify the release, test services and hardware, inspect system errors, and restore external repositories only when they explicitly support Ubuntu 20.04.

The procedure is manageable, but the destination matters. Ubuntu 20.04 is now outside standard support, so it should generally serve as a legacy-compatible platform or an intermediate upgrade stepnot the final stop for a newly modernized, internet-connected system.