欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

談win2003與win2008啟動(dòng)原理及雙啟動(dòng)的故障解決方法

  發(fā)布時(shí)間:2015-01-07 11:41:20   作者:杜飛   我要評(píng)論
這篇文章主要介紹了談win2003與win2008啟動(dòng)原理及雙啟動(dòng)的故障解決方法,需要的朋友可以參考下

      最近經(jīng)常有學(xué)生詢問(wèn)Win2008的啟動(dòng)相關(guān)問(wèn)題以及早期Windows版本與vista或win2008并存時(shí)的啟動(dòng)問(wèn)題,現(xiàn)在可以說(shuō)正是處于操作系統(tǒng)新舊版本的過(guò)濾時(shí)期,這類問(wèn)題會(huì)在一定時(shí)間內(nèi)越來(lái)越多,所以本人就寫了這篇文章來(lái)談?wù)撘幌滦掳娌僮飨到y(tǒng)的啟動(dòng)原理以及如何解決新舊兩種操作系統(tǒng)并存時(shí)的故障。

我們還是先來(lái)看一下WinXP/2003的啟動(dòng)過(guò)程,這個(gè)啟動(dòng)過(guò)程其實(shí)還是挺復(fù)雜的,我在此畫了一個(gè)草圖:

     當(dāng)然這個(gè)圖并沒(méi)有把整個(gè)啟動(dòng)過(guò)程中所涉及到的細(xì)節(jié)都描述出來(lái),但主要部分已經(jīng)有了,我們?cè)诖瞬贿M(jìn)行詳細(xì)描述,例如:系統(tǒng)自檢成功后讀取MBR中的前446個(gè)字節(jié)的引導(dǎo)信息等,這些不是咱們今天討論的重點(diǎn),我們只說(shuō)說(shuō)較為重要的幾點(diǎn):

其中最為重要一步就是NTLDR:這個(gè)程序位于C盤根目錄下如圖所示:

clip_image004

     NTLDR:全稱為NTOS Loader,操作系統(tǒng)加載程序。它的主要作用是解析Boot.ini文件,通過(guò)讀取Boot.ini文件,使系統(tǒng)在啟動(dòng)過(guò)程中出現(xiàn)選擇菜單,由用戶選擇希望啟動(dòng)的操作系統(tǒng)。除了NTLDR我們可以看到在C盤根目錄下還有一個(gè)boot.ini文件,這個(gè)文件在xp/2003中也是相當(dāng)有分量的一個(gè)家伙!

     BOOT.INI:簡(jiǎn)稱為啟動(dòng)菜單文件,這個(gè)文件中存放了我們當(dāng)前機(jī)器中操作的配置信息,安裝了幾個(gè)操作系統(tǒng)?分別位于哪個(gè)分區(qū)?給用戶的選擇提示是什么?默認(rèn)選擇時(shí)間是多長(zhǎng)?等等。

     NTLDR除了讀取BOOT.INI文件中的啟動(dòng)配置信息之外還會(huì)加載并執(zhí)行C盤根目錄下的NTDETECT.COM文件,收集系統(tǒng)的硬件信息,NTDETECT.COM文件會(huì)調(diào)用BIOS中的內(nèi)容來(lái)得到基本的硬件信息返回NTLDR以供操作系統(tǒng)使用,并將此信息保存到注冊(cè)表中。

     如果上述操作沒(méi)有問(wèn)題就會(huì)再現(xiàn)我們比較熟悉的進(jìn)度條了!

     然后就是加載Windows的內(nèi)核文件:NTOS,全稱為:NTOSKRNL.EXE文件以及它所依賴的模板文件,如圖所示:

