12.2 使用 bhyve 及 vm-bhyve 工具安装 Windows 11
vm-bhyve 是基于命令行的 bhyve 虚拟机管理框架,通过提供配置模板、网络管理和生命周期控制等功能,简化了虚拟机的创建、配置与管理流程。作为 bhyve 的命令行前端工具,vm-bhyve 封装了底层 bhyve 命令,降低了手动配置虚拟机的复杂度。本节详细介绍在 FreeBSD 上通过 vm-bhyve 部署 Windows 11 客户机的完整流程。
本节基于 FreeBSD 14.2 RELEASE 版本和 Windows 11 IoT Enterprise LTSC 系统。
安装固件与所需软件
本节介绍安装 bhyve 虚拟机管理工具、配置环境以及准备 Windows 11 系统镜像的详细步骤。
准备 Windows 镜像
Windows 11 IoT Enterprise LTSC,版本 24H2 (x64) - DVD (英文) 系统下载链接(来自 itellyou ):
IoT 版本取消了可信平台模块(TPM)、内存大小等安装限制,降低了部署门槛。
SHA256 校验值:4F59662A96FC1DA48C1B415D6C369D08AF55DDD64E8F1C84E0166D9E50405D7A
磁力链接:magnet:?xt=urn:btih:7352bd2db48c3381dffa783763dc75aa4a6f1cff&dn=en-us_windows_11_iot_enterprise_ltsc_2024_x64_dvd_f6b14814.iso&xl=5144817664
准备所需软件与内核模块
首先需要加载虚拟机管理相关的内核模块。vmm 是 FreeBSD 内核提供的虚拟机监控程序模块,为 bhyve 提供硬件辅助虚拟化支持,该模块只需加载一次,之后 vm-bhyve 会自动管理。
加载内核模块:
技巧
只需执行一次,之后 vm-bhyve 会自动加载该模块。
# kldload vmm # 加载 FreeBSD 虚拟机管理模块(vmm)查看已加载的 vmm 相关内核模块:
接下来安装统一可扩展固件接口(UEFI)固件、虚拟网络计算(VNC)客户端与 vm-bhyve 管理工具。UEFI 固件为虚拟机提供现代启动支持,VNC 客户端用于访问虚拟机图形界面。
使用 pkg 安装:
或者使用 Ports 安装:
在 /etc/rc.conf 中指定启动 vm 与虚拟机的位置:
创建模板路径:
复制模板到虚拟机模板位置:
接下来配置虚拟网络。public 为模板中指定的虚拟交换机名称,ue0 为当前宿主机的物理网络接口名称,请根据实际网卡修改(可通过命令 ifconfig 查看)。虚拟交换机通过 bridge(4) 实现网络桥接功能,将虚拟机网络栈与宿主机物理网络接口连接,使虚拟机能够直接访问物理网络。
创建后查看新增的 vm-public:
技巧
如果创建错误,可以将其删除:
查看分配的虚拟交换机:
为了在 FreeBSD 13.0 及更高版本的宿主机中正确使用 xHCI 鼠标,应加载 hms(4) 驱动,请在 /boot/loader.conf 中添加:
配置虚拟机模板
虚拟机模板是创建虚拟机的基础配置文件,本节介绍如何创建并配置 Windows 虚拟机模板。
技巧
如果运行的是 Windows 10 之前的版本,或在 Windows 系统上安装 Microsoft SQL Server 时,需要使用参数
disk0_opts="sectorsize=512"将磁盘扇区大小设置为 512。
根据模板创建 Windows 虚拟机,磁盘占用 40 GB:
技巧
销毁虚拟机的命令:
需要注意的是,默认模板存在一些问题,需要进行修改。配置文件路径为 /home/ykla/vm/winguest/winguest.conf:
注意
旧版 FreeBSD 中(FreeBSD 14.0 以前),
/home/是被软连接到/usr/home/的,两者是相同的。自 FreeBSD 14 以降,不再使用软连接,而是直接使用
/home/目录。
安装 Windows 系统
完成虚拟机配置后,即可开始安装 Windows 11 系统。在安装模式下运行时,vm-bhyve 会等待,直到 VNC 客户端连接后才启动虚拟机,从而可以捕捉到 Windows 可能显示的提示“Press any key to boot from a CD/DVD”。此时在 vm list 中可以看到虚拟机显示为锁定状态:
从 VNC 访问 Win11
虚拟机启动后,需要通过 VNC 客户端连接才能完成系统安装,具体操作步骤如下:

