停止錯誤 7B 或 Inaccessible_Boot_Device 的進階疑難排解

本文提供針對「停止錯誤 7B:Inaccessible_Boot_Device」進行疑難解答的步驟。 在計算機進行一些變更之後,或在您於計算機上部署 Windows 之後,可能會發生此錯誤。

適用於: Windows 10

Inaccessible_Boot_Device停止錯誤的原因

下列任何一個因素都可能導致停止錯誤:

  • 遺失、損毀或與記憶體堆疊相關的篩選驅動程式行為錯誤
  • 檔系統損毀
  • 對 BIOS 中記憶體控制器模式或設定的變更
  • 使用不同於安裝 Windows 時所使用之記憶體控制器的記憶體控制器
  • 將硬碟移至具有不同控制器的不同電腦
  • 主機板或記憶體控制器發生錯誤,或硬體發生錯誤
  • 在不尋常的情況下,TrustedInstaller 服務無法認可新安裝的更新是因為元件型存放區損毀所造成
  • 例如,開機分割區中已損毀的檔案 (,當您diskpart>list vol執行命令時,標籤為 SYSTEM 的磁碟區損毀)
  • 如果開機磁碟分區專案之前有空白的 GPT 專案

針對此錯誤進行疑難解答

遵循下列步驟,以 Windows 復原模式 (WinRE) 啟動電腦。

  1. 使用已 安裝 Windows 版本的安裝媒體來啟動系統。
  2. 在 [安裝 Windows]畫面上,選取 [下一步]> [修復您的電腦]
  3. 在 [ 系統復原選項] 畫面上,選取 [ 下一個>命令提示字元]

確認開機磁碟已連線且可存取

步驟 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 專案:

  1. 檢查具有 {bootmgr} 標識符的 Windows 開機管理程序區段。 請確定 裝置路徑 專案指向正確的裝置和開機載入器檔案。

    如果計算機是以 UEFI 為基礎,以下是範例輸出:

    device                  partition=\Device\HarddiskVolume2
    path                    \EFI\Microsoft\Boot\bootmgfw.efi
    

    如果機器是以 BIOS 為基礎,以下是範例輸出:

    Device                partition=C:
    

    注意事項

    此輸出可能不包含路徑。

  2. 在具有 {default} 標識符的 Windows 開機載入器中,確定裝置路徑osdevicesystemroot 指向正確的裝置或磁碟分區、winload 檔案、OS 磁碟分區或裝置,以及 OS 資料夾。

    注意事項

    如果計算機是以 UEFI 為基礎,則在 {bootmgr}{default}path 參數中指定的檔案路徑值會包含 .efi 擴展名。

    bcdedit 輸出的螢幕快照,其中包含 Windows 開機載入器的詳細資訊。

如果有任何錯誤或遺失的信息,建議您建立 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 具有正確的專案,請檢查 winloadbootmgr 專案是否存在於 bcdedit 命令中指定路徑中的正確位置。 根據預設,BIOS 數據分割中的 bootmgr 位於 SYSTEM 數據分割的根目錄中。 若要檢視檔案,請執行 Attrib -s -h -r

如果檔案遺失,而且您想要重建開機檔案,請遵循下列步驟:

  1. SYSTEM 磁碟分區下的所有內容複製到另一個位置。 或者,您可以使用命令提示字元流覽至 OS 磁碟驅動器、建立新資料夾,然後從 SYSTEM 磁碟區複製所有檔案和資料夾,如下所示:

    D:\> Mkdir  BootBackup
    R:\> Copy *.* D:\BootBackup 
    
  2. 如果您使用 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
    

    注意事項

    命令的 bcdbootALL 部分會將所有開機檔案 (UEFI 和 BIOS) 寫入其各自的位置。

如果您沒有 Windows 10 ISO,請將分割區格式化,並從另一部具有類似 Windows 組建的工作計算機複製 bootmgr。 若要執行格式設定和複製,請遵循下列步驟:

  1. 啟動 記事本
  2. 按 Ctrl+O。
  3. 在此範例中,流覽至系統分割區 (,這是 R) 。
  4. 以滑鼠右鍵按鍵單擊數據分割,然後將它格式化。

針對 Windows Update 安裝之後是否發生此問題的問題進行疑難解答

執行下列命令來確認 Windows 更新安裝和日期:

Dism /Image:<Specify the OS drive>: /Get-packages

執行此命令之後,您會看到 [安裝擱置 中] 和 [ 卸載擱置 中] 套件:

