Win7和CentOS双系统引导修复 汇总

时间:2024-02-21 22:39:32

一、当win7和centos都不能进入,我通过原文1解决从grub>界面成功进入到了win7系统。

二、进入win7系统后,使用EasyBCD新建了一个空白启动项用于再次进入到grub>界面。

     1.添加条目==>NeoGrub==>安装

      2.下载安装WinGrub,查找得到你安装centos的(hdx,y)值

  

      这里得到的值为(hd0,9)

       

  3.重启win7,选择 NeoGrub引导加载器 进入grub>界面

  依次键入如下几条命令:     

  (1).grub>rootnoverify (hd0,9)   <hd0,为你的第一硬盘,9为你安装centos的硬盘分区>

  (2).grub>kernel /boot/vmlinuz-2.6.32-573.el6.i686 root=/dev/sda10

    <其中,vmlinuz-XXX后面的XXX可以Tab键补全对应于你安装的版本而不同,sda的10为上面(hd0,9)的9加1所得>

  (3).grub>initrd /boot/initramfs-2.6.32-573.el6.i686.img

          <initramfs--XXX也是用Tab键来补全你所安装的系统版本》

  (4).grub>boot <启动系统>

  如果不出意外,那么这样便可以启动centos系统了。通过步骤一,我们已经从2个引导都是坏的状况下修复了win7的引导,现在

再修复centos的引导以后便可以通过win来引导linux,而不是以linux引导win的方式。

    4.如果步骤3操作成功,现在重启回到win系统,打开EasyBCD

      

  现在在弹出的menu.lst文件后面添加步骤3中输入的所有命令

  

     然后修改引导名称为:CentOS 6

     

  5.重启,现在win7和centos都可以启动了

 结束:经过摸索和网上资料的收集对比,用比较简单的方式成功操作了系统引导问题,留作笔记也希望能帮助更多的人少走弯路。

 

 

原文1链接:http://blog.csdn.net/zyf837368104/article/details/7627065

我们遇到引导问题的原因可能有

1.      删除Linux,直接在win下删了该分区

2.      调整磁盘,利用工具合并,删除,分割分区导致磁盘分区数目变化

3.      重新安装系统,把Linux下安到新分区,原分区格式化,但没有重装grub2

……

总归,是由于操作者不知道grub2分为两部分,一部分(一般情况下)写在了mbr上,另一部分写在了某个分区的/boot/grub目录(如果/boot单独分区,则直接写在对应分区的/grub目录)里面。由于上述操作,致使grub2的mbr里面的那一部分找不到/grub目录里面的那一部分了(或者那一部分已经删除了)。

现在我们进不了系统,抱着不重装系统的心理继续。

我们开机可能出现了过

1.       grub>

2.      grub rescue>

 

下面分别介绍两种修复方法

1.       如果遇到的是grub>

如果你先装win,然后再装Linux的话,误删了启动文件或者删除了Linux,引导程序就不能读出系统所在的位置,导致出现grub命令提示。这时候可以手动启动比如我的win7在c盘,输入如下3个命令就可以了

1.     rootnoverify (hd0,0) 

设为根分区/root设备,但不加载文件系统。(hd0,0)表示第几个硬盘的第几个分区

2.     chainloader +1       

将启动引导权转交给当前分区的首扇区

3.  boot

已经成功了一大半,终于可以进去win了!  不过这样的话,但每次开机你都要输入,我们就要修复一下主引导扇区MBR(硬盘的第一个扇区),一个扇区是512个字节,前面446个字节用于引导程序,接下来64个字节用于存放分区信息,最后2个字节为结束标记。修复的方法很多,xp下可以用个工具 clsmbr.exe(CSDN下载有售),运行一下就可以了,win7这个小工具不能用,不兼容,不过不要紧,我们如果有win7的iso的话,可以从安装包中拷贝bootsect.exe(在boot这个文件夹里)这个文件,然后在cmd中输入 bootsect /nt60 SYS /mbr 就可以了。

然后大功告成。 

2.如果遇到的是grub rescue>

遇到这种情况的原因可能有

这个情况下命令比上种情况少,不过不要紧

方法如下:

1.grub rescue>ls 

//回车,列出本机所有磁盘及分区,如:hd0,(hd0,1),(hd0,7),(hd0,8),(hd0,9)等,我的机器上显示的是(hd0,msdos8)

2.然后查看到底是那个盘是grub的启动盘,做如下测试,若出现该目录下的文件列表,则成;若出现"unknow filesystem"则表示不成功,继续试探!

 

 

ls (hd0,X)/boot/grub X代表ls里出现的盘号,如果出现一大堆的文件,拓展名为.mod,.list等,记住这个盘的盘号(这里是/boot适用于木有单独分区,单独分区可以同理)

3)grub rescue>set root=(hd0,msdos8)   //括号里为上一步尝试成功的分区,例如msdos8

grubrescue>set prefix=(hd0,msdos8)/boot/grub 

   grub rescue>insmod normal        //每个命令输入后按回车,">"是提示符!!!

然后应该就退出grub rescue模式了

4)) grub> normal  //这样就进入到grub界面下了

很好,我们终于回到Linux了

进入Linux系统之后,还没完呢,在命令行输入以下命令即可!

sudo update-grub

然后输入

sudo grub-install /dev/sda   //你的启动盘

这样就解决了,Win与Linux都可以启动了