无忧启动论坛

标题: 兔年大PK:兼容性最高的USB启动方式,fbinst or NTLDR? [打印本页]

作者: 不点    时间: 2011-2-2 18:22
标题: 兔年大PK:兼容性最高的USB启动方式,fbinst or NTLDR?

先说明投票规则:您必须

在 USB 上使用过
fbinst

并且也使用过
NTLDR (或者 BOOTMGR,新增的,看后面的说明)
这两个启动软件作为
第一启动
才有资格投票。

特别提醒: fbinst 和 NTLDR(或BOOTMGR,下同) 两者缺一不可

在 USB 上只使用 fbinst 而不使用 NTLDR 的人,或者只使用 NTLDR 而不使用 fbinst 的人,都无权参加投票。两者使用的时间应该都比较长才行,最少也得有半年。除了对 fbinst 和 NTLDR 有此限制以外,对其他软件的使用情况没有要求。

投票方式是单选的,只能投一项。如果您觉得 fbinst 和 NTLDR 都不理想,那么您可以选择其他您认为最好的软件。但不要忘了,您必须符合上述要求,即,对 fbinst 和 NTLDR 都比较了解。注意: 仅仅是作为“第一启动” 来PK,不考虑它们作为第二启动(而被其它软件启动)的情况。

我之所以发起这个投票,是因为最近我看到下面这篇英文文章:

Most Compatible USB Stick + Grub4Dos Method I have found http://reboot.pro/10503/

文章认为,兼容性最好的启动方式是 NTLDR 作为第一启动。作者用 BOOT.INI 来启动 GRLDR。作者可能是来自一个开发 RMPrepUSB 的软件公司。

我发起这个投票,目的就是想弄清楚,这位作者的观点是否符合实际,以及究竟哪个软件的兼容性最强(作为 USB 第一启动)。

显然,我们不考虑 USB-CDROM 的情况。

请您不要匆忙投票。您可以先观察一段时间。如果您确认您已经完全考虑成熟了,您现在就可以投出您宝贵的一票。请慎重。

谢谢!祝您
兔年快乐!

------------------------------------
2011-02-08 补充说明:
------------------------------------
  

根据到目前为止所反映出来的情况,有必要作出补充说明。
MBR 是谁,成功就属于谁。


这是认定某一次启动成功的主要贡献者的标准。比如,你在 USB 的 MBR 上安装了微软的单扇区引导代码,并在 PBR 上安装了 GRLDR 的引导代码。不管 MBR 上的微软引导代码是否取得控制权,都算是微软引导代码的功劳。即使此时 MBR 被跳过而 PBR 首先接管控制,也不能算是 PBR 的成功,只能算是 MBR 的成功。在所有的情况下,都以“MBR 是谁”为判断的标准。


特例研究:假如 MBR 是未知的第三方 MBR,但 PBR 是微软的 FAT 代码,能够启动 MS-DOS。此时,你仍然不能选 MS-DOS,而应该选“其他”。


------------------------------------
2011-02-18 补充说明:
------------------------------------

有人提出,Win7 中的 bootmgr 是微软正式开始支持 USB 的版本,所以,投票规则应该有所调整:
不再严格区分 NTLDR 和 BOOTMGR,只要您在 USB 上使用过 BOOTMGR 和 fbinst,您也有资格投票。

[ 本帖最后由 不点 于 2011-2-18 03:44 编辑 ]
作者: pseudo    时间: 2011-2-2 19:29
使用ntldr时间短,半年后再投。
作者: gongjc    时间: 2011-2-2 19:32
目前是bootmbr最好了
作者: 不点    时间: 2011-2-2 19:52
标题: 回复 #3 gongjc 的帖子
抱歉, 你说的是不是微软 NT 系列的 bootmgr 呢?

我搜索 bootmbr,根本没有这个软件。

如果你说的就是 bootmgr,并且你凭着丰富的经验完全知道它比 fbinst 和 ntldr 有更高的硬件兼容性(成功率),你可以投它的票。上述第三个就是它了。谢谢。
作者: gongjc    时间: 2011-2-2 21:12
标题: 回复 #4 不点 的帖子
不好意思,就是指的bootmgr。
在目前USBHDD主流的情况下,这个成功率最高。
但是老机器我不明白。

[ 本帖最后由 gongjc 于 2011-2-2 21:13 编辑 ]
作者: 2011tuwoai    时间: 2011-2-2 23:14
顶你~~~~~~~~~~~~~~~~~~~
作者: tiema    时间: 2011-2-2 23:29
我不知道两者怎么做比较,我觉得GRUB4DOS成熟后,NTLDR有时在U启上只是一个名称,我使用U启的三个阶段:
1.HP格式化工具2.06+NTLDR+BOOT.INI +GRLDR
2.HP格式化工具2.06+更名为NTLDR的GRLDR
3.FBINST+GRLDR

不知道是我的使用的经历还是偏见,感觉HP格式化工具比U+等兼容性强,但不如FBINST
作者: flame69    时间: 2011-2-2 23:42
试用过几个,觉得GRUB4DOS好用。
作者: sratlf    时间: 2011-2-3 01:15
不点大应该限制下权限的  很多新手恐怕没看说明就直接投票了
作者: sht123960585    时间: 2011-2-3 08:25
对,支持设置权限,免得新手乱投票
作者: Plantsoot    时间: 2011-2-3 08:33
原帖由 不点 于 2011-2-2 18:22 发表
文章认为,兼容性最好的启动方式是 NTLDR 作为第一启动。作者用 BOOT.INI 来启动 GRLDR。作者可能是来自一个开发 RMPrepUSB 的软件公司。


