无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 23992|回复: 58

[已解决] UD识别为USB-zip时如何引导可见区PE!HHH333一语点破玄机。zhaohj进一步完善。

[复制链接]
发表于 2011-6-8 21:46:02 | 显示全部楼层 |阅读模式
最佳答案:43楼

同时感谢 dgxhls  zxw  mygamexxx 参与解答或测试。


==========================================================================================



一个1GB的U盘的UD,其grldr版本是20110524,外置菜单中关于启动 “启动U盘可见区 2003PE” 的内容如下:

  1. timeout 10
  2. default 0
  3. gfxmenu (bd)/IMGS/MESSAGE

  4. title  启动U盘可见区 2003PE
  5. find --set-root --ignore-floppies --ignore-cd /AXPE/SETUPLDR.BIN
  6. chainloader /AXPE/SETUPLDR.BIN
复制代码
该UD在识别为USB-hdd的机器上没有任何问题。而有一台机器,BIOS中没有USB-hdd启动项,只有USB-ZIP项,在该机UD能启动,但
执行
find --set-root --ignore-floppies --ignore-cd /AXPE/SETUPLDR.BIN
时,提示

error 15: file not find


遂改为:
  1. title  启动U盘可见区 2003PE
  2. find --set-root --ignore-cd /AXPE/SETUPLDR.BIN
  3. chainloader /AXPE/SETUPLDR.BIN
复制代码
此时提示
NTDETECT fail



正好手里还有另一个U盘做的UD,该UD内的grldr为20110128版,其内置菜单如下

  1. default 0
  2. timeout 0
  3. title find /AXPE/MENU.LST
  4. errorcheck off
  5. configfile /AXPE/MENU.LST
  6. find --set-root --ignore-floppies --ignore-cd /AXPE/MENU.LST && configfile /AXPE/MENU.LST
  7. errorcheck on
  8. commandline
  9. title commandline
  10. commandline
  11. title reboot
  12. reboot
  13. title halt
  14. halt
复制代码
该MENU.LST的关于启动PE的命令如下:
  1. title  [2]  运行Windows PE
  2. map --mem /AXPE/WINPE.ISO (0xff)
  3. map --hook
  4. chainloader (0xff)
复制代码
用此UD能够找到可见区的AXPE\ MENU.LST,并成功运行MENU.LST中的启动可见区的PE。


问题:如何解决UD被识别为USB-zip时,通过SETUPLDR.BIN启动可见区的PE?

[ 本帖最后由 chiannet 于 2011-6-11 14:27 编辑 ]
 楼主| 发表于 2011-6-9 06:03:01 | 显示全部楼层

回复 #2 dgxhls 的帖子

  1. title  启动U盘可见区 2003PE
  2. find --set-root /AXPE/SETUPLDR.BIN && chainloader /AXPE/SETUPLDR.BIN
复制代码
  1. title  启动U盘可见区 2003PE
  2. find --set-root --ignore-cd /AXPE/SETUPLDR.BIN
  3. chainloader /AXPE/SETUPLDR.BIN
复制代码
一个结果NTDETECT Fail。

从提示也能预测到,因为出现了NTDETECT Fail,证明find --set-root 命令已执行,chainloader命令也已执行,应当是SETUPLDR.BIN找不到AXPE所在分区。这就不知如何解决了。

