Board logo

标题: grub4dos初级教程 [打印本页]

作者: lianjiang2004     时间: 2007-3-10 04:11    标题: grub4dos初级教程

grub4dos初级教程

CHM图文版 下载:
http://lianjiang2007.ys168.com
http://lianjiang2004.ys168.com

===============================================

grub4dos初级教程
lianjiang 2009年4月

前言: 为何写此初级教程?

假如你是第一次听说grub,你可能说我不需要grub。那么,你是否用过“一键ghost”,或者“矮人DOS工具箱”?如果你用过的话,那么你实际上已经在用grub了。包括本人的“GGhost一键恢复”在内的大多数windows下安装的一键恢复类工具及其它dos类维护工具合集,都是基于grub的。

grub4dos相关的资料互联网上并不少,grub4dos软件包里也有说明文件,可是绝大多数资料并不适合刚接触grub的人。初学者下载了grub4dos软件包后,即使大概看了readme.txt文件后,也很可能仍然是一团雾水,不知从何处入手。出现这种状况的一个主要原因是,此软件是作者利用业余时间开发的,开发者在有限的时间里集中精力于排除软件bug,从而无过多剩余精力撰写文档。[注:bean的中文文档的发布,已使文档方面欠缺的局面得以根本改观。]

其实,初步使用这个软件并不难,可以说非常简单。下面的内容参考了有关资料,并结合自己的使用经验,供初学者参考,希望能对你入门grub有所帮助。我自身也是接触grub不久,对grub的了解还很肤浅,错误之处,在所难免,还望不吝指出。


--------------------------------------------------------------------------------
致谢

本文的完成,参考、引用了众多的资料,不少已找不到原始出处。初稿完成后,网友们提出了不少意见和建议,也得到了软件开发者的支持和鼓励。在此一并表示感谢。
                                            lianjiang 2007.03 初稿
                                                      2009.04 最后修改

【注: 我的网盘:http://lianjiang2007.ys168.com http://lianjiang2004.ys168.com 也提供部分grub相关文件及资料的下载。】



目录
1 grub4dos初级教程-入门篇
  1.1 grub简介
  1.2 如何获得grub4dos最新版
  1.3 如何安装grub4dos
    1.3.1 通过Windows NT的启动菜单进入grub4dos
    1.3.2 通过DOS启动grub
    1.3.3 通过mbr启动grub
    1.3.4 通过Windows VISTA/Window 7的启动菜单进入grub4dos
  1.4 如何使用grub4dos
  1.5 结言

2 grub4dos初级教程-应用篇
  2.1 硬盘上的应用
    2.1.1 加载软盘镜像
    2.1.2 启动WinPE
    2.1.3 启动系统
    2.1.4 引导光盘镜像(ISO仿真)
  2.2 光盘上的应用
    2.2.1 grub引导的可启动光盘
    2.2.2 BCDW引导GRUB的可启动光盘
  2.3 软盘上的应用
    2.3.1 通过DOS启动grub的软盘应用
    2.3.2 引导扇区安装了GRLDR引导记录的软盘应用
  2.4 优盘上的应用
  2.5 结言

3 grub4dos初级教程-进阶篇
  3.1 设置密码
  3.2 菜单内置
  3.3a 使用个性化grub4dos文件名 (grubinst)
  3.3b 用批处理自动给grldr改名 (适用于最新版grldr)NEW!
  3.4 安装Windows XPE到逻辑分区
  3.5 利用savedefault命令传递参数的方法与应用
  3.6 利用dd命令传递参数的方法与应用 NEW!

4 附录

Grub legacy
  4.01 Grub 命令索引
  4.02 Grub 简体中文化版使用方法
  4.03 GRUB安装配置使用汇总
  4.04 Grub命令使用详解
  4.05 GRUB三步通
  4.06 Grub相关安装配置及使用实例汇总讲析

Grub2资料
  4.07 GRUB2使用简介 by bean NEW!
  4.08 GRUB2高级教程 by bean NEW!

Grub4dos资料
  4.09 gfxmenu定制高级教程(新增可定制菜单) by bean NEW!
  4.10 如何使用grubinst_gui by bean

Grub4dos官方文档
  4.11 Grub4dos_tutorial (英文)
  4.12 Grub4dos简介
  4.13 Grub4dos安装和启动
  4.14 Grub4dos新手指南
  4.15 Grub4dos高级功能
  4.16 Grub4dos命令索引
  4.17 Grubinst使用介绍
  4.18 Grub4dos readme (英文)
  4.19 Grub4dos readme (中文)

--------------------------------------------------------------------------------
正文:

1 grub4dos初级教程-入门篇

1.1 grub简介

GRUB 是一个遵从Multiboot(多重启动)规范的启动管理程序。现在接触到的有3种,即GNU Grub Lagecy , GNU Grub2 和 Grub for dos(grub4dos)。

GNU GRUB Lagecy其实就是原来的 GNU GRUB 0.xx ,最新版是2005年发布的GNU GRUB 0.97。 目前已停止开发,并改名为 GNU GRUB Lagecy。

GNU GRUB2是第二代GRUB,它将取代原来的GNU GRUB(例如0.9x版),但目前还处于开发阶段,尚未发布正式版。

GNU GRUB Lagecy和GNU GRUB2都是 GNU 组织的项目。

GRUB for DOS(GRUB4DOS)是一个以 GNU GRUB 为基础的功能强大的引导器。它可以在 DOS 和 LINUX下运行,也可以通过其他引导器来运行,还可以作为MBR运行。GRUB4DOS内置了功能完善的 BIOS 级磁盘仿真。

下面以比较广泛使用的GRUB4DOS为基础进行说明。GNU GRUB与GRUB4DOS的不同之处,可参看相关说明文件。

1.2 如何获得grub4dos最新版

可从以下网址下载GRUB4DOS最新版及较早版本。
    http://download.gna.org/grub4dos/
    http://download.gna.org/grubutil/
    http://grub4dos.jot.com/WikiHome
    https://gna.org/projects/grub4dos/
    http://grub4dos.sourceforge.net/wiki (官方说明文档)

1.3 如何安装grub4dos?

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

安装方法常见的有下面3种。

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

将grldr文件复制到c:\,去掉boot.ini的只读属性,然后修改c:\boot.ini文件,在boot.ini的最后面加一行:
    c:\grldr="Start GRUB4DOS"
并将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 GRUB4DOS”这一项,选择该项即可进入grub4dos的环境。【图1】



此方法的优点是:不需要修改MBR。

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

1.3.2 通过DOS启动grub

将机器通过任何可能的方式(软盘,U盘,光盘等)启动到DOS环境(最好是纯DOS环境,即不加载任何驱动程序和TSR程序的DOS环境),然后在DOS下或者AUTOEXEC.BAT中运行grub.exe,即可进入grub4dos。
也可在DOS/Windows9x的CONFIG.SYS中使用下列任一方式启动grub。
    DEVICE=GRUB.EXE
    INSTALL=GRUB.EXE
    SHELL=GRUB.EXE

此方法的优点是:不需要修改MBR;可根据需要在脚本或者其它DOS程序中启动GRUB4DOS。

菜单文件menu.lst可保存在grub文件所在目录或其它指定路径。

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

1.4 如何使用grub4dos

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

