How to upgrade ARM64 Ubuntu 22.04 to 24.04

I love ARM64. It’s low power highly efficient computing. Additionally one of my major workloads, namely Webmin, works on ARM64. Ubuntu has ARM64. There is even a Debian GUI that you can run on Mac Silicon and ARM64.

So ARM64 is it.

But how to upgrade from Ubuntu 22.04 LTS ARM64 to Ubuntu 24.04 LTS ARM64?

I is a bit of a convoluted process. TL;DR:

  • Do one last apt update
  • Allow firewall on 1022
  • Fix the there is no release problem by modifying /etc/update-manager/release/upgrade to normal.
  • Upgrade to Ubuntu 23.10 with do-release-upgrade. Yep,  you’ve read that right. You have to do an incremental upgrade to get to the latest LTS version.
  • Reboot
  • Fix prompt from normal to lts
  • do-release-upgrade
  • Reboot

For your reading pleasure, here are the complete steps:

SSH to the source machine

Do a backup. Here is one way using RSYNC to a remote machine:

rsync -av --progress /home/username /path/to/external/drive

Once you have a good backup, proceed to the next step.

See what packages you need to upgrade:

sudo apt list --upgradable

Next upgrade them:

sudo apt update && sudo apt upgrade -y

Reboot if you have a new kernel with reboot.

Open 1022:

ufw allow 1022/tcp

As per the crib notes, you have to upgrade to Ubuntu 23.10 first. You can run do-release-upgrade but it won’t work until you edit this file:

/etc/update-manager/release/upgrade

Now do-release-upgrade again.

In my upgrade, I had questions about:

  • timesync
  • named.conf
  • sshd.conf
  • grub
  • release-notes

Answers:

  • Timesync was easy. Use the new (package maintainer’s version)
  • I didn’t want to stuff with my named.conf because this is a name server
  • sshd.conf same thing. I don’t want login problems although we have a VNC console so I could possibly recover.
  • grub – this was interesting. For the sake of safety, I kept my old version. This worked as I found after the reboot.
  • For release-notes I installed a new version.

After the reboot, I had this:

# cat /etc/os-release
PRETTY_NAME="Ubuntu 23.10"

Next, we upgrade to Ubuntu 24.04 LTS.

On this round, I had questions about:

  • sshd_config. I took a chance and said yes overwrite  with package maintainers.
  • fwupd.conf
  • grub
  • release-notes

Change this file /etc/update-manager/release/upgrade  to lts this time.

do-release-upgrade

Reboot

# cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04 LTS"

From start to finish the whole procedure took around 1 hour

Questions

How can you restart SSH?

You can’t do this anymore with Ubuntu 24.04:

service sshd restart

Instead, you have to do this

service ssh restart

On which port is SSH running?

netstat -tuln

How do you give Webmin it’s own Let’s Encrypt SSL?

By all accounts, you have to use Virtualmin:

https://forum.virtualmin.com/t/using-letsencrypt-by-default/124680/9

How do you change port 22 to another port e.g. 322?

On Ubuntu 24.04 this is no longer possible with ease. In fact, as of Ubuntu 22.10 the behavior has changed. Before, you could simply edit /etc/ssh/sshd_config. Now you have to follow more convoluted process:

mkdir -p /etc/systemd/system/ssh.socket.d

mc -e /etc/systemd/system/ssh.socket.d/listen.conf

Contents:

[Socket]
ListenStream=
ListenStream=1234
EOF

sudo systemctl daemon-reload

sudo systemctl restart ssh.socket

See here for more: https://askubuntu.com/questions/1439461/ssh-default-port-not-changing-ubuntu-22-10

Share this article

Leave a Reply

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

Scroll to Top