本文介紹啟動Windows實例時,操作系統進入“Preparing Automatic Repair”模式的問題原因和解決方案。
問題現象
啟動Windows實例時,操作系統加載失敗,進入修復模式(Preparing Automatic Repair)。
問題原因
該問題的原因有很多種,您可以使用健康診斷工具,根據下表中實例健康診斷功能返回的信息,選擇具體的修復方案。關于如何使用健康診斷工具,請參見修復實例操作系統無法啟動問題的操作指南。
實例健康診斷工具返回的信息 | 解決方案 |
該實例的Windows分區不存在或部分文件缺失,導致操作系統無法正常啟動。 | 該問題一般發生在使用自定義鏡像創建實例后,因鏡像本身問題導致實例無法啟動。此時,您需要重新制作鏡像,并使用鏡像更換該實例的操作系統。更多信息,請參見制作Windows鏡像文件和更換操作系統(系統盤)。 |
該實例的Windows分區對應的文件系統類型不是NTFS,導致操作系統無法正常啟動。 | |
該實例的Windows分區被分配的磁盤空間過小(小于20 GB),導致操作系統無法正常啟動。 | 您可以對該磁盤進行擴容,具體操作,請參見擴容分區和文件系統(Windows)。 |
該實例的Windows分區處于只讀狀態,導致操作系統無法正常啟動。 | |
該實例的Windows分區處于隱藏狀態,導致操作系統無法正常啟動。 | |
該實例的關鍵注冊表文件不存在,可能導致操作系統無法正常啟動。 | |
該實例的關鍵注冊表文件被破壞,可能導致操作系統無法正常啟動。 | |
該實例的啟動配置數據(BCD)文件不存在,導致操作系統無法正常啟動。 | |
該實例的啟動配置數據(BCD)文件內容被破壞,導致操作系統無法正常啟動。 | |
該實例的啟動管理器(bootmgr)文件不存在,導致操作系統無法正常啟動。 | |
該實例的啟動管理器(bootmgr)的文件內容被破壞,導致操作系統無法正常啟動。 | |
該實例的啟動管理器(bootmgr)配置中指定的啟動設備或磁盤不存在,導致操作系統無法正常啟動。 | |
該實例的操作系統加載程序(bootloader)不存在,導致操作系統無法正常啟動。 |
清除Windows分區的只讀屬性
您可以在掛載了修復盤的問題實例中,清除Windows分區的只讀屬性以解決該問題,具體步驟如下:
遠程連接有問題的實例。
您可以在診斷結果界面單擊VNC遠程連接,使用診斷報告中提供的臨時登錄實例的Administrator用戶及密碼信息登錄掛載了修復盤的ECS實例。具體操作,請參見使用VNC登錄實例。
清除Windows分區的只讀屬性。
您可以根據需要,選擇其中一種方式。
使用diskpart進行清除
假設目標分區的掛載盤符是D,操作步驟如下所示:
打開
DiskPart
窗口。您可以在搜索框中輸入
diskpart
打開,也可以在搜索框輸入Windows PowerShell
并輸入diskpart
命令打開。選擇目標卷。
select volume D
清除只讀屬性。
attribute volume clear readonly
使用PowerShell命令進行清除
假設異常磁盤序號為1,系統分區序號為1。
Set-Partition -DiskNumber 1 -PartitionNumber 1 -IsReadOnly $false
在實例列表頁,將鼠標懸浮至修復中的狀態上,然后單擊卸載修復盤。
重啟實例,使以上配置生效。
具體操作,請參見重啟實例。
遠程連接ECS實例,如果該實例可以正常連接,說明問題已修復。
具體操作,請參見使用Workbench工具以RDP協議登錄Windows實例。
清除Windows分區的隱藏屬性
您可以在掛載了修復盤的問題實例中,清除Windows分區的隱藏屬性以解決該問題。具體步驟如下:
遠程連接有問題的實例。
您可以在診斷結果界面單擊VNC遠程連接,使用診斷報告中提供的臨時登錄實例的Administrator用戶及密碼信息登錄掛載了修復盤的ECS實例。具體操作,請參見使用VNC登錄實例。
清除Windows分區的只讀屬性,假設異常系統盤盤符是D,隱藏分區的序號是1。
您可以根據需要,選擇其中一種方式。
使用diskpart進行清除
打開
DiskPart
窗口。您可以在搜索框中輸入
diskpart
打開,也可以在搜索框輸入Windows PowerShell
并輸入diskpart
命令打開。選擇目標磁盤。
select disk D
選擇隱藏分區。
select partition 1
清除隱藏屬性。
attribute volume clear hidden
使用PowerShell命令進行清除
在PowerShell中執行以下命令:
Set-Partition -DiskNumber D -PartitionNumber 1 -IsHidden $false
在實例列表頁,將鼠標懸浮至修復中的狀態上,然后單擊卸載修復盤。
重啟實例,使以上配置生效。
具體操作,請參見重啟實例。
遠程連接ECS實例,如果該實例可以正常連接,說明問題已修復。
具體操作,請參見使用Workbench工具以RDP協議登錄Windows實例。
修復損壞的注冊表文件
方案一:在修復模式中修復損壞的注冊表文件
當進入修復模式時,單擊Startup Repair啟動修復,嘗試修復啟動失敗問題。
根據是否存在注冊表備份,選擇其中一種修復方式。
存在注冊表備份時,使用備份替換注冊表文件。
說明正常情況下,注冊表備份在
C:\Windows\System32\config\regback
。沒有注冊表備份時,根據需要,選擇以下其中一種方式修復:
執行
dism /Image:D: /Cleanup-image /Restorehealth
命令嘗試修復。執行
sfc /scannow /offbootdir=D:\ /offwindir=D:\Windows /offlogfile=C:\sfclog.txt
命令嘗試修復。
遠程連接ECS實例,如果該實例可以正常連接,說明問題已修復。
具體操作,請參見使用Workbench工具以RDP協議登錄Windows實例。
方案二:在修復實例中修復損壞的注冊表文件
您可以在掛載了修復盤的問題實例中,修復損壞的注冊表文件以解決該問題。假設掛載盤符為D,具體步驟如下:
遠程連接有問題的實例。
您可以在診斷結果界面單擊VNC遠程連接,使用診斷報告中提供的臨時登錄實例的Administrator用戶及密碼信息登錄掛載了修復盤的ECS實例。具體操作,請參見使用VNC登錄實例。
根據是否存在注冊表備份,選擇合適的修復方式。
根據是否存在注冊表備份,選擇合適的修復方式。
存在注冊表備份時,使用備份替換注冊表文件。
說明正常情況下,注冊表備份在
D:\Windows\System32\config\regback
。沒有注冊表備份時,根據需要,選擇以下其中一種方式修復:
執行
dism /Image:D: /Cleanup-image /Restorehealth
命令嘗試修復。執行
sfc /scannow /offbootdir=D:\ /offwindir=D:\Windows /offlogfile=C:\sfclog.txt
命令嘗試修復。
遠程連接ECS實例,如果該實例可以正常連接,說明問題已修復。
具體操作,請參見使用Workbench工具以RDP協議登錄Windows實例。
配置Windows系統啟動項
啟動項配置異常導致系統無法正常啟動時,您可以在掛載了修復盤的問題實例中重新配置啟動項以解決該問題。
遠程連接有問題的實例。
您可以在診斷結果界面單擊VNC遠程連接,使用診斷報告中提供的臨時登錄實例的Administrator用戶及密碼信息登錄掛載了修復盤的ECS實例。具體操作,請參見使用VNC登錄實例。
以管理員身份運行命令行工具cmd。
使用BCDboot工具重新配置啟動項。
對于不同的啟動方式,運行命令有所不同。假如系統分區盤符為S,Windows分區盤符為C,命令如下:
BIOS啟動模式:
bcdboot C:\Windows /s S:
UEFI啟動模式:
bcdboot C:\Windows /s S: /f UEFI
說明假如除C盤外,還有D盤中有可用的Windows系統,可以設置多個啟動項,可按照如下方式配置:
BIOS啟動模式:
bcdboot D:\Windows /s S: /d /p /addlast
UEFI啟動模式:
bcdboot D:\Windows /s S: /d /p /addlast /f UEFI
配置完成后,使用以下命令查看啟動項。
BIOS啟動模式:
bcdedit /store S:\Boot\BCD
UEFI啟動模式:
bcdedit /store S:\EFI\Microsoft\Boot\BCD
當顯示類似如下所示信息時,說明啟動項已配置成功。
在實例列表頁,將鼠標懸浮至修復中的狀態上,然后單擊卸載修復盤。
啟動實例。
具體操作,請參見啟動實例。