1. 程式人生 > >AWS 如何從EBS Snapshot 恢復 Windows 系統

AWS 如何從EBS Snapshot 恢復 Windows 系統

背景:

一個EC2 的 Windows 例項出現了問題,豆子打算從備份的EBS Snapshot上建立一個AMI 映象,然後再通過映象建立一個新的例項。然後問題來了,同樣的操作在Linux上執行過幾次 都沒問題,但是沒想到在Windows上面就行不通了。問題出在AMI的映象上面,通過EBS Snapshot建立的 Windows 映象,他顯示的Platform 是 other Linux, 如果我在通過他來launch一個例項的話,這個例項我根本就無法訪問。

AWS 如何從EBS Snapshot 恢復 Windows 系統

解決方式:

通過AWS 命令列來建立AMI

https://docs.aws.amazon.com/cli/latest/reference/ec2/import-image.html

執行下面命令,他會通過指定的snapshotid建立一個AMI 這個過程比較慢,豆子100G的硬碟大概花了30分鐘來建立

aws ec2 import-image --license-type AWS --disk-containers SnapshotId=snap-XXXXXXXXX

在等待的過程中,可以通過下面的命令來檢視進度

aws ec2 describe-import-image-tasks --import-task-ids import-ami-XXXXXXX

建立好之後 發現正確的顯示了Platform 為 windows

AWS 如何從EBS Snapshot 恢復 Windows 系統

這樣就可以通過這個AMI再次建立EC2 例項了。

更改登入密碼

建立成功之後 可能會有另外一個問題。這個新建立的伺服器如果歷史比較久,機器密碼過期,那會失去了和AD的信任連線,這意味我們需要用本地管理員賬號登入。這種通過snapshot還原的instance沒法通過EC2的控制面板直接修改管理員密碼,我們可以通過下面的方法進行重設

Window 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

簡單的說就是三步:

  1. 關機,detach 作業系統的volume
  2. 把這個volume attach到其他instance上,然後修改 \Program Files\Amazon\Ec2ConfigService\Settings\config.xml 檔案, disabled 改成 Enabled

AWS 如何從EBS Snapshot 恢復 Windows 系統

  1. 最後再把這個volume 重新 attch 回到原先的instance上,注意掛載名為 /dev/sda1

  2. 重新設定密碼 登入即可