Omarchy Windows VM(NixOS hx90)
docs/windows-vm 的项目说明。先看下方摘要,再按需展开具体专题。展开完整 README 原文
Omarchy Windows VM(NixOS hx90)
当前状态
Windows VM 安装器原本在写入配置阶段失败,错误是:
omarchy-windows-vm: refusing to run a non-root-owned command as root
❌ Failed to write the Windows VM configuration.
这不是实际的文件所有权错误,而是上游脚本把可信提权目标硬编码为
/usr/bin/omarchy-windows-vm。NixOS 中该路径不存在;程序实际位于
/nix/store,并通过 /run/current-system/sw/bin 暴露。
本仓库通过 modules/packages/nixarchy-omarchy.nix 在 Nix 包构建阶段补丁化
Omarchy,不修改上游仓库源码。补丁包含:
- 使用当前脚本的 canonical Nix store 路径作为
pkexec目标,并保留 root 所有权和不可写检查; - 允许 Nix store 自身合法的
root: nixbld、sticky1775边界,同时不放宽 store 内具体路径的所有权检查; - root 侧 PATH 加入 NixOS 的
/run/current-system/sw/bin和/run/wrappers/bin; - 将旧式
docker-compose调用改为 NixOS 提供的docker compose; - 将
timeout和find改为 NixOS system profile 中的绝对路径。
此外,modules/desktop.nix 配置了一条精确的 Polkit 规则:只允许本地登录的
tetsuya 用户无密码调用 root-owned 的
*/share/omarchy/bin/omarchy-windows-vm。它不会放开其他 pkexec 程序;这是因为
上游 helper 的 root-owned Compose 写入阶段固定使用 pkexec。
系统层和 Home Manager 层都引用同一个包覆盖,避免 CLI、菜单和用户服务使用 不同版本的 Omarchy。
应用配置
在 ~/nixos-config 中执行:
nix flake check --no-build
nixos-rebuild build --flake .#hx90
sudo nixos-rebuild switch --flake .#hx90
切换成功后重新打开安装器:
omarchy-windows-vm install
也可以从 Omarchy 菜单中的 Windows 项目启动。安装器会写入 root-owned 的
/var/lib/omarchy/windows/docker-compose.yml,用户自己的凭据保存在:
~/.config/windows/credentials
该文件应保持 0600 权限,不要提交到 Git。
安装后的常用命令
omarchy-windows-vm status
omarchy-windows-vm launch
omarchy-windows-vm stop
本次实际验证使用了安装器默认配置:4 GiB RAM、2 个 CPU 核心、64 GiB 虚拟磁盘、
Windows 用户名 docker。安装器已成功完成提权、写入 Compose 并启动容器;随后
Dockur 开始下载约 8.47 GiB 的 Windows 11 25H2 ISO。
首次安装会下载 Windows 镜像,可能需要较长时间,并会打开
http://127.0.0.1:8006 查看安装进度。
当前主机的 /home 位于 Btrfs,Dockur 会显示 Btrfs storage warning。这是上游
对 Windows Setup 的兼容性提示,不是容器启动失败;本机容器启动、KVM、3389 和
8006 监听均已验证正常。
验证清单
安装前先确认:
test -e /dev/kvm
systemctl is-active docker
systemctl is-active polkit
docker compose version
df -h "$HOME"
安装器通过配置写入阶段后,再确认:
sudo stat -c '%U:%G %a %n' /var/lib/omarchy/windows/docker-compose.yml
stat -c '%U:%G %a %n' ~/.config/windows/credentials
omarchy-windows-vm status
已知的无关日志
本次诊断中系统没有 failed systemd unit,Docker 和 Polkit 都是 active,磁盘和
内存也充足。启动日志中的 Home Manager 一次失败和 D-Bus 重复服务名与 Windows
VM 写配置失败不是同一条故障链。此次 Home Manager 失败是既有
~/.gtkrc-2.0.hm-backup 与默认备份后缀冲突;配置已改用
hm-backup-nixos,原文件没有删除或覆盖。