因為我是在雲端虛擬電腦上自己安裝windows系統,
並且用API控制其伺服器在特定時間建立、移除以節省每月的使用金額,
這時候就需要搭配快照(Snapshot)來做到快速保存移除前的狀態
vultr平台還有一點很棒的地方就是它的Snapshot免費!!
本篇文基於主要處理用Snapshot不能開機自安裝windows解決方式,
所以關於API的python範例碼與相應的網站解說我會放在最後
這流程我卡關了兩個禮拜多.......
某天忽然跑得很順的模式就忽然開不了機!
遍尋不著解法的我就每天像鬼打牆一般的一直try&error
打算在免費測試到期前還是不行就不使用了!
沒想到在到期的前一天讓我熬夜搞定!!!(奇蹟!)
廢話不多說下面是正文~~~
總結不能開機的原因是驅動遺失.....
處理步驟上是:
1.搜尋並上傳virtio-win 的stable ISO檔連結到vultr平台(如下圖)
virtio-win下載點:https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md
選Stable版的ISO檔, 右鍵點選複製連結
到自己的vultr平台帳號中的ISO區點擊下方圖示的添加ISO部分貼上網址即可
(注意vultr只提供兩個ISO檔案的存放, 超過請自行斟酌移除)
2.用不能開機的Snapshot創建一台虛擬電腦Instance創建完後在該Instance選單中的settings => custom ISO點擊剛剛上傳的ISO檔
然後點擊附加並重啟裝置(Attach ISO and Reboot)
3.用View Console觀測Instance畫面, 此時應該卡在藍色的疑難排解的安全系統畫面
點擊進入執行命令提示字元的選項
在命令提示字元中先鍵入"notepad"按Enter, 再一次鍵入"notepad" 輸入
確定可以在開啟的notepad的【開啟舊檔】功能裡看到剛剛附加的光碟檔路徑(應該在D槽)
然後依次在命令提示字元中輸入下面這指令:
PNPUTIL /add-driver D:\viostor\w10\amd64\viostor.inf /install
按Enter, 等待跑完後再輸入下面的指令
DISM /Image:E:\ /Add-Driver /Driver:D:\viostor\w10\amd64\viostor.inf
按Enter
(上述動作再完成前沒擷取畫面.....請盡量自行領會!)
4.就可以離開疑難排解的安全系統重開機了
重開機後應該就可以順利登入,
登入後開啟裝置管理員
把沒有抓到的裝置重新蒐尋驅動到剛剛的光碟檔案即可!
➽用上述方式可以登入的主機,
之後再使用快照功能後, 為確保每次都能開機成功,
請每次創建完系統後都用要附加剛剛的驅動ISO, 就可直接登入了!
最後的API使用範例, 我以Snapshot Create Instance功能為範例
前置動作是要去帳號中開通API功能並得到API Key
下面貼上python的程式碼給大家參考, 還有網站的範例截圖
(請將有中文的部分置換成各自的參數)
相信有點底子的人能夠自行摸索與融會貫通.....
祝大家都能平順使用~
程式碼:
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 2 10:18:11 2021
@author: Saxon
"""
import requests
api_key = "輸入你的API Key"
name = "輸入你想要給裝置的名稱"
SnapshotID = "輸入你快照的ID"
url = "https://api.vultr.com/v2/instances"
headers = {"Authorization": "Bearer {}".format(api_key),
"Content-Type": "application/json"}
data = {
"region" : "nrt",
"plan" : "vhf-2c-2gb",
"label" : name,
"enable_ipv6" : "true",
"enable_private_network" : "true",
"snapshot_id" : SnapshotID
}
response = requests.post(url, json=data, headers=headers)