无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: chenall
打印 上一主题 下一主题

grub4dos 外部命令 wenv [2010-10-17 ]

  [复制链接]
1#
发表于 2010-5-25 09:26:42 | 显示全部楼层
不点,chenall,我今天在外面,突然想起了一个问题,我提个关于PXE的合理化建议。2010.5.23日更新之后,grub4dos查找菜单的顺序是menu.lst→MAC&IP→menu\default,结合本地的menu.lst,可能有两种情况:
1、本地和PXE采用同一个menu.lst菜单,本地的(hd),(ud),(cd)放在一个title里面,网络的(pd)放在里外一个title里面,而如果精通grub4dos的高级技巧,你甚至可以把本地和网络统一在一个title里面。这种情况没有问题。
2、另外一种,本地采用放在某个目录的(比如说boot)menu.lst菜单,网络直接采用menu\default菜单,这时候菜单查找的顺序又回到了以前速度较慢的那种模式,先找MAC&IP,找不到再找menu\default,事实上,可能没有多少人用MAC或者IP作为菜单名字,只是为了保持兼容才保留。
因此,我觉得是不是可以把查找菜单的顺序改成menu.lst→menu\default→MAC&IP?我在外面,没有具体测试过,自从2010.5.2日之后我一直是采用的menu.lst,删除了menu.lst\default目录及文件了。我怕错过了“grub4dos的PXE更新月”,所以赶快来反映下,这对我没有什么影响,不过从长远来看似乎这种检测模式更加合理点。
回复

使用道具 举报

2#
发表于 2010-5-25 09:52:11 | 显示全部楼层
楼上的,2010.5.23日,需要在tftp下面放置menu.lst的哦?不是main.lst,你放在哪里?怎么想到要改名字?g4d和grub一直秉承menu.lst菜单名,何必改名?
回复

使用道具 举报

3#
发表于 2010-5-26 10:33:40 | 显示全部楼层
chenall好像挺忙,菜单搜索顺序我查找了很多帖子,还是没能领会到这里面的奥秘。网上搜索也不知道具体何处下手,能给个简单的提示吗?
这个是最初测试g4d的PXE了。
2008-7-24http://bbs.znpc.net/viewthread.php?tid=5471&extra=page%3D10
2008-11-6http://bbs.znpc.net/viewthread.php?tid=5309&extra=page%3D5
Climbing在12#和76#提到了菜单顺序的问题:
http://bbs.znpc.net/viewthread.p ... muid=12697#pid32421
http://bbs.znpc.net/viewthread.p ... muid=12697#pid32570
还有bean的pxegrub:2007-4-18http://bbs.znpc.net/viewthread.php?tid=2931&highlight=pxe

[ 本帖最后由 liuzhaoyzz 于 2010-5-26 10:37 编辑 ]
回复

使用道具 举报

4#
发表于 2010-5-26 12:36:17 | 显示全部楼层
这个我知道,我说的意思是menu.lst→menu\default→MAC&IP好像更合理,chenall说不合理。
说到无盘或其他,如果想要MAC&IP菜单优先,删除menu.lst和default就能实现了吧,跳过这两个文件很快的,因为只要探测他是否在tftp上存在就行了,MAC&IP是否还要比较网卡的MAC&IP?
回复

使用道具 举报

5#
发表于 2021-2-10 16:30:53 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2021-2-10 16:33 编辑
不点 发表于 2017-1-20 21:22
wenv 已经过时,不再使用了。目前的外部命令都不需要 wenv 了。

        wenv外部命令好像不能完全被取代,比如变量里面的字符串截取功能,内置命令好像就做不到?

chenall的网址已经打不开了。友情重新分享下。@chenall


tuxw修改版本的wenv好像也很强大。


点评

能不能举个例子? 我看看可不可以单独写个外部命令。  详情 回复 发表于 2022-2-25 09:19
回复

使用道具 举报

6#
发表于 2022-2-25 10:36:26 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2022-2-25 10:48 编辑
wintoflash 发表于 2022-2-25 09:19
能不能举个例子?
我看看可不可以单独写个外部命令。

比如说用grub4dos用partnew方式启动veket:
title /linux/veket/v22.a-2022.02.02/veket_22.a.iso-partnew[not_recommend]
find --ignore-floppies --ignore-cd --set-root /linux/veket/v22.a-2022.02.02/veket_22.a.iso
map /linux/veket/v22.a-2022.02.02/veket_22.a.iso (hd32) ;; map --hook
set root=%@root% ;; find /boot/grub/wenv | set p= ;; %p%/boot/grub/wenv set x=${root%,},3) ;; partnew %x% 0x00 /linux/veket/v22.a-2022.02.02/veket_22.a.iso
kernel (hd32)/vmlinuz PSUBDIR=/ pmedia=cd pfix=fsck
initrd (hd32)/initrd.gz

partnew那段,就是把root=(hdx,y)这样子的替换为(hdx,3)这样子的,创建第四个MBR分区表项,主分区,用于“挂载”(我喜欢用这个形象但不准确的词语)linux.iso启动。
要想实现字符串替换,grub4dos内部命令似乎没有相关的函数语句(或者是我不知道),所以想要借用wenv外部命令处理字符串。

点评

[attachimg]496365[/attachimg] 直接截去后两个字符不行吗? 如果考虑超过9个分区情况的话可能不好办,你问问批处理大佬有没有解决方法。  详情 回复 发表于 2022-2-25 11:05
回复

使用道具 举报

7#
发表于 2022-2-25 11:11:12 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2022-2-25 13:38 编辑
wintoflash 发表于 2022-2-25 11:05
直接截去后两个字符不行吗?
如果考虑超过9个分区情况的话可能不好办,你问问批处理大佬有没有解决方 ...

很多细节的问题,用法我基本上快忘光了,wenv-tuxw-2011-05-23,有个wenv.chm,以前摸索着用的:
${VAR%%STRING}        删除STRING后面的字符,贪婪模式
WENV set a=ABCD;abcd;1234
WENV set b=${a%;}         得到b=ABCD;abcd
WENV set b=${a%%;}      得到b=ABCD

%p%/boot/grub/wenv set x=${root%,},3),意思是删除root=(hdx,y)里面的逗号以后的字符,得到(hdx,然后再加上,3),就得到了(hdx,3),这个是已经实现的代码,我已经用批处理写好了的,全自动写好批处理。
回复

使用道具 举报

8#
发表于 2022-2-25 11:20:35 | 显示全部楼层
wintoflash 发表于 2022-2-25 11:05
直接截去后两个字符不行吗?
如果考虑超过9个分区情况的话可能不好办,你问问批处理大佬有没有解决方 ...

你的这种字符串截取的用法,我是第一次见到,因为BIOS版本的grub4dos-help-2015-02-09.CHM里面,似乎没有这样子的说明啊。
这样子的用法,超过9个,的确感觉不好办,grub4dos的字符串截取,我没有研究过。
回复

使用道具 举报

9#
发表于 2022-2-25 19:24:01 来自手机 | 显示全部楼层
2011whp 发表于 2022-2-25 18:51
cat 分析 文章



厉害呀!感觉代码略微有点多。
echo -n也能实现吗?没看懂
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-7 02:56

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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