clip_image006

     再往下就會(huì)將程序的執(zhí)行權(quán)交給NTOSKRNL.EXE,下面的工作就由NTOSKRNL.EXE負(fù)責(zé)了!NTOSKRNL.EXE程序會(huì)通過(guò)調(diào)用一系統(tǒng)的函數(shù),這也是整個(gè)啟動(dòng)過(guò)程中最復(fù)雜的地方,也是最容易出現(xiàn)問(wèn)題的地方,如果這一部分沒(méi)有問(wèn)題,那么就會(huì)生成系統(tǒng)的第一個(gè)進(jìn)程:SMSS

     SMSS:會(huì)話管理子系統(tǒng) Session Manager SubSystem 這是第一個(gè)用戶態(tài)的進(jìn)程。會(huì)執(zhí)行一些注冊(cè)表中某些表鍵中所定義的操作:如bootexecute、pendingfilerenameoperations、paging file等創(chuàng)建會(huì)創(chuàng)建出 CSRSS系統(tǒng)服務(wù)器進(jìn)程和Winlogon登錄進(jìn)程。

     CSRSS:Client/Server Runtime Server Subsystem作用:客戶端服務(wù)子系統(tǒng),用以控制Windows圖形相關(guān)子系統(tǒng),是用戶模式Win32子系統(tǒng)的一部分。csrss代表客戶/服務(wù)器運(yùn)行子系統(tǒng)而且是一個(gè)基本的子系統(tǒng)必須一直運(yùn)行。csrss用于維持Windows的控制。

      Winlogon:Windows登錄進(jìn)程,主要作用是啟動(dòng)LSASS進(jìn)程(Local Security Authority Subsystem Service);如果是XP還會(huì)啟動(dòng)Logonui進(jìn)程,如果是Win2003就不會(huì)生成logonui;出現(xiàn)登錄提示框,提示用戶輸入用戶名和密碼,然后將些信息交給LSASS進(jìn)行驗(yàn)證,如果通過(guò)就會(huì)創(chuàng)建一個(gè)訪問(wèn)令牌,最后由userinit程序執(zhí)行用戶登錄和初始化腳本,至此,出現(xiàn)桌面后,我們的啟動(dòng)工作就完成了。但在winlogon對(duì)用戶進(jìn)行驗(yàn)證的同時(shí)還會(huì)啟動(dòng)services相關(guān)系統(tǒng)服務(wù)。

     Winlogon的過(guò)程其實(shí)還是很復(fù)雜的,因?yàn)橹虚g涉及到用戶的認(rèn)證和授權(quán)的問(wèn)題,在此還是想簡(jiǎn)單說(shuō)一說(shuō),我們登錄系統(tǒng)的方式主要交互式登錄、系統(tǒng)登錄、網(wǎng)絡(luò)登錄、服務(wù)登錄和批處理登錄。用到最多的有交互式登錄、系統(tǒng)登錄、網(wǎng)絡(luò)登錄和服務(wù)服務(wù),當(dāng)然用戶最熟悉的肯定是交互式登錄,也就是人坐在電腦前,與你的愛(ài)機(jī)直接面對(duì)面的“交流”!那么咱們就把交互式登錄的過(guò)程大體說(shuō)一下:

     首先Winlogon作為登錄進(jìn)程首先出現(xiàn),準(zhǔn)備一個(gè)用戶登錄的環(huán)境。然后開(kāi)始加載一個(gè)DLL文件:MSGINA.DLL,此文件作用是在屏幕上出現(xiàn)一個(gè)“Ctrl+Alt+Del”的界面,提示用戶輸入用戶名和口令, 然后將收到的信息交給下一個(gè)進(jìn)程:LSASS進(jìn)程,進(jìn)行用戶身份的認(rèn)證,當(dāng)然這里又會(huì)有很多問(wèn)題:工作組用戶的認(rèn)證、單域用戶的認(rèn)證、不同域用戶的認(rèn)證等等,但不論是哪一種情況,都必須由LSASS進(jìn)程負(fù)責(zé)認(rèn)證。其中會(huì)涉及到一個(gè)服務(wù):Netlogon,此服務(wù)主要是驗(yàn)證NTLM的登錄、認(rèn)證。如果是域的環(huán)境會(huì)幫助客戶機(jī)更新主機(jī)的DNS記錄以及定位域控制器,這也就是我們?cè)诼?lián)系域控制器不成功時(shí)為什么重新啟動(dòng)netlogon這個(gè)服務(wù)的原因!我們拋開(kāi)過(guò)舊的操作系統(tǒng)不談,那么工作組環(huán)境一般使用的認(rèn)證協(xié)議為:NTLM協(xié)議,如果是域環(huán)境使用的認(rèn)證協(xié)議為:Kerberos V5協(xié)議。

     NTLM:使用的是挑戰(zhàn)/響應(yīng)模式,過(guò)程如下:

     首先是客戶端發(fā)出一個(gè)連接請(qǐng)求,請(qǐng)求對(duì)方對(duì)自己的身份進(jìn)行認(rèn)證。但沒(méi)有傳具體口令。

     服務(wù)器端會(huì)給隨機(jī)發(fā)送一個(gè)8字節(jié)的挑戰(zhàn)信息,如:1234567812345678,然后將這個(gè)挑戰(zhàn)信息和當(dāng)前session關(guān)連起來(lái)。

     客戶端收到挑戰(zhàn)信息后進(jìn)行如下工作:a.根據(jù)自己的明文口令經(jīng)過(guò)md4哈希后得到一個(gè)16字節(jié)的口令散列值;b.然后利用剛才得到的散列值將準(zhǔn)備登錄的服務(wù)器名或者是域名等信息再次進(jìn)行md5加密得到第二次的hash散列值;c.然后再利用第二次的散列值把8個(gè)字節(jié)的挑戰(zhàn)信息再次進(jìn)行md5加密,又得到一個(gè)16字節(jié)散列值;d.最后將這個(gè)值作為響應(yīng)傳給服務(wù)器。

     最后服務(wù)器端怎么做,才知道你是不是一個(gè)合法用戶呢?因?yàn)榉?wù)器是有你的口令明文的,利用你的口令明文也做相同的操作,如果結(jié)果匹配,就認(rèn)為對(duì)方是一個(gè)合法的用戶!

     Kerberos V5主要是對(duì)用戶的身份進(jìn)行驗(yàn)證并為用戶頒發(fā)用于訪問(wèn)網(wǎng)絡(luò)服務(wù)的票證,適合于域等開(kāi)放環(huán)境。認(rèn)證過(guò)程是一個(gè)很復(fù)雜的過(guò)程,在此我只能是簡(jiǎn)單說(shuō)說(shuō)而已。

