硬盘容量限制⼜来了,⽤2T以上硬盘的要注意了
硬盘容量限制⼜来了,⽤2T以上硬盘的要注意了
单碟500G的硬盘也已经⾯市,2T、2.5T硬盘在2009年也已经⾯市。硬盘容量突飞猛进,现1T硬盘价格早已降⾄600元左右,2 T硬盘都已开始在⽤户中普及。可是,2009年你想把旧硬盘换成2.5T硬盘?且慢!来看看下图
其实,硬盘容量限制问题很早就出现了,最初是528MB、2.1GB,后来是3.2GB、4.2GB,但引起⼈们注意当属8.4GB容量的硬盘。虽然LBA(Ligical Block Address)逻辑块寻址模式突破了DOS系统下8.4GB容量的限制,但由于⾃⾝的限制,柱⾯的最⼤数是65536(216),磁头的最⼤数是16(24),扇区的最⼤数是255(28-1),因此能寻址的最⼤扇区数是267,386,880 (6553
6×16×255),⼀扇区是512字节,也就是说如果以CHS寻址⽅式,IDE硬盘的最⼤容量为136.9GB,这就是137GB容量限制的由来。
超过137GB容量的硬盘,可能会在⼀些主板上遭遇所谓的28bit LBA限制,当然主要是指⼀些推出时间较早的主板,但NVIDIA nForce2却仍然在使⽤28bit LBA IDE控制器。在这样的主板上虽然可以使⽤⼤容量的硬盘,但超出137GB以外的空间将⽆法识别,换句话说也就是被浪费了。
Technical Committee T13组织为了解决28bit LBA寻址模式的限制,对于ATA/ATAPI-6标准进⾏了⼀些修改,通过48bit LBA
来⽀持更多的扇区,从⽽突破这⼀限制,其实后来Compaq、Microsoft、Maxtor联合推出的Big Drives规范就是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,主引导记录(Master Boot Record),也就是现有的硬盘分区模式。MBR分区的标准决定了MBR只⽀持在2TB以下的硬盘,超过2TB的硬盘只能管理2TB(参见后⽂MBR介绍)!为解决这个⼤问题,微软和英特尔在EFI⽅案中开发了GPT分区模式。GPT,全局唯⼀标识分区表(GUID Partition Table),GUID,全局唯⼀标识符(Globally Unique Identifier) 。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. Windows 95/98/ME、Windows NT 4、Windows 2000、Windows XP 32 位版本不⽀持GPT分区,只能查看GPT的保护分
区,GPT不会被装载或公开给应⽤软件;
2. Windows XP x64 版本只能使⽤GPT磁盘进⾏数据操作,只有基于安腾处理器(Itanium)的Windows系统才能从GPT 分区上启动;
3. Windows Server 2003 32bit Server Pack 1 以后的所有Windows 2003版本都能使⽤GPT分区磁盘进⾏数据操作,只有基于安腾处理器(Itanium)的Windows系统才能从GPT 分区上启动;
4. Windows Vista 和Windows Server 2008的所有版本都能使⽤GPT分区磁盘进⾏数据操作;但只有基于EFI主板的系统⽀持从GPT 启动。
看到这⾥,我们知道了要想⽤2.5T硬盘:
1、⾸先,你得放弃2K和XP 32位版,改成⼈见⼈不爱的Vista或是⼈见⼈爱的WIN7;
2、你还得把基于BIOS的主板给扔了,换成EFI主板,否则即使换成Vista了,也只能把2.5T硬盘当从盘⽤。
否则,我们就只能对2.5T硬盘⼲瞪眼,哗哗地流⼝⽔。。。
MBR介绍
在传统硬盘分区模式中,引导扇区是每个分区(Partition)的第⼀扇区,⽽主引导扇区是硬盘的第⼀扇区。它由三个部分组成,主引导记录MBR、硬盘分区表DPT和硬盘有效标志。在总共512字节的主引导扇区⾥MBR占446个字节,第⼆部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每⼀分区的⼤⼩都记在其中。第三部分是magic number,占2个字节,固定为55AA。
MBR是不属于任何⼀个操作系统,也不能⽤操作系统提供的磁盘操作命令来读取它,但可以通过命令来修改和重写,如在mi nix3⾥⾯,可以⽤命令: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=1 AH=错误代码
⽤DEBUG读取位于硬盘0柱⾯、0磁头、1扇区的操作如下:
A>DEBUG
-A 100
XXXX:XXXX MOV AX,0201 (⽤功能号2读1个扇区)
XXXX:XXXX MOV BX,1000 (把读出的数据放⼊缓冲区的地址为CS:1000)
XXXX:XXXX MOV CX,0001 (读0柱⾯,1扇区)
XXXX:XXXX MOV DX,0080 (指定第⼀物理盘的0磁头)
XXXX:XXXX INT 13
XXXX:XXXX INT 3
XXXX:XXXX (按回车键)
-G=100 (执⾏以上程序段)
-D 1000 11FF (显⽰512字节的MBR内容)
在windows操作系统下,例如xp,2003,Vista,windows7,有微软提供的接⼝直接读写mbr; FILE *
fd=fopen("\\\\.\\PHYSICALDRIVE0","rb+");
char buffer[512];
fread(buffer,512,1,fd);
//then you can edit buffer[512] as
fek(fd,0,SEEK_SET); //很重要
fwrite(buffer,512,1,fd); //把修改后的MBR写⼊到你的机器
fclo(fd); //⼤功告成
MBR组成
⼀个扇区的硬盘主引导记录MBR由如图6-15所⽰的4个部分组成。
主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运⾏系统引导程序。
出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。
分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。
结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。
GPT介绍
GPT(Globally Unique Identifier Partition Table Format)是⼀种由基于Itanium 计算机中的可扩展固件接⼝(EFI) 使⽤的磁盘分区架构。与主启动记录(MBR) 分区⽅法相⽐,GPT 具有更多的优点,因为它允许每个磁盘有多达128 个分区,⽀持⾼达18 千兆兆字节的卷⼤⼩,允许将主磁盘分区表和备份磁盘分区表⽤于冗余,还⽀持唯⼀的磁盘和分区ID (GUID)。
与⽀持最⼤卷为 2 TB (terabytes) 并且每个磁盘最多有4 个主分区(或3 个主分区,1 个扩展分区和⽆限制的逻辑驱动器)的主启动记录(MBR) 磁盘分区的样式相⽐,GUID 分区表(GPT) 磁盘分区样式⽀持最⼤卷为18 EB (exabytes) 并且每磁盘最多有128 个分区。与MBR 分区的磁盘不同,⾄关重要的平台操作数据位于分区,⽽不是位于⾮分区或隐藏扇区。另外,GPT
分区磁盘有多余的主要及备份分区表来提⾼分区数据结构的完整性。
在“磁盘管理”中的磁盘属性对话框中的“卷”选项卡上,具有GPT 分区样式的磁盘显⽰为GUID 分区表(GPT) 磁盘,⽽具有MBR 分区样式的磁盘显⽰为主启动记录(MBR) 磁盘。如果发⽣下列意外事件,可以在GPT 磁盘上执⾏MBR 磁盘⽀持的操作:
在运⾏带有Service Pack 1 (SP1) 的Windows Server 2003 的基于x86 的计算机和基于x64 的计算机上,操作系统必须驻留在MBR 磁盘上。其他的硬盘可以是MBR 或GPT。
在基于Itanium 的计算机上,操作系统加载程序和启动分区必须驻留在GPT 磁盘上。其他的硬盘可以是MBR 或GPT。
不能将GPT 移⾄运⾏Windows NT 4.0、Windows 2000、Windows XP 或Windows Server 2003 的基于x86 的计算机上。不过,可以将GPT 磁盘从运⾏带有SP1 的Windows Server 2003 的基于x86 的计
算机或基于x64 的计算机移⾄运⾏Windows Server 2003 或Windows XP 的基于Itanium 的计算机上,反之亦然。
不能使⽤基于Itanium 的Windows 版本,将GPT 磁盘从基于Itanium 的计算机移⾄运⾏带有SP1 的Windows Server 2003 的基于x86的计算机或基于x64 的计算机,然后启动该操作系统。在⾮基于Itanium 的计算机上使⽤的GPT 磁盘必须仅⽤于数据存储。
在单个动态磁盘组中既可以有MBR,也可以有GPT 磁盘。也使⽤将基本GPT 和MBR 磁盘的混合,但它们不是磁盘组的⼀部分。可以同时使⽤MBR 和GPT 磁盘来创建镜像卷、带区卷、跨区卷和RAID-5 卷,但是MBR 的柱⾯对齐的限制可能会使得创建镜像卷有困难。通常可以将MBR 的磁盘镜像到GPT 磁盘上,从⽽避免柱⾯对齐的问题。
可以将MBR 磁盘转换为GPT 磁盘,并且只有在磁盘为空的情况下,才可以将GPT 磁盘转换为MBR 磁盘。
不⽀持EFI 系统分区的镜像。必须使⽤bootcfg 命令克隆EFI 系统分区。
不能在可移动媒体,或者在与群集服务使⽤的共享SCSI 或Fibre Channel 总线连接的群集磁盘上使⽤GPT 分区样式。
可以使⽤ 命令⾏实⽤程序或EFI 固件实⽤程序Diskpart.efi 在基本GPT 磁盘上创建分区。有关 e 的详细信息,请参阅DiskPart。有关“磁盘管理”管理单元的详细信息,请参阅磁盘管理概述。有关Diskpart.efi 的详细信息,请参阅Intel ⽹站。
在基于Itanium 的计算机上的系统恢复⽅案中,请参阅计算机所附带的制造商⽂档来重新创建或恢复GPT 磁盘。
有关管理GPT 和MBR 磁盘的详细信息,请参阅可扩展固件接⼝或Microsoft Windows 资源⼯具包⽹站上的“Disk Manag ement”(磁盘管理)。
GPT的分区信息是在分区中,⽽不象MBR⼀样在主引导扇区,为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建⽴了⼀个保护分区(Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的⼤⼩在Windows下为12 8MB,Mac OS X下为200MB,在Window磁盘管理器⾥名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成⼀个未知格式的分区,⽽不是错误地当成⼀个未分区的磁盘。