银河麒麟 V10 服务器版安装 Windows 11 虚拟机(KVM 方案)完整实战记录

适用环境:Kylin Linux Advanced Server V10 (Halberd) x86_64,包管理器为 yum/dnf
用途:运维排障参考 / 技术博客素材
更新日期:2026-08


一、为什么选虚拟机,不选双系统

方案 影响现有系统 卸载难度 推荐度
KVM 虚拟机 完全隔离 删文件即可 ★★★★★
移动硬盘安装 不碰本机磁盘 格式化移动盘 ★★★☆
本机双系统 改分区+GRUB 高风险

目标:不修改现有系统分区、用完即删。KVM 是银河麒麟官方支持方案,性能接近原生。


二、前置检查:确认硬件虚拟化可用

# 1. CPU 是否支持 VT-x/AMD-V(输出含 vmx/svm 即可)
lscpu | grep -iE 'virtualization|vmx|svm'

# 2. KVM 模块是否加载(存在 /dev/kvm 即 OK)
ls /dev/kvm

# 3. 内存/磁盘余量(Win11 建议 ≥8G 内存、≥100G 磁盘)
free -h
df -h /

本次实测:Intel i3-8100(带 vmx)+ 30G 内存 + 2TB 磁盘,满足要求。


三、安装虚拟化软件

# 安装 virt-manager(图形管理)、qemu-kvm(模拟器)、libvirt(管理服务)
sudo dnf install -y virt-manager qemu-kvm libvirt

# virt-install 命令行工具(后续用命令行建机更方便,需单独装)
sudo dnf install -y virt-install

# virt-viewer:SPICE 图形控制台客户端
sudo dnf install -y virt-viewer

# 启动 libvirtd 并设开机自启
sudo systemctl enable --now libvirtd

# 当前用户加入 libvirt 组(免 sudo 操作虚拟机,需重新登录生效)
sudo usermod -aG libvirt $USER

坑点 1virt-install 不会随 virt-manager 自动安装,需单独 dnf install virt-install


四、准备 Windows 11 安装镜像

ISO 从本地 Ventoy 移动硬盘获取(更快的官方下载方式见文末)。

