> ## Content Index
> Fetch the complete content index at: https://yonglun.me/llms.txt
> Use this file to discover other available public pages before exploring further.

# 在 Apple Silicon 的 Parallels 中安装 Omarchy 4
- URL: https://yonglun.me/install-omarchy-on-parallels/
- Published: 2026-09-04T03:24:11.000Z
- Updated: 2026-09-04T03:24:10.000Z
- Description: 本文记录了在 Apple Silicon Mac 的 Parallels 中运行 Omarchy 4 的实践。由于官方安装路径主要面向 x86_64，需要先构建 Arch Linux ARM，再结合社区 ARM64 软件包与 Omarchy Provisioning 完成系统重组。整个过程也揭示了一个更值得思考的问题：所谓“不支持”，很多时候并非不能运行，而只是官方尚未提供一条经过验证的路径。
- Author: Yonglun
- Tags: AI

Omarchy 很适合这样一种 Linux 用户：喜欢 Arch Linux 的简洁和可控，又不太想从零开始花几天时间配置 Hyprland、终端、主题、快捷键和各种桌面工具。

问题是，如果你的电脑是一台 Apple Silicon Mac，事情就没那么简单了。

Omarchy 官方 ISO 面向 `x86_64`，而 M1、M2、M3、M4 Mac 是 `aarch64`。Parallels 虽然可以非常高效地虚拟化 ARM Linux，但它不能把一个 x86 Linux 发行版凭空变成 ARM。

因此，在 Apple Silicon 上运行 Omarchy 4，真正的问题并不是： 如何把 Omarchy ISO 装进 Parallels？ 而是：如何先建立一个 ARM64 Arch Linux，再把 Omarchy 4 的桌面环境和软件栈移植到它上面？ 这两者有本质区别。

---

## **一条并不存在的官方安装路径**

Omarchy 4，也就是 Quattro，相比之前的版本已经发生了相当大的变化。

它仍然建立在 Arch Linux 和 Hyprland 之上，但桌面 Shell 已经重新设计：Waybar、Walker、Mako、SwayOSD、hyprlock、hypridle、swaybg 等多个独立组件，被整合进一个基于 Quickshell 的长期运行 Shell 进程。

这让 Omarchy 4 更像一个完整的、具有明确设计语言的桌面环境，而不再只是“一套配置好的 Arch + Hyprland”。

但官方安装链仍然主要假定：

```
x86_64 PC
   ↓
Omarchy ISO
   ↓
Arch Linux
   ↓
Omarchy packages
   ↓
Hyprland + Quickshell

```

Apple Silicon + Parallels 则是：

```
Apple Silicon
      ↓
Parallels ARM VM
      ↓
Arch Linux ARM
      ↓
ARM64 Omarchy packages
      ↓
Hyprland + Quickshell

```

真正困难的地方，恰恰发生在中间两层。Omarchy 官方 ISO 是 x86\_64；官方软件源和不少安装逻辑同样默认 x86\_64。

所以不能简单执行：

```bash
curl <https://omarchy.org/install> | bash

```

事实上，在这种 ARM 环境中最好不要运行官方安装脚本，因为它会修改 Pacman 配置并指向 Omarchy 的 x86 软件源，随后 ARM 环境中的 Pacman 就会开始出现 404 等错误。

---

# **第一步：先安装一个干净的 Arch Linux ARM**

解决问题的思路其实很 Unix：

**既然 Omarchy ISO 不能启动，那就不要从 Omarchy ISO 开始。**

先建立一个正常工作的 Arch Linux ARM。

可以使用 Archboot 提供的 `aarch64` ISO，在 Parallels 创建：

```
Type: Other Linux
CPU: 4 cores
Memory: 8 GB
Disk: 128 GB
Architecture: ARM64

```

这些并不是严格的最低配置，只是一个比较舒服的实验环境。

磁盘可以采用类似：

```
/dev/sda
├── EFI       512 MB
├── SWAP        8 GB
└── ROOT       剩余空间

```

使用 GPT 分区表。

然后安装最基本的 Arch 环境：

```bash
pacstrap /mnt \
  base \
  base-devel \
  linux \
  grub \
  efibootmgr \
  networkmanager \
  git \
  terminus-font \
  nano

```

接着：

```bash
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt

```

完成正常的 Arch Linux 初始化，包括：

```
timezone
locale
hostname
root password
普通用户
sudo
NetworkManager
GRUB

```

