无忧启动论坛

标题: G4D在CD中的识别(bd)的问题 [打印本页]

作者: xianglang    时间: 2011-11-5 04:28
标题: G4D在CD中的识别(bd)的问题
使用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, 下载次数: 55)

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

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

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

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

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

GRLDR.BIF.rar

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

2KB的GRLDR.BIF引导文件


作者: zhaohj    时间: 2011-11-5 04:38
GRUB4DOS目前没有光盘的引导文件grldr.mbr,现在只有通过mkisofs生成的光盘中提取引导文件grldr.bif。
这就产生一个问题:grldr.bif一定要对应相同版本的grldr。
你可能就是这个问题造成的。
作者: 不点    时间: 2011-11-5 09:12
这个是可以答复的。简单答复:目前不支持 GRLDR.BIF 方式的加载。

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

等将来写出一个 grldr.noe 启动扇区(专门针对光盘格式开发)之后,再解决由别的软件间接引导 GRLDR 的问题。目前,我们只能严格要求别的软件符合上述规则才行。将来的 grldr.noe (或者不管叫做什么名字)将会解决一般性的问题,不要求别的软件符合上述规定。
作者: lizhenduo    时间: 2011-11-5 12:00
原帖由 不点 于 2011-11-5 09:12 发表
这个是可以答复的。简单答复:目前不支持 GRLDR.BIF 方式的加载。

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

期待呀,望眼欲穿。头发都白了。快点呀
作者: xianglang    时间: 2011-11-5 12:47
哦,原来是这样……
作者: chenall    时间: 2011-11-9 21: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 判断直观,容易理解。
作者: xianglang    时间: 2011-11-10 01:35
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 编辑 ]




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3