Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

常见问题

以下是一些故障排除技巧,可帮助您解决与运行 Windows Server 的 EC2 实例相关的常见问题。

EBS 卷在 Windows Server 2016 及更高版本的 AMI 上不初始化

通过 Windows Server 2016 及更高版本的 Amazon 系统映像 (AMI) 创建的实例使用 EC2Launch 服务来执行各种启动任务,包括初始化 EBS 卷。默认情况下,EC2Launch 不初始化辅助卷。您可以将 EC2Launch 配置为自动初始化这些磁盘。

将盘符映射到卷

  1. 连接到要配置的实例并在文本编辑器中打开 C:\ProgramData\Amazon\EC2-Windows\Launch\Config\DriveLetterMappingConfig.json 文件。

  2. 使用以下格式指定卷设置:

    { "driveLetterMapping": [ { "volumeName": "sample volume", "driveLetter": "H" } ] }
  3. 保存更改并关闭文件。

  4. 打开 Windows PowerShell 并使用以下命令来运行初始化磁盘的 EC2Launch 脚本:

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1

    要在每次实例启动时初始化磁盘,请添加 -Schedule 标记,如下所示:

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1 -Schedule

将 EC2 Windows 实例启动至目录服务还原模式 (DSRM)

如果运行 Microsoft Active Directory 的实例遇到系统故障或其他关键问题,您可以通过启动至特殊版本的安全模式(称为目录服务还原模式 (DSRM))对该实例进行故障排除。在 DSRM 中,您可以修复或恢复 Active Directory。

DSRM 的驱动程序支持

您启用 DSRM 和启动至实例的方式取决于实例正在运行的驱动程序。在 EC2 控制台中,您可以从系统日志查看实例的驱动程序版本详细信息。下表显示了 DSRM 支持的驱动程序。

驱动程序版本 DSRM 是否支持? 后续步骤
Citrix PV 驱动程序 5.9 从备份还原实例。您无法启用 DSRM。
AWS PV 驱动程序 7.2.0 尽管该驱动程序不支持 DSRM,但您仍可以将根卷从实例分离并为其创建快照或 AMI,然后将其作为辅助卷附加到同一个可用区中的其他实例。然后,您可以按照本部分的说明启用 DSRM。
AWS PV 驱动程序 7.2.2 和更高版本 分离根卷,将其附加到其他实例,然后启用 DSRM (如本节中所述)。
增强联网 分离根卷,将其附加到其他实例,然后启用 DSRM (如本节中所述)。

有关如何启用增强联网功能的信息,请参阅在 VPC 中的 Windows 实例上启用增强联网功能。有关升级 AWS PV 驱动程序的更多信息,请参阅在 Windows 实例上升级半虚拟化驱动程序

将实例配置为启动至 DSRM

在操作系统运行前,EC2 Windows 实例没有网络连接。因此,您无法通过按键盘上的 F8 键来选择启动选项。您必须使用以下过程之一将 EC2 Windows Server 实例启动至 DSRM。

如果您怀疑 Active Directory 已损坏,但该实例仍在运行,则可以使用 System Configuration 对话框或命令提示符将该实例配置为启动至 DSRM。

使用 System Configuration 对话框将在线实例启动至 DSRM

  1. Run 对话框中,键入 msconfig 并按下 Enter。

  2. 选择 Boot 选项卡。

  3. Boot options 下,选择 Safe boot

  4. 选择 Active Directory repair,然后选择 OK。系统将提示您重新启动服务器。

使用命令行将在线实例启动至 DSRM

从命令提示符窗口运行以下命令:

bcdedit /set safeboot dsrepair

如果某个实例处于离线状态并且无法访问,您必须先分离根卷并将其附加到其他实例才能启用 DSRM 模式。

将离线实例启动至 DSRM

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择实例

  3. 找到受影响的实例。打开实例的上下文(右键单击)菜单,选择 Instance State,然后选择 Stop

  4. 选择 Launch Instance 并在与受影响实例相同的可用区中创建临时实例。选择使用其他 Windows 版本的实例类型。例如,如果您的实例是 Windows Server 2008,则选择 Windows Server 2008 R2 实例。

    重要

    如果您未在与受影响实例相同的可用区中创建该实例,则无法将受影响的实例的根卷附加到新实例。

  5. 在导航窗格中,选择 Volumes

  6. 找到受影响的实例的根卷。分离该卷并将其附加到早先创建的临时实例。使用默认设备名称 (xvdf) 附加该卷。

  7. 使用远程桌面连接临时实例,然后通过磁盘管理实用工具使该卷可供使用

  8. 打开命令提示符窗口并运行以下命令。将 D 替换为您刚刚附加的辅助卷的实际驱动器号:

    bcdedit /store D:\Boot\BCD /set {default} safeboot dsrepair
  9. 在磁盘管理实用工具中,选择您之前附加的驱动器,打开上下文(右键单击)菜单,然后选择脱机

  10. 在 EC2 控制台中,将受影响的卷从临时实例分离,然后将其重新附加到设备名称为 /dev/sda1 的原始实例。您必须指定此设备名称才能将卷指派为根卷。

  11. 启动实例。

  12. 在实例将健康检查传入 EC2 控制台后,使用远程桌面连接到实例,然后验证实例是否启动至 DSRM 模式。

  13. (可选) 删除或停止您在本过程中创建的临时实例。

实例失去网络连接或计划的任务不按预期方式运行

如果您重新启动实例而该实例失去网络连接,则可能该实例的时间不正确。

默认情况下,Windows 实例使用协调世界时 (UTC)。如果将实例的时间设置为不同的时区,然后再重新启动实例,则时间会发生偏移,该实例暂时失去其 IP 地址。实例最终会重新获取网络连接,但这可能要用数小时的时间。实例重新获取网络连接所用的时间取决于 UTC 与其他时区之间的差异。

这种时间问题也可能导致计划的任务不如期运行。在这种情况下,计划的任务会因实例的时间不正确而不如期运行。

要持久使用 UTC 以外的时区,您必须设置 RealTimeIsUniversal 注册表项。若不设置此项,则实例会在重新启动后使用 UTC。

解决造成网络连接丢失的时间问题

  1. 确保所运行的是建议的半虚拟化驱动程序。有关更多信息,请参阅在 Windows 实例上升级半虚拟化驱动程序

  2. 验证以下注册表项存在并且已设置为 1HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

无法获取控制台输出

对于 Windows 实例,实例控制台显示在 Windows 引导过程中执行的任务的输出。如果 Windows 成功启动,则最后记录的消息是 Windows is Ready to use。请注意,您也可以在控制台中显示事件日志消息,但默认情况下未启用此功能。有关更多信息,请参阅EC2 服务属性

要使用 Amazon EC2 控制台获取您的实例的控制台输出,请选择该实例,然后依次选择 Actions (操作)Instance Settings (实例设置)Get System Log (获取系统日志)。要使用命令行获取控制台输出,请使用以下命令之一:get-console-output (AWS CLI) 或 Get-EC2ConsoleOutput (适用于 Windows PowerShell 的 AWS 工具)。

对于运行 Windows Server 2012 R2 和更早版本的实例,如果控制台输出为空,则可能表示 EC2Config 服务出现问题(如未正确配置的配置文件),或者 Windows 无法正确引导。要修复该问题,请下载并安装最新版本的 EC2Config。有关更多信息,请参阅 安装最新版的 EC2Config

网络上不可用的 Windows Server 2012 R2

有关对网络上不可用的 Windows Server 2012 R2 实例进行故障排除的信息,请参阅 Windows Server 2012 R2 在实例重启后丢失网络和存储连接