下面是一个menu.lst的例子。(以#开始的行,表示注释,不执行)

# 默认延迟时间(秒)
timeout 30

# 第一项为默认值
default 0

# 设置图形背景文件
splashimage (hd0,0)/boot/grub/xp2008.gz

# 设置中文支持的字体文件
fontfile (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

此菜单文件的运行效果如下图。【图2】



参考这个例子,我们就可以根据自己需要对菜单进行修改。

比如从网上下载了效率源的镜像文件,文件名为XLY.IMG。我们只需把
title 使用memdisk启动本地 Win98 软盘镜像文件
kernel (hd0,0)/boot/grub/memdisk.gz
initrd (hd0,0)/boot/grub/win98.img

改成
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)来表示,依次类推。
    一般机子的硬盘都是一个主分区,其余是逻辑分区。因此C盘用(hd0,0),D盘用(hd0,4)来表示。 光盘用(cd)表示,第一软驱用(fd0)表示。

如我的硬盘有两个主分区,其余为逻辑分区。用(hdx,y)的方法表示如下图:



下面是我现在使用的菜单效果图及menu.lst文件,供参考。【图3】



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 grub4dos初级教程-应用篇

2.1 硬盘上应用

硬盘上应用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中加入

title Micro Windows XPE (by LaoMaotao)
chainloader /ldrxpe

启动grub时选择“Micro Windows XPE (by LaoMaotao)”就能启动WinPE了。这样就能在windows界面下进行系统维护、安装等操作。【图6】【图7】【图8】








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】




4) 制作ISO。用UltraISO新建一个ISO文件,把E:\3333\grubcd目录下的所有文件加入iso文件;执行“启动光盘”-“加载引导文件”,选择grldr(需把grldr改名为grldr.bin或grldr.bif等)文件。再执行“文件”-“属性”,选上“允许小写字母”选项,保存ISO文件。【图10】【图11】【图12】









也可使用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

然后编辑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 优盘上的应用

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

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

不同的启动模式,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文件,否则不能正常启动工具。那么,能否用什么办法,不用这么麻烦呢?答案是肯定的,那就是使用"find --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盘的效能。

2.5 结言

本文写的仅仅是grub4dos的一些最基本应用,Grub4dos更多的功能有待你去尝试和挖掘。
希望这篇文章能有助于你更快地把grub4dos使用起来。
更期待能分享你的成果。

推荐论坛:

    时空论坛: http://bbs.znpc.net
    中国DOS联盟论坛:  http://www.cn-dos.net/forum/
    无忧启动论坛: http://bbs.wuyou.com

【注: 我的网盘:http://lianjiang2004.ys168.com 也提供部分grub相关文件及资料的下载。】


3 致谢

本文的完成,参考、引用了众多的资料,不少已找不到原始出处。初稿完成后,不少网友指出了其中的不足之处,并提出了修改的建议,也得到了软件开发者的支持和鼓励。在此一并表示感谢。



                                            lianjiang 2007.03.09 初稿
                                                      2007.03.27 修改
4 附录

    这里提供的是部分网络上收集的grub相关资料,供参考。为统一格式,对部分文档进行了重新排版。

4.1 如何使用grubinst_gui

grubinst 可用于在Windows NT/2K/XP 和 Linux/FreeBSD 下把Grub4Dos启动代码安装到MBR/BS。其用法类似于bootlace.com。
grubinst_gui 是运行于Windows系统下的图形界面,利用它可以方便的使用grubinst的功能。
注意:grubinst只负责把GRLDR启动代码安装到 MBR/BS, 你还需要手动把GRLDR文件拷贝到某一FAT16/FAT32分区的根目录里。

grubinst_gui运行后界面如下图。

        

4.1.1 grubinst_gui新手指南

在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、点"安装",出现命令窗口,如果看到"The MBR/BS has been successfully installer", 则说明安装成功。

当然,以上步骤只是安装启动代码,要能正常启动Grub4Dos,还需要以下的步骤:

    7、从 http://grub4dos.jot.com/WikiHomehttp://download.gna.org/grub4dos/ 中下载最新版的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="Load Grub4Dos"
这样一行
    3、编辑C:\menu.lst文件,以配置启动菜单。
    4、下次启动Windows时,会增加"Load Grub4Dos"一项,选择它便能进入Grub4Dos

4.1.2 grubinst_gui使用指南

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

2、选项设置

只读模式:
模拟所需的操作,但不真正地把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
注意1: 原来的MBR必须是单扇区,否则恢复后不能启动
注意2: 使用这一功能时,"保存文件"应该为空,并且不能选择"从文件中恢复"

4、"测试"按钮
用于显示传给grubinst的参数,但并不真正地调用grubinst。
注意: 这和"只读模式"是不同的。使用"只读模式"时调用了后台的grubinst,只是grubinst 不进行修改MBR/BS的操作。

特别说明:
    1,此部分"附录:如何使用grubinst_gui"内容是应部分网友的要求增加的,全部引用自作者的说明文件。计划在官方文档中grubinst_gui相关内容发布后,删除此部分内容。
    2,新版已增加对NTFS文件系统的支持,但目前可能仍存在不完善的地方,相关说明及使用方法可参看作者的帖子。

[ Last edited by lianjiang2004 on 2010-5-3 at 20:25 ]
作者: 不点     时间: 2007-3-11 05:00
写的好。非常感谢。

顺便说,前些日子见到有人在网上搜索 grub4dos 的教程,结果没有找到想要的,就抱怨了 grub4dos 的这一不足。其实我也挺自责的,也感到是我的责任。lianjiang 兄弟从另外一个角度看问题,从而替我加以开脱。lianjiang 的做法本身又替我弥补了这一不足。所以,我得表示双重感谢。
作者: lianjiang2004     时间: 2007-3-11 05:41
该谢的是你的好软件。
功能强大的grub4dos只是被我等用了其中的一个小功能而已。很不好意思。呵呵。
作者: lianjiang2004     时间: 2007-3-11 05:48
昨天上午写完,晚上就看到了bean写的一些中文文档,看了开发者写的,更认识到自己对grub了解的肤浅。
不过,能得到不点的肯定,已很满足。呵呵。
作者: lhteee     时间: 2007-3-11 10:13
学习学习,辛苦了,谢谢!!!
作者: zephyr     时间: 2007-3-12 01:33
学习了,多谢楼主。辛苦了。
作者: lianjiang2004     时间: 2007-3-13 10:43
grub4dos初级教程  2007.03.12 第二次修改
作者: llztt1     时间: 2007-3-13 12:03
不得不承认,写的太好了,以前一直分不清楚grldr的GRUB与用stage2的GRUB是怎么会事,原来玩了半天一直在玩grub4dos啊,万分感谢。。
作者: llztt1     时间: 2007-3-13 13:06
请教lianjiang或不点,如何隐藏GRUB写入MBR后启动系统时的提示,就是提示你按热键启动GRUB,其他键启动原来系统那个,我把TIMEOUT=0了,还是会闪一下,怎么彻底隐藏呢??
如果隐藏了,实现一键还原就好看多了
作者: llztt1     时间: 2007-3-13 13:09
哦,还有个问题,我看BOOTLACE的说明文件,列举了许多热键的对应代码,发现F11对应0x8500,我设置好后,发现按F11不起作用,而设置其他,譬如F9就可以,难道F11不对应8500??

以及BOOTLACE中的--NTFS参数什么作用啊??支持搜索NTFS区上的GRLDR??我用这参数时,发生错误说什么文件系统格式什么的,而且不加这参数MBR照样可以找到NTFS上的GRLDR并顺利启动之。。。

[ Last edited by llztt1 on 2007-3-13 at 12:12 AM ]
作者: llztt1     时间: 2007-3-13 13:17
哦,还有,bootlace 如何选择操作哪块硬盘啊,0x80对应操作所有硬盘还是默认第一块,如果第一块,哪如何操作其他硬盘??
作者: lianjiang2004     时间: 2007-3-13 21:05
to llztt1
本人也是初识grub,很多东西我也还不理解,目前主要是参考现成的menu.lst使用。很显然,你已不是刚入门的了,可说已超出本教程的对象范围了。呵呵。
1,TIMEOUT=0,确实还是会闪一下。作为变通方法,我想要想去掉这信息,可编辑grldr,把这行提示文字改成...............等来实现。
2,关于热键,“难道F11不对应8500?” 我没试过,不清楚。
3,0x80对应操作第一硬盘,0x81为第二硬盘。可在命令行模式获得相关信息。

具体的可请教不点,权威回答。

[ Last edited by lianjiang2004 on 2007-3-13 at 11:30 PM ]
作者: 不点     时间: 2007-3-13 22:47


  Quote:
Originally posted by llztt1 at 2007-3-13 01:06 PM:
请教lianjiang或不点,如何隐藏GRUB写入MBR后启动系统时的提示,就是提示你按热键启动GRUB,其他键启动原来系统那个,我把TIMEOUT=0了,还是会闪一下,怎么彻底隐藏呢??
如果隐藏了,实现一键还原就好看多了

