🦓

M1 Macでmultipassを使ってUbuntuを実行

2021/11/12に公開
2

multipassとは

multipassを使うと、Ubuntuを仮想マシン上で実行できます。そもそも、multipassの開発元は、Ubuntuを開発しているCanonicalです。

安定してUbuntuを動かせそうな気がするのと、M1 Macに対応したというニュースを見たので試してみました。

multipassのWebサイト

multipassのインストール

multipassをインストースルするには、Homebrewを使えます。

% brew install --cask multipass

利用できる仮想マシンのイメージを見る

以下のコマンドで確認できます。

% multipass find
Image                       Aliases           Version          Description
18.04                       bionic            20211109         Ubuntu 18.04 LTS
20.04                       focal,lts         20211108         Ubuntu 20.04 LTS
21.04                       hirsute           20211110         Ubuntu 21.04
21.10                       impish            20211103         Ubuntu 21.10
anbox-cloud-appliance                         latest           Anbox Cloud Appliance
minikube                                      latest           minikube is local Kubernetes

LTSのUbuntuを起動

コマンド launch でUbuntu LTSの仮想マシンを作成します。Ubuntuのイメージをダウンロードするので時間がかかります。

% ubuntuの名前のイメージを作成
% multipass launch --name ubuntu

なお、この時、メモリやコア数を指定できます。(詳しくは multipass help launchで確認できます。)

% multipass launch --name (名前) \
    --cpus (割当CPUコア数) \
    --mem 割当メモリ(デフォルトは5G) \
    --disk 割当ディスクサイズ

コマンド list で作成されたマシンイメージを確認できます。

% multipass list
Name                    State             IPv4             Image
ubuntu                  Running           192.168.64.4     Ubuntu 20.04 LTS

インスタンスにログインするには、shellコマンドを使います。

% multipass shell ubuntu

その後は、普通にUbuntuです。

起動したUbuntuのシェル

インスタンスにコマンドを実行

multipassの特徴ですが、実行中のインスタンスに対して、任意のコマンドが実行できることです。コマンドの結果も得られます。

% multipass exec イメージ名 コマンド

例えば、macOSのターミナルから、Ubuntuに対してコマンド(echo)を実行するには以下のようにします。

% multipass exec ubuntu echo "Hello"
Hello

インスタンスの操作

以下のコマンドでインスタンスを操作できます。

コマンド 説明
start インスタンスの開始
stop インスタンスの停止
suspend インスタンスのサスペンド
restart サスペンドしたイメージを再開
delete イメージを削除
purge deleteしたインスタンスを完全に削除

インスタンスを削除するには delete でインスタンスを削除候補にしておいて、purgeで完全に削除します。

ファイルをインスタンスに転送

インスタンスに対してファイルを転送するにはtransferコマンドを使います。

% multipass transfer (ファイル1) (イメージ):/path/to/file

ローカルPCのフォルダをインスタンスにマウント

ローカルのフォルダをインスタンスにマウントするにはmountコマンドを使います。

% multipass mount (ローカルパス) (インスタンス):/path/to/dir

Ubuntuデスクトップの起動

デスクトップを使うには、以下のページが参考になりました。

(2021/11/16) なお、本記事の続編でUbuntuデスクトップを使う方法を書いてみました。

感想

軽く使ってみた感じ、Vagrantと似た感じで使えそうです。Dockerは、以下で試す方法を紹介しています。便利そうです。

Discussion