Go manic for mantic

Earlier today I posted a poll on Mastodon.

As I write this, there are fifteen hours left on the poll, and it looks like this with around a hundred votes:

Poll

Most people seems to think I should wait for a month. That result may change overnight, of course, but I can’t wait! I’ve got a blog post to write, and time on my hands!

So let’s upgrade now!

Also, nobody seemed to spot that I got the releases round the wrong way. 23.04 is Lunar, and 23.10 is Mantic. I edited the post, but kept the above screenshot in

Upgrades work

So I’m upgrading one of the machines now. I will only upgrade my personal desktop Intel NUC, not the work laptop. For now, at least.

I’ve long had the opinion that Ubuntu upgrades are generally reliable. On the whole, for most people, most of the time, the upgrade tool from one release to the next, will result in a working system.

Sometimes it doesn’t! Let’s see what happens when I upgrade the desktop from Ubuntu 23.04 (Lunar) to Ubuntu Mantic Minotaur, which will become 23.10 next month.

What could possibly go wrong!?

(foreshadowing)

RTFM

This blog post is not an upgrade guide. Don’t follow blog guides telling you how to upgrade your operating system. That’s foolish.

Go to the official documentation. Let’s do a search online. UpgradeNotes community documentation sounds about right. Wait a minute…

Upgrade Notes

“From 16.04 LTS (or 17.10) to 18.04 LTS”!? or “From 19.04 to 19.10”, “last edited 2019-10-27 07:37:02”. Well that’s not right. Oh, wait, it has a link to https://ubuntu.com/getubuntu/upgrading

404

Hm. There’s got to be some documentation around here somewhere… Our favourite search engine found this tutorial, which looks promising. But it’s really aimed at people upgrading to the next supported release, not development releases. Remember, 23.10 isn’t out yet!

I put my big-boy pants on and searched harder, finding this askubuntu question from the past, which still appears to have accurate answers.

The answers are sudo do-release-upgrade -d or update-manager -d. The -d meaning to upgrade to the development release.

Ok, let’s go.

Preparation

Backup.

After discussing backups on episode 9 of Linux Matters, I now backup my desktop using BorgBackup. I get an email every hour, too!

Mutt

I have tested these, and the backups work, unlike the caravan club.

Updates

Before we begin the actual upgrade, it’s always a wise idea to have all the latest updates installed for the release I’m running.

alan@nuc:~$ sudo apt update -qq
48 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: https://packagecloud.io/slacktechnologies/slack/debian/dists/jessie/InRelease: 
Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), 
see the DEPRECATION section in apt-key(8) for details.

Whatever, I should do something about that warning someday.

Future popey here to point out that I don’t need to do anything about this, because the upgrade will automagically disable the third party reposistory, making this warning vanish.

alan@nuc:~$ sudo apt full-upgrade -qq
The following packages were automatically installed and are no longer required:
  grub-pc-bin linux-headers-6.2.0-20
Use 'sudo apt autoremove' to remove them.
The following packages will be upgraded:
  code cups cups-bsd cups-client cups-common cups-core-drivers cups-daemon
  cups-ipp-utils cups-ppdc cups-server-common curl google-chrome-stable
  libcups2 libcupsimage2 libcurl3-gnutls libcurl4 libnss-systemd
  libpam-systemd libsystemd-shared libsystemd0 libsystemd0:i386 libudev-dev
  libudev1 libudev1:i386 libwebp7 libwebp7:i386 libwebpdemux2 libwebpmux3
  libwebpmux3:i386 microsoft-edge-stable mutt openssh-client openssh-server
  openssh-sftp-server systemd systemd-oomd systemd-resolved systemd-sysv
  systemd-timesyncd telegraf thunderbird thunderbird-gnome-support
  thunderbird-locale-en thunderbird-locale-en-gb thunderbird-locale-en-us
  thunderbird-locale-zh-hant udev zerotier-one
48 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
26 standard LTS security updates
Need to get 490 MB of archives.
After this operation, 16.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
blah blah blah
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1.1ubuntu1) ...
Processing triggers for libc-bin (2.37-0ubuntu2) ...

