1)、讀取硬盤中的0道0面0區(qū)(即MBR主引導(dǎo)區(qū))的內(nèi)容,執(zhí)行前446個程序代碼,分析并檢測當(dāng)前分區(qū)表的完好性和可用性,再根據(jù)MBR中的分區(qū)表信息內(nèi)容,尋找到當(dāng)前可引導(dǎo)活動分區(qū),準(zhǔn)備加載當(dāng)前活動分區(qū)的引導(dǎo)扇區(qū)內(nèi)容。
2)、加載主活動分區(qū)的引導(dǎo)扇區(qū)內(nèi)容,對于FAT32格式的分區(qū)為前3個扇區(qū),對于NTFS則為前6個扇區(qū)內(nèi)容。引導(dǎo)扇區(qū)的程序代碼(BPB表)的作用是向Windows 2000提供磁盤驅(qū)動器(硬盤)的結(jié)構(gòu)和格式信息,并且從磁盤根目錄中讀取Ntldr文件。
當(dāng)引導(dǎo)程序?qū)tldr加載到內(nèi)存后,就把系統(tǒng)控制權(quán)移交給Ntldr。如果引導(dǎo)扇區(qū)代碼在根目錄中沒有找到Ntldr文件的話,若文件系統(tǒng)為FAT格式,則顯示:“Boot:無法找到Ntldr”;若引導(dǎo)文件系統(tǒng)是NTFS格式,則顯示:“NTLDR丟失”。
4)、然后Ntldr根據(jù)內(nèi)建的文件系統(tǒng)代碼從根目錄讀取boot.ini文件(Ntldr內(nèi)建代碼與引導(dǎo)扇區(qū)文件系統(tǒng)代碼不同的是,Ntldr文件系統(tǒng)代碼可以讀取子目錄)。
5)、接著,Ntldr清除屏幕,如果boot.ini中有多種引導(dǎo)選項(xiàng),則顯示引導(dǎo)選擇菜單;如果在boot.ini制定的超時范圍內(nèi)未有任何動作的話,Ntldr會根據(jù)默認(rèn)選項(xiàng)啟動電腦。
在系統(tǒng)盤的根目錄下面有一個BOOTFONT.BIN文件,該文件是WIN2K中文版啟動時顯示菜單所需要中文字庫文件。當(dāng)該文件丟失或損毀時不影響系統(tǒng)的正常啟動,只不過啟動菜單變成了英文。
6)、引導(dǎo)選項(xiàng)確定后,Ntldr加載和執(zhí)行Ntdetect.com(這是一個使用系統(tǒng)bios進(jìn)行查詢計算機(jī)基本設(shè)備和設(shè)置信息的16位實(shí)模式程序)。
接著Ntldr開始清除屏幕并顯示:“Starting Windows……”進(jìn)度欄。這個進(jìn)度欄保持空白,直到Ntldr開始加載引導(dǎo)驅(qū)動程序(假如有100個引導(dǎo)驅(qū)動程序,則每加載一個文件,進(jìn)度條增加1%)。
在進(jìn)度條的下面是信息:“For troubleshooting and advanced startup options for windows 2000 , press F8 .”如果此時按下F8鍵,會出現(xiàn)高級啟動菜單,包括:已知的最近正確模式(last known good),安全模式(safe mode),調(diào)試模式(debug mode)等等。
7)、Ntldr加載合適的內(nèi)核和HAL映像文件(缺省為Ntoskrnl.exe和HAL.dll),讀入SYSTEM注冊表hive文件(hive文件是一種包含注冊表子樹的文件)以確定該加載哪些引導(dǎo)驅(qū)動程序,加載引導(dǎo)驅(qū)動程序,為Ntoskrnl.exe的執(zhí)行準(zhǔn)備CPU寄存器。
Ntoskrnl.exe文件在WINXP系統(tǒng)中存儲了WIN XP的啟動LOGO畫面,在WIN 2K中即使沒有此文件也不影響系統(tǒng)的正常啟動。我在做試驗(yàn)中,把該文件刪除后,系統(tǒng)仍然能夠正常啟動,只有Kaspersky Anti-Virus在啟動時出現(xiàn)錯誤,沒有加載成功。
8)、之后,Ntldr調(diào)用Ntoskrnl.exe并由它開始初始化執(zhí)行程序子系統(tǒng)并引導(dǎo)系統(tǒng)-啟動(system-start)設(shè)備驅(qū)動程序,在一系列的初始化工作完成后Ntoskrnl.exe為系統(tǒng)本機(jī)應(yīng)用程序作準(zhǔn)備并運(yùn)行smss.exe。如果SMSS文件丟失或損毀,系統(tǒng)在完成硬件的檢測和虛擬驅(qū)動的加載后,就會出現(xiàn)如下圖所示藍(lán)屏現(xiàn)象。
9)、Smss的主要任務(wù)是:初始化注冊表,創(chuàng)建系統(tǒng)環(huán)境變量,加載Win32子系統(tǒng)(Win32k.sys)的內(nèi)核模式部分,啟動子系統(tǒng)進(jìn)程Csrss,啟動登陸進(jìn)程Winlogon。
如果CSRSS.EXE文件丟失,則當(dāng)滾動條走到頭時直接黑屏重啟;如果WINLOGON.EXE文件丟失或損毀時,故障類似于CSRSS文件丟失,只不過是當(dāng)藍(lán)色背景出現(xiàn)的計算機(jī)馬上重啟。
10)、然后Winlogon開始執(zhí)行其啟動步驟,如創(chuàng)建初始的窗口和桌面對象等,并加載設(shè)備驅(qū)動程序和本機(jī)安全驗(yàn)證子系統(tǒng)(Lsass)進(jìn)程(Winnt\system32\Lsass.exe)。
11)、接著創(chuàng)建服務(wù)控制管理器(SCM)進(jìn)程(Winnt\System32\Services.exe),它加載所有的標(biāo)記為自動啟動(auto-start)的服務(wù)程序。如果SERVICE.EXE文件丟失,系統(tǒng)則長時間停滯在登錄窗口處,無法繼續(xù)。
11)、當(dāng)一切加載成功且用戶在控制臺成功登陸后,SCM則認(rèn)為系統(tǒng)引導(dǎo)成功,便放棄注冊表中已知最近正確配置(HKLM\SYSTEM\select\LastKnownGood),而改由\CurrentControlSet替代;如果用戶在引導(dǎo)的時候選擇高級菜單中的已知最近正確模式(LastKnownGood)或者加載時驅(qū)動程序返回一個嚴(yán)重的或者關(guān)鍵的錯誤,系統(tǒng)會以LastKnownGood的值作為CurrentControlSet 的值。如果SVCHOST.EXE文件丟失或損毀,系統(tǒng)仍然能夠正常加載并登錄成功,只是登錄時間稍微長一些,并且當(dāng)我們操作電腦時,經(jīng)常出現(xiàn)錯誤提示。
最后顯示登錄界面,完成系統(tǒng)啟動過程,這時我們就看到了熟悉的桌面。至此,Windows 2000的引導(dǎo)過程結(jié)束。
6、其他方面故障
1)、系統(tǒng)在安裝過程中,到硬件設(shè)備檢測時死機(jī),其原因是主機(jī)CMOS設(shè)置中的病毒檢測開關(guān)打開,在系統(tǒng)安裝中需要向硬盤的引導(dǎo)區(qū)寫入相關(guān)信息,而此時主板系統(tǒng)誤認(rèn)為是病毒破壞,強(qiáng)行終止該操作,造成系統(tǒng)安裝中斷而死機(jī)。
2)、系統(tǒng)在安裝WIN98或XP時基本正常,但安裝完畢后,進(jìn)入歡迎界面時死機(jī),重新啟動仍然如此。故障原因:當(dāng)主機(jī)的CMOS電池失效后,時間將恢復(fù)到1990年的日期,這時對于WIN98和2K,XP系統(tǒng)在進(jìn)入系統(tǒng)時,會檢查日期的有效性。對于在系統(tǒng)出版之前就可以安裝的無效日期,系統(tǒng)當(dāng)然要死機(jī)了。
3)、一些編譯不完善的應(yīng)用程序,在卸載后沒有完全清除注冊表中的相關(guān)程序加載內(nèi)容。
當(dāng)卸載后再次啟動電腦時會因?yàn)橄到y(tǒng)找不到相關(guān)的啟動文件而出現(xiàn)在啟動過程中中止,系統(tǒng)提示相關(guān)文件丟失。由于大部分電腦操作者不熟悉這些提示,就會誤認(rèn)為電腦無法啟動。