全面认识GRUB4DOS

更新时间:2024-04-21 16:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Grub4dos

全面认识grub

1、grub是什么

grub的全称是grand unified bootloader,它是一个将引导装载程序安装到主引导记录的程序,主引导记录是位于一个硬盘开始的扇区。它允许位于主引导记录区中特定的指令来装载一个GRUB菜单或是GRUB的命令环境。这使得用户能够开始操作系统的选择,在内核引导时传递特定指令给内核,或是在内核引导前确定一些系统参数(如可用的RAM大小)。 2、引导过程

这些最初的扇区-主引导记录-开始装载一个预选择操作系统的过程,一个操作系统选项是GRUB菜单,或是一个执行特定选项的GRUB命令行接口。

装载GRUB和操作系统的过程,包括以下几个操作步骤:

A、 装载基本的引导装载程序,这通常是第一步。基本引导装载程序必须是位于主引导扇区中一个非

常小的空间,少于512字节。因此,基本引导装载程序所做的唯一的事情就是装载第二引导装载程序。这主要是归结于在主引导扇区中没有足够的空间用于其他东西了。

B、装载第二引导装载程序,这通常称为第二步。这第二引导装载程序实际上是引出更高级的功能,以允许用户装载入一个特定的操作系统。在GRUB中,这步是让用户显示一个菜单或是输入命令。 C、装载在一个特定分区上的操作系统,如linux内核。一旦GRUB从它的命令行或是配置文件中,接到开始操作系统的正确指令,它就寻找必要的引导文件,然后把机器的控制权移交给操作系统。 注意:当GRUB的配置文件发生改变时,没有必要重新启动GRUB。所有的改变都能被自动地检测到。如果GRUB被重新启动,那么用户将退回到命令行方式的GRUB外壳下。

3、安装GRUB

首先,获取最新可用的GRUB包。在Red Hat linux安装光盘上的GRUB包也可以使用。 其次,在一个外壳提示下,运行命令/sbin/grub-install,这里的是GRUB将要被安装的位置。比如说:/sbin/grub-install /dev/hda

最后,重新引导系统。GRUB图形引导装载菜单将出现。

2.2 如何安装grub4dos?

下载grub4dos后,解压缩后就可以了。核心文件有下面这几个:grldr和grub.exe,及menu.lst(此为样本,需修改)。如果你需要中文支持,就用chinese子目录中的文件。 安装方法常见的有下面3种。

2.2.1 通过Windows NT的启动菜单进入grub4dos

将grldr文件复制到c:\\,去掉boot.ini的只读属性,然后修改c:\\boot.ini文件,在boot.ini的最后面加一行:

c:\\grldr=\

并将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的原有属性。

1 / 20

Grub4dos

这样,编辑完重新启动计算机,在NT的启动菜单就会出现“Start GRUB4DOS”这一项,选择该项即可进入grub4dos的环境。【图1】 此方法的优点是:不需要修改MBR。

初学者使用grub一般都需要grub菜单,把准备好的menu.lst文件放到C:\\下(也可放到其它分区根目录或其它指定目录)。menu.lst的编写方法可参考readme.txt或者别人提供的menu.lst。在下面的“1.4 如何使用grub4dos”中将作简单介绍。 2.2.2 通过DOS启动grub

将机器通过任何可能的方式(软盘,U盘,光盘等)启动到DOS环境(最好是纯DOS环境,即不加载任何驱动程序和TSR程序的DOS环境),然后在DOS下或者AUTOEXEC.BAT(文件里只留grub四个字母即可)中运行grub.exe,即可进入grub4dos。

也可在DOS/Windows9x的CONFIG.SYS中使用下列任一方式启动grub。 DEVICE=GRUB.EXE INSTALL=GRUB.EXE SHELL=GRUB.EXE

此方法的优点是:不需要修改MBR;可根据需要在脚本或者其它DOS程序中启动GRUB4DOS。 菜单文件menu.lst可保存在grub文件所在目录或其它指定路径。 2.2.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)。

2 / 20

Grub4dos

也就是说启动时等待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具有图形界面和命令行两种工作模式供选用,并附有比较详细的使用说明,很易于使用。

