史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 作業系統操作技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-07-07, 05:35 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 幫你更好的瞭解windows啟動問題!!!

先來說說MBR(主啟始扇區)和系統啟始扇區:
主啟始扇區位於硬碟的首部,負責搜尋硬碟可以啟動的分區,對於DOS來說,它是由Fdisk產生的;而系統啟始扇區位於每個分區的首部,用來引導本分區相應的操作系統,它是由sys指令負責的。

其次來說說系統的啟動:
一般來說,Win98的啟動是由5個文件負責的:io.sys,msdos.sys,command.com,autoexec.bat和config.sys。
而Win2000和WinXP的啟動是由Ntldr和Ntdetect兩個文件負責。
Win98和Win2000/WinXP雙系統啟動的時候就比較複雜,是由OS Loaer來引導啟動,用戶可以選項啟動哪個系統,若用戶選項了啟動Win2000/WinXP,那麼就裝載Ntldr和Ntdetect兩個文件啟動到Win2000/WinXP下;如果用戶選項啟動Win98,那麼就裝載Bootsect.dos這個文件,Bootsect.dos文件其實就是Win98啟始扇區的鏡像。

這裡順便說一句:Win2000和WinXP裡都有 Ntldr和Ntdetect兩個文件,但是卻是不同的,如果你的雙系統裡缺少這兩個文件,你可以從Win2000或WinXP安裝碟裡的I386目錄下拷貝。如果是Win2000的話,可以採用Win2000或WinXP的都行;如果是WinXP的話,必須採用WinXP光碟裡的,用Win2000盤裡的這兩個文件是不能引導WinXP的,這一點在安裝包含Win2000和WinXP在內的多系統裡表現得尤為明顯,比如你重裝了Win2000以後,照樣無法啟動WinXP,原因就是你用Win2000的Ntldr和Ntdetec這兩個文件覆蓋了WinXP的Ntldr和Ntdetec這兩個文件。因此一定要注意!

再次來說說Windows的多操作系統引導管理工具:OS Loader。每一種多操作系統引導管理工具都有所不同,比如BootMagic和System Commander是常駐於MBR的;而OS Loader
則是常駐於系統啟始扇區的;而Linux的多系統引導工具LILO或GRUB既可位於MBR,也可位於系統啟始扇區。

以上是一些理論知識,既然都說清楚了,下面進入理論分析階段,看看格式化C碟重新安裝Win98後,為什麼不能雙啟動了:

其實原因很簡單,當你把C碟重新安裝Win98後,你的C碟中比以前少了四個文件,分別是:Ntldr, Ntdetec,Bootsect.dos和boot.ini(多系統啟動的配置文件)。但是在重裝之前僅僅制作備份這四個文件,重裝之後再拷貝回來,同樣是不能實現雙啟動的!原因在於你的C碟的系統啟始扇區已經被Win98給覆蓋了:它將以前的由OS Loader控制的系統啟始扇區變成了Win98的系統啟始扇區,因此儘管你拷貝回了那四個文件,因為啟始扇區依然沒有恢復成雙啟動時的樣子,所以你依然不能實現雙啟動。

知道了原因,解決起來才有了思路和目標。那就是想辦法恢復系統啟始扇區。方法有好幾種,

方法一:
可以在重裝Win98之前制作備份系統啟始扇區,需要用到DEBUG指令!
制作備份指令為:
a:\>debug
-L 100 2 0 1
-na:\OSLoader.REC
-rcx
CX:0000
:200
-rbx
BX:0000
:0
-w
-q
這時軟碟上產生的OSLoader.REC文件就是OS Loader啟始扇區的制作備份,如果不小心刪除了Bootsect.dos文件,可用類似的方法產生該檔案,只需把第三行的儲存文件的名稱改為Bootsect.dos即可。
只要把以上產生的OSLoader.REC文件重新寫如硬碟啟始扇區就可以恢復OS Loader的引導功能。指令為:
A:\>debug
-Na:\ Bootsect.dos
-L
-w100 2 0 1
-q
OS Lode功能表修復以後,如果C碟缺少Bootsect.dos文件,可以將上述產生的Bootsect.dos檔案拷貝到C碟下(注意:不同電腦上產生的Bootsect.dos文件不能通用)。

