剑网三万花赵小凯:GRUB4DOS的menu.lst
来源:百度文库 编辑:偶看新闻 时间:2024/04/28 14:24:44
GRUB4DOS的menu.lst
2009-03-01 21:47 GRUB4DOS的用法和GRUB Legacy基本上一样的。除非特别说明,以下的用法也适用于GRUB Legacy。配置文件menu.lst的基本结构GRUB4DOS的配置文件和GRUB一样,都是menu.lst。以下是一个例子:
default 0 title Boot First Partition root (hd0,0) chainloader +1
title Boot Second Partition root (hd0,1) chainloader +1
菜单项是由title来指定,该例子中有两个title,就是说GRUB4DOS器启动时会显示两个菜单项,菜单的标题是title的参数,也就是 Boot First Partition 和 Boot Second Partition。在第一个title前的命令是全局命令,它们在显示菜单之前执行。
menu.lst一般放在和启动文件GRLDR同样的目录里。
高亮的菜单项是当前选择的菜单,用上下方向键可以在不同菜单中切换。如果按下回车键,便会以当前菜单中的命令来启动系统。
在菜单界面按下c键,会进入命令行界面。
在命令行界面下,你可以手动输入各个命令。在命令行界面下,按
基本命令
以下是一些最为常用的命令
help用来显示其它命令的用法,例子:
help root
default指定缺省的菜单项,由0开始算起,例子:
default 0
该命令必须在第一个title之前指定
timeout缺省的等待时间,如果在指定的时间(以秒为单位)不按任何键,则会启动缺省的菜单项,例子:
timeout 10
该命令必须在第一个title之前指定
root用来指定根设备,例子:
root (hd0,0)
rootnoverify该命令也可以用来指定根设备。root在设置根设备前,先测试一下该分区的文件系统是否可以识别,而rootnoverify则省略这一测试。
rootnoverify (hd0,0)
chainloader把启动扇区的内容装入内存,参数+1指的是把分区的第一个扇区,例子:
chainloader +1
boot启动操作系统。在使用该命令前,必须用kernel或者chainloader把系统内核或者启动扇区/启动文件装入内存。例子:
boot
设备名字
在GRUB中,硬盘设备用以下的方法来命名:
(hdm)
m是硬盘的序号。序号0相对于BIOS的第一只硬盘。
硬盘上的分区用以下的方法来命名:
(hdm,n)
n是硬盘m里分区的序号。主分区最多有4个,其序号为0-3,扩展分区的序号从4开始。例子:
硬盘0上的第一个主分区:(hd0,0)
硬盘1上的第一个扩展分区: (hd1,4)
设备也可以用相应的BIOS设备号来表示。例如,第一只硬盘设备的设备号是0x80,因此,以下的表示是等价的: (hd0,0), (0x80,0), (128,0)。
另外,对于一些文件系统来说,例如FreeBSD中使用的ffs,或者是Solaris中使用的ufs,在分区中还继续划分为子分区。子分区的表示是在分区表示的基础上加上从a开始计算的子分区序号。例如:
硬盘0上的第一个主分区里的第一个子分区:(hd0,0,a)
软盘设备用以下的方法来命名:
(fdm)
m是软盘的序号。序号0相对于BIOS的第一只软盘。
软盘设备后面同样可以加上分区或者子分区的序号。
GRUB还有其它一些设备,比如说(cd)是光盘设备,(nd)是网络设备,等等。不过它们在特定的情形下才可以使用。
文件名字GRUB的文件名字是在设备名字的基础上加上文件的路径,例子: 硬盘0上第一个主分区根目录里的aa.img文件:
(hd0,0)/aa.img
软盘0上boot目录里的aa.img文件:
(fd0)/boot/aa.img
注意:目录的分隔符是 / ,而不是Windows/DOS下常用的 \ 。
另外,你还可以用扇区的位移和数量来指定数据,比如:
(hd0,0)0+100,200+1,300+300
表示硬盘0上第一个主分区里,从扇区0起的100个扇区,然后是从扇区200起的1个扇区,最后是从扇区300起的300个扇区。当位移为零时,可以省略不写,因此,
(hd0,0)+1
表示的是硬盘0上第一个主分区里从扇区0起的1个扇区,也就是分区的第一个扇区。
GRUB中纪录了一个根设备,它由root命令来指定,例如:
root (hd0,0)
根设备上的文件可以省略设备名,例如,使用了以上的root命令后,文件名 +1 就等同于 (hd0,0)+1。
注意:在GRUB4DOS的扩展中,map命令中使用的文件名的意义和以上所说的有所不同。在map命令里,(hd0,0)+1表示的不是硬盘0上第一个主分区的第一个扇区,而是整个分区。
启动操作系统
启动一般系统一般来说,操作系统会在其所在分区的第一个扇区里放入启动代码。因此,用以下的一组命令一般可以启动硬盘0第一主分区上的操作系统:
rootnoverify (hd0,0)
chainloader +1 boot
对于不同的分区,只要修改设备名(hd0,0)就可以了。
注意:大部分的操作系统需要在第一只硬盘的主分区里才能正常启动。
注意:当把该组命令作为menu.lst里某一菜单项的内容时,最后的命令boot可以省略。
注意:该方法是通用的,它可以用来启动以下提到的系统,只要分区的第一个扇区中存在启动代码。
启动DOS/Windows 95/98/Me在GRUB4DOS中,chainloader命令可以装载DOS/Windows 95/98/Me中的io.sys。因此,可以使用类似于以下的一组命令来启动这些系统:
rootnoverify (hd0,0)
chainloader (hd0,0)/io.sys
boot
启动Windows NT/2000/XP/2003/Vista在GRUB4DOS中,chainloader命令也可以装载Windows NT/2000/XP/2003中的ntldr和Windows Vista中的bootmanager。因此,可以使用类似于以下的一组命令来启动这些系统:
启动Windows NT/2000/XP/2003:
rootnoverify (hd0,0)
chainloader (hd0,0)/ntldr
boot
启动Windows Vista:
rootnoverify (hd0,0)
chainloader (hd0,0)/bootmanager
boot
启动Linux可以用kernel指令装载Linux内核:
rootnoverify (hd0,0)
kernel (hd0,0)/vmlinuz
boot
在内核(hd0,0)/vmlinuz后可以加上启动的参数。
当启动Linux内核时,可以使initrd指令来装载初始的内存盘。
rootnoverify (hd0,0)
kernel (hd0,0)/vmlinuz
initrd (hd0,0)/initrd
boot
注意:chainloader用于装载启动扇区和特定的启动文件如io.sys和ntldr,而kernel用于装载Linux内核和符合其标准的启动文件。在一组启动命令中,两者不能同时使用。
修改界面的颜色
GRUB界面的颜色可以用color指令来指定。color中指定了两组颜色,第一组是正常文本的颜色,第二组是加亮文本(当前选择的菜单项)的颜 色。对应于每组颜色,又需要指定两种颜色。第一种是前景的颜色,第二种是背景的颜色。因此,在color总共需要指定四种颜色,分别是,正常文本前景,正 常文本背景,加亮文本前景和加亮文本背景。
颜色代码:
black (黑色) red (红色) green (绿色) brown (棕色) blue (蓝色) magenta (紫色) cyan (青色) light-gray (灰色)
dark-gray (暗灰) light-red (亮红) light-green (亮绿) yellow (黄色) light-blue (亮蓝) light-magenta (亮紫) light-cyan (亮青) white (白色)
前景色可以使用全部16种颜色,而背景色只能使用前面8种颜色。
例子:
color cyan/blue white/magenta
正常文本前景: cyan (青色) 正常文本背景: blue (蓝色) 加亮文本前景: white (白色) 加亮文本背景: magenta (紫色)
color命令一般是作为全局命令,在第一个title前使用。
使用背景图片可以用splashimage命令来加载背景图片: spashimage (hd0,0)/spash.gz
图片必须是640x480,14色的XPM格式,可以用gzip来进行压缩。
使用了该命令后,GRUB启动时将进入图形模式。这时,color命令指定的文本颜色将会无效。图形模式下颜色的设置应该使用foreground命令:
foreground ffff00
以上命令设置字体的颜色。颜色用RGB值来表示,ffff00是黄色。
如果没有使用foreground命令,缺省的文本颜色是白色
常用颜色的RGB值对应表:
000000c0c0c0800000ff00000000800000ff800080ff00ff00800000ff00808000ffff0000808000ffff808080ffffff
splashimage和foreground命令一般在第一个title前使用
使用中文界面首先,你必须使用支持中文的版本。并且,要正常显示中文的菜单,你需要使用fontfile命令来装载中文字体: fontfile (hd0,0)/fonts.gz
fonts.gz是字体文件,并且使用了gzip来压缩。例子中使用的fonts.gz可以在这里下载。
fontfile命令可以和splashimage,foreground一起使用。例如:
splashimage (hd0,0)/splash.gz
foreground ffff00
fontfile (hd0,0)/fonts.gz
title 启动第一个分区
root (hd0,0)
chainloader +1
title 启动第二个分区
root (hd0,1)
chainloader +1
MBR主引导记录执行流程分析
MBR( Master Boot Record )主引导记录包含两部分的内容,前446字节为启动代码及数据,而
; 从446(0x1BE)开始则是分区表,分区表由四个分区项组成,每个分区项数据为16字节,记录了
; 启动时需要的分区参数。
;
; 在CPU上电之后,若由硬盘启动,则BIOS将硬盘的主引导记录(位于0柱面、0磁道、1扇区)读
; 入7C00处,然后将控制权交给主引导代码。主引导代码的任务包括:
; (1) 扫描分区表,找到一个激活(可引导)分区;
; (2) 找到激活分区的起始扇区;
; (3) 将激活分区的引导扇区装载到内存7C00处;
; (4) 将控制权交给引导扇区代码;
;
; 如果主引导代码无法完成上述任务,它将显示以下错误信息之一:
; No active partition.
; Invalid partition table.
; Error loading operating system.
; Missing operating system.
;机器加电或按reset键后都要进行系统复位,复位后CS=FFFFH,IP=0000H
;那么自然就从FFFF:0000H处开始执行指令,这个地方只有一条JMP指令
;跳转到系统自检程序处,系统自检完成后把软盘的第一个扇区(如果由软盘启动)
;或者硬盘的第一个扇区,即MBR扇区(如果由硬盘启动)读入到0:7C00H处
;然后把控制权交出,从0:7C00H处继续执行,下面就是硬盘的MBR代码分析
;其中的引导扇区是指硬盘相应分区的第一个扇区,是和操作系统有关的
;操作系统的引导是由它来完成的,而MBR并不负责,MBR和操作系统无关
;他的任务是把控制权转交给操作系统的引导程序
程序流程:
1 将程序代码由0:7C00H移动到0:0600H(注,BIOS把MBR放在0:7C00H处)
2 搜索可引导分区,即80H标志
成功:goto 3
失败:跳入ROM BASIC
无效分区表:goto 5
3 读引导扇区
失败:goto 5
成功:goto 4
4 验证引导扇区最后是否为55AAH
失败:goto 5
成功:goto 6
5 打印错误进入无穷循环
6 跳到0:7C00H进行下一步启动工作
CS文件夹里的 .lst格式是什么
lst 文件 是什么样的文件
求助Autoplay menu的问题!!
vb.net Menu的问题
有没有grub.lst的windows下的修改工具
扩展名为lst和lit文件,是干什么的呢?
卡巴斯基base文件夹下black.lst是干什么用的
如何用grub4dos引导slackware?
请问关于menu system的问题!
AutoPlay Menu Builder 4.3的注册码
JAVA设置frame中menu的问题
谁有flashation menu的注册码
谁有“AutoPlay Menu Builder”的注册码?
电脑里MENU的正确设置
跪求MENU里的设置
显示器下方的menu键里有"消磁键"?!‘!menu’键在哪里?
请问我下载的lst文件不能保存到指定目录怎么办
lst用什么打开
LST是什么文件
LST是什么文件?
谁知道.lst是什么
怎么新建lst 文件
怎么新建*lst文件
menu和目录到底是汉译英来的还是英译汉来的?