# 拷贝镜像到 libvirt 标准目录(关键!)
sudo cp /run/media/root/Ventoy/ISO文件/Win11_24H2_Pro_Chinese_Simplified_x64.iso /var/lib/libvirt/images/
sudo chmod 644 /var/lib/libvirt/images/*.iso

坑点 2(权限):镜像放 /root 下 qemu 用户无法读取,会报
Could not open '...': Permission denied。必须放 /var/lib/libvirt/images/chmod 放开权限。


五、创建虚拟机

sudo virt-install \
  --name win11 \
  --memory 8192 \
  --vcpus 4 \
  --disk path=/var/lib/libvirt/images/win11.qcow2,size=100,format=qcow2 \
  --cdrom /var/lib/libvirt/images/Win11_24H2_Pro_Chinese_Simplified_x64.iso \
  --os-variant win10 \
  --network default \
  --graphics spice \
  --boot uefi

参数说明:

  • --memory 8192:8G 内存
  • --vcpus 4:4 核 CPU
  • --disk ...format=qcow2:qcow2 格式(动态占用,按需增长)
  • --boot uefi:UEFI 引导(Win11 必须)

坑点 3:麒麟 osinfo 数据库较旧,无 win11 标识,用 win10 代替即可(同内核,不影响安装)。


六、启动图形控制台

# 有桌面环境时:
sudo virt-manager --show-domain-console win11

# 或直接用 remote-viewer 连 SPICE 端口(更适合 SSH 场景)
DISPLAY=:0 XAUTHORITY=/run/lightdm/root/:0 remote-viewer spice://127.0.0.1:5900

SPICE 默认监听 127.0.0.1:5900ss -tlnp | grep 5900 可验证。
XAUTHORITY=/run/lightdm/root/:0 是 root 桌面会话的授权文件,用桌面时实际无需手动指定。


七、踩坑实录(重点)

坑 4:UEFI 引导失败,落入 EFI Shell

现象:开机进不了安装界面,停在 Shell> 提示符,只有 BLK0 没有 FS0/FS1

原因:OVMF 固件没有自动识别到可引导光驱。两种触发场景:

  1. 镜像为改造版/非标准启动结构,UEFI 固件找不到 \efi\boot\bootx64.efi
  2. 重新 virsh define 定义域后,NVRAM 被重置,启动顺序丢失(只剩 hd,空盘无法启动)

排查:挂载 ISO 确认引导文件存在

sudo mount -o loop,ro /var/lib/libvirt/images/*.iso /tmp/iso_mount
ls /tmp/iso_mount/efi/boot/   # 应有 bootx64.efi
ls /tmp/iso_mount/efi/microsoft/boot/   # 应有 cdboot.efi 等

解决方案 A:EFI Shell 手动引导

Shell> fs0:
Shell> ls efi\boot\
Shell> efi\boot\bootx64.efi

注意:\efi\microsoft\boot\ 里没有 bootmgfw.efi 是正常的,
\efi\boot\bootx64.efi 就是它的同体文件(fallback 引导器)。
cdboot_noprompt.efi 也可直接运行,免去按键。

解决方案 B(根治):调整启动顺序为光驱优先

查看 XML:

sudo virsh dumpxml win11 > /tmp/win11.xml

修改 /tmp/win11.xml,把 <os> 里:

<boot dev='hd'/>

改为:

<boot dev='cdrom'/>
<boot dev='hd'/>

重新定义并启动:

sudo virsh undefine win11 --nvram
sudo virsh define /tmp/win11.xml
sudo virsh start win11

坑点 5:设备级 <boot order='1'/> 不能与 <os><boot dev> 混用,libvirt 报
每个设备的 boot 元素无法与 os/boot 元素联合使用。二选一。

坑点 6virsh undefine 会拒绝删除带 nvram 的域,需加 --nvram 参数。


坑 7:Win11「这台电脑不满足系统要求」

现象:安装界面直接弹「这台电脑当前不满足 Windows 11 系统要求」。

原因:Win11 强制要求 TPM 2.0 + Secure Boot,KVM 默认没有虚拟 TPM。

解决方案:加装虚拟 TPM 2.0(swtpm)

# 安装软件 TPM
sudo dnf install -y swtpm swtpm-tools

# 创建 TPM 状态目录(属主 tss)
sudo mkdir -p /var/lib/libvirt/swtpm/win11
sudo chown -R tss:tss /var/lib/libvirt/swtpm

编辑 XML,在 </devices> 前加入:

<tpm model='tpm-crb'>
  <backend type='emulator' version='2.0'/>
</tpm>
# 生效
sudo virsh undefine win11 --nvram
sudo virsh define /tmp/win11.xml
sudo virsh start win11

验证 TPM 已启用:

pgrep -a swtpm    # 看到 swtpm socket --tpm2 即成功

备选方案(临时绕过,不推荐做长期):安装界面 Shift+F10 打开 cmd →
regedit → 在 HKEY_LOCAL_MACHINE\SYSTEM\SetupLabConfig 项,
添加 BypassTPMCheck / BypassSecureBootCheck / BypassRAMCheck / BypassCPUCheck /
BypassStorageCheck 五个 DWORD 值 = 1。


坑 8:磁盘容量想改大(安装中途)

qcow2 支持在线/离线扩容,不需要重装:

# 1. 关闭虚拟机
sudo virsh destroy win11

# 2. 扩容(例:100G → 500G)
sudo qemu-img resize /var/lib/libvirt/images/win11.qcow2 500G

# 3. 验证
sudo qemu-img info /var/lib/libvirt/images/win11.qcow2 | grep 'virtual size'

# 4. 重启虚拟机
sudo virsh start win11

Windows 安装时在分区界面删掉旧分区,直接对"未分配空间"安装即可。

扩容发生在安装分配阶段也没关系,数据未写入,扩容后重新分区安装。


八、最终安装流程(顺顺利利版)

  1. lscpu 确认 vmx → ls /dev/kvm 确认 KVM
  2. 安装虚拟化套件 + swtpm
  3. ISO 放入 /var/lib/libvirt/images/
  4. virt-install 建机(UEFI + 8G + 4核 + 500G)
  5. 确认 XML 里 <boot dev='cdrom'/> 在前、<tpm> 已添加
  6. 启动 → remote-viewer 连接
  7. 选「安装 Windows 11」→「我没有产品密钥」→ 选 Pro → 自定义安装
  8. 分区界面删旧分区 → 选未分配空间 → 下一步
  9. 等待自动安装(约 10-20 分钟,多次重启正常)

九、常用运维命令速查

sudo virsh list --all                # 列出所有虚拟机
sudo virsh start/reboot/destroy win11  # 启动/重启/强制关机
sudo virsh shutdown win11            # 优雅关机
sudo virsh domstate win11            # 查看状态
sudo virsh dumpxml win11             # 导出配置
sudo virsh define /tmp/win11.xml     # 重新定义配置
sudo virsh undefine win11 --nvram    # 删除定义(含NVRAM)
rm -f /var/lib/libvirt/images/win11.qcow2   # 删除磁盘文件(卸载虚拟机)

# 卸载整套虚拟化
sudo dnf remove -y virt-manager qemu-kvm libvirt swtpm

十、官方 ISO 下载渠道(可选)

  • 微软官方:下载 Windows 11
  • ToDesk 官网有 Linux 各发行版客户端(本文虚拟机内安装 Windows 时如需远程可参考)

附:本次实战环境信息

项目
宿主机 OS Kylin Linux Advanced Server V10 (Halberd)
架构 x86_64 (Intel i3-8100, vmx)
包管理器 yum/dnf
KVM 套件 virt-manager 2.2.1 / qemu 4.1.0 / libvirt
swtpm 0.3.3
客户机 Windows 11 24H2 专业版(简体中文)
客户机配置 8G 内存 / 4 vCPU / 500G qcow2 / UEFI+TPM2.0
2 个赞

感谢分享!收藏备用 :heart_eyes:

1 个赞