自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何處理系統(tǒng)崩潰后的Windows 7

原創(chuàng)
系統(tǒng) Windows
一切都很完美;你已升級到了Windows 7。系統(tǒng)打上了全部的補丁,所有驅動程序都更新了,安全很到位,說不定你甚至還有新硬件……但是仍然無法避免的是系統(tǒng)崩潰,在本文中會為大家詳細介紹如何處理崩潰后的Windows 7。

【51CTO精選譯文】想準備使用WindDbg來解決Windows 7系統(tǒng)崩潰,需要一臺個人電腦滿足下列要求:

32位或64位Windows 7/Vista/XP或Windows Server 2008/2003

約25MB的硬盤空間(這不包括存儲轉儲文件或符號文件的空間)

正常的互聯(lián)網(wǎng)連接

微軟Internet Explorer 5.0或更高版本

WinDBG的最新版本是Windows SDK中的一個選項。SDK下載文件名為winsdk web.exe,大小498KB,可以免費下載。(注意:安裝調(diào)試器后,可以刪除龐大的下載文件,從而騰出大量空間。)

內(nèi)存轉儲(頁面文件必須在C:上,以便Windows保存內(nèi)存轉儲文件)

安裝WinDbg

下載Windows SDK、運行安裝向導程序后,選擇Common Utilities(常用實用程序)下面的Debugging Tools for Windows(Windows調(diào)試工具)選項。

配置啟動和恢復

這一步很煩人。因為不太容易找到啟動和恢復對話框;為了檢查系統(tǒng)已設定成在錯誤檢查期間采取合適的動作,包括要不要自動重新啟動、保存多少大小的轉儲文件,需要這個對話框。

找到啟動和恢復對話框:

1、選擇屏幕左下角的Start(開始)按鈕

2、選擇Control Panel(控制面板)

3、選擇System and Security(系統(tǒng)和安全)

4、從右邊欄的選項中選擇System(系統(tǒng))

5、從左邊欄中選擇Advanced system settings(高級系統(tǒng)設置),顯示System Properties(系統(tǒng)屬性)對話框

6、在系統(tǒng)屬性對話框中選擇Advanced(高級)選項卡

7、在啟動和恢復區(qū)中選擇Settings(設置)按鈕

看到如下所示的啟動和恢復對話框:

確保啟動和恢復設置是否正確

在System failure(系統(tǒng)故障)下

1、勾選Write an event to the system log(將事件寫入系統(tǒng)日志)

2、勾選Automatically restart(自動重新啟動)

3、選擇Kernel memory dump(核心內(nèi)存轉儲)

4、確保轉儲文件寫入%SystemRoot%\MEMORY.DMP

5、勾選Overwrite any existing file(覆蓋任何現(xiàn)有文件),以節(jié)省硬盤空間

請注意:這將意味著你的系統(tǒng)將既保存內(nèi)核轉儲文件,又保存微型轉儲文件。然而,盡管你有一個微型轉儲用于每個事件,但保存的將是最近一個內(nèi)核轉儲。

配置WinDbg

啟動調(diào)試器:想啟動WinDbg,請依次選擇下列:

Start | All Programs | Debugging Tools for Windows| WinDbg

開始|所有程序| Windows調(diào)試工具|WinDbg

如果你要隨時使用WindDbg,需要簡化這個程序的啟動:只要把它固定到Startup(啟動)菜單上,或者發(fā)送快捷方式到桌面上。

符號有多重要?

在你想找到轉儲文件中的某個異常模塊、急于挽救局面之前,得確保調(diào)試器已準備就緒。最重要的是,你得確信它會為你在排除故障的那個操作系統(tǒng)的確切版本找到符號文件。      

符號表是編譯后的產(chǎn)物。當某個程序被編譯后,源代碼從一種高級語言轉換成了機器碼。與此同時,編譯器會創(chuàng)建一個符號文件,帶有標識符列表、標識符在程序中的位置及其屬性。一些標識符是全局和局部變量以及函數(shù)調(diào)用。程序不需要這些信息才能執(zhí)行。因而,信息可以取出來存儲在另一個文件中,減小了最終可執(zhí)行文件的大小。

