Canonical’s Linux distribution for edge devices and the Internet of Things, Ubuntu Core 22, has been released.
This is the fourth release of Ubuntu Core, and as you can guess from the version number, it’s based on the current long-term support release of Ubuntu, version 22.04.
Ubuntu Core is quite a different product from normal Ubuntu, even text-only Ubuntu Server. Core doesn’t have a conventional package manager, just Snap, and the operating system itself is built from Snap packages. Instant installations and updates are transactional: this means that they succeed completely or the operating system rolls them back automatically, leaving no trace except for an entry in a log file.
Combined with Core’s read-only root filesystem, the idea is that the operating system is always in a known good state and should be able to recover quickly and reliably from a power failure or installation of package failed, without risk of disk corruption. As such, the operating system is safe to update itself and is set to do so automatically as soon as you start it. Finally, as shipped, you can only access Core via SSH: you cannot connect to its console.
Core ships as a ready-to-boot disc image, rather than an ISO file. The standard setup instructions assume you will be using KVM. Also note that you will need an Ubuntu single sign-on account – formerly known as Ubuntu One, although the storage part is long gone. You will also need to have configured SSH keys and added your public key to your Ubuntu One account.
When we configured Core 22, it installed several updates and rebooted before running its initial setup wizard. That done, we could SSH in and have a look. The compressed download is less than 400MB and the running VM had just over 1GB of writable space, mounted at
/writable. You can only install additional software in the form of Snap packages, but it’s simple and you don’t even need root privileges to do it – as an experiment we installed
bashtop in seconds.
Core is designed to be configured automatically through model assertions, and the new version supports reshaping: modify an existing model and then push it to client devices. This should allow Core 20 machines to be upgraded on the spot to Core 22, which was not possible with Core 16 or Core 18.
The new version 22 has of course a bunch of new features. There is an optional, beta-test and preemptive kernel for better real-time performance. Validated snapshot sets can be manipulated as a whole and devices can also be factory reset. You can set quotas on CPU and memory usage, and it now supports full disk encryption. It supports Canonical’s MicroK8s Kubernetes distribution and metal deployment tools as a service, as you might expect. We only took a quick look at it, but the documentation also seems pretty solid.
Ubuntu Core 22 is available in builds for x86-64 machines, including Intel NUC, and 32-bit and 64-bit Raspberry Pi hardware, including Models 2, 3, 4, 400, Compute Model 4, and Pi Zero 2W ®
Warning: At the time of writing, Ubuntu has not yet updated all of its setup instructions. In many places they still refer to Core 20. You will need to change the version number appropriately. The downloads are here, and as for the QEMU part, change the filename in the command to
Having done that, the installation went fine, but unfortunately we couldn’t connect to it, even from a terminal on the same host machine. We had better luck with VirtualBox: just extract the disk image, then convert the
.img file to a VDI:
VBoxManage convertdd ubuntu-core-22-amd64.img ubuntu-core-22-amd64.vdi --format VDI
Create a new 64-bit Linux virtual machine, choose Use an existing hard disk fileand point it to the new
Core only boots using UEFI, so on the Settings | System | Motherboard screen, tick Enable EFI (special operating systems only). Then go down to Settings | Network and change Attached to: to “Bridged Adapter” instead of “NAT”.
You can find more detailed instructions in this blog post and on the Snapcraft forums.