clip_image008

     首先:客戶端通過(guò)DNS定位KDC服務(wù)器

     其次:客戶端用戶使用密碼或者是其他方式如智能卡向KDC請(qǐng)求票證授予票證(Ticket-Granting Ticket, TGT),這個(gè)請(qǐng)求在登錄時(shí)會(huì)自動(dòng)完成。要獲取特定服務(wù)的其他票證,需要票證授予票證。票證授予票證類似于護(hù)照。與護(hù)照一樣,票證授予票證可標(biāo)識(shí)您的身份并允許您獲取多個(gè)“簽證”,此處的“簽證”(票證)不是用于出國(guó),而是用于遠(yuǎn)程計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)。

     然后:KDC對(duì)用戶的身份進(jìn)行驗(yàn)證,如果沒(méi)有問(wèn)題可創(chuàng)建票證授予票證,并采用加密形式將其發(fā)送回客戶機(jī)。

     再次:客戶機(jī)使用其口令來(lái)解密票證授予票證(TGT),得到有效的TGT后,客戶端使用該TGT票證訪問(wèn)授票服務(wù)(TGS)。

     再次:TGS接著向客戶端頒發(fā)服務(wù)票證。

     最后:客戶端向所請(qǐng)求的網(wǎng)絡(luò)服務(wù)出示服務(wù)票證。服務(wù)票證向此服務(wù)證明用戶的身份。同時(shí)也向該用戶證明服務(wù)的身份。

