基本磁盘、动态磁盘、GPT磁盘、MBR磁盘

        Windows磁盘管理器中,在磁盘标签处右击鼠标,随磁盘属性的不同会出现“转换到动态磁盘”,“转换到基本磁盘”“转换成GPT磁盘”,“转换成MBR磁盘”等选项。本文就此做简单介绍。

        基本磁盘与动态磁盘

        磁盘的使用方式可以分为两类:一类是“基本磁盘”。基本磁盘非常常见,我们平时使用的磁盘类型基本上都是“基本磁盘”。“基本磁盘”受26个英文字母的限制,也就是说磁盘的盘符只能是26个英文字母中的一个。因为A、B已经被软驱占用,实际上磁盘可用的盘符只有C~Z 24个。另外,在“基本磁盘”上只能建立四个主分区(注意是主分区,而不是扩展分区);另一种磁盘类型是“动态磁盘”。“动态磁盘”不受26个英文字母的限制,它是用“卷”来命名的。“动态磁盘”的最大优点是可以将磁盘容量扩展到非邻近的磁盘空间。

        动态硬盘,是指在磁盘管理器中将本地硬盘升级得来的。动态磁盘与基本磁盘相比,最大的不同就是不再采用以前的分区方式,而是叫做卷集(Volume),卷集分为简单卷、跨区卷、带区卷、镜像卷、RAID-5 卷。基本磁盘和动态磁盘相比,有以下区别:

        1、卷集或分区数量。动态磁盘在一个硬盘上可创建的卷集个数没有限制。而基本磁盘在一个硬盘上只能分最多四个主分区。

        2、磁盘空间管理。动态磁盘可以把不同磁盘的分区创建成一个卷集,并且这些分区可以是非邻接的,这样的大小就是几个磁盘分区的总大小。基本磁盘则不能跨硬盘分区并且要求分区必须是连续的空间,每个分区的容量最大只能是单个硬盘的最大容量,存取速度和单个硬盘相比也没有提升。

        3、磁盘容量大小管理。动态磁盘允许我们在不重新启动机器的情况下调整动态磁盘大小,而且不会丢失和损坏已有的数据。而基本磁盘的分区一旦创建,就无法更改容量大小,除非借助于第三方磁盘工具软件,比如PQ Magic。

        4、磁盘配置信息管理和容错。动态磁盘将磁盘配置信息放在磁盘中,如果是RAID容错系统会被复制到 其他动态磁盘上,这样可以利用RAID-1的容错功能,如果某个硬盘损坏,系统将自动调用另一个硬盘的数据,保持数据的完整性。而基本磁盘将配置信息存放在引导区,没有容错功能。

        基本磁盘转换为动态磁盘可以直接进行,但是该过程是不可逆的。要想转回基本磁盘,只有把所有数据全部拷出,然后删除硬盘所有分区后才能转回去。

        GPT磁盘与MBR磁盘

        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 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。

        在运行带有 Service Pack 1 (SP1) 的 Windows Server 2003 的基于 x86 的计算机和基于 x64 的计算机上,操作系统必须驻留在 MBR 磁盘上。其他的硬盘可以是 MBR 或 GPT。

        在基于 Itanium 的计算机上,操作系统加载程序和启动分区必须驻留在 GPT 磁盘上。其他的硬盘可以是 MBR 或 GPT。

在单个动态磁盘组中既可以有 MBR,也可以有 GPT 磁盘。也使用将基本 GPT 和 MBR 磁盘的混合,但它们不是磁盘组的一部分。可以同时使用 MBR 和 GPT 磁盘来创建镜像卷、带区卷、跨区卷和 RAID-5 卷,但是 MBR 的柱面对齐的限制可能会使得创建镜像卷有困难。通常可以将 MBR 的磁盘镜像到 GPT 磁盘上,从而避免柱面对齐的问题。可以将 MBR 磁盘转换为 GPT 磁盘,并且只有在磁盘为空的情况下,才可以将 GPT 磁盘转换为 MBR 磁盘。否则数据将发生丢失!!!

        不能在可移动媒体,或者在与群集服务使用的共享 SCSI 或 Fibre Channel 总线连接的群集磁盘上使用 GPT 分区样式。

GPT磁盘介绍

全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个物理硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录分区表。但因为MBR分区表不支持容量大于2TB的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表。GPT分区表支持最多128PB的硬盘和分区。

 

EFI介绍:

 

了解GUID分区表之前我们先要了解一下什么是EFI(Extensible Firmware Interface 可扩展固件接口)

 

含义EFI的产生

 

BIOS技术的兴起源于IBM PC/AT机器的流行以及第一台由康柏公司研制生产的“克隆”PC。在PC启动的过程中,BIOS担负着初始化硬件,检测硬件功能,以及引导操作系统的责任,在早期,BIOS还提供一套运行时的服务程序给操作系统及应用程序使用。BIOS程序存放于一个掉电后内容不会丢失的只读存储器中,系统加电时处理器的第一条指令的地址会被定位到BIOS的存储器中,便于使初始化程序得到执行。

 

众所周知,英特尔在近二十年来引领以x86系列处理器为基础的PC技术潮流,它的产品如CPU,芯片组等在PC生产线中占据绝对领导的位置。因此,不少人认为这一举动显示了英特尔公司欲染指固件产品市场的野心。事实上,EFI技术源于英特尔安腾处理器(Itanium)平台的推出。安腾处理器是英特尔瞄准服务器高端市场投入近十年研发力量设计产生的与x86系列完全不同的64位新架构。在x86系列处理器进入32位的时代,由于兼容性的原因,新的处理器(i80386)保留了16位的运行方式(实模式),此后多次处理器的升级换代都保留了这种运行方式。甚至在含64位扩展技术的至强系列处理器中,处理器加电启动时仍然会切换到16位的实模式下运行。英特尔将这种情况归咎于BIOS技术的发展缓慢。自从PC兼容机厂商通过净室的方式复制出第一套BIOS源程序,BIOS就以16位汇编代码,寄存器参数调用方式,静态链接,以及1MB以下内存固定编址的形式存在了十几年。虽然由于各大BIOS厂商近年来的努力,有许多新元素添加到产品中,如PnP BIOSACPI,传统USB设备支持等等,但BIOS的根本性质没有得到任何改变。这迫使英特尔在开发更新的处理器时,都必须考虑加进使效能大大降低的兼容模式。有人曾打了一个比喻:这就像保时捷新一代的全自动档跑车被人生套上去一个蹩脚的挂档器。

 

