yjqd 发表于 2017-11-15 17:01:30

grldr启动后修改菜单再启动提示找不到文件

win7系统bootmgr加载的grldr,C盘有boot文件夹,我在F盘建立了boot文件夹,把grldr放在F盘根目录
我把ghost.img文件放在F盘的boot文件夹中

启动grldr后,修改菜单中的:
map --mem /boot/Win98.img (fd0)

map --mem /boot/ghost.img (fd0)

确认后启动提示找不到文件

root命令返回结果为(hd0,0),奇怪,根目录应该在F盘是(hd0,3),怎么变为(hd0,0)了呢

注:如果不修改菜单启动Win98.img又正常
----------------------------------------------------------------------------------------------
grldr菜单修改前如下

pxe detect
configfile
default 0
timeout 10
terminal console
find --set-root /grldr
font /boot/unifont.hex(3500汉字).GZ
graphicsmode -1 640:480
splashimage /boot/bj2008.xpm.gz
color normal=0x0187ec highlight=0xE0 helptext=0x0187ec heading=0x0187ec standard=0x0068b7 border=0x0068b7

title 启动WIN8PE和WIN7PE
chainloader /boot/bootmgr

title 使用map启动本地硬盘上的 Win98 软盘镜像文件
map --mem /boot/Win98.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title Grub 命令行
commandline

2011yaya2007777 发表于 2017-11-15 20:17:02

c盘根目录有grldr.

yjqd 发表于 2017-11-15 21:08:36

2011yaya2007777 发表于 2017-11-15 20:17
c盘根目录有grldr.

谢谢回复

我查看了,所有分区根目录只有F盘有grldr,bcd也是指向的F盘的grldr,即使某分区根目录有改名的grldr也应该不会影响吧

不点 发表于 2017-11-16 06:10:41

这问题自己肯定能找到原因,用不着费劲来问吧?难道会修改却不会调试?

2011yaya2007777 发表于 2017-11-16 06:47:27

把c盘的boot文件夹删除

yjqd 发表于 2017-11-16 08:28:44

不点 发表于 2017-11-16 06:10
这问题自己肯定能找到原因,用不着费劲来问吧?难道会修改却不会调试?

谢谢回复

调试 是指启动grldr时马上按insert键吗

yjqd 发表于 2017-11-16 08:33:26

2011yaya2007777 发表于 2017-11-16 06:47
把c盘的boot文件夹删除

谢谢回复

C盘的boot中的bcd指向的F盘的grldr,把c盘的boot文件夹删除了,grldr又怎么能启动呢

2011yaya2007777 发表于 2017-11-16 09:11:28

menu.lst应当在f盘。

2011yaya2007777 发表于 2017-11-16 09:12:11

你的根目录在c盘

yjqd 发表于 2017-11-16 09:39:46

2011yaya2007777 发表于 2017-11-16 09:12
你的根目录在c盘

win7是从c盘启动的,C盘的boot中的bcd指向F盘的grldr

我没有使用menu.ls,使用的是grldr内置菜单

不点 发表于 2017-11-16 20:52:02

yjqd 发表于 2017-11-16 08:28
谢谢回复

调试 是指启动grldr时马上按insert键吗

根据你的描述,你修改前,是正常的。你修改后不正常了。

你只要确定究竟是那一处修改造成的问题即可。

比方说,你修改了 10 个地方。你先恢复 9 个地方(保持修改前的状态),只留下一个修改,试试看行不行。如果这个修改就不正常了,那说明就是此处的修改造成的错误,这样就找到了根源。如果这个修改能正常运行,那就说明是其他 9 处的修改有问题。像这样,你逐一试验,总可以确定有毛病的修改,这样就找到了根源。

yjqd 发表于 2017-11-16 21:32:09

本帖最后由 yjqd 于 2017-11-16 21:33 编辑

不点 发表于 2017-11-16 20:52
根据你的描述,你修改前,是正常的。你修改后不正常了。

你只要确定究竟是那一处修改造成的问题即可。 ...

谢谢回复

grldr这个文件本身的内置菜单我没修改,只是在启动grldr后在菜单选项界面修改了一项,就是把启动的dos镜像名改成了新增加的dos镜像的名称,即原来是启动的Win98.img,改成启动ghost.img
修改
map --mem /boot/Win98.img (fd0)

map --mem /boot/ghost.img (fd0)

发现修改后确认,grldr所在的根目录就会改变,变成(hd0,0)

我确实还没找到根目录改变的原因

yjqd 发表于 2017-11-16 21:40:45

本帖最后由 yjqd 于 2017-11-16 21:46 编辑

不点 发表于 2017-11-16 20:52
根据你的描述,你修改前,是正常的。你修改后不正常了。

你只要确定究竟是那一处修改造成的问题即可。 ...

