
Multipassインスタンスを自在に操るための第一歩
前回の記事でMultipassをmacOSに導入し、最初のUbuntuインスタンスを起動を行いました!軽量なLinux開発環境を手に入れたことで、あなたの開発の可能性は大きく広がったはずです。
しかし、いざ開発を始めようとすると、インスタンスの起動や停止、macOSとのファイル共有でつまずいていませんか?
せっかく軽量なLinux環境を手に入れたのに、基本的な操作で手間取ると、モチベーションも下がってしまいますよね。
また、複数の開発環境を使うとリソースが足りなくてVMが重くなったり、逆にリソースを使いすぎてMacが遅くなったり…そんな悩みも出てくるかもしれません。
この記事では、そんなMultipassインスタンスのと、macOSとのファイル共有方法を解説します。
読み終えると、Multipassインスタンスをローカル環境のように使って、開発プロジェクトのファイルをストレスなく共有できるようになります。
さらに、インスタンスのリソースを最適化して、あなたのmacOS開発環境は、より快適でパワフルなものにできます!
対象読者
- 前回の記事でMultipassをインストールしたものの、その後の使い方に迷っている方。
- Multipassインスタンスの起動・停止・削除といった基本操作を効率的に行いたい方。
- macOSとMultipassインスタンス間で、開発プロジェクトのファイルをスムーズに共有したい方。
- Multipassインスタンスのリソース設定を最適化し、パフォーマンスを向上させたい方。
動作検証環境
この記事で紹介するcurlコマンドの動作は、以下の環境で検証しています。
- OS : macOS Tahoe Version 26.0
- ハードウェア : MacBook Air 2024 M3 24GB
- Multipass : Multipass version 1.16.1
目次
1. Multipassインスタンスの基本操作をマスターする
Multipassインスタンスを管理するためには、そのライフサイクルを制御するコマンドを理解することが必要です。
ここでは、インスタンスの起動、停止、一時停止、そして削除といった基本的な操作を解説します。
インスタンスの起動・停止・再起動 (multipass start
, stop
, restart
)
インスタンスの起動、停止、再起動は、開発ワークフローで最も頻繁に利用するコマンドです。
インスタンスの起動(multipass start
)
- 停止中のインスタンスを起動します。
multipass start <instance_name>
例: multipass start my-ubuntu-vm
コマンド実行例(インスタンス状態の確認):
user-name@your-mac ~ % multipass list
Name State IPv4 Image
my-ubuntu-vm Running 192.168.2.2 Ubuntu 24.04 LTS
インスタンスの停止(multipass stop
)
- 実行中のインスタンスを安全にシャットダウンします。
multipass stop <instance_name>
例: multipass stop my-ubuntu-vm
コマンド実行例(インスタンス状態の確認):
user-name@your-mac ~ % multipass list
Name State IPv4 Image
my-ubuntu-vm Stopped -- Ubuntu 24.04 LTS
インスタンスの再起動(multipass restart
)
- 実行中のインスタンスを停止し、再度起動します。
multipass restart <instance_name>
例: multipass restart my-ubuntu-vm
コマンド実行例(停止状態のインスタンスは再起動できません):
restart failed: Instance 'my-ubuntu-vm' is already running, but in an unknown state.
Try to stop and start it instead.
[著者の経験談]
: 開発中にVMのリソース解放や、VM状態のリフレッシュ時にこれらのコマンドが役立ちます。特に、設定変更を適用する時には再起動が必要になることも多いので、覚えておきましょう!
インスタンスの一時停止と再開 (multipass suspend
)
インスタンスを完全に停止せずに、現在の状態を保存して一時的に停止したい場合に便利なのが suspend
と resume
コマンドです。
インスタンスの一時停止(multipass suspend
)
- インスタンスの現在の状態をメモリに保存し、一時停止します。これにより、Macのリソース消費を抑えつつ、高速に再開できます。
multipass suspend <instance_name>
例: multipass suspend my-ubuntu-vm
コマンド実行例(インスタンス状態の確認):
user-name@your-mac ~ % multipass list
Name State IPv4 Image
my-ubuntu-vm Suspended -- Ubuntu 24.04 LTS
インスタンスの再開(multipass start
)
- 一時停止中のインスタンスを、中断した時点から再開します。
multipass start <instance_name>
例: multipass start my-ubuntu-vm
!TIP:suspend
とresume
は、VMの状態を保存して高速に再開できるため、開発のコンテキストを維持しつつ、Macのリソースを節約したい場合に最適です。例えば、作業を中断して別のタスクに移る際などに活用すると良いです。
インスタンスの削除と完全消去 (multipass delete
, purge
)
不要になったインスタンスを削除し、ディスクスペースを解放するためのコマンドです。
インスタンスの削除(multipass delete
)
- インスタンスを停止し、Multipassの管理対象から削除します。ただし、ディスク上のイメージファイルは残ります。
multipass delete <instance_name>
例: multipass delete old-project-vm
削除済みインスタンスの完全消去(multipass purge
)
delete
コマンドで削除されたインスタンスのディスクイメージを完全に消去し、ディスクスペースを解放します。
multipass purge
[!NOTE]:delete
はインスタンスを「ゴミ箱」に入れるようなイメージで、purge
はその「ゴミ箱を空にする」操作に近いです。完全に不要になったインスタンスはpurge
するのがおすすめです。誤って重要なデータを消さないよう、実行前には必ず確認しましょう。
2. ホストOSとインスタンス間のファイル共有
Multipassを活用する際、macOSとインスタンス間でファイルを共有すると非常に便利になります。multipass mount
コマンドを使えば、これをスマートに実現できます。
multipass mount
コマンドによるディレクトリ共有
multipass mount
コマンドを使用すると、macOS上の任意のディレクトリをMultipassインスタンス内にマウントし、双方向でアクセスできるようになります。
コマンドの構文
multipass mount <host_path> <instance_name>:<instance_path>
<host_path>
: macOS上の共有したいディレクトリの絶対パス。<instance_name>
: マウント先のMultipassインスタンス名。<instance_path>
: インスタンス内でマウントするパス。通常は/home/ubuntu/<your_directory>
のように指定します。
例: macOS上の ~/my-project
ディレクトリを、my-ubuntu-vm
インスタンスの /home/ubuntu/my-project
にマウントする。
multipass mount ~/my-project my-ubuntu-vm:/home/ubuntu/my-project
マウントが成功すると、インスタンス内で /home/ubuntu/my-project
にアクセスすると、macOS上の ~/my-project
の内容が見えるようになります。
[著者の経験談]
: 以前は別の端末でUbuntu環境を構築していたので、SSHでファイルを転送したり、rsyncを使ったりしていましたが、multipass mount
で劇的に開発ワークフローが改善され、特に、VS Codeのリモート開発と組み合わせることで、まるでローカルで開発しているかのようなシームレス環境になりました。
[!TIP]
:multipass mount
は永続的なマウントが可能であり、インスタンスを再起動しても設定が維持されます。これにより、一度設定すれば、毎回マウントし直す手間が省けます。
multipass unmount
コマンドによる共有解除
multipass mount
で共有したディレクトリは、不要になった際にmultipass unmount
コマンドで共有を解除できます。これにより、ホストOSとインスタンス間のファイル共有が停止され、インスタンス側のマウントポイントは空になります。
コマンドの構文
マウントポイントを指定して共有を解除する場合
multipass unmount <instance_name>:<instance_path>
または、すべての共有を解除する場合:
multipass unmount <instance_name>
使用例
例えば、my-instance
というインスタンスに/home/ubuntu/shared
としてマウントされている共有ディレクトリを解除するには、以下のコマンドを実行します。
multipass unmount my-ubuntu-vm:/home/ubuntu/my-project
my-instance
上のすべての共有を解除する場合は、以下のように実行します。
multipass unmount my-ubuntu-vm
注意点
- 共有解除を行う前に、インスタンス側で共有ディレクトリを使用しているプロセスがないことを確認してください。
multipass unmount
コマンドは、インスタンスが実行中でも停止中でも実行可能です。- インスタンスを削除(
multipass delete
)すると、そのインスタンスに関連するすべてのマウントも自動的に解除されます。
共有ディレクトリの活用例(開発プロジェクトの共有など)
multipass mount
を活用することで、以下のような開発ワークフローが実現できます。
ケース1:ホストOSでWebアプリのコードを編集、インスタンスで実行・テスト:
macOS上のプロジェクトディレクトリをMultipassインスタンスにマウントします。
インスタンス内では、そのマウントされたディレクトリにアクセスして、コンパイル、テスト、アプリケーションの実行などを行います。
これで、macOSの快適なエディタ(VS Code, Zed)やツール環境(Canva, mermaid CLI等)を使いつつ、Ubuntu環境でコードを動かすことが可能になります。
ケース2:複数のインスタンスで同じプロジェクトを共有:
異なるバージョンのUbuntuや、異なる開発スタックを持つ複数のMultipassインスタンスで、同じプロジェクトファイルを共有できます。
これで、環境ごとにコードをコピーする手間が省け、効率的な開発が可能です。
ファイル共有の仕組みを図で見てみましょう。

