DR;TL
MacBook Pro (14-inch, 2021, M1)の、UTM上にManjaroをインストールしました。まだ「isoをダウンロードしてきてサクッと」というわけにいかず、いろいろなトリックを駆使している感じですが、実際に動いているのは、めちゃくちゃいいです。
ほとんどNew Tech on the Blogを「やってみた」だけですが、ハマりどころを見事に回避していて「このヒト何者!?」で感激しました。
たとえば、UTM上に各種Linuxをインストールした後に、再起動すると動かなくなる問題があります。原因について書かれている記事がなかなか見つからなかったのですが、上記ブログのAndreas Gerlach氏は、これも見事に回避されています。
環境
ここで書いていることは、下記のバージョンで実施しました。
- Manjaro-ARM-kde-plasma-generic-22.08
- UTM Version 3.2.4 (58)
- macOS Monterey 12.5.1
- MacBook Pro (14-inch, 2021)
UTM v4.0.6(RC)ではうまく動かなかったので、v3.2.4を使用しました(リリースされたものの最新版)
KDE Plasma版を使っていますが、少なくともGNOMEでもOKでした。Xfceは試していませんが、同じことをすれば大丈夫だとおもわれます
インストール手順
ダウンロードとファイルの準備
0.UTMアプリをダウンロードします。QEMUをインストールしておきます(homebrew)。
1.Manjaroのダウンロードページから、Manjaro ARMのイメージをダウンロードします。
デバイスはGENERIC
を選択します。
2.ダウンロードした...img.xz
を解凍すると...img
ファイルができます。これをダブルクリックしてマウントし、中身を確認します。
3.マウントしたパーティションを開き、その中身を、...img
のところにコピーします。(dtbsフォルダ、Image、initramfs-linux.img、extlinux.conf)
コピーが終われば、マウントしたパーティションを取り外します。
UTMアプリでバーチャルマシンを作成
4.UTMアプリを開きます。新しいバーチャルマシンを作ります。その際にVirtulize
を選択します。
5.次の画面ではLinux
を選択します。
6.次の画面で、まずBoot from kernel image
にチェックを入れます。
ステップ3で用意したファイルを指定します。
- Linux kernel →
Image
- Linux initial ramdisk →
initramfs-linux.img
- Linux Root FS Image →
Manjaro-ARM-kde-plasma-generic-22.08.img
7.ステップ3で用意したextlinux.conf
をテキストエディタで開きます。そして、root= ... splash
の間をコピーします。
そして、コピーしたテキストの前後を"
で括って"root= ... splash"
という形にし、Boot Arguments
の欄に貼り付けます。
8.次のセクションではメモリを設定し、OpenGL acceleration
がオフになっていることを確認します。
Andreas Gerlach先生はメモリを8GBに設定していますが、デフォルトの4GBでも良いようにおもいます。
9.バーチャルマシンに名前をつけ、Open VM Settings
にチェックを付け、Saveボタンを押します。
10.QEMUセクションの、一番下にいき、ステップ7で貼り付けた"root= ... splash"
が反映されていることを確認します。
11.Displayセクションにいき、下記を変更します
- Display Card →
virtio-gpu-pci
- Retina Mode → チェック
12.(必須ではありませんが)Inputセクションに行き、Invert Mouse Scroll
をにチェックを付けます
13.VirtIO Driveに行き、下側のdata.qcow2
となっているほうを削除します。
14.最後の設定です。ディスク容量を増やします。
- バーチャルマシンのあるフォルダに移動します。ターミナルを開き
cd Library/Containers/com.utmapp.UTM/Data/Documents/<VM名称>.utm
とします。
はステップ9で入力したものです。
- 次に、コマンドを入力します。
qemu-img resize Images/<Root FS imageの名称>.qcow2 +32G
は、ステップ6で選択したものと同じで、たとえばManjaro-ARM-kde-plasma-generic-22.08.img
です。
バーチャルマシンの起動と基本設定
15.UTMからバーチャルマシンを起動します。
セットアッププログラムが走るので、設定します(タイムゾーン、言語、キーボード、ユーザアカウント)。そしてリブートします
サークルがくるくる回っている時間がわりと長いですが、辛抱して待ちます。測っていないですが、1-2分ぐらいでしょうか。
16.リブートが成功したら、まず「アップデートを制限する」ことをします。
スタートメニューからAdd / Remove Software
を起動し、コンテキストメニューからPreference
を開きます。
Advanced
タブに行き、linux
とlinux-api-headers
をIngored upgradesの対象にします。
Andreas Gerlach先生はlinux-headers
だとおっしゃるのですが、linux-api-headers
しか見つかりません。こちらを追加で良いとおもうのですが。
また、検索してspce-vdagent
をインストールします。
17.リブートします。
これでインストール作業は完了です。日本語入力・表示をふくめていい感じに使えるようにするには、もう少し設定が必要ですが、それは別記事にしたいとおもいます。
少し補足
ステップ16で「カーネルをアップデートしない」というのが重要です。カーネルをアップデートすると、initial RAMディスクを書き換え、そのためブートアッププロセスで問題が起きるのだそうです(とAndreas Gerlach先生が書いておられました)。
起動しなくなった(複数の)バーチャルマシンのDebug.logを見ていますと、
qemu-aarch64-softmmu: warning: Spice: record:0 (0x12a0a89e0): setsockopt failed, Operation not supported on socket
となっています。Spiceをなんとかしなければならないのかと思っていましたが、kernelのアップデートが原因であるようです。
今後もずっとアップデートしないのだろうか??
時間の問題で、さくっとARM版ManjaroがUTMにインストールできるようになる日が来ることを期待したいです。
おわりに
Andreas Gerlach先生、ほんとうにありがとうございました。UTMでのLinuxを諦めかけていたんですが、全く問題なく使えるところまでやってこれました。Manjaro、すごくいいです。メインをmacOSではなくて、UTM上のManjaroにしようかなと一瞬おもってしまうぐらいです(たぶんそれはむずかしい)。
M1 mac + UTM + Linuxの人が、少しでも増えるとうれしいなとおもいます。
参考リンク
- Andreas Gerlach先生
- 本家
- 解説記事(ubuntuはサクッと動くんだなあ……)