不点大师,这个老外用过fbinst的吗?如果他没用过fbinst或者没了解过fbinst的原理的话,说NTLDR 兼容性最好也可以理解。
不说别的,就冲Bean开发fbinst的思路,理论上讲应该是最强的。

一点个人看法,当然,我没用过NTLDR,我还是不投票了。
作者: 于山    时间: 2011-2-3 08:51
这样的投票,不能说明问题?!
因为因素太多了!
作者: 2010豪豪情    时间: 2011-2-3 08:56
支持百草霜的看法,几种我都用过, 兼容老机子的fbinst这个较好。
作者: c600    时间: 2011-2-3 10:23
以后再投 现在在主要fbinst
作者: 717758565    时间: 2011-2-3 11:12
我在我的U盘上用ntldr引导不是很好,用Windows nt5.0写入U盘主引导,启动的时候出现一个字母j就不动了,用Windows nt4.0主引导能启动,nt6.0也可以,nt6.0接触的少,我试了好多机子个人感觉还是fbinst兼容性好,nt5.0就没启动成功过不知道为什么,我发现nt4.0还是用的比较多的,信念U盘维护就是采用nt4.0的引导
作者: 2010hktk    时间: 2011-2-3 11:20
以前一直使用NTLDR启动而载入GRLDR
现在改用BOOTMGR启动来载入GRLDR
作者: 2010shg1014    时间: 2011-2-3 11:58
还没用过。有时间试试看看。应该都不错吧。个人喜好不一样罢了。个人观点。
作者: 74521    时间: 2011-2-3 13:54
我只能说 FB 兼容性 是显而易见的 并且 FB 的兼容性 经过1.2-1.5 之后的系列更是注重兼容,但是NTLDR 我基本没用过,所以不投票。
作者: sratlf    时间: 2011-2-3 13:56
fly2sky
liuyindou
fujianabc
ttt0001
TCLSHX
B仔豪
306344381
wwooww
梅边吹笛
xssss
227575206
yanglin
YoDe
flame69
mmjjnn000
yangyangzhifeng
水韵
1fox
827259544
dpxqs
hqc329898
kendisk
girlff
dongbao1206
gongjc
717758565
2010豪豪情
2010hymming
2010→坏坏冰
2010cqlx
2010guren777
2010hucy
2010yu_fei_527
2011幻蓝天堂
2011jim174819
2011121


目前的投票人员
作者: 2010冚家铲66369    时间: 2011-2-3 17:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: 2010381372215    时间: 2011-2-3 17:43
我是新收,但我没有投票。新春快乐!
作者: 33445566    时间: 2011-2-3 20:10
NTLDR兼容性好,局限性大,fbinst兼容性次之,灵活,但更新跟不上,貌似不支持bootmgr启动,syslinux不够开放,感觉开发者有意设置某些障碍,还不支持NTFS。另G4D功能强大,应用广泛。
作者: 不点    时间: 2011-2-3 21:35
原帖由 tiema 于 2011-2-2 23:29 发表
我不知道两者怎么做比较,我觉得GRUB4DOS成熟后,NTLDR有时在U启上只是一个名称,我使用U启的三个阶段:
1.HP格式化工具2.06+NTLDR+BOOT.INI +GRLDR
2.HP格式化工具2.06+更名为NTLDR的GRLDR
3.FBINST+GRLDR

不知道是我的使用的经历还是偏见,感觉HP格式化工具比U+等兼容性强,但不如FBINST


谢谢你的捧场。改名之后的软件,可不能算啊。

我本来想要了解的是,究竟哪个 MBR + PBR 代码更可靠,而不是说进入到主程序体(GRLDR 或 NTLDR)之后的情况了。也就是说,较量就在于主程序(GRLDR、NTLDR)接管控制之前,包括 MBR 部分和 PBR 部分。只要 MBR+PBR 工作良好,就算成功。

GRLDR.MBR 实际上具有 MBR 和 PBR 两层功能。而微软的 NTLDR 需要一个 MBR 扇区,再加上若干个 PBR 扇区。

因此,GRLDR.MBR 就等价于 NTLDR 的 MBR 代码加上 NTLDR 的 PBR 代码。

而 FBINST 的情况又与 GRLDR.MBR 类似,也就是说,fbinst 等价于 NTLDR 的 MBR 代码加上 NTLDR 的 PBR 代码。

所以,我们实际上是在这样一种假设之下进行 PK 的。我们关注的不是软件的主程序,而仅仅是其 MBR+PBR 的引导代码部分而已。

这是我没能交代清楚的,抱歉。

所以,你觉得谁的 MBR+PBR 最好,你就投谁的票。希望这样不会再有歧义了。

举例来说,如果你启动了 NTLDR,但你使用了 grldr.mbr 的代码(放在 MBR 扇区上),那这个成功应该算是 grldr.mbr 的。关键看 MBR 扇区上是谁首先接管了 BIOS 的控制,那么就算是谁的成功了。
作者: 不点    时间: 2011-2-3 21:46
原帖由 flame69 于 2011-2-2 23:42 发表
试用过几个,觉得GRUB4DOS好用。


谢谢捧场。

不管你多么喜欢 grub4dos,你都不能随便投 grldr.mbr 的票,除非你是把 grldr.mbr 安装到 USB 的 MBR 上才行。

我认为 grldr.mbr 肯定不能选,因为 fbinst 远远比 grldr.mbr 强。