Dism 輸出擱置更新的螢幕快照。

  1. 執行 dism /Image:C:\ /Cleanup-Image /RevertPendingActions 命令。 將 C: 取代為您電腦的系統分割區。

    Dism 輸出還原擱置的螢幕快照。

  2. 流覽至 OSdriveLetter:\Windows\WinSxS,然後檢查 pending.xml 檔案是否存在。 如果是,請將它重新命名為 pending.xml.old

  3. 若要還原登錄變更,請在命令提示字元中輸入 regedit 以開啟登錄 編輯器

  4. 取 [HKEY_LOCAL_MACHINE],然後移至 [檔案>載入 Hive]

  5. 流覽至 [OSdriveLetter:\Windows\System32\config],選取名為 COMPONENT (且沒有擴展名的檔案) ,然後選取 [ 開啟]。 出現提示時,輸入新 Hive 的名稱 OfflineComponentHive

    登錄 編輯器 的螢幕快照,其中已開啟 [載入 Hive] 視窗。

  6. 展開 HKEY_LOCAL_MACHINE\OfflineComponentHive,並檢查 PendingXmlIdentifier 機碼是否存在。 建立 OfflineComponentHive 金鑰的備份,然後刪除 PendingXmlIdentifier 密鑰。

  7. 卸載登錄區。 若要執行此卸除,請反白顯示 OfflineComponentHive,然後選取 [檔案>卸除] 登錄區

    登錄 編輯器 的螢幕快照,其中已選取 OfflineHive。

    登錄 編輯器 的螢幕快照,其中已選取 [卸除 Hive] 選項。

  8. 取 [HKEY_LOCAL_MACHINE],移至 [檔案>載入 Hive],流覽至 [OSdriveLetter:\Windows\System32\config],選取名為 SYSTEM (且沒有擴展名的檔案) ,然後選取 [ 開啟]。 出現提示時,輸入新 Hive 的名稱 OfflineSystemHive

  9. 展開 [HKEY_LOCAL_MACHINE\OfflineSystemHive],然後選取 [選取 金鑰]。 檢查數據中是否有 預設 值。

  10. 如果中 HKEY_LOCAL_MACHINE\OfflineSystemHive\Select\Default 的數據為 1,請展開 HKEY_LOCAL_MACHINE\OfflineHive\ControlSet001。 如果是 2,請展開 HKEY_LOCAL_MACHINE\OfflineHive\ControlSet002,依此類推。

  11. 展開 Control\Session Manager。 檢查 PendingFileRenameOperations 機碼是否存在。 如果是,請備份 SessionManager 金鑰,然後刪除 PendingFileRenameOperations 金鑰。

驗證開機關鍵驅動程式和服務

檢查服務

  1. Follow steps 1-10 in the "Troubleshooting if this issue occurs after a Windows Update installation" section. (步驟 11 不適用於此程式。)

  2. 展開 [服務]

  3. 請確定下列登入機碼存在於 [ 服務] 下:

    • 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 上下層篩選驅動程式,以及它們是否不存在於另一部類似的工作電腦上。 如果它們確實存在,請移除上下層篩選驅動程式:

  1. 展開 HKEY_LOCAL_MACHINE\OfflineHive\ControlSet001\Control

  2. 尋找任何 UpperFiltersLowerFilters 專案。

    注意事項

    這些篩選主要與記憶體相關。 展開登錄中的 件密鑰之後,您可以搜尋 UpperFiltersLowerFilters

    您可能會在下列一些登錄專案中找到這些篩選驅動程式。 這些項目位於 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}

    顯示 ControlSet 下專案之登錄 編輯器 的螢幕快照。

    例如,如果 UpperFiltersLowerFilters 專案不是標準 (,則它不是 Windows 預設篩選器驅動程式,例如 PartMgr) ,請移除該專案。 若要移除它,請在右窗格中按兩下它,然後只刪除該值。

    注意事項

    可能有多個專案。

    這些專案可能會影響我們,因為 Services 分支中 可能有 START 類型設定為 0 或 1 的專案,這表示它會在開機程式的開機或自動部分載入。 此外,參考的檔案遺失或損毀,或其名稱可能與專案中所列的內容不同。

    注意事項

    如果有一個服務設定為 01 ,而該服務對應至 UpperFiltersLowerFilters 專案,請在 服務登錄中 將服務設定為停用, (如 [檢查服務] 區段的步驟 2 和 3 所述,) 不移除 篩選驅動 程式專案會導致計算機當機,並產生0x7b停止錯誤。

執行 SFC 和 Chkdsk

如果計算機仍未啟動,您可以嘗試 chkdisk 在系統磁碟驅動器上執行進程,然後執行系統檔案檢查程式。 在 WinRE 命令提示字元中執行下列命令,以執行下列步驟:

  • chkdsk /f /r OsDrive:
    

    chkdsk 命令輸出的螢幕快照。

  • sfc /scannow /offbootdir=OsDrive:\ /offwindir=OsDrive:\Windows
    

    SFC scannow 命令輸出的螢幕快照。