无忧启动论坛

标题: 试解读grub菜单和常见lst后缀菜单及学习思考 [打印本页]

作者: 20116339    时间: 2011-7-5 15:57
标题: 试解读grub菜单和常见lst后缀菜单及学习思考
理解grub菜单和常见lst后缀菜单及学习思考
在坛子上,经常能看到grub菜单例子,但什么意思是不太懂,百度查了一下,跟大家分享。例如果
title 【 1 】运行MAXDOS7.1加强版
map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0) || find --set-root /BOOT/IMGS/MAXDOS.IMG (fd0) && map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
上例**五行,现在分行解读
1、title行显示菜单目录是“运行MAXDOS7.1加强版”
2、映射()/BOOT/IMGS目录下的MAXDOS.IMG 文件,搜索并将这个映象所在分区(fd0) 作为启动分区
(&&)并将目录下的MAXDOS.IMG  加载到内存,并虚拟成软驱
3、map --hook 虚拟的软驱,立即生效
4、chainloader 从虚拟的软驱引导启动,此处'+1'是指示GRUB读入分区的第一个扇区的引导记录。
5、rootnoverify (fd0) 告诉引导程序说,我们是从软盘启动机器的。END。
map命令的不是馬上起作用的。map --mem 意思是说映射到内存中,后跟路径。但是,要從虛擬磁盤中啟動,就必須從中讀取數據,因此需要使映射提前起效。map --hook的作用便是使前面map命令指定的映射立刻生效,map --hook 命令激活 A 盘(fd0)或CDROM(0xff)的就地仿真。如果没有 map --hook 命令,那么后续的 chainloader (fd0)+1 命令就要寻找真实软驱的软盘介质上的内容,而不是我们想要的虚拟软盘上的内容。grub中chainloader +1 此处'+1'是指示GRUB读入分区的第一个扇区的引导记录。 chainloader (hdx,y)+1,其中x,y用来指明硬盘所在分区号。最后一条 rootnoverify (fd0) 告诉引导程序说,我们是从软盘启动机器的。

[ 本帖最后由 20116339 于 2011-7-11 11:03 编辑 ]

maxdos71.jpg (11.77 KB, 下载次数: 118)

菜单第一行

菜单第一行

ud71.jpg (33.68 KB, 下载次数: 118)

UD中MAXDOS所在位置

UD中MAXDOS所在位置

作者: 风神    时间: 2011-7-5 17:22
真是有心人啊,值得一看
作者: 3370123    时间: 2011-7-5 18:50
map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0) || find --set-root /BOOT/IMGS/MAXDOS.IMG (fd0) && map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0)


grub4dos区有最新的帮助文档
大多数命令,解释的还算清楚

[ 本帖最后由 3370123 于 2011-7-5 18:51 编辑 ]
作者: xt5525    时间: 2011-7-5 19:04

map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0) || find --set-root /BOOT/IMGS/MAXDOS.IMG (fd0) && map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0)



未实测
提个问题
红色部分可以这样写么?
作者: 3370123    时间: 2011-7-5 19:50
原帖由 xt5525 于 2011-7-5 19:04 发表



未实测
提个问题
红色部分可以这样写么?


应该不行,没有这个参数,但是grub4dos里面报错的却是  file not found

不建议这么用

QQ截图未命名.jpg (11.1 KB, 下载次数: 103)

QQ截图未命名.jpg

作者: 20116339    时间: 2011-7-5 21:14
原帖由 xt5525 于 2011-7-5 19:04 发表



未实测
提个问题
红色部分可以这样写么?

风神的FBA包我测试过,都是可行的,见http://bbs.wuyou.net/forum.php?mod=viewthread&tid=195833&extra=page%3D1
可看图:

maxfs.jpg (14.63 KB, 下载次数: 109)

maxfs.jpg

DOS.LST.jpg (61.18 KB, 下载次数: 108)

DOS.LST.jpg

作者: 20116339    时间: 2011-7-5 21:21
杏雨梨云U盘系统2011 SP1104 清明修正版_U盘系统中的disk.lst有
title
echo $[1106] Loading IMA Image, Please Wait ...
map --mem (ud)/imgs/dg.ima (fd0) || find --set-root /imgs/dg.ima && map --mem /imgs/dg.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title  
echo $[1106] Loading IMA Image, Please Wait ...
map --mem (ud)/imgs/adds.ima (fd0) || find --set-root /imgs/adds.ima && map --mem /imgs/adds.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
img或ima后少(fd0)也是可以的。2011 SP1104 清明修正版真的很好用的。。
作者: 3370123    时间: 2011-7-5 22:17
标题: 回复 #7 20116339 的帖子
他错你也跟着错?

