建立 Windows 映像檔

您可以透過現有的 Windows Server 執行個體,建立自訂 Windows Server 映像檔。透過這些自訂映像檔,建立具有與現有執行個體相同開機磁碟映像檔的執行個體。

對於在現有執行個體上保存作業系統的配置設定,以及重新使用相同的設定來建立其他執行個體,這些自訂映像檔非常實用。

如果您要用公開映像檔或是自訂映像檔建立執行個體,請參閱建立新的 Windows 執行個體相關說明。

如要定期備份永久磁碟的資料,請使用永久磁碟快照,而不是自訂映像檔。

如果您需要匯入 Windows Server 或 SQL Server 系統,請使用 VM 遷移服務

建立 Windows Server 映像檔

在您建立映像檔之前,請在執行個體上執行 GCESysprep,以針對映像檔建立程序做好準備。執行 GCESysprep 會停止執行個體;如果您無法停止執行個體,可以略過 GCESysprep 程序並直接建立映像檔,但這樣無法保證映像檔的完整性。

  1. 登入 Windows 執行個體,並且以管理員的身分開啟 PowerShell 或命令提示字元。
  2. 執行 GCESysprep,讓您的系統進行複製的準備作業。此指令會關閉執行個體,並且中止遠端桌面連線。

    GCESysprep
    

    GCESysprep

    1. 設定 instance_setup.ps1,以便在 VM 執行個體初次啟動時執行。
    2. 將主機名稱設為 VM 執行個體的名稱。
    3. 執行使用者提供的 specialize 開機指令碼,此指令碼可用來自訂 GCESysprep 指令碼。詳情請參閱執行開機指令碼一文。
    4. 使用金鑰管理服務 (KMS) 伺服器啟動 Windows。
    5. 設定遠端桌面通訊協定 (RDP) 和 Windows 遠端管理 (WinRM),以允許遠端登入。
  3. 建立映像檔。

指定映像檔位置

建立自訂映像檔時,您也可以指定映像檔的 Cloud Storage 位置,但不包括雙地區位置。藉由指定映像檔的儲存位置,您可以確保跨地區的備援功能,藉以遵循資料位置的法規並符合高可用性需求。

您可以自行選擇是否要使用儲存位置功能。如果未選擇位置,Compute Engine 會將映像檔儲存在最靠近映像檔來源的多地區位置。您可以從來源磁碟、映像檔、快照或儲存在 Cloud Storage 中的映像檔建立自訂映像檔。您可以使用這些映像檔,建立新的 VM 執行個體。

此功能推出前的所有現有映像檔都會保留在原來的位置。唯一的不同是,您可以檢視所有映像檔的所在位置。如要移動現有映像檔,則必須在所需位置重新建立檔案。

建立 Windows 映像檔

您可從下列來源建立磁碟映像檔:

  • 永久磁碟,即使該磁碟已連接執行個體。
  • 永久磁碟的快照
  • 專案中的另一個映像檔
  • 從另一個專案共用的映像檔
  • 儲存在 Cloud Storage 中的匯入映像檔

Console

  1. 在 Google Cloud Platform Console 中前往「Create a new image」(建立新的映像檔) 頁面。

    「Create a new image」(建立新的映像檔) 頁面

  2. 指定映像檔「Name」(名稱)。
  3. 選擇「Source」(來源) 磁碟,這個磁碟應具有您要建立映像檔的 Windows 作業系統。
  4. 指定儲存映像檔的「Location」(位置)。從 [Based on source disk location (default)] (根據來源磁碟位置 (預設值)) 下拉式選單中選擇映像檔位置。例如,指定 us 會將映像檔儲存在 us 多地區;指定 us-central1 則會儲存在 us-central1 地區。如果未選擇位置,Compute Engine 會將映像檔儲存在最靠近映像檔來源的多地區。
  5. 指定映像檔的屬性。例如,可以為映像檔指定映像檔系列名稱,以將此映像檔整理為映像檔系列的成員。
  6. 按一下 [Create] (建立)。

gcloud

使用 gcloud computeimages create,並提供您要用來建立映像檔的來源永久磁碟。您可選擇加入 --force 旗標以建立映像檔,即使該旗標已連結至執行中的執行個體。選用的 --storage-location 旗標中必須要提供 beta 標記。

gcloud beta compute images create example-image --source-disk [DISK_NAME] \
    --source-disk-zone [ZONE] \
    --storage-location [LOCATION] \
    [--force]
  • [DISK_NAME] 是要建立映像檔的來源磁碟名稱。
  • [ZONE] 是磁碟的區域。
  • [LOCATION] 是選用旗標,讓您指定要儲存映像檔的地區或多地區。例如,指定 us 會將映像檔儲存在 us 多地區;指定 us-central1 則會儲存在 us-central1 地區。如果未選擇位置,Compute Engine 會將映像檔儲存在最靠近映像檔來源的多地區。
  • --force 是選用旗標,即使磁碟已連結至執行中的執行個體仍可建立映像檔。這個選項可能會危害映像檔的完整性。如果可以的話,請在建立映像檔之前,停止執行個體。

當您執行此指令時,gcloud compute 會根據您提供的永久磁碟建立一個新映像檔,並將該映像檔加到您的集合中。執行下列指令即可確認映像檔是否已成功建立:

gcloud compute images list

API

images().insert 方法提出主體包含 sourceDisk 網址的 POST 要求。使用此 API 方法的 beta 版本來指定 storageLocations 參數。

POST https://compute.googleapis.com/compute/beta/projects/[PROJECT_ID]/global/images?[FORCE_OPTION]

{
  "name": "[IMAGE_NAME]",
  "sourceDisk": "zones/[ZONE]/disks/[DISK_NAME]",
  "storageLocations": "[LOCATION]",
}

其中:

  • [PROJECT_ID] 是這項要求的專案 ID。
  • [FORCE_OPTION] 是用來建立映像檔的選項,即使來源磁碟已連結至執行中的執行個體。請在 POST 行列末端指定 forceCreate=true,即可設定此選項。這個選項可能會危害映像檔的完整性。如果可以的話,請在建立映像檔之前,停止執行個體。
  • [IMAGE_NAME] 是您要為此映像檔指定的名稱。
  • [ZONE] 是要從中建立映像檔的來源磁碟區域。
  • [DISK_NAME] 是來源磁碟的名稱。
  • [LOCATION] 是選用參數,用來選取儲存映像檔的多地區或地區。例如,指定 us 會將映像檔儲存在 us 多地區;指定 us-central1 則會儲存在 us-central1 地區。如果未選擇位置,Compute Engine 會將映像檔儲存在最靠近映像檔來源的多地區。

如需更多新增映像檔的資訊,請參閱映像檔參考資料

更新 Windows 代理程式和指令碼

Compute Engine 偶爾會發佈包含最新代理程式和指令碼的新 Windows 映像檔。在處理 Windows 執行個體的啟動和關閉程序、帳戶管理以及位址管理等作業時,這些項目非常實用。

自 Windows 映像檔 v20160112 版起,Windows 代理程式會透過上游發布內容自行更新。您可將 disable-agent-updates 執行個體中繼資料鍵值設為 true 以停用代理程式更新。假如您有基於較舊映像檔版本的執行個體,則可以為這些執行個體手動更新 Windows 代理程式

後續步驟