veket官方网站论坛

veket

 找回密码
 要注册
搜索
查看: 5453|回复: 7

grub4dos下的启动菜单文件menu.lst详解

[复制链接]
发表于 2013-12-2 15:23 | 显示全部楼层 |阅读模式
这是我学习过程中在网上找到一篇详细介绍启动菜单文件内容的教程,希望对像我和一样的菜鸟有所帮助!让这里成为一个学习,讨论,研究的好地方。

以下是一个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加载背景图(加载背景图这句要放在timeout和default两句后面),后者加载的图片可以更美观,制作方法可用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.启动软盘镜象,有两种方式,即memdisk或map
各自的写法例子如下:
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.44MB或2.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)中获得

  
default 0 (默认以第一个title启动)
timeout 5 (5秒没有按任何键就执行default 0)
splashimage=(hd0,0)/splash.xpm.gz (这个是定义菜单背景图片,图片的制作可以在linux下执行 convert 原图片 -resize 640x480 -colors 14 splash.xpm)
password --md5 密码(设置菜单密码,密码必须是加过密的)
title 菜单名 (定义菜单名)
find --set-root --ignore-floppies --ignore-cd /menu.lst (将menu.lst的根设置为当前的根)
map --mem (hd0)/img文件 (fd0) (将img文件仿真成软驱启动,如果是iso就把fd0改为hd32)
map --hook (使仿真生效)
chainloder (fd0)+1 (要是光盘仿真就改成hd32)
rootnoverify (fd0) (修改工作目录为软驱,也就是A盘)
一下可以添加其他菜单了……格式和titel一下的一样

评分

1

查看全部评分

发表于 2014-2-6 12:00 | 显示全部楼层
[其它分类] grub4dos下的启动菜单文件menu.lst详解 [复制链接]
发表于 2014-3-11 19:17 | 显示全部楼层
非常好,顶起。
发表于 2014-5-1 18:20 | 显示全部楼层
支持
发表于 2014-6-4 20:19 | 显示全部楼层
顶楼主,支持!!!
您需要登录后才可以回帖 登录 | 要注册

本版积分规则

QQ|手机版|Archiver|veket官方网站论坛 ( 粤ICP备 11052856 )

GMT+8, 2024-5-5 10:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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