NT和Linux共存的最簡單的方法就是在安裝Linux的 lilo時,選擇將lilo安裝在Linux主要磁碟分割的引導區中。然後使用win98的啟動盤重新啟動以後,運行fdisk將Linux主要磁碟分割設定為 active,這樣就可以實現在系統啟動時首先進入lilo選擇,若不選擇Linux,則進入nt loader。
但是有時候為了方便而需要使用 nt loader 來引導Linux,下面就是實現的方法。
你應該牢牢記住的最重要的一點是,許多軟體產品會利用硬碟上面僅有的那個寶貴的主引導記錄MBR。NT是這樣,沒有選擇餘地; Linux也可以這樣,如果你喜歡。機器的BIOS會執行儲存在當前啟用分區的資訊,來初始化你希望的*作系統。
NT安裝後,MBR會被修改成去引導一個在啟用分區的根目錄下,叫NTLDR的程式。原來的MBR會被存到一個叫BOOTSECT.DOS的小檔案中。NT安裝完成後要記住絕不能覆蓋這個MBR, 否則NT將無法啟動。以防萬一, NT的使用者需要NT的應急修複磁碟Emergency Repair Disk,ERD)。
記住了這些後,就要注意設定LILO時***不能***裝到MBR中去,而是裝到Linux的root分區中去。這樣,對NT而言,不會帶來問題;而 Linux沒有MBR也可以活下去。
& nbsp;NT的引導過程
當NTLDR啟動, NT使用者看到"OS Loader V4.xx" 後,它會切換處理器到386狀態,並啟動一個非常小的檔案系統。接著,它會去讀BOOT.INI檔案,看是否有其它*作系統存在,並顯示一個選擇菜單。下面是一個典型的BOOT.INI:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)WINNT="NT V4 is here"
multi(0)disk(0)rdisk(0)partition(2)WINNT="NT V4 VGAMODE" /basevideo /sos
C:="DOS is here"
BOOT.INI 有兩部分構成。 "boot loader section"部分指定菜單在螢幕上的停留時間,和預設菜單選項。"opearating systems section" 部分指定可選的*作系統種類。可以看到機器可以啟動NT(以標準模式或VGA安全模式)和DOS。從這個例子我們可以推斷,DOS從硬碟C:(第一個硬碟的第一個分區)啟動,而NT從第二個分區啟動。典型安裝時,會以DOS的FAT檔案系統格式化一個C:的分區,然後將NT裝在另外一個NTFS(NT檔案系統)的分區。
如果使用者選擇了啟動NT, 另外一個程式NTDETECT.COM,就會開始進行硬體檢查。如果一切正常,NT核心就會被裝入,正如我們都知道的那樣。
再來看如果啟動的不是NT的情形。此時,NTLDR 需要知道非NT OS引導所必需的開機磁區是哪個。此時,相應的開機磁區映象必須要在一個小小的512位元組的檔案中。比如,要引導DOS,NTLDR 將會尋找一個叫BOOTSECT.DOS的開機磁區映象檔案。這個映象檔案是NT的安裝程式產生的。
那麼,引導Linux又是怎樣呢?這很簡單,需要的只是一個開機磁區映象檔案,姑且稱之為BOOTSECT.LIN (在本文稍後會看到如何得到這個檔案)。必須將BOOTSECT.LIN 放到C:, 並要修改 BOOT.INI。此時"operating systems ection"部分看起來應該是這樣的:
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)WINNT="NT V4 is here"
multi(0)disk(0)rdisk(0)partition(2)WINNT="NT V4 VGAMODE" /basevideo /sos
C:="DOS is here"
C:BOOTSECT.LIN="Now Linux is here"
修改BOOT.INI,可以用任何普通ASCII文字編輯器比如記事本)。這個檔案的正常屬性為系統-隱藏-唯讀,所以你必須用 'attrib' DOS 命令或在NT中,用檔案屬性對話方塊中來變更屬性。
現在我們將注意力轉到 Linux。我們需要安裝Linux,定製LILO,產生BOOTSECT.LIN檔案。
第一步是裝好Linux。我們都知道怎麼做:為Linux選適當的系統,SWAP,和使用者分區,運行安裝程式,等等。一切順利時,這一步在45分鐘之內就可以完成。
接下去就要定製LILO。我們知道怎麼做,但要注意*不能* 將LILO裝到MBR中去(除非你想將NT吞了:-))。設定LILO時,要選擇將它裝到你Linux 的root分區。如果你還不知道如何設定LILO, 就花幾分鐘讀讀HOW-TO文獻,或者就用一些好的安裝程式,我是用S.u.S.E.的, 因此我的安裝程式就是 'yast' (Yet Another Setup Tool)。
LILO定製好之後,(為行文方便, 此處假設Linux的root分區是/dev/hda3)我們必須用'dd'來產生引導記錄映象檔案。以root Login後,按以下做:
# dd if=/dev/hda3 bs=512 count=1 of=/dosc/bootsect.lin
如果沒有能將FAT C: partition mount成為 /dosc,譬如說由於這個分區被以NTFS方式格式化,不能訪問這個分區。此時可以將 BOOTSECT.LIN寫到一個以DOS方式格式化的磁碟中,或者NT能讀的其它什麼分區也可以。如果BOOTSECT.LIN不是被放到C:,要記住此時應相應修改BOOT.INI檔案。
現在你老闆可以從她的NT Loader菜單中選擇Linux了。NTLDR將會裝載BOOTSECT.INI,她就可以看到LILO的提示。她就可以去嘗試她新的Linux機器了。最後,你可以設定LILO在選擇提示時能去引導Linux和C: 上的DOS。你的老闆就可以再次回到C: 分區上的NT Loader。前文描述的方法可以反覆進行,如果你希望能選擇引導多個Linux,就必須為每一個Linux都產生一個相應的開機磁區映象檔案。