Ok, we’re up to date on 23.04.

Upgrade

Time to upgrade.

I’m a terminal nerd (geddit?) so I will use a command-line interface for my upgrade. Even though I’m on a graphical desktop! What a maverick meerkat!

alan@nuc:~$ sudo do-release-upgrade -d
Checking for a new Ubuntu release

= Welcome to Ubuntu 23.10 'Mantic Minotaur' =

The Ubuntu team is proud to announce Ubuntu 23.10 'Mantic Minotaur'.

To see what's new in this release, visit:
  https://wiki.ubuntu.com/ManticMinotaur/ReleaseNotes

Ubuntu is a Linux distribution for your desktop or server, with a fast
and easy install, regular releases, a tight selection of excellent
applications installed by default, and almost any other software you
can imagine available through the network.

We hope you enjoy Ubuntu.

== Feedback and Helping ==

If you would like to help shape Ubuntu, take a look at the list of
ways you can participate at

  http://www.ubuntu.com/community/participate/

Your comments, bug reports, patches and suggestions will help ensure
that our next release is the best release of Ubuntu ever.  If you feel
that you have found a bug please read:

  http://help.ubuntu.com/community/ReportingBugs

Then report bugs using apport in Ubuntu.  For example:

  ubuntu-bug linux

will open a bug report in Launchpad regarding the linux package.

If you have a question, or if you think you may have found a bug but
aren't sure, first try asking on the #ubuntu or #ubuntu-bugs IRC
channels on Libera.Chat, on the Ubuntu Users mailing list, or on the
Ubuntu forums:

  http://help.ubuntu.com/community/InternetRelayChat
  http://lists.ubuntu.com/mailman/listinfo/ubuntu-users
  http://www.ubuntuforums.org/


== More Information ==

You can find out more about Ubuntu on our website, IRC channel and wiki.
If you're new to Ubuntu, please visit:

  http://www.ubuntu.com/


To sign up for future Ubuntu announcements, please subscribe to Ubuntu's
very low volume announcement list at:

  http://lists.ubuntu.com/mailman/listinfo/ubuntu-announce


Continue [yN] 

I do love how the release notes mention IRC, the Ubuntu Users Mailing List, and Ubuntu Forums. It’s like 2005 all over again.

I press “Y” to continue.

Get:1 Upgrade tool signature [819 B]                                           
Get:2 Upgrade tool [1,265 kB]                                                  
Fetched 1,266 kB in 0s (0 B/s)                                                 
authenticate 'mantic.tar.gz' against 'mantic.tar.gz.gpg' 
extracting 'mantic.tar.gz'

Reading cache

Checking package manager
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Hit http://gb.archive.ubuntu.com/ubuntu lunar InRelease                        
Hit http://gb.archive.ubuntu.com/ubuntu lunar-updates InRelease                
Hit http://gb.archive.ubuntu.com/ubuntu lunar-backports InRelease              
Hit http://gb.archive.ubuntu.com/ubuntu lunar-security InRelease               
Hit http://packages.microsoft.com/repos/code stable InRelease                  
Hit https://repos.influxdata.com/debian stable InRelease                       
Hit http://download.zerotier.com/debian/bookworm bookworm InRelease            
Hit https://repo.steampowered.com/steam stable InRelease                       
Hit https://apt.syncthing.net syncthing InRelease                              
Hit https://packages.microsoft.com/repos/edge stable InRelease                 
Hit https://dl.google.com/linux/chrome/deb stable InRelease                    
Hit https://download.sublimetext.com apt/stable/ InRelease                     
Hit https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease    
Fetched 0 B in 0s (0 B/s)                                                      
Reading package lists... Done    
Building dependency tree... Done 
Reading state information... Done
Fetched 0 B in 0s (0 B/s)                                                      

Checking for installed snaps

Calculating snap size requirements

Updating repository information

Third party sources disabled 

