尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Proxmox VE 8.1 安装 Home Assistant OS 12.1 虚拟机完整指南

Proxmox VE 8.1 安装 Home Assistant OS 12.1 虚拟机完整指南 Proxmox VE 8.1 上装 Home Assistant OS 12.1这套组合我前后用了差不多一年中间踩过不少坑今天把完整流程和参数整理出来。这件事本身不算难但网上教程往往只告诉你“点哪里”不说“为什么这么配”导致很多人装完三天两头出问题。这篇尽量把每个关键选择背后的逻辑讲透你照着做完应该能得到一个长期稳定跑的智能家居中枢。Proxmox VE 是一个开源的虚拟化平台底层是 Debian KVM LXC你可以把它理解成一个“7x24小时运行的宿舍管理员”负责把一台物理服务器的 CPU、内存、硬盘、USB 设备分配给各个虚拟机。Home Assistant OS下面简称 HAOS则是专门为智能家居打造的嵌入式系统核心是 Home Assistant自带 Docker 和 Add-on 商店从 Zigbee 网关到媒体播放器都能一键装。这篇文章适合谁如果你手上已经有一台 NUC、迷你主机、软路由或者旧笔记本改装的服务器想让 Home Assistant 和 NAS、AdGuard、Node-RED 这些服务共存而不是一台设备一个系统来回插拔那这套方案就是为你准备的。我也建议你先别急着动手把前两章的选型理由和硬件规划看完再进第三章实操会顺手很多。1. 为什么要把Home Assistant装进Proxmox1.1 这套组合到底解决什么问题智能家居玩到一定阶段设备多了你会发现 Home Assistant 跑在哪是个大问题。树莓派性能吃紧Docker 部署功能残缺专门买一台物理机跑 HA 又太浪费——毕竟机器的 CPU 大部分时间是空闲的。Proxmox 就是来解决这个矛盾的一台物理机上同时跑 HAOS、文件服务器、去广告服务、下载机每个服务一个独立虚拟机互不干扰。虚拟机最大的好处是快照和备份。我给 HAOS 做系统升级之前习惯先在 Proxmox 里打个快照升级完如果发现某个 Add-on 和新版本不兼容一分钟就能回滚。这个操作在物理机上几乎做不到在 Docker 里虽然也能做镜像备份但整机级别的恢复能力完全不是一个量级。另外还有一个很实际的好处硬件换代时迁移方便。我最早是在一台旧笔记本上跑的 PVE后来换成 NUC整个过程就是备份、恢复、重新直通 USB 设备半个多小时搞定。如果是物理机安装的 HAOS换硬件之后很可能要重新配置一堆驱动和网络非常折腾。1.2 HA几种部署方式对比为什么最终选了HAOS虚拟机Home Assistant 官方提供了好几种安装方式简单列个表格部署方式完整 Add-on 商店系统级管理备份恢复难度适合场景HAOS 物理机完整完整中依赖整机备份专门一台设备跑 HAHAOS 虚拟机(KVM)完整完整低虚拟机快照随便打一台服务器多服务共存Docker 容器受限无中自带备份插件可用已熟悉 Docker 的玩家Supervised完整无依赖宿主机高环境一旦变化容易崩不推荐环境难复现Core 纯 Python无无中只做自动化测试我的建议很直接想省心选 HAOS 虚拟机想折腾选 Docker。别碰 Supervised那种“宿主机直接装 Python 环境再套 HA”的方式每次系统更新都可能炸我已经见太多人在群里问为什么升级后 HA 起不来了。那为什么不用 LXC 容器跑 HAOS官方明确不支持这种用法LXC 因为不是完整虚拟机systemd 和 Docker 的关系很别扭而且通常需要特权容器安全性也差。Proxmox 既然原生支持 KVM就老老实实用虚拟机这是官方推荐的方式。1.3 关于PVE 8.1和HAOS 12.1的版本搭配Proxmox VE 8.1 发布于 2023 年底底层是 Debian 12内核 6.5属于当时的一次大版本更新。和 7.x 相比8.x 对现代 CPU 的支持更好磁盘性能也有优化在我用下来最直观的感受是虚拟机开机快了不少直通设备的兼容性也比老版本稳。HAOS 12.1 则是 Home Assistant OS 的 12.x 系列版本内核 6.6底层基系统自带 Docker所以你能在 Add-on 商店里装任何 Docker 镜像——比如 Node-RED、ESPHome、Frigate 这些。这套 PVE 8.1 HAOS 12.1 的组合在发布时间上相近相互兼容性很好我实测下来几乎没有出现过“内核补丁冲突”这类问题。这里要顺带提一句Proxmox VE 9.0 已经发布了新版本确实吸引人但我的态度是“大版本升级观望半年再说”。8.1 目前是经过大量社区验证的稳定版本如果你是为了家里长期跑服务完全没有必要追新。等 9.0 出到 9.1、9.2补丁足够多了再考虑也不迟。2. 安装前的准备2.1 硬件配置怎么定才不浪费先明确一个观念HAOS 本身对硬件要求不高真正吃资源的是你后期安装的 Add-on 和自动化任务。比如跑 Frigate 做摄像头识别需要大量 CPU 和内存跑语音助手模型那更是无底洞。所以给虚拟机分配资源前先想清楚你要用它做什么。我的推荐配置是两档配置项入门档推荐档CPU2 核4 核内存2 GB4~8 GB硬盘32 GB64 GB SSD网卡VirtIO 桥接VirtIO 桥接我自己跑的是一台 NUC 改装的服务器物理机是 16GB 内存给 HAOS 分配了 4GB 内存和 4 个核。跑了一堆自动化、Zigbee 网关、Node-RED、ESPHome平时 CPU 占用率基本在 5% 以下内存用了 70% 左右非常宽裕。硬盘是很多人容易忽略的点。HAOS 的日志和数据库比如 history 落库写得很勤机械硬盘的随机读写能力很差会导致 HA 界面卡顿建议至少用 SATA SSD。如果条件允许把 HAOS 的磁盘放到 NVMe 上那体验确实顺畅。2.2 下载并校验HAOS镜像HAOS 官方专门为虚拟机提供了 OVA/QEMU 格式的镜像文件名类似haos_ova-12.1.qcow2.xz。这里不要下错了有些教程让人去下树莓派版或者 Intel NUC 版那都不是给虚拟机用的。镜像下载链接在 Home Assistant 官方文档的 “Install Home Assistant OS” 页面里翻到 Virtual Machine 一节就能找到。下载完成后是个.xz压缩文件需要先解压成.qcow2格式镜像才能导入 Proxmox。Linux 命令很简单xz -dk haos_ova-12.1.qcow2.xz如果你对网络下载的完整性有疑虑官方页面会同时给出 SHA256 校验值用下面的命令核对一下sha256sum haos_ova-12.1.qcow2.xz比对两个值一致再继续避免下载过程中文件损坏导致后面启动失败。2.3 网络规划装之前先想好IP很多人装完才发现 8123 端口打不开排查半天结果是 IP 变了或者网段不对。所以安装之前建议先规划好网络。Proxmox 安装完成后默认会有一个虚拟网桥vmbr0它把你的物理网口和虚拟机网络连接起来。你新建虚拟机时选择 VirtIO 网卡桥接模式选vmbr0那么虚拟机就像是接在同一台交换机上一样直接由你家里的路由器分配 IP和其他设备一个网段。HAOS 默认使用 DHCP 获取 IP这没问题但千万别让这个 IP 随意变动。有两个办法一是在路由器后台做 DHCP 静态绑定把 HAOS 的 MAC 地址固定到一个 IP二是装完 HAOS 后在ha控制台里手动改成静态 IP。我个人推荐第一个方法因为操作简单且不会因为 HA 配置文件写错导致断网。还有一点HAOS 对网络依赖很强Zigbee 网关一般走 USB 不占网络但 Wi-Fi 设备的控制、云服务的同步、Add-on 商店的访问都靠这条链路。所以建议给 HAOS 用有线网络不要用 Wi-Fi 网卡直通稳定性和延迟完全是两个级别。3. 在PVE 8.1上创建HAOS虚拟机的完整过程3.1 创建虚拟机关键参数逐个说清楚登录 Proxmox Web 管理界面右上角“创建虚拟机”开始配置。很多教程这一步直接给你一张截图但这里面的参数为什么这么选我拆开讲。首先在“常规”页面填 VM ID 和名称。VM ID 我习惯用 100、101 这样有规律的编号名称写haos方便以后在命令行里一眼认出。最关键的是“操作系统”页面。这里选择“不使用任何介质”类型选 Linux版本随便选一个 6.x 的内核版本都行。因为我们后面要导入现成的磁盘镜像不是从 ISO 安装所以这里不需要指定安装介质。“系统”页面需要注意参数设置值原因机型q35新平台支持 UEFI兼容性更好BIOSOVMF (UEFI)HAOS 官方推荐启动更规范EFI 磁盘添加64MB选 local-lvm存储 UEFI 启动引导文件TPM添加版本 2.0某些新版本系统和安全组件需要这里特别提醒如果你用了 SeaBIOS虽然也能启动 HAOS但官方文档推荐的是 UEFI 方式。我建议直接按上表走因为后面挂载 EFI 磁盘和 TPM 的操作在 SeaBIOS 模式下是不可用的而且一些 Add-on 涉及安全启动时会出问题。“硬盘”页面先不添加磁盘或者添加一个临时空盘但后面删掉也行。最省事的方式是创建时不加盘等导入镜像之后再挂载。“CPU”页面类型选host而不是默认的kvm64。host模式会把物理 CPU 的全部特性暴露给虚拟机对 HAOS 里的 Docker 和某些需要硬件指令集的应用很重要。“内存”页面给至少 4096MB4GB。如果你物理机内存紧张开 2048MB 也可以运行但后期跑多点自动化就会捉襟见肘建议别低于 4GB。“网络”页面桥接选vmbr0模型选 VirtIO半虚拟化网卡性能更好。VirtIO 需要虚拟机内有对应驱动HAOS 自带所以可以放心选。3.2 导入磁盘镜像并调整引导顺序创建完虚拟机之后把刚才解压好的.qcow2镜像传到 Proxmox 宿主机上。传文件方式有两种一种是通过 Web 界面上传到特定目录另一种是用 scp 直接拷。我习惯用 scpscp haos_ova-12.1.qcow2 root你的PVE地址:/root/然后 SSH 登录 PVE 宿主机执行导入命令。假设 VM ID 是 100存储是local-lvmqm importdisk 100 /root/haos_ova-12.1.qcow2 local-lvm这一步会把 qcow2 格式转换成 PVE 的 raw 格式如果你配置的存储是 local-lvm导入时间取决于硬盘速度一般几分钟。导入完成后打开 Web 界面的“硬件”选项卡你会看到一个“未使用的磁盘”双击它点“添加”这块磁盘就挂到虚拟机上了。接下来调整引导顺序。回到虚拟机的“选项”选项卡双击“引导顺序”勾选刚才添加的磁盘把它拖到第一项。注意取消勾选“网络”启动否则虚拟机可能会先从网络启动卡很久之后才进系统。再检查一遍“硬件”里 EFI 磁盘和 TPM 是否存在如果之前的系统设置里忘了加这里手动添加也行。最后确认虚拟机“选项”里的“开机自启动”可以按需打开我是建议打开的这样宿主机重启后 HAOS 会自动跟着起来不用手动干预。3.3 首次启动与8123初始化点“启动”按钮再点“控制台”你会看到 HAOS 的启动日志滚动刚开始会有一大堆内核信息别慌。正常启动之后控制台会停在ha提示符这就是 HAOS 的命令行接口。首次启动 HAOS 会自动扩展根分区所以等待时间可能稍微长一点。你可以用ha下的一些命令来确认状态。最实用的一个是查看网络信息ha network info这个命令会列出当前机器获取到的 IP 地址。如果显示的是一个正常的局域网 IP说明网络已经通了。如果啥也没有大概率是 DHCP 没拿到地址去路由器后台看看有没有新设备接入。拿到 IP 之后在浏览器输入http://你的IP:8123看到 Home Assistant 的初始化引导页面就说明 HAOS 核心服务已经跑起来了。初始化过程很简单先创建管理员账号然后设置家庭名称、时区、单位制。建议时区选“上海”或者其他你自己的本地时区否则自动化里的时间和日出日落判断会不准。后面会检测你的智能家居设备可以跳过等进主界面之后再慢慢配。注意第一次进入 8123 页面可能需要等几分钟因为 HA 的数据库初始化、组件加载都在后台跑。如果你刷新好几次都打不开先回ha控制台看看有没有报错或者等一下再重试。4. 装完之后这些设置必须做4.1 稳定性优化关掉内存气球等三个坑很多人的 HAOS 装在 PVE 上前两周还好好的第三周开始频繁卡死、无响应十有八九是虚拟机默认参数导致的。我在这个过程里踩了三个坑分享给你。第一个坑是内存气球ballooning。Proxmox 默认开启动态内存调整宿主机内存不够时会自动回收虚拟机的内存但 HAOS 对这种内存收缩非常不敏感往往收缩之后不主动归还时间一长就崩溃。解决办法是在“选项”里的“内存”设置中把“最小内存”改成和“内存”一样等于禁用了 ballooning。我已经不止一次遇到过关掉之后再没出现过无故卡死。第二个坑是磁盘缓存。默认情况下 PVE 的磁盘写入缓存策略可能不适合数据库类应用。我的做法是在硬件里选中磁盘点“编辑”把缓存改成“无缓存”同时勾选“IO 线程”。这样 HAOS 的数据库写入会更稳定虽然性能不一定提升多少但避免了缓存不一致带来的数据损坏风险。第三个坑是定期清理 HAOS 本身的日志。Home Assistant 里home-assistant.log会越滚越大建议在 HA 的配置文件里开启日志轮转或者加一个自动化定期清理旧日志。这个和 PVE 关系不大但虚拟机的磁盘空间一旦被日志吃满后果和物理机一样严重。4.2 USB设备直通让Zigbee/串口设备进虚拟机智能家居基本离不开 USB 设备Zigbee 网关比如 Sonoff Zigbee 3.0 或者 CC2652P 方案的棒子、Z-Wave 棒、蓝牙适配器、串口传感器这些都得直通进 HAOS 虚拟机里才能被 Home Assistant 识别。操作分两步。第一步在 PVE 宿主机上插好 USB 设备然后在 Web 界面选中 HAOS 虚拟机点“硬件”-“添加”-“USB 设备”。弹出的窗口里可以直接选宿主机的某个 USB 设备也可以按 Vendor/Product ID 填。我建议选具体的设备因为下拉列表会把宿主机上所有 USB 设备都列出来包括键盘鼠标选错了容易出问题。第二步添加完成后需要给虚拟机添加一个 USB 控制器。有的主板默认没有启用 USB 2.0/3.0 的虚拟控制器直接把设备映射进去可能不识别。在“硬件”里点“添加”-“USB 设备”时注意勾选“使用 USB 2.0 控制器”或“使用 USB 3.0 控制器”具体取决于你的设备和 HAOS 的支持情况。Zigbee 棒一般 USB 2.0 就够了。一个常见的困惑是直通之后 HAOS 里看不到设备。我的排查经验是先在宿主机上执行lsusb确认设备存在然后确认这个设备没有被其他虚拟机占用最后再重启 HAOS 虚拟机。Zigbee 棒的很多驱动需要重新枚举 USB 设备热插拔不一定生效重启最稳妥。4.3 备份和磁盘扩容平时不弄出事后悔备份是 Proxmox 方案相比物理机方案最大的优势但也需要你提前配置好备份路径。PVE 自带的 VZDump 备份工具可以在“数据中心”-“备份”里统一配置计划也可以手动点“备份”按钮对单个虚拟机做备份。我的建议是至少每周做一次备份保留最近 2~3 份即可。备份模式可以选择“停止模式”也就是先关虚拟机再备份一致性最好如果你不想中断服务可以用“快照模式”但 HAOS 的数据库在快照时可能处于不一致状态恢复出来偶尔会有小问题。如果 HAOS 里已经装好了“Google Drive 备份”或者“NAS 备份”插件那 PVE 整机备份和 HA 内部备份可以双保险搭配使用效果更好。磁盘扩容这个坑我也踩过。HAOS 自带的虚拟磁盘默认大概 32GB如果你装了很多 Add-on、存了大量历史数据用一段时间后空间会告急。扩容步骤是在 PVE 的“硬件”中选中磁盘点“编辑大小”调大容量比如调到 64GB。然后重启 HAOS它会在启动时自动扩展根分区。如果重启之后空间没变大概率是引导时没触发自动扩容可能需要进入ha控制台手动执行resize2fs但那需要一些 Linux 基础所以我的建议是创建虚拟机时直接把磁盘给到 64GB省得后面折腾。5. 常见问题排查实录5.1 浏览器打不开8123这是出现频率最高的问题。我每次帮朋友排查头一件事就是确认 HAOS 到底有没有拿到 IP。打开 PVE 的 HAOS 控制台输入ha network info看返回结果里的 IPv4 地址。如果地址为空检查虚拟机的网络模型是不是 VirtIO、桥接是不是vmbr0再去路由器后台看设备列表里有没有多出来的设备。如果 IP 有但浏览器打不开 8123大概率是 HAOS 核心还没完全启动。首次启动加初始化数据库可能需要 5~10 分钟你可以通过控制台的日志确认启动进度。还有一个容易忽略的点你所在网络的防火墙是否放行了 8123 端口的入站访问。如果 PVE 的防火墙或者路由器开了设备隔离内网访问也会被拦。5.2 虚拟机一直卡在Booting from Hard Disk这个问题基本可以锁定在引导顺序上。虚拟机开机黑屏只显示 “Booting from Hard Disk…” 然后一直转圈通常是引导顺序里没有把导入的虚拟磁盘设为首选或者磁盘没有正确挂载。去“选项”-“引导顺序”里看一下确保唯一的启动项是那块导入的vm-100-disk-1这类名称的磁盘。如果你之前在“系统”里选了 UEFI别忘了确认 EFI 磁盘已经添加。如果这些都正常再用qm importdisk那条命令重新导入一次镜像有时候是导入文件本身损坏。5.3 USB设备直通后HA里看不到先别急着在 HA 里折腾驱动回到 PVE 宿主机执行lsusb确认设备已经被宿主机的内核识别。然后到 HAOS 虚拟机“硬件”页检查 USB 设备是否已经在列表里。如果设备被多个虚拟机同时选为直通对象PVE 会报冲突只能给其中一个用。直通之后 HAOS 里找不到设备最常见的原因是 HA 的容器环境没有重新枚举 USB。先重启 HAOS 虚拟机不是重启 Home Assistant 核心是整个虚拟机一般能解决 80% 的问题。还有一个小技巧在 HAOS 的“加载项”里安装一个叫 “Advanced SSH Web Terminal” 的插件然后用lsusb命令直接在 HA 侧确认设备是否进入了 HAOS 的内核空间这样就能判断是宿主机问题还是 HA 应用层问题了。5.4 大版本升级PVE 9.0要不要追最近总有人问我要不要升级 PVE 9.0。我的看法很明确如果你的 PVE 8.1 跑得正稳完全没有必要现在升级。大版本升级涉及到内核、QEMU、存储后端一大堆变更虽然 Proxmox 官方提供了升级脚本但我见过太多因为升级导致虚拟机起不来的翻车案例。相比之下HAOS 的版本升级反而可以稍微积极一点。HAOS 12.x 的小版本更新会修复很多智能家居场景的 Bug直接在 HA 的设置页面点“更新”就行不需要手动操作 PVE。升级前记得在 PVE 里打个快照出了问题一键回滚这就是虚拟化部署最大的底气。另外我建议你养成一个习惯每次改动 HA 的配置或安装大型 Add-on 之前都去 PVE 面板打一个快照。快照不是备份它只记录虚拟机磁盘的状态变化占用空间不大但能让你随意尝试各种折腾。我自己的规则是动了系统配置就快照每个月至少一次整机备份盘不贵后悔药才是真的贵。
返回列表