與較大的可執(zhí)行文件相比,較小的可執(zhí)行文件占用磁盤空間較少,加載到內(nèi)存的速度較快。但凡事都有另一面:某程序引起問題時,操作系統(tǒng)只知道出現(xiàn)問題的十六進制地址。你需要比這更多的信息,才能確定哪個程序在使用該內(nèi)存空間,它試圖在進行什么操作。Windows符號表就能解答這個問題,而可以訪問針對特定系統(tǒng)內(nèi)存的符號好比將地名加在地圖上。反過來,分析符號表錯誤的轉儲文件好比拿著一張波士頓的地圖在舊金山找路。

配置WinDbg以定位符號

Windows有數(shù)量多得驚人的符號表文件。之所以這樣,是因為操作系統(tǒng)的每個版本,甚至一次性版本,都會帶來一個新文件。幸運的是,WinDbg可以為你處理這件事,但必須為它配置正確的搜索路徑。要做到這一點,就要啟動WinDbg,并依次選擇下列:

File | Symbol file path

文件|符號文件路徑

然后輸入下列路徑:(確保你的防火墻允許訪問msdl.microsoft.com)

srv*c:\cache*http://msdl.microsoft.com/download/symbols

請注意:星號之間的地址表明你想把符號存儲在何處,以便將來訪問。比如說,我把符號存儲在C:驅動器根目錄下一個名為symbols的文件夾中,因而:

srv*c:\symbols*http://msdl.microsoft.com/download/symbols

打開內(nèi)存轉儲時,WinDbg會查看可執(zhí)行文件(.exe和.dll等文件),并提取版本信息。然后它會請求微軟的符號服務器,該服務器包含該版本信息,并找到確切的符號表,從中獲取信息。它不會下載你在排除故障的特定操作系統(tǒng)的所有符號,只會下載需要的符號。另外,你可以選擇從微軟下載并存儲完整的符號文件。然而,對于你在分析的操作系統(tǒng)的每個版本而言,這個文件的大小在600MB到800MB之間。相比之下,WinDbg下載的文件不到100MB,即可分析測試機上操作系統(tǒng)的好幾個版本。即使如今硬盤成本很低,節(jié)省的空間還是相當大。

關于轉儲文件

內(nèi)存轉儲文件是一份快照,表明了系統(tǒng)崩潰時內(nèi)存里面有什么。雖然內(nèi)存轉儲文件也許是你可能需要查看的最乏味、最不直觀的東西,但操作系統(tǒng)崩潰時,它是你最好的朋友。Windows創(chuàng)建了三種不同大小的內(nèi)存轉儲:微型轉儲(minidump)、內(nèi)核轉儲(kernel dump)和完全轉儲(full dump)。

1、小型轉儲或微型轉儲

Windows 7微型轉儲只有256K字節(jié),不管從哪個標準來看都很小;然而,它們比Windows 2000/XP時候大了不少,那時候只有64K。微型轉儲之所以這么小,原因之一是,它們不含有故障出現(xiàn)時,內(nèi)存中的任何二進制文件或可執(zhí)行文件。不過,那些文件對調(diào)試器在之后進行分析來說至關重要。只要你在創(chuàng)建轉儲文件的機器上調(diào)試,WinDbg就能在System Root文件夾中找到它們(除非轉儲文件創(chuàng)建后,二進制文件因系統(tǒng)更新而更改)。此外,調(diào)試器應該能夠通過SymServ來找到它們。如果配置得當,除了內(nèi)核轉儲外(下文有描述),Windows 7還會為每一次崩潰事件創(chuàng)建和保存微型轉儲。

2、內(nèi)核轉儲