3. インスタンスのリソース(CPU, メモリ, ディスクサイズ)設定を変更する
Multipassインスタンスは、デフォルトで一定のリソース(CPU、メモリ、ディスクサイズ)が割り当てられますが、開発するアプリケーションの要件に合わせてこれらの設定を調整することが可能です。
multipass get
コマンドによる現在のリソース設定の確認
multipass get
コマンドを使用すると、インスタンスに割り当てられているCPU、メモリ、ディスクサイズなどの情報を取得できます。インスタンスのリソース設定を変更する前に、現在の設定を確認する習慣をつけましょう。
設定項目を取得する場合のコマンドの構文
mulipass get local.<インスタンス名>.<設定項目>
インスタンスのCPUコア数を確認する場合:
例: my-ubuntu-vm
というインスタンスのCPUコア数を確認するには、以下のコマンドを実行します。
mulipass get local.my-ubuntu-vm.cpus
メモリサイズを確認する場合:
mulipass get local.my-ubuntu-vm.memory
ディスクサイズを確認する場合:
mulipass get local.my-ubuntu-vm.disk
利用可能なすべての設定キーのリストを表示する場合:
--keys
オプションを使用すると、現在利用可能なすべての設定キーのリストを表示できます。これにより、正しい設定キーの形式を確認できます。
mulipass get --keys
[!NOTE]:multipass get
コマンドは、インスタンスが実行中でも停止中でも実行可能です。
multipass set
コマンドによるリソース設定の変更
インスタンスのリソース設定は、multipass set
コマンドを使って変更できます。
注意: cpu, disk, memoryのリソース設定を変更する際は、対象のインスタンスを停止している必要があります。インスタンスが実行中の場合、設定変更はできません。
CPUコア数の変更:
multipass get
と同様に、multipass set
でもlocal.<インスタンス名>.<設定項目>
の形式で指定します。
mulipass set local.<instance_name>.cpus=<new_cpu_count>
例: multipass set local.my-ubuntu-vm.cpus=4
(CPUコア数を4に変更)
メモリサイズの変更:
mulipass set local.<instance_name>.memory=<new_memory_size>
例: multipass set local.my-ubuntu-vm.memory=4G
(メモリサイズを4GBに変更)
ディスクサイズの変更:
mulipass set local.<instance_name>.disk=<new_disk_size>
例: multipass set local.my-ubuntu-vm.disk=50G
(ディスクサイズを50GBに変更)
また、インスタンスを新規作成する際に、multipass launch
コマンドで最初からリソースを指定することも可能です。
multipass launch --name my-dev-vm --cpus 2 --memory 2G --disk 6G
4. FAQ:よくある質問
Q1: multipass delete
と multipass purge
の違いは何ですか?
A1: multipass delete <instance_name>
は、指定したインスタンスを停止し、Multipassの管理リストから削除しますが、ディスク上のイメージファイル自体は残ります。これにより、後で同じイメージからインスタンスを再作成する際に高速化される場合があります。一方、multipass purge
は、delete
コマンドで削除されたインスタンスのディスクイメージも含め、完全にディスクから消去し、ディスクスペースを解放します。完全に不要になったインスタンスや、ディスク容量を節約したい場合は purge
を実行するのがおすすめです。
Q2: multipass mount
で共有したディレクトリが、インスタンス側で見つかりません。どうすれば良いですか?
A2: まず、multipass mount
コマンドが正しく実行されたか確認してください。インスタンス内で ls /
を実行し、マウントポイント(デフォルトでは /Users/<your_username>
のようなパス)が存在するか確認します。もし見つからない場合は、以下の点を確認してみてください。
- マウントコマンドの再実行:
multipass umount <instance_name>:<instance_path>
で一度アンマウントし、再度マウントを試みてください。 - パスの確認: ホストOS側のディレクトリパスと、インスタンス側のマウントパスが正しいか、スペルミスがないか確認しましょう。
Q3: インスタンスのCPUやメモリを増やしたいのですが、どうすれば良いですか?
A3: インスタンスのCPUやメモリなどのリソース設定を変更するには、multipass set
コマンドを使用します。変更を行う前に、以下の手順と注意点を確認してください。
- 現在のリソース設定の確認(任意):
変更前に現在の設定を確認したい場合は、multipass get
コマンドを使用します。
multipass get local.<instance_name>.cpus
multipass get local.<instance_name>.memory
- インスタンスの停止:
リソース設定を変更する際は、対象のインスタンスを停止している必要があります。インスタンスが実行中の場合、設定変更はできません。
multipass stop <instance_name>
- リソース設定の変更:
multipass set
コマンドを使用して、CPUコア数やメモリサイズを変更します。設定キーはlocal.<インスタンス名>.<設定項目>
の形式で指定します。
- CPUコア数の変更:
bash multipass set local.<instance_name>.cpus=<新しいCPUコア数>
例:multipass set local.my-ubuntu-vm.cpus=4
- インスタンスの再起動:
設定変更後、インスタンスを再起動して新しいリソース設定を適用します。
multipass start <instance_name>
5. まとめ:より実践的な開発環境へ
この記事では、macOS開発者がMultipassインスタンスを管理し、macOSとの間でファイルをスムーズに共有するための「極意」を解説しました。
- インスタンスのライフサイクル管理:
start
,stop
,restart
,suspend
,delete
,purge
といったコマンドを習得し、Multipassインスタンスをあなたの意のままに制御できるようになりました。 - 効率的なファイル共有:
multipass mount
コマンドを使って、macOS上の開発プロジェクトディレクトリをインスタンスにマウントし、シームレスなファイルアクセスを実現する方法を学びました。 - リソースの最適化: CPU、メモリ、ディスクサイズといったインスタンスのリソース設定を調整し、あなたの開発ワークロードに合わせた最適なパフォーマンスを引き出す方法を理解しました。
これらの知識を組み合わせることで、あなたのmacOS開発環境は、より快適でパワフルなものへと進化するはずです。
はじめの一歩を踏み出そう!
今日からあなたの開発ワークフローに、multipass mount
を積極的に取り入れてみましょう。まずは既存のプロジェクトディレクトリをマウントし、インスタンス内で開発ツールを動かしてみてください。もしインスタンスの動作が重いと感じたら、この記事で紹介したリソース設定の調整を試してみてください。
次回の記事もお楽しみに!
次回の記事では、いよいよVS CodeとMultipassを連携させ、まるでローカル環境で開発しているかのようなシームレスな体験を実現する方法を解説します。リモート開発の強力な機能を活用し、あなたの開発効率を爆上げしましょう。お楽しみに!
この記事が役に立ったら、ぜひチームに共有したり、X(旧Twitter)で感想をポストしてください。
参考資料
免責事項
本記事は、執筆時点での情報に基づいて作成されています。Multipassや関連ソフトウェアのバージョンアップにより、機能や操作方法が変更される可能性があります。本記事の内容を利用したことによるいかなる損害についても、著者は一切の責任を負いません。ご自身の責任においてご利用ください。