有人知道如何在 Amazon EC2 上创建磁盘大小较小的 Windows 实例吗?它们的默认值是 30 GB,我必须为 EBS 存储支付 0.10 美元/GB/月,这意味着我必须为每个 Windows 实例每月额外支付 3 美元。如果我有 100 个实例,那就浪费了 300 美元。我对 5GB 甚至更小的 Windows 实例非常满意。谢谢!
答案1
似乎已经在 Win2008-R2 上完成了此操作, http://support.rightscale.com/09-Clouds/AWS/FAQs/How_do_I_shrink_an_EBS-backed_HVM_Windows_AMI%3F:
- 直接从要调整大小的映像启动实例,而不是使用服务器模板。确保关联一个 SSH 密钥,并且您手头有私钥材料,以便可以登录。
- 实例运行后,从 AWS 控制台检索管理员密码。此外,通过单击 AWS 控制台中实例描述中的设备名称(通常为 /dev/sda1)来识别用作根设备的卷的快照 ID。
- 使用上一步中获得的快照 ID 从您想要调整大小的图像创建一个卷,并将其附加到实例。
- 使用缩小图像的所需大小创建并附加空白 EBS 卷。
- 打开与实例的 RDP 会话。
- 打开服务器管理器,在服务器摘要部分下,滚动到安全信息。单击配置 IE ESC 设置;为管理员禁用。现在,转到存储,启用包含映像的附加磁盘(右键单击并设置为在线),然后格式化并将空磁盘标记为活动(这应该是 e:)。
- 要继续,您需要安装 imagex。您可以从 Microsoft 获取完整的 WAIK 套件,或使用此应用程序有选择地下载所需的工具:http://theoven.org/index.php?topic=287
- 打开命令提示符并 cd 到 waik_3,如上一步中安装的。
调用 imagex 如下,其中 C: 是根设备,D: 是包含要缩小的图像的卷,E: 是空卷。
imagex.exe /capture d:\ c:\server-image.wim “Windows 服务器映像” imagex.exe /apply c:\server-image.wim 1 e:
关闭您的 RDP 会话,并从 AWS 控制台停止实例。
- 分离所有卷;将较小的卷重新连接为 /dev/sda1;其他两个卷(原始根设备和包含映像源的卷)应被销毁。
- 启动实例以确认新映像可运行;使用 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,则您必须完成以下步骤,否则在恢复其根卷后,由于磁盘签名冲突,您将无法启动原始实例。
- 在注册表编辑器中,将以下注册表配置单元加载到名为 BCD 的文件夹中:d:\boot\bcd。
- 在 BCD 中搜索以下数据值:“Windows Boot Manager”。您会在名为 12000004 的键下找到匹配项。
- 选择名为 11000001 的键,它是您在上一步中找到的键的兄弟。查看元素值的数据。
在数据中偏移量 0x38 处找到四字节磁盘签名。反转字节以创建磁盘签名,并将其记下来。例如,以下数据表示的磁盘签名是 E9EB3AA5:
...
0030 00 00 00 00 01 00 00 00
0038 A5 3A EB E900 00 00 00
0040 00 00 00 00 00 00 00 00
...
在命令提示符窗口中,运行以下命令来启动 Microsoft DiskPart。
磁盘分区
运行以下 DiskPart 命令以选择卷。(您可以使用磁盘管理实用程序验证磁盘编号是否为 1。)
DISKPART>选择磁盘 1
磁盘 1 现在是选定的磁盘。运行以下 DiskPart 命令以获取磁盘签名。
DISKPART>uniqueid 磁盘磁盘 ID:0C764FA8
如果上一步中显示的磁盘签名与您之前记下的 BCD 中的磁盘签名不匹配,请使用以下 DiskPart 命令更改磁盘签名以使其匹配:
DISKPART>uniqueid 磁盘 id=E9EB3AA5
完成:
按如下方式将辅助卷从临时实例分离:
a. 使用磁盘管理实用程序,使卷脱机。
笔记如果临时实例与受影响的实例运行相同的操作系统
,驱动器将自动脱机,因此您无需手动将其脱机。在 Amazon EC2 控制台的导航窗格中,单击卷。b. 在卷列表中,右键单击卷,然后单击分离卷。卷的状态变为可用后,继续下一步。
将卷重新附加到原始实例作为其根卷,如下所示:
a. 右键单击该卷,然后单击附加卷。
b. 在附加卷对话框中,开始在实例列表中键入原始实例的名称或 ID,然后选择该实例。
c. 在设备框中,输入 /dev/sda1。
d. 单击“是,附加”。
按照如下方式重新启动原始实例:
a. 在导航窗格中,单击实例。
b. 右键单击原始实例,然后单击“开始”。
c. 在启动实例对话框中,单击是,启动。
此时,你可以创建一个具有较小启动卷的新映像