我把 Home Assistant 装进了爱快的 KVM 虚拟机里,想用它统一管理家里的小米设备、再接个语音助手。这一路踩的坑挺有代表性——从"网关到底填谁",到文件系统反复损坏进救援模式,再到 HACS、小米集成、大模型全接上。这篇把过程和能复用的命令都写下来,你在爱快上跑 HA 的话可以直接对着做。
先给结论:爱快虚拟机跑 HAOS 属于"能跑但不稳",底层容易反复损坏文件系统,进救援模式。短期验证没问题,长期使用建议迁到 PVE(Proxmox VE)或实体工控机。本文也把这些坑标出来了。

一、环境长这样
我这套是爱快 iKuai 3.7.25 x64 免费版,它本身是路由,但这里更多被当成 KVM 虚拟化平台用。关键几个地址:
| 角色 | 地址 / 说明 |
|---|---|
| 爱快 LAN 口 IP | 192.168.2.253 |
| 主路由(网关,负责 VLAN 路由 + 拨号) | 192.168.2.254 |
| HA 虚拟机静态 IP | 192.168.2.153 |
| DNS | 223.5.5.5 |
这里最容易翻车的一点:HA 虚拟机的网关必须填主路由 192.168.2.254,而不是爱快的 192.168.2.253。因为主路由才负责 VLAN 之间的路由,能访问到所有网段的设备;爱快这边能拨号上网,但它访问不到别的 VLAN 设备。我一开始填成 253,结果 HA 起不来网络,排查半天才发现是网关填错了。
二、镜像怎么选
我试过两个版本,差别其实挺大:
| 官方 HAOS | 冬瓜 HAOS | |
|---|---|---|
| 安装方式 | 直接挂 qcow2 镜像启动 | WinPE 安装盘 + 写入硬盘 |
| 下载 | 官方 GitHub release 的 qcow2 | 冬瓜官网的 iso(预装 HACS、小米等) |
| 适合 | 能直连 GitHub 的环境 | 国内网络、想要开箱即用的集成 |
两个都要注意:官方镜像下下来是 .xz 压缩的 qcow2,必须先解压再传到爱快,爱快文件管理认不出压缩包。冬瓜版是 ISO,走 PE 启动写入。
三、爱快里建虚拟机
路径是「高级应用 → 虚拟机 → 添加」。几个配置项我会反复强调,因为这里就是坑最集中的地方:
- 虚拟机名称必须纯英文、不能有空格。我填成 "Home Assistant" 直接报错
Invalid characters,改成HA才过。 - 网卡型号选 e1000e,别选 VirtIO。VirtIO 会导致 HAOS 内部认不到网卡,
ip addr里根本没有那块网卡。 - 必须勾选 UEFI 启动,不勾引导不了。
- 磁盘:官方版用「引用磁盘」挂已上传的 qcow2;冬瓜版用「新建设备」给一块约 32GB 的空白盘(半虚拟化模式不要勾)。
- CPU 2 核、内存 4096MB、开硬件加速、勾开机自启、开 VNC 外部访问,方便远程看安装过程。
四、安装
- 官方版:上传解压后的 qcow2 → 建虚拟机(磁盘引用该 qcow2,光驱留空,勾 UEFI)→ 启动看 VNC → 等到出现
System is ready→ 浏览器访问http://192.168.2.153:8123。 - 冬瓜版:上传 ISO 挂到光驱 → 新建 32GB 盘 → 启动进 WinPE → 双击「安装冬瓜HAOS到硬盘」脚本 → 选版本写入 → 等 3-6 分钟完成自动关机。
冬瓜版有个容易忽略的坑:安装完关机后,一定要把光驱里的 ISO 路径清掉,不然下次开机又会进 PE 而不是进系统。
五、配静态 IP(VNC 命令行)
HAOS 起来后先用 VNC 进命令行,把 IP 固定下来。连接名因版本而异——新版(18.x)叫 Wired connection 1,旧版叫 Supervisor enp0s3。先用这个查真实名字:
nmcli connection show
我这套是 Wired connection 1,设置静态 IP:
nmcli con mod "Wired connection 1" \
ipv4.addresses 192.168.2.153/24 \
ipv4.gateway 192.168.2.254 \
ipv4.dns 223.5.5.5 \
ipv4.method manual
nmcli con up "Wired connection 1"
再验证:
ip addr show enp0s3
看到 inet 192.168.2.153/24 就成了。我在这一步栽过两个小坑:一是连接名对不上,报 unknown connection 'Supervisor enp0s3'——用上面那句 nmcli connection show 查实际名字就行;二是我手滑把末尾的 manual 打成了 manual1,直接报参数非法,改回来就好。
六、救援模式(这段最重要)
爱快虚拟机最让我头疼的就是它底层不稳,HAOS 的文件系统会反复损坏,开机卡死在 Reached target Rescue Mode,VNC 里提示 You are in rescue mode...,浏览器自然打不开。这时候得手动救:
- 按回车进
#提示符,先lsblk看分区。 - 典型 HAOS 分区:
sda1(32M,引导) /sda3(512M,根) /sda5(512M,systemd) /sda8(约 38G,数据)。 - 逐个修复:
fsck -y /dev/sda1、fsck -y /dev/sda3、fsck -y /dev/sda8。其中sda8如果提示is mounted属正常(数据分区已被系统挂着),不用管。 - 修完
reboot。
另外 HAOS 有 A/B 双系统槽,主系统坏了,开机菜单里选第二个选项能从备用槽先起来,但那是临时方案,一定要马上做完整备份(设置 → 系统 → 备份,勾"包含所有加载项和配置",下载备份文件)。
根因是爱快虚拟机本身稳定性不足,不是 HA 的锅。所以我的长期方案是迁到 PVE——社区里跑过的都知道,PVE + 爱快 + HAOS 的组合比"爱快内直接跑 HAOS"稳得多。本文就当是"临时验证"的完整记录。
七、初始化卡住 & 加载项起不来
有的情况是网络没通,Supervisor 启动超时,VNC 显示 Supervisor is taking longer than expected。先确认网卡是 e1000e、IP 拿到了,然后重启相关服务:
systemctl restart hassos-supervisor.service
systemctl restart home-assistant.service
或在 ha 提示符下 ha core restart。如果是某个加载项启动失败(弹窗 issue_addon_boot_fail),先点"忽略",再进「设置 → 应用」把那个"已停止"的手动启动,多半是 API Key 没填或端口冲突。
八、装 HACS
HAOS 完整版自带应用商店,但要装社区集成还得 HACS。国内网络我建议走极速版,在 HA 的终端里一行命令:
wget -O - https://get.hacs.vip | bash -
然后走一遍设备授权:加 HACS 集成时会弹 Waiting for device activation,浏览器打开 github.com/login/device,输入弹窗里的 8 位码(形如 5649-2AE2),授权完重启,左侧菜单就多了 HACS。如果某些自定义仓库报 Repository structure ... not compliant,那是仓库不符合规范,只能手动装——把 zip 解开的 hacs 文件夹放进 config/custom_components/ 再重启。
提醒一句:config/ 目录在虚拟磁盘内部,爱快的文件管理是摸不到的,要传文件得走 Samba 或 SSH。
九、接小米
进「设置 → 设备与服务 → 添加集成」,搜 Xiaomi Home(小米官方,稳)或 Xiaomi Miot(第三方,兼容蓝牙/红外更多设备)。扫码登录后最容易遇到的是回调跳到一个打不开的地址(显示"拒绝连接")。
解决很简单:把浏览器地址栏里那个本地域名手动改成 HA 的真实 IP 192.168.2.153;或者在电脑 hosts 里加一行把这个本地域名指到 192.168.2.153。
十、接大模型(小智 AI Server)
在加载项商店搜"小智",我装的是小智 AI Server 极速版。这里说下它的类型限制:LLM 只认 DeepSeekLLM、DoubaoLLM、ChatGLMVLLM 这几种,不支持 OpenAI 类型。所以如果你用的是任何 OpenAI 兼容接口的服务(包括 Agnes 这类),就把 llm.type 填成 DeepSeekLLM,再用 base_url 指向对方的兼容端点即可。
一份我能跑的示意配置(密钥都换成你自己的,别照抄):
llm.type: DeepSeekLLM # OpenAI 兼容也填这个类型
model_name: <你的模型名>
llm.api_key: <你的 API Key>
base_url: <你的兼容端点,如 https://api.xxx.com/v1>
tts.type: EdgeTTS
asr.type: FunASR
vllm.type: ChatGLMVLLM
intent.type: function_call
log_level: INFO
timezone: Asia/Shanghai
几个我踩过的报错,给你省点时间:
| 报错 | 原因 / 解决 |
|---|---|
value must be one of [ChatGLMVLLM, DeepSeekLLM...] | llm.type 不支持 OpenAI,改成 DeepSeekLLM |
缺少必要的api_key | Key 没填,填上有效 Key 再保存重启 |
看日志出现"启动成功,可以开始对话了"就成了。这里的模型我拿 Agnes 举个例子(任何 OpenAI 兼容接口都一样填),重点其实是那个 llm.type 的坑——不支持 OpenAI 原生类型,得伪装成它支持的其中一种。
十一、小爱音箱(MiGPT)
想把小爱音箱当 AI 音箱用,可以接 MiGPT。先说兼容:小爱音箱 Play 增强版(L05C)能跑,但不支持连续对话,每问一次都得重新喊"小爱同学",这是型号限制,不是我配置问题。关键配置两个文件:
扬声器设置(.migpt.js)里,did 必须和米家 App 里的设备名一字不差,而且 streamResponse 要关掉,否则回答会说一半就停:
speaker: {
did: '小爱音箱Play增强版',
ttsCommand: [5, 3],
wakeUpCommand: [5, 1],
streamResponse: false
}
环境变量(.env)指向你的模型接口:
OPENAI_API_KEY=<你的 API Key>
OPENAI_MODEL=<你的模型名>
OPENAI_BASE_URL=<你的兼容端点>
还有个网络前提:MiGPT 得和音箱在同一个局域网才能直接控制。如果 HA 在公司、音箱在家里,要么家里设备走 VPN 连公司,要么把 MiGPT 部署在家里去够公司的 HA。真要做端口映射,千万别把 8123 直接暴露到公网,换个高位端口(比如 49123)映射,安全点。
十二、我的最终建议
跑下来,我把三种方案排个序:
| 方案 | 稳定性 | 适合 |
|---|---|---|
| 爱快虚拟机 + HAOS | 偏低,易进救援模式 | 临时验证,别长期 |
| PVE + 爱快 + HAOS | 高(社区推荐) | 长期使用 |
| 实体工控机 + HAOS | 最高 | 稳定生产环境 |
爱快虚拟机这套,我现在就当"能跑"的过渡方案用着,但一有稳定备份就准备迁 PVE。你要也是爱快用户,务必先把完整备份做出来,进了救援模式才知道这步多值。
常见问题
爱快 iKuai 能当 KVM 虚拟化用吗?
3.7.25 x64 免费版本身是路由, 但更多被当成 KVM 虚拟化平台用, 这是本例的用法。
爱快虚拟机最头疼的是什么?
底层不稳, HAOS 文件系统会反复损坏, 开机卡在 Reached target Rescue Mode, 浏览器打不开。
小爱音箱当 AI 音箱能连续对话吗?
小爱音箱 Play 增强版 L05C 能跑但不支持连续对话, 每问一次都得重新喊, 这是型号限制不是配置问题。