无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 不点
打印 上一主题 下一主题

准备基于 fbinst 进行再开发,请各位提供帮助

    [复制链接]
151#
发表于 2014-1-17 12:53:20 | 只看该作者
本帖最后由 linhu6682 于 2014-1-17 13:11 编辑

2014 年 1 月 15 日更新mbr_24M.img
家里电脑,主板:华硕A88XM-A测试成功,顺利进入GRLDR
单位方正电脑,文祥E3400,主板:富士康G31MXP,测试失败,屏幕没有信息显示,停顿一会儿,进入WINXP系统。
BIOS认出U盘为USB-HDD,U+能引导进入PE,Fbinst,UD启动死机。
回复

使用道具 举报

152#
 楼主| 发表于 2014-1-17 13:04:03 | 只看该作者
本帖最后由 不点 于 2014-1-17 13:10 编辑

请 liuhu6682 说说失败的现象,屏幕有没有信息显示?换用其他启动软件能否成功?能够成功启动的软件的名称以及版本是什么?

成功启动时,请截取 U 盘开头的 8M,压缩以后上载,供研究。

回复

使用道具 举报

153#
发表于 2014-1-17 14:14:03 | 只看该作者
本帖最后由 linhu6682 于 2014-1-17 14:32 编辑

8M.part1.rar (2 MB, 下载次数: 4)



我是菜鸟,不知是不是大师所要的,我用ULTRAISO以USB-HDD+方式把我心如水PE2003写入U盘,用单位方正电脑,文祥E3400,主板:富士康G31MXP,能引导进入PE,用BOOTICE-扇区编辑-从文件恢复扇区,写入2014 年 1 月 15 日更新mbr_24M.img到U盘,测试失败,屏幕没有信息显示,停顿一会儿,进入WINXP系统。我心如水PE2003写入U盘,截取 U 盘开头的 8M压缩后仍有7M多,传不上去。

8M.part2.rar

2 MB, 下载次数: 4, 下载积分: 无忧币 -2

8M.part3.rar

2 MB, 下载次数: 4, 下载积分: 无忧币 -2

8M.part4.rar

1.26 MB, 下载次数: 4, 下载积分: 无忧币 -2

回复

使用道具 举报

154#
发表于 2014-1-17 17:38:18 | 只看该作者
本帖最后由 zbkh 于 2014-1-17 17:39 编辑

不点大师,我看了你21楼的说明,因为没有bios相关基础,看起来好吃力!

但我还是想搞清楚几个问题:

1、我理解计算机引导都是从硬盘的0磁头0柱面1扇区开始的,我理解为你说的mbr0,也就是计算机都是这样设计的,但你却提到bios在读盘引导的时候可能会跳过一些扇区,从而导致将mbr写到0磁头0柱面1扇区的u盘启动失败。  那么我是不是可以这样理解:在计算机从内部硬盘引导操作系统的时候都是从0磁头0柱面1扇区开始的,这是一个规范标准,但是bios在读u盘引导的时候就没有规范标准,有可能在读取引导信息的时候不是从0磁头0柱面1扇区开始的,这种理解是否是正确的?

2、我将一个u盘在windows下整盘格式化成一个分区,我发现他们第一个分区都是从63扇区开始的,这个是不是就是一个标准呢?在第一个扇区记录了mbr和分区表,那么在第二个扇区至62扇区,它们又记录了什么信息呢?

3、如果我的1理解是正确的,那如果bios读u盘引导被设计去读第10扇区,那是不是bios会认为u盘上的第一个分区的位置就是从72扇区开始的呢???

我没有相关基础,如果问了贻笑大方的问题还请海涵!!多谢!
回复

使用道具 举报

155#
 楼主| 发表于 2014-1-17 18:01:41 | 只看该作者
linhu6682,感谢你辛苦截取 U 盘扇区。但是,你截获的扇区是从第一分区开始的,不是从 MBR 开始的。请你再截获一次,这次记住是要截取含有分区表的 MBR 扇区,从 MBR 扇区开始,截取 256 个扇区就够了。如果不懂,请用 BOOTICE 截获扇区的功能。注意:千万别毁掉你的硬盘!我们能否成功启动,不要紧;你的硬盘数据,是最要紧的。

