...............................................
(本贴内容,未经许可,请勿转贴、引用、盗用,谢谢合作!)
我以前曾表达过如下观点:弱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比较保险~