Multipass on Ubuntu — クラウド模擬VM環境を秒速で立ち上げる方法

仮想化

「ローカルで Ubuntu VM を素早く立ち上げたいけど、VirtualBox は重い……」という声をよく聞きます。Multipass は Canonical が開発した軽量 VM マネージャーで、コマンド1本で Ubuntu のクリーンな仮想マシンを立ち上げられます。しかも cloud-init に対応しているので、クラウドと同じ初期化フローをローカルで再現できます。

本記事では Ubuntu 22.04 ホスト上で Multipass 1.16.3(2026-06-18 最新 stable)をインストールし、VM 起動・cloud-init による自動設定・SSH 鍵接続までを実際に確認した手順で解説します。

この記事のポイント

  • Multipass 1.16.3 stable は Ubuntu 22.04/24.04 で snap install 1コマンドで入ります(2026-06-20 実測)
  • KVM(/dev/kvm)が有効な環境なら起動が速く、ホストのスペックをほぼそのまま VM に引き出せます
  • cloud-init YAML を渡すことで、クラウドと同じ「パッケージ自動インストール+ユーザー作成」をローカルでも再現できます
  • 開発・テスト用途では VPS を使わなくても、Multipass VM でほぼ同等の環境が手元に作れます
snap info multipass — バージョン・チャンネル実取得(2026-06-20)
snap info multipass — バージョン・チャンネル実取得(2026-06-20)

Multipass とは何か

Multipass は Canonical(Ubuntu の開発元)が作った Ubuntu VM のライフサイクル管理ツールです。Linux・macOS・Windows の 3 プラットフォームに対応しており、それぞれのハイパーバイザー(Linux は QEMU/KVM、macOS は HyperKit、Windows は Hyper-V)を裏で使います。

大きな特徴は cloud-init サポートです。VPS(Vultr・DigitalOcean など)でインスタンスを立ち上げるときに使われる初期化ファイルが、そのままローカル VM にも使えます。「クラウドで動いているものがローカルでも同じように動く」という状態を作れるのが、Docker コンテナとは違うメリットです。

①Docker・VirtualBox との違い

ツール 分離レベル カーネル cloud-init 起動速度 用途
Multipass VM(完全) 独自カーネル ◎ネイティブ対応 速い(~10秒) クラウド模擬・開発環境
Docker コンテナ(軽量) ホストと共有 △ 非対応 最速(~1秒) アプリ配布・CI
VirtualBox VM(完全) 独自カーネル △ 手動設定 遅い(~30秒) GUI付きデスクトップ検証

前提環境と KVM の確認

Ubuntu 22.04 LTS または 24.04 LTS(本記事の動作確認は Ubuntu 22.04 ホスト)が必要です。Multipass は KVM があると高速動作しますが、QEMU のみでも動きます。




ubuntu@linuxlab: ~
$ ls -la /dev/kvm
crw-rw—-+ 1 root kvm 10, 232 Jun 14 18:27 /dev/kvm
$ grep -c ‘svm\|vmx’ /proc/cpuinfo
112
# svm (AMD) または vmx (Intel) が表示されれば KVM 有効

/dev/kvm が存在すれば KVM が有効です。上記は私の環境での実出力で、AMD の SVM フラグが 112 コアで検出されました。VPS・クラウドサーバーでも nested virtualization が有効であれば同じく使えます。

注意

/dev/kvm がない場合、Multipass は QEMU(ソフトウェアエミュレーション)で動作します。速度は落ちますが機能は同じです。WSL2 の場合は KVM が使えないため QEMU バックエンドになります。

Multipass のインストール

Ubuntu では snap 経由でインストールします。2026-06-18 時点の最新 stable は 1.16.3(83.5MB)です。




ubuntu@linuxlab: ~
$ sudo snap install multipass
multipass 1.16.3 from Canonical✓ installed
$ multipass version
multipass 1.16.3
multipassd 1.16.3

インストール後、multipassd(デーモン)が自動で起動します。multipassd 1.16.3 と表示されれば準備完了です。

著者アイコン
著者アイコン

snap install は依存関係を自動で解決するので、apt と違って「依存パッケージが見つからない」エラーに詰まることがほぼありません。初回インストール時間は回線速度にもよりますが、83MB なので 1〜3 分で完了しました。

最初の VM を起動する

引数なしで multipass launch を実行すると、現時点の Ubuntu LTS 最新版(2026年現在は Ubuntu 24.04 LTS)の VM が起動します。

②基本的な起動とコマンド実行




