xp win7 linux三系統安裝教程及引導設置解說

  其實多系統啟動,其最核心的問題,就是如何引導,所以經常會遇到裝好了兩個操作系統,卻發現不能引導,或是重裝某一個操作系統後,另外一個系統無法引導的情況

所以先來談談引導的問題

我們先假設所安裝的操作系統都是windows系列的,比如win98 ,win xp ,win 7

那麼,有一個原則就是,先安裝最舊的系統,比如先裝win98,再裝xp,再裝win7,

原因其實很簡單,我們可以這樣去想,微軟開發win98的時候,xp的開發還沒開始,所以win98的啟動引導裡肯定不支持xp ,而開發xp的時候,考慮到向前兼容的原則,其啟動引導裝置肯定是越來越先進,一定能支持前任,乃至前幾任操作系統。

最後裝入的win7操作系統,能引導前幾任操作系統(理論上支持win98)

好,現在來把問題複雜化,我們引入其他平台下的操作系統(非微軟開發),如linux操作系統(這裡以centos發行版做簡要說明)

xp,win7,linux 這三個操作系統,如何才能把他們安裝到一台機子上呢

首先我們考慮 xp ,和win 7,當只有這兩個時,我們按照先裝舊的系統的原則,先裝好xp,

然後再裝win7, 這樣啟動後,通過win7的引導機制,我們就可以成功的引導這兩個系統

現在我們要引入linux操作系統,這是另外的平台,首先有必要了解一下win7和linux操作系統的引導機制

win7的引導機制:

win7(包括vista),使用bootmgr(啟動管理器)進行引導

裝有win7的電腦開機的引導過程可以簡單概括如下

開機加電—-BIOS自檢—-讀入主引導記錄MBR——Bootmgr接管—-BOOTMGR讀取bcd文件(Boot Configuration Data 「啟動配置數據」)—加載內核–系統啟動

所以可以看到,是bootmgr讀取bcd文件來進行系統引導的

linux的引導機制:

linux有很多發行版本,為人熟知的有red hat, red flag ,等,這裡以centos為例

裝有centos的電腦開機後的引導過程可以簡單概括如下

開機加電—-BIOS自檢—-讀入主引導記錄MBR—–grub接管—-grub讀取配置文件menu.lst中數據—–加載內核–系統啟動

可以看到二者的區別在於一個用bootmgr,一個用grub(較早的有用LILO的,不在討論範圍內),結果都是通過他們來加載系統核心,而bootmgr,grub一般都安裝在MBR上(特殊情況後面討論)

ok 假設我們裝好了xp,和 win7,這樣的話是採用win7的bootmgr 來引導系統,其引導菜單上會有選擇,如:啟動之前較早的windows版本和啟動windows7的選項,這樣我們可以通過選擇不同選項啟動相應的系統(注意這裡bootmgr安裝在硬碟的MBR上)

現在我們再此基礎上安裝centos,(若將其grub也安裝在硬碟MBR上,這樣會重寫硬碟MBR,可以認為我們用grub替代了原來的bootmgr),grub應該能成功檢測到xp,win7的存在,所以其引導菜單上會出現xp,win7,centos三個選項,供我們選擇(理論上),至此三系統共存完畢。

我們得出的結論是先裝xp,再裝win7,最後裝centos(linux)

————————–更複雜的情況————————

如果你現在已經暈乎了,那麼不建議繼續閱讀。。

我遇到的就是更複雜的情況,因為我是先裝xp,再裝centos的,而且把centos的grub

裝到了MBR上,這樣的話如果我再裝win7,bootmgr就會替代原先的grub(重寫MBR),

而微軟的bootmgr沒有linux那麼智能,更sb些,它只認自家兄弟,所以xp能認出來,centos卻認不出來,解決辦法呢?

這裡有兩種解決辦法

一: 先裝xp,再裝centos,沒問題,但centos的grub一定不能裝在MBR上(防止裝win7 的時候被重寫),可以掛載在「/」下面,然後繼續 裝win7,bootmgr還是找不到centos,,進入win7,下載easybcd這個軟體,打開easybcd,在 add/remove entry裡面,選擇linux,Type選擇grub,在Name添加上你想要的名字,隨便寫一個如centos,Driver 選linux所在的分區。這裡選擇的分區要和剛才安裝linux時grub安裝的位置一致,。最後add entry保存好,view settings 就可以看到兩個選項了,一個是本來的win7,一個是剛剛建的選項。

最後重啟,就ok了

二:但杯具的我把centos的grub裝到了mbr上,再裝win7的時候,mbr肯定會被重寫掉,怎麼辦??答案很簡單,備份!!!

1 ,先進入centos,打開終端、

輸入dd if=/dev/sda 0f=/root/centos.mbd bs=512 count=1

這個命令是用來備份mbr的,這裡我把它備份成centos.mbr這個文件

2 然後進入xp系統(一開始是xp centos,最後裝的win7),硬碟安裝win7

3 win7安裝好後,mbr被重寫了,bootmgr重新占領了高地,但這個sb不認識centos, 只知道xp,於是我們只好強制讓它認識!

進入win7,把先前備份好的centos.mbr拷貝到系統目錄下,我這裡是H 盤

以管理員模式運行cmd

以此運行以下命令

bcdedit /create /d “centos 5.4” /application bootsector

命令結果應該會返回一個GUID,後面的命令用到這個GUID

運行以下命令設置Linux引導扇區備份所在的分區:

bcdedit /set {GUID} device partition=H: (我這裡是H盤)

然後指定引導扇區備份的路徑:

bcdedit /set {GUID} path /centos.mbr

命令完成之後,重啟,此時應該可以看到啟動選項裡多了Linux。

重啟,搞定!!!

引導菜單裡出現了三個選項

1: 以前版本的windows系統

2: 啟動windows7系統

3: centos 5.4

選擇相應的菜單就可以進入了

最後的一點廢話,這篇文章的核心可以用下面的話概括

從前有一個大家族,裡面有三戶人家,一戶叫win7,一戶叫linux,還有一戶叫xp, 他們三家都是住在一個叫硬碟的地方,win7家有一個兒子叫bootmgr,linux家有一個兒子叫grub,xp家的兒子最2b,從來都是跟著他們混的,沒有發言權。

家族需要有人管理,於是三個兒子爭奪管理權,xp家的兒子最沒用,只知道跟著其他二人混,先排除,

bootmgr和grub都是有些本事的人,都有資格管理整個家族

家族裡有一塊神秘的地方叫MBR,相傳誰發現占領了這塊地方,就有掌控整個家族的權利

假設bootmgr掌控了這個地方,但bootmgr這個人是個自大狂,有了管理的權利後就不承認linux家的地位了,只承認和自己血緣更親的xp家

再假設grub掌控了這個地方,grub這個人就好很多了,當上管理員後,還是照樣承認三家的地位,承認三家都是硬碟不可分割的整體

我們想讓這個家族得到很好的管理,於是答案很簡單

一:讓linux家的兒子grub 占領MBR,掌控整個家族(所以先裝xp,再win7,最後linux)

二:我們也可以讓win7家的兒子bootmgr占領MBR,不過考慮到其自大的本性,我們要強制的給他下命令,承認linux家的地位(所以通過easybcd這個妞給他下命令,誰讓bootmgr一直喜歡easybcd這個妞呢。