Macの仮想化ソフトウェアというと、VirtualBox、VMware Fusion、Parallels Desktopといったプロダクトが代表的なところかと思いますが、この中でApple M1への対応が進んでいるのはParallels Desktopが先行している状況のようです。
- Apple M1 チップを搭載した Mac への Parallels Desktop 対応状況について
- Mac版仮想化アプリParallels、AppleシリコンM1対応に積極的。仮想PCでWindowsが動くか
- M1 Mac向けにArm版Windows提供? MSとParallelsが正式に協力か
- 仮想化アプリParallels、M1 Mac上でArm Windowsを中断|再開できるテクニカルプレビュー2公開
- Parallels Desktop for Mac with Apple M1 chip (Apple Silicon)
上記のプロダクト以外にMac上で仮想環境を実現する方法としてはAppleが提供しているVirtualization frameworkを利用することで可能とのこと。
Appleの開発者フォーラムではVirtualization frameworkを利用したSimpleVM、vm-lite、virtualというプロダクトのGitHubのリポジトリが紹介されています。
「Setting up Linux VM on Apple Silicon for Docker」という記事にSimpleVMを利用したUbuntu上でDockerを起動するまでの手順が掲載されていたので実際にやってみたところ、Ubuntuが起動することは確認できましたが、vmlinuzとinitrdを準備するところが非常に煩雑だと感じました。
こうなると、やはりVirtualBoxやVMware Fusionのような仮想化のGUIフロントエンドが欲しくなります。そういった声に応えてくれるのがUTMやACVMといったQEMUラッパーです。
- iOSデバイス上に仮想マシンを作成できるアプリ「UTM」がApple Silicon Macをサポートし、M1チップ搭載のMac上にARM64版WindowsやUbuntuをインストール可能に。
- UTMとOpenCoreを利用し、x86版macOS 10.14 MojaveをApple Silicon Mac上で動作させることに成功したもよう。
- Apple M1チップ搭載のMacでARM版Windows 10を動作させるQEMUラッパー「ACVM」がリリース。
前置きが長くなりましたが、それではUTMを使ってM1 MacにUbuntuをインストールしていきましょう。
手順についてはUTMのリポジトリの「Install Ubuntu ARM64 on Apple M1」というWikiか、もしくは、UTMのページの「Ubuntu 20.04」にキャプチャ付きでまとめられてるので、実はここを見れば一発なんですが今回はUTMをインストールするところから説明していきます。
UTMのリリースページからMac用のインストールバイナリ(UTM.dmg)をダウンロードしてインストールします。(2020年2月25日時点ではv2.0.22が最新版のようです。)
次に、Ubuntu Server for ARMのページからARM版のイメージ(ISOファイル)をダウンロードします。今回は「20.04.2 LTS」を利用することとします。
あとは先程紹介したインストール手順に従い進めていきます。
画面上段の「+」ボタン、もしくは、「Create a New Vitural Machine」のアイコンをクリックします。
InformationタブのName欄に「Ubuntu 20.04」と入力し、Styleから「Operating System」を選択します。
Architectureから「ARM64 (aarch64)」を選択すると、自動的にSystemから「QEMU 5.2 ARM Virtual Machine (alias of virt-5.2) (virt)」が選択されます。
Memoryについては環境によって設定可能な値が変わってくると思いますが、今回は8192MB(8GB)で設定してみます。
「New Device」ボタンをクリックし、Interfaceで「VirtIO」が選択された状態でSizeに「10GB」と入力します。
もう一度「New Device」ボタンをクリックします。「Removable」にチェックすると、Interfaceで「USB」が選択された状態となります。
「Save」ボタンをクリックすると、仮想マシンの枠ができあがります。
「CD/DVD」の欄をクリックすると「Browse」と表示されるのでこれをクリックします。
再生アイコン(起動ボタン)をクリックすると仮想マシンが起動します。
事前に作成したCD/DVDドライブより先にハードディスクの方を起動ドライブとして認識しているため起動できない状態となっています。
「UEFI QEMU QEMU USB HARDDRIVE」を選択します。
Ubuntuのインストール画面が表示されるので「Install Ubuntu Server」を選択します。
Ubuntuの詳細なインストール手順については割愛します。
インストール後に利用したいパッケージが決まっているのであれば、「Featured Server Snaps」の画面で選択しておきます。今回はdockerを選択しました。
インストールが完了したら一旦仮想マシンを停止し、CD/DVDの「Clear」を選択して再度仮想マシンを起動します。
GRUBの画面が表示されますので、「Ubuntu」を選択します。
インストール時に設定したアカウントでログインし、unameと/etc/os-releaseを確認してみます。
sudo apt-get -y install ubuntu-desktop
を実行してデスクトップ環境をインストールしてみます。
インストールが完了したら sudo reboot
で再起動します。
Ubuntuのインストール時にDockerをインストールしていたので、Dockerのバージョン情報を表示してみます。
docker image pull (もしくは docker pull)
を実行してUbuntu 20.10のイメージを取得し、 docker image ls (もしくは docker images)
でイメージが取得できているか確認します。
docker container run (もしくはdocker run)
でコンテナのシェルを表示し、unameと/etc/os-releaseを確認してみます。