電腦啟動(dòng)過(guò)程全剖析[轉貼]
一、電腦啟動(dòng)過(guò)程
Ⅰ、首先來(lái)了解一下電腦的啟動(dòng)過(guò)程
1、貯存在ROM(只讀存儲器)中的Bootstrap Loader程序和自診斷程序移動(dòng)到RAM(隨機存儲器)中。
2、隨著(zhù)Bootstrap Loader的運行,儲存在輔助記憶裝置中的操作系統將系統文件送到RAM中。
3、執行系統文件Io.sys和Msdos.sys。這時(shí)畫(huà)面上出現“Starting Windowsn98……”的信息。
4、若有Config.sys則執行它。
5、執行系統文件的Command.com文件。
6、若有Autoexec.bat則執行它。
7、讀取Windows的初始化文件“System.ini”和“Win.ini”,再讀取注冊表文件。
8、啟動(dòng)結束,出現初始畫(huà)面,運行操作系統。
這個(gè)過(guò)程中,在主板的ROM BIOS中監測硬件是否異常,包括硬件故障,接線(xiàn)情況,各類(lèi)卡的安裝等。如果發(fā)生錯誤,畫(huà)面上什么也不出現,啟動(dòng)停止。
這種情況下很可能是硬件故障。
Ⅱ、系統啟動(dòng)順序
1、PC電源的ON??顯示器,鍵盤(pán),機箱上的燈閃爍。
2、檢測顯卡??畫(huà)面上出現短暫的顯卡信息。
3、檢測內存??隨著(zhù)嘟嘟的聲音畫(huà)面上出現內存的容量信息。
4、執行BIOS??畫(huà)面上出現簡(jiǎn)略的BIOS信息。
5、檢測其他設備??出現其他設備的信息(CPU,HDD,MEM...)。
6、執行OS(操作系統)的初始化文件-Starting Windows 98等。
Ⅲ、在啟動(dòng)時(shí)主板中發(fā)出聲音,通過(guò)這個(gè)聲音可以判斷是何種錯誤,根據主板形式的不同,聲音的表示也有所不同.
AMI BIOS:
1短:內存刷新失敗
2短:內存校驗錯誤
3短:基本內存錯誤
4短:系統時(shí)鐘錯誤
5短:CPU錯誤
6短:鍵盤(pán)錯誤
7短:實(shí)模式錯誤
8短:內存顯示錯誤
9短:ROM BIOS校驗錯誤
1長(cháng)3短:內存錯誤
AWARD BIOS:
1短:啟動(dòng)正常
2短:非致命錯誤
1長(cháng)1短:顯示錯誤
1長(cháng)2短:鍵盤(pán)錯誤
其他BIOS可查閱相關(guān)資料,這里不再詳細介紹。
二、易混淆的軟件故障
必須明確地區分硬件故障和軟件故障,否則費了很大的力氣將電腦搬到電腦市場(chǎng),店主告訴你是軟件故障時(shí)你會(huì )是什么心情呢。特別是啟動(dòng)故障也有可能是軟件故障造成的。下面我們就來(lái)看一看由軟件故障造成的啟動(dòng)異常。
Ⅰ、CMOS Setup的錯誤
如果在CMOS Setup中的硬盤(pán)設置不正確的話(huà),因為電腦無(wú)法識別硬盤(pán),因此導致不能用硬盤(pán)中的操作系統(Windows)啟動(dòng)。出現畫(huà)面但無(wú)法啟動(dòng)時(shí)應該檢查CMOS
Setup的內容。若要正確識別硬盤(pán),可以使用CMOS Setup中的“IDE HDD Auto Detection”選項。
Ⅱ、系統文件的錯誤
Windows啟動(dòng)時(shí)需要Command.com, Io.sys, Msdos.sys, Drvspace.bin 四個(gè)文件。如果這些文件遭破壞,即使識別了硬盤(pán)也不能啟動(dòng)。這時(shí)可以使用“Sys.com”文件恢復這些文件。用啟動(dòng)盤(pán)啟動(dòng)后,鍵入“Sys
c:”即可。
Ⅲ、初始化文件的錯誤
Windows在啟動(dòng)時(shí)要讀取“Autoexec.bat”,“Config.sys”,“System.ini”,“Win.ini”,“User.dat”,“System.dat”六個(gè)文件。但在讀取時(shí)若其中有錯誤的信息將發(fā)生啟動(dòng)失敗。而這些文件是很難恢復的,因此要使用Windows重新設置等方法。但這不是硬件故障,用不著(zhù)把電腦抱到電腦市場(chǎng)去。
Ⅳ、Windows的錯誤Windows初始畫(huà)面出現后的故障大部分是軟件的故障。程序間的沖突或驅動(dòng)程序的問(wèn)題等等。這樣的問(wèn)題可以用翻閱書(shū)籍等方法自行解決。
三、不是故障的硬件故障
雖然不是故障,但時(shí)常發(fā)生用戶(hù)組裝不正確或插口松脫等現象。這時(shí)可以自己打開(kāi)電腦檢查接線(xiàn),插口等的錯誤。在新購硬盤(pán),CD-ROM等EIDE設備時(shí)要注意將連接在中間的裝置設置為“SlaveE”,將連接在邊上的裝置設置為“Master”,如果設置得不正確,有可能無(wú)法啟動(dòng)或使用相應裝置時(shí)發(fā)生錯誤。
測試方法
下面我們來(lái)看一看硬件故障的基本測試方法。顯示器沒(méi)有任何圖像出現時(shí)可以使用下面的方法測試出故障的部件。
一、首先準備一個(gè)工作臺。
二、將主板從機箱拔出,再把主板上的所有部件拔出,只留下CPU和RAM.然后把主板放到工作臺上。
三、將穩壓電源連接在主板上。
四、將顯卡插入AGP插槽。當然如果是PCI顯卡則插入PCI插槽中。插入時(shí)要注意將顯卡鍍金的部分完全地插入插槽中。
五、連接顯示器電源插口后將顯卡與顯示器連接起來(lái)。
六、打開(kāi)顯示器電源,再接通機箱電源開(kāi)關(guān)。然后用金屬棒接觸主板的電源開(kāi)關(guān)。主板的電源開(kāi)關(guān)是與機箱電源開(kāi)關(guān)連接的部分,一般標記為“PWR SW”或“POWER SE”。
七、如果畫(huà)面上出現BIOS的版本信息,畫(huà)面沒(méi)有異常的話(huà),說(shuō)明CPU,主板,RAM,顯卡,電源都正常.通常,經(jīng)常易出現故障的部件是“顯卡”,“主板”,“硬盤(pán)”這個(gè)順序。
八、然后連接硬盤(pán)和軟區進(jìn)行檢測。接著(zhù)連接CD-ROM檢測,然后是聲卡。Modem等一個(gè)一個(gè)的連接進(jìn)行檢測。如果不出現畫(huà)面就說(shuō)明后連接的那個(gè)部件有故障或是有兼容性問(wèn)題。只須處理那個(gè)出故障的部件即可。
九、機箱的問(wèn)題
有時(shí)將主板安裝到機箱時(shí)發(fā)生問(wèn)題,導致啟動(dòng)失敗。因此如果在上面的部件檢查中沒(méi)有任何問(wèn)題的話(huà),可以將主板安裝到機箱上測試。如果在測試中沒(méi)有任何的錯誤,則說(shuō)明是CMOS
Setup錯誤,驅動(dòng)程序等的軟件問(wèn)題。
從按下計算機開(kāi)關(guān)啟動(dòng)計算機,到登入到桌面完成啟動(dòng),一共經(jīng)過(guò)了以下幾個(gè)階段:
1. 預引導(Pre-Boot)階段;
2. 引導階段;
3. 加載內核階段;
4. 初始化內核階段;
5. 登陸。
每個(gè)啟動(dòng)階段的詳細介紹
a) 預引導階段
在按下計算機電源使計算機啟動(dòng),并且在Windows XP專(zhuān)業(yè)版操作系統啟動(dòng)之前這段時(shí)間,我們稱(chēng)之為預引導(Pre-Boot)階段,在這個(gè)階段里,計算機首先運行Power On Self Test(POST),POST檢測系統的總內存以及其他硬件設備的現狀。如果計算機系統的BIOS(基礎輸入/輸出系統)是即插即用的,那么計算機硬件設備將經(jīng)過(guò)檢驗以及完成配置。計算機的基礎輸入/輸出系統(BIOS)定位計算機的引導設備,然后MBR(Master Boot Record)被加載并運行。在預引導階段,計算機要加載Windows XP的NTLDR文件。
b) 引導階段
Windows XP Professional引導階段包含4個(gè)小的階段。
首先,計算機要經(jīng)過(guò)初始引導加載器階段(Initial Boot Loader),在這個(gè)階段里,NTLDR將計算機微處理器從實(shí)模式轉換為32位平面內存模式。在實(shí)模式中,系統為MS-DOS保留640kb內存,其余內存視為擴展內存,而在32位平面內存模式中,系統(Windows XP Professional)視所有內存為可用內存。接著(zhù),NTLDR啟動(dòng)內建的mini-file system drivers,通過(guò)這個(gè)步驟,使NTLDR可以識別每一個(gè)用NTFS或者FAT文件系統格式化的分區,以便發(fā)現以及加載Windows XP Professional,到這里,初始引導加載器階段就結束了。
接著(zhù)系統來(lái)到了操作系統選擇階段,如果計算機安裝了不止一個(gè)操作系統(也就是多系統),而且正確設置了boot.ini使系統提供操作系統選擇的條件下,計算機顯示器會(huì )顯示一個(gè)操作系統選單,這是NTLDR讀取boot.ini的結果。(至于操作系統選單,由于暫時(shí)條件不夠,沒(méi)辦法截圖,但是筆者模擬了一個(gè))
在boot.ini中,主要包含以下內容:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows Windows 2000 Professional"
其中,multi(0)表示磁盤(pán)控制器,disk(0)rdisk(0)表示磁盤(pán),partition(x)表示分區。NTLDR就是從這里查找Windows XP Professional的系統文件的位置的。(*本文不會(huì )更詳細地講解boot.ini的組成結構,因為其與本主題關(guān)系不大,如果想了解,可以到一些專(zhuān)門(mén)的網(wǎng)站處查詢(xún)相關(guān)信息。)如果在boot.ini中只有一個(gè)操作系統選項,或者把timeout值設為0,則系統不出現操作系統選擇菜單,直接引導到那個(gè)唯一的系統或者默認的系統。在選擇啟動(dòng)Windows XP Professional后,操作系統選擇階段結束,硬件檢測階段開(kāi)始。
在硬件檢測階段中,ntdetect.com將收集計算機硬件信息列表并將列表返回到NTLDR,這樣做的目的是便于以后將這些硬件信息加入到注冊表HKEY_LOCAL_MACHINE下的hardware中。
硬件檢測完成后,進(jìn)入配置選擇階段。如果計算機含有多個(gè)硬件配置文件列表,可以通過(guò)按上下按鈕來(lái)選擇。如果只有一個(gè)硬件配置文件,計算機不顯示此屏幕而直接使用默認的配置文件加載Windows XP專(zhuān)業(yè)版。
引導階段結束。在引導階段,系統要用到的文件一共有:NTLDR,Boot.ini,ntdetect.com,ntokrnl.exe,Ntbootdd.sys,bootsect.dos(可選的)。
c) 加載內核階段
在加載內核階段,ntldr加載稱(chēng)為Windows XP內核的ntokrnl.exe。系統加載了Windows XP內核但是沒(méi)有將它初始化。接著(zhù)ntldr加載硬件抽象層(HAL,hal.dll),然后,系統繼續加載HKEY_LOCAL_MACHINE\system鍵,NTLDR讀取select鍵來(lái)決定哪一個(gè)Control Set將被加載??刂萍邪O備的驅動(dòng)程序以及需要加載的服務(wù)。NTLDR加載HKEY_LOCAL_MACHINE\system\service\…下start鍵值為0的最底層設備驅動(dòng)。當作為Control Set的鏡像的Current Control Set被加載時(shí),ntldr傳遞控制給內核,初始化內核階段就開(kāi)始了。
d) 初始化內核階段
在初始化內核階段開(kāi)始的時(shí)候,彩色的Windows XP的logo以及進(jìn)度條顯示在屏幕中央,在這個(gè)階段,系統完成了啟動(dòng)的4項任務(wù):
內核使用在硬件檢測時(shí)收集到的數據來(lái)創(chuàng )建了HKEY_LOCAL_MACHINE\HARDWARE鍵。
內核通過(guò)引用HKEY_LOCAL_MACHINE\system\Current的默認值復制Control Set來(lái)創(chuàng )建了Clone Control Set。Clone Control Set配置是計算機數據的備份,不包括啟動(dòng)中的改變,也不會(huì )被修改。
系統完成初始化以及加載設備驅動(dòng)程序,內核初始化那些在加載內核階段被加載的底層驅動(dòng)程序,然后內核掃描HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\…下start鍵值為1的設備驅動(dòng)程序。這些設備驅動(dòng)程序在加載的時(shí)候便完成初始化,如果有錯誤發(fā)生,內核使用ErrorControl鍵值來(lái)決定如何處理,值為3時(shí),錯誤標志為危機/關(guān)鍵,系統初次遇到錯誤會(huì )以LastKnownGood Control Set重新啟動(dòng),如果使用LastKnownGood Control Set啟動(dòng)仍然產(chǎn)生錯誤,系統報告啟動(dòng)失敗,錯誤信息將被顯示,系統停止啟動(dòng);值為2時(shí)錯誤情況為嚴重,系統啟動(dòng)失敗并且以LastKnownGood Control Set重新啟動(dòng),如果系統啟動(dòng)已經(jīng)在使用LastKnownGood值,它會(huì )忽略錯誤并且繼續啟動(dòng);當值是1的時(shí)候錯誤為普通,系統會(huì )產(chǎn)生一個(gè)錯誤信息,但是仍然會(huì )忽略這個(gè)錯誤并且繼續啟動(dòng);當值是0的時(shí)候忽略,系統不會(huì )顯示任何錯誤信息而繼續運行
Session Manager啟動(dòng)了Windows XP高級子系統以及服務(wù),Session Manager啟動(dòng)控制所有輸入、輸出設備以及訪(fǎng)問(wèn)顯示器屏幕的Win32子系統以及Winlogon進(jìn)程,初始化內核完畢。
A、計算機通電自檢,由BIOS完成基本硬件配置。
B、讀取硬盤(pán)MBR(主引導記錄)文件,將引導分區上引導扇區調入內存執行。
C、執行NTLDR(操作系統加載器)文件,將引導分區上引導扇區調入內存執行。
C1、WIN2K/WINXP支持多重啟動(dòng),安裝時(shí)會(huì )在已存在的其他操作系統引導扇區建立bootsect.dos文件,以便啟動(dòng)時(shí)加載ntldr文件,達到雙重啟動(dòng)目的。
D、NTLDR把處理器從實(shí)模式轉換為32位保護模式。
E、讀取BOOT.INI文件(如多系統,出現系統選擇菜單。選擇win2K/winxp繼續,選擇其他系統,轉到bootsect.dos,菜單顯示中文字體由bootfont.bin提供。)
F、加載ntdetect.com(檢測硬件配置)如機子有多個(gè)硬件配置文件,會(huì )出現選擇菜單。
G、裝載內核,NTOSKRNL.exe文件。(位于system32文件夾)
H、硬件抽象層(HAL)加載,隱藏特定平臺硬件接口細節,為操作系統提供虛擬硬件平臺,使其具有硬件無(wú)關(guān)性,可在多種平臺上進(jìn)行移植。
I、NTLDR將控制權交給內核,內核開(kāi)始加載設備驅動(dòng),WIN32子系統和各種服務(wù)。
J、用戶(hù)登錄,由WIN32子系統啟動(dòng)winlogon.exe,由winlogon.exe啟動(dòng)local security authority(lsass.exe)顯示登錄對話(huà)框。
K、配置網(wǎng)絡(luò )和用戶(hù)環(huán)境。
聯(lián)系客服