史萊姆論壇

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

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

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

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

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-05-08, 11: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 金幣
預設 多系統啟動表單的終結方案 - 2K/XP自帶的OS Loader!

前言

實現多重啟始的工具很多,如System Commander,bootstar, Linux的lilo,和WindowsNT自帶的OS Loader等等。其原理不外乎兩種:一是修改MBR(Master Boot Record),在MBR的最後用jmp指令跳到自己的代碼上來,從而控制引導過程;另一種方法是修改主分區裡第一個扇區的引導代碼,來實現多重啟始。

  MBR(即主引導記錄),指的是硬碟的第0個柱面(cylinder)的第0磁道(track)的第0扇區(sector)。主分區,對於dos,windows等使用fat文件系統的操作系統來說,就是C碟; 在Linux下,則是指root文件系統所在的分區。

  System Commander和lilo用的是修改MBR的方法;OS Loader則用後一種方法。修改MBR會造成嚴重的相容問題,可能被某些殺毒軟體誤認為是病毒殺掉。我不喜歡亂改MBR,所以一般用OS Loader。下面以linux為例說說怎麼利用OS Loader來實現多重啟始:

一、安裝OS Loader:假如想在硬碟上同時裝上Windows98,windowsNT和Redhat Linux,你可以先裝Windows98,然後安裝WindowsNT。WindowsNT裝完以後,OS Loader也就自動裝上了。如果這個順序有錯誤,你需要用到附件裡的程序和指令碼,它可以為你安裝上OS Loader,這時你的系統其實已經可以進行多重啟始了。

二、獲取各種OS的引導文件:在OS Loader再加一些操作系統,需要在裝完WindowsNT以後想辦法把其它OS的引導代碼讀出來,存到文件裡去,也就是要把主分區第一扇區的512字元讀出來。在DOS下,這可以用debug或是norton diskedit來做,也可以自己寫一個小程序來實現。

OS Loader安裝時所必須的文件如下:
=
= Ntldr - 隱藏唯讀檔 - 載入操作系統
= Boot.ini - 隱藏系統檔案 - 通常在x86電腦上建立操作系統載入啟動表單
= Bootsect.dos - 隱藏文件 - 在另一個操作系統被選擇是被Ntldr載入 =
= Ntdetect.com - 隱藏唯讀檔 - 通常檢查有效硬體並建立硬體列表
= Ntbootdd.sys - 只用在從SCSI硬碟啟動的系統上
=


其實裝完OS Loader以後系統就已經有了一個bootsect.dos,
這個就是win9x的引導文件。下面用debug的方法通常不會用到。

debug

-R cx

cx 0000

200//設置讀取長度CX為512字元

-L 100 2 0 1

//讀取主啟始扇區至記憶體ds:100處

-N bootsect.w98 //假設你是在Win98下,

將啟始扇區文件存為bootsect.w98

-W 100//寫bootsect.w98文件

-Q//退出Debug程序

Linux裡有一個現成的實用程序可以用來直接讀寫扇區。

安裝Linux有兩點要注意的地方。

  第一:在安裝lilo的時候,一定不要把lilo裝到MBR裡去,因為現在是想用OS Loader來做多重啟始。應該把lilo裝到主分區的第一扇區裡(注意,這裡的主分區指的不是C碟,而是安裝Linux的那個分區)。

  第二:應該做一張啟動軟碟(bootdisk),以便你能夠進入到Linux裡。因為現在lilo沒有裝在MBR裡,暫時還不能直接從硬碟引導到Linux。在Linux中則按下面方法可得到Linux的啟始扇區文件:

以Red Hat Linux 6.0為例:

#dd if=/dev/hda3 of=bootsect.lnx bs=512 count=1

這裡假設你Red Hat Linux LILO安裝在/hda3上,啟始扇區文件存為bootsect.lnx。

以FreeBSD3.2為例:

#dd if=/dev/rwd02 of=bootsect.bsd bs=512 count=1

這裡假設你FreeBSD安裝在第二個基本分區上,啟始扇區文件存為bootsect.bsd。

將Linux啟始扇區文件存入DOS分區

按上述方法獲取的Linux啟始扇區文件會存放在Linux分區上,NT OS Loader無法直接讀取,需要將它儲存在NT OS Loader所在的分區上,一般是C碟。

以Red Hat Linux 6.0為例:

#mount -t msdos /dev/hda1 /mnt

#cp bootsect.lnx /mnt/bootsect.lnx

以FreeBSD3.2為例:

#mount -t msdos /dev/wd0s1 /mnt

#cp bootsect.bsd /mnt/bootsect.bsd

三、修改boot.ini文件

開啟Boot.ini文件,加入你想要引導的操作系統引導記錄,即可大功告成。如:

[boot loader]

timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT

[operating systems]

C:\bootsect.w98="Microsoft Windows 98"
C:\bootsect.lux="Red Hat Linux 6.0"
C:\bootsect.bsd="FreeBSD Release 3.2"

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect

四、附件:

本文件為DOS下的RAR自解文件,下載後改名為.exe,可以在dos或windows下自解壓到c:\os目錄下(其中install指令碼基於c:\os目錄新增),大家可根據自已的實際情況修改。

