Windows Server 2003 啟動中常見錯誤的解決方法
摘要:在Windows Server 2003啟動過程中,會出現(xiàn)各種各樣的問題,本文介紹了操作系統(tǒng)啟動過程的幾個階段,收集了一些經(jīng)常出現(xiàn)的錯誤,并結(jié)合 Windows 操作系統(tǒng)啟動過程,針對這些錯誤提出了解決方法。
當(dāng)診斷一個系統(tǒng)啟動錯誤時,判斷系統(tǒng)是在哪一階段出現(xiàn)錯誤非常關(guān)鍵,系統(tǒng)啟動過程根據(jù) CPU 架構(gòu)不同略微有些差異,下面我們簡單介紹一下 x86-based 系統(tǒng)啟動過程的幾個階段:
1. Pre-Boot Sequence
2. Boot Sequence
3. Kernel Load Sequence
4. Kernel Initialization Sequence
5. Logon Sequence
6. Plug and Play detection
階段 1: Pre-Boot Sequence
在計算機加電后開始準(zhǔn)備啟動操作系統(tǒng)之前,有一個 Pre-Boot Sequence 的過程,主要是計算機的 BIOS 中配置的設(shè)備引導(dǎo)順序?qū)ふ覇釉O(shè)備,Pre-Boot Sequence 可以分下以下步驟:
(1)系統(tǒng)加電自檢:主要監(jiān)測主板、CPU,內(nèi)存及其他計算機所使用的硬件設(shè)備的信息;
(2)找到合適的啟動設(shè)備并加載MBR,MBR中有分區(qū)表和主引導(dǎo)代碼,通過主引導(dǎo)代碼定位到活動分區(qū);
(3)通過 MBR 找到活動分區(qū)后,從活動分區(qū)中加載 BOOT SECTOR 到內(nèi)存并執(zhí)行其中的代碼;
(4)通過 BOOT SECTOR 找到 NTLDR 文件,加載 NTLDR 到內(nèi)存中并執(zhí)行;
可能出現(xiàn)的問題及解決方法:
(1)MBR 損壞
現(xiàn)象 - 分區(qū)表不正確
現(xiàn)象 - 主引導(dǎo)代碼損壞
現(xiàn)象 - NTDETECT.COM 搜集硬件信息失敗
原因:
由于病毒或者其他人為的誤編輯導(dǎo)致引導(dǎo)硬盤的 MBR 損害;
解決方法:
利用Windows PE系統(tǒng)引導(dǎo)計算機后,使用 WinHex 工具對引導(dǎo)磁盤的 MBR 進(jìn)行修復(fù)操作;
(2)硬件配置不正確
現(xiàn)象:主板報錯;
原因:關(guān)鍵的硬件損害或者配置不正確,如內(nèi)存條損壞;
解決方法:要通過進(jìn)一步硬件故障檢測,針對不同硬件故障做不同處理;
(3)找不到活動分區(qū)
現(xiàn)象:按照設(shè)備啟動順序遍歷后,最后停在如下界面:
原因:可能是通過 fdisk 工具編輯磁盤分區(qū)表后沒有指定活動分區(qū);
解決方法:利用Windows PE系統(tǒng)引導(dǎo)計算機后,使用 WinHex 工具對引導(dǎo)磁盤的 MBR 的分區(qū)表進(jìn)行編輯,指定正確的分區(qū)表條目的屬性為活動分區(qū),然后重新引導(dǎo)操作系統(tǒng);
(4)NTLDR 文件缺失或損壞
現(xiàn)象:如下圖所示,輸出錯誤信息“NTLDR is missing”;
原因:NTLDR 文件被病毒刪除或損害,或者文件系統(tǒng)損壞,導(dǎo)致了 NTLDR 文件的損壞;
解決方法:可以通過系統(tǒng)恢復(fù)或者 Windows Server 2003 引導(dǎo)盤 NTLDR 文件;
(2)BIOS 配置不正確
現(xiàn)象:
原因:
解決方法:根據(jù)實際情況調(diào)整 BIOS 配置;
階段 2: Boot Sequence
當(dāng) Pre-Boot Sequence 的階段完成后,開始進(jìn)入 Boot Sequence 階段??梢苑窒乱韵虏襟E:
(1)NTLDR 將 CPU 工作模式從 Real-Mode 切換至 Protected-Mode,然后啟動文件系統(tǒng)驅(qū)動用于 支持計算機上的文件系統(tǒng);
(2)NTLDR 讀取 BOOT.INI 文件內(nèi)容,用于創(chuàng)建初始化引導(dǎo)選項,如果選擇的是 Windows Server 2003, Windows NT 之外的操作系統(tǒng),BOOTSECT.DOS 文件被讀入內(nèi)存,用于加載其他的操作系統(tǒng),Windows Server 2003 引導(dǎo)過程中斷;
(3)當(dāng)系統(tǒng)初始化引導(dǎo)選項被選中后,根據(jù)該引導(dǎo)項對應(yīng)的磁盤號和分區(qū)號定位啟動卷;
(4)從啟動卷中找到 NTDETECT.COM 文件,NTDETECT.COM 檢測系統(tǒng)基本的硬件配置信息并且把配置信息寫入注冊表中的 HKEY_LOCAL_MACHINE 鍵,NTDETECT.COM 識別的硬件包括并不僅限于 串口、并口、鍵盤、鼠標(biāo)、軟盤、SCSI 適配器 和 顯卡;
(5)將控制權(quán)交給 NTOSKRNL.EXE,進(jìn)入下一階段;
可能出現(xiàn)的問題及解決方法:
(1)啟動文件缺失或損壞
現(xiàn)象:
原因:NTLDR,BOOT.INI,BOOTSECT.DOC,NTDETECT.COM 或 NTOSKRNL.EXE中的一個缺失或損壞,導(dǎo)致操作系統(tǒng)無法正常啟動,一般情況下,通過錯誤信息能準(zhǔn)確的判斷是那個文件缺失或損壞;
解決方法:可以通過系統(tǒng)恢復(fù)自動修復(fù);
(2)BOOT.INI 配置不正確
現(xiàn)象:
原因:人為誤編輯 BOOT.INI 文件或者修改了磁盤配置;
解決方法:利用Windows PE系統(tǒng)引導(dǎo)計算機后,檢查 BOOT.INI 文件內(nèi)容,并根據(jù)實際情況重新配置;
(3)硬件無法識別或者配置不正確
現(xiàn)象:界面錯誤信息指向 NTDETECT.COM
原因:
解決方法:需要進(jìn)一步排查具體原因,可以通過逐個移除新加硬件和相應(yīng)驅(qū)動程序來定位;
關(guān)于此階段中一些重要的啟動文件說明:
BOOT.INI
用于在系統(tǒng)啟動過程中創(chuàng)建系統(tǒng)選擇菜單,每個系統(tǒng)項在文件中都有對應(yīng)的條目與之對應(yīng),記錄了該系統(tǒng)的啟動分區(qū)。BOOT.INI 文件一般為位于根目錄,具有系統(tǒng)屬性和隱藏屬性。
BOOTSECT.DOS
一個選項配置文件,在部署了多操作系統(tǒng)的環(huán)境中,如果選擇引導(dǎo)的是 Windows Server 2003, Windows NT 之外的操作系統(tǒng),這個文件會被加載。BOOTSECT.DOS 文件位于根目錄下,具有系統(tǒng)屬性和隱藏屬性。
NTDETECT.COM
用于檢測操作系統(tǒng)已經(jīng)安裝的硬件設(shè)備,并且將這些硬件設(shè)備的信息添加到注冊表。NTDETECT.COM 文件位于系統(tǒng)分區(qū)的根目錄下,具有系統(tǒng)屬性、隱藏屬性和只讀屬性。
NTOSKRNL.EXE
用于加載 Windows Server 2003 操作系統(tǒng),NTOSKRNL.EXE 文件位于 %windir%/system32。
階段 3: Kernel Load Sequence
當(dāng) Boot Sequence 的階段完成后,NTDETECT.COM 搜集的所有信息都傳遞給了 NTOSKRNL.EXE,Kernel Load Sequence 可以分下以下步驟:
(1)NTOSKRNL.EXE 加載并初始化;
(2)初始化執(zhí)行子系統(tǒng),啟動類型為 System-Start 的設(shè)備驅(qū)動程序;
備注:這里說的執(zhí)行子系統(tǒng),是指 Process And Thread Manager、Virtual Memory Manager、I/O Manager、Object Manager、Runtime Libraries 以及其他需要工作在內(nèi)核態(tài)的服務(wù)。
(3)為運行原生應(yīng)用程序準(zhǔn)備系統(tǒng)環(huán)境;
備注:這里說的原生應(yīng)用程序,需要解釋一下,Windows 操作系統(tǒng)提供兩種類型的 API,一種是我們通常所說的 Windows API,所有的 Windows 程序都需要依賴 Windows API,另一種是 Native API,一些 Windows 組件如內(nèi)核驅(qū)動程序 和 系統(tǒng)進(jìn)程(如csrss.exe)依賴 Native API 。
(4)運行 SMSS.EXE
關(guān)于此階段中一些重要的啟動文件說明:
NTOSKRNL.EXE 在這一階段的作用非常關(guān)鍵,它主要用于完成以下功能:
(1)加載 HAL.DLL (Hardware Abstraction Layer,是一個 Kernel-Mode 庫),用于提供低級別的硬件交互接口,Windows 組件和第三方的設(shè)備驅(qū)動程序依賴 HAL 與底層硬件設(shè)備通信;
(2)加載操作系統(tǒng)Control Set,Control Set 用于控制系統(tǒng)配置信息(如列出需要被加載的設(shè)備驅(qū)動程序);
(3)加載低級別的設(shè)備驅(qū)動程序(如磁盤驅(qū)動程序 disk.sys);
可能出現(xiàn)的問題及解決方法:
現(xiàn)象:
原因:硬件設(shè)備驅(qū)動程序不匹配,或者安裝了有 BUG 的安全、加密、過濾、第三方磁盤管理軟件、存儲管理軟件;
解決方法:知道是做了什么變更后出現(xiàn)的就比較好解決,回退操作,也可以借組于系統(tǒng)的 “最后一次正確配置”的高級選項;
階段 4: Kernel Initialization Sequence
Kernel Initialization Sequence 主要創(chuàng)建 HKEY_LOCAL_MACHINE\HARDWARE 注冊表項,運行高優(yōu)先級的子系統(tǒng)和服務(wù),可以分下以下步驟:
(1)一旦 Kernel 成功加載后,會創(chuàng)建 HKEY_LOCAL_MACHINE\HARDWARE 注冊表項,這個注冊表項用于指定系統(tǒng)啟動時的硬件設(shè)備的配置信息;
(2)初始化隨 Kernel 加載的設(shè)備驅(qū)動程序;
(3)運行高優(yōu)先級的子系統(tǒng)和服務(wù);
備注:高優(yōu)先級的子系統(tǒng)包括并不僅限于 POSIX Subsystem,OS/2 Subsystem。
可能出現(xiàn)的問題解決方法:知道是做了什么變更后出現(xiàn)的就比較好解決,回退操作,也可以借組于系統(tǒng)的 “最后一次正確配置”的高級選項;
階段 5: Logon Sequence
smss.exe(Session Manager System)是 Logon Sequence 中的一個非常關(guān)鍵的角色,可以分下以下步驟:
(1)創(chuàng)建系統(tǒng)環(huán)境變量;
(2)啟動 Win32 Subsystem 的 Kernel-Mode 部分(win32k.sys)和 User-Mode 部分(csrss.exe);
(3)啟動在注冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems 中列出的子系統(tǒng);
(4)smss.exe 運行 winlogon.exe(Windows Logon Manager);
備注:附上對 winlogon.exe 程序功能的說明:
winlogon.exe is a system service that enables logging on and off of users. It is also responsible for loading user profile.
It invokes GINA( Graphical Identification and Authentication) which displays login prompt. The GINA accepts the user login credentials and passes it back to Winlogon.
Winlogon then Starts Lsass.exe (the Local Security Authority) and passes login credentials to LSA. LSA determine which user account databases is to be used for authentication eg: Local SAM or Active Directory in case you are in a windows domain.
(5)用戶權(quán)限驗證通過后, smss.exe 運行 Service.exe(Services Subsystem,SCM);
(6)Service.exe 遍歷 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services,啟動類型為“自動運行”的服務(wù)。
可能出現(xiàn)的問題及解決方法:
(1)登陸失敗
現(xiàn)象:
原因:用戶權(quán)限信息驗證不通過;
解決方法:嘗試找回權(quán)限信息,注意是否是域控導(dǎo)致,終極解決方案就是利用 PE 進(jìn)入系統(tǒng)后用工具重置密碼;
(2)服務(wù)啟動失敗
現(xiàn)象:
原因:原因太多,不一一枚舉,cmd 輸入 eventvwr.msc 打開 System Log 查看具體詳情;
解決方法:根據(jù) System Log 記錄對癥下藥;
階段 6: Plug and Play Device Detection
Plug And Play Device Detection 是一個系統(tǒng)自動檢測新增 PnP 設(shè)備并為 PnP 設(shè)備自動查找驅(qū)動程序嘗試使之能夠正常功能的過程,可以分下以下步驟:
(1)檢測啟動過程中新增的設(shè)備,自動為設(shè)備分配系統(tǒng)資源;
(2)如果設(shè)備是 PnP 并且可以從對應(yīng)的 Driver.cab 文件中找到對應(yīng)的驅(qū)動程序,則提取驅(qū)動程序并自動安裝;
可能出現(xiàn)的問題及解決方法:
PnP 設(shè)備無法正常工作
現(xiàn)象:
原因:驅(qū)動程序不匹配;
解決方法:找到匹配的驅(qū)動程序并安裝;
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Windows 2000 server光盤啟動安裝過程詳細(xì)圖解
- Win2008中SqlServer2008 無法打開錯誤日志文件導(dǎo)致無法啟動的解決方法
- Windows Server 2012 R2 服務(wù)管理器自啟動功能的關(guān)閉方法
- Windows server利用批處理腳本判斷端口啟動tomcat的方法
- Dell?R630服務(wù)器安裝windows?server?2019服務(wù)器系統(tǒng)+制作U盤啟動+服務(wù)器配置
- windows server 2019 程序開機自啟動的幾種實現(xiàn)方法
- windows server 無法正常啟動修復(fù)的兩種方式
相關(guān)文章
Windows下maven安裝配置圖文教程(包括本地化倉庫配置)
這篇文章主要介紹了Windows下maven安裝配置圖文教程(包括本地化倉庫配置),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-05-05Windows2008 AHCI功能開啟方法(提升硬盤加速)
AHCI 全名Advanced Host Controller Interface,是 Intel 所主導(dǎo)的一項技術(shù),可以發(fā)揮SATA 硬盤的潛在加速功能,大約可增加30%的硬碟讀寫速度,所以在主板和硬盤都支持的情況下還是開啟該功能。2009-07-07windows7服務(wù)器上weblogic啟動失敗異常解決方法
windows7服務(wù)器上weblogic啟動失敗異常:/Java/jre6/lib/ext/QTJava.zip was unexpected at this time,接下來介紹詳細(xì)解決方法,需要的朋友可以參考下2013-01-01Windows下Apache+MySQL+PHP運行環(huán)境的安裝圖文方法
Windows下Apache+MySQL+PHP的安裝方法,剛開始學(xué)習(xí)php的朋友最好能自己掌握下,如果已經(jīng)會了不想花時間用在建設(shè)平臺上面,可以直接用一些php運行環(huán)境包,例如phpnow等。2010-04-04詳解IIS中URL重寫工具的匹配URL-規(guī)則模式(rule patterns)
rule patterns規(guī)則模式在IIS的URL重寫模塊中,是較為關(guān)鍵的設(shè)置。只有規(guī)則模式的URL匹配成功時,其他的規(guī)則才能起到作用。規(guī)則模式的匹配URL設(shè)置主要是匹配URL中的路徑部分,一般使用正則表達(dá)式和通配符對URL路徑進(jìn)行匹配,下面會仔細(xì)的說明2017-03-03Windows平臺的 PHP 報錯 Fatal error: Class COM not found in 的解決方法
這篇文章主要介紹了Windows平臺的 PHP 報錯 Fatal error: Class COM not found in 的解決方法,需要的朋友可以參考下2014-08-08通過網(wǎng)站統(tǒng)計或系統(tǒng)監(jiān)視器查看IIS并發(fā)連接數(shù)
如果要查看IIS連接數(shù),最簡單方便的方法是通過“網(wǎng)站統(tǒng)計”來查看,“網(wǎng)站統(tǒng)計”的當(dāng)前在線人數(shù)可以認(rèn)為是當(dāng)前IIS連接數(shù);如果要想知道確切的當(dāng)前網(wǎng)站IIS連接數(shù)的話,最有效的方法是通過windows自帶的系統(tǒng)監(jiān)視器來查看2013-01-01Windows Server 2019 遠(yuǎn)程控制的配置與管理圖文教程
這篇文章主要介紹了Windows Server 遠(yuǎn)程桌面功能,RDP協(xié)議,以及實驗拓?fù)鋱D與說明。再說明了如何配置遠(yuǎn)程桌面服務(wù),包括創(chuàng)建遠(yuǎn)程訪問賬戶,開啟遠(yuǎn)程桌面服務(wù),刪除默認(rèn)賬戶權(quán)限,最后驗證遠(yuǎn)程桌面服務(wù)2023-05-05