基本磁盘和动态磁盘
在对驱动器进行分区或获取有关驱动器分区布局的信息之前,必须先了解基本和动态磁盘存储类型的功能和限制。
出于本主题的目的,术语 卷 用于引用 Windows作系统用来存储文件的有效文件系统(通常是 NTFS)格式化的磁盘分区的概念。 卷具有 Win32 路径名称,可通过 FindFirstVolume 和 FindNextVolume 函数枚举,并且通常为其分配了驱动器号,例如 C:。 有关卷和文件系统的详细信息,请参阅 文件系统。
在本主题中:
在此上下文中引用存储类型时有两种类型的磁盘:基本磁盘 和 动态磁盘。 请注意,此处讨论的存储类型与物理磁盘或分区样式不同,这些类型是相关的但不同的概念。 例如,引用基本磁盘并不表示特定的分区样式,还需要指定用于讨论中的磁盘的分区样式。 有关基本磁盘存储类型与物理硬盘的关系的简化说明,请参阅 磁盘设备和分区。
基本磁盘
基本磁盘 是最常用于 Windows 的存储类型。 术语 基本磁盘 是指包含分区(例如主分区和逻辑驱动器)的磁盘,而这些磁盘则通常使用文件系统进行格式化,以成为文件存储的卷。 基本磁盘提供了一个简单的存储解决方案,可适应不断变化的存储要求方案的有用数组。 基本磁盘还支持群集磁盘、电气和电子工程师研究所(IEEE)1394 磁盘和通用串行总线(USB)可移动驱动器。 为了向后兼容,基本磁盘通常使用与 Microsoft MS-DOS作系统和所有版本的 Windows 使用的磁盘相同的主启动记录(MBR)分区样式,但也支持 GUID 分区表(GPT)分区。 有关 MBR 和 GPT 分区样式的详细信息,请参阅 分区样式 部分。
通过将现有主分区和逻辑驱动器扩展到同一磁盘上的相邻连续未分配空间,可以向现有主分区和逻辑驱动器添加更多空间。 若要扩展基本卷,必须使用 NTFS 文件系统格式化它。 可以在包含它的扩展分区中的连续可用空间内扩展逻辑驱动器。 如果将逻辑驱动器扩展到扩展分区中可用的可用空间之外,只要扩展分区后接连续的未分配空间,扩展分区就会增大为包含逻辑驱动器。 有关详细信息,请参阅 基本磁盘和卷的工作原理。
以下作只能在基本磁盘上执行:
- 创建和删除主分区和扩展分区。
- 在扩展分区中创建和删除逻辑驱动器。
- 格式化分区并将其标记为活动。
动态磁盘
注意
对于除镜像启动卷(使用镜像卷托管作系统)之外的所有用法,动态磁盘已弃用。 对于需要针对驱动器故障进行复原的数据,请使用存储空间,这是一种可复原的存储虚拟化解决方案。 有关详细信息,请参阅 存储空间概述。
动态磁盘 提供基本磁盘的功能,例如能够创建跨多个磁盘(跨磁盘和条带卷)的卷,以及创建容错卷(镜像卷和 RAID-5 卷)的功能。 与基本磁盘一样,动态磁盘可以在支持这两者的系统上使用 MBR 或 GPT 分区样式。 动态磁盘上的所有卷称为动态卷。 动态磁盘为卷管理提供了更大的灵活性,因为它们使用数据库跟踪有关磁盘上的动态卷以及计算机上的其他动态磁盘的信息。 因为计算机中的每个动态磁盘存储动态磁盘数据库的副本,例如,损坏的动态磁盘数据库可以使用另一个动态磁盘上的数据库来修复一个动态磁盘。 数据库的位置由磁盘的分区样式确定。 在 MBR 分区上,数据库包含在磁盘的最后 1 兆字节 (MB) 中。 在 GPT 分区上,数据库包含在 1 MB 保留(隐藏)分区中。
动态磁盘是一种单独的卷管理形式,允许卷在一个或多个物理磁盘上具有非连续区。 动态磁盘和卷依赖于逻辑磁盘管理器(LDM)和虚拟磁盘服务(VDS)及其关联功能。 这些功能使你能够执行任务,例如将基本磁盘转换为动态磁盘,以及创建容错卷。 为了鼓励使用动态磁盘,多分区卷支持已从基本磁盘中删除,现在在动态磁盘上完全受支持。
只能在动态磁盘上执行以下作:
- 创建和删除简单、跨越、条带化、镜像和 RAID-5 卷。
- 扩展简单卷或跨卷。
- 从镜像卷中删除镜像,或将镜像卷分成两个卷。
- 修复镜像卷或 RAID-5 卷。
- 重新激活缺失或脱机磁盘。
基本磁盘和动态磁盘之间的另一个区别是,动态磁盘卷可以由一个或多个物理磁盘上的一组不连续区组成。 相比之下,基本磁盘上的卷由单个磁盘上的一组连续盘区组成。 由于 LDM 数据库所需的磁盘空间位置和大小,Windows 无法将基本磁盘转换为动态磁盘,除非磁盘上至少有 1 MB 的未使用空间。
无论系统上的动态磁盘是使用 MBR 还是 GPT 分区样式,都可以在系统上创建最多 2,000 个动态卷,尽管建议的动态卷数为 32 或更少。 有关使用动态磁盘和卷的详细信息和其他注意事项,请参阅 动态磁盘和卷。
有关动态磁盘的更多功能和用法方案,请参阅 什么是动态磁盘和卷?。
基本磁盘和动态磁盘共有的作如下:
- 支持 MBR 和 GPT 分区样式。
- 检查磁盘属性,例如容量、可用可用空间和当前状态。
- 查看分区属性,例如偏移量、长度、类型以及分区是否可以在启动时用作系统卷。
- 查看卷属性,例如大小、驱动器号分配、标签、类型、Win32 路径名称、分区类型和文件系统。
- 为磁盘卷或分区以及 CD-ROM 设备建立驱动器号分配。
- 将基本磁盘转换为动态磁盘,或将动态磁盘转换为基本磁盘。
除非另行指定,否则 Windows 默认将驱动器分区为基本磁盘。 必须将基本磁盘显式转换为动态磁盘。 但是,在尝试执行此作之前,必须考虑磁盘空间注意事项。
分区样式
分区样式,有时也称为 分区方案,是指磁盘布局的特定基础结构以及分区的实际排列方式、功能是什么以及限制是什么。 若要启动 Windows,基于 x86 和基于 x64 的计算机中的 BIOS 实现需要一个基本磁盘,该磁盘必须至少包含一个主启动记录(MBR)分区标记为活动状态,其中有关 Windows作系统的信息(但不一定是整个作系统安装)以及有关磁盘上的分区的信息存储在何处。 此信息放置在单独的位置,这两个位置可能位于单独的分区或单个分区中。 所有其他物理磁盘存储都可以设置为两种可用分区样式的各种组合,如以下部分所述。 有关其他系统类型的详细信息,请参阅有关 分区样式的 TechNet 主题。
如前所述,动态磁盘遵循略有不同的使用方案,以及它们利用这两种分区样式的方式受该用法的影响。 由于动态磁盘通常不用于包含系统启动卷,因此可以简化此讨论以排除特殊情况。 有关分区数据块布局以及与分区样式相关的基本或动态磁盘使用方案的详细信息,请参阅 基本磁盘和卷的工作原理 和 动态磁盘和卷的工作原理。
主启动记录
运行 Windows 的所有基于 x86 的计算机和基于 x64 的计算机都可以使用称为 主启动记录(MBR)的分区样式。 MBR 分区样式包含一个分区表,用于描述分区位于磁盘上的位置。 由于 MBR 是 Windows Server 2003 和 Service Pack 1 (SP1)之前基于 x86 的计算机上唯一可用的分区样式,因此无需选择此样式。 它会自动使用。
可以使用 MBR 分区方案在基本磁盘上最多创建四个分区:四个主要分区或三个主要分区和一个扩展分区。 扩展分区可以包含一个或多个逻辑驱动器。 下图演示了使用 MBR 的基本磁盘上三个主要分区和一个扩展分区的示例布局。 扩展分区包含其中四个扩展逻辑驱动器。 扩展分区可能或可能不在磁盘末尾,但它始终是逻辑驱动器 1-n 的单个连续空间。
使用 mbr三个主要分区和一个扩展分区
每个分区(无论是主分区还是扩展分区)都可以格式化为 Windows 卷,并具有卷到分区的一对一关联。 换句话说,单个分区不能包含多个卷。 在此示例中,Windows 总共有七个卷可用于文件存储。 未格式化的分区不适用于 Windows 中的文件存储。
动态磁盘 MBR 布局看起来与基本磁盘 MBR 布局非常相似,只允许一个主分区(称为 LDM 分区),不允许扩展分区,LDM 数据库磁盘末尾有一个隐藏分区。 有关 LDM 的详细信息,请参阅 动态磁盘 部分。
GUID 分区表
除了 MBR 分区样式之外,运行 Windows Server 2003 SP1 及更高版本的系统还可以使用称为全局唯一标识符(GUID) 分区表(GPT)的分区样式。 使用 GPT 分区样式的基本磁盘最多可以有 128 个主要分区,而动态磁盘将具有单个 LDM 分区(与 MBR 分区一样)。 由于使用 GPT 分区的基本磁盘不会限制为四个分区,因此无需创建扩展分区或逻辑驱动器。
GPT 分区样式还具有以下属性:
- 允许大于 2 TB 的分区。
- 增加了对分区表的复制和循环冗余检查(CRC)保护的可靠性。
- 支持原始设备制造商(OEM)、独立软件供应商(ISV)和其他作系统定义的其他分区类型 GUID。
下图演示了基本磁盘的 GPT 分区布局。
GPT 分区布局上存在保护 MBR 区域,以便与在 MBR 上运行的磁盘管理实用工具向后兼容。 GPT 标头定义可由分区条目使用的逻辑块地址的范围。 GPT 标头还定义其在磁盘上的位置、GUID,以及用于验证 GPT 标头完整性的 32 位循环冗余检查 (CRC32) 校验和。 每个 GUID 分区条目以分区类型 GUID 开头。 16 字节分区类型 GUID(类似于 MBR 磁盘分区表中的系统 ID)标识分区包含的数据类型,并标识分区的使用方式,例如,它是基本磁盘还是动态磁盘。 请注意,每个 GUID 分区条目都有备份副本。
动态磁盘 GPT 分区布局类似于此基本磁盘示例,但如前所述,基本磁盘上只有一个 LDM 分区条目,而不是 1-n 个主分区。 还有一个隐藏的 LDM 数据库分区,其中包含相应的 GUID 分区条目。 有关 LDM 的详细信息,请参阅 动态磁盘 部分。
检测磁盘类型
没有以编程方式检测特定文件或目录所在的磁盘类型的特定函数。 有一种间接方法。
- 将文件或目录路径传递给 GetVolumePathName 以获取装入点。
- 将装入点传递给 GetVolumeNameForVolumeMountPoint 以获取卷名称。
- 从卷名称中删除尾随反斜杠。
- 将卷名称传递给不带尾随反斜杠的 CreateFile 以打开卷。
- 将 IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS 与卷句柄一起使用以获取磁盘编号。
- 使用磁盘编号构造磁盘路径,例如“\\?\PhysicalDriveX”。
- 将每个磁盘路径传递给 CreateFile 以打开磁盘。
- 使用 IOCTL_DISK_GET_DRIVE_LAYOUT_EX 获取分区列表。
- 检查分区列表中的每个条目 PartitionType。
相关主题
-
关于卷管理 的