Skip to content

注册Windows Server镜像

  • 适用平台:KVM/QEMU/Proxmox/oVirt
  • 关键步骤:在Windows ISO镜像中嵌入VirtIO驱动
  • 脚本兼容:Windows PowerShell 5.1(Windows11默认)及以上
  • 版权声明:本文档仅用于向演示客户如何通过自定义Windows Server(2025版本)镜像注册到华为云上的过程
  • 操作平台:基于Windows 11
  • 文档日期:2025/12/25

本指南描述如何在 Windows Server 2025 安装 ISO 的根目录中添加 VirtIO 驱动文件夹,以便在虚拟化环境中安装系统时手动加载 VirtIO 存储、网络等驱动。不修改 install.wim,仅作为可选驱动源。

  • 中级
  • 要求操作者具备:
    • 熟悉 Windows 命令行与 PowerShell 基础
    • 了解 ISO9660/UEFI 启动机制基本概念
    • 能识别 Windows ADK 工具路径
    • 具备虚拟化平台(如 Proxmox)基础操作能力
  • Windows Server 为商业授权软件。
  • 用户需自备有效许可证(KMS、MAK 或云市场镜像授权)。
  • 本文档不提供激活方案。上传至公有云时,应使用平台提供的 Windows Server BYOL(Bring Your Own License)或 Marketplace 镜像机制。
  • 使用镜像启动的虚拟机不支持挂载数据盘,不建议部署到生产环境
  • 基于镜像启动的虚拟机应该作为母盘初始化,基于此虚拟机制作私有镜像,之后就可以批量部署、管理以及挂载数据盘正常使用
  • 批量部署请参考基于Windows镜像批量部署
审查项结论
是否修改系统核心映像?否。仅添加只读驱动目录,符合最小变更原则
是否破坏数字签名?否。install.wim 未被修改,微软签名仍有效
是否兼容 UEFI + BIOS?是。通过 -bootdata 显式指定双启动扇区
是否依赖非官方工具?否。oscdimg 为微软官方,7-Zip 为标准开源解压工具
是否适用于云环境?是。生成的 ISO 可用于 Proxmox、oVirt、OpenStack;AWS 不推荐直接使用自定义 ISO(应使用 AMI 导入),但技术可行
可重复性高。脚本化流程,输入确定则输出一致

资源来源说明
Windows 11 主机用户自有用于执行镜像构建,需管理员权限
Windows Server 2025 ISOMicrosoft 评估版推荐官方 ISO,版本 ≥ 26100(2025 Evaluate)
VirtIO 驱动包Fedora Project 官方推荐 virtio-win-0.1.xx.x.iso(最新稳定版)
Windows ADK(含 oscdimg)下载并安装 Windows ADK仅需安装 “Deployment Tools” 组件
7-Zip (24.09+)7-zip.org用于解压 ISO(支持 UDF)

所有工具必须从上述官方渠道获取,禁止使用第三方修改版。


概念说明
VirtIO 驱动开源半虚拟化驱动,用于 KVM 环境提升 I/O 性能。包含 viostor(磁盘)、NetKVM(网卡)等
ISO 根目录注入将驱动以普通文件夹形式置于 ISO 顶层,供 Windows 安装程序“加载驱动程序”功能访问
可启动 ISO 重建必须保留原 ISO 的 El Torito(BIOS)和 UEFI 启动扇区,否则无法引导
oscdimg微软官方 ISO 打包工具,支持 -bootdata 参数指定双启动模式

# PowerShell 5.1 兼容
$WorkDir = "d:\VirtIO_ISO_Work"
$ExtractedDir = "$WorkDir\extracted"
$OutputISO = "$WorkDir\WS2025_with_VirtIO.iso"
if (-not (Test-Path $WorkDir)) { New-Item -ItemType Directory -Path $WorkDir }
if (-not (Test-Path $ExtractedDir)) { New-Item -ItemType Directory -Path $ExtractedDir }
  • 使用 7-Zip GUI 或命令行解压 ISO 到 $ExtractedDir
  • 或挂载 ISO 后复制全部内容:
