停止錯誤 7B 或 Inaccessible_Boot_Device 的進階疑難排解
本文提供針對「停止錯誤 7B:Inaccessible_Boot_Device」進行疑難解答的步驟。 在計算機進行一些變更之後,或在您於計算機上部署 Windows 之後,可能會發生此錯誤。
適用於: Windows 10
Inaccessible_Boot_Device停止錯誤的原因
下列任何一個因素都可能導致停止錯誤:
- 遺失、損毀或與記憶體堆疊相關的篩選驅動程式行為錯誤
- 檔系統損毀
- 對 BIOS 中記憶體控制器模式或設定的變更
- 使用不同於安裝 Windows 時所使用之記憶體控制器的記憶體控制器
- 將硬碟移至具有不同控制器的不同電腦
- 主機板或記憶體控制器發生錯誤,或硬體發生錯誤
- 在不尋常的情況下,TrustedInstaller 服務無法認可新安裝的更新是因為元件型存放區損毀所造成
- 例如,開機分割區中已損毀的檔案 (,當您
diskpart
>list vol
執行命令時,標籤為 SYSTEM 的磁碟區損毀) - 如果開機磁碟分區專案之前有空白的 GPT 專案
針對此錯誤進行疑難解答
遵循下列步驟,以 Windows 復原模式 (WinRE) 啟動電腦。
- 使用已 安裝 Windows 版本的安裝媒體來啟動系統。
- 在 [安裝 Windows]畫面上,選取 [下一步]> [修復您的電腦]。
- 在 [ 系統復原選項] 畫面上,選取 [ 下一個>命令提示字元]。
確認開機磁碟已連線且可存取
步驟 1
在 WinRE 命令提示字元中,執行 diskpart
,然後執行 list disk
。
應該會顯示連結至計算機的實體磁碟清單,如下列顯示所示:
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online **size* GB 0 B *
如果計算機使用整合可擴展固件介面 (UEFI) 啟動介面,數據行中GPT
就會有星號 (*
) 。
如果計算機使用基本輸入/輸出系統 (BIOS) 介面,數據行中 Dyn
就不會有星號。
步驟 2
list disk
如果命令正確列出 OS 磁碟,請在 中diskpart
執行 list vol
命令。
list vol
產生類似下列顯示的輸出:
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 Windows RE NTFS Partition 499 MB Healthy
Volume 1 C OSDisk NTFS Partition 222 GB Healthy Boot
Volume 2 SYSTEM FAT32 Partition 499 MB Healthy System
注意事項
如果包含 OS 的磁碟未列在輸出中,您就必須與 OEM 或虛擬化製造商接洽。
確認開機設定資料庫的完整性
檢查開機設定資料庫 (BCD) 是否有所有正確的專案。 若要執行此步驟,請 bcdedit
在 WinRE 命令提示字元中執行 。
若要確認 BCD 專案:
檢查具有 {bootmgr} 標識符的 Windows 開機管理程序區段。 請確定 裝置 和 路徑 專案指向正確的裝置和開機載入器檔案。
如果計算機是以 UEFI 為基礎,以下是範例輸出:
device partition=\Device\HarddiskVolume2 path \EFI\Microsoft\Boot\bootmgfw.efi
如果機器是以 BIOS 為基礎,以下是範例輸出:
Device partition=C:
注意事項
此輸出可能不包含路徑。
在具有 {default} 標識符的 Windows 開機載入器中,確定裝置、路徑、osdevice 和 systemroot 指向正確的裝置或磁碟分區、winload 檔案、OS 磁碟分區或裝置,以及 OS 資料夾。
注意事項
如果計算機是以 UEFI 為基礎,則在 {bootmgr} 和 {default} 的 path 參數中指定的檔案路徑值會包含 .efi 擴展名。
如果有任何錯誤或遺失的信息,建議您建立 BCD 存放區的備份。 若要這樣做,請執行 bcdedit /export C:\temp\bcdbackup
。 此命令會在 C:\temp\ 中建立名為 bcdbackup 的備份。 若要還原備份,請執行 bcdedit /import C:\temp\bcdbackup
。 此命令會使用 bcdbackup 中的設定來覆寫所有 BCD 設定。
備份完成之後,請執行下列命令來進行變更:
bcdedit /set *{identifier}* option value
例如,如果 {default} 下的裝置錯誤或遺失,請執行此命令來設定它: bcdedit /set {default} device partition=C:
如果您想要完全重新建立 BCD,或收到訊息指出「無法開啟開機設定數據存放區。系統找不到指定的檔案, 請執行 bootrec /rebuildbcd
。
如果 BCD 具有正確的專案,請檢查 winload 和 bootmgr 專案是否存在於 bcdedit 命令中指定路徑中的正確位置。 根據預設,BIOS 數據分割中的 bootmgr 位於 SYSTEM 數據分割的根目錄中。 若要檢視檔案,請執行 Attrib -s -h -r
。
如果檔案遺失,而且您想要重建開機檔案,請遵循下列步驟:
將 SYSTEM 磁碟分區下的所有內容複製到另一個位置。 或者,您可以使用命令提示字元流覽至 OS 磁碟驅動器、建立新資料夾,然後從 SYSTEM 磁碟區複製所有檔案和資料夾,如下所示:
D:\> Mkdir BootBackup R:\> Copy *.* D:\BootBackup
如果您使用 Windows 10,或是在 Windows 預安裝環境命令提示字元使用 Windows 10 ISO 進行疑難解答,您可以使用
bcdboot
命令來重新建立開機檔案,如下所示:Bcdboot <**OSDrive* >:\windows /s <**SYSTEMdrive* >: /f ALL
例如,如果我們將 (WinRE 磁碟驅動器指派)
<System Drive>
字母 R,而<OSdrive>
是字母 D,則會使用下列命令:Bcdboot D:\windows /s R: /f ALL
注意事項
命令的
bcdboot
ALL 部分會將所有開機檔案 (UEFI 和 BIOS) 寫入其各自的位置。
如果您沒有 Windows 10 ISO,請將分割區格式化,並從另一部具有類似 Windows 組建的工作計算機複製 bootmgr。 若要執行格式設定和複製,請遵循下列步驟:
- 啟動 記事本。
- 按 Ctrl+O。
- 在此範例中,流覽至系統分割區 (,這是 R) 。
- 以滑鼠右鍵按鍵單擊數據分割,然後將它格式化。
針對 Windows Update 安裝之後是否發生此問題的問題進行疑難解答
執行下列命令來確認 Windows 更新安裝和日期:
Dism /Image:<Specify the OS drive>: /Get-packages
執行此命令之後,您會看到 [安裝擱置 中] 和 [ 卸載擱置 中] 套件:
執行
dism /Image:C:\ /Cleanup-Image /RevertPendingActions
命令。 將 C: 取代為您電腦的系統分割區。流覽至 OSdriveLetter:\Windows\WinSxS,然後檢查 pending.xml 檔案是否存在。 如果是,請將它重新命名為 pending.xml.old。
若要還原登錄變更,請在命令提示字元中輸入 regedit 以開啟登錄 編輯器。
選 取 [HKEY_LOCAL_MACHINE],然後移至 [檔案>載入 Hive]。
流覽至 [OSdriveLetter:\Windows\System32\config],選取名為 COMPONENT (且沒有擴展名的檔案) ,然後選取 [ 開啟]。 出現提示時,輸入新 Hive 的名稱 OfflineComponentHive 。
展開
HKEY_LOCAL_MACHINE\OfflineComponentHive
,並檢查 PendingXmlIdentifier 機碼是否存在。 建立 OfflineComponentHive 金鑰的備份,然後刪除 PendingXmlIdentifier 密鑰。卸載登錄區。 若要執行此卸除,請反白顯示 OfflineComponentHive,然後選取 [檔案>卸除] 登錄區。
選 取 [HKEY_LOCAL_MACHINE],移至 [檔案>載入 Hive],流覽至 [OSdriveLetter:\Windows\System32\config],選取名為 SYSTEM (且沒有擴展名的檔案) ,然後選取 [ 開啟]。 出現提示時,輸入新 Hive 的名稱 OfflineSystemHive 。
展開 [HKEY_LOCAL_MACHINE\OfflineSystemHive],然後選取 [選取 金鑰]。 檢查數據中是否有 預設 值。
如果中
HKEY_LOCAL_MACHINE\OfflineSystemHive\Select\Default
的數據為 1,請展開HKEY_LOCAL_MACHINE\OfflineHive\ControlSet001
。 如果是 2,請展開HKEY_LOCAL_MACHINE\OfflineHive\ControlSet002
,依此類推。展開
Control\Session Manager
。 檢查 PendingFileRenameOperations 機碼是否存在。 如果是,請備份 SessionManager 金鑰,然後刪除 PendingFileRenameOperations 金鑰。
驗證開機關鍵驅動程式和服務
檢查服務
Follow steps 1-10 in the "Troubleshooting if this issue occurs after a Windows Update installation" section. (步驟 11 不適用於此程式。)
展開 [服務]。
請確定下列登入機碼存在於 [ 服務] 下:
- ACPI
- 磁碟
- VOLMGR
- PARTMGR
- VOLSNAP
- 體積
如果這些索引鍵存在,請檢查每個索引鍵,以確定其值名為 Start,且已設定為 0。 如果不是,請將值設定為 0。
如果其中任何一個機碼不存在,您可以嘗試使用 來自 RegBack 的 Hive 來取代目前的登錄區。 若要執行此步驟,請執行下列命令:
cd OSdrive:\Windows\System32\config ren SYSTEM SYSTEM.old copy OSdrive:\Windows\System32\config\RegBack\SYSTEM OSdrive:\Windows\System32\config\
檢查上下篩選驅動程式
檢查計算機上是否有任何非 Microsoft 上下層篩選驅動程式,以及它們是否不存在於另一部類似的工作電腦上。 如果它們確實存在,請移除上下層篩選驅動程式:
展開
HKEY_LOCAL_MACHINE\OfflineHive\ControlSet001\Control
。尋找任何 UpperFilters 或 LowerFilters 專案。
注意事項
這些篩選主要與記憶體相關。 展開登錄中的 控 件密鑰之後,您可以搜尋 UpperFilters 和 LowerFilters。
您可能會在下列一些登錄專案中找到這些篩選驅動程式。 這些項目位於 ControlSet 下,並指定為 預設值:
\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}
\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}
\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}
\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}
例如,如果 UpperFilters 或 LowerFilters 專案不是標準 (,則它不是 Windows 預設篩選器驅動程式,例如 PartMgr) ,請移除該專案。 若要移除它,請在右窗格中按兩下它,然後只刪除該值。
注意事項
可能有多個專案。
這些專案可能會影響我們,因為 Services 分支中 可能有 START 類型設定為 0 或 1 的專案,這表示它會在開機程式的開機或自動部分載入。 此外,參考的檔案遺失或損毀,或其名稱可能與專案中所列的內容不同。
注意事項
如果有一個服務設定為 0 或 1 ,而該服務對應至 UpperFilters 或 LowerFilters 專案,請在 服務登錄中 將服務設定為停用, (如 [檢查服務] 區段的步驟 2 和 3 所述,) 不移除 篩選驅動 程式專案會導致計算機當機,並產生0x7b停止錯誤。
執行 SFC 和 Chkdsk
如果計算機仍未啟動,您可以嘗試 chkdisk
在系統磁碟驅動器上執行進程,然後執行系統檔案檢查程式。 在 WinRE 命令提示字元中執行下列命令,以執行下列步驟:
-
chkdsk /f /r OsDrive:
-
sfc /scannow /offbootdir=OsDrive:\ /offwindir=OsDrive:\Windows