无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3508|回复: 6
打印 上一主题 下一主题

G4D在CD中的识别(bd)的问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-5 04:28:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用UltraISO PE 9.5.1.2810制作GRUB4DOS引导的光盘ISO文件,在GRLDR中识别 () 、(bd) 会因使用的引导文件不同而不同。图一是使用了 GRLDR.BIF 作引导去加载 GRLDR 来启动的情况,图二是直接用GRLDR引导启动后的情况;通过 GRLDR.BIF 再加载 GRLDR 时,GRLDR下 ()、(bd)列文件会出错,而直接使用GRLDR则正常;两者如果使用 ls (cd)/ 来列文件,均正常。测试的 2011-10-28 和 2011-11-04 两个版本,情况相同;测试使用了VPC2007,第一启动就是光驱(GRLDR做的ISO文件)。

Shot-2011-11-05_040815.jpg (54.04 KB, 下载次数: 60)

使用GRLDR.BIF来引导GRLDR时的情况

使用GRLDR.BIF来引导GRLDR时的情况

Shot-2011-11-05_041154.jpg (49.55 KB, 下载次数: 61)

直接用GRLDR作引导文件时的情况

直接用GRLDR作引导文件时的情况

GRLDR.BIF.rar

1.63 KB, 下载次数: 21, 下载积分: 无忧币 -2

2KB的GRLDR.BIF引导文件

2#
发表于 2011-11-5 04:38:50 | 只看该作者
GRUB4DOS目前没有光盘的引导文件grldr.mbr,现在只有通过mkisofs生成的光盘中提取引导文件grldr.bif。
这就产生一个问题:grldr.bif一定要对应相同版本的grldr。
你可能就是这个问题造成的。
回复

使用道具 举报

3#
发表于 2011-11-5 09:12:18 | 只看该作者
这个是可以答复的。简单答复:目前不支持 GRLDR.BIF 方式的加载。

要么使用 GRLDR 作为第一启动,要么由别的软件直接加载整个 GRLDR 文件到内存中,并在把控制权传递给 GRLDR 之前,设定好 CPU 的 DL 和 DH 寄存器。DL 应该是你的 BIOS 为这个 CDROM 分配的磁盘号码。DH 是光盘的分区号码。由于光盘是整盘作为一个 Volume,没有分区,所以,分区号码就是 0xFF。所以,传递的 DH 应该等于 0xFF。

等将来写出一个 grldr.noe 启动扇区(专门针对光盘格式开发)之后,再解决由别的软件间接引导 GRLDR 的问题。目前,我们只能严格要求别的软件符合上述规则才行。将来的 grldr.noe (或者不管叫做什么名字)将会解决一般性的问题,不要求别的软件符合上述规定。
回复

使用道具 举报

4#
发表于 2011-11-5 12:00:40 | 只看该作者
原帖由 不点 于 2011-11-5 09:12 发表
这个是可以答复的。简单答复:目前不支持 GRLDR.BIF 方式的加载。

要么使用 GRLDR 作为第一启动,要么由别的软件直接加载整个 GRLDR 文件到内存中,并在把控制权传递给 GRLDR 之前,设定好 CPU 的 DL 和 DH  ...

期待呀,望眼欲穿。头发都白了。快点呀
回复

使用道具 举报

5#
 楼主| 发表于 2011-11-5 12:47:19 | 只看该作者
哦,原来是这样……
回复

使用道具 举报

6#
发表于 2011-11-9 21:57:57 | 只看该作者
可以试试这里的测试版本 by yaya

大家试试看看有没有什么问题。这也是比较重大的改进。


http://bbs.znpc.net/viewthread.php?tid=6176&extra=page%3D1

一 主要更改
1. 增加了 exFAT 分区启动。
2. 把 grldr.mbr 压缩至 16 扇区。
3. 增加了从光盘根目录查找 grldr 的功能。可以把 grldr 或者 grldr.mbr 的前 2 扇区作为 cdrom 的引导代码。
   此时应当把 grldr 复制到光盘根目录。
4. 修正了1处 ext2 引导代码。此错误导致读二级间接块出现问题。
5. 增加了清除键盘缓存功能。如果第一次等待按键时按了键盘,那么第二次等待按键时缓冲区有内容,误认为已经按键。

二 一般更改
1. 合并了 FAT12(16)、FAT32、exFAT、EXT2 引导代码,总共占2扇区。
2. 程序自举原来的顺序是先硬盘,后软盘。现在更改为先入为主,失败后再交换。
3. 查询 grldr 的顺序原来是:
   1. hd0,0  hd0,1  ...  hd0,n  hd1,0  hd1,1  ... hd1,m  ...  fd0  然后再次循环。
   2. fd0  hd0,0  hd0,1  ...  hd0,n  hd1,0  hd1,1  ... hd1,m  ...  然后再次循环。
   现在更改为:
   1. hd0,0  hd0,1  ...  hd0,n  hd1,0  hd1,1  ... hd1,m  ...  fd0  mbr。
   2. fd0  hd0,0  hd0,1  ...  hd0,n  hd1,0  hd1,1  ... hd1,m  ... mbr。
4. 合并了 3 处检查硬盘分区表的代码。
5. 合并了 2 处使用 int13/02 读磁盘代码。
6. 读分区引导代码 (0-1-1) 使用了 exFAT 读磁盘代码。
7. 硬盘助手使用了存储器标记,确定是执行分区引导代码还是尝试检查下一分区。
   比使用 cf 判断直观,容易理解。
回复

使用道具 举报

7#
 楼主| 发表于 2011-11-10 01:35:54 | 只看该作者
yaya 的版本在 VPC2007中测试,直接用 GRLDR 作引导的TEST1.ISO,没有问题;但是如果用了一楼的 BIF 文件的TEST2.ISO则连 GRLDR 的信息都没出现,只在屏幕首行首字处出现一个闪烁的光标,外加屏幕中间偏右的位置出现一个魄方块(相当于2个字节大小),之后按任何键无反应。而用 GRLDR.MBR 作引导的TEST3.ISO,则出现 NO GRLDR 后就没有下文了,之后按任何键无反应——另外,在用GRLDR直接作引导的第一个TEST1.ISO中提取的2KB的引导文件作引导文件的TEST4.ISO,现在与TEST3.ISO的一样。

[ 本帖最后由 xianglang 于 2011-11-10 01:43 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-30 20:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表