故障排查
故障排查
确认主机和架构
uname -m
hostname
nixos-version
当前 HX90 主机的 flake 名是 hx90;ARM64 QEMU 主机是 aarch64。
HX90 的 hostname 也必须是 hx90,这样不带 #hx90 的 omarchy update 才能
自动选择 nixosConfigurations.hx90。
只检查配置
nix flake check --no-build
nixos-rebuild build --flake /
登录界面没有 Omarchy
ls /run/current-system/sw/share/wayland-sessions/
systemctl status display-manager
黑屏或 QuickShell 没启动
journalctl --user -b --no-pager | rg -i 'omarchy|quickshell|hyprland|qml'
nix run github:olafkfreund/nixarchy#verify
更新失败
先查看锁文件变化,不要连续更新多个输入:
git diff -- flake.lock
git diff
如果已切换到坏的 generation,使用 sudo nixos-rebuild switch --rollback 或从 systemd-boot 选择上一代。
如果错误指向 /etc/nixos,说明启动命令的旧会话仍携带错误变量:
echo "$NIXARCHY_FLAKE"
NIXARCHY_FLAKE="$HOME/nixos-config" omarchy update
正确持久配置位于 modules/desktop.nix 的 programs.nixarchy.flake。不要修改
/etc/nixos 所有权,也不要直接编辑 /nix/store 中的更新脚本。
命令行工具报 bad interpreter: /bin/bash 或 mise 错误
在执行 omarchy update 后,Omarchy 可能会自动调用 omarchy-mise-install 为各类 agent 与 CLI(如 codex、claude、gemini、omp、opencode 等)在 ~/.local/bin/ 生成 wrapper 脚本。
1. bad interpreter: /bin/bash: 没有那个文件或目录
- 原因:Omarchy 生成的 wrapper 脚本硬编码了
#!/bin/bash作为 Shebang。NixOS 默认仅有/bin/sh与/usr/bin/env,不存在原生的/bin/bash。 - 配置修复:
modules/core.nix已配置system.activationScripts.binbash:
该设置保证在所有 NixOS 主机与后续 rebuild 中system.activationScripts.binbash = '' mkdir -m 0755 -p /bin ln -sfn "${pkgs.bashInteractive}/bin/bash" /bin/bash '';/bin/bash始终常驻。 - 用户空间修复:也可以批量将
~/.local/bin/*脚本的 Shebang 替换为通用的#!/usr/bin/env bash。
2. Mise 报错: Invalid date or duration: 0
- 原因:Omarchy wrapper 脚本中包含了
export MISE_MINIMUM_RELEASE_AGE=0,而特定版本的 Mise 要求时长格式(如0s、0d),裸写0会导致解析失败退出。 - 修复方法:将脚本中的
export MISE_MINIMUM_RELEASE_AGE=0改为export MISE_MINIMUM_RELEASE_AGE=0s:sed -i 's/export MISE_MINIMUM_RELEASE_AGE=0$/export MISE_MINIMUM_RELEASE_AGE=0s/' ~/.local/bin/*
ARM64 注意事项
Nixarchy 提供 aarch64-linux 包和检查,但实际图形输出仍取决于 QEMU 图形设备;VM 检查通过不代表 GPU 加速、蓝牙或音频一定正常。