在Windows NT/2000/XP 下,用以下的步骤可以快速地把Grub4Dos安装到MBR或分区中 前提:你必须拥有FAT16/FAT32的分区。如果全部分区均为NTFS,请仔细看。 1、下载grubinst,解压 2、双击grubinst_gui.exe

3、在\磁盘\右面的列表中选择需要安装Grub4Dos的硬盘/软盘,如果你有多个磁盘(包括USB移动硬盘&),请留意[]中显示的磁盘大小,以便选择正确的磁盘。

4、若需要安装到分区,可点击\分区列表\右面的\刷新\按钮,然后从下拉列表中选择需要的分区(支 持FAT12/FAT16/FAT32/EXT2/EXT3)。若需要安装到MBR,这一步可省略。 5、若想以后能恢复原来的MBR/BS,则在\保存文件\中输入用于保存的文件名字。

6、点\安装\,出现命令窗口,如果看到\则说明安装成功。当然,以上步骤只是安装启动代码,要能正常启动Grub4Dos,还需要以下的步骤:

8、在压缩包中找到grldr,把它放到FAT16/FAT32分区的根目录中。 9、编辑menu.lst文件(应该放在和GRLDR一样的目录里),以配置启动菜单。

若没有FAT16/FAT32分区,则不能把Grub4Dos安装到MBR/BS,而只能利用NT的启动管理器启动Grub4Dos:

1、下载Grub4Dos,把GRLDR解压到系统盘的根目录里(C:\\)

2、编辑C:\\boot.ini(此文件是隐藏的),在文件的最后加上“ C:\\GRLDR=\这样一行

3、编辑C:\\menu.lst文件,以配置启动菜单。

4、下次启动Windows时,会增加\一项,选择它便能进入Grub4Dos

grubinst_gui使用指南

1、安装Grub4Dos到硬盘/软盘映像中。

在\文件\右面的输入框中输入映像文件名,则按\安装\时会安装到指定的映像中。 当修改的是软盘映像时,需要勾上选项\软盘映像\。 2、选项设置

3 / 20

Grub4dos

只读模式:

模拟所需的操作,但不真正地把MBS/BS写到硬盘/映像中。 输出详细信息:

让后台程序grubinst输出更详细的信息,建议使用。 不保存原来的MBR (适用于安装到MBR时)

在修改原来的MBR前,grubinst会把原来的MBR保存到第二个扇区中。若选了这个选项,则屏蔽这一功能。

启动时不搜索软盘 (适用于安装到MBR时)

启动时,若在硬盘上找不到GRLDR,Grub4Dos会试图到软盘上去寻找。若选了这个选项,则屏蔽这一功能。

不引导原来的MBR (适用于安装到MBR时)

若原来的MBR保存在第二个扇区里,则当Grub4Dos找不到GRLDR时,会用原来的MBR来启动。若选了这个选项,则屏蔽这一功能。 优先引导原来的MBR (适用于安装到MBR时) 若选了这个选项,则优先使用原来的MBR来启动。

注意1: Grub4Dos只保留了一个扇区的空间来存储原来的MBR,若原来的MBR超过一扇区,则只有第一扇区被保存,因此不能用原来的MBR来启动。

注意2: 若使用了这一选项,则在启动时会有5秒的等待时间,若你在5秒内按了空格键,则启动Grub4Dos,按其他键或5秒超时的话便引导原来的MBR。等待时间和按键可以定制。 软盘映像

当你把Grub4Dos安装到软盘映像时,请勾上这一选项 注意1: 安装到物理软盘时,并不需要点这一选项

注意2:当你选择了映像文件,并刷新了分区列表时,程序会根据映像文件的类型自动设置这一参数。

注意3:安装到软盘映像或分区时,以上的适用于安装到MBR的各参数将不起作用 等待时间:

设置当优先引导原来的MBR时,启动的等待时间,缺省值是5 热键:

设置当优先引导原来的MBR时,启动Grub的热键,缺省值是空格。

注意:原来版本的grubinst(bootlace.com也一样)利用扫描码来代表按键,比如说,空格是 0x3920。但新版的grubinst允许用字符串来表示按键。比如说,a , ctrl-a , shift-a, alt-a, F1, home, end, space, key-5 (小键盘上的5键) 等等。 额外参数:

