停止錯誤 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) 是否有所有正確的專案。 若要執行此步驟,請在 WinRE 命令提示字元中執行 bcdedit
。
若要驗證 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} 路徑參數中指定的檔案路徑值包含 .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
例如,如果我們指派
<System Drive>
(WinRE 磁碟驅動器) 字母 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 Update 安裝和日期:
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,然後選取 [ 檔案>卸除 Hive]。
選取 [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 金鑰。
驗證開機關鍵驅動程式和服務
檢查服務
請遵循<在 Windows Update 安裝之後發生此問題的疑難解答>一節中的步驟 1-10。 (步驟 11 不適用於此程式。
展開 [服務] 。
請確定下列登入機碼存在於 [服務] 底下:
- ACPI
- DISK
- 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 底下,並指定為 Default:
\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 中所述),而不需要移除 Filter Driver 專案會導致電腦當機並產生0x7b停止錯誤。
執行 SFC 和 Chkdsk
如果計算機仍然未啟動,您可以嘗試在系統磁碟驅動器上執行 chkdisk
進程,然後再執行系統檔案檢查程式。 在 WinRE 命令提示字元中執行下列命令,以執行下列步驟:
-
chkdsk /f /r OsDrive:
-
sfc /scannow /offbootdir=OsDrive:\ /offwindir=OsDrive:\Windows