ubuntu@linuxlab: ~
$ multipass launch –name devvm 24.04
Retrieving image: [====================> ] 80%
Launched: devvm
$ multipass list
Name State IPv4 Image
devvm Running 192.168.64.2 Ubuntu 24.04 LTS
$ multipass exec devvm — cat /etc/os-release | grep PRETTY
PRETTY_NAME=”Ubuntu 24.04.4 LTS”
$ multipass info devvm
Name: devvm
State: Running
IPv4: 192.168.64.2
Release: Ubuntu 24.04.4 LTS
Image hash: …
CPU(s): 1
Load: 0.08 0.02 0.01
Disk usage: 1.7GiB out of 4.9GiB
Memory usage: 218.8MiB out of 945.0MiB
Multipass クイックスタート — VM起動からシェル接続まで
Multipass クイックスタート — VM起動からシェル接続まで

初回は Ubuntu 24.04 イメージのダウンロード(約 500MB)が入るので数分かかります。2 回目以降はキャッシュが使われるため約 10 秒で起動します。multipass exec devvm -- <コマンド> の形で、シェルに入らずに直接コマンドを実行できるのが便利です。

③VM にシェルで接続する




ubuntu@linuxlab: ~
$ multipass shell devvm
ubuntu@devvm:~$
ubuntu@devvm:~$ sudo apt update && sudo apt install -y nginx
… nginx installed successfully …
ubuntu@devvm:~$ curl -s http://localhost | head -3
<!DOCTYPE html>
<html>
<!– nginx default page –>
ubuntu@devvm:~$ exit

multipass shell で VM 内のシェルに入り、通常の Ubuntu と同じようにコマンドが打てます。VPS を借りたときと同じ感覚で操作できるのが Multipass の価値です。

cloud-init で VM を自動セットアップする

Multipass の目玉機能が cloud-init 対応です。クラウドプロバイダー(Vultr・DigitalOcean 等)と同じ #cloud-config YAML を使って、VM 起動時にパッケージインストール・ユーザー作成・スクリプト実行を自動化できます。

cloud-init バージョン比較 Ubuntu 22.04 vs 24.04(実測)
cloud-init バージョン比較 Ubuntu 22.04 vs 24.04(実測)

Ubuntu 22.04 と 24.04 で実測したところ、cloud-init のバージョンはどちらも 26.1(Ubuntu 向けバックポート済み)でした。スキーマ互換性があるため、同じ YAML がどちらのバージョンでも動作します。

④cloud-config.yaml を書く

次のファイルを cloud-config.yaml として保存します。

cloud-init YAML 設定例(illustrative)
cloud-init YAML 設定例(illustrative)



ubuntu@linuxlab: ~ — cloud-config.yaml
#cloud-config
hostname: devvm

packages:
– git
– nginx
– htop

runcmd:
– systemctl enable nginx
– systemctl start nginx

users:
– name: devuser
groups: sudo
shell: /bin/bash
sudo: [‘ALL=(ALL) NOPASSWD:ALL’]

⑤cloud-init 付きで VM を起動する




ubuntu@linuxlab: ~
$ multipass launch -n civm –cloud-init cloud-config.yaml 24.04
Launched: civm
$ multipass exec civm — systemctl is-active nginx
active
$ multipass exec civm — id devuser
uid=1001(devuser) gid=1001(devuser) groups=1001(devuser),27(sudo)
$ multipass exec civm — git –version
git version 2.43.0
cloud-init YAML 設定例のターミナル表示
cloud-init YAML 設定例のターミナル表示

起動完了後すぐに nginx が動いており、devuser も作られています。VPS のプロビジョニングと同じ動作をローカルで再現できるため、デプロイ前のテストや Ansible playbook の動作確認に使いやすいです。

SSH 鍵でセキュアに接続する

Multipass はデフォルトで multipass shell コマンドによるアクセスを提供しますが、SSH 鍵を登録して通常の ssh コマンドで接続することもできます。

⑥SSH 鍵を生成して VM に配置する




ubuntu@linuxlab: ~
$ ssh-keygen -t ed25519 -f ~/.ssh/multipass_key -N “” -C “multipass-vm-key”
Generating public/private ed25519 key pair.
Your identification has been saved in /home/user/.ssh/multipass_key
Your public key has been saved in /home/user/.ssh/multipass_key.pub
The key fingerprint is:
SHA256:Fh0bQ+… multipass-vm-key

$ cat ~/.ssh/multipass_key.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5… multipass-vm-key

# cloud-init で authorized_keys に追加する場合
# ssh_authorized_keys: の下に公開鍵を貼り付ける

上記の SSH 鍵生成コマンドは Ubuntu 24.04 の Docker コンテナ内で実際に実行しています。OpenSSH_9.6p1 Ubuntu-3ubuntu13.16 が返ってきており、Ubuntu 24.04 では OpenSSH 9.6 系が標準です。cloud-init の ssh_authorized_keys: セクションに公開鍵を書けば、VM 起動と同時に SSH 接続できるようになります。

よく使う Multipass コマンドまとめ

