admin 管理员组文章数量: 887007
问题
我们遇到引导问题的原因可能有
1. 删除Linux,直接在win下删了该分区
2. 调整磁盘,利用工具合并,删除,分割分区导致磁盘分区数目变化
3. 重新安装系统,把Linux下安到新分区,原分区格式化,但没有重装grub2
4. 我们开机时,选择了windows的修复选项,windows重写了引导项,导致grub找不到引导项
开机会出现的如下问题
1. grub>
2. grub rescue>
原因
grub2其实分为两部分,一部分(一般情况下)写在了mbr上,另一部分写在了某个分区的/boot/grub目录(如果/boot单独分区,则直接写在对应分区的/grub目录)里面。由于上述操作,致使grub2的mbr里面的那一部分找不到/grub目录里面的那一部分了(或者那一部分已经删除了)。
解决grub>
如果遇到的是grub>
如果你先装win,然后再装Linux的话,误删了启动文件或者删除了Linux,引导程序就不能读出系统所在的位置,导致出现grub命令提示。这时候可以手动启动比如我的win7在c盘,输入如下3个命令就可以了
rootnoverify (hd0,0)
设为根分区/root设备,但不加载文件系统。(hd0,0)表示第几个硬盘的第几个分区
chainloader +1
将启动引导权转交给当前分区的首扇区
boot
已经成功了一大半,终于可以进去win了! 不过这样的话,但每次开机你都要输入,我们就要修复一下主引导扇区MBR(硬盘的第一个扇区),一个扇区是512个字节,前面446个字节用于引导程序,接下来64个字节用于存放分区信息,最后2个字节为结束标记。修复的方法很多,xp下可以用个工具 clsmbr.exe(CSDN下载有售),运行一下就可以了,win7这个小工具不能用,不兼容,不过不要紧,我们如果有win7的iso的话,可以从安装包中拷贝bootsect.exe(在boot这个文件夹里)这个文件,然后在cmd中输入 bootsect /nt60 SYS /mbr 就可以了。
然后大功告成。
grub rescue>
如果遇到的是grub rescue>
grub rescue> ls
回车,列出本机所有磁盘及分区,如:hd0,(hd0,1),(hd0,7),(hd0,8),(hd0,9)等,我的机器上显示的是(hd0,msdos8)
接着然后查看到底是那个盘是grub的启动盘,做如下测试,若出现该目录下的文件列表,则成;若出现”unknow filesystem”则表示不成功,继续试探!
ls (hd0,X)/boot/grub
X代表ls里出现的盘号,如果出现一大堆的文件,拓展名为.mod,.list等,记住这个盘的盘号(这里是/boot适用于木有单独分区,单独分区可以同理)
grub rescue>set root=(hd0,msdos8)
括号里为上一步尝试成功的分区,例如msdos8
grub rescue>set prefix=(hd0,msdos8)/boot/grub
grub rescue>insmod normal
每个命令输入后按回车,”>”是提示符!!!
然后应该就退出grub rescue模式了
grub> normal //这样就进入到grub界面下了
很好,我们终于回到Linux了
进入Linux系统之后,还没完呢,在命令行输入以下命令即可!
sudo update-grub
然后输入
sudo grub-install /dev/sda //你的启动盘
这样就解决了,Win与Linux都可以启动了
参考http://forum.ubuntu/viewtopic.php?t=348503&p=2516283
版权声明:本文标题:Windows&&Linux双系统引导项修复问题汇总 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1731977004h1515148.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论