M1 MacでUbuntuの仮想マシンを使うためにMultipassをインストールする
はじめに
M1、M1 Pro、M1 MaxなどのApple Siliconを搭載しているMacbookProでの開発環境整備のために、Ubuntuの仮想環境を構築できるMultipassをインストールしました。その手順をまとめます。
Multipassとは
Multipassは、Ubuntuの開発元であるCanonical社が開発、提供している仮想マシン管理ツールです。Ubuntuの仮想マシンを簡単に作成、削除でき、Vagrantと同じような使用感で使えます。
Multipass orchestrates virtual Ubuntu instances
環境と前提
以下を前提としています。
- 使用する端末はM1系(M1、M1 Pro、M1 Mac)搭載のMacbookPro
- Homebrewはインストール済み
インストール
以下ようにbrew
コマンドだけでインストール完了です。
$ brew install --cask multipass
以下が実行結果です。実行すると以下のようにパスワード確認されるので入力してEnterを押下します。
$ brew install --cask multipass
Running `brew update --preinstall`...
==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
https://github.com/Homebrew/brew#donations
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
lua-language-server tsduck
==> Updated Formulae
Updated 53 formulae.
==> Deleted Formulae
sdhash
==> Tapping homebrew/cask
Cloning into '/opt/homebrew/Library/Taps/homebrew/homebrew-cask'...
remote: Enumerating objects: 608626, done.
remote: Counting objects: 100% (51/51), done.
remote: Compressing objects: 100% (51/51), done.
remote: Total 608626 (delta 26), reused 10 (delta 0), pack-reused 608575
Receiving objects: 100% (608626/608626), 273.13 MiB | 4.94 MiB/s, done.
Resolving deltas: 100% (430351/430351), done.
Tapped 3942 casks (4,022 files, 292.6MB).
==> Downloading https://github.com/canonical/multipass/releases/download/v1.8.1/multipass-1.8.1+mac-Dar
==> Downloading from https://objects.githubusercontent.com/github-production-release-asset-2e65be/11412
######################################################################## 100.0%
==> Installing Cask multipass
==> Running installer for multipass; your password may be necessary.
Package installers may write to any location; options such as `--appdir` are ignored.
Password:
パスワード入力したら以下のように表示されてインストール完了。
Password:
installer: Package name is multipass
installer: Installing at base path /
installer: The install was successful.
🍺 multipass was successfully installed!
なお、--cask
はGUIアプリをインストールする際に使用するフラグになります。
バージョン確認
以下のようにバージョン確認ができれば正常にインストールできています。
$ multipass version
multipass 1.8.1+mac
multipassd 1.8.1+mac
Ubuntu の仮想マシンを作成する
公式サイト(https://multipass.run/docs/working-with-instances)に記載がある通り、以下のコマンドでUbuntuのVMを作成できます。
$ multipass launch
ただし、上記だけだとVMの名前やスペックはデフォルトのままになります。
仮想マシンの作成についてデフォルトだとどのような割り当てになるかは以下のようにhelp launch
コマンドで確認できます。例えばCPUはデフォルトだと1
、ディスク容量は5GB
、メモリは1GB
です。
$ multipass help launch
Usage: multipass launch [options] [[<remote:>]<image> | <url>]
Create and start a new instance.
Options:
-h, --help Displays help on commandline options.
--help-all Displays help including Qt specific options.
-v, --verbose Increase logging verbosity. Repeat the 'v' in the short
option for more detail. Maximum verbosity is obtained
with 4 (or more) v's, i.e. -vvvv.
-c, --cpus <cpus> Number of CPUs to allocate.
Minimum: 1, default: 1.
-d, --disk <disk> Disk space to allocate. Positive integers, in bytes, or
with K, M, G suffix.
Minimum: 512M, default: 5G.
-m, --mem <mem> Amount of memory to allocate. Positive integers, in
bytes, or with K, M, G suffix.
Minimum: 128M, default: 1G.
-n, --name <name> Name for the instance. If it is 'primary' (the
configured primary instance name), the user's home
directory is mounted inside the newly launched instance,
in 'Home'.
--cloud-init <file> Path to a user-data cloud-init configuration, or '-' for
stdin
--network <spec> Add a network interface to the instance, where <spec> is
in the "key=value,key=value" format, with the following
keys available:
name: the network to connect to (required), use the
networks command for a list of possible values, or use
'bridged' to use the interface configured via `multipass
set local.bridged-network`.
mode: auto|manual (default: auto)
mac: hardware address (default: random).
You can also use a shortcut of "<name>" to mean
"name=<name>".
--bridged Adds one `--network bridged` network.
--timeout <timeout> Maximum time, in seconds, to wait for the command to
complete. Note that some background operations may
continue beyond that. By default, instance startup and
initialization is limited to 5 minutes each.
Arguments:
image Optional image to launch. If omitted, then the default
Ubuntu LTS will be used.
<remote> can be either ‘release’ or ‘daily‘. If <remote>
is omitted, ‘release’ will be used.
<image> can be a partial image hash or an Ubuntu release
version, codename or alias.
<url> is a custom image URL that is in http://, https://,
or file:// format.
以下を実行すると、CPU数が2、ディスク容量が20GB、メモリが4GB、仮想マシン名がmyvmname
の仮想マシンを作成します。
$ multipass launch --cpus 2 --disk 20G --mem 4G --name myvmname
実行すると以下のように作成が開始されるので待ちます。
$ multipass launch --cpus 2 --disk 20G --mem 4G --name myvmname
Retrieving image: 15%
仮想マシンの作成が完了すると以下のように表示されます。
$ multipass launch --cpus 2 --disk 20G --mem 4G --name myvmname
Launched: myvmname
作成した仮想マシン一覧を確認する
list
コマンドを使用すると作成済みの仮想マシン一覧を確認できます。
multipass list
Name State IPv4 Image
myvmname Running 192.168.64.2 Ubuntu 20.04 LTS
作成した仮想マシンにアクセスする
以下のコマンドで作成した仮想マシンにアクセスできます。ssh接続する形です。
$ multipass shell myvmname
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-91-generic aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Tue Dec 7 23:42:17 JST 2021
System load: 0.0
Usage of /: 6.5% of 19.22GB
Memory usage: 5%
Swap usage: 0%
Processes: 121
Users logged in: 0
IPv4 address for enp0s1: 192.168.64.2
IPv6 address for enp0s1: fd16:19b2:f10d:2c06:5054:ff:fe19:bd4b
0 updates can be applied immediately.
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
ubuntu@myvmname:~$
あとは普通のUbuntuとして自由に使用できます。
なお、作成した仮想マシンの情報は以下のようにinfo
で確認できます。
% multipass info myvmname
Name: myvmname
State: Running
IPv4: 192.168.64.2
Release: Ubuntu 20.04.3 LTS
Image hash: f83575f6791e (Ubuntu 20.04 LTS)
Load: 0.10 0.25 0.15
Disk usage: 1.8G out of 19.2G
Memory usage: 162.0M out of 3.8G
Mounts: --
仮想マシンの起動、停止、削除
起動
$ multipass start myvmname
停止
$ multipass stop myvmname
削除
$ multipass delete myvmname
仮想マシンの完全削除
delete
で削除した仮想マシンは完全削除ではなく一時的な削除になります。ファイルをゴミ箱にいれるようなイメージです。delete
で削除した仮想マシンを再度使いたい場合は、recover
によって復活させることができます。
$ multipass recover myvmname
完全に削除したい場合はpurge
を使用します。
$ multipass purge myvmname
ホストマシンのディレクトリをマウントする
以下をホストマシン側(ここではM1 MacbookPro)で実行するとマウントできます。
$ multipass mount ホストマシンのパス 仮想マシンのパス
例えば以下だとホストマシンの/Users/mymac/share
というディレクトリを仮想マシンmyvmname
の/home/ubuntu/mnt
にマウントできます。/home/ubuntu/mnt
は私が勝手に作ったディレクトリですので、各自マウントしたパスに置き換えてください。
$ multipass mount /Users/mymac/share myvmname:/home/ubuntu/mnt
これで仮想マシン側でホストマシン側のファイルにアクセスできます。
参考サイト
まとめ
公式ドキュメントが充実しており簡単に使えると思います。動作も問題なく快適に使用できています。
関連記事
- 公開日:2022/08/09 更新日:2022/08/09
Multipassの仮想マシンにssh接続する
Multipass上の仮想マシンにホストマシンからssh接続したい場面があったのでその手順をまとめます。
- 公開日:2022/07/11 更新日:2022/07/11
phpenvを使ってUbuntu20.04にPHPをインストールする手順
phpenvを使ってUbuntu20.04にPHPをインストールする手順をまとめます。
- 公開日:2017/08/27 更新日:2017/08/27
MacでubuntuのインストールUSBを作成する方法と手順
MacでubuntuのインストールUSBを作成する手順をメモします。ここで載せる手順はターミナルでのコマンドによる方法になります。
- 公開日:2014/06/19 更新日:2014/06/19
phpmyadminにアクセスできない場合の対処方法
たまにphpmyadminにアクセスできずに困る場合があり、いつも対処方法を調べている気がするのでメモしておきます。ここではMacのMAMPを使っている場合、ubuntuの場合についてメモします。非常に簡単です。