Win 2000系統引導過程詳解

來源:互聯網
上載者:User

  引言
  
    但筆者在這兩年的工作過程中,卻發現很多使用者對Windows 2000的特性還並不是很瞭解,以至於常常在發生系統故障甚至崩潰的不幸之後,就只有草率的重裝系統,隨之帶來了漫長的軟體環境的恢複和對丟失檔案的痛苦回憶。
  
  
    本文適用於Win NT4.0,Windows 2000以及Windows XP各個版本的使用者。
  
  
    本文旨在以Windows 2000為例討論其系統的引導過程,以期較為深入的揭示引導過程中各種相關故障的原因並提出快捷有效解決途徑。
  
  
    一、 基於PC的Windows 2000引導過程
  
    個人電腦上Windows 2000的引導過程是分好幾個階段進行的,通過瞭解Windows 2000引導過程中的各個階段以及每個階段使用到的檔案,有助於我們之後更有效分析和處理各種問題。Windows 2000的引導過程分為預引導、引導、核心載入、核心初始化和系統登陸五個階段,一所示,
   
  
  圖一
  表一則列出了在系統引導的不同階段所引用的檔案。
   
  表一
  
    在這裡,我們暫不討論Windows 2000作業系統的內部工作機制,以下通過圖文結合的方式,簡要給大家說明在這五個階段,作業系統都在幹些什麼,那些程式發揮了作用。
  
    第一步,預引導階段,過程二所示,首先包括了系統加電自檢,這個過程完成硬體裝置的枚舉和配置。其次電腦BIOS確定引導裝置的位置,載入並運行Master Boot Record(MBR)主引導區內容(如lilo等)。然後掃描分區表,定位使用中的磁碟分割,並將使用中的磁碟分割上的開機磁區內容載入到記憶體中執行。最後載入系統硬碟根目錄中的Ntldr檔案,這也就是Windows 2000作業系統的載入程式。
   
  圖二
  第二步,引導階段,過程三所示,首先是初始化引導載入程式,這時Ntldr完成處理器模式切換和檔案系統(FAT或NTFS)驅動的載入,如果使用了SCSI裝置,Ntldr將Ntbootdd.sys載入到記憶體中運行。其次Ntldr讀取系統硬碟根目錄下的Boot.ini檔案,螢幕顯示Boot Loader Operating System菜單,等待使用者選擇要載入的作業系統,關於Boot.ini檔案的設定我們後面還會詳細討論,如果此時Ntldr沒有找到Boot.ini檔案,就預設從第一個磁碟的第一個分區的/Winnt位置載入系統,如果在所限時間內使用者沒有做出選擇,則啟動預設的選項。開始載入Windows 2000作業系統之後,Ntldr讀取並運行程式Ntdetect.com以完成硬體的檢測,如果安裝了多作業系統,而且使用者選擇啟動了Windows98或WindowsMe那麼Ntldr就會載入並運行Bootsect.dos啟動所選的作業系統。最後在Ntldr載入了Windows 2000並收集了硬體資訊後,緊跟著就根據使用者選擇調用系統的硬體設定檔,如果只有單一的硬體設定檔則直接作為預設配置調用,強烈建議使用者自己在系統安裝好了之後備份一份原始硬體設定檔。
   
  圖三
  
    第三步,核心載入階段,過程四所示,系統載入了預設硬體設定檔後,就會清除螢幕,接著螢幕上會顯示出一個進度條(>>>…),Ntldr隨後進行如下的核心載入操作,首先,載入Ntoskrnl.exe,但並不進行初始化。其次載入硬體抽象層檔案(Hal.dll),然後載入%systemroot/System32/Config/System下的登錄機碼HKEY_LOCAL_MACHINE/SYSTEM。之後選擇載入控制集,初始化電腦。最後,根據控制集載入低級硬體裝置驅動程式。
  
  圖四
  
  
  第四步,核心初始化,過程五所示,當核心載入階段結束時,核心就開始初始化,然後Ntldr就把系統的控制權轉交給核心。這時螢幕上會顯示圖形介面,並帶有一個狀態列指示載入狀態。成功的初始化之後,首先,核心會使用檢測到的硬體資料,在註冊表中建立HKEY_LOCAL_MACHINE/HARDWA項。其次的工作是核心通過複製HKEY_LOCAL_MACHINE/SYSTEM/Select子鍵Current項引用的控制集建立Clone控制集。接著核心開始進一步載入和初始化裝置驅動程式。最後,Session Manager(Smss.exe)按順序啟動Windows 2000更高一層次的子系統和各項服務。
   
  圖五
  
    第五步,系統登陸,過程六所示,系統首先啟動Winlogon.exe,隨後啟動Local Security Authority(Lsass.exe),這時螢幕顯示出登陸對話方塊。然後系統執行Service Controller(Screg.exe)再次掃描註冊表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control項並自動載入其中系統的或使用者的服務。至此,使用者已成功的登陸到了Windows 2000系統,系統隨後把Clone控制集拷貝到LastKnownGood控制集。以上五步順利結束之後,才可以稱之為Windows 2000的完美引導過程。
   
  
  圖六
  
    二、 關於進階引導
  
    在正式引導系統之前,也就是第二步的第三項操作之前,如果按下F8鍵,就會進入進階引導選項,表二簡要給出了進階引導的選項及它們的功能,可供您引導系統時參考
   
   表二
  
  
    三、關於Boot.ini檔案
  
    上邊第二步曾提到過Boot.ini檔案,這個檔案儲存體在系統硬碟根目錄,它的作用是定位載入的作業系統硬體位置,特別是在安裝了多重系統時用來實現選擇啟動的功能,以下是一個標準的Boot.ini檔案,我們將對此作適當解析。
  
  [boot loader]
  
  timeout=30
  
  default=multi(0)disk(0)rdisk(0)partition(1)/WINNT
  
  [operating systems]
  
  multi(0)disk(0)rdisk(0)partition(1)/WINNT="Microsoft Windows 2000 Professional" /fastdetect
  
  C:/= "Microsoft Windows 98"
  Boot.ini檔案包括[boot loader]、[operating systems]兩個部分,[boot loader]包括等待時間和預設引導系統兩個參數,timeout後邊的數字表示等待的秒數,default後邊的是預設引導系統的位置。[operating systems]則包括安裝的所有系統的ARC(Advanced RISC Computing)引導路徑(等號之前的部分)和他們在菜單上顯示出的名字(引號之間的文本),以及啟動參數(斜杠後邊的部分)。下邊的表三將詳細向您解釋ARC路徑的含義
   
  
   表三
  
    注意,在multi、scsi、disk和rdisk序號都是從0開始的partition是從1開始的。下邊的表四將向您解釋常用啟動參數的意義。
  
  
  表四
  
  
    因為boot.ini是系統保護檔案,它隱藏在系統硬碟根目錄下,並且具有唯讀屬性,如要修改請先到檔案瀏覽器的工具—〉檔案夾選項—〉查看中選中顯示所有檔案和檔案夾,取消隱藏受保護的作業系統檔案,並且取消boot.ini檔案的唯讀屬性,方可使用記事本之類的編輯器編輯它。
  
  
  
  四、製作兩張關鍵的磁碟片
  
  
    以上我們較為詳細的瞭解了Windows 2000的啟動過程和所涉及的一些檔案和程式,下邊我們就要未雨綢繆,充分利用資源武裝自己,如此才能不怕將來故障和崩潰的挑戰。
  
    首先,我們製作一張Windows 2000的啟動盤,請依下列步驟操作:
  
  
    1. 在運行Windows 2000的電腦上格式化一張磁碟片。
  
    2. 在安裝系統的主要磁碟分割上,將下表給出的檔案拷貝到磁碟片上,請注意先顯示隱藏檔案。
  
  3.立即使用製作好的啟動盤引導系統,測試它是否工作正常。
  
    接著我們再製作一張系統緊急修複磁碟,遵循路徑,開始—〉程式—〉附件—〉系統工具—〉備份,我們就可以方便的製作緊急修複磁碟。注意,緊急修複磁碟存放著系統註冊表和啟動配置的相關檔案,所以只能用於製作的這台機器,同時,該磁碟的內容應當及時的更新,尤其是當機器安裝了新的硬體或軟體,或者系統配置更改了之後
  
    五、常見引導故障的排除
  
  
    上邊說了那麼多,完全是為了儘可能從理論上武裝自己。在進入實戰之前,我們先來整理一下所帶的裝備,1)Window2000安裝盤2)啟動磁碟片3)系統緊急修複磁碟4)備份好的系統原始硬體設定檔5)備份好的註冊表檔案6)一個冷靜清楚的頭腦。OK,這就加入Counter Failure小組,出發!
  1) 按下Power鍵,我們的旅行開始了。
  
  
    2) 首先系統開始自檢(POST),如自檢結束之前出了故障請諮詢你的硬體供應J商。還好沒問題,系統自檢順利通過。什嗎?“Missing operating system”!怎麼辦?
  
  
  診斷:這是個POST完成之後最普通的錯誤,你的運氣不錯。讓我們試回憶一下前邊描述的預引導階段,這裡故障可能是由以下原因造成:
  
  
    I) 系統磁碟分割未啟用或啟用失敗,解決辦法請使用FDISK類的工具啟用。
  
    II) 系統硬碟開機磁區損壞或配置錯誤,解決辦法使用Windows 2000安裝光碟片,運行安裝程式,利用其中內建的系統自動復原功能修複開機磁區。
  
    順便提一下,雖然這裡不是可怕的MBR損壞,但及時的備份MBR也是必要的,使用如KV 3000帶的類似工具可以輕鬆實現,以備不時之需。
  
  
    3)接著往下,“Ntldr is missing”!怎麼辦?
  
    診斷:這個好辦,用你的啟動磁碟片啟動引導系統,再將系統負載檔案Ntldr拷貝到系統硬碟的根目錄即可。如是多重系統請拷貝的C盤根目錄。
  
  
    4)接下來的故障就五花八門了,但是萬變不離其中,我們都知道此時系統應當讀取Boot.ini檔案確定要引導的系統位置,所以如果Boot.ini檔案出了問題,最簡單的辦法就是複製啟動盤中的Boot.ini到系統硬碟根目錄。
  
  
    5)如果此時硬體設定檔出了問題,我們可以從設定檔菜單中選擇先前備份的原始設定檔引導系統,或按下L鍵調用LastKnowGood上次成功的配置引導系統。這一般可以解決相關的系統設定錯誤。
  
  6)如果5也不能奏效,就試試看能不能進入安全模式,如果能登陸,那麼我們可以利用硬體裝置管理員排除相關的一些硬體衝突,此時一定要注意顯示隱藏裝置,它們很可能就是元兇,一定要仔細辨識這些隱藏裝置,刪除那些並不存在或已不用的驅動程式以避免衝突。利用控制台中的添加刪除程式,我們還可以嘗試著刪除掉那些有可能造成系統不穩定的程式。試試看匯入以前備份的註冊表檔案,我們也可以藉此修複不少不太嚴重的註冊表損壞的故障。
  
  
    7)如果安全模式也不能登陸,甚至出現藍屏,那麼很可能是系統核心不能順利的初始化和載入,導致這類嚴重故障的原因多半是因為系統關鍵性檔案丟失。我們先採用Windows光碟片啟動引導系統,運行安裝程式,選擇快速系統修複程式嘗試修複系統;如果快速修複失敗,程式會要求您使用緊急修複磁碟,使用您準備好的該磁碟再做一次嘗試。
  
  
    8)在進行故障診斷中,我們還可以參考表四Boot.ini檔案中的一些開關選項,採用修改好的Boot.ini檔案定製引導系統,以便更加準確的定位相關的故障。
  
  
  
    9)登陸過程中,我們還可能碰到各式各樣的軟體故障,這些雖然不是致命的但也常常令人心煩,請您嘗試著辨識這些軟體或服務,在開始—〉程式—〉啟動菜單中,或登錄編輯程式中的
  
  
    HKEY_LOCAL_MACHINE或是HKEY_CURRENT_USER分類樹的SOFEWARE/Microsoft/Windows/CurrentVersion/Run分支中我們可以查看到自行啟動的程式,刪除相關鍵,可以關閉自啟動那些可疑的應用程式。利用控制台—〉管理工具—〉電腦管理中的事件檢視器中我們也可以得到不少關於故障原因的提示,如果是系統載入的的服務出了故障,請在電腦管理—〉服務中將那些相關的服務項設定成手動啟動,嘗試重新運行相關軟體的安裝或卸載程式修複類似錯誤。
  
  
  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.