回复

使用道具 举报

156#
 楼主| 发表于 2014-1-17 18:18:00 | 只看该作者
zbkh,抱歉,不能全部答复你的问题。请用 Google 或 百度搜索相关内容。

你的第1条,我认为你的理解基本是正确的。

第2条,既可以说是标准,又可以说不是标准。Win98 时代的硬盘通常都是这样,微软都是喜欢把 MBR 空间保留为 63 个扇区,第一分区起始于扇区号 63。但 U 盘很复杂,没有规范。即使以前有规范,也可能被破坏(甚至有可能故意破坏)。

第3条,不一定。BIOS 很混乱,不会按照某个固定模式去运行。如果 BIOS 很有规律,那么就不需要这里的 fbinst 以及新的发展了。

请自己搜索其他有关的资料。

点评

感谢大师的指导!感谢!!  详情 回复 发表于 2014-1-17 21:53
回复

使用道具 举报

157#
发表于 2014-1-17 21:53:11 | 只看该作者
不点 发表于 2014-1-17 18:18
zbkh,抱歉,不能全部答复你的问题。请用 Google 或 百度搜索相关内容。

你的第1条,我认为你的理解基本 ...

感谢大师的指导!感谢!!
回复

使用道具 举报

158#
发表于 2014-1-17 23:13:32 | 只看该作者
本帖最后由 linhu6682 于 2014-1-17 23:14 编辑

按大师的指点重新截取 U 盘扇区,不知道这次有没有错。

256.rar

1.82 KB, 下载次数: 1, 下载积分: 无忧币 -2

点评

干得不错。你再确认一下,这次的 256个扇区,与先前的 8M 是不是紧连着的。 我会研究的,并且可能会提供若干个映像让你测试。你先休息吧。  详情 回复 发表于 2014-1-17 23:28
回复

使用道具 举报

159#
 楼主| 发表于 2014-1-17 23:28:19 | 只看该作者
linhu6682 发表于 2014-1-17 23:13
按大师的指点重新截取 U 盘扇区,不知道这次有没有错。

干得不错。你再确认一下,这次的 256个扇区,与先前的 8M 是不是紧连着的。

我会研究的,并且可能会提供若干个映像让你测试。你先休息吧。
回复

使用道具 举报

160#
发表于 2014-1-18 00:00:45 | 只看该作者
本帖最后由 linhu6682 于 2014-1-18 00:57 编辑

好像不一样,有错。先前用WINHEX截取 U 盘扇区,可能操作有误,现在重新用BOOTICE 截获 U 盘8M扇区上传。终于传完了。

8M.part1.rar

2 MB, 下载次数: 2, 下载积分: 无忧币 -2

8M.part2.rar

2 MB, 下载次数: 2, 下载积分: 无忧币 -2

8M.part3.rar

2 MB, 下载次数: 2, 下载积分: 无忧币 -2

8M.part4.rar

1.3 MB, 下载次数: 2, 下载积分: 无忧币 -2

回复

使用道具 举报

161#
 楼主| 发表于 2014-1-18 13:30:06 | 只看该作者
本帖最后由 不点 于 2014-1-18 14:15 编辑

给 linhu6682 做测试的一系列测试版可能都要放在这楼了。

其他人根据自己的兴趣,也可选择测试。


更新:

系列测试1 是 24M 的大小,按照以前的方法写入 U 盘进行测试。

alter_mbr_512_byte 里面是三个 512 字节的单扇区 mbr 文件。在 “系列测试1” 写入 U 盘测试完成之后,马上就可以写入某个单扇区文件,进行测试。就是说,只有开头的一个扇区与 “系列测试1” 不同,后续的扇区保持不动。这样,连同 “系列测试1” 在内,总共就是四个测试了。

mbr_24M_00FAEB5D_FAT32.7z

150.12 KB, 下载次数: 12, 下载积分: 无忧币 -2

系列测试1

alter_mbr_512_byte.7z

655 Bytes, 下载次数: 11, 下载积分: 无忧币 -2

三个可替换的单扇区mbr测试文件

回复

使用道具 举报

