基本和动态磁盘
在对驱动器进行分区或获取有关驱动器分区布局的信息之前,必须先了解基本和动态磁盘存储类型的功能和限制。
就本主题而言,术语 卷 用于指 Windows 操作系统用来存储文件的有效文件系统(通常为 NTFS)格式化的磁盘分区的概念。 卷具有 Win32 路径名称,可由 FindFirstVolume 和 FindNextVolume 函数枚举,并且通常分配有一个驱动器号,例如 C:。 有关卷和文件系统的详细信息,请参阅 文件系统。
本主题内容:
在此上下文中引用存储类型时,有两种类型的磁盘: 基本磁盘 和 动态磁盘。 请注意,此处讨论的存储类型与物理磁盘或分区样式不同,物理磁盘或分区样式是相关但独立的概念。 例如,引用基本磁盘并不表示特定的分区样式,还需要指定正在讨论的磁盘使用的分区样式。 有关基本磁盘存储类型与物理硬盘的关系的简化说明,请参阅 磁盘设备和分区。
基本磁盘
基本磁盘 是最常用于 Windows 的存储类型。 术语 “基本磁盘 ”是指包含分区的磁盘,例如主分区和逻辑驱动器,它们通常使用文件系统进行格式化,成为文件存储的卷。 基本磁盘提供了一个简单的存储解决方案,可适应不断变化的存储需求方案的有用数组。 基本磁盘还支持群集磁盘、电气和电子工程师协会 (IEEE) 1394 磁盘和通用串行总线 (USB) 可移动驱动器。 为了向后兼容,基本磁盘通常使用与 Microsoft MS-DOS 操作系统和所有 Windows 版本使用的磁盘相同的主启动记录 (MBR) 分区样式,但也可以在支持它的系统上支持 GUID 分区表 (GPT) 分区。 有关 MBR 和 GPT 分区样式的详细信息,请参阅 分区样式 部分。
通过将现有主分区和逻辑驱动器扩展到相同磁盘上的相邻未分配连续空间,你可以为现有主分区和逻辑驱动器添加更多空间。 若要扩展基本卷,必须使用 NTFS 文件系统对其进行格式化。 你可以在包含逻辑驱动器的扩展分区中的连续可用空间内扩展该逻辑驱动器。 如果将逻辑驱动器扩展到扩展分区中提供的可用空间之外,那么只要扩展分区后面是连续的未分配空间,扩展分区就会扩大以包含逻辑驱动器。 有关详细信息,请参阅 基本磁盘和卷的工作原理。
只能在基本磁盘上执行以下操作:
- 创建和删除主分区和扩展分区。
- 在扩展分区中创建和删除逻辑驱动器。
- 格式化分区并将其标记为活动分区。
动态磁盘
注意
对于除镜像启动卷以外的所有用途, (使用镜像卷托管操作系统) ,动态磁盘已弃用。 对于需要针对驱动器故障进行复原的数据,请使用 存储空间,这是一种可复原的存储虚拟化解决方案。 有关详细信息,请参阅存储空间概述。
动态磁盘 提供基本磁盘无法提供的功能,例如能够创建跨多个磁盘 (跨卷和条带卷) 以及创建容错卷 (镜像卷和 RAID-5 卷) 。 与基本磁盘一样,动态磁盘可以在支持这两种磁盘的系统上使用 MBR 或 GPT 分区样式。 动态磁盘上的所有卷都称为动态卷。 动态磁盘为卷管理提供了更大的灵活性,因为它们使用数据库来跟踪有关磁盘上的动态卷和计算机中其他动态磁盘的信息。 例如,由于计算机中的每个动态磁盘存储动态磁盘数据库的副本 (replica) ,因此损坏的动态磁盘数据库可以使用另一个动态磁盘上的数据库来修复一个动态磁盘。 数据库的位置由磁盘的分区样式决定。 在 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 之前基于 x86 且 Service Pack 1 (SP1) 的计算机上唯一可用的分区样式,因此无需选择此样式。 它会自动使用。
可以使用 MBR 分区方案在基本磁盘上创建最多四个分区:四个主分区,或三个主分区和一个扩展分区。 扩展分区可以包含一个或多个逻辑驱动器。 下图演示了使用 MBR 的基本磁盘上三个主要分区和一个扩展分区的示例布局。 扩展分区包含四个扩展逻辑驱动器。 扩展分区可能位于磁盘末尾,也可能不位于磁盘末尾,但它始终是逻辑驱动器 1-n 的单个连续空间。
每个分区(无论是主分区还是扩展分区)都可以格式化为 Windows 卷,具有卷到分区的一对一关联。 换句话说,单个分区不能包含多个卷。 在此示例中,Windows 总共有 7 个卷可用于文件存储。 未格式化的分区不适用于 Windows 中的文件存储。
动态磁盘 MBR 布局看起来与基本磁盘 MBR 布局非常相似,只是只允许一个主分区 (称为 LDM 分区) ,不允许扩展分区,并且 LDM 数据库的磁盘末尾有一个隐藏分区。 有关 LDM 的详细信息,请参阅 动态磁盘 部分。
GUID 分区表
除了 MBR 分区样式之外,运行 Windows Server 2003 SP1 及更高版本的系统还可以使用称为全局唯一标识符的分区样式 (GUID) 分区表 (GPT) 。 使用 GPT 分区样式的基本磁盘最多可以有 128 个主分区,而动态磁盘将具有与 MBR 分区一样的单一 LDM 分区。 由于使用 GPT 分区的基本磁盘不会限制为四个分区,因此无需创建扩展分区或逻辑驱动器。
GPT 分区样式还具有以下属性:
- 允许大于 2 TB 的分区。
- 增加了复制和循环冗余的可靠性,检查 (CRC) 分区表的保护。
- 支持原始设备制造商 (OEM) 、独立软件供应商 (ISV) 和其他操作系统定义的其他分区类型 GUID。
下图演示了基本磁盘的 GPT 分区布局。
GPT 分区布局上存在保护 MBR 区域,以便与运行 MBR 的磁盘管理实用工具向后兼容。 GPT 磁头定义了分区条目可用的逻辑块地址范围。 GPT 标头还定义其在磁盘上的位置、GUID 和 32 位循环冗余检查 (CRC32) 校验和,用于验证 GPT 标头的完整性。 每个 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 。
相关主题