方法二:
用Win2000或WinXP的故障控制台來恢復啟始扇區:
進入故障控制台,輸入:
Fixboot c:
Exit
重新啟動電腦即可。

當然,這兩種方法都是在提前制作備份並恢復了以上四個文件的前提下才能成功實現找回雙啟動功能的,如果事先沒有制作備份這幾個文件,就比較麻煩了,簡單一點的方法是用Win2000或WinXP安裝碟修復的辦法,也就是假安裝的辦法;麻煩一點的辦法是從Win2000和WinXP的安裝碟裡先拷貝出Ntldr和Ntdetect兩個文件,在用DEBUG指令產生Bootsect.dos文件,然後用Win2000或WinXP的安裝碟進入故障控制台,產生Boot.ini文件(當然,如果對該檔案的語法十分熟悉的話,就像我師傅那樣當然也可以在Win98下用記事本自己根據機器的配置編寫一個Boot.ini文件),然後再在故障控制台裡修復啟始扇區,重新啟動,大功告成!

。 多系統具體安裝方法:
一, 98/2000/XP
1, 安裝98到C碟;
2, 安裝2000到D碟;
3, 安裝XP到E盤;
二, 98/XP/2000
1, 安裝98到C碟;
2, 安裝XP到D碟;
3, 制作備份C碟根目錄下的ntldr和Ntdetect.com;
4, 安裝2000到E盤;
5, 恢復ntldr和Ntdetect.com到C碟;
注意:不用進行啟動功能表的修復,因為2000安裝程序可以識別並增加包含XP系統在內的多啟動功能表。
三, 2000/98/XP
1, 安裝2000到C碟;
2, 全新安裝98到D碟;(先不修復啟動功能表,因為XP安裝程序可以修復)
3, 安裝Xp到E盤;
四, 2000/XP/98
1, 安裝2000到C碟;
2, 安裝Xp到D碟;
3, 全新安裝98到E盤;
4, 用XP的安裝碟修復多啟動功能表;
五, XP/98/2000
1, 安裝XP到C碟;
2, 制作備份XP引導文件ntldr和Ntdetect.com;
3, 全新安裝98到D碟;
4, 安裝2000到E盤;
5, 恢復XP的啟動檔案ntldr和Ntdetect.com到C碟;
六, XP/2000/98
1, 安裝XP到C碟;
2, 制作備份XP引導文件ntldr和Ntdetect.com;
3, 安裝2000到D碟;
4, 恢復XP的啟動檔案ntldr和Ntdetect.com到C碟;
5, 全新安裝98到E盤;
6, 用XP啟動碟修復多啟動功能表;
在XP下安裝98,當所有分區都是NT時,是不可以的。要求啟動分區一定要採用fat32格式才行,因為98是無法識別NTFS格式的文件系統的,會造成找不到引導文件而引導失敗,並且98也無法執行於NTFS格式的分區中。因此,主分區一定要採用FAT格式,用NTFS格式做主分區是無論如何也無法實現啟動98的,即使98是安裝於FAT格式的分區中也不行。因為Windows系統都會向啟動的主分區中中拷貝啟動檔案,在啟動時讀取這些文件,而當這些文件無法被讀取時,系統就啟動不了。

至於你說的將98安裝在非主分區的情況下格式化重裝98,這要比把98裝在主分區格式化重裝98要簡單的多,因為你這時格式化的不是主分區,多啟動需要的啟動檔案都完好無損,只要重新安裝98就行了。比如你的C碟安裝的是XP,D碟安裝的是98,實現了雙啟動後,你不小心格式化了D碟,也只是在啟動的時候進不了98,但是雙啟動功能表還在,啟動98需要的啟動檔案也還在C碟的根目錄下,只是找不到D碟上的98系統無法啟動而已,你只要在DOS下重新安裝98到D碟原來的路徑下就可以了,不需要作任何的修復工作。這一點我做過試驗,絕對沒有問題。因此,無論你的98是不裝在主分區,都不需要制作備份和恢復IO.sys等98需要的啟動檔案,因此你的那個什麼必須裝在固定位置的說法根本不具有什麼意義,因為根本就用不到,你說呢?