你可以在这里输入其他传给后台程序grubinst.exe的参数 3、恢复功能 保存文件:

指定用于保存/恢复的外部文件 从文件中恢复

没有使用了这一选项时,\安装\按钮是正常的安装操作,若保存文件框不是空,则指定用于保存原来的MBR/BS的文件

使用了这一选项时,\安装\按钮的操作变为从指定的保存文件中恢复原来的MBR/BS 从原来的MBR中恢复

使用了这一选项时,\安装\按钮的操作是从第二个扇区中恢复原来的MBR

4 / 20

Grub4dos

注意1: 原来的MBR必须是单扇区,否则恢复后不能启动

注意2: 使用这一功能时,\保存文件\应该为空,并且不能选择\从文件中恢复\4、\测试\按钮

用于显示传给grubinst的参数,但并不真正地调用grubinst。

注意: 这和\只读模式\是不同的。使用\只读模式\时调用了后台的grubinst,只是grubinst 不进行修改MBR/BS的操作。

第三讲grub使用

1.4 如何使用grub4dos

对于多数没有或很少接触过linux的windows用户来说,刚开始使用grub时离不开菜单。也就是说,使用grub前,我们要准备menu.lst文件。 先讲一些最为常用的命令

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在执行了菜单项的所有命令后,会自动加上boot。该命令一般在命令行界面里使用。

Grub4dos高级功能

虚拟磁盘

GRUB4DOS中的虚拟磁盘是由map命令实现的。map命令的功能介绍如下: 磁盘交换

map命令在GRUB Legacy中的也存在,它是用作磁盘交换。

比如说,你有两只硬盘,但两只硬盘上均有可启动的系统。在第一只硬盘上启动时,不需要特殊的处理,直接用chainloader装载启动扇区就可以了。不过,如果要从第二只硬盘上启动,那么单单用chainloader是不够的,这是因为很多操作系统都缺省地从第一只硬盘上装载启动所需的文件,如果文件不在其上,系统便不能顺利地读取,从而导致启动失败。

一个原始的解决方法是在BIOS中修改启动顺序,把需要启动的硬盘放到最前面。那么,重启计算机后该硬盘便会成为第一只硬盘,从而可以正常启动。

5 / 20

Grub4dos

改成

title 硬盘检测修复工具 效率源 (memdisk) kernel (hd0,0)/boot/grub/memdisk.gz initrd (hd0,0)/boot/grub/xly.img 或者改成

title 硬盘检测修复工具 效率源 (map) map (hd0,0)/boot/grub/xly.img (fd0) map --hook

chainloader (fd0)+1 rootnoverify (fd0)

同时把xly.img文件保存到第一主分区(一般是C:)的boot\\grub目录下。 当然也可以保存到其它路径。

比如xly.img文件保存到C:\\boot下,则menu.lst文件相应改为: map (hd0,0)/boot/xly.img (fd0)

又如xly.img文件保存到D:\\test下,则menu.lst文件相应改为: map (hd0,4)/test/xly.img (fd0) (参看下面的注意d)

从上面的例子可以看出,启动软盘镜象,有两种方式,即用memdisk或用map。

用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

另外,菜单文件中的文件路径可用相对路径(如:/boot/rav.zip)或绝对路径(如:(hd0,0)/boot/grub/xly.img)表示。

map方式对软盘映像大小没有限制,但要求必须连续存放。改进的map --mem则无此限制。 比如:

map --mem /boot/xxx.ima (fd0) map --hook

chainloader (fd0)+1 rootnoverify (fd0) 注意:

a, 菜单文件中所用的memdisk.gz文件,不包括在grub4dos的发行包里,需自行准备。可从gnu grub软件包或从其它基于grub的工具(如一键ghost,本人的gghost)中获得。

b, 菜单中所用的其它文件如xp2008.gz(背景文件)、fonts(中文字体文件)及各种镜像文件等,均需拷贝到文件中指定路径。 fontfile命令不可单独使用,需与splashimage一起使用。 c, 菜单文件中的命令全部使用小写。

