无忧启动论坛

标题: 为什么用grub4dos在win 7下引导不了启动ISO文件,难道是bug [打印本页]

作者: 2011tc    时间: 2011-3-23 20:32
标题: 为什么用grub4dos在win 7下引导不了启动ISO文件,难道是bug
为什么用grub4dos在win 7下引导不了启动ISO文件

我在win7下按照grub4dos的教程这样增加启动项:
bcdedit /create /d "grub4dos" /application bootsector
bcdedit /set {id} device partition=c:                     


bcdedit /set {id} path \grldr.mbr                                    
bcdedit /displayorder {id} /addlast                                




增加完后下载了最新的grub4dos,然后把grldr.mbr和grldr拷贝到系统的C分区。
之后把要启动的lang.iso拷贝到C分区下,在menu.lst也拷贝到C分区下,menu.lst里按照教程那样编写
引导iso文件。

color blue/green yellow/red white/magenta white/magenta
#   设置菜单颜色
timeout 30
#   菜单等待时间
default /default
#   设置默认菜单项,需default文件配合,可参见目录索引 default 部分



title lang
#   设置菜单项标题
fallback 5
#    本项菜单执行出错的话就转到菜单项5(本菜单文件中为下一菜单项)继续执行
find --set-root /lang.iso
#   在所有设备的/0PE/目录下查找 0PE.ISO文件,找到的话就将该设备设为根
map /lang.iso (0xff) || map --mem /lang.iso (0xff)
#    先尝试将iso镜像直接仿真为 (0xff)(要求镜像连续存放),失败的话再将iso镜像载入内存仿真为(0xff)
map --hook
#   使仿真生效
chainloader (0xff)
#    从(0xff)设备启动
savedefault --wait=2
#   将当前菜单项保存为默认菜单项,下次再加载本菜单文件时自动将当前菜单项设置为默认菜单项



情况变成是这样的:



启动系统后会出现这两个菜单:
windows 7
lang



当选择lang后,会出现一个画面,里面看到了一句短的ntldr这样的字样,然后又回到了上面的菜单画面:
windows 7
lang

根本就没启动lang.iso文件,这很奇怪。

按照出现ntldr这样的字符说明到了grub4dos的启动去了,但却没有出现menu.lst的菜单里的title菜单,说明还没有到munu.lst去。

我到另外一台机子上试了下,这台机子可以启动,但有几台机子都是这样的问题。

是不是grub4dos有这样的bug问题:
由于C盘分区很大,并且是ntfs分区,然后grug4dos在启动引导时,由于分区很大而导致搜索不到menu.lst或者lang.iso这样的文件呢。

为什么会出现画面一闪,然后就回到了windows启动选择则启动项的画面呢

望grub4dos的高手告知下,谢谢!
作者: sratlf    时间: 2011-3-23 20:59
我能问一句  给win7增加启动项时  第二三四行命令里的 {id}  

是 {id} 这几个字符还是 第一行命令产生的id值
作者: 2011tc    时间: 2011-3-23 21:20
是第一行产生的id
作者: sratlf    时间: 2011-3-23 21:40
标题: 回复 #3 2011tc 的帖子
那就应该没问题  我就是好奇为什么菜单项名字为什么会是lang  现在看来是lz自行修改过了  菜单项应该是正常的

可以看下根目录下的grldr文件内置菜单是什么  以及menu.lst在什么位置  确保grldr能找到菜单文件

菜单正文如下


  1. color blue/green yellow/red white/magenta white/magenta
  2. default 0

  3. title lang
  4. find --set-root /lang.iso
  5. map --mem /lang.iso (0xff)
  6. map --hook
  7. chainloader (0xff)
  8. boot
复制代码

作者: 2011tc    时间: 2011-3-23 21:45
原帖由 sratlf 于 2011-3-23 21:40 发表
那就应该没问题  我就是好奇为什么菜单项名字为什么会是lang  现在看来是lz自行修改过了  菜单项应该是正常的

可以看下根目录下的grldr文件内置菜单是什么  以及menu.lst在什么位置  确保grldr能找到菜单文件 ...


问题的怪异就出现在这:为什么有些机子可以,有些机子不行?
如果说是找不到文件,为什么menu.lst的title菜单都没出现,如果出现这个菜单,然后选择,ok后,如果找不到iso文件,出错才是这个步骤上,为什么menu.lst的菜单都没出现,还是grldr根本没有找到menu.lst文件
作者: sratlf    时间: 2011-3-23 21:54
标题: 回复 #5 2011tc 的帖子
所以让你看下内置菜单是什么  如果没修改过就不用看了  可能就是其他原因
作者: 2011tc    时间: 2011-3-23 22:04
原帖由 sratlf 于 2011-3-23 21:54 发表
所以让你看下内置菜单是什么  如果没修改过就不用看了  可能就是其他原因


menu.lst的菜单就是这个:

color blue/green yellow/red white/magenta white/magenta
#   设置菜单颜色
timeout 30
#   菜单等待时间
default /default
#   设置默认菜单项,需default文件配合,可参见目录索引 default 部分



title lang
#   设置菜单项标题
fallback 5
#    本项菜单执行出错的话就转到菜单项5(本菜单文件中为下一菜单项)继续执行
find --set-root /lang.iso
#   在所有设备的/0PE/目录下查找 0PE.ISO文件,找到的话就将该设备设为根
map /lang.iso (0xff) || map --mem /lang.iso (0xff)
#    先尝试将iso镜像直接仿真为 (0xff)(要求镜像连续存放),失败的话再将iso镜像载入内存仿真为(0xff)
map --hook
#   使仿真生效
chainloader (0xff)
#    从(0xff)设备启动
savedefault --wait=2

直接拷贝教程里的例子然后修改的
作者: sratlf    时间: 2011-3-23 22:59
标题: 回复 #7 2011tc 的帖子
这个是外置菜单  还有一个是内置到grldr内部的内置菜单  内置菜单优先于外置菜单执行

这个只能靠你自己找到原因了  比如其他分区根目录下有同名文件等原因

还有一点  最好是明白菜单项的命令起什么作用后再进行修改  

比如你修改后的菜单项  应该去掉 fallback 5 一行  因为你的菜单文件只有一个菜单项  若执行时出现错误将按fallback命令跳转到第六菜单项执行  但实际第六菜单项不存在  就只能报错了
作者: 2011tc    时间: 2011-3-24 09:35
在点击lang菜单后,出现这个画面

后又返回
windows 7
lang

这个画面
作者: 2011tc    时间: 2011-3-24 09:45
用grub4dos内置菜单导出器导出的menu.lst里面内容是空的
不知道是grub4dos内置菜单导出器的问题还是grldr的问题
作者: 2011tc    时间: 2011-3-24 10:32
修改grldr的名字就搞定了,哈哈




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3