Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows Server系統教程 >> Windows Server教程 >> windows 2000是怎樣引導的

windows 2000是怎樣引導的

日期:2017/1/24 11:06:57      編輯:Windows Server教程

  事實上,Windows 2000的引導過程是從安裝時候就已經開始的。

  那我們首先從的安裝說起。

  當 setup運行時,它向硬盤上寫入MBR(主引導記錄),同時在這個磁盤驅動器的第一個可引導分區(就是我們在fdisk後激活的分區)寫入引導扇區,引導扇區的內容根據不同的文件系統格式而變化(FAT或者是NTFS)。如果你的機器上曾裝有MS並建立了引導扇區的話, setup將檢測它要覆蓋的引導扇區是否有效,如果有效的話, setup安裝程序將把引導扇區的內容復制到這個分區的根目錄中的文件bootsect.dos中。Setup程序在寫完引導扇區後,將把所用的文件拷貝到硬盤,包括兩個引導文件Ntldr和Ntdetect.com。另外,setup還會在引導分區的根目錄中建立引導菜單文件boot.ini。

  例:

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows "
multi(0)disk(0)rdisk(0)partition(2)WINDOWS="Windows Server 2000" /fastdetect

  這是我的機器上的boot.ini文件,該內容顯示裝了兩個,win98和win2000,後面的那個參數/fastdetect最常見,是安裝系統時默認的,它的作用是使ntdetect忽略秉性和串行設備的枚舉。Boot.ini文件中的相關參數還有很多,各有不同的功能,因為與本文沒太大關系,所以不作具體介紹,有興趣的朋友可以到網上找找有關資料。

  Windows 2000的啟動:

  當你按下機器上的power鍵,計算機就開始啟動了,首先是上電自檢,通過後bios引導計算機去讀取硬盤上腗BR,根據MBR中的信息,找到引導分區,將引導分區內的引導扇區的代碼讀入內存並把控制權交給該代碼。引導扇區代碼的作用是向Windows 2000提供磁盤驅動器(硬盤)的結構和格式信息並且從磁盤根目錄中讀取Ntldr文件,在引導扇區代碼將Ntldr加載到內存後,它把控制權交給Ntldr的入口點。如果引導扇區代碼在根目錄中沒有找到Ntldr文件的話,若文件系統為FAT格式,則顯示:“Boot:無法找到Ntldr”,若引導文件系統是NTFS格式,則顯示:“NTLDR丟失”。然後,Ntldr使用內建的文件系統代碼從根目錄讀取boot.ini文件(Ntldr內建代碼與引導扇區文件系統代碼不同的是,Ntldr文件系統代碼可以讀取子目錄)。此時,Ntldr清除屏幕,如果boot.ini中存在不止一種引導選項,則顯示引導選擇菜單,如果在boot.ini制定的超時范圍內未有任何動作的話,Ntldr會選擇默認的選項。引導選項確定後,Ntldr加載和執行Ntdetect.com(這是一個使用系統bios進行查詢計算機基本設備和設置信息的16位實模式程序)。然後,Ntldr開始清除屏幕並顯示:“Starting Windows……”進度欄。這個進度欄保持空白,直到Ntldr開始加載引導驅動程序(假如有100個引導驅動程序,則每加載一個文件,進度條增加1%)。在進度條的下面是信息:“For troubleshooting and advanced startup options for , press F8 .”如果此時按下F8鍵,會出現高級啟動菜單,包括:已知的最近正確模式(last known good),安全模式(safe mode),調試模式(debug mode)等等等等。

  此後,Ntldr加載合適的內核和HAL映像文件(缺省為Ntoskrnl.exe和HAL.dll),讀入SYSTEM注冊表hive文件(hive文件是一種包含注冊表子樹的文件)以確定該加載哪些引導驅動程序,加載引導驅動程序,為Ntoskrnl.exe的執行准備CPU寄存器。之後,Ntldr調用Ntoskrnl.exe並由它開始初始化執行程序子系統並引導系統-啟動(system-start)設備驅動程序,在一系列的初始化工作完成後Ntoskrnl.exe為系統本機應用程序作准備並運行smss.exe。

  smss的主要任務是:初始化注冊表,創建系統環境變量,加載Win32子系統(Win32k.sys)的內核模式部分,啟動子系統進程Crss,啟動登陸進程winLogon。然後,winLogon開始執行其啟動步驟,如創建初始的窗口和桌面對象等等。然後它創建服務控制管理器(SCM)進程(WinntSystem32Services.exe),它加載所有的標記為自動啟動(auto-start)的服務程序和設備驅動程序和本機安全驗證子系統(Lsass)進程(Winntsystem32Lsass.exe)。當一切加載成功且用戶在控制台成功登陸後,SCM則認為系統引導成功,注冊表中 已知最近正確配置(HKLMSYSTEMselectLastKnownGood)由CurrentControlSet替代。反之,如果用戶在引導的時候選擇高級菜單中的已知最近正確模式(LastKnownGood)或者加載時驅動程序返回一個嚴重的或者關鍵的錯誤,系統會以LastKnownGood的值作為CurrentControlSet 的值。

  之後,我們便看到了熟悉的桌面。至此,的引導過程結束。

  限於篇幅,本文只簡單的講述一下引導的大體過程,一些細節方面的東東請看我整理的其他方面的文章。

Copyright © Windows教程網 All Rights Reserved