简单的说:

我的grldr原菜单,启动后只要不修改它,任何一个启动项都能正常启动,如果对菜单进行修改,不管修改多少,gfldr所在的目录都会返回到(hd0,0)

没表述准确,应该要把grldr目录固定在所在的分区这种修改除外

2011yaya2007777 发表于 2017-11-16 22:13:52

‘’只是在启动grldr后在菜单选项界面修改了一项,‘’前面说没有menu.lst菜单,那么引号里的菜单是什么?菜单选项界面是什么?这些怎么显示的?通过什么文件选择?

yjqd 发表于 2017-11-16 22:26:00

2011yaya2007777 发表于 2017-11-16 22:13
‘’只是在启动grldr后在菜单选项界面修改了一项,‘’前面说没有menu.lst菜单,那么引号里的菜单是什么 ...

不好意思,我没拍摄图片
=====================
我使用的是grldr内置菜单

引号中的选项是:使用map启动本地硬盘上的 Win98 软盘镜像文件

选中它,按E键就可看到具体内容:

map --mem /boot/Win98.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

我把Win98.img改成ghost.img,回车确认,再按B键启动,提示错误15,文件没发现

pseudo 发表于 2017-11-16 22:26:50

看样子楼主修改了grldr内置菜单。
请留意以下线索:
1、grldr的版本、日期?
2、用什么工具(名称、版本、日期)改的?

yjqd 发表于 2017-11-16 22:35:06

pseudo 发表于 2017-11-16 22:26
看样子楼主修改了grldr内置菜单。
请留意以下线索:
1、grldr的版本、日期?


谢谢回复

看来我要拍照片了,果机传图片不太方便

先说一下:
1、2016的grldr和2017的grldr都使用过
2、编辑grldr是用的grubmenu.exe,我还不知道怎样看它的版本,此贴中菜单的修改是指启动grldr后,在菜单选项界面进行的修改

yjqd 发表于 2017-11-16 23:07:29

pseudo 发表于 2017-11-16 22:26
看样子楼主修改了grldr内置菜单。
请留意以下线索:
1、grldr的版本、日期?


照片大于2m,重新捕获了一下

yjqd 发表于 2017-11-16 23:09:30

2011yaya2007777 发表于 2017-11-16 22:13
‘’只是在启动grldr后在菜单选项界面修改了一项,‘’前面说没有menu.lst菜单,那么引号里的菜单是什么 ...

yaya,我上传了照片

2011yaya2007777 发表于 2017-11-17 12:28:17

以 18 楼为基准讨论。
grldr 在 c 盘根目录。
win98.img 在 c:\boot\ 子目录。
ghost.img 在哪里?如果在 c:\boot\ 子目录,则修改正确。如果在 f:\boot\ 子目录,则应当是 map --mem (hd0,3)/boot/ghost.img (fd0)
前提是 f 对应 (hd0,3),这一点必须确认。

窄口牛 发表于 2017-11-17 12:51:01

改哪,哪就不行,意思是utf8编码问题?

yjqd 发表于 2017-11-17 13:44:25

不点 发表于 2017-11-16 20:52
根据你的描述,你修改前,是正常的。你修改后不正常了。

你只要确定究竟是那一处修改造成的问题即可。 ...

明白一些了:

第一种情况:
用win7的bootmgr加载grldr

如果这个grldr内置菜单没有用find --set-root /xxx,启动后,root命令结果是(hd0,0)也就是根目录是win7的bootmgr所在的目录C
如果这个grldr内置菜单用了find --set-root /xxx,启动后,root命令结果会是xxx所在的根目录,比如此帖中是在F盘,一旦对grldr启动后的菜单进行编辑,哪怕你选中菜单的某一项,按了E键,即使没编辑,回车后,按C键,输入root,root命令结果是(hd0,0),不知为什么会返回(hd0,0)

第二种情况:
用win7的bootmgr加载grldr.mbr

不管grldr.mbr放在哪个分区根目录,grldr内置菜单不管有没有用find --set-root /xxx,grldr放在哪个分区,启动后,root命令查看,它所在的根目录就是它所在的分区,比如放在E盘,root看到的就在E盘(当然,应该是(hdx,x)这各形式),如果放在F盘,root看到的就在F盘

并且对对grldr启动后的菜单进行编辑也不会自动返回目录到(hd0,0),修改后也能正常启动了

看来用win7的bootmgr加载grldr,内置菜单写上用find --set-root /xxx,如果启动后不编辑菜单,那么就可以不写绝对路径
如果启动后要编辑菜单,那么就老老实实的写上绝对路径

yjqd 发表于 2017-11-17 13:51:05

窄口牛 发表于 2017-11-17 12:51
改哪,哪就不行,意思是utf8编码问题?

不是utf8编码问题的问题