提供这个选项的目的是为了照顾那些确实想投它的人。
作者: Plantsoot    时间: 2011-2-3 21:46
引用一段话:

“几乎所有写入U盘的其他类主引导记录的都是占用一个扇区(占用0号扇区,如 HDD+,ZIP+,NT5,NT6 等等),而 fbinst 却是在前64个扇区的主引导代码都一样(稍微差异下面解释),BIOS在启动时只是读出一个扇区,但是它可能不是u盘的0扇区,因此引导代码要占多个扇区。以前的测试证明,63个就基本够了,最大只需要255。
不过我的一个U盘启动电脑时,基本扇区数设置为20000才成功启动,否则跳过U盘直接启动本机系统了。


如果NTLDR的MBR只占用第一个扇区,那BISO启动时读取到的不是第一个扇区,是第10个扇区,那不就无法启动了?
fbinst解决了这个问题,虽然不符合投票的条件,但我还是觉得fbinst的兼容性最强。
作者: 不点    时间: 2011-2-3 21:54
原帖由 sratlf 于 2011-2-3 01:15 发表
不点大应该限制下权限的  很多新手恐怕没看说明就直接投票了


谢谢支持。

以前限制过权限,但效果并不理想。所以我这次有意放开,让所有的人都能投票。

其实,谁投错了票,我们也是可以分析出来的。不怕投错票。

我对大家都很信任,我认为能够来投票的人,绝大多数都是这方面的高级用户,比如,经常在替别人装机。

所以,我相信大家。
作者: 不点    时间: 2011-2-3 22:07
原帖由 Plantsoot 于 2011-2-3 08:33 发表


这个老外用过fbinst的吗?如果他没用过fbinst或者没了解过fbinst的原理的话,说NTLDR 兼容性最好也可以理解。
不说别的,就冲Bean开发fbinst的思路,理论上讲应该是最强的。


这我也不知道。不过,他开那个英文帖子,可是最近一两个月的事情。我个人也认为 fbinst 最强。但 fbinst 和 grldr.mbr 都有一个共同的弱点:BIOS 制造商会打压(故意制造自杀式死机)。变数由此而产生。否则,根本就毫无疑问,fbinst 绝对最强。

由于投票能反映出实际的情况,所以我发起这个投票。目的就是了解一下,在 BIOS 厂家不断打压的情况下,各个启动软件的成功率又是怎样一个分布状况。

谢谢诸位大力支持。
作者: 2011ws    时间: 2011-2-3 22:08
新人  学习了  不投票了
作者: 2010天月来了    时间: 2011-2-3 22:09
我觉得BISO启动时读取磁盘扇区启动,这个过程应该是所有厂家都默认bios是去读取检测到的任何类型磁盘的0扇区的吧??

难道还会0扇区还没读呢,就先去读其他扇区???bios应该不会在磁盘启动上设置成这样的逻辑吧??


目前已知的所有启动方式好象都是要迫使bios正确读取磁盘0扇区,并根据0扇区的数据去执行后面的事。

0扇区的数据如果不能正确的为bios提供指令,一般bios都是默认去尝试读取其他硬盘0扇区的引导信息的吧??读不出所有检测到的磁盘启动信息,就提示无磁盘引导的吧??
作者: Plantsoot    时间: 2011-2-3 22:12
标题: 回复 #27 不点 的帖子
谢谢不点大师的指点,明白了。
哎,如果真是BIOS制造商打压的话就很无奈了,不会光驱商向BIOS商诉苦了吧,联手打压U盘启动。

这年头什么都会被和谐。
作者: Plantsoot    时间: 2011-2-3 22:14
标题: 回复 #29 2010天月来了 的帖子
硬盘都是按规定读了,U盘可就不一定了。所以说fbinst是最强的,就是他解决了这个问题,不信你可以用WINHEX打开U前面的64个扇区看看。
作者: 不点    时间: 2011-2-3 22:15
原帖由 2010hktk 于 2011-2-3 11:20 发表
以前一直使用NTLDR启动而载入GRLDR
现在改用BOOTMGR启动来载入GRLDR


像你这种情况,你使用的是微软的 MBR。因此,你应该投 bootmgr 的票。不知道你投错了没有。注意,一定是 U盘,不能是硬盘。并且你确信 bootmgr 比 fbinst 强,才能投 bootmgr 的票。
作者: 2010天月来了    时间: 2011-2-3 22:16
至于fbinst问题,我总觉得实际上fbinst为了挤出空间作为隐藏分区,所以它采取了从0扇区开始的数据就是迫使bios的检测是从0扇区自动读取到最后一个fbinst指定的扇区,才能载入启动数据,执行引导的吧??

并不是fbinst提供bios 可以从0-63扇区或更多扇区任意位置随机读取,然后再顺序下去的吧??

而其他我们已知的好多引导方式都是仅利用0扇区,或前面几个扇区,并且必定是必须从0扇区读起的,不从0扇区读起数据的开始头,一般是不可能引导成功的。

照这样看,也仅fbinst一家是可以从前面几个扇区随机读取到数据,也能继续向下面的最后一个扇区引导的。

例如你设置fbinst引导区是0-63扇区,那么bios哪怕一开始只从20扇区读第一个数据开始,20扇区的完整数据也能引导bios继续读取第21扇区直至读至63扇区开始正确引导的吧??

这倒也蛮有趣的引导方式。
作者: 2010天月来了    时间: 2011-2-3 22:19
标题: 回复 #31 Plantsoot 的帖子
你的意思是BISO启动时读取U盘扇区启动,这个过程不一定读第一个数据的区是0扇区??