Some third party entries in your sources.list were disabled. You can 
re-enable them after the upgrade with the 'software-properties' tool 
or your package manager. 

To continue please press [ENTER]

I press [ENTER].

Get:1 http://gb.archive.ubuntu.com/ubuntu mantic InRelease [255 kB]            
Get:2 http://gb.archive.ubuntu.com/ubuntu mantic-updates InRelease [90.7 kB]   
Hit https://repo.steampowered.com/steam stable InRelease                       
Get:3 http://gb.archive.ubuntu.com/ubuntu mantic-backports InRelease [90.7 kB] 
Hit https://repos.influxdata.com/debian stable InRelease                       
Get:4 http://gb.archive.ubuntu.com/ubuntu mantic-security InRelease [90.7 kB]  
Hit https://apt.syncthing.net syncthing InRelease                              
Get:5 http://gb.archive.ubuntu.com/ubuntu mantic/main amd64 Packages [1,406 kB]
Get:6 http://gb.archive.ubuntu.com/ubuntu mantic/main i386 Packages [1,043 kB] 
Get:7 http://gb.archive.ubuntu.com/ubuntu mantic/main Translation-en [516 kB]  
Hit https://download.sublimetext.com apt/stable/ InRelease                     
Get:8 http://gb.archive.ubuntu.com/ubuntu mantic/main amd64 DEP-11 Metadata [465 kB]
Get:9 http://gb.archive.ubuntu.com/ubuntu mantic/main DEP-11 48x48 Icons [106 kB]
Get:10 http://gb.archive.ubuntu.com/ubuntu mantic/main DEP-11 64x64 Icons [156 kB]
Get:11 http://gb.archive.ubuntu.com/ubuntu mantic/main DEP-11 64x64@2 Icons [21.1 kB]
Get:12 http://gb.archive.ubuntu.com/ubuntu mantic/main amd64 c-n-f Metadata [30.4 kB]
Get:13 http://gb.archive.ubuntu.com/ubuntu mantic/restricted i386 Packages [37.7 kB]
Get:14 http://gb.archive.ubuntu.com/ubuntu mantic/restricted amd64 Packages [167 kB]
Get:15 http://gb.archive.ubuntu.com/ubuntu mantic/restricted Translation-en [24.8 kB]
Get:16 http://gb.archive.ubuntu.com/ubuntu mantic/restricted amd64 c-n-f Metadata [520 B]
Get:17 http://gb.archive.ubuntu.com/ubuntu mantic/universe amd64 Packages [14.8 MB]
Get:18 http://gb.archive.ubuntu.com/ubuntu mantic/universe i386 Packages [8,043 kB]
Get:19 http://gb.archive.ubuntu.com/ubuntu mantic/universe Translation-en [5,955 kB]
Get:20 http://gb.archive.ubuntu.com/ubuntu mantic/universe amd64 DEP-11 Metadata [3,772 kB]
Get:21 http://gb.archive.ubuntu.com/ubuntu mantic/universe DEP-11 48x48 Icons [3,699 kB]
Get:22 http://gb.archive.ubuntu.com/ubuntu mantic/universe DEP-11 64x64 Icons [7,734 kB]
Get:23 http://gb.archive.ubuntu.com/ubuntu mantic/universe DEP-11 64x64@2 Icons [75.0 kB]
Get:24 http://gb.archive.ubuntu.com/ubuntu mantic/universe amd64 c-n-f Metadata [303 kB]
Get:25 http://gb.archive.ubuntu.com/ubuntu mantic/multiverse amd64 Packages [240 kB]
Get:26 http://gb.archive.ubuntu.com/ubuntu mantic/multiverse i386 Packages [116 kB]
Get:27 http://gb.archive.ubuntu.com/ubuntu mantic/multiverse Translation-en [114 kB]
Get:28 http://gb.archive.ubuntu.com/ubuntu mantic/multiverse amd64 DEP-11 Metadata [31.5 kB]
Get:29 http://gb.archive.ubuntu.com/ubuntu mantic/multiverse DEP-11 48x48 Icons [55.1 kB]
Get:30 http://gb.archive.ubuntu.com/ubuntu mantic/multiverse DEP-11 64x64 Icons [185 kB]
Get:31 http://gb.archive.ubuntu.com/ubuntu mantic/multiverse DEP-11 64x64@2 Icons [904 B]
Get:32 http://gb.archive.ubuntu.com/ubuntu mantic/multiverse amd64 c-n-f Metadata [8,388 B]
Get:33 http://gb.archive.ubuntu.com/ubuntu mantic-updates/main amd64 c-n-f Metadata [108 B]
Get:34 http://gb.archive.ubuntu.com/ubuntu mantic-updates/restricted amd64 c-n-f Metadata [116 B]
Get:35 http://gb.archive.ubuntu.com/ubuntu mantic-updates/universe amd64 c-n-f Metadata [112 B]
Get:36 http://gb.archive.ubuntu.com/ubuntu mantic-updates/multiverse amd64 c-n-f Metadata [116 B]
Get:37 http://gb.archive.ubuntu.com/ubuntu mantic-backports/main amd64 c-n-f Metadata [112 B]
Get:38 http://gb.archive.ubuntu.com/ubuntu mantic-backports/restricted amd64 c-n-f Metadata [116 B]
Get:39 http://gb.archive.ubuntu.com/ubuntu mantic-backports/universe amd64 c-n-f Metadata [116 B]
Get:40 http://gb.archive.ubuntu.com/ubuntu mantic-backports/multiverse amd64 c-n-f Metadata [116 B]
Get:41 http://gb.archive.ubuntu.com/ubuntu mantic-security/main amd64 c-n-f Metadata [112 B]
Get:42 http://gb.archive.ubuntu.com/ubuntu mantic-security/restricted amd64 c-n-f Metadata [116 B]
Get:43 http://gb.archive.ubuntu.com/ubuntu mantic-security/universe amd64 c-n-f Metadata [116 B]
Get:44 http://gb.archive.ubuntu.com/ubuntu mantic-security/multiverse amd64 c-n-f Metadata [116 B]
Fetched 49.6 MB in 0s (0 B/s)                                                  