然而,安腾处理器并没有这样的顾虑,它是一个新生的处理器架构,系统固件和操作系统之间的接口都可以完全重新定义。并且这一次,英特尔将其定义为一个可扩展的,标准化的固件接口规范,不同于传统BIOS的固定的,缺乏文档的,完全基于经验和晦涩约定的一个事实标准。基于EFI的第一套系统产品的出现至今已经有五年的时间,如今,英特尔试图将成功运用在高端服务器上的技术推广到市场占有率更有优势的PC产品线中,并承诺在2006年间会投入全力的技术支持。

 

比较EFIBIOS

 

一个显著的区别就是EFI是用模块化,C语言风格的参数堆栈传递方式,动态链接的形式构建的系统,较BIOS而言更易于实现,容错和纠错特性更强,缩短了系统研发的时间。它运行于32位或64位模式,乃至未来增强的处理器模式下,突破传统16位代码的寻址能力,达到处理器的最大寻址。它利用加载EFI驱动的形式,识别及操作硬件,不同于BIOS利用挂载实模式中断的方式增加硬件功能。后者必须将一段类似于驱动的16位代码,放置在固定的0x000C00000x000DFFFF之间存储区中,运行这段代码的初始化部分,它将挂载实模式下约定的中断向量向其他程序提供服务。例如,VGA图形及文本输出中断(INT 10h),磁盘存取中断服务(INT 13h)等等。由于这段存储空间有限(128KB)BIOS对于所需放置的驱动代码大小超过空间大小的情况无能为力。另外,BIOS的硬件服务程序都已16位代码的形式存在,这就给运行于增强模式的操作系统访问其服务造成了困难。因此BIOS提供的服务在现实中只能提供给操作系统引导程序或MS-DOS类操作系统使用。而EFI系统下的驱动并不是由可以直接运行在CPU上的代码组成的,而是用EFI Byte Code编写而成的。这是一组专用于EFI驱动的虚拟机器指令,必须在EFI驱动运行环境(Driver Execution Environment,或DXE)下被解释运行。这就保证了充分的向下兼容性,打个比方说,一个带有EFI驱动的扩展设备,既可以将其安装在安腾处理器的系统中,也可以安装于支持EFI的新PC系统中,而它的EFI驱动不需要重新编写。这样就无需对系统升级带来的兼容性因素作任何考虑。另外,由于EFI驱动开发简单,所有的PC部件提供商都可以参与,情形非常类似于现代操作系统的开发模式,这个开发模式曾使Windows在短短的两三年时间内成为功能强大,性能优越的操作系统。基于EFI的驱动模型可以使EFI系统接触到所有的硬件功能,在操作操作系统运行以前浏览万维网站不再是天方夜谭,甚至实现起来也非常简单。这对基于传统BIOS的系统来说是件不可能的任务,在BIOS中添加几个简单的USB设备支持都曾使很多BIOS设计师痛苦万分,更何况除了添加对无数网络硬件的支持外,还得凭空构建一个16位模式下的TCP/IP协议栈。

 

一些人认为BIOS只不过是由于兼容性问题遗留下来的无足轻重的部分,不值得为它花费太大的升级努力。而反对者认为,当BIOS的出现制约了PC技术的发展时,必须有人对它作必要的改变。

 

EFI和操作系统

 

EFI在概念上非常类似于一个低阶的操作系统,并且具有操控所有硬件资源的能力。不少人感觉它的不断发展将有可能代替现代的操作系统。事实上,EFI的缔造者们在第一版规范出台时就将EFI的能力限制于不足以威胁操作系统的统治地位。首先,它只是硬件和预启动软件间的接口规范;其次,EFI环境下不提供中断的访问机制,也就是说每个EFI驱动程序必须用轮询的方式来检查硬件状态,并且需要以解释的方式运行,较操作系统下的驱动效率更低;再则,EFI系统不提供复杂的存储器保护功能,它只具备简单的存储器管理机制,具体来说就是指运行在x86处理器的段保护模式下,以最大寻址能力为限把存储器分为一个平坦的段,所有的程序都有权限存取任何一段位置,并不提供真实的保护服务。当EFI所有组件加载完毕时,系统可以开启一个类似于操作系统Shell的命令解释环境,在这里,用户可以调入执行任何EFI应用程序,这些程序可以是硬件检测及除错软件,引导管理,设置软件,操作系统引导软件等等。理论上来说,对于EFI应用程序的功能并没有任何限制,任何人都可以编写这类软件,并且效果较以前MS-DOS下的软件更华丽,功能更强大。一旦引导软件将控制权交给操作系统,所有用于引导的服务代码将全部停止工作,部分运行时代服务程序还可以继续工作,以便于操作系统一时无法找到特定设备的驱动程序时,该设备还可以继续被使用。

 

EFI的组成

 

一般认为,EFI由以下几个部分组成:

1. Pre-EFI初始化模块

2. EFI驱动执行环境

3. EFI驱动程序

4. 兼容性支持模块(CSM)

5. EFI高层应用

6. GUID 磁盘分区

 

各部分功能

 

在实现中,EFI初始化模块和驱动执行环境通常被集成在一个只读存储器中。Pre-EFI初始化程序在系统开机的时候最先得到执行,它负责最初的CPU,主桥及存储器的初始化工作,紧接着载入EFI驱动执行环境(DXE)。当DXE被载入运行时,系统便具有了枚举并加载其他EFI驱动的能力。在基于PCI架构的系统中,各PCI桥及PCI适配器的EFI驱动会被相继加载及初始化;这时,系统进而枚举并加载各桥接器及适配器后面的各种总线及设备驱动程序,周而复始,直到最后一个设备的驱动程序被成功加载。正因如此,EFI驱动程序可以放置于系统的任何位置,只要能保证它可以按顺序被正确枚举。例如一个具PCI总线接口的ATAPI大容量存储适配器,其EFI驱动程序一般会放置在这个设备的符合PCI规范的扩展只读存储器(PCI Expansion ROM)中,当PCI总线驱动被加载完毕,并开始枚举其子设备时,这个存储适配器旋即被正确识别并加载它的驱动程序。部分EFI驱动程序还可以放置在某个磁盘的EFI专用分区中,只要这些驱动不是用于加载这个磁盘的驱动的必要部件。在EFI规范中,一种突破传统MBR磁盘分区结构限制的GUID磁盘分区系统(GPT)被引入,新结构中,磁盘的分区数不再受限制(MBR结构下,只能存在4个主分区),并且分区类型将由GUID来表示。在众多的分区类型中,EFI系统分区可以被EFI系统存取,用于存放部分驱动和应用程序。很多人担心这将会导致新的安全性因素,因为EFI系统比传统的BIOS更易于受到计算机病毒的攻击,当一部分EFI驱动程序被破坏时,系统有可能面临无法引导的情况。实际上,系统引导所依赖的EFI驱动部分通常都不会存放在EFIGUID分区中,即使分区中的驱动程序遭到破坏,也可以用简单的方法得到恢复,这与操作系统下的驱动程序的存储习惯是一致的。CSM是在x86平台EFI系统中的一个特殊的模块,它将为不具备EFI引导能力的操作系统提供类似于传统BIOS的系统服务。

 

