AWS 如何從EBS Snapshot 恢復 Windows 系統
背景:
一個EC2 的 Windows 例項出現了問題,豆子打算從備份的EBS Snapshot上建立一個AMI 映象,然後再通過映象建立一個新的例項。然後問題來了,同樣的操作在Linux上執行過幾次 都沒問題,但是沒想到在Windows上面就行不通了。問題出在AMI的映象上面,通過EBS Snapshot建立的 Windows 映象,他顯示的Platform 是 other Linux, 如果我在通過他來launch一個例項的話,這個例項我根本就無法訪問。
解決方式:
通過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
這樣就可以通過這個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
簡單的說就是三步:
- 關機,detach 作業系統的volume
- 把這個volume attach到其他instance上,然後修改 \Program Files\Amazon\Ec2ConfigService\Settings\config.xml 檔案, disabled 改成 Enabled
-
最後再把這個volume 重新 attch 回到原先的instance上,注意掛載名為 /dev/sda1
- 重新設定密碼 登入即可