Checking package manager
Reading package lists... Done    
Building dependency tree... Done 
Reading state information... Done

Calculating the changes

Calculating the changes

Do you want to start the upgrade? 


8 packages are going to be removed. 113 new packages are going to be 
installed. 1620 packages are going to be upgraded. 

You have to download a total of 2,570 M. This download will take 
about 8 minutes with a 40Mbit connection and about 1 hour 8 minutes 
with a 5Mbit connection. 

Fetching and installing the upgrade can take several hours. Once the 
download has finished, the process cannot be canceled. 

 Continue [yN]  Details [d]

Details, shmetails…

Punch it

I press “Y”.

Time passes…

A lot of this happens…

Downloading

Followed by tons of this…

Unpacking

Then oodles of this…

Installing

All very much the same as any other release upgrade.

Computer go brrr.

Brr

Black screen of doom

It was at this moment he knew, he f’ed up.

All three screens suddenly went black, and I was left with just a flashing cursor. Here’s a simulation of what that looked like:

_

My first reaction was “Oh gosh, this seems suboptimal”, or words to that effect.

Mild shock

The disk light was still flickering like mad though, so I assumed upgrade things were still happening. I wandered off to find a laptop so I could SSH in to have a poke around.

Check the logs

Once in, I looked in /var/log/dist-upgrade and found stuff still being written to main.log and apt.log.

In previous releases, if GNU screen was installed, the upgrade tool would automatically launch inside a screen session. I would have been able to reconnect to the process, and see what was going on.

Unfortunately, that didn’t seem to be the case with my upgrade, and I didn’t manually launch it inside a screen or tmux session. So I couldn’t reconnect to it.

However, looking at the main.log, it looks like we may be finished, probably at the stage where the upgrade tool is asking for confirmation to remove packages that are no longer required.