在 ARM64 UEFI 环境中安装 GRUB：

```bash
grub-install \
  --target=arm64-efi \
  --efi-directory=/boot \
  --bootloader-id=GRUB

grub-mkconfig -o /boot/grub/grub.cfg

```

至此，我们还没有安装 Omarchy。

得到的只是：

**Arch Linux ARM running inside Parallels。**

但这恰恰是整个方案最重要的基础。

---

# **第二步：第一时间配置 SSH**

这是整个安装过程中非常值得借鉴的一个技巧。

不要试图一直在 Parallels 虚拟机窗口里敲几十行命令。ARM Arch 下 Parallels Tools 的支持并不完整，因此你可能没有习惯中的：

- macOS / VM Clipboard Sharing
- Dynamic Resolution
- 完整的桌面集成

最简单的方法是先安装 SSH：

```bash
sudo pacman -S openssh
sudo systemctl enable --now sshd

```

查看虚拟机 IP：

```bash
ip a

```

然后直接从 Mac：

```bash
ssh username@VM_IP

```

之后绝大多数安装工作都可以在 macOS Terminal、Ghostty 或其他终端中完成。

这不仅解决复制粘贴问题，也意味着你可以很方便地让 Claude、ChatGPT 或 Codex 生成命令，再直接复制到 SSH Session 中执行。

如果使用 Ghostty，还可能碰到一个小问题：

```
unknown terminal type

```

可以临时让 ARM Linux 使用更通用的 terminal definition：

```bash
export TERM=xterm-256color

```

或者写进：

```bash
~/.bashrc

```

---

# **第三个问题才是真正的坑：Pacman**

安装过程最容易让人误判的问题，不是 Hyprland，也不是 Parallels，而是：

**Pacman repository architecture。**

Arch Linux ARM 使用自己的 repository：

```
mirror.archlinuxarm.org

```

而 Omarchy 的安装脚本默认认为当前系统是 x86\_64，因此会把 `/etc/pacman.conf` 和 mirrorlist 修改成 Omarchy 自己的 x86 配置。结果通常就是：

```
404
failed retrieving file
database not found

```

而且这个问题并不是修一次就结束。Omarchy 自己的一些 Setup / Update 脚本也可能再次把配置恢复成 x86 模板。因此必须始终记住：

```
Omarchy configuration
        ↓
assumes x86_64
        ↓
may overwrite pacman.conf
        ↓
ARM repositories disappear
        ↓
pacman fails

```

Arch Linux ARM 的 mirrorlist 应保持类似：

```bash
Server = <http://mirror.archlinuxarm.org/$arch/$repo>

```

这里还有一个很容易忽略的区别。

Arch Linux ARM 使用：

```
$arch/$repo

```

而不是普通 Arch 镜像中经常看到的：

```
$repo/$arch

```

一个变量顺序就足以让你浪费很长时间排查。

---

# **Omarchy 4 的 ARM 包从哪里来？**

这里是整个方案最有意思的部分。

社区项目 `omarchy-mx-mac` 已经在尝试解决 Apple Silicon 上运行 Omarchy 的问题，其主要目标是：

```
Apple Silicon
      ↓
Asahi Linux
      ↓
Omarchy

```

也就是直接在 Mac 裸机上运行，而不是运行在 Parallels VM 中。但其中很多 Omarchy 软件包本身并不依赖 Asahi 硬件。

例如：

```
omarchy-keyring
omarchy-settings-dev
omarchy-dev
omarchy-nvim
quickshell-git
ttf-jetbrains-mono-nerd-basic

```

这些包要么是：

```
aarch64

```

要么与体系结构无关。于是就出现了一条很巧妙的路径：

```
omarchy-mx-mac
      │
      ├── ARM64 Omarchy packages
      │
      └── installation logic
                 ↓
          借用这些成果
                 ↓
      Arch Linux ARM VM
                 ↓
            Parallels

```

换句话说，我们并不是在 Parallels 中运行 Asahi Linux。只是借用了社区为 Asahi / Apple Silicon 构建出来的 **ARM64 Omarchy 软件包**。这是整个移植方案的核心。

---

# **不要把 Asahi 的硬件依赖一起装进去**

社区 ARM bundle 中包含 Omarchy 本身需要的软件列表，但其中一些依赖是专门针对 Asahi Linux 的。例如：

```
linux-asahi
linux-asahi-headers
asahi-fwextract
asahi-desktop-meta

```

