前置条件
bhyve 依赖硬件虚拟化支持,常见宿主为 amd64 FreeBSD。先确认 CPU、固件虚拟化开关、内存与磁盘空间,再阅读当前 bhyve(8);不要只看到命令存在就认定来宾和设备受支持。
sysctl hw.vmm.vmx.initialized
sysctl hw.vmm.svm.features
kldstat | grep vmm
Intel 与 AMD 主机的可用 sysctl 不完全相同,没有某个节点不等于结论成立。根据硬件和当前 man page 判断。
生命周期组件
vmm内核模块提供虚拟化能力。bhyve运行来宾,bhyvectl管理低层状态。- UEFI 来宾通常需要
bhyve-firmware包。 - TAP/bridge 提供二层网络;磁盘可使用文件或 ZFS zvol。
vm-bhyve、CBSD 等管理器可以减少手写命令,但各自有独立配置和升级风险。
先设计网络
桥接物理网卡时要理解 DHCP、VLAN、无线接口限制与宿主防火墙。创建任何 bridge/tap 前记录当前路由,并保留控制台。只需要出网的实验 VM 可先使用更简单、隔离的 NAT 设计;生产服务再评估二层桥接。
磁盘与固件
文件镜像便于复制和限制风险;zvol 提供块设备和 ZFS 快照能力。无论哪种,都要把来宾内部文件系统一致性纳入备份:宿主快照不自动等于数据库一致。
UEFI 固件路径、设备槽位和虚拟网卡/磁盘模型以当前 Handbook 为准。官方给出的低层 bhyve 命令适合理解组件,但长期运行更适合源码化配置的管理器,避免不可复现的超长 shell 命令。
正常关机与故障处理
优先通过来宾系统正常关机。官方文档说明向 bhyve 进程发送 TERM 可触发 ACPI 关机;bhyvectl --destroy 是立即销毁运行状态,可能造成来宾文件系统损坏,不是日常 stop 命令。
备份 VM 时保存:管理器配置、UEFI/NVRAM 状态、磁盘、MAC/IP 分配和安装介质来源。升级宿主前先关闭或迁移关键来宾,创建宿主启动环境,并验证新内核下 vmm 和网络模块。