# 示例:假设 ISO 挂载为 E:\
Copy-Item -Path "E:\*" -Destination $ExtractedDir -Recurse -Force

验证:Test-Path -Path $ExtractedDir\sources\install.wim 必须存在。

  1. 挂载 virtio-win-*.iso(例如挂载为 F:)
  2. 复制整个驱动目录到 ISO 根目录:
$VirtIOSrc = "F:\" # 挂载的 VirtIO ISO 盘符
$VirtIODest = "$ExtractedDir\VirtIO"
# 如果目标目录已存在,则删除
if (Test-Path $VirtIODest) {
Remove-Item -Path $VirtIODest -Recurse -Force
}
# 创建目标目录(即使父目录不存在也会递归创建)
New-Item -ItemType Directory -Path $VirtIODest -Force | Out-Null
# 复制文件
Copy-Item -Path "$VirtIOSrc\*" -Destination $VirtIODest -Recurse -Force

最终结构必须包含:

Test-Path -PathType Container $VirtIODest\viostor\2k25\amd64\
Test-Path -PathType Container $VirtIODest\NetKVM\2k25\amd64\

默认路径(ADK 10 或 11):

C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\oscdimg.exe
$Oscdimg = "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\oscdimg.exe"
$BootData = "2#p0,e,b{0}\boot\etfsboot.com#pEF,e,b{0}\efi\microsoft\boot\efisys.bin" -f $ExtractedDir
& $Oscdimg -m -o -u2 -udfver102 -bootdata:$BootData $ExtractedDir $OutputISO

⚠️ 若提示文件不存在,请确认:

  • Test-Path -PathType Leaf $ExtractedDir\boot\etfsboot.com 存在(BIOS 启动)
  • Test-Path -PathType Leaf $ExtractedDir\efi\microsoft\boot\efisys.bin 存在(UEFI 启动)
  • 输出文件:C:\VirtIO_ISO_Work\WS2025_with_VirtIO.iso
  • 文件大小应与原 ISO 相近(略大)
  • 使用 Rufus、Ventoy 写入 USB 并在 KVM 虚拟机中测试启动及驱动加载
  • 大约8.5 GB

下载华为云OBS Browser+工具Windows x64

上传到华为云OBS

镜像服务IMS -> 导入镜像

导入镜像1

镜像类型和来源

镜像配置

导入完成后,可以通过修改一些参数来确保满足初始化的需要。

修改镜像参数

在镜像页面点击安装服务器,可直接启动一台ECS。

安装服务器

如果不熟悉Windows命令式操作,务必选择桌面体验

选择镜像

选择加载驱动程序以选择VirtIO的磁盘驱动,其路径为CD驱动器\VirtIO\viostor\2k25\amd64

加载驱动程序

选择磁盘驱动

安装驱动

直接点击下一步,Windows安装程序会自动分区

等待安装完成

等待安装完成

经过多次自动重启后,输入产品密钥或者选择以后再说

输入密钥

密码配置需要符合复杂度,即字母、数字和特殊字符。

系统安装完成。

登录系统

进入CD驱动器 -> VirtIO -> 双击运行virtio-win-gt-x64。一路下一步完成安装。

安装VirtIO

打开设备管理器,确保设备列表没有出现黄色叹号和问号

设备管理器

开启远程桌面

打开高级防火墙,放行远程桌面规则

打开高级防火墙

  • 入站规则:
    • 远程桌面-用户模式(TCP-In)
    • 远程桌面-用户模式(UDP-In)
  • 安全组规则:
    • 允许TCP/3389
    • 允许ICMP(可以被ping)

放行RDP规则

放行ICMP

登录Windows Server

由于安装了网卡驱动,此时需要重启服务器完成安装。

  1. Microsoft

  2. Fedora Project