grub for dos(GRUB4DOS)
一、“grub for dos”是什么意思
比如从网上下载了效率源的镜像文件,文件名为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)表示。
如何把下载的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文件的内容。
不同的启动模式,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)
二、grub2与grub4dos 的区别
两个不同的分支,可以这么说。
======
摘自grub4dos帮助文档
======
相信许多linuxer初次听到“GRUB FOR DOS”这个名字,第一感觉就是:这个对我没用,因为我不用DOS,即使用也不会去通过它启动GRUB。先别急,再问一句:您是否用过grldr呢?是否用过MaxDos、一键ghost、矮人DOS工具盘?如果答案是肯定的,那您已经在用GRUB FOR DOS了。
首先搞清楚与 GNU GRUB的关系。 GNU GRUB分为 GNU GRUB Legacy l和 GNU GRUB2两代。GNU GRUB Legacy其实就是原来的 GNU GRUB 0.xx,最新版是2005年发布的 GNU GRUB 0.97。目前已停止开发,并改名为 GNU GRUB Lagecy。
GNU GRUB2是第二代 GRUB,它将取代原来的 GNU GRUB(例如0.9x版)。
而 GRUB4DOS则是对 GNU GRUB Lagecy的二次开发。该项目最早由不点在2003年发起。目前主要由chenall、不点、bean和另外几位中国人维护,很多人贡献了代码,再加上广大网友热心帮助,使得 GRUB4DOS不断完善。
=====
三、grub4dos电脑重装问题
menu.lst文件损坏
在出现 grub>之后
试着输入
chainloader(hd0,X)/ntldr
X代表系统所在的分区
比如说你系统装在C盘
那么就是chainloader(hd0,0)/ntldr
引导D盘上的系统就是
chainloader(hd0,1)/ntldr
ntldr文件损坏
试着进入DOS下,从一台正常的机器上拷一个ntldr文件到C:盘
实在不行找张系统光盘重做吧
主分区已经被改写了
由MBR引导GRUB进入系统的
分区表坏了的话,是无法引导GRUB的,但你至少能引导进入