d, 初学者使用绝对路径时要注意GRUB对设备的命名方法。系统的第一个硬盘驱动器表示成(hd0),其上的第一个分区表示为(hd0,0),也就是说对于硬盘,采用(hdx,y)的形式来表示,x、y都是从0开始计数的,x表示硬盘号,y表示分区号。

由于主分区只能有四个,所以第一硬盘的四个主分区分别用(hd0,0)~(hd0,3)来表示;逻辑分区则从(hd0,4)开始算,即第一逻辑分区用(hd0,4),第二逻辑分区用(hd0,5)来表示,依次类推。

11 / 20

Grub4dos

一般机子的硬盘都是一个主分区,其余是逻辑分区。因此C盘用(hd0,0),D盘用(hd0,4)来表示。 光盘用(cd)表示,第一软驱用(fd0)表示。

如我的硬盘有两个主分区,其余为逻辑分区。用(hdx,y)的方法表示如下图: color white/green yellow/green default 1 timeout 3

#fontfile /boot/grub/fonts #splashimage /boot/grub/bg.xpm.gz

#password --md5 $1$8$D0mfzTIQXv2Ma2b5bWH0b. title 0, Boot from Hard Drive (hd0,0) root (hd0,0) chainloader +1

title 1, GreenGhost [Ghost v8.3/v11] (MAP-HOOK) map --mem /boot/grub/gghost.img (fd0) map --hook

chainloader (fd0)+1 rootnoverify (fd0)

title 2, GreenGhost [Ghost v8.3/v11] (MEMDISK) kernel /boot/grub/memdisk.gz c=200 h=2 s=36 floppy initrd /boot/grub/gghost.img

title 3, GreenGhost [Ghost v8.3/v11] (MAP-HOOK) [disable a20] map --mem /boot/grub/gghost.img (fd0) map --hook

chainloader --disable-a20 (fd0)+1 rootnoverify (fd0)

title 4, Microsoft Windows NT/2K/XP find --set-root /ntldr chainloader /ntldr

title 5, Microsoft Windows Vista find --set-root /bootmgr chainloader /bootmgr

title 6, Boot from Hard Drive (hd0,1) root (hd0,1) chainloader +1 title 7, Reboot reboot

title 8, Shutdown halt

1.5 结言

Grub4dos具有强大的功能,上面介绍的只是grub4dos的一些最基本用法,更多的用法可在掌握基本用法的基础上,自己查阅资料了解。

2.1 硬盘上应用

12 / 20

Grub4dos

硬盘上应用grub,首先要进行安装,安装/启动方式主要有3中,即通过Windows NT的启动菜单进入grub4dos;通过DOS启动grub;通过mbr启动grub。【参看1.3 如何安装grub4dos】 安装完grub后,需要准备菜单文件menu.lst。 2.1.1 加载软盘镜像

对于Windows用户,用grub加载软盘镜象是最常用的功能之一。由于windows2k/xp已脱离了dos,因此进行包括系统备份/恢复在内的一些dos下操作,成为初学者的一个难题。以前我们可能就需要用启动光盘等才能进入dos,光盘的特性决定了很难及时方便地更新光盘上的工具。grub的出现与应用,解决了这个难题。我们不仅无需借助其它的介质就能进入dos环境,而且能及时更新工具。网上下载的各种系统维护工具,很多都是img形式,无需把文件提取出来,稍微修改menu.lst就能使用,各种工具也能和谐共处,使用非常方便。 如何把下载的xxx.img加入grub启动菜单呢?

你只要把xxx.img保存到C:\\boot\\grub目录下,编辑menu.lst,加入下面内容就行了。 title Boot from Floppy image XXX map --mem /boot/grub/xxx.img (fd0) map --hook

chainloader (fd0)+1 rootnoverify (fd0) 注意:

a, 这几行内容不能加在最前面,因为前面是一些对全局有效的设置。 b, 你需要的工具都可以这种方式加进去。

c, 也许你有很多工具,都加进menu的话,显得很乱。平时常用的可能也就一两个工具,不少只是偶尔一用。对于这种情况,可以采取下面的方法。即:把常用的写入菜单,同时在菜单中写一个通用启动img文件的内容。 比如上面的:

title Boot from Floppy image XXX map --mem /boot/grub/xxx.img (fd0) map --hook

