无忧启动论坛

标题: 不同的菜单写法导致PE不同的兼容性! 特殊的机器,特殊的U盘才存在? [打印本页]

作者: 无垠    时间: 2013-4-20 19:23
标题: 不同的菜单写法导致PE不同的兼容性! 特殊的机器,特殊的U盘才存在?
GRUB4DOS版本 0.4.5C 2012-05-22  新版本的没测试。

这些个PE,在虚拟机中测试都很正常。

前提:

我的慧荣3257enaa,银灿916d,都量产和Ud了自己的PE,测试过很多机子,包括04年的台式机和笔记本,都可以顺利启动,个别小内存的启动W8很慢,CPU不支持w8的不能启动。

今天,用闪迪DM8261 4G U盘,制作UD版,在07年浪潮(VIA)主板,启动遇到了我自己从未遇到的现象,方知道有些坛友反馈的问题的原因。





1、在这个机器上,我的慧荣3257enaa,银灿916d,量产了和Ud了自己的PE,非VBE菜单的,所有项目启动正常;
2、在这个机器上,我的慧荣3257enaa,银灿916d,量产了自己的PE,VBE菜单的,所有项目启动正常;
3、在这个机器上,我的慧荣3257enaa,银灿916d,UD了自己的PE,VBE菜单的,出现不了启动菜单,停留在有两行字母的界面;

4、在这个机器上,用闪迪DM8261 4G U盘 UD了非VBE菜单的pe,nvtive版的pe(包括分级启动和整体启动)找不到二级内核,进不了桌面、常规版的PE,能进桌面但加载不了外置工具;
5、在这个机器上,用闪迪DM8261 4G U盘 UD了VBE菜单的pe,出现不了启动菜单,停留在有两行字母的界面。

结论,制作pe,首先要选主控好的U盘,其次要选择合适的pe,兼容性才会好,才能适应大部分新老级,当然,没有100%。

我的写法不对还是版本老?
作者: 无垠    时间: 2013-4-20 19:23
我的UD版菜单

timeout 90
default 9
gfxmenu (ud)/boot/grub/m
configfile (md)4+8

iftitle [checkrange 0x23 read 0x8280]       【1】      启动快速Win8系统
echo $[1106] booting Fast win8, please wait ...
calc *0x82b9&0xff/2 && map  (ud)/uddiy/win8.ISO (0xff) ! map --mem (ud)/uddiy/win8.ISO (0xff)
map --hook
chainloader (0xff)

iftitle [checkrange 0x0,0x80 read 0x8280]       【1】      启动快速Win8系统
echo $[1106] booting Fast win8, please wait ...
checkrange 0x80 read 0x8280 && map  (ud)/uddiy/win8.ISO (0xff) ! map --mem (ud)/uddiy/win8.ISO (0xff)
map --hook
chainloader (0xff)


title       【2】      极速网络 03pe系统
(ud)/boot/grub/F6IMG
echo $[1106] booting Fast 03pe, please wait ...
map (ud)/boot/03pe.ISO (0xfa)
map --mem (ud)/boot/03.iso (0xff)
map --e820cycles=3
map --hook
chainloader (0xff)/WXPE/SETUPLDR.BIN

iftitle [checkrange 0x23 read 0x8280]       【3】      常规启动 03pe系统
(ud)/boot/grub/F6IMG
calc *0x82b9&0xff/2 && map  (ud)/boot/03pe.iso (0xff) ! map --mem (ud)/boot/03pe.iso (0xff)
map --e820cycles=3
map --hook
chainloader (0xff)/WXPE/SETUPLDR.BIN

iftitle [checkrange 0x0,0x80 read 0x8280]       【3】      常规启动 03pe系统
(ud)/boot/grub/F6IMG
checkrange 0x80 read 0x8280 && map  (ud)/boot/03pe.iso (0xff) ! map --mem (ud)/boot/03pe.iso (0xff)
map --e820cycles=3
map --hook
chainloader (0xff)/WXPE/SETUPLDR.BIN