2023-09-18 20:42:44,774 DEBUG package 'gir1.2-soup-2.4' produces an
unwanted removal 'fonts-tlwg-typo-otf', skipping 
2023-09-18 20:42:48,344 DEBUG 'gir1.2-soup-2.4' scheduled for remove 
but not safe to remove, skipping
2023-09-18 20:42:48,344 DEBUG Finish checking for obsolete pkgs 
2023-09-18 20:42:48,433 DEBUG The following packages are marked for removal: 
libgdal32 liborcus-parser-0.17-0 fonts-tlwg-mono fonts-thai-tlwg
linux-modules-nvidia-535-6.2.0-27-generic g++-12 fonts-tlwg-kinnari
libsdl-image1.2 libgtkmm-2.4-1v5 libblockdev-part2 libdmapsharing-3.0-2
linux-modules-nvidia-535-6.2.0-26-generic fonts-tlwg-garuda libgeos3.11.1
fonts-tlwg-typo-otf grub-pc-bin fonts-tlwg-typo-ttf libblockdev-fs2
gconf-service-backend libmujs2 python3-reportlab
linux-objects-nvidia-535-6.2.0-26-generic gir1.2-webkit2-4.0 libcamd2
fonts-tlwg-typo libsoup-gnome2.4-1 libcholmod3 ubuntu-wallpapers-lunar
libblockdev-part-err2 linux-signatures-nvidia-6.2.0-27-generic liborcus-0.17-0
libumfpack5 fonts-tlwg-laksaman libpoppler126 linux-headers-6.2.0-27-generic
gconf-service libswscale6 liblc3-0 linux-signatures-nvidia-6.2.0-26-generic
system-config-printer fonts-khmeros-core libparted-fs-resize0 gir1.2-soup-2.4
linux-image-6.2.0-27-generic fonts-tlwg-loma fonts-dejavu-extra libraw20
fonts-sil-abyssinica fonts-tlwg-umpush nvidia-firmware-535-535.86.05
fonts-tlwg-laksaman-ttf libccolamd2 libstdc++-12-dev

Kill it with fire

The only thing I can do at this point is kill the upgrade, and then cleanup manually - which isn’t hard.

The upgrade tool has the name of the release in it, so I look for the process.

root@nuc:~# ps aux | grep mantic
root     3561731 11.4  0.6 554192 226416 pts/16  Sl+  20:06
5:57 /usr/bin/python3 -s /tmp/ubuntu-release-upgrader-shc9u51x/mantic --mode=server
--frontend=DistUpgradeViewText --devel-release 

Kill him

root@nuc:~# kill -9 3561731

Do an accurate lightsaber noise, NOW!

Cleanup

This dpkg command can often be used to finish off some in-flight package shennanigans.