chainloader (fd0)+1 rootnoverify (fd0)

可以在启动grub进入菜单后,选择“Boot from Floppy image XXX”后,按“e”进入编辑状态,移动方向键,修改xxx.img为需要启动的文件名,回车,按“b”启动即可。(img文件保存在其它路径的话,则改成相应的路径。) 2.1.2 启动WinPE

有些系统维护操作在dos下操作不太方便,甚至不能进行。WinPE的出现,给我们带来了很多方便。

下面以广受好评的“老九 WinPE 老毛桃修改版_1111 版”为例,介绍如何用grub启动WinPE。 (ISO中已带有安装程序,我这里介绍的是在menu.lst中加入通用的winpe选项。) 步骤:

1, 下载“老九 WinPE 老毛桃修改版_1111 版”,解压后得到BootCD.ISO。

2, 用虚拟光驱或UltraISO等提取iso中的WINPE.IS_,WINNT.XPE和WXPE\\SETUPLDR.BIN,把这3个文件拷贝到C:\\,并把SETUPLDR.BIN改名为ldrxpe。需要外置程序的,还需把XPEMENU.INI和“外置程序”目录一起拷贝到任一盘符的根目录。【图4】【图5】 3,在menu.lst中加入

13 / 20

Grub4dos

title Micro Windows XPE (by LaoMaotao) chainloader /ldrxpe

启动grub时选择“Micro Windows XPE (by LaoMaotao)”就能启动WinPE了 2.1.3 启动系统

对于单一硬盘装了多系统及多硬盘装了多系统的,用grub可以方便地对各系统进行启动管理。 比如在menu.lst中可加入下面的选项:

title 启动第一硬盘第一主分区(hd0,0)上的操作系统 rootnoverify (hd0,0) makeactive chainloader +1

title 启动第一硬盘第二主分区(hd0,1)上的操作系统 rootnoverify (hd0,1) makeactive chainloader +1

title 启动Windows NT/2000/XP/2003 find --set-root /ntldr chainloader /ntldr

title 启动Microsoft Windows Vista find --set-root /bootmgr chainloader /bootmgr

title 启动DOS/Windows 95/98/Me find --set-root /io.sys chainloader /io.sys 2.2 光盘上的应用

下面介绍两种在光盘上应用grub的方法。 2.2.1 grub引导的可启动光盘

以grldr作为光盘的启动文件引导光盘,加载menu.lst,通过menu菜单选择启动项目。 步骤:

1) 准备必要的img文件,及grldr,menu.lst(根据需要准备字体,背景图片,memdisk.gz等文件)。

2) 编辑menu.lst。引导光盘上的img文件的格式如下: title GreenGhost [Ghost v8.3/v11] (MAP-HOOK) map --mem (cd)/boot/grub/gghost.img (fd0) map --hook

chainloader (fd0)+1 rootnoverify (fd0)

菜单中也可引导硬盘上的img文件,比如: title GreenGhost [Ghost v8.3/v11] (MEMDISK)

kernel (hd0,4)/boot/grub/memdisk.gz c=200 h=2 s=36 floppy initrd (hd0,4)/boot/grub/gghost.img

3) 组织文件。比如在E:\\3333下建个grubcd目录,把menu.lst拷贝到此目录下,menu.lst文件将在光盘根目录下。在grubcd目录下建boot\\grub目录,保存各种img,字体等文件(也可以保存到其它路径,与menu.lst中的指定的路径要一致)。注意:menu.lst文件中引用的所有文件的文件名在硬盘上显示的需是小写,大写的要改成小写。【图9】

14 / 20

Grub4dos

4) 制作ISO。用UltraISO新建一个ISO文件,把E:\\3333\\grubcd目录下的所有文件加入iso文件;执行“启动光盘”-“加载引导文件”,选择grldr(需把grldr改名为grldr.bin或grldr.bif等)文件。再执行“文件”-“属性”,选上“允许小写字母”选项,保存ISO文件。 也可使用mkisofs.exe或CDIMAGE.EXE等工具制作启动iso(grldr不需改名)。 比如我用CDIMAGE制作iso的批处理是:

cdimage -lgrubcd -t01/01/2007,00:00:00 -h -n -o -d -m -bgrldr grubcd grubcd.iso 5) 用nero等把制作的可启动ISO刻盘。有条件的可先在虚拟机上测试通过后刻盘,或用CD-RW/DVD+RW刻盘。

2.2.2 BCDW引导GRUB的可启动光盘

此法是用BCDW制作启动光盘,通过BCDW执行grldr来加载menu.lst菜单。 步骤:

1) 首先下载BCDW软件包,解压后获取所需文件。

2)组织文件。比如在E:\\3333下建个bcdwcd目录,此目录下文件将在光盘根目录下,下面建boot\\grub目录和bcdw目录,把软件包中bcdw目录下的bcdw.bin,bcdw.ini和loader.bin拷贝到所建的bcdwcd\\bcdw目录下;把grldr、各种img、字体等文件拷贝到bcdwcd\\boot\\grub目录。menu.lst文件的编辑方法与上面2.1中介绍的相同。

3) 编辑bcdw.ini文件。打开bcdw.ini,找到[MenuItems]部分,比如: [MenuItems]

C:\\ ; Boot from drive C:

\\I386\\setupldr.bin ; Microsoft Windows XP Setup

上面的就是BCDW启动菜单的例子。在其中加上grub等项,变成: [MenuItems]

\\images\\gghost.img ; GGhost v6.0 (Ghost8.3/11) \\images\\mynet.img ; My net (Ghost8.3)(tcp/ip,cd/usb) \\boot\\grub\\grldr ; Grub4dos

\\WXPE\\SETUPLDR.BIN ; Micro Windows XPE (by LaoMaotao) C:\\ ; Boot from drive C:

\\I386\\setupldr.bin ; Microsoft Windows XP Setup

4)制作ISO文件与刻录ISO的方法与2.1中的基本相同。所不同的只是在制作ISO文件时,要把loader.bin(或bcdw.bin)作为ISO的引导文件。【图13】 也可使用mkisofs.exe或CDIMAGE.EXE等工具制作启动iso。 比如我用CDIMAGE制作iso的批处理是:

cdimage -lbcdwcd -t01/01/2007,00:00:00 -h -n -d -o -m -bload.bin bcdwcd bcdwcd.iso 运行后bcdw界面与grub界面的效果如下图。【图14】【图15】 2.3 软盘上的应用

在软盘上应用grub,主要有两种方式,即通过DOS启动grub和把GRLDR引导记录安装到软盘的引导扇区。【参看1.3 如何安装grub4dos】 2.3.1 通过DOS启动grub的软盘应用

先把软盘制作成启动盘,最简单的一种,软盘中只需io.sys,msdos.sys和command.com三个文件。

再把grub.exe和menu.lst拷贝到软盘根目录。 新建一个autoexec.bat文件,里面只需写上4个字母。 grub

15 / 20

Grub4dos

然后编辑menu.lst,由于软盘容量所限,一般很难直接在menu中调用软盘上的img文件,因此,主要可用来启动硬盘上的img文件,还可用于对各系统进行启动管理。菜单文件中使用的指定路径的文件(如字体,img文件等),应预先准备好,否则该选项不能运行。(网上也有在软盘有限的容量里,包括众多维护工具的实例,感兴趣的可自行搜索。) menu.lst文件的例子: timeout 10 default 0

splashimage (fd0)/boot/grub/xp2008.gz fontfile (fd0)/boot/grub/fonts

title GreenGhost [Ghost v8.3/v11] (MAP-HOOK) map --mem (hd0,4)/boot/grub/gghost.img (fd0) map --hook

chainloader (fd0)+1 rootnoverify (fd0)

title 寻找硬盘上的/menu.lst find --set-root /menu.lst configfile /menu.lst

title 启动第一硬盘第一主分区(hd0,0)上的操作系统 rootnoverify (hd0,0) makeactive chainloader +1

title 启动第一硬盘第二主分区(hd0,1)上的操作系统 rootnoverify (hd0,1) makeactive chainloader +1 title 重启 reboot title 关机 halt

2.3.2 引导扇区安装了GRLDR引导记录的软盘应用

GRLDR引导记录安装后,在软盘上只需保留有grldr和menu.lst及menu.lst中引用到的文件。menu.lst文件与“2.3.1 通过DOS启动grub”的软盘中使用的是一样的。

