【仮想化】macOSのUTMでUbuntu Linuxを動かす

元記事があまりにも情報頂戴になりすぎたということもあり、macOSで動かせる仮想環境である「UTM」について、記事を分割することにしました。

第二弾はIntelホストなmacOS用と、Apple SiliconホストなmacOS用のUbuntu Linuxを動かす手法です。Parallelsでも実はARM64のUbuntu Linuxは簡単に導入できるようになっており、Windowsとは違ってサーバー構築で力を発揮してくれます。

今回利用する素材

IntelホストのMacbook Pro 2015と、Apple SiliconホストのM1 Macbook Airの2つを使って検証を行っています。Intel版のUbuntuは入手が簡単なのですが、ARM64版のUbuntuは公式でISOリリースされてはいるものの、Daily Buildとしてしかまだ出てはいません。しかし、きちんとUbuntu Linuxとしては活用することは可能です(リリースされてるパッケージに差異があります)。

UTMそのもののインストールや使い方に関する基本は以下の本エントリーを参照してください。

M1 MacやiOSでも動く高機能な仮想環境UTMを使ってみた

x64版のUbuntuの場合

OSのインストール

Macbook Pro 2016はIntel CPUであり、またUbuntu Linux 20.04もx64用のOSであるため、UTMで利用する場合にはCPUのエミュレーションは不要故にかなり快適に動作します(M1 Macではエミュレーションが必要)。また、仮想環境の構築も非常に楽ちんで、以下の手順で簡単に構築する事が可能です。

  1. UTMを起動し、Create a New Virtual Machineをクリックする
  2. Virtualizeを選択する
  3. OSでは、Linuxを選択する
  4. Boot ISO Imageでは予めダウンロードしておいたUbuntu Linuxのisoファイルを指定する
  5. RAMは4GB、Core数は4を指定。Storageでは100GB程度を割り当てました。
  6. Shared Directoryがホスト側と共有するフォルダの指定ですのでお好みで
  7. そのまま起動せず、左パネルに出来た項目を右クリック⇒Editで入ってみる
  8. 他にも色々と細かいセッティングがあり、USBについてホストと共有する項目や、ドライブの設定等があるのでお好みに応じて変更する
  9. 起動させる
  10. 普通にインストールが始まるでの、指示に従って進める
  11. インストールが完了し、無事にUbuntu Linuxが起動したら成功

64bit環境でインストールしてるので、UEFIブートで尚且Apple Virtualizationが利用可能です。

v4.0.1 Betaより、ホストがVenturaの場合、新Virtualization.frameworkを利用して、ゲストの ARM Linux上をEFIブートで作成可能になりました。Rosetta2を利用してのIntelバイナリの実行も出来るようになったようです。

図:セッティング項目は豊富

図:無事にインストールして動作するようになった

SPICE Guest Tools

WindowsおよびLinuxに用意されている、VMwareで言うところのVMware Toolsと同じ役目を果たしてる、追加のプログラムです。フォルダの共有やクリップボード共有、画面サイズの動的可変対応、各種ドライバ等が入っており、WindowsやUbuntu等では必ず入れるようにしましょう。

Ubuntuの場合はターミナルを起動して、以下のコマンドを実行するだけです

sudo apt install spice-vdagent spice-webdavd

Windowsをインストールした場合には、サポートページにあるGuest ToolsのISOをダウンロードして、仮想環境内で中に入ってるインストーラを実行する必要があります。

ARM版のUbuntuの場合

概要

M1 Mac上のUTMでUbuntu Linux使いたいとなったら、x64版ではなく現在まだ公式に提供されているわけじゃないのですが、22.10 Daily Buildとして提供されてるARM版を使うことで、x64エミュレーションをせず快適に利用することが可能です(Parallelsではこちらの版を利用して環境を構築しています)。

M1 Macではギャラリーにインストール法が記載されているので、ARM版 Ubuntuを利用すれば同様にインストールが可能です(ただしこちらは、Ubuntu Desktopではないのでコンソール)。Ubuntu DesktopのARM版については、Nightly buildが提供されていて公式に提供がされていません(が、Parallels Desktopはこの版を利用して、Ubuntu環境を作っています)

インストール時の注意点

