grub和windows2000的恢复历程

    本人使用的是华硕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命令吧,具体可见命令帮助。