至於雙硬碟安裝多系統是很容易的事,甚至比單硬碟安裝多系統還要容易,只要注意並妥善解決磁碟代號的交錯問題,是什麼問題也不會有的。更方便的是你可以通過在BIOS中設定啟動硬碟的順序來做到完全分離兩個或多個操作系統,使之毫不相互影響,這是單硬碟安裝多操作系統時沒有的優點。至於所說的修復雙引導會失敗的問題,我不太清楚具體是如何分區,如何安裝,如何操作的,因此不敢妄下結論。

再來說說多系統引導的原理,這有利於更好的理解多系統啟動的奧秘:

一, 多硬碟多系統引導原理:
當系統電源自檢通過以後,BIOS將根據用戶設定的啟動順序從軟碟,硬碟或者光碟啟動。以硬碟為例,系統BIOS將硬碟分區表讀入記憶體,然後將控制權交給主啟始程序,然後檢查分區表狀態,尋找活動分區,最後,由主啟始程序將控制權交給活動分區的引導記錄,再由引導記錄載入操作系統。
對於Win98而言,分區引導記錄將負責讀取並執行IO.sys。首先啟始化一些重要的系統資料,然後就會出現我們熟悉的藍天白雲,這時候,Win98將繼續進行DOS和GUI(圖形用戶界面)部分的引導和啟始化工作。如果此時系統中安裝有引導多操作系統的工具軟體,通常硬碟分區表將被替換成該軟體的引導程式碼,這些程式碼將允許用戶選項一個操作系統,然後再讀取該操作系統的基本程式碼。
對於Win2000和WinXP而言,是由NTLDR這個程序來負責將其裝入記憶體,或者讓用戶選項非WinNT/2000/XP的操作系統。引導裝入程序和多啟動引導都是由一個具有隱含屬性內容的啟始化文件,也就是我們熟悉的Boot.ini來控制的。在Boot.ini主要包含了控制電腦可用操作系統的設定,引導預設操作系統設定,以及等待時間等信息。
明白了啟動的順序和原理,我們就可以尋找控制啟動的方法了:從啟動順序的描述中我們可以看出來,我們可以加以干預的地方只有兩處:
1, 設定物理盤的引導次序;
2, 修改主啟始程序分區表;

二, 單硬碟多系統引導原理:
如果只有一塊硬碟(RAID容錯式獨立磁碟陣列同樣被系統認為是一塊硬碟),想在上面安裝多個互不干擾的多操作系統實現多系統啟動,就必須採用修改主啟始程序和分區表的方法來實現,一般有兩種途徑:
1, 修改硬碟分區表,在引導記錄的最後用JMP指令跳到自己的程式碼上來,從而實現控制電腦的引導程序;
2, 修改主分區第一個扇區的引導程式碼,以實現多系統啟動。

Windows的多啟動啟始程序OS loader就是安裝在系統啟始扇區的,它不改變MBR的資料,MBR仍然指向被啟動主分區,而OS loader就是在這個被啟動主分區的系統啟始扇區中的,它來實現控制多啟動的工作,以用戶的需要來選項裝載啟動檔案。Bootsect.dos的具體內容我也不清楚,也許就是一個游標,指向啟動檔案,說不好,同樣DEBUG指令我也不是很熟,我接觸電腦的時候早就很少使用DOS了,更不用說DEBUG這種指令了,看看有沒有高手來給解釋一下。
WindowsXP 電腦的啟動程序

