针对停止错误 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
例如,如果我们将
<System Drive>
(WinRE 驱动器) 字母 R 分配,并且<OSdrive>
是字母 D,则使用以下命令:Bcdboot D:\windows /s R: /f ALL
注意
命令的 ALL 部分
bcdboot
会将 UEFI 和 BIOS) (的所有启动文件写入各自的位置。
如果没有WINDOWS 10 ISO,请格式化分区,并从具有类似 Windows 版本的另一台工作计算机复制启动。 若要执行格式设置和复制,请执行以下步骤:
- 启动 记事本。
- 按 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 密钥。卸载配置单元。 若要执行此卸载,请突出显示 “脱机”“组件”“配置单元”,然后选择“ 文件>卸载配置单元”。
选择 “HKEY_LOCAL_MACHINE”,转到 “文件>加载配置单元”,导航到 “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
- 磁盘
- VOLMGR
- PARTMGR
- VOLSNAP
- 体积
如果这些键存在,检查每个键,以确保它具有名为 Start 的值,并且它设置为 0。 如果不是,请将值设置为 0。
如果其中任何项不存在,则可以尝试使用 RegBack 中的配置单元替换当前注册表配置单元。 若要执行此步骤,请运行以下命令:
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 下,并指定为 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) ),请删除该条目。 若要将其删除,请在右窗格中双击它,然后仅删除该值。
注意
可能有多个条目。
这些条目可能会影响我们,因为 服务 分支中可能有一个条目的 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
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