linux下怎么修复win启动?

linux下怎么修复win启动?,第1张

安装Debian 6.0.5后,Grub启动菜单中没有把原来的Windows系统加到启动选项中,无法启动Windows。启动Windows有两种方法:

在Grub命令行下,手工启动Windows

修改Grub的配置文件grub.cfg,为Windows添加启动菜单

Grub版本:GNU GRUB Version 1.98+20100804-14+squeeze1

手工启动Windows

进入Grub启动菜单后,键入c,进入Grub命令行

1. 用ls命令,查看硬盘和分区信息,找到Windows系统的启动分区

Grub代码

grub>ls -l

2. root命令确定要启动的分区,

Grub代码

grub>root (hd0,msdos1)

3. chainloader命令将控制权将给Windows的boot loader,自己不用管理加载内核等工作

Grub代码

grub>chainloader +1

注意:chainloader要知道的是如何找到Super Block,因而需要设定启动的root分区和所在扇区。命令使用chainloader (hd0,msdos1)+1。如何执行过root (hd0, msdos1),则可简化为chainloader +1。命令参数中的+1,是指定分区上的第一个扇区。

另,chainloader并不负责加载工作,主要用于设置启动Windows等非Linux系统的参数,交给这些系统的boot loader自已启动。因而,如果要启动linux,则不使用chainloader。

4. 启动Windows

Grub代码

grub>boot

为Grub菜单添加Windows 启动项

在grub的配置文件\boot\grub\grub.cfg中添加Windows启动菜单。

1. 设置默认启动的 *** 作系统

Grub.cfg代码

set default="2"

default的值设置,0表示第一次Grub启动菜单项,余下以此类推

2. 设置Grub启动菜单的Timeout时间

Grub.cfg代码

set timeout=30

3. 添加Windows启动菜单

Grub.cfg代码

### BEGIN /etc/grub.d/30_os_prober ###

menuentry 'Windows 7 Ultimate' {

insmod part_msdos

insmod ntfs

set root='(hd0,msdos1)'

chainloader +1

}

### END /etc/grub.d/30_os_prober ###

在grub命令行下,也可以查看grub.cfg配置文件

Grub代码

grub>cat (hd0,msdos10)/boot/grub/grub.conf

如果不行,可以搜索如何修复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) //括号里为上一步尝试成功的分区,例如msdos8grubrescue>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都可以启动了

如果您的计算机上安装了 GRUB,Linux 可以通过 GRUB 启动管理器直接加载到 MBR,可以让计算机实现双启动。 首先引导系统进入Grub的控制台界面,这有很多方法:用“深山红叶”之类的工具光盘98启动盘+Grub For Dos又或者是显示Grub系统选择菜单时按“C”。

然后执行以下命令(注意命令和参数之间的空格):

root (hd0,6)//指明Grub安装在第一块硬盘的第3个逻辑分区,(hd0,6)相当于“hda7”,这应该是你的“/boot”目录所在的位置。

setup (hd0)//指定安装的位置是第一块硬盘的MBR

重启即可! 注意:hd0,6根据你自己linux安装分区的情况,进行修改。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8905982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-22
下一篇 2023-04-22

发表评论

登录后才能评论

评论列表(0条)

保存