Parallels VM 根本不需要这些东西。因此安装逻辑应该是：

```
Omarchy dependencies
        ↓
过滤 Asahi hardware packages
        ↓
检查 Arch Linux ARM repository
        ↓
安装能够直接获得的 ARM packages
        ↓
单独处理缺失的软件

```

原始实践中，大部分依赖都能从 Arch Linux ARM 获得。真正需要额外处理的只有少量软件，例如：

```
aether
cliamp
localsend
mise
python-terminaltexteffects
ttf-ia-writer
ufw-docker
xdg-terminal-exec
yaru-icon-theme
yay

```

其中不少可以通过 PKGBUILD 在 ARM 环境直接构建。这也是 Arch Linux 生态非常强大的地方：

\*\*没有 binary package，并不意味着软件不能运行。\*\*只要源代码和 PKGBUILD 本身没有强依赖 x86，很多软件都可以直接：

```bash
makepkg -si

```

重新构建为 ARM64。

---

# **安装 Omarchy，本质上是在重放它的 Provisioning**

到了这里，就会发现 Omarchy 一个很有意思的设计特点。Omarchy 并不是一个传统意义上“所有东西都封装在 ISO 中”的 Linux Distribution。

它很大程度上是一套：

```
Arch Linux
+
Packages
+
Configuration
+
Provisioning Scripts
+
Migration Scripts

```

因此只要能够：

1. 安装正确的软件包；
2. 满足依赖；
3. 重放系统 Provisioning；
4. 重放用户 Provisioning；

理论上就能在一个非标准 Arch 环境中“生成”出 Omarchy。

核心流程类似：

```bash
omarchy-apply-system

```

以及：

```bash
omarchy-provision-user

```

这也是为什么这种看似“不受支持”的移植最终能够成功。我们并不是复制一个 Omarchy 系统。

而是在另一个 Arch Linux 上：**重新执行 Omarchy 用来构造自己的过程。**

---

# **Provisioning 失败时，不要只看终端**

Omarchy 的 Setup 脚本还有一个很容易踩坑的特点：终端上可能看不到多少信息。

真正有用的日志在：

```bash
/var/log/omarchy-install.log

```

如果 Provisioning 中途停止，应首先：

```bash
less /var/log/omarchy-install.log

```

找到：

```
Failed:

```

再判断这个失败到底属于：

```
真正的软件依赖问题

```

还是：

```
VM 中根本不存在的硬件功能

```

例如 Snapper 配置就是典型例子。如果虚拟机根文件系统不是 Btrfs，而是 ext4：

```
snapper.sh

```

自然可能失败。

类似地，某些脚本可能：

- 假设存在 Asahi kernel；
- 下载 x86 Node.js；
- 假设存在某个 x86-only package；
- 配置裸机环境才需要的功能。

这些并不意味着 Omarchy 无法运行。

只是说明：**Omarchy 的 Provisioning 对运行环境存在一些隐含假设。**

VM 移植的工作，就是逐个识别这些假设。

---

# **第一次进入桌面还有两个坑**

即使安装完成，也不一定马上看到漂亮的 Omarchy Desktop。

第一个问题可能出现在登录界面。

因为这个用户是在安装 Omarchy **之前**创建的，而 Omarchy 官方 ISO 安装过程中通常会预先配置用户名。手工安装没有经过这个步骤，因此 Login Manager 可能拿不到用户名。一种简单解决办法是启用 Autologin。

第二个问题更加隐蔽。

第一次进入桌面时，你可能看到的只是：

**Plain Hyprland。**

甚至还有 Hyprland 默认的黄色 Warning Bar。

原因同样与安装顺序有关。

Omarchy 的用户配置通过：`/etc/skel` 提供。

但 Linux 的 `/etc/skel` 只会在**创建新用户时**复制到：/home/username

我们的用户却是在 Omarchy 安装之前创建的。

因此这些配置自然不会出现。

重新安装 Omarchy 用户配置：

```bash
omarchy-reinstall-configs

```

再重新进入 Session，真正的 Omarchy Desktop 才会出现。

这个问题其实很好地说明了 Linux 中 `/etc/skel` 的工作方式。

---

# **分辨率问题**

Parallels Tools 在这个组合下并不能提供完整的动态分辨率支持。

虚拟机可能默认只有：1024 × 768

一个实用的 workaround 是直接通过 Kernel Video Mode 指定虚拟显示器分辨率。

