标题: grub4dos传递参数的方法
lianjiang
大元帅
Rank: 8Rank: 8



UID 17218
精华 4
积分 104425
帖子 5932
威望 18128
阅读权限 99
注册 2002-5-9
发表于 2008-11-11 15:56  资料  主页 短消息  加为好友  QQ

grub4dos传递参数的方法

众所周知,BCDW有传递参数的功能,遗憾的是,只能用于光盘/ISO启动。
grub4dos作为一个启动管理器,功能强大,但可惜没有传递参数的功能。
时空论坛看到有人提出了此问题,zw2312914给出了解决的思路与办法。

感觉不错,转贴分享之。

原帖链接:http://bbs.znpc.net/viewthread.php?tid=5322&extra=page%3D1


Public:
就是能否在 menu.lst 文件里面设置怎样的路径链接,来直接运行 .img 里面的批处理程序吗
比如说 我有个dos.img 里面有 PQ.bat来运行魔术分区软件,DM.bat来运行DM程序,gho.bat来运行Ghost自动备份
C盘的操作等等。
我想在menu.lst 里面编辑一个菜单项,第1项加载PQ.bat,第2项加载DM.bat,第3项加载gho.bat
,但是这3个bat文件又都是同在一个dos.img里面的,(如果在各自不同的img文件里面的当然可以实现),请问一
下这个有办法解决吗??

-------------------------------------------
zw2312914:
第一个问题的实质是grub4和dos(操作系统)之间的参数传递的问题。
思考了一个方法,核心就是使用grub4目前唯一一个在文件系统内的写操作命令 savedefault 。然后在dos(操作系统)下对savedefault命令所保存的值进行判断,最后调用相应的批处理。
这个方法应该比写内存然后引导到dos(操作系统),更简洁和合理,而且也许扩展应用较大。

以楼主问题为例:

1.复制grub4dos下载包中的default文件到镜像中(镜像名是dos.img为例),并把default更名为default.txt。
2.在menu.lst中参照以下菜单项改写

title PQ.bat运行魔术分区软件
map --mem /dos.img (fd0)
map --hook
chainloader (fd0)+1
root (fd0)
default (fd0)/default.txt
savedefault 11
boot

title DM.bat来运行DM程序
map --mem /dos.img (fd0)
map --hook
chainloader (fd0)+1
root (fd0)
default (fd0)/default.txt
savedefault 22
boot

title 加载gho.bat
map --mem /dos.img (fd0)
map --hook
chainloader (fd0)+1
root (fd0)
default (fd0)/default.txt
savedefault 33
boot

3.在dos中增加一个bat,用来判断default.txt的开头字符,并根据这个字符值,调用需要加载的bat。

例如,choose.bat:

@echo off
find  "11" a:\defaut.txt  > nul
if not errorlevel 1  a:\PM.bat
find  "22" a:\defaut.txt  > nul
if not errorlevel 1  a:\DM.bat
find  "33" a:\defaut.txt  > nul
if not errorlevel 1  a:\GHOST.bat

(需注意:由defualt文件改名而来的default.txt,由于其中已有2 0 4 8 几个数字,所以savedefault时应避免与它相同。实际上只要保证写入前后deualt.txt文件的大小不变,即2048字节,可以自己建一个2048字节的空内容文本文件作为defualt.txt,不过不推荐这样做)
dos下准确和简洁的判断和处理,还是请教批处理高手吧。

[ 本帖最后由 lianjiang 于 2008-11-18 18:37 编辑 ]





顶部
天风
超级版主
Rank: 8Rank: 8
无忧MBA


UID 40023
精华 7
积分 30554
帖子 4651
威望 8278
阅读权限 150
注册 2004-3-1
来自 河南洛阳
发表于 2008-11-11 18:31  资料  短消息  加为好友  QQ

叹为观止。





╔═══════════════════╗
欢迎光临SYSOFT时空论坛!
╚═══════════════════╝
顶部
hyf678
下士
Rank: 2



UID 247814
精华 0
积分 243
帖子 13
威望 40
阅读权限 30
注册 2008-2-17
发表于 2008-11-11 20:48  资料  短消息  加为好友 

新人刚来,看不懂。。。太深奥了

顶部
lianjiang
大元帅
Rank: 8Rank: 8



UID 17218
精华 4
积分 104425
帖子 5932
威望 18128
阅读权限 99
注册 2002-5-9
发表于 2008-11-11 20:58  资料  主页 短消息  加为好友  QQ

简单讲,就是利用grub4ods的savedefault,向特定文件中写入特征数字,到dos后读取该特征数字,从而运行相应的程序。

以实现传递参数的功能。





顶部
barton
中将
Rank: 7Rank: 7Rank: 7


UID 118214
精华 0
积分 24917
帖子 2180
威望 6410
阅读权限 99
注册 2006-9-29
来自 Amoy
发表于 2008-11-12 08:31  资料  短消息  加为好友 

很强的应用。。。。。。。。。。。。。。





Melamine
顶部
woshiwo99
军士长
Rank: 3Rank: 3



UID 280919
精华 0
积分 949
帖子 51
威望 155
阅读权限 50
注册 2008-10-30
发表于 2008-11-14 19:11  资料  短消息  加为好友 

强。想得到就做得到!

顶部
tegl
上将
Rank: 8Rank: 8



UID 81579
精华 0
积分 28012
帖子 567
威望 1425
阅读权限 99
注册 2005-5-7
发表于 2008-11-14 19:22  资料  短消息  加为好友 
厉害,拜读一下,谢谢分享

顶部
xiangj
上尉
Rank: 4



UID 189841
精华 0
积分 2126
帖子 80
威望 52
阅读权限 70
注册 2007-3-25
发表于 2008-11-16 21:37  资料  短消息  加为好友 
这个方法很不错啊,就是不知道会不会出错.

顶部
tangfu
少尉
Rank: 4



UID 240669
精华 0
积分 1047
帖子 77
威望 239
阅读权限 70
注册 2007-12-18
发表于 2008-11-18 17:58  资料  短消息  加为好友 
感觉离应用还是有点距离,不过这是lz一种独特的见解跟创新哈,支持~~~

顶部
yichya (垃圾站站长)
上将
Rank: 8Rank: 8
VS2005 + WinCE6 = 10G


UID 261094
精华 0
积分 25402
帖子 6957
威望 21106
阅读权限 99
注册 2008-4-30
来自 河北省石家庄市
发表于 2008-11-18 18:00  资料  短消息  加为好友 
GRUB写入的本领还从来没体会过。。





X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
顶部
 



当前时区 GMT+8, 现在时间是 2010-9-3 18:08
闽ICP备05002490号

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 无忧启动 - Archiver - WAP