作者:陆麟
转载请征得作者同意.
1999.12.12
今天在讨论组上发现有人又为硬盘报告错误容量大大不解.
这是怎么回事呢?
根据PNP规范和引导规范.BIOS在POST时,会CALL所有具有"VALID OPTION ROMS"且有"PNP
EXPANSION HEADER"的设备的在板ROM映象.当然ROM映象允许HOOK住BIOS的INT13H服务.通常情况下.只有可能含有操作系统或引导操作系统的设备才挂接BIOS的INT13H.
该功能原先的用意也许是提供PCI设备或PNP ISA设备在引导时的自初始化功能,同时也让硬盘提供商提供超出BIOS功能限制的硬盘读写服务.这也就带来了潜在的隐患.
在我个人的PC使用中,就曾经发现题目问题.当时按装SCO UNIX的什么版本来着.反正是不支持LBA的那个版本.安装好后引导老的WIN95就发现启动时BIOS
SUMMERY里报告的硬盘大小起了变化.居然少了1.9G.后来通过查找原因,才发现只要将同样型号的硬盘的0头0道1扇CPY到"坏"盘上,问题迎刃而解.
这至少说明的确"编写不良"的代码会导致问题.(其实SCO已经REPORT了该问题,只不过我当时没看文档.)
本文涉及的规范有
PNP BIOS SPECIFICATON
BIOS BOOT SPECIFICATON
详细情况请自行参阅文档.
另外,大家可以在NEWS服务器
news.webking.com.cn的 软件.编程.VC, 软件.编程 软件.系统.WINDOWS组找到我.
:)
最近我在那里看文章讨论.