View on GitHub

基于 KVM 安装 Win11

具体过程

1. 安装 KVM

安装 KVM 很简单,网上也有很多教程。直接 apt-get 安装依赖即可:

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
# 查看 libvirtd 状态,跑起来了即成功
sudo systemctl status libvirtd

2. 创建虚拟机

先下载 Win 11 的 ISOvirtio 驱动 ISO

使用 virt-install 可以创建虚拟机镜像。

virt-install --connect qemu:///system \ 
--name=win11 \
--ram 4096 \
--vcpus=8 \
--accelerate \
--cdrom=zh-cn_windows_11_consumer_editions_version_22h2_updated_april_2023_x64_dvd_73bd9a5e.iso \ # 下载的 ISO 路径
--disk path=win11.raw,size=50,format=raw,bus=virtio \ # 虚拟磁盘路径
--disk /home/work/virtio-win.iso,device=cdrom,bus=sata \ # virtio 驱动路径,不能使用 --cdrom,会覆盖前面的,坑
--graphics vnc,listen=0.0.0.0,password=${你的密码} \ # 视频直接导到 VNC 上
--video virtio \
--noautoconsole \
--network network=default,model=virtio \
--features kvm_hidden=on,smm=on \
--tpm backend.type=emulator,backend.version=2.0,model=tpm-tis # 开启 TPM,不过貌似没作用

virsh 命令使用:

list --all # 查看所有虚拟机
start win11 # 启动虚拟机
shutdown win11 # 关闭虚拟机
destroy win11 # 强制关闭虚拟机
undefine win11 # 删除虚拟机
define win11.xml # 从 xml 文件定义虚拟机

重启时虚拟机会关闭,目前不知道怎么解决,可以使用 virsh start win11 启动回来就好了。

3. 安装 Windows 11

# 在安装界面按 Shift + F10 打开命令行,MAC 的话是 Fn + Shift + F10
reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassTPMCheck" /t REG_DWORD /d "1" /f
reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassSecureBootCheck" /t REG_DWORD /d "1" /f
reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassRAMCheck" /t REG_DWORD /d "1" /f
reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassStorageCheck" /t REG_DWORD /d "1" /f
reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassCPUCheck" /t REG_DWORD /d "1" /f
reg add "HKLM\SYSTEM\Setup\MoSetup" /v "AllowUpgradesWithUnsupportedTPMOrCPU" /t REG_DWORD /d "1" /f
# 在安装界面按 Shift + F10 打开命令行,MAC 的话是 Fn + Shift + F10
OOBE\BYPASSNRO
virsh shutdown win11
virsh edit win11
# 在 <cpu> 标签下添加 <topology sockets='1' cores='4' threads='2'/>,意思为 4 核超线程。
virsh start win11

Modify Cores