如何在Amazon EC2上创build较小的磁盘大小的Windows实例?

有谁知道如何在Amazon EC2上创build更小的磁盘大小的Windows实例? 他们的默认值为30 GB,我必须为EBS存储支付0.10美元/ GB /月,这意味着对于每个Windows实例,我必须每月支付额外的3美元。 如果我有100个实例,浪费了300美元。 我对5GB甚至更小的Windows实例感到非常满意。 谢谢!

这似乎已经在Win2008-R2上完成了,根据http://support.rightscale.com/09-Clouds/AWS/FAQs/How_do_I_shrink_an_EBS-backed_HVM_Windows_AMI%3F

  1. 直接从要resize的映像启动实例,而不是使用服务器模板。 请确保将您拥有私钥资料的SSH密钥轻松关联,以便login。
  2. 实例运行后,从AWS控制台检索pipe理员密码。 另外,通过单击AWS控制台中实例描述中的设备名称(通常为/ dev / sda1)来标识用作根设备的卷的快照标识。
  3. 使用上一步获取的快照ID从要resize的图像创build一个卷,并将其附加到实例中。
  4. 使用缩小图像的所需大小创build并附加空白EBS卷。
  5. 打开实例的RDP会话。
  6. 打开服务器pipe理器,然后在服务器摘要部分下,滚动到安全信息。 点击configurationIE ESC设置; 禁用pipe理员。 现在,转到存储,启用包含图像的附加磁盘(右键单击并设置为联机),然后格式化并标记为空磁盘(这应该是e :)。
  7. 要继续,您需要安装imagex。 您可以从Microsoft获得完整的WAIK套件,或使用此应用程序select性地下载所需的工具: http : //theoven.org/index.php?topic=287
  8. 打开命令提示符并按照上一步中的安装步骤cd cd到waik_3。
  9. 调用imagex,如下所示,其中C:是根设备,D:是包含要缩小的图像的卷,E:是空卷。

    imagex.exe / capture d:\ c:\ server-image.wim“Windows Server Image”imagex.exe / apply c:\ server-image.wim 1 e:

  10. closures您的RDP会话,并从AWS控制台停止实例。

  11. 分离所有的卷; 将较小的卷重新挂接为/ dev / sda1; 另外两个卷(原始的根设备和包含图像源的卷)应该被销毁。
  12. 启动实例以确认新图像正在运行; 使用EC2工具运行sysprep并停止实例。 否则,请跳到下一步。

之后,新的实例可能无法启动,因此您需要使用http://www.smattie.com/2011/12/21/windows-72008r2-does-not-load-after-adding-the-drive -to-another-machine-that-also-uses-new-bcd-store /和https://technet.microsoft.com/en-us/library/cc731245(WS.10).aspx :

bootsect /nt60 D: /mgr C:\windows\system32\bcdboot.exe E:\Windows /s D: bcdedit /store D:\Boot\BCD /set {default} device partition=E: bcdedit /store D:\Boot\BCD /set {default} osdevice partition=E: bcdedit /store D:\Boot\BCD /set {bootmgr} device partition=E: 

磁盘签名也需要使用regedit和DISKPART来解决,如下所述http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-passwords.html#ResettingAdminPassword – 步骤8:

如果临时实例基于原始实例所基于的相同AMI,并且操作系统晚于Windows Server 2003,则必须完成以下步骤,否则恢复后将无法启动原始实例它的根卷因为磁盘签名冲突。

  1. 在registry编辑器中,将以下registryconfiguration单元加载到名为BCD的文件夹中:d:\ boot \ bcd。
  2. 在BCD中search以下数据值:“Windows启动pipe理器”。 您将在名为12000004的密钥下find匹配项。
  3. select与您在上一步中find的密钥同名的密钥11000001。 查看元素值的数据。
  4. find数据中偏移量为0x38的四字节磁盘签名。 反转字节以创build磁盘签名,并写下来。 例如,以下数据表示的磁盘签名是E9EB3AA5:

    0030 00 00 00 00 01 00 00 00

    0038 A5 3A EB E9 00 00 00 00

    0040 00 00 00 00 00 00 00 00

  5. 在“命令提示符”窗口中,运行以下命令启动Microsoft DiskPart。

    C:> diskpart

  6. 运行以下DiskPart命令来select卷。 (您可以使用“磁盘pipe理”实用程序validation磁盘号是否为1。

    DISKPART>select磁盘1

  7. 磁盘1现在是选定的磁盘。 运行以下DiskPart命令以获取磁盘签名。

    DISKPART>唯一磁盘磁盘ID:0C764FA8

  8. 如果上一步中显示的磁盘签名与前面写下的BCD的磁盘签名不匹配,请使用以下DiskPart命令更改磁盘签名,使其与以下内容匹配:

    DISKPART>唯一磁盘ID = E9EB3AA5

完成:

  1. 从临时实例中分离辅助卷,如下所示:

    一个。 使用“磁盘pipe理”实用程序使卷脱机。

    注意如果临时实例正在运行与受影响的操作系统相同的操作系统,则该驱动器将自动脱机
    实例,因此您不需要手动将其脱机。 从Amazon EC2控制台的导航窗格中,单击卷。

    湾 在卷列表中,右键单击该卷,然后单击分离卷。 在卷状态变为可用之后,继续下一步。

  2. 将卷重新连接到原始实例作为其根卷,如下所示:

    一个。 用鼠标右键单击该卷,然后单击附加卷。

    湾 在“附加卷”对话框中,开始在“实例”列表中input原始实例的名称或ID,然后select该实例。

    C。 在设备框中input/ dev / sda1。

    d。 单击是,附加。

  3. 重新启动原始实例,如下所示:

    一个。 在导航窗格中,单击实例。

    湾 用鼠标右键单击原始实例,然后单击开始。

    C。 在“开始实例”对话框中,单击“是,开始”。

此时,您可以使用较小的启动卷创build一个新的映像