map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0) || find --set-root /BOOT/IMGS/MAXDOS.IMG (fd0) && map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0)

这命令的意思是如果 map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0) 返回值假就执行 find --set-root /BOOT/IMGS/MAXDOS.IMG (fd0),就是说前面不出现错误的话就执行|| 后的find 命令,最后不管怎样都执行 && map 命令


所以这就是为什么你用起来却没什么问题的原因。
如果你把map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0) || 去掉看看有什么问题。


[ 本帖最后由 3370123 于 2011-7-5 22:18 编辑 ]
作者: 20116339    时间: 2011-7-6 08:07
原帖由 3370123 于 2011-7-5 22:17 发表
他错你也跟着错?

map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0) || find --set-root /BOOT/IMGS/MAXDOS.IMG (fd0) && map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0)

这命令的意思是如果 map --mem ()/BOOT/IMGS/M ...

谢谢你的指点。这个||后的语句看来有双保险的作用了的:|| 前的第一个command,就打比方说,在这个地方()/BOOT/IMGS/我一定能发现你(MAXDOS.IMG (fd0)),如果找不到,我给你个路径(FINDD-SET-ROOT),那你应该找得到吧还照样是(&&)执行||前的语句,这就叫双管齐下了。。。不知道这样理解对不对?
Ps:如果你把map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0) || 去掉看看有什么问题。
我就按你说的做了一下,结果如下,如图:


采用图片ok1--4的写法,都可以成功运行。请看旧帖:

map --mem还是不加MEM好?
我看了很多菜单,不知哪个好,大家能说说吗?谢谢
answered by chenall
不加--mem要求镜像要连续存放,而且不能压缩。不加就不占用内存,直接对这个镜像进行读写,下次启动后改动的内存还在。
--mem需要占用镜像大小的内存适用于镜像比较小的情况下比如软盘
--mem不需要镜像连续存放。所有的操作都是在内存里面的,如果你需要对这个镜像进行改动并保存的话就不能加--mem了。
具体要不要加需要看情况。
from:  http://bbs.wuyou.net/forum.php?mod=viewthread&tid=122398

