12.2 使用 bhyve 安装 Windows 11(vm-bhyve)

以下教程基于 FreeBSD 14.2 RELEASE + Windows 11 IoT Enterprise LTSC。

安装固件与所需软件

Windows 11 IoT Enterprise LTSC, version 24H2 (x64) - DVD (English) 系统链接(来自 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

检查:

# 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

技巧

如果创建错了,可以销毁之:

查看分配的虚拟交换机:

为了在 13.0 之后的 FreeBSD 宿主机中正确使用 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

可选配置

  • 查看所有虚拟机状态:

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

参考资料

最后更新于

这有帮助吗?