# [Multipass](https://learn.arm.com/install-guides/multipass/)

## About this Install Guide

| Reading time: | 30 min |
|---------------|--------|
| Last updated: | 3 Aug 2026 |
| Ecosystem dashboard: | [View](https://developer.arm.com/ecosystem-dashboard/linux?package=Canonical%20Multipass) |

This guide shows you how to install and use the tool with the most common configuration. For advanced options and complete reference information, see the official documentation. Some install guides also include optional next steps to help you explore related workflows or integrations.

[Multipass](https://multipass.run/) provides cloud-style virtual machines (VMs) on a variety of platforms and host operating systems. Multipass is popular among developers for efficient local testing. When run on macOS with Apple Silicon or on Linux with a Raspberry Pi 5, Multipass provides a similar experience to cloud instances. A local, software-compatible equivalent of an Arm cloud instance with good performance is an important option for developers.

Multipass provides a clear command line interface (CLI) to easily start virtual machine instances, do development tasks, and clean the VMs from your computer.

Multipass uses the terms virtual machine and instance synonymously. In this guide, you’ll learn how to create a compatible Ubuntu Linux environment for working on cloud instances.

> **Note:** A computer running macOS with Apple Silicon or an Arm Linux computer with Kernel-based Virtual Machine (KVM) enabled is required to complete the installation.

## Download Multipass for macOS

Download Multipass for macOS from GitHub:

> **Note:** The following commands use Multipass version 1.16.3. The same commands work with other versions. Replace the file used in these steps with the file for your version of choice. To find the latest version, see [Multipass releases](https://github.com/canonical/multipass/releases).

```bash
wget https://github.com/canonical/multipass/releases/download/v1.16.3/multipass-1.16.3+mac-Darwin.pkg
```

## Install Multipass on macOS

Install the download using the package command:

```bash
sudo installer -pkg multipass-1.16.3+mac-Darwin.pkg -target /
```

The following getting started instructions use the command line interface. If you prefer to use the graphical interface, start it from the macOS Launchpad. The following image shows the initial screen. You can use the UI to create, start, and stop virtual machines.

![Image Alt Text:Connect](https://learn.arm.com/install-guides/_images/multipass-gui.png)

Multipass is now installed. You can now [get Started with Multipass](https://learn.arm.com/install-guides/multipass/#getstarted).

## Install Multipass on Arm Linux

Multipass can be used on Arm Linux computers such as the Raspberry Pi 5.

Running Multipass on Linux requires the KVM hypervisor. KVM does not typically work on virtual machines. It requires bare metal.

The following instructions have been tested on a Raspberry Pi 5 running Raspberry Pi OS and Ubuntu.

### Check if KVM is available

Install and run the `kvm-ok` command to confirm KVM is available.

Install `kvm-ok` on Debian-based Linux distributions:

```bash
sudo apt install cpu-checker -y
```

To check if KVM is available, run:

```bash
sudo kvm-ok
```

If KVM is available, the output is similar to:

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

If KVM is not available, the output is similar to:

```plaintext
INFO: /dev/kvm does not exist
HINT:   sudo modprobe kvm
INFO: For more detailed results, you should run this as root
HINT:   sudo /usr/sbin/kvm-ok
```

If KVM is available, proceed with the install.

### Install the Snap daemon on Arm Linux

You might need to install the Snap daemon, `snapd`, before installing Multipass.

If you aren’t sure if it is running, execute the command:

```bash
snap version
```

If the command is found and version information is printed, then `snapd` is running.

If you need to install `snapd`, run:

```bash
sudo apt install snapd -y
```

> **Note:** You can select from three Multipass releases: stable, beta, or edge. The default version is stable. Add `--beta` or `--edge` to the following install command to select these more recent versions.

```bash
sudo snap install multipass
```

## Get started with Multipass

Multipass is now installed. You can try it out.

### Confirm Multipass is installed

To confirm multipass is installed, run:

```bash
multipass version
```

If the `multipass` command is not found, add `/snap/bin` to the Bash search path:

```bash
export PATH=$PATH:/snap/bin
```

### List available Ubuntu images

Multipass runs Ubuntu images. The last three long-term support (LTS) versions are available. A Docker environment with Portainer is also available, as well as a few other images.

To see the available images, run the `find` command. Any of the listed images can be used to create a new instance.

```bash
multipass find
```

The output from `find` is similar to:

```plaintext
Image                       Aliases           Version          Description
22.04                       jammy             20260802         Ubuntu 22.04 LTS
24.04                       noble             20260801         Ubuntu 24.04 LTS
26.04                       resolute,lts      20260720         Ubuntu 26.04 LTS
daily:26.10                 stonking,devel    20260802         Ubuntu 26.10

Blueprint (deprecated)      Aliases           Version          Description
anbox-cloud-appliance                         latest           Anbox Cloud Appliance
charm-dev                                     latest           A development and testing environment for charmers
docker                                        0.4              A Docker environment with Portainer and related tools
jellyfin                                      latest           Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media.
minikube                                      latest           minikube is local Kubernetes
ros2-humble                                   0.1              A development and testing environment for ROS 2 Humble.
ros2-jazzy                                    0.1              A development and testing environment for ROS 2 Jazzy.
```

### Launch a Multipass instance

The default values for launching instances allocate 1 CPU, create a small disk (5 Gb), and limited memory (1 Gb). By default, the name of the instance is automatically assigned.

Use the following command to launch a virtual machine instance with non-default values.

```bash
multipass launch lts --name m1u --cpus 4 --disk 16G --memory 4G
```

After the instance is launched, the command prompt returns and the instance is running in the background.

### Connect to a Multipass instance

Use the `list` command to identify created instances. Note the instance names as the name is used in other commands.

```bash
multipass list
```

To start a command line shell on a running instance, use the `shell` command:

```bash
multipass shell m1u
```

### Execute a command on a Multipass instance

To run a specific command from the host on the instance, use the `exec` command. The command to be run comes after the `--`:

```bash
multipass exec m1u -- uname -a
```

The `uname` output is similar to:

```plaintext
Linux m1u 7.0.0-28-generic #28-Ubuntu SMP PREEMPT_DYNAMIC Sun Jun 21 00:50:10 UTC 2026 aarch64 aarch64 aarch64 GNU/Linux
```

### Print instance information

The `info` command prints information about the instance, including the IP address.

```bash
multipass info m1u
```

The output is similar to:

```plaintext
Name:           m1u
State:          Running
Snapshots:      0
IPv4:           10.7.43.74
Release:        Ubuntu 26.04 LTS
Image hash:     7bcf159e29ad (Ubuntu 26.04 LTS)
CPU(s):         4
Load:           0.43 0.12 0.04
Disk usage:     2.5GiB out of 15.4GiB
Memory usage:   410.6MiB out of 3.8GiB
Mounts:         --
```

### Mount a host directory into a Multipass instance

To access a large number of files on the host machine without copying or transferring them into the instance, use the `mount` command. This command makes a host directory visible in the instance and all files can be accessed. Modifications made from inside the instance will directly change the files on the host.

For example, to mount a host directory called `dev` and have it appear in the instance, use the `mount` command:

```bash
multipass mount dev m1u:/home/ubuntu/dev
```

There are also options to adjust the user and group IDs as needed to avoid permission problems.

### Unmount a host directory from a Multipass instance

Use the `umount` command to unmount the directory:

```bash
multipass umount m1u:/home/ubuntu/dev
```

Directories can be dynamically mounted and unmounted without stopping the instance.

### Stop and start a Multipass instance

Multipass instances can be stopped and started quickly.

Stop the instance:

```bash
multipass stop m1u
```

After stopping the instance, the state will change to Stopped on the list command.

Start the instance:

```bash
multipass start m1u
```

### Clean up Multipass instances

Use the `delete` command to delete the instance:

```bash
multipass delete m1u
```

After deletion, the state will change to Deleted. There is one extra level of protection to recover deleted instances before they are fully deleted.

Use the `recover` command to recover the deleted instance:

```bash
multipass recover m1u
```

Use the `purge` command to permanently remove all deleted instances:

```bash
multipass purge
```

> **Note:** Purged instances are no longer recoverable.

You’re now ready to use Multipass.