我的内置菜单用了find --set-root /grldr,但所有的启动项中都没用绝对路径,一旦对grldr启动后的菜单进行编辑,根目录会变成(hd0,0),当然会提示找不到文件,就启动不了

2011yaya2007777 发表于 2017-11-17 18:16:40

第一种情况:
用win7的bootmgr加载grldr
执行了 find --set-root /xxx,root命令结果才会是xxx所在的根目录。

菜单项包含这一指令,执行菜单就会执行这一指令。
如果编辑这一菜单项,菜单项内的所有指令都没有执行,此时进入命令行执行 root 指令,仍然是原来的根目录。

第二种情况:
用win7的bootmgr加载grldr.mbr
运行了 grldr.mbr,就相当于执行了 find --set-root /grldr,所以 root 指令返回新的根目录。

yjqd 发表于 2017-11-17 20:54:47

2011yaya2007777 发表于 2017-11-17 18:16
执行了 find --set-root /xxx,root命令结果才会是xxx所在的根目录。

菜单项包含这一指令,执行菜单就 ...

谢谢回复

我再想一想:

win7的C盘的bootmgr加载grldr这种情况,grldr不管放在哪个分区,它的原始命令目录就是bootmgr所在的C盘,
此贴中grldr放在(hd0,3),也就是F盘根目录,grldr内置菜单中,find --set-root /grldr只有一处,在加载字体和图片之前,所有 title 启动项之内都没有find --set-root /grldr
当启动grld后,图片、字体被加载了,说明find --set-root /grldr被执行了,而且此时root命令返回的结果是在(hd0,3),也就是F盘根目录
此时当我又编辑title 某启动项的内容时,确认后,再执行root命令,返回的结果是在(hd0,0),也就是C盘根目录

小结:
当启动grld后,如果对某title 启动项进行编辑,虽然没执行root (hd0,0),但仍然会从(hd0,3)返回到原始命令目录,就是bootmgr所在的C盘
================================================================
刚才我测试了一下,提前用grubmenu.exe对grldr的title 使用map启动本地硬盘上的 Win98 软盘镜像文件下面增加了find --set-root /grldr,其它没作任何更改
find --set-root /grldr
map --mem /boot/Win98.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

启动后,用root命令返回的结果是在(hd0,3),编辑map --mem /boot/Win98.img (fd0)为map --mem /boot/ghost.img (fd0),回车确认,再root命令返回的结果是在(hd0,0),再按B键启动,成功启动了ghost.img

小结:编辑时虽然目录从(hd0,3)变为(hd0,0),但执行时,find --set-root /grldr得到了执行,目录从(hd0,0)变为(hd0,3),所以成功启动了ghost.img

============================================
要是编辑时不返回原始命令目录就好了,写菜单可以少写点内容

2011yaya2007777 发表于 2017-11-17 21:28:31

这个现象没注意,挺奇怪。抽时间研究一下。

yjqd 发表于 2017-11-17 21:49:23

2011yaya2007777 发表于 2017-11-17 21:28
这个现象没注意,挺奇怪。抽时间研究一下。

可能是大家基本上都是把grldr放在C盘的,启动grldr后,不管修不修改启动菜单,它的目录都会在C盘

所以修改菜单后仍可能启动

2011yaya2007777 发表于 2017-11-18 08:27:20

修改菜单,或者修改grldr内置菜单
map --mem /boot/Win98.img (fd0)

map --mem /boot/Win981.img (fd0)
然后按c键进入命令行,root 命令返回 (hd0,6),没有改变。
你反映的问题没有证实。

上面帖子显示你没有使用grldr最新版本。请使用0.4.6a最新版本测试。

你是使用BOOTICE编辑的BCD文件? ”启动文件“设置为 f:\grldr?

yjqd 发表于 2017-11-18 08:36:45

2011yaya2007777 发表于 2017-11-18 08:27
修改菜单,或者修改grldr内置菜单
map --mem /boot/Win98.img (fd0)



谢谢回复

我用grub4dos-0.4.6a-2017-10-23.7也测试过
难道是我的电脑阴差阳错出了问题
我再去试一下

yjqd 发表于 2017-11-18 09:00:18

2011yaya2007777 发表于 2017-11-18 08:27
修改菜单,或者修改grldr内置菜单
map --mem /boot/Win98.img (fd0)



刚才测试了,用的 grub4dos-0.4.6a-2017-10-23.7z

情况还是如此
=======================================
BCD增加grldr启动项最早是用的微软的BCDEDIT命令,后来用的BOOTICE(有时记不住BCDEDIT命令了)

BOOTICE编辑时:

设备类型选的:partition
启动分区选的F盘

启动文件:
\grldr
页: [1] 2
查看完整版本: grldr启动后修改菜单再启动提示找不到文件