外观
Home Assistant OS:家庭自动化中枢
Home Assistant(下文简称 HA)是开源的家庭自动化平台,能接入几乎所有智能家居品牌和协议。它有好几种安装形态,Home Assistant OS(HAOS)是官方推荐、功能最完整的一种:整机镜像,自带 Supervisor,能直接在界面里安装 Add-on(比如 Zigbee2MQTT、Frigate、各种数据库)。
在 PVE 上跑 HAOS 虚拟机,比买一块树莓派专机更灵活:能快照、能调资源、坏了能立刻回滚。这篇讲怎么用官方 qcow2 镜像把它装起来。
适合谁
| 安装方式 | 合不合适 |
|---|---|
| Home Assistant OS(本文) | 想要完整 Supervisor 体验、能装 Add-on、官方文档和社区教程默认针对它写 |
| Home Assistant Container | 只想跑核心,用自己的 Docker 管理,见家庭实验室导读 |
| Home Assistant Core(纯 Python) | 想深度定制运行环境,牺牲 Add-on 生态 |
如果你需要直通 USB 设备(Zigbee/Z-Wave 协调器),先确认这类 USB 直通不需要 IOMMU(USB 直通比 PCI 直通简单得多),具体方法见硬件直通。
资源规划
以 Home Assistant 官方安装文档给出的最低要求为基准:
| 项 | 官方最低要求 | 本文建议 | 说明 |
|---|---|---|---|
| vCPU | 2 | 2 | Supervisor 和 Add-on 一起跑,给够 2 核体验明显更顺 |
| 内存 | 2 GB | 4 GB | 装几个 Add-on(尤其是带数据库、人脸识别类的)之后 2 GB 会很紧张 |
| 磁盘 | 官方未给出固定值 | 32 GB 起 | 镜像本身不大,但 Add-on、日志和数据库会持续增长 |
| 网卡 | 1 | 1,VirtIO | 需要能访问局域网内的智能设备,不建议单独隔离在无法广播/组播的网段 |
内存不要开气球驱动
HAOS 内部有自己的存储管理(长期统计数据库等),给固定内存,不要开 ballooning,避免和它的内部机制打架。
获取官方 qcow2 镜像
以 Home Assistant 官方安装文档(或对应的其他安装方式页面)为准,选择 KVM/Proxmox 对应的镜像入口。官方镜像文件由 home-assistant/operating-system 项目在 GitHub Releases 发布,格式为 haos_ova-<版本号>.qcow2.xz。
不要抄教程里写死的版本号
HAOS 更新较快,教程和本文里出现的版本号可能已经过时。打开官方页面确认当前版本,链接和文件名会自动对应到最新发布。
在宿主机 shell下载并解压(下面的 <地址> 替换成官方页面给出的当前下载链接):
sh
wget <地址>
unxz haos_ova-*.qcow2.xz创建虚拟机
完整的选项解释见创建第一个虚拟机,这里只列和默认不同、以及 HAOS 特有的设置。先建一台不带磁盘的虚拟机:
| 标签页 | 字段 | 填什么 |
|---|---|---|
| General | Name | homeassistant,勾上 Start at boot |
| OS | Guest OS | 不挂载任何镜像(Do not use any media) |
| System | Machine | q35(HAOS 只支持 UEFI,需要 PCIe 拓扑) |
| System | BIOS | OVMF (UEFI) |
| System | Add EFI Disk | 勾选,存储选 local-lvm 或你的默认存储 |
| System | Pre-Enroll keys | 不要勾选 |
| Disks | (先不加,导入磁盘后再处理) | |
| CPU | Cores | 2 |
| Memory | Memory | 4096 |
| Network | Model | VirtIO |
HAOS 不支持 Secure Boot
勾选 EFI 磁盘时不要启用 Pre-Enroll keys(预置 Secure Boot 密钥)。如果虚拟机启动后卡在 BIOS 界面或报访问被拒绝,进虚拟机的 OVMF 设置里确认 Secure Boot 处于关闭状态。HAOS 和很多非主流发行版一样,没有对 Secure Boot 签名。
在宿主机 shell导入磁盘(<vmid> 换成实际编号,<存储> 换成目标存储名):
sh
qm importdisk <vmid> haos_ova-*.qcow2 <存储>然后:
- 虚拟机 → Hardware,选中出现的 Unused Disk,点 Edit,总线选 SCSI(底层是 SSD 的话勾上 Discard),点 Add。
- 虚拟机 → Options → Boot Order,只勾选这块新盘,把其他都取消。
第一次启动之后
开机,打开 Console 观察启动日志。HAOS 第一次启动会做一些初始化,通常需要几分钟,控制台上会打印出访问地址。
浏览器打开 http://<虚拟机 IP>:8123(或局域网内的 http://homeassistant.local:8123,取决于你的网络是否支持 mDNS),跟着引导创建管理员账号、设置位置和时区。
打不开就再等等
如果几分钟后还是打不开,先看虚拟机的 Console 输出有没有报错,再检查网络配置(网桥是否正确、DHCP 是否分配到了地址)。HAOS 的首次数据库初始化比看起来慢。
检查结果
http://<ip>:8123能正常打开引导向导或登录界面。- 登录后
设置 → 系统 → 硬件能看到虚拟机的 CPU/内存信息,说明系统正常运行。 设置 → 附加组件 → 商店能正常加载 Add-on 列表(需要能访问外网),试装一个轻量 Add-on(比如 File editor)验证 Supervisor 工作正常。- 关机重开(
qm stop再qm start),确认配置和已装 Add-on 都还在。
备份与维护
Home Assistant 有自己的一套备份机制,和 PVE 的 vzdump 分工不同:
| 备份方式 | 备的是什么 | 恢复到哪 |
|---|---|---|
HA 内置「备份」(设置 → 系统 → 备份) | 配置、Add-on 数据、历史记录,可选加密 | 同版本或更新版本的 HAOS/HA Container 均可恢复,跨平台迁移更方便 |
PVE vzdump | 整块虚拟磁盘 | 只能恢复到 PVE 虚拟机,恢复更彻底但更重 |
两者配合,别只依赖一个
HA 内置备份更适合日常和迁移;vzdump 能在虚拟机整体出问题(比如磁盘损坏)时兜底。建议都开,参考配置备份任务。升级前,两种备份都做一次,并按恢复演练验证过至少一次能恢复。
升级 HAOS 大版本前,PVE 里先打个快照,出问题能立刻回滚——这是虚拟机相对物理树莓派的明显优势。
常见问题
虚拟机起不来,卡在黑屏或 UEFI 界面。 确认 BIOS 选的是 OVMF (UEFI) 而不是 SeaBIOS,且没有启用 Pre-Enroll keys / Secure Boot。
导入磁盘后启动仍找不到系统。 确认 Options → Boot Order 里只启用了导入的那块盘,且文件确实是 .qcow2 而不是仍处于 .xz 压缩状态或改错了扩展名。
局域网设备(Zigbee 网关、语音助手)发现不到 HA。 检查虚拟机网卡是否和这些设备在同一个网桥/网段,某些发现协议(mDNS、SSDP)依赖组播,跨 VLAN 需要额外配置,属于网络进阶的内容。
需要接 Zigbee/Z-Wave USB 网关。 优先用 USB 直通(比 PCI 直通简单,不需要 IOMMU),具体方法见硬件直通;也可以用支持网络转发的网关方案,避免直通。