我觉得应该是所有厂家都默认bios是去读取U盘的0扇区的吧??

难道还会0扇区还没读呢,就先去读其他扇区???bios应该不会在U盘启动上设置成这样的逻辑吧??


目前已知的所有非fbinst的启动方式好象都是要迫使bios正确读取U盘0扇区,并根据0扇区的数据去执行后面的事。

0扇区的数据如果不能正确的为bios提供指令,一般bios都是默认去尝试读取其他硬盘0扇区的引导信息的吧??读不出所有检测到的磁盘启动信息,就提示无磁盘引导的吧??
作者: 不点    时间: 2011-2-3 22:19
原帖由 2010shg1014 于 2011-2-3 11:58 发表
还没用过。有时间试试看看。应该都不错吧。个人喜好不一样罢了。个人观点。


谢谢捧场,但尽量不要随便投票。请仔细阅读相关说明,然后再投票。
作者: Plantsoot    时间: 2011-2-3 22:22
标题: 回复 #34 2010天月来了 的帖子
借用天涯版主的帖子回答你的问题,看完后你会惊叹。Bean的思路太强大了。

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=172572
作者: 2010天月来了    时间: 2011-2-3 22:25
我试过一些操作以及硬件设备,就现在我知道,除Windows类视窗操作系统。

其他所有设备,例如MP3、MP4、手机以及电视设备等,他们的内置usb设备口读取的逻辑,都是仅读取0扇区的,并且对0扇区的代码兼容程度也是有限的。

举例吧,我们将U盘用fbinst折腾后,那些设备就无法通过0扇区的fbinst代码去找到第63扇区的正确数据来载入可见分区内的分区表信息的,也就是说fbinst折腾过的U盘或存储卡,好象大部分上面的设备是无法读取可见分区内的文件的。不知道别人的情况如何。
作者: 不点    时间: 2011-2-3 22:27
原帖由 2010冚家铲66369 于 2011-2-3 17:42 发表
我支持bootmgr。
FB很拿手的旧硬件平台已经远去。


谢谢捧场。

但我认为,软件对旧的平台的兼容性,是不可以忽视的。开源的软件更注重旧平台的兼容性,因为这涉及到最终用户的利益。而开源软件出发点就代表了最终用户的利益。因为开源软件的作者不追求商业利益,他们不会为了把用户驱赶到新的硬件平台而有意不支持旧的平台。
作者: 不点    时间: 2011-2-3 22:31
原帖由 33445566 于 2011-2-3 20:10 发表
NTLDR兼容性好,局限性大,fbinst兼容性次之,灵活,但更新跟不上,貌似不支持bootmgr启动,syslinux不够开放,感觉开发者有意设置某些障碍,还不支持NTFS。另G4D功能强大,应用广泛。


谢谢捧场。

但我认为,fbinst 应该支持 bootmgr。fbinst 既然支持了 grldr,它也很容易支持 bootmgr。

当然我没有实际检验过。
作者: 2010天月来了    时间: 2011-2-3 22:33
呵呵!!早前我曾经看过那64个扇区的数据,我没去细分析,只是估计是那逻辑顺序,迫使bios读取到64个扇区前63个任意扇区,那么读到的扇区的完整数据都能够迫使bios正确去读取最后一个扇区的数据载入引导过程。

其成功率确实极高了,不论你是什么bios都能较好的最后引导成功的。

很有趣的思路。

只是没想到不同厂家的bios原来无法保证永远正确的读取usb口存储设备的第一扇区。呵呵!!!
作者: 2010天月来了    时间: 2011-2-3 22:35
标题: 回复 #39 不点 的帖子
fbinst直接支持 bootmgr应该是可以做到的,配置数据以及相关的文件到位的话,和支持其他方式的启动没什么区别。
作者: 2010天月来了    时间: 2011-2-3 22:37
实际上这贴更深层的意思应该是关于任意主板bios对USB设备的扇区数据读取并正确引导的的可靠性上了
作者: Plantsoot    时间: 2011-2-3 22:40
再引用下天涯版主的帖子: menu F10 grldr "BOOTMGR" 这个算不算?
timeout 1
default 0
color red
text "                          fbinst v1.6 menu by bean"
text "                          ----------[01]----------"
color green
text "                          Press F1  > GRLDR"
menu F1 grldr "grldr"
color red
text "                          ----------[02]----------"
color green
text "                          Press F2  > WDC-SYSLINUX"
menu F2 syslinux "ibmlinux.bin"
color red
text "                          ----------[03]----------"
color green
text "                          Press F3  > MSDOS 7.1"
menu F3 msdos "io.sys"
color red
text "                          ----------[04]----------"
color green
text "                          Press F4  > SKTQB"
menu F4 grldr "SKTQB"
color red
text "                          ----------[05]----------"
color green
text "                          Press F5  > MaoTao WinPE"
menu F5 grldr "LDRXPE"
color red
text "                          ----------[06]----------"
color green
text "                          Press F6  > XORLDR"
menu F6 chain "XORLDR.MBR"
color red
text "                          ----------[07]----------"
color green
text "                          Press F7  > BULDR"
menu F7 grldr "BULDR"
color red
text "                          ----------[08]----------"
color green
text "                          Press F8  > CJJJP"
menu F8 grldr "CJJJP"
color red
text "                          ----------[09]----------"
color green
text "                          Press F9  > NTLDR"
menu F9 grldr "NTLDR"
color red
text "                          ----------[10]----------"
color green
text "                          Press F10 > BOOTMGR"
menu F10 grldr "BOOTMGR"
color red
text "                          ----------[11]----------"
color green
text "                          Press F11 > PLoP Boot Manager"
menu F11 chain "plpbt.bin"
color red
text "                          ----------[12]----------"
color green
text "                          Press F12 > GMYghost.img"
menu F12 linux "memdisk" "GMYghost.img" "c=142 h=4 s=36 floppy"
作者: 不点    时间: 2011-2-3 22:42
原帖由 Plantsoot 于 2011-2-3 21:46 发表
引用一段话:
“几乎所有写入U盘的其他类主引导记录的都是占用一个扇区(占用0号扇区,如 HDD+,ZIP+,NT5,NT6 等等),而 fbinst 却是在前64个扇区的主引导代码都一样(稍微差异下面解释),BIOS在启动时只是读出一个扇区,但是它可能不是u盘的0扇区,因此引导代码要占多个扇区。以前的测试证明,63个就基本够了,最大只需要255。
不过我的一个U盘启动电脑时,基本扇区数设置为20000才成功启动,否则跳过U盘直接启动本机系统了。


