【 M1 Mac 】高速でUbuntuの仮想環境を構築

## はじめに

WindowsやIntel Macでは、VirtualBoxというツールを使いUbuntuのVM（仮想マシン）を構築する方法が一般的でした。

しかし、Apple Silicon　(M1,M2)　を搭載したMacでは、VirtualBoxでのUbuntuのVM構築がまだまだ安定しないという課題があります。

そこで、Windows、Intel Mac、Apple Silicon Mac(M1,M2)に対応し、高速でUbuntuのVMを構築できるソフトウェアを紹介します。

## MultiPassとは

MultiPassは、Ubuntuの開発をしているCanonical社が提供しているツールです。Windows、Linux、macOSそれぞれのプラットフォームで、同じ操作感で UbuntuのVMを扱うことができます。操作は基本的にCUIで実施します。

## MultiPassのインストール

```
brew install multipass
```

[こちらのページ](https://multipass.run/docs/installing-on-macos#heading--install-upgrade-uninstall)に、Windows、Linuxのインストール方法も載っています。


## バージョン確認

```
multipass version
```

## 仮想マシンの作成（初回起動）・状態確認

UbuntuのVMを作成（初回起動）するには`multipass launch`コマンドを使います。以下の表の通り、オプションを付けて実行する事ができます。また、末尾にはUbuntuのバージョン番号を指定します。バージョン番号を省略した場合には、最新のLTS(Long Term Support)リリースが使われます。

|オプション  |デフォルト値  |説明  |
|----------|------------|-----|
|--name    | 適当な名前  | 仮想マシン名を指定 |
|--cpus    | 1   |CPUの数を指定        |
|--memory  | 1G  |メモリのサイズを指定   |
|--disk    | 5G  |ディスクのサイズを指定  |

以下のコマンドで、UbuntuのVMを作成（初回起動）しましょう。

```
multipass launch --name ubuntu --cpus 1 --memory 1G --disk 5G 20.04
```

初回起動時には、イメージのダウンロードや検証が入るので、少し時間がかかります。なお、指定できるバージョン番号 (ディストリビューション) は multipass find コマンドで確認できます。

```
multipass find
```
起動が終わると`multipass ls`コマンド(または multipass list)を叩く事で、仮想マシンが表示されるようになります。

```
multipass ls
```
出力結果は以下のとおりです。
```
Name            State         IPv4             Image
ubuntu          Running       192.168.0.2      Ubuntu 20.04 LTS
```


仮想マシンのより詳しい情報は`multipass info`コマンドで確認できます。デフォルトでは1GBのメモリと5GBのディスクが割り当てられます。

```
multipass info ubuntu
```
出力結果は以下のとおりです。

```
Name:           ubuntu
State:          Running
IPv4:           192.168.0.2
Release:        Ubuntu 20.04.6 LTS
Image hash:     --
Load:           0.00 0.00 0.00
Disk usage:     2.7G out of 4.7G
Memory usage:   157.5M out of 970.0M
Mounts:         --
```

仮想マシンに割り当てるCPUやメモリ、ディスクの容量などは起動時にカスタマイズできます。 具体的には`multipass launch`コマンドで`--cpus`や`--mem`、`--disk` といったオプションを指定します。 詳細は`multipass launch --help`から確認できますので参照してみてください。

## シェルへログイン

`multipass shell`コマンドを使えばシェルにログインできます。シェルにログインしたら、通常のUbuntuと同じように使用できます。

```
multipass shell ubuntu
```
また、シェルから出るときは、以下のように`exit`を叩きます。

```
exit
```

## VMを停止・起動・削除する

まず、VMの状態を確認します。

```
multipass ls
```
出力結果のとおり、StateがRunnningとなっており、VMが起動している事がわかります。

```
Name            State         IPv4             Image
ubuntu          Running       192.168.0.2      Ubuntu 20.04 LTS
```
仮想マシンを停止するには`multipass stop`コマンドを使います。

```
multipass stop ubuntu
multipass ls
```

起動するときは`multipass start`コマンドを使います。

```
multipass start ubuntu
multipass ls
```
仮想マシンを削除するときは`multipass delete`コマンドを使います。 ただし、この時点では完全に削除されません。ゴミ箱に入るようなイメージです。

```
multipass delete ubuntu
multipass ls
```
出力結果のとおり、Deletedとなっている事が確認できます。

```
Name            State         IPv4         Image
ubuntu          Deleted       --           Not Available
```

Deletedな状態であれば、まだ`multipass recover`コマンドで復旧できます。

```
multipass recover ubuntu
multipass ls
```

仮想マシンを完全に削除するには、`multipass delete`でゴミ箱に入れた後に`multipass purge`でゴミ箱の中身を削除します。これでDeletedな状態の仮想マシンが完全に削除されます。

```
multipass delete ubuntu
multipass purge
multipass ls
```
## おわりに

今回は、Windows、Intel Mac、Apple Silicon Mac(M1,M2)に対応し、高速でUbuntuのVMを構築できるソフトウェアとして、Multipassを紹介しました。基本的な操作方法について、この記事を参照していただき、細かい操作についてはGoogle検索やhelpコマンドを確認してみてください。この記事が、少しでも多くの方にとって有益になれば幸いです。