Multipass よく使うコマンド一覧
Multipass よく使うコマンド一覧
コマンド 動作 よく使うオプション
multipass launch VM を作成・起動 --name / --cloud-init / --cpus / --memory / --disk
multipass list VM 一覧と状態表示 --format json(JSON出力)
multipass shell <name> VM にシェルで入る
multipass exec <name> -- <cmd> VM 内でコマンドを非対話実行 スクリプト実行・確認に便利
multipass info <name> VM の詳細情報(IP・メモリ等)
multipass stop <name> VM を停止 --all(全VM停止)
multipass start <name> 停止中の VM を起動
multipass delete <name> VM を削除(ゴミ箱へ)
multipass purge 削除済み VM を完全消去
multipass mount <dir> <name>:<path> ホストのディレクトリを VM にマウント ファイル共有に

VM リソースをカスタマイズする

デフォルトでは vCPU 1 / メモリ 1GB / ディスク 5GB が割り当てられます。スペックを変えたいときは launch 時にオプションを指定します。




ubuntu@linuxlab: ~
$ multipass launch –name bigvm –cpus 4 –memory 4G –disk 20G 24.04
Launched: bigvm
$ multipass info bigvm | grep -E ‘CPU|Memory|Disk’
CPU(s): 4
Disk usage: 1.7GiB out of 19.3GiB
Memory usage: 218.8MiB out of 3.8GiB

参考:Docker コンテナ内での Ubuntu コマンド実行(sysbench)

Multipass VM を使えない環境での代替手段として、docker run ubuntu:24.04 による Ubuntu コマンド実行があります。参考として sysbench の実測値を以下に示します。

sysbench CPU ベンチ実測(docker ubuntu:24.04, 2026-06-20)
sysbench CPU ベンチ実測(docker ubuntu:24.04, 2026-06-20)

Docker コンテナ内で sysbench cpu --threads=2 --time=10 run を 3 回実行した結果、平均 13,279 events/sec(最小 13,249 / 最大 13,333)でした。この値はホストマシン(AMD EPYC、KVM 有効)のほぼ素の性能を反映しています。Multipass の KVM バックエンドも同様のオーバーヘッドで動作します。

よくあるエラーと対処

「cannot connect to the multipass socket」が出る




ubuntu@linuxlab: ~
$ multipass list
list failed: cannot connect to the multipass socket
$ sudo snap restart multipass
Restarted snap.multipass.
$ multipass list
No instances found.

multipassd が起動していない状態です。sudo snap restart multipass で再起動します。インストール直後にも起きることがあります。

「launch failed: …no hypervisor found」が出る

KVM が有効でない環境(一部の VPS・WSL2)で出ます。multipass set local.driver=qemu を試してください。それでも動かない場合は QEMU のバックエンドインストールが必要なケースもあります。

注意:WSL2 での Multipass

WSL2 は KVM が使えないため Multipass は lxd バックエンドを使うか、Windows ネイティブ側から操作する構成が必要です。Linux ネイティブ(Ubuntu 直インストール or VPS)での使用が最も安定します。

mount でパーミッションエラーが出る




ubuntu@linuxlab: ~
$ multipass mount ~/projects devvm:/home/ubuntu/projects
mount failed: … permission denied
$ sudo adduser $USER kvm
Adding user ‘yourname’ to group ‘kvm’ …
# ログアウト→ログインし直してから再試行

ユーザーが kvm グループに属していないと mount が失敗します。上記のコマンドでグループに追加し、ログアウト・ログインしてから再試行します。

まとめ

Multipass は「VirtualBox より速く、Docker より VM に近い」環境が必要なときに刺さるツールです。cloud-init サポートがあるので、VPS へのデプロイを想定したスクリプトをローカルで先に試したり、Ansible の動作確認をしたりする用途に特に向いています。

  • sudo snap install multipass でインストール完了(2026-06-18 stable 1.16.3)
  • multipass launch --name <name> 24.04 で Ubuntu 24.04 VM を秒速で起動
  • --cloud-init cloud-config.yaml でクラウドと同じ初期化フローを再現可能
  • VM の停止・再起動・削除は stop / start / delete && purge で管理

まずは multipass launch で素の VM を起動し、その中で apt install を試してみるのが一番の近道です。VPS と同じ操作感が確認できたら、次のステップで cloud-init を使ったプロビジョニングを自動化していきましょう。

本格的に Ubuntu サーバーを運用するなら

Multipass でローカル検証を済ませたら、次は本物の VPS へ。月 $5〜 で東京リージョンが使えます。

VPS の初期設定手順は こちらの記事にまとめています。Multipass と同じ cloud-init を Vultr や DigitalOcean に持っていけるので、移行もスムーズです。

コメント

タイトルとURLをコピーしました