站内搜索
广告
解决DF冰点不修改NTLDR,最后一次正确配置的问题
作者:    来源:    点击:    日期:2007-8-4 12:08:00   

  第一步。。把HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\ReportBootOK的值设为0禁止写入LastKnownGood配置文件。

  第二步。查看HKEY_LOCAL_MACHINE\SYSTEM\Select里面的Current和Default健值是多少。一般情况下两个的键值是一样的。。把LastKnownGood设定成它的值..如果Current和Default的值不一样的话。优先选Default的值。。这样。。NTLDR读取LastKnownGood的值就变成了我们现在使用的配置值了。不管他们怎么样使用最后一次配置都没用了。。因为最后一次配置的值已经指向了我们标准的配置文件。不再使用旧的配置文件启动了。。这样一来最后一次配置就失去作用了。。。。

  第三步。重启。。。试试吧。。是不是成功了。。

  有些人说此方法没用,今天再次说明一下。。

  第三步重启后一定要再进入到系统桌面才能进行下一步操作,推荐在装好DF以后关掉保护再改注册表,重启后再打开保护,为什么一定要这样做,因为LastKnownGood的值会随着ControlSet002变动。也就是重写配置文件,当已经有了ControlSet002的项以后,把LastKnownGood的值设置为成Default键值的时候,在下一次进入桌面,系统就重写了配置文件,这时,相应ControlSet002已经变成了ControlSet003,因为系统已经删除了旧的配置,重写了新的配置做为最后一次的配置。。所以在改完LastKnownGood的值后重启一定要进入到桌面才进行下一步操作。。请无效的朋友仔细操作清楚了。不要老说没用。。

  昨天晚上的研究想法:

  至于禁用安全模式。。我想应该没有必要了。。都有用户名和密码。。他怎么进去。。

  可能大家把思路都放在去禁用F8上面去了。。关于最后一次配置的问题。。。我今天做了一下测试。。。使用最后一次配置功能。系统其实是恢复了HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet这里的注册表。

  我们能不能把这里的注册表分析出来。再做能一个工具保存我们修改后的配置。。这样的话。每次装好DF重启之前都保存一下。。那样不管他们怎么样使用这个功能都没用了。。。

  我试过了。。我这里一使最后一次配置的话会恢复计算机名称的。。。改了那一项注册表里的计算机名称后。。使用最后一次就不会恢复了。。所以说。。跟注册表有很大的关系。。

  大家来讨论一下此方法可不可行。。

  我发现了:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001

  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet

  这三个子键下是有关联的。。。

  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002这个子键如里我没有弄错应该就是最后一次配置使用的注册表文件。。。用它来恢复HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet

这个键的注册表的。。。

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet这个键是当前系统配置的。。

  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001这个键是哪个模式启动的还不是很清楚。

  在MS官方里所说的系统会恢复这个HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet键值。其它注册表键值一率不会被做任何改动。。即然有备份,肯定会有备份的东西。。如果没猜错,应该就是HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002它了。。因为NTLRD一个几百K的文件不可能会有近3.6M的系统配置文件的。。

  也就是说。。当系统配置好后。。只要将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet这个键的值覆盖掉HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002的键值。。。应该就可以达到保存配置的效果。。。大家可以用注册表工具前后对比一下这些键。。。应该是这样的。。

  如果都正常的话。。那应该就这样了。接下来应该想怎么样导进注册表去。。在正常模式下注册是不能完全导入进去的。。。导到一半就提示有进程在使用。。。

  顺便再看看系统引导过程中加载系统内核的这一段。。

  加载内核阶段
  在加载内核阶段中,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文件里设置启动参数。

解决DF冰点不修改NTLDR,最后一次正确配置的问题 评论