无忧启动论坛

标题: U启新探索之二:BIOS USB BOOT支持强弱理论分析 [打印本页]

作者: wuwuzz    时间: 2009-3-4 19:54
标题: U启新探索之二:BIOS USB BOOT支持强弱理论分析
...............................

(本贴内容,未经许可,请勿转贴、引用、盗用,谢谢合作!)

我以前曾表达过如下观点:弱BIOS只能识别U盘第1区(更弱的BIOS连第1区是CD也不支持,
只支持1区HDD或ZIP),强BIOS则无论量产出的CD位置在前在后,都能有效支持。

不过,这些观点只是经验总结,如果不能从理论上证明,则不具有广泛指导意义。
本帖的目的就是要从理论上进行分析,限于水平,并不能完全有效地证明观点,但从
推导过程中能得到有价值的信息,也很不错哈~~


一、黄金位置--U盘1区(Lun0)

打仗要抢占“有利地形”,U启也要找个好位置。众所周知,象MBR、硬盘1区(C盘)
这些位置对BOOT都是比较特殊的,历史的延续使之获得成熟支持,甚至BIOS中都可能
有driver number之类的硬编码。要想从其他位置上BOOT,就要大费周折了。

(一)通过查阅SCSI卡存储设备厂商的有关资料,可以发现,SCSI设备也有类似黄金位置:
ID 0--Lun 0
(参考以下厂商文档截图)。这个位置,据我所知,没有标准白皮书来硬性规定,
就是厂商们都那样干,时间长了,也就约定俗成,成了实际标准。对U盘而言,没有那样
多位置,就简化成Lun 0(第1区)。







(二)在BIOS BOOT标准(内容很专业,我看不懂,只能猜个大概)中,有个
附录E--PCI with Multiple PnP Headers (Optional)比较重要。讲的是BIOS如何设计,
通过链表来支持Multi-Lun。我们量产多分区盘在BOOT最初阶段的支持就指望这个附录了!

可以看出,附录E是Optional,不是必须实现,所以可以推测:
强BIOS之所以强,应该是严格实现了附录E,而弱BIOS则没有实现或实现得不够完美。

但不管BIOS怎么弱、对附录E实现程度如何差,大不了不支持Multi-Lun,最起码的
Single-Lun(也就等于是Lun 0了)应该是必须支持的。

由此看来,把最有希望的好东西放在Lun 0比较保险~


二、格式选择--实现bootable CD-ROM要比FDD/HDD麻烦

(一)软/硬盘启动出现最早,也最成熟。

(二)在bootable CD-ROM格式标准中,第1句话就挑明了,这种格式是package several images
of floppy and hard disks,即仿真软/硬盘。而在CD-ROM configuration示意中,更是
列出Single boot-image/Multi Boot-image两种bootable-CD配置。由此可见,bootable CD
要更麻烦些,换句话说,出问题的可能性就更大些。

(三)在BIOS BOOT标准的附录A:Data Structures--IPL Table and BCV Table Entry Data Structure中,规定了设备类型。deviceType项取值如下:01h软盘、02h硬盘、03h光盘,05h是USB device。

我猜,出于实现难度考虑,老BIOS的USB device启动应该是倾向于USB HDD/FDD的概率大,而USB CD概率小,这也就解释了为什么有时候CD已经放在Lun0位置上了,还是BOOT成功率低。


(四)其他注释

1、ZIP格式,更象是FD/HD的混合体,限制条件也少不到哪里去,在BIOS BOOT标准中也没见这种类型设备的说明。由此看来,应用范围比较狭窄。

2、《USB mass storage for bootability标准》从字面上看应是最靠近USB BOOT启动的,但翻开看看,似乎与我们的想象有差距。其内容非常专业,我看不懂。但我能感觉到,它更象是为了BOOT而对UFI命令集作的“补充”说明,BOOT方面还是沿用以上提到的老标准,并没有另搞一套。

综上,选择USB-HDD比较保险~




[ 本帖最后由 wuwuzz 于 2009-3-6 07:36 编辑 ]
作者: xtay004    时间: 2009-3-4 20:56
受教了,谢谢楼主的分享,分析的和现实差不多~!我目前的感觉还是usb-hdd启动成功的概率比较大!
作者: guoqqqqqq    时间: 2009-3-5 08:31
这篇文章不错,够专业。
作者: wuwuzz    时间: 2009-3-5 10:45

关于黄金位置Lun0,补充一些厂商的文档截图,(已调整到1楼)


[ 本帖最后由 wuwuzz 于 2009-3-6 07:37 编辑 ]
作者: lianjiang    时间: 2009-3-5 10:49
看不懂也要支持。

强顶。
作者: wuwuzz    时间: 2009-3-5 10:57
原帖由 lianjiang 于 2009-3-5 10:49 发表
看不懂也要支持。

强顶。



非常惭愧啊!

偶是现炒现卖,见笑了。偶还是老大的学生哩~
作者: HuAnGkUn    时间: 2009-3-5 15:02
看得懂更要支持。
当然,如果偶看得懂那是不可能的。
作者: kzr588    时间: 2009-3-5 15:10
原帖由 lianjiang 于 2009-3-5 10:49 发表
看不懂也要支持。

强顶。


套用老大的话来支持
作者: limonet    时间: 2009-3-5 17:54
非常感谢,更加深了理解。
作者: antai    时间: 2009-3-5 18:52
看来还是要从usb启动学起
作者: dkfbzm    时间: 2009-7-21 15:18
认真思考楼主的思想方法,谢谢分享。
作者: leonliao78    时间: 2009-8-11 07:15
不懂理论,感觉实际上USB-HDD的确比另外两种启动兼容性好点。
作者: 秋梦无痕    时间: 2009-8-11 08:40
从理论上解释了USB-HDD比其它方式更容易启动的原因
以前看过本论坛一位大大(记不清谁了)分析过的U盘启动兼容的文章
里边分析过如果是<128的就以ZIP启动
>128 而则以模拟硬盘的方式启动
个人感觉也蛮准的
作者: yafhguo    时间: 2011-3-30 09:10
这个的确是太深奥,小白还是从头学起吧,记号待用
作者: gongjc    时间: 2011-3-30 09:25
楼主从理论上解释了,USB-HD最好的选择。
因此,终结USB启动的是BOOTMGR,也就是使用VISTA以上,或者PE2.0以上的DISKPART直接处理就是最好的USB启动方式了。
作者: wxb    时间: 2011-3-30 10:22
我也认为USB-HDD是启动成功率最高的

但是这种USB-HDD不是diskpart处理出来那种,只能是量产成本地磁盘那种。两者就像优盘显示可移动磁盘而移动硬盘显示本地磁盘这种差别

只要是本地磁盘格式,用什么方式都可以很容易的启动,就像硬盘启动一样容易

另楼主帖子中的一区应该改为一驱更准确
作者: 2011深蓝长城    时间: 2014-2-3 18:37
这 贴才算是 精华呢
作者: 411223113    时间: 2015-10-13 14:44
谢谢分享      
作者: poison8866999    时间: 2020-3-13 18:39
感謝大大無私的分享,讓我學到很多,受益良多!
作者: 2012wjia    时间: 2021-2-21 18:28
提示: 作者被禁止或删除 内容自动屏蔽




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