本文介紹Windows執行個體無法啟動,通過VNC登入時提示“狀態:0xc000000e”錯誤的問題原因和解決方案。
問題現象
Windows執行個體無法正常啟動,通過VNC登入時提示“狀態:0xc000000e”錯誤。
可能原因
出現“0xc000000e”錯誤碼的原因可能有以下兩種:
系統記憶體在Xen驅動殘留,導致作業系統無法啟動。
磁碟簽名衝突:相同鏡像ID建立的A執行個體和B執行個體,其系統硬碟初始磁碟簽名相同。當A執行個體的系統硬碟作為資料盤在B執行個體上聯機時,Windows 系統為避免衝突會自動為其分配一個新的磁碟簽名。這導致此系統硬碟的物理簽名與其內部開機設定資料(BCD)中記錄的舊簽名不一致,從而掛載回執行個體A後作業系統將無法啟動。
Xen驅動殘留的解決方案
在掛載了修複盤的問題執行個體中,清理系統中的Xen驅動殘留以解決該問題。
遠端連線有問題的執行個體。
您可以在診斷結果介面單擊VNC遠端連線,使用診斷報告中提供的臨時登入執行個體的Administrator使用者及密碼資訊登入掛載了修複盤的ECS執行個體。具體操作,請參見通過VNC串連執行個體。
根據需要,選擇其中一種方式清理Xen驅動殘留。
使用Windows PowerShell清理Xen驅動殘留
以管理員身份運行Windows PowerShell。

尋找已安裝的Xen驅動。
假設掛載盤符為D。
$xenDrivers = Get-WindowsDriver -Path D:\ | Where-Object {$_.OriginalFileName -match 'xen'}卸載已安裝的Xen驅動。
$xenDrivers | Remove-WindowsDriver -Path D:\(可選)安裝virtio驅動。
假設virtio驅動目錄為
E:\drivers,執行命令如下:Add-WindowsDriver -Path D:\ -Driver E:\drivers
手動清理Xen驅動殘留
在運行對話方塊中輸入
regedit,單擊確定,進入登錄編輯程式。選中
HKEY_LOCAL_MACHINE,然後選擇載入離線註冊表,路徑為D:\Windows\System32\config\SYSTEM,註冊表名稱為OfflineSYSTEM。
刪除
HKEY_LOCAL_MACHINE\OfflineSYSTEM\ControlSet001\Services\XenPCI\Parameters註冊表下hide_device鍵或者將其值設定為空白。
在執行個體列表頁,將滑鼠懸浮至修複中的狀態上,然後單擊卸載修複盤。
重啟執行個體,使以上配置生效。
具體操作,請參見重啟執行個體。
遠端連線ECS執行個體,如果該執行個體可以正常串連,說明問題已修複。
具體操作,請參見使用Workbench終端串連登入Windows執行個體(RDP)。
磁碟簽名衝突的解決方案
以Windows Server 2022為例。
為防止誤操作導致資料丟失,建議操作前建立快照備份資料。
準備一台正常啟動並執行Windows執行個體(輔助執行個體),要求如下:
不同鏡像ID:輔助執行個體的鏡像ID不能與故障執行個體相同。
相同可用性區域:輔助執行個體必須和故障執行個體在同一可用性區域。
使用Workbench終端串連登入輔助執行個體,按
Win+R輸入diskmgmt.msc並按Enter鍵,進入磁碟管理,右鍵新掛載的磁碟,單擊聯機,記錄盤符名稱。
查看BCD資訊中記錄的簽名。
載入登錄區。
按
Win+R輸入regedit並按Enter鍵,進入登錄編輯程式。選中
HKEY_LOCAL_MACHINE後,依次選擇功能表列的,在載入登錄區介面,導航至新掛載雲端硬碟的BCD檔案路徑,並點擊開啟。例如新掛載的雲端硬碟的盤符為D,則註冊表檔案路徑為
D:\Boot\BCD。
在彈出的對話方塊中,為載入的登錄區指定一個臨時的項名稱,例如
offlinebcd,然後點擊確定。
查看BCD資訊中記錄的簽名。
展開
HKEY_LOCAL_MACHINE,選中上一步載入的登錄區offlinebcd後,依次選擇功能表列的,尋找目標為Windows Boot Manager。
選中尋找到的Eelments的上一個Eelment,並在右側邊窗格中,按右鍵Element,選擇修改。
樣本中尋找到的Eelments為
12000004,需要選中上一個11000001。
根據位移 0x38 行確定磁碟簽名。
樣本中BCD資訊記錄的磁碟簽名為
9B33D324。
卸載登錄區。
選中載入的登錄區
offlinebcd後,依次選擇功能表列的,在彈框中選擇是,完成卸載。
查看磁碟簽名。
按
Win+R輸入cmd並按Enter鍵,進入命令列提示符。輸入
diskpart進入dispart工具。執行
list disk確定待修複磁碟的序號。DISKPART> list disk 磁碟 ### 狀態 大小 可用 Dyn Gpt -------- ------------- ------- ------- --- --- 磁碟 0 聯機 40 GB 0 B * 磁碟 1 聯機 40 GB 0 B樣本中待修複磁碟序號為
1。選中待修複磁碟。
<待修複磁碟序號>請替換為上一步擷取的序號。select disk <待修複磁碟序號>執行
uniqueid disk,查看磁碟ID,擷取磁碟簽名。DISKPART> uniqueid disk 磁碟 ID: C855B0A4樣本中磁碟簽名為
C855B0A4與BCD資訊中籤名9B33D324不一致。
修改磁碟簽名。
執行以下指令,修改磁碟簽名。
<BCD資訊中的磁碟簽名>請替換為步驟b擷取的簽名。uniqueid disk id=<BCD資訊中的磁碟簽名>執行
uniqueid disk,查看簽名是否修改成功。DISKPART> uniqueid disk 磁碟 ID: 9B33D324樣本中磁碟簽名與BCD資訊中籤名
9B33D324一致,修改成功。
驗證BCD資訊是否正常。
輸入
exit退出diskpart工具後,運行以下命令,<盤符名稱>請替換為第3步擷取的名稱。可正確顯示device和osdevice則表示BCD資訊恢複正常。bcdedit /store <盤符名稱>:\Boot\BCD
卸載修複後的雲端硬碟並將其掛載至原ECS執行個體,驗證是否可以正常啟動。