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

本节基于 FreeBSD 14.2 RELEASE 版本和 Windows 11 IoT Enterprise LTSC。

安装固件与所需软件

准备 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

准备所需软件

加载内核模块:

技巧

只需执行一次,之后 vm-bhyve 会自动加载该模块。

# kldload vmm	# 加载 FreeBSD 虚拟机管理模块(vmm)

查看已加载的 vmm 相关内核模块:

# kldstat | grep vmm
 7    1 0xffffffff83320000     44b0 vmmemctl.ko
10    1 0xffffffff83400000   33e438 vmm.ko

首先,安装 UEFI 固件、VNC 与 vm-bhyve。

  • 使用 pkg 安装:

  • 或者使用 Ports 安装:


/etc/rc.conf 中指定启动 vm 与虚拟机的位置:

创建模板路径:

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

public 为模板中指定的虚拟交换机名称,ue0 为当前宿主机的网卡名称,请根据实际网卡修改(可通过命令 ifconfig 查看),否则创建将失败,虚拟机会报错 exit with error 4

创建后查看新增的 vm-public

技巧

如果创建错误,可以将其删除:

查看分配的虚拟交换机:

为了在 FreeBSD 13.0 及更高版本的宿主机中正确使用 xHCI 鼠标,应加载 hms(4) 驱动,请在 /boot/loader.conf 中添加:

配置虚拟机模板

技巧

如果运行的是 Windows 10 之前的版本,或在 Windows 系统上安装 Microsoft SQL Server 时,需要使用参数 disk0_opts="sectorsize=512" 将磁盘扇区大小设置为 512。

根据模板创建 windows 虚拟机,磁盘占用 40GB:

技巧

销毁虚拟机的命令:

但是注意该模板是有问题的,需要进行修改如下,文件路径是 /home/ykla/vm/winguest/winguest.conf

注意

旧版 FreeBSD 中(FreeBSD 14.0 以前),/home/ 是被软连接到 /usr/home/ 的,是一样的。

FreeBSD 14 以降,不再是软连接,而是直接使用 /home/

安装系统

指定 Windows ISO 文件以开始安装。在安装模式下运行时,vm-bhyve 会等待,直到 VNC 客户端连接后才启动虚拟机,从而可以捕捉到 Windows 可能显示的提示“Press any key to boot from a CD/DVD”。你能在 vm list 中看到,在此时,虚拟机将显示为锁定:

从 VNC 访问 Win11

当出现 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,点击连接,然后按任意键进入安装过程。

技巧

终止虚拟机:若虚拟机卡死导致命令无效,请使用 kill -9 强制终止,以避免影响宿主机关机;若阻碍物理机关机,可在 tty 中按 Ctrl+ C 跳过等待并强制关机。

如果无效:

安装后配置

选择“China”。

安装后开机虚拟机:

打开 VNC 连接即可。

输入用户名

输入密码

重复输入密码

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

隐私设置。可随意调整,然后点击“Accept”

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

汉化系统:

故障排除与未竟事宜

如遇问题,请先重启宿主机;若问题仍然存在,可通过 ifconfig 检查是否存在多余网卡,并将其删除。

如果虚拟机一直是 stopped 的状态,检查一下你的网络。

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

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

可选配置

  • 查看所有虚拟机状态:

  • 查看指定的虚拟机状态:

参考资料

最后更新于

这有帮助吗?