關於雙系統選單,NT系統啟動過程

tonykorn97發表於2006-05-16

預啟動階段

1. post過程-開機自檢:這是每個計算機的電源接通之後,必須要做的第一件事情.post將檢查硬體,是否有記憶體,是否有鍵盤以及scsi卡等等.雖然這是一個核作業系統無關的過程,但是他卻是保證系統正常啟動的第一個步驟.

2. 一旦自檢完成,計算即將查詢啟動裝置,並將MBR-main boot record(主引導紀錄)調入記憶體.

典型故障:
開機以後藍色畫面,"operating system not found",提示"invalid partition table"

這些錯誤資訊的出現是因為Mbr遭到破壞;

解決辦法:
用系統啟動盤(軟盤或者安裝光碟)啟動計算機,然後執行下面的命令:

Fdisk.exe /mbr
Fdisk /mbr這個命令可以在硬碟上無條件地寫入主載入程式和分割槽表,並且不對dos引導扇區-Dbr-dos boot record,檔案分配表和目錄區進行初始化;也就是說,執行fdisk/mbr後,可在不破壞硬碟上原有資料資訊的情況下,重建主載入程式和分割槽表;他對單純感染嵌入式引導區病毒的硬碟,可以起到清除病毒的作用;

Fdisk是ms-dos,windows 95/98/me中的標準命令,windows NT/2k/XP使用者,可以採用下面的辦法修復主引導紀錄:

啟動系統故障恢復控制檯,在命令提示符下面輸入fixmbr,在出現警告資訊的時候按Y鍵,最後輸入exit退出故障回覆控制檯;

3. 計算即將查詢活動分割槽,引導扇區,並將其裝入記憶體;

4. 開始呼叫Ntldr,Ntldr是系統載入器,他是第二階段的關鍵部分;

Plus:Mbr,或者說master boot record的縮寫,中文意思就是主引導紀錄,硬碟的0磁軌第一扇區稱為MBR,他的大小是512位元組,而這個區域可以分為兩個部分:i,pre-boot區(預啟動區),佔446位元組:ii,第二部分是partition table區(分割槽表)佔64個位元組,該區相當於一個小程式,作用是判斷那個分割槽被標記為活動分割槽,然後去讀取那個分割槽的啟動區,並執行該區中的程式碼.最後兩個位元組是一個識別符號,用來表明這個扇區的結束,其二進位制數值為0x55AA.

啟動階段

1. 當Ntldr開始執行之後,它首先將處理器的真實模式改為32位平滑記憶體模式;

解釋:真實模式和32位平滑記憶體模式:
兩者都是電腦系統的定址方式.真實模式指的就是16位模式,執行比較穩定.平滑記憶體模式則在定址範圍和速度上有明顯的優勢.

2. 啟動小檔案系統(例如fat,ntfs),以便從磁碟上訪問檔案;

3. 隨後,Ntldr將訪問第一個檔案:boot.ini檔案,並且根據檔案的內容在螢幕上顯示啟動選單;

4. 如果使用者選擇的不是win2k(或者winXp)作業系統,那麼Ntldr將呼叫bootsect.dos,將控制權交給她,並且啟動所操作的系統,否則,Ntldr將執行Ntdetect.com檔案;

典型故障

當妳選擇了其他作業系統之後,出現了錯誤資訊:I/O error accessing bot sector file
Muti(0)disk(0)rdisk(0)partiton(1)BOOTSS

這種情況是由於找不到啟動分割槽造成的,一般出現在安裝了多個作業系統的計算機上.當妳在已有的作業系統-例如win98上安裝win2k的時候,安裝程式會將原有的啟動分割槽(一般為0分割槽)儲存成bootsect.dos,然後安裝程式會將win2k的啟動分割槽放到0分割槽上.因此,bootsect.dos是在啟動的過程中建立的,無法像其他丟失的檔案一樣可以從光碟上面複製過來,那麼,如何解決這種情況?

為原來的作業系統重新生成一個啟動分割槽.例如:對於win98,只需要用win98的啟動盤啟動系統,然後在命令提示符下輸入sys c:,

建立bootsect.dos:

a,將win2k安裝光碟放入光碟機,啟動計算機;

b,在出現歡迎螢幕後,按兩次R鍵;

c,當安裝程式執行到修復任務選想的時候,選擇"檢查啟動扇區"選項,然後將光條移動到"繼續(執行所選任務)"上按回車;

d,跟隨安裝嚮導繼續,最後會看見"安裝程式已完成修復"的提示;

e,Reset;

5. Ntdetect.com將收集計算機硬體方面的資訊,這些硬體包括:計算機ID號,適配卡型別,顯示卡,鍵盤以及滑鼠,軟盤,com口和並口等等.一旦資訊收集完成,Ntdetect.com會將資訊傳遞給Ntldr,並將資訊寫入登錄檔中的hkey local machinehardware分支;

可以看到:啟動階段呼叫了3個非常重要的檔案:Ntdetect.com,boot.ini和bootsect.dos.而這個過程也是安裝了多個作業系統經常出現問題的地方;

典型故障

計算機啟動時:
沒有出現啟動選單;

