Ubuntu upgrade tools supports "single step" upgrades.

The "single step" can be based on:

  • Normal release steps: 18.04 to 18.10 to 19.04 to 19.10 to 20.04 or
  • LTS release steps: 16.04 to 18.04 to 20.04

The impact of this is that it is quite easy to get stranded on on "Normal" release cycle as the intermediate releases get moved to "End of Life" quite quickly.

The follow note provide process used to get from 18.10 (Cosmic - End of Life) to 20.04 (Focal LTS).

Status: June 2020 - Validated across a number of upgrades which got stranded on 18.10


Upgrade Process

This process was defined as a result of having a number of VMs that got stranded at release 18.10 and "do-release-upgrade"  command no longer working due to 18.10 (Cosmic) & 19.04 (Disco) having gone "End of Life".

Here are the high level steps:

  1. You can only do this via set of steps: 18.10 (cosmic) -> 19.04 (disco) -> 19.10 (eoan) -> 20.04 (focal)
  2. 18.10 and 19.04 are the problem as they are "obsolete" and archive has been moved to "old-releases", so you will need to edit /etc/apt/sources.list to point to:
    "deb http://old-releases.ubuntu.com/ubuntu" and not any other repository
  3. Using command line (not UI) do:
$ sudo apt update
$ sudo apt upgrade
$ sudo apt autoremove
---
--- and reboot
---
$ sudo reboot

4.  Now you can try upgrade, but first check that: /etc/update-manager/release-upgrades has "Prompt=normal" and edit if needed. Then via command line do:

$ do-release-upgrade

There are 4 possible results:

a. All goes ok ;-) - then advance to (6)
b. Get failure where is says you cannot upgrade from "cosmic" to "eoan" (see below)
c. Get "do-release-upgrade" command not found
d. No release found (see step 6)

$ do-release-upgrade
Checking for a new Ubuntu release
Your Ubuntu release is not supported anymore.
For upgrade information, please visit:
http://www.ubuntu.com/releaseendoflife

Get:1 Upgrade tool signature [1,554 B]                                                        
Get:2 Upgrade tool [1,329 kB]                                                                 
Fetched 1,331 kB in 0s (0 B/s)                                                                
authenticate 'eoan.tar.gz' against 'eoan.tar.gz.gpg' 
extracting 'eoan.tar.gz'
[sudo] password for XXX: 

Reading cache

Checking package manager

Cannot upgrade 

An upgrade from 'cosmic' to 'eoan' is not supported with this tool.

4b.  You need to edit the cached update list which is in: ~/.cache/update-manager-core/meta-release

Editing should remove all releases after "disco" and change "cosmic" and "disco" supported flag from "0" to "1" (see below):

...
...
...


Dist: cosmic
Name: Cosmic Cuttlefish
Version: 18.10
Date: Thu, 18 October 2018 18:10:00 UTC
Supported: 1   <<================ CHANGED TO 1
Description: This is the 18.10 release
Release-File: http://archive.ubuntu.com/ubuntu/dists/cosmic/Release
ReleaseNotes: http://changelogs.ubuntu.com/EOLReleaseAnnouncement
UpgradeTool: http://archive.ubuntu.com/ubuntu/dists/cosmic-updates/main/dist-upgrader-all/current/cosmic.tar.gz
UpgradeToolSignature: http://archive.ubuntu.com/ubuntu/dists/cosmic-updates/main/dist-upgrader-all/current/cosmic.tar.gz.gpg

Dist: disco
Name: Disco Dingo
Version: 19.04
Date: Thu, 18 April 2019 19:04:00 UTC
Supported: 1    <<================ CHANGED TO 1
Description: This is the 19.04 release
Release-File: http://archive.ubuntu.com/ubuntu/dists/disco/Release
ReleaseNotes: http://changelogs.ubuntu.com/EOLReleaseAnnouncement
UpgradeTool: http://archive.ubuntu.com/ubuntu/dists/disco-updates/main/dist-upgrader-all/current/disco.tar.gz
UpgradeToolSignature: http://archive.ubuntu.com/ubuntu/dists/disco-updates/main/dist-upgrader-all/current/disco.tar.gz.gpg
---
--- REMOVE EVERYTHING AFTER DISCO
---

NOTE 1: If there is no .cache file then also look for this in: /var/lib/update-manager

NOTE 2: If you are on LTS stream then the file will be: "meta-release-lts" & "meta-release-lts-development"

Now back to 4

4c.  You need to install update sw: sudo apt install ubuntu-release-upgrader-core

Now back to 4

5.  Redo: do-release-upgrade
Keep in mind you could end up going back to 4b.

If all goes ok then go to (6)

6.  You should now be at 19.04 or 19.10 (depending on where you started).
Now you just need to repeat the steps.

Simply repeat 4.

If get a "release not found" error then you should delete the cached releases file you edited earlier (~/.cache/update-manager-core/meta-release) and re-run.

7.  You should now be able to to upgrade to 20.04 LTS


NOTE 1: If you have used "external PPA" in /etc/apt/sources.list.d directory, then you should disable these prior to starting the update process.

NOTE 2: If  you are on LTS release (18.04) then you can upgrade straight to 20.04 by simply doing: do-release-upgrade (or do-release-upgrade -d if this is not enabled by default)


References & Links:

Ask Ubuntu - my posting on repeatable process based on inputs within discussion thread

Ubuntu Releases - the various Ubuntu releases and their status

Upgrading from 18.04 to 20.04 - LTS Upgrade instructions