alan@nuc:~$ sudo dpkg --configure -a
alan@nuc:~$ sudo apt autoremove
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  chromium-codecs-ffmpeg-extra fonts-kacst fonts-kacst-one fonts-khmeros-core
  fonts-lao fonts-lklug-sinhala fonts-sil-abyssinica fonts-sil-padauk
  fonts-thai-tlwg fonts-tibetan-machine fonts-tlwg-garuda fonts-tlwg-garuda-ttf
  fonts-tlwg-kinnari fonts-tlwg-kinnari-ttf fonts-tlwg-laksaman
  fonts-tlwg-laksaman-ttf fonts-tlwg-loma fonts-tlwg-loma-ttf fonts-tlwg-mono
  fonts-tlwg-mono-ttf fonts-tlwg-norasi fonts-tlwg-norasi-ttf fonts-tlwg-purisa
  fonts-tlwg-purisa-ttf fonts-tlwg-sawasdee fonts-tlwg-sawasdee-ttf
  fonts-tlwg-typewriter fonts-tlwg-typewriter-ttf fonts-tlwg-typist
  fonts-tlwg-typist-ttf fonts-tlwg-typo fonts-tlwg-typo-ttf fonts-tlwg-umpush
  fonts-tlwg-umpush-ttf fonts-tlwg-waree fonts-tlwg-waree-ttf g++-12
  gir1.2-javascriptcoregtk-4.0 gir1.2-soup-2.4 gir1.2-webkit2-4.0 grub-pc-bin
  libamd2 libavutil57:i386 libblockdev-crypto2 libblockdev-fs2
  libblockdev-loop2 libblockdev-part-err2 libblockdev-part2 libblockdev-swap2
  libblockdev-utils2 libblockdev2 libcamd2 libccolamd2 libcholmod3
  libcodec2-1.0:i386 libcolamd2 libdmapsharing-3.0-2 libevent-2.1-7a
  libevent-core-2.1-7a libfuse2 libgdal32 libgeos3.11.1 libgtkmm-2.4-1v5
  libgupnp-igd-1.0-4 libixml10 libjavascriptcoregtk-4.0-18 liblc3-0 liblua5.3-0
  libmetis5 libmujs2 liborcus-0.17-0 liborcus-parser-0.17-0
  libparted-fs-resize0 libpoppler126 libraw20 libsdl-image1.2
  libsoup-gnome2.4-1 libspatialite7 libstdc++-12-dev libsuitesparseconfig5
  libsuperlu5 libumfpack5 libupnp13 libwebkit2gtk-4.0-37 linux-headers-6.2.0-20
  linux-headers-6.2.0-27 linux-headers-6.2.0-27-generic
  linux-image-6.2.0-27-generic linux-modules-6.2.0-27-generic
  linux-modules-extra-6.2.0-27-generic
  linux-modules-nvidia-535-6.2.0-27-generic
  linux-objects-nvidia-535-6.2.0-27-generic
  linux-signatures-nvidia-6.2.0-27-generic nvidia-firmware-535-535.86.05
  python3-async-generator python3-llfuse python3-renderpm
  python3-reportlab-accel
0 upgraded, 0 newly installed, 98 to remove and 1 not upgraded.
After this operation, 1,406 MB disk space will be freed.
Do you want to continue? [Y/n] 

Which ended normally.

Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Windows Boot Manager on /dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings ...
done
Removing linux-modules-extra-6.2.0-27-generic (6.2.0-27.28) ...
Removing linux-modules-6.2.0-27-generic (6.2.0-27.28) ...
Removing linux-objects-nvidia-535-6.2.0-27-generic (6.2.0-27.28+1) ...
Removing nvidia-firmware-535-535.86.05 (535.86.05-0ubuntu0.23.04.1) ...
Removing python3-async-generator (1.10-4) ...
Removing python3-renderpm:amd64 (4.0.4-11) ...
Removing python3-reportlab-accel:amd64 (4.0.4-11) ...
Processing triggers for libc-bin (2.38-1ubuntu4) ...
Processing triggers for man-db (2.11.2-3) ...
Processing triggers for fontconfig (2.14.2-4ubuntu1) ...
alan@nuc:~$ 

One last check that we’re up to date:

alan@nuc:~$ sudo apt update ; sudo apt full-upgrade
Hit:1 http://gb.archive.ubuntu.com/ubuntu mantic InRelease
Hit:2 http://gb.archive.ubuntu.com/ubuntu mantic-updates InRelease                                                                                                               
Hit:3 http://gb.archive.ubuntu.com/ubuntu mantic-backports InRelease                                                                                                             
Hit:4 http://gb.archive.ubuntu.com/ubuntu mantic-security InRelease                                                                                                              
Hit:5 https://repos.influxdata.com/debian stable InRelease                                                                                                                       
Hit:6 https://repo.steampowered.com/steam stable InRelease                                                                                               
Hit:7 https://apt.syncthing.net syncthing InRelease                                                                               
Hit:8 https://download.sublimetext.com apt/stable/ InRelease                    
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  gconf-service gconf-service-backend gconf2-common libappindicator1 libc++abi1-15 libdbusmenu-gtk4 libgconf-2-4 libunwind-15
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  discord libc++1 libc++1-15
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
After this operation, 231 MB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.

Good enough!

Reboot and pray

Success!

Success

See, I told you Ubuntu upgrades work.

:)