歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux維護

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

  本人使用的是華碩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)-->第一個硬盤,即linux下的/dev/hda ;

  3、(hd0,3)-->/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命令吧,具體可見命令幫助。

Copyright © Linux教程網 All Rights Reserved