其實多系統(tǒng)啟動,其最核心的問題,就是如何引導(dǎo),所以經(jīng)常會遇到裝好了兩個操作系統(tǒng),卻發(fā)現(xiàn)不能引導(dǎo),或是重裝某一個操作系統(tǒng)后,另外一個系統(tǒng)無法引導(dǎo)的情況 所以先來談?wù)勔龑?dǎo)的問題 我們先假設(shè)所安裝的操作系統(tǒng)都是windows系列的,比如win98 ,win xp ,win 7 那么,有一個原則就是,先安裝最舊的系統(tǒng),比如先裝win98,再裝xp,再裝win7, 原因其實很簡單,我們可以這樣去想,微軟開發(fā)win98的時候,xp的開發(fā)還沒開始,所以win98的啟動引導(dǎo)里肯定不支持xp ,而開發(fā)xp的時候,考慮到向前兼容的原則,其啟動引導(dǎo)裝置肯定是越來越先進,一定能支持前任,乃至前幾任操作系統(tǒng)。 最后裝入的win7操作系統(tǒng),能引導(dǎo)前幾任操作系統(tǒng)(理論上支持win98) 好,現(xiàn)在來把問題復(fù)雜化,我們引入其他平臺下的操作系統(tǒng)(非微軟開發(fā)),如linux操作系統(tǒng)(這里以centos發(fā)行版做簡要說明) xp,win7,linux 這三個操作系統(tǒng),如何才能把他們安裝到一臺機子上呢 首先我們考慮 xp ,和win 7,當只有這兩個時,我們按照先裝舊的系統(tǒng)的原則,先裝好xp, 然后再裝win7, 這樣啟動后,通過win7的引導(dǎo)機制,我們就可以成功的引導(dǎo)這兩個系統(tǒng) 現(xiàn)在我們要引入linux操作系統(tǒng),這是另外的平臺,首先有必要了解一下win7和linux操作系統(tǒng)的引導(dǎo)機制 win7的引導(dǎo)機制: win7(包括vista),使用bootmgr(啟動管理器)進行引導(dǎo) 裝有win7的電腦開機的引導(dǎo)過程可以簡單概括如下 開機加電----BIOS自檢----讀入主引導(dǎo)記錄MBR------Bootmgr接管----BOOTMGR讀取bcd文件(Boot Configuration Data “啟動配置數(shù)據(jù)”)---加載內(nèi)核--系統(tǒng)啟動 所以可以看到,是bootmgr讀取bcd文件來進行系統(tǒng)引導(dǎo)的 linux的引導(dǎo)機制: linux有很多發(fā)行版本,為人熟知的有red hat, red flag ,等,這里以centos為例 裝有centos的電腦開機后的引導(dǎo)過程可以簡單概括如下 開機加電----BIOS自檢----讀入主引導(dǎo)記錄MBR-----grub接管----grub讀取配置文件menu.lst中數(shù)據(jù)-----加載內(nèi)核--系統(tǒng)啟動 可以看到二者的區(qū)別在于一個用bootmgr,一個用grub(較早的有用LILO的,不在討論范圍內(nèi)),結(jié)果都是通過他們來加載系統(tǒng)核心,而bootmgr,grub一般都安裝在MBR上(特殊情況后面討論) ok 假設(shè)我們裝好了xp,和 win7,這樣的話是采用win7的bootmgr 來引導(dǎo)系統(tǒng),其引導(dǎo)菜單上會有選擇,如:啟動之前較早的windows版本和啟動windows7的選項,這樣我們可以通過選擇不同選項啟動相應(yīng)的系統(tǒng)(注意這里bootmgr安裝在硬盤的MBR上) 現(xiàn)在我們再此基礎(chǔ)上安裝centos,(若將其grub也安裝在硬盤MBR上,這樣會重寫硬盤MBR,可以認為我們用grub替代了原來的bootmgr),grub應(yīng)該能成功檢測到xp,win7的存在,所以其引導(dǎo)菜單上會出現(xiàn)xp,win7,centos三個選項,供我們選擇(理論上),至此三系統(tǒng)共存完畢。 我們得出的結(jié)論是先裝xp,再裝win7,最后裝centos(linux) --------------------------更復(fù)雜的情況------------------------ 如果你現(xiàn)在已經(jīng)暈乎了,那么不建議繼續(xù)閱讀。。 我遇到的就是更復(fù)雜的情況,因為我是先裝xp,再裝centos的,而且把centos的grub 裝到了MBR上,這樣的話如果我再裝win7,bootmgr就會替代原先的grub(重寫MBR), 而微軟的bootmgr沒有l(wèi)inux那么智能,更sb些,它只認自家兄弟,所以xp能認出來,centos卻認不出來,解決辦法呢? 這里有兩種解決辦法 一: 先裝xp,再裝centos,沒問題,但centos的grub一定不能裝在MBR上(防止裝win7 的時候被重寫),可以掛載在“/”下面,然后繼續(xù) 裝win7,bootmgr還是找不到centos,,進入win7,下載easybcd這個軟件,打開easybcd,在 add/remove entry里面,選擇linux,Type選擇grub,在Name添加上你想要的名字,隨便寫一個如centos,Driver 選linux所在的分區(qū)。這里選擇的分區(qū)要和剛才安裝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系統(tǒng)(一開始是xp centos,最后裝的win7),硬盤安裝win7 3 win7安裝好后,mbr被重寫了,bootmgr重新占領(lǐng)了高地,但這個sb不認識centos, 只知道xp,于是我們只好強制讓它認識! 進入win7,把先前備份好的centos.mbr拷貝到系統(tǒng)目錄下,我這里是H 盤 以管理員模式運行cmd 以此運行以下命令 bcdedit /create /d "centos 5.4" /application bootsector 命令結(jié)果應(yīng)該會返回一個GUID,后面的命令用到這個GUID 運行以下命令設(shè)置Linux引導(dǎo)扇區(qū)備份所在的分區(qū): bcdedit /set {GUID} device partition=H: (我這里是H盤) 然后指定引導(dǎo)扇區(qū)備份的路徑: bcdedit /set {GUID} path /centos.mbr 命令完成之后,重啟,此時應(yīng)該可以看到啟動選項里多了Linux。 重啟,搞定?。?! 引導(dǎo)菜單里出現(xiàn)了三個選項 1: 以前版本的windows系統(tǒng) 2: 啟動windows7系統(tǒng) 3: centos 5.4 選擇相應(yīng)的菜單就可以進入了 最后的一點廢話,這篇文章的核心可以用下面的話概括 從前有一個大家族,里面有三戶人家,一戶叫win7,一戶叫l(wèi)inux,還有一戶叫xp, 他們?nèi)叶际亲≡谝粋€叫硬盤的地方,win7家有一個兒子叫bootmgr,linux家有一個兒子叫g(shù)rub,xp家的兒子最2b,從來都是跟著他們混的,沒有發(fā)言權(quán)。 家族需要有人管理,于是三個兒子爭奪管理權(quán),xp家的兒子最沒用,只知道跟著其他二人混,先排除, bootmgr和grub都是有些本事的人,都有資格管理整個家族 家族里有一塊神秘的地方叫MBR,相傳誰發(fā)現(xiàn)占領(lǐng)了這塊地方,就有掌控整個家族的權(quán)利 假設(shè)bootmgr掌控了這個地方,但bootmgr這個人是個自大狂,有了管理的權(quán)利后就不承認linux家的地位了,只承認和自己血緣更親的xp家 再假設(shè)grub掌控了這個地方,grub這個人就好很多了,當上管理員后,還是照樣承認三家的地位,承認三家都是硬盤不可分割的整體 我們想讓這個家族得到很好的管理,于是答案很簡單 一:讓linux家的兒子grub 占領(lǐng)MBR,掌控整個家族(所以先裝xp,再win7,最后linux) 二:我們也可以讓win7家的兒子bootmgr占領(lǐng)MBR,不過考慮到其自大的本性,我們要強制的給他下命令,承認linux家的地位(所以通過easybcd這個妞給他下命令,誰讓bootmgr一直喜歡easybcd這個妞呢。 |
|