我是靠谱客的博主 暴躁红牛,最近开发中收集的这篇文章主要介绍无法正常进入Windows也能开启Windows内核调试1 背景2 原理3 方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 背景

Windows的启动的早期阶段,大致分为3步:bootmgr,winload,nt内核加载。
下图是Winload阶段的一个报错。
Winload阶段的报错
如果出现Windowslogo,一般就是进入nt内核加载了。
我们经常开的调试功能是nt内核加载后的调试。无法调试winload。
如果故障环境,无法正常进入Windows,甚至连安全模式都进入不了,那么试图开启Windows调试就不知所措了。

2 原理

参阅BCDEdit /bootdebug。
在以下示例中,命令启用 Windows 启动管理器、启动加载程序调试,然后对操作系统进行内核调试。 这种组合允许在每个启动阶段进行调试。 如果使用此组合,则目标计算机将进入调试器三次:加载 Windows 启动管理器时、启动加载程序加载时以及操作系统启动时。

bcdedit /bootdebug {bootmgr} on
bcdedit /bootdebug on
bcdedit /debug on

随后用bcdedit /dbgsettings可以对全局的调试参数做配置,例如串口调试
bcdedit /dbgsettings serial debugport:1 baudrate:115200
对于MBR分区硬盘,这些配置栏目实际上是保存在BCD文件中。
从diskmgmt.msc可以找到活动分区,有时候是C盘,有时候是C盘前面的一小块分区。这里面的根目录的** BootBCD ** 文件就是记载了里面这三条调试参数。

3 方法

3.1 单独编辑BCD法

一般推荐在windows pe操作系统下去访问故障windows所在的整个硬盘,找出bcd文件,用bootice编辑之。
对于初始的设置,Win10处是这样:
智能编辑
高级编辑
例如此例,winload处只有一个启动项——Windows 10,GUID是{3610…cf-72c0…}。
若已开启nt内核调试,则在高级编辑中,Windows 10处多了一个KernelDebuggerEnabled=Truedebugon
我们若给初始的bcd文件也添加此项,也可达成nt debug的功能。

3.2 cmd编辑法

进入Windows恢复环境里有个命令行选项,进入之,执行bcdedit命令。
WinRE高级选项
对于内核调试不能直接写
bcdedit /debug on
因为只是调试当前的windows恢复环境。
要写
bcdedit /debug {default} on

bcdedit /debug {GUID} on才是调试出问题的Windows。

最后

以上就是暴躁红牛为你收集整理的无法正常进入Windows也能开启Windows内核调试1 背景2 原理3 方法的全部内容,希望文章能够帮你解决无法正常进入Windows也能开启Windows内核调试1 背景2 原理3 方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部