Get started with Ubuntu Core

Ubuntu Core has been designed to facilitate the creation, deployment, and management of secure custom images running on your own hardware.

To build an image, you need a Linux host system and one or more target systems. A target system could be a local virtual machine for testing, a single embedded system in your garage, or a fleet devices scattered across the Earth.

Pre-built test images are also available for x86-based PC-style hardware and ARM-based platforms. These are ideal for exploration and experimentation but they’re not intended for deployment or for use at scale.

We have tutorials for all approaches, with a step-by-step guide to creating your own image, plus guides on running Ubuntu Core within a virtual machine or on a variety of x86-based and ARM-based systems.

Build your first Ubuntu Core image
A step-by-step guide to building and testing your own image with your own selection of applications.
Install and try a pre-built image
Test a pre-built image within a VM, or by installing Ubuntu Core on either x86-based or ARM-based hardware.

There is a typo on this page , look for

-netdev ser

It should be

-netdev user

BTW any plan to support non UEFI x86_64 devices ?

cc: @lool

Typo fixed, thank you!

1 Like

You’re welcome,

I think there is an other doc page that should be fixed,
It miss the UEFI file arg
 or maybe it can just redirect to the reference documentation page.

BTW may I suggest also to add

-cpu host

To prevent this message:

qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit 2]

It works without, but it can be misleading.

cc: @lool

1 Like

It seems the getting started and documentation is no longer correct as snap install nano throws an error.

root@nuc:~# cat /etc/os-release 
NAME="Ubuntu Core"
VERSION="20"
ID=ubuntu-core
PRETTY_NAME="Ubuntu Core 20"
VERSION_ID="20"
HOME_URL="https://snapcraft.io/"
BUG_REPORT_URL="https://bugs.launchpad.net/snappy/"

root@nuc:~# snap list
Name       Version        Rev    Tracking       Publisher   Notes
bluez      5.48-3         284    latest/stable  canonical✓  -
core       16-2.51.3      11420  latest/stable  canonical✓  core
core18     20210722       2128   latest/stable  canonical✓  base
core20     20210702       1081   latest/stable  canonical✓  base
nextcloud  21.0.3snap2    28417  latest/stable  nextcloud✓  -
pc         20-0.4         115    20/stable      canonical✓  gadget
pc-kernel  5.4.0-81.91.1  811    20/stable      canonical✓  kernel
snapd      2.51.3         12704  latest/stable  canonical✓  snapd

root@nuc:~# snap install nano
error: snap "nano" requires classic confinement which is only available on classic systems

root@nuc:~# sudo snap install nano-strict
nano-strict 5.2+pkg-353f from æž—ćšä»(Buo-ren, Lin) (brlin) installed

Thanks for highlighting this issue. This part of the tutorial has moved to Using Ubuntu Core, but we also updated the example to use nano-strict (as your suggested example shows). Thanks!

This page is confusing as it starts off talking about installing on RPi, but switches into a QEMU example that clearly is targeting Intel x86 64.

Should that last SSH command to log into the QEMU session not be connecting to “localhost”?

1 Like

The link entitled “Supported Platforms” actually takes you to “System Requirements”.

You might want to drop UC16 and UC18 from the list of supported releases.

UC16 is supported until 2026, UC18 until 2028 (unlike for classic there is no 5y/10y separaton
of community vs commercial support here), so both are fully supported for a full 10y



what is not supported by snapcraft anymore is building snaps for their bases and that should be mentioned


1 Like

Given that the QEMU page is coming up in the order of pages, I’m not sure it’s worth covering here in any detail at all; just point at the QEMU page.