无忧启动论坛

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

兔年大PK:兼容性最高的USB启动方式,fbinst or NTLDR?

[复制链接]
61#
发表于 2011-2-4 19:26:50 | 只看该作者
回复

使用道具 举报

62#
发表于 2011-2-4 23:30:01 | 只看该作者

回复 #60 2010wukong 的帖子

请问:兄弟你的那台电脑,能启动windows NT5.0的系统吗?
我之前也有见过你所说的情况,但那不是引导管理程序的问题,而是U盘的问题,
过程如下:
在前一台电脑上用我U盘以USB HDD模式启动,并成功进入PE系统,并安装好windows系统,重启后,移除设备;

到下一台电脑上还是用我U盘以USB HDD模式启动,在BIOS开始加载启动设备,这里,就卡住,没有反应了,黑屏了(当时我也以为是那机器不支持NTLDR的启动模式呢,因为在前一台电脑还用得好好的,怎么一下子就用不了,又把U盘插回前一台电脑,重新启动也能正常加载引导菜单呀,我旁边的同事见到这情况,笑着说:U盘坏了,接触不良;我说:怎么可能。之后,他把他自己的U盘插上那台机器,重启动,就出引导菜单了,而我的U盘在那台电脑上,怎么接,都是黑屏,就是不出引导菜单。)我们俩的U盘,就只是品牌不一样,里面的数据,是完全相同的!像这种情况,我不能解释为那台机器不支持以USB HDD模式加载NTLDR吧?

点评

的确,不同的U盘主控会有不同表现。  详情 回复 发表于 2015-7-23 06:22
回复

使用道具 举报

63#
发表于 2011-2-5 13:59:49 | 只看该作者
新技术的好一点
回复

使用道具 举报

64#
发表于 2011-2-5 18:35:09 | 只看该作者
810、815主板这2个都启动不了吧
回复

使用道具 举报

65#
发表于 2011-2-5 19:05:11 | 只看该作者

回复 #37 2010天月来了 的帖子

其他的没试过,我用手机TF卡,进行FBINST后,可以成功U启,手机仍可认出可见区内保存的MP3,电子书等手机存入的数据。我的手机是一个老机子,非智能的。
回复

使用道具 举报

66#
发表于 2011-2-5 22:21:08 | 只看该作者
我不得不痛苦地说,不能赞同不点大侠的部分思路。
就事论事而言,我认为本次投票最终结果,参考价值并不大。

1、问题的实质是什么? 42#已经接近了: "bios对USB设备(应改为UMSD,
--usb mass storage device海量存储设备,含U盘、移动硬盘、USB-CD/DVD等
--更为确切)的扇区数据读取并正确引导"。

对U启而言,fbinst、ntldr甚至CHS、MBR、PBR不是最重要的线索,或者说,它们
都是表面现象---建立在BIOS伪造基础上的表面现象。


2、关于RMPrepUSB
RMPrepUSB是个制作U启/ZIP盘的工具软件。其基本原理是根据分区表、MSDOS
之类的字符串做调整,影响BIOS对U盘的识别,以达到把U盘识别成ZIP的目的。

如果说识别成ZIP成功率高,那是有原因的---其原理与AMI BIOS对ZIP盘识别算法
规则
暗合。但RMPrepUSB这套算法对phoenix BIOS就难说了,phoenix BIOS采用的
是另一套算法。


3、对“这个投票不是停留在理论层面,而完全是为了统计现实的成功率情况”
不同想法

统计现实的成功率,缺失了最重要的前提条件---在哪种BIOS下。
不同的BIOS,对USB-DISK(相对USB-CD/DVD的概念,包括FD/ZIP/HD等)处理是不同的。
(这不是因为没有统一的标准,而是USB标准规定得太笼统---来自SCSI的沉重历史
包袱造成的)。

试问,拿Phoenix BIOS下fbinst的表现,与AMI BIOS下ntldr的表现去比较兼容性,有
可比性么? 结论能正确么? ---我深表怀疑。


而理论,我们掌握得并不够。很多模糊认识、甚至错误认识(比如认为U启没有统一标准),
正是源于这里。有用的理论有哪些? 第一,BIOS boot规范、UMSD for bootability规范、
UFI指令集规范、CD boot规范等一系列标准;第二,也是最直接、最重要的--BIOS源代码
(网上可以找到)中关于USB启动部分的学习、体会。