如果NTLDR的MBR只占用第一个扇区,那BISO启动时读取到的不是第一个扇区,是第10个扇区,那不就无法启动了?
fbinst解决了这个问题,虽然不符合投票的条件,但我还是觉得fbinst的兼容性最强。


谢谢支持。但我认为,你可能忽略了一种情况:当 MBR 是微软的引导代码时,所有的厂商都--乖乖儿地--乖乖儿地--乖乖儿地--不再出毛病了。什么毛病都消失得干干净净,此时 USB 就像是硬盘的情形,所有的厂商都支持了。
作者: 2010天月来了    时间: 2011-2-3 22:42
同时我还发现,这个选择中,除fbinst是主引导,其他的都不属于主引导呢

fbinst靠自身的主引导,自然可靠性也很高了


而其他的引导方式,都要依赖对应的其他类型的主引导呢,他们只是些分区引导,已不足以在bios层面上和fbinst比较了。

如果是说这些项目就是指他们对应的主引导,那么就有点不好选择了。

不过fbinst肯定那样的逻辑引导形式可靠性是最高的了。
作者: Plantsoot    时间: 2011-2-3 22:46
标题: 回复 #44 不点 的帖子
这个确实没考虑,呵呵,也没条件测试。
作者: 2010天月来了    时间: 2011-2-3 22:46
标题: 回复 #44 不点 的帖子
对了呢,今天忽然想起来问问牛人们呢

微软的mbr,一般就是Windows nt 5.*或Windows nt 6.*了,那么用它们作为U盘设备的主引导,这玩意好象没见多少人用来引导U盘吧??这支持么???

偶不会折腾这玩意,无忧这里有谁折腾成功过么???
作者: 不点    时间: 2011-2-3 22:49
原帖由 2010天月来了 于 2011-2-3 22:09 发表
我觉得BISO启动时读取磁盘扇区启动,这个过程应该是所有厂家都默认bios是去读取检测到的任何类型磁盘的0扇区的吧??

难道还会0扇区还没读呢,就先去读其他扇区???bios应该不会在磁盘启动上设置成这样的逻辑吧??

目前已知的所有启动方式好象都是要迫使bios正确读取磁盘0扇区,并根据0扇区的数据去执行后面的事。

0扇区的数据如果不能正确的为bios提供指令,一般bios都是默认去尝试读取其他硬盘0扇区的引导信息的吧??读不出所有检测到的磁盘启动信息,就提示无磁盘引导的吧??


谢谢。你可能是个新手,不了解很多细节。请查阅其他资料。抱歉这里不能详细描述这方面的技术。
作者: 2010天月来了    时间: 2011-2-3 22:54
标题: 回复 #48 不点 的帖子
没关系,不需要详细描述的,只需要大致逻辑顺序即可

偶也没那本事了解代码上具体执行

只要知道先哪一步,然后执行哪一步,最后到哪结束。

共计三步而已
作者: 不点    时间: 2011-2-3 22:59
原帖由 2010天月来了 于 2011-2-3 22:37 发表
实际上这贴更深层的意思应该是关于任意主板bios对USB设备的扇区数据读取并正确引导的的可靠性上了


谢谢了。我基本上同意你这个解释。

但这个投票不是停留在理论层面,而完全是为了统计现实的“成功率”的实际情况。
作者: 不点    时间: 2011-2-3 23:10
标题: 回复 #45 2010天月来了 的帖子
我前面有一个帖子,进行了补充说明。MBR 是谁的代码,就算是谁的成功。例如,U盘 MBR 上是微软的代码,不管启动的是什么软件(NTLDR、BOOTMGR、 GRLDR 或者 DOS),这都算微软的成功。因为微软是第一启动。
作者: 不点    时间: 2011-2-3 23:17
原帖由 2010天月来了 于 2011-2-3 22:46 发表
微软的mbr,一般就是Windows nt 5.*或Windows nt 6.*了,那么用它们作为U盘设备的主引导,这玩意好象没见多少人用来引导U盘吧??这支持么???

偶不会折腾这玩意,无忧这里有谁折腾成功过么???


发起这个投票的目的之一,也是提醒大家,除了 fbinst 以外,还有另外一种提高成功率的可能性。希望有兴趣者深入研究,看看实际情况究竟是怎样一种景象。

我们都拭目以待。
作者: lsfx555    时间: 2011-2-3 23:42
标题: 我个人看法
本人电脑公司技术经理,有用过二年多的USB启动经验,但主要是U盘(USB HDD模式),不是各类卡,也不是USB光驱(含量产),

