2023年11月30日发(作者:)
问题情况
当我们在电脑上安装某些软件或更新补丁后,重启电脑发现无法正常启动,报如下错误:
观察重点信息:状态0xc0000428 信息 windows无法验证此文件的数字签名。
1 处理方法
1.启动时按F8,进入该界面,选择倒数第二项“禁用驱动程序签名强制”,回车重启即可正
常登录。
此方法操作简单,但由于禁用了验证驱动文件签名,对系统安全性有一定影响。
2.进入PE系统,到系统目录下的WindowsSystem32Boot目录,查看文件的数
字签名是否正常:
如果该文件签名正常,可以将该文件直接复制到系统目录下的WindowsSystem32目录下替
换原有,重启后可以正常登录。
如果该文件签名如下无效,网上下载签名有效的文件替换即可。
以上两种方法对于相似问题(系统文件签名问题)均有借鉴性。
2 问题原理及解决思路
在解决这个问题之前先了解一下win7的启动过程:电脑加电后,首先它会启动主板上
的BIOS,BIOS默认对电脑的硬件进行自检,完成自检之后BIOS会搜索硬盘上的MBR(主引
导记录),如果MBR正常,那么MBR就会读取硬盘上的DPT(硬盘分区表),DPT里记录了
硬盘的分区表信息,MBR会在这些分区里搜索活动分区,并且读取活动分区里的引导记录
PBR,如果一切正常就把控制权给PBR。在取得控制权后PBR会寻找活动分区根目录下的
bootmgr文件,这个文件是win7的启动管理器,bootmgr接管后会读取活动分区根目录下
Boot文件夹下的BCD(Boot Configuration Data)文件,这个文件存储了win7的启动配置数
据,Boot文件夹还包含相应语言的文件夹,对应语言文件夹下存在文件。
bootmgr读取BCD并调用最终为我们呈现启动菜单界面,很多人默认直
接进入Windows所以就看不到启动菜单。完成这一步骤后,bootmgr会按照在BCD文件中
设置的系统所在分区加载该分区程序,就是说
的运行环境是bootmgr。取得控制权后加载内核,硬件和其他服务,然后进入桌
面至此完成启动。
整个启动过程简单来说就是:BIOS--MBR--DPT--PBR—bootmgr(如果是win7系统)--BCD-
-启动菜单--- --内核加载--启动整个windows7系统。
既然无法验证的签名有效性,我们可以禁止验证的签名,从启
动过程中可以发现是BCD配置文件控制该验证,如果我们可以进入PE,那么使用BOOTICE
工具可以编辑BCD文件(编辑前备份BCD文件),BCD文件位于系统盘目录BOOT目录下。
右下角勾选禁用数字签名验证。
不过开机时按F8在系统安全模式下选择禁用驱动程序签名强制更方便。


发布评论