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

雙硬盤多系統引導深入探究

  Linux和Windows多系統共存時,引導過程相對來說比較復雜。而且容易引起一些錯誤概念。比如經常看到有的網友這樣問:“我要引導XXX Linux,應該用Lilo,Grub,還是NT OS Loader?”     其實常見的Linux引導途徑,只有引導軟盤,Lilo,Grub,和在MS-DOS環境下用Loadin.exe引導。而NT OS Loader是不能夠引導Linux的。大家“所謂的”用NT OS Loader引導Linux時,中間都要通過Lilo或者Grub這一步。In another Word,如果你的Linux安裝時候就沒有安裝引導程序,而是打算一直用軟盤引導的話,你也就無法用NT OS Loader去引導這個Linux。    用NT OS Loader引導Linux的過程應該是這樣:NT OS Loader->grub (or lilo) ->Linux。    這個過程是通過如下幾個步驟實現的:   1, 在MBR或某個分區的引導扇區上安裝Grub或者Lilo,使其成功引導Linux。   2, 在Linux下用dd命令把被安裝的Grub或者Lilo讀出來並寫在一個文件上,這個步驟相當於給Grub或者Lilo做了個備份,隨後即使原來裝Grub或者Lilo的地方被清除掉,也可以用留下來的這個文件借助NT OS Loader實現跟以前一模一樣的引導過程。   3, 修改Boot.ini讓NT OS Loader引導剛才讀出來的Grub或者Lilo。     至於這個被NT OS Loader 引導起來的Grub能干些什麼,完全看你自己的配置,可以通過修改Menu.lst文件讓他引導任何受支持的系統或者另外的引導程序。你可以讓他引導僅僅一個Linux,並把默認時間設置為0,從而造成NT OS Loader直接引導Linux的假象。也可以讓他引導從Linux到Unix,BSD的N個系統,排出長長的一個系統列表。我甚至曾經讓NT OS Loader 和 Grub兩者之間互相循環引導。     如此看來,NT OS Loader和Grub是平起平坐的,他們之間互相可以引導,但對於系統的支持卻是各有自家的本事。NT OS Loader離開了Grub就別想引導Linux/Unix/BSD;而Grub雖說很強,也不可能繞過NT OS Loader對MS的NT4/2000/XP/Server2003直接進行引導。     但是像MS-DOS,Windows9X/Me這樣的系統概念就模糊了。說得通俗一點,這類微軟的早期系統既可以被NT OS Loader直接引導,也可以被Grub直接引導。如果你機器上只有一個MS-DOS/9X/Me,而沒有NT OS Loader時就裝了Grub的話,Grub就會直接引導這個系統。而如果你裝Grub時已經有NT OS Loader,那麼Grub就會通過NT OS Loader來引導這個系統。甚至可以這樣:硬盤1上的NT OS Loader -> 硬盤1上的Grub -> 硬盤2上的 Windows9X/Me/MS-DOS。(符號->表示直接引導)    另外還有幾點需要注意:   1, Grub理論上可以引導任何相同或不同硬盤上的NT OS Loader,但反之,想用NT OS Loader引導不同硬盤上的Grub卻不行。這裡不同硬盤上的Grub是指這個Grub在被dd成文件之前安裝在跟NT OS Loader不同的硬盤上。   2, Grub和Grub之間可以直接互相引導(不過互相循環引導次數過多會內存溢出而死機,即使中間通過NT OS Loader來間接引導也不能避免,Grub對內存的要求似乎比NT OS Loader高),但NT OS Loader和NT OS Loader之間卻不可以。只能通過Grub把兩個NT OS Loader連起來。使之可以間接互相引導。而這樣連起來的兩個NT OS Loader即使互相循環引導次數再多也不會出現錯誤。   3, 同一台機器上的一個Linux可以被不同的N個Grub引導。但一個NT系統卻不能被兩個NT OS Loader引導。M$可能在後面做了什麼,讓NT核心的系統安裝時候就被綁在了默認的NT OS Loader上(可以是跨硬盤的綁定)。安裝一結束,你就只能用這個NT OS Loader來引導他。任何想從別的NT OS Loader引導這個NT系統的嘗試,都會被一個找不到文件的錯誤拒之門外。   4, 硬盤1上的NT OS Loader -> 硬盤1上的Grub -> 硬盤2上的 MS-DOS。在用這種引導方式時,假如最後被引導的MS-DOS上裝有Windows3.x,那麼MS-DOS雖然會正常啟動,但Windows3.x卻會因提示無法找到文件而無法正常進入。解決辦法是在硬盤2中裝一個NT OS Loader。就會按如下過程順利啟動:     硬盤1上的NT OS Loader -> 硬盤1上的Grub -> 硬盤2上的 NT OS Loader -> 硬盤2上的 MS-DOS -> 進入Windows3.x。     最後,對於想讓Windows和Linux在兩塊硬盤上並存的網友,給出下列引導建議:   首先,建議把所有的Windows放在一個硬盤,所有Linux放在另一個硬盤。如果不然,下列的某些建議可能無法實現。     1, 用Linux多余用Windows的類型   這類可用Grub作主引導程序,這樣就不必在意每個引導程序安裝的位置了。因為Grub是通吃所有硬盤的。   (1) 先把所有Windows裝好。   (2) 再一個個的裝Linux,把帶有你想用的Grub版本的Linux放在最後安裝。   (3) 安裝最後一個Linux時就把Grub安裝在Linux盤的MBR上。   這樣開機後Grub菜單出來,你可以選擇:   1、 選擇Grub菜單中的任何一個Linux系統。   2、 進入NT OS Loader 菜單選擇任何一個Windows系統。     2, 用Windows多余用Linux的類型   這類可用NT OS Loader作主引導程序。然而由於NT OS Loader不支持跨硬盤引導其他引導程序,Grub就必須裝在Windows盤裡。   (1) 分區時要在Windows盤裡的最後多劃出一個分區,分區大小在理論上有512字節就夠了,實際上一般習慣分出幾M(太小了也不支持)。格式化成FAT和ext均可。   (2) 之後就按照“1,”裡的順序安裝所有系統。   (3) 在完成“1,”之後,進入Linux,進入Grub提示符,用setup (hdx,x) 把Grub安裝在Windows盤後面新劃出來的那個小分區裡。   (4) 用dd命令把那個小分區的前512字節讀出來存成文件。   (5) 把文件添加到NT OS Loader的啟動選項中。   (6) 把Windows盤設置成主啟動硬盤。   這樣開機後NT OS Loader菜單出來,你可以選擇:   1、選擇NT OS Loader菜單中的任何一個Windows系統。   2、進入Grub 菜單選擇任何一個Linux系統。     Grub是很靈活的軟件,NT OS Loader也不笨。兩者雖然互有不足,但如果配合起來使用,不管你有幾個硬盤,幾個系統,都可以設計出一個快潔完善的引導方案。




Copyright © Linux教程網 All Rights Reserved