中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] »
作者:
标题: GRUB 伤脑筋的问题, 大家会诊一下 上一主题 | 下一主题
SunSpring
初级用户




积分 166
发帖 20
注册 2004-1-2
状态 离线
『第 166 楼』:  



  Quote:
以下是引用不点在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分区上的系统呢?

2004-2-13 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 167 楼』:  

现在还不提供把 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: 盘.








因为我们亲手创建,这个世界更加美丽。
2004-2-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 168 楼』:  

pre3 上载了:
ftp://211.100.7.71/incoming/grub_for_dos-0.2.0pre3.tar.gz

请全面测试这个版本.

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

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





因为我们亲手创建,这个世界更加美丽。
2004-2-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 169 楼』:  

剛才用這個新版本試了一下,發現用splashimage命令顯示那個測試XPM成功,不錯!而且GRLDR在FAT16的兩個硬盤下均啟動成功(不過據在Bochs虛擬機下的測試結果,GRLDR在FAT12下仍啟動失敗)。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2004-2-14 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
windrv
中级用户




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 170 楼』:  



  Quote:
以下是引用不点在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.

[em12][em12][em12]

2004-2-14 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 171 楼』:  

这 446 字节就是 bootgrub 的开头 446 个字节。
把 BOOTGRUB 的开头 446 字节再加上 MBR 的末尾 66 字节
组成一个 512 字节的扇区,把这个新扇区写入  MBR 中,就可以了。





因为我们亲手创建,这个世界更加美丽。
2004-2-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 172 楼』:  



  Quote:
以下是引用Wengier在2004-2-14 14:14:40的发言:
剛才用這個新版本試了一下,發現用splashimage命令顯示那個測試XPM成功,不錯!而且GRLDR在FAT16的兩個硬盤下均啟動成功(不過據在Bochs虛擬機下的測試結果,GRLDR在FAT12下仍啟動失敗)。

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





因为我们亲手创建,这个世界更加美丽。
2004-2-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaojun
银牌会员





积分 2202
发帖 499
注册 2003-6-12
状态 离线
『第 173 楼』:  

请教不点大哥: 我C已有Boot\Grub目录,是放splash在boot下呢,还是Grub下呢,还是只用其中的哪个图片显示文件呢? 谢谢...!



一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
2004-2-15 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 174 楼』:  

xpm.gz 文件放在哪里无关紧要。

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

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

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

splash 目录下的文件都放在 C:盘根目录。C:盘之下不要有 splash 子目录。




因为我们亲手创建,这个世界更加美丽。
2004-2-15 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
windrv
中级用户




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 175 楼』:  



  Quote:
以下是引用不点在2004-2-14 19:13:03的发言:

  Quote:
以下是引用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?

[em12][em12][em12]

2004-2-15 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 176 楼』:  

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 引导程序的分区。请您耐心等待着。





因为我们亲手创建,这个世界更加美丽。
2004-2-15 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
windrv
中级用户




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 177 楼』:  



  Quote:
以下是引用不点在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?

[em12][em12][em12]

2004-2-16 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 178 楼』:  

我没有尝试过.

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





因为我们亲手创建,这个世界更加美丽。
2004-2-16 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
windrv
中级用户




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 179 楼』:  



  Quote:
以下是引用不点在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?

[em12][em12][em12]

2004-2-16 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 180 楼』:  

不同之处在于头部.

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

GRLDR 不是一个普通的 EXE 文件, 也不能看成是一个 .com 文件. 不能通过重新命名为 .exe 而运行它.




因为我们亲手创建,这个世界更加美丽。
2004-2-16 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: