The standard Ubuntu versions go EOL quite quickly and it’s easy to miss the upgrade window such that running do-release-upgrade
yields:
An upgrade from 'groovy' to 'impish' is not supported with this tool.
In this example, Ubuntu is looking to upgrade from 20.10 to 21.10 skipping 21.04 which is not supported. You’ve probably also reached a situation where you cannot even upgrade your current packages as the repositories have also been EOL’d and do not exist.
To upgrade step-wise, we need to upgrade our current platform first. You need to be logged in as root or using sudo for all of the following.
Start by changing your mirror in /etc/apt/sources.list to use old-releases.ubuntu.com. For example, in my case my mirror was ie.archive.ubuntu.com and so I can replace that via:
sed -i -e 's/ie.archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
Once that’s done, upgrade your current system as usual:
apt-get update apt-get dist-upgrade shutdown -r now
Now that your current system is up-to-date, we need to do a distribution upgrade to 21.04 hirsute (in my case). do-release-upgrade
will still not work so we need to manually download the upgrade tool and run that ourselves. Find the appropriate UpgradeTool file from Ubuntu’s meta-release page here. In my case the appropriate upgrade file was hirsute.tar.gz and I downloaded that via:
wget http://archive.ubuntu.com/ubuntu/dists/hirsute-updates/main/dist-upgrader-all/current/hirsute.tar.gz
You now need to extract and run the tool:
mkdir hirsute_files cd hirsute_files tar zxf ../hirsute.tar.gz ./hirsute
If you’re as fortunate as me, this will run cleanly just as it would have via do-release-upgrade
. If you have no more intermediary versions, you can do the final upgrade via do-release-upgrade
as normal. Remember also that upgrading from one LTS version to another is also supported by that tool.