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