162#
发表于 2014-1-19 04:29:35 | 只看该作者
我这也有台比较老的笔记本,测试了下,型号是 Haier A61,这个笔记本的 BIOS 比较老,不支持 USB-HDD 启动,在 BIOS 里面只有 USB-ZIP 的选项,用 fbinst 的时候也是要选中“标记为 ZIP 盘”才可以。

用的是84L的24M的img测试。

型号:Haier A61
U盘:某无名杂牌
主控:没有查。。。
启动后的反馈:0000 3F60 (到这里的时候有个比较明显的停顿,然后再继续显示后面的) 3F60 55AA,成功进入 grldr。

在进入 grldr 之后,转到 commandline,执行 find 命令,不出意外地被认成了 fd 而不是 hd,然后提示了一个 FAT 文件分配表的警告信息,具体的没注意,不过应该跟启动程序没有关系了,如果有需要的话再测。
回复

使用道具 举报

163#
 楼主| 发表于 2014-1-19 09:47:49 | 只看该作者
显示 0000,表示 U 盘被认成软盘,显示 3F60,表示最开头的扇区从 BIOS 那里成功接管了控制。

接下来是故意暂停 3 秒,防止一闪而过,目的是让用户看清显示信息,确认我们的代码成功获得了控制权。

暂停 3 秒之后,要尝试读 MBR,结果发现,MBR 刚好也是最开头的扇区,即序列号为 3F60,这表示 BIOS 没有隐藏磁道。然后探测 LBA 支持,发现 BIOS 支持 LBA,于是打印出 AA55

既然很顺利,那么接下来就读内置的 grldr,并启动 grldr。

进入 grub 环境以后,不该有 FAT 警告信息。可能有什么地方不正常。

其他的朋友就不必再贴这些成功的情况了。只有当失败时,才需要详细描述失败的现象。

点评

是的,可能是因为在win8下写了扇区后系统马上对U盘的分区结构作了调整,刚写好扇区是可以访问Fat32分区的,但是弹出后再重新插上win8就提示U盘没有格式化,用winhex之类的看U盘扇区果然是被系统作了改动,已经跟Img  详情 回复 发表于 2014-1-21 01:54
回复

使用道具 举报

164#
发表于 2014-1-19 10:13:10 | 只看该作者
不好意思,是我BIOS设置不当造成失败,浪费大师时间了。这台电脑BIOS有点个性,
BIOS的“USB Mass Storage Device Boot Setting”设置有三种模式:
[Auto mode]
[FDD mode]
[HDD mode]
默认是[Auto mode]
对1月15日和1月18日的总共5个img,重新写入U盘分别测试,报告测试结果:
BIOS设置为[Auto mode]模式时,5个均失败。
把BIOS设置为[HDD mode]模式时,5个均成功,显示“0080 3F60 3F60 AA55”后进入grldr。
另外,写入1月18日的4个img,在WINDOWS下提示U盘没有格式化。不能拷入东西。
回复

使用道具 举报

165#
 楼主| 发表于 2014-1-19 10:32:52 | 只看该作者
感谢 liuhu6682 提供这些信息。我认为不是你的错。既然设置为 AUTO 模式,UltraISO 的 U+ 能够顺利启动,那么,如果我们的软件不能启动,那还是不太正常的。我们应该努力让它 “正常”(如果可能的话;如果发现不可能,那就放弃)。所以,我们的测试工作应该继续做下去。大凡干任何事情,我们要么认真做好每一个细节,要么完全放弃。

所以,我想请你确认,在 AUTO 模式时, U+ 是否能够成功启动?如果能,那我们还得继续研究和测试。

1月18日的映像,修改了 BPB 的一些域,想让 U 盘被你这个 AUTO 模式识别为硬盘,结果无效。而 Windows 肯定无法识别这个 U 盘,因为 Windows 发现 BPB 的信息有异常。Windows 很娇气,它的识别能力很差。不要在乎它。

请问对于 U+ (USB-HDD+)格式的 U 盘,Windows 能识别出它的文件系统吗?这个问题也很重要,请告知。

回复

使用道具 举报

166#
发表于 2014-1-19 11:38:20 | 只看该作者
不点大师这种精神让人折服。
在 AUTO 模式时,  U+ 能成功启动。
USB-HDD+格式的 U 盘,如果不使用“隐藏启动分区”方式写入,Windows 能识别出它的文件系统。
回复

