Hardware 版 (精华区)
发信人: xhc (再见理想), 信区: Hardware
标 题: 轻松搞定大容量硬盘
发信站: 哈工大紫丁香 (2000年10月04日13:58:57 星期三), 站内信件
近年来硬盘容量飞速暴涨,令广大电脑用户惊喜不已。现在花同样的钱,可以买到
比去年大好几倍的硬盘,去年主流还是6.4G,而到今年10G 也不算大了,30G的硬盘正在
成为市场主流。一时间硬盘容量的增长幅度似乎快过了主板、操作系统等配套软硬件的
发展脚步,使得用户在购买、安装大容量盘后常发现不能使用全部的硬盘空间等情况,
大容量硬盘的使用开始困扰一些初级用户。
一、 硬盘容量限制的原因及历史
为了解决好大容量硬盘的使用问题,我们应当先了解一下这个问题出现的原因。尽
管个人电脑的发展飞速,但出于向下兼容等考虑,今天磁盘驱动器的I/O结构仍是建立在
早先的DOS-BIOS的分层结构上,即:应用程序--DOS功能调用---INT13中断读写---BIOS
磁盘服务例程----ATA界面。
从近年来PC的发展历史来看,由于主板、操作系统等相关软硬件发展的不协调,硬
盘容量先后经历了以下限制:
1、528MB限制
早期的BIOS并没预料到硬盘的容量会超过500MB,因此,当把地址从Int13的地址寄
存器转换为ATA的地址寄存器时,只是把INT13中10位的柱面地址拿过来往ATA界面中的1
6位柱面寄存器里放,其中柱面高位寄存器的高6位填0。把6位的扇区地址拿过来往ATA的
8位扇区寄存器里放,其中高2为填0。而且那时的BIOS认为磁头数不会超过16(2的四次
方),所以只把INT13磁头寄存器的低4位往ATA里传递。这时,柱面的最大数是1024(2
的十次方),磁头的最大数是16(2的四次方),扇区的最大数是63(2的六次方-1)。所
以,能寻址的扇区数是1,032,192 (1,024x16x63)。一扇区是512字节,也就是说如果以
CHS寻址方式,IDE硬盘的最大容量为528.4MB。这就是著名的"528MB限制"的由来。
2、2.1GB限制
为了解决"528MB限制",不同的BIOS生产商使用不同的方法。其中一个就是将INT13
的磁头寄存器的高2位保留给柱面数的11、12位使用。这样,最大的磁头数就是64(2的
六次方)。但是一般的操作系统不使用这种转换方法,它认为磁头寄存器的所有位数只
记录磁头数。比如,为了正确地转换柱面数为4,096、磁头数为32的硬盘,就需要操作系
统把柱面数除以4(1024个逻辑柱面数),磁头数乘以4(128个逻辑磁头数)。可因为上
述的BIOS使用磁头数寄存器的高2位记录柱面数,所以就没法存储128的磁头数。有这种
BIOS的机器在使用大于2.1G的硬盘时,可能会在加电自检时执行硬盘确认命令并在试图
设置CHS值时死机。
2.1GB限制问题更多是由操作系统引起。长期以来DOS操作系统的文件分配表(FAT)处
理存储空间是以簇为单位的,它处理一簇的最大长度是32,768字节,最多能处理65,536
个簇,如果将两个数字相乘,就会得到DOS的最大分区界限值是2,147,483,648字节=2.1
G。所以在使用DOS操作系统的机器上,一个分区的大小无法超过2.1G。
3、8.4GB
尽管EIDE接口对普通IDE接口进行了扩展,它支持LBA存取方式,突破了528MB的容量
限制。理论上可以支持到128G的硬盘容量。但老式的BOIS却使用10bit表示柱面数,8bi
t表示磁头数,6bit表示扇区数,因此老式BOIS最多可以支持8.4GB的容量(512×63×2
55×1024=8.4GB)。
4、下面再谈谈现在主板支持的三种硬盘工作模式:NORMAL、LBA和LARGE模式。
NORMAL普通模式,是最早的IDE方式。在此方式下对硬盘访问时,BIOS和IDE控制器对
参数不作任何转换。该模式支持的最大柱面数为1024,最大磁头数为16,最大扇区数为63
,每扇区字节数为512。因此支持最大硬盘容量为:512×63×16×1024=528MB。在此模式
下即使硬盘的实际物理容量更大,但可访问的硬盘空间也只能是528MB。 LARGE大硬
盘模式。当硬盘的柱面超过1024而又不为LBA支持时可采用此种模式。LARGE模式采取的
方法是把柱面数除以2,把磁头数乘以2,其结果总容量不变。例如,在NORMAL模式下柱面数
为1220,磁头数为16,进入LARGE模式则柱面数为610,磁头数为32。这样在DOS看来柱面数
小于1024,即可正常工作。
LBA(Logical Block Addressing) 逻辑块寻址模式。这种模式所管理的硬盘空间突
破了528KB的瓶颈,可达8.4GB。在LBA模式下,设置的柱面、磁头、扇区等参数并不是实际
硬盘的物理参数。在访问硬盘时,由IDE控制器把由柱面、磁头、扇区等参数确定的逻辑
地址转换为实际硬盘的物理地址。在LBA模式下,可设置的最大磁头数为255,其余参数与
普通模式相同。由此可计算出可访问的硬盘容量为:512×63×255×1024=8.4GB 。目前
基本上只有LBA有实际意义了。
二、搞定大硬盘通常的处理方法
现在硬盘容量已大大超过了8.4G,为了超越这个容量限制,人们又定义了新的扩展
INT13。新的INT13不使用操作系统的寄存器传递硬盘的寻址参数,它使用存储在操作系
统内存里的地址包。地址包里保存的是64位LBA地址,如果硬盘支持LBA寻址,就把低28
位直接传递给ATA界面,如果不支持,操作系统就先把LBA地址转换为CHS地址,再传递给
ATA界面。通过这种方式,能实现在ATA总线基础上CHS寻址最大容量是136.9GB,而LBA寻
址最大容量是137.4GB。因此,要正常使用大容量硬盘,可以从软、硬件两方面来加以解
决。
1、 升级主板或主板BIOS。
新的主板BIOS对磁盘读写中断INT13H进行了扩展,一般主板升级BIOS后即可支持 8
.4G以上的磁盘。此外还可以使用BIOS扩展卡(它对大容量硬盘提供正确的LBA寻址支持
)。比如 pormise生产的多功能I/O卡,它自带的BIOS能识别大容量硬盘。
升级主板BIOS的具体方法,在此不赘述,可参看相关的文章。下面谈谈常见BIOS的
相关情况:
(1) Award(http://www.award.com/):在1997年11月及其以后的BIOS支持容量大于8
.4GB的硬盘。
(2)AMI(http://www.megatrends.com/):在1998年1月及其以后的BIOS支持容量大于
8.4GB的硬盘。
(3)Phoenix(http://www.ptltd.com):/基础版本4,修改版本是6(Version4Revisi
on6)和更高的版本支持容量大于8.4GB的硬盘。而如果BIOS的revision是5.12,它就不支
持扩展INT13。因为所有的PhoenixBIOS基础版本都是 4,所以升不升级主要看它的修改版
本号。
2、 用硬盘自带的DM分区软件分区。
使用特殊的驱动程序(一般是硬盘自带的分区软件DM),也提供INT13H的扩展功能
,从而在不动主板的情况下支持大硬盘。
比如对BIOS不支持LBA寻址的机器来说,迈拓公司(Maxtor)提供了MaxBlast的软件
,它能有效地转换大容量硬盘的各个参数,达到全容量使用硬盘的目的。MaxBlast不是
在操作系统启动后才加载的,而是在BIOS启动后、操作系统启动前。最新的MaxBlast可
从www.maxtor.com处下栽。另外,WesternDigital的EZdrive(最新9.0版本)也是类似
的软件。它界于操作系统和BIOS之中,既能符合老式BIOS限制硬盘容量的要求,也能保
证操作系统正确地访问整个硬盘。西部数据WD硬盘的最新配套工具wd906w.zip,中的ez
.exe文件,运行后将帮助您快速简单地并代替FDISK和FORMAT程序完成分区和格式化,如
果主板BIOS不支持大容量硬盘,EZ-Drive会安装EZ-BIOS支持大容量硬盘。
3、 使用WIN97以上的操作系统
为了正常使用8.4GB以上的空间,在分区时应使用WIN97以上版本的的FDISK。并尽量
使用FAT32格式。WINDOWS NT4.0可以识别大于8.4G的硬盘,但存在一些BUG,而最新的W
INDOWS 2000可以完全正常支持大于8.4G的硬盘。
4、大硬盘的分区管理
要用好大容量硬盘还涉及合理分区的问题。微软从Windows95OSR2(即俗称的Windo
ws97)开始就支持大于8.4GB的硬盘容量,因为从这个操作系统起,不仅引入了扩展INT
13,还有新的FAT32文件系统。如果你不愿意在折腾机器上花太多时间,大硬盘的分区
就非常简单,用Windows95OSR2或Windows98的FDISK给硬盘分一两个FAT32的分区,装上
操作系统就完事了。而如果你想玩玩多操作系统什么的,一般需要用到PartitionMagic
等工具。相关的具体操作有不少文章谈到,在此不详谈。
三、有关DMA/66的一些问题
现在的大容量硬盘基本都支持DMA/66接口规范,但由于DMA/66的硬盘出现较晚,许
多主板的Award Bios不能提供对DMA/66的支持,非但如此,对某些硬盘 (比如QT 的 火
球八代),在使用99年以前Award Bios的主板上连DMA/33也无法开启。为解决这个问题
,昆腾在其主页上提供了一个小软件-Fbcrdma.exe,在DOS下运行该软件可以将火球八代
的DMA/66设置成DMA/33,必要时也可以再重新设成DMA/66。
四、有关硬盘容量的问题
硬盘容量是硬盘最重要的参数之一,大家在购买和使用硬盘时,常会发现这样的问
题∶同样一个盘在不同的机器上或使用不同的测试软件所报告的容量各不相同,但均不
大于硬盘的标称容量,在大容量硬盘上这个问题更明显,举例来说标称6.4G的盘在安装
格式化完后,往往只有5.99G的容量。
造成这种情况的主要原因是,生产厂家一般按每兆1000K字节计算容量,而大多数主
板的BIOS及测试软件是以1048K为一兆计算。这样一来二者间便出现了大约5%的差异。而
硬盘容量又有纯粹由磁头数、柱面数等物理参数计算得到的物理盘容量以及在经过分区
、格式化等操作后实际可用空间的逻辑盘容量之分。此外在CMOS中选择不同的工作模式
(NORMA、LBA、LARGE),也会造成容量的不一致。
由于有这些因素的影响,一般而言硬盘测试容量与标称容量存在5%-10%左右的差距
是基本正常的。
--
合抱之木,发于毫末。
九尺之台,起于累土。
千里之行,始于足下。
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: dip8.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.446毫秒