电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 2116 人浏览分享

硬盘大容量限制解读

[复制链接]
2116 0
希捷2010年年底推出第一款容量达到3TB的硬盘。但是希捷也谈到了要达到3TB容量的诸多限制,包括系统的限制、BIOS的限制以及硬盘自身技术的限制。其中特别提到了,在现有技术环境以及系统环境下,硬盘容量最大只能达到

2.1TB。实际上,自1980年开始,过去30年间存储业内至少发生过十多次的硬盘容量限制问题,最为人们熟悉的可能就是 528MB、2.1GB、8.4GB、137GB的硬盘容量限制。这些已经发现的容量限制问题都已被成功解决,因而人们都慢慢淡忘了它的存在。但旧问题的解决并不意味着就没有新问题出现。希捷3TB硬盘的宣布,实际上重新唤起了我们对硬盘容量限制的记忆——原来2.1TB已经成为现有硬盘的一道容量天堑。

LBA寻址方式限制硬盘容量

在希捷的官方发言中确认,目前的主流电脑大多无法运行2.1TB以上容量的硬盘。也就是说采用普通32位Windows7、Windows Vista等系统的电脑目前最大也只能识别到2.1TB的硬盘。那么到底是什么原因造成了这一问题呢?答案就是传统的LBA(Ligical Block Address,逻辑块寻址)寻址方式以及现有系统的限制。

其实硬盘容量限制问题由来已久,最著名的当数137GB硬盘容量限制。当时不少人认为100GB的硬盘已经足够了,所以工程师们便推出了28bit LBA寻址模式。28bit LBA模式能够支持的柱面最大数是65536,磁头的最大数是16,扇区的最大数是255。由于LBA默认每扇区的容量是512字节,所以28bit LBA模式能寻址的最大扇容量是65536×16×255×512=136.9GB,这就是137GB容量限制的由来。为了消除28bit LBA寻址模式的限制、解除137GB容量的限制,Technical Committee T13组织对ATA/ATAPI-6标准进行了一些修改,通过48bit LBA来支持更多的扇区。后来由Compaq(康柏)、Microsoft(微软)、Maxtor(迈拓)联合推出的Big Drives规范就是以T13组织提出的48bit方案为基础,这种规范的中心思想就是增加CHS(C:柱面,H:磁头,S:扇区)的位数,而柱面寄存器不变,这样就将原来LBA寻址中可用的寄存器空间从28bit提高到了48bit,可以寻址的扇区数就为281474976710655,这样可支持的硬盘容量就达到了281474976710655×512=144115188075855872字节,大致相当于144PB(相当于 144000GB)的容量,即使从现在的眼光来看,如此大容量的硬盘也足够我们用上很久了。

当然,肯定又有人要提出疑问,既然48bit LBA支持144PB容量的硬盘,那现在的系统怎么识别不到2.1TB以上的硬盘呢?要真正实现144PB,除了硬件存储系统及其接口芯片方面的改造外,还需要操作系统的支持。目前只有专业领域才支持64bit运算,而主流操作系统仍停留在32bit的编码模式,所以对硬盘的寻址自然最大也只有 32位。现有32位系统的硬盘容量限制大小可以根据 32bit LBA来计算,最后得出结论是最大只能支持2.1 TB的硬盘容量。这有点类似于当年“528MB、2.1GB”时所遇到的问题,因此,要让硬盘突破2.1TB的限制,用户必须先将系统升级到64位操作系统。目前的Windows7或者Windows Vista的64位系统和修改版的Linux系统都可以支持48bit这种长字节寻址模式。

GPT分区——突破2.1TB的关键

那么是不是只要我们使用了64位的操作系统,就可以支持2.1TB以上的硬盘了?答案是否定的,因为除了彻底解放48bit LBA寻址模式以外,我们还要考虑到另外一个关键因素,即分区表。目前的硬盘都采用MBR分区方式,而这种方式也是限制硬盘容量的关键因素。

MBR位于硬盘的第一个扇区,它所记录的便是硬盘的分区信息。如果使用Fdisk、Partition Magic或者直接在Windows安装过程中对硬盘进行分区,分区的信息都将被写入硬盘的MBR中,硬盘就根据MBR的内容来确定自己的逻辑分区情况。MBR最多可支持四个主分区或三个主分区、一个扩展分区的组合。这一方案采用4个字节来存储分区的总扇区数,最大能表示2的32次方扇区个数,按每扇区512字节计算,每个分区最大容量不能超过2TB。而当磁盘容量超过2TB以后,分区的起始位置也就无法表示了,当然也就无法进行分区。在硬盘还未进入TB时代时,这种分区方式没有什么问题,但是当硬盘容量达到2TB同时还有向上的趋势时,MBR分区方案显然就无法满足需要了。(编注:谈到MBR所支持的最大分区,也许有不少朋友说我目前的电脑分区就有七八个,这是咋回事?这里是说MBR 只支持4个主分区表项。要获得更多分区,则需要次级结构——扩展分区。扩展分区可以再次让一个磁盘被分成一个或多个逻辑磁盘,打个比喻:MBR 就像是一本书的结构,目录、页码,而扩展分区则为这本书划分出了具体章节,这就是 MBR 分区方法。)

