近日有一台Windows 2016遇到了系統無法啟動的問題,出現錯誤inaccessible boot device。發現系統可以進入故障恢復模式,看來問題還不大。因為進入故障恢復模式的時候自動識別的當前的系統,並且要求輸入Administrator密碼,說明最基本的系統功能還是正常的。
先是嘗試了chkdsk修復磁盤,但是沒有作用。然后嘗試啟用啟動日志,結果也沒有發現ntbtlog.txt。按理啟動日志應當出現在Windows目錄下。
接下去繼續在網上搜索,看看有什么有用的操作。需要檢查一下是否有Windows更新造成的系統無法完成更新的安裝造成的系統無法啟動。總體分為兩部分,注冊表中的pending項目和文件系統的安裝包。
首先加載注冊表,刪除其中的Exclusive鍵值,讓系統再次啟動的時候不再進行補丁安裝更新。
reg load HKLM\temp c:\windows\system32\config\software
reg delete "HKLM\temp\Microsoft\Windows\CurrentVersion\Component Based Servicing\SessionsPending" /v Exclusive
reg unload HKLM\temp
如果看不到圖,請點我。
注冊表處理完畢后,另一部分就是處理文件系統中的安裝包。首先建立一個臨時文件夾用於解壓臨時文件,建議大於1GB可用空間,然后檢查系統中的安裝包。
MKDIR c:\temp\BadUpdates
dism /image:C:\ /get-packages /scratchdir:c:\temp\BadUpdates
找到其中安裝掛起Install Pending的包,復制它的標識符ID,然后卸載。
dism /image:c:\ /remove-package /packagename:Package_for_RollupFix~31bf3856ad364e35~amd64~14393.3326.1.5 /scratchdir:c:\temp\BadUpdates
整個卸載命令耗費的時間比較長,請耐心等待。如果有多個狀態是安裝掛起Install Pending的包請將它們全部刪除。重新啟動系統后如果問題依舊,不要着急,繼續按照之前的步驟操作。我就是重啟了3次失敗,卸載了3個安裝包后才能正常啟動的。這個方法對於 Windows 10, Windows 2019同樣有效。