Apple Silicon 上の Parallels に Manjaro をインストールした話

[英語版はこちら](https://dev.to/yuizumi/installing-manjaro-on-parallels-with-apple-silicon-e6k)

最近、Mac Mini 2023（M2 チップ搭載）を買いました。で、訳あって [Manjaro](https://manjaro.org/) を [Parallels](https://parallels.com/) の上で動かそうとしたのですが、Manjaro ARM のインストールは Manjaro (x86_64) のように単純にはいかないということを知りました。Andreas Gerlach 氏が [UTM](https://mac.getutm.app/) を利用した方法を確立していて、[自身のブログ][appelgriebsch]で紹介しているほか、@hann-solo 氏による[日本語の紹介記事][qiita-hann-solo]もあるのですが、この方法にはカーネルのアップグレードができないという受け入れがたい制限があります。結局、Parallels の仮想マシンに Manjaro ARM をインストールする方法を説明したドキュメントは見つからなかったので、自力でインストールの手順を確立した次第です。

[appelgriebsch]: https://www.appelgriebsch.org/005-utm/
[qiita-hann-solo]: https://qiita.com/hann-solo/items/6d0c504825deda8a96dc


## 注意

Manjaro ARM は Pinebook や Raspberry Pi といったローエンドのコンピューター向けに設計されているフシがあり、初期状態でインストールされているパッケージが少なかったり、一部の設定がデスクトップ用途向けになっていなかったりといった問題があります。そのため、Manjaro ARM をデスクトップ環境としてセットアップするには、追加のパッケージをインストールしたり、設定をいじったりする必要があります。特に GNOME エディションはこの傾向が顕著で、Firefox がデフォルトでインストールされていない、ウィンドウは基本最大化されていて、最大化を解除するためのボタンもない、ライトモード（テーマ）はまともに機能しない、などといった問題があります。ですので GNOME エディションは個人的にはおすすめしません。


## 概要

Manjaro ARM のインストールをややこしくしている主な原因は 2 つあります。

- インストーラー形式の ISO ファイルではなく、raw ディスクイメージの形式で提供されている。
- セットアッププログラムがブートローダーを更新しない（っぽい）。

提供されている raw ディスクイメージについては、その内容を、何らかの方法でインストール先のディスクに書き込む必要があります。[Manjaro Wiki] では、PC なり Mac なりでイメージの内容を SD カードに書き込み、その SD カードを実際のデバイスに挿入して起動するという手順が説明されています。以下で紹介する手順も本質的には同じようなことをしているのですが、ほかの仮想マシンを作成しなくても済むように、インストール先の仮想マシン上でまずは Live Linux を起動して、そこで Manjaro ARM のイメージをダウンロードしてそのままハードディスクに書き込むという戦略をとっています。

ブートローダーが更新されないというのは、どちらかといえば罠というような気がします。初期設定が無事に終わったと思って普通に再起動をかけたら起動不能になった、というのは最初に見たときは結構あせります。とはいえ、比較的簡単なコマンドを実行するだけでブートローダーは更新できるので、分かっていれば大した問題ではありません。

[Manjaro Wiki]: https://wiki.manjaro.org/index.php/Manjaro-ARM


## 具体的な手順

1.  Fedora Workstation の Live ISO を入手します。

    ブラウザーで [fedoraproject.org] を開きます。エディションの一覧のところまでページをスクロールして、**Workstation** の枠の中にある **Download Now** をクリックします。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/8f1ee09c-b521-b1df-ea9d-ef49d12715d7.png)

    **ARM® aarch64 systems** の **Live ISO** をダウンロードします。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/e279ce2f-cccb-eb1b-9c10-e8798e5cd048.png)

2.  Live ISO から Fedora をインストールする体で仮想マシンを作成します。

    新規作成の画面を開いて、**Windows、Linux、または macOS をイメージファイルからインストールします**を選択します。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/4f4500fc-a44a-0452-0476-e06d21ecb268.png)

    前の手順でダウンロードした ISO イメージファイルを選択します。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/0c77903e-a239-79ef-c134-9778a9d59216.png)

    名前が「Fedora Linux」のままではややこしいと思うので、それらしい名前をつけてください。やりたければインストール前に構成をカスタマイズしても構いません。ゲスト OS の種類を**その他の Linux** に変更して、仮想マシンのアイコンを Fedora のロゴから変えておくとよいかもしれません。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/a13d3374-f5a1-cc33-f8ee-38e85e5f592c.png)

3.  Fedora Workstation Live を起動します。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/c5494403-f77e-fa8e-5185-6c0ab9bf2383.png)

4.  **Not Now** をクリックしてインストーラーを閉じます。Fedora はインストールしません。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/737f6325-6530-6b3e-1adc-2760b6b0d773.png)

