当前位置: 技术问答>linux和unix
装系统,把grub给装没有了:“grub loading…… grub error 15”
来源: 互联网 发布时间:2015-10-12
本文导语: 我的机子没有软驱,因此不能紧急启动~ 我试了好几个linux安装盘的第一张安装盘,尝试想通过光盘直接重新安装grub,可是好像都不行~ 现在,该如何是好啊? 非常感谢大家回复!!! | 当屏幕只出...
我的机子没有软驱,因此不能紧急启动~
我试了好几个linux安装盘的第一张安装盘,尝试想通过光盘直接重新安装grub,可是好像都不行~
现在,该如何是好啊?
非常感谢大家回复!!!
我试了好几个linux安装盘的第一张安装盘,尝试想通过光盘直接重新安装grub,可是好像都不行~
现在,该如何是好啊?
非常感谢大家回复!!!
|
当屏幕只出现grub>的字样,很多人于是就急得不知所措,于是往往重装linux甚至windows。事实上这个问题很容易解决。首先,为了那些新手能看到这篇文章,请在grub>后面输入以下字符:
grub>root (hd0,0)
grub>rootnoverify (hd0,0)
grub>chainloader +1
grub>boot
这样就可以进入windows系统,如果你的windows系统是放在硬盘的第一个分区的话。
好了,进入系统以后,还有一些事情需要做。因为问题并没有彻底解决,如果你这
时候重启的话,就会发现开机后仍然出现grub>的提示符
为了彻底解决问题,我们需要来了解一些概念。
什么是grub? grub是系统启动装载程序。当我们开机,BIOS开始检测系统参数,如
内存的大小,CPU型号,硬盘类型等。BIOS自检过后,就会把控制权交给硬盘上0柱面
1磁道(MBR)上的程序来引导系统(如果设置成硬盘引导优先)。而这个程序,对
windows NT内核的系统来说,就是ntloader,对linux来说,一般是grub或lilo。如果
这些程序损坏,或找不到配置文件,就会无法引导系统。比如windows 2000的用户有
时会发现开机出现这样的字样:NTLDR is missing…… 这就表示windows的引导程序
被破坏或找不到了,解决方法就是用一张2000的安装盘修复系统。如果linux的引导程
序grub被破坏或找不到配置文件了呢??那就重装grub好咯。事实上出现grub>这样
的情况还算是好事,这只是表明grub找不到配置文件指定的图形文件splash.tar.gz
,所以不出现图形界面的引导方式而已。要想出现图形界面的引导模式,需要进入到
linux系统中修改grub的配置文件,这个文件是/boot/grub/menu.lst。如下:
# 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,7)
# kernel /vmlinuz-version ro root=/dev/hda10
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,7)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8)
root (hd0,7)
kernel /vmlinuz-2.4.20-8 ro root=/dev/hda8 vga=791
initrd /initrd-2.4.20-8.img
title Windows 2000
rootnoverify (hd0,0)
chainloader +1
title Mandrake 9.2
rootnoverify (hd0,12)
chainloader +1
title Slackware 9.1
rootnoverify (hd0,13)
chainloader +1
title FreeBSD 5.1
rootnoverify (hd1,0)
chainloader +1
注意title Windows的那一项,想起什么没有?对了,刚才我们就是用那下面的命令来
引导进入windows的。同样,我们可以用Red Hat那一项下面的命令来进入linux,从而
可以修改grub的配置文件
grub>root (hd0,*) /*你的root分区所在的分区号,如果分区只分了/,那么就是
/的分区号*/
grub>kernel /vmlinuz-* ro root=/dev/hda* /* vmlinuz是你的系统内核文件,可以
用tab键来自动补齐,root=/dev/hda*是/分区的分区号,注意
hd0,*的方式和hda*的方式稍有不同,hd0,0对应hda1,其余类
推。ro是read only的意思,以只读的方式加载内核 */
grub>initrd /initrd-* /*根目录镜像文件,用于加载不是ext2格式的根分区,如果你的
/是ext3或其他类型,那么最好写上。同样可以用tab补齐*/
/是ext3或其他类型,那么最好写上。同样可以用tab补齐*/
grub>boot
然后就可以进入linux了。如果不能进图形界面的linux(xwindow),那么字符界面下修改
就要用vi编辑器来修改。vi用法我就不多说了。
当然,进入linux也可以用安装系统时的光盘或软盘引导。详细方法可以在版面上查。
我常看到的是用PQ修改了分区所以导致分区号改变,所以menu.lst文件里内容就和实际
情况不相符合了,比如你的/boot是hd0,7的,用了PQ后,就会变成hd0,8或其他分区号。
grub找不到启动时要用的图形文件/boot/grub/splash.xpm.gz,就当然不会出现图形的
引导界面了。确定参数都设置好了以后,如果还没有出现图形的菜单,可以在linux下
用grub-install /dev/hda或hdb 来重装grub到MBR上
grub>root (hd0,0)
grub>rootnoverify (hd0,0)
grub>chainloader +1
grub>boot
这样就可以进入windows系统,如果你的windows系统是放在硬盘的第一个分区的话。
好了,进入系统以后,还有一些事情需要做。因为问题并没有彻底解决,如果你这
时候重启的话,就会发现开机后仍然出现grub>的提示符
为了彻底解决问题,我们需要来了解一些概念。
什么是grub? grub是系统启动装载程序。当我们开机,BIOS开始检测系统参数,如
内存的大小,CPU型号,硬盘类型等。BIOS自检过后,就会把控制权交给硬盘上0柱面
1磁道(MBR)上的程序来引导系统(如果设置成硬盘引导优先)。而这个程序,对
windows NT内核的系统来说,就是ntloader,对linux来说,一般是grub或lilo。如果
这些程序损坏,或找不到配置文件,就会无法引导系统。比如windows 2000的用户有
时会发现开机出现这样的字样:NTLDR is missing…… 这就表示windows的引导程序
被破坏或找不到了,解决方法就是用一张2000的安装盘修复系统。如果linux的引导程
序grub被破坏或找不到配置文件了呢??那就重装grub好咯。事实上出现grub>这样
的情况还算是好事,这只是表明grub找不到配置文件指定的图形文件splash.tar.gz
,所以不出现图形界面的引导方式而已。要想出现图形界面的引导模式,需要进入到
linux系统中修改grub的配置文件,这个文件是/boot/grub/menu.lst。如下:
# 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,7)
# kernel /vmlinuz-version ro root=/dev/hda10
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,7)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8)
root (hd0,7)
kernel /vmlinuz-2.4.20-8 ro root=/dev/hda8 vga=791
initrd /initrd-2.4.20-8.img
title Windows 2000
rootnoverify (hd0,0)
chainloader +1
title Mandrake 9.2
rootnoverify (hd0,12)
chainloader +1
title Slackware 9.1
rootnoverify (hd0,13)
chainloader +1
title FreeBSD 5.1
rootnoverify (hd1,0)
chainloader +1
注意title Windows的那一项,想起什么没有?对了,刚才我们就是用那下面的命令来
引导进入windows的。同样,我们可以用Red Hat那一项下面的命令来进入linux,从而
可以修改grub的配置文件
grub>root (hd0,*) /*你的root分区所在的分区号,如果分区只分了/,那么就是
/的分区号*/
grub>kernel /vmlinuz-* ro root=/dev/hda* /* vmlinuz是你的系统内核文件,可以
用tab键来自动补齐,root=/dev/hda*是/分区的分区号,注意
hd0,*的方式和hda*的方式稍有不同,hd0,0对应hda1,其余类
推。ro是read only的意思,以只读的方式加载内核 */
grub>initrd /initrd-* /*根目录镜像文件,用于加载不是ext2格式的根分区,如果你的
/是ext3或其他类型,那么最好写上。同样可以用tab补齐*/
/是ext3或其他类型,那么最好写上。同样可以用tab补齐*/
grub>boot
然后就可以进入linux了。如果不能进图形界面的linux(xwindow),那么字符界面下修改
就要用vi编辑器来修改。vi用法我就不多说了。
当然,进入linux也可以用安装系统时的光盘或软盘引导。详细方法可以在版面上查。
我常看到的是用PQ修改了分区所以导致分区号改变,所以menu.lst文件里内容就和实际
情况不相符合了,比如你的/boot是hd0,7的,用了PQ后,就会变成hd0,8或其他分区号。
grub找不到启动时要用的图形文件/boot/grub/splash.xpm.gz,就当然不会出现图形的
引导界面了。确定参数都设置好了以后,如果还没有出现图形的菜单,可以在linux下
用grub-install /dev/hda或hdb 来重装grub到MBR上
|
可以用"rescue"模式进入命令行方式,然后运行grub-install. 一般Alt+2有命令行。
也可以这样
1,如果你能进linux, 在linux下运行grub-install.
2, 如果你能进windows, 用loadlin root=/dev/hda6 进linux, 然后执行1,loadlin在光盘的dosutils目录下
3,如果linux和windows都进不去,找一个windows安装盘进入dos shell, 执行2
也可以这样
1,如果你能进linux, 在linux下运行grub-install.
2, 如果你能进windows, 用loadlin root=/dev/hda6 进linux, 然后执行1,loadlin在光盘的dosutils目录下
3,如果linux和windows都进不去,找一个windows安装盘进入dos shell, 执行2
|
把你硬盘分区情况说下!
从光盘启动 loadlin root=/dev/hda#
#要看你的分区而定
从光盘启动 loadlin root=/dev/hda#
#要看你的分区而定
|
grub—install应该在/sbin下面。切换到该目录下先,然后运行grub-install