即使 timeout=0, 热键仍然起作用,因为热键可以早早地按下,在检查 timeout 之前就按下。所以,我觉得显示这条信息是正确的。

至于说你想消除这个信息,你可以修改源码来达到。
作者: 不点     时间: 2007-3-13 22:59


  Quote:
Originally posted by llztt1 at 2007-3-13 01:09 PM:
我看BOOTLACE的说明文件,列举了许多热键的对应代码,发现F11对应0x8500,我设置好后,发现按F11不起作用,而设置其他,譬如F9就可以,难道F11不对应8500??

以前也曾经有报告说,F11 和 F12 不起作用。我猜测有两个可能的原因。其一,我们的 README 有错误,指出了不正确的对应关系。其二,可能这里的工业标准不统一,从前老的 PC 机没有 F11 和 F12 这两个键,因此也许某些 BIOS 不支持这两个键;或者虽然支持,但采用了不同的代码,造成不兼容。

  Quote:
BOOTLACE 中的 --NTFS 参数什么作用啊??支持搜索NTFS区上的GRLDR??我用这参数时,发生错误说什么文件系统格式什么的,而且不加这参数MBR照样可以找到NTFS上的GRLDR并顺利启动之。。。

bootlace 的 --ntfs 用于安装 GRLDR 引导代码到 NTFS 文件系统上。目前请不要使用该参数,因为 bean 对于 grub4dos 的 NTFS 改造才刚刚开始,ntfs 相关的部分还没有完全彻底地融入 bootlace 之中。
作者: achai0221     时间: 2007-3-13 23:24
終於有了一點點的了解
看來我要學習的路還很長
作者: 不点     时间: 2007-3-13 23:29


  Quote:
bootlace 如何选择操作哪块硬盘啊,0x80对应操作所有硬盘还是默认第一块,如果第一块,哪如何操作其他硬盘??

bootlace 后面的参数中是 0x80 就会把引导代码写入第一块硬盘,如果是 0x81 就写入第二块硬盘,等等。

BIOS 只读取第一硬盘的 MBR,所以,写入 0x81 是没有用的。不过,将来你可能会把 0x81 当作 0x80 来用(比如交换磁盘之后),所以,你可以在 0x81 上写入引导代码。

位于 MBR 上的代码程序,它会首先查找 第一硬盘各个分区上的 grldr 文件,如果找不到,那么再找第二硬盘上的所有分区上的 grldr,……,如果所有的硬盘都查找失败了,还要查找第一软盘 (也就是 A 盘)上的 grldr 文件。
作者: llztt1     时间: 2007-3-14 02:24
高手一点播就是拨云见日啊,呵呵
我测试过,硬盘上由BOOT.INI启动的GRLDR不好改名,否则容易出问题,而光盘上由EASYBOOT启动的GRLDR可以改成其他名

下面的问题不点大师估计不会理会了,请lianjiang来讨论下
关于微软标准MBR(FDISK/MBR出来的)如何启动系统的:开机,BIOS调用第一硬盘MBR,MBR启动搜索活动分区,若搜索到就尝试加载该分区的第一扇区,进而由这一启动扇区程序加载启动文件(IO.SYS,NTLDR),这个流程有错误吗??

如果BOOTLACE成功把GRLDR安装到了某分区中,而且该分区是非活动分区,那么如何启动这一分区的操作系统呢??

呵呵,题外话,在GRUB4DOS开发中,BEAN是不是专门负责开发 改善MBR启动代码 的命令或程序,以使MBR的启动代码更好的支持GRUB??
作者: 不点     时间: 2007-3-14 04:20
所谓活动分区的标志,其实也是由微软制定的。微软不管制定什么,它都要成为工业标准,因为大家都用它的系统。在硬盘的第一扇区上,开头是 MBR 程序代码,末尾是分区表。分区表的结构也是微软制定的(或者我们至少可以假定它就是微软制定的)。所谓活动分区的标志,也只是微软的 MBR 程序代码所要使用的,其他的启动程序不一定要识别这个活动标志。例如作为 MBR 的 GRUB 引导代码就忽略活动标志,而是直接启动 GRUB 主体程序,当 GRUB 主体程序获得控制之后,又寻找 GRUB 自己的 MENU.LST 文件,并按照里面的指令来启动任意分区上的操作系统(可以是扩展分区上的逻辑分区里面的操作系统),彻底忽略了由微软放在分区表上的分区活动标志。

你所说的微软的启动流程是没错的。

bootlace 安装的 GRLDR 引导扇区通常不是安装到某个分区了,而是安装到了 MBR 上了。其实也可以利用 bootlace 来把引导代码安装到任意一个分区的引导区,但这是高级话题(有危险性),不是给普通用户使用的。以后会让普通用户也能使用这一功能,不过那得等待这些机制都完善了之后才行。

MBR 上的引导代码只负责(从各个分区中)找到并启动 GRLDR 文件,别的什么都不做。一旦 GRLDR 文件被启动,GRLDR 就找它的配置文件 menu.lst,并按照 menu.lst 中的指令来启动其他任意一个操作系统。GRLDR 可以识别出 FAT12/16/32/NTFS,以及 Linux 下的各种文件系统,因此,它启动任何一个系统都是不难的。它不管分区的活动标志,不管是活动的,还是非活动的,它都可以启动。它甚至还有一条命令专门用来改变某个主分区的活动标志的。

grub4dos 以前主要是我在维护。bean 是来接替我的,从现在起, bean 就是主要维护人,同时我也是参与维护的一个成员。bean 的加入应该说是这个项目的一次大的飞跃。bean 是搞专业出身的,而我是业余的,自然是有些差别了。当然我们中的大多数人都是业余的,我也不是说业余的就一定是差的,专业的就一定行。我只是说 bean 既是专业的,又是很行的。bean 已经做了很多,比如 chainloader 加载 WinME 的 IO.SYS,涉及到微软的秘密(解压),很有难度,这是 bean 做的。还有 int13 仿真代码中也有 bean 的补丁。这都是在我为主要维护人期间 bean 所做的工作。现在 bean 在 NTFS 方面又显示了实力。NTFS 是一个老大难问题,是一块硬骨头。世界上许多人都在研究 NTFS,但是,由于微软不公开 NTFS 的技术细节,使得外界很难全面掌握 NTFS 的访问方法。开源界虽然现在可以读 NTFS 了,但写入 NTFS 仍然不可靠。我写过 EXT2 的引导扇区,因此能够体会写引导扇区的困难。公平地说,比较一下所有种类的文件系统的引导扇区,那么 NTFS 引导扇区就是最难写的了。bean 已经写出来了,并且现在正在完善它。bean 做的很多,不能在这里一一述说。概括地说,bean 会进一步完善 grub4dos 的,相信通过他以及我们大家的共同努力,grub4dos 会走得更远。
作者: maxufengsl     时间: 2007-3-14 11:08
thank you
作者: tangtai     时间: 2007-3-15 04:34
谢谢楼主及不点,支持!!!!!
作者: zzzz     时间: 2007-3-23 12:42
谢谢楼主!楼主辛苦了!
作者: lianjiang2004     时间: 2007-3-29 21:03
grub4dos初级教程 (CHM图文版)【最终版 07-03-31更新】

主要更新:
07.03.31   重新排版,附录中增加几篇网络上收集的grub相关资料。(CHM图文版)
           此版本为最终版,计划不再更新。
07.03.26   应部分网友的要求增加"1.6 附录:如何使用grubinst_gui"。
07.03.24   改写部分内容。
07.03.17   为便于初学者理解,并增加直观性,增添了部分操作和运行效果截图,并修改了部分文字。限PDF版。
07.03.15   根据各位的建议,修改了部分内容,可是帖子就超字数限制了。
           分贴的话,会给阅读者带来不便。
           为便于查阅,因此合并两帖,并简单修改了部分内容。以附件提供。
------------------------

