筆記本雙系統的grub系統引導恢復(轉)

worldblog發表於2007-08-10
筆記本雙系統的grub系統引導恢復(轉)[@more@]

  本人使用的是華碩Z9100L筆記本,三星40G硬碟,256M記憶體,安裝了win2000和ubuntu5.1雙系統,在用sysv-rc-conf對ubuntu系統啟動選項進行配置時,不知怎麼把原先win2k系統的c盤引導搞壞了,最後連MBR上的grub也被改得一塌糊塗,所以只好想辦法搶救...

  先安裝win2k再安裝Ubuntu5.1,一切正常!但不滿意ubuntu緩慢的啟動和啟動時載入的一些無聊無用又耗資源的服務,於是參照網上Ubuntu啟動最佳化的文章進行配置。由於有些服務不清楚其用途,只好慢慢參照網文嘗試:下載了sysv-rc-conf,sudo執行更改配置,關閉一些不必要的服務,正當高興之際,卻發現原先自動載入的windows分割槽c盤不見了,好像關閉過lvm和evms(企業卷管理服務,應該可以不用吧?);重啟進win2k分割槽看看,My God,完蛋了,進不去了!

  哦,應該是mbr的分割槽資訊被破壞吧,想辦法修修,win2k不想重灌。於是跑到新立得軟體包管理其中找到testdisk工具(此時ubuntu正常,grub正常,只是windows進不去),貌似不錯;sudo一下,恩,分割槽資訊能認出來,但提示mbr有錯誤,採用testdisk的advanced選項進去,然後backup BS一下,在Dump,發現mbr的0x55aa標誌都沒了,內容也被改了,只好rebuild一下,重啟...焦急等待一分多鐘之後,發現還是不行,沒辦法,繼續用testdisk重寫一下MBR,結果...555,grub都沒了,加上win2k無法啟動,整個機子就無法啟動。

  沒辦法,準備先修復windows2000啟動再看看能否修復ubuntu和grub,採用win98啟動光碟啟動,》fdisk /mbr一下,哈哈,MBR總歸還能修復的,不過還是無法啟動,只是在DOS下能認出原先windows的三個盤。沒辦法,》sys c: 一下,呵呵,結果硬碟能啟動了,不過是“熟悉”的win98介面,然後進入dos;沒辦法,找來win2k安裝盤,修復安裝一下,哈,三四十分鐘後,久違的win2k終於啟動起來了,一切正常,還好,哈哈。 現在開始修復Grub和Ubuntu啟動,網上搜到關於Grub修復的文章,哈,還真管用,不過不能完全照搬而已,下面詳細記錄一下grub的一些常用命令和常識:

  (一)、分割槽對映關係:

  1、(fd0)-->代表軟盤,一般不用:)

  2、(hd0)--&gt第一個硬碟,即linux下的/dev/hda ;

  3、(hd0,3)--&gt/dev/hda4 (hd0,x)->x為分割槽號減一,即(hd0,0)代表/dev/hda1,(hd0,1)代表/dev/hda2 ...

  (二)、手工啟動Ubuntu

  由於硬碟已無法啟動需要藉助光碟,幸好手頭有Ubuntu的 LiveCD,這次派上用場了,哈哈(沒有的也可以找有grub啟動的光碟或Linux安裝盤進行Linux rescue啟動進去)。

  在啟動grub時安e進入grub>命令列介面,然後看看原先的grub配置檔案:

  grub>cat (hd0,3)/boot/grub/menu.lst #看一下原先的配置檔案,我的linux安裝在/dev/hda4分割槽上,所以是(hd0,3)。

  我的menu.lst配置部分如下:

  #配置檔案內容my menu.lst main content--------- (some default options and description here) ##

  ## End Default Options ##

  title Ubuntu, kernel 2.6.12-10-686

root (hd0,3)

kernel /boot/vmlinuz-2.6.12-10-686 root=/dev/hda4 ro quiet splash

initrd /boot/initrd.img-2.6.12-10-686

savedefault

boot

title Ubuntu, kernel 2.6.12-10-686 (recovery mode)

root (hd0,3)

kernel /boot/vmlinuz-2.6.12-10-686 root=/dev/hda4 ro single initrd /boot/initrd.img-2.6.12-10-686

boot

title Ubuntu, memtest86+

root (hd0,3)

kernel /boot/memtest86+.bin

  boot

  ### END DEBIAN AUTOMAGIC KERNELS LIST

  # This is a divider, added to separate the menu items below from the Debian # ones. title Other operating systems: root # This entry automatically added by the Debian installer for a non-linux OS # on /dev/hda1

title Windows NT/2000/XP (loader)

root (hd0,0)

savedefault

makeactive

chainloader +1

  #配置檔案結束end of my menu.lst----------------------------- 好了,我們要啟動的是第一項,正常ubuntu啟動,記住這幾行命令:

  root (hd0,3)

  kernel /boot/vmlinuz-2.6.12-10-686 root=/dev/hda4 [ro quiet splash] #([]中選項可省略)

  initrd /boot/initrd.img-2.6.12-10-686

  savedefault #可不用這句

  boot 依次輸入各行命令,每行執行後會有一點反饋資訊才表示正確,這樣順利的話,應該能夠順利進入Ubuntu系統了,放心了,系統都在了,哈哈!!

  下面把grub裝回到MBR區:

  (三)、恢復安裝被破壞的grub

  知道了之後似乎很簡單,用有grub的啟動盤啟動,或者用liveCD進入linux系統,或者就手工進入硬碟的linux的系統,然後執行#grub,進入grub>提示符介面,然後執行:

  grub>root (hd0,3) #指定linux分割槽所在位置,我的這裡是/dev/hda4即(hd0,3)

  grub>setup (hd0) #將grub裝到/dev/hda的MBR區。

  grub>quit #大功告成,退出grub介面

  #reboot一下,OK,一切恢復正常,終於完全搞定,其實也很簡單嘛,嘻嘻。 grub的安裝也可以使用grub-install命令吧,具體可見命令幫助。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-940305/,如需轉載,請註明出處,否則將追究法律責任。

相關文章