硬盘容量限制问题再现!各位龅歧仲半打算用2T以上硬盘的朋友们请注意了!现在市场上单碟500G的硬盘也已经面市,2T、2.5T硬盘在2009年也铺夹惝虔已经面市。硬盘容量突飞猛进,现1T硬盘价格早已降至600元左右,2T硬盘都已开始在用户中普及。可是,2009年你想把旧硬盘换成2.5T硬盘或者更大的硬盘?且慢!!首先,先来看看下图——计算机管理功能中的磁盘管理——出现未指派空间!下面我们来回顾下过去并对硬盘容量限制情况做下技术分析:其实,硬盘容量限制问题很早就出现了,最初是528MB、2.1GB,后来是3.2GB、4.2GB,但引起人们注意当属8.4GB容量的硬盘。虽然LBA(LigicalBlockAddress)逻辑块寻址模式突破了DOS系统下8.4GB容量的限制,但由于自身的限制,柱面的最大数是65536(216),磁头的最大数是16(24),扇区的最大数是255(28-1),因此能寻址的最大扇区数是267,386,880(65536×16×255),一扇区是512字节,也就是说如果以CHS寻址方式,IDE硬盘的最大容量为136.9GB,这就是137GB容量限制的由来。超过137GB容量的硬盘,可能会在一些主板上遭遇所谓的28bitLBA限制,当然主要是指一些推出时间较早的主板,但NVIDIAnForce2却仍然在使用28bitLBAIDE控制器。在这样的主板上虽然可以使用大容量的硬盘,但超出137GB以外的空间将无法识别,换句话说也就是被浪费了。TechnicalCommitteeT13组织为了解决28bitLBA寻址模式的限制,对于ATA/ATAPI-6标准进行了一些修改,通过48bitLBA来支持更多的扇区,从而突破这一限制,其实后来Compaq、Microsoft、Maxtor联合推出的BigDrives规范就是T13组织提出的48bit方案为基础的,这种规范的中心思想就是增加CHS的位数,而柱面寄存器不变,这样就将原来LBA寻址中可用的寄存器空间从24bit提高到了48bit,可以寻址的扇区数就为281,474,976,710,655(65536×65535×65536),这样可支持的硬盘容量就达到了281,474,976,710,655×512=144,115,188,075,855,872字节,大致相当于144PB(1PB=1000,000,000,000,000字节),在一定时间内应该是足够使用了。从这里来说,支持2T,应该不成问题才对的啊?但为什么又会出现这个限制的呢,这个要从MBR说起。MBR,主引导记录(MasterBootRecord),也就是现有的硬盘分区模式。MBR分区的标准决定了MBR只支持在2TB以下的硬盘,超过2TB的硬盘只能管理2TB(参见后文MBR介绍)!为解决这个大问题,微软和英特尔在EFI方案中开发了GPT分区模式。GPT,全局唯一标识分区表(GUIDPartitionTable),GUID,全局唯一标识符(GloballyUniqueIdentifier)。GPT是EFI方案的一部分,但并不依赖于EFI主板,在BIOS主板的PC中也可使用GPT分区。与MBR最大4个分区表项的限制相比,GPT对分区数量没有限制,但Windows最大仅支持128个GPT分区。GPT可管理硬盘大小达到了18EB(1EB=1024PB=1,048,576TB),不过NTFS格式最大仅支持256TB。对于使用2T以上硬盘的要求由于MBR分区模式最大只能支持2TB硬盘,2.5T硬盘必须使用GPT分区模式!我们先未雨绸缪,看看Windows对GPT分区的支持情况:
步骤/方法
1、Windows95/98/ME、WindowsNTWindows2000、WindowsXP32位版本不支持GPT分区,只能查看GPT的保护分区,GPT不会被装载或公开给应用软件;
2、WindowsXPx64版本只能使用GPT磁盘进行数据操作,只有基于安腾处理器(Itanium)的Windows系统才能从GPT分区上启动;
3、WindowsServer200332bitServerPack1以后的所有Windows2003版本都能使用GPT分区磁盘进行数据操作,只有基于安腾处理器(Itanium)的Windows系统才能从GPT分区上启动;
4、WindowsVista和WindowsServer2008的所有版本都能使用GPT分区磁盘进行数据操作;但只有基于EFI主板的系统支持从GPT启动。看到这里,我们知道了要想用2.5T硬盘:首先,你得放弃2K和XP32位版,改成人见人不爱的Vista或是人见人爱的Win7;你还得把基于BIOS的主板给扔了,换成EFI主板,否则即使换成Vista了,也只能把2.5T硬盘当从盘用。否则,我们就只能对2.5T硬盘干瞪眼,哗哗地流口水。。。
5、MBR介绍 在传统硬盘分区模式中,引导扇区是每个分区(Partition)的第一扇区,而主引导扇区是硬盘的第一扇区。它由三个部分组成,主引导记录MBR、硬盘分区表DPT和硬盘有效标志。在总共512字节的主引导扇区里MBR占446个字节,第二部分是Partitiontable区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magicnumber,占2个字节,固定为55AA。 MBR是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它,但可以通过命令来修改和重写,如在minix3里面,可以用命令:installboot-m/dev/c0d0/usr/mdec/masterboot来把masterboot这个小程序写到mbr里面,masterboot通常用汇编语言来编写。我们也可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。 用INT13H的读磁盘扇区功能的调用参数如下: 入口参数:AH=2(指定功能号) AL=要读取的扇区数 DL=磁盘号(0、1-软盘;80、81-硬盘) DH=磁头号 CL高2位+CH=柱面号 CL低6位=扇区号 CS:BX=存放读取数据的内存缓冲地址 出口参数:CS:BX=读取数据存放地址 错误信息:如果出错CF=1AH=错误代码 用DEBUG读取位于硬盘0柱面、0磁头、1扇区的操作如下: A>DEBUG -A100 XXXX:XXXXMOVAX,0201(用功能号2读1个扇区) XXXX:XXXXMOVBX,1000(把读出的数据放入缓冲区的地址为CS:1000) XXXX:XXXXMOVCX,0001(读0柱面,1扇区) XXXX:XXXXMOVDX,0080(指定第一物理盘的0磁头) XXXX:XXXXINT13 XXXX:XXXXINT3 XXXX:XXXX(按回车键) -G=100(执行以上程序段) -D100011FF(显示512字节的MBR内容) 在windows操作系统下,例如xp,2003,Vista,windows7,有微软提供的接口直接读写mbr; FILE*fd=fopen("\\\\.\\PHYSICALDRIVE0","rb+"); charbuffer[512]; fread(buffer,512,1,fd); //thenyoucaneditbuffer[512]asyourwish...... fseek(fd,0,SEEK_SET);//很重要 fwrite(buffer,512,1,fd);//把修改后的MBR写入到你的机器 fclose(fd);//大功告成 MBR组成 一个扇区的硬盘主引导记录MBR由如图6-15所示的4个部分组成。 •主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。 •出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。 •分区表(DPT,DiskPartitionTable)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项分区项分区项分区项4。 •结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。
6、GPT介绍 GPT(GloballyUniq掼鸿乡羰ueIdentifierPartitionTableFormat)是一种由基于It锾攒揉敫anium计算机中的可扩展固件接口(EFI)使用的磁盘分区架构。与主启动记录(MBR)分区方法相比,GPT具有更多的优点,因为它允许每个磁盘有多达128个分区,支持高达18千兆兆字节的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区ID(GUID)。 与支持最大卷为2TB(terabytes)并且每个磁盘最多有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)的主启动记录(MBR)磁盘分区的样式相比,GUID分区表(GPT)磁盘分区样式支持最大卷为18EB(exabytes)并且每磁盘最多有128个分区。与MBR分区的磁盘不同,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。 在“磁盘管理”中的磁盘属性对话框中的“卷”选项卡上,具有GPT分区样式的磁盘显示为GUID分区表(GPT)磁盘,而具有MBR分区样式的磁盘显示为主启动记录(MBR)磁盘。如果发生下列意外事件,可以在GPT磁盘上执行MBR磁盘支持的操作: 在运行带有ServicePack1(SP1)的WindowsServer2003的基于x86的计算机和基于x64的计算机上,操作系统必须驻留在MBR磁盘上。其他的硬盘可以是MBR或GPT。 在基于Itanium的计算机上,操作系统加载程序和启动分区必须驻留在GPT磁盘上。其他的硬盘可以是MBR或GPT。 不能将GPT移至运行WindowsNT4.0、Windows2000、WindowsXP或WindowsServer2003的基于x86的计算机上。不过,可以将GPT磁盘从运行带有SP1的WindowsServer2003的基于x86的计算机或基于x64的计算机移至运行WindowsServer2003或WindowsXP的基于Itanium的计算机上,反之亦然。 不能使用基于Itanium的Windows版本,将GPT磁盘从基于Itanium的计算机移至运行带有SP1的WindowsServer2003的基于x86的计算机或基于x64的计算机,然后启动该操作系统。在非基于Itanium的计算机上使用的GPT磁盘必须仅用于数据存储。 在单个动态磁盘组中既可以有MBR,也可以有GPT磁盘。也使用将基本GPT和MBR磁盘的混合,但它们不是磁盘组的一部分。可以同时使用MBR和GPT磁盘来创建镜像卷、带区卷、跨区卷和RAID-5卷,但是MBR的柱面对齐的限制可能会使得创建镜像卷有困难。通常可以将MBR的磁盘镜像到GPT磁盘上,从而避免柱面对齐的问题。 可以将MBR磁盘转换为GPT磁盘,并且只有在磁盘为空的情况下,才可以将GPT磁盘转换为MBR磁盘。 不支持EFI系统分区的镜像。必须使用bootcfg命令克隆EFI系统分区。 不能在可移动媒体,或者在与群集服务使用的共享SCSI或FibreChannel总线连接的群集磁盘上使用GPT分区样式。 可以使用DiskPart.exe命令行实用程序或EFI固件实用程序Diskpart.efi在基本GPT磁盘上创建分区。有关DiskPart.exe的详细信息,请参阅DiskPart。有关“磁盘管理”管理单元的详细信息,请参阅磁盘管理概述。有关Diskpart.efi的详细信息,请参阅Intel网站。 在基于Itanium的计算机上的系统恢复方案中,请参阅计算机所附带的制造商文档来重新创建或恢复GPT磁盘。 有关管理GPT和MBR磁盘的详细信息,请参阅可扩展固件接口或MicrosoftWindows资源工具包网站上的“DiskManagement”(磁盘管理)。GPT的分区信息是在分区中,而不象MBR一样在主引导扇区,为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区(ProtectiveMBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,MacOSX下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。