現今有許多系統引導程序,例如bootstart,bootselect,OS bootmanager...當然少不了 著名的System com-mander 。但是這些程序有的要占用一個主引導區,有的每次開機的時 候都要寫一次MBR,總之使用雖然挺方便但是很容易被一些殺毒軟件認為MBR有病毒(我曾 經使用SC4.0後用KV300殺毒,結果KV300“發現”MBR有病毒,殺掉後SC4就有問題了)。 而且每次開機都寫一遍mbr,自己心裡總覺得有點不舒服。於是希望使用一種安全又沒有 上述軟件缺點的多系統引導程序,以滿足我既希望使用MS的系統,又想嘗試Unix的穩定和 強大的願望。 微軟的Win NT 本身就附帶了一個很好的多系統引導程序--OS Loader。 1.使用OS Loader的好處 它不單獨占用一個主區,而且每次啟動時不需要重寫MBr,增加啟動的item也很方便。 因此我選擇了它。但是它有個比較大的毛病--當新安裝了其他類型的系統,它是不能夠 檢測得到,而且也不會自動增加相應的item .飧鑫侍馕彝ü慰妓廄寤狟BS上面的方 法結合個人的實踐已經得到了比較滿意 的解決。可以實現MS OS+Linux+BSD+Unix多啟動。如果要增加其他類型的系統的話,也相當容易。 2.如何安裝OS Loader實現多啟動 首先你不需要真正地安裝Winnt 4.0/5.0,你現在需要的是只是OSLoader這能進行多引 導的部分。方法如下: 在windows下的命令行提示符下,假設你的光驅是I:(我的光驅就是I:)。可以按照下面的 做法去做(#號是注釋) " md c:\ntboot #建立一個專門的目錄 md c:\ntboot\system32 #建立放置ntoskrnl.exe的目錄 md c:\ntboot\winnt #放置winnt.exe和dosnet.inf的目錄 copy I:\i386\winnt.exe c:\ntboot\winnt copy I:\i386\dosnet.inf c:\ntboot\winnt copy I:\i386\ntldr c:eXPand I:\i386\ntoskrnl.ex_ c:\ntboot\system32\ntoskrnl.exe #解壓縮NT的核心 copy I:\i386\bootfont.* c:\ #拷貝文字文件以便在開機是可以顯示中文 " 你或者將上面的命令行寫成批處理文件來自動完成。復制好後,退到純dos7下,運行 lock命令,要不然安裝OS Loader的時候一定會報錯而當機。接著運行 " c:\ntboot\winnt\winnt.exe /b" 。隨後它會報錯,不理會它。 按F3退出。這時候OS Loader已經將MBR重些了一次。下一次啟動的時候就會出現OS Loader的啟動畫面。不過 你還得自己手動改C:\boot.ini的內容以適合你的要求。 3.哪些文件是必須的 要使用OS Loader,必須的文件只有4個: ntldr、dosnet.inf、winnt.exe、 ntoskrnl.exe。在上面安裝的過 程中可以看得很清楚,總共才不到1MB。如果你嫌麻煩,可以到我的主頁上下載安裝文件 (是我制作好的標准 安裝程序)。另外,你如果使用的是NT 4.0中文版,那麼你可以將bootfont.bin文件也拷 貝到c:\,這樣啟動 菜單就可以顯示中文。 4.如何使用 一般在第一次使用時,先退到dos下,進入ntboot\winnt目錄,不過注意在執行 winnt.exe之前必須對分區進 行解鎖,也就是鍵入“lock”命令,否則一運行winnt.exe就會導致當機。Lock完成以後 ,鍵入"winnt/b",安 裝程序會報錯,無須理會它,按f3推出即可。OS Loader已經重寫了MBR,並且可以引導你 的操作系統了。不過 它只能夠識別到Dos6.22或者Windows(我估計是通過檢查c盤的io.sys, command.com,msdos.sys 等文件來識 別的)。要想引導其他類型的系統還要費些工夫。 5.多引導的原理 根據水木清華BBS上面的相關文章,結合我自己的實際經驗和理解,我認為0OS Loader 的原理是:把來自其它 操作系統的啟動扇區信息變成一個文件,大小一般是512字節,在啟動OS Loader 的時候, 它讀入這文件並啟動 選擇的操作系統,也就是說,這個系統或是不同模式的Windows NT,或是任何其它類型的 操作系統,例如Linux 、FreeBSD。 根據以上原理,我們可以知道要引導多系統的話,關鍵是如何獲取相應的啟動扇區前 512字節的啟動信息。一 般對於Linux等類Unix系統,可以用dd 命令來獲取。而對於Windows/Dos/Nt,一般沒有類 似dd這類命令。如果 是想獲取不是c盤的啟動信息,可能要進入Linux等系統下面,用dd命令來獲取。 6.如何引導其它類型的系統的實例 a.Linux 系列 我的方法是用PQmagic4.0建立一個Linux ext2主分區並激活為活動分區,然後建立一個 Swap分區。重新啟動 後用RedHat 的安裝光盤來啟動,正常安裝Linux。注意:在選取安裝LILO在MBR還是它所 在的主分區的時候, 一定要選安裝在Linux分區上!否則LILO將會代替OS Loader。 安裝結束後,進入Linux的命令行,然後先將C盤掛上。方法如下: #mkdir /mnt/c #建立一個c文件夾,C盤准備掛在c上 #mount -t vfat /dev/hda1 /mnt/c #將C盤掛在c上 ,不過是否hda1則要看你的c盤 是不是第一個主分區 #如果是第二個主分區就是hda2,如此類推 然後,確定你的Linux分區(指Ext2分區)是那個設備,例如hda2。如果你不知道,可 以鍵入" mount"看看就 可以了。弄清楚後,假設你的Linux 分區是hda2 ,在命令行下輸入: #dd if= /dev/hda2 of=/mnt/ntboot.lnx bs=512 count=1 對以上命令我想解釋一下,它的大致意思是: dd if= Linux分區的盤號(或者對應的設 備) of=啟動扇區文件 存放的路徑 bs=對應扇區前?字節 count=1 。在本例中Linux分區的盤號是/dev目錄下的 hda2 ,將啟動扇區前51 2字節存成名稱為ntboot.lnx,在/mnt目錄下的文件。 然後輸入: #cp /mnt/ntboot.* /mnt/c 把扇區文件拷貝到C盤下面。這樣獲取啟動扇區前512字節信息的任務就完成了。Reboot 後在進入C盤,再用回 Pqmagic將C盤激活成活動分區,並且在c:\boot.ini裡面添加一下信息: " c:\ntboot.lnx = "RedHat Linux 6.0 " " 注意它的格式,它是增加在[Operating System]下面的。 B.FreeBSD 系列 在水木清華的BBS上面,關於引導FreeBSD的方法大致是做一張Linux的引導盤,含有 LILO的。然後用軟盤上 的LILO啟動FreeBSD,獲取軟盤上的扇區文件才能正常引導等等(由於一時間找不到相關 資料,所以這些只是 憑印象的記憶,可能有誤)。而根據上面的原理,我認為完全可以仿照獲取Linux啟動扇 區的方法來獲取BSD啟 動扇區信息。只是要小心分辨到底在BSD下面那個是它的引導分區。 具體做法是: 正常安裝FreeBSD,在選取將引導程序安裝的位置和方式的時候,注意一定不要選安裝 在MBR,選第三項。目 的也是和上面的一樣,讓MBR由OS Loader來占有。 重新啟動的時候進入BSD(如果在安裝FreeBSD的時候你沒有將它激活為活動分區的話, 你只能通過軟盤啟動 FreeBSD了),也是使用dd命令。不過相對於Linux對於硬盤命名而言,FreeBSD不是用had 或者hdb等命名方法。 它用wds0,wds1等命名。在本例中FreeBSD的分區是wds03。先將c盤掛上,然後所以輸入: #dd if =/dev/wds03 of=/mnt/ntboot.bsd bs=512 count=1 #cp /mnt/ntboot.* /mnt/c 最後Reboot,進入c盤,用Pqmagic將C盤重新激活成活動的,並且在boot.ini中增加相 應的item即可。可以說 安裝FreeBSD並且實現多引導並不象水木清華BBS上講的那麼復雜,不過也許是因為我使用 的FreeBSD版本較高, 以及我是在FreeBSD下獲取啟動扇區的原因吧。 7.關於使用OS Loader的一些FAQ a.如果想引導Dos6.22如何做? 可以這樣做,做一張Dos6.22啟動盤備用,另外先備份c:\bootsect.dos為ntboot.w98。 然後在進入windows之 前按F8,進入第七項。啟動硬盤上的Dos6.22這是c盤上的windows的dos7的io.sys等文件 都會變成了後綴是.w40 的文件了。這是重新啟動,用剛才的軟盤啟動。然後在A:下sys c:。進入C盤的 ntboot\winnt目錄,運行"winnt /b",這時候生成的c:\bootsect.dos就是Dos6.22的啟動扇區文件(剛才的ntboot.w98就 是Win98的啟動扇區文 件)。同樣將c:\bootsect.dos 備份成ntboot.dos。然後在boot.ini中添加相應的item。 B.怎樣修改默認的啟動選項 編輯c:\boot.ini,注意在[Boot Loader]下面有一個Default=?的行,修改?成為你希望 作為默認系統所對應 的啟動扇區文件即可。例如我改成:Default= c:\ntboot.lnx ,對應就是啟動時默認進 入Linux。 C.對於大硬盤如何解決多系統的安裝 這是個挺麻煩的問題,一般對於>1024柱面,采用LBA模式的硬盤是不能夠將Linux 或者 FreeBSD等系統安裝在 超過8.4GB之後的。因為由於這個限制使LILO或者Boot Easy失效或安裝失敗。一般盡可能 將要啟動的系統安裝 在<1024柱面的空間。詳細的解決方法可以參考我另外一篇文章《10.1G硬盤安裝多系統手 記》。 8.後記 通過以上方法,我已經成功地安裝了Windows9x/NT /dos6.22 ,Linux,FreeBSD等系, Unix也嘗試過,不過由 於Linux等也和Unix差不多,所以沒有長期使用Unix。在Win95/98, Win NT4.0/5.0 中英 文版,Dos6.22, Red -Hat Linux 5.0/5.1/5.2/6.0,FreeBSD 2.2.6/3.0/3.2上通過。現在給出我一直使用的 boot.ini內容給各位參 考#這個文件很簡單,但是包含了三類系統。盡管BSD和Linux都是類Unix,但是還是不同。 [Boot Loader] Timeout=30 Default=C:[Operating Systems] c:\ntboot.lnx = "RedHat Linux release-6.0 " c:\ntboot.bsd = "FreeBSD stable ver 2.2.6 " C:\ = "MS Windows 98 4.10--1998" 對於最龐大的多系統引導文件可以如下: [Boot Loader] Timeout=30 Default=C:\ [Operating Systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT 中文工作站4.00" multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT 中文工作站4.00 [安全模式 ]" /basevideo /sos multi(0)disk(0)rdisk(0)partition(2)\WINNT="windows 2000 專業版" multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 2000 專業版 [安全模式]" /basevideo /sos C:\ ="主引導區記錄" C:\ntboot.w98="Microsoft Windows 98" C:\ntboot.dos="MS-DOS 6.22" /Win95DOS C:\ntboot.bsd="Free BSD 2.2.6" C:\ntboot.rh6="RedHat Linux 6.0" C:\ntboot.s35="Slackware Linux 3.4" 總共10個item,屏幕幾乎都被占滿了,也真夠嚇人的。我想即使是要求很高的用戶也會 對OS Loader滿意吧。 因為System Commander能做的它也基本上能做,關鍵是不會去搶MBR,不用次次都擦寫MBR 。如果配合NT 中文 版的OS Loader V4.00,那麼就可以在啟動菜單顯示中文,這可是其它的引導軟件沒有的 優點啊! 關於使用NT OS Loader來實現多系統引導的原理、方法和實戰到這裡就結束了。至於安 裝多少個系統,有沒 有必要使用它,這就看個人需要了。