个人看法:

第一旧机器,用NT4.0的引导程序来做,兼容性最好,成功率,也是最高的,
第二近五年内的机器,可用NT6.0的引导程序来做,兼容性最好,成功率,也是最高的,

对程序而言,第一fbinst我只用了不到两个月,不是很了解,但发现存在部分旧机器,不能启动,还有某些品牌的某些近五年内机器,也启动不成功,是什么牌子,就不说了。就是因为这个原因,才没有用fbinst做第一启动的!

对程序而言,第二NTLDR对机器的启动成功率最高(本人目前没有发现,启动不成功的机器),但功能有限,对于应用而言,不是很好,要用到其他引导管理程序来支持应用才行!

对程序而言,第三Grub对新旧机器的启动成功率排名第二,也还有某些品牌的某些启动不了,但是这个程序启动成功率与机器的新旧没有关系,只和品牌有关系,其中原因大家都知道。

对程序而言,第四syslinux对新旧机器的启动成功率排名第三,其情况和Grub所面临的问题一样。


因fbinst我只用了不到两个月,所以不投票了!
以上是个人看法,不对各程序有任何意见!
作者: fujianabc    时间: 2011-2-3 23:44
原帖由 lsfx555 于 2011-2-3 23:42 发表
本人电脑公司技术经理,有用过二年多的USB启动经验,但主要是U盘(USB HDD模式),不是各类卡,也不是USB光驱(含量产),

个人看法:

第一旧机器,用NT4.0的引导程序来做,兼容性最好,成功率,也是最高 ...

没仔细研究过nt 4.0的mbr和ntldr,它和nt 5.x有什么不同吗?
作者: lsfx555    时间: 2011-2-3 23:46
标题: 回复 #47 2010天月来了 的帖子
支持,但功能限制太多,U启的应用比较多,还应用到其他引导管理程序相互合作才能用好。
作者: lsfx555    时间: 2011-2-3 23:52
标题: 回复 #54 fujianabc 的帖子
代码,我没有去研究过,但从使用的结果而言,是有区别的,有部分老机器用NT4.0就成功启动,而NT5.0就会在加载其他启动项的时候出错(两个加载是同一项目),不知道是什么原因!回头,哪个有时间,可以去哈希一下他们的MD5值!
作者: 不点    时间: 2011-2-4 00:24
标题: 回复 #53 lsfx555 的帖子
非常感谢你提供如此清晰、具体的信息。
作者: xiaohaizi02010    时间: 2011-2-4 02:24
grldr转ntldr
作者: 2011feiliu浪子    时间: 2011-2-4 07:18
刚刚接触,无权做出评论啊 ~!
作者: 2010wukong    时间: 2011-2-4 09:40
二者我都用过
fbinst兼容性相对来说高点
我遇到过用NTLDR在一台机器上能启动,换台机器就不行的情况
作者: dkfbzm    时间: 2011-2-4 19:26
来看看各位大侠的评说。。。
作者: lsfx555    时间: 2011-2-4 23:30
标题: 回复 #60 2010wukong 的帖子
请问:兄弟你的那台电脑,能启动windows NT5.0的系统吗?
我之前也有见过你所说的情况,但那不是引导管理程序的问题,而是U盘的问题,
过程如下:
在前一台电脑上用我U盘以USB HDD模式启动,并成功进入PE系统,并安装好windows系统,重启后,移除设备;

到下一台电脑上还是用我U盘以USB HDD模式启动,在BIOS开始加载启动设备,这里,就卡住,没有反应了,黑屏了(当时我也以为是那机器不支持NTLDR的启动模式呢,因为在前一台电脑还用得好好的,怎么一下子就用不了,又把U盘插回前一台电脑,重新启动也能正常加载引导菜单呀,我旁边的同事见到这情况,笑着说:U盘坏了,接触不良;我说:怎么可能。之后,他把他自己的U盘插上那台机器,重启动,就出引导菜单了,而我的U盘在那台电脑上,怎么接,都是黑屏,就是不出引导菜单。)我们俩的U盘,就只是品牌不一样,里面的数据,是完全相同的!像这种情况,我不能解释为那台机器不支持以USB HDD模式加载NTLDR吧?
作者: aceivy    时间: 2011-2-5 13:59
新技术的好一点
作者: venus951    时间: 2011-2-5 18:35
810、815主板这2个都启动不了吧
作者: 幸运的草    时间: 2011-2-5 19:05
标题: 回复 #37 2010天月来了 的帖子
其他的没试过,我用手机TF卡,进行FBINST后,可以成功U启,手机仍可认出可见区内保存的MP3,电子书等手机存入的数据。我的手机是一个老机子,非智能的。
作者: wuwuzz    时间: 2011-2-5 22:21
我不得不痛苦地说,不能赞同不点大侠的部分思路。
就事论事而言,我认为本次投票最终结果,参考价值并不大。

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

作者: 不点    时间: 2011-2-6 01:10
>>> 你好,对fbinst/ntldr U启投票,我有不同看法。欢迎指教。


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

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

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

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

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

不能强求,不可勉强。

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

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

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

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

真金不怕火炼。只要你的理论确实是真金,就一定能够经得起时间的考验。
作者: Zokor    时间: 2011-2-6 08:46
憋了好几天了,其实在这个帖子刚发出来,就看到了,就有些话想说,顺便占个沙发,但怕引起争论。但是今天把这几页看完,就想一吐为快。

