我无法启动我的实例,并且在运行 describe-instances 命令时看到 Client.InternalError。如何解决此问题?
上次更新时间:2020 年 3 月 30 日
我尝试启动我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例,要么实例无法启动且未返回错误消息,要么实例无法启动但返回错误消息“Client.InternalError”。如何解决此问题?
简短描述
您收到 Client.InternalError 消息可能是由于多个原因:
您的 Elastic Block Store (Amazon EBS) 卷未正确附加到实例。附加到实例的 EBS 卷处于错误状态。
附加到实例的 EBS 卷被加密。
注意:如果您的实例无法启动且未显示错误代码,请运行 describe-instances 命令。然后,指定实例 ID。在以下示例中,使用您尝试启动的实例的 ID 替换 MYINSTANCE。
aws ec2 describe-instances --instance-id MYINSTANCE --output json
检查由命令返回的 JSON 响应中的 StateReason 消息。
在以下示例中,返回的 StateReason 是“Client.InternalError”。
"StateReason": {
"Message": "Client.InternalError: Client error on launch",
"Code": "Client.InternalError"
},
解决方法
EBS 卷未正确附加到实例
如果 EBS 根卷未作为 /dev/sda1 或 /dev/xvda 附加到实例,并且另一个 EBS 卷具有重复或冲突的设备名称,则无法停止或启动该实例。
-
打开 Amazon EC2 控制台,然后选择您无法启动的实例。
在描述选项卡上,确认哪些设备名称列在禁止设备中。禁止设备字段会显示所有已附加卷的设备名称。
确认根设备已正确附加,并且没有列出具有相同名称或名称冲突的设备。
如果存在具有相同名称或名称冲突的设备,则分离存在冲突的卷,并对其进行重命名。然后,重新附加具有已更新设备名称的卷。
一个附加的 EBS 卷处于错误状态
打开 Amazon EC2 控制台,选择卷,然后验证卷的状态是否为错误。您的选项因处于错误状态的卷是根卷还是辅助卷而异。
如果处于错误状态的卷是辅助卷,则分离该卷。现在,您可以启动该实例。
如果处于错误状态的卷是根卷,并且您有卷的快照,则执行以下操作:
-
分离该卷。
从快照创建一个新卷。
使用原始实例的设备名称,将新卷连接到该实例。启动实例。
注意:如果处于错误状态的卷是根卷,但您目前没有卷的快照,则无法重新启动该实例。您必须重建该实例。
附加的卷被加密
如果附加的卷被加密,请验证以下内容:
用于加密该卷的 AWS Key Management Service (AWS KMS) 密钥已启用。尝试启动实例的用户具有正确的 IAM 权限。
该密钥具有正确的密钥策略。
注意:要验证卷是否已加密,请打开 Amazon EC2 控制台,然后选择卷。已加密的卷会在加密列中显示为已加密。