现在TB级硬盘逐渐普及,可是常规32位Windows系统却无法完全识别2.1TB以上容量,本文就对其中原委进行解密。随着内存的大降价,很多朋友都知道32位Windows7系统最大只能识别3.25GB的内存。不过大家可能不知道,32位Windows系统最大只能识别硬盘2.1TB以下的容量。为什么会出现这个限制,我们又该如何解除这个限制?
限制的由来——LBA寻址方式限制硬盘容量
硬盘容量和Windows的纠结并非只有2.1TB这个坎,实际上自1980年开始,过去30年间存储业内至少发生过十多次的硬盘容量限制问题,最为人们熟悉的可能就是528MB、2.1GB、8.4GB、137GB的硬盘容量限制。当然这些限制已经解决,但是由于LBA寻址方式的限制所致,2.1TB再次成为Windows和硬盘容量的新一道门坎。
LBA是指Ligical Block Address(逻辑块寻址),48bit现在主流的寻址方式,理论上支持寻址的扇区数为281474976710655(2的48次方),可支持的硬盘容量就达到了281474976710655 × 512=144115188075855872字节(LBA默认每扇区的容量是512字节),大致相当于144PB=144000GB的容量,硬盘容量结构见图1所示。
因此仅从48bit寻址方式上,系统是可以识别2.1TB以上的容量的,但是现在主流的Windows系统是32位,所以对硬盘的寻址自然最大也只有32位,它最大支持寻址的扇区数为2的32次方,亦即4294967296。所以支持最大容量就是4294967296×512=2199023255552Byte,折算后的容量大约是2.199TB。这就是2.1TB容量限制的由来。
另外一方面,32位寻址方式限制还存在于目前硬盘采用的MBR分区方式,这种方式也是限制硬盘容量的关键因素。MBR最多可支持四个主分区或三个主分区、一个扩展分区的组合。这一方案采用4个字节来存储分区的总扇区数,最大能表示2的32次方扇区个数,按每扇区512字节计算,这样每个分区最大容量不能超过2TB。而当磁盘容量超过2TB以后,分区的起始位置也就无法表示了,当然也就无法进行分区。比如在32位Windows7系统中连接3TB硬盘,如果采用传统分区工具,会有有高达746.52GB的硬盘容量无法使用(见图2)。
限制的解决——让系统识别2.1TB后的容量
从上面的描述我们知道了2.1TB容量限制主要是由于32位寻址造成的,一个是32位操作系统本身的限制,另一个则是传统MBR分区采用32位寻址限制。因此要让系统完整识别2.1TB后的容量,就必须解决上述的两个限制。
1.32位操作系统本身的限制——换装64位win7操作系统
Windows支持寻址的扇区数=2的寻址位数次方,因此只要增加寻址数即可增加支持的扇区数。由于64位系统支持64位寻址数(理论值等于2的64次方),因此乘以扇区数后就轻松突破2.1TB的限制。要完整使用大硬盘的所有容量,首先就必须使用64位操作系统。
2. MBR分区的限制——使用GPT分区
即使使用了64位系统,由于MBR分区方式的限制,我们仍然无法使用2.1TB以上的硬盘,还需要使用GPT分区格式才能完整的识别。
小知识:什么是GPT分区
GPT(GUID 分区表)是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案,GPT 提供了更加灵活的磁盘分区机制。GPT 磁盘能够实现巨大的容量,GPT 磁盘上的分区数量不受临时方案(比如 MBR Extended Boot Record定义的容器分区)的限制,理论上可以有无数个GPT分区(目前Windows最多支持128个GPT分区)。
GPT对分区数量没有限制,而且它使用64位的整数表示扇区号,所以理论上允许用户使用最高18EB容量(1EB=100万TB)进行分区。使用GPT分区就可以避开MBR分区的限制,现在主流的Windows7系统已经可以完美的支持GPT分区了(常见操作系统对GPT分区的支持见表1)。
对症下药,32/64位系统都完美用上大硬盘
1.只是用于数据存储
通过上表我们知道,32位Windows7是支持GPT分区的,只不过由于寻址方式的限制无法识别2.1TB后的容量。如果仅仅为了一块大硬盘就去换装64位系统显然不大现实。因此为了让32位系统也能使用上3TB硬盘,主板厂商华硕、希捷、技嘉已推出破解方案,硬盘厂商希捷也推出类似补丁软件,它们可以让32位Win7使用上无法识别的容量(将其虚拟为磁盘)。
启动Unlock后他会自动检测到当前系统连接的3TB硬盘,点击“建立”,程序会自动将无法识别的746.52GB的空间模拟为一个虚拟磁盘,创建成功后就可以在磁盘管理中识别并进行格式化操作使用了(见图3)。
2.用于系统分区
从上述表格我们知道32位系统并不支持从GPT分区启动,因此如果要将3TB硬盘作为系统盘,我们必须使用64位系统+GPT分区,而且主板必须支持EFI/UEFl启动(近两年来发布的主板大多支持)。要判断自己主板是否支持EFI/UEFl启动,只要启动电脑时进入BIOS启动顺序设置菜单,看看是否有UEFl启动下启动项即可(见图4)。
确认主板支持EFI/UEFl启动后,如果要在3TB硬盘安装Win7,我们可以使用启动U盘(传统从光盘启动Win7安装的方式并不支持安装到GPT硬盘)。
第1步:准备64位Win7安装文件和一个4GB以上的U盘,将U盘格式化为FAT32格式(必须,否则无法启动),接着将Win7安装文件全部复制到U盘中。
第2步:到任何一部安装64位Win7电脑上,复制“C:\Windows\Boot\EFI\bootmgfw.efi”文件到 U盘的“\efi\boot”子目录下,并将其改名为“bootx64.efi”。
第3步:重启并在BIOS设置UEFI为第一启动模式,成功引导后根据安装向导规划分区(向导会自动创建 GPT 类型的卷)即可完成安装。这样安装后的Win7使用的就是GPT分区,而且可以完美识别2.1TB以后的容量。