EFI的发展

 

英特尔无疑是推广EFI的积极因素,近年来由于业界对其认识的不断深入,更多的厂商正投入这方面的研究。包括英特尔,AMD在内的一些PC生产厂家联合成立了联合可扩展固件接口论坛,它将在近期推出第一版规范。这个组织将接手规划EFI发展的重任,并将英特尔的EFI框架解释为这个规范的一个具体实现。另外,各大BIOS提供商如Phoenix, AMI等,原先被认为是EFI发展的阻碍力量,现在也不断的推出各自的解决方案。分析人士指出,这是由于BIOS厂商在EFI架构中重新找到了诸如Pre-EFI启动环境之类的市场位置,然而,随着EFIPC系统上的成功运用,以及英特尔新一代芯片组的推出,这一部分市场份额将会不出意料的在英特尔的掌控之中。

 

引入主题开始了解GPT分区表,首先简要的介绍一下GPT分区的一些特点:

 

MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。

 

跟现代的MBR一样,GPT也使用逻辑区块地址(LBA)取代了早期的CHS寻址方式。传统MBR信息存储于LBA 0GPT头存储于LBA 1,接下来才是分区表本身。64Windows操作系统使用16,384字节(或32扇区)作为GPT分区表,接下来的LBA 34是硬盘上第一个分区的开始。

 

苹果公司曾经警告说:“不要假定所有设备的块大小都是512字节。”一些现代的存储设备如固态硬盘可能使用1024字节的块,一些磁光盘(MO)可能使用2048字节的扇区(但是磁光盘通常是不进行分区的)。一些硬盘生产商在计划生产4096字节一个扇区的硬盘(目前市面上西部数据就有4096字节的一个扇区),但截至2010年初,这种新硬盘使用固件对操作系统伪装成512字节一个扇区。

 

使用英特尔架构的苹果机也使用GPT

 

为了减少分区表损坏的风险,GPT在硬盘最后保存了一份分区表的副本。

 

点击查看原图

传统MBR (LBA 0)

 

点击查看原图

 

点击查看原图 

 

GPT分区表的最开头,处于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。在支持从GPT启动的操作系统中,这里也用于存储第一阶段的启动代码。在这个MBR中,只有一个标识为0xEE的分区,以此来表示这块硬盘使用GPT分区表。不能识别GPT硬盘的操作系统通常会识别出一个未知类型的分区,并且拒绝对硬盘进行操作,除非用户特别要求删除这些分区。这就避免了意外删除分区的危险。另外,能够识别GPT分区表的操作系统会检查保护MBR中的分区表,如果分区类型不是0xEE或者MBR分区表中有多个项,也会拒绝对硬盘进行操作。

 

在使用MBR/GPT混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区),可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区。如Boot Camp就是使用这种方式启动Windows

 

分区表头 (LBA 1)

 

点击查看原图

 

点击查看原图  

 

偏移

字节长度

说明

0x00

8

签名,固定为ASCII "EFI PART",16进制表示0x5452415020494645

0x08

4

版本号,目前的版本为V1.016进制表示0x00010000

0x0C

4