這種情況是將顯示作業系統列表的時間設為0秒引起的.解決的辦法是,我的電腦,屬性,高階,啟動故障恢復,顯示作業系統列表...(修改時間數值)

典型故障
當計算機啟動的時候出現:
Ntldr is missing,press any key to restart...

Ntldr檔案丟失,出現錯誤會造成這個故障,其它類似的故障還有,Ntdetect.com is missing..等等,利用下面的解決辦法:

-利用win2k安裝光碟,這個檔案存放在系統安裝光碟的i386目錄下面,因此,只要將其複製到硬碟就可以了;

a,放入win2k光碟,啟動win2k安裝;

b,出現歡迎介面的時候,按R;

c,win2k修復選項介面中,按R;

d,當提示選擇修復選項的時候,按M;(手動修復)

e,選擇 驗證win2k系統檔案;

f,選擇 繼續(執行所選任務),然後回車,

g,出現緊急修復盤介面:如果你有緊急修復盤的話,插入緊急修復盤,根據提示修復安裝,reset;

h,如果沒有緊急修復盤,按L,用光碟修復;

使用控制檯:輸入map,記下win2k安裝光碟所在的光碟機磁碟機代號L;
輸入: copy L:i386ntldr c:
提示是否覆蓋,Y;
輸入exit重新啟動;

核心呼叫階段

1. 在這個階段,Ntldr將呼叫Ntoskrnl.exe,並將由Ntdetect.com收集的硬體資訊傳遞給它,同時被呼叫的還有hal.dll檔案.如果你有多個硬體配置檔案,當執行到這一步的時候,你會在螢幕上看到要求選擇硬體配置檔案的資訊.另外,Ntldr也將從登錄檔中呼叫所有啟動值為0x0的裝置驅動程式.如果你在boot.ini檔案中有" /sos"引數,一般在" /fastdetect"後面,那麼妳將看到呼叫裝置列表;

典型故障

啟動的時候出現錯誤資訊:"Ntoskrnl.exe missing or corrupt on bootup"(ntoskrnl.exe丟失或者損壞)

如果出現下列情形之一,會出現ntoskrnl.exe錯誤出現:

-新增加了一個硬碟或者改變了原有的分割槽,例如:刪除了原來的一個分割槽或者將原來的兩個分割槽合併,都可能導致boot.ini檔案中的[bot loader]部分的default值丟失或者無效,從而在啟動過程中無法找到啟動所需的檔案;

Ntoskrnl.exe檔案被刪除或者被損壞;

解決辦法

使用啟動盤啟動作業系統,編輯boot.ini檔案,檢察與下面一行類似的命令中是否有錯誤:

muti(0)disk(0)rdisk(0)partition(1)WINNT="microsoft windows 2000 professional" /fastdetect

這一行表示在第一個ide硬碟上rdisk(0)的第一個分割槽上partition(1)裝有win2k,大家可以根據這個規律來查詢自己的boot.ini檔案中的數值是否正確;

如果沒有發現錯誤,請將win2k安裝光碟放入光碟機,然後再命令列輸入:
expand x:i386ntoskrnl.ex_ c:ntoskrnl.exe
回車,提示檔案已經釋放,取出光碟,reset;

典型故障
Hal.dll is missing...

這個故障是因為缺少hal.dll檔案引起的,解決的辦法是:

a,啟動故障回覆控制檯;

b,輸入: expand x:i386hal.dl_ c:windowssystem32hal.dll

c,輸入exit,回車;

2. 核心初始化.這一步將對核心以及上一步中呼叫的硬體驅動程式進行初始化.

plus:Hal.dll,是英文hardware abstraction layer,硬體抽象層的縮寫,這種技術提供了驅動程式與硬體之間的藉口,可以防止應用程式直接訪問計算機系統記憶體,cpu以及硬體裝置(如音效卡和顯示卡),從而使系統可以跨越多種硬體平臺執行;

服務呼叫階段

這個階段將啟動會話管理器(smss.exe),會話管理起將讀取必須呼叫的程式列表,在登錄檔的bootExecute項中,然後設定記憶體分頁並且啟動win32子系統;

win32子系統啟動階段

一旦win32子系統啟動,會自動執行winlogon.exe,同時移動本地安全管理(lsass.exe)並且顯示登陸對話方塊.然後回執行服務控制器SCreg.exe,服務控制器會檢察登錄檔中啟動值為0x2的服務專案,然後呼叫這些服務,值為0x3的服務表示需要手動啟動,值為0x4的服務表示禁用;

使用者登陸階段

最後就是使用者登陸階段了,一旦使用者可以登陸進系統,那麼也就表明整個啟動過程已經結束,成功登陸之後,當前設定也被自動儲存為"最後一次正確配置-last known good"以備以後使用;

如何啟動故障恢復控制檯

1. 使用win2k光碟啟動計算機;

2. 在歡迎介面中按R;

3. 按c選擇使用故障恢復控制檯修復win2k安裝;

4. 輸入需要修復的windows所在磁碟機代號前的序號,回車;

5. 輸入管理員口令,回車


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245292/,如需轉載,請註明出處,否則將追究法律責任。

相關文章