例如：video=Virtual-1:2560x1600@60 加入：/etc/default/grub 中的：GRUB\_CMDLINE\_LINUX\_DEFAULT

然后重新生成：

```bash
sudo grub-mkconfig -o /boot/grub/grub.cfg

```

重启后即可获得适合 Mac 屏幕的分辨率。

不如 Parallels Desktop 中的动态 Retina Resize 优雅，但至少 Omarchy 已经真正可用了。

---

# **最终得到的是什么？**

整个架构可以概括成：

```
┌─────────────────────────────┐
│          macOS              │
│      Apple Silicon          │
└──────────────┬──────────────┘
               │
       Apple Virtualization
               │
┌──────────────▼──────────────┐
│      Parallels Desktop      │
│        ARM64 VM             │
└──────────────┬──────────────┘
               │
┌──────────────▼──────────────┐
│      Arch Linux ARM         │
│          aarch64            │
└──────────────┬──────────────┘
               │
│  ARM Omarchy packages
│  + PKGBUILD
│  + provisioning
│
┌──────────────▼──────────────┐
│       Omarchy 4             │
│                             │
│  Hyprland                   │
│  Quickshell                 │
│  Omarchy configs            │
│  Omarchy applications       │
└─────────────────────────────┘

```

最终得到的并不是模拟运行的 x86 Linux。

从：

```
Arch Linux

```

到：

```
Hyprland
Quickshell
Omarchy

```

整个 Linux 用户空间基本都是：

```
aarch64

```

原生 ARM64。

这也是为什么它在 Apple Silicon 上能够拥有相当不错的性能。

---

# **但它仍然不是一个“正常”的 Omarchy**

这点必须说清楚。

能够运行：

**不等于得到官方支持。**

目前这套环境仍然存在几个明显限制。

首先是升级。

`omarchy update` 可能重新写入 x86 Pacman 配置，因此升级之后可能需要再次恢复 Arch Linux ARM repository。

这意味着：

```
Update
   ↓
Omarchy restores x86 config
   ↓
Pacman breaks
   ↓
restore ARM config

```

在这个问题被上游正式解决之前，这仍然是一套需要维护者意识的系统。

其次是 Parallels Integration。

在这种 ARM Arch 环境中，不要期待和 Ubuntu ARM VM 一样完整的：

```
Clipboard Sharing
Dynamic Resolution
Multi-monitor
Desktop Integration

```

SSH 仍然是 Host 与 Guest 之间最可靠的管理通道。

最后是 x86-only applications。

例如某些 Omarchy Application Catalog 中的软件只有 x86\_64 binary。

这种软件并不会因为 Omarchy Desktop 成功启动，就自动变成 ARM64。

---

# **真正有意思的不是“Omarchy 跑起来了”**

折腾完这一圈，我觉得最有价值的其实不是：

Omarchy 4 可以在 M 系列 Mac 的 Parallels 中运行。

而是这次安装揭示了现代 Linux Distribution 的另一种形态。

传统 Linux Distribution 很容易让人想到：

```
ISO
→ Installer
→ Filesystem
→ Desktop

```

但 Omarchy 更接近：

```
Arch Linux
        +
Package Set
        +
Configuration
        +
Provisioning
        +
Migration
        =
Omarchy

```

ISO 只是这个过程的一种入口。

一旦理解这一点，“Omarchy 不支持 ARM64 VM”这句话的含义就发生了变化。

它并不意味着：

```
Omarchy fundamentally cannot run on ARM64

```

更多意味着：

```
The official installation path
does not support this environment yet.

```

而 Linux 最有趣的地方，恰恰就在这个 **yet**。

社区已经为 Apple Silicon / Asahi Linux 构建了 ARM64 Omarchy packages；Arch Linux ARM 提供了完整的 ARM 用户空间；Parallels 提供了高性能 ARM 虚拟化；Omarchy 自己又把大量系统构建逻辑保存在可以重新执行的 Provisioning 脚本中。

把这些原本并不是为彼此设计的东西连接起来：

```
Parallels
     +
Arch Linux ARM
     +
Omarchy ARM packages
     +
PKGBUILD
     +
Provisioning

```

一个官方并不存在的系统，就这样出现了。

这大概也是折腾 Linux 最有趣的地方：

**很多时候，“不支持”并不是“不可能”。它只是意味着，还没有人为你把那条路铺好。**