grldr深度解析

基本概述

  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个部分,每个部分对应于一个操作系统项目,每个部分都包含了指向操作系统硬盘分区表的命令

你可能感兴趣的:(windows,linux,Debian,dos,Microsoft,linux内核)