[ 本帖最后由 chiannet 于 2011-6-9 06:04 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-9 06:41:59 | 显示全部楼层

回复 #4 hhh333 的帖子

  1. title  启动U盘可见区 2003PE
  2. find --set-root /AXPE/SETUPLDR.BIN
  3. if "%@root%"=="(fd0,0)" map (fd0) (hd0) && map (hd0) (hd) && map --hook && rootnoverify (hd0,0)
  4. chainloader /AXPE/SETUPLDR.BIN
复制代码
这样子吗?马上测试。

[ 本帖最后由 chiannet 于 2011-6-9 07:02 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-9 06:49:45 | 显示全部楼层

回复 #4 hhh333 的帖子

用上面的菜单,无论UD被识别为USB-HDD还是USB-ZIP都没问题了



[ 本帖最后由 chiannet 于 2011-6-9 07:03 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-9 09:39:14 | 显示全部楼层
这下为难了,现在身边没有那台机器,zhaohj 大提出的问题无法测试。

把move保存为(ud)/move这样子可以不?

  1. if "%@root%"=="(fd0,0)" map (fd0) (hd0) && (ud)/move && map --hook && rootnoverify (hd0,0)
复制代码

[ 本帖最后由 chiannet 于 2011-6-9 09:43 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-9 09:52:02 | 显示全部楼层
zhaohj 大,把move保存为(ud)/move这样子可以不?
回复

使用道具 举报

 楼主| 发表于 2011-6-9 09:58:21 | 显示全部楼层

回复 #12 zhaohj 的帖子

越发觉得grub4dos这课要恶补了。本地与PXE都离不开它。
回复

使用道具 举报

 楼主| 发表于 2011-6-10 14:08:21 | 显示全部楼层

回复 #18 mygamexxx 的帖子

楼上的兄弟,这样子改改move会怎样呢?move:
  1. !BAT
  2. set /a hd=*0x475&0xff+0x7f
  3. if %hd%==127 exit
  4. :move
  5. set /a hd1=%hd%+1
  6. map (%hd%) (%hd1%)
  7. set /a hd=%hd%-1
  8. checkrange 0x7f calc %hd% || goto :move
  9. exit
复制代码
if "%@root%"=="(fd0,0)" && move && map () (hd0) && map --hook && map --rehook &&  rootnoverify (hd0,0)

[ 本帖最后由 chiannet 于 2011-6-10 14:27 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-10 14:09:43 | 显示全部楼层
我现在在外面,没有办法测试。
回复

使用道具 举报

 楼主| 发表于 2011-6-10 14:36:42 | 显示全部楼层

回复 #21 mygamexxx 的帖子

move 的内容
  1. !BAT
  2. set /a hd=*0x475&0xff+0x7f
  3. if %hd%==127 exit
  4. :move
  5. set /a hd1=%hd%+1
  6. map (%hd%) (%hd1%)
  7. set /a hd=%hd%-1
  8. checkrange 0x7f calc %hd% || goto :move
  9. exit
复制代码



if "%@root%"=="(fd0,0)" (ud)/move && map (fd0) (hd0) && map --hook && rootnoverify (hd0,0)

看了18楼的TEST1与test2我觉得这样子是可以了!
回复

使用道具 举报

 楼主| 发表于 2011-6-10 16:58:10 | 显示全部楼层

回复 #21 mygamexxx 的帖子

22楼也失败了:ntdetect failed
回复

使用道具 举报

 楼主| 发表于 2011-6-10 17:32:42 | 显示全部楼层
测试的结果:
MOVE 内容:
  1. !BAT
  2. set /a hd=*0x475&0xff+0x7f
  3. if %hd%==127 exit
  4. :move
  5. set /a hd1=%hd%+1
  6. map (%hd%) (%hd1%)
  7. set /a hd=%hd%-1
  8. checkrange 0x7f calc %hd% || goto :move
  9. exit
复制代码
TEST1
  1. timeout 10
  2. default 3
  3. gfxmenu (bd)/IMGS/MESSAGE
  4. title  2003PE
  5. find --set-root /AXPE/SETUPLDR.BIN
  6. if "%@root%"=="(fd0,0)" (ud)/move && map (fd0) (hd0) && map --hook && map --rehook &&  rootnoverify (hd0,0)
  7. chainloader /AXPE/SETUPLDR.BIN
复制代码
用以上测试:NTDETECT failed



TEST2

事先运行(ud)/usb_acc.0pe  ##运行到这里时手动输入0,选择ptplt 5.10.2版驱动
在执行下列外置菜单
  1. timeout 10
  2. default 3
  3. gfxmenu (bd)/IMGS/MESSAGE

  4. title  2003PE
  5. find --set-root /AXPE/SETUPLDR.BIN
  6. if "%@root%"=="(fd0,0)" (ud)/move && map (fd0) (hd0) && map --hook && map --rehook &&  rootnoverify (hd0,0)
  7. chainloader /AXPE/SETUPLDR.BIN
复制代码
用以上测试:PE启动了!!USB鼠标灯不亮,无鼠标指针!而USB键盘正常工作。能看到本地硬盘。

TEST3
  1. timeout 10
  2. default 3
  3. gfxmenu (bd)/IMGS/MESSAGE
  4. title  2003PE
  5. find --set-root /AXPE/SETUPLDR.BIN
  6. if "%@root%"=="(fd0,0)" map (fd0) (hd0) && map --hook && rootnoverify (hd0,0)
  7. chainloader /AXPE/SETUPLDR.BIN
复制代码
用以上测试:PE启动正常了。键盘鼠标、硬盘都正常。

TEST4

事先运行(ud)/usb_acc.0pe  ##运行到这里时手动输入0,选择ptplt 5.10.2版驱动
在执行下列外置菜单
  1. timeout 10
  2. default 3
  3. gfxmenu (bd)/IMGS/MESSAGE
  4. title  2003PE
  5. find --set-root /AXPE/SETUPLDR.BIN
  6. if "%@root%"=="(fd0,0)" map (fd0) (hd0) && map --hook && rootnoverify (hd0,0)
  7. chainloader /AXPE/SETUPLDR.BIN
复制代码
用以上测试:PE启动了。!!USB鼠标灯不亮,无鼠标指针!而USB键盘正常工作。能看到本地硬盘。

[ 本帖最后由 chiannet 于 2011-6-10 17:39 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-10 18:54:49 | 显示全部楼层

回复 #26 zhaohj 的帖子

以下move的内容同24楼


  1. timeout 10
  2. default 3
  3. gfxmenu (bd)/IMGS/MESSAGE

  4. title  test1
  5. find --set-root /AXPE/SETUPLDR.BIN
  6. if "%@root%"=="(fd0,0)" (ud)/move && map (fd0) (hd0) && map --hook && map --rehook
  7. map --status
  8. ls  (hd0,0)/
  9. pause



  10. title  test2
  11. find --set-root /AXPE/SETUPLDR.BIN
  12. if "%@root%"=="(fd0,0)" (ud)/move && map () (hd0) && map --hook && map --rehook
  13. map --status
  14. ls  (hd0,0)/   
  15. pause
复制代码
TEST1运行结果图

DSCF0422.jpg


TEST2运行结果图:

DSCF0423.jpg

两次结果一样啊。显示的都是本地硬盘第一分区的内容

[ 本帖最后由 chiannet 于 2011-6-10 18:57 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-11 11:16:53 | 显示全部楼层

回复 #28 zhaohj 的帖子

下午我有空,可提供测试。咱们可联机,力争彻底解决这个问题。
回复

使用道具 举报

 楼主| 发表于 2011-6-11 12:45:54 | 显示全部楼层

回复 #31 mygamexxx 的帖子

25楼test3说明与操作符“&&”没有关系

是不是(ud)/move没有执行到合理的结果,导致其后的&&的内容没执行?

[ 本帖最后由 chiannet 于 2011-6-11 12:47 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-11 13:22:12 | 显示全部楼层

回复 #33 mygamexxx 的帖子

(ud)/move 的内容:
  1. !BAT
  2. set /a hd=*0x475&0xff+0x7f
  3. if %hd%==127 exit
  4. :move
  5. set /a hd1=%hd%+1
  6. map (%hd%) (%hd1%)
  7. set /a hd=%hd%-1
  8. checkrange 0x7f calc %hd% || goto :move
复制代码



  1. title  2003PE (非UD区)
  2. find --set-root /AXPE/SETUPLDR.BIN
  3. if "%@root%"=="(fd0,0)" (ud)/move && map (fd0) (hd0) && map --hook && map --rehook &&  rootnoverify (hd0,0)
  4. chainloader /AXPE/SETUPLDR.BIN
复制代码



成功了!!!!!!!
回复

使用道具 举报

 楼主| 发表于 2011-6-11 13:41:12 | 显示全部楼层
(ud)/movv 的内容:


  1. !BAT
  2. set /a hd=*0x475&0xff+0x7f
  3. if %hd%==127 exit
  4. :move
  5. set /a hd1=%hd%+1
  6. map (%hd%) (%hd1%)
  7. set /a hd=%hd%-1
  8. checkrange 0x7f calc %hd% || goto :move
  9. map --rehook
  10. exit
复制代码
以下两次pause,得到的结果与27楼图片一样。

  1. timeout 10
  2. default 3
  3. gfxmenu (bd)/IMGS/MESSAGE
  4. title  test
  5. find --set-root /AXPE/SETUPLDR.BIN
  6. map --status
  7. ls  (hd0,0)/
  8. pause
  9. if "%@root%"=="(fd0,0)" (ud)/movv && map (fd0) (hd0) && map --hook && map --rehook
  10. map --status
  11. ls  (hd0,0)/
  12. pause
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-6-11 13:45:51 | 显示全部楼层
(ud)/movv 的内容:
  1. !BAT
  2. set /a hd=*0x475&0xff+0x7f
  3. if %hd%==127 exit
  4. :move
  5. set /a hd1=%hd%+1
  6. map (%hd%) (%hd1%)
  7. set /a hd=%hd%-1
  8. checkrange 0x7f calc %hd% || goto :move
复制代码
以下两次pause,

第一次ls  (hd0,0)/是本地硬盘的内容。
第二次ls  (hd0,0)/是USB可见区的内容。
  1. timeout 10
  2. default 3
  3. gfxmenu (bd)/IMGS/MESSAGE
  4. title  test
  5. find --set-root /AXPE/SETUPLDR.BIN
  6. map --status
  7. ls  (hd0,0)/
  8. pause
  9. if "%@root%"=="(fd0,0)" (ud)/movv && map (fd0) (hd0) && map --hook && map --rehook
  10. map --status
  11. ls  (hd0,0)/
  12. pause
复制代码

[ 本帖最后由 chiannet 于 2011-6-11 13:49 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-11 13:52:26 | 显示全部楼层

回复 #40 zhaohj 的帖子

好,你给个适用于·解决此问题的标准move和应用代码吧。好结束此帖。
回复

使用道具 举报

 楼主| 发表于 2011-6-11 14:25:22 | 显示全部楼层

回复 #43 zhaohj 的帖子

是的,43楼是可以的。
move:
  1. !BAT
  2. set /a hd=*0x475&0xff+0x7f
  3. if %hd%==127 goto :eof
  4. :move
  5. set /a hd1=%hd%+1
  6. map (%hd%) (%hd1%)
  7. set /a hd=%hd%-1
  8. checkrange 0x7f calc %hd% || goto :move
  9. map --rehook
复制代码


这样也不行,会提示disk read error




所以43楼是标准兼最佳答案!
回复

使用道具 举报

 楼主| 发表于 2011-6-11 14:40:56 | 显示全部楼层
好的。我正好准备提此问题的。我估计不一定是plpbt本身,也许是P大的USB_ACC.0pe调整所致。我在备料。
回复

使用道具 举报

 楼主| 发表于 2011-6-11 14:56:36 | 显示全部楼层

  1. timeout 10
  2. default 3
  3. gfxmenu (bd)/IMGS/MESSAGE

  4. title  test
  5. uuid
  6. pause
  7. (ud)/USB_ACC.0PE
复制代码
我运行时(ud)/USB_ACC.0PE,是输入0,即选择5.10版驱动。
USB_ACC.0PE有个特性,加载了驱动后,会立即自动再次加载grldr菜单,图一是加载前,图二是加载后。


DSCF0424.jpg


DSCF0426.jpg

[ 本帖最后由 chiannet 于 2011-6-11 14:57 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-11 15:49:52 | 显示全部楼层
25楼test2test4启动PE还是没事,就是找不到USB鼠标,怎么解释?

[ 本帖最后由 chiannet 于 2011-6-11 15:51 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-6-11 16:05:34 | 显示全部楼层

回复 #48 zhaohj 的帖子

先move,再加速,原Hd0成了hd1。HD0的内容就是47楼图二拿一行



DSCF0427.jpg

[ 本帖最后由 chiannet 于 2011-6-11 16:10 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-11-14 07:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表