How to Upgrade to Linux Mint 20 (Ulyana)

In this guide, you will learn how to Upgrade Linux Mint 19.3 to the latest version which is Linux Mint 20. Codenamed Ulyana, Linux Mint 20 was released on June 27, 2020.

Linux Mint 20 is a long-term release (LTS) version that will enjoy support up to 2025.  It is based on Ubuntu 20.04 LTS and packs with numerous improvements and enhancements such as :

  • Warpinator – A new file-sharing tool for sharing files with the LAN.
  • Improved Support for NVIDIA Optimus.
  • New themes and polished icons.
  • Revamped system tray.
  • Fractional scaling to support connection to high-resolution displays.
  • A superb collection of 4K background images.

Let’s now see how you can upgrade from Linux Mint 19.3 to Linux Mint 20 and enjoy the latest features and enhancements.

Back up your files

Before you get started with upgrading your system, it’s highly recommended that you backup all your files and folders so that you will be in a safe place should the upgrade fail. Additionally, you can backup and restore the entire system using the TimeShift utility. Once you have backed up all your files, you can safely proceed to upgrade your system.

There are two ways to upgrade:

  • Mintupgrade utility
  • Manual upgrade

Upgrade to Linux Mint 20 using Mintupgrade utility

Before moving to upgrade step, let’s apply all the updates of existing packages using below apt command,

$ sudo apt upgrade -y
$ sudo reboot

Step 1) Install mintupgrade utility 

Open the terminal and type below command,

$ sudo apt update
$ sudo apt install mintupgrade -y

Note : In case you are unable to install mintupgrade package using apt command then go to your update manager and reset the package sources to default and then try to install mintupgrade.

Step 2) Check for Linux Mint 20 upgrade

Run the following mintupgrade command,

$ mintupgrade check

mintupgrade-check-command-output

Step 3) Download Upgrade packages using mintupgrade command

To download all upgrade packages required for Linux Mint 20, run

$ mintupgrade download

mintupgrade-download-linuxmint20

Step 4) Begin upgrade process

Once all the required packages for upgrade have been downloaded, begin the upgrade process by executing the below command,

Note: Once you initiate the upgrade process then it is no-reversible, the only way to roll back is by restoring the system snapshot.

$ mintupgrade upgrade

Minupgrade-upgrade-LinuxMint20

Once the ‘mintupgrade upgrade‘ has been executed successfully then reboot your system.

Upgrade-Finished-LinuxMint20

Once the system is available after reboot, you will see below screen, which confirms that your system has been upgraded to Linux Mint 20 successfully.

LinuxMint20-after-Upgrade

Manual Upgrade to Linux Mint 20

Step 1)  Edit the Repository Lists File

The next step is to modify the official package repositories list file which, by default, contains the entries shown below:

LinuxMint19-Repositories

You need to replace ‘tricia with ‘ulyana and all instances of ‘bionic with ‘focal.

To achieve this, edit the file with your preferred text editor as shown

$ sudo vim  /etc/apt/sources.list.d/official-package-repositories.list

This is what you should have now.

Updated-Repository-LinuxMint20-Upgrade

Save and exit the file.

Step 2)  Update & Upgrade the system

For the system to sync with and use the new repository an update of the package lists is required. Additionally, you need to upgrade the entire system’s packages to their latest versions. This can be achieved by running two commands in one line as shown:

$ sudo apt update -y && sudo apt upgrade -y

apt-upgrade-Linuxmint19-before-upgrade

This procedure takes quite a while. In my case, this took close to 2 hours, probably because my internet connection wasn’t quite fast. I believe the upgrade should be faster with blazing fast internet speeds.

Once the upgrade is done, perform an OS upgrade from Mint 19.3 to Mint 20 by running the command:

$ sudo apt dist-upgrade

This will upgrade the entire system to a new version.

LinuxMint19-apt-dist-upgrade

Again, this takes a while depending on your bandwidth speeds. It took about an hour or thereabouts in my case.

Once the upgrade is complete, reboot the system for the changes to take effect.

$ sudo reboot

And voila! The welcome screen will immediately confirm that you are now running on.

LinuxMint20-Cinnamon-Desktop

To verify this, open your terminal and run the command below

$ cat /etc/os-release

LinuxMint20-os-release-output

You can also confirm this using the neofetch utility. If Neofetch isn’t installed, you can install it using the command:

$ sudo apt install neofetch -y

On your terminal run the neofetch command as shown

$ neofetch

neotech-linuxmint20-command-output

If you have come this far, you have successfully upgrade Linux Mint 19.3, Tricia, to Linux Mint 20 Ulyana! You can enjoy the look and feel and tons of enhancements and improvements that come with the new release.

Also Read How to Boot Linux Mint 20 in Rescue / Emergency Mode