[ Last edited by lianjiang2004 on 2007-4-1 at 02:04 AM ]
作者: yiyaxuan     时间: 2007-4-8 10:28
从头看了,对初学者来说,真是太有帮助了.
作者: kkof2000     时间: 2007-4-16 01:22
努力学习ing.....
作者: libin4100     时间: 2007-4-24 07:00
看得头好晕
不过总算对grub4dos有了更进一步的了解
谢谢两位高手
作者: chdoxu     时间: 2007-4-24 07:53
我找了n次终于找到了,thank you very very much
作者: james168     时间: 2007-4-27 00:50
学习,原来GRUB4DOS这么的好。。。

谢谢楼主、不点及bean ,支持!!!

[ Last edited by james168 on 2007-4-27 at 12:54 AM ]
作者: yuxiang321654     时间: 2007-5-1 11:17
怎么没图片啊。楼主不厚道啊~!
作者: lianjiang2004     时间: 2007-5-1 14:58


  Quote:
Originally posted by yuxiang321654 at 2007-5-1 11:17:
怎么没图片啊。楼主不厚道啊~!

这里提示空间已满,无法贴附件。文中已提供下载chm图文版的地方,自行下载。
作者: lsj0416     时间: 2007-5-8 11:10
从头看了,对初学者来说,真是太有帮助了.
作者: uncommon     时间: 2007-5-15 17:44    标题: 谢谢

以前用vFloppy,看来过时了。。。

现在来学学Grub吧,应该还不算晚,呵呵,这个名字当然是怎么取的?怎么跟玩魔兽的那个名字好像:Grubby?

雄关漫道真如铁,而今迈步从头越...

相信有了前面两位高手的指点,很快就能master了:)
作者: pwaqc     时间: 2007-5-17 21:34
学习中,收下来慢慢看,谢谢提供
作者: zjm1228     时间: 2007-5-25 14:29
学习中,要补课了
作者: lxmxn     时间: 2007-5-25 22:16
不错啊,建议版主过来加精。
作者: lianjiang2004     时间: 2007-5-25 23:26
2007.5.25  已上传图文版到联盟的文件系统,怎么中文成了乱码。
不知哪个链接能下载。http://zhenlove.com.cn/cndos/fileup/files/grub4dos鍒濈骇鏁欑▼%20CHM鍥炬枃鐗坃0331.rar
http://zhenlove.com.cn/cndos/fileup/files/grub4dos初级教程 CHM图文版_0331.rar
-------------------------------------------------------
据测试,第一个能下载。
干脆上传个不带中文文件名的。麻烦谁把里面的乱码文件删掉。
http://zhenlove.com.cn/cndos/fil ... c_tutorial_0331.rar

[ Last edited by lianjiang2004 on 2007-5-26 at 08:18 AM ]
作者: lxmxn     时间: 2007-5-26 00:39
第一个可以下载,第二个倒不能下载,奇怪。。要问一下站长了。

非常感谢兄发这么好的资料上来。支持!

[ Last edited by lxmxn on 2007-5-26 at 12:41 AM ]
作者: lianjiang2004     时间: 2007-5-26 08:03
在我这也是第一个能下载。
可能是编码问题,联盟的文件系统里好多中文名的文件都是乱码,也有少数不是乱码的。怪事。是不是GB码unicode的问题?
作者: sytyh     时间: 2007-5-28 18:29
学习到好多,感谢中
作者: lp1129     时间: 2007-5-29 09:39
看到的太晚了,学习了
作者: cc321mn     时间: 2007-5-29 16:09
学习中。太好了。
作者: hjch65655166     时间: 2007-6-2 22:18
感谢你们2位啊 ^_^
就别酸了 反正感谢来感谢去都是你2位 ^_^
作者: dsk23d     时间: 2007-6-17 16:06
多谢楼主了
学到不少东西
作者: dsk23d     时间: 2007-6-17 16:09
楼主我有一事不明
为什么用ISO软件打开IMG文件时里面的东西不能运行
而用GRUB时IMG文件可以自动运行呀
作者: wangfei8842     时间: 2007-6-21 15:08
真是谢谢楼主了,学习中!
作者: dosxiaobai     时间: 2007-6-22 23:39
收了,谢谢,.. ...
作者: bingchong     时间: 2007-6-27 21:25
疯狂学习中
作者: sxtyp     时间: 2007-6-30 15:54
写的好。非常感谢。多谢楼主。辛苦了。
作者: pcuser80     时间: 2007-7-8 11:38
不错,一直不知道如何启动DOS,这下解决了:D
作者: fanly121119     时间: 2007-8-12 18:24
谢谢
又学习了
作者: 1112yuhua     时间: 2007-8-24 16:24
今天装了一下,真的很好用啊
作者: feifeiyumao     时间: 2007-9-16 22:09
ding
作者: d590520     时间: 2007-9-20 23:58
学习学习,辛苦了,谢谢!!!
作者: toptop     时间: 2007-9-22 02:40
学习ing,学习
作者: skyforever     时间: 2007-10-1 19:57
收藏了,刚接触这个,希望能帮我入门
作者: pcmail     时间: 2007-10-18 00:11
学习中,谢谢楼主了。。
作者: osos     时间: 2007-10-23 09:15
学习了
作者: menglei     时间: 2007-10-23 13:53
高手点拨,受益菲浅呀
作者: frank55555     时间: 2007-10-26 10:31
寫的真是太好了.和商品一樣,還是要有詳細的說明書才好.(當然,中文的最好不過,通俗易懂的就再好不過了.)謝謝,學習中.
作者: wbfans     时间: 2007-10-30 15:56
这个请到作者的网盘下载,最新的已经到2007年8月了。。。
俺已经打印了一份,出差在火车上看!
感谢楼主的一直不懈修改帮助文档!
作者: xsrdg     时间: 2007-12-1 03:01
hiddenmenu
作者: apareon     时间: 2007-12-12 13:25
建议版主把好的文章或资料整理,然后打包,最好是CHM格式的文档,这样便于大家学习。如果没空,我可以帮助打包,整理。
作者: ttday1985     时间: 2007-12-19 11:48    标题: 一键还原

楼主,你能不能把你的一键恢复制作过成.讲一下.我是菜鸟.看不动。要做成安装版的一贱还原,怎么闹的。我找了好长时间都没有结果.我先谢谢楼主.我的QQ:275369907
作者: lianjiang2004     时间: 2007-12-19 11:56


  Quote:
Originally posted by ttday1985 at 2007-12-19 11:48:
楼主,你能不能把你的一键恢复制作过成.讲一下.我是菜鸟.看不动。要做成安装版的一贱还原,怎么闹的。我找了好长时间都没有结果.我先谢谢楼主.我的QQ:275369907

不明白你的意思。
http://gghost.uu1001.com/
作者: lihei     时间: 2007-12-19 22:58
下不了啊
作者: lianjiang2004     时间: 2007-12-20 07:52


  Quote:
Originally posted by lihei at 2007-12-19 22:58:
下不了啊

这是联盟的问题,都下不了。呵呵。

【注: 我的网盘:http://lianjiang2007.ys168.com 也提供部分grub相关文件及资料的下载。】
作者: niao7409     时间: 2008-1-4 23:25
非常感谢
作者: 429499381     时间: 2008-1-5 06:17
这个帖子一直在看,  期待有更多的更新
作者: lianjiang2004     时间: 2008-1-5 07:22


  Quote:
Originally posted by 429499381 at 2008-1-5 06:17:
这个帖子一直在看,  期待有更多的更新

教程只是提供入门的帮助。
更多的用法就该看官方文件,或者到官方论坛看看了。

