使用 VM-Import 导入 Windows Server 2008 R2 EC2 完整步骤
前期准备
虚拟环境使用 VMWare Workstation Pro, 现在免费了, 直接从官网自行下载安装即可.
下载准备 Windows Server 2008 R2 Vol 安装镜像对应的 ISO 文件:
ed2k://|file|cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.iso|3368962048|7C210CAC37A05F459758BCC1F4478F9E|/
注: 链接出自 https://msdn.itellyou.cn/ , 注意下载带 VL 后缀的批量授权版本, 可以使用微软公开的产品密钥通过 KMS 服务器进行批量激活.
下载后最好使用 Get-FileHash 命令校验 SHA1 A92C97C38EF6ED5F827637179052AD218900377A
Get-FileHash -Algorithm SHA1 .\cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.iso
Algorithm Hash Path
--------- ---- ----
SHA1 A92C97C38EF6ED5F827637179052AD218900377A C:\Users\lpwm\Downloads\cn_wind…
准备对应 Edition 的产品序列号, 源自微软官网:
| Operating system edition | KMS Client Product Key |
|---|---|
| Windows Server 2008 R2 Web | 6TPJF-RBVHG-WBW2R-86QPH-6RTM4 |
| Windows Server 2008 R2 HPC edition | TT8MH-CG224-D3D7Q-498W2-9QCTX |
| Windows Server 2008 R2 Standard | YC6KT-GKW9T-YTKYR-T4X34-R7VHC |
| Windows Server 2008 R2 Enterprise | 489J6-VHDMP-X63PK-3K798-CPX3Y |
| Windows Server 2008 R2 Datacenter | 74YFP-3QFB3-KQT8W-PMXWJ-7M648 |
| Windows Server 2008 R2 for Itanium-based Systems | GT63C-RJFQ3-4GMB6-BRFB9-CB83V |
注: 后面的示例基于 Windows Server 2008 R2 Standard
VMWare 准备虚拟机



注意序列号要和选择的发行版一致


硬盘给 32GB 就够了, 上云之后还能随便调整. 注意选择 Store virtual disk as a single file

等待安装完成