2.4 优盘上的应用(硬盘上的应用不难,而软盘上的应用不流行,所以也重点讲讲U盘上的应用) 在优盘上应用grub,与软盘类似,主要有两种方式,即通过DOS启动grub和把GRLDR引导记录安装到优盘的引导扇区。【参看 前 如何安装grub4dos】

首先把U盘用优盘自带工具或usboot,flashboot等制作成dos启动盘,同时设置电脑的cmos里相应的选项,看优盘能否启动进入dos,能的话,可继续往下阅读;不能启动的话,可尝试不同模式、用其它制作工具等,能启动后再往下阅读。

Ps:由于我的电脑只支持USB-ZIP,USB-FDD,USB-CDROM,不支持USB-HDD,所以第一次我是用ZIP制作U盘的,能在DOS下用bootlace.com –floppy –chs 0x00写入grub到U盘的MBR,也能用AUTOEXEC.BAT的方法,但想到U+技术的兼容性,于是又改用UltraISO制作USB-ZIP+,但不能用bootlace.com了,于是想到用grubinst_gui来写入MBR,但依然不行引导启动,不知是主

16 / 20

Grub4dos

板支持问题还是USB-ZIP+格式的问题,但又为了保证兼容性,最后还是采用AUTOEXEC.BAT的启动方式。

不同的启动模式,U盘启动进入dos后,在你的电脑上可能是A盘,也可能C盘。 由于u盘容量大,在u盘上就可以存放各种工具及WinPE。 当显示为A盘时,使用方法类似于软盘。 menu.lst文件中启动img镜像文件的用法如: title GreenGhost [Ghost v8.3/v11] (MAP-HOOK) map --mem (fd0)/boot/grub/gghost.img (fd0) map --hook

chainloader (fd0)+1 rootnoverify (fd0)

当显示为C盘时,使用方法类似于硬盘。 menu.lst文件中启动img镜像文件的用法如: title GreenGhost [Ghost v8.3/v11] (MAP-HOOK) map --mem (hd0,0)/boot/grub/gghost.img (fd0) map --hook

chainloader (fd0)+1 rootnoverify (fd0)

在上面的例子里,menu.lst中引用文件使用的是绝对路径,即(fd0)/boot/grub/gghost.img和(hd0,0)/boot/grub/gghost.img,这种用法对于特定的机子是没有问题的。但在同一U盘,要使用到不同机子时,可能带来一个问题。也就是可能不同的机子,要用不同的menu.lst文件,否则不能正常启动工具。那么,能否用什么办法,不用这么麻烦呢?答案是肯定的,那就是使用\--set-root\和相对路径来实现。这样就不必为U盘被识别为fd还是hd烦恼了。 比如,你可以在u盘根目录建一个特征文件,如myudisk.txt 这样在启动u盘上的img镜像文件就可用下面的方法来实现: title GreenGhost [Ghost v8.3/v11] (MAP-HOOK) find --set-root /myudisk.txt

map --mem /boot/grub/gghost.img (fd0) map --hook

chainloader (fd0)+1 rootnoverify (fd0)

启动u盘上的WinPE就可用:

title Micro Windows XPE (by LaoMaotao) find --set-root /myudisk.txt chainloader /ldrxpe

参考其它示例,通过编辑你的menu.lst,你就能够充分发挥U盘的效能。

补充: 文件名字

GRUB的文件名字是在设备名字的基础上加上文件的路径,例子:硬盘0上第一个主分区根目录里的aa.img文件:(hd0,0)/aa.img

软盘0上boot目录里的aa.img文件: fd0)/boot/aa.img 注意:目录的分隔符是 / ,而不是Windows/DOS下常用的 \\ 。 另外,你还可以用扇区的位移和数量来指定数据,比如:

17 / 20

Grub4dos

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

18 / 20

Grub4dos

可以用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总共需要指定四种颜色,分别是,正常文本前景,正常文本背景,加亮文本前景和加亮文本背景。

前景色可以使用全部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命令,缺省的文本颜色是白色。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

19 / 20

Grub4dos

20 / 20

本文来源:https://www.bwwdw.com/article/97xp.html

Top