OPENBSD:如何我们无法创建新的分区分区,如何使用u盘

正在初始化报价器OpenBSD中,插入U盘后怎么用?王者41265应该是通过mount命令实现,具体不太清楚,毕竟这个操作系统我也没用过。正在初始化装修神器热门问答1234567891011121314151617181920查看更多当前位置: >>
grub4dos初级教程图文版
grub4dos 初级教程_0331 by lianjiang grub4dos 初级教程_0331 by lianjiang前言 ................................................................................................................................... 2 目录 ................................................................................................................................... 3 1 grub4dos 初级教程-入门篇 ............................................................................................. 4 2 grub4dos 初级教程-应用篇 ............................................................................................ 13 3 致谢............................................................................................................................... 26 4 附录............................................................................................................................... 27 4.1 如何使用 grubinst_gui ........................................................................................... 28 4.2 Grub 命令索引...................................................................................................... 32 4.3 Grub 简体中文化版使用方法................................................................................. 46 4.4 GRUB for DOS 磁盘仿真命令简介 ........................................................................ 55 4.5 [转贴]GRUB 安装配置使用汇总............................................................................. 66 4.6 Grub 命令使用详解[教程] ...................................................................................... 97 4.7 GRUB 三步通...................................................................................................... 106 4.8 Grub 相关安装配置及使用实例汇总讲析 .............................................................. 118 4.9 如何为 GRUB 系统引导管理器加上密码 ............................................................. 124 4.10 系统引导管理器 GRUB,为初学者指南............................................................. 1281 grub4dos 初级教程_0331 by lianjiang前言grub4dos 初级教程-入门篇、应用篇lianjiang 2007 年 3 月 前言: 为何写此初级教程? 假如你是第一次听说 grub,你可能说我不需要 grub。那么,你是否用过“一键 ghost”,“超级 急救盘”,或者“矮人 DOS 工具箱”?如果你用过的话,那么你实际上已经在用 grub 了。 grub4dos 相关的资料互联网上并不少,grub4dos 软件包里也有说明文件,可是绝大多数资料 并不适合刚接触 grub 的人。初学者下载了 grub4dos 软件包后,面对一大堆(约 40 个)的文 件,即使大概看了 readme.txt 文件后,也很可能仍然是一团雾水,不知从何处入手。出现这种 状况的一个主要原因是,此软件是作者利用业余时间开发的,开发者在有限的时间里集中精 力于排除软件 bug,从而无过多剩余精力撰写文档。 其实,初步使用这个软件并不难,可以说非常简单。下面的内容参考了有关资料,并结合自 己的使用经验,供初学者参考,希望能对你入门 grub 有所帮助。我自身也是接触 grub 不久, 对 grub 的了解还很肤浅,错误之处,在所难免,还望不吝指出。致谢 本文的完成,参考、引用了众多的资料,不少已找不到原始出处。初稿完成后,网友们提出 了不少意见和建议,也得到了软件开发者的支持和鼓励。在此一并表示感谢。 lianjiang
修改 【注: 我的网盘:http://lianjiang2004.ys168.com 也提供部分 grub 相关文件及资料的下载。 】2 grub4dos 初级教程_0331 by lianjiang目录1 入门篇 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.4 如何使用 grub4dos 1.5 结言 2 应用篇 2.1 硬盘上的应用 2.1.1 加载软盘镜像 2.1.2 启动 WinPE 2.1.3 启动系统 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 致谢 4 附录 4.01 如何使用 grubinst_gui 4.02 Grub 命令索引 4.03 Grub 简体中文化版使用方法 4.04 GRUB for DOS 磁盘仿真命令简介 4.05 GRUB 安装配置使用汇总 4.06 Grub 命令使用详解 4.07 GRUB 三步通 4.08 Grub 相关安装配置及使用实例汇总讲析 4.09 如何为 GRUB 系统引导管理器加上密码 4.10 系统引导管理器 GRUB,为初学者指南3 grub4dos 初级教程_0331 by lianjiang1 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.4 如何使用 grub4dos 1.5 结言 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 (官方说明文档)4 grub4dos 初级教程_0331 by lianjiang1.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= 编辑 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 启动 grub5 grub4dos 初级教程_0331 by lianjiang将机器通过任何可能的方式(软盘,U 盘,光盘等)启动到 DOS 环境(最好是纯 DOS 环境, 即不加载任何驱动程序和 TSR 程序的 DOS 环境) ,然后在 DOS 下或者 AUTOEXEC.BAT 中 运行 grub.exe,即可进入 grub4dos。 也可在 DOS/Windows9x 的 CONFIG.SYS 中使用下列任一方式启动 grub。 DEVICE= INSTALL= SHELL= 此 方法的 优点 是:不 需要修 改 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,FA T16, FA T32, NTFS,EXT2 or EXT3 的分区。对于 Windows 用户,最好是 fat 分区),6 grub4dos 初级教程_0331 by lianjiangmenu.lst 也可保存到其它指定位置。 此方法的优点是:不依赖于操作系统;能够自动搜索硬盘上各个分区的 grldr 文件。 另外,2000/xp/2003/vista 环境下可用另一软件 grubinst 来把 GRLDR 引导记录安装到硬盘的 MBR。grubinst 具有图形界面和命令行两种工作模式供选用, 并附有比较详细的使用说明, 很 易于使用。 【参看附录 4.1 如何使用 grubinst_gui】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)上的操作系统7 grub4dos 初级教程_0331 by lianjiangrootnoverify (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.img8 grub4dos 初级教程_0331 by lianjiang改成 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)9 grub4dos 初级教程_0331 by lianjiang注意: 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】10 grub4dos 初级教程_0331 by lianjiangcolor 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 halt11 grub4dos 初级教程_0331 by lianjiang1.5 结言 Grub4dos 具有强大的功能,上面介绍的只是 grub4dos 的一些最基本用法,更多的用法可在掌 握基本用法的基础上,自己查阅资料了解。12 grub4dos 初级教程_0331 by lianjiang2 grub4dos 初级教程-应用篇2.1 硬盘上的应用 2.1.1 加载软盘镜像 2.1.2 启动 WinPE 2.1.3 启动系统 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 结言 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, 这几行内容不能加在最前面,因为前面是一些对全局有效的设置。13 grub4dos 初级教程_0331 by lianjiangb, 你需要的工具都可以这种方式加进去。 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】14 grub4dos 初级教程_0331 by lianjiang3,在 menu.lst 中加入 title Micro Windows XPE (by LaoMaotao) chainloader /ldrxpe 启动 grub 时选择“Micro Windows XPE (by LaoMaotao)”就能启动 WinPE 了。这样就能在 windows 界面下进行系统维护、安装等操作。 【图 6】 【图 7】 【图 8】15 grub4dos 初级教程_0331 by lianjiang16 grub4dos 初级教程_0331 by lianjiang2.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.sys2.2 光盘上的应用 下面介绍两种在光盘上应用 grub 的方法。 2.2.1 grub 引导的可启动光盘 以 grldr 作为光盘的启动文件引导光盘,加载 menu.lst,通过 menu 菜单选择启动项目。 步骤: 1) 准备必要的 img 文件,及 grldr,menu.lst(根据需要准备字体,背景图片,memdisk.gz 等 文件) 。 2) 编辑 menu.lst。引导光盘上的 img 文件的格式如下:17 grub4dos 初级教程_0331 by lianjiangtitle 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】18 grub4dos 初级教程_0331 by lianjiang19 grub4dos 初级教程_0331 by lianjiang也可使用 mkisofs.exe 或 CDIMAGE.EXE 等工具制作启动 iso(grldr 不需改名) 。 比如我用 CDIMAGE 制作 iso 的批处理是: cdimage -lgrubcd -t01/01/: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]部分,比如:20 grub4dos 初级教程_0331 by lianjiang[MenuItems] C:\ ; Boot from drive C:\I386\setupldr. Microsoft Windows XP Setup上面的就是 BCDW 启动菜单的例子。在其中加上 grub 等项,变成: [MenuItems]\images\gghost.img \images\mynet.img \boot\grub\grldr; GGhost v6.0 (Ghost8.3/11) ; My net (Ghost8.3)(tcp/ip,cd/usb) ; Grub4dos\WXPE\SETUPLDR.BIN ; Micro Windows XPE (by LaoMaotao) C:\ \I386\setupldr. Boot from drive C: ; Microsoft Windows XP Setup4)制作 ISO 文件与刻录 ISO 的方法与 2.1 中的基本相同。所不同的只是在制作 ISO 文件时, 要把 loader.bin(或 bcdw.bin)作为 ISO 的引导文件。 【图 13】也可使用 mkisofs.exe 或 CDIMAGE.EXE 等工具制作启动 iso。 比如我用 CDIMAGE 制作 iso 的批处理是: cdimage -lbcdwcd -t01/01/:00 -h -n -d -o -m -bload.bin bcdwcd bcdwcd.iso21 grub4dos 初级教程_0331 by lianjiang运行后 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 拷贝到软盘根目录。22 grub4dos 初级教程_0331 by lianjiang新建一个 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 关机 halt23 grub4dos 初级教程_0331 by lianjiang2.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.txt24 grub4dos 初级教程_0331 by lianjiang这样在启动 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 相关文件及资料的下载。 】25 grub4dos 初级教程_0331 by lianjiang3 致谢本文的完成,参考、引用了众多的资料,不少已找不到原始出处。初稿完成后,网友们提出 了不少意见和建议,也得到了软件开发者的支持和鼓励。在此一并表示感谢。lianjiang
修改26 grub4dos 初级教程_0331 by lianjiang4 附录这里提供的是部分网络上收集的 grub 相关资料,供参考。为统一格式,对部分文档进行了 重新排版。 4.01 如何使用 grubinst_gui 4.02 Grub 命令索引 4.03 Grub 简体中文化版使用方法 4.04 GRUB for DOS 磁盘仿真命令简介 4.05 GRUB 安装配置使用汇总 4.06 Grub 命令使用详解 4.07 GRUB 三步通 4.08 Grub 相关安装配置及使用实例汇总讲析 4.09 如何为 GRUB 系统引导管理器加上密码 4.10 系统引导管理器 GRUB,为初学者指南27 grub4dos 初级教程_0331 by lianjiang4.1 如何使用 grubinst_guigrubinst 可用于在 Windows NT/2K/XP 和 Linux/FreeBSD 下把 Grub4Dos 启动代码安装到 MBR/BS。其用法类似于 bootlace.com。 grubinst_gui 是运行于 Windows 系统下的图形界面,利用它可以方便的使用 grubinst 的功能。 注意:grubinst 只负责把 GRLDR 启动代码安装到 MBR/BS, 你还需要手动把 GRLDR 文件拷 贝到某一 FA T16/FA T32 分区的根目录里。 grubinst_gui 运行后界面如下图。4.1.1 grubinst_gui 新手指南 在 Windows NT/2000/XP 下,用以下的步骤可以快速地把 Grub4Dos 安装到 MBR 或分区中 前提:你必须拥有 FA T16/FA T32 的分区。如果全部分区均为 NTFS,则请参考最后的部分。28 grub4dos 初级教程_0331 by lianjiang1、下载 grubinst,解压 2、双击 grubinst_gui.exe 3、在&磁盘&右面的列表中选择需要安装 Grub4Dos 的硬盘/软盘,如果你有多个磁盘(包括 USB 移动硬盘&) ,请留意[]中显示的磁盘大小,以便选择正确的磁盘。 4、若需要安装到分区,可点击&分区列表&右面的&刷新&按钮,然后从下拉列表中选择需要 的分区(支 持 FAT12/FAT16/FA T32/EXT2/EXT3) 。若需要安装到 MBR,这一步可省略。 5、若想以后能恢复原来的 MBR/BS,则在&保存文件&中输入用于保存的文件名字。 6、点&安装&,出现命令窗口,如果看到&The MBR/BS has been successfully installer&, 则说明 安装成功。 当然,以上步骤只是安装启动代码,要能正常启动 Grub4Dos,还需要以下的步骤: 7、从 http://grub4dos.jot.com/WikiHome 或 http://download.gna.org/grub4dos/ 中下载最新版 的 Grub4Dos。 8、在压缩包中找到 grldr,把它放到 FA T16/FA T32 分区的根目录中。 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 保存到第二个扇区中。若选了这个选项, 则 屏蔽这一功能。29 grub4dos 初级教程_0331 by lianjiang启动时不搜索软盘 (适用于安装到 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 允许用字符串来表示按键。 比如说, , ctrl-a , shift-a, alt-a, F1, home, a end, space, key-5 (小键盘上的 5 键) 等等。 额外参数: 你可以在这里输入其他传给后台程序 grubinst.exe 的参数 3、恢复功能 保存文件: 指定用于保存/恢复的外部文件 从文件中恢复 没有使用了这一选项时, &安装&按钮是正常的安装操作, 若保存文件框不是空, 则指定用于 保 存原来的 MBR/BS 的文件 使用了这一选项时,&安装&按钮的操作变为从指定的保存文件中恢复原来的 MBR/BS30 grub4dos 初级教程_0331 by lianjiang从原来的 MBR 中恢复 使用了这一选项时,&安装&按钮的操作是从第二个扇区中恢复原来的 MBR 注意 1: 原来的 MBR 必须是单扇区,否则恢复后不能启动 注意 2: 使用这一功能时,&保存文件&应该为空,并且不能选择&从文件中恢复& 4、&测试&按钮 用于显示传给 grubinst 的参数,但并不真正地调用 grubinst。 注意: 这和&只读模式&是不同的。使用&只读模式&时调用了后台的 grubinst,只是 grubinst 不 进行修改 MBR/BS 的操作。 说明: 新版已增加对 NTFS 文件系统的支持,但目前可能仍存在不完善的地方,相关说明及使用 方法可参看作者的帖子。31 grub4dos 初级教程_0331 by lianjiang4.2 Grub 命令索引设置图形模式下的背景色。 输出文件的块清单标记。 引导已加载的操作系统或扇区链式加载器。 通过 BOOTP 初试化网络设备。 显示指定文件的内容。 加载扇区链式加载器。 清屏幕。 比较两个文件, 并且报告两者之间的不同的信息。 改变菜单的颜色。 将指定文件作为配置文件予以加载。 打开/关闭除错模式。 把 NUM 项菜单设为缺省值。 声明 BIOS 驱动器对应的实际物理设备。 通过 DHCP 初试化网络设备。 显示 APM BIOS 的相关信息。 显示 GRUB 所判断到的当前系统的内存分布,包括所有物理内存区域。 显示诸多文件的内容。 如果设备是个驱动器, 则将 Stage 1.5 嵌入到主引导扇区之后。 如果调用当前的菜单项时出现错误,则转移到 NUM 项后重试 在 所有分区 上查找文 件名, 并 显示包含 该文件的 设备。 如果设置 了参数 --set-root,则在找到第一个匹配后马上停止,并且把该设备设为根。 指定中文字体文件,并切换到简体中文显示方式。 设置图形模式下的前景色。 切换文件系统的试验模式。 输出驱动器的相关信息。 使用 FILE 中的图形菜单。 关闭系统。 显示内部命令的帮助信息。 隐藏菜单。 通过在分区类型上置隐藏标志,隐藏指定分区。 指定 IP 地址, 子网掩码, 网关和服务器地址。不带参数时,将显示当前的网 络配置。 通过一些循环操作,侦测出符合 Intel 多处理器规范 1.1/1.4 的 CPUs,以便 于发挥其更好的效能。32background blocklist boot bootp cat chainloader clear cmp color configfile debug default device dhcp displayapm displaymem dump embed fallback find fontfile foreground fstest geometry gfxmenu halt help hiddenmenu hide ifconfig impsprobe grub4dos 初级教程_0331 by lianjianginitrd install ioprobe kernel lock makeactive map md5crypt module加载 Linux 格式的初始化虚拟盘, 并设置必要的参数。 安装 STAGE1 到指定设备上,安装加载 STAGE2 需要的块列表到 STAGE2 上。 侦测指定设备的 I/O 端口号。 尝试载入主引导影像文件。 如果用户未被认证,则终止命令的执行。 将 root 设备置为活动分区。 对设备进行映射。 产生一个 MD5 格式的密码。 对多重启动影像, 加载启动模块文件 (不处理该文件的内容, 用户必须自己确 定核心的要求)。 没有参数时,切换页模式。 创建一个新的主分区。 改变指定分区(PART)的分区类型(TYPE)。 设置密码。 终止命令的运行,并给出一段信息。任意键按下后,将继续。 进行端口映射。 从 GRUB 命令行中退出。 用 RARP 初始化网络设备。 从内存的指定位置读取一个 32-bit 的值,并以十六进制形式显示出来。 重启系统。 设置根分区。 类似`root'指令, 但不测试安装该分区。这用于有些系统装在 GRUB 能访问的 磁盘区之外, 但仍需要设置正确的根分区的情况。有些需要安装分区才能确定 的参数可能会有问题。 运行一个为光盘启动而设计的引导文件(非模拟方式的) 将当前项设置为默认的引导项。 寻找系统的第一个 CD-ROM 驱动器,然后为其分配一个驱动器号以备后续使 用(--install)。或者,用该驱动器中的可引导光盘启动系统。(--boot)。 初始化一个串口设备。 改变键盘映射关系。 自动安装 GRUB. 图形模式下载入背景图片文件。 选择一个终端。 指定终端的功能。 以多种不同的方式读取文件(由 FILE 指定)的整个内容, 并予以比较, 以测试文 件系统的代码。 测试所指定(MODE)的 VBE 模式。33modulenounzip 与 'module' 类似, 但是自动禁用了解压缩。 pager partnew parttype password pause portmap quit rarp read reboot root rootnoverify run savedefault scdrom serial setkey setup splashimage terminal terminfo testload testvbe grub4dos 初级教程_0331 by lianjiangtftpserver timeout title unhide uppermem vbeprobe指定 TFTP 服务器的 IP 地址。 设置在自动启动缺省菜单前所等待的秒数。 命名菜单项。 通过清除隐藏标志,解除指定分区(PARTITION)的隐藏。 强制指定仅有(KBYTES) KB 的上位内存。 侦测 VBE 的信息。blocklist用法: blocklist FILE 描述: 输出文件的块清单标记。boot用法: boot 描述: 引导已加载的操作系统或扇区链式加载器。bootp用法: bootp [--with-configfile] 描述: 通过 BOOTP 初试化网络设备。如果使用了`--with-configfile'参数,此命令将会试图去加载一 个特定的配置文件。cat用法: cat FILE 描述: 显示指定文件的内容。chainloader用法: chainloader [--force] FILE 描述: 加载扇区链式加载器。若使用了--force 参数, 则忽略该扇区的启动标识的有效性。cmp用法: cmp FILE1 FILE2 描述: 比较两个文件, 并且报告两者之间的不同的信息。34 grub4dos 初级教程_0331 by lianjiangcolor用法: color NORMAL [HIGHLIGHT] 描述: 改变菜单的颜色。Normal 用于指定菜单项的未选中时的颜色,HIGHLIGHT 则用于指定菜单 项的被选中时的颜色。 如果你未指定 HIGHLIGHT 色, 那么我们将使用 NORMAL 的反色值。 颜色值的格式是 &FG/BG&。FG 和 BG 是颜色的名称,如下:black(黑), blue(蓝), green(绿), cyan(青), red(红), magenta(粉红), brown(棕), light-gray(亮灰),dark-gray(暗灰), light-blue(浅蓝), light-green( 淡 绿 ), light-cyan( 淡 青 ), light-red( 明 红 ), light-magenta( 浅 红 ), yellow( 黄 ) 和 white(白)。注意,BG 的值只能是前八个。另外,若想使用闪烁的前景色,你在 FG 前使用 前缀 &blink-& 即可。configfile用法: configfile FILE 描述: 将指定文件作为配置文件予以加载。debug用法: debug 描述: 打开/关闭除错模式。default用法: default [NUM | `saved'] 描述: 把 NUM 项菜单设为缺省值。device用法: device DRIVE DEVICE 描述: 声明 BIOS 驱动器对应的实际物理设备。这条命令只用于 grub 命令行。portmap用法: portmap prog_number vers_number 描述: 进行端口映射。dhcp35 grub4dos 初级教程_0331 by lianjiang用法: dhcp 描述: 通过 DHCP 初试化网络设备。splashimage用法: splashimage FILE 描述: 图形模式下载入背景图片文件。foreground用法: foreground RRGGBB 描述: 设置图形模式下的前景色。RR 代表红色, GG 代表绿色, BB 代表蓝色。 注意他们都使用十六 进制的值。background用法: background RRGGBB 描述: 设置图形模式下的背景色。RR 代表红色, GG 代表绿色, BB 代表蓝色。 注意他们都使用十六 进制的值。clear用法: clear 描述: 清屏幕。displayapm用法: displayapm 描述: 显示 APM BIOS 的相关信息。displaymem用法: displaymem 描述: 显示 GRUB 所判断到的当前系统的内存分布,包括所有物理内存区域。dump36 grub4dos 初级教程_0331 by lianjiang用法: dump FROM TO 描述: 显示诸多文件的内容。注意,FROM 所指定的必须是一个 GRUB 文件,TO 所指定的必须 是一个 OS 文件。embed用法: embed STAGE1_5 DEVICE 描述: 如果设备是个驱动器, 则将 Stage 1.5 嵌入到主引导扇区之后。如果是个 FFS 分区, 则可嵌入 到该设备饿`引导代码'区中。并输出 Stage 1.5 所占的扇区数。fallback用法: fallback NUM 描述: 如果调用当前的菜单项时出现错误,则转移到 NUM 项后重试find用法: find [--set-root] FILENAME 描述: 在所有分区上查找文件名, 并显示包含该文件的设备。如果设置了参数 --set-root,则在找到 第一个匹配后马上停止,并且把该设备设为根。fstest用法: fstest 描述: 切换文件系统的试验模式。gfxmenu用法: gfxmenu FILE 描述: 使用 FILE 中的图形菜单。geometry用法: geometry DRIVE [CYLINDER HEAD SECTOR [TOTAL_SECTOR]] 描述: 输出驱动器的相关信息。在 grub 壳程序中, 你可以用这条命令设置驱动器参数为任意值。如 果你省略了总扇区数, 则该值缺省有其它参数决定。37 grub4dos 初级教程_0331 by lianjianghalt用法: halt [--no-apm] 描述: 关闭系统。如果 APM(高级电源管理)功能存在,将使用 APM BIOS 关闭系统,除非指定了 `--no-apm' 选项。help用法: help [--all] [PA TTERN ...] 描述: 显示内部命令的帮助信息。要查看所有命令的帮助,请使用 `--all' 参数。hiddenmenu用法: hiddenmenu 描述: 隐藏菜单。hide用法: hide PARTITION 描述: 通过在分区类型上置隐藏标志,隐藏指定分区。ifconfig用法: ifconfig [--address=IP] [--gateway=IP] [--mask=MASK] [--server= 描述: 指定 IP 地址, 子网掩码, 网关和服务器地址。不带参数时,将显示当前的网络配置。impsprobe用法: impsprobe 描述: 通过一些循环操作,侦测出符合 Intel 多处理器规范 1.1/1.4 的 CPUs,以便于发挥其更好的 效能。initrd用法: initrd FILE [ARG ...] 描述: 加载 Linux 格式的初始化虚拟盘, 并设置必要的参数。38 grub4dos 初级教程_0331 by lianjianginstall用法: install [--stage2=STAGE2_FILE] [--force-lba] STAGE1 [d] DEVICE STAGE2 [ADDR] [p] [CONFIG_FILE] [REAL_CONFIG_FILE] 描述: 安装 STAGE1 到指定设备上,安装加载 STAGE2 需要的块列表到 STAGE2 上。 如果使用了选项 'd', STAGE1 总是试图使用安装 STAGE2 的驱动器, 而不是启动盘。STAGE2 将加载在指定地 址上, 如果未声明地址, 则自动检测。如果使用了选 项 'p' 或给出了配置文件 , 将修改 STAGE2 的第一个数据块, 修正实际 Stage2 启动时使用的配置文件位置。 对于 Stage 1.5, 该值 为 Stage 2 的路径。如果安装的是 Stage 1.5, 且指定了实际配置文件, 则将该配置文件路径写 入 Stage2 中。ioprobe用法: ioprobe DRIVE 描述: 侦测指定设备的 I/O 端口号。kernel用法: kernel [--no-mem-option] [--type=TYPE] FILE [ARG ...] 描述: 尝试载入主引导影像文件。其它项将被作为内核的命令行参数而传递给内核。使用此命令以 前,内核所用到的模块应该被重新载入。参数 --type 用于说明内核的类型,包括 &netbsd&, &freebsd&, &openbsd&, &linux&, &biglinux& 和 &multiboot&。参数 --no-mem-option 用于说明不必 自动传递 Linux 的内存参数。lock用法: lock 描述: 如果用户未被认证,则终止命令的执行。makeactive用法: makeactive 描述: 将 root 设备置为活动分区。当然,此命令只对 PC 的硬盘主分区有效。map用法: map [--status] [--hook] [--unhook] [--rehook] [[--read-only] [--fake-write] [--unsafe-boot] [--disable-chs-mode] [--disable-lba-mode] [--heads-per-cylinder=H] [--sectors-per-track=S] TO_DRIVE FROM_DRIVE]39 grub4dos 初级教程_0331 by lianjiang描述: 对设备进行映射。这对于扇区链式引导是很有用的功能,比如 DOS。这里,目的驱动器 (TO_DRIVE)可以是一个磁盘文件,即使用磁盘虚拟功能。注意,这要求磁盘文件是连续存放 于分区中的。另外,若使用了 --read-only 参数,该功能将使 `磁盘'处于只读;若使用了 --fake-write 参数,该功能将使`磁盘'处于假写,即可以&写入&数据,但是却并未记录到真实磁 盘 上 ; 若 使 用 了 --unsafe-boot 参 数 , 该 功 能 将 使 ` 磁 盘 ' 处 于 真 实 可 写 ; 若 使 用 了 --disable-chs-mode 参数,CHS 访问功能将被禁用; 若使用了 --disable-lba-mode 参数, LBA 访 问功 能将 被禁 用 ; H 和 S 指 定了 虚拟 磁盘 的物 理参数 。若 使用 了 --status, --hook, --unhook,--rehook 诸参数之一, 那么其它的命令行参数将被忽略。md5crypt用法: md5crypt 描述: 产生一个 MD5 格式的密码。module用法: module FILE [ARG ...] 描述: 对多重启动影像, 加载启动模块文件 (不处理该文件的内容, 用户必须自己确定核心的要求)。 剩余参数作为`模快命令行`传递, 象`kernel'命令一样。modulenounzip用法: modulenounzip FILE [ARG ...] 描述: 与 'module' 类似, 但是自动禁用了解压缩。pager用法: pager [FLAG] 描述: 没有参数时,切换页模式。如果使用了 FLAG 参数,那么它为`on' 时为开启, 为 `off' 时为 关闭。partnew用法: partnew PART TYPE START LEN 描述: 创建一个新的主分区。START 为起始扇区号,LEN 为其包含的扇区数,TYPE 为其分区类 型。parttype40 grub4dos 初级教程_0331 by lianjiang用法: parttype PART TYPE 描述: 改变指定分区(PART)的分区类型(TYPE)。password用法: password [--md5] PASSWD [FILE] 描述: 设置密码。当其处于菜单文件的首项时,将禁用所有的交互式菜单编辑功能,包括编辑菜单 项(`e`)/进入命令行(`c`)。当正确输入密码 (由 PASSWD 指定)后,载入新的菜单文件(由 FILE 指定)。如果你没有指定 FILE 项,那么上述被禁用的功能将被启用了。当然,你也可以将此 命令用到某个菜单项里,用以提高系统安全性。参数 --md5 说明密码(PASSWD)是使用 md5crypt 加密的。pause用法: pause [MESSAGE ...] 描述: 终止命令的运行,并给出一段信息。任意键按下后,将继续。quit用法: quit 描述: 从 GRUB 命令行中退出。rarp用法: rarp 描述: 用 RARP 初始化网络设备。read用法: read ADDR 描述: 从内存的指定位置读取一个 32-bit 的值,并以十六进制形式显示出来。reboot用法: reboot 描述: 重启系统。41 grub4dos 初级教程_0331 by lianjiangfontfile用法: fontfile FILE 描述: 指定中文字体文件,并切换到简体中文显示方式。scdrom用法: scdrom [--install], [--bootcd] 描述: 寻找系统的第一个 CD-ROM 驱动器, 然后为其分配一个驱动器号以备后续使用(--install)。 或 者,用该驱动器中的可引导光盘启动系统。(--boot)。run用法: run FILE 描述: 运行一个为光盘启动而设计的引导文件(非模拟方式的)root用法: root [DEVICE [HDBIAS]] 描述: 设置根分区。设置根分区为指定设备(DEVICE), 然后尝试挂接该分区以得到分区大小(用于在 ES:ESI 中传递, 扇区链式启动方式要求这样)。 BSD 驱动类型用于启动 BSD 的核心启动), 和 确定 BSD 子分区所在的 PC 分区。可选的磁盘偏移参数, 用于 BSD 核心确定有多少个控 制器在当前控制器前。 比如: 假设同时有一个 IDE 和 SCSI 盘, 而 BSD 根分区在 SCSI 盘上, 那 么磁盘偏移就为 1。rootnoverify用法: rootnoverify [DEVICE [HDBIAS]] 描述: 类似`root'指令, 但不测试安装该分区。这用于有些系统装在 GRUB 能访问的磁盘区之外, 但 仍需要设置正确的根分区的情况。有些需要安装分区才能确定的参数可能会有问题。savedefault用法: savedefault 描述: 将当前项设置为默认的引导项。serial42 grub4dos 初级教程_0331 by lianjiang用法: serial [--unit=UNIT] [--port=PORT] [--speed=SPEED] [--word=WORD] [--parity=PARITY] [--stop=STOP] [--device= 描述: 初始化一个串口设备。UNIT 用于指定要使用的串口设备 (如,0 == COM1); PORT 用于指定 端口号; SPEED 用于指定通讯的数率; WORD 为字长; PARITY 为奇偶类型(取 `no', `odd' 和 `even' 之一的值。 STOP 是停止位的长度值; 选项 --device 仅用于命令行模式, ); 用以指定 tty 设备的文件名。默认值是这样的,COM1, 。setkey用法: setkey [TO_KEY FROM_KEY] 描述: 改变键盘映射关系。把 FROM_KEY 映射为 TO_KEY。这里的键必须是字母, 数字, 和以下特 殊 键 : escape( 转 义 ), exclam(!), at(@), numbersign(#), dollar($), parenright ()) , caret(^), ampersand(&), asterisk(*), plus(+), percent(%), minus(-), underscore(_), equal(=), parenleft[(], backspace(退格), tab(制表), bracketleft([), braceleft({), bracketright(]), braceright(}), enter(回车), control(控制 ), semicolon(;), colon(:), quote('), doublequote(&), slash(/), backquote(`), tilde(~), shift(换档), backslash(\), bar(|), comma(,), less(&), period(.), greater(&), question(?), alt(交互), space(空格), capslock(大写), Fx(功能键) 和 delete(删除)。setup用 法 : setup [--prefix=DIR] [--stage2=STAGE2_FILE] [--force-lba] INSTALL_DEVICE [IMAGE_DEVICE] 描述: 自动安装 GRUB. 这条命令使用更灵活的 install 命令将 GRUB 安装到指定设备上。如果给出 了映象设备,将在该设备寻找 GRUB,否则使用缺省的根设备。根设备可用 root 指令指定。如果 你确认系统的 BIOS 应该支持 LBA 模式, 但是 GRUB 却没有工作于该模式, 则请指定 `--force-lba' 参数。如若你在命令行中已安装了一次 GRUB 可是,你却无法卸载 GRUB 程 序所在的分区,请指定 `--stage2' 参数。terminal用 法 : terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics] 描述: 选择一个终端。 当指定了多个终端以后, 按任意键方可继续操作。 如果控制台和串口都被指定 了, 那么你首先在其中按下键盘的终端将被首先选中。如果没有指定任何参数, 那么此命令将 显示出当前的终端设置; 参数 --dumb 用以指定一个哑终端, 否则即为 vt100 兼容型; 若使 用 了 --no-echo 参 数 , 屏 幕 上 将 不 会 回 显 输 入 的 字 符 ; 若 使 用 了 --no-edit 参 数 , the BASH-like 的编辑功能将被禁用; 若使用了 --timeout 参数, 该命令将等待数秒钟(由 SECS 指 定); 可使用 --lines 指定最大的行数; 可使用 --silent 选项关闭消息显示。terminfo43 grub4dos 初级教程_0331 by lianjiang用 法 : terminfo [--name=NAME --cursor-address=SEQ [--clear-screen=SEQ] [--enter-standout-mode=SEQ] [--exit-standout-mode= 描述: 指定终端的功能。如果此终端为 vt100 兼容型的,则可指定换码顺序 (即使用 \e 代表 ESC, ^X 代表控制码); 在未给任何参数的情况下,将给出当前配置信息。testload用法: testload FILE 描述: 以多种不同的方式读取文件(由 FILE 指定)的整个内容, 并予以比较, 以测试文件系统的代码。 输出看起来会有点儿混乱,但是,如果没有错误的话,`i=X, filepos=Y' 里的 X 和 Y 最后必 得相等。如果测试即告成功,下一步即可试图载入内核了。testvbe用法: testvbe MODE 描述: 测试所指定(MODE)的 VBE 模式。tftpserver用法: tftpserver IPADDR 描述: 指定 TFTP 服务器的 IP 地址。timeout用法: timeout SEC 描述: 设置在自动启动缺省菜单前所等待的秒数。title用法: title [NAME ...] 描述: 命名菜单项。unhide用法: unhide PARTITION 描述: 通过清除隐藏标志,解除指定分区(PARTITION)的隐藏。44 grub4dos 初级教程_0331 by lianjianguppermem用法: uppermem KBYTES 描述: 强制指定仅有(KBYTES) KB 的上位内存。任何系统的地址变换将被取消。vbeprobe用法: vbeprobe [MODE] 描述: 侦测 VBE 的信息。如果指定了一个模式(MODE 不为空),则仅显示其信息。45 grub4dos 初级教程_0331 by lianjiang4.3 Grub 简体中文化版使用方法by Gandalf&f22_&目录一.功能概述 二.基本概念及界面说明 三.功能详情及使用 四.致谢一.功能概述在本源上, Grub 是 Linux 的一个载入程序,正如 NTLDR 之于 Windows NT/2K/XP. 但是,它却拥有多引导的功能,而且还在不断得发展与完善之 中. 当前,它的新功能如下: 1. 支持中文显示,背景图片; 2. 支持软盘虚拟功能,可以用以引导系统; 3. 支持硬盘虚拟,磁盘的映射(当然,还能激活/隐藏/创建分区); 4. 支持网络启动(包括网络虚拟软盘); 5. 支持光驱启动(拥有一个独立与 BIOS 的 ATAPI 设备的驱动程序); 6. 跨平台的支持; 7. 对多引导文件的支持;二.基本概念及界面说明A.基本概念46 grub4dos 初级教程_0331 by lianjiang1. GRUB 里的设备命名法则 它使用了 UNIX 对设备的命名方法.比如我们拥有两块硬盘,那么采用 这种形式(hdx,y), 这里,x,y, 都是从 0 开始计数的.所以两块硬盘是 (hd0,y),(hd1,y). 他们位于第一个 IDE 接口上. 对 hd0 来说, 请看下 图:(注, C: 为第一主分区, 其他分区是扩展分区.由于主分区只能有四个,即 0,1,2,3, 所以第一个扩展分区的编号从 4 开始.) 这是硬盘,那么光驱哪? 对,采用 (cd) 就可以了. 网络设备使用 (nd). 我估计,以后支持 usb 以后,可以使用 (ud). ;-) 欢迎你的参与, 我们的开发还在继续. 那么,这里就要提及 GRUB 里的一个很首要的概念了, 即 &根(/)&, 或者 root. 其实,它就是一个源一样的东西,与草木的&根&相类似. 在 GRUB 中,其它的文件对象都域于此. 所以,一旦你指定了一个根,后续的操 作除非显示地说明,否则都是对&根&而言的. 其实在某种意义上来说,和相对/绝对路径有点关联性. ;-) 正如, 你所猜到的那样, GRUB 使用 root 命令来指定根设备(通常都是文件系 统). B. 命令和参数 在古老的 dos 时代,这两个东东是很平常的. 可以认为,命令是程序 的名称,参数是告诉程序如何作和怎么作.比如在 Grub 的控制台里: GRUB&help scdrom 那么, help 就是命令, 而 scdrom 就是参数了. 它的意思是&给出 scdrom 命令的帮助信息.& C. 界面说明 首先,引导程序应该简单易用,菜单加鼠标是不错的主意.是的, GRUB 支持自定义的菜单选择功能项;但当前来说,它还不能支持鼠标的点选. 另 外,为了更灵活, GRUB 还可以动态地编辑菜单项,这就是它的控制台功能 (在控制台里,你可以使用 `ESC`键返回到主选菜单界面).以下三图可供参 考:47 grub4dos 初级教程_0331 by lianjiang(主菜单)(编辑菜单项)48 grub4dos 初级教程_0331 by lianjiang(命令行模式) D. 关于菜单脚本文件 与 Windows NT 类似, GRUB 也提供了一个菜单生成文件,我们常称之 以脚本. 通常情况下,我们把 GRUB 要用到地文件都放到 /boot/grub/ (这里 我们省略了对根设备的指定, 所以完整的表示可能是 (hd0,0)/boot/grub ). 而菜单文件的默认名称是 menu.lst. 这里有一个 样本实例, && 请点击 && 这里应该说明的是, 菜单文件里的注释是以&#&开头的, 而每一项菜 单都必须指定一个标题(title),否则不但不能被显示出来,反而还作为了 上一项的命令了.三.功能详情及使用1. 支持中文显示,背景图片; 1).中文的显示, 请使用:49 grub4dos 初级教程_0331 by lianjiangfontfile FILE 实例: 2). 背景图的使用: splashimage FILE 实例: 3). splashimage (hd0,0)/boot/grub/bj2008.xpm.gz fontfile (hd0,0)/boot/grub/fonts图形菜单( gfxmenu ) 的使用:gfxmenu FILE 实例: gfxmenu (hd0,0)/boot/grub/grub_chs.msg[注] fontfile 的文件必须是 16 点阵字库; splashimage 的文件必须是 640x480 14 色的 XPM 格式, 支持 zip 压缩; gfxmenu 的文件当前只能使用 Linux 下的 mkbootmsg 工具生 成, 此功能先见于 SuSe Linux 7.2.2. 支持软盘虚拟功能,可以用以引导系统;1). 使用 MEMDISK kernel (hd0,0)/boot/grub/memdisk.gz initrd (hd0,0)/boot/grub/win99.zip boot 菜单文件里无需指定) 2). 使用内建的 MAP map (hd0,0)/boot/grub/win99.img (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) boot (同上) [注] + 使用 memdisk 有很多好处. 首先它不需要磁盘镜像文件的连 续存放,支持网络上,光盘上的磁盘镜像文件, 而且此文件可以使用 zip 压缩格式. 如果磁盘文件的原始大小不是 1.44/2.88MB, 那么,使用起来,50(此项仅在命令行中使用,在 grub4dos 初级教程_0331 by lianjiang就有一些技巧了: 1). 默认情况下, 将被视为硬盘的镜像文件(与使用 harddisk 效果 相同, 故通常不用指定此参数); 2). 如果是软盘镜像文件,请使用 floppy 参数, 比如: kernel (hd0,0)/boot/grub/memdisk.gz c=274 h=2 s=18 floppy initrd (hd0,0)/boot/acronis/pe.zip boot (同上) =& 提示:可以使用新版的 Winimage 获取上述的 C/H/S 参数, 参见:+ 用 MAP 命令是,磁盘镜像文件必须连续存放,大小上无限制.但 是不支持网络/光盘上的文件,且不支持 zip 压缩了的文件.3. 支持硬盘虚拟,磁盘的映射(当然,还能激活/隐藏/创建分区);就硬盘虚拟功能而言, 在上一个段落里,我们已提及到了, 在应用上, 我们可以构造一个虚拟的磁盘环境来, 但是, 这个磁盘的访问是通过对 INT 13 的挂接来进行的, 这也就是为什么, 我们可以虚拟一个安装有 DOS/Win9X 的硬盘, 而对 Windows NT/2K/XP 就无能为力了, 即便是他们 的恢复控制台(cmdcons). [ 如果你想体验这种功能, 你可以到 Win98_for_grub 下获取 Win98SE_CHS 的两个镜像文件, 他们都带有图形界面. ] [ 此外, 如果你试图使 WinNT 等系统能运行于虚拟的磁盘镜像文件,51 grub4dos 初级教程_0331 by lianjiang请参考 Windows XP Embedded 的相关信息, 通过使用 Ramdisk 驱动, 可 以做到的. 你可以到 RamDisk_WinXPe 获取一个针对 WMWare 的硬件环 境的 WinXP Embedded 版本.] 而“磁盘的映射”, 通常不用, 故而也就不再此处讨论了.4. 支持网络启动(包括网络虚拟软盘);ifconfig --address=192.168.0.122 ifconfig --mask=255.255.255.0 ifconfig --gateway=192.168.0.254 ifconfig --server=192.168.0.1 kernel (nd)/memdisk.gz initrd (nd)/win99.gz boot(本机使用的 IP 地址) (子网掩码) (网关的 IP 地址) (tftp 服务器的 IP 地址) (可以使用 zip 压缩的文件) (同上)5. 支持光驱启动(拥有一个独立与 BIOS 的 ATAPI 设备的驱动程序); 1). 如何让 GRUB 识别光驱scdrom --install 安装成功后, 你可以将 root 设备指定到光盘上(root cd), 访问光 盘上的内容(比如指定 memdisk: kernel (cd)/memdisk, 等等) 2). 如何跳转到光驱启动 scdrom --bootcd 这是&一去不复返&式的跳转, 如果成功的话. 如果失败,将返回 GRUB.6. 跨平台的支持;1). 在纯 DOS 下运行 GRUB 使用配套的 GRUB.exe 程序. 2). 从光盘上直接启动 GRUB(必须是非模拟方式的) 使用配套的 stage2_eltorito 文件作为启动文件.52 grub4dos 初级教程_0331 by lianjiang3). 在 Linux 上运行 GRUB 使用配套的 grub 程序(elf 格式)即可. 可能需要修改运行权限 (chmod a+x grub). 4). 无盘启动 GRUB 使用配套的 nbgrub/pxegrub 即可. * 5). 使用 WinNT/2K/XP/LH 的引导器(NTLDR)载入 GRUB * 使用配套的 grldr 即可. 如何作: 首先, 你一定要确认你的系统拥有 NTLDR 的引导功能, 然后打 开它的配置文件( boot.ini, 这个文件通常在你的 &c:\&),进行修改. 请为 GRUB 新添如下一行到文件的末尾(注意, 请另起一行) C:\GRLDR=&Boot Grub with Full Set&, 然后保存之. 当然你可能会得到信息说文件是只读的, 请修改它的属性后,再保存. 随 后,请把压缩包里的 grldr 解到 C:\ 就可以了.7. 对多引导文件的支持我们假设文件所用到的文件位于 C:\ (hd0,0) 1). 硬盘扇区文件 root (hd0,0) 这样才会传递引导盘符为 80H) root run /peloader.bin (对使用硬盘的时候,一定要使用 hd, (显示说明磁盘为 80H) (运行之)2). 光盘非模拟方式的引导文件scdrom --install root (cd) root run (hd0,0)/emurtosk.bin(初始化,安装光盘驱动) (指定引导盘符的操作) (显示说明磁盘为 80H) (运行之)53 grub4dos 初级教程_0331 by lianjiang* 注:所指定的文件要小于 32768 字节.四.致谢 这个版本的 GRUB 的公开, 离不开很多人的努力,合作与帮助. 他们是:GNU GRUB 的作者 : 一个伟大的程序工作者,为我们带来 了功能强大的 Grub fsys_ntfs.c 的提供者 : 此版本的 Grub 引用它来提供对 NTFS 分区的支持 Smart BootManager 的开发者 : 此版本的 Grub 引用了它的 ATAPI 驱动模块 VCCode 龙堂论坛上的 zhaoxg : 他向我提供了蓝点 Grub 的相关信 息, 使此版本中文支持有了源头 Grub 的网络支持补丁的提供者: 此版本的 Grub 引用了诸多官方版 本所不支持的网卡驱动 Grub4Dos 的开发者 : 此版本的 Grub 引用了它的 MAP/NTLDR 模块(谢谢 tinybit) findroot 功能的提供者 : 他(Chris_s)来自 topologilinux 还有他的朋友(Tobias) United DOS forum : 在这里有,我经常和多位高手交流. 感谢 ruymbeke 发出的邀请 VCCode 龙堂论坛上的小丫头 : 我向她请教了 bj2008.xpm 背景图 的修改问题 ... ... ... ... ... 还有很多人士, 在此一并表示感谢!更新时间:
19:28:18 的调整[更正]- 新增 gfxmenu 动画图形菜单的功能使用说明 - 对 RUN 命令的描述[添加] - 对 memdisk 的只能支持 1.44M/2.88M 的说法 对第三条目, 进行内容的添加[添加]54 grub4dos 初级教程_0331 by lianjiang4.4 GRUB for DOS 磁盘仿真命令简介创建: 00:00:00 作者:Unlinux 来自: http://www.Unlinux.com在进入正题之前,先看看 GRUB for DOS 各系列版本的差异。 GRUB for DOS 0.0.x 系列是没有任何磁盘仿真扩展功能的版本,功能上完全等价于 GNU GRUB。这里说明,GNU GRUB 本身就有磁盘映射功能。磁盘映射是一种特殊的磁盘仿真。 磁盘映射只能把一个 BIOS 磁盘号码映射到另外一个 BIOS 磁盘号码,也就是说,它只能整 盘整盘地仿真,不能用磁盘中的一个文件来仿真另外一个磁盘。这个版本也是最安全可靠的, 可以认为,GNU GRUB 有多安全,GRUB for DOS 0.0.x 就有多安全。 GRUB for DOS 0.1.x 系列具有 0.0.x 的全部功能,除此之外还具有软盘仿真扩展。但是只能 用硬盘上的 img 文件来仿真 1.44M 的软盘,并且对软盘映象进行了写保护,也就是说禁止 软件通过 int13 接口写入软盘的映象。这个版本也没有已知的安全问题。 GRUB for DOS 0.2.x 系列增加了任意规格的软盘和硬盘的仿真功能,是功能上比较完善的版 本。它和 0.1.x 系列的最大不同之处是,它默认时不再保护被仿真的磁盘映像。如果想获得 与 0.1.x 等价的功能,必须为 map 命令加上 --read-only 参数。 【注:0.1.x 系列也支持 --read-only 参数,但即使没有这个参数,0.1.x 系列也会自动保护磁盘映象不被写入。 】 版本 0.2.x 虽然支持写入虚拟磁盘映象,但是,格式化虚拟磁盘映象的 int13/AH=05h 功能 并未完整实现。当格式化磁道的时候,GRUB for DOS 0.2.x 并不真的采取任何实质性的格式 化动作,也即,它并不改变虚拟磁盘中的任何扇区的内容,而仅仅立即返回“格式化成功”的 (类似于 fake write 的虚假)消息给调用者。这没有太大的问题。只有一点需要注意:当您 在 DOS/Win98 下要格式化虚拟磁盘的时候,您先不要忙着下达格式化命令,而是要首先运 行删除命令,将虚拟磁盘根目录下的所有文件以及所有目录都删去,变成一个空盘,然后再 下达格式化命令,这样,格式化后的虚拟磁盘能够正常使用。否则,格式化之前的垃圾目录 项仍然在残存着,这将影响虚拟盘的正常使用。 由于版本 0.2.x 支持写入虚拟磁盘,所以,对虚拟磁盘边界的检查是必不可少的一个步骤了。 程序已经对此作了保护。当试图读取或者写入超过虚拟磁盘边界的那些扇区的时候,int13 接 口会返回失败信息“扇区未找到”,而不是真的读取或者写入(!)硬盘上紧接着虚拟磁盘映 ! 象后面的扇区内容。 【读取这些越界的扇区,并无实质性的危险;但写入这些越界的扇区,将 给硬盘带来灾难。所以这个保护是必须的。 】 有关 GRUB for DOS 0.0.x 系列的说明文档,请看这里:DOS 下用 GRUB.EXE 修复启动故障55 grub4dos 初级教程_0331 by lianjiang有关 GRUB for DOS 0.1.x 系列的说明文档,请看这里:用 GRUB 来引导软盘映象――节约 软盘介质了 从这里下载 GRUB for DOS: http://newdos.yginfo.net/grubdos.htm (英文主页,感谢 Wengier! ) ftp://211.100.7.71/incoming/ 也即: ftp://ftp.cosoft.org.cn/incoming/ 接下来,本文只讨论 GRUB for DOS 0.2.x 系列的新功能。 首先,安全的考虑。在版本 0.1.x 的时候,由于只仿真了软盘,并且以只读的方式访问,所 以,安全问题不很重要。然而,0.2.x 大大不同了,它不仅可以写入软盘,并且默认就打开了 这个功能。所以,如果您不注意的话,您有可能因此而遇到麻烦。大致有以下几种情况: 一、如果您的程序(或者病毒)要写入软盘,那么您的软盘映象可能会改变内容,这可能不 是您想要的结果。 二、 如果您仿真了硬盘, 进入 Windows98 之后,硬盘的号码可能会发生错位 【比如 BIOS 磁 盘 0x81 变成了 0x82 等等】 。这时候如果写入了硬盘映象,可能导致另外一个真实硬盘被破 坏掉。这里看到,如果加上 --read-only 参数,安全性仍然可以得到比较好的保障。 三、 即使如上述“二”所说加上了只读参数, 也仍然存在一定的安全隐患, 其原因是,Win98 将 我们的 int13 仿真程序当作病毒来对待【在 www.google.com 中查找 MBRint13 就可以找到 这类信息】 ,因此,win98 有可能故意产生某些错误来破坏我们的 int13 的运作。迄今为止并 未发现“在加上只读参数后,Win98 仍然破坏磁盘映象”的现象,但也不能保证绝对安全。 四、在整盘映射的情况,加上 --read-only 参数之后,被仿真的磁盘在 DOS 下是只读的,但 是在 win98 下不是只读的。这是因为 win98 对于“整盘映射”实施的是“32 位磁盘存取”【应 当叫做“保护模式磁盘存取”】 ,它不使用 BIOS,因此它不知道我们加上了 --read-only 参数, 所以它会写入磁盘。有鉴于此, 所以,在整盘映射的情况下不要使用 --read-only 参数【当然, 使用 --read-only 参数并无任何坏处】 。 五、 如果没有对硬盘进行仿真, 也就是说仅仅使用了类似于 map DESTINATION (fd0) 的软盘 仿真命令,那么,在 DOS 下应当是比较安全的。然而,如果要在仿真之后运行 win98,请 注意这样一个顺序:首先用 map --read-only DESTINA TION (fd0) 来运行,当您能够确认 win98 可以正常读出仿真软盘的内容之后,下一次运行 map 命令的时候就可以不再添加 --read-only 参数了。如果不能读出仿真软盘的内容,那就说明读错了位置【可能读出的是别 的磁盘上的扇区】 ,这预示着“写入仿真软盘”将会带来灾难。所以建议在运行 win98 时先用 --read-only 参数进行确认,保证安全。 对于版本 0.2.x 来说,如果某个问题只是引起“死机”,这不被认为是安全问题。只有当某个 磁盘扇区被破坏掉了的时候,才算作安全问题。56 grub4dos 初级教程_0331 by lianjiang使用软盘仿真的情况较多,所以,主要用软盘仿真的例子来说明磁盘仿真命令的用法。 1。把硬盘上某个盘符(例如 C:)仿真为 A:,并从 C: 盘引导 win98: map --read-only (hd0,0)+1 (fd0) chainloader (hd0,0)+1 rootnoverify (hd0) boot 上述 (hd0,0) 是 Win98 下的 C: 盘。进入 Win98 后可以发现,现在 A: 盘的内容跟 C: 盘 完全一样。这时,如果随意在 A: 盘上删除文件,会导致 C: 盘也删除该文件,因而有可能 引起故障(例如死机) 。 在 map 命令中,(hdm,n)+1 被解释为代表整个 (hdm,n) 分区, 而不仅仅是代表分区的第一个 扇区。相比之下,在其它地方,(hdm,n)+1 仍然只代表分区的第一扇区。 2。把硬盘上某个盘符(例如 C:)仿真为 A:,并从 A: 盘引导 win98: map --read-only (hd0,0)+1 (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) boot 此处需要用 map --hook 命令激活 A: 盘的就地仿真。如果没有 map --hook 命令,那么后续 的 chainloader (fd0)+1 命令就要寻找真实软驱的软盘介质上的内容,而不是我们想要的虚拟 软盘上的内容。 最后一条 rootnoverify (fd0) 告诉引导程序说,我们是从软盘启动机器的。 3。把硬盘上某个 img 文件仿真为 A:,并从 C: 盘引导 win98 map --read-only (hd0,0)/file.img (fd0) chainloader (hd0,0)+1 rootnoverify (hd0) boot 4。把硬盘上某个软盘 img 文件仿真为 A:,并用该 img 映象里面的文件 dos.img 来引导机 器: map --read-only (hd0,0)/file.img (fd0) map --hook chainloader (fd0)/dos.img rootnoverify (fd0) boot57 grub4dos 初级教程_0331 by lianjiang此处, file.img 是 C: 盘上的一个软盘映像文件, 在这个映象文件中, 包含了一个叫做 dos.img 的文件。 如果不用 map --hook 命令 (该命令启用了就地仿真功能) 则无法在后续的 grub 命 , 令行中访问 dos.img 文件。这个例子只是说明 map --hook 命令的作用,我们通常是不会用 到这个例子中的方法的。上述命令中,软盘可以是任意的规格,任意的大小。 下面举一个硬盘仿真的例子,但是最好不要启动 win98,而应当只限于启动 DOS: map --read-only (hd2,6)+1 (hd0) map --hook chainloader (hd0,0)+1 rootnoverify (hd0) boot 这里,(hd2,6)+1 是第三块硬盘上的某个逻辑 DOS 分区。“map (hd2,6)+1 (hd0)”命令将扩展 DOS 分区仿真为 BIOS 的 0x80 号硬盘。激活就地仿真【map --hook】之后,“chainloader (hd0,0)+1”中的 (hd0,0)+1 就是仿真之后的虚拟 0x80 硬盘分区,而不是仿真之前的 0x80 号 硬盘分区了。 【此处的 (hd0,0)+1 实际上就是仿真之前的 (hd2,6)+1】 。您应当保证这时在该分 区中存在着 DOS,否则引导会失败。如果您不启动 win98,可以不用 --read-only 参数。如 果试图启动 win98,通常会引导失败。 因为 MS-DOS 的逻辑分区之前的 63 个扇区处, 都存放了一个“扩展分区的分区表”, 所以有 可能用它来仿真一个硬盘。“扩展分区表”中的引导记录全都是 00 字节。GRUB for DOS 0.2.x 在读取这个分区表的时候,作了一些修改,使得这个表看起来像是一个合法的硬盘主分区表。 GRUB for DOS 并不写入该扇区,因为默认的 safeboot 在起作用。这是安全的。在这种情况 下不应当加入 --unsafe-boot 选项,因为 win98 会随意写入虚拟磁盘的引导扇区,这将导致 该分区表信息的错位,造成扩展分区不可访问的后果【内容还在,只是扩展分区表错误导致 不可访问。手动修改扩展分区表可以解决这个问题,但需要计算准确】 。 上述硬盘仿真的例子,如果改成下面的方式,这将是失败的: map --read-only (hd2,6)+1 (hd0) chainloader (hd2,6)+1 rootnoverify (hd0) boot 分区 (hd2,6) 的 DOS 引导记录中有一个“隐含扇区”的字段,这个字段必须修改。如果没有 map --hook 命令,该字段不会被正确修改,因而将导致引导失败。修改该字段的程序,是在 int13 的中断处理程序中,所以需要 map --hook 之后再读出该扇区的内容【此时所读出的该 扇区内容已经经过恰当修改了】 。在 map --hook 之后,应当使用 chainloader (hd0,0)+1 来装 入 仿真之 前的 (hd2,6)+1, 直接用 chainloader (hd2,6)+1 是错误 的【直 接用 chainloader58 grub4dos 初级教程_0331 by lianjiang(hd2,6)+1 结果,使得该扇区不能利用 int13 的中断处理程序进行必要的修改,这将导致引导 失败】 。注意,int13 仅对磁盘 (hd0) 起作用,对 (hd2) 不起作用,这是因为 map --read-only (hd2,6)+1 (hd0) 命令只对 (hd0) 进行了仿真,而对其它磁盘【包括(hd2)】都没有进行仿真。 所以,int13 程序会修改 (hd0,0)+1 但不修改 (hd2,6)+1。 又,上述“修改”并不发生在磁盘上,而是发生在内存中。所以,磁盘上的扇区内容不会改变。 也就是说,当读取该扇区的时候,要对读出的扇区进行修改,从而保证扇区内容可用;而当 写入扇区的时候,由于默认的 safeboot 在起作用,所以,不会有写入的动作,直接返回虚假 的“写入成功”的消息。 前面已经解释过了,safeboot 只保护硬盘 MBR 主引导扇区以及硬盘第一个主分区的第一个 扇区(通常是 DOS 的引导扇区)――只保护这两个扇区,不保护其它扇区。 GRUB for DOS 0.2.0 还 包 括了 BOOTGRUB 和 GRLDR 文件 【 它们 叫 做“GRUB for NTLDR”】 。这两个文件用于从 Windows NT/2000/XP/2003 的引导菜单中直接启动 GRUB。 用法是, BOOTGRUB 和 GRLDR 拷贝到 Windows NT/2000/XP/2003 的 C: 盘根目录 将 【C: 盘根目录下应当有隐藏的 NTLDR 和 BOOT.INI 文件】 ,然后修改 BOOT.INI 文件,一般是 在 BOOT.INI 文件尾部添加类似如下的一行: C:BOOTGRUB=&启动 GRUB& 重新启动机器,选择相应的菜单项就进入 GRUB 了。安全建议(这是以前写的,现在还保留它,或许这是引起注意的一个好办法) : 1。如果您用 GRUB for DOS,请尽量用版本 0.0.x 的,不要用更高的。 2。如果您不用 0.0.x 的,请尽量用版本 0.1.x 的,不要用更高的。 3。如果您不用 0.1.x 的,请尽量用版本 0.2.x 的,不要用更高的。 4。如果您用 0.2.x 的版本,请尽量不要用 map 等磁盘仿真命令。 5。如果您用 0.2.x 的版本,也用了 map 命令,请尽量先在虚拟机中测试运行。 6。版本 0.2.x 在您的虚拟机中测试过了之后,在真实机器中尽量用 --read-only 等参数 运行。 7。尽管已经把 map 命令加上了 --read-only 等参数,但也请尽量不要启动 Windows。 8。如果要启动 Windows,请尽量不要把用来仿真的 img 映像安置在 (hd0) 驱动器上。 9。如果启动了 Windows,即便仿真磁盘的映像不在 (hd0) 驱动器上,您也得做好最坏 的打算:其一,如果仿真映像被毁,您不要感到出乎意料;其二,如果某个真实磁盘全部被 毁,您不要感到难以接受;其三,如果您的所有的、全部的硬盘都报废了,您也不要感到太 奇怪。 10。版本 0.2.x 以后的仿真技术是给熟练的电脑玩家作为研究的目的来使用的,不是给 普通用户使用的。 11。玩家们最好互相交流经验,研究别人在使用过程中失败的情况,详细阅读说明文档, 避免使自己遭受不必要的损失。 在初期的测试中暴露出很多问题,也损坏过很多硬盘,所以在这里特别通报一下,并写59 grub4dos 初级教程_0331 by lianjiang出了上述注意事项。map 命令的新功能是有某种危险的,建议首先在 VMware 或者 Virtual PC 这类虚拟机中测 试。先用 --read-only 或者 --fake-write 参数运行 map 命令,这样是在只读状态下测试,安 全一些。只读测试一段时间后,没有问题的话,再进行全面测试。测试时,在 grub 所仿真 的虚拟磁盘上安装 DOS/Win9x/Me,不要用别的操作系统。即使全部测试都成功,这个仿真 技术也仍然有着它固有的危险性。这是基于 BIOS 的仿真,不是全方位的仿真。例如,当你 格式化一个磁盘的时候,你得明白这个磁盘是不是仿真了的? 以及你所用的格式化软件是使 用 BIOS 呢? 还是使用磁盘 IO 端口读写? 使用 BIOS 的格式化软件,在仿真之下是安全 的。使用磁盘 IO 端口的格式化软件,当它格式化一个仿真了的磁盘时,在最坏的情况下, 实际上会格式化你的真实硬盘,至于说这种危险的误操作会发生在哪个硬盘上,取决于使用 了什么样的 map 命令集(参考下面的“技术细节和实现方法”一节) 。更进一步的测试,请大 家报告 DOS 的 format 命令、Windows 资源管理器的格式化命令、磁盘碎块整理命令等等, 以及第三方生产的 HD-COPY 等工具软件在进行格式化操作时是否安全。技术细节和实现方法:GRUB for DOS 0.2.x 将要对各种规格的软盘映像给以支持。 由于硬盘的仿真也很类似, 所以, 也要对硬盘的 img 给以支持。 另外, GRUB for DOS 0.2.x 也要开放写入虚拟磁盘的操作(写 入虚拟盘是一种危险的操作,因为实际上我们写入了硬盘的 img 文件中,万一 GRUB for DOS 0.2.x 的仿真程序有 BUG,写入硬盘其它扇区中,可能造成数据毁损、无法启动等严重 问题!。 )对软盘规格:需要解决的技术问题是如何恰当地处理三维的几何地址,也就是平常所说的 CHS(C――磁道柱面号;H――磁头号;S――扇区号) 。对于真实的软驱(和软盘) ,都有 这些规格的。 然而,我们仿真之后的 img 文件, 却无法表示这些规格。 例如,一个 1.44M 的 没有格式化的 img 文件,里面的数据全部是 00,怎么确定其 CHS 值呢? 当 img 文件已经经过 DOS 的格式化时,就用软盘第一扇区的 BPB 表来确定 CHS 值。如 果没有经过 DOS 的格式化,或者发现其 BPB 表是错误的,那么就根据 img 文件的大小来 确定 CHS 值。如果是标准的(或者常用的)软盘 img 尺寸,如 1.44M,1.2M,2.88M 等 等,就用已知的 CHS 值。我们支持的软盘尺寸甚至可以是任意的(非标准的) ,如 10M 或 50M 或 500M 的软盘 img 文件。这时候,如果 BPB 表中没有合法的 CHS 值,就需要用 map 命令行参数来手动设置 CHS 值了。如果命令行没有指定 CHS 值, 给出一个错误信息, 拒绝仿真。当软盘 BPB 表和 map 命令行都有 CHS 的指定时,以命令行的指定为准,如果 两者有差别,给出一个警告信息。 软盘规格列表(不支持扇区大小不等于 512 字节的防拷贝加密软盘): 软盘容量 每面磁道数 每道扇区数60磁头数或面数 grub4dos 初级教程_0331 by lianjiang---------------------------------------------------------------0160K(标准) 40 08 0180K(标准) 40 09
0250K 50(暂用) 10(暂用)
0320K(标准) 40 08 0360K(标准) 40 09 0400K(优先) 40 10
0500K 50(暂用) 10(暂用)
0720K(标准) 80 09
0902K** 82 11 0984K** 82 12 1066K** 82 13 1200K(标准) 80 15
1440K(标准) 80 18
1558K** 82 19
1 1 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 261 grub4dos 初级教程_0331 by lianjiangK K(优先) K K 1804K** 1886K** 2880K(标准) K** 3690K** 3772K**82 83 84 80 81 82 83 84 82 82 80 82 82 82 8220 20 20 21 21 21 21 21 22 23 36 39 44 45 462 2 2 2 2 2 2 2 2 2 2 2 2 2 2(感谢 Roy 兄提供了大量的磁盘规格资料) 硬盘比软盘复杂了一些。硬盘第一扇区不是 DOS 的引导区,而是主引导记录(MBR) ,这里 没有 BPB 表,而是有一个分区表。所以,对于硬盘的 CHS,作如下的处理: 当没有分区表或者分区表错误时,必须由 map 命令行来指定 CHS,否则拒绝仿真。当分区 表存在时,由四个分区表项中的任意一项都可以确定 H 和 S 的值。再用 img 文件长度即 可确定 C 的值。 【大硬盘的 CHS 值也是可以用这种办法来确定的。 】 也可能有人不愿意给出命令行 CHS 参数,他们希望 grub for dos 任意选择一个适当的值。 map 命令将提供这样一种选项。首先根据上述 BPB 或分区表来确定 CHS,如果失败,再用 以下的办法来确定。对于软盘,尽量采用具有 2 个磁头的参数。对于硬盘 img 文件,如果 让 GRUB for DOS 来自动挑选,则总是选择 63 个扇区、256 个磁头。 drive_map_slot 结构: 字节: FROM_DRIVE――把哪个 BIOS 磁盘号映射到另外一个磁盘号或者映射到另一个 img 文件? 字节: TO_DRIVE――被映射到的磁盘号。 BIOS 磁盘号: 1, 0, ……表示软盘, 0x80, 0x81, …… 表示硬盘。 字

我要回帖

更多关于 u盘重新分区 的文章

 

随机推荐