玩轉ESXi_07:詳解Windows7啟動(dòng)流程與常見(jiàn)故障
每天使用計算機必須要經(jīng)過(guò)的一個(gè)步驟就是啟動(dòng),上一章節《玩轉ESXi_06:詳解操作系統引導與啟動(dòng)概念》中,我們詳細講解系統啟動(dòng)的基本流程,對于理解和處理win7系統開(kāi)機啟動(dòng)流程及常見(jiàn)故障維護有很大幫助的。
對于處于IT一線(xiàn)的運維工程師們每天都在用計算機,卻不知道它是怎樣啟動(dòng)的,似乎總感覺(jué)有些別扭吧。
當然,還有一個(gè)目的,就是為后續講解Exsi系統啟動(dòng)流程做鋪墊!
一、啟動(dòng)過(guò)程
舉例,我的電腦在BIOS里面設置硬盤(pán)啟動(dòng)。
⑴、按下主機電源開(kāi)關(guān), 主板BIOS開(kāi)始自檢;
⑵、自檢通過(guò)后,主板bios找到硬盤(pán)上的第一個(gè)扇區主引導記錄MBR;
⑶、MBR引導程序開(kāi)始讀取硬盤(pán)分區表DPT,分析其中參數查找活動(dòng)分區,找到活動(dòng)分區中的分區引導記錄PBR,并且把控制權交給PBR;
⑷、PBR搜索活動(dòng)區中的啟動(dòng)管理器bootmgr,找到后,PBR把控制權交給bootmgr(相當于xp里的ntldr文件)。
⑸、bootmgr尋找活動(dòng)分區中的boot文件夾中的BCD文件(啟動(dòng)配置數據,相當于xp里的boot.ini文件)。
⑹、找到BCD后,bootmgr首先從BCD 中讀取啟動(dòng)管理器bootmgr菜單的語(yǔ)言版本信息,然后再調用bootmgr與相應語(yǔ)言的BOOTMGR.EXE.MUI (在boot文件夾對應語(yǔ)言文件夾中)組成相應語(yǔ)言的啟動(dòng)菜單;
如果存在著(zhù)多個(gè)操作系統并且選擇操作系統的等待時(shí)間不為0的話(huà),這時(shí)就會(huì )在顯示器上顯示操作系統的選擇界面。如果沒(méi)有多系統,不顯示選擇界面,直接進(jìn)入windows 7系統。
⑺、選擇windows 7系統后,bootmgr就會(huì )讀取BCD里win7系統所在的盤(pán)里的windows\system32\winload.exe文件,并且將控制權交給winload.exe(windows內核載入程序)。
⑻、Winload.exe加載Ntoskrnl.exe和hal.dll(windows7內核、硬件、服務(wù))等;
⑼、接下來(lái)Ntldr
⑽、驅動(dòng)程序加載完成后,最開(kāi)始只有idle和system進(jìn)程,system進(jìn)程(PID為4),會(huì )做如下設置:
i、創(chuàng )建 smss.exe進(jìn)程,它是Windows會(huì )話(huà)管理器進(jìn)程, 負責用戶(hù)登錄和登出管理,也是系統中第一個(gè)用戶(hù)進(jìn)程。
注意,并非system.exe進(jìn)程,如果你看到system.exe進(jìn)程名(一般出現c:\windows目錄下,表示你中病毒了)!
⑾、smss進(jìn)程(由內核線(xiàn)程創(chuàng )建),會(huì )做如下設置:
i、創(chuàng )建autochk.exe進(jìn)程來(lái)檢查磁盤(pán),加載 win32K.sys(Windows子系統的內核模式部分),初始化系統環(huán)境變量,控制所有輸入/輸出設備以及訪(fǎng)問(wèn)顯示設備等;
ii創(chuàng )建 csrss.exe進(jìn)程,主要管理windows圖形相關(guān)任務(wù),維持Windows的控制,管理所有由該會(huì )話(huà)創(chuàng )建的進(jìn)程和線(xiàn)程(創(chuàng )建或者刪除線(xiàn)程和一些16位的虛擬MS-DOS環(huán)境)等,比如,用戶(hù)登出時(shí)向他們發(fā)送退出通知。
iiii、創(chuàng )建winlogon進(jìn)程;
iv、創(chuàng )建wininit.exe(vista以后才有該進(jìn)程,注意與XP區別);
v、創(chuàng )建虛擬內存頁(yè)面文件等。
⑿、Winlogon進(jìn)程依次創(chuàng )建其他進(jìn)程,如下:
i、創(chuàng )建系統服務(wù)services.exe進(jìn)程(vista以后由wininit.exe負責加載),啟動(dòng)系統服務(wù)和加載Auto驅動(dòng);
ii、創(chuàng )建本地安全驗證Lsass.exe進(jìn)程(vista以后由wininit.exe負責加載);
iii、創(chuàng )建logonui.exe 此進(jìn)程,這個(gè)時(shí)候,顯示歡迎界面,選擇賬號,輸入密碼就可以登錄到系統中了(如果只有一個(gè)用戶(hù),并且沒(méi)有密碼,則歡迎界面會(huì )一閃而過(guò));
iv、創(chuàng )建Userinit.exe進(jìn)程(密碼發(fā)給Lsass.exe進(jìn)程,驗證通過(guò)后被創(chuàng )建),用來(lái)對該用戶(hù)初始化工作;
v、創(chuàng )建explorer.exe進(jìn)程(由Userinit.exe進(jìn)程創(chuàng )建),這個(gè)時(shí)候你才可以進(jìn)入到工作桌面了,淘寶購物、QQ、文檔、PPT等工作了。
現在,我們來(lái)了解下,在WindowsXP系統下(windows 7大同小異),system進(jìn)程、smss.exe、csrss.exe、winlogon.exe等進(jìn)程的關(guān)系,如下圖7.1所示:
圖7.1
⒀、運行空閑(Idle)進(jìn)程,等待您登錄系統了,從而啟動(dòng)整個(gè)windows 7系統。用戶(hù)輸入賬號與密碼后, Userinit.exe進(jìn)程執行用戶(hù)環(huán)境的初始化工作,然后查詢(xún)注冊表HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/Shell鍵的值,默認為explorer.exe,啟動(dòng)它。然后Userinit進(jìn)程退出。
因此explorer.exe進(jìn)程沒(méi)有父進(jìn)程,它用來(lái)顯示系統的桌面環(huán)境,包括桌面圖標和文件管理,請不要將此進(jìn)程與瀏覽器進(jìn)程(iexplore.exe)混淆!
這個(gè)過(guò)程簡(jiǎn)單地概括為:
Windows 7系統:
WindowsXP系統:BIOS-COMS——MBR-DPT——PBR-ntlrd——boot.ini-系統內核
注:傳統BIOS+MBR分區表的啟動(dòng)方式將會(huì )漸漸被EFI
我們再來(lái)對此下windowsXP與windows7,如下圖所示:
圖7.2
二、常見(jiàn)故障分析
2.1、MBR
常見(jiàn)提示:一般MBR出故障時(shí)就是開(kāi)機時(shí)左上角光標一直閃的情況。
癥狀分析:就是已經(jīng)啟動(dòng)了硬盤(pán),而MBR為空或無(wú)法讀取。
2.2、分區表(DPT)故障
常見(jiàn)提示:An
癥狀分析:最常見(jiàn)的DPT故障就是活動(dòng)分區的丟失,造成硬盤(pán)啟動(dòng)時(shí)不知道該讀取哪個(gè)分區,所以也就找不到系統。
2.3、PBR故障
常見(jiàn)提示:A
癥狀分析:即根據分區表而去啟動(dòng)活動(dòng)分區,但是活動(dòng)分區上的PBR出了故障,自然就是磁盤(pán)讀取錯誤
2.4、讀取PBR找尋引導文件(bootmgr)時(shí)出現各種問(wèn)題
常見(jiàn)提示:NTlrd
癥狀分析:造成這種原因一般有三種情況:
1)活動(dòng)分區標記錯誤,即目前的活動(dòng)分區不是原來(lái)的活動(dòng)分區,自然在該分區下就找不到引導文件提示XXX
2)PBR設置錯誤,啟動(dòng)系統時(shí)去尋找bootmgr,是因為尋找bootmgr的命令寫(xiě)在PBR中,PBR不去找bootmgr而去找NTlrd或別的文件(NTlrd是NT5.X,XP系統的引導文件),自然就是PBR上的命令寫(xiě)錯了
3)的確是bootmgr損壞丟失
2.5、BCD故障
常見(jiàn)提示:主要特征為上面一個(gè)白色橫欄,上面寫(xiě)著(zhù)windows
癥狀分析:即BCD文件丟失或損壞或設置,造成bootmgr無(wú)法找到讀取BCD或者無(wú)法根據BCD的設置找到系統并啟動(dòng),所以反饋出如上信息。
2.6、winload.exe或內核文件故障
常見(jiàn)提示:藍屏
癥狀分析:大多情況下是系統文件被病毒或者什么原因破壞,可以嘗試過(guò)PE里替換系統文件,有時(shí)PE方法無(wú)效則重裝會(huì )更快解決問(wèn)題。
2.7、驅動(dòng)故障
常見(jiàn)提示:出現win7
癥狀分析:自然就是驅動(dòng)無(wú)法加載造成無(wú)法啟動(dòng),黑屏好解決,大多顯卡驅動(dòng)問(wèn)題。藍屏基本沒(méi)救了,重裝系統。
2.8、服務(wù)項或啟動(dòng)項故障
常見(jiàn)癥狀:開(kāi)機時(shí)卡在歡迎界面,或者進(jìn)入桌面后只有一個(gè)鼠標等等等各種在歡迎界面時(shí)或界面后的不正?,F象。
癥狀分析:
1)系統關(guān)鍵服務(wù)被禁止;
2)開(kāi)機必須啟動(dòng)的文件被損壞或設置被篡改(注冊表中);
3)第三方服務(wù)項或啟動(dòng)項的干擾。
附件:Windows關(guān)鍵文件
smss.exe被叫作會(huì )話(huà)管理子系統,負責啟動(dòng)用戶(hù)的會(huì )話(huà),是重要的引導操作。如創(chuàng )建環(huán)境變量,啟動(dòng)csrss和進(jìn)行排隊在系統引導前的文件拷貝操作(它處理Windows文件保護并通過(guò)Winlogon創(chuàng )建登陸會(huì )話(huà))。自Win7,smss作為系統重要進(jìn)程,中斷smss會(huì )導致系統藍屏。
csrss.exe是客戶(hù)/服務(wù)器運行子系統用戶(hù)態(tài)的主要部分。由于大部分Win32子系統操作被移入核心態(tài)驅動(dòng)(Win32.sys),所以它主要負責Win32控制臺窗口、創(chuàng )建或刪除線(xiàn)程和部分16位虛擬MS-DOS環(huán)境。它是一個(gè)核心子系統必須總在運行,因而中斷該進(jìn)程將導致藍屏死機。NTSD中設置標識可以調試它。
wininit.exe是Windows啟動(dòng)/關(guān)閉服務(wù)。
logonui.exe叫Windows登陸用戶(hù)界面,關(guān)系到Windows用戶(hù)切換屏幕。
winlogon.exe屬于Windows登陸管理。它處理系統上的登陸和登出過(guò)程。
userinit.exe在啟動(dòng)時(shí)管理不同需要的啟動(dòng)順序,如建立網(wǎng)絡(luò )連接和啟動(dòng)Windows shell,由winlogon.exe調用。
lsass.exe負責加強系統上的安全策略,檢查登陸進(jìn)系統的用戶(hù)并創(chuàng )建安全令牌。
services.exe管理啟動(dòng)和停止系統服務(wù)。該進(jìn)程同樣處理系統引導時(shí)自動(dòng)啟動(dòng)服務(wù)和系統關(guān)閉時(shí)停止服務(wù)。
svchost.exe是一個(gè)通用服務(wù)主進(jìn)程名,它從動(dòng)態(tài)鏈接庫運行,屬于微軟服務(wù)主進(jìn)程。啟動(dòng)時(shí),svchost.exe檢查服務(wù)注冊表服務(wù)構建它必須加載的服務(wù)列表。
explorer.exe叫Windows 資源管理器,也叫用戶(hù)shell,從它我們看到熟悉的任務(wù)欄、桌面等,能通過(guò)任務(wù)管理器停止。它有命令行選項。
Slsvc.exe管理所有Windows許可活動(dòng)。
spoolsv.exe管理所有本地和網(wǎng)絡(luò )打印隊列以及控制所有打印工作。
lsm.exe叫本地會(huì )話(huà)管理。它主要用來(lái)管理終端服務(wù)器連接。
conime.exe叫做控制臺IME,主要用作亞洲語(yǔ)言??梢酝ㄟ^(guò)修改注冊表加載。
dllhost.exe是COM+主進(jìn)程控制IIS中的進(jìn)程并被許多程序使用。
winmgmt.exe是Windows客戶(hù)端管理核心組件。當首次客戶(hù)端應用程序連接或管理應用程序連續請求它的服務(wù)時(shí)它初始化。
ntdll.dll是描述NT層DLL(NT Layer DLL)的文件,它包含NT kernel的功能,實(shí)際可看作映射表。
希望本篇文章對在處于維護一線(xiàn)的IT工程師們有幫助!
聯(lián)系客服