電腦的啟動程序可以分為兩個階段。一個是電腦自身的啟動程序,另一個階段就是操作系統的啟動。
1 電腦啟動程序
整個電腦啟動程序從本質上分為以下幾個步驟:
1)主機板得電後,就開始了一個稱作「帶電自檢(POST)」的程序。該程序由主機板上的 ROM 晶片控制,POST 程序主要是對一些很重要的硬體設備進行測試。
2)POST 檢測程序首先測試顯示卡。
3)當顯示卡檢測畫面閃過後,接著開始一般的 POST 檢測程序,並出現主 POST 界面信息,它類似於如圖所顯示的界面。
BIOS 的顯示畫面開機時............
記憶體測試過後............

接著度硬體 硬碟一一找到....
cdrom 也偵測無誤.........


4)POST 檢測電腦的處理器,並顯示處理器的版本。
5)當對處理器的檢測結束之後,POST 就將對系統的檢測控制權轉交給 BIOS。BIOS 主要用於在載入任何軟體之前對電腦進行控制,以及控制電腦連接設備的配置設定參數。在電腦的啟動程序中按下 Delete 鍵後,就會顯示 BIOS 設定信息,這時可對其設定參數進行修改。
6)如果沒有進入到 BIOS 設定界面,則 BIOS 會繼續檢測電腦記憶體。 7)接下來,BIOS 檢測硬碟、光碟、軟式磁碟機等設備與電腦的連接情況。若某個連接不存在,或者連接發生變動,則系統啟動程序暫停。必須進入到 BIOS 設定信息界面中進行必要的修改。
8)如果一切正常,則 BIOS 顯示一個系統資訊摘要,報告系統狀態。
9)接下來,BIOS 會引用一段特殊的程序程式碼,該程序段將尋找一個可引導的磁牒分區,並首先從該驅動器上啟動,以符合 BIOS 中的引導分區設定。
10)當 BIOS 找到可引導磁牒分區後,就會將該磁牒的硬碟分區表(MBR)中的程序載入到電腦記憶體中,然後 BIOS 將電腦的控制權轉交給該程序。現在,整個啟動程序就由電腦啟動階段開始進入 Windows 啟動階段。
2 Windows 啟動程序
MBR 實際上是一個小程序,通常情況下,MBR 都是位於硬碟的第一個扇區。如果 MBR 存儲在軟碟上,那麼就可以修改 BIOS 中的配置資訊,指定系統從軟碟上尋找 MBR 程序。實際上 MBR 在 WindowsXP 中只有一個作用,即將一個稱為 NTLDR(NTLoader)的程序載入到電腦記憶體中。NTLDR 文件首先將電腦轉換為一種平面記憶體模型,然後讀取 BOOT.INI 文件中的內容。BOOT.INI 文件包含了電腦上不同啟始扇區中的信息。電腦硬碟上的每一個分區都有自己的啟始扇區,即該磁牒分區中的第一個扇區。當電腦中安裝了一個操作系統後,那麼該操作系統就會在其安裝的磁牒分區中新增自己的啟始扇區。啟始扇區的作用當然就是啟動 Windows 了。
如果電腦上有多個可引導的磁牒分區(例如,電腦配置成雙啟始系統的情況),那麼 NTLDR 會利用 BOOT.INI 文件中的信息在螢幕上顯示出一個選項功能表。可以在其中選項啟動哪個操作系統。當選項了某個版本的 WinXP 操作系統之後,NTLDR 程序又會向記憶體中載入 NTDETECT.COM 的程序。
注意 如果電腦上只安裝了一個 WindowsXP 操作系統,那麼 NTLDR 就不會顯示不同操作系統的選項功能表,而是直接將 NTDETECTCOM 程序載入到電腦記憶體中。
接下來將由 NTDETECT.COM 程序完成整個電腦硬體檢測。當 NTDETECT.COM 檢測完電腦上安裝的某個硬體設備的信息之後,它就會將該信息傳回 NTLDR。這時,NTLDR 開始載入用戶所選項的某個版本的 Windows XP 操作系統。NTLDR 首先要在 Windows XP 目錄下的 System32 資料夾中找到一個名為 NTOSKRNL 的文件,才能載入 Windows XP。因為 NTOSKRNL 文件是 Windows 操作系統的啟動程序,或者說是 Windows 操作系統的「內核」。當記憶體中載入了 NTOSKRNL 文件之後,Windows 啟動程序的控制權就轉移到另一個也被載入的 HAL.DLL 程序中了。HAL.DLL 程序主要用於控制 Windows 的硬體抽像層,所謂硬體抽像層就是位於 Windows 和電腦硬體之間的一個中間層,它可以保證在 WindowsXP 環境中的系統穩定性。
注意 如果在啟動選項功能表中選項了 Windows XP 之外的其他操作系統(如 DOS、Windows98 等),那麼 NTLDR 將向記憶體中載入一個名為 Bootsect.DOS 的文件內容,然後強迫電腦熱啟動。這時,系統會執行 Bootsect.DOS 中的程序程式碼,以模仿載入了關於 DOS 的 MBR 程序的電腦啟動程序。
接下來,由 NTOSKRNL 文件負責剩下的 Windows 啟動工作。首先,它向記憶體中載入幾個低層次的系統驅動程式。然後,再將組成 WindowsXP 操作系統內核的其他文件載入到電腦記憶體中。接著,Windows 判斷電腦上是否配置了多個硬體配置文件。如果有多個硬體配置文件,則螢幕上會顯示一個包括了所有硬體配置文件的功能表供用戶選項。如果只有一個硬體配置文件,則不顯示該功能表,Windows 載入預設的配置文件。當 Windows 驗證了你使用的配置文件後,就會接著為電腦上的所有硬體載入設備驅動程式。這時,就會看到 WindowsXP 的歡迎界面。最後,計劃工作中安排的所有自動啟動服務均開始啟用。一旦服務啟動後,就能看到 Windows 登入界面了。