完全照搬官方文件的说明就没必要了吧?呵呵。
作者: luggage     时间: 2008-1-6 15:11
學習的路還很長 ...
作者: wwwcccyyy     时间: 2008-1-12 18:57
可要认真的学习下
作者: goeasy2005     时间: 2008-2-2 11:54
太好了!真是好东西!学习中。
作者: fattyhk     时间: 2008-2-11 19:29
辛苦楼主了 写的好详细啊 对我们这样的新人太有用了
作者: redtimes     时间: 2008-2-29 12:56
万分感谢,一直都不大会用,找了很久
作者: woo88     时间: 2008-3-11 17:49
xuexi
作者: sorawa     时间: 2008-3-13 14:12
太感谢了,学习了,
作者: tinlin     时间: 2008-3-18 20:53
非常感谢!!
THANK YOU SO MUCH!!
作者: spotdog     时间: 2008-3-19 10:57
好东西啊   谢谢分享
作者: haiou327     时间: 2008-3-22 17:28
楼主辛苦了,顶!!!!!!!!!!!!!!
作者: sgzhou6688     时间: 2008-3-26 18:21
你好,能不能重点的分析并讲解一下"一键GHOST"的制作实例
作者: sgzhou6688     时间: 2008-3-26 18:22
我====================
=======================
========================
=========================
==========================
我在等待中............................................
作者: lianjiang2004     时间: 2008-3-26 18:24


  Quote:
Originally posted by sgzhou6688 at 2008-3-26 18:21:
你好,能不能重点的分析并讲解一下"一键GHOST"的制作实例

跑错地方了吧?呵呵。
作者: daisuki     时间: 2008-4-6 18:48
很好的教程,谢谢楼主。真的要好好学一下了,磨刀不误砍柴工。
作者: gudou     时间: 2008-4-14 20:01
哦滴神啊……这简直是神迹啊…………太厉害了
作者: jonsonqf     时间: 2008-4-14 23:22
此教程确实很好,看到很多人在用grub,却完全不知道是什么,网上搜索,就写了是个启动管理器,其实质的左右完全没有介绍,这个教程确实弥补了这个不足,希望可以继续详细介绍些其他的功能,就像一些dos手册一样,因为目前关于grub的系统类教程在网上可以找到的真的少之又少
作者: lianjiang2004     时间: 2008-4-15 11:00


  Quote:
Originally posted by jonsonqf at 2008-4-14 23:22:
此教程确实很好,看到很多人在用grub,却完全不知道是什么,网上搜索,就写了是个启动管理器,其实质的左右完全没有介绍,这个教程确实弥补了这 ...

这个教程只是帮助你入门,对多数人而言,包括我自己在内,教程里介绍的内容已基本够用了。

更多用法,还需要自己参看相关资料,加上多动手。

建议看看官方文档。
作者: Qhja     时间: 2008-4-27 19:25
终于找到一个好的教程了 学习!
作者: wgx7081     时间: 2008-5-7 19:20
内容很丰富,对新手来说是很好的学习机会
作者: locom     时间: 2008-5-15 12:29
好東西,謝謝了
作者: locom     时间: 2008-5-15 12:37
有些疑問:
1、使用grub,那首先是不是得在硬盤上已經安裝了操作系統或者多操作系統,比如(hd0,0)安裝的是XP,(hd0,1)安裝的是Linux系統,這樣子后再把grub安裝到MBR,編輯相應的menu.lst,然後拷貝相應的文件到每個操作系統的根目錄下?
2、還是先把磁盤分區,然後安裝到MBR,然後再在相應的分區上安裝操作系統?
新手請見諒!
作者: tww2008     时间: 2008-5-18 14:38
太难得,这么详细,要花点时间来学习一下,谢谢楼主
作者: zhucheng     时间: 2008-5-24 09:56
以前看到别人用,自己不会
作者: jipinshangren     时间: 2008-7-2 17:06
了解了些新东西 !常常逛论坛会增长好多东西!谢谢贡献!
作者: yypxlove     时间: 2008-7-27 09:05
非常感谢,在这学会了怎么用GRUB,下载了些想要的工具.
作者: greenldy     时间: 2008-8-2 21:13
才踏入,慢慢学,已小有收获
作者: 9634888     时间: 2008-8-11 15:42
进来学习一下,谢谢楼主。
作者: 9634888     时间: 2008-8-11 15:42
进来学习一下,谢谢楼主。
作者: zhao07     时间: 2008-8-19 21:43    标题: 感谢

感谢  受教了
作者: qslljm112233     时间: 2008-10-13 17:43    标题: 楼主辛苦了

非常楼主提供的帮助,让我这个电脑盲又学到了一些知识!
作者: qslljm112233     时间: 2008-10-13 17:43    标题: 楼主辛苦了

非常楼主提供的帮助,让我这个电脑盲又学到了一些知识!
作者: sofuhai     时间: 2008-10-16 20:21
好,正好学学
作者: lianjiang2004     时间: 2008-10-26 20:54
对教程进行了个别文字的修改与补充。
作者: dfming     时间: 2008-11-18 17:21
非常非常好,更加让我想学习DOS
作者: dfming     时间: 2008-11-18 17:22
非常非常好,更加让我想学习DOS
作者: jiangzw     时间: 2008-11-29 14:30
好贴
作者: jiangzw     时间: 2008-11-29 14:31
好贴啊,学习学习,不知道vista下如何使用,没有boot.ini啊!!
作者: bjsfwei     时间: 2008-12-4 11:00
图呢???????????
作者: pxgxtao     时间: 2008-12-13 23:52
感谢呀!
作者: ludertk     时间: 2008-12-16 02:17
学习了,多谢楼主。
作者: a102135     时间: 2008-12-17 13:18
先打印下来再慢慢看!

[ Last edited by a102135 on 2008-12-17 at 13:19 ]
作者: a102135     时间: 2008-12-17 13:18
可找到学习的地方了!一直很想学习这方面的知识!

[ Last edited by a102135 on 2008-12-17 at 13:20 ]
作者: kukuer     时间: 2008-12-20 20:02
入门之中~~~~
作者: lianjiang2004     时间: 2009-1-18 10:19
grub4dos初级教程 【2009-01-18 最终更新】


2009-01-18:

grub4dos已进入最终正式版发布的倒计时,因此对初级教程进行最后一次更新。
此教程以后不再更新。

新增内容:

进阶篇:
3.3b 用批处理自动给grldr改名 (适用于最新版grldr)NEW!
3.6 利用dd命令传递参数的方法与应用 NEW!

附录:
4.07 GRUB2使用简介 by bean NEW!
4.08 GRUB2高级教程 by bean NEW!
4.09 gfxmenu定制高级教程(新增可定制菜单) by bean NEW!

CHM图文版 下载:
http://gghost.qupan.com/1557049.html
http://lianjiang2007.ys168.com
http://lianjiang2004.ys168.com
作者: regvip2008     时间: 2009-1-19 22:39
这份教程对我等菜鸟来说,作用很大,感谢lianjiang2004兄!
作者: marrow     时间: 2009-3-8 04:25
    lianjiang2004 所出的 grub4dos 初级教程对初学者来说非常有用,让我们少走了不少弯路,也对 grub4dos 有了更深的认识,作为初学者我对 lianjiang2004 的grub4dos初级教程-入门篇,根据自己的认识又整理了一下,能对刚接触 grub4dos 的新手快速理解也许有些用处。有错误之处还望高手指正。

    grub4dos初级教程-基础篇

    grub4dos的历史由来:GRUB for DOS(简写为GRUB4DOS)是一个基于 GNU GRUB 的二次开发版本。与官方的 GNU GRUB 有一个很大的区别就是启动方式的多样性。

  grub4dos是一个多重开机引导管理工具,它可用来激活Linux、BSD、OS/2、BeOS与Windows95/98/NT等众多操作系统。所有的东西都集成在grldr和grub.exe这两个文件中(GRUB是一个独立于操作系统之外的开机程序,menu.lst与之配合实现加载),另外,为了兼容Vista的启动(Vista不能加载超过64K的引导文件),grub4dos又多了一个grldr.mbr,grldr.mbr相当于grub4dos的引导扇区,类似于NT下引导DOS时用到的bootsect.dos,它的主要功能就是在本地硬盘、软盘、U盘根目录下查找grldr文件并加载,凡是支持加载引导扇区的引导软件都可以通过加载grldr.mbr来引导进入grub4dos。