Ubuntu Linux 24.04のインストール時遭遇した問題ですが、本当に最初の言語の選択にて日本語を選びたかったのに「文字化け豆腐状態」で選べませんでした。ARM版は正式リリース版ではないので仕方ないのですが、この場合は以下で対処します

  1. 英語版でまずはインストールを完了させる
  2. Ubuntu Linuxを起動して設定アプリ→System→Multi Language Installで日本語の言語をインストール
  3. 一旦再起動
  4. 再度設定にて、言語とフォーマットの2つそれぞれを日本語に変更する
  5. 一旦ログアウト
  6. 再度ログインすると日本語になります。

図:24.04 ARM版もインストールできた

OSのインストール

とはいえ、特別な手法は必要なく、以下の手順でインストールが可能です

  1. こちらのページから64-bit ARM (ARMv8/AArch64) desktop imageをクリックして、ISOをダウンロード
  2. UTMにて新規仮想マシンではLinuxを選び、次の画面では「仮想化」を選択します(エミュレーションではありません)
  3. メモリ4GB、CPUコアは4コア、Diskは64GB、ネットワークをブリッジにして今回は挑戦しています。
  4. ディスプレイの項目は必ずインストール時は「virtio-ramfb」を選ぶこと。virtio-ramfb-gl(GPU Supported)を選ぶと、起動はしますが、ダイアログ等が真っ黒のままです。
  5. ブートさせると、ISOからいつもどおり起動するので、Try or Install Ubuntuを選択
  6. ログイン画面が出るので、Live Session Userをクリック
  7. 左のサイドバーの一番上のアイコンをクリックする
  8. あとは、画面にしたがってインストールを進めるだけ

インストールが終わったら、isoファイルを取り除いて再起動するだけ。ただしいくつか問題点があって、再起動すると再起動せず真っ黒の画面のままだったりします。また、次回起動時にUEFI画面で固まったまま?ディスプレイアダプタおかしくなった?いう印象を持つことがありますが、我慢してれば起動します。ハードウェア情報を以下のコマンドでインストールしたツールで見てみると

sudo apt install hardinfo

図:いつものブート画面

図:ようこそ画面

図:Hardinfoの情報

図:GPUの選択は限定的です

SPICE Guest Tools

Ubuntu x64版同様にターミナルを起動して、以下のコマンドを実行するだけです。また、Qemu 4.0からはVirtFSという新しいデスクトップ共有機能が入っているのですが、こちらはまだ試していません。マウント等の手作業が必要になりますが、こちらにドキュメントが公開されています。

VirtFSを準備することで、WebDavとは異なるホストとゲストの間でのディレクトリ共有が可能になります。

sudo apt install spice-vdagent spice-webdavd

WebDavによるファイル共有

VirtFSではなく通常通りこれまでのWebDavでの共有を有効にし、ディレクトリを指定すると、以下の手順でホスト側のファイルが見えるようになります。以下の手順はUbuntu Linuxの場合で、上記のSpice Guest Toolsがインストール済みの場合です。

  1. Nautilusを起動する
  2. 左サイドバーの他の場所をクリック
  3. ネットワークの項目にSpice Client folderという項目が出てくるのですが、2つ出てきます。フォルダのアイコンのものがアクセス可能なものになり、灰色のアイコンはアクセス出来ません。
  4. 出てこない場合、起動中に一度、SharedDirectoryを再指定すると出てくるようになります。

図:ちょっと面倒な手順です

ネットワークカードについて

過去版ですが、Ubuntu ServerのARM版で構築した際に、なぜかネットワークカードが認識されず、設定ファイルを記述しなおしたら、認識していても通信が出来ないというケースに遭遇したことがあります。公式サイトのFAQにも記載があるのですが、UTMのコミュニティではUbuntu側のバグでは?であったり、AskUbuntuでも同様の内容がIntel版について過去報告されています。

ちなみに自分の場合、rtl8139を指定しています。これ以外だと不具合がある印象です。

自分もこのエントリーを参考にnetplanディレクトリ以下に設定ファイルを作ったり、resolve.confに書き加えてみたり、nmtuiで設定をしたのですが、結局解決せず、Daily buidの22.04をインストールし直したらあっさり問題なく通信できたことから、Ubuntu側の問題なのではと思っています。

仮想環境で使う場合はこういったこともままあるので、あまり1つの問題にのめり込むと沼ることがあるので要注意です。

関連エントリー

M1 MacでParallels Desktopを検証してみた

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)