Windows 執行個體的常見問題 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Windows 執行個體的常見問題

下列的故障診斷秘訣可協助您解決 EC2 Windows Server 執行個體的相關問題。

EBS 磁碟區不是在 Windows Server 2016 和 2019 和更新版本上初始化

從適用於 Windows Server 2016 和 2019 和更新版本的 Amazon Machine Image (AMI) 建立的執行個體使用 EC2Launch v1 代理程式處理各種啟動任務,包括初始化 EBS 磁碟區。根據預設,EC2Launch v1 不會初始化輔助磁碟區。然而,您可以設定 EC2Launch v1 自動初始化這些磁碟,如下所示。

將磁碟機代號映射到磁碟區
  1. 連線至執行個體,以設定 C:\ProgramData\Amazon\EC2-Windows\Launch\Config\DriveLetterMappingConfig.json 檔案並在文字編輯器中開啟。

  2. 指定磁碟區設定如下:

    { "driveLetterMapping": [ { "volumeName": "sample volume", "driveLetter": "H" }] }
  3. 儲存您的變更並結束檔案。

  4. 開啟視窗, PowerShell 並使用下列命令來執行 EC2Launch v1 指令碼,以初始化磁碟:

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1

    若要在每次執行個體開機時初始化磁碟,請新增 -Schedule 標記,如下所示:

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1 -Schedule

    EC2Launch v1 代理程式可以執行執行個體初始化指令碼,例如與 InitializeInstance.ps1 指令碼平行處理的 initializeDisks.ps1。如果 InitializeInstance.ps1 指令碼會重新啟動執行個體,它可能會中斷執行個體啟動時執行的其他排程任務。為了避免任何潛在的衝突,我們建議您將邏輯新增至 initializeDisks.ps1 指令碼,以確保執行個體初始化已先完成。

    注意

    如果 EC2Launch 指令碼未初始化磁碟區,請確定磁碟區已上線。如果磁碟區離線,請執行下列命令以使所有磁碟上線。

    PS C:\> Get-Disk | Where-Object IsOffline -Eq $True | Set-Disk -IsOffline $False

在目錄服務還原模式 (DSRM) 中開機 EC2 Windows 執行個體

如果執行 Microsoft Active Directory 的執行個體發生系統故障或其他重大問題,您可在稱為目錄服務還原模式(DSRM) 的特殊版本安全模式中開機此執行個體,執行故障診斷。在 DSRM 中,您可修復或復原 Active Directory。

DSRM 的磁碟機支援

啟用 DSRM 和在執行個體中開機的方式取決於執行個體執行的磁碟機。在 EC2 主控台中,您可在系統日誌中檢閱執行個體的磁碟機版本詳細資訊。下表顯示 DSRM 支援的驅動程式。

驅動程式版本 是否支援 DSRM? 後續步驟
Citrix PV 5.9 從備份還原執行個體。您無法啟用 DSRM。
AWS PV 光伏 雖然此驅動程式不支援 DSRM,但您仍然可以分離根磁碟區與無法連線的執行個體、拍攝磁碟區快照或從磁碟區建立 AMI,然後將它連接到同一可用區域的另一個執行個體做為輔助磁碟區。然後即可啟用 DSRM (如本節中所述)。
AWS PV 7.2.2 及更高版本 分離根磁碟區、將它連接到其他執行個體,然後啟用 DSRM (如本節中所述)。
增強型聯網 分離根磁碟區、將它連接到其他執行個體,然後啟用 DSRM (如本節中所述)。

如需如何啟用增強型網路功能的相關資訊,請參閱使用 EC2 執行個體上的彈性網路介面卡 (ENA) 啟用增強型聯網。如需升級 AWS PV 驅動程式的相關資訊,請參閱升級 Windows 執行個體上的 PV 驅

設定執行個體在 DSRM 中開機

EC2 Windows 執行個體在作業系統執行前沒有網路連線。因此,您無法按鍵盤的 F8 按鈕選取開機選項。您必須使用下列其中一個程序,在 DSRM 中開機 EC2 Windows Server 執行個體。