clip_image010

Winlogon進(jìn)程

clip_image012

Msgina.dll文件

clip_image014

Netlogon服務(wù)

     以上只是用草草幾句話把Winxp/2003的啟動(dòng)過(guò)程作了一個(gè)大體的介紹,從其中我可以看到NTLDR和boot.ini起了重要的作用,這也是和Vista/Win2008的不同之處。下面咱們就來(lái)看看Vista/2008的啟動(dòng)過(guò)程。

     我們知道在XP/2003中進(jìn)行操作系統(tǒng)加載的文件是NTLDR,然后再讀取boot.ini文件但這兩個(gè)文件已經(jīng)到了壽終正寢的時(shí)候了!在VISTA以后的操作系統(tǒng)中我們?cè)僖惨?jiàn)不到親愛(ài)的NTLDR和Boot.ini了!嗚。。。。。。

Vista/2008的啟動(dòng)流程,如圖所示:

clip_image016

     在這個(gè)圖中,大家可以看到從系統(tǒng)啟動(dòng)到BIOS到MBR這一部分內(nèi)容基本上和早期版本操作系統(tǒng)是一樣的,不用多說(shuō),那么這個(gè)PBR是什么東西呢?

PBR:分區(qū)引導(dǎo)記錄 Partition Boot Record

由Vista 在安裝格式時(shí)生成的一段代碼,由這段代碼去找Bootmgr程序,并將程序的執(zhí)行權(quán)交給Bootmgr。那么這個(gè)Bootmgr又是個(gè)什么東西?

Bootmgr:?jiǎn)?dòng)管理器,相當(dāng)于XP/2003時(shí)期的Ntldr,這個(gè)程序可以完成操作系統(tǒng)加載,最主要的作用就是讀取BCD中的數(shù)據(jù),我們知道在XP/2003中啟動(dòng)配置信息都存放在boot.ini文件中,但到了VISTA/2008以后,啟動(dòng)配置信息就放到了BCD中了!

clip_image018

BCD:Boot Configure Data 引導(dǎo)配置數(shù)據(jù),它的作用就是用于存放當(dāng)前機(jī)器上的操作系統(tǒng)信息,安裝了多少操作系統(tǒng),每個(gè)操作系統(tǒng)所在分區(qū)等等。

當(dāng)Bootmgr成功從BCD中讀取出引導(dǎo)信息后就會(huì)顯示啟動(dòng)菜單供用戶選擇,然后Bootmgr會(huì)將程序的執(zhí)行權(quán)交給Winload.exe

clip_image020

Winload.exe它的的作用是將核心的系統(tǒng)文件加載到內(nèi)存并加載基本的驅(qū)動(dòng)程序,還有一個(gè)新功能就是支持bitlocker在此不做討論。winload.exe執(zhí)行成功后,就將執(zhí)行權(quán)交給了系統(tǒng)的內(nèi)核文件Ntoskrnl。

clip_image022

     以上是簡(jiǎn)單把vista/2008的啟動(dòng)過(guò)程大體說(shuō)了一下,而我們今天的重點(diǎn)講的是BCD這個(gè)東西,這是和XP/2003區(qū)別最大的地方了!

    剛才我們已經(jīng)說(shuō)了BCD保存著啟動(dòng)的相關(guān)配置信息,它取代了boot.ini文件,而且存儲(chǔ)格式也變化了相當(dāng)大的變化,以至于我們都不認(rèn)識(shí)它了,它是按照注冊(cè)表的格式進(jìn)行保存的,是一個(gè)二進(jìn)制文件,啟動(dòng)成功后也確實(shí)要被加載到注冊(cè)表中,因此也有人說(shuō)Vista/2008的啟動(dòng)信息存放于注冊(cè)表中。下面咱們就來(lái)認(rèn)識(shí)認(rèn)識(shí)此文件:

BCD文件位于活動(dòng)分區(qū)下的boot文件夾內(nèi),如圖所示:

clip_image024

clip_image026

    那么這個(gè)BCD文件是一個(gè)二進(jìn)制文件,我們就不能像boot.ini文件那樣對(duì)它直接修改了,必須借此一些工具才可以如:控制面板中的系統(tǒng)、msconfig工具、bcdedit.exe工具、wmi開(kāi)發(fā)接口。但在此功能較強(qiáng)的應(yīng)該是bcdedit.exe和WMI開(kāi)發(fā)接口,但大家最常用的應(yīng)該是Bcdedit.exe,這個(gè)工具也同一般的外部命令一樣位于windows下的system32文件夾下,如圖所示:

clip_image028

如果我們直接在命令行下執(zhí)行bcdedit.exe就是顯示操作系統(tǒng)配置條目,如圖:

clip_image030

那么如果我們使用 bcdedit.exe /? 這就是顯示使用方法:

clip_image032

下面給出bcdedit.exe的常用參數(shù):

/createstore 新建空的啟動(dòng)配置數(shù)據(jù)存儲(chǔ)。

/copy 復(fù)制存儲(chǔ)中的項(xiàng)。

/create 在存儲(chǔ)中新建項(xiàng)。

/delete 刪除存儲(chǔ)中的項(xiàng)。

/deletevalue 刪除存儲(chǔ)中的項(xiàng)選項(xiàng)。

/set 設(shè)置存儲(chǔ)中的項(xiàng)選項(xiàng)值。

下面咱們就以一個(gè)實(shí)例來(lái)講解一下雙啟動(dòng)的故障修復(fù)

參考圖形:

clip_image035

環(huán)境描述:先在C盤安裝了一個(gè)Win2003,然后又在D盤安裝了一個(gè)Win2008。

分析:那么C盤現(xiàn)在是系統(tǒng)分區(qū),如果用Win2003啟動(dòng)的話,那么啟動(dòng)分區(qū)就是C盤,否則就是D盤。雖然2008現(xiàn)在安裝在D盤,但還是要向系統(tǒng)分區(qū)也就是C盤修改了三個(gè)地方:PBR、Bootmgr、BCD。只要安裝了Vista或是2008就一定會(huì)向系統(tǒng)分區(qū)中修改這三個(gè)地方。

故障產(chǎn)生:現(xiàn)在C盤的Win2003因?yàn)槟撤N原因需要重新安裝,那么原來(lái)的三個(gè)信息PBR、Bootmgr、BCD都沒(méi)有了,因此D盤的2008不能啟動(dòng)了。

解決方法:只要還原C盤的PBR以及Bootmgr和BCD文件即可!

方法:使用Win2008的安裝光盤進(jìn)行命令行修復(fù)模式或者是第三方的小工具!

然后輸入命令:bootsect sys /nt60 就會(huì)重建PBR的相關(guān)信息!

實(shí)現(xiàn)過(guò)程:利用Win2008安裝光秀的命令行修復(fù)模式

現(xiàn)在我把C盤的Win2003重新安裝一遍。(當(dāng)然大家用Ghost也可以)安裝成功后就直接進(jìn)入WIN2003,Win2008無(wú)法啟動(dòng)!

進(jìn)入Win2003之后,我們來(lái)查看系統(tǒng)分區(qū)下的相關(guān)文件:

clip_image037

發(fā)現(xiàn)只有Ntldr,不見(jiàn)bootmgr和boot文件夾當(dāng)然也沒(méi)有BCD信息了!下面我們開(kāi)始修復(fù):

方法

把載入Win2008的安裝光盤。然后啟動(dòng),如圖所示:

clip_image039

點(diǎn)擊:修復(fù)計(jì)算機(jī),出現(xiàn)下圖:

clip_image041

顯示當(dāng)前沒(méi)有找到要修復(fù)的操作系統(tǒng),點(diǎn)擊:下一步

clip_image043

點(diǎn)示:命令提示符,出現(xiàn)下圖:

clip_image045

出現(xiàn)命令行提示符,但大家注意了這里的盤符是X盤,這是為什么呢?原來(lái)這只是一個(gè)虛擬出來(lái)的盤符,大家可千萬(wàn)不要在此輸入修復(fù)命令,一定不成功的!我們要切換到真正光盤所在的盤符:

clip_image047

下面我們的操作就在此提示符下進(jìn)行:

clip_image049

在上圖中所用到的命令我已經(jīng)使用紅框做了標(biāo)記,

其中幾個(gè)復(fù)制命令是為了生成bootmgr以及BCD,bootsect.exe /nt60 SYS是為了更新Win2008的PBR。

最后EXIT退出!

clip_image051

clip_image053

重新啟動(dòng),不必再手動(dòng)選擇從光盤啟動(dòng)系統(tǒng)也會(huì)自動(dòng)從光盤啟動(dòng),再進(jìn)入“修復(fù)計(jì)算機(jī)模式”會(huì)自動(dòng)出現(xiàn)下圖所示:

clip_image055 clip_image057

選擇“修復(fù)并重新啟動(dòng)”。重啟修復(fù)正常后進(jìn)入Win2008系統(tǒng)。但不能啟動(dòng)Win2003,這是因?yàn)锽CD中沒(méi)有Win2003的配置信息,如圖所示:

clip_image059

在Win2008系統(tǒng)下用bcdedit.exe 修復(fù)雙啟動(dòng)菜單,在BCD中加入Win2003的配置信息,相關(guān)命令如下:

a. 創(chuàng)建基于ntldr的OS加載器項(xiàng): /d為用戶選擇時(shí)的提示內(nèi)容,可以隨意輸入

bcdedit /create {ntldr} /d “Windows Server 2003”

b. 設(shè)置OS所在分區(qū)

bcdedit /set {ntldr} device partition=D: (D: 為XP的系統(tǒng)所在分區(qū))

c. 設(shè)置OS所使用的ntldr文件位置

bcdedit /set {ntldr} path \ntldr

d. 使此OS項(xiàng)加入到bootmgr界面中

Bcdedit /displayorder {ntldr} –addlast

e. 生成此項(xiàng)的描述信息:

Bcdedit /set {ntldr} description “Windows 2003”

具體操作如圖所示:

clip_image061

再次查看就有我們新建的啟動(dòng)項(xiàng)了:

clip_image063

我們可以重新啟動(dòng)計(jì)算機(jī),進(jìn)行測(cè)試:

clip_image065

至此,修復(fù)操作終于結(jié)束了!我的天呀!累死我了!

注意:如果某個(gè)節(jié)點(diǎn)我們不需要了,也可以刪除節(jié)點(diǎn),如:bcdedit –delete {ntldr} -f

那么如果你手頭沒(méi)有Win2008的安裝光盤,也可以借助第三方工具來(lái)修復(fù)和Win2008相關(guān)的信息。我在此從網(wǎng)上下載了一個(gè)修復(fù)工具:BCDautofix,操作起來(lái)更為簡(jiǎn)單!

實(shí)現(xiàn)過(guò)程:借助第三方工具修復(fù)Win2008的啟動(dòng)故障

方法: 從網(wǎng)上下載修復(fù)的小工具,如BCDautofix。

雙擊BCDautofix.exe 如圖所示:

clip_image067

clip_image069

clip_image071

然后重新啟動(dòng)計(jì)算機(jī):

出現(xiàn):

clip_image073

進(jìn)入系統(tǒng)后發(fā)現(xiàn) bootmgr、BCD等信息都已經(jīng)回來(lái)了!

clip_image075

至此修復(fù)成功!不行了,堅(jiān)持不住了,我去睡覺(jué)了!。。。。。。。。。。。。 

本文出自 “杜飛” 博客,轉(zhuǎn)載請(qǐng)與作者聯(lián)系!

相關(guān)文章

最新評(píng)論