Install Ubuntu Core on KVM

Install Ubuntu Core

We will walk you through the steps of installing Ubuntu Core 20 on your Linux desktop in a virtual machine.

Minimum requirements

  • An Ubuntu SSO account with an SSH key
  • A computer running Ubuntu Desktop

Installation instructions

  1. Set up an Ubuntu SSO account

    An Ubuntu SSO account is required to create the first user on an Ubuntu Core installation.

    1. Start by creating an Ubuntu SSO account.
    2. Import an SSH Key into your Ubuntu SSO account. (instructions)
  2. Download Ubuntu Core

  3. Install KVM

    1. Install the qemu-kvm package with the following command:

      sudo apt install qemu-kvm ovmf
    2. Then, run the kvm-ok command to check KVM status and your hardware:

      kvm-ok
    3. The message should say:

      INFO: /dev/kvm exists
      KVM acceleration can be used

      This is the best outcome — it means that Ubuntu Core will run fast on your system, taking advantage of hardware acceleration in your CPU.

  4. Launch KVM

    You can now launch a virtual machine with KVM, using the following command:

    qemu-system-x86_64 -smp 2 -m 2048 -net nic,model=virtio -net user,hostfwd=tcp::8022-:22,hostfwd=tcp::8090-:80 -vga qxl -drive file=/usr/share/OVMF/OVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on -drive file=ubuntu-core-20-amd64.img,cache=none,format=raw,id=disk1,if=none -device virtio-blk-pci,drive=disk1,bootindex=1 -machine accel=kvm

    Note: this command sets up port redirections:

    • localhost:8022 is redirecting to port 22 of the virtual machine for accessing it through SSH
    • localhost:8090 is redirecting to its port 80

    Note: this command is required for graphics such as mir-kiosk:

    • -vga qxl sets the paravirtual graphics driver qxl

    You should now see a window, with your Ubuntu Core virtual machine booting inside it.

  5. First boot setup

    1. The system will boot then become ready to configure.
    2. The device will display the prompt "Press enter to configure".
    3. Press enter then select "Start" to begin configuring your network and an administrator account. Follow the instructions on the screen, you will be asked to configure your network and enter your Ubuntu SSO credentials.
    4. At the end of the process, you will see your credentials to access your Ubuntu Core machine:

      This device is registered to <Ubuntu SSO email address>.
      Remote access was enabled via authentication with the SSO user <Ubuntu SSO user name>
      Public SSH keys were added to the device for remote access.
  6. Login

    Once setup is done, you can login with SSH into Ubuntu Core, using the following command:

    ssh -p 8022 <Ubuntu SSO user name>@localhost

    Your username is your Ubuntu SSO user name, shown to you at the end of the account configuration step.

First boot tips

  • During setup, console-conf will download the SSH key registered with your Store account and configure it so you can log into the device via ssh <Ubuntu SSO account name>@<device IP address> without a password.
  • There is no default ubuntu user on these images, but you can run sudo passwd <account name> to set a password if you need a local console login.

Get started with snaps

Your virtual machine is now ready to have snaps installed, it's time to use the snap command to install your first snap.

The is where you can find the best Linux apps packaged as snaps to install on your Ubuntu device and get started with your secure IoT journey.

Before you start, get your IoT security story straight

A recent Canonical survey of 2,000 consumers suggests that a shockingly high percentage of connected devices may be vulnerable to botnets, hackers and cyber attacks:

  • Only 31% of consumers update the firmware on their connected devices as soon as updates become available.
  • 40% of consumers have never performed firmware updates on their connected devices
  • 40% of consumers believe that performing firmware updates on their connected devices is the responsibility of either software developers or the device manufacturer
  • All information provided will be handled in accordance with the Canonical privacy policy.