LTS is an abbreviation for “Long Term Support.” A new LTS version is released every two years and gets five years on five years of support and patches. The latest version of Ubuntu is 20.04 LTS, and codenamed as Focal Fossa. Ubuntu 20.04 released on April 23, 2020. This page shows you how to upgrade the existing version of Ubuntu Linux 18.04 LTS or 19.10 to Ubuntu 20.04 LTS from the apt command/apt-get command.
|Operating system/app||Ubuntu Linux|
|Root privileges required||Yes|
|Estimated completion time||15m (depends upon internet speed)|
Procedure to upgrade Ubuntu 18.04 to 20.04
- Create a backup of your server or vm.
- Upgrade all installed packages of Ubuntu version 18.04 by running sudo apt update && sudo apt upgrade command.
- Reboot the Ubuntu Linux system by tying the sudo reboot command
- Install the Ubuntu update tool, run: sudo apt install update-manager-core
- Start the upgrade procdure, run: sudo do-release-upgrade
- Reboot the box, run: sudo reboot
- Verify upgrades
Let us see all commands and examples.
NOTE: You can upgrade to Ubuntu 20.04 LTS from either Ubuntu 18.04 LTS or Ubuntu 19.10 only
I cannot be stressed enough how important it is to make a backup of your server before you do this. Note down the Ubuntu Linux version
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic
Find and note down the Linux kernel version too, run:
Linux 4.15.0-96-generic x86_64
On AWS you might see the latest Linux kernel version for Ubuntu 18.04 LTS:
Linux 5.3.0-1019-aws x86_64
Now, that you have backup, type the following apt command to upgrade the installed packages of Ubuntu version 18.04 LTS:
sudo apt update
sudo apt list --upgradable
sudo apt upgrade
You must reboot when Ubuntu Linux kernel and libs gets updated:
See “Ubuntu 18.04 update installed packages for security” for more info.
Run the following to remove them:
sudo apt --purge autoremove
Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: linux-headers-4.15.0-45* linux-headers-4.15.0-45-generic* linux-image-4.15.0-45-generic* linux-modules-4.15.0-45-generic* linux-modules-extra-4.15.0-45-generic* 0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded. After this operation, 334 MB disk space will be freed. Do you want to continue? [Y/n] y (Reading database ... 138353 files and directories currently installed.) Removing linux-headers-4.15.0-45-generic (4.15.0-45.48) ... Removing linux-headers-4.15.0-45 (4.15.0-45.48) ... Removing linux-modules-extra-4.15.0-45-generic (4.15.0-45.48) ... Removing linux-image-4.15.0-45-generic (4.15.0-45.48) ...
Make sure you install update-manager-core package
We need to install the Update Manager on server as it may or man not installed on your box:
sudo apt install update-manager-core
Execute the following command:
Please note if you may be greeted with the following message:
Checking for a new Ubuntu release There is no development version of an LTS available. To upgrade to the latest non-LTS develoment release set Prompt=normal in /etc/update-manager/release-upgrades.
In that case, pass the -d option to get the latest supported release forcefully:
sudo do-release-upgrade -d
Reading cache Checking package manager Continue running under SSH? This session appears to be running under ssh. It is not recommended to perform a upgrade over ssh currently because in case of failure it is harder to recover. If you continue, an additional ssh daemon will be started at port '1022'. Do you want to continue? Continue [yN] y Starting additional sshd To make recovery in case of failure easier, an additional sshd will be started on port '1022'. If anything goes wrong with the running ssh you can still connect to the additional one. If you run a firewall, you may need to temporarily open this port. As this is potentially dangerous it's not done automatically. You can open the port with e.g.: 'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT' To continue please press [ENTER]
No valid mirror found warning:
Updating repository information While scanning your repository information no mirror entry for the upgrade was found. This can happen if you run an internal mirror or if the mirror information is out of date. Do you want to rewrite your 'sources.list' file anyway? If you choose 'Yes' here it will update all 'bionic' to 'focal' entries. If you select 'No' the upgrade will cancel. Continue [yN]
Just say yes to use the official Ubuntu repo.
Reboot the box
We are almost done:
System upgrade is complete. Restart required To finish the upgrade, a restart is required. If you select 'y' the system will be restarted. Continue [yN] y Connection to 52.xxx.yy.zz closed by remote host. Connection to 52.xxx.yy.zz closed.
In other words, confirm by typing ‘y‘ when asked to reboot the box:
Check your Disro version:
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04 LTS Release: 20.04 Codename: focal
Verify Linux kernel version and other log files too:
tail -f /var/log/my-app.log
Linux 5.4.0-24-generic x86_64
On AWS EC2 or Lightsail server will see the following Linux kernel:
Linux 5.4.0-1011-aws x86_64
During the upgrade process, 3rd party software repos will be disabled for stability reasons. For example, Google Chrome and others are disabled. So we need to enable those using either the CLI or GUI tool called Software and Updates. Use the cd command as follows:
List those repos:
Let us see google-chrome.list using the cat command:
### THIS FILE IS AUTOMATICALLY CONFIGURED ### # You may comment out this entry, but any other modifications may be lost. # deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main # disabled on upgrade to focal
Edit the file:
sudo nano google-chrome.list
## OR ##
sudo vim google-chrome.list
Now update the file by removing the ‘#’ so that it reads as follows:
### THIS FILE IS AUTOMATICALLY CONFIGURED ### # You may comment out this entry, but any other modifications may be lost. deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main # disabled on upgrade to focal
Save and close the file in vim text editor. Finally update your apt repos:
sudo apt update
sudo apt upgrade
Let us see how to upgrade on a desktop system.
- First, keep backups of all important data.
- Open the “Software & Updates” Setting in System Settings.
- Select the 3rd Tab called “Updates“.
- Set the “Notify me of a new Ubuntu version” drop down menu to “For long-term support versions” if you are using 18.04 LTS; set it to “For any new version” if you are using 19.10.
- Open the terminal and type the following command:
update-manager -c -d
- Next, update Manager should open up and tell you that Ubuntu 20.04 LTS is now available. If the update-manager -c -d command failed to work, run the following command:
- Click Upgrade and follow the on-screen instructions.
Ubuntu do-release-upgrade command-line options
|-h||Display help message and exit.|
|-V||Show version and exit.|
|-d||If using the latest supported release, upgrade to the development release.|
|--data-dir=DATA_DIR||Directory that contains the data files|
|-p||Try upgrading to the latest release using the upgrader from $distro-proposed|
|-m MODE||Run in a special upgrade mode. Currently ‘desktop’ for regular upgrades of a desktop system and ‘server’ for server systems are supported.|
|-f FRONTEND||Run the specified frontend. You can use “DistUpgradeViewText”, “DistUpgradeViewGtk”, and “DistUpgradeViewKDE” FRONTEND.|
|-c||Check only if a new distribution release is available and report the result via the exit code.|
|--allow-third-party||Try the upgrade with third party mirrors and repositories enabled instead of commenting them out.|
You did it. Upgrade to Ubuntu 20.04 LTS was successful. Now you can test your apps and code that is compatible with the Ubuntu Linux 20.04 LTS server. See LTS page for all details.
|Category||List of Unix and Linux commands|
|Firewall||Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04|
|Network Utilities||dig • host • ip • nmap|
|OpenVPN||CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04|
|Package Manager||apk • apt|
|Processes Management||bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time|
|Searching||grep • whereis • which|
|User Information||groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w|
|WireGuard VPN||CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04|