(当然,这个理论学习的难度非常大,我耗费了几年时间,也只是看到了入门的门而已。
但它却偏偏又是唯一通向正确认识U启问题的道路,绕不过去的。bean后来也愿意研究
有关内容,我想,是出于同样的原因)

4、关于USB-CD/DVD和量产。
我不理解,不点大侠为什么要回避它们。在我看来,它们的框架没有什么神秘的、不可逾越
的障碍,把它们的问题理清了,有助于指导U启。

(1)U盘量产出的USB-CD/DVD,与真正的外置USB-CD/DVD没有什么神秘的区别。BIOS按照
UMSD for bootability规范确定是CD/DVD这种设备类型,按照El torito规范来引导CD。

(2)对BIOS BOOT而言,量产后的U盘识别有个坎:Multi-Lun支持。
大多数情况下,U盘出厂时,是单Lun移动盘,量产后,变成了两Lun、甚至三Lun盘。

这种盘,BIOS要参照BIOS boot规范附录E pnp head的要求,(就象一块SCSI卡上同时
串接HD、CD多种设备那样),用链表/数组来实现支持,编程复杂度陡然上升。

问题出来了,老BIOS/有缺陷的BIOS很可能:不支持USB-CD、或者不管你是CD还是DISK,
压根就不支持Multi-Lun、或者对Multi-Lun支持得不够完美。

事实上,不仅BIOS,就是到了OS阶段--比如Win2000,也是打了几个SP补丁后、Lunix
也是在2.x内核且打开有关选项后,才能对Multi-lun提供支持。


5、我觉得,有兴趣的同学,可参考一些老帖,对入门有帮助:

讨论:bios识别U盘以及过程,具体是什么?
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=127538


关于USB-DISK/CHS的讨论
http://bbs.znpc.net/viewthread.php?tid=5872
回复

使用道具 举报

67#
 楼主| 发表于 2011-2-6 01:10:46 | 只看该作者
>>> 你好,对fbinst/ntldr U启投票,我有不同看法。欢迎指教。


wuwuzz兄,抱歉,实在无法指教。我对你所写的内容感觉很陌生,也理解不了多少。你这些文字,让别人看是可以的,但就不要让我看了。抱歉,我以前已经看过你的这类文字了,很熟悉。但我不能给你指教。谁能理解你,你就让他们这些人给你指教吧。

每个人来到论坛上都是自由的。他都有表达自己的见解并争取更多支持者的自由。

你有你的自由,我有我的自由。

你可以争取到你的支持者,我可以争取到我的支持者。

你能说服几个人支持你,那是你的缘分。我能说服几个人支持我,也是我的缘分。

不能强求,不可勉强。

你如果觉得你的理论很可靠,你可以在论坛上加以推广,看看有多少人给了你认同。如果你觉得认同的人不太多,你也可以到国外的论坛上去推广,争取到更多的认同者。

真理掌握在谁的手上?很难说。也许谁都没有掌握真理。

不过,大家都有表达自己见解的自由。都有争取支持者的自由。

如果你的理论真的很棒,那终究会得到支持者的,谁也不能永远地压制它。

真金不怕火炼。只要你的理论确实是真金,就一定能够经得起时间的考验。
回复

使用道具 举报

68#
发表于 2011-2-6 08:46:19 | 只看该作者
憋了好几天了,其实在这个帖子刚发出来,就看到了,就有些话想说,顺便占个沙发,但怕引起争论。但是今天把这几页看完,就想一吐为快。

为什么USB启动方式有这么多种?

众所周知,是因为USB启动标准不统一,USB主控芯片和主板BIOS处理方式不同引起的,有USB-ZIP的,有USB-Floppy的,

有USB-CDROM,有USB-HDD的(即使USB-HDD也分好几种)。Fbinst就是来处理这个混乱状况的,先侦测出启动方式,再以这

种方式启动。

造成这种混乱的主要原因就是USB标准和软件巨头微软没有重视USB启动,甚至到现在微软的操作系统分发的时候也是以光

盘和ISO文件分发,造成USB启动方式各显神通。

启动方式兼容性最好的当然首推NTLDR,凭着这数年贴着“Designed for Windows XP”标贴的无数硬件这一项就无人能

及,但是在USB启动中就不一定了,因为NTLDR的先天不足(微软从没打算让它干这活)。