要解决MBR所存在的容量限制,还需要使用GUID(Globally Unique Identifier,全局唯一标志符)分区模式,即采用GPT(GUID 分区表)。与MBR最大4个主分区表项的限制相比,GPT对分区数量没有限制(目前Windows系统最大仅支持128个GPT分区),每个分区都拥有唯一的ID标志码,可管理的存储资源范围远远超过MBR。而在分区容量方面,因为它使用64位的整数表示扇区号,所以理论上允许用户使用最高18EB容量(1EB=100万TB)进行分区,这绝对是一个高得令人匪夷所思的数字。GPT的分区信息是在分区中,而不像MBR一样在主引导扇区,为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区(Protective MBR)的MBR分区表,这种分区的类型标志为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Windows磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。既然GPT分区方案具有如此多的优点,在分区时是不是可以全部采用这种方案呢?答案是否定的。并不是所有的Windows系统都支持这种分区方案,至少Windows XP/2000/NT/98这些系统就无法支持GPT分区方案,所以在希捷的声明中,也说明了遇到3TB的硬盘,Windows XP最多只能认出990MB的容量。

UEFI/EFI助硬盘容量腾飞

不过光是系统支持GPT还不行,那样用户只能在GPT分区上存储资料而不能在分区上启动电脑。如果要电脑支持GPT磁盘启动,还需要配合UEFI/EFI此类新一代BIOS。正如我们之前所言,由于目前主流的主板都采用BIOS系统,也就是说只支持MBR的分区方式,那么即使我们拥有了64位的操作系统,拥有了GPT磁盘,也无法享受到2.1TB以上的大容量硬盘。要想使用2.1TB硬盘,我们还必须要保证自己的主板采用的是EFI/UEFI,而非传统的BIOS,这样才能支持GPT磁盘启动电脑。

Intel在制定EFI方案时就将GPT列为其中的一部分内容,后来的UEFI也延续了这一点。由于现有的BIOS不可能将MBR分区方式立刻进化为GPT分区方式,所以要让主板识别到2.1TB以上容量的硬盘,那么只能使用UEFI/EFI。因此,如果用户的主板支持UEFI/EFI,那么可以从GPT分区直接启动Windows Vista/7系统,操作系统加载程序和启动分区均驻留在GPT磁盘上。与基于x86的计算机上的系统卷相同,EFI/UEFI系统分区包含操作系统加载程序、驱动程序和启动Windows Vista/7需要的其他文件。在仅包含一个GPT磁盘的计算机上,UEFI/EFI系统分区是磁盘上的第一个分区。如果用户的电脑没有EFI/UEFI支持,GPT实际上并不能被真正的支持,仅仅能作为MBR/GPT混合磁盘来启动。也就是说,原本GPT的标准中,存在一个保护性质的MBR(Protective MBR),在不支持EFI/UEFI的芯片组主板下,BIOS会继续使用该MBR来引导。

可以说,目前用户要突破硬盘所面临的2.1TB容量限制,首先要升级操作系统,其次还要有一定的硬件支持。目前的硬盘、BIOS和操作系统制造商均将2.1TB的最大容量视为制造标准,主流配置的主板基本不会配备UEFI系统,尽管微星等少数主板制造商在一些主板中装载了UEFI系统,但它仍未成为真正的标准配置,个人电脑里也许只有苹果在使用 EFI/UEFI,因此大家要真正使用单个容量超过2.1TB的硬盘,还需要UEFI普及开来才行,这想必还需要一段时间。但我们相信,随着未来硬件规格的升级,容量在2.1TB以上的超级硬盘的巨大优越性(特别是速度)仍然会很快让不少玩家毫不犹豫地投怀送抱……
现有32位系统最大支持2.1TB容量硬盘
目前大多数主流硬盘都支持48bit LBA寻址模式在EFI中,GPT磁盘引导分区的支持分为4个区域:第一部分EFI信息区,也称为GPT头,起始于磁盘的1号扇区,通常只占用这一个扇区。第二部分为分区表,分区表中的每个表项由起始和结束地址、类型值、名字、属性标志和GUID值组成。分区表建立后,128位的GUID对系统来说是唯一的。第三部分则是GPT分区部分,分区部分是最大的区域,由分配给分区的扇区组成,这个区域的起始和结束地址由GPT头定义。最后一部分是备份区域,位于磁盘的尾部,包含GPT头和分区表的备份。它占用GPT结束扇区和EFI结束扇区之间的33个扇区。其中最后一个扇区用来备份1号扇区的EFI信息,其余的32个扇区用来备份2~33号扇区的分区表。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

23

粉丝

2901

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.