我N次的看到如我一樣的新手們發些關於XP與ubuntu共存後的grub引導的求助文章,其實各大論壇林林散散的都有介紹,可系統一點的文章卻很少見到,也許高手們不屑為之吧。我在這裡也只是結合自己的實踐經驗談談我的心得體會,希望能給掙紮在XP與 linux之間的朋友一些協助。[高手們可以閉著眼睛閃先:)]
1、原先有XP系統,後裝ubuntu[當然要成功安裝的,不成功安裝,你說該怎麼辦呢?:)],但grub卻未成功安裝,導致一個系統也進不了。其中可分兩種情況:
A //grub缺少menu.lst,但可直接進入命令列,這是我第一次安裝redhat時遇到的情況。
解決方案:
引導XP系統
grub>
代碼: |
rootnoverify (hd0,0) //一般情況,XP被安裝在C盤;也可按tab鍵查看各分區,以獲得系統硬碟係數。 makeactive chainloader +1 boot |
引導ubuntu系統
grub>
代碼: |
root (hdX,Y) //這裡的x為硬碟序列,若你的linux安裝在第一塊硬碟上,X=0;在第二塊硬碟上,X=1;在第三塊硬碟上[我先暈一下。。。],依次類推。Y是那塊硬碟上的分區序列,也可通過tab查看;以獲得linux的安裝分區序列; kernel /boot/vmlinuz-*** root=/dev/sdaZ ro //這裡的Z=Y+1; ***為ubuntu版本號碼,可同樣按tab鍵補全。 initrd /boot/initrd.img-***[同上] boot |
註:如若是這種情況的,成功進入ubuntu之後,需要自己建立並編寫menu.lst檔案,形如:
代碼: |
default 0 //表示預設啟動為第一個title,要想設為預設啟動為第二個,你說是default X?這也不知道的話,還是去使用XP吧:( timeout 10 //不用注釋了吧?[樓主廢話可真多。。。不要罵我] title Ubuntu, kernel 2.6.15-26-386 root (hd0,7) kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/sda8 ro quiet splash initrd /boot/initrd.img-2.6.15-26-386 savedefault boot title Ubuntu, kernel 2.6.15-26-386 (recovery mode) root (hd0,7) kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/sda8 ro single initrd /boot/initrd.img-2.6.15-26-386 boot title Other operating systems: root title Microsoft Windows XP Professional root (hd0,0) savedefault makeactive chainloader +1 |
裡面的具體參數自己確定了,什嗎?不懂?倒。。。我還以為像我這樣垃圾的linuxer會很多的,別看不起自己:)
B //啟動後說grub錯誤的,grub完全沒法正常工作!這種情況很多見,做起來也有些麻煩。
解決方案:
第一步:修複傳說中的mbr。
有XP安裝盤吧?有!很好,從XP安裝盤啟動先,進入修複控制台[這個沒有問題吧?其中可能會提示輸入所安裝的XP系統序列,輸入一個非零值即可;隨後就是管理員密碼],執行fixmbr,以修複主引導區;附帶說明一句:若在控制台中根本無法訪問XP系統硬碟的,可先執行fixroot,但前提是 XP系統硬碟無嚴重問題,有問題的不在本帖討論範圍之內。提示成功修複引導區之後,restart重啟,或使用dos介面下通用三鍵組合“ctrl+alt +del”重啟也行滴說:)
第二步:XP下利用wingrub引導ubuntu。
wingrub在souceforge中有下載,而且有關它的使用,也是傻瓜式的,有linuxsir上的北南南北前輩--“老年人”略顯羅嗦的文章為證:http://www.linuxsir.org/bbs/showthread.php?t=214551
提示:最好安裝到c盤下的boot.ini[XP隱藏的系統檔案]中,以後清除也方便;前輩的話當然要聽,但我們只要學到上面的文章的一點,這個問題也就解決了,那文章大概是完備教程吧。
第三步:在ubuntu下安裝grub。
進入ubuntu下,執行sudo nautilus之後,刪除/boot/grub整個檔案夾,當然要備份先!再安裝grub:
代碼: |
sudo grub-install /dev/sda //將grub安裝到mbr主引導區上。 |
安裝確實得費些時間,請耐心等待。此時安裝的grub也沒有menu.lst,需要自己建立並編寫menu.lst檔案,方法goto本帖1-A-注。
第四步:刪除XP下的wingrub啟動項。
ubuntu下安裝的grub的menu.lst儲存後重啟系統,可順利進入XP,刪除c:/boot.ini中剛才產生的最後一行,形如: boot="c:/***"[你自己在wingrub程式產生開機檔案時起的名];再清除c根目錄下一個wingrub產生的引導檔案,具體名我現在也忘了。:( 但可以肯定它不是隱藏檔案!
OK,有關先安裝XP後安裝ubuntu的,還有什麼問題?一起來討論一下吧。
2、ubuntu安裝成功後,又重裝XP的情況的;由於XP不為人知的“古怪的習性”,mbr主引導區是肯定要被覆蓋的。重啟之後原先的grub引導不會出現了,直接進入XP登陸介面,XP對linux完全視而不見。這時可goto本帖1-B-第二步,順利解決問題。
由於wingrub確實沒有linux下的grub好用,不能隨linux下的系統更新而相應動作,所以強烈建議使用linux下的grub去引導雙系統,甚或多系統!