抛弃速度方面,Fbinst确实是最好选择,对于不同的启动方式,选择最佳的方式来启动,但是速度实在不能忍受(可能跟

我的硬件有关)。

所以我的结论就是,目前兼容性最高的USB启动方式是Fbinst,但是未来可能是bootmgr,因为软件巨头微软稍一重视,就

会有很大变化,毕竟养的研究院不是吃素的。



[ 本帖最后由 Zokor 于 2011-2-6 09:39 编辑 ]
回复

使用道具 举报

69#
发表于 2011-2-6 09:56:07 | 只看该作者
回复68#:

在这里,我不得不重复以往的老帖内容,来纠正、澄清认识:

一、有U启标准,并且是统一的。与我们关系最近(但不是全部)的标准
就是:usb mass storage for bootability spec。

U启标准并非很多人想象中的那样:是一本包罗万象、名字叫《USB启动规范》
的白皮书。相反,不可能也无必要出这样一本书。原因非常简单:

标准是随着技术进步逐渐发展的,后来者如USB,出于兼容、保护过去投资等
多种因素,不可能全部推翻以往关于BOOT的标准,相反,它要尽可能多地以
旧标准为基础,以“补充说明”的方式来出一本书,增添USB的相关内容。

也就是说,usb mass storage for bootability spec是关于USB的补充说明,
而BOOT部分还是要使用老标准: 比如USB-CD boot,要沿用IDE时代就有的
El torito CD boot标准;DISK boot相关内容还是要到老的BIOS/INT13标准中去找。



二、U启标准存在的问题

最直观的,就是对DISK的说明比较笼统,导致不同BIOS对FD/ZIP/HD区分算法不同。
这没办法,责任不在USB,而恰恰是源自对老标准SCSI的保留。

USB的指令集源自SCSI,正是SCSI对DISK的说明比较笼统,到了USB这里,
成了历史遗留问题。有关说明,参考http://bbs.znpc.net/viewthread.php?tid=5872

三、fbinst本质上是对U盘DISK CHS问题的改进,以期望BIOS能正确定址。
其他关于它的讨论,我不发表意见。


[ 本帖最后由 wuwuzz 于 2011-2-6 10:18 编辑 ]
回复

使用道具 举报

70#
发表于 2011-2-6 09:59:38 | 只看该作者
回复67#:

一、“你好,对fbinst/ntldr U启投票,我有不同看法。欢迎指教。”,
这则短信是出于礼节提请不点大侠关注、讨论技术而发,不点大侠
没兴趣并不重要。因为66#内容是公开、自由发表,有兴趣的
同学自会参与,没兴趣的谁也不能强迫人家参与。

二、我在66#发的那些内容,自认还不是理论,而是学习体会、一种看法。
回复在不点的帖子里,原因是:心急。

彻底搞清U启问题,只有直插本质--BIOS内部到底是怎样处理U启的。
不客气地说,老是在fbinst/ntldr/mbr/pbr...这里打转是隔靴挠痒、
误入歧途。

试问,本坛以往发的诸如“是fbinst好还是U+好”、“是量产好还是U+好”...
“是XX好还是YY好”这样的帖子还少吗? --- 能有什么结果,它根本就是个
无约束条件的伪命题,无解。我不希望本坛讨论还停留在这种层次上而没有
更深进展。

当然了,你也可以认为: 我wuwuzz是在利用各种场合,孜孜不倦地宣传自己的
观点,无所谓。


三、关于争取支持者的问题

如果本坛赞同我观点的人非常少,我不会介意。

无他,各人时间、精力、兴趣、资料占有...等不同,术业有专攻,谁也不是全才,
认识始终会有局限。包括我现在的观点,就一定是“终极真理”了吗? 不是。无非是
搜到的资料多些,眼界开阔点罢了。

我不会“有意识”地跑到国外论坛去推广我的观点,没有意义。当年哥白尼
的日心说能有多少人接受、认可? 与眼见的地球现象不一样呗。同样的道理,
现在甲观察到了fbinst成功率高现象、乙观察到了ntldr成功率高现象,你要
处心积虑地去推翻他心中的推论,很困难。

我现在能做的,就是在这里表达观点,分享自己的学习心得,期望后来者能
少走认识上的弯路,仅此而已。至于接受,仁者见仁,智者见智。


[ 本帖最后由 wuwuzz 于 2011-2-6 10:33 编辑 ]
回复