使用道具 举报

167#
发表于 2014-1-19 13:39:53 | 只看该作者
不点 发表于 2013-12-23 23:23
初步尝试,开始写代码了。目前的 MBR 扇区代码的主框架已经完成。但后续的工作仍然是很繁琐的。

目前暴 ...

不点大哥,您没想过压缩的力量吗?可以这样做:设置三部分代码:第一部分:探测CHS,在MBR的位置,然后读(比如说190-191)扇区、加载。第二部分、比如说190-191扇区放置解压代码,解压更复杂的功能。第三部分:比如说192-195扇区的代码,这段是压缩的,功能可以做的很多(有压缩不怕),然后从195-1342扇区开始加载用户引导器。
回复

使用道具 举报

168#
 楼主| 发表于 2014-1-19 14:56:20 | 只看该作者
sunsea, 这个软件的主旋律是 “启动成功率”。功能是次要的。我们缺乏的,正是启动成功率。功能方面,并不缺乏。即使功能有缺乏,也容易实现、容易填补。可以做好功能设计的人,有一大堆。而能做好启动成功率的,则十分罕见。

一个软件,如果不能在硬件上顺利运行,那么它的功能再强大、再完善,都形同虚设了。一个软件只要它被攻击,并且被强力攻击,直至被封死,那么它就成为没有实际意义的软件。花费力气,就要有用才是值得的。应该把有限的力气用在 “刀刃上”,不要浪费宝贵的精力。

grub4dos 就是这样一个软件。只要微软以及它所连带的利益集团存在下去并有着持续的控制力,那么像 grub4dos、Linux 之类的开源系统,就永远不会顺利运行。不仅开源软件不能顺利运行,闭源软件也同样不能顺利运行。只要你的闭源软件对微软不利,你的软件也注定是死路一条。

所以,目前我对 grub4dos、Linux、fbinst 等等这些东西,已经失去热情。我在观望,我在等待。我也在分析和判断。我期待着有一天,微软集团遇到强劲对手,让这个世界能够暂时走出垄断控制的阴影。

我甚至在想另外一个更大的问题。我发现微软、谷歌、苹果、小米、魅族……(此处省略一百万个公司),等等等等,所有这些公司,几乎无一例外地,都想搞垄断控制。这很可能是本质的,而无法避免。我们生活在这样一个混乱的时代,是很无奈的,恰如生活在一个战乱的时代也是很悲哀的一样。

时代会不会进步?进步到不再进行无谓的消耗?进步到大家都在生产财富而杜绝(或减少)破坏财富?这个梦想看来距离我们还十分遥远。

回复

使用道具 举报

169#
发表于 2014-1-19 22:04:32 | 只看该作者
感谢不点大师再次奋起!这是个巨大的好消息,十分具有穿透力。期待的很。
回复

使用道具 举报

170#
发表于 2014-1-20 12:40:36 | 只看该作者
能不能将GRLDR外置,可以很方便修改内置菜单
回复

使用道具 举报

171#
 楼主| 发表于 2014-1-20 18:07:44 | 只看该作者
外置失去成功率,没有意义。

可见区位于 24M 以后,这个区域的 grldr 有可能无法被 BIOS 访问到。

开头的 8M 空间是处于 “有利地势”,而 grldr 就位于这 8M 的前端,在 1M 以内,甚至也在 720K 以内。这样,在最坏的情况,BIOS 只有 720K 的访问能力,此时也能成功启动 grldr。最起码用户不至于抱怨 grldr 死机了,说 grldr 这个软件是垃圾。恶意 BIOS 攻击者所要达到的目的(之一),就是让人们痛恨开源软件,让人们认为开源软件是垃圾。

你可以把你的菜单外置,取名为 menu.lst,放在可见区 FAT32 的根目录,这样就会被内置菜单调用。

回复

使用道具 举报

172#
发表于 2014-1-20 20:07:02 | 只看该作者
本帖最后由 mygamexxx 于 2014-1-20 20:25 编辑

同样的菜单,如果内置入grldr,能够显示中文,放在外置菜单,使用configfile /menu.lst调用,却不能显示中文。
所以有上面的一问。