本文件只提供了新增OS Loader表單的功能,若要啟動其它OS,再次強調:請注意不要將其安裝到MBR,只將它的引導模塊安裝到自身份區。,然後將其第一個扇區(512字元)提取來存成文件,加入boot.ini即可。
MS的osloader比較有趣,先出的版本不能引導後出的os,
所以.net server裡面帶的os loader最好用
可以引導MS以前的所有OS...

另外如果先裝xp,後裝2k, 造成xp不能啟動
只要把xp安裝碟的\i386\ntdetect.com和ntldr放到C碟即可
其他類推.

2K的winnt.exe,用於寫啟始區,ntdetect.com和ntldr正是XP的,.net沒有正式版,但我想XP的文件應該可以引導.NET,結果不行,我試過..
net的 基於rc2 en版本 ,中文表單還要一個bootfont.bin,
補充一些工具&資料給大家 :

1.工具:
補充一個自動修改boot.ini的小工具,這下不用手工去寫那個512K的引導文件了!
最新的bootpart 2.5版本。
BOOTPART 2.50 : Boot Partitition for
Windows NT/2000/XP. New : support LBA large disk
Easy tool to add a partition to the
Windows NT multi boot menu (for example,
OS/2 boot manager or Linux partition).
NEW : Easy addition of Dos6.22 and Win95 in WinNT
menu, repair the WinNT boot sector.
Small freeware from G. Vollant (WinImage).
Web : http://www.winimage.com/bootpart.htm

該版本全面支持win2k/xp,完善支持Linux,突破大硬碟限制,可以在xp的命令提示字元視窗下流暢執行。強烈推薦。

使用方法詳解:(可以打bootpart /?看幫助)

bootpart :列出各分區的使用情況,並用數字標明分區號。
bootpart [分區號] [檔案名] :將操作系統所在分區的啟動信息儲存為一個文件,放在當前目錄中。若加再上一個操作系統的名稱則將啟動項增加boot.ini的啟動表單中,再加LBA參數,則突破lilo的大硬碟限制。這點對恢復linux的啟動最有用。例:bootpart 8 LBA bootsect.lnx Redhat Linux 意思為:將linux所在分區(本人的為8)的啟動信息儲存為bootsect.lnx文件,並加入到多啟動表單中,顯示名稱為「Redhat Linux」。
bootpart List :列出你多啟動表單的項目。
bootpart dos622 boot:C: 重建dos6.22的啟動信息。(若你不懂得如何安裝dos6.22系統,你只要將dos6.22的系統檔案複製到C碟中,執行該命令就等於安裝了。)
bootpart win95 boot:C: 重建win95或win98的啟動信息。
bootpart winnt boot:C: 重建winnt/win2k/xp/net的啟動信息。

呵呵!這回不怕各種系統啟動,資料信息丟失了。

2.考資訊:
http://www.tldp.org/HOWTO/mini/Linux+NT-Loader.html
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2003-05-13, 09:51 PM   #2 (permalink)
oya99999
榮譽勳章

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

又學到新知識,謝謝
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
舊 2003-06-20, 03:01 PM   #3 (permalink)
長老會員
榮譽勳章
UID - 18296
在線等級: 級別:17 | 在線時長:387小時 | 升級還需:9小時級別:17 | 在線時長:387小時 | 升級還需:9小時級別:17 | 在線時長:387小時 | 升級還需:9小時級別:17 | 在線時長:387小時 | 升級還需:9小時級別:17 | 在線時長:387小時 | 升級還需:9小時級別:17 | 在線時長:387小時 | 升級還需:9小時級別:17 | 在線時長:387小時 | 升級還需:9小時
註冊日期: 2002-12-27
文章: 339
精華: 0
現金: 16000 金幣
資產: 21000 金幣
預設

不簡單,提供穩當的多重開機選單,得好好研究。
green7 目前離線  
送花文章: 879, 收花文章: 28 篇, 收花: 44 次
舊 2003-06-21, 08:37 AM   #4 (permalink)
長老會員
 
羅迪 的頭像
榮譽勳章
UID - 2782
在線等級: 級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時
註冊日期: 2002-12-06
住址: 香港
文章: 1022
精華: 0
現金: 9229 金幣
資產: 365927 金幣
預設

謝謝你的指導,.....
__________________
羅迪 目前離線  
送花文章: 2188, 收花文章: 423 篇, 收花: 1789 次
舊 2004-10-27, 08:15 PM   #5 (permalink)
管理版主
 
superxboy 的頭像
榮譽勳章
UID - 21259
在線等級: 級別:55 | 在線時長:3359小時 | 升級還需:1小時級別:55 | 在線時長:3359小時 | 升級還需:1小時級別:55 | 在線時長:3359小時 | 升級還需:1小時級別:55 | 在線時長:3359小時 | 升級還需:1小時級別:55 | 在線時長:3359小時 | 升級還需:1小時
註冊日期: 2003-01-02
住址: 北極
文章: 10335
現金: 130 金幣
資產: 844182589 金幣
預設

好文章..
__________________
http://images.gamebase.com.tw/mybase/32/05/281/happy_card_000002776.jpg
愛的時候,可以不公平;不愛了、分開了,總該公平了吧

重情重義重粉味 愛台愛鄉愛查某
superxboy 目前離線  
送花文章: 3254, 收花文章: 4835 篇, 收花: 21651 次
 



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

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


所有時間均為台北時間。現在的時間是 02:43 PM


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


SEO by vBSEO 3.6.1