Windows XP啟動過程及常見啟動故障

來源:互聯網
上載者:User

 

一、Windows XP系統在磁碟上的組織

  安裝XP過程中,Windows安裝系統會在電腦的磁碟分割寫入引導相關的組件,分別置放於系統磁碟區(system volume)啟動卷(boot volume)。 一個硬碟一般有兩種分區方式:一是四個主要磁碟分割,每個分區都可以作為使用中的磁碟分割;二是三個主要磁碟分割和一個擴充分區,擴充分區中以邏輯鏈方式組織邏輯分區,邏輯分區數不受限制。Windows的系統磁碟區只能是主要磁碟分割,啟動卷則沒有此限制,主要磁碟分割或邏輯分區均可。

  Windows安裝程式會選擇磁碟上第一個可引導的主要磁碟分割(即使用中的磁碟分割)作為系統磁碟區,在寫MBR(Master Boot Record,磁碟的第一個扇區,大小一般為512位元組)代碼的同時,在該分區第一個扇區寫入開機磁區。系統磁碟區上包含的顯示系統組件包括Ntldr, Boot.ini, Ntdetect.com,Boot.ini是引導菜單設定檔,Ntdetect.com為Ntldr執行硬體檢測,Ntldr負責引導Windows系統,它會讀入Boot.ini,提示引導菜單,載入Ntoskrnl.exe, Bootvid.dll, Hal.dll和引導啟動的裝置驅動程式。如果需要,系統磁碟區上還會包含SCSI驅動程式Ntbootdd.sys。

  Windows系統其他所有組件都會被置放於啟動卷,在安裝的時候由使用者選擇確定,系統內容變數%SystemDrive%指明該分區,所有Windows檔案安裝在%SystemRoot%目錄下。Windows核心組件都位於<WINDOWS\system32>子目錄下,如Ntoskrnl.exe(初始化執行體子系統), Hal.dll(核心模式DLL), smss.exe(會話管理器), winlogon.exe(登入進程), win32k.sys(Windows子系統)等,驅動程式位於drivers目錄下,註冊表檔案位於config目錄下。

  多數情況下,系統磁碟區和啟動卷是一個分區。但事情總有例外,比如把XP安裝在邏輯分區上,此時這兩個卷就是分開的,相關組件就會分別寫在相應的分區上。這裡跑一下題,能不能同時在一個台機器上安裝多個XP系統呢?理論上分析一下,啟動卷可以位於不同的分區,但是如果使用中的磁碟分割不發生改動的話,系統磁碟區總是同一個分區。如此一來,系統磁碟區裡的組件就會被覆蓋重寫,多個XP系統共用系統磁碟區組件,這與彼此完全獨立的XP系統多少還是有所區別的。經過實驗,驗證了我的分析,的確可以在一台機器上安裝多個XP系統,但是系卷是共用的,也就是ntldr, boot.ini(多個啟動項), ntdetect.exe是共用的。

二、Windows XP啟動過程

從系統加電啟動電腦,到使用者登入到案頭完成啟動,Windows大致經曆以下幾個階段。

1. 預引導階段

  系統加電後,電腦立即運行POST自檢程式,檢測系統硬體並進行初始化工作。然後,BIOS定位電腦的引導裝置,讀取MBR至記憶體0X7c00處,然後就跳轉到0x7C00處去執行。

2. 引導階段

  MBR引導代碼掃描分區表,找到XP系統磁碟區,然後將對應分區的開機磁區讀入記憶體,並且將控制權交給它。開機磁區代碼將Ntldr載入到記憶體中以後,它把控制權交給Ntldr,之後就由Ntldr來控制引導過程。

  Ntldr的第一個動作就是將系統切換至保護模式,開啟分頁機制,系統進入了Windows的標準狀態。接著,Ntldr利用BIOS服務訪問磁碟。如果是SCSI磁碟,則需要載入Ntbootdd.sys檔案,用它代替引導代碼函數來訪問磁碟。Ntldr讀取系統磁碟區根目錄下的boot.ini引導菜單檔案,如果存在多個引導項,則顯示一個引導選擇菜單。一旦引導項確定下來,Ntldr載入並執行Ntdetect.exe,它使用系統的BIOS來查詢系統的基本裝置和配置資訊。這些資訊被收集到Ntldr中,在引導過程的後期,它們被儲存在註冊表 HKLM\HARDWARE\\DESCRIPTION。

