LoginSignup
1
2

More than 1 year has passed since last update.

M1 MacBook Pro に UTM + Manjaroをインストールしました(再起動でフリーズしない方法)

Posted at

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タブに行き、linuxlinux-api-headersをIngored upgradesの対象にします。

image.png

Andreas Gerlach先生はlinux-headersだとおっしゃるのですが、linux-api-headersしか見つかりません。こちらを追加で良いとおもうのですが。

また、検索してspce-vdagentをインストールします。

17.リブートします。

これでインストール作業は完了です。日本語入力・表示をふくめていい感じに使えるようにするには、もう少し設定が必要ですが、それは別記事にしたいとおもいます。

少し補足

ステップ16で「カーネルをアップデートしない」というのが重要です。カーネルをアップデートすると、initial RAMディスクを書き換え、そのためブートアッププロセスで問題が起きるのだそうです(とAndreas Gerlach先生が書いておられました)。

起動しなくなった(複数の)バーチャルマシンのDebug.logを見ていますと、

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の人が、少しでも増えるとうれしいなとおもいます。

参考リンク

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2