Windows XP \Windows 2003啓動過程的學習及故障分析處理
(六B)
細述引導文件(B)——NTLDR
NTLDR:
NTLDR全稱是NT Loader,是最重要系統加載程序之一,位置在引導分區(系統卷)的根目錄下,它是系統啓動到引導分區階段時的發起者、組織者和管理者。
NTLDR從引導扇區被裝入並初始化後,做了一系列重要的工作:
將處理器的實模式改爲32位平滑內存模式;
(此時可以運行exe程序,而這之前只能運行bat、com程序)
NTLDR開始運行適當的小文件系統驅動程序
(小文件系統驅動程序是建立在NTLDR內部的,它能讀FAT或NTFS,爲下一步尋找、裝載ntoskrnl.exe做好準備)
(如果選擇了 NT5.x系統(Windows NT/ Win2000 / Windows XP / Win2003/),那麼NTLDR將會運行NTDETECT.COM文件,然後將控制權交給系統文件分區中Windows文件夾中的Ntoskrnl.exe;如果選擇了9X(WINDOWS95/ WINDOWS98/ WINDOWS ME),NTLDR將加載BOOTSECT.DOS,然後將控制權交給BOOTSECT.DOS。)
小提示1:NTLDR啓動後,如果在系統根目錄下發現有Hiberfil.sys文件且該文件有效,那麼NTLDR將讀取Hiberfil.sys文件裏的信息並讓系統恢復到休眠以前的狀態,這時並不處理Boot.ini文件。
小提示2:完成Boot.ini引導選擇後,此時可以按F8鍵,那麼我們將會在啓動菜單中看到高級啓動模式(Last known Good,sate modes,hardware profile,Debugging mode等), 這時NTLDR將根據用戶的選擇來使用啓動參數加載NT內核。
總結一下,NTLDR最後最重要的功能是:尋找、裝載ntoskrnl.exe並準備運行之。
NTLDR具有向下兼容性,也就是說高版本的NTLDR可以啓動低版本的Windows NT操作系統,也可以引導(通過BOOTSECT.DOS)MS.DOS(即9X)操作系統。如果你已經安裝了一個高版本的操作系統,那麼如果再想安裝一個低版本的操作系統,那麼低版本的操作系統在安裝後會出現無法進入原來高版本的操作系統的故障。問題的原因是低版本的NTLDR和NTDETECT.COM不能識別高版本操作系統的NTOSKRNL.EXE,從而造成系統不能正常啓動。
NTLDR可能出現的故障現象及處理方法:
現象:屏幕提示這個過程中,可能碰到的錯誤信息是下面這個:
對於NTFS文件系統,"BOOT: Couldn't find NTLDRP";
對於FAT文件系統,"NTLDR is missing";
對於NTFS文件系統,"BOOT: Couldn't find NTLDRP";
對於FAT文件系統,"NTLDR is missing";
意思爲“NTLDR丟失,按任意鍵重啓”如下圖,這個錯誤的表明是Boot sector在分區的根目錄下沒有找到Ntldr。一直停在該界面,不能繼續(HANG 掛起)。
處理方法:比較簡單,從另外一臺正常運行WINDOWS XP SP3的計算機上覆制NTLDR,通過Windows PE 環境,將NTLDR粘貼至故障計算機引導分區(一般就是C盤)的根目錄下即可。
說明:因爲不能通過正常的方法啓動,所以必須通過Windows PE(Windows PE通常是U盤啓動或者光盤啓動的),進入PE後,可以訪問故障計算機磁盤的任意分區。
還有一種方法即是把故障計算機的硬盤拆下來,作爲從盤掛在另外一臺正常運行的計算機上,再把正確的NTLDR粘貼至故障計算機引導分區(此時是從盤,可以被訪問及修改)。
NTLDR具有向下兼容性,也就是說高版本的NTLDR可以啓動低版本的Windows NT操作系統,WINDOWS XP SP3的NTLDR可以通用於各Windows NT操作系統。
(待續)