Installing Manjaro on Parallels with Apple Silicon
Tags: manjaro, parallels, applesilicon
Published: 2024-01-25 08:30:32

I recently purchased a Mac Mini 2023 (M2 chip) and tried to run [Manjaro](https://manjaro.org/) using [Parallels](https://parallels.com/), but realized that installing Manjaro ARM was not as straightforward as Manjaro (x86_64). I discovered a [great blog post][appelgriebsch] by Andreas Gerlach, through a [Japanese article][qiita-hann-solo], but their approach used [UTM](https://mac.getutm.app/) instead of Parallels and had a limitation around kernel upgrades. I found no document on the internet explained how to install Manjaro ARM on Parallels, so I sorted out the installation steps on my own.

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


## Before You Start

Manjaro ARM looks to be tuned for low-end computers, such as Pinebook and Raspberry Pi. It comes with less packages initially installed and some settings sub-optimal for desktop use. You should expect to install additional packages and tweak config to set up Manjaro ARM as a desktop. This is particularly true with the GNOME edition: Firefox is not installed by default; windows are maximized without an unmaximize button; Light color mode doesn't seem to work; possibly other caveats. I'd personally recommend you avoid the GNOME edition.


## Overview

There are two factors that make the installation tricky:

- Manjaro ARM is provided as raw disk images, not installer ISO images.
- The Setup Program doesn't seem to update the bootloader.

The first point means that we have to &ldquo;install&rdquo; the image to the target disk by ourselves. [Manjaro Wiki] expects users to write the image to an SD card, presumably using another device (PC or Mac), then insert it to the target device. We take essentially the same steps but slightly cleverer: we run Live Linux on the target virtual machine to write the Manjaro image to its hard disk directly, instead of setting up another virtual machine serving as &ldquo;PC.&rdquo;

The second point is rather a trap. It's puzzling to see that the virtual machine fails to boot after a successful initial setup. This is less a problem once we are aware; we can update the bootloader with a relatively simple command.

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


## Step-by-step Instructions

1.  Obtain a Live ISO of Fedora Workstation.

    Open [fedoraproject.org] on your browser. Scroll down the page to find the editions, then click the **Download Now** link of **Workstation**.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eezarypldp14p4baltvd.png)

    Download the **Live ISO** for **ARM® aarch64 systems**.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oa355lfc3tu3gxaohwbt.png)

2.  Create a virtual machine as if you were to install Fedora from the Live ISO.

    Start the Create New wizard. Select **Install Windows, Linux, or macOS from an image file**.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/12zrm66y4jwghy1oipz7.png)

    Select the ISO image file downloaded in the previous step.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mnonengychkdv92oix0q.png)

    Change the name to something that makes sense to you. Optionally you can customize settings before installation, e.g. to set the guest OS type to **Other Linux** to change the VM icon from the Fedora logo.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lhpt78dyeoau7sgvvwwz.png)

3.  Start Fedora Workstation Live.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/haaaerotvgyp0mmezcup.png)

4.  Click **Not Now** to close the installer. We aren't going to install Fedora.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xuiwi79m13ftksr62vw0.png)

5.  Obtain the download URL of a Manjaro ARM Linux image.

    Click the Activities button at the upper-left corner of the screen, then click **Firefox** in the Dock.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lc1b6m3kakg4otehcgl7.png)

    Open [manjaro.org] from the address bar, then navigate to the **Download** page. Choose **ARM** for the architecture and **Generic EFI** for the device option.

    > **Warning:** Make sure to choose Generic EFI. Generic (non-EFI) doesn't work with this installation method.

    > **Note:** Alternatively you can pick an image from [GitHub Releases], where you can also find older releases and dev builds.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d49avmlxldul39ixzu8u.png)

    Click **Download** of the edition of your choice, then _right_ click the **Image** button and click **Copy Link**.

    > **Warning:** Do _not_ download the image using browser. It will fail for out of disk space or, in the worst case, hang the system. Remember that we are using Live Linux and that the local storage exists on memory.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cnj7ro7r1s2bw06p0679.png)

6.  Download the image and write it to the VM's hard disk.

    Click the Activities button, then click **Show Apps** (the icon with nine dots). Find **Terminal** from the app list and click it.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cpk9yyrnf3t8eesgblnd.png)

    Run the command below to download the image and write it to the hard disk on the fly. Substitute `<PASTE_LINK_HERE>` with the link you copied in the previous step.

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

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ibg5caxla8390ytfvbrg.png)

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cyc4e1ely2k6gmb4u3n1.png)

7.  Now the image has been installed to the VM's hard disk; we don't need Fedora anymore. Click the power icon at the upper-right corner of the screen. Then click the power icon inside the popup and click **Power off...** to shut down the virtual machine.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rsopj355psvz5ryj4t6z.png)

    Open the configuration dialog ([details][kb/117287]). Open the **Hardware** tab, choose **CD/DVD** on the left pane, and change **Source** to **Disconnected**.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ea5i8epa9y9p31ivcc21.png)

8.  Start the virtual machine again. Proceed to **Manjaro ARM Setup**.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/88mdat3r130puj9pkkj9.png)

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jlhzk793f5gdzkx9w4p9.png)

9.  Go over the Setup Program process to set your locale, timezone, keyboard layout, username, hostname, and password(s) …

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1m576vtes2a2egom9h0a.png)

    … up to the **All done** screen. _DO NOT RESTART_ your system yet!

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9wkjv8qld01j0n6wdg7y.png)

10. Update the bootloader config.

    Open a terminal and run the command below. When asked for a password, type `oem` (same as the username).

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

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vff39h0xzmz24g52g7pk.png)

11. It's safe to restart the system now.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/an4q2bnkosrccn1ac18j.png)

12. Congratulations, your system is ready for use! Start **Manjaro ARM Linux**.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qzy6m4cezwqb1tf4nfn2.png)

    Log in to the system with your account.

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6mlsfu3yrp3ru2qv2dm6.png)

    ![screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bk99yjhuyqwg7j64ppq8.png)

    > **Note:** The installation of Parallels Tools is not different from that on x86_64, or other Linux distributions in general. If you want detailed instructions, try Google or any other search engine ([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