Ubuntu Core is Ubuntu built with snaps for snaps, and we’re happy and excited to announce the first beta release of its next iteration: Ubuntu Core 20 (UC20).
From one-off Raspberry Pi projects to factory deployments in their thousands, Ubuntu Core enables anyone to easily create secure, embedded devices that inherit all the advantages of snaps, including:
- automatic, atomic, transactional updates that can be rolled back
- complete isolation between OS, apps, data and even data versions
- access to thousands of apps on the Snap Store, or create your own
UC20 is built on the foundations of Ubuntu 20.04 LTS (Focal Fossa). It’s the next generation of Ubuntu for embedded devices.
New features for this beta release include:
- Raspberry Pi support (both ARMv7 and ARM v8)
- Full-disk encryption via TPM integration
currently x86 only with ARM to follow - beta1 TPM integration works with existing CA
- Recovery mode menu and chooser
- A new recovery and reinstall mode
- Initial MAAS & cloud-init support
Please note that because we will change the TPM integration from the exiting CA keys to the new UC20 key the beta may not be upgradable to the UC20 final release.
Download the latest UC20 images from:
The easiest way to test our UC20 releases is to download the latest image and either write the image to a USB storage device, and test the build on real hardware, or use the image with a virtual machine.
If your hardware supports TPM, and has UEFI Secure Boot enabled, UC20 will use these to deploy a fully encrypted system. When redeploying to the same device, the TPM will need to be cleared.
To test UC20 with QEMU (https://www.qemu.org/), first install the OVMF package (eg. sudo apt install ovmf) then run the following command to boot a UC20 image (renamed pc.img) within a virtual machine:
$ sudo qemu-system-x86_64 -smp 2 -m 2048 \ -net nic,model=virtio -net user,hostfwd=tcp::8022-:22 \ -drive file=/usr/share/OVMF/OVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on \ -drive file=pc.img,cache=none,format=raw,id=disk1,if=none \ -device virtio-blk-pci,drive=disk1,bootindex=1 -machine accel=kvm
With a successful boot, Ubuntu Core initialisation will ask for both networking parameters and an Ubuntu One account (see https://snapcraft.io/account).
When the initialisation process has finished, and rebooted, you can SSH to the device using either the physical device network address, or localhost port 8022 for the above QEMU example command:
$ ssh <username>@localhost -p 8022
Recovery mode chooser
To access the recovery chooser, reset or start up UC20 while holding the 1 key.
The 1 key needs to be held until the initial boot process completes, after which you’ll be presented first with the system selection menu followed by the following recovery options:
- Run normally: Continue with the boot process.
- Recover: reboot into recovery mode and log into the system using prior credentials to recover your data, either via SSH or locally after setting up a password for the user.
- Reinstall: initialise the device from the listed system version image. All existing user data on the device will be removed.
We’d love to get your feedback on this release - let us know what you think on the forum, and for further details on Ubuntu Core, see https://ubuntu.com/core.