For the complete documentation index, see llms.txt. This page is also available as Markdown.

32.1 使用 bhyve 及 vm-bhyve 工具安装 Windows 11

vm-bhyve 是 bhyve 的命令行管理工具,封装了 bhyve 底层命令,可简化虚拟机的配置管理。

本节基于 FreeBSD 14.2-RELEASE 与 Windows 11 IoT Enterprise LTSC,涵盖 bhyve 虚拟机管理工具的安装、环境配置与系统镜像准备。

bhyve 虚拟化架构层次如下图所示:

bhyve 虚拟化架构层次

准备 Windows 镜像

Windows 11 IoT Enterprise LTSC,版本 24H2(x64)- DVD(英文)系统下载链接(来自 MSDN I Tell You:https://next.itellyou.cn/):

IoT 版本将可信平台模块(TPM)列为可选要求,内存大小等安装限制也较为宽松,降低了部署门槛。

SHA-256 校验和: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 会自动加载该模块。

查看已加载的 vmm 相关内核模块。其中 vmm.ko 为 bhyve 虚拟机监控程序模块,vmmemctl.ko 为 VMware 内存气球驱动,与 bhyve 无关:

安装 vm-bhyve 相关软件

接下来安装统一可扩展固件接口(UEFI)固件、虚拟网络计算(VNC)客户端与 vm-bhyve 管理工具。UEFI 固件为虚拟机提供现代启动支持,VNC 客户端用于访问虚拟机图形界面。

  1. 使用 pkg 安装

  2. 或使用 Ports 安装

配置 vm-bhyve

编辑 /etc/rc.conf 文件,启用 vm 服务并指定虚拟机存放目录:

技巧

本节示例中出现的 /home/ykla 为示例路径,请根据自身环境替换为实际用户主目录。

创建模板路径:

复制模板到虚拟机模板位置:

随后配置虚拟网络。public 是模板指定的虚拟交换机名称,ue0 为当前宿主机的物理网络接口名称,请根据实际网卡修改(可通过 ifconfig 命令查看)。虚拟交换机借助 bridge(4) 完成网络桥接,将虚拟机网络栈与宿主机物理网络接口相连,使虚拟机可直接访问物理网络。

创建后查看新增的 vm-public

技巧

如创建错误,可使用以下命令删除该虚拟交换机:

查看分配的虚拟交换机:

在 FreeBSD 13.0 及以上版本的宿主机中使用 xHCI 鼠标,需启用 USB HID 子系统,请在 /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 系统

安装模式下,vm-bhyve 将等待 VNC 客户端连接后才启动虚拟机,以捕捉 Windows 可能弹出的“Press any key to boot from a CD/DVD”提示。此时 vm list 中可看到虚拟机显示为锁定状态:

从 VNC 访问 Win11

虚拟机启动后,需以 VNC 客户端连接才能完成系统安装:

VNC 连接

出现 Press any key to boot from a CD/DVD 提示后,快速按几次回车键。

技巧

如忘记按键而退回至 UEFI Shell,请停止虚拟机,重新执行上面的安装步骤。

UEFI Shell

安装界面
安装界面
语言选择

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

语言设置

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

安装开始

安装过程中 VNC 连接可能数次中断,重新连接即可恢复。

在 tigervnc-viewer 中输入 localhost,点击连接,随后按任意键继续安装过程。

技巧

终止虚拟机:优先使用 vm stop 命令向虚拟机发送 ACPI 关机信号,实现关闭。如果虚拟机阻碍宿主机关机,可在 tty 中按 Ctrl+C 跳过等待并强制关机。

vm stop 无效,使用 SIGTERM 信号:

等待约 10-30 秒后确认进程已退出,再运行 bhyvectl --destroy --vm=winguest 清理。仅在 SIGTERM 多次尝试仍无效时,方可使用 kill -9 作为最后手段(警告:可能导致虚拟机磁盘数据损坏)。

安装后配置

系统安装完成后需要初始配置,步骤如下:

区域选择

选择“China”。

安装后启动虚拟机:

打开 VNC 连接即可。

用户名输入

输入用户名。

密码输入

输入密码。

重复密码

重复输入密码。

安全问题

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

安全问题

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

隐私设置

安装过程中系统会执行更新,可尝试跳过此步骤(经测试 oobe\bypassnro 无效),根据实际情况决定。

系统更新
系统更新

中文环境配置:

中文环境设置
中文环境设置
中文环境设置
中文环境设置
中文环境设置
中文环境设置

故障排除与未竟事宜

本节列出 bhyve 虚拟机使用过程中可能遇到的问题及解决方法。

如遇问题,请先重启宿主机;如果问题仍然存在,可借助 ifconfig 检查并删除多余网卡。

如果虚拟机长时间保持 stopped 状态,请检查网络配置。

查看网络配置(虚拟机关闭状态):

查看网络配置(虚拟机开启状态),此时会多出一个网络接口 tap0

可选配置

以下为额外的虚拟机管理命令:

  1. 查看所有虚拟机状态

  2. 查看指定的虚拟机状态

参考文献

最后更新于