grub menulist详解

阿建同学分享的,备份一下
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-53.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb ramdisk_size=512000 quiet
initrd /boot/initrd-2.6.18-53.el5.img
title Tinycore linux
root(hd0,0)
kernel /boot/tinycore/bzImage quiet
initrd /boot/tinycore/tinycore.gz
title Ubuntu iso HD install
root (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-8.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8 U盘安装ubuntu-8.10-desktop-i386.iso
initrd /initrd.gz
boot
例题分析:
例1:
default 0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Ubuntu iso install
root (hd0,0)
kernel /boot/Ubuntu/vmlinuz ro root=/
initrd /boot/Ubuntu/initrd.gz
boot
分析:
时间(5秒)过后进入第0个系统(若有多个title...可以是 1,2,3...)
5秒钟选折时间
背景图片 在(hd0,0)/boot/grub/splash.xpm.gz下,grub支持gz压缩
隐藏菜单
title Ubuntu iso install 是进入Grub的标题
root (hd0(或sd0)(或fd0),0)在一个硬盘(或串口硬盘)(或软驱)的第一分0区读取
kernel /boot/Ubuntu/vmlinuz vmlinuz:linux内核文件的名称 放在/boot/Ubuntu下了
ro 的意思是read only
initrd /boot/Ubuntu/initrd.gz:指定镜像文件的名称,镜像文件(img文件)包含了已经编译好的驱动模块
例2:

kernel (hd0,4)/vmlinuz root=/dev/ram ramdisk_size=32000 devfs=mount,dall vga=791
kernel 读取内核 (hd0,4) 1 硬盘5分区 root=/dev/ram ramdisk_size=32000 在创建内存中创建虚拟盘 大小32000 vga 791 1024X768
devfs=mount表示内核使用devfs (Device File System) dall是所有类型
注 下面是:

# VESA framebuffer console @ 1024x768x64k vga = 791 # Normal VGA console # vga = normal # VESA framebuffer console @ 1024x768x64k # vga=791 # VESA framebuffer console @ 1024x768x32k # vga=790 # VESA framebuffer console @ 1024x768x256 # vga=773 # VESA framebuffer console @ 800x600x64k # vga=788 # VESA framebuffer console @ 800x600x32k # vga=787 # VESA framebuffer console @ 800x600x256 # vga=771 # VESA framebuffer console @ 640x480x64k # vga=785 # VESA framebuffer console @ 640x480x32k # vga=784 # VESA framebuffer console @ 640x480x256 # vga=769例3: kernel /boot/Ubuntu/vmlinuz ro root=LABEL=/1 rhgb quietLABEL 分区标签,可以用/sbin/e2label这个命令来查设某个ext2/ext3格式分区的label rhgb redhat , quiet不显示检查硬件。有时候加载的工具多了,U盘中的文件就会很凌乱,而且U盘根目录会有很多文件,看着很不爽.

用这种方法的主要优点,多层多重菜单,很容易扩展,文件系统简单

总体思路,引导加载Menu.lst,在Menu.lst中加载各种镜像工具,包括PE系统和其它工具的镜像,以及目录菜单文件

Setp1,引导启动.方法很多,介绍一种用Nt引导的
格U盘(SD卡什么的也行)成FAT32,用NTBOOT.EXE写入引导,复制NTLDR和NTDETECT.COM到U:\ (U盘根目录),再写Boot.ini文件到U:\,若要在Boot.ini中加入多项菜单也行,菜单中有中文的话,还要复制bootfont.bin到U:\.

Setp2,加载grldr.可以直接写入MBR加载grldr,这样就不用Setp1了;在这里,还是用上面的NT引导.
在Boot.ini中加入一行
C:\grldr="Boot MENU"
复制grldr和Menu.lst到U:\.

Setp3,菜单制作.接上面思路,可以在Boot.ini 和 Menu.lst中加入多启动菜单,并可嵌套
PS:这也是笔者主要说明的
现在,为了层次性,我们不在Boot.ini中多启动,多启动只在Menu中嵌套.
如我们现在PE系统两个(ISO格式),Dos工具若干(IMG,IMA,ISO等格式)
现在在U:\下建立目录如下
Minipe\main(放字体,背景图片),Minipe\system(放PE系统),Minipe\tools(放各种工具)
放置文件到相应目录,再编写Menu文件

以笔者自己的手机SD卡为例,格式为FAT32,容量512M
相关目录格式:
├—Minipe (文件夹)
│ ├—Main (文件夹)
│ │ ├—BG.gz (背景图片,48K)
│ │ └—Fonts.gz (字体文件,149K)
│ ├—System (文件夹)
│ │ ├PE911.iso (老毛桃PE0911,111622K)
│ │ └PE2.iso (Vista中提取的PE2.0,288352K)
│ └—Tools (文件夹)
│ ├ deepinTOOL.IMG (深度系统盘中提取的工具集,2880K)
│ ├Dos.img (深山红叶Dos工具箱,9127K)
│ ├ LOADISO.IMG (Iso镜像加载工具,1440K)
│ ├ NTFSDos.IMG (NTFSDos,2880K)
│ ├PASSWORD.IMA (XP登录密码清除工具,1440K)
│ ├PQ8.IMG (PQ8,2160K)
│ └Tools.lst (工具箱目录菜单)
├—boot.ini
├—grldr
├—menu.lst (主目录)
├—NTDETECT.COM
└—ntldr

另附目录菜单文件两个.
[Menu.lst]

timeout 20
default 0
splashimage /MiniPE/main/BG.gz
foreground ffff00
fontfile /MiniPE/main/fonts.gz

title [ 1]PE 系统
find --set-root /Menu.lst
map --mem /MiniPE/system/pe911.iso (hd32)
map --hook
chainloader (hd32)
boot

title [ 2]PE 2.0
find --set-root /Menu.lst
map --mem /MiniPE/system/pe2.iso (hd32)
map --hook
chainloader (hd32)
boot

title [ 3]工具集
find --set-root /minipe/tools/tools.lst
configfile /minipe/tools/tools.lst

title [ 4]从硬盘启动Vista
find --set-root /bootmgr
chainloader /bootmgr

title [ 5]从硬盘启动Linux
find --set-root /sbin/init
configfile /boot/grub/menu.lst

title [ 6]查找并启动Dos
find --set-root /io.sys
chainloader /io.sys

title [ 7]重启
reboot

title [ 8]关机
halt


[Tools.lst]

timeout 20
default 0
splashimage /MiniPE/main/BG.gz
foreground ffff00
fontfile /MiniPE/main/fonts.gz

title [ 1]DeepIN工具
find --set-root /Menu.lst
map --mem /MiniPE/tools/deepinTOOL.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title [ 2]ISO镜像加载
find --set-root /Menu.lst
map --mem /MiniPE/tools/LOADISO.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title [ 3]NTFSdos
find --set-root /Menu.lst
map --mem /MiniPE/tools/NTFSdos.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title [ 4]PQ8
find --set-root /Menu.lst
map --mem /MiniPE/tools/pq8.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title [ 5]清除登录密码
find --set-root /Menu.lst
map --mem /MiniPE/tools/password.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title [ 6]Dos工具箱
find --set-root /Menu.lst
map --mem /MiniPE/tools/dos.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title [ B]返回主菜单
find --set-root /Menu.lst
configfile /Menu.lst

[Boot.ini]

[Boot Loader]
Timeout=15
Default=C:\grldr
[Operating Systems]
C:\grldr="Boot Menu"
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="IDE First Disk 1th Part NT loader" /NOEXECUTE=OPTIN /FASTDETECT /USEPMTIMER
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="IDE First Disk 2th Part NT loader" /NOEXECUTE=OPTIN /FASTDETECT /USEPMTIMER
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="IDE Second Disk 1th Part NT loader" /NOEXECUTE=OPTIN /FASTDETECT /USEPMTIMER
multi(0)disk(0)rdisk(3)partition(1)\WINDOWS="IDE Three Disk 1th Part NT loader" /NOEXECUTE=OPTIN /FASTDETECT /USEPMTIMER
scsi(0)disk(0)rdisk(0)partition(1)\WINDOWS="scsi First Disk 1th Part NT loader" /NOEXECUTE=OPTIN /FASTDETECT /USEPMTIMER
scsi(0)disk(0)rdisk(1)partition(1)\WINDOWS="scsi Second Disk 1th Part NT loader" /NOEXECUTE=OPTIN /FASTDETECT /USEPMTIMER
scsi(0)disk(0)rdisk(2)partition(1)\WINDOWS="scsi Three Disk 1th Part NT loader" /NOEXECUTE=OPTIN /FASTDETECT /USEPMTIMER

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值