无人值守安装
Omarchy ISO 可以在无需人工操作的情况下完成安装。安装程序若发现第二个驱动器的标签为 cidata,且其中包含配置文件,便会复制这些文件、完全跳过设置向导,并自行重启进入已完成的系统。无需制作特殊 ISO,也无需额外添加启动菜单项;未连接此类驱动器时,安装行为不会改变,仍会显示通常的设置向导。
这使 Omarchy 很适合作为一次性开发环境的基础镜像:在 Proxmox 或通过 Packer 创建虚拟机,启动后即可离开,之后通过 SSH 连接。cidata 是 cloud-init 的 NoCloud 标签,因此常见的虚拟化工具都已知道如何挂载这样的驱动器。
这些文件与安装程序自身的向导写入的文件完全相同。因此,最容易的起步方式是先完成一次交互式安装(例如在虚拟机中),再将其写入 /root 的文件复制出来:
| 文件 | 必填 | 用途 |
|---|---|---|
user_configuration.json |
是 | 磁盘、主机名、时区、键盘 |
user_credentials.json |
是 | 用户名和密码哈希 |
user_full_name.txt |
否 | Git 全名 |
user_email_address.txt |
否 | Git 邮箱 |
user_encrypt_installation.txt |
否 | 当配置包含 disk_encryption 块时为 true |
authorized_keys |
否 | SSH 公钥,每行一个 |
tailscale_authkey |
否 | 首次启动时加入 tailnet 所用的 Tailscale 认证密钥 |
可使用 openssl passwd -6 "yourpassword" 为 user_credentials.json 生成密码哈希。
你也可以不使用 user_credentials.json,而是放入一个名为 defer-provisioning 的空文件。这会执行与交互式操作相同的为其他所有者准备安装:系统安装时不包含个人信息,首次启动的人再选择键盘布局并创建自己的用户。这适合制作批量部署镜像,此时驱动器不应携带任何人的凭据。
SSH 访问
Section titled “SSH 访问”存在 authorized_keys 时,安装程序会将这些密钥配置到用户的 ~/.ssh/authorized_keys,启用 sshd,并为其开放防火墙。(标准 Omarchy 安装虽然包含 openssh,但服务默认禁用、端口默认关闭;否则无人值守安装的设备将无法远程访问。)安装程序只会添加你的密钥,不会放宽 SSH 守护进程的其他认证设置。
存在 tailscale_authkey 时,设备会在首次启动时加入你的 tailnet:Tailscale 从 ISO 内置软件包安装,防火墙允许 tailnet 接口,后台任务会在设备真正获得网络后执行加入操作,并持续重试直至成功。请使用可重复使用且已预授权的密钥,以便一个驱动器镜像可服务多台设备。
构建 cidata 驱动器
Section titled “构建 cidata 驱动器”任何具有正确标签的文件系统都可以。制作一个小型 ISO 是最简单的方式:
mkdir cidatacp user_configuration.json user_credentials.json authorized_keys cidata/genisoimage -output cidata.iso -volid cidata -joliet -rock cidata/然后将它与 Omarchy ISO 一起挂载到虚拟机。以下是完整的 Proxmox 示例:
qm create 101 --name my-omarchy \ --bios ovmf --machine q35 --cpu host --cores 4 --memory 8192 \ --ostype l26 --scsihw virtio-scsi-single \ --efidisk0 local-lvm:0,efitype=4m,pre-enrolled-keys=0 \ --scsi0 local-lvm:40,discard=on,iothread=1 \ --net0 virtio,bridge=vmbr0 --vga virtio --serial0 socket \ --ide2 local:iso/omarchy.iso,media=cdrom \ --ide3 local:iso/cidata.iso,media=cdrom \ --boot order='scsi0;ide2'
qm start 101启动顺序特意将磁盘列在最前:首次启动时,空磁盘会继续尝试从 ISO 启动;之后已安装的系统则始终从磁盘启动。
两点注意事项
Section titled “两点注意事项”加密的无人值守安装并不完全无人值守,首次启动时仍需有人输入 LUKS 密码。并且,user_configuration.json 中的 disk_encryption 块会以明文携带该密码,因此请将根据加密安装创建的 cidata 驱动器视作秘密资料并妥善保护。