如果您懷疑 Active Directory 已毀損,但執行個體仍在執行,您可設定此執行個體使用 System Configuration (系統組態) 對話方塊或命令提示在 DSRM 中開機。

使用 System Configuration (系統組態) 對話方塊在 DSRM 中開機線上執行個體
  1. Run (執行) 對話方塊中輸入 msconfig,然後按 Enter。

  2. 選擇 Boot (開機) 標籤。

  3. Boot options (開機選項) 下選擇 Safe boot (安全開機)

  4. 選擇 Active Directory repair (Active Directory 修復),然後選擇 OK (確定)。系統會提示您重新開機伺服器。

使用命令列在 DSRM 中開機線上執行個體

從命令提示視窗執行下列命令:

bcdedit /set safeboot dsrepair

如果執行個體離線且無法連線,您必須分離根磁碟區,然後將它連接到其他執行個體,以啟用 DSRM 模式。

在 DSRM 中開機離線執行個體
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 找出並選取受影響的執行個體。選擇 Instance state (執行個體狀態)Stop instance (停止執行個體)

  4. 選擇 Launch instances (啟動執行個體),並在與受影響執行個體相同的可用區域中,建立暫時性的執行個體。選擇使用不同 Windows 版本的執行個體類型。例如,如果您的執行個體是視窗伺服器 2016 年,請選擇視窗伺服器 2019 執行個體。

    重要

    若您沒有在與受影響的執行個體相同的可用區域內建立執行個體,您將無法將受影響執行個體的根磁碟區連接到新的執行個體。

  5. 在導覽窗格中,選擇 Volumes (磁碟區)

  6. 尋找受影響執行個體的根磁碟區。分離磁碟區,再將其連接至先前建立的暫時性執行個體。使用預設裝置名稱 (xvdf) 連接它。

  7. 使用遠端桌面連接至暫時性執行個體,然後使用 Disk Management 公用程式將磁碟區變成可用

  8. 開啟命令提示並執行下列命令。使用您剛連接之輔助磁碟區的實際磁碟機代號取代 D

    bcdedit /store D:\Boot\BCD /set {default} safeboot dsrepair
  9. 在磁碟管理公用程式中,選擇先前連接的磁碟機,開啟內容 (按右鍵) 選單,然後選擇 Offline (離線)

  10. 在 EC2 主控台中,將受影響的磁碟區與暫時性執行個體分離,然後將其重新連接至裝置名稱為 /dev/sda1 的執行個體。您必須指定此裝置名稱,將磁碟區指定為根磁碟區。

  11. 啟動實例。

  12. 在執行個體通過 EC2 主控台的運作狀態檢查後,使用遠端桌面連線到執行個體並確認它在 DSRM 模式中開機。

  13. (選用) 刪除或停止您在此程序中建立的暫時性執行個體。

執行個體遺失網路連線能力或排程任務未如預期執行

如果您重新啟動您的執行個體但它遺失網路連線能力,可能是執行個體的時間發生錯誤。

Windows 執行個體預設使用國際標準時間 (UTC)。如果您將執行個體的時間設至不同的時區然後重新啟動,就會發生時間位移,且執行個體會暫時遺失 IP 地址。執行個體最後會在重新取得網路連線能力,但這可能需要數小時。執行個體重新取得網路連線能力所需要的時間視 UTC 和其他時間之間的差異而定。

此相同的時間問題也會導致排程任務未如預期執行。在本例中,因為執行個體的時間不正確,所以排程的任務未如預期執行。

若要永久使用 UTC 以外的時區,您必須設定RealTimeIsUniversal登錄機碼。沒有這個機碼,執行個體會在重新啟動後使用 UTC。

解決造成網路連線能力遺失的時間問題
  1. 請務必執行建議的 PV 驅動程式。如需詳細資訊,請參閱 升級 Windows 執行個體上的 PV 驅動程式

  2. 確認下列登錄機碼存在且已設定為1HKEY_LOCAL_MACHINE\ 系統\ CurrentControl 設定\ 控制\ 資訊\ TimeZone RealTime IsUniversal

