歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

OSLoader 實現多系統方案

現今有許多系統引導程序,例如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來實現多系統引導的原理、方法和實戰到這裡就結束了。至於安  裝多少個系統,有沒  有必要使用它,這就看個人需要了。  




 



Copyright © Linux教程網 All Rights Reserved