5.  Manjaro ARM Linux のイメージファイルの URL を取得します。

    画面左上のアクティビティーボタンをクリックすると画面下側に Dock が現れるので、そこから **Firefox** を起動します。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/befb7109-1bc9-e14c-ffe3-8b4881eeb6aa.png)

    アドレスバーを利用して [manjaro.org] を開きます。そのページで、**Download** をクリックして、ダウンロードのページに移動します。アーキテクチャーを選択するダイアログが現れるので **ARM** を選択します。Device Options の欄で **Generic EFI** を選択します。

    :::note warn
    必ず Generic EFI を選択してくだい。Generic（EFI でないやつ）はこの方法ではインストールできません。
    :::

    :::note
    [GitHub Releases] からイメージファイルをダウンロードする手もあります。古いリリースや開発版も入手可能です。
    :::

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/a86d4ce0-0ffe-e631-64d9-ac7ff8c4c328.png)

    欲しいエディションの **Download** ボタンをクリックします。**Image** ボタンが現れるはずなので、それを**右クリック**してメニューを表示し、**Copy Link** を選択します。

    :::note alert
    ブラウザーからイメージファイルを直接ダウンロードしようとするとディスクの容量不足で失敗します。最悪、システムがハングする可能性もあります。ライブ環境では RAM がストレージとして用いられているということをお忘れなく。
    :::

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/a66dd8b0-c4fe-ddb7-9faf-2d9bc8af0426.png)

6.  イメージファイルをダウンロードして仮想マシンのハードディスク上に書き込みます。

    再度アクティビティーボタンをクリックして、今度は **Show Apps**（点が 9 個並んだようなアイコン）をクリックします。アプリの一覧が表示されるので、**Terminal** を見つけて、それをクリックします。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/73c22f40-4790-6fa8-019b-263f0d785547.png)

    次のコマンドを実行します。前の手順でコピーしたリンクを `<PASTE_LINK_HERE>` の部分にペーストしてください。イメージファイルをダウンロードして、そのまま仮想ハードディスクに書き込んでしまうので、RAM 上にあるディスクの容量を食いつぶすことはありません。

    ```
    wget -O - <PASTE_LINK_HERE> | xzcat | sudo dd of=/dev/sda bs=4M
    ```

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/2bfbb302-549f-251e-4fb7-e9e03329ffb4.png)

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/b46b2615-4e12-d3f4-42ed-1c5b1b0cee7e.png)

7.  これで仮想マシンのハードディスクにイメージが書き込めたので、お役御免となった Fedora を終了させます。画面右上にある電源ボタンのアイコンをクリックします。別の電源ボタンのアイコンが現れますので、それをクリックします。今度はメニューが表示されるので、**Power off...** を選択して、仮想マシンをシャットダウンします。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/f18d8600-2986-dd7a-9a0f-810e823020c1.png)

    構成のダイアログを開きます（[詳細][kb/117287]）。**ハードウェア**のタブを開き、左側のペインから **CD/DVD** を選択します。**ソース**を**切断済み**に変更して、Fedora の Live ISO イメージを仮想マシンから「取り出し」ます。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/615bd0c0-8452-611e-45d5-bfe870e470f9.png)

8.  仮想マシンを再度起動します。**Manjaro ARM Setup** に進みます。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/068bd973-c57a-8398-0df5-163f0dba3f87.png)

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/8c3bead9-879c-02e1-0b09-26a42f0c1c14.png)

9.  セットアッププログラムの指示にしたがって、ロケール、タイムゾーン、キーボード配列、ユーザー名、ホスト名、パスワード等を設定します。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/db969279-cc09-7991-2634-62bc3af21df0.png)

    そのまま「すべて完了しました。」のところまで進めてよいですが、**まだ再起動はしないでください**。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/73dc2159-5c61-84f3-1b85-383ed30fe473.png)

10. ブートローダーの設定を更新します。

    ターミナルを開いて、以下のコマンドを実行します。パスワードを求められたら `oem` と入力してください（ユーザー名と同じです）。

    ```
    sudo grub-install --efi-directory=/boot/efi
    ```

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/ef085824-f701-86bb-6155-edec8adce229.png)

11. システムを再起動します。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/38542255-0ca1-781a-20a3-39d108920e85.png)

12. これで基本的なセットアップの手順はおしまいです。**Manjaro ARM Linux** を起動します。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/2152c63a-dee3-77a7-fbcc-b9e974e04a67.png)

    先ほど作成したアカウントでログインします。

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/6720fbf8-4caf-5787-cbdd-a2089113191d.png)

    ![スクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104202/f996521b-b6fc-17e7-5df4-9f725dea75fb.png)

    :::note
    Parallels Tools のインストール手順は x86_64 版、あるいはほかの Linux ディストリビューションの場合と基本的には同じです。詳しい説明については、Google なりほかの検索エンジンなりで、適当なページを探してください（[検索例][example query]）。
    :::

[fedoraproject.org]: https://fedoraproject.org/
[manjaro.org]: https://manjaro.org/
[GitHub Releases]: https://github.com/manjaro-arm/generic-efi-images/releases/
[kb/117287]: https://kb.parallels.com/117287
[example query]: https://www.google.com/search?q=install+parallels+tools+on+manjaro