使用道具 举报

71#
发表于 2011-2-6 10:08:16 | 只看该作者
想不到一个这样的投票,也会在这个论坛激起这么大的反映。
当然,“不点”大师是最主要的原因,另外也可以看出无忧真是一个多元化的地方。
回复

使用道具 举报

72#
发表于 2011-2-6 12:27:13 | 只看该作者
wuwuzz同学,

其实我有个很傻得问题想问你:   u启/u盘/u主板 能不能越权 变成int19一样启动 ?
回复

使用道具 举报

73#
发表于 2011-2-6 14:15:02 | 只看该作者
原帖由 huangdi168 于 2011-2-6 12:27 发表
wuwuzz同学,

其实我有个很傻得问题想问你:   u启/u盘/u主板 能不能越权 变成int19一样启动 ?


我个人认为:
现实中的UMSD(含U盘、USB-CD/DVD、USB-HDD、USB-ZIP等)不能越过挂载INT13这个步骤。

如果想直接使用INT19引导某USB设备,则需要花费很大代价---BIOS厂商、该USB设备生产商
相互配合,各自都写相关支持代码,把它做成BIOS BAID或BEV设备才行。这样的USB设备,
我没实际见过。
回复

使用道具 举报

74#
发表于 2011-2-6 16:47:41 | 只看该作者

回复 #70 wuwuzz 的帖子

非常同意70楼的观点,fbinst/ntldr/mbr/pbr的好坏其实是在隔靴搔痒,只抓住皮毛,没抓住本质。
评论哪个usb驱动软件的好坏的意义并不大,可能谁都无法说服另一个
还不如大家测试评价主板bios的好坏有意义,用一个标准的启动镜像,大家在各类主板上测试,成功的报上自己的主板品牌和bios版本。
比如微软现在usb启动的态度也很明确,用一种标准的usb启动制作方法(diskpart分区和格式化u盘,能够成功启动pe),然后测试主板usb启动,不成功的就说明bios不符合标准,这类主板就不值得去支持

[ 本帖最后由 fujianabc 于 2011-2-6 16:50 编辑 ]
回复

使用道具 举报

75#
发表于 2011-2-6 19:25:51 | 只看该作者
原帖由 fujianabc 于 2011-2-6 16:47 发表
非常同意70楼的观点,fbinst/ntldr/mbr/pbr的好坏其实是在隔靴搔痒,只抓住皮毛,没抓住本质。
评论哪个usb驱动软件的好坏的意义并不大,可能谁都无法说服另一个
还不如大家测试评价主板bios的好坏有意义,用 ...


一、欢迎fujianabc老师参与讨论;

二、我对第2段、第3段内容的想法。

说实话,我最初看到这两段内容时,犹豫了很久,思绪很混乱,找不到合适的语言来回复。

1、标准镜像、MS-diskpart这部分DISK相关内容,我不熟悉,就按您的设想来;

2、BIOS和主板。我认为,应简化思考。
BIOS品牌: 以Phoenix、AMI为主,一来它们是大厂、应用广泛、许多标准是它们起草的;
二来,它们的学习版源代码有流出,易对照检查。其他,象Award已被Phonenix兼并,
不作考虑,百敖(?似乎少见);而DELL、HP、IBM等为辅(它们的BIOS似乎是自己开发、
专用的?)
BIOS版本:不多作要求,假设某品牌BIOS U启相关算法变动不大。

主板品牌:这个不予考虑,不用报。看BIOS就行了。

3、标准U盘。

这一点,是我看到“测试主板usb启动,不成功的就说明bios不符合标准,这类主板就不值得去支持”
想到的。这个说法有待商榷。U启失败不一定是BIOS的责任:因为如果U盘固件有Bug的话,提供给BIOS的
信息就会有误,导致BIOS出错。这方面是有实例的:AU6983主控。

所谓标准U盘,主要是指:其主控固件比较好地遵守了SCSI/UFI指令集标准,没有给BIOS添乱;
其Flash硬件品质比较优良,不会出现莫名其妙的读写错误。

我倾向:容量4G以下,UP10/UP12主控的老宇瞻、SMI321主控的老朗科U215、SK6211BA主控的老金士顿。
这几个,我用USB协议分析软件跟踪过数据流,还是相对较好的。

