職稱(chēng)計(jì)算機(jī)輔導(dǎo):Windows啟動(dòng)和故障恢復(fù)中的文件2

字號(hào):

如果你的系統(tǒng)超過(guò)2GB內(nèi)存,在圖形界面中你將不會(huì)看到完全內(nèi)存轉(zhuǎn)儲(chǔ)選項(xiàng)。其原因在KB274598中進(jìn)行了描述。但我們可以通過(guò)將 HKLMSystemCurrentControlSetControlCrashControl下的CrashDumpEnabled值設(shè)置為1來(lái)強(qiáng)制啟用它(改這個(gè)值在圖形界面中完全內(nèi)存轉(zhuǎn)儲(chǔ)仍不會(huì)顯示出來(lái))。如果你需要完全內(nèi)存轉(zhuǎn)儲(chǔ)來(lái)做更詳盡的排錯(cuò),也可以考慮使用Boot.ini中的MAXMEM 開(kāi)關(guān)將32位操作系統(tǒng)所使用的內(nèi)存限制在2GB或更少(可以參考KB108393),此時(shí)系統(tǒng)就會(huì)將完全內(nèi)存轉(zhuǎn)儲(chǔ)選項(xiàng)顯示來(lái)。
     現(xiàn)在回到Dump文件如何被產(chǎn)生這個(gè)話(huà)題。一旦轉(zhuǎn)儲(chǔ)功能被啟用,操作系統(tǒng)會(huì)自動(dòng)寫(xiě)一個(gè)以“Dump_”開(kāi)頭的磁盤(pán)迷你端口驅(qū)動(dòng)到啟動(dòng)分區(qū),并校驗(yàn)與創(chuàng)建Dump文件相關(guān)的所有組件。包括:磁盤(pán)迷你端口驅(qū)動(dòng)、寫(xiě)入Dump文件的I/O管理函數(shù)和啟動(dòng)分區(qū)的頁(yè)面文件。最終所得的校驗(yàn)結(jié)果會(huì)被保存起來(lái),每當(dāng)系統(tǒng)啟動(dòng)時(shí)KeBugCheck函數(shù)會(huì)重新進(jìn)行校驗(yàn)并與之前的結(jié)果相比對(duì)。如果校驗(yàn)結(jié)果不匹配,將不會(huì)有Dump文件被寫(xiě)入磁盤(pán)(因?yàn)橛衅茐拇疟P(pán)數(shù)據(jù)的危險(xiǎn));如果檢驗(yàn)結(jié)果匹配,Dump信息會(huì)被寫(xiě)入已經(jīng)被寫(xiě)到磁盤(pán)啟動(dòng)分區(qū)上的頁(yè)面文件當(dāng)中。文件系統(tǒng)會(huì)被完全繞過(guò),因?yàn)樗灿锌赡苁窃斐杀罎⒌脑蛑?。?dāng)SMSS.EXE在啟動(dòng)過(guò)程中開(kāi)啟內(nèi)存分頁(yè)時(shí),系統(tǒng)會(huì)仔細(xì)檢查啟動(dòng)分區(qū)頁(yè)面文件當(dāng)中的信息。如果有崩潰信息,這部分頁(yè)面文件就會(huì)被保護(hù)起來(lái)。如果啟動(dòng)過(guò)程中的所有或部分啟動(dòng)分區(qū)頁(yè)面文件不可用,系統(tǒng)會(huì)提示虛擬內(nèi)存過(guò)低(暫時(shí))。啟動(dòng)進(jìn)程執(zhí)行完成之后WINLOGON.EXE會(huì)調(diào)用 SAVEDUMP.EXE進(jìn)程從頁(yè)面文件中抽出崩潰信息,并將Dump文件寫(xiě)到磁盤(pán)上。
     在Windows Server 2003上,某些過(guò)程可能會(huì)有不同,請(qǐng)參考KB886429。當(dāng)Server啟動(dòng)之后,Windows會(huì)要求在啟動(dòng)分區(qū)上創(chuàng)建一個(gè)和物理內(nèi)存相同大小的臨時(shí)文件。如果磁盤(pán)空間不足,Dump還是會(huì)生成,不過(guò)會(huì)被系統(tǒng)縮減大小。在創(chuàng)建Dump操作過(guò)程的初期,會(huì)話(huà)管理子系統(tǒng)  ?。⊿MSS.EXE)就會(huì)介入驗(yàn)證內(nèi)存Dump信息是否有效。如果Dump信息有效,SMSS.EXE會(huì)將Dump文件重命名為Dumpxxx.tmp,進(jìn)而存儲(chǔ)Dumpxxx.tmp 到啟動(dòng)分區(qū)并設(shè)置HKLM/System/CurrentControlSet/Control/CrashControl/MachineCrash下的TempDestination和DumpFile值?! AVEDUMP.EXE便會(huì)讀取這2個(gè)值,并在判定文件的有效性之后將Dumpxxx.tmp 保存成Memory.dmp。