中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 05:02
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » GRUB 伤脑筋的问题, 大家会诊一下
可打印版本  50,114 / 280
第166楼 SunSpring 发表于 2004-02-13 00:00
初级用户 发帖 20 积分 166
以下是引用不点在2004-2-13 1:26:32的发言:
安装程序是 GNU GRUB 内建的功能。它只使用 boot/grub/ 目录下的那些 stage 文件。这个我们没办法改动。

由于我们的 GRUB for DOS/NTLDR 需要系统能够引导到一种状态【DOS或者NTLDR】,所以,我们的 GRUB for DOS/NTLDR 不能直接安装到 MBR。但也可以这么试验试验:

把 BOOTGRUB 的程序代码放在 MBR 中,但要保留 MBR 尾部的分区表【66个字节】,不要毁坏分区表【危险!分区表毁坏之后的严重性,不用在此多说了吧,最好事先把分区表备份到软盘。】。如此一来,我们的 GRUB for NTLDR 就可以从 MBR 而不是 NTLDR 菜单来启动了。【GRUB.EXE 无法用这种办法,因为它需要一个 DOS 操作系统】。由于我们仍然要使用 GRLDR,所以,这样做不受磁盘碎片整理的影响。

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

背景画面可以支持了,请下载测试:
ftp://211.100.7.71/incoming/grub_for_dos-0.2.0pre2.tar.gz

本次增加了对 splash image 背景画面支持。解压后,在 splash 目录下可以找到具有 splashimage 功能的程序文件。

本次主要测试 splashimage 背景画面是否工作正常。注意:应当使用 splash 目录中的文件来进行测试。


如何把BOOTGRUB写到MBR?那样会不会影响NTLDR呢?如果有影响,且系统装在NTFS格式分区,那又如何用Grub启动NTFS分区上的系统呢?
第167楼 不点 发表于 2004-02-14 00:00
银牌会员 发帖 1,115 积分 2,491
现在还不提供把 BOOTGRUB 写入 MBR 的命令. 以后有机会再做这件事.

把 BOOTGRUB 的开头 446 字节写入 MBR 引导扇区, 但要保持 MBR 中的分区表不变. 分区表位于 MBR 扇区的末尾 66 字节. 446 + 66 = 512 , 一定要计算准确!!!! 万一毁掉分区表, 硬盘全部资料可都没了!!!!

至于说用什么工具写入, 都无关紧要, 用 debug 也可以, 用 LINUX 的 dd 命令也可以, 这个就"八仙过海,各显神通", 不再多说了. 不熟悉 debug 的人, 不会用 dd 命令的人, 不要尝试这样做.

这样安装不会影响 NTLDR 的.

在 GRUB 命令行敲入

chainloader (hd0,0)+1
rootnoverify (hd0)
boot

就启动 NT 了.

这里假定 (hd0,0) 是你的 NTFS 分区, 它是 C: 盘.




第168楼 不点 发表于 2004-02-14 00:00
银牌会员 发帖 1,115 积分 2,491
pre3 上载了:
ftp://211.100.7.71/incoming/grub_for_dos-0.2.0pre3.tar.gz

请全面测试这个版本.

看看 FAT16 下的 GRLDR 能否正常运行.

看看 spalsh 目录下的 spalshimage 版本的文件是否可以显示背景画面.

第169楼 Wengier 发表于 2004-02-14 00:00
系统支持 发帖 10,521 积分 27,736
剛才用這個新版本試了一下,發現用splashimage命令顯示那個測試XPM成功,不錯!而且GRLDR在FAT16的兩個硬盤下均啟動成功(不過據在Bochs虛擬機下的測試結果,GRLDR在FAT12下仍啟動失敗)。
第170楼 windrv 发表于 2004-02-14 00:00
中级用户 发帖 118 积分 385
以下是引用不点在2004-2-14 10:49:30的发言:
现在还不提供把 BOOTGRUB 写入 MBR 的命令. 以后有机会再做这件事.

把 BOOTGRUB 的开头 446 字节写入 MBR 引导扇区, 但要保持 MBR 中的分区表不变. 分区表位于 MBR 扇区的末尾 66 字节. 446 + 66 = 512 , 一定要计算准确!!!! 万一毁掉分区表, 硬盘全部资料可都没了!!!!

至于说用什么工具写入, 都无关紧要, 用 debug 也可以, 用 LINUX 的 dd 命令也可以, 这个就"八仙过海,各显神通", 不再多说了. 不熟悉 debug 的人, 不会用 dd 命令的人, 不要尝试这样做.

这样安装不会影响 NTLDR 的.

在 GRUB 命令行敲入

chainloader (hd0,0)+1
rootnoverify (hd0)
boot

就启动 NT 了.

这里假定 (hd0,0) 是你的 NTFS 分区, 它是 C: 盘.







Dear TinyBit,

Could you upload those 446 bytes of BootGrub here, so that I can download and have a trial?

Thank you.

第171楼 不点 发表于 2004-02-14 00:00
银牌会员 发帖 1,115 积分 2,491
这 446 字节就是 bootgrub 的开头 446 个字节。
把 BOOTGRUB 的开头 446 字节再加上 MBR 的末尾 66 字节
组成一个 512 字节的扇区,把这个新扇区写入 MBR 中,就可以了。

第172楼 不点 发表于 2004-02-14 00:00
银牌会员 发帖 1,115 积分 2,491
以下是引用Wengier在2004-2-14 14:14:40的发言:
剛才用這個新版本試了一下,發現用splashimage命令顯示那個測試XPM成功,不錯!而且GRLDR在FAT16的兩個硬盤下均啟動成功(不過據在Bochs虛擬機下的測試結果,GRLDR在FAT12下仍啟動失敗)。