4、USB-CD/DVD制作限制。
如果想测试量产的USB-CD/DVD,建议量产单CD/DVD,不要剩余空间,以排除multi-lun影响,更接近
真正的外置USB-CD/DVD驱动器。



[ 本帖最后由 wuwuzz 于 2011-2-6 19:30 编辑 ]
回复

使用道具 举报

76#
发表于 2011-2-6 20:28:30 | 只看该作者
据说BIOS厂家故意打压开源
回复

使用道具 举报

77#
 楼主| 发表于 2011-2-7 07:44:30 | 只看该作者
>>> 当然了,你也可以认为: 我wuwuzz是在利用各种场合,孜孜不倦地宣传自己的观点,无所谓。

不知道为什么,看你这句,总觉得有问题。

首先,你试图揣度我的意思。并且是以一种奇怪的思维方式,那含义似乎是说,我不希望你做某某事。我说,这可不是我的真实意思。你猜度错了。你是误会了。导致你误会,我可能也有责任,可能是我的帖子让你有这种感觉。

其次,恰恰相反,我认为,如果一个人有着很重要的认识、发现,这些认识和发现是纠正其他人的错误的,那么,他有责任、有义务来大力宣传推广,否则,他就是愚蠢的,是不合格的一个现代人。就是说,我认为,这本来就是正当的。而你的帖子却把这当成是不正当的了,我认为,你这是错误的。或者,如果你认为我是那样的想法,正如你揣度的那样,那你也是误会了我。假如我真的有那么糟糕的话,我觉得我就没有资格在这里讨论问题了,因为我觉得我的档次、水平也太低了。我认为有些东西是起码的常识,我作为一个讨论者,完全应该具备的。如果不具备,很难与大多数人沟通。

如果我没理解错的话,你的意思是,你认为我不希望你宣传你的观点。恰恰相反,我认为你应该“利用各种场合,孜孜不倦地宣传自己的观点”。我本人究竟赞成不赞成你的观点,与我支持不支持你宣传你的观点,完全是两码事。如果你混为一谈,那是你的错误,当然也可能是我的某个错误,导致你误会了我,那样的话,很抱歉。

我可以反对你的观点,但我绝对支持你“宣传你的观点”,这是你的权利,这是你的自由,我无权剥夺你,任何人也无权剥夺你。但我究竟支持不支持你的观点,那完全是另外一回事。我有我的自由。我既没说支持你,也没说不支持。我纯粹是没兴趣(对于你所讨论的那些技术内容而言),超出我的知识范围,而且我也不想接触那些内容。如此而已。我有我的上述自由,正如你有你的一切自由一样。你完全没必要在乎谁是什么想法,任何一个人,都挡不住你。有的是时间,有的是论坛,天地广阔,任你飞翔驰骋。

我不希望在你和我之间继续有类似的误解发生了。如果继续存在,恕我不再应答,为的是避免无意义的争论。

gongjc 版主说,无忧是一个多元化的地方。很赞成。多元化的意义就在于,要容许不同意见。不要强迫别人的意见必须与自己的一样,如果不一样就把对方当作敌对的。那样的话还真的不好了。尊重反对者,才是一个合格的现代人,才是一个合格的“无忧论坛”的会员。如果我没做到的话,那很遗憾。人非圣贤,孰能无过?如果我一不留神做错了的话,向各位道歉,欢迎批评指正。

是的,我不强迫别人。别人也不能强迫我。这才叫公平。看到别人的什么想法与自己的不一样,是感到痛苦呢?还是感到平淡无奇?我认为,不应该感到痛苦,而应该感到很平常。如果你感到痛苦,你就会试图说服对方,一旦说服不了,你会更加痛苦。我认为,比较合适的做法是,尽你的最大努力,能达到什么效果,就达到什么效果,不可强求。尊重别人的一种体现就是,给别人选择的自由,而不要强迫别人。

补充几句:不知你是否注意到,我很少参与讨论有关此类的技术话题。我对待你的这些讨论,与对待探月或者文学一样,都属于没兴趣。和我们中的其他人一样,我也不想被强制讨论某个不感兴趣的话题。谁要是有意强迫我,那是他的错。同时,他也是很难如愿的。
回复

使用道具 举报

78#
发表于 2011-2-7 07:49:44 | 只看该作者
新年大吉,合家欢乐!!

无解.JPG (29.89 KB, 下载次数: 305)

无解.JPG

评分

参与人数 1无忧币 +2 收起 理由
fujianabc + 2 原创内容