內(nèi)核轉儲大小大致相當于Windows 7的內(nèi)核占用的內(nèi)存。在我的筆記本電腦上,內(nèi)核轉儲約344MB大小,壓縮后只有100MB多點。內(nèi)核轉儲的一個優(yōu)點是,它含有二進制文件。默認情況下,我總是讓系統(tǒng)保存最近的內(nèi)核轉儲。請記?。合到y(tǒng)在保存內(nèi)核轉儲時,也會保存微型轉儲。

3、完整轉儲或完全轉儲

完全內(nèi)存轉儲大小相當于已安裝內(nèi)存的數(shù)量。由于許多系統(tǒng)有數(shù)GB內(nèi)存,這方面的存儲很快會成為問題,如果你頻頻遇到崩潰,更是如此。我通常不建議保存完全內(nèi)存轉儲,因為它們占用太多的空間,而且一般也不需要。不過微軟的Vachon倒建議:“如果你試圖調(diào)試一個很復雜的問題,比如設備中多個服務之間的遠程過程調(diào)用(RPC)問題,又想看看這些服務在用戶模式下進行什么操作,完全內(nèi)存轉儲就大有幫助。”因此,要堅持保存內(nèi)核轉儲,但要準備偶爾創(chuàng)建完全轉儲。

如果沒有內(nèi)存轉儲可供使用,怎么辦?

如果你沒有內(nèi)存轉儲可以查看,也不用擔心,可以讓系統(tǒng)崩潰!最簡單的方法(不必更改注冊表的設置)是,運行一個名為NotMyFault的出色工具(這要感謝Mark Russinovich和SysInternals網(wǎng)站的團隊)。它提供了一系列選項,可以加載行為異常的驅動程序(這需要管理員權限)。

但記?。篘otMyFault會制造系統(tǒng)崩潰!所以要讓你的系統(tǒng)準備好,確信讓需要訪問該系統(tǒng)的任何人注銷退出幾分鐘。凡是含有可能會丟失的信息的文件都要保存,并關閉應用程序。如果按上述方法配置了系統(tǒng),它應該沒有問題。機器應該會崩潰,重新啟動,這樣就有了內(nèi)核轉儲和微型轉儲可以查看。我用過好多次,毫無問題。#p#

下載NotMyFault,迫使系統(tǒng)崩潰

1、從下列微軟網(wǎng)址下載NotMyFault工具:http://download.sysinternals.com/Files/Notmyfault.zip,將文件提取到文件夾。

2、鼠標右擊NotMyFault.exe,或者在命令提示符下,鍵入NotMyFault。如果看到“You don't have permission to open this file”(你沒有權限打開此文件)的信息,那么再試一次,但是鼠標右擊時,選擇“Run as Administrator”(以管理員身份運行)。

3、從菜單中選擇High IRQL fault (kernelmode))和Do Bug按鈕。這將生成一個內(nèi)存轉儲文件和“Stop D1”錯誤。

4、稍等一下...你的系統(tǒng)馬上會回來,會有微型轉儲和內(nèi)核轉儲可以查看了。

加載轉儲文件

如果你看到“你沒有權限打開此文件”的信息,通過鼠標右擊WinDbg來進行重新啟動,選擇“以管理員身份運行”。

一旦調(diào)試器運行,選擇菜單選項File | Open crash dump(文件|打開崩潰轉儲),指向它,打開你想要分析的內(nèi)存轉儲。如果你想讓它記住轉儲文件在哪里,那么看到Save information for workspace(為工作區(qū)保存信息)時,選擇Yes(確定)。

WinDbg會尋找Windows的這個確切版本的Windows符號文件。它引用符號文件路徑,訪問microsoft.com,并顯示結果。

注意:如果調(diào)試器似乎很忙,那可能是第一次打開特定機器的轉儲文件,因而,WinDbg從SymServ下載符號。下次打開同一臺機器的轉儲時,調(diào)試器似乎會快得多,因為符號文件已在本機上。

命令窗口會出現(xiàn),崩潰分析顯示在該窗口上。左下角將是KD>提示符。提示符右邊是一個單行窗口,你可以在這里輸入命令。

可能的錯誤信息

如果你看到信息:

ERROR: Symbol file could not be found. Defaulted to export symbols for ntoskrnl.exe -

錯誤:符號文件找不到。默認情況下導出ntoskrnl.exe的符號-

通常是下列三種情況中有一種出錯了:

路徑不正確;仔細檢查,確保之前輸入的符號文件路徑?jīng)]有拼寫錯誤或其他錯誤(如空白處)

連接失效,檢查互聯(lián)網(wǎng)連接,確保它在正常工作

防火墻禁止訪問符號文件,或者符號文件在檢索過程中已損壞

如果你的路徑和連接沒問題,那么問題可能出在防火墻上。如果防火墻一開始阻止WinDbg下載符號表,這會導致符號文件損壞。如果對防火墻解禁,再次試圖下載符號文件仍不行,那么表明符號文件已損壞。最快的解決辦法是關閉WinDbg,刪除symbols文件夾(最有可能設成c:\symbols),并且對防火墻解禁?,F(xiàn)在,重新打開WinDbg和轉儲文件。調(diào)試器會重新創(chuàng)建文件夾,并重新下載符號。

如果你看到這個信息:

Kernel symbols are WRONG. Please fix symbols to do analysis.

內(nèi)核符號錯誤。請改正符號,進行分析。

那么,WinDbg無法檢索正確的符號,它會改而使用默認的符號表。但是這個警告信息表明,它無法生成正確的結果。請記?。悍柋硎窃诔绦蚓幾g時生成的,所以每個Windows版本、補丁和熱修復程序等都有符號表文件。返回到前一個章節(jié),確保你設置的路徑正確、連接正常,而且沒有被阻止。

從頭到尾瀏覽WinDbg的輸出。你可能會看到類似以下的錯誤信息,表明它可能找不到信息myfault.sys:

Unable to load image \??\C:\Windows\system32\drivers\myfault.sys, Win32 error 0n2

無法加載映像\??\C:\Windows\system32\drivers\myfault.sys, Win32 error 0n2

 WARNING: Unable to verify timestamp for myfault.sys

警告:無法為myfault.sys驗證時間戳

 ERROR: Module load completed but symbols could not be loaded for myfault.sys

錯誤:模塊加載已完成,但無法為myfault.sys加載符號

這意味著,調(diào)試器在尋找myfault.sys方面的信息。然而,由于它像第三方驅動程序(是的,它是由微軟開發(fā),但肯定不是平常的微軟產(chǎn)品),它沒有符號(微軟并不存儲所有第三方驅動程序)。可以忽視 該錯誤信息。供應商通常在交付驅動程序時不附帶符號文件,符號文件并不是你所必要的;沒有符號文件,你也能找到有問題的驅動程序。

當你讓WinDbg打開轉儲文件后,它會自動進行基本的分析。甚至不用給調(diào)試器下達任何直接命令,它已報出了可疑對象,如下面屏幕所示。

命令

有數(shù)百個命令可以控制WinDbg;WinDbg是個功能很強大的工具。幸運的是,我們只需要一個命令。為了讓探討更深入一點,我們將多用兩個命令,總共有三個命令。它們是!analyze –v、lmv和lmvm。

!analyze –v

以詳細模式分析

!analyze –v顯示了系統(tǒng)崩潰時,描述系統(tǒng)狀態(tài)的信息,遇到的故障,以及誰是主要的可疑對象。

lmv

顯示加載模塊的

詳細信息

lmv顯示了一系列驅動程序及路徑、版本和供應商信息。它常包含產(chǎn)品描述。lmv輸出結果可能要很長的時間。留意WinDbg界面的左下角,你通常會看到kd>提示符。獲取信息時,它會顯示*BUSY*。只有kd>提示符返回后,你才能使用另外的命令。

lmvm

[模塊名稱]

顯示某加載模塊

(模塊名稱)的

詳細信息

lmvm[模塊名稱]讓你能夠告訴調(diào)試器只獲取那個特定模塊的信息。比如說:lmvm myfault.sys。