一. grub4dos的获得
    下载grub4dos(http://nufans.net/grub4doshttp://grub4dos.nufans.nethttp://download.gna.org/grub4doshttp://grub4dos.sourceforge.net/grub4doshttp://sites.google.com/site/grubdos),解压缩后就可以了。核心文件有下面这几个:grldr(VISTA系统,还需grldr.mbr)和grub.exe,及menu.lst(此为样本)。如果你需要中文支持,就用chinese子目录中的文件。

二、GRUB4DOS常见的加载方式
    1、从NT下通过boot.ini加载:分区类型支持FAT(12/16/32)、NTFS、EXT(2/3)。将grldr文件复制到c:\,修改c:\boot.ini文件,在boot.ini的最后面加一行:c:\grldr="Start GRUB4DOS"  并将boot.ini中的timeout值设置为大于0。grldr也不一定放到根目录下,它们最终的目的都是搜索各分区根目录下的grldr文件并加载找到的第一个grldr。
    另种一方式是将grldr改名成ntldr替换NT的ntldr(Vista的bootmgr),这是通过NT/Vista的引导扇区直接加载grldr。
    通过Windows VISTA/Window 7的启动菜单进入grub4dos,用批处理自动把grub4dos装入Vista启动项(把grub4dos装入Vista启动项,比装入MBR相对来说要安全)。见附录:批处理装入VISTA启动项。
    注:此方法的优点是:不需要修改MBR

    2、通过grub.exe加载
    grub.exe是一个三栖的程序,
    作为实模式的DOS程序直接从纯DOS环境下加载。启动到DOS环境(最好是纯DOS环境),然后在DOS下或者AUTOEXEC.BAT中运行grub.exe,即可进入grub4dos。
    作为DOS的设置驱动程序,从DOS的config.sys中以device=grub.exe、install=grub.exe、shell=grub.exe中任一方式加载。
    以Linux内核格式,使用kernel方式加载(凡是支持加载Linux内核的程序都可以使用这种方式,例如:Linux, syslinux系列、GNU GRUB、lilo)。
        Linux中使用:
            # kexec -l grub.exe
            # kexec -e
        syslinux,syslinux.cfg中使用:
            kernel grub.exe
        GNU GRUB中使用:
            kernel ((hd0,x)/)/PATH/grub.exe
        lilo中使用:lilo.conf中使用:
            image=/boot/grub.exe
    配置文件menu.lst可保存在grub文件所在目录或其它指定路径(也可放到其它分区根目录或其它指定目录)。
    注:此方法的优点是:不需要修改MBR;可根据需要在脚本或者其它DOS程序中启动GRUB4DOS

    3、通过MBR加载grub(开机直接进入)
    用bootlace(运行于DOS/Win9x/linux环境下)、grubinst、grubinst_gui(2000/xp/2003/vista环境下)将GRUB4DOS的引导代码安装到硬盘的MBR(或者硬盘映像文件的主引导记录),或者安装到软盘或者软盘映像的引导扇区,其MBR引导代码并非固定地指向某个分区,而是搜索所有分区,查找并加载grldr,只要某分区上存有一份grldr,就能启动。而且安装时可以将原微软的MBR备份,启动时如果找不到grldr,便自动加载备份的MBR启动。    装入MBR后,再将grldr文件复制到某分区的根目录。如果将grub4dos的引导代码安装到了分区的引导扇区,必须将grldr文件放到该分区的根目录下(grldr文件有内置菜单,可用内置菜单编辑工具编辑,不依赖于menu.lst)。
    电脑启动时,通过击热键(默认为空格键,可自定义)来启动grub。
    举例:在DOS下安装GRLDR代码到主引导记录: bootlace.com 0x80
    举例:在DOS下安装GRLDR代码到软盘:       bootlace.com --floppy --chs 0x00
    举例:在DOS下安装GRLDR代码到软盘映像:   bootlace.com --floppy --chs floppy.img
    举例:安装GRLDR代码到windows xp系统盘主引导记录:  
      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文件。
    注:此方法的优点是:不依赖于操作系统;能够自动搜索硬盘上各个分区的grldr文件。

    启动GRUB4DOS后,通过它启动其它的操作系统:
    启动Linux的内核,方式:kernel (DEVICE)/PATH/vmlinuz
    启动MS-DOS 的内核,方式:chainloader (DEVICE)/io.sys
    启动FreeDOS的内核,方式:chainloader (DEVICE)/kernel.sys
    启动Windows NT的NTLDR,方式:chainloader (DEVICE)/ntldr
    启动Windows NT的恢复控制台的CMLDR,方式:chainloader (DEVICE)/cmldr。注:使用类似的方式可以启动NT的setupldr.bin
    通过磁盘仿真(内存盘)从磁盘映像文件中启动DOS/Windows9x
    从光盘启动

三、基本概念及描述
    1、设备和分区的命名方法
    在GRUB中,硬盘设备用以下的方法来命名:
    (hdm)   m是硬盘的序号。序号0相对于BIOS的第一只硬盘。
    (hdm,n) n是硬盘m里分区的序号(即硬盘上的分区)。主分区最多有4个,其序号为0-3,扩展分区的序号从4开始。
    例子: (hd0,0)第一只硬盘上的第一个主分区,即C盘。    (hd0,4)第一只硬盘上的第一个扩展分区。即D盘。
    (0x80,0) 是相应的BIOS设备号来表示。第一只硬盘设备的设备号是0x80。

    在GRUB中,软盘设备用以下的方法来命名:
    (fdm)   m是软盘的序号。序号0相对于BIOS的第一只软盘。软盘设备后面同样可以加上分区或者子分区的序号。
    GRUB还有其它一些设备,比如说(cd)是光盘设备,(nd)是网络设备。

    2、文件名及文件的路径
    GRUB的文件名字是在设备名字的基础上加上文件的路径
    (hd0,0)/boot/grub/aa.img ,绝对路径是(hd0,0)/boot/grub/  ,相对路径是/boot/grub/ 。注意:目录的分隔符是 / ,而不是Windows/DOS下常用的 \ 。例子:(fd0)/boot/aa.img  是指 相对路径 在软盘0上boot目录里的aa.img文件。
    还可以用扇区的位移和数量来指定数据
    (hd0,0)0+100,200+1,300+300 表示硬盘0上第一个主分区里,从扇区0起的100个扇区,然后是从扇区200起的1个扇区,最后是从扇区300起的300个扇区。当位移为零时 可以省略不写,因此,(hd0,0)+1 表示的是硬盘0上第一个主分区里从扇区0起的1个扇区,也就是分区的第一个扇区。
    根设备上的文件可以省略设备名,例如: root+1命令后,就等同于 root(hd0,0)+1。
    map (hd0,0)+1 命令中使用的文件名的意义和以上所说的有所不同。在map命令里,+1表示的不是硬盘0上第一个主分区的第一个扇区,而是硬盘0上第一个主分区的整个分区。

四、主要命令用法及描述     更多命令使用详见附录Grub 命令索引

    chainloader -把启动扇区的内容装入内存,参数+1指的是把分区的第一个扇区装入内存,启动其它操作系统。    注:主要用来引导对应设备的引导扇区(MBR),例如硬盘MBR、光盘、软盘、主分区引导扇区等。
    displaymem - 显示当前内存的使用情况,这个信息是基于BIOS的。这个命令有助于确定系统在引导前有多少内存。
    kernel -当使用直接载入方式引导操作系统时,kernel命令指定内核从GRUB的根文件系统中载入。options选项是跟在kernel命令后面,在内核载入时传给内核。
    root -将GRUB的根分区设置成特定的设备和分区,比如说(hd0,0)。并挂入这个分区,这样文件可以被读取。
    rootnoverify -做root命令同样的事情,只是不挂入分区。
    root与Rootnoverify  都可以可以用来指定根设备。root在设置根设备前,先测试一下该分区的文件系统是否可以识别,而rootnoverify则省略这一测试。
    boot – 启动先前已经被指定并载入的操作系统或文件。在使用该命令前,必须用kernel或者chainloader把系统内核或者启动扇区、启动文件装入内存。在配置文件menu.lst中不需要使用这个命令。这是因为GRUB在执行了菜单项的所有命令后会自动加上boot。该命令一般在命令行界面里使用。
    map命令的主要使用方式
    1、作磁盘交换。
      有两只硬盘,但两只硬盘上均有可启动的系统。在第一只硬盘上启动时,不需要特殊的处理,直接用chainloader装载启动扇区就可以了。如果要从第二只硬盘上启动,那么单单用chainloader是不够的,这是因为很多操作系统都缺省地从第一只硬盘上装载启动所需的文件,如果文件不在其上,系统便不能顺利地读取,从而导致启动失败。 GRUB中的map命令便是为了解决这个问题而设计的,它可以在运行时交换磁盘。例如: map (hd1) (hd0) chainloader (hd1,0)+1 boot。在该例子中,使用了map命令实现了(hd0)和(hd1)的交换。要注意的是,交换是在命令boot后才生效的。因此在chainloader命令中,读取的仍然是第二只硬盘。
    2、建立虚拟磁盘。
      把(hd0,0)根目录下的aa.dsk文件映射为第二只硬盘,并且使用原来硬盘上的系统启动:map (hd0,0)/aa.dsk (hd1) root (hd0,0) chainloader +1 boot。
      把(hd0,0)根目录下的aa.dsk文件映射为第一只硬盘,原来的第一只映射为第二只硬盘,并且从aa.dsk里虚拟出来的磁盘中启动:map(hd0,0)/aa.dsk (hd0) map (hd0) (hd1) map --hook root (hd0,0) chainloader +1 boot 在上面提到,map命令的映射不是马上起作用的。但是,要从虚拟磁盘中启动,就必须从中读取数据,因此需要使映射提前起效。在以上的例子中,map --hook的作用便是使前面map命令指定的映射立刻生效。
      把(hd0,0)根目录下的aa.img文件映射为第一只虚拟软盘,并从中启动:map (hd0,0)/aa.img (fd0) map --hook root (fd0) chainloader +1 boot。 使用这种方式进行映射后,虚拟磁盘的内容和影像文件的内容是同步的,也就是说,如果你修改了虚拟磁盘的内容,影像文件也同样被更新。如果你重启了机器,该修改的效果仍然存在。
      使用该映射方式时,影像文件在磁盘上的存放必须是连续的。 GRUB4DOS中建立的虚拟磁盘,包括以下所说的内存盘,都是通过截取INT13来实现的。因此在启动了操作系统后,如果该系统是通过INT 13来访问磁盘的,例如各类的DOS,那么在进入系统后仍然可以访问虚拟盘。如果系统是采用其它方式来访问磁盘,例如Linux,各类Unix和Windows NT系列的操作系统,那么在进入系统后便不能访问虚拟盘。Windows 9X系列的操作系统比较特殊,它通常是使用保护模式的驱动来访问磁盘,但当它找不到合适的驱动时,会依旧使用INT 13来访问磁盘,因此,在Windows 9X下也可以访问虚拟磁盘。
    3、建立虚拟内存盘。
      用map建立虚拟内存盘只需要在map建立虚拟盘的命令中加上--mem参数就行了。
      把(hd0,0)根目录下的aa.dsk文件映射为第一只硬盘,原来的第一只映射为第二只硬盘,并且从aa.dsk里虚拟出来的磁盘中启动: map --mem (hd0,0)/aa.dsk (hd0) map (hd0) (hd1) map --hook root (hd0,0) chainloader +1 boot 。
      把(hd0,0)根目录下的aa.img文件映射为第一只虚拟软盘,并从中启动: map --mem (hd0,0)/aa.img (fd0) map --hook root (fd0) chainloader +1 boot 。
      使用了该映射方式时,影像文件的内容是装载到内存后才进行映射。 map --mem无连续存放的限制,但要求有足够的内存(使用超大映像文件时要注意这点)。此映像将被拷贝到一个内存区域,映像本身可以是非连续的,甚至可以是被压缩的。而且,虚拟磁盘和影像文件是分离的,对虚拟磁盘所作的修改不会被更新到影像文件中。
        利用memdisk生成虚拟内存盘
        memdisk是syslinux中的一个工具,利用它也可以生成虚拟内存盘: memdisk kernel (hd0,0)/memdisk initrd (hd0,0)/aa.dsk。该命令把aa.dsk装入内存生成虚拟内存盘,该虚拟盘作为第一只硬盘,原来硬盘的序号向后移动。这一系列的操作都是在memdisk内完成的,GRUB的任务只是把aa.dsk装入内存,然后把装载的地址传递给memdisk。 如果只有一只硬盘,那么以上的操作可以用以下的命令完成:map --mem(hd0,0)/aa.dsk (hd0) map (hd0) (hd1) map --hook root (hd0,0) chainloader +1 。
        注:用memdisk时,img文件可压缩;在img文件大小为非1.44MB或2.88MB标准镜像时,需要指定CHS参数。img文件的CHS参数可用winimage获得。参数H, S是关键参数,必须准确无误;参数C设定错了,也不影响引导。
        map和memdisk的区别:
        map是GRUB4DOS内置的功能,而memdisk.gz是一个外部的程序(安装包中没有,其它路径获得)
        map可以直接映射磁盘上的文件,而memdisk必须要把文件装载到内存里
        map可以把影像文件映射为第二只硬盘,而而memdisk只能映射为第一只硬盘
        map有自动生成MBR的功能,而memdisk没有。因此memdisk只能使用磁盘影像,不能使用文件系统影像。
    4、自动生成MBR。
      影像文件有两种类型。一种是文件系统影像,它里面只包含某一个文件系统的数据。另一种是磁盘影像,它里面包含了类似于物理硬盘的结构,也就是,影像以MBR开始,然后才是文件系统的数据。对于虚拟内存盘,其结构是类似于真实硬盘的,因此在使用map命令进行映射时,应该使用磁盘影像。 当把磁盘影像读入内存时,程序会检测其结构,如果发现是文件系统影像,那么在它前面自动生成MBR,把它变为磁盘影像。因此,无论用户选择使用文件系统影像还是磁盘影像,装载到内存后都会变成正确的格式。
      自动生成MBR还有一个应用,就是直接从硬盘上的装载分区,从而生成虚拟磁盘。例如:map --mem (hd0,0)+1 (hd0) map (hd0) (hd1)map --hook root (hd0,0) chainloader +1 boot 。该功能是把硬盘上第一个分区的内容装载到内存,并且自动在其前面加上MBR而生成虚拟磁盘。然后,把该虚拟磁盘映射为第一只硬盘,原来的硬盘映射为第二只硬盘。最后,从虚拟磁盘中启动。系统分区的内容和原来一样,但这时实际是使用在内存里的虚拟磁盘。对分区的修改在重启机器后便会消失。 在map命令中,(hd0,0)+1是指整个(hd0,0)分区,而不是(hd0,0)的第一个扇区。这种表示只是在map命令中适用,在其它的地方,(hd0,0)+1 还是原来的意义。
    map命令的其他参数
    --status  。用于显示当前的磁盘映射map --status。
    --floppies=M, --harddrives=N  。指定软盘/硬盘的数目。map --harddrvies=2 。使用该命令后,本地硬盘的数目设为2。
    --memdisk-raw=RAW  。RAW取值0或1(缺省是1)。RAW=0时,使用int15/ah=87h读扩展内存。RAW=1时,使用内部的函数来读扩展内存。
    --safe-mbr-hook=SMH ,--int13-scheme=SCH 。这两个参数是为了在Windows 9X下能正常使用虚拟盘而设的。
    --read-only 。当前进行映射的磁盘被设为只读模式。map --mem --read-only (hd0,0)/aa.dsk (hd1)。
    --fake-write 。当前进行映射的磁盘看似可写,但写入的内容均被丢弃。map --mem --fake-write(hd0,0)/aa.dsk (hd1)。
    --heads=H, --sectors-per-track=S 。map命令可以正确地计算出影像文件中使用的磁盘参数。如果你想手动设置,那么可以使用这两个选项。map --mem --heads=63 --sectors-per-track=255 (hd0,0)/aa.dsk (hd1) 。

四、如何使用grub4dos
    grub4dos启动后将以命令行方式 grub> 出现,现在就可以运行grub4dos的命令了。
    grub4dos还可以通过配置文件menu.lst运行,这种方式是最为常见。配置文件能定制出具有美化效果的操作菜单
    修改界面的颜色
    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 (紫色)

    使用背景图片
    可以用splashimage命令来加载背景图片: 例子:spashimage (hd0,0)/xp2008.gz  。图片必须是640x480,14色的XPM格式,可以用gzip来进行压缩。 使用了该命令后,GRUB启动时将进入图形模式。这时,color命令指定的文本颜色将会无效。图形模式下颜色的设置应该使用foreground命令: foreground ffff00 。以上命令设置字体的颜色。颜色用RGB值来表示,ffff00是黄色。 如果没有使用foreground命令,缺省的文本颜色是白色。 splashimage和foreground命令一般在第一个title前使用。
    常用颜色的RGB值对应表: 000000  c0c0c0  800000  ff0000  000080  0000ff  800080  ff00ff  008000  00ff00  808000  ffff00  008080  00ffff  808080  ffffff  。

    使用中文界面
    首先,你必须使用支持中文的GRUB版本。并且,需要使用fontfile命令来装载中文字体: fontfile(hd0,0)/fonts 。fontfile命令可以和splashimage,foreground一起使用。fontfile命令不可单独使用,需与splashimage一起使用。

    配置文件menu.lst的基本结构,以下是一个例子:
    假设例子中所用到的文件都放在跟目录下,# 是注释,不执行。配置文件中的命令全部使用小写。

    # 默认延迟时间(秒)
    timeout 5
    # 指定缺省的菜单项,由0开始算起
    default 0
    # 设置图形背景文件        注:图片必须是640x480,14色的XPM格式,可以用gzip来进行压缩
    splashimage (hd0,0)/xp2008.gz
    # 设置中文支持的字体文件
    fontfile (hd0,0)/fonts
    #在第一个title前的命令是全局命令,它们在显示菜单之前执行。

    title 使用map启动本地硬盘上msdos软盘镜像文件     注:菜单显示项是由title来指定
    find --set-root /msdos.img
    map (hd0,0)/msdos.img (fd0)
    map --hook
    chainloader (fd0)+1
    rootnoverify (fd0)

    title 使用memdisk启动本地效率源软盘镜像文件
    find --set-root /xly.img
    kernel (hd0,0)/memdisk.gz
    initrd (hd0,0)/xly.img

    title 使用memdisk启动本地硬盘上的瑞星杀毒软盘压缩镜像文件
    find --set-root /rav.zip
    root (hd0,0)
    kernel /memdisk.gz c=80 h=12 s=36 floppy
    initrd /rav.zip

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

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

    title 从 CDROM 启动
    cdrom --init
    map --hook
    chainloader (cd0)
    boot

    title 重启
    reboot

    title 关机
    halt

    可以参考这个例子,根据自己需要对菜单进行修改。

以后的应用可以参考
中国DOS联盟论坛 》 GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 》lianjiang2004的grub4dos初级教程

2 grub4dos初级教程-应用篇
  2.1 硬盘上的应用
    2.1.1 加载软盘镜像
    2.1.2 启动WinPE
    2.1.3 启动系统
    2.1.4 引导光盘镜像(ISO仿真)
  2.2 光盘上的应用
    2.2.1 grub引导的可启动光盘
    2.2.2 BCDW引导GRUB的可启动光盘
  2.3 软盘上的应用
    2.3.1 通过DOS启动grub的软盘应用
    2.3.2 引导扇区安装了GRLDR引导记录的软盘应用
  2.4 优盘上的应用
  2.5 结言

3 grub4dos初级教程-进阶篇
  3.1 设置密码
  3.2 菜单内置
  3.3a 使用个性化grub4dos文件名 (grubinst)
  3.3b 用批处理自动给grldr改名 (适用于最新版grldr)NEW!
  3.4 安装Windows XPE到逻辑分区
  3.5 利用savedefault命令传递参数的方法与应用
  3.6 利用dd命令传递参数的方法与应用 NEW!

4 附录

Grub legacy
  4.01 Grub 命令索引
  4.02 Grub 简体中文化版使用方法
  4.03 GRUB安装配置使用汇总
  4.04 Grub命令使用详解
  4.05 GRUB三步通
  4.06 Grub相关安装配置及使用实例汇总讲析

Grub2资料
  4.07 GRUB2使用简介 by bean NEW!
  4.08 GRUB2高级教程 by bean NEW!

Grub4dos资料
  4.09 gfxmenu定制高级教程(新增可定制菜单) by bean NEW!
  4.10 如何使用grubinst_gui by bean

Grub4dos官方文档
  4.11 Grub4dos_tutorial (英文)
  4.12 Grub4dos简介
  4.13 Grub4dos安装和启动
  4.14 Grub4dos新手指南
  4.15 Grub4dos高级功能
  4.16 Grub4dos命令索引
  4.17 Grubinst使用介绍
  4.18 Grub4dos readme (英文)
  4.19 Grub4dos readme (中文)
作者: LDGD     时间: 2009-5-16 06:03
一直在找,原来在这里。
作者: cisheng97     时间: 2009-5-21 19:35
谢谢楼主了
作者: tanglang     时间: 2009-5-23 03:51
太感谢了,真诚的谢谢你
作者: loveheartrain     时间: 2009-6-12 05:04
不错啊 辛苦了啊
作者: 5556667788     时间: 2009-8-31 00:30
三年,难得楼主坚持,谢谢
作者: duanweibin     时间: 2009-9-2 09:48
終於有了一點點的了解
看來我要學習的路還很長
作者: maxisnoopy     时间: 2009-9-10 04:07
小弟最近也在練習這套軟體
有了這篇文章一些問題都可以解決了
謝謝
作者: oenet     时间: 2009-9-11 01:39
学习了,收下,呵呵
作者: microdust     时间: 2009-9-20 11:26
正在学习GRUB中
作者: cilubutong     时间: 2009-9-29 17:06
学习了。。。
作者: ganlian     时间: 2009-10-24 02:20
强帖~~
作者: love67890     时间: 2009-11-23 10:58
本来想做个U盘启动,在百度上搜索,于是找到了无忧启动,在那里看到了lianjiang2004的这篇文章,后来又经过多次学习,连接到了中国DOS联盟,感觉这些网站真的是资源丰富,对我这个初学者有太多的帮助了。在这里感谢下o(∩_∩)o...
作者: prodigall     时间: 2009-12-4 10:34
真的是太感謝LZ啦
我正在到處找boot from DOS to Vista的方法
作者: yuhan3440     时间: 2010-1-3 14:49
谢谢分享,终于找到了一个在命令行下运行的MD5校验程序~~
作者: sxtyp     时间: 2010-1-5 22:04
好贴不能沉。。。。顶
作者: zohan     时间: 2010-2-4 17:49
在引导软盘映像时,如果使用chainloader +1,前面还需使用root (fd0)指明根路径,但如果使用chainloader (fd0)+1,却仍然要用root或者rootnoverify,否则会出现一些错误,好像是关于磁盘CHS寻址的,不知为何?请指教一二。
作者: yesha     时间: 2010-2-7 19:55
学习学习,辛苦了,谢谢!!!
作者: fanzhixue     时间: 2010-2-14 12:44
学习学习,辛苦了,谢谢!!!
作者: hanru     时间: 2010-6-14 14:48
正好用着,很好啊
作者: 1017276839     时间: 2010-6-16 00:03
将近半年没来了,在学校最近开看到这么好的东西。顶
作者: mini2324     时间: 2010-8-19 00:59
受教了...
作者: GWM     时间: 2010-12-2 08:28
谢谢!
学习了......
作者: howyee     时间: 2010-12-13 18:01
突然发现我的电脑也有
作者: tsy795     时间: 2011-1-2 17:40
学习学习了支持一下
作者: tsy795     时间: 2011-1-22 11:28
进来学习一下....




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5