当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [分享]grub 出现file not found解决方法
帖子发表于 : 2008-06-03 16:54 

注册: 2008-05-25 22:58
帖子: 92
送出感谢: 0 次
接收感谢: 1
一直使用grub引导系统(包括xp,dos,从光驱启动,从iso文件启动,从img启动,从pe启动,都可以用grub启动,当然也包括linux),真是多面手,而且使用方便智能,
对于grub启动出现file not found的错误也提出我的解决方法(菜鸟一个)。
grub好像有两个版本,grub和grub4dos,前者就是ubuntu自带的,而后者是好象国人在grub的基础开发的,功能强大的多,我用的就是grub4dos,
grub的启动顺序:mbr(stage1)----stage1_5(对应各类文件类型有对应的stage1_5)-----stage2----menu.lst(启动配置文件)
grub4dos的启动顺序:mbr---grldr---menu.lst(grub4dos需要的文件简单多,而且可以直接在xp的菜单中引导,只要在boot.ini文件中添加x:\grldr="grldr",而且其提供了一个bootlace.com可以直接写mbr,这个功能够实用可以直接用xp启动菜单引导linux,wubi使用的也是这个)
现在说一下file not fount的解决方法:
title linux
root(hd0,0)
kernel /vmlinuz
initrd /initrd.gz

title linux 是在grub界面显示的内容
root(hd0,0)配置grub的根目录
kernel /vmlnuz和initrd /initrd.gz,则说明需要加载的内核,
而出现file not found是因为kernel是到root指定的"分区"中找是否有个"vmlinuz"这个文件,如果root指定的”分区错误”或者”目录错误”或者”文件名错误”,都会出现file not found.
当出现这个问题是,你可以在grub界面选中无法启动的那项,比如linux,按"e"键,编辑该项,会出现该项的内容
root(hd0,0)
kernel /vmlinuz
initrd /initrd.gz,
然后移到root(hd0,0)这项,按e键编辑,如果还知道是那个分区则直接改写,如果不知道使用grub的自动补全功能,删除”0,0)”,然后按TAB键会出现该计算机存在的硬盘列表,应该还记的linux安装在哪个硬盘,我们输入0( 0表示的是第一个硬盘),再输入“,”,再按TAB键,会出现选种硬盘的分区列表,(0-4表示的是主分区,5以后的数字表示逻辑分区,如果一个硬盘有一个主分区三个逻辑分区,则对应的0表示主分区,5表示逻辑分区1,6表示逻辑分区2,7表示逻辑分区3,如果一个硬盘有两个个主分区两个个逻辑分区,则对应的0表示主分区1,1表示主分区2,5表示逻辑分区1,6表示逻辑分区2,你硬盘有几个主分区几个逻辑分区要搞清楚),记的你安装是选择的分区然后输入该分区对应的数字,假设我们安装在逻辑分发区1,则输入5,在输入“)”,好了按enter返回。
移到kernel /vmlinuz,按e编辑,也是利用自动补全,删除vmlinuz,按TAB,会出现前面root指定分区根目录下的所有文件夹和文件,如果在这里出现了vmlinuz则说明你前面指定的分区没错,或者你输入v,在按TAB,则会列出所有以v打头的文件夹和文件(可以用来找文件),如果只有一个文件他直接会输入这个文件。
(在补充一下ubuntu安装的位置,如果是wubi装的,则在对应的分区有ubuntu文件夹,ubuntu内有disks(主要文件在这里),install,docs,winboot,disks中有boot文件夹,shared,root.disk(虚拟磁盘五wubi装的东西全都在里面,swap.disk,),boot中有个grub文件夹和vmlinuz和initrd.gz,grub中有menu.lst文件(启动配置文件)。如果是光盘安装的,安装位置我就不知道了,但你需要知道boot是独立分区还是在/下,)
如果你连装在哪个盘都了,当然可以使用使用grub的自动补全一个分区找,但是文件太多就效率太低,那么可以使用find –set-root 目录解构+文件名,让grub自动找某个文件所在分区并设为root,(要注意的就是目录结构你要说明了,否则grub也还是找不到,所以我前面补充了两种ubuntu的目录结构),如果你要vmlinuz所在分区,则输入find –set-root /vmlinuz,grub会自动在每个分区的根目录找寻vmlinux文件,找到就吧所在分区设为root,比如我们要找wubi安装的,我们就输入find –set-root /ubuntu/disks/root.disk,这样grub会尝试在每个分区找寻同样目录结构下是否存在root.disk,找到则把那个分区设为root,然后第2条命令由于wubi装的ubuntu的vmlinuz放在/ubuntu/disks/boot下,则输入kernel /ubuntu/disks/boot/vmlinuz,第3句也一样。如果光盘安装的就找/grub/menu.lst(boot有独立分区),/boot/grub/menu.lst(没有boot独立分区)
这样一番下来没错误就应该能启动了启动了。说明一点最好记原来kernel整个句子,因为vmlinuz后面跟的是内核参数,没有这些也是启动不起来的,而这个就不是grub能管的,你只要记下重新输入(也没多少就是指定根分区……之类的)
启动后就可以更写menu.lst到正确配置下次就不用这么麻烦了,菜鸟的我觉得使用grub最主要还是自动补全功能,在多说一句grub4dos功能强多了,系统维护可以用map功能启动很多软盘镜像,现在还可以直接启动光盘镜像(这功能好象还不怎么完善)。
增加启动xp安装在主分区1
titile windows xp
root(hd0,0)
chainloader /ntldr
启动dos.img(dos软盘镜像,,放在主分区1)
title dos
map --mem (hd0,0)/dos.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
启动光盘镜像(功能不完善,我启动ubuntu8.04光盘会花屏)
title iso
map –mem (hd0,0)/ubuntu.iso (hd32) //加载到内存比较慢
map –hook
chainloader (hd32)

title iso
map (hd0,0)/ubuntu.iso (hd32)
map –hook
chainloader (hd32)

本人菜鸟一个,请高手多多指教。


最后由 gududehuo 编辑于 2008-06-03 17:04,总共编辑了 1 次


_________________
评价: 3.85% Wesley_S
 
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-06-03 16:57 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
iso 挂到内存, 要注意内存够不够..


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-06-03 17:03 

注册: 2008-05-25 22:58
帖子: 92
送出感谢: 0 次
接收感谢: 1
1.5g还不够吗


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [分享]grub 出现file not found解决方法
帖子发表于 : 2014-10-24 10:23 

注册: 2014-06-04 14:42
帖子: 7
送出感谢: 1
接收感谢: 0 次
这个帖子帮了大忙了,多谢楼主~~~~ :em09


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译