!analyze -v

在命令窗口底部的命令行上輸入!analyze -v(注意yynw命令與“-v”之間的空間)。V(詳細)這個參數(shù)選項符告訴WinDbg,你想要所有的詳細信息。它給出的解釋結合了英語和編程術語,不過這是個良好的開頭。實際上,在許多情況下,你可能不需要任何下一步操作。如果你明白了崩潰的原因,可能就搞定了。

下面這個例子是使用NotmyFault驅動程序來分析我們的崩潰。

如果使用!analyze –v,調(diào)試器輸出結果的一個重要部分是堆棧文本。每次查看轉儲文件,總要關注堆棧最右邊,留意任何第三方驅動程序。在本例中,我們看到了myfault。請注意:事件由下往上按年月順序排列;系統(tǒng)執(zhí)行每個新任務時,新任務會顯示在最上面,把以前的操作往下移。在這個很短的堆棧中,你會看到myfault處于活躍狀態(tài),然后出現(xiàn)頁面錯誤,系統(tǒng)聲明進行錯誤檢查,這正是系統(tǒng)停止(藍屏)的時候。請注意:部分數(shù)據(jù)已被清除,以便該內(nèi)容能在一個頁面上顯示,“truncated”注釋表明了這點。

#p#

用lmv來分析

下一步是確認可疑對象的存在,并找到有關它的任何詳細信息。往命令行中輸入lvm,可顯示已加載的模塊;v指調(diào)試器以詳細模式輸出,顯示模塊的所有已知詳細信息。

如果運行命令lmv后,你看到WinDbg的界面左下角出現(xiàn)*BUSY*(*忙碌*)信息​,也不用擔心​。這是由于它在收集系統(tǒng)發(fā)生故障時,加載模塊的詳細信息;收集過程可能需要幾分鐘。收集完畢后,你會在原來顯示BUSY的地方看到kd>。

這里有大量信息。找到所要關注的驅動程序得花點時間,所以可通過選擇Edit | Find(編輯|查找)來簡化這個過程,然后輸入可疑的驅動程序,這里是myfault。你看到的信息多少取決于驅動程序供應商。一些供應商把很少的信息放在文件中,而微軟等另一些供應商往往把全面的信息放在文件中。

用lmvm來分析

想直接找到某個特定模塊,一個好方法就是使用lmvm命令。在這種情況下,輸入lmvm myfault,調(diào)試器將只返回針對該模塊的數(shù)據(jù)。

你找到供應商的名稱后,進入其網(wǎng)站,檢查更新、知識庫文章及其他支持信息。要是沒有這些內(nèi)容,或未能解決問題,請聯(lián)系供應商。對方可能會要你把調(diào)試信息發(fā)過去(很容易把調(diào)試器的輸出結果拷貝到電子郵件或Word文檔里面),或者可能會要你把內(nèi)存轉儲發(fā)過去(先進行打包,既為了壓縮內(nèi)存轉儲,又為了保護數(shù)據(jù)完整性)。

另外的三分之一

幸運的是,你一打開轉儲文件就知道原因的機率大概有三分之二。但有時轉儲文件提供的信息具有誤導性,或者不夠全面。這時候,又該怎么辦呢?

有時原因出在硬件上

如果你老是遇到崩潰,又沒有明確或一致的原因,可能出在內(nèi)存問題上。下載免費測試工具Memtest86。這個簡單的診斷工具運行速度快、效果好。許多人輕視內(nèi)存問題的可能性,因為內(nèi)存問題僅占系統(tǒng)崩潰的一小部分。然而,內(nèi)存問題常常是害得你一直猜測的原因。

Windows是罪魁禍首嗎?

很抱歉,這不可能!雖然可能有人會覺得很意外,但事實上,操作系統(tǒng)很少出錯。如果ntoskrnl.exe(Windows核心)或win32.sys(主要負責Windows上GUI層的驅動程序)被列為是罪魁禍首——它們常常被這樣列為,也不要過于草率地下定論。下面這種可能性大得多:某個異常的第三方設備驅動程序調(diào)用了Windows組件,以執(zhí)行一項操作,然后傳送了壞的指令,比如告訴它寫入到根本不存在的內(nèi)存。所以,盡管操作系統(tǒng)肯定會犯錯,但你在怪罪微軟之前先排除掉其他的所有可能性。

