无忧启动论坛

标题: IMG或ISO预留菜单编辑请教 [打印本页]

作者: ggmm888    时间: 2010-10-2 12:21
标题: IMG或ISO预留菜单编辑请教
IMG或ISO预留菜单编辑请教
直接输入路径,回车运行IMG或ISO菜单
IMG或ISO菜单形式已固化
title  4: 运行 GHOST手动备份与恢复
find --set-root /boot/GHOST.IMG
map --mem /boot/GHOST.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 23: 运行 GHOST手动备份与恢复
find --set-root /boot/GHOST.ISO
map --mem /boot/GHOST.iso (hd32)
map --hook
chainloader (hd32)
boot
在grub4dos图形介面按E来编辑,感觉还是不简单,要是把/boot/GHOST.IMG这个路径用变量来代替,在提示窗口直接输入路径,回车运行IMG或ISO菜单,启动IMG或ISO。
title  4: 运行 GHOST手动备份与恢复
用grub4dos 外部命令 wenv ,在这里写%path%是什么(或者理简单的方法)
find --set-root %path%
map --mem %path% (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
作者: sratlf    时间: 2010-10-2 12:53
对img

title  img
WENV set input=$input,Input the path,begin with "/" :
WENV set IMG=$U,${input}
WENV run find --set-root ${IMG}
WENV run map --mem ()${IMG} (fd0)
map --hook
rootnoverify (fd0)
boot
作者: ggmm888    时间: 2010-10-2 13:50
多谢版主,要的就是它,多谢

但是:上面的命令,运行不成功
提示:
提示:
boot
Error 8:Kernel must be loaded before booting
press any key to continue……

8 : Kernel must be loaded before booting
解释 :8号错误表示执行 boot 命令之前没有先执行 kernel 命令

好几个IMG文件都不行,同样提示,如何修改
作者: ggmm888    时间: 2010-10-2 14:15
title  img
WENV set input=$input,Input the path,begin with "/" :
WENV set IMG=$U,${input}
WENV run find --set-root ${IMG}
WENV run map --mem ()${IMG} (fd0)
map --hook
rootnoverify (fd0)
boot

改成即可:(更改最后两行代码)
title  img
WENV set input=$input,Input the path,begin with "/" :
WENV set IMG=$U,${input}
WENV run find --set-root ${IMG}
WENV run map --mem ()${IMG} (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

多谢版主指点。
作者: sratlf    时间: 2010-10-2 15:19
标题: 回复 #4 ggmm888 的帖子
哦  写的时候给忘了  root那行应该在上面

map --hook
rootnoverify (fd0)
chainloader (fd0)+1
作者: ggmm888    时间: 2010-10-2 16:37
lianjiang大侠等等都是这么写的,

不过感觉应该先指定后运行启动,不知为什么大侠都这么写,就跟这走。

按您说的先指定后运行启动,也成功了。

下面是照葫芦画瓢写的, (grub4dos 外部命令 wenv [2010-06-20更新]  上面说的看不明白,我不懂WENV命令)
title  ISO
WENV set input=$input,Input the path,begin with "/" :
WENV set ISO=$U,${input}
WENV run find --set-root ${ISO}
WENV run map --mem ()${ISO} (0xff)
map --hook
chainloader (0xff)
boot


还有就是这个boot命令,有没有都成功,也不知加上好,还是去掉好。运行IMG镜像时,也有好多大侠加上了。
作者: sratlf    时间: 2010-10-2 17:05
标题: 回复 #6 ggmm888 的帖子
boot是在手动输入命令时用的  自己试下就知道  配置文件里是可有可无  

或许可以写简单些
WENV set input=$input,Input the path,begin with "/" :
WENV set ISO=$U,${input}
改成
WENV set ISO=$U,$input,Input the path,begin with "/" :
作者: ggmm888    时间: 2010-10-2 17:24
WENV set ISO=$U,$input,Input the path,begin with "/" :
精简运行正常

ISO=$U,${input}

${input}它前面的$U,是什么意义

多谢版主一直指导

如果加一个判断是IMG还是ISO,然后运行对应命令,就可以两个菜单合并了,这样才完美。

不用判断,自已知道是IMG还是ISO,直接加入命令,再次输入1运行IMG,输入2运行ISO

[ 本帖最后由 ggmm888 于 2010-10-2 17:49 编辑 ]
作者: pseudo    时间: 2010-10-2 22:01
0PE里有现成的可输入式IMG、pe/ISO启动器。

最好把GHOST.IMG命名为1,放在根目录,到时输入
/1就行。
作者: ggmm888    时间: 2010-10-3 07:49
ope是您的大作,亮点非常多,0PE的菜单就如编程,我们只能慢慢学习

这个菜单好处就是在可见分区直接可以运行程序,不用提前编辑MENU.LST菜单,不用放在指定的文件夹中,方便。

在grub4dos图形介面按E来编辑,就非常不错。
WENV命令只能一次加入,但还是感觉这样方便。
作者: sratlf    时间: 2010-10-3 09:13
标题: 回复 #8 ggmm888 的帖子
$U是wenv的特殊用法之一  是将输入字母全改为大写  同类还有$L  全改为小写

按1运行img  按2运行iso可行  不过就是有点麻烦  可以改成默认是img  输任意字符运行iso  你试下吧

WENV finf --set-root ${img}
wenv pause --wait=0 IMG as default, input ISO to load ISO
wenv set de=$input,Input please:
wenv get de || wenv run map --mem ()${img} (0xff) && map --hook && chainloader (0xff) && boot
wenv run map --mem ()${img} (fd0)
map --hook
rootnoverify (fd0)
chainloader ()+1

你试试吧  看行不行
作者: ggmm888    时间: 2010-10-4 09:25
标题: 回复 #11 sratlf 的帖子
运行出错

提示:
wenv命令解释
Input please:/boot/maxdos.iso
de=/boot/maxdos.iso
error 61: refuse to hook int13 because of empty drive map table
Press any key to continue...
作者: sratlf    时间: 2010-10-4 10:34
标题: 回复 #12 ggmm888 的帖子
不是  11#的是不完整的菜单  还要加上前面的  

完整的如下

title img&iso
WENV set path=$U, $input,Input the path, begin with "/" :
wenv run find --set-root ${path}
wenv pause --wait=0 IMG as default, input ISO to load ISO
wenv set de=$U,$input,Input please:
wenv get de=ISO && wenv run map --mem ${path} (0xff) && map --hook && chainloader (0xff) && boot
wenv run map --mem ${path} (fd0)
rootnoverify (fd0)
chainloader ()+1
boot
作者: sratlf    时间: 2010-10-4 10:48
title img&iso
wenv set path=$U,$input,Input the path:
wenv run find --set-root ${path}
wenv run write (md)300+1 ${path}
cat --locate=IMG (md)300+1 && wenv run map --mem ()${path} (fd0) && map --hook &&rootnoverify (fd0) && chainloader ()+1 && boot
cat --locate=ISO (md)300+1 && wenv run map --mem ()${path} (0xff) && map --hook && chainloader (0xff) && boot

也可以试试这个  优点是自动判断  缺点是可能判断不准

比如输入 /boot/imgs/add.iso  因为路径含有IMG  则将按IMG方式加载  肯定会出错
作者: ggmm888    时间: 2010-10-4 11:32
回复 #13

出现
Input please:
后停止
-------------------------------------------
回复 #14
ISO正常
img运行出错
提示:
Bootmgr is missing
press CTRL+ALT+DEL to restare

注:路径不含有IMG

---------------------------------------------------
下面这一个运行正常:
WENV set img=$U,$input,Input the path,begin with "/" :
WENV run find --set-root ${img}
wenv run map --mem ()${img} (0xff) && map --hook && chainloader (0xff) && boot
wenv run map --mem ()${img} (fd0)
map --hook
rootnoverify (fd0)
chainloader ()+1
boot

这个没有判断,就是直接运行,请版主优化修改
----------------------------------------------------
还有一个问题
就是无论是IMG或ISO,运行进入IMG或ISO里面看到菜单后,不能运行菜单,一运行就直接重新启动了。这个合grldr的版本关系很大吗?
grldr更新了几次使用都不行,只能使用旧版本。
注:菜单不变,IMG或ISO不变,只变grldr版本就可以正常运行。

[ 本帖最后由 ggmm888 于 2010-10-4 11:46 编辑 ]
作者: sratlf    时间: 2010-10-4 11:59
有点晕  13#那个出现input please后需要按回车或者输入iso  还是直接卡死在那什么都没反应

或者把wenv get de=ISO && wenv run map --mem改为wenv get de= || wenv run map --mem试试看

14#那个你测试的是什么img  我测试着没问题啊

img和iso都是什么内容的  启动成功的grldr是哪个版本的  失败的是哪个版本的
作者: ggmm888    时间: 2010-10-4 12:38
失败的版本:grldr是2010/8/12
ISO是MAXDOS.ISO 【090523】VeDe打造之-MaxDOS v7.1 强化版
我测试时只要进入IMG或ISO中的菜单
作者: ggmm888    时间: 2010-10-4 12:48
版主:我没有你的作品,测试就用
   我的dos工具箱 2010.09.28 136u          dos时代菜鸟的作品 dts136U.q.IMA
   【090523】VeDe打造之-MaxDOS v7.1 强化版     CWD的作品  maxdos.iso maxdos.img
测试出现input please后需要按回车或者输入iso、输入maxdos.img、输入/boot/maxdos.img
都不能成功运行。
错误提示:
Error25:disk read error

[ 本帖最后由 ggmm888 于 2010-10-4 12:52 编辑 ]
作者: sratlf    时间: 2010-10-4 12:55
换用新版的试试,昨天我测试时用的是0916版和dos时代菜鸟的工具箱,没问题
作者: sratlf    时间: 2010-10-4 13:03
想起来了,你换用新版的grldr试试,disk read error 这个是个bug,后来修复了
作者: ggmm888    时间: 2010-10-4 13:08
0916版的英文版grldr 和dos时代菜鸟的工具箱dts136u.q.ima
错误一样都不能运行
作者: ggmm888    时间: 2010-10-4 13:09
菜单:

title 31:直接输入路径,回车运行IMG或ISO菜单
command --set-path=/boot/grub/
WENV set path=$U, $input,Input the path, begin with "/" :
wenv run find --set-root ${path}
wenv pause --wait=0 IMG as default, input ISO to load ISO
wenv set de=$U,$input,Input please:
wenv get de=ISO && wenv run map --mem ${path} (0xff) && map --hook && chainloader (0xff) && boot
wenv run map --mem ${path} (fd0)
rootnoverify (fd0)
chainloader ()+1
boot

title 33:直接输入路径,回车运行IMG或ISO菜单
command --set-path=/boot/grub/
wenv set path=$U,$input,Input the path:
wenv run find --set-root ${path}
wenv run write (md)300+1 ${path}
cat --locate=IMG (md)300+1 && wenv run map --mem ()${path} (fd0) && map --hook &&rootnoverify (fd0) && chainloader ()+1 && boot
cat --locate=ISO (md)300+1 && wenv run map --mem ()${path} (0xff) && map --hook && chainloader (0xff) && boot

title 34:直接输入路径,回车运行IMG或ISO菜单
command --set-path=/boot/grub/
WENV set path=$U, $input,Input the path, begin with "/" :
wenv run find --set-root ${path}
wenv pause --wait=0 IMG as default, input ISO to load ISO
wenv set de=$U,$input,Input please:
wenv get de= || wenv run map --mem ${path} (0xff) && map --hook && chainloader (0xff) && boot
wenv run map --mem ${path} (fd0)
rootnoverify (fd0)
chainloader ()+1
boot
作者: sratlf    时间: 2010-10-4 13:23
这就奇怪了  title31  33是昨晚我测试的  用的是dos时代菜鸟的工具箱DTS.IMA  和ADDS.ISO  都能正常使用  

有错误截图没有  有的话贴上来我看下
作者: ggmm888    时间: 2010-10-4 13:24
最新版grldr英文版2010/10/03也不行,不提示错,提示按任意键时,返回到了菜单

我的菜单和grldr版本,img文件想和你保持一致,再测一下,希望找到原因 
作者: ggmm888    时间: 2010-10-4 13:26
dos时代菜鸟的工具箱 他的都有版本号,说出来我再测试。

grldr我的是英文版,
注:英文和中文不一样,以前就这个问题找了半天原因
作者: ggmm888    时间: 2010-10-4 13:29
截图不会,晚上照片吧
教我截图保存也好,正想学习呢
作者: sratlf    时间: 2010-10-4 13:31
工具箱用的是117  grub专版 136我今晚回去试下  grldr一直是英文版0916  就没用过中文版  还忘了你是实机测试还是虚拟机
作者: ggmm888    时间: 2010-10-4 13:56
工具箱用的是117有3个版本测那个

实机测试
作者: ggmm888    时间: 2010-10-4 14:27
工具箱用的是117有3个版本都实机测试了
菜单31:IMG格式不能运行,ISO格式Input please:输入ISO回车成功运行,不输入直接回车不能运行
菜单34:IMG格式不能运行,ISO格式Input please:输入ISO回车不能运行,不输入直接回车成功运行
菜单31和菜单34正相反。

菜单33,不能运行IMG,运行ISO正常

以上是grldr的英文版0916 版,工具箱用的是117的3个版本全测试
作者: ggmm888    时间: 2010-10-4 14:39
grldr的英文版0916 版,运行dts117.iso和maxdos.iso(【090523】VeDe打造之-MaxDOS v7.1 强化版)都不能进入ISO里面的菜单。
作者: sratlf    时间: 2010-10-4 15:36
29#测试结果算是正常  dos时代菜鸟工具箱测试时后缀名是ima还是img  这个对菜单33不一样

34没问题  是我理解反了  什么都不输入是iso  输入任何字符都是执行img加载

31  34 img加载失败确实是个问题

换用其他iso测试呢  那两个工具箱iso加载时也都会映射fd0  可能会有冲突
作者: ggmm888    时间: 2010-10-4 17:34
像这种情况,连DOS都不是,如何截图?

33自动菜单,缀名是ima还是img都是不成功。下面是错误图

自动菜单错误.jpg (120.96 KB, 下载次数: 198)

33自动菜单错误

33自动菜单错误

作者: ggmm888    时间: 2010-10-4 17:50
31菜单错误:

由于上传大小限制,本来就不清楚,不能直接上图。

下载附件看图

31菜单 .part1.rar

273.44 KB, 下载次数: 54, 下载积分: 无忧币 -2

第一次输入

31菜单 .part2.rar

212.99 KB, 下载次数: 35, 下载积分: 无忧币 -2

31输入后菜单 .part1.rar

273.44 KB, 下载次数: 42, 下载积分: 无忧币 -2

31输入后菜单 .part2.rar

222.11 KB, 下载次数: 29, 下载积分: 无忧币 -2


作者: ggmm888    时间: 2010-10-4 17:53
31菜单为输入/boot/maxdos.img后图片

31菜单为Input please:回车后图片
作者: zhs509    时间: 2010-10-4 17:58
版主能否发个成功的模板上来?
作者: sratlf    时间: 2010-10-4 18:42
实机测试就不能截图了  只能拍照  虚拟机测试可以截图  

抱歉  确实有点问题  等下我看看什么原因

[ 本帖最后由 sratlf 于 2010-10-4 18:53 编辑 ]
作者: ggmm888    时间: 2010-10-4 18:56
复制36#菜单,还是不成功,但我的电脑是个案

下面是chenall大侠的一个菜单,希望有帮助
command --set-path=(fd0)/grub/
default 0
timeout 5
root (fd0)
menuset 15 15 15 15 15 21 20 40 5 5 10
debug off
#初始化并设置默认参数。
write 0x60000 0
write 0x60100 0
WENV set VHD=/boot/boot.vhd
WENV set WIM=/boot/boot.wim
WENV set ramxp=/boot/ramxp.img
WENV set WinDir=windows
#检测NT5.X和nt6.x,并设为默认启动项,NT6.X优先启动。
WENV run find --set-root --ignore-cd --ignore-floppies /${WinDir}/system32/ntoskrnl.exe cat --locate=\0\x35\0\x2E /${WinDir}/system32/version.dll && write 0x60100 1 && default 0
WENV run find --set-root --ignore-cd --ignore-floppies /${WinDir}/system32/winload.exe && write 0x60100 2 && default 1

title 0.Boot into NT5.X \n\nBoot into Microsoft Windows XP/2000/2003\n\thttp://chenall.net\n\t\tby chenall 2010-08-08 Fujian
WENV run ECHO Find NT5.x on your hard disk drive. /${WinDir}
checkrange 1 read 0x60100 && fallback --go 5
WENV run find --set-root --ignore-cd --ignore-floppies /${WinDir}/system32/ntoskrnl.exe cat --locate=\0\x35\0\x2E /${WinDir}/system32/version.dll && fallback --go 5
WENV set WinDir=$input,Input your Windows PATH: || fallback --go 7
fallback --go 0
boot

title 1.Boot into NT6.X \n\nBoot into Microsoft Windows Vista/WIN7/2008\n\thttp://chenall.net\n\t\tby chenall 2010-08-08 Fujian
WENV run ECHO Find NT6.x on your hard disk drive. /${WinDir}
checkrange 2 read 0x60100 && fallback --go 6
find --set-root --ignore-cd --ignore-floppies /windows/system32/winload.exe && fallback --go 6
WENV set WinDir=$input,Input your Windows PATH: || fallback --go 7
##以下都是测试,替换BCD里面WINDOWS目录,我自己也没有用过不知能否正常使用。
WENV set tmp=${WinDir}
WENV get tmp=0x600000
WENV run write --offset=0x3F76 (fd0)/boot/bcd *0x600000
WENV set tmp=${WinDir}\system32\winload.exe
WENV get tmp=0x600000
WENV run write --offset=0x39A6 (fd0)/boot/bcd *0x600000
#返回本菜单重新查找。
fallback --go 1
boot

title 2.NT5.X from ramdisk \n\nBoot from /boot/ramxp.img \n\thttp://chenall.net\n\t\tby chenall 2010-08-08 Fujian
WENV get ramxp || fallback --go 7
WENV run ECHO find ${ramxp} on your hard disk drive..
WENV run find --set-root --ignore-cd --ignore-floppies ${ramxp} || WENV set ramxp=$input,Input new ramxp file path: && fallback --go 2
write --offset=0x22 (fd0)/boot.ini ramdisk(0)\\WINDOWS\r\n
WENV run write --offset=0x175 (fd0)/boot.ini ${ramxp}\r\n
cat --locate=/ --replace=\\ --skip=0x175 (fd0)/boot.ini
fallback --go 5
boot

title 3.Boot from .VHD \n\nBoot from .vhd file\n\thttp://chenall.net\n\t\tby chenall 2010-08-08 Fujian
##请参考菜单4的注释
WENV set tmp=$input,Enter path to the .VHD (default: /boot/boot.vhd): || fallback --go 7
WENV get tmp || WENV set tmp=${VHD}
WENV get tmp || fallback --go 7
WENV run ECHO find ${tmp} on your hard disk drive..
WENV run find --set-root --ignore-cd --ignore-floppies ${tmp} || fallback --go 3
write --offset=0x4E74 (fd0)/boot/bcd b
WENV get tmp=0x600000
cat --locate=\\x2F --replace=\\x5C (md)0x3000+3
WENV run write --offset=0x7D72 (fd0)/boot/bcd *0x600000
WENV run write --offset=0x82EA (fd0)/boot/bcd *0x600000
WENV calc cur_drv=*0x82A0 & 0x7F
WENV calc cur_pri=*0x829C >> 16 & 0xFFFF
WENV run ECHO Will Boot From VHD file:(hd${cur_drv},${cur_pri})${tmp}
fallback --go 6
boot

title 4.Boot from .WIM \n\nBoot from .WIM file\n\thttp://chenall.net\n\t\tby chenall 2010-08-08 Fujian
WENV set tmp=$input,Enter path to the .WIM (default: /boot/boot.wim): || fallback --go 7
WENV get tmp || WENV set tmp=${WIM}
#如果变量不存在,转到菜单7
WENV get tmp || fallback --go 7
WENV run ECHO find ${tmp} on your hard disk drive..
#查找文件,如果没有找到提示用户输入一个文件路径,并返回重新查找
WENV run find --set-root --ignore-cd --ignore-floppies ${tmp} || fallback --go 4
#本软盘BCD对应的特定语句,修改默认启动项
write --offset=0x4E74 (fd0)/boot/bcd a
#WENV 新的未公开功能。把变量的值ASCII字符串使用UNICODE编码放到内存0x600000(6M)位置。编码方式\xH1\0\XH2\0.....
WENV get tmp=0x600000
#替换路径字符中的/为\
cat --locate=\\x2F --replace=\\x5C (md)0x3000+3
#本软盘BCD对应的特定语句,修改文件路径
WENV run write --offset=0x76A0 (fd0)/boot/bcd *0x600000
WENV run write --offset=0x7A48 (fd0)/boot/bcd *0x600000
#获取当前磁盘编号
WENV calc cur_drv=*0x82A0 & 0x7F
WENV calc cur_pri=*0x829C >> 16 & 0xFFFF
WENV run ECHO Will Boot From WIM file:(hd${cur_drv},${cur_pri})${tmp}
fallback --go 6
boot

#5
title
DISKID ret=0x60004
WENV calc R=*0x60004 >> 24 & 0xff
WENV calc P=*0x60004 >> 16 & 0xff
root (fd0)
wenv run cat --locate=R --replace=${R} /boot.ini
WENV run cat --locate=P --replace=${P} /boot.ini
WENV run cat --locate=## --replace=${WinDir} /boot.ini
WENV run pause --wait=0 disk(${R})partition(${P})\${WinDir}......
pause --wait=2 Nt5.x Booting... && chainloader /boot/ntldr

#6
title
write 0x60004 0
write 0x60000 0
#获取当前磁盘签名
WENV calc cur_drv=*0x82A0 & 0x7F
WENV run dd if=(hd${cur_drv})+1 of=(md) bs=1 count=4 skip=0x1b8 seek=0x60000
#获取当前分区偏移
cat --length=0 ()-1
dd if=(md) of=(md) bs=1 count=8 skip=0x8290 seek=0x60008
#修改MBR签名
cat --locate=\x2E\xB5\x41\x7D --replace=*0x60000 (fd0)/boot/bcd
cat --locate=\0\x7E\0\0 --replace=*0x60008 (fd0)/boot/bcd
pause --wait=5 NT6.x Booting... && chainloader (fd0)/boot/bootmgr

#7
title
pause Press any key return to menu && configfile (fd0)/menu.lst
作者: sratlf    时间: 2010-10-4 19:17
原来的菜单确实有错误  已经修改  如下

title 31:直接输入路径,回车运行IMG或ISO菜单
WENV set path=$U,$input,Input the path, begin with "/" :
WENV run find --set-root ${path}
WENV run pause --wait=0 ISO as default, input IMG to load IMG
WENV set de=$U,$input,Input please:
WENV get de=IMG && WENV run map --mem ${path} (fd0) && map --hook && rootnoverify (fd0) && chainloader (fd0)+1 && boot
WENV run map --mem ${path} (0xff) && map --hook && chainloader (0xff) && boot
kernel

title 33:直接输入路径,回车运行IMG或ISO菜单
WENV set path=$U,$input,Input the path,begin with "/" :
WENV run write (md)300+1 ${path}
WENV run find --set-root ${path}
WENV run pause --wait=0 Now loading ${path} ...
cat --locate=ISO (md)300+1 && WENV run map --mem ()${path} (0xff) && map --hook && chainloader (0xff) && boot
cat --locate=IMG (md)300+1 && WENV run map --mem ()${path} (fd0) && map --hook && rootnoverify (fd0) && chainloader ()+1 && boot
cat --locate=IMA (md)300+1 && WENV run map --mem ()${path} (fd0) && map --hook && rootnoverify (fd0) && chainloader ()+1 && boot
kernel

title 34:直接输入路径,回车运行IMG或ISO菜单
WENV set path=$U, $input,Input the path, begin with "/" :
WENV run find --set-root ${path}
WENV run pause --wait=0 IMG as default, input ISO to load ISO
WENV set de=$U,$input,Input please:
WENV get de= || WENV run map --mem ${path} (fd0) && map --hook && rootnoverify (fd0) && chainloader (fd0)+1 && boot
WENV run map --mem ${path} (0xff) && map --hook && chainloader (0xff) && boot
kernel

这次应该没问题了
作者: ggmm888    时间: 2010-10-4 20:17
38#这次正确了

我想知道你在机了上用grldr的英文版0916 版运行dts117u.ima、dts117u.iso、dts117u.q.ima这3个镜像全部正常运行里面的菜单项了吗?

这次grldr一样,菜单一样,镜像一样,看看效果
作者: sratlf    时间: 2010-10-4 20:20
标题: 回复 #39 ggmm888 的帖子
可以  没问题  不过我手头现在只有dts117u.ima这一个  还是解压完后测试的

117版本比较特别  dts117u.ima和dts117u.iso是用grub映射的fd0  dts117u.q.ima是传统方式映射的fd0  和新的136u方式一样
作者: ggmm888    时间: 2010-10-4 20:25
我的也是解压使用的,好像见有人直接就是.gz这样用

我有两个ISO,一个是dts117u.iso和maxdos.iso两个都不正常

我再找一下ISO的其它镜像看看
作者: sratlf    时间: 2010-10-4 20:29
标题: 回复 #41 ggmm888 的帖子
压缩后的.gz确实可以直接用  而且体积更小  只不过进行pxe启动时花费的时间几乎是未压缩所用时间的两倍  所以我没压缩

刚才实机测试了下136u  下载下来未改动直接用菜单33启动  也可以正常启动  里面工具也正常
作者: sratlf    时间: 2010-10-4 20:31
dts117u.iso这个不正常我想是肯定的  实际上这个也是grub4dos做引导器  引导里面的ima压缩文件  

但是iso本身已经是映射出来的  再二次映射其他设备  肯定会有出错的地方
作者: ggmm888    时间: 2010-10-4 21:01
刚又测一遍
IMG镜像3个菜单全部正常
ISO镜像3个菜单全部不正常

dts117u.iso3个菜单全部出现提示符A
maxdos.iso3个菜单在运行镜像里面菜单时全部重启了

这是不是跟grldr版本有关
maxdos.iso使用grldr的20090620中文版正常

[ 本帖最后由 ggmm888 于 2010-10-4 21:04 编辑 ]
作者: sratlf    时间: 2010-10-4 21:09
标题: 回复 #44 ggmm888 的帖子
这就不知道了  你能不能把这两个上传一下  我测试看看

我手头只有adds的iso和系统的iso  这两个我测试都是正常的
作者: ggmm888    时间: 2010-10-4 21:11
下载:
网盘下载地址链接:
http://www.brsbox.com/filebox/do ... 1b541cc78bdfa17ec43

文件: VeDe_CD_090523.ISO          (仅需要IMG合盘的自行提取)
大小: 10946560 字节
修改时间: 2009年5月23日, 0:00:00
MD5: E911A131A7AE1A7E1A4FD91EA80C75C5
SHA1: 1F7025C741C09EC6B8DA60D1C8921D5A06848158
CRC32: 50BAA6B7

现在还是可以下载的
作者: sratlf    时间: 2010-10-4 21:25
下完看了下文件结构就明白了  和dts117u.iso结构一样  grub4dos的引导器  再映射img文件
作者: ggmm888    时间: 2010-10-4 22:35
map --hook不是就清空了,不会重复映射了
作者: ggmm888    时间: 2010-10-5 07:11
ISO镜像里面的grldr和外面grldr是同一版本时,映射出来的位置是相同的,是不是就正常了。


还是说iso本身已经是映射出来的  再二次映射其他设备  肯定会有出错的地方,这是必然的。
作者: sratlf    时间: 2010-10-5 08:08
标题: 回复 #49 ggmm888 的帖子
map  --hook可不是清空映射  相当于刷新下设备列表(我的理解)

第二种解释是对的  目前还不能进行二次映射  所以会出错

比较奇怪的是按你测试所说  090620版的可以  我只知道那个版本和以后的版本算是个分界线  具体更新了什么就忘了  这只能问不点大了
作者: ggmm888    时间: 2010-10-5 08:52
090620版是个分界线,所以我一直用它的中文版,(在记忆中当时090620版前面几个版都正常,因0523和0620之间并没有多少版本,所以有了外部和ISO里面一样时,就不会出错,没有实践,先看一下理论是否通过再实践)但有了SRS_F6这个就使用新英文版,跨度太大更新太多,试过好多新版本没有成功运行VeDe_CD_090523.ISO这个镜像

VeDe_CD_090523.ISO这个和IMG镜像不同,就是ISO直接有一个菜单和DOS.LST类似,img是用外面的DOS.LST调用的。
作者: sratlf    时间: 2010-10-5 09:00
标题: 回复 #51 ggmm888 的帖子
grub我是一直在跟着新版走  毕竟有新的功能和修正的bug

那两个iso实际结构都是一样的  没什么区别  加载这样的iso还不如直接加载里面的img  起码还能省点空间
作者: ggmm888    时间: 2010-10-5 09:08
多谢这么长时间的帮助,辛苦了
作者: sratlf    时间: 2010-10-5 18:04
WENV有更新
2010-10-05
   1.添加字符串处理功能,和linux shell类似.
      1).${VAR:x:y}  从x开始提取y个字符,如果x为负数则从倒数x个开始提取.

能截取字符串  那么取输入路径的最后三个字母就好判断了

[ 本帖最后由 sratlf 于 2010-10-5 19:56 编辑 ]
作者: paladin15    时间: 2010-10-6 15:41
标题: 根据两们以上的例子和wenv的更新重新编写MENU得
title 直接输入路径,回车运行IMG或ISO菜单
wenv set path=$input,Input full name of the file:
wenv run find --set-root ${path}
wenv set suffix=$U,${path##.}
wenv get suffix=ISO && wenv run map --mem ${path} (0xff) && map --hook && chainloader (0xff) && boot
wenv get suffix=IMG && wenv run map --mem ${path} (fd0) && map --hook && rootnoverify (fd0) && chainloader (fd0)+1 && boot
wenv get suffix=IMA && wenv run map --mem ${path} (fd0) && map --hook && rootnoverify (fd0) && chainloader (fd0)+1 && boot

[ 本帖最后由 paladin15 于 2010-10-6 16:16 编辑 ]
作者: paladin15    时间: 2010-10-6 16:34
标题: 不加判断也可以启动吗?
原帖由 sratlf 于 2010-10-5 18:04 发表
WENV有更新
2010-10-05
   1.添加字符串处理功能,和linux shell类似.
      1).${VAR:x:y}  从x开始提取y个字符,如果x为负数则从倒数x个开始提取.

能截取字符串 ...


经初步测试写成如下菜单,不加判断也可以启动
title 【 2 】直接输入路径,回车运行ISO、IMG或IMA
wenv set path=$input,Input full name of the file:
wenv run find --set-root ${path}
wenv run map --mem ${path} (0xff) && map --hook && chainloader (0xff) && boot
wenv run map --mem ${path} (fd0) && map --hook && rootnoverify (fd0) && chainloader (fd0)+1 && boot

顺便问下,wenv get de=IMG && ……,这句写成这样,前面的 wenv get de=IMG 有什么作用?判断吗?成立后才执行?
但我测试后,加上这句不影响后面语句的执行呀!
作者: sratlf    时间: 2010-10-6 18:45
标题: 回复 #56 paladin15 的帖子
这样写的确可以  但是在加载IMG时会执行两次map --mem  你不怕出错么

前面的 wenv get de=IMG 有什么作用?判断吗?成立后才执行?


确实是判断  不过现在判断有点问题  还没解决
作者: paladin15    时间: 2010-10-6 19:30
标题: wenv更新了,可以判断了。
今天又更新了,明天写可以判断的菜单。
作者: sratlf    时间: 2010-10-6 20:03
标题: 回复 #58 paladin15 的帖子
嘿嘿  已经解决了  上传新的菜单

一共四种  两种自动判断  两种手动判断  各取所需吧

IMGISO.zip

565 Bytes, 下载次数: 53, 下载积分: 无忧币 -2


作者: zhs509    时间: 2010-10-6 20:16
标题: 回复 #59 sratlf 的帖子
版主能否把必须的文件也打包一下?
作者: sratlf    时间: 2010-10-6 20:20
标题: 回复 #60 zhs509 的帖子
还是不要打包了  顶多两个文件  grldr和wenv

grldr来加载菜单文件  或者写入内置菜单  wenv提供变量支持 其他的就没了
作者: zhs509    时间: 2010-10-6 20:24
标题: 回复 #61 sratlf 的帖子
请问wenv放在什么位置?
作者: sratlf    时间: 2010-10-6 20:41
标题: 回复 #62 zhs509 的帖子
主菜单里进行指定  command --set-path=(hd0,2)/BOOT/GRUB  即wenv文件在/BOOT/GRUB下

(hd0,2)需要改成你自己的路径  CDROM启动的写(cd)  hdd启动的就自己看着办吧

[ 本帖最后由 sratlf 于 2010-10-6 20:43 编辑 ]
作者: paladin15    时间: 2010-10-6 20:49
不知道菜单后面加上 kernel 有什么用?
还有就是 cat --locate 这是怎么用的。
作者: sratlf    时间: 2010-10-6 20:55
标题: 回复 #64 paladin15 的帖子
假如之前都执行失败的话就执行kernel  人为制造错误  配合fallback进行返回操作

cat --locate 是查找字符串
作者: paladin15    时间: 2010-10-6 21:02
我是新手,可否麻烦版主帖几个教程和高级用法的地址,我好好学习下。
作者: sratlf    时间: 2010-10-6 21:05
标题: 回复 #66 paladin15 的帖子
这个是真没有  基本上都是看别人的菜单学的  比如pseudo和chenall  找些他们的作品看就行
作者: zhoubin    时间: 2010-10-7 08:12
有一个不成熟的想法,对于iso文件,可否增加一个,先加载firadisk或winvblock,再启动iso文件呢。。。。
这个我不懂,提出这个问题,我请教一下老大。。。。

[ 本帖最后由 zhoubin 于 2010-10-7 08:14 编辑 ]
作者: sratlf    时间: 2010-10-7 08:45
标题: 回复 #68 zhoubin 的帖子
可以是可以  不过那样的话菜单会很臃肿  真加firadisk的话就要把iso和img分开了
作者: zhoubin    时间: 2010-10-7 09:15
标题: 回复 #69 sratlf 的帖子
感谢sratlf 大的回复。。。。
昨天我把59楼的附件测试了一下:
1、title img&iso 和 title img&iso2 成功。。。。我这里保留了title img&iso2。。。。
2、title 31:img&iso  ISO as default 和 title 34:img&iso  IMG as default 失败。。。。个人感觉这两项可以不要。。。。
3、测试title img&iso 和 title img&iso2 时我加载了一个小型pe.iso,成功了,只是进入pe后没有外置程序,这才有了68楼的想法。。。。。。
再次感谢老大。。。。。

更正一下:
1、title 31:img&iso  ISO as default 和 title 34:img&iso  IMG as default 我没有仔细测试,我只是在输入路径后面直接输入:\LOADISO.IMG或者\pe.iso,才没有成功的。。。。
2、title img&iso 和 title img&iso2 还是比较方便的,在输入路径后面直接输入:\LOADISO.IMG或者\pe.iso,就可以了,比较傻瓜化,使用非常方便。。。。
谢谢sratlf 大。。。。

[ 本帖最后由 zhoubin 于 2010-10-7 09:46 编辑 ]
作者: paladin15    时间: 2010-10-7 09:41
标题: 好像判断还是不起作用呀
我测试了一个菜单
wenv set path=$input,Input full name of the file:
wenv run find --set-root ${path}
wenv set suffix=$U,${path##.}
wenv ${suffix}==ISO && echo 111111111111111111111111
wenv ${suffix}==IMG && echo 222222222222222222222222
wenv ${suffix}==IMA && echo 333333333333333333333333
执行后会显示111111111111111111111111222222222222222222222222333333333333333333333333
这个似乎还是没判断呀。
顺便问下,版主用大写的"WENV"可以执行吗?我会显示No such command
作者: paladin15    时间: 2010-10-7 10:06
标题: wenv又更新了,解决了判断问题
下载了wenv-2010-10-06++.zip后解决问题了。
作者: zhoubin    时间: 2010-10-7 10:16
关于68楼的问题。。。
推荐一贴(http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1),老大,看一下吧。。。
所以,我想请教一下老大,有没有必要再增加一个,对于iso文件,先加载firadisk或winvblock,再启动iso文件的功能呢?
谢谢老大。。。。
作者: sratlf    时间: 2010-10-7 10:54
标题: 回复 #73 zhoubin 的帖子
使用firadisk安装xp是早就有的方法了  不过现在是手机回帖  晚上回去后贴上菜单
作者: zhoubin    时间: 2010-10-7 11:35
谢谢老大的回复。。。。
我的意思是:
对于iso文件,增加一个 先加载firadisk或winvblock,再启动iso文件的功能。。。。
以便解决:
1、整体启动pe.iso找不到外置的情况。。。。
2、解决启动winxp.iso,安装winxp等一些其他情况。。。。
增加这个菜单的通用性。。。
sratlf 大,您的菜单写的非常好。。。
再次感谢sratlf 大。。。。
原帖由 sratlf 于 2010-10-7 10:54 发表
不过现在是手机回帖  晚上回去后贴上菜单

真不好意思,给您添麻烦了。。。。谢谢!!!!
作者: sratlf    时间: 2010-10-7 22:19
标题: 回复 #75 zhoubin 的帖子
回来晚了  现在贴上  首先说明菜单是自用的  路径不一定适用  看自己实际情况改

title  img&iso
clear
(hd-1,0)/BOOT/G4D/WENV run pause --wait=0 Please input ISO/IMG PATH or press Enter to use /WIN$.ISO as default.
(hd-1,0)/BOOT/G4D/WENV set path=$U,$input,Input PATH here, begin with "/" :
(hd-1,0)/BOOT/G4D/WENV ${path}== && (hd-1,0)/BOOT/G4D/WENV set path=/WIN$.ISO && pause --wait=0 Now use /WIN$.ISO as default.
(hd-1,0)/BOOT/G4D/WENV run find --set-root --ignore-floppies ${path}
(hd-1,0)/BOOT/G4D/WENV run pause --wait=0 Now loading ${path} ...
(hd-1,0)/BOOT/G4D/WENV set de=${path:-3:3}
(hd-1,0)/BOOT/G4D/WENV ${de}<>ISO && (hd-1,0)/BOOT/G4D/WENV run map --mem ${path} (fd0) && map --hook && rootnoverify (fd0) && chainloader (fd0)+1 && boot
cat --length=0 (hd-1,0)/BOOT/IMGS/FIRADISK.IMG && root (hd-1,0) || find --set-root --ignore-floppies /BOOT/IMGS/FIRADISK.IMG
map --mem ()/BOOT/IMGS/FIRADISK.IMG (fd1)
map --mem (md)0x6000+800 (fd0)
(hd-1,0)/BOOT/G4D/WENV run find --set-root --ignore-floppies --ignore-cd ${path}
(hd-1,0)/BOOT/G4D/WENV run map --mem ()${path} (0xff) || (hd-1,0)/BOOT/G4D/WENV run map ()${path} (0xff)
map --hook
dd if=(fd1) of=(fd0) count=1
(hd-1,0)/BOOT/G4D/WENV run pause --wait=0 Input D to boot from the disk,or press Enter to boot form the ISO.
(hd-1,0)/BOOT/G4D/WENV set in=$U,$input,Input here :
(hd-1,0)/BOOT/G4D/WENV ${in}==D || chainloader (0xff) && boot
find --set-root --ignore-floppies --ignore-cd /$LDR$ && ls /WIN_NT$.~BT/SETUPLDR.BIN && chainloader --force /$LDR$ && boot
find --set-root --ignore-floppies --ignore-cd /$LDR$ && ls /NTDETECT.COM && chainloader --force /$LDR$ && boot
find --set-root --ignore-floppies --ignore-cd /NTLDR && ls /NTDETECT.COM && chainloader --force /NTLDR && boot
kernel

或者用下面这种方式  确定WENV位置

USB-CDROM启动
checkrange 0x9f read 0x8280 && command --set-path=(cd)/BOOT/G4D

USB-HDD启动
checkrange 0x80 read 0x8280 && map (hd0) (hd-1) && map (hd1) (hd0) && map --rehook
checkrange 0x80 read 0x8280 && root (hd-1,0) && command --set-path=(hd-1,0)/BOOT/G4D

[ 本帖最后由 sratlf 于 2010-10-7 22:27 编辑 ]




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