谢谢。那么问题就只剩下 FAT12 了。请最好在真实机下测试,如果失败,请提供 MBR 和分区开头 16 个扇区。
另外,失败的现象也请详细描述一下。另外,当失败时,请试试 grub_for_ntldr-test003/004 是否成功。

第173楼 xiaojun 发表于 2004-02-15 00:00
银牌会员 发帖 499 积分 2,202
请教不点大哥: 我C已有Boot\Grub目录,是放splash在boot下呢,还是Grub下呢,还是只用其中的哪个图片显示文件呢? 谢谢...!
第174楼 不点 发表于 2004-02-15 00:00
银牌会员 发帖 1,115 积分 2,491
xpm.gz 文件放在哪里无关紧要。

grub> splashimage (hd0,0)/..../..../..../myphoto.xpm.gz

也就是,只是在命令行指出路径便可。

把你 C:盘上旧的 boot/grub 目录删掉,换成 splash 目录里面的 boot/grub

splash 目录下的文件都放在 C:盘根目录。C:盘之下不要有 splash 子目录。
第175楼 windrv 发表于 2004-02-15 00:00
中级用户 发帖 118 积分 385
以下是引用不点在2004-2-14 19:13:03的发言:
以下是引用Wengier在2004-2-14 14:14:40的发言:
剛才用這個新版本試了一下,發現用splashimage命令顯示那個測試XPM成功,不錯!而且GRLDR在FAT16的兩個硬盤下均啟動成功(不過據在Bochs虛擬機下的測試結果,GRLDR在FAT12下仍啟動失敗)。


谢谢。那么问题就只剩下 FAT12 了。请最好在真实机下测试,如果失败,请提供 MBR 和分区开头 16 个扇区。
另外,失败的现象也请详细描述一下。另外,当失败时,请试试 grub_for_ntldr-test003/004 是否成功。




Dear TinyBit,

We have just tested using your Pre3 by putting BootGrub's first 446bytes into MBR with GRLDR in the root directory of either an active FAT16 or FAT32 primary partition.

But it fails and displays the following error message:

Error: NT Boot Partition not found, press Ctrl+Alt+Del to restart.

Could you explain the exact booting mechanism and if NT Boot Partition is required?

第176楼 不点 发表于 2004-02-15 00:00
银牌会员 发帖 1,115 积分 2,491
to windrv 兄:

是的,目前需要有 NT 的分区存在才行。如果系统中没有 NT 的 boot 分区,那么 BOOTGRUB 就无法运行。

注意,是说一定要有 NT 的引导扇区存在,并非要求 NTLDR 一定存在。我们的 BOOTGRUB 利用了 NT 的 boot record 来引导 GRLDR 文件。假如您仅仅有 DOS/win9x 的 boot record,那是不能引导 GRLDR 文件的。

在 MBR 的四个分区表项中查找 NT 的 boot record,如果四个主分区都没有 NT 的 boot record,那么就显示您所看到的错误信息了。

将来再写一段程序,以便支持那些没有 NT 引导程序的分区。请您耐心等待着。

第177楼 windrv 发表于 2004-02-16 00:00
中级用户 发帖 118 积分 385
以下是引用不点在2004-2-15 11:17:15的发言:
to windrv 兄:

是的,目前需要有 NT 的分区存在才行。如果系统中没有 NT 的 boot 分区,那么 BOOTGRUB 就无法运行。

注意,是说一定要有 NT 的引导扇区存在,并非要求 NTLDR 一定存在。我们的 BOOTGRUB 利用了 NT 的 boot record 来引导 GRLDR 文件。假如您仅仅有 DOS/win9x 的 boot record,那是不能引导 GRLDR 文件的。

在 MBR 的四个分区表项中查找 NT 的 boot record,如果四个主分区都没有 NT 的 boot record,那么就显示您所看到的错误信息了。

将来再写一段程序,以便支持那些没有 NT 引导程序的分区。请您耐心等待着。




Dear TinyBit,

Is it possible just to use Syslinux to boot up GRLDR?

Have you tried that out?

第178楼 不点 发表于 2004-02-16 00:00
银牌会员 发帖 1,115 积分 2,491
我没有尝试过.

根据我以前对 syslinux 的印象, 觉得 syslinux 的功能很有限. 它在一个 FAT 分区上可以工作, 但似乎在其它类型的分区上不能很好的工作. 我没有采用 syslinux 的计划. 我觉得, syslinux 的技术, 或许有些过时了.

第179楼 windrv 发表于 2004-02-16 00:00
中级用户 发帖 118 积分 385
以下是引用不点在2004-2-16 14:44:59的发言:
我没有尝试过.

根据我以前对 syslinux 的印象, 觉得 syslinux 的功能很有限. 它在一个 FAT 分区上可以工作, 但似乎在其它类型的分区上不能很好的工作. 我没有采用 syslinux 的计划. 我觉得, syslinux 的技术, 或许有些过时了.




Hi TinyBit,

What is the difference between your GRUB.EXE and GRLDR?

Could we rename GRLDR into GRLDR.EXE and run it?

第180楼 不点 发表于 2004-02-16 00:00
银牌会员 发帖 1,115 积分 2,491
不同之处在于头部.

GRLDR 只有一个扇区的 header, 而 GRUB.EXE 有 8 个扇区的 header. 其余的部分都相同, 是 pre_stage2 文件.

GRLDR 不是一个普通的 EXE 文件, 也不能看成是一个 .com 文件. 不能通过重新命名为 .exe 而运行它.
上一页  19 10 11 12 13 14 1519  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023