八通网

标题: Grub4dos菜单文件menu.lst详解 [打印本页]

作者: 酷龙    时间: 10-10-25 14:23
标题: Grub4dos菜单文件menu.lst详解

以下是一个menu.lst的例子,我们通过这个例子来学习grub4dos菜单文件的编写与修改,然后我们就可以修改基于grub的工具(如一键ghost)。其中以#开始的行,表示注释,不执行
一、菜单实例


# 默认延迟时间()
timeout 10

# 第一项为默认值
default 0

# 设置图形背景文件
splashimage (hd0,0)/boot/grub/xp2008.gz

# 设置中文支持的字体文件
fontfile (hd0,0)/boot/grub/fonts

title 使用map启动本地硬盘上的瑞星杀毒软盘镜像文件
map (hd0,0)/boot/grub/rav.img (fd0)
map –hook
chainloader (fd0)+1
rootnoverify (fd0)

title 使用memdisk启动本地 Win98 软盘镜像文件
kernel (hd0,0)/boot/grub/memdisk.gz
initrd (hd0,0)/boot/grub/win98.img

title 使用memdisk启动本地硬盘上的瑞星杀毒软盘压缩镜像文件
root (hd0,0)
kernel /boot/grub/memdisk.gz c=80 h=12 s=36 floppy
initrd /boot/rav.zip

title 启动第一主分区(hd0,0)上的操作系统
rootnoverify (hd0,0)
makeactive
chainloader +1

title 启动第二主分区(hd0,1)上的操作系统
rootnoverify (hd0,1)
makeactive
chainloader +1

title 重启
reboot

title 关机
halt

二、菜单理解
1.timeout 10 —–菜单等待时间(秒)
default 0 ——默认启动的项,从0开始计算,最大到6
fontfile (hd0,0)/boot/grub/fonts ——加载字体
2.可以用例子中的splashimage命令加载背景图,也可以用命令gfxmenu (hd0,0)/boot/grub/message加载背景图(加载背景图这句要放在timeoutdefault两句后面),后者加载的图片可以更美观,制作方法可用GfxMenu这款小软件.若要用gfxmenu命令加载图片,则需使用支持该命令的grldr文件,而且使用该方法时不能再编辑引导菜单,而且要进入grub.exe也只能事先在菜单中加入

注意:fontfile命令不可单独使用,需与splashimage一起使用。

3.title 使用map启动本地硬盘上的瑞星杀毒软盘镜像文件——实际显示出的菜单项
configfile (hd0,0)/boot/grub/dos.lst ——加载子菜单
map mem (hd0,0)/boot/grub/xlybig.img (fd0) ——把xlybig.img仿真成软盘,(fd0)与前面的映像名称之间是有一个空格的,千万不要忘记。加了–mem参数表示把 xlybig.img加载到内存。不加此参数时要求xlybig.img存放在连续的扇区中。只有加了–mem参数才能使用firadisk驱动,而且map方式对软盘映像大小没有限制,但要求必须连续存放。改进的map mem则无此限制
map hook ——仿真确认生效
chainloader (fd0)+1 ——链式加载(fd0)的第一个扇区内容
rootnoverify (fd0) ——设置(fd0)为根设备,root在设置根设备前,先测试一下该分区的文件系统是否可以识别,而rootnoverify则省略这一测试。
rootnoverify (hd0) ——(hd0)表示第一个硬盘
chainloader +1 ——链式加载当前设备的第一个扇区内容
map (hd0,0)/grub/imgs/ztpe.img (hd0) || map mem (hd0,0)/grub/imgs/ztpe.img (hd0) ——先尝试执行||前的句子,如果失败了,再执行||后面的句子,把ztpe.img(硬盘镜像)仿真为第一块硬盘,因为PE需要从第一块硬盘启动。
map (hd0) (hd1) ——把(hd0)(真实的硬盘)仿真为(hd1)(第二块硬盘)
find set-root /peldr ——先查找/peldr是否存在,如果找到,就设置peldr所在分区为根分区
4.另外,菜单文件中的文件路径可用相对路径(如:/boot/rav.zip)或绝对路径(如:(hd0,0)/boot/grub/xly.img)表示。在用绝对路径时,其中(hd0,0)表示第一硬盘的第一分区,fd0表示软盘,cd表示光盘。书写时应根据介质的不同而选择其一
三、深入了解
1.启动软盘镜象,有两种方式,即memdiskmap
各自的写法例子如下:
memdisk方法:
title 硬盘检测修复工具 效率源 (memdisk)
kernel (hd0,0)/boot/grub/memdisk.gz
initrd (hd0,0)/boot/grub/xly.img

map方法:
title 硬盘检测修复工具 效率源 (map)
map (hd0,0)/boot/grub/xly.img (fd0)
map –hook
chainloader (fd0)+1
rootnoverify (fd0)

memdisk时,img文件可压缩;在img文件大小为非1.44MB2.88MB标准镜像时,需要指定CHS参数。img文件的CHS参数可用winimage获得
即例子中应改为:
title 使用memdisk启动本地硬盘上的瑞星杀毒软盘压缩镜像文件
root (hd0,0)
kernel /boot/grub/memdisk.gz c=80 h=12 s=36 floppy
initrd /boot/rav.zip

#kernel (hd0,0)/boot/memdisk.gz c=80 h=2 s=18 cd-rom
#【这句是说虚拟一个内存磁盘为cdrom,指定磁盘的柱面磁头扇区,这样系统会认为是一个光驱】

需注意的是菜单文件中所用的memdisk.gz文件,不包括在grub4dos的发行包里,需自行准备。可从基于grub的工具(如一键ghost)中获得

作者: slaoliu    时间: 10-10-25 15:10
感谢。学习了。
作者: 拯救新人类    时间: 10-10-25 16:02
头好大哟,菜鸟级的在这崇拜路过
作者: 酷龙    时间: 10-10-25 20:11
谢谢各位的支持,不懂的可以了解一下,懂的就加深了解哈~
作者: 柳下挥    时间: 10-10-28 19:12
支持了~~~做的很不错啊




欢迎光临 八通网 (http://bbs.bato.cn/) Powered by Discuz! X3.2