查看全部评分

回复

使用道具 举报

79#
发表于 2011-2-7 10:41:53 | 只看该作者
原帖由 2010lqbi 于 2011-2-7 07:49 发表
新年大吉,合家欢乐!!


呵呵,老兄有才。只是用U盘图标指代不点大侠,用BIOS图标指代我,有点汗ing......
我发个涂鸦,解释一下:




事实上:

一、在整个U启过程中,BIOS和U盘(固件)一问一答,密不可分,我是对双方都想了解。

二、不点大侠和我的目标是一致的,都在探求: 如果U启时grub/fbinst执行有问题,
其原因是什么? 如果说有不一致的地方,我想,那就是分析思路有所不同:

不点大侠可能更关注最终结果。如果最终结果看似不正常,则根据种种迹象反推,一直
追踪到BIOS,推测其可能做了什么手脚。

而我呢,则直接从底层入手,想知道U盘和BIOS到底密商了什么。为此,我试图:
1、学习理解他们的会话语言(UFI/SCSI指令);
2、他们谈了什么(发了哪些SCSI指令);
3、最终结果是怎样形成的。
如果SCSI指令执行结果看似符合逻辑,BIOS怎样处理,形成怎样的最终结果;
如果SCSI指令执行结果看似不符合逻辑,BIOS又做了哪些修改,拼凑出个什么样的最终结果,
其修改规则是什么。

在我看来,只有这样,才能彻底弄清U启的理论问题。在实践上就可以:在我们能掌控的范围内,
做有“针对性”的调整应对,提高BOOT成功率。
回复

使用道具 举报

80#
发表于 2011-2-7 18:05:52 | 只看该作者
NTLDR是系统自带,很容易获得,我个人认为......
回复

使用道具 举报

81#
发表于 2011-2-7 19:21:39 | 只看该作者
下面以一个USB-CD启动失败原因分析实例,直观地说明我所谈论的方法。
这个例子我以前在数码之家论坛发过,现在重新整理。有些图未重新截取,
仍沿用老的。

一、错误现象
AU698X主控、爱国者U盘,量产成USB-CD。
联想某型本本/Phoenix   BIOS识别成CD,启动失败,
HP某型台式机/AMI       BIOS识别成DISK,启动失败。

-------------------------------------------------------------------
二、准备

分析USB-CD启动,有2个检查要点:
1、确认是USB-CD设备,由USB mass storage for bootablity规范解决;
2、CD要符合bootable CD规范--ANSI EDD-4的要求。
(注释:最初的bootable CD规范是El torito,由于最新版本的ANSI EDD-4规范
修订、合并了El toriro,因此,在这里我选用了EDD-4,使用最新条文)

下面的图1,是USB协议分析软件捕捉到的U盘与主机间的数据流,
(BOOT期间就是U盘固件与BIOS之间的会话情况)。其中,CDB是指命令块,方向
是主机(BIOS端)-->U盘; DI是指data in,方向是U盘-->主机。


                        图1


三、检查分析


1、第1要点的检查:

主机端发出查询指令,U盘固件按USB mass storage for bootablity规范
要求回应。
回应的内容就是第1段05 80 02 02....共36字节。其中第1字节
是设备类型说明,其值
是05(16进制)。05h按照USB mass storage for
bootablity规范的定义,是指CD-ROM设备,
见图2。


[ 本帖最后由 wuwuzz 于 2011-2-7 19:40 编辑 ]
回复

使用道具 举报

82#
发表于 2011-2-7 19:24:57 | 只看该作者


                               图2
                     
由此,第1个要点检查通过。


2、第2要点的检查:
根据EDD-4的说明,CD/DVD使用的是2K字节扇,DISK(软/硬盘)使用512字节扇(图3)

                     图3

如果使用仿真磁盘模式的可引导CD/DVD(ISO),则:BIOS负责把CD/DVD的2K字节扇仿真
(转换)成磁盘用的512字节扇(虚拟扇)。如果使用非仿真模式的CD/DVD(ISO),则主要由
引导程序完成定址工作。

我们重新来看图1,主机端发出读容量Read Capacity指令,U盘固件回应8字节包:
00 06 46 57     00 00 02 00,其含义在USB mass storage for bootablity规范
中有定义,见下面图4:


                                图4

