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,请停止虚拟机,重新执行上面的安装步骤。



请注意将第二项改为“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:
可选配置
查看所有虚拟机状态:
查看指定的虚拟机状态:
参考资料
vm-bhyve/wiki/Running-Windows,教程主要参考此处。中文版本在 vm-bhyve Wiki
最后更新于
这有帮助吗?
