基本概述
grldr是grub里面的一个文件,对grub不熟悉的朋友可能不知道,但是如果你用过
嬴政一键GHOST、MAXDOS、矮人DOS工具箱等等
软件,你就应该知道这个名字:这些软件无一例外都是使用grub或者grldr引导他们保存在你硬盘的软盘
镜像或者系统引导文件的。没有grub和grldr(包括avldr、isomenu等等都是由grub或者grldr派生出来的,也是你自己派生出一个个性化硬盘引导文件的方法和途径。),就不会由上述这些软件的存在。 grldr好比:ntldr之于windows 5.x(nt/xp/2003等) bootmgr之于windows 6.x(vista/7) grldr.mbr用来写入硬盘mbr的 或者nt引导系统中
boot.ini来调用
使用方法
1、文件存放位置
把grldr及菜单配置文件menu.lst复制到系统盘任意目录(以C盘根目录为例,其它目录只需要加入路径即可。其中grldr会自动搜索菜单配置文 件并加载,但是menu.lst最好存放在C盘根目录,免得到时候搜索不到不能加载引起错误)。 把需要grldr引导的文件(如DOS.IMG、GHOST83.IMG等镜像文件)保存在硬盘。
2.一个menu.lst的例子
(以#开始的行,表示注释,不执行) # 默认延迟时间(秒)
timeout 30 # 第一项为默认值
default 0 # 设置图形背景文件
splashimage (hd0,0)/boot/grub/xp2008.gz # 设置中文支持的
字体文件 f
ontfile (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
3.引导:
3.1 通过Windows NT的启动菜单进入grub4dos 将grldr文件复制到c:/,去掉boot.ini的只读属性,然后修改c:/boot.ini文件,在boot.ini的最后面加一行:
c:/grldr="Start GRUB" 并将boot.ini中的timeout值设置为大于0的数字,如:timeout=5,然后保存boot.ini,改回只读属性。 编辑boot.ini前,可在cmd下输入: attrib -s -r -h c:/boot.ini 解除boot.ini的只读属性,编辑完后输入: attrib +s +r +h c:/boot.ini 恢复boot.ini的原有属性。 这样,编辑完重新启动计算机,在NT的启动菜单就会出现“Start GRUB”这一项,选择该项即可进入grub4dos的环境。 此方法的优点是:不需要修改MBR。 初学者使用grub一般都需要grub菜单,把准备好的menu.lst文件放到C:/下(也可放到其它分区根目录或其它指定目录)。 3.2 通过DOS启动grub 将机器通过任何可能的方式(软盘,U盘,
光盘等)启动到DOS环境(最好是纯DOS环境,即不加载任何驱动程序和TSR程序的DOS环境),然后在DOS下或者AUTOEXEC.BAT中运行grub.exe,即可进入grub。 也可在DOS/Windows9x的CONFIG.SYS中使用下列任一方式启动grub。
DEVICE=GRUB.EXE INSTALL=GRUB.EXE SHELL=GRUB.EXE 此方法的优点是:不需要修改MBR;可根据需要在
脚本或者其它DOS程序中启动GRUB4DOS。 菜单文件menu.lst可保存在grub文件所在目录或其它指定路径。 3.3 通过mbr启动grub 通过
软件包里的bootlace点com(可运行于DOS/Win9x)安装GRLDR
引导记录到硬盘或者硬盘映像文件的
主引导记录,或者安装到软盘或者软盘映像的
引导扇区。电脑启动时,通过击
热键(默认为空格键,可自定义)来启动grub。 比如: 在DOS下安装GRLDR代码到主引导记录:
bootlace点com 0x80 在DOS下安装GRLDR代码到软盘: bootlace点com --floppy --chs 0x00 在DOS下安装GRLDR代码到软盘映像: bootlace点com --floppy --chs floppy.img 我所使用的命令为: bootlace --force-backup-mbr --boot-prevmbr-first --time-out=3 --hot-key=0x3920 --mbr-disable-floppy 0x80 表示安装GRLDR代码到MBR时,
备份原MBR(--force-backup-mbr),默认启动原MBR,即启动原windows xp系统(--boot-prevmbr-first),等待时间3秒(--time-out=3),热键为空格键(--hot- key=0x3920), 不搜索软盘上的GRLDR(--mbr-disable-floppy)。 也就是说启动时等待3秒,3秒内不击热键的话,启动windows xp;3秒内击热键则启动grub4dos。 bootlace的其它参数及自定义热键用法可参看readme.txt文件。 装入mbr后,再将grldr和menu.lst文件复制到某分区的根目录(现在支持的文件系统是FAT12,FAT16, FAT32, NTFS,EXT2 or EXT3 的分区。对于Windows用户,最好是fat分区),menu.lst也可保存到其它指定位置。 此方法的优点是:不依赖于操作系统;能够自动搜索硬盘上各个分区的grldr文件。 另外,2000/xp/2003/vista环境下可用另一软件 grubinst 来把GRLDR引导记录安装到硬盘的MBR。grubinst具有图形界面和命令行两种工作模式供选用,并附有比较详细的使用说明,很易于使用。
4.制作 GRUB的 splash 背景图
GRUB 背景图片的要求:分辨率640x480,14色,XPM格式。 支持 .gz 压缩。 制作环境: linux下(其实windows下也可以制作,用IMAGEMAGICK. 但是convert后用图像软件看是没问题,但是引导时,失真的很厉害,用其他软件制作,背景根本出不来,在linux下制作真的很简单,呵呵为了做这个,只能安装个虚拟的linux来做.) 方法1:用 convert 命令 首先需安装一个 ImageMagick 软件。 若用的是 ubuntu 或 debian 就很方便了,源里就有。 先把图片转成 640x480 分辨率,再运行 convert -colors 14 xxx.jpg splashimage.xpm ,把生成的 splashimage.xpm 拷贝到某目录下,比如 (hd0,6)/boot/splash/ 再往 menu.lst 中相应地添上一句: splashimage (hd0,6)/boot/splash/splashimage.xpm 就好了。 这个方法在windows下做,失真的很厉害,可能是我不会做. 方法2: 用GIMP(呵呵,和windows下用ps是一样的.不如在windows下做.不推荐) 一个关键:须调成 索引色 显示,否则无法调整颜色数 方法3: (推荐) 在windows下用Ps或者其他的图像软件把图像修改成640*480 14位色的(其实16位也可以),然后上传到linux下,用GIMP另存下就可以了.方便快捷.
5、GRUB的命令
GRUB包含了许多不同的命令,它们可以在命令行接口中以交互的方式执行。其中的一些命令能接在命令名后面的选项,这些选项用空格隔开。 下面的列表给出了最有用的一些命令: ·boot - 引导先前已经被指定并载入的操作系统或链式装载程序。 ·chainloader - 将指定的文件作为一个链式装载程序载入。为了获取在一个指定分区第一扇区内的文件,使用+1作为文件名。 ·displaymem - 显示当前内存的使用情况,这个信息是基于BIOS的。这个命令有助于确定系统在引导前有多少内存。 ·initrd - 使用户能够指定一个在引导时可用的初始RAM盘。当内核为了完全引导而需要某些模块时,这是必需的。 ·install p - 安装GRUB到系统的主引导记录。这个命令允许系统重启时出现GRUB接口。 警告:install命令将覆盖主引导扇区中的其他信息。如果命令被执行,那么除了GRUB信息之外的其他用于引导其他操作系统的信息都将丢失。在执行这条命令前,确定你对它有正确的了解。 这条命令可以用几种不同的方式进行配置。然而,它都要求指定。表示一个设备,分区和文件,在那里可以找到第一个引导装载程序的映象,比如 (hd0,0)/grub/stage1。另外,也指定了第一步引导装载程序应该被安装的硬盘,如(hd0)。 选项告诉第一步引导装载程序第二步引导装载程序位于什么地方,例如(hd0,0)/grub/stage2。p选项告诉install命令菜单配置文件被指定在部分,比如说(hd0,0)/grub/grub.conf。 ·kernel - 当使用直接载入方式引导操作系统时,kernel命令指定内核从GRUB的根文件系统中载入。options选项是跟在kernel命令后面,在内核载入时传给内核。 在Red Hat Linux中,一个kernel命令的例子看起来象下面的形式: kernel /vmlinuz root=/dev/hda5 上面这行表明了vmlinuz文件是从GRUB的根文件系统载入的,如(hd0,0)。同时,一个选项也被传给了内核。它指出当
Linux内核载入时,内核的根文件系统应该是位于hda5,第一个IDE硬盘的第五个分区。如果有必要的话,多个选项可以被放在这个选项后面。 ·root - 将GRUB的根分区设置成特定的设备和分区,比如说(hd0,0)。并挂入这个分区,这样文件可以被读取。 ·rootnoverify - 做root命令同样的事情,只是不挂入分区。 除上面所述外,还有更多的命令可用。输入info grub,得到一个所有命令的完全列表。 6、GRUB的菜单配置文件 配置文件在GRUB菜单接口中,创建用于引导操作系统的列表。配置文件可以允许用户选择执行事先设置好的一组命令。这些命令既包括前面给出的命令,也包括一些只用于配置文件的命令。 配置文件的专用命令 下面这些命令只用于GRUB的菜单配置文件: ·color - 设定在菜单中使用的颜色,一种是作为前景色,一种作为背景色。可以简单地使用颜色名称,如red/black。比如: color red/black green/blue ·default - 默认项目的标题名称。如果菜单接口超时,那它将被载入。 ·fallback - 当这个命令被使用时,如果第一次尝试失败,那么这个项目的标题名称将被试用。 ·hiddenmenu - 这个命令被使用时,它不显示GRUB菜单接口,在超时时间过期后载入默认项。用户通过按[Esc]键,可以看到标准的GRUB菜单。 ·password - 这个命令被使用时,它可以防止不知道口令的用户
编辑菜单的项目。 作为附加选项,可以在后面指定一个后备的菜单配置文件。因此,如果口令被知道,GRUB将重新启动第二步的引导装载程序,并使用这个后备的配置文件来建立菜单。如果这个后备文件不在命令中指出,那么知道口令的用户能够编辑当前的配置文件。 ·timeout - 这个命令设定了在GRUB载入由default命令指定的项目前的时间间隔,以秒为单位。 ·splashimage - 它指定在GRUB引导时所使用的屏幕图像的位置。 ·title - 设定用来装载一个操作系统的一组特定命令的标题。 字符#用来在菜单配置文件放置注释。 配置文件的结构 设置GRUB菜单接口全局参数的命令被放在文件的顶部,接下来的是用于各个操作系统引导的不同项目。 一个非常基本的用于引导Red Hat Linux或Microsoft Windows 2000的GRUB菜单配置文件可能如下所示: default=linux timeout=10 color=green/black light-gray/blue # section to load linux title linux root (hd0,1) kernel /vmlinuz root=/dev/hda5 boot # section to load Windows 2000 title windows rootnoverify (hd0,0) chainloader +1 这个文件告诉GRUB建立一个以Red Hat Linux为默认操作系统的菜单,设定10秒后自动引导。这里给出了2个部分,每个部分对应于一个操作系统项目,每个部分都包含了指向操作系统硬盘分区表的命令