無法取得主控台輸出

若為 Windows 執行個體,執行個體主控台會顯示在 Windows 開機程序期間執行的任務輸出。如果 Windows 成功開機,最後記錄的訊息為 Windows is Ready to use。您也可以在主控台中顯示事件記錄訊息,但根據您的 Windows 版本,預設情況下可能不會啟用此功能。如需詳細資訊,請參閱 設定 Amazon EC2 視窗執行個體的啟動設定

若要使用 Amazon EC2 主控台取得執行個體的主控台輸出,請選取執行個體,然後選擇 Actions (動作)Monitor and troubleshoot (監視和故障診斷)Get system log (取得系統記錄檔)。要使用命令行獲取控制台輸出,請使用以下命令之一:獲取控制台輸出()或()AWS CLI。Get-EC2ConsoleOutputAWS Tools for Windows PowerShell

若是執行 Windows Server 2012 R2 或更舊版本的執行個體,如果主控台輸出是空的,可能表示 EC2Config 服務發生問題,例如設定錯誤的組態檔或 Windows 無法正確開機。若要修復此問題,請下載並安裝最新版的 EC2Config。如需詳細資訊,請參閱 安裝最新版本的 EC2Config

網路不提供 Windows Server 2012 R2

如需疑難排解無法在網路上使用的 Windows 伺服器 2012 R2 執行個體的相關資訊,請參閱 Windows 伺服器 2012 R2 在執行個體重新開機後中斷網路和儲存區連線

磁碟簽章衝突

您可以使用 EC2Rescue for Windows Server,檢查並解決磁碟簽章衝突。或者,您可以執行下列步驟,手動解決磁碟簽章問題。

警告

下列程序說明如何使用登錄編輯程式來編輯 Windows 登錄檔。如果您不熟悉 Windows 登錄檔或如何使用登錄編輯程式來安全地進行變更,請參閱 設定登錄檔

  1. 開啟命令提示,輸入 regedit.exe,然後按 Enter。

  2. 登錄編輯程式中,從內容功能表中選擇 HKEY_LOCAL_MACHINE (按一下右鍵),然後選擇 Find (尋找)。

  3. 輸入 Windows Boot Manager,然後選擇 Find Next (尋找下一個)。

  4. 選擇名為 11000001 的金鑰。此金鑰是您在上一個步驟中找到的金鑰的同級。

  5. 在右窗格中,選擇 Element,然後從內容功能表中選擇 Modify (修改)(按一下右鍵)。

  6. 在資料中的位移為 0x38 處找到四位元組的磁碟簽章。這是開機組態資料庫簽章 (BCD)。反轉位元組以建立磁碟簽章,然後寫下來。例如,下列資料所代表的磁碟簽章是 E9EB3AA5

    ... 0030 00 00 00 00 01 00 00 00 0038 A5 3A EB E9 00 00 00 00 0040 00 00 00 00 00 00 00 00 ...
  7. 在 [命令提示字元] 視窗中,執行下列命令以啟動 Microsoft DiskPart。

    diskpart
  8. 執行指select disk DiskPart 令並指定發生磁碟簽章衝突的磁碟區的磁碟編號。

    提示

    若要查看發生磁碟簽章衝突的磁碟區的磁碟編號,請使用磁碟管理公用程式。開啟命令提示,輸入 compmgmt.msc,然後按 Enter。在左側導覽面板中,按兩下磁碟管理。在磁碟管理公用程式中,查看發生磁碟簽章衝突的離線磁碟區的磁碟編號。

    DISKPART> select disk 1 Disk 1 is now the selected disk.
  9. 運行以下 DiskPart 命令以獲取磁盤簽名。

    DISKPART> uniqueid disk Disk ID: 0C764FA8
  10. 如果上一步中顯示的磁碟簽章與您先前寫下的磁碟簽章不符,請使用下列 DiskPart 命令來變更磁碟簽章,使其符合:

    DISKPART> uniqueid disk id=E9EB3AA5