后4个字节是指扇区大小,16进制的02 00换算成10进制,是512。很明显,这个数值对
CD/DVD而言,是错误的,正确的数值应为2K,16进制是08 00。

-----------------------------------------------------------------------------

四、结论

1、BOOT出错原因:AU698X的量产工具/固件有BUG,其量产制作出的CD格式有问题,不符合
bootable CD规范要求;

2、推论一:Phoenix BIOS遵循了相关标准。体现在:按USB mass storage for bootablity
规范定义确认出CD设备;按EDD-4规范要求试图从2K字节基出发来定址计算(但由于AU698X
主控固件实际是512字节基,最终定址失败,BOOT失败)。

3、推论二:AMI BIOS没有按照USB mass storage for bootablity规范来确定CD设备,相反,
它是以512字节扇来推论设备类型是DISK。由于U盘数据实际是按ISO格式组织的,所以定址
计算
也没能成功,BOOT失败。



[ 本帖最后由 wuwuzz 于 2011-2-7 21:01 编辑 ]
回复

使用道具 举报

83#
发表于 2011-2-7 19:25:18 | 只看该作者
在无忧这么久,有两点特别深刻:
1、xxx万能、最好、第一
2、硬件厂商故意打压开源软件(当万能的东西遇到问题时...)
回复

使用道具 举报

84#
 楼主| 发表于 2011-2-7 20:40:53 | 只看该作者
谢谢大家互相的理解、尊重、和谐。大家继续吧,畅所欲言,没有什么忌讳。

嗯............ 最好不要停留在理论阶段,而要进行实干。做出一个什么东东出来,好让大家有个感性认识。让大家得到实惠,那更有说服力。如果不成熟,也可以让大家测试,逐步完善。

总之,光是这么说说,感觉距离最终用户比较遥远。希望有人做出成品,交给大家测试。否则,如果有人挑剔,说你这是拿空头理论吓唬人,似乎也不容易反驳。
回复

使用道具 举报

85#
 楼主| 发表于 2011-2-7 21:02:30 | 只看该作者
原帖由 xiaohaizi02010 于 2011-2-4 02:24 发表
grldr转ntldr


前面说了,不要去管主程序是 grldr 还是 ntldr,而着重要看 MBR 上是谁的代码,那么成功就划归谁。这样应该不会有太多的歧义了。
回复

使用道具 举报

86#
发表于 2011-2-7 23:17:45 | 只看该作者
原帖由 不点 于 2011-2-7 20:40 发表
嗯............ 最好不要停留在理论阶段,而要
进行实干。做出一个什么东东出来,好让大家有个
感性认识。让大家得到实惠,那更有说服力。如果
不成熟,也可以让大家测试,逐步完善。


总之,光是这么说说,感觉距离最终用户比较遥远。
希望有人做出成品,交给大家测试。否则,如果有人
挑剔,说你这是拿空头理论吓唬人,似乎也不容易反驳。



你到底想要干什么? 编程PK、分个高下么?

一、我在70#、79#已经说得很清楚了:

当U启失败、寻找原因时,老是在fbinst/ntldr/mbr/pbr...打转
是隔靴挠痒。更彻底的方法是直接分析BIOS-U盘之间到底做了什么。

81#-82#就是这种方法的“实干”举例。
“实干”结果就是: 找到了AU698X主控U盘USB-CD启动失败原因。
指导意义就是:如果想做USB-CD,应尽量避免使用这种U盘。

如果你认为我是在空头理论吓唬人,那就烦请你开门见山,直接
从“BIOS/USB/BOOT技术角度”挑剔反驳,哲学讨论就不要再放上
去了。


二、“实干、做出一个东东”

我承认,我的水平很差很差,与G4D、fbinst的开发者相差十万八千里。
但要说“实干”、“做出一个什么东东”,我问心无愧:我尽自己所能
去做了。

下面就是证明:

bean开发了burg usb/pss模块。由于种种原因,AMI BIOS下的测试没有
最终完成。当时我在bean最初源代码基础上,做了修改,编译出新模块。
链接就是新模块下载地址:

http://www.burgloader.com/bbs/index.php?topic=108.0
burg usb模块测试版(AMI BIOS,buldr/fba)

后来的实践说明,bean最初的思路是正确的、我的设想是错的。新模块
虽然失败了,但她仍然有意义:证明有些路在AMI BIOS下走不通。


[ 本帖最后由 wuwuzz 于 2011-2-7 23:37 编辑 ]
回复

