I decided to update my old Linux Mint 18 installation to the latest and greatest. The docs seemed pretty straightforward, so off I went.

I first had to get to 18.3, then to 19, then to 19.3 then 20. The process for each was pretty similar. Sadly, it didn’t all go to plan.

Actually, initially all went well. I got to 19.3 in a pretty fast time. Downgrade foreign packages (although I did not remove them), and use the mintupgrade tool to get the new dependencies and upgrade.

But some way through the final step - 19.3 to 20 - my machine ran out of space on the /boot partition.

Now when Linux upgrades its kernel, it keeps the old kernel so that when you reboot, if the system is not stable, you can boot to the old kernel. As I’d upgraded through essentially 5 versions in quick succession, the boot partition contained each successive kernel and had ended up full.

Sadly, the Mint 20 upgrade tool did not deal with this well. It ended up in an infinite loop, attempting to reinstall the kernel over and over again. So I stopped it! scream

/boot: no space left on device

The mintupgrade tool dropped my sources list back to 19.3 sources, but it had got through a whole load of the installation process. Running mintupgrade check told me that I had to downgrade my foreign packages:

Software Sources > Maintenance > Downgrade foreign packages

If I went to the update manager and tried to downgrade the packages, this failed because half of them were not available. I was stuck.

So, first thing to do was to make some space on the /boot partition. This is also done in the Update Manager. In the View menu, select Linux Kernels and check through the list for Installed kernels. Remove old ones. The active kernel is your current one and cannot be removed.

To fix the other issue, most things I read said to drop back to the Timeshift backup and try again. Uhh… guess who skipped that step? Well - I didn’t have somewhere to put the backup.

Luckily, after hours of searching and running random apt commands, I found this install guide for Mint 20, which has manual steps at the bottom.

I followed these and fixed the system:

  1. Update /etc/apt/sources.list.d/official-package-repositories.list and search replace tricia with ulyana and bionic with focal.
  2. Update /etc/os-release and /etc/lsb-release so that Tricia is replaced with Ulyana and 19.3 and 20.
  3. Update your sources: sudo apt update -y && sudo apt upgrade -y
  4. Force the distribution update again: sudo apt dist-upgrade

After this, I rebooted and everything was fine and working (with the exception of some tmux config that no longer worked!).

It’s a shame the mintupgrade tool does not deal with issues during install in a slightly better way. But, won’t give up if you get into the same situation I did. I nearly did a full reinstall, as some people suggested, but glad I persevered now.