25 Responses

  1. MATT J BORDENET says:

    Presumably just a cosmetic detail, but I noticed this process leaves at least one legacy artifact behind. Makes me wonder what else may need a manual assist. Example: mintwelcome (/usr/lib/linuxmint/mintwelcome/mintwelcome.py

    Two more minor probs:
    1) I had to manually uninstall firewalld and reinstall gufw (python3-firewall appears to be gone)
    2) this basic command now triggers apt command usage: sudo apt –fix-broken install

    I’m very happy with the upgrade, though. Thanks for providing such a simple work-around.

  2. User says:

    My DPKG broke after this. I had to reload backup from Timeshift.

  3. MATT J BORDENET says:

    I changed a few additional apt configs, removed and reinstalled firewalld, then addressed a small number of broken packages via the synaptic package manager. With the sole exception of “apt –fix-broken install”, everything is now happily working, including mintwelcome.

  4. Big Zeek says:

    This worked for me flawlessly. Thanks!

  5. Joe T says:

    You need to discuss upgrading into an encrypted drive. That does not work with these instructions.

  6. valkyrk says:

    So easy even a caveman can do it!

    Thanks!

  7. AdTiet says:

    Perfect guide, thank you !

  8. Jeesus says:

    If you have crypted your 19.3, make sure to apt install –reinstall cryptsetup cryptsetup-bin cryptsetup-initramfs cryptsetup-run dmeventd libdevmapper-event1.02.1 liblvm2app2.2 liblvm2cmd2.02 libreadline5 lvm2. If you fail, you will need to do this: ‘https://feeding.cloud.geek.nz/posts/recovering-from-unbootable-ubuntu-encrypted-lvm-root-partition/’ (and while chrooting, reinstall those).

  9. Don says:

    Worked great, thanks!

  10. logan says:

    sudo vim /etc/apt/sources.list.d/official-package-repositories.list ….. should be sudo xed /etc/apt/sources.list.d/official-package-repositories.list
    either way it worked perfect !!

  11. Mr. Energy says:

    This solution works fine (several hours took me the upgrade on an i7/3.5GHz with 32GB RAM).

  12. mattis says:

    Upgrade croaked at 99% completed by…

    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    gir1.2-glib-2.0 : Depends: libgirepository-1.0-1 (>= 1.59.4) but 1.56.1-1 is to be installed
    libglib2.0-0 : Breaks: libgirepository-1.0-1 (< 1.62.0-4~) but 1.56.1-1 is to be installed
    mono-runtime-sgen : Depends: mono-runtime-common (= 4.6.2.7+dfsg-1ubuntu1) but it is not going to be installed
    E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

    Not too sure how to navigate it through.

    • MIchael says:

      Hi – here’s what I did …
      apt get remove libgirepository-1.0-1

      Then I did the upgrade and it worked … with a good deal of anxiety. Removing this file really breaks Linux … a lot of stuff stops working. The upgrade, however, then worked flawlessly as does the computer now. I am not sure what would happen if you lost power or turned off the computer before upgrading … probably wouldn’t be pretty. Thankfully, I didn’t really know what I was doing when I did the uninstall. 🙂 (… and figured I could use TimeShift after booting to a USB stick if I really needed…)

  13. Yvan says:

    It did not worked.
    I am stil in 19.3.

    Here is the message error.
    Sorry it’s in french

    Les paquets suivants contiennent des dépendances non satisfaites :
    libgirepository-1.0-1 : Casse: python-gi (< 3.34.0-4~) mais 3.26.1-2ubuntu1 devra être installé
    E: Erreur, pkgProblem::Resolve a généré des ruptures, ce qui a pu être causé par les paquets devant être gardés en l'état.

    Do you know what to do?

  14. H.Janssen says:

    Exactly the same problem as mattis on a i386. Problems with no longer accepted relative paths in systemd files, problems with uuid-based mounting disks. X-server refuses to start. I could not find any way to get the packages consistent.
    Clonezilla is running now restoring version 19, so I’ll stay with that and recommend clean install….

  15. Stelios says:

    pls help, it doesn’t let me to edit the Repository Lists File despite the fact that I am the admin

  16. kurdtpage says:

    I could not upgrade because there were too many errors with gconf

  17. Helmar Fernandes says:

    Painful… I don’t know what to do.
    I get stuck in Fallback mode due to a cinnamon error and I can’t fix it.

  18. realw98 says:

    Some simple rules to avoid 90% problems in all debian based systems
    1) Do not put packages on hold, unless you know what you are doing.
    2) Unhold packages before big upgrades, unless you _really_ know what you are doing
    3) Do not use apt-get from command line for any complicated things
    4) Use aptitude, where you can preview changes and resolve broken dependencies, before applying them (synaptics can do this too, but it has awful UI)
    And the most important one:
    5) If you do not understand how package management system works and what dependencies are (and don`t want to learn), DO NOT follow ANY guides in the internets, including mine. Just do fresh install.

  19. Stephen Trembath says:

    Upgrading gave the error “breaks: python-gi (< 3.34.0-4~) but 3.26.1-2ubuntu1 is to be installed"
    Resolved by running "sudo apt install python3-gi" which will install a later python-gi to overcome the error and will update other programs too. To finalise the install then run "sudo apt dist-upgrade" again and this time the upgrade process completed without error.

    If you have another error then search how to install , carry out install and try upgrade again.

  20. Justin de Moor says:

    I am quite new to Linux, so forgive me if this seems like a stupid question. I’d like to upgrade, but not having Timeshift seems to be a major issue. I do not want (to use) Timeshift, I have my own methods of securing my system for [email protected]#k ups, or other “disasters”. Is there any way to bypass this Timeshift thing? Any help is greatly appreciated.

    • Justin de Moor says:

      I have found the answer to my question myself.

      Open a terminal and punch in the following command: “sudo touch /etc/timeshift.json”

      If you want to use Timeshift (again), you need to remove that file.

  21. Cliff Sloane says:

    I tried it twice. In the second attempt I fixed the mistakes from the first (foreign PPAs). THe mintupdate check had no flags and it proceeded as described. When I rebooted, Cinnamon crashed, dozens of unmet dependencies (all seemingly related to python3), and none of the system windows (Control, Preferences, Update Manager, etc) would open. From CLI, apt did not work (missing apt_pkg module) and dpkg fixes failed.
    I restored from timeshift via CLI.
    I love 19.3 and I am happy to ignore the upgrade, unless the fix for this is known. Anybody?

  22. Abhishek VERMA says:

    Thanks buddy for this detailed go through.

Leave a Reply

Your email address will not be published. Required fields are marked *

Pin It on Pinterest