停止错误 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 磁盘,请在其中list vol
diskpart
运行该命令。
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
例如,如果为字母 R 分配
<System Drive>
了 (WinRE 驱动器),并且<OSdrive>
是字母 D,我们将使用以下命令:Bcdboot D:\windows /s R: /f ALL
注意
命令 的 ALL 部分
bcdboot
将所有启动文件(UEFI 和 BIOS)写入各自的位置。
如果没有 Windows 10 ISO,请格式化分区并从具有类似 Windows 内部版本的另一台工作计算机复制 bootmgr 。 若要执行格式设置和复制,请执行以下步骤:
- 启动 记事本。
- 按 Ctrl+O。
- 导航到系统分区(在此示例中为 R)。
- 右键单击分区,然后设置其格式。
如果在安装Windows 更新后出现此问题,请进行故障排除
运行以下命令来验证 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,然后转到“文件>加载配置单元”。
导航到 OSdriveLetter:\Windows\System32\config,选择名为 COMPONENT 的文件(无扩展名),然后选择“ 打开”。 出现提示时,输入新配置单元的名称 OfflineComponentHive 。
展开
HKEY_LOCAL_MACHINE\OfflineComponentHive
并检查 PendingXmlIdentifier 密钥是否存在。 创建 OfflineComponentHive 密钥的备份,然后删除 PendingXmlIdentifier 密钥。卸载配置单元。 若要执行此操作,请突出显示 OfflineComponentHive,然后选择“ 文件>卸载”配置单元。
选择HKEY_LOCAL_MACHINE,转到文件>加载 Hive,导航到 OSdriveLetter:\Windows\System32\config,选择名为 SYSTEM 的文件(无扩展名),然后选择“打开”。 出现提示时,输入新配置单元的名称 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 更新后出现此问题时进行故障排除”部分中的步骤 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 条目。
注意
这些筛选器主要与存储相关。 在注册表中展开 Control 键后,可以搜索 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