共用方式為


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

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

適用於: Windows 10

Inaccessible_Boot_Device停止錯誤的原因

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

  • 與記憶體堆疊相關的篩選驅動程式遺失、損毀或行為錯誤
  • 檔案系統損毀
  • BIOS 中記憶體控制器模式或設定的變更
  • 使用與安裝 Windows 時所使用的記憶體控制器不同
  • 將硬碟移至具有不同控制器的不同電腦
  • 故障的主機板或儲存設備控制器,或故障的硬體
  • 在不尋常的情況下,TrustedInstaller 服務無法認可新安裝的更新是因為元件型存放區損毀
  • 開機分割區中損毀的檔案(例如,當您執行>diskpartlist 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) 是否有所有正確的專案。 若要執行此步驟,請在 WinRE 命令提示字元中執行 bcdedit

若要驗證 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} 路徑參數中指定的檔案路徑值包含 .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 有正確的專案,請檢查 winload 和 bootmgr 專案是否存在於正確的位置,其位於 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
    

    例如,如果我們指派 <System Drive> (WinRE 磁碟驅動器) 字母 R,而 <OSdrive> 是字母 D,我們會使用下列命令:

    Bcdboot D:\windows /s R: /f ALL
    

    注意

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

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

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

在 Windows Update 安裝之後發生此問題的疑難解答

執行下列命令來驗證 Windows Update 安裝和日期:

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,然後選取 [ 檔案>卸除 Hive]。

    已選取 [離線] 的 [註冊表編輯器] 螢幕快照。

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

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

  9. 展開 [HKEY_LOCAL_MACHINE\OfflineSystemHive],然後選取 [選取密鑰]。 檢查預設值的數據

  10. 如果中的數據 HKEY_LOCAL_MACHINE\OfflineSystemHive\Select\Default1,請展開 HKEY_LOCAL_MACHINE\OfflineHive\ControlSet001如果是 2,請展開 HKEY_LOCAL_MACHINE\OfflineHive\ControlSet002,依序展開等。

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

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

檢查服務

  1. 請遵循<在 Windows Update 安裝之後發生此問題的疑難解答>一節中的步驟 1-10。 (步驟 11 不適用於此程式。

  2. 展開 [服務] 。

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

    • 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的上下篩選驅動程式,而且它們不存在於另一部類似的工作計算機上。 如果它們確實存在,請移除上下篩選驅動程式:

  1. 展開 HKEY_LOCAL_MACHINE\OfflineHive\ControlSet001\Control

  2. 尋找任何 UpperFiltersLowerFilters 專案。

    注意

    這些篩選主要與記憶體相關。 在登錄中展開 [控制 ] 機碼之後,您可以搜尋 UpperFiltersLowerFilters

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

    [註冊表編輯器] 的螢幕快照,其中顯示ControlSet底下的專案。

    如果 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:
    

    chkdsk 命令輸出的螢幕快照。

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

    SFC 掃描命令輸出的螢幕快照。