背景:
一个EC2的Windows实例出现了问题,豆子打算从备份的EBS快照上创建一个AMI镜像,然后再通过镜像创建一个新的实例。然后问题来了,同样的操作在Linux上执行过几次都没问题,但是没想到在Windows上面就行不通了。问题出在AMI的镜像上面,通过EBS快照创建的Windows镜像,他显示的平台是其他Linux,如果我在通过他来启动一个实例的话,这个实例我根本就无法访问。
解决方式:
通过AWS命令行来创建AMI
https://docs.aws.amazon.com/cli/latest/reference/ec2/import-image.html
执行下面命令,他会通过指定的snapshotid创建一个AMI这个过程比较慢,豆子100 g的硬盘大概花了30分钟来创建
<代码> aws ec2 import-image——许可类型aws disk-containers SnapshotId=snap-XXXXXXXXX 代码>
在等待的过程中,可以通过下面的命令来查看进度
<代码> aws ec2 describe-import-image-tasks——import-task-ids import-ami-XXXXXXX 代码>
创建好之后发现正确的显示了windows平台为
这样就可以通过这个AMI再次创建EC2实例了。
更改登录密码
创建成功之后可能会有另外一个问题。这个新创建的服务器如果历史比较久,机器密码过期,那会失去了和广告的信任连接,这意味我们需要用本地管理员账号登录。这种通过快照还原的实例没法通过EC2的控制面板直接修改管理员密码,我们可以通过下面的方法进行重设
2012窗口 https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ResettingAdminPassword_EC2Config.html
Windows 2016 https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ResettingAdminPassword_EC2Launch.html
简单的说就是三步:
-
<李>关机,分离操作系统的体积李>
<李>把这个卷附加到其他实例上,然后修改亚马逊\ Ec2ConfigService \ \程序文件\ \配置设置。启用xml文件、残疾人改成李>
-
<李>
最后再把这个体积重新填写回到原先的实例上,注意挂载名为/dev/sda1
李> <李>重新设置密码登录即可李>