iftitle [checkrange 0x23 read 0x8280]       【4】      启动常规xppe系统
calc *0x82b9&0xff/2 && map  (ud)/boot/XPPE.ISO (0xff) ! map --mem (ud)/boot/XPPE.ISO (0xff)
map --e820cycles=3
map --hook
chainloader (0xff)/WXPE/SETUPLDR.BIN

iftitle [checkrange 0x0,0x80 read 0x8280]       【4】      启动常规xppe系统
checkrange 0x80 read 0x8280 && map  (ud)/boot/XPPE.ISO (0xff) ! map --mem (ud)/boot/XPPE.ISO (0xff)
map --e820cycles=3
map --hook
chainloader (0xff)/WXPE/SETUPLDR.BIN

title       【5】      运行  Dos 工具大全
command (ud)/boot/grub/run --set-ext=.img (ud)/uddiy/MAXDOS.IMG

title       【6】      运行 自定 映像工具
command (ud)/boot/grub/run --set-ext=.img|.ima|.iso /uddiy/.AUTOMENU

title       【7】      绕过 win  密码登录      
echo $[1106] Loading Image, Please Wait ...
map --mem (ud)/imgs/KON.gz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title       【8】      运行 win  密码清除
echo $[1106] Loading apc Image, Please Wait ...
map --mem (ud)/imgs/PASSWORD.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title       【9】      运行Win7内存检测
map --mem (ud)/imgs/W7MT.GZ (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title       【0】      从 硬盘启动 计算机
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /ntldr || chainloader /bootmgr


VBA的:

command --set-path=(ud)/BOOT/GRUB/
timeout 300
default 9
splashimage /BOOT/GRUB/back.lzma
font /BOOT/GRUB/UNIFONT.HEX
graphicsmode -1 100:1000 100:1000 24:32
color normal=0x0F highlight=0x0E helptext=0x0A heading=0x02 standard=0x02 border=0x0D
call Fn.0 0x40000 "!BAT\necho -P:0000 $[0000]\t\t\t\t\t\t\t\t\t\0" && initscript (md)0x200+1
MENUSETTING 2 13 0 16 15 6 50 29
write 0x8274 0x2E01
      
iftitle [if exist (hd0)/grldr]  启动WIN8PE全能精简版 \n
echo $[1106] booting Fast win8, please wait ...
map (ud)/diy/win8.ISO (0xff)
map --hook
chainloader (0xff)

iftitle [if exist (fd0)/grldr]  启动WIN8PE全能精简版 \n
echo $[1106] booting Fast win8, please wait ...
map --mem (ud)/diy/win8.ISO (0xff)  
map --rehook
chainloader (0xff)

iftitle [if exist (hd0)/grldr]  常规启动2003PE网络版 \n
command (ud)/BOOT/GRUB/F6IMG
echo $[1106] booting Fast 03pe, please wait ...
map (ud)/boot/03pe.iso (0xff)
map --e820cycles=3
map --hook
chainloader (0xff) || chainloader (0xff)/WXPE/SETUPLDR.BIN

iftitle [if exist (fd0)/grldr]  常规启动2003PE网络版 \n
command (ud)/BOOT/GRUB/F6IMG
echo $[1106] booting Fast 03pe, please wait ...
map --mem (ud)/boot/03pe.iso (0xff)  
map --rehook
chainloader (0xff) || chainloader (0xff)/WXPE/SETUPLDR.BIN

title  启动2003PE极速网络版 \n
command (ud)/boot/grub/F6IMG
echo $[1106] booting Fast 03pe, please wait ...
map (ud)/boot/03pe.ISO (0xfa)
map --mem (ud)/boot/03.iso (0xff)
map --e820cycles=3
map --hook
chainloader (0xff) || chainloader (0xff)/WXPE/SETUPLDR.BIN

iftitle [if exist (hd0)/grldr]  启动微型常规XPPE系统 \n
echo $[1106] booting Fast xppe, please wait ...
map (ud)/diy/XPPE.ISO (0xff)
map --e820cycles=3
map --hook
chainloader (0xff) || chainloader (0xff)/WXPE/SETUPLDR.BIN

iftitle [if exist (fd0)/grldr]  启动微型常规XPPE系统 \n
echo $[1106] booting Fast xppe, please wait ...
map --mem (ud)/diy/XPPE.ISO (0xff)  
map --rehook
chainloader (0xff) || chainloader (0xff)/WXPE/SETUPLDR.BIN

title  启动MaxDOS全能工具箱 \n
echo $[1106] Loading Image, Please Wait ...
command (ud)/boot/grub/run --set-ext=.img (ud)/diy/MAXDOS.IMG
                                                            
title  运行 DIY目录自定工具 \n
command (ud)/boot/grub/run --set-ext=.img|.ima|.iso /diy/.AUTOMENU

title  绕过 WINDOWS密码登录 \n
echo $[1106] Loading Image, Please Wait ...
map --mem (ud)/BOOT/imgs/KON.gz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title  运行 WINDOWS密码清除 \n
echo $[1106] Loading apc Image, Please Wait ...
map --mem (ud)/BOOT/imgs/PASSWORD.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title  运行 WINDOWS内存检测 \n
map --mem (ud)/BOOT/imgs/W7MT.GZ (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
                        
title  启动 硬盘WIN操作系统  \n
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
map (hd0) ()
map () (hd0)
map --rehook
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
chainloader /ntldr || chainloader /bootmgr
boot

作者: 无垠    时间: 2013-4-20 19:24
我的量产版菜单:

timeout 90
default 7
gfxmenu /BOOT/GRUB/MESSAGE
configfile (md)4+8

title 【01】      启动Win8PE全能精简版
chainloader /boot/bcemgr

title 【02】      启动Win8X64PE精简版
chainloader /boot/bcfmgr

title 【03】      启动 W03PE 极速网络版
F6IMG
echo $[1106] Loading 03PE, Please Wait ...
find --set-root /WXPE/SET03LDR.BIN
chainloader /WXPE/SET03LDR.BIN

title 【04】      启动 常规WinXP精简版
echo $[1106] Loading XPPE, Please Wait ...
find --set-root /WXPE/SETUPLDR.BIN
chainloader /WXPE/SETUPLDR.BIN


title 【05】      运行 MaxDos9.3工具箱
map --mem /BOOT/IMGS/DOS.IMA (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title 【06】      Ghost备份/还原智能版
map --mem /BOOT/IMGS/OKDOS.IMA (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title 【07】      >>跳转到 增强功能菜单
configfile /BOOT/GRUB/run.lst

title 【08】      启动硬盘windows系统
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /ntldr || chainloader /bootmgr

VBA的:

timeout 300
default 9
splashimage /BOOT/GRUB/back.lzma
font /BOOT/GRUB/UNIFONT.HEX
graphicsmode -1 100:1000 100:1000 24:32
color normal=0x0F highlight=0x0E helptext=0x0A heading=0x02 standard=0x02 border=0x0D
call Fn.0 0x40000 "!BAT\necho -P:0000 $[0000]\t\t\t\t\t\t\t\t\t\0" && initscript (md)0x200+1
MENUSETTING 2 13 0 16 15 6 50 29
write 0x8274 0x2E01

title  启动 Win8X32PE全能版 \n
chainloader /boot/bcemgr

title  启动 Win8X64PE精简版 \n
chainloader /boot/bcfmgr

title  启动 W03PE极速网络版 \n
F6IMG
echo $[1106] Loading 03PE, Please Wait ...
find --set-root /WXPE/SET03LDR.BIN
chainloader /WXPE/SET03LDR.BIN

title  启动 常规WinXP精简版 \n
echo $[1106] Loading XPPE, Please Wait ...
find --set-root /WXPE/SETUPLDR.BIN
chainloader /WXPE/SETUPLDR.BIN


title  运行 MaxDos9.3工具箱 \n
map --mem /BOOT/IMGS/DOS.IMA (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title  运行 DIY目录自定文件 \n
command RUN --automenu /DIY/

title  绕过 Windows密码登录 \n
command /BOOT/GRUB/RUN /BOOT/IMGS/KON.gz

title  清除 Windows登录密码 \n
command /BOOT/GRUB/RUN /BOOT/IMGS/PASSWORD.IMG

title  运行 Windows内存检测 \n
map --mem /BOOT/IMGS/W7MT.GZ (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title  启动 硬盘Windows系统 \n
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /ntldr || chainloader /bootmgr
作者: 不点    时间: 2013-4-20 20:22
本帖最后由 不点 于 2013-4-20 20:47 编辑

已经有报道说,当用户使用 gfxmenu 时,会出现不可预料的问题。

看到你的菜单也是含有 gfxmenu 命令,不多说了 ……


另外,还发现你有 if exist (fd0)/... 之类的命令,这属于 “机器适应性” 错误用法。

就是说,在菜单中,不可以有访问真实软驱的动作,因为不少电脑的 BIOS 都有 bug,当访问 fd0 时,直接死机,或者假死(等待很长很长的时间才会活过来)。菜单中可以访问你自己用 map 建立的虚拟软驱,这没问题。但是不能访问主板 BIOS 所建立的软驱,因为恶意的 BIOS 会建立一个虚假的软驱,故意让 grub4dos 以及同类的开源软件发生死机。这个问题已经充分暴露了,所以,我们就把 if exist (fd0)/... 之类的用法当作错误的用法来对待了。这已经属于常规的错误了,可能你对此还不了解。



作者: 无垠    时间: 2013-4-20 20:28
本帖最后由 无垠 于 2013-4-20 20:34 编辑

0PE_NBv1.4.3(2012-06-19)2in1_83MB_FBA.

按一下两种方式格式化这个闪迪U盘:

按一下两种方式格式化这个闪迪U盘:





不论选哪项菜单,都进不了桌面,停留在如下画面,需冷启动重启:






而用慧荣3257主控的U盘,可以正常启动XPPE,和我的极速版启动时间一样。

看来,有些U盘就是不能做启动盘来用,不能启动不是PE的原因。
作者: 无垠    时间: 2013-4-20 20:39
不点 发表于 2013-4-20 20:22
已经有报道说,当用户使用 gfxmenu 时,会出现不可预料的问题。

看到你的菜单也是含有 gfxmenu 命令,不 ...

怪了,正相反,在这个机器上,gfxmenu 的启动正常,只是闪迪的U盘启动nvtive pe找不到二级内核,常规pe不能加载外置;在这个机器上,VBE菜单的会停留在只有两行字母的界面上,不出菜单。两个U盘都是,
作者: 不点    时间: 2013-4-20 20:53
5楼给出的图片都不属于 grub4dos 的范畴。那都表明,grub4dos 已经成功启动 PE,但是 PE 自己不能继续启动。

看看是不是你的 PE 不适应你的 BIOS,或者你的 PE 不喜欢你的 ud 启动方式?

无论哪一种,都可看成 PE 的错。


作者: 无垠    时间: 2013-4-20 21:35
本帖最后由 无垠 于 2013-4-20 21:45 编辑
不点 发表于 2013-4-20 20:53
5楼给出的图片都不属于 grub4dos 的范畴。那都表明,grub4dos 已经成功启动 PE,但是 PE 自己不能继续启动。 ...


原来遇到过软驱问题,这次在BIOS中关闭了软驱。

我的问题实际上是4个,1.U盘主控;2.电脑BIOS;3.菜单写法;4.pe
PE应该没问题,慧荣主控没问题,电脑BIOS兼容性不强,菜单写法VBE的在此电脑上有问题。

VBE菜单,在此机上停留在如下画面:



但量产的VBE菜单启动又没问题,郁闷了。
作者: 不点    时间: 2013-4-20 21:45
你犯了另外一个错误:没有试试最新版。

但从错误提示来看,已经进入 grub4dos,因此有可能是菜单的错误造成的。

注意我前面用红字提醒你的地方。


作者: 无垠    时间: 2013-4-20 21:46
本帖最后由 无垠 于 2013-4-20 21:52 编辑
不点 发表于 2013-4-20 21:45
你犯了另外一个错误:没有试试最新版。

但从错误提示来看,已经进入 grub4dos,因此有可能是菜单的错误造 ...


但量产的VBE菜单启动又没问题,郁闷了。


我把 非VBE菜单的中间部分 替换到VBE菜单中,也不行。弄不明白UD启动VBE的这个菜单到底错在哪?我去掉条件判断的语句再试试。
作者: 不点    时间: 2013-4-20 21:54
量产的情况,BIOS 环境变了,有可能不再存在那个有问题的、虚假的 fd0 了,所以问题消失了。

另外,究竟什么时候会出现这个假的、导致死机的 fd0,那是说不定的:完全看主板 BIOS 的 “嗜好”。它喜欢在什么情况下祭出这个恶意的 fd0,它就祭出了。不一定非得在普通 USB 启动的时候才祭出。

根据你的描述,你这个主板在量产时可能就不出现这个恶意的 fd0,因此你的菜单侥幸通过了。


作者: pseudo    时间: 2013-4-20 21:54
无垠 发表于 2013-4-20 20:28
0PE_NBv1.4.3(2012-06-19)2in1_83MB_FBA.

按一下两种方式格式化这个闪迪U盘:

只要启动有动静就好办了。
开始时有3秒读秒,按空格键,后面就应该没问题了。

3秒空格.JPG (21.16 KB, 下载次数: 149)

3秒空格.JPG

作者: 无垠    时间: 2013-4-20 21:56
pseudo 发表于 2013-4-20 21:54
只要启动有动静就好办了。
开始时有3秒读秒,按空格键,后面就应该没问题了。

我再试试。。。。。。。
作者: 无垠    时间: 2013-4-20 22:45
不点 发表于 2013-4-20 21:54
量产的情况,BIOS 环境变了,有可能不再存在那个有问题的、虚假的 fd0 了,所以问题消失了。

另外,究竟 ...

去掉条件判断语句,果然可以了。
作者: 无垠    时间: 2013-4-20 22:49
pseudo 发表于 2013-4-20 21:54
只要启动有动静就好办了。
开始时有3秒读秒,按空格键,后面就应该没问题了。

按空格,是相当于iso整体启动,加mem参数,可以了。

这个闪迪u盘在这台机器上,vbe菜单去掉条件判断语句,可以启动nvtive pe和常规PE到桌面了,但不能加载外置。全内置的pe可以;慧荣主控的在这台机子上就无问题。
作者: 快雪时晴    时间: 2013-4-20 23:15
阅读完LZ 两个帖子,记住2点:
关闭软驱;
不用iftitle
作者: 无垠    时间: 2013-4-20 23:21
快雪时晴 发表于 2013-4-20 23:15
阅读完LZ 两个帖子,记住2点:
关闭软驱;
不用iftitle

还有两点:

好主控的U盘
全内置的PE

符合这4点,基本就启动无忧了
作者: 无垠    时间: 2013-4-21 07:25
pseudo 发表于 2013-4-20 21:54
只要启动有动静就好办了。
开始时有3秒读秒,按空格键,后面就应该没问题了。

P大,在这台机器上,用这个闪迪的U盘,0PE只有菜单的第二项 按空格键 才能正常启动到桌面。第一项 按空格键 等加载完65M的文件后,一会儿直接启动了硬盘上的系统。
作者: pseudo    时间: 2013-4-21 18:31
无垠 发表于 2013-4-21 07:25
P大,在这台机器上,用这个闪迪的U盘,0PE只有菜单的第二项 按空格键 才能正常启动到桌面。第一项 按空格 ...

你试试第三菜单项,如果正常就没大问题了。
作者: mygamexxx    时间: 2013-4-22 13:14
以我的经验看,主板的原因与U盘主控的原因同时存在。
因为我使用Micro卡加读卡器的形式,出现两种情况:
1、同一Micro卡、同一读卡器在不同电脑上出现识别的不同,一台电脑是识别为0x00,另一台电脑识别为0x80。
2、同一Micro卡、不同读卡器在同一台电脑上,一只读卡器识别为0x00,另一只读卡器识别为0x80。
作者: 湛蓝阴影    时间: 2017-1-24 11:35
正在学习!!!
作者: 求道者    时间: 2017-1-26 11:02
所以LZ是G4D版本过低的问题还是软驱没关的问题?
然后楼主关掉软驱就OK了?




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