我是用grldr0.4.6a作中转进行试验。
用24M的启动后进入命令行,chainloader /grldr6
如果将菜单内置入grldr6,可以正常显示中文,
如果grldr6的内置菜单为configfile /menu.lst,同样的菜单,中文显示乱码。
grldr6已内置中文字体。

1.jpg (6.48 KB, 下载次数: 125)

1.jpg

2.jpg (24.8 KB, 下载次数: 105)

2.jpg

4.jpg (30.19 KB, 下载次数: 109)

4.jpg

5.jpg (9.39 KB, 下载次数: 111)

5.jpg

6.jpg (25.21 KB, 下载次数: 109)

6.jpg

7.jpg (32.75 KB, 下载次数: 108)

7.jpg

8.jpg (7.01 KB, 下载次数: 104)

8.jpg
回复

使用道具 举报

173#
发表于 2014-1-20 20:29:23 | 只看该作者
本帖最后由 mygamexxx 于 2014-1-20 20:30 编辑

再试一下
回复

使用道具 举报

174#
发表于 2014-1-20 20:56:42 | 只看该作者
fbinsttool 会自动嵌入菜单的中文字体,你的menu.lst 只有汉字,没有字体,所以乱码
回复

使用道具 举报

175#
 楼主| 发表于 2014-1-20 23:04:55 | 只看该作者
mygamexxx,正如楼上 jack95 所说,是你自己的失误,你的 menu.lst 没有带字库。

在 grub4dos 发布的软件包中,就有一个示例用的 menu.lst 文件,你为何不试试这个文件呢?示例文件尾部的字库前面还专门添加了注释。

回复

使用道具 举报

176#
发表于 2014-1-21 01:54:21 | 只看该作者
不点 发表于 2014-1-19 09:47
显示 0000,表示 U 盘被认成软盘,显示 3F60,表示最开头的扇区从 BIOS 那里成功接管了控制。

接下来是 ...

是的,可能是因为在win8下写了扇区后系统马上对U盘的分区结构作了调整,刚写好扇区是可以访问Fat32分区的,但是弹出后再重新插上win8就提示U盘没有格式化,用winhex之类的看U盘扇区果然是被系统作了改动,已经跟Img里面的数据有差异了。所以我猜应该是win8对U盘的分配表的部分作了些调整导致的。

不知道这是我这里的个案还是其他人也会这样,这问题会不会造成用这个启动程序的U盘以后都会被系统自动调整导致无法访问可见分区?
回复

使用道具 举报

177#
发表于 2014-1-21 06:38:59 来自手机 | 只看该作者
本帖最后由 mygamexxx 于 2014-1-21 06:58 编辑

grldr6自身已经内嵌中文字体,menu.lst还要重新加载字体吗

点评

grldr 已经超过 200K,字体文件达 3M 多,压缩以后也有 1M,怎么可能全部嵌入到 GRLDR 中呢?  详情 回复 发表于 2014-1-21 07:41
回复

使用道具 举报

178#
 楼主| 发表于 2014-1-21 07:41:23 | 只看该作者
mygamexxx 发表于 2014-1-21 06:38
grldr6自身已经内嵌中文字体,menu.lst还要重新加载字体吗

grldr 已经超过 200K,字体文件达 3M 多,压缩以后也有 1M,怎么可能全部嵌入到 GRLDR 中呢?

回复

使用道具 举报

179#
发表于 2014-1-21 07:59:41 | 只看该作者
本帖最后由 mygamexxx 于 2014-1-21 08:01 编辑

使用内置菜单时能显示中文表明已内嵌中中文字体。unifont.hex就是从grldr6中导出的中文字体。

1.jpg (8.86 KB, 下载次数: 107)

1.jpg

2.jpg (9.52 KB, 下载次数: 99)

2.jpg

点评

加一句:graphicmode -1 800 600开启VBE试试  发表于 2014-1-21 09:29
回复

使用道具 举报

180#
发表于 2014-1-21 09:23:42 | 只看该作者
不点老师,问个问题,16G的U盘怎么配置,是要自己重新覆盖BPB和FAT结构吗?还是可以通过(比如说)修改源代码来处理?如果改源代码,改哪里?英语、汇编很烂的说(我只会VC)还有,userdata是干什么的?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-19 16:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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