注册Windows Server镜像
- 适用平台:KVM/QEMU/Proxmox/oVirt
- 关键步骤:在Windows ISO镜像中嵌入VirtIO驱动
- 脚本兼容:Windows PowerShell 5.1(Windows11默认)及以上
- 版权声明:本文档仅用于向演示客户如何通过自定义Windows Server(2025版本)镜像注册到华为云上的过程
- 操作平台:基于Windows 11
- 文档日期:2025/12/25
1. 文档说明
Section titled “1. 文档说明”1.1 目的
Section titled “1.1 目的”本指南描述如何在 Windows Server 2025 安装 ISO 的根目录中添加 VirtIO 驱动文件夹,以便在虚拟化环境中安装系统时手动加载 VirtIO 存储、网络等驱动。不修改 install.wim,仅作为可选驱动源。
1.2 技术难度等级
Section titled “1.2 技术难度等级”- 中级
- 要求操作者具备:
- 熟悉 Windows 命令行与 PowerShell 基础
- 了解 ISO9660/UEFI 启动机制基本概念
- 能识别 Windows ADK 工具路径
- 具备虚拟化平台(如 Proxmox)基础操作能力
1.3 激活说明(云上部署)
Section titled “1.3 激活说明(云上部署)”- Windows Server 为商业授权软件。
- 用户需自备有效许可证(KMS、MAK 或云市场镜像授权)。
- 本文档不提供激活方案。上传至公有云时,应使用平台提供的 Windows Server BYOL(Bring Your Own License)或 Marketplace 镜像机制。
1.4 规划建议
Section titled “1.4 规划建议”- 使用镜像启动的虚拟机不支持挂载数据盘,不建议部署到生产环境
- 基于镜像启动的虚拟机应该作为母盘初始化,基于此虚拟机制作私有镜像,之后就可以批量部署、管理以及挂载数据盘正常使用
- 批量部署请参考基于Windows镜像批量部署
| 审查项 | 结论 |
|---|---|
| 是否修改系统核心映像? | 否。仅添加只读驱动目录,符合最小变更原则 |
| 是否破坏数字签名? | 否。install.wim 未被修改,微软签名仍有效 |
| 是否兼容 UEFI + BIOS? | 是。通过 -bootdata 显式指定双启动扇区 |
| 是否依赖非官方工具? | 否。oscdimg 为微软官方,7-Zip 为标准开源解压工具 |
| 是否适用于云环境? | 是。生成的 ISO 可用于 Proxmox、oVirt、OpenStack;AWS 不推荐直接使用自定义 ISO(应使用 AMI 导入),但技术可行 |
| 可重复性 | 高。脚本化流程,输入确定则输出一致 |
2. 资源清单
Section titled “2. 资源清单”| 资源 | 来源 | 说明 |
|---|---|---|
| Windows 11 主机 | 用户自有 | 用于执行镜像构建,需管理员权限 |
| Windows Server 2025 ISO | Microsoft 评估版 | 推荐官方 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) |
所有工具必须从上述官方渠道获取,禁止使用第三方修改版。
3. 关键概念
Section titled “3. 关键概念”| 概念 | 说明 |
|---|---|
| VirtIO 驱动 | 开源半虚拟化驱动,用于 KVM 环境提升 I/O 性能。包含 viostor(磁盘)、NetKVM(网卡)等 |
| ISO 根目录注入 | 将驱动以普通文件夹形式置于 ISO 顶层,供 Windows 安装程序“加载驱动程序”功能访问 |
| 可启动 ISO 重建 | 必须保留原 ISO 的 El Torito(BIOS)和 UEFI 启动扇区,否则无法引导 |
| oscdimg | 微软官方 ISO 打包工具,支持 -bootdata 参数指定双启动模式 |
4. 执行步骤
Section titled “4. 执行步骤”4.1 准备工作目录
Section titled “4.1 准备工作目录”# 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 }4.2 解压 Windows Server 2025 ISO
Section titled “4.2 解压 Windows Server 2025 ISO”- 使用 7-Zip GUI 或命令行解压 ISO 到
$ExtractedDir - 或挂载 ISO 后复制全部内容:
# 示例:假设 ISO 挂载为 E:\Copy-Item -Path "E:\*" -Destination $ExtractedDir -Recurse -Force验证:
Test-Path -Path $ExtractedDir\sources\install.wim必须存在。
4.3 提取并放置 VirtIO 驱动
Section titled “4.3 提取并放置 VirtIO 驱动”- 挂载
virtio-win-*.iso(例如挂载为 F:) - 复制整个驱动目录到 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\4.4 重建可启动 ISO
Section titled “4.4 重建可启动 ISO”4.4.1 确认 oscdimg 路径
Section titled “4.4.1 确认 oscdimg 路径”默认路径(ADK 10 或 11):
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\oscdimg.exe4.4.2 执行打包命令
Section titled “4.4.2 执行打包命令”$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 启动)
4.5 验证输出
Section titled “4.5 验证输出”- 输出文件:
C:\VirtIO_ISO_Work\WS2025_with_VirtIO.iso - 文件大小应与原 ISO 相近(略大)
- 使用 Rufus、Ventoy 写入 USB 并在 KVM 虚拟机中测试启动及驱动加载
- 大约8.5 GB
5. 注册镜像
Section titled “5. 注册镜像”5.1 上传到华为云OBS
Section titled “5.1 上传到华为云OBS”下载华为云OBS Browser+工具Windows x64

5.2 导入镜像
Section titled “5.2 导入镜像”镜像服务IMS -> 导入镜像



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

6. 启动服务器
Section titled “6. 启动服务器”在镜像页面点击安装服务器,可直接启动一台ECS。

7. 完成Windows Server安装
Section titled “7. 完成Windows Server安装”如果不熟悉Windows命令式操作,务必选择桌面体验

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



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

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

密码配置需要符合复杂度,即字母、数字和特殊字符。
系统安装完成。

8. 安装完整VirtIO驱动集
Section titled “8. 安装完整VirtIO驱动集”8.1 安装VirtIO驱动
Section titled “8.1 安装VirtIO驱动”进入CD驱动器 -> VirtIO -> 双击运行virtio-win-gt-x64。一路下一步完成安装。

8.2 检查驱动完整性
Section titled “8.2 检查驱动完整性”打开设备管理器,确保设备列表没有出现黄色叹号和问号

8.3 开启远程桌面
Section titled “8.3 开启远程桌面”
打开高级防火墙,放行远程桌面规则

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


8.4 使用RDP登录Windows服务器桌面
Section titled “8.4 使用RDP登录Windows服务器桌面”
由于安装了网卡驱动,此时需要重启服务器完成安装。
9. 增强功能
Section titled “9. 增强功能”10. 参考资料
Section titled “10. 参考资料”-
Microsoft
-
Fedora Project