ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 完美解决不修改NTLDR-最后一次正确配置的问题(修正)(转)

完美解决不修改NTLDR-最后一次正确配置的问题(修正)(转)

原创 Linux操作系统 作者:jcszjswkzhou 时间:2019-03-11 13:36:07 0 删除 编辑
查了很多资料。。。终于知道解决最后一次正确配置的方法了。。。如下。。
看完不顶的这个月肯定丢东西。。。
第一步。。把HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonReportBootOK的值设为0禁止写入LastKnownGood配置文件。
第二步。查看HKEY_LOCAL_MACHINESYSTEMSelect里面的Current和Default健值是多少。一般情况下两个的键值是一样的。。把LastKnownGood设定成它的值..如果Current和Default的值不一样的话。优先选Default的值。。这样。。NTLDR读取LastKnownGood的值就变成了我们现在使用的配置值了。不管他们怎么样使用最后一次配置都没用了。。因为最后一次配置的值已经指向了我们标准的配置文件。不再使用旧的配置文件启动了。。这样一来最后一次配置就失去作用了。。。。
第三步。重启。。。试试吧。。是不是成功了。。
有些人说此方法没用,今天再次说明一下。。
第三步重启后一定要再进入到系统桌面才能进行下一步操作,推荐在装好DF以后关掉保护再改注册表,重启后再打开保护,为什么一定要这样做,因为LastKnownGood的值会随着ControlSet002变动。也就是重写配置文件,当已经有了ControlSet002的项以后,把LastKnownGood的值设置为成Default键值的时候,在下一次进入桌面,系统就重写了配置文件,这时,相应ControlSet002已经变成了ControlSet003,因为系统已经删除了旧的配置,重写了新的配置做为最后一次的配置。。所以在改完LastKnownGood的值后重启一定要进入到桌面才进行下一步操作。。请无效的朋友仔细操作清楚了。不要老说没用。。
昨天晚上的研究想法:
至于禁用安全模式。。我想应该没有必要了。。都有用户名和密码。。他怎么进去。。
可能大家把思路都放在去禁用F8上面去了。。关于最后一次配置的问题。。。我今天做了一下测试。。。使用最后一次配置功能。系统其实是恢复了HKEY_LOCAL_MACHINESYSTEMCurrentControlSet这里的注册表。
我们能不能把这里的注册表分析出来。再做能一个工具保存我们修改后的配置。。这样的话。每次装好DF重启之前都保存一下。。那样不管他们怎么样使用这个功能都没用了。。。
我试过了。。我这里一使最后一次配置的话会恢复计算机名称的。。。改了那一项注册表里的计算机名称后。。使用最后一次就不会恢复了。。所以说。。跟注册表有很大的关系。。
大家来讨论一下此方法可不可行。。
我发现了:HKEY_LOCAL_MACHINESYSTEMControlSet001
HKEY_LOCAL_MACHINESYSTEMControlSet002
HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
这三个子键下是有关联的。。。
HKEY_LOCAL_MACHINESYSTEMControlSet002这个子键如里我没有弄错应该就是最后一次配置使用的注册表文件。。。用它来恢复HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
这个键的注册表的。。。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSet这个键是当前系统配置的。。
HKEY_LOCAL_MACHINESYSTEMControlSet001这个键是哪个模式启动的还不是很清楚。
在MS官方里所说的系统会恢复这个HKEY_LOCAL_MACHINESYSTEMCurrentControlSet键值。其它注册表键值一率不会被做任何改动。。即然有备份,肯定会有备份的东西。。如果没猜错,应该就是HKEY_LOCAL_MACHINESYSTEMControlSet002它了。。因为NTLRD一个几百K的文件不可能会有近3.6M的系统配置文件的。。
也就是说。。当系统配置好后。。只要将HKEY_LOCAL_MACHINESYSTEMCurrentControlSet这个键的值覆盖掉HKEY_LOCAL_MACHINESYSTEMControlSet002的键值。。。应该就可以达到保存配置的效果。。。大家可以用注册表工具前后对比一下这些键。。。应该是这样的。。
如果都正常的话。。那应该就这样了。接下来应该想怎么样导进注册表去。。在正常模式下注册是不能完全导入进去的。。。导到一半就提示有进程在使用。。。
顺便再看看系统引导过程中加载系统内核的这一段。。
加载内核阶段
  
  在加载内核阶段中,NTLDR将加载NTOKRNL.EXE内核程序,然后NTLDR将加载硬件抽象层(HAL.dll),接着系统将加载注册表中的“HKEY_MACHINESystem”键值,这时NTLDR将读取“HKEY_MACHINESystemselect”键值来决定哪一个ControlSet将被加载。所加载的ControlSet将包含设备的驱动程序以及需要加载的服务。再接着NTLDR加载注册表“HKEY_LOCAL_MACHINESystemservice”下的start键值为0的底层设备驱动。当ControlSet的镜像CurrentControlSet被加载时,NTLDR将把控制权传递给NTOSKRNL.EXE,至此引导过程将结束。
  
  小提示:如果在启动的时候按F8键,那么我们将会在启动菜单中看到多种选择启动模式,这时NTLDR将根据用户的选择来使用启动参数加载NT内核,用户也可以在Boot.ini文件里设置启动参数。
再看看NTLDR选取注册表的模式。。不难看明白了吧。。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-123876/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-08-29

  • 博文量
    3488
  • 访问量
    2631659