这点与现在的RUN命令是很像的
(http://bbs.wuyou.net/forum.php?mod=viewthread&tid=191301&extra=page%3D2)
RUN --mem|--nomem ... ...
  确定后续文件(img镜像或iso镜像)是否map到内存再启动,本参数后可以跟任意其他参数或文件
  --mem 为后续文件一定载入内存再启动
  --nomem 为后续文件一定不载入内存,直接map启动
  注:如未使用--mem或--nomem参数,默认IMG/IMA/GZ文件载入内存再启动,ISO文件先尝试直接map启动,失败再载入内存启动
RUN --mem --fira iso=/WIN$.ISO
#使用/BOOT/IMGS/FIRADISK.IMG作为驱动文件,map至内存,可安装系统至物理磁盘(传统安装方法)
两种方式加载iso镜像
RUN /BOOT/IMGS/ADDS.ISO   #启动iso先尝试直接映射,失败后再载入内存
RUN --mem /PE.ISO      #启动iso会直接载入内存启动


[ 本帖最后由 20116339 于 2011-7-8 12:25 编辑 ]

set--root开头(no-ok).jpg (11.27 KB, 下载次数: 96)

如果没有前一语句,就不能用

如果没有前一语句,就不能用

set--root开头结果.jpg (8.65 KB, 下载次数: 102)

与INT13有关

与INT13有关

map-nomem.jpg (5.66 KB, 下载次数: 109)

不加MEM参数

不加MEM参数

map-no-memresult.jpg (11.84 KB, 下载次数: 116)

不加MEM参数,显示文件必须要连续

不加MEM参数,显示文件必须要连续

ok1.jpg (7.54 KB, 下载次数: 109)

与DOS的根目录相似

与DOS的根目录相似

ok2.jpg (8.01 KB, 下载次数: 106)

()表当前目录

()表当前目录

ok3.jpg (8.85 KB, 下载次数: 104)

(ud)表当前目录是fbinst的隐藏区

(ud)表当前目录是fbinst的隐藏区

ok4修正版.jpg (13.56 KB, 下载次数: 105)

双保险的正确模式

双保险的正确模式

作者: zxw    时间: 2011-7-6 08:46
find --set-root /BOOT/IMGS/MAXDOS.IMG (fd0)

到处流行这种错误的写法?多写个(fd0),无异画蛇添足!
find --set-root /BOOT/IMGS/MAXDOS.IMG
作者: 3370123    时间: 2011-7-6 09:10
grub4dos区置顶帖有说明文档

里面已经解释了常用的命令了

也有举例说明,去看就懂了
作者: 20116339    时间: 2011-7-6 09:36
原帖由 zxw 于 2011-7-6 08:46 发表

到处流行这种错误的写法?多写个(fd0),无异画蛇添足!
find --set-root /BOOT/IMGS/MAXDOS.IMG

我在这里是抛砖引玉的作用,能得到你们的指导,就是我们学习的最大动力。。看来还是大大的经典要多学习
作者: 20116339    时间: 2011-7-6 09:38
原帖由 3370123 于 2011-7-6 09:10 发表
grub4dos区置顶帖有说明文档

里面已经解释了常用的命令了

也有举例说明,去看就懂了

谢谢了,是这本经典吧,要认真读读。

grub.jpg (6.92 KB, 下载次数: 97)

grub.jpg

作者: 3370123    时间: 2011-7-6 09:48
标题: 回复 #13 20116339 的帖子
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1

是这本,2011年的
作者: 20116339    时间: 2011-7-6 10:17
原帖由 3370123 于 2011-7-6 09:48 发表
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=185938&extra=page%3D1

是这本,2011年的


有人点一点那学起来就像走捷径一样,谢了
作者: 20116339    时间: 2011-7-6 11:38
标题: 来自grub4dos-help-2011-05-04.chm的经典解释(还是要多看书啊)
发行版grub4dos压缩包中外置菜单menu.lst文件详解
#==================== 初始化命令组(菜单头)部分=========================
# This is a sample menu.lst file. You should make some changes to it.
# The old install method of booting via the stage-files has been removed.
# Please install GRLDR boot strap code to MBR with the bootlace.com
# utility under DOS/Win9x or Linux.

color blue/green yellow/red white/magenta white/magenta
#   设置菜单颜色
timeout 30
#   菜单等待时间
default /default
#   设置默认菜单项,需default文件配合,可参见目录索引 default 部分

#====================菜单项(菜单正文)=================================

title find and load NTLDR of Windows NT/2K/XP
#   设置菜单项标题
fallback 1
#    本项菜单执行出错的话就转到菜单项1(本菜单文件中为下一菜单项)继续执行
#    (本项菜单为菜单项0,菜单项从0开始编号)
find --set-root --ignore-floppies --ignore-cd /ntldr
#   在所有设备的根目录下查找 ntldr文件,忽略软驱和光驱设备,找到的话就将该设备设为根,未找到则执行 fallback 1
map () (hd0)
#   将 ntldr 所在设备(现在的当前设备) 映射为 第一磁盘(hd0)
map (hd0) ()
#   将 第一磁盘(hd0) 映射为 ntldr 所在设备(现在的当前设备)
map --rehook
#   使仿真生效
find --set-root --ignore-floppies --ignore-cd /ntldr
#   在所有设备的根目录下查找 ntldr文件,忽略软驱和光驱设备,找到的话就将该设备设为根
chainloader /ntldr
#    加载当前设备根目录下的 ntldr 文件
savedefault --wait=2
#   将当前菜单项保存为默认菜单项,下次再加载本菜单文件时自动将当前菜单项设置为默认菜单项

title find and load BOOTMGR of Windows VISTA/2K8/win7
#   设置菜单项标题
fallback 2
#    本项菜单执行出错的话就转到菜单项2(本菜单文件中为下一菜单项)继续执行
find --set-root --ignore-floppies --ignore-cd /bootmgr
#   在所有设备的根目录下查找 bootmgr文件,忽略软驱和光驱设备,找到的话就将该设备设为根,未找到则执行 fallback 2
map () (hd0)
#   将 ntldr 所在设备(现在的当前设备) 映射为 第一磁盘(hd0)
map (hd0) ()
#   将 第一磁盘(hd0) 映射为 ntldr 所在设备(现在的当前设备)
map --rehook
#   使仿真生效
find --set-root --ignore-floppies --ignore-cd /bootmgr
#   在所有设备的根目录下查找 bootmgr文件,忽略软驱和光驱设备,找到的话就将该设备设为根
chainloader /bootmgr
#    加载当前设备根目录下的 bootmgr 文件
savedefault --wait=2
#   将当前菜单项保存为默认菜单项,下次再加载本菜单文件时自动将当前菜单项设置为默认菜单项

title find and load CMLDR, the Recovery Console of Windows NT/2K/XP
#   设置菜单项标题
fallback 3
#    本项菜单执行出错的话就转到菜单项3(本菜单文件中为下一菜单项)继续执行
find --set-root --ignore-floppies --ignore-cd /cmldr
#   在所有设备的根目录下查找 cmldr文件,忽略软驱和光驱设备,找到的话就将该设备设为根,未找到则执行 fallback 3
map () (hd0)
#   将 ntldr 所在设备(现在的当前设备) 映射为 第一磁盘(hd0)
map (hd0) ()
#   将 第一磁盘(hd0) 映射为 ntldr 所在设备(现在的当前设备)
map --rehook
#   使仿真生效
find --set-root --ignore-floppies --ignore-cd /cmldr
#   在所有设备的根目录下查找 cmldr文件,忽略软驱和光驱设备,找到的话就将该设备设为根
chainloader /cmldr
#    加载当前设备根目录下的 cmldr 文件
#####################################################################
# write string "cmdcons" to memory 0000:7C03 in 2 steps:
#####################################################################
write 0x7C03 0x63646D63
#   step 1. Write 4 chars "cmdc" at 0000:7C03
#   ascii码对应关系: c-0x63h m-0x6Dh d-0x64h ,写入内存地址 0x7C03处
#   写入内存时需倒序写入,即想写入"cmdc"须写入“cdmc”,对应ascii码为 0x63646D63
write 0x7C07 0x00736E6F
#   step 2. Write 3 chars "ons" and an ending null at 0000:7C07
#   ascii码对应关系: o-0x6Fh n-0x6Eh s-0x73h ,写入内存地址 0x7C07处
#   写入内存时需倒序写入,即想写入"ons"须写入“sno”,对应ascii码为 0x00736E6F
savedefault --wait=2
#   将当前菜单项保存为默认菜单项,下次再加载本菜单文件时自动将当前菜单项设置为默认菜单项

title find and load IO.SYS of Windows 9x/Me
#   设置菜单项标题
fallback 4
#    本项菜单执行出错的话就转到菜单项4(本菜单文件中为下一菜单项)继续执行
find --set-root /io.sys
#   在所有设备的根目录下查找 io.sys文件,找到的话就将该设备设为根
chainloader /io.sys
#    加载当前设备根目录下的 io.sys 文件
savedefault --wait=2
#   将当前菜单项保存为默认菜单项,下次再加载本菜单文件时自动将当前菜单项设置为默认菜单项

title find and boot 0PE.ISO
#   设置菜单项标题
fallback 5
#    本项菜单执行出错的话就转到菜单项5(本菜单文件中为下一菜单项)继续执行
find --set-root /0PE/0PE.ISO
#   在所有设备的/0PE/目录下查找 0PE.ISO文件,找到的话就将该设备设为根
map /0PE/0PE.ISO (0xff) || map --mem /0PE/0PE.ISO (0xff)
#    先尝试将iso镜像直接仿真为 (0xff)(要求镜像连续存放),失败的话再将iso镜像载入内存仿真为(0xff)
map --hook
#   使仿真生效
chainloader (0xff)
#    从(0xff)设备启动
savedefault --wait=2
#   将当前菜单项保存为默认菜单项,下次再加载本菜单文件时自动将当前菜单项设置为默认菜单项

title find and boot MicroPE.ISO
#   设置菜单项标题
fallback 6
#    本项菜单执行出错的话就转到菜单项6(本菜单文件中为下一菜单项)继续执行
find --set-root /boot/MicroPE.ISO
#   在所有设备的/boot/目录下查找 MicroPE.ISO文件,找到的话就将该设备设为根
map /boot/MicroPE.ISO (0xff) || map --mem /boot/MicroPE.ISO (0xff)
#    先尝试将iso镜像直接仿真为 (0xff)(要求镜像连续存放),失败的话再将iso镜像载入内存仿真为(0xff)
map --hook
#   使仿真生效
chainloader (0xff)
#    从(0xff)设备启动
savedefault --wait=2
#   将当前菜单项保存为默认菜单项,下次再加载本菜单文件时自动将当前菜单项设置为默认菜单项

title Parted Magic ISO
#   设置菜单项标题
fallback 7
#    本项菜单执行出错的话就转到菜单项7(本菜单文件中为下一菜单项)继续执行
find --set-root /pmagic.iso
#   在所有设备的根目录下查找 pmagic.iso文件,找到的话就将该设备设为根
map /pmagic.iso (0xff) || map --mem /pmagic.iso (0xff)
#    先尝试将iso镜像直接仿真为 (0xff)(要求镜像连续存放),失败的话再将iso镜像载入内存仿真为(0xff)
map --hook
#   使仿真生效
chainloader (0xff)
#    从(0xff)设备启动
savedefault --wait=2
#   将当前菜单项保存为默认菜单项,下次再加载本菜单文件时自动将当前菜单项设置为默认菜单项

title Ultimate Boot CD ISO
#   设置菜单项标题
fallback 8
#    本项菜单执行出错的话就转到菜单项8(本菜单文件中为下一菜单项)继续执行
find --set-root /ubcd.iso
#   在所有设备的根目录下查找 ubcd.iso文件,找到的话就将该设备设为根
map /ubcd.iso (0xff) || map --mem /ubcd.iso (0xff)
#    先尝试将iso镜像直接仿真为 (0xff)(要求镜像连续存放),失败的话再将iso镜像载入内存仿真为(0xff)
map --hook
#   使仿真生效
chainloader (0xff)
#    从(0xff)设备启动
savedefault --wait=2
#   将当前菜单项保存为默认菜单项,下次再加载本菜单文件时自动将当前菜单项设置为默认菜单项

title commandline
#   设置菜单项标题
commandline
#   进入命令行模式

title floppy (fd0)
#   设置菜单项标题
chainloader (fd0)+1
#   链式加载(fd0)的第一个扇区内容
rootnoverify (fd0)
#   设置(fd0)为根设备,root在设置根设备前,会测试一下该分区的文件系统是否可以识别,而rootnoverify则省略这一测试

title back to dos
#   设置菜单项标题
quit
#   返回到dos环境(如果是从dos环境进入grub4dos环境的话)

title reboot
#   设置菜单项标题
reboot
#   重新启动计算机

title halt
#   设置菜单项标题
halt
#   关闭计算机

title MAXDOS.IMG
#   设置菜单项标题
find --set-root --ignore-floppies /boot/MAXDOS.IMG
#   在所有设备的/boot/目录下查找 MAXDOS.IMG文件,忽略软驱设备,找到的话就将该设备设为根
map --mem /boot/MAXDOS.IMG (fd0)
#   将img镜像载入内存后仿真为第一软驱(fd0)
map --hook
#   使仿真生效
chainloader (fd0)+1
#   链式加载(fd0)的第一个扇区内容
rootnoverify (fd0)
#   设置(fd0)为根设备,root在设置根设备前,会测试一下该分区的文件系统是否可以识别,而rootnoverify则省略这一测试

来自   http://grub4dos-help-doc.googlecode.com/files/grub4dos-help-2011-05-04.zip

[ 本帖最后由 20116339 于 2011-7-6 12:04 编辑 ]
作者: 风神    时间: 2011-7-6 20:44
学到不少东西啊,我的那个命令大概也有问题。前两天遇到一hp笔记本,运行password,已经进入password的菜单,再往后就很慢,光标闪,不进去。第一次遇到这样的问题,其他的机器没遇到过,如图

[ 本帖最后由 风神 于 2011-7-6 20:46 编辑 ]

100.jpg (25.5 KB, 下载次数: 81)

100.jpg

作者: 20116339    时间: 2011-7-7 00:43
原帖由 zxw 于 2011-7-6 08:46 发表

到处流行这种错误的写法?多写个(fd0),无异画蛇添足!
find --set-root /BOOT/IMGS/MAXDOS.IMG

你的这个说法有什么根据吗?是不是两种写法都可以呢?都能用呢?
我今天找了一下大大们的作品也是有(fd0),(0xff)等等的。如下:
HPY外置分离全藏入UD版合盘_V7.31.fba 的grldr菜单
title 【 2 】运行Win7PE维护用网络版
map ()/BOOT/WIN7PE.ISO (0xff) || find --set-root /BOOT/WIN7PE.ISO (0xff) && map ()/BOOT/WIN7PE.ISO (0xff)
map --hook
chainloader (0xff)
title 【 6 】运行 GHOST11备份与恢复
map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0) || find --set-root /BOOT/IMGS/MAXDOS.IMG (fd0) && map --mem ()/BOOT/IMGS/MAXDOS.IMG (fd0)
map --hook
dd if=(fd0)/CONFIG.SYS of=(fd0)/CONFIG.SYS bs=1 skip=123 count=1 seek=146
write --offset=921 (fd0)/AUTOEXEC.BAT call GH.bat
chainloader (fd0)+1
rootnoverify (fd0)
我心如水_PE_16.99.UD_珍藏版 的menu.lst
title [ 5 ] FS_DOS 引导
map --mem ()/IMGS/FSDOS.IMA (fd0) || find --set-root /IMGS/FSDOS.IMA (fd0) && map --mem ()/IMGS/FSDOS.IMA (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

天意U盘维护系统正式版1.2.fba 的grldr菜单
title 【02】 运行Win7PE精简网络版
map --mem (bd)/BOOT/WIN7PE.ISO (0xff) || find --set-root /BOOT/WIN7PE.ISO (0xff) && map --mem (bd)/BOOT/WIN7PE.ISO (0xff)
map --hook
chainloader (0xff)
title 【04】 一键安装Ghost到C盘(TYPE目录下XT.GHO)
map --mem (bd)/BOOT/IMGS/XGHOST.IMG (fd0) || find --set-root /BOOT/IMGS/XGHOST.IMG (fd0) && map --mem (bd)/BOOT/IMGS/XGHOST.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

还望再指教。。。
作者: 3370123    时间: 2011-7-7 03:54
标题: 回复 #18 20116339 的帖子
怎么还在执迷不悟

要知道要不要加(fd0) (0xff)的话
自己去试试就知道
作者: 20116339    时间: 2011-7-7 09:35
原帖由 3370123 于 2011-7-7 03:54 发表
怎么还在执迷不悟

要知道要不要加(fd0) (0xff)的话
自己去试试就知道

我试过了,都可以啊,学习嘛,多问几个为什么没有错误吧。zxw
一级上将
他说'到处流行这种错误的写法?"那有理论支持没有?乱说可不好啊。
作者: 3370123    时间: 2011-7-7 13:48
不要用

map --mem (bd)/BOOT/WIN7PE.ISO (0xff) || find --set-root /BOOT/WIN7PE.ISO (0xff) && map --mem (bd)/BOOT/WIN7PE.ISO (0xff)

因为这是类似  if  语法,前面的对了,后面的根本就没机会执行,而且这命令有点问题,既然已经指定了绝对路径,还用find干嘛?

应该这样

tilte  加载win7pe
find --set-root /BOOT/WIN7PE.ISO (0xff) #你看看这会不会出错
map --mem /BOOT/WIN7PE.ISO (0xff)
map --hook
chainloader (0xff)
作者: 20116339    时间: 2011-7-7 20:27
原帖由 zxw 于 2011-7-6 08:46 发表

到处流行这种错误的写法?多写个(fd0),无异画蛇添足!
find --set-root /BOOT/IMGS/MAXDOS.IMG

经实践证明,你说的是真象,是正确的。相关试验如果图,我也清楚的掌握了菜单的几种写法了。俗话说,理不辩不明,如果有冒犯之处,还希望你不要见怪。。。。

0xff1.jpg (10.29 KB, 下载次数: 95)

0xff1.jpg

0xff2.jpg (9.2 KB, 下载次数: 83)

错误提示1

错误提示1

fd0.jpg (11.71 KB, 下载次数: 84)

fd0.jpg

fd01.jpg (7.85 KB, 下载次数: 79)

错误提示2

错误提示2

correct1.jpg (10.15 KB, 下载次数: 95)

正确写法1

正确写法1

correct2.jpg (7.35 KB, 下载次数: 92)

正确写法2

正确写法2

correct3.jpg (13.97 KB, 下载次数: 94)

正确写法3 依我说是双保险模式

正确写法3 依我说是双保险模式

作者: 20116339    时间: 2011-7-7 20:35
原帖由 3370123 于 2011-7-7 13:48 发表
不要用

map --mem (bd)/BOOT/WIN7PE.ISO (0xff) || find --set-root /BOOT/WIN7PE.ISO (0xff) && map --mem (bd)/BOOT/WIN7PE.ISO (0xff)

因为这是类似  if  语法,前面的对了,后面的根本就没机会执行, ...

“后面的根本就没机会执行"                      一语中的!!有耐心,谢了。
作者: 幸运的草    时间: 2011-7-8 08:33
标题: 回复 #23 20116339 的帖子
对菜单的写法,好多人都是一个抄写另一个,一个人写错了,其他人跟着错,其实这个所谓的流行写法,实际就是最先一个人这样写,其他人照着抄,跟着错,因为隐蔽从来没发现。
      出现这样的结果都是使用的人没有真正理解其内存的含义才会这样。
例如上面的:map --mem (bd)/boot/win7pe.iso (0xff) || find --set-root /boot/win7pe.iso  && map --mem (bd)/boot/win7pe.iso (0xff)
这句的意思是是说将启动分区BOOT目录下的win7pe.iso在内存仿真一个光盘并把win7pe.iso数据读入到内存。如果不成功(即找不到文件)时就在其他分区根下的BOOT目录中查找WIN7PE.iso,找到第一个后把该分区设置为启动分区并将该BOOT目录中的win7pe.iso在内存中仿真一个光盘,把WIN7PE.ISO的数据读入到内存。
  (0xff)是G4D的设置名称,即光驱。
  所以说find --set-root 后面的不能要(0xff)这个设备名。
理解了含义,你就会发现他是不正确的。
作者: 20116339    时间: 2011-7-8 12:10
原帖由 3370123 于 2011-7-7 13:48 发表
不要用

map --mem (bd)/BOOT/WIN7PE.ISO (0xff) || find --set-root /BOOT/WIN7PE.ISO (0xff) && map --mem (bd)/BOOT/WIN7PE.ISO (0xff)

因为这是类似  if  语法,前面的对了,后面的根本就没机会执行, ...

今天在grub4dos-0.4.5b-2011-06-28\grub4dos-0.4.5b的menu.lst中的这行,,看来是这个语句的最满意的应用,||前的语句不起作用,其后就应用第二句,二句稍有差别,不加MEM不行,那就加上MEM参数,适用范围就大了些,减少死机的发生。
title find and boot 0PE.ISO
fallback 5
find --set-root /0PE/0PE.ISO
map /0PE/0PE.ISO (0xff) || map --mem /0PE/0PE.ISO (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2
作者: 20116339    时间: 2011-7-10 02:38
学习心得,下面这个写法,真的把||的用法都用到了极致.总有一个起作用吧:)..大家也看看。。。(from sinoxer)

title  
echo $[1106] loading ima image, please wait ...
map (ud)/imgs/dos.ima (fd0) || map --mem (ud)/imgs/dos.ima (fd0) || find --set-root /imgs/dos.ima && map /imgs/dos.ima (fd0) || map --mem /imgs/dos.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

[ 本帖最后由 20116339 于 2011-7-10 02:46 编辑 ]
作者: 20116339    时间: 2011-7-10 02:42
上个版本的同一行写法。。。
title   
echo $[1106] Loading IMA Image, Please Wait ...
map --mem (ud)/imgs/dos.ima (fd0) || find --set-root /imgs/dos.ima && map --mem /imgs/dos.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
作者: 20116339    时间: 2011-7-10 03:04
旧贴的,很有启发。。。放这里,方便学习。
fbinst菜单能否直接调用IMG启动镜像
本人菜鸟,用FBINST制作U盘启动盘时,有一个问题想请教各位大大,我的想法是在FBINST启动时显示fbinst菜单,F1进入GRLDR,调用内置菜单;F2 启动USB.IMG启动镜像,或其他的IMG镜像,F3 重新启动,F4 从硬盘启动,F5 关机。
F1进入GRLDR我知道怎么写命令,但后面的不知能不能实现,如能请教我怎么写?

ansewered by aguest

给一个fbinst菜单,供楼主参考:

default 0
timeout 10
text "Please Choose Menu"
text "F1. GRLDR"
menu F1 grldr "GRLDR"
text "F2. USB.IMG"
menu F2 linux "memdisk" "USB.IMG"
text "F3. REBOOT"
menu F3 grldr "REBOOT"
text "F4. HDBOOT"
menu F4 grldr "HDBOOT"
text "F5. HALT"
menu F5 grldr "HALT"

以上REBOOT、HDBOOT、HALT由GRLDR改名而来,并分别修改其中的内置菜单。

将REBOOT中的内置菜单修改为:
default 0
timeout 0
title REBOOT
reboot

将HDBOOT中的内置菜单修改为:
default 0
timeout 0
title HDBOOT
chainloader (hd0)+1

将HALT中的内置菜单修改为:
default 0
timeout 0
title HALT
halt

GRLDR、memdisk、USB.IMG、REBOOT、HDBOOT、HALT放UD区根目录。

from: http://bbs.wuyou.net/forum.php?mod=viewthread&tid=183367

学习思考1:怎样把OPE.ISO 跟杏雨梨云U盘系统2011 SP1104 清明修正版(UD)版合在一起呢?这两个PE都有非常大的优点,0PE做影音,上网用。杏雨梨云做维护工具用。
1、最简单的,就是用好XYLY的UDDIY文件夹,把OPE.ISO放到那里就行了。(不过有时候会死机)。2、也可以利用这fbinst菜单的这个技巧,修改grldr文件名。就先来了解一下XYLY的这个菜单情况,看图。
学习思考2:怎样不改变XYLY原来的grlds菜单的调用呢?这个贴就很有启发意义。http://bbs.wuyou.net/forum.php?mod=viewthread&tid=149159&extra=page%3D5,对FBSINTOOL菜单的利用。原来的grlds是专用来调用ACC加速模式的,写法跟grldr基本上一样。那就把它用自动加速,在grldr菜单调用,如图,grldr2.........那新的grlds就用OPE.iso包里的grldr改名字为grlds就能双PE合盘了。调用的时候就按F1,或F2就行了不按也可以让它自动选择就可以了。



[ 本帖最后由 20116339 于 2011-7-13 21:31 编辑 ]

0405111.jpg (48.65 KB, 下载次数: 91)

0405111.jpg

fileslist.jpg (42.35 KB, 下载次数: 85)

fileslist.jpg

grldr.jpg (13.32 KB, 下载次数: 89)

grldr.jpg

原grlds内容.jpg (10.3 KB, 下载次数: 90)

原grlds内容.jpg

fbinst.jpg (18.32 KB, 下载次数: 87)

fbinst.jpg

start.jpg (13.78 KB, 下载次数: 86)

xylly的fbinst菜单启动图

xylly的fbinst菜单启动图

GRLDR2.jpg (15.86 KB, 下载次数: 90)

新GRLDR

新GRLDR

fbinst.jpg (19.82 KB, 下载次数: 82)

F1 F2合盘菜单FBINSTOOL

F1  F2合盘菜单FBINSTOOL

作者: 3370123    时间: 2011-7-10 06:29
以上REBOOT、HDBOOT、HALT由GRLDR改名而来,并分别修改其中的内置菜单。


将REBOOT中的内置菜单修改为:
default 0
timeout 0
title REBOOT
reboot


一点意思都没有,还不是fbinst--grub4dos--IMG什么的
也就是通过fbinst 菜单'分流"
作者: 20116339    时间: 2011-7-10 07:28
标题: 回复 #29 3370123 的帖子
我的理解是有一点意思。就是他想直接搞个HOTKEY直接REBOOT,HALT。如果从grldr菜单本身就可以调用它们了,把它们放在其中一下菜单就行了。
作者: 3370123    时间: 2011-7-10 09:08
把ud区搞的一大堆文件,很爽么?
作者: 20116339    时间: 2011-7-10 09:33
标题: 回复 #31 3370123 的帖子
是看起来有点不爽,但功能是能完成要求啊,就像做数学题,你能要求全部的人都用同一种解法??
作者: 2011bench    时间: 2011-7-10 23:49
学习了,谢谢分享!!
作者: 20116339    时间: 2011-7-13 21:18
学习思考3:要是我在多加几个WINPE来还可以吗??
其实,这是办得到的,我只会写grldr菜单,那我又找到那个PE的GRLDR,又把它改名改为grldz,grldxgrldy,什么什么的,又加个F3,F4快捷键,就可以了。
学习思考4:要是发现里面的工具有点旧了,怎么办?代续。。。

[ 本帖最后由 20116339 于 2011-7-13 21:41 编辑 ]

fbinst多启菜单.jpg (21.16 KB, 下载次数: 55)

我的多启菜单

我的多启菜单

作者: 2011ZHIZAI    时间: 2011-7-14 12:47
学习了。支持下!!




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