3. 載入核心階段

在該階段,Ntldr將執行以下任務:

(1)載入正確的核心和HAL映像(預設是Ntoskrnl.exe和hal.dll)。

(2)讀入SYSTEM註冊表儲巢,位於\Windows\system32\config\system,確定需要載入的驅動程式。

(3)掃描記憶體中的SYSTEM註冊表儲巢,找到所有的引導裝置驅動程式。

(4)將訪問系統目錄的檔案系統驅動加入引導驅動程式列表。

(5)載入引導驅動程式。

(6)準備CPU寄存器,調用Ntoskrnl.exe。

4. 初始化核心階段

  Ntoskrnl在螢幕顯示Windows啟動徽標。然後,它通過兩階段來完成核心子系統的初始化:第一階段完成對象定義(process, thread, driver, etc)和核心資料結構初始化;第二階段完成對象初始化和子系統啟動。這兩個過程有隨後成為”System Idle Process”的核心系統線程來完成。

  I/O Manager 按順序載入”boot-start”驅動程式和”system-start”驅動程式,每個驅動程式的資訊都儲存在註冊表HKLM\System\CurrentControlSet\Services中。最後, Ntoskrnl建立會話管理器進程(Session Manager) (\Windows\System32\Smss.exe), 這是第一個使用者態進程。

  Smss運行BootExecute中指定的程式,例如autochk,chkdsk等,處理“Delayed move/rename”命令,初始化paging files和其餘的登錄機碼,載入並初始化核心模式中的Win32子系統 (Win32k.sys),啟動Csrss.exe (Win32子系統在使用者模式的部分),啟動Winlogon.exe。

5. 登入階段

  Winlogon.exe載入GINA (Graphical Identification and Authentication)並等待使用者登入,預設GINA是Msgina.dll,它會顯示標的Windows登入對話方塊。然後,Winlogin建立服務控制管理員Services.exe進程,依次載入所有標識為自動啟動的服務和驅動程式,以及本地安全認證子系統LSASS (Local Security Authority)。

  一旦使用者正確登入後,Winlogon從登入使用者的輪廓中載入註冊表儲巢,並且將它映射到HKCU,然後設定使用者環境變數。Winlogin通知GINA執行使用者初始化程式Userinit.exe和Shell指令碼,由HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Userinit和Shell指定,載入各種自動啟動項。

  至此,Windows啟動完成,使用者將控制電腦展開各種活動。

三、Windows XP常見啟動故障

  XP啟動過程中可能發生一些問題,主要包括MBR損壞、開機磁區損壞、系統檔案缺失或損壞、Boot.ini缺失或配置錯誤、系統崩潰或藍屏、系統服務或驅動載入失敗、使用者登入問題等等。這些問題可能是由於硬碟破壞、檔案破壞、缺失檔案以及第三方驅動程式錯誤造成的。針對引導問題,Windows提供了多種診斷和修複解決方案,主要有最後已知的好配置(Last Known Good Configuration)、安全模式、安全模式下的驅動程式載入、修復主控台(Recovery Console)。其中,修復主控台中提供了很多工具 + 生產力,如fixmbr, fixboot, bootcfg, chkdsk。對於進階使用者,可以利用Windows調試工具箱提供的核心調試器kd.exe或者WinDbg.exe,對崩潰轉儲檔案、本地故障系統、遠程故障系統進行診斷和修複。

四、參考文獻

[1] 深入解析Windows作業系統,Mark E.Russinovich and David A.Solomon.

[2] Windows啟動過程.ppt,喻勇(www.yuyong.net).
[3] WindowsXP啟動過程.doc,佚名.

出處 : Windows XP啟動過程及常見啟動故障 - 劉愛貴的專欄 - CSDN部落格

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.