【4 月 3 日更新】 新的 BOOTGRUB 和 GRLDR 可以在以下网页得到【如果不能访问,请在第二天重试】:
http://www.ipdown.com/grub4dos/
【2 月 18 日更新】 pre3 漏掉了磁盘仿真部分的出错信息, 本次的 pre4 纠正了这个 BUG。
请全面测试这个版本.
看看 spalsh 目录下的 spalshimage 版本的文件是否可以显示背景画面。
仍然借用中国 DOS 联盟 联合 DOS 论坛 之“启动盘室”报告 BUG。
下载 grub for dos 0.2.0pre4:
FTP://211.100.7.71/incoming/grub_for_dos-0.2.0pre4.tar.gz
ftp://ftp.cosoft.org.cn/incoming/grub_for_dos-0.2.0pre4.tar.gz
另外注意(Linux伊甸园首页)以下网址的消息:
http://www.linuxeden.com/download/softdetail.PHP?softid=1026
GRUB for DOS 0.2.0 中文文档在这里: GRUB for DOS 磁盘仿真命令简介 。
grub_for_dos 版本 0.1.x 是一个开发版的系列,在 GNU GRUB 原有的基础上实现了引导 1.44M floppy.img 的功能。从这里得到这个软件:
ftp://ftp.cosoft.org.cn/incoming/grub_for_dos-0.1.4.tar.gz
也可进入目录查看:
ftp://ftp.cosoft.org.cn/incoming/
感谢 Wengier 兄在 中国DOS联盟 成员 新DOS时代 为 grub_for_dos 建立 镜像下载和英文推介网页 : http://newdos.yginfo.net/grubdos.htm
〖顺便说:FreeDOS ——GNU/Linux 的一个极好的补充,有着旺盛的生命力。在需要用到实模式的时候(正如运行 GRUB for DOS 所要求的那样),我们就想起来 DOS 的好处了。某个著名的 DOS 公司正在努力让 DOS 消亡,但 DOS 是不会消亡的。那个公司不想要 DOS 了,但是我们还要;DOS 的未来是我们的,不是那个公司的。〗
下载解压后, 在纯 DOS 下 运行 grub.exe 文件即可。不要被“for DOS”这个后缀吓坏了,实际上你完全可以在 Linux 下正常编译生成通常的 grub 引导管理器文件,这样,你的 grub 同样可以把 软盘映象文件 模拟成 启动软盘 。整个 grub_for_dos 项目就是对 GNU GRUB 的丰富和加强,你可以认为 grub_for_dos 不过就是 GNU GRUB 的补丁而已(源程序就是以补丁的形式出现的)。再次说明,grub_for_dos 是 GNU GRUB 的功能扩展(起初只是让 GRUB 能够从 DOS 运行,所以取了“for dos”这样的名字),不是“只能用于 DOS 环境”的意思。正常编译之后,安装在(例如) MBR 中,当然是可以的。
0.1.2 修正了一个读取软盘扇区的 BUG;增加了从 menu.lst 菜单安装 GRUB 到 MBR 的菜单项。使用方法是,将解包后的 boot 目录拷贝到 C:\ 也就是根目录下(于是就有了这个文件 C:\boot\grub\menu.lst)。这需要在 Windows 下操作(或者在一个可以创建长文件名的 DOS 下操作),因为在 C:\boot\grub 目录下有很多长文件名,而你所用的 DOS 或许不能建立长文件名。拷贝完成后,进入纯 DOS,运行 grub.exe,当看到菜单后,选择“install GRUB on (hd0,0) to MBR (hd0) and reboot”这个菜单项就行了。这里假定你的 C: 盘是 FAT32 格式的,并且分区号是 (hd0,0) 也就是第一块硬盘上的第一个主分区。
0.1.4 优化了 FreeDOS 的相关代码,可望能够在未来的任何 FreeDOS 版本中运行。谢谢 wengier 兄快速的消息。
[1] [2] [3] 下一页
在“虚拟的” DOS 环境下运行 grub.exe,会出现以下错误信息:
Cannot run in protected mode. Must run in real mode.
Windows Me/2000/XP 的用户获得“纯 DOS”的一个方法是,在资源管理器中格式化一张——有启动能力的——软盘,把 grub.exe 拷贝到软盘上,然后用这个软盘引导机器,就可进入实模式的 DOS 了。在这个实模式 DOS 的 A:> 提示符下敲入 grub 并回车,就可以看到 grub> 提示符了。
有关 grub_for_dos 的用法和注意事项,请看里面的 README 和 ChangeLog 文件。这里摘录其主要部分:
以下命令集可以引导 Windows 98 SE
map (hd1,0)/dos98se.img (fd0)
chainloader (hd1,0)/dos98se.img
rootnoverify (fd0)
boot
另外一个例子,用 hd.img 文件引导 Mandrake 的安装程序
map (hd0,0)/hd.img (fd0)
chainloader (hd0,0)/hd.img
rootnoverify (fd0)
boot
软盘映象的大小必须是 1440KB, 即 1474560 字节。映象文件必须是连续的磁盘块,不能有碎片。
如果你用 ext2 之类的分区,恐怕无法生成 1.44M 的连续文件。解决的办法是采用 FAT32 分区。
在 FAT32 分区中将一个文件拷贝成 10 个或 20 个文件,看看哪个文件是连续的,就采用哪个。
在 grub 的提示符下敲入
grub> blocklist (hd0,0)/hd.img
可以看到该 hd.img 文件是由几个不连续的块组成。如果没有逗号,表示是连续的(只有一块)。逗号越多,表示碎片越多。在敲入 blocklist (hd0,0)/hd.img 命令之后,应当显示出类似下面这样的结果:
(hd0,0)879328+2880
879328 是起始扇区号,这个数可以随便,没有任何影响。而那个 2880 就是 1.44M 的意思(2880个扇区就是 1440K)。这说明 hd.img 是硬盘上的一个连续的扇区序列,因此你可以把它仿真成软盘了,好!
如果显示成类似下面这样的结果:
(hd0,0)879328+96,880000+2784
你注意到 96 和 2784 加起来正好等于 2880。但是,这个 hd.img 文件不能用来仿真软盘,因为它在硬盘上是不连续的,它被放置在两个区域,一个区域是连续的 96 个扇区,第二个区域是连续的 2784 个扇区。要想使用 grub_for_dos 的软盘仿真(将来还有硬盘和光盘仿真)功能,必须要求——用来仿真的那个区域——是连续的磁盘块!!我们的实现方法是接管 int13 中断,是用硬盘区域而不是用内存区域来仿真(将来仿真大硬盘,本来就不可能用内存来仿真的),因而不用接管像 int15 这样的调整内存大小的中断。连续的硬盘区域减轻了编程的负担,也使得仿真之后的硬盘 BIOS 底层操作效率不受到影响。
grub.exe 文件放在任何目录都一样,无关紧要,只要你能运行它就行。
hd.img 放在哪里也是无关紧要。但是,如果不是在根目录,你需要在上述命令中指出所在的位置,例如 (hd0,0)/somewhere/else/hd.img
如果你的机器没有软驱,而你又需要运行某个 floppy.img 上的安装程序(或者引导程序),那么这个软件正是你所需要的。
如果你有软驱,但想节约软盘介质(软盘容易坏掉啊!),也可以试试。
还要说明,map 命令定义了磁盘仿真的映射,如果你不需要从仿真磁盘上引导启动你的操作系统,你当然可以 chainloader 别的某个引导扇区,并非一定得是这个软盘的映像文件。
(出处:http://www.sheup.com)
(出处:http://www.sheup.com/)