使用道具 举报

87#
 楼主| 发表于 2011-2-7 23:34:01 | 只看该作者
>>> 如果你认为我是在空头理论吓唬人,那就烦请你开门见山,直接从“BIOS/USB/BOOT技术”挑剔反驳,哲学讨论就不要再放上去了。

呵,没想到又敏感了。我前些帖子已经说明,我没有能力理解那些技术,更可能是没有时间和精力去理解。因此,出于一种善意的建设性意见的考虑,觉得制作一个软件,让大家能够使用,这比纯粹的罗列技术要容易接受。

不乐意做也就罢了。没必要再接着吵架了。抱歉,我的这个思路看来是多余的,没有一点用处。再次致歉。从现在起,我不再参与讨论与此相关的话题了。

我仍然继续关注在顶楼中起初我所感兴趣的话题,希望有同样兴趣的人也继续关注。谢谢。

[ 本帖最后由 不点 于 2011-2-7 23:50 编辑 ]
回复

使用道具 举报

88#
发表于 2011-2-7 23:43:35 | 只看该作者
从上面各位大师的分析,可以找出根本的问题就是U盘启动引导程序是依靠BIOS的INT 13H来访问。这一个方式使U盘和BIOS是相通的,二者也是遵守协议没有问题的。二者真正出现问题的地方是在把INT 13H中的C、H、S参数转化成LBA地址上。这一点才是使各种U盘启动方式出现百花齐放的原因。同一个U盘在自己机子BIOS被认成16H、512C、64S,分区格式化后,分区的开始位置为0H、1CH、1S,分区引导程序所在的LBA是0000064H,但另一台机子的BIOS认成16H、1024C、32S,那么我们刚才做的那个启动盘,分区起始扇区的LBA就变成0000032H,很显然位置错了,造成启动不起来。现在需要解决的问题就是哪种U盘启动方式能够更好的让BIOS在读取U盘C、H、S参数转化成LBA地址上减少读取错误的问题上。当然另一种办法就是推出全新的标准,彻底解决这个问题。但就目前情况只能是用各种减少LBA地址读取错误的U盘启动方法。那么目前那种方法能更好解决这个问题,当然大家就容易清楚了。这也是为什么目前 fbinst 会更好一些的根本原因了。这样也就能解析清楚Plantsoot (百草霜) 的一个U盘启动电脑时,基本扇区数设置为20000才成功启动的问题,也能解析清楚为什么U盘不是统一从0扇区读取起的问题。当然 fbinst 填充前64个扇区还不能百分之百解决所有U盘问题,只是能解决更多一些的U盘启动问题罢了。
回复

使用道具 举报

89#
发表于 2011-2-7 23:52:22 | 只看该作者
实际上U盘设备在电脑上与bios之间只有两个大的方面的硬件标准的校对

1、是USB-CD的信息校对

2、是U盘存储设备的校对

在本贴来说,主要是考虑bios对U盘存储设备的0扇区,就是第一扇区的数据的正确读取和判断引导的问题。

而USB-CD的问题已不是U盘存储设备的0扇区的问题,那是固件问题。

一般来说,支持USB设备启动的bios在读取固件判断USB存储设备上(不是指识别USB-CD)大致是分二种情况。

1、是仅能通过固件信息识别不超过1G的老U盘的情况。

2、是可以识别所有容量的U盘的情况。

这也就是说目前大部分新的电脑的bios都是可以识别出U盘的,区别仅是对于U盘的0扇区的引导数据的正确读取和执行引导。

在这个情况中正如前面高手所说,bios有时候虽然识别出U盘设备是正确的,但是并不能通过固件提供的数据正确读取0扇区,或许第一读取的是第十扇区。

而除fbinst以外,其他任何引导方式都依赖bios必须正确的从0扇区读起,不能丢失0扇区的引导数据,哪怕丢失一点一点字节。

而fbinst的方式是0-63扇区中任意一个扇区被bios完整读取数据,就能引导bios最终从63扇区读取数据执行引导的。

似乎是这样的意思吧??

呵呵!!!
回复

使用道具 举报

90#
发表于 2011-2-7 23:55:06 | 只看该作者
我晕,发完贴才看到88楼的贴

结果就是一句话:“bios不是能够完美的统一从U盘的0扇区读取起引导数据的”

仅此而已
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-22 19:21

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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