Windows XP \Windows 2003啓動過程的學習及故障分析處理(七)

 

Windows XP \Windows 2003啓動過程的學習及故障分析處理
                 (七)
 
Windows XP \Windows 2003系統的完全建立
Ntoskrnl- hal.dll – Winlogon
NTOSKRNL.EXE建立Windows2000/XP內核(Windows系統架構),
         
運行此階段時,最明顯的表現是屏幕出現了Windows XP的標誌了,同時還會顯示一條滾動的進度條,這個進度條可能會滾動若干圈(如下圖),這個大家一定眼熟吧。
 
                      

隨後,硬件抽象層(HAL)(與NTOSKRNL.EXE在同一個文件夾裏——C:\WINDOWS\system32)被引導進程加載,硬件抽象層(HAL)的作用是:隱藏特定平臺的硬件接口細節,爲操作系統提供虛擬硬件平臺,使其具有硬件無關性,可在多種平臺上進行移植。

接着系統將載入設備驅動、啓動服務。注意兩點:一、具體加載哪些驅動、服務是由註冊表的HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services裏的內容決定的。二、驅動、服務很多,他們是有加載順序的優先等級的。當然最先加載的是系統建立啓動過程中運行系統所必需的,這樣才能用最短的時間顯示出登錄界面,供用戶登錄。比如有的服務必須依賴其他服務,所以,其依賴的服務優先級應該比他高、先加載纔可以。
 在NTOSKRNL.EXE建立Windows框架的同時,NTOSKRNL.EXE 也啓動WIN32子系統, 再由WIN32子系統啓動WINLOGON.EXE,並由它啓動LOCAL SECURITY AUTHORITY(LSASS.EXE) 同時加載GINA(Grapical Identification and Authentication),就出現用戶登錄顯示登錄對話框,等待用戶登錄(如下圖)
 

             

用戶登錄後,出現微軟之聲和我們熟悉的個性化桌面,此時WINDOWS2000/XP還會繼續載入非關鍵性的設備驅動、啓動服務及配置網絡設備和用戶環境。(爲什麼自己的系統已經成功登錄了,可是非要過好幾分鐘之後桌面上纔會顯示出任務欄以及桌面圖標等內容。屏幕上的光標也是有程序運行時的模樣。其實用戶剛登錄,出現桌面時,系統的啓動還沒有真正全部完成)

最後,所有設定的驅動、服務加載結束後,WINDOWS2000/XP漫長的啓動過程才終於完成。現在,你想怎麼用就怎麼麼用——上網、寫作、購物、看電影、玩遊戲……
 
Ntoskrnl- hal.dll – Winlogon階段可能出現的故障現象及處理方法:
從計算機開始運行Ntoskrnl.exe開始,全是運行或調用系統分區裏的程序及文件,如果啓動到了這個階段出現問題,大部分原因是由於這個分區裏的程序及文件損壞或丟失。
他們是怎麼損壞的呢?大致有這幾種情況吧:
1、硬盤壞了。出現壞道、壞區,而那些啓動文件、程序剛好在壞道、壞區,系統無法讀出、執行。硬盤壞或者部分壞時,系統啓動中往往會自動出現磁盤自檢過程。好的硬盤自檢過程很快,有壞道、壞區硬盤自檢過程很長(有種很吃力的感覺),最後會顯示檢查結果,從結果中可看出異常。這種情況建議換硬盤吧,因爲繼續使用這樣的硬盤不僅是無法進入系統,估計其他分區的文件(你的照片、資料、電影)也有可能損壞了。硬盤壞沒有什麼修復的價值,因爲現在的硬盤不貴,修好的硬盤很容易再壞(有的壞道像癌細胞一樣會擴展的),把你在此硬盤寶貝資料趕快考出去,考出後看看能否打開正常,如果沒問題,慶幸吧。
2、非法關機。正常的關機是“開始”——“關閉計算機…”——“關閉”,如果非法關機——突然斷電,很容易將系統文件(如啓動文件、程序等)搞壞,也有可能將你的文件搞壞(如你正在寫一篇WORD文檔,沒有保存、退出就非法關機的話)。正常的關機後,系統在完全停運前還需做一些善後工作,這樣方能安全關機。這種情況可以用cmd中的指令chkdsk c: /f嘗試修復。(可參見我的博文http://20100823.blog.51cto.com/2031838/382625
3、啓動文件、程序被病毒感染後被殺毒程序幹掉。病毒***文件總想開機自啓動、隱藏深處、避免查殺,很自然的就盯上了系統啓動文件、程序,偷換、修改系統啓動文件是經常用的伎倆。一般說來,病毒***偷換、修改系統啓動文件、程序還是能夠保證系統的啓動的,道理很簡單,系統不能啓動,他們的病毒、***也沒有了運行的平臺。殺毒程序運行後,他發現了有問題的系統啓動文件、程序,通常會剝離病毒、修復文件,但有的殺毒軟件是乎只能發現問題,但不能很好地剝離病毒、修復文件,而是最後將問題的系統啓動文件、程序一刀斬去,病毒沒有了,系統也癱了(真是欲想成功,必先自宮;即使自宮,未必成功,嗚呼!)
可能還有其他原因,我就知道這些了。
現象:1如下圖

 

      

根據屏幕提示hal.dll文件丟了或壞了,我們可以複製(在PE環境中或掛爲從盤)一個好的hal.dll試試,但並不能保證成功。原因是出現這種提示的原因並不唯一,如我們前面說的Boot.ini不對,就會出現此提示。另外設驅動有問題,有時也會出現這種提示,情況還是比較複雜的。

處理方法:重裝系統吧。

 
現象:2如下圖
     
首先我們需要知道CONFIG\SYSTEM是一個什麼文件?他主要就是註冊表文件。他裏面包含了龐大數量的註冊表鍵項、鍵值等配置數據的文件,。通過前面的學習知道,系統在啓動過程中既生成一些註冊表鍵項、鍵值,也會根據其他鍵項、鍵值對計算機進行初始化工作(如加載驅動、啓動服務),各個計算機註冊表並不完全一樣,所以我們用複製其他計算機中的CONFIG\SYSTEM方法是不行的,(計算機的註冊表是可以備份的,但實際有幾人做了?)因此情況也比較複雜。
處理方法:重裝系統吧。
 

現象:3如下圖

      

處理方法:和現象1類似複製(在PE環境中或掛爲從盤)一個好的ntoskrnl.exe試試;不行的話,重裝系統吧。

 
                                                          (待續)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章