冤枉驅動程序

你經(jīng)常會看到反病毒驅動程序被列為是崩潰的原因。比如說,使用!analyze -v后,調(diào)試器在“IMAGE_NAME”(映像名稱)這一行報告反病毒軟件的驅動程序。原因可能確實出在反病毒驅動程序上,不過要牢記:這類驅動程序被冤枉的可能性更大。原因如下:反病毒代碼要工作,它必須監(jiān)視所有的文件打開和關閉。為了做到這一點,代碼處在操作系統(tǒng)的低層,而且在不斷工作。實際上,該代碼太忙碌了;崩潰發(fā)生時,它常常出現(xiàn)在活躍的函數(shù)調(diào)用堆棧上,哪怕明明不是它導致崩潰,也這樣。因為該堆棧上的任何第三方驅動程序立即成為可疑對象,所以反病毒驅動程序常常被列為崩潰的原因。不管是不是真的導致了問題,反病毒代碼都經(jīng)常出現(xiàn)在堆棧上。

缺少供應商信息?

一些驅動程序供應商并沒有花時間把足夠的信息附在模塊后面。所以,如果lmv起不到幫助,試著查看映像路徑上的子目錄(如果有映像路徑的話)。常常其中一個子目錄就是供應商名稱或者名稱縮寫。另一個辦法就是用谷歌搜索引擎搜一下。輸入驅動程序名稱及/或文件夾名稱。除了別人發(fā)布的關于該驅動程序的信息外,你可能還會找到相應的這家供應商。

總結

你已經(jīng)花了時間來準備對付下一次藍屏死機,記?。涸诖蠖鄶?shù)情況下,你打開轉儲文件后,立馬就能知道原因,整個過程用不了一分鐘。如此輕而易舉地查明三分之二的嚴重故障的原因,真是讓人滿意——對你的用戶們來說更是如此。

原文:How to Solve Windows 7 Crashes in Minutes

 【51CTO精選譯文 轉載請標明出處與作者】

【編輯推薦】

  1. 揭秘:你的Windows 7為什么會崩潰
  2. Windows Server崩潰的三大常見誘因與避免方式
  3. 無線網(wǎng)絡致Windows 7資源管理器崩潰重啟
  4. 雙系統(tǒng)中XP崩潰后Windows 7無法引導怎么辦
責任編輯:張浩 來源: 51CTO.com
相關推薦

2010-06-22 15:06:23

2009-12-25 14:44:21

Windows 7系統(tǒng)崩潰系統(tǒng)引導

2017-08-14 13:10:26

2023-06-13 07:34:10

2009-04-30 09:02:36

微軟操作系統(tǒng)Windows 7

2013-02-21 16:27:07

開源開源流計算

2009-07-13 08:35:25

Windows 7QQ2009視頻崩潰

2009-05-06 09:03:50

微軟Windows 7操作系統(tǒng)

2015-10-27 10:48:19

2011-09-08 18:01:57

2009-08-06 08:36:58

Windows 7內(nèi)存泄露系統(tǒng)崩潰

2012-10-08 09:45:22

數(shù)據(jù)密集型處理系統(tǒng)

2011-04-28 11:01:40

Android消息處理LooperHandler

2011-05-27 09:19:32

Windows 7崩潰

2011-08-18 18:30:28

windows7系統(tǒng)啟動順序

2012-12-12 09:49:41

2017-03-13 13:21:34

Git處理大倉庫

2020-12-29 09:11:33

LinuxLinux內(nèi)核

2019-08-21 09:48:37

數(shù)據(jù)處理

2019-08-15 10:20:19

云計算技術安全
點贊
收藏

51CTO技術棧公眾號