当出现 Press any key to boot from a CD/DVD 提示时,请快速按几次回车键。
技巧
如果忘记按键而退回到了 UEFI shell,请停止虚拟机,重新执行上面的安装步骤。



请注意将第二项改为“Chinese (Simplified, Mainland China)”。

选择“Chinese (Simplified, Mainland China)”。

开始安装。在安装过程中可能会断开若干次 VNC 连接,重新连接即可。
在 tigervnc-viewer 中输入 localhost,点击连接,然后按任意键进入安装过程。
技巧
终止虚拟机:若虚拟机卡死导致命令无效,请使用
kill -9强制终止,以避免影响宿主机关机;若阻碍物理机关机,可在 tty 中按Ctrl+C跳过等待并强制关机。如果无效:
安装后配置
系统安装完成后,需要进行一些初始配置,具体步骤如下:

选择“China”。
安装后启动虚拟机:
打开 VNC 连接即可。

输入用户名。

输入密码。

重复输入密码。

输入安全问题,系统会重复三次要求设置三个不同问题。

隐私设置。可根据需要调整,然后点击“Accept”。

系统在安装过程中会进行更新,可能存在一些方法可跳过(经测试 oobe\bypassnro 无效),请读者根据需要自行探索。


中文环境配置:






故障排除与未竟事宜
本节提供 bhyve 虚拟机使用过程中可能遇到的问题及其解决方法。
如遇问题,请先重启宿主机;若问题仍然存在,可通过 ifconfig 检查是否存在多余网卡,并将其删除。
如果虚拟机一直是 stopped 状态,请检查网络配置。
查看网络配置(虚拟机关闭状态):
查看网络配置(虚拟机开启状态),此时会多出一个网络接口 tap0:
可选配置
可选配置提供了一些额外的虚拟机管理命令,方便日常使用。
查看所有虚拟机状态:
查看指定的虚拟机状态:
参考资料
vm-bhyve 项目. vm-bhyve/wiki/Running-Windows[EB/OL]. [2026-03-25]. https://github.com/churchers/vm-bhyve/wiki/Running-Windows. 教程主要参考此处,详述了 Windows 虚拟机部署;中文版本在 vm-bhyve Wiki
bhyve dev. The win11 release ISO requires the install-time regedit TPM workaround[EB/OL]. (2021-10-08)[2026-03-25]. https://twitter.com/bhyve_dev/status/1446404943020056581. 提供了 Windows 11 TPM 绕过方法
rootbert. windows 11 on bhyve[EB/OL]. [2026-03-25]. https://forums.freebsd.org/threads/windows-11-on-bhyve.82371/. 社区讨论 Windows 11 部署问题与解决方案
dadv. FreeBSD, bhyve и Windows 11[EB/OL]. [2026-03-25]. https://dadv.livejournal.com/209650.html. 提供了俄语 Windows 11 部署指南
FreeBSD 项目. wiki/bhyve/Windows[EB/OL]. [2026-03-25]. https://wiki.freebsd.org/bhyve/Windows. 官方 Wiki,提供了 Windows 虚拟机支持信息
vm-bhyve 项目. churchers/vm-bhyve/wiki[EB/OL]. [2026-03-25]. https://github.com/churchers/vm-bhyve/wiki. vm-bhyve 官方文档
srobb.net. Using Windows on FreeBSD's vm-bhyve[EB/OL]. [2026-03-25]. https://srobb.net/vm-bhyve.html. 提供了 Windows 虚拟机实用配置指南
课后习题
使用 vm-bhyve 命令行工具创建一个新的虚拟机模板,对比默认模板与你创建的模板配置差异,理解 vm-bhyve 如何通过模板系统控制虚拟机的创建流程。
修改虚拟机配置文件中的网络设备类型(从 e1000 改为 virtio-net),在 Windows 虚拟机中安装对应驱动,验证网络功能是否正常,将步骤记录到本文。
最后更新于