分区表头的大小(单位是字节,通常是92字节,即 5C 00 00 00

0x10

4

GPT头中字节的CRC32校验

0x14

4

固定值00 00 00 00

0x18

8

当前LBA(这个分区表头的位置)

0x20

8

备份LBA(另一个分区表头的位置)

0x28

8

第一个可用于分区的LBA(主分区表的最后一个LBA + 1

0x30

8

最后一个可用于分区的LBA(备份分区表的最后一个LBA 1

0x38

16

磁盘GUID

0x48

8

分区表项的起始LBA

0x50

4

分区表项的数量

0x54

4

一个分区表项的大小(通常是128

0x58

4

分区表CRC32校验

0x5C

420

保留,剩余的字节必须是0(对于512字节LBA的硬盘即是420个字节)

 

分区表头定义了硬盘的可用空间以及组成分区表的项的大小和数量。在使用64Windows Server 2003的机器上,最多可以创建128个分区,即分区表中保留了128个项,其中每个都是128字节。(EFI标准要求分区表最小要有16,384字节,即128个分区项的大小)分区表头还记录了这块硬盘的GUID,记录了分区表头本身的位置和大小(位置总是在LBA 1)以及备份分区表头和分区表的位置和大小(在硬盘的最后)。它还储存着它本身和分区表的CRC32校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错,如果出错了,可以使用软件从硬盘最后的备份GPT中恢复整个分区表,如果备份GPT也校验错误,硬盘将不可使用。所以GPT硬盘的分区表不可以直接使用16进制编辑器修改。

 

分区表项 (LBA 233)

 

点击查看原图

 

点击查看原图  

 

GUID分区表项

偏移

字节长度

说明

0x00

16

分区类型GUID

0x10

16

唯一的分区GUID

0x20

8

开始LBA

0x28

8

结束LBA

0x30

8

分区属性

0x38

72

分区名称 (Unicode)

 

分区属性

说明

Bit 0

 系统分区 00 00 00 00 00 00 00 00

Bit 60

 分区只读 00 00 00 00 00 00 00 10

Bit 62

 隐藏分区 00 00 00 00 00 00 00 40

Bit 63

 不挂载此分区(不分配盘符)00 00 00 00 00 00 00 80

 

分区类型GUID

相关操作系统

分区类型

GUID

(None)

未使用

00000000-0000-0000-0000-000000000000

MBR分区表

024DEE41-33E7-11D3-9D69-0008C781F39F

EFI系统分区

C12A7328-F81F-11D2-BA4B-00A0C93EC93B

BIOS引导分区

21686148-6449-6E6F-744E-656564454649

Windows

微软保留分区

E3C9E316-0B5C-4DB8-817D-F92DF00215AE

基本数据分区

EBD0A0A2-B9E5-4433-87C0-68B6B72699C7

逻辑软盘管理工具元数据分区

5808C8AA-7E8F-42E0-85D2-E1E90434CFB3

逻辑软盘管理工具数据分区

AF9B60A0-1431-4F62-BC68-3311714A69AD

Windows恢复环境

DE94BBA4-06D1-4D40-A16A-BFD50179D6AC

IBM通用并行文件系统(GPFS)分区

37AFFC90-EF7D-4e96-91C3-2D7AE055B174

HP-UX

数据分区

75894C1E-3AEB-11D3-B7C1-7B03A0000000

服务分区

E2A1E728-32E3-11D6-A682-7B03A0000000

Linux

数据分区

EBD0A0A2-B9E5-4433-87C0-68B6B72699C7

RAID分区

A19D880F-05FC-4D3B-A006-743F0F84911E

交换分区

0657FD6D-A4AB-43C4-84E5-0933C84B4F4F

逻辑卷管理器(LVM)分区

E6D6D379-F507-44C2-A23C-238F2A3DF928

保留

8DA63339-0007-60C0-C436-083AC8230908

FreeBSD

启动分区

83BD6B9D-7F41-11DC-BE0B-001560B84F0F

数据分区

516E7CB4-6ECF-11D6-8FF8-00022D09712B

交换分区

516E7CB5-6ECF-11D6-8FF8-00022D09712B

UFS分区

516E7CB6-6ECF-11D6-8FF8-00022D09712B

en:Vinum volume manager分区

516E7CB8-6ECF-11D6-8FF8-00022D09712B

ZFS分区

516E7CBA-6ECF-11D6-8FF8-00022D09712B

Mac OS X

HFS(HFS+)分区

48465300-0000-11AA-AA11-00306543ECAC

苹果公司UFS

55465300-0000-11AA-AA11-00306543ECAC

ZFS

6A898CC3-1DD2-11B2-99A6-080020736631

苹果RAID分区

52414944-0000-11AA-AA11-00306543ECAC

苹果RAID分区,下线

52414944-5F4F-11AA-AA11-00306543ECAC

苹果启动分区

426F6F74-0000-11AA-AA11-00306543ECAC

Apple Label

4C616265-6C00-11AA-AA11-00306543ECAC

Apple TV 恢复分区

5265636F-7665-11AA-AA11-00306543ECAC

Solaris

启动分区

6A82CB45-1DD2-11B2-99A6-080020736631

根分区

6A85CF4D-1DD2-11B2-99A6-080020736631

交换分区

6A87C46F-1DD2-11B2-99A6-080020736631

备份分区

6A8B642B-1DD2-11B2-99A6-080020736631

/usr 分区

6A898CC3-1DD2-11B2-99A6-080020736631

/var 分区

6A8EF2E9-1DD2-11B2-99A6-080020736631

/home 分区

6A90BA39-1DD2-11B2-99A6-080020736631

备用扇区

6A9283A5-1DD2-11B2-99A6-080020736631

保留分区

6A945A3B-1DD2-11B2-99A6-080020736631

6A9630D1-1DD2-11B2-99A6-080020736631

6A980767-1DD2-11B2-99A6-080020736631

6A96237F-1DD2-11B2-99A6-080020736631

6A8D2AC7-1DD2-11B2-99A6-080020736631

NetBSD

交换分区

49F48D32-B10E-11DC-B99B-0019D1879648

FFS分区

49F48D5A-B10E-11DC-B99B-0019D1879648

LFS分区

49F48D82-B10E-11DC-B99B-0019D1879648

RAID分区

49F48DAA-B10E-11DC-B99B-0019D1879648

concatenated分区

2DB519C4-B10F-11DC-B99B-0019D1879648

加密分区

2DB519EC-B10F-11DC-B99B-0019D1879648

 

GPT分区表使用简单而直接的方式表示分区。一个分区表项的前16字节是分区类型GUID。例如,EFI系统分区的GUID类型是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}。接下来的16字节是该分区唯一的GUID(这个GUID指的是该分区本身,而之前的GUID指的是该分区的类型)。再接下来是分区起始和末尾的64LBA编号,以及分区的名字和属性。

 

操作系统支持

 

对于不标准的MBR/GPT混合硬盘,不同的系统中的实现有些不一致。除非另加说明,操作系统在处理混合硬盘时优先读取GPT分区表

 

以下表格中的“不支持”应该理解成:不能识别GPT分区的硬盘,系统只能识别保护分区。GPT硬盘的数据可以通过第三方管理工具进行操作。

 

Unix操作系统

操作系统

版本

平台

BIOS/GPT启动

EFI/GPT启动

备注

FreeBSD

7.0以后

x86x86-64

MBR/GPT混合硬盘中,可以同时使用GPTMBR分区标识。

Linux

大多数x86架构的Linux发行版



Fedora 8+Ubuntu 8.04+

x86-64IA-64x86

一些分区工具,如fdisk,不支持GPT

gdiskgrub2之类的新工具支持GPT

Mac OS X

10.4.0以后(一些功能要到10.4.6以后)

x86x86-64

Solaris

Solaris 10 以后

x86x86-64SPARC

No (Work in Progress)

No (Work in Progress)

32Windows

操作系统

版本

平台

BIOS/GPT启动

EFI/GPT启动

备注

Windows XP

(2001-10-25)

x86

不支持

Windows Server 2003

(2003-04-24)

x86

不支持

Windows Server 2003

Service Pack 1 (2005-03-30)

x86

仅支持作为数据盘使用,在MBR/GPT混合硬盘中优先使用MBR

Windows Vista

(2005-07-22)

x86

MBR/GPT混合硬盘中优先使用MBR

Windows Server 2008

(2008-02-27)

x86

MBR/GPT混合硬盘中优先使用MBR

Windows 7

(2009-10-22)

x86

MBR/GPT混合硬盘中优先使用MBR

 

64Windows

 

下表列出了支持GPT64位版Windows。既包括IA-64架构的服务器版本,也包括x86-64EM64T架构。

 

操作系统

版本

平台

BIOS/GPT启动

EFI/GPT启动

备注

Windows XP

64-bit (2001-10-25)

IA-64

MBR/GPT混合硬盘中优先使用MBR。可拆卸磁盘仅支持MBR分区表。

Windows XP

64-bit, Version 2003 (2003-03-28)
(Workstation variant of Windows Server 2003 64-bit)

IA-64

MBR/GPT混合硬盘中优先使用MBR。可拆卸磁盘仅支持MBR分区表。

Windows Server 2003

64-bit (2003-04-24)

IA-64

MBR/GPT混合硬盘中优先使用MBR 默认使用GPTIA-64架构的启动盘必须是GPT硬盘,其余硬盘可以使用MBR也可以使用GPT

Windows Server 2003

x64, Service Pack 1 (2005-03-30)

x86-64

仅支持作为数据盘使用,在MBR/GPT混合硬盘中优先使用MBR

Windows XP

Professional x64 (2005-04-25)
(Workstation variant of Windows Server 2003 x64)

x86-64

仅支持作为数据盘使用,在MBR/GPT混合硬盘中优先使用MBR。可拆卸磁盘仅支持MBR分区表。

Windows Vista

(2005-07-22)

x86-64

MBR/GPT混合硬盘中优先使用MBR

Windows Server 2008

(2008-02-27)

x86-64, IA-64

MBR/GPT混合硬盘中优先使用MBR

Windows 7

(2009-10-22)

x86-64

MBR/GPT混合硬盘中优先使用MBR

Windows Server 2008 R2

(2009-10-22)
(Server variant of Windows 7)

x86-64, IA-64

MBR/GPT混合硬盘中优先使用MBR

  

以下是为了方便读者自行分析GPT磁盘结构,本人做的WinHex模板,包含“GPT头模板”、“分区表项模板” (使用时请将字体加粗部分复制到Windows中的记事本,另存为成*.tpl,放到WinHex所在目录中即可使用)

 

1GPT头模板

 

template "GUID Partition Table Header"

description "GUID Partition Table Header"

applies_to disk

sector-aligned

requires 0x00  "45 46 49 20 50 41 52 54"

 

begin

 

         {

         read-only char [8]   "签名"

         hex 4         "版本 (HEX)"

         uint32 "GPT头大小字节数"

         hex 4         "GPTCRC校验和 (HEX)"

    hex 4         "保留--必须为零 (HEX)"

         int64         "当前GPT头的LBA扇区号"

         int64         "GPT头备份LBA扇区号"

         int64         "GPT分区区域起始LBA"

         int64         "GPT分区区域结束LBA"

         read-only guid "磁盘GUID (GUID)"

         move -16

         hex 16      "磁盘GUID (16Byte HEX)"

         int64         "GPT分区表起始LBA"

         uint32       "分区表项数"

         uint32       "每分区表项占用字节数"

         hex 4         "分区表CRC校验和 (HEX)"        

         hex 420    "保留 (420Byte HEX)"

         }

 

         endsection

 

end

 

 

2、分区表项模板

 

template "GUID Partition Entry"

description "GUID Partition Entry"

applies_to disk

sector-aligned

multiple

begin

 

         {

         read-only guid "分区类型GUID (GUID)"

         move -16

         hex 16      "分区类型GUID (HEX)"

         read-only guid "唯一的分区GUID (GUID)"

         move -16

         hex 16      "唯一的分区GUID (HEX)"

         int64         "开始LBA"

         int64         "结束LBA"

         hex 8         "属性 (HEX)"

         char16[36]       "分区名称 (Unicode)"

         }

 

end

  

在此为广大读者献出一个用于修复GPT磁盘的WinHex脚本,主要用于MBR、主GPT头、主分区表项,损坏的修复,本脚本通过备份的GPT头与备份的分区表项进行修复,使用之前先判断备份部分是否正常,脚本如下(使用时请将字体加粗部分复制到Windows中的记事本,另存为成*.whs,放到WinHex所在目录中即可使用):

 

GPT Header 修复(用备份修复)

 

Assign DiskSize GetSize

 

Goto 0x1B8

Write 0x43C659CF   //磁盘签名

Move 2

Write 0x00000200EEFFFFFF01000000FFFFFFFF

Goto 0x1FE

Write 0x55AA

 

Goto (DiskSize-512)

Move 32

Read Temp1 8

 

Goto (DiskSize-512)

Read Header 512

 

Goto (DiskSize-512-16384)

Read ParBak 16384

 

Goto (Temp1*512)

Write Header

Write ParBak

 

Goto (Temp1*512)

Move 16

Write 0x00000000

Move 4

Write 0x0000000000000000

Write 0x0100000000000000

Move 32

Write 0x0000000000000000

 

Goto (DiskSize-512+32)

Read Temp2 8

Goto (Temp1*512+24)

Write Temp2

 

Goto (DiskSize-512+24)

Read Temp3 8

Goto (Temp1*512+32)

Write Temp3

 

Goto (Temp1*512+72)

Write ((Temp1*512+512)/512)

 

Goto (Temp1*512)

Assign Header CurrentPos

Block Header (Header+91)

CalcHash CRC32 HeaderCRC32

Goto (Temp1*512+16)

Write HeaderCRC32

Save

 

MessageBox "修复成功!"

数据恢复

        当存储介质出现损伤或由于人员误操作、操作系统本身故障所造成的数据看不见、无法读取、丢失。工程师通过特殊的手段读取却在正常状态下不可见、不可读、无法读的数据。

 

简介

        电子数据恢复是指通过技术手段,将保存在台式机硬盘、笔记本硬盘、服务器硬盘、存储磁带库、移动硬盘、U盘、数码存储卡、Mp3等等设备上丢失的电子数据进行抢救和恢复的技术。

 

原理
        现实中很多人不知道删除、格式化等硬盘操作丢失的数据可以恢复,以为删除、格式化以后数据就不存在了。事实上,上述简单操作后数据仍然存在于硬盘中,懂得数据恢复原理知识的人只需几下便可将消失的数据找回来,不要觉得不可思议,在了解数据在硬盘、优盘、软盘等介质上的存储原理后,你也可以亲自做一回魔术师。

 

方法
分区
        硬盘存放数据的基本单位为扇区,我们可以理解为一本书的一页。当我们装机或买来一个移动硬盘,第一步便是为了方便管理--分区。无论用何种分区工具,都会在硬盘的第一个扇区标注上硬盘的分区数量、每个分区的大小,起始位置等信息,术语称为主引导记录(MBR),也有人称为分区信息表。当主引导记录因为各种原因(硬盘坏道、病毒、误操作等)被破坏后,一些或全部分区自然就会丢失不见了,根据数据信息特征,我们可以重新推算计算分区大小及位置,手工标注到分区信息表,“丢失”的分区回来了。

文件分配表
        为了管理文件存储,硬盘分区完毕后,接下来的工作是格式化分区。格式化程序根据分区大小,合理的将分区划分为目录文件分配区和数据区,就像我们看得小说,前几页为章节目录,后面才是真正的内容。文件分配表内记录着每一个文件的属性、大小、在数据区的位置。我们对所有文件的操作,都是根据文件分配表来进行的。文件分配表遭到破坏以后,系统无法定位到文件,虽然每个文件的真实内容还存放在数据区,系统仍然会认为文件已经不存在。我们的数据丢失了,就像一本小说的目录被撕掉一样。要想直接去想要的章节,已经不可能了,要想得到想要的内容(恢复数据),只能凭记忆知道具体内容的大约页数,或每页(扇区)寻找你要的内容。我们的数据还可以恢复回来。

格式化
        我们向硬盘里存放文件时,系统首先会在文件分配表内写上文件名称、大小,并根据数据区的空闲空间在文件分配表上继续写上文件内容在数据区的起始位置。然后开始向数据区写上文件的真实内容,一个文件存放操作才算完毕。   删除操作却简单的很,当我们需要删除一个文件时,系统只是在文件分配表内在该文件前面写一个删除标志,表示该文件已被删除,他所占用的空间已被"释放", 其他文件可以使用他占用的空间。所以,当我们删除文件又想找回他(数据恢复)时,只需用工具将删除标志去掉,数据被恢复回来了。当然,前提是没有新的文件写入,该文件所占用的空间没有被新内容覆盖。

删除
        格式化操作和删除相似,都只操作文件分配表,不过格式化是将所有文件都加上删除标志,或干脆将文件分配表清空,系统将认为硬盘分区上不存在任何内容。格式化操作并没有对数据区做任何操作,目录空了,内容还在,借助数据恢复知识和相应工具,数据仍然能够被恢复回来。   注意:格式化并不是100%能恢复,有的情况磁盘打不开,需要格式化才能打开。如果数据重要,千万别尝试格式化后再恢复,因为格式化本身就是对磁盘写入的过程,只会破坏残留的信息。

覆盖
        数据恢复工程师常说:“只要数据没有被覆盖,数据就有可能恢复回来”。

        因为磁盘的存储特性,当我们不需要硬盘上的数据时,数据并没有被拿走。删除时系统只是在文件上写一个删除标志,格式化和低级格式化也是在磁盘上重新覆盖写一遍以数字0为内容的数据,这就是覆盖。

        一个文件被标记上删除标志后,他所占用的空间在有新文件写入时,将有可能被新文件占用覆盖写上新内容。这时删除的文件名虽然还在,但他指向数据区的空间内容已经被覆盖改变,恢复出来的将是错误异常内容。同样文件分配表内有删除标记的文件信息所占用的空间也有可能被新文件名文件信息占用覆盖,文件名也将不存在了。

        当将一个分区格式化后,有拷贝上新内容,新数据只是覆盖掉分区前部分空间,去掉新内容占用的空间,该分区剩余空间数据区上无序内容仍然有可能被重新组织,将数据恢复出来。

        同理,克隆、一键恢复、系统还原等造成的数据丢失,只要新数据占用空间小于破坏前空间容量,数据恢复工程师就有可能恢复你要的分区和数据。

 

数据恢复种类
硬件故障数据恢复
        硬件故障占所有数据意外故障一半以上,常有雷击、高压、高温等造成的电路故障,高温、振动碰撞等造成的机械故障,高温、振动碰撞、存储介质老化造成的物理坏磁道扇区故障,当然还有意外丢失损坏的固件BIOS信息等。

        硬件故障的数据恢复当然是先诊断,对症下药,先修复相应的硬件故障,然后根据修复其他软故障,最终将数据成功恢复。   电路故障需要我们有电路基础,需要更加深入了解硬盘详细工作原理流程。机械磁头故障需要100级以上的工作台或工作间来进行诊断修复工作。另外还需要一些软硬件维修工具配合来修复固件区等故障类型。

磁盘阵列RAID数据恢复
        磁盘阵列的存储原理这里不作讲解,可参看本站阵列知识文章,其恢复过程也是先排除硬件及软故障,然后分析阵列顺序、块大小等参数,用阵列卡或阵列软件重组,重组后便可按常规方法恢复数据。

 

数据恢复方法
硬盘数据恢复
        硬盘软故障:系统故障:系统不能正常启动、密码或权限丢失、分区表丢失、BOOT区丢失、MBR丢失; 文件丢失:误操作、误格式化、误克隆、误删除、误分区、病毒破坏、黑客攻击、PQ操作失败、RAID磁盘阵列失效等; 文件损坏:损坏的Office系列Word、Excel、Access、PowerPoint文件Microsoft SQL数据库复、Oracle数据库文件修复、Foxbase/foxpro的dbf数据库文件修复;损坏的邮件Outlook Express dbx文件,Outlook pst文件的修复;损坏的MPEG、asf、RM等媒体文件的修复。

硬盘物理故障
        CMOS不认盘; 常有一种“咔嚓咔嚓”的磁头撞击声; 电机不转,通电后无任何声音; 磁头错位造成读写数据错误; 启动困难、经常死机、格式化失败、读写困难; 自检正常,但“磁盘管理”中无法找到该硬盘; 电路板有明显的烧痕等。 磁盘物理故障分类: 盘体故障:磁头烧坏、磁头老化、磁头芯片损坏、电机损坏、磁头偏移、零磁道坏、大量坏扇、盘片划伤、磁组变形; 电路板故障:电路板损坏、芯片烧坏、断针断线。 固件信息丢失、固件损坏等。

U盘数据恢复
        U盘,优盘,XD卡,SD卡,CF卡,MEMORY STICK,,SM卡,MMC卡,MP3,MP4,记忆棒,数码相机,DV,微硬盘,光盘,软盘等各类存储设备。硬盘,移动盘,闪盘,SD卡、CF卡等数据介质损坏或出现电路板故障、磁头偏移、盘片划伤等情况 下,采用开体更换,加载,定位等方法进行数据修复。

        数码相机内存卡,如,SD卡,CF卡,记忆棒等,U盘,甚至最新的SSD固态硬盘。由于没有盘体,没有盘片,存储的数据是FLASH芯片。如果出现硬件故障,目前只有极少数数据恢复公司可以恢复此类介质,这是由于一般的数据恢复公司做此类介质时,需要匹配对应的主控芯片,而主控芯片在买来备件后需要拆开后才能知道,备件一拆,立马毁了,如果主控芯片不能配对,数据仍然无法恢复。即使碰巧配上主控型号,也不代表一定可以读出数据,因此恢复的成本和代价非常之高。一般的数据恢复公司碰上此类介质,成功率非常低,基本上放弃,这种恢复技术和原理是目前大多数数据恢复的做法。但是,对于恢复FLASH类的介质,已经新出一种数据恢复技术,可以不需要配对主控芯片,通过一种特殊的硬件设备,直接读取FLASH芯片里的代码,然后配上特殊的算法和软件,通过人工组合,直接重组出FLASH数据。这种恢复方法和原理,成功率几乎接近100%。但是受制于此类设备的昂贵,同时对数据恢复技术要求很高,工程师不但要精通硬件,还需要软件,更要精通文件系统,因此目前全国只有极个别的数据恢复公司可以做到成功率接近100%,有些公司花了很高代价采购此设备后,由于工程师技术所限,不会使用,同样无法恢复。虽然从技术上解决了FLASH恢复的难题,但是对客户而言,此类恢复的成本非常之高,比硬盘的硬件故障恢复价格要高。2G左右的恢复费接近千元,32G,64G容量的恢复费用基本上在3000-5000。

Unix数据恢复
  基于Solaris SPARC 平台的数据恢复,基于INTEL 平台的Solaris 数据恢复,可恢复SCO OPERNSERVER数据,HP-UNIX的数据恢复,IBM-AIX的数据恢复。

        Linux数据恢复Linux操作系统中的数据备份工作是Linux系统管理员的重要工作和职责。传统的Linux服务器数据备份的方法很多,备份的手段也多种多样。常见的Linux数据恢复备份方式仅仅是把数据通过TAR命令压缩拷贝到磁盘的其它区域中去。还有比较保险的做法是双机自动备份,不把所有数据存放在一台计算机上,否则一旦这台计算机的硬盘物理性损坏,那么一切数据将不复存在了。所以双机备份是商业服务器数据安全的基本要求。

        RAID恢复SCSI开盘恢复服务器数据恢复数据库数据恢复。

 

数据恢复的技巧
        1.不必完全扫描

        如果你仅想找到不小心误删除的文件,无论使用哪种数据恢复软件,也不管它是否具有类似EasyRecovery快速扫描的方式,其实都没必要对删除文件的硬盘分区进行完全的簇扫描。因为文件被删除时,操作系统仅在目录结构中给该文件标上删除标识,任何数据恢复软件都会在扫描前先读取目录结构信息,并根据其中的删除标志顺利找到刚被删除的文件。所以,你完全可在数据恢复软件读完分区的目录结构信息后就手动中断簇扫描的过程,软件一样会把被删除文件的信息正确列出,如此可节省大量的扫描时间,快速找到被误删除的文件数据。

        2.尽可能采取NTFS格式分区

        NTFS分区的MFT以文件形式存储在硬盘上,这也是EasyRecovery和Recover4all即使使用完全扫描方式对NTFS分区扫描也那么快速的原因——实际上它们在读取NTFS的MFT后并没有真正进行簇扫描,只是根据MFT信息列出了分区上的文件信息,非常取巧,从而在NTFS分区的扫描速度上压倒了老老实实逐个簇扫描的其他软件。不过对于NTFS分区的文件恢复成功率各款软件几乎是一样的,事实证明这种取巧的办法确实有效,也证明了NTFS分区系统的文件安全性确实比FAT分区要高得多,这也就是NTFS分区数据恢复在各项测试成绩中最好的原因,只要能读取到MFT信息,就几乎能100%恢复文件数据。

        3.巧妙设置扫描的簇范围

        设置扫描簇的范围是一个有效加快扫描速度的方法。像EasyRecovery的高级自定义扫描方式、FinalData和File Recovery的默认扫描方式都可以让你设置扫描的簇范围以缩短扫描时间。当然要判断目的文件在硬盘上的位置需要一些技巧,这里提供一个简单的方法,使用操作系统自带的硬盘碎片整理程序中的碎片分析程序(千万小心不要碎片整理啊,只是用它的碎片分析功能),在分区分析完后程序会将硬盘的未使用空间用图形方式清楚地表示出来,那么根据图形的比例估计这些未使用空间的大致簇范围,搜索时设置只搜索这些空白的簇范围就好了,对于大的分区,这确实能节省不少扫描时间。

        4.使用文件格式过滤器

        以前没用过数据恢复软件的朋友在第一次使用时可能会被软件的能力吓一跳,你的目的可能只是要找几个误删的文件,可软件却列出了成百上千个以前删除了的文件,要找到自己真正需要的文件确实十分麻烦。这里就要使用EasyRecovery独有的文件格式过滤器功能了,在扫描时在过滤器上填好要找文件的扩展名,如“*.doc”,那么软件就只会显示找到的DOC文件了;如果只是要找一个文件,你甚至只需要在过滤器上填好文件名和扩展名(如important.doc),软件自然会找到你需要的这个文件,很是快捷方便。

 

数据恢复需要的技能
        数据恢复是一个技术含量比较高的行业,数据恢复技术人员需要具备汇编语言和软件应用的技能,还需要电子维修和机械维修以及硬盘技术。

        第一:软件应用和汇编语言基础

        在数据恢复的案例中,软件级的问题占了三分之二以上的比例,比如文件丢失、分区表丢失或破坏、数据库破坏等,这些就需要具备对DOS、Windows、Linux以及Mac的操作系统以及数据结构的熟练掌握,需要对一些数据恢复工具和反汇编工具的熟练应用。

        第二:电子电路维修技能

        在硬盘的故障中,电路的故障占据了大约一成的比例,最多的就是电阻烧毁和芯片烧毁,作为一个技术人员,必须具备电子电路知识已经熟练的焊接技术。

        第三:机械维修技能

        随着硬盘容量的增加,硬盘的结构也越来越复杂,磁头故障和电机故障也变的比较常见,开盘技术已经成为一个数据恢复工程师必须具备的技能。

        第四:硬盘固件级维修技术

        硬盘固件损坏也是造成数据丢失的一个重要原因,固件维修不当造成数据破坏的风险相对比较高,而固件级维修则需要比较专业的技能和丰富的经验。

如何使用WinHex脚本自动修复FAT32文件系统DBR

        此脚本不是去复制备份的DBR,而是通过文件系统计算BPB参数,来达到修复文件系统的目的,下面是脚本:

 

Assign ParSize GetSize
Assign SecSize 512

Goto 0x000
Write 0xEB5890
Write 0x4D53444F53352E30
Write SecSize
Write 0x00
Write 0x0000
Write 0x02
Write 0x0000
Write 0x0000
Write 0xF8
Write 0x0000
Write 0x3F00
Write 0xFF00
Write 0x00000000
Write 0x0000000000000000
Write 0x0000
Write 0x0000
Write 0x02000000
Write 0x0100
Write 0x0600
Write 0x000000000000000000000000
Write 0x80
Write 0x00
Write 0x29
Write 0x9E3A76F0
Write 0x48424E2052657061697220
Write 0x4641543332202020
{
Write 0x00
}[420]
Write 0x55AA

Goto 0x020
Write (ParSize/SecSize)

Goto 0x000
Find 0xF8FFFF0FFFFFFF Down
IfFound
Assign FAT1 CurrentPos
Move SecSize
EndIF

Find 0xF8FFFF0FFFFFFF Down
IfFound
Assign FAT2 CurrentPos
Move SecSize
EndIF

Goto 0x024
Write ((FAT2/SecSize)-(FAT1/SecSize))

Goto 0x00E
Write (FAT1/SecSize)

Goto ((FAT2-FAT1)+FAT2)
Find 0x2E20202020202020202020 Down
IfFound
Assign SEC1 CurrentPos
Move 26
Read CDX1 2
EndIF

Find 0x2E20202020202020202020 Down
IfFound
Assign SEC2 CurrentPos
Move 26
Read CDX2 2
EndIF

Goto 0x00D
Write (((SEC1/SecSize)-(SEC2/SecSize))/((CDX1)-(CDX2)))

MessageBox "DBR修复完成!"

FAT32、NTFS、exFAT:试看分区格式与固态硬盘性能

固态硬盘迅速普及,相关应用问题也逐渐多了起来,尤其是如何做到性能的最优化?Tom'sHardware今天做了一个很特别的评测,考察了固态硬盘在FAT32、NTFS、exFAT三种不同分区格式行下的性能差异。或许很多玩家根本还没注意到这方面的影响吧。

FAT32:

1997年的Windows 95 OSR2第二版系统中首次引入,至今依然很流行,特别是低容量设备上,因为支持实在太过广泛,技术所有的主流操作系统都可以创建、读取、写入FAT32分区。

因为是32位文件系统,FAT32分区的最大容量只有2TB,8KB簇下也不过32TB,单个文件体积更是不能超过4GB,文件名长度也不可以超过255个字符。

另外,FAT32不支持日志、版权管理等高级技术,安全性也很差。

NTFS:

全称New Technology File System(新技术文件系统),Windows NT的新特性,属性类似IBM HPFS。文件体积最大16TB(理论上16EB),分区容量最大256TB,不过文件名还是最多255个字符。

NTFS还支持LZ77压缩、文件级加密(一般是AES)、访问控制(ACL),簇尺寸减小到4KB(这一点对固态硬盘很重要)。主文件表(MFT)负责存储稳健的属性、位置、访问信息。

exFAT:

微软专门为闪存设备设计的文件系统,高容量的SDXC卡默认都是这种格式,但也并不强求。Windows XP SP2、Windows Vista SP1及以上系统都支持,分区最大容量64ZB,文件体积最大16EB。簇尺寸可以大到16MB,访问控制则还是依靠ACL。

exFAT利用剩余空间位图来管理容量分配,提高删除性能,这对改善写入性能非常重要,尤其是对比NTFS。

但要注意的是,在exFAT分区上安装Windows系统是不可能的。Windows Vista/7都非常依赖NTFS的文件许可等特性。

不过由于微软授权机制的限制,exFAT的普及并不广泛,在消费电子领域的应用也不是特别多。

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

测试平台配置:

处理器:Core i5-2500K 3.3GHz
主板:技嘉GA-Z68X-UD3H-B3
内存:海盗船TR3X6G1600C8D DDR3-1333 2GB×2
系统盘:Intel X25-M G1 80GB (固件0701)
测试盘:三星830 256GB、思民F1 240GB
控制器:Intel Z68 SATA 6Gbps
电源:海韵X-760 760W
操作系统:Windows 7 SP1 x64旗舰版
驱动程序:Intel INF 9.2.0.1030、Intel RST 10.5.0.1026

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能
参测固态硬盘之一:三星830 256GB (MCX主控)

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能
参测固态硬盘之二:思民F1 240GB (SandForce SF-2281主控)

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

AS SSD 4KB随机读写:FAT32上三星830的写入慢了太多,但是思民F1上又是最好的,这似乎不是分区格式本身的问题。 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

AS SSD 4KB随机读写(队列深度64):exFAT都是最好的,NTFS紧随其后,FAT32就完全不行了,不过注意普通桌面应用是极少能涉及到64的队列深度的。 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

AS SSD持续读写:FAT32再次败下阵来,特别是思民F1上惨不忍睹。exFAT、NTFS读取都差不多,但写入得看硬盘。 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

AS SSD访问时间:exFAT、NTFS旗鼓相当,FAT32又一次不济。 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

AS SSD拷贝测试:这个项目更偏向实际情况,NTFS自然是首选,FAT32老了。

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

AS SSD整体得分:exFAT、NTFS彼此彼此,互有高低。

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

CrystalDiskMark 4KB随机读写:FAT32的读取还好,写入就不行了,意料之中。 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

CrystalDiskMark 4KB读写(队列深度32):同上。 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

CrystalDiskMark 512KB随机读写:exFAT在三星830上很突出,思民F1上则是NTFS略略占优,看来不同固态硬盘的影响也不小。 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

CrystalDiskMark持续读写:这次三种各式完全一致,难得。

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

Iometer 4KB随机读写:FAT32还是读取勉强还能凑合,写入就完全不行了。 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

Iometer持续读写:几乎完全一样,FAT32只是偶尔稍稍落后一点。 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

Iometer数据库模式:FAT32大败,NTFS大胜。

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

Iometer网络服务器模式:FAT32这次还不错。

Iometer工作站模式:FAT32又成了阿斗。

 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能

PCMark 7:媒体中心、Windows Media Player添加音乐两个项目都惊人地一致,程序载入、游戏、Windows Movie Maker视频编辑、Windows Defender、系统存储等项目FAT32稍稍落后但不明显,Windows照片库导入图片因为要写入很多数据,FAT32劣势就出来了。

小结:

如果你使用Windows系统,NTFS文件系统显然是上佳之选。这种默认的分区格式在测试的两块固态硬盘上基本都可以带来最好的性能,便利性也是最好的,而且很多非Windows系统也能读取它,有着较好的跨系统兼容性。

FAT32虽然有着最广泛的平台兼容性,但毕竟廉颇老矣,除了小容量U盘之外实在不推荐使用。缺乏各种先进特性,读写性能也是一塌糊涂。

exFAT其实也表现良好,很多时候甚至要比NTFS更好一些,良好的热插拔支持更是使得它非常适合外接USB存储设备,不过内部硬盘最好还是选NTFS,尤其是系统盘只能用NTFS。如果你有多块固态硬盘,内NTFS外exFAT或许是最佳选择。 

FAT32/NTFS/exFAT:试看分区格式与固态硬盘性能