Windows 系统配置
注: 要让系统能够正常运行到 EC2 的虚拟环境, 需要提前准备好对应的驱动程序, 这一步至关重要.
首先准备需要安装用到的补丁包和驱动安装程序:
| 文件名称 | 说明 | 下载链接 |
|---|---|---|
| NDP452-KB2901907-x86-x64-AllOS-ENU.exe | Microsoft .NET Framework 4.5 | https://www.microsoft.com/zh-cn/download/details.aspx?id=42642 |
| Windows6.1-KB2506143-x64.msu | Windows Management Framework 3.0 | https://www.microsoft.com/en-us/download/details.aspx?id=34595 |
| Windows6.1-KB3033929-x64.msu | 必要安全更新 | https://www.microsoft.com/en-us/download/details.aspx?id=46083 |
| windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu | 必要安全更新(用于支持 SHA-2代码签名 | https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu |
| AWSPVDriver.zip | AWS PV 驱动 (适用于 xen 类型实例) | https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/8.3.5/AWSPVDriver.zip |
| AwsEnaNetworkDriver.zip | ENA 网卡驱动 (适用于 nitro 类型实例) | https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.2.3/AwsEnaNetworkDriver.zip |
| AWSNVMe.zip | NVMe 存储驱动 (适用于 nitro 类型实例) | https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/1.3.2/AWSNVMe.zip |

因为我们是要将准备好的系统导出导入到 EC2 中使用, 不建议在虚拟机中安装 VMware Tools 以及相关的驱动. 我们使用远程桌面的方式将本地文件夹复制到虚拟机中.
打开 服务器管理器 > 配置远程桌面

注意选择 允许任意版本 否则会由于 Windows Server 2008 R2 默认使用的加密协议版本过低而无法从本地连接.

关闭虚拟机, 打开虚拟机设置, 删除无用的光驱和软驱设备

修改网络模式为 Host-only, 再开机

打开 PowerShell 运行 ipconfig 查看虚拟机的 IP 地址

从自己电脑上运行 mstsc /v:192.168.113.131 通过 RDP 连接到虚拟机远程桌面, 将自己电脑上准备好的补丁和驱动文件夹复制到虚拟机的 C 盘.

安装补丁
注意按照下面顺序安装补丁包(因为有顺序依赖):
- KB3033929 (需要重启)
- KB4474419 (需要重启)
- NDP452-KB2901907-x86-x64-AllOS-ENU.exe
- KB2506143 (需要重启)
安装 PV 驱动
PV 驱动是启动 xen 类型实例必须的, 例如 t2, m3
解压 AWSPVDriver.zip

打开 PowerShell 执行 AWSPVDriver 文件夹中的 install.ps1
Set-ExecutionPolicy -ExecutionPolicy Bypass
&'C:\Win2k8\AWSPVDriver\install.ps1'





点击 Close 之后会自动重启

安装 nitro 驱动
nitro 实例类型, 例如 t3, m5 需要用到 ENA (网卡) 和 NVMe (存储) 驱动
解压 AwsEnaNetworkDriver.zip 和 AWSNVMe.zip 在 PowerShell 中分别执行对应文件夹中的 install.ps1 进行安装:
&'C:\Win2k8\AwsEnaNetworkDriver\install.ps1'
&'C:\Win2k8\AWSNVMe\install.ps1'

sysprep
参考 文档 准备 C:\Windows\unattend.xml 文件.
注: VMware 使用快速模式安装系统的时候已经创建了这个文件, 直接用记事本打开后替换成下面内容即可
<?xml version='1.0' encoding='UTF-8'?>
<unattend xmlns:wcm='https://schemas.microsoft.com/WMIConfig/2002/State' xmlns='urn:schemas-microsoft-com:unattend'>
<settings pass='oobeSystem'>
<component versionScope='nonSxS' processorArchitecture='amd64' name='Microsoft-Windows-International-Core' publicKeyToken='31bf3856ad364e35' language='neutral'>
<InputLocale>en-US</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component versionScope='nonSxS' processorArchitecture='amd64' name='Microsoft-Windows-Shell-Setup' publicKeyToken='31bf3856ad364e35' language='neutral'>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
</component>
</settings>
</unattend>
点击开始菜单 > 运行 > C:\Windows\System32\Sysprep\sysprep.exe
注意勾选 通用, 选择 关机

至此, 系统准备完毕
导出虚拟机
注意, 虚拟机直接对应的 vmdk 文件并不能用于 VM-Import 导入, 需要将其转换为 Stream-optimized ESX Virtual Machine Disk (VMDK) 格式
等待 sysprep 完成, 虚拟机自动关闭后, 在自己电脑上打开 PowerShell 使用下面命令进行转换:
& 'C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe' -r 'G:\VM\Windows Server 2008 R2 x64\Windows Server 2008 R2 x64.vmdk' -t 5 'G:\win2k8.vmdk'
其中:
-r 后面传入原始的 VMDK 文件
-t 5 表明要转换的目标格式为 Stream-optimized
最后的路径是要输出的新文件位置

等待导出完成后, 将新的 VMDK 文件上传到 S3
aws s3 cp G:\win2k8.vmdk s3://lpwm/vm/
上传完成后, 文件在 S3 中的存储路径为 s3://lpwm/vm/win2k8.vmdk
使用 VM-Import 导入
在本机 PowerShell 中使用下面 AWS CLI 命令创建导入任务:
aws ec2 import-image --description "Windows Server 2008 VM Import" --disk-containers '[{"Format": "VMDK", "UserBucket": {"S3Bucket": "lpwm", "S3Key": "vm/win2k8.vmdk"}}]' --license-type "AWS"
注: 如果希望使用 BYOL, 需要修改参数
--license-type "BYOL"
记录输出结果中的 ImportTaskId 用于后续查询进度

观察导入任务进度:
aws ec2 describe-import-image-tasks --import-task-ids import-ami-b0e7a92bde056f05t
主要留意 StatusMessage 的变化, 等待变为 completed, 记录 ImageId

启动 EC2 实例
使用上面记录的 ImageId 在 EC2 控制台找到对应的 AMI, 启动 t3.micro 实例进行测试:

观察实例屏幕截图, 因为之前做过 sysprep, 所以首次启动速度会比较慢, 中间还会自动重启几次.


此时, 即可使用 RDP 客户端直接连接 EC2 实例.
更新电源管理设置
以下电源管理设置更新将显示器设置为从不关闭,从而允许在 Nitro 系统上正常关闭操作系统. 以管理员身份在PowerShell中执行下面命令:
powercfg /setacvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e 7516b95f-f776-4464-8c53-06167f40cc99 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e 0
powercfg /setacvalueindex 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c 7516b95f-f776-4464-8c53-06167f40cc99 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e 0
powercfg /setacvalueindex a1841308-3541-4fab-bc81-f71556f20b4a 7516b95f-f776-4464-8c53-06167f40cc99 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e 0
激活系统
注: 只有 VM-Import 期间使用
--license-type "AWS"才可以继续用 AWS 提供的 KMS 服务器进行激活
slmgr /skms 169.254.169.250
slmgr /ato
slmgr /dlv

更新 Windows
由于直接通过 ISO 安装的 Windows Server 2008 R2 SP1 系统版本太老了, 正常继续使用需要安装大量后续的补丁包, 这里推荐直接下载安装最新的补丁整合包 Simplix UpdatePack 7 25.11.11
推荐开始下载后复制下载链接, 粘贴到迅雷中下载速度比较理想, 一共有 800MB+
https://files3.majorgeeks.com/7bcca97b64e5efb74adae0b8aba45bbbde39f8ca/microsoft/UpdatePack7R2-25.11.11.exe

安装完成后重启系统, 继续观察实例屏幕截图

等待更新完成后即可再次 RDP 远程连接, PowerShell 执行命令 Get-HotFix 检查安装的更新列表:

但是安装的不行宝其实还不完整, 继续打开控制面板 > 系统和安全 > Windows Update 手动检查更新, 以在线方式安装所有可用更新. 该过程会比较耗时, 耐心等待…

全部更新完成并重启后, 检查已安装的补丁数量:
Get-HotFix | Measure-Object | Select-Object -ExpandProperty Count
163, 可能会有些许数量出入, 可以再次检查更新尽量安装完全.
[可选] 更新 Windows Management Framework 5.1
由于 WMF 5.1 跟 3.0 不能共存, 所以得先卸载补丁包 KB2506143, 卸载完成后系统重启.

下载 Windows Management Framework 5.1 , 注意下载 Win7AndW2K8R2-KB3191566-x64.zip
解压后在 PowerShell 中执行 Install-WMF5.1.ps1 进行安装和重启

重启后检查 PowerShell 版本变为 5.1

更多推荐
所有评论(0)