前期准备

虚拟环境使用 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 editionKMS Client Product Key
Windows Server 2008 R2 Web6TPJF-RBVHG-WBW2R-86QPH-6RTM4
Windows Server 2008 R2 HPC editionTT8MH-CG224-D3D7Q-498W2-9QCTX
Windows Server 2008 R2 StandardYC6KT-GKW9T-YTKYR-T4X34-R7VHC
Windows Server 2008 R2 Enterprise489J6-VHDMP-X63PK-3K798-CPX3Y
Windows Server 2008 R2 Datacenter74YFP-3QFB3-KQT8W-PMXWJ-7M648
Windows Server 2008 R2 for Itanium-based SystemsGT63C-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.exeMicrosoft .NET Framework 4.5https://www.microsoft.com/zh-cn/download/details.aspx?id=42642
Windows6.1-KB2506143-x64.msuWindows Management Framework 3.0https://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.zipAWS PV 驱动 (适用于 xen 类型实例)https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/8.3.5/AWSPVDriver.zip
AwsEnaNetworkDriver.zipENA 网卡驱动 (适用于 nitro 类型实例)https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.2.3/AwsEnaNetworkDriver.zip
AWSNVMe.zipNVMe 存储驱动 (适用于 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 盘.
在这里插入图片描述

安装补丁

注意按照下面顺序安装补丁包(因为有顺序依赖):

  1. KB3033929 (需要重启)
  2. KB4474419 (需要重启)
  3. NDP452-KB2901907-x86-x64-AllOS-ENU.exe
  4. 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

在这里插入图片描述

更多推荐