簡要重述

無論是用哪種方法啟動 Windows,其啟動工作都是一個很複雜的程序。通過前面講述的內容,相信大家已經對 Windows 的啟動程序有了一個基本的瞭解,下面再來簡單地回顧一下整個 Windows 啟動工作:
1)接通電腦電源。
2)POST 檢查系統中的某些硬體後,將檢測控制權轉交給 BIOS。
3)BIOS 繼續檢查系統中剩下的硬體設備,並套用 BIOS 列表中的配置資訊,然後將 MBR 載入到電腦記憶體中。
4)MBR 將 NTLDR 載入到記憶體中,同時將檢測控制權轉交給 NTLDR。
5)NTLDR 讀取 BOOT.INI 文件中的內容,同時根據需要顯示可選操作系統的功能表,這時,需要從中選項一個操作系統來引導電腦。
6)NTLDR 將 NTDETECT.COM 文件載入到記憶體中。
7)NTDETECT.COM 接著對剩下的系統硬體進行檢測,並將得到的硬體信息傳回給 NTLDR。
8)NTLDR 繼續向電腦記憶體載入 NTOSKRNL。
9)NTOSKRNL 載入剩餘的 Windows 系統檔案、設備驅動程式,並啟動 Windows計劃工作中指定的自動啟動服務。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2003-07-09, 02:15 AM   #2 (permalink)
註冊會員
榮譽勳章
UID - 48537
在線等級: 級別:19 | 在線時長:446小時 | 升級還需:34小時級別:19 | 在線時長:446小時 | 升級還需:34小時級別:19 | 在線時長:446小時 | 升級還需:34小時級別:19 | 在線時長:446小時 | 升級還需:34小時
註冊日期: 2003-03-15
VIP期限: 2007-03
文章: 183
精華: 0
現金: 302 金幣
資產: 302 金幣
預設

相當不錯的資訊!可有助於恢復系統跟安裝多重系統
THX YOUR INFO
disoniner 目前離線  
送花文章: 76, 收花文章: 28 篇, 收花: 117 次
舊 2003-07-12, 05:12 AM   #3 (permalink)
no1power
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

多謝賜教
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
舊 2003-07-16, 01:36 AM   #4 (permalink)
jonher
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

非常棒
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 02:44 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1