为什么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 编辑 ]
作者: wuwuzz    时间: 2011-2-6 09:56
回复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 编辑 ]
作者: wuwuzz    时间: 2011-2-6 09:59
回复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 编辑 ]
作者: gongjc    时间: 2011-2-6 10:08
想不到一个这样的投票,也会在这个论坛激起这么大的反映。
当然,“不点”大师是最主要的原因,另外也可以看出无忧真是一个多元化的地方。
作者: huangdi168    时间: 2011-2-6 12:27
wuwuzz同学,

其实我有个很傻得问题想问你:   u启/u盘/u主板 能不能越权 变成int19一样启动 ?
作者: wuwuzz    时间: 2011-2-6 14:15
原帖由 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设备,
我没实际见过。

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

[ 本帖最后由 fujianabc 于 2011-2-6 16:50 编辑 ]
作者: wuwuzz    时间: 2011-2-6 19:25
原帖由 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 编辑 ]
作者: 2011-66369仆街    时间: 2011-2-6 20:28
据说BIOS厂家故意打压开源
作者: 不点    时间: 2011-2-7 07:44
>>> 当然了,你也可以认为: 我wuwuzz是在利用各种场合,孜孜不倦地宣传自己的观点,无所谓。

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

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

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

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

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

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

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

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

补充几句:不知你是否注意到,我很少参与讨论有关此类的技术话题。我对待你的这些讨论,与对待探月或者文学一样,都属于没兴趣。和我们中的其他人一样,我也不想被强制讨论某个不感兴趣的话题。谁要是有意强迫我,那是他的错。同时,他也是很难如愿的。
作者: 2010lqbi    时间: 2011-2-7 07:49
新年大吉,合家欢乐!!

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

无解.JPG

作者: wuwuzz    时间: 2011-2-7 10:41
原帖由 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成功率。

作者: lusir401    时间: 2011-2-7 18:05
NTLDR是系统自带,很容易获得,我个人认为......
作者: wuwuzz    时间: 2011-2-7 19:21
下面以一个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 编辑 ]
作者: wuwuzz    时间: 2011-2-7 19:24


                               图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 编辑 ]
作者: yaojy    时间: 2011-2-7 19:25
在无忧这么久,有两点特别深刻:
1、xxx万能、最好、第一
2、硬件厂商故意打压开源软件(当万能的东西遇到问题时...)
作者: 不点    时间: 2011-2-7 20:40
谢谢大家互相的理解、尊重、和谐。大家继续吧,畅所欲言,没有什么忌讳。

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

总之,光是这么说说,感觉距离最终用户比较遥远。希望有人做出成品,交给大家测试。否则,如果有人挑剔,说你这是拿空头理论吓唬人,似乎也不容易反驳。
作者: 不点    时间: 2011-2-7 21:02
原帖由 xiaohaizi02010 于 2011-2-4 02:24 发表
grldr转ntldr


前面说了,不要去管主程序是 grldr 还是 ntldr,而着重要看 MBR 上是谁的代码,那么成功就划归谁。这样应该不会有太多的歧义了。
作者: wuwuzz    时间: 2011-2-7 23:17
原帖由 不点 于 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 编辑 ]
作者: 不点    时间: 2011-2-7 23:34
>>> 如果你认为我是在空头理论吓唬人,那就烦请你开门见山,直接从“BIOS/USB/BOOT技术”挑剔反驳,哲学讨论就不要再放上去了。

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

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

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

[ 本帖最后由 不点 于 2011-2-7 23:50 编辑 ]
作者: 2011lhr    时间: 2011-2-7 23:43
从上面各位大师的分析,可以找出根本的问题就是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盘启动问题罢了。

作者: 2010天月来了    时间: 2011-2-7 23:52
实际上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扇区读取数据执行引导的。

似乎是这样的意思吧??

呵呵!!!
作者: 2010天月来了    时间: 2011-2-7 23:55
我晕,发完贴才看到88楼的贴

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

仅此而已
作者: lcy163    时间: 2011-2-8 14:52
好多年前就弄USB启动,fbinst用过一段时间感觉不是很顺手,之后一直用GRUB、和NTLDR,后来也很喜欢bootmgr,但个人首选GRUB,因为编辑启动菜单比较容易
作者: doul123    时间: 2011-2-8 15:57
支持一下,谢谢楼主分享!
作者: 不点    时间: 2011-2-8 18:45
原帖由 lcy163 于 2011-2-8 14:52 发表
好多年前就弄USB启动,fbinst用过一段时间感觉不是很顺手,之后一直用GRUB、和NTLDR,后来也很喜欢bootmgr,但个人首选GRUB,因为编辑启动菜单比较容易


谢谢。本次投票不涉及好用不好用的问题,也不涉及功能强大不强大的问题。主要考察的是 MBR 的硬件适应能力。这是唯一的投票标准。

假定你使用了微软的 MBR 扇区,而启动了 PBR 上的 GRLDR 引导扇区。此时的成功,应该归功于微软的 MBR 代码,因此,你只能选一个微软的投票项目(ntldr、bootmgr、MS-DOS),而不能选 GRLDR。

谁首先成功地从 BIOS 那里接管到控制权,谁就被认定为本次启动成功的主要贡献者。
作者: 不点    时间: 2011-2-8 20:40
原帖由 Zokor 于 2011-2-6 08:46 发表
憋了好几天了,其实在这个帖子刚发出来,就看到了,就有些话想说,顺便占个沙发,但怕引起争论。但是今天把这几页看完,就想一吐为快。

为什么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,因为软件巨头微软稍一重视,就会有很大变化,毕竟养的研究院不是吃素的。


