redhat linux9.0中grub启动的恢复

在用fdisk /mbr时,本来想对机器上的第二块硬盘作清除主引导记录的操作,结果却把装有linux操作系统的第一块硬盘的主引导记录清掉了。现在还不知道fdisk /mbr在两块硬盘上操作的有关问题?

恢复需要进入linux的grub命令行程序,可以从两个途径进入。

一是从安装光盘设置为从光盘启动,进入安装界面后输入linux rescue,进行一系列语言、键盘等的设置后就进入了shell命令行,这时就可以进入grub程序了。

一是从其它途径(如grub启动软盘、从dos引导)进入系统工作状态后进入grub程序。

然后就是输入 grub命令如下:

grub>root (hd0,0) (hd0指第一个硬盘,后面的0指的是/boot/grub目录所在的分区,而不是指的是/所在的分区,如果你的/boot和/分别在两个分区上,就不要弄错了)

grub>setup (hd0) (是指把grub引导程序写入第一个硬盘的主引导记录,如果写成(hd0,0)是指把引导记录写入第一个硬盘的第一个分区的引导扇区中)

执行成功后会显示success的信息。

不过,我的这个redhat linux9.0操作系统挂在amd毒龙700上可以用这个方法把grub恢复到MBR中,但挂在486DX100却不行,启动报告grub read error,要用setup (hd0,0)写入分区的引导扇区才行,不知道是怎么一回事?

One thought on “redhat linux9.0中grub启动的恢复”

  1. 在上面的老机上用setup(hd0,0)把grub写到了第一个分区的引导扇区恢复了redhat linux9.0的grub启动后,我又装了一个windows 97操作系统(因为我读的有些html的电子书是使用javascript技术做的,我的linux下的w3m浏览器就没戏了),所以,只好装了一个D版的windows97,专门用来看这本电子书。还有,到现在为止,我还没有找到一个本地的linux翻译软件。在windows下可以安一个翻译软件,免了必须使用网络翻译系统的麻烦。

    原来我有一次因为把grub装到MBR上,幸运和疑惑的是装了windows后竟然grub菜单不受影响,我到现在还没有彻底搞明白是怎么一回事。

    但是,这次可能是把grub恢复到了第一个分区的引导扇区上,装上windows97后grub就又消失了。我按照上面的方法把grub恢复到第一个分区的引导扇区或MBR上都不行了。然后用dos下的fdisk查看活动分区是安装windows97的那个分区,把活动分区改为第一个分区,重启动系统后还是不行。又通过dos引导到linux下,看到/boot/grub/device.map里面


    (fd0)     /dev/fd0

    (hd0)     /dev/hda

    中的"(hd0)    /dev/hda"这一行是错误的"(hd0)    /dev/hdc",把它改正后重新用grub恢复,恢复到MBR和第一启动扇区都试了,还是没作用。上网查了一下,也没有收获。最后试着在dos下用fdisk /mbr重写了MBR,然后把grub恢复到第一分区的引导扇区,grub引导程序恢复正常。如果把grub恢复到MBR上,同样又出现了“Grub Read Error”的问题。搞不懂。

    最后,把多重启动配置写入/boot/grub/menu.lst后,使用grub引导的多重启动配置成功。

    完整的配置文件如下,记在这里备忘:


    # grub.conf generated by anaconda

    #

    # Note that you do not have to rerun grub after making changes to this file

    # NOTICE:  You have a /boot partition.  This means that

    #          all kernel and initrd paths are relative to /boot/, eg.

    #          root (hd0,0)

    #          kernel /vmlinuz-version ro root=/dev/hdc2

    #          initrd /initrd-version.img

    #boot=/dev/hdc

    default=0

    timeout=10

    splashimage=(hd0,0)/grub/splash.xpm.gz

    title Windows 97

            rootnoverify (hd0,2)

            chainloader +1

    title Red Hat Linux (2.4.20-8)

            root (hd0,0)

            kernel /vmlinuz-2.4.20-8 ro root=LABEL=/

            initrd /initrd-2.4.20-8.img

    Grub引导程序比老式的Lilo引导程序有一个先进的地方就是,改写了配置文件后不必像Lilo程序那样还要运行lilo命令把配置写入硬盘才能工作。Grub程序是上面说的“you do not have to rerun grub after making changes to this file”。

Comments are closed.