「Window启动和故障恢复」

2022-08-30 01:40:20   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《「Window启动和故障恢复」》,欢迎阅读!
故障,恢复,启动,Window
2014年职称计算机考试Windw p考点:Widow启动和故障恢复

为帮助考生有效备考214年职称计算机考试,特为您收集整理了职称计算机考试Window xp考点资料,希望对您通过职称计算机考试有所帮助。

默认情况下,Windws配置为当系统发生崩溃时尝试自动抓取一个当前操作系统的状态信息。接下来我们将讨论系统故障,非应用程序失败。Dup选项可以通过控制面板中的系统工具来进行设置。我们打开系统属性—高级选项卡,找到启动和故障恢复,点击设置,我们就可以看到Dump文件的相关配置。当系统发生崩溃时,有3Dump文件可以被捕获:

完全内存转储:当崩溃发生时,将捕获整个物理内存的状态。此类转储文件大小为内存中页面文件大+1MB的文件头。Windw NT4只支持完全内存转储,当然这也是Windows ervr Systms的默认设置。

核心内存转储:当崩溃发生时,核心内存转储只捕获物理内存中内核态的页面文件读/写数据。这只是内核态的转储,并不包括用户态进程的页面。不过,由用户态进程页引起系统崩溃是不大可能的,通常都是由内核态引起。核心内存转储中包括:当前运行进程、线程和被加载的驱动等相关信息。核心内存转储文件大小=操作系统内核态内存占用大小+操作系统为驱动程序分配内存的大小。

小内存转储:小内存转储(又叫Min-dump)是一个6K的转储文件(64位系统和Windows7128K,Vista52),它包括:终止代码、参数和被加载的驱动列表。主要信息为崩溃时的当前进程、线程和内核堆。

注意:有的情况下我们需要进行完全内存转储,手动进行完全内存转储为程序停止响应的排错提供了最为丰富的信息。因为当程序Hang住时,我们需要查看用户态进程、死锁等等信息。不过,当你在选择捕获哪种Dump文件时,一定要考虑好捕获出来的文件大小。如上所述,完全内存转储文件大小会是在物理内存大小的基础上+1MB(笔者8GB内存,再加1MB.恐怖啊……)

前面我们回顾了3种类型的Dump文件,实则在日常的工作中核心内存转储是我们系统崩溃和Bug检查时最常用到的。请记住,核心内存转储文件大小仅基于内核态内存占用和驱动内存占用。(在有更多内存的系统上,Dump文件过大是正常的。目前我们还无法精准的计算核心内存转储文件大小,你可以尝试手动配置核心内存转储来查看页面文件是否足够大。对于设置最小的核心内存转储大小我们有一定的指导方针,但对于最大值目前还没办法:

物理内存最小页面文件 Kenl Dump

< 2MB50B

< 4GB20MB

< 8GB40MB

>= 8GB80B


如果你担心页面文件设置过小,无法很好的捕获核心转储,我们唯一的办法就是通过KB2419描述的方式使用 rashOnCtrlScrll方法造成手动崩溃。系统重启之后,我们可以手工查看Dump文件大小。另一种方法是在启动分区上手动设置 2GB+1MB的页面文件大小(32位系统),这是因为32位操作系统内核态最大地址空间就是2GB.

除了配置正确的页面文件大小之外,我们也需要确保有足够的磁盘空间让Dump文件能够被正确的写入。与页面文件用来捕获Dump不同,Dump文件可以被写入其它的本地分区。在保存多个Dump件时,请取消选择“覆盖任何现有文件”。不过请记住,这会给剩余的磁盘空间造成很大的压力。

下面我们来看Dump文件是如何被产生的。当系统启动时,会到注册表HKLMSystemCurrnControlSetCotrolCrshContol 读取崩溃转储选项。所有在图形界面所做的操作都会修改如下注册表值:

将事件写入系统日志=LogEvent

自动重新启动= uoRbot

写入调试信息= CrshDmEnale

转储文件= DumpFil

覆盖任何现有文件= Ovrwrie

如果你的系统超过2GB内存,在图形界面中你将不会看到完全内存转储选项。其原因在KB27458中进行了描述。但我们可以通过将 HKLMSstemCurrenConrolSetConrlCashCntrol下的CrashDumpEnbld值设置为1来强制启用它(改这个值在图形界面中完全内存转储仍不会显示出来)。如果你需要完全内存转储来做更详尽的排错,也可以考虑使用Bot.ii中的MAXE 开关将2位操作系统所使用的内存限制在2GB或更少(可以参考K108393,此时系统就会将完全内存转储选项显示来。

现在回到Dump文件如何被产生这个话题。一旦转储功能被启用,操作系统会自动写一个以“Dm_开头的磁盘迷你端口驱动到启动分区,并校验与创建Dmp文件相关的所有组件。包括:磁盘迷你端口驱动、写入Dump文件的I/O管理函数和启动分区的页面文件。最终所得的校验结果会被保存起,每当系统启动时KeBugCeck函数会重新进行校验并与之前的结果相比对。如果校验结果不匹配,将不会有Dmp文件被写入磁盘(因为有破坏磁盘数据的危险);如果检验结果匹配,Dump信息会被写入已经被写到磁盘启动分区上的页面文件当中。文件系统会被完全绕过,因为它也有可能是造成崩溃的原因之一。当SMS.EXE在启动过程中开启内存分页时,系统会仔细检查启动分区页面文件当中的信息果有崩溃信息,这部分页面文件就会被保护起来。如果启动过程中的所有或部分启动分区页面文件不可,系统会提示虚拟内存过低(暂时)。启动进程执行完成之后WINLOGO.EXE会调用 SAEDUMPEXE进程从页面文件中抽出崩溃信息,并将Dmp文件写到磁盘上。

Window Server 203上,某些过程可能会有不同,请参考KB88642.Server启动之,Windows会要求在启动分区上创建一个和物理内存相同大小的临时文件。如果磁盘空间不足,ump还是会生成,不过会被系统缩减大小。在创建Dump操作过程的初期,会话管理子系统 SMS


.EXE)就会介入验证内存Dmp信息是否有效。如果Dump信息有效,SMSS.XE会将Dup文件重命名为Dumpxxx.m,进而存储Dupxxxtmp 到启动分区并设置HKLM/System/CurrenControlSet/onrol/CrashContro/achneCrash下的TempDestination和DumFile值。 SAEDUMPEXE便会读取这2个值,并在判定文件的有效性之后将Dumpxx.tmp 保存成Meory.dmp.


本文来源:https://www.dy1993.cn/Y8j.html

相关推荐