谢谢。我感到你说的挺实在的。而且至今并未引起争论。真没必要害怕什么,前怕狼后怕虎的。

其实以上各位的发言都挺好,不再一一评说。能说出自己的见解,就是好的。不要在乎谁接受得了、谁接受不了。不要在乎谁支持、谁反对。大家互相尊重,不等于说,大家都得是一个主张、一个见解。在观点上互相反对的双方,在人格上也是互相尊重、互相平等的。大家是为技术而来,为了学习,为了提高。所以,不同的见解是好事,而不是坏事。即便我目前反对什么,也不表明我永远反对什么。我反对的,不代表是错误的。我支持的,也不等于是正确的。

谁的意见与我不一样,我不会感到痛苦。我觉得那很自然。这是我真实的思想,一点都没虚夸。我不会因为思想观点、技术观点的差异,而对某个人有怨恨。即使某个人已经对我有所怨言了,我也不会怨恨他,正相反,我会觉得是我有什么不适当的作为,导致了这样的结果。

希望不要有人以为我这段话是在做虚假广告。

即使是我和 wuwuzz 的那些争论,也不算什么。wuwuzz 和我的分歧,大致就在于硬件规范方面。我没有接触那些东西,也没有计划去接触那些东西。而 wuwuzz 所谈的恰恰就是硬件规范方面的东西。所以,一开始就注定没法谈。要得让我们能谈下去,除非我得去了解那些硬件规范。而这是不可能的(至少在可见的未来),我没有精力,也没有时间。虽然我没有去调查,但我主观上认为,像我一样的、不关心硬件规范的人,还有许许多多,甚至是绝大多数。我想,这些人应该能够比较容易地理解我的想法。我没法继续谈论和争论,并不等于我反对别人去谈论和争论。请大家随便,该说什么,就说什么。所以,千万别误会我了。不要认为我反对别人去谈论那些我本人不想谈论的话题。事实上,正相反,我希望看到有人继续谈论和争论,因为那表明关心核心技术的人越来越多了,绝对是好事,而不是坏事。我也绝对不会糊涂到连这也不明白的程度。
作者: yhhxlp    时间: 2011-2-8 22:27
我就不涂了 fbinst和ntldr都用过 都很好
我认为比较好的是USB-CDROM
因为三星和明基的好几款fb都启动不了
基本上本本usbcdrom都可以启动
fb感觉比ntldr启动强一些
现在都是4个u盘带起走哦

作者: 2011lhr    时间: 2011-2-8 22:34
其实二位在争论的谁也没有错,不点大师想找出在当前U盘和BIOS二者的协议不变情况下,让U盘启动成功最多的主控程序是哪一个。而wuwuzz 想找出U盘和BIOS二者之间造成启动失败的根本原因,希望通过修改源代码让U盘和BIOS完美融合,令所有U盘都能百分之百启动成功,当然真能做到这样的话,也就不再需要去讨论那一种启动程序好坏的问题了。问题是目前还没有百分之百的成功启动U盘源代码出现前,还得继续寻找让大多数U盘能顺利启动的主控程序。再说百分之百成功启动U盘的源代码一出现,对市场的冲击和影响将是非常巨大的,任何U盘都能随便顺利启动自带的系统的话对硬盘市场,移动硬盘市场,SSD盘市场,和整个电脑市场都会生产巨大的影响,可能令到免费的LINUX更加普及。那些只要能上网,能看股票,能听音乐的要求不高的人士,买个U盘就可以了,不用再买硬盘,买微软的操作系统,连电脑都不用买了,去到那里就插到那里用,多方便。不过这美好的一天一定会实现,以后大家买一个几百G的高速U盘,装上一个免费的系统就可以变成一个随身的移动电脑,回家插进液晶电视屏上就可以听音乐,看股票,上网冲浪了。呵呵,当然液晶电视屏里要集成了一个APU就行。
作者: 不点    时间: 2011-2-8 23:32
感谢 2011lhr 所发的两个红色大字的帖子。最好不要总是用红字,有些论坛不提倡用全部红色的文字来布满整个帖子。其他类似的强调方式也一样不提倡,例如,全部是粗体,或者全部是蓝色,或者全部是大字。

另外,最好别再用一些不适当的称呼,例如“大师”。一般,不必带上这些多余的称呼。我觉得,实在要带称呼的话,带个“兄”字便可。wuwuzz 有几处称呼我为大侠,也算说得过去,我感觉这还能算是“兄”的同义词,作为尊称也未尝不可。称呼如果使用不当,可能引发矛盾冲突。有时候,被“称呼”者接受不了某个称呼,他可能往不好的方面去理解。如果你什么称呼也不带,则完全不会引起猜疑和纷争。因此,没有称呼才是最安全的称呼。这年月,网络发展很快,时代变迁很迅猛,我认为,安全的称呼(即不带任何称呼语),也是时代进步的一个要求吧。

我觉得,关于称呼,可以借鉴西方的礼仪。在英文论坛上,我从未见到称呼,大家都仅仅使用名字。甚至连“女士”和“先生”也不能用,因为不知道对方是女的还是男的。
作者: Plantsoot    时间: 2011-2-10 10:24
为什么能看到最后回复的时间,看不到对应的帖子啊?奇怪。
作者: pseudo    时间: 2011-2-10 11:42
投票也算。          
作者: Plantsoot    时间: 2011-2-10 11:45
原帖由 pseudo 于 2011-2-10 11:42 发表
投票也算。          


难怪了,呵呵,我还以为灵异事件呢。




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