用grub4dos找回Centos系统

前两天折腾了一下电脑,将WIN7卸载,装回了XP,不过使用光盘安装XP后,原先的CentOS系统就无法进入了。本以为又要重新安装CentOS了,上网搜了下资料,使用grub4dos是可以恢复MBR内容的。

先说一下大致背景,之前,电脑是先装的WIN7,然后又在WIN7的基础上装了CentOS,每次启动电脑时,由centos的grub引导启动,启动菜单里包括WIN7系统和CentOS系统。使用光盘覆盖WIN7安装XP后,电脑启动自动进入XP,原先CentOS的引导不复存在,无法进入CentOS,主要是MBR在光盘安装时被重写的缘故,恢复MBR的思路也比较简单,分以下几步:

首先在XP自身的启动菜单里添加grub4dos选项,从而引导进grub4dos。

Grub4dos请自行到网上下载,下载完将grub.exe,grldr,grldr.mbr,menu.lst等四个文件拷贝到C盘根目录,menu.lst文件可以不要,加上的话,进入grub4dos后会有一个菜单项,不加上的话,就直接进入grub4dos的命令行,操作要在命令行下进行,所以menu.lst显得有些多余。

WindowXP的启动菜单不像WIN7那么麻烦,不需要开放管理员用户再使用那个bcdedit命令添加菜单,WindowXP在C盘的根目录里有boot.ini文件,系统菜单是通过这个文件来实现的,所以只要编辑一下这个文件就可以添加grub4dos项。在boot.ini文件的最后添加一行以下代码便在XP自身的启动菜单里成功添加了grub4dos项:

c:\grldr="Start GRUB4DOS" 

然后再在grub4dos里面恢复CentOS。方法就是将CentOS的grub重新写入MBR。

首先要设法找到CentOS的grub,一般不外乎有以下三种形式,在grub4dos命令行下输入下列三条命令,总有一条会返回一个正确的grub位置:

find /boot/grub/stage1
find /grub/stage1
find stage1

我的第一条命令就返回了一个(hd0,5),这说明我的CentOS系统装在第一块硬盘的第五卷上,找出grub位置后就好办了,依次键入以下命令将CentOS的grub安装到MBR后重启:

root (hd0,5)
setup (hd0)
reboot

最后一步就是要修正CentOS系统中grub的menu.list文件了,一般情况下这步可省略。

重启后便会看到CentOS的引导菜单了,但是选择window系统后却报找不到文件。原因是我在重装window XP的时候,装在了K盘,当时自己没注意,就把盘符弄得有点乱了。进入CentOS系统查看menu.list文件,原先的menu.list文件里德window项是:

title "Windows"
rootnoverify (hd0,0)
chainloader +1

rootnoverify (hd0,0)是第一块硬盘的第一分区,也就是C盘,奈何我XP装在了K盘,现在也就是要确认一下这个K盘倒是应该是(hd0,?),我也懒得烦了,直接从1到到6都试了,结果试到rootnoverify (hd0,1)便可以了,所以修改为:

title "Windows"
rootnoverify (hd0,1)
chainloader +1

Grub4dos还是很有用的,不过很多硬盘的相关知识需要补一下,要不然是只知其然不知其所以然。文章写到结尾的时候,突然听到专家说南京未来十年有六级以上的地震,不禁一身冷汗,还是回老家盖个木房子比较安全。

小雪转中雪

3 Comments On 用grub4dos找回Centos系统

  1. avatar

    一直不晓得你是做什么的,在做程序员吗,哈哈。。

    每次在QQ邮箱里看你的文章就感觉很灰的那种感觉的,天天开心一点吧

    • avatar

      @唯美国度 @唯美国度
      最近的文章不是很灰吧,要说两年前的文章,那可能确实都是比较伤感的文章,但是现在写的博文大多都是平平淡淡的了。

  2. avatar

    Grub4DOS在引导多系统引导方面非常强大,而且是跨平台的。

| 真的AJAX提交哦

回复给 秋天一棵树 点击这里取消回复。