guyue2011 发表于 2016-1-13 14:55:54

本帖最后由 guyue2011 于 2016-1-13 15:04 编辑

大大出手了..大概看了下..有一些疑问
1, 这个工具是不是只应用在legecy BIOS引导 + gpt 磁盘的场景下呢?

2, 工具原理是不是 利用legacy bios引导的特点, 先加载执行umbr, 然后umbr按照用户设置的启动设备顺序来查找, 而这个查找过程刚好可适应GPT分区表. 当找到grldr, 就加载执行grldr来完成进一步的引导, 之后就没有umbr的事情了?

3,如果第2点的原理没错, 理论上, umbr可以做到支持更多的引导文件, 不仅仅是grub4dos的grldr, 对吧?

4, 附件提供的grldr是不是特别修改过的呢? 可以用其他版本grldr代替吗?

5, 如果附件的grldr并没有修改过, 我觉得umbr称作"适用于GPT磁盘启动GRUB4DOS"就可能不太准确了, 因为这样, umbr就是一段支持gpt分区表格式的引导代码, 可能跟grub4dos无关了.

上述问题, 还请大大可以答疑解惑{:3_148:}


   

chenall 发表于 2016-1-13 15:03:55

并不是查找,而是安装的时候就已经定位了启动位置,umbr只是根据这些信息来来加载并启动而已.

附件的grldr是有修改过的,主要用于执行umbr安装.启动的可以是任意grldr.也可以是wee63

guyue2011 发表于 2016-1-13 15:09:50

chenall 发表于 2016-1-13 15:03
并不是查找,而是安装的时候就已经定位了启动位置,umbr只是根据这些信息来来加载并启动而已.

附件的grldr ...

哦..明白了

"启动的可以是任意grldr.也可以是wee63"

按道理, 未来甚至可以支持bootmgr等更多引导文件吧?

不点 发表于 2016-1-13 17:03:20

chenall 发表于 2016-1-13 10:08
请问一下要如何启动某个分区的PBR?

比如知道(hd0,0)分区的位置,我想直接启动(hd0,0)+1,直接加载启动好 ...

应该可以加载 PBR 启动的。需要加载 512 字节到 0000:7C00 处,并设置正确的 DL 寄存器。扩展分区里面的逻辑分区上的 PBR 是不能启动的,因为 PBR 偏移 0x1C 处的 “分区起始扇区号” 是错误的。必须纠正为正确值才能启动。然而 Umbr 只有一个扇区的代码空间,所以不可能添加纠正 PBR “分区起始扇区号” 的代码了。wee 有 63 个扇区的代码空间,代码量充足,因此能够纠正 PBR 上的 “分区起始扇区号”。

你也可以考虑加大 Umbr 的代码空间,这样功能就有可能增加了。

不点 发表于 2016-1-13 17:31:10

chenall 发表于 2016-1-13 14:03
#18
因为使用的是绝对位置,所以改名删除有时候是不影响启动的(因为文件的位置不变)



我相信你很快就会成功的,汇编语言对你来说没什么困难。

真正的困难在于,BIOS 的访问能力是有限的,许多 BIOS 只能访问 128G,不能访问后面的扇区。说不定还会有某些恶意 BIOS,故意把 BIOS 的访问能力降低到 8G 或更低。

所以,你安装的时候,应该检查扇区号,拒绝那些位于 128G 之后的扇区号。

我觉得当前要紧的事,是得找个空间来扩大 umbr 的代码量,否则,只有这一个扇区,无法让功能更加丰富。


chenall 发表于 2016-1-13 17:43:57

不点 发表于 2016-1-13 17:03
应该可以加载 PBR 启动的。需要加载 512 字节到 0000:7C00 处,并设置正确的 DL 寄存器。扩展分区里面 ...

因为这个的启动方式是绝对扇区,
也就是只要把引导扇区加载完之后再修正0X1C处的值为该扇区位置就行了,这个理论上不难.

我明天继续修改一下让它可以启动PBR,应该不需要太多代码^_^

chenall 发表于 2016-1-13 17:46:04

不点 发表于 2016-1-13 17:31
我相信你很快就会成功的,汇编语言对你来说没什么困难。

真正的困难在于,BIOS 的访问能力是有限的, ...

目前只使用INT13的4200H功能来读磁盘

发现有些电脑很正常,有些机子不正常(只能读开头的扇区,具体能读多大还需要测试.)

chenall 发表于 2016-1-13 17:47:51

不点 发表于 2016-1-13 17:31
我相信你很快就会成功的,汇编语言对你来说没什么困难。

真正的困难在于,BIOS 的访问能力是有限的, ...

这个相当于中转站,只是用来启动另一个引导程序的.

启动的信息都是固定的不需要太多功能,

我觉得一个扇区足够了.

2011yaya2007777 发表于 2016-1-13 21:26:09

一个扇区够了。直接定位grldr,直接加载,是乎不用考虑pbr的参数。

chenall 发表于 2016-1-14 14:49:30

再修改了下,现在可以直接启动某个分区了

另外直接启动GRLDR失败的可以尝试启动WEE63.MBR估计就会成功了.

因为目前读取引导代码是一次性读入的,一次性读取扇区数太多的话,有的机器是不支持的.
页: 1 2 [3] 4 5 6 7 8
查看完整版本: umbr 测试(适用于BIOS+GPT磁盘的MBR程序)