学校地址:湖南省 长沙市 雨花区 车站南路红花坡路口 |
学校地址:湖南省 长沙市 雨花区 车站南路红花坡路口 |
硬盘容量限制问题再现!各位打算用2T以上硬盘的朋友们请注意了!现在市场上单碟500G的硬盘也已经面市,2T、2.5T硬盘在2009年也已经面市。硬盘容量突飞猛进,现1T硬盘价格早已降至6个专业课程的学费欢迎查看左右,2T硬盘都已开始在用户中普及。可是,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 (6553616255),一扇区是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(655366553565536),这样可支持的硬盘容量就达到了281,474,976,710,655512=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硬盘当从盘用。
MBR介绍
在传统硬盘分区模式中,引导扇区是每个分区(Partition)的第一扇区,而主引导扇区是硬盘的第一扇区。它由三个部分组成,主引导记录MBR、硬盘分区表DPT和硬盘有效标志。在总共512字节的主引导扇区里MBR占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占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=1 AH=错误代码
用DEBUG读取位于硬盘0柱面、0磁头、1扇区的操作如下:
ADEBUG
-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 your wish......
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,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 分区样式。
可以使用 DiskPart.exe 命令行实用程序或 EFI 固件实用程序 Diskpart.efi 在基本 GPT 磁盘上创建分区。有关 DiskPart.exe 的详细信息,请参阅 DiskPart。有关磁盘管理管理单元的详细信息,请参阅磁盘管理概述。有关 Diskpart.efi 的详细信息,请参阅 Intel 网站。
在基于 Itanium 的计算机上的系统恢复方案中,请参阅计算机所附带的制造商文档来重新创建或恢复 GPT 磁盘。
有关管理 GPT 和 MBR 磁盘的详细信息,请参阅可扩展固件接口 或 Microsoft Windows 资源工具网站上的Disk Management(磁盘管理)。
GPT的分区信息是在分区中,而不象MBR一样在主引导扇区,为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区(Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。
|