附录 A. 磁盘分区简介
注意
本附录不一定适用于 AMD64 和 Intel 64 以外的构架。但是,此处提及的一般概念可能适用。
本节讨论基本磁盘概念、磁盘重新分区策略、Linux 系统使用的分区命名方案和相关主题。
如果您熟悉磁盘分区,您可以提前跳过 第 A.2 节 “磁盘重新分区策略” 以获得更多释放磁盘空间过程的信息,准备 Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux 安装。
注意
在安装之前,您应该考虑是使用分区的还是未分区的磁盘设备。有关更多信息,请参见知识库文章,https://access.redhat.com/solutions/163853 网址为:
A.1. 硬盘基本概念
硬盘执行非常简单的功能 - 它们存储数据并在命令行中可靠地检索数据。
在讨论磁盘分区等问题时,务必要了解基础硬件;但是,由于理论非常复杂且扩展,因此此处仅阐述基本概念。本附录使用磁盘驱动器的一组简化图表来帮助解释分区背后的流程和理论。
图 A.1 “Unused Disk Drive”显示全新的、未使用的磁盘驱动器。
图 A.1. Unused Disk Drive
[D]
A.1.1. 文件系统
若要将数据存储在磁盘驱动器中,必须先 格式化 磁盘驱动器。格式化(通常称为" 创建文件系统")向驱动器写入信息,从而在未格式化的驱动器中创建空白空间的顺序。
图 A.2. 使用文件系统进行磁盘驱动器
[D]
如上图所示,文件系统强制的顺序涉及一些权衡:
- 在驱动程序的可用空间中很小一部分用于存储文件系统相关的数据,可以被视为开销。
- 文件系统将剩余空间分割为大小较小的网段。对于 Linux,这些网段被称为 块。[4]
请注意,没有单一的通用文件系统。如下图所示,磁盘驱动器上可以包含许多不同的文件系统之一。不同的文件系统往往不兼容,也就是说,支持一种文件系统(或少量相关文件系统类型的操作系统)可能不支持另一种文件系统。然而,例如:Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux 支持各种文件系统(包括其他操作系统常用的很多文件系统),在不同的文件系统间实现数据交换。
图 A.3. 使用不同的文件系统进行磁盘驱动器
[D]
将文件系统写入磁盘只是第一步。此过程的目标是实际 存储和检索 数据。下图显示了一些数据写入它后驱动器磁盘:
图 A.4. 将数据写入的磁盘驱动器
[D]
如上图所示,以前一些空块现在保存数据。然而,仅看一下此图片,我们就无法精确确定此驱动器中驻留的文件数量。可能只有一个文件或多个文件,因为所有文件至少使用一个块,有些文件使用多个块。另一个需要注意的一点是,使用的块不必形成相邻区域;已使用和未使用的块可以相互交集。这称为 碎片。在尝试调整现有分区大小时,碎片可以起到一定作用。
与大多数计算机相关的技术一样,磁盘驱动器在引入后随着时间推移而变化。特别是,他们拥有更大的.物理规模并不更大,但存储信息的能力更大。而且,这种额外容量推动了磁盘驱动器使用方式的根本性变化。
A.1.2. 分区:结束一个驱动器Into Many
磁盘驱动器可以分为几个 分区。每个分区都可以被访问,就像它是一个单独的磁盘一样。这通过添加 分区表 来完成。
将磁盘空间分配给单独的磁盘分区有多种原因,例如:
- 将操作系统数据与用户数据进行逻辑分离
- 使用不同文件系统的功能
- 能够在一台机器上运行多个操作系统
目前,物理硬盘有两种分区布局标准:主引导记录(MBR)和 GUID 分区表(GPT)。MBR 是用于基于 BIOS 的计算机的较旧磁盘分区方法。GPT 是一个较新的分区布局,是 Unified Extensible Firmware Interface(UEFI)的一部分。这部分和 第 A.1.3 节 “带分区的分区 - 扩展分区概述” 主要描述了 主引导记录 (MBR)磁盘分区方案。有关 GUID 分区表 (GPT)分区布局的详情请参考 第 A.1.4 节 “GUID 分区表(GPT)”。
注意
虽然本章图表显示分区表与实际磁盘驱动器分开,但这不完全准确。实际上,分区表存储在磁盘的最开始,不会有任何文件系统或用户数据。但是为清楚起见,它们的示意图中是独立的。
图 A.5. 使用分区表进行磁盘驱动器
[D]
如上图所示,分区表被分为四部分或四个 主 分区。主分区是在硬盘中只能包含一个逻辑驱动器(或部分)的分区。每个部分都可以保存定义单个分区所需的信息,即分区表只能定义四个分区。
每个分区表条目包含分区的几个重要特征:
- 磁盘上分区开始和结束的地方
- 分区是否"活动"
- 分区类型
起始和结束点定义分区的大小和磁盘上的位置。"active"标志供某些操作系统的引导装载程序使用。换句话说,将引导标记为"主动"的分区中的操作系统。
类型是一个数字,用于标识分区预定的用法。某些操作系统使用分区类型表示特定的文件系统类型,将分区标记为与特定操作系统关联的分区,表示该分区包含可引导的操作系统,或者三个操作系统的某种组合。
下面显示了一个带有单一分区的磁盘驱动器示例:
图 A.6. 单分区磁盘驱动器
[D]
本例中的单个分区被标记为
DOS
。此标签显示 分区类型,DOS
是最常见的分区类型之一。下表显示了一些常用分区类型和用于代表它们的十六进制数字。
分区类型 | 值 | 分区类型 | 值 |
---|---|---|---|
空 | 00 | Novell Netware 386 | 65 |
DOS 12-bit FAT | 01 | PIC/IX | 75 |
XENIX root | 02 | Old MINIX | 80 |
XENIX usr | 03 | Linux/MINUX | 81 |
DOS 16-bit <=32M | 04 | Linux swap | 82 |
Extended | 05 | Linux native | 83 |
DOS 16-bit >=32 | 06 | Linux extended | 85 |
OS/2 HPFS | 07 | Amoeba | 93 |
AIX | 08 | Amoeba BBT | 94 |
AIX bootable | 09 | BSD/386 | a5 |
OS/2 Boot Manager | 0a | OpenBSD | a6 |
Win95 FAT32 | 0b | NEXTSTEP | a7 |
Win95 FAT32(LBA) | 0c | BSDI fs | b7 |
Win95 FAT16(LBA) | 0e | BSDI swap | b8 |
Win95 Extended (LBA) | 0f | Syrinx | c7 |
Venix 80286 | 40 | CP/M | db |
Novell | 51 | DOS access | e1 |
PReP Boot | 41 | DOS R/O | e3 |
GNU HURD | 63 | DOS secondary | f2 |
Novell Netware 286 | 64 | BBT | ff |
A.1.3. 带分区的分区 - 扩展分区概述
如果四个分区无法满足您的需要,您可以使用 扩展分区 来创建额外的分区。您可以通过将分区类型设置为"Extended"来达到此目的。
扩展分区本身就就如同磁盘驱动器一样 - 它有自己的分区表指向完全包含在扩展分区中的一个或多个 分区(现在称为逻辑 分区,而不是四个主分区)。下图显示了一个带有一个主分区的磁盘驱动器,另一个扩展分区包含两个逻辑分区(以及一些未分区的可用空间):
图 A.7. 带扩展分区的磁盘驱动器
[D]
如图所示,主分区和逻辑分区之间有一个区别 - 主分区只能有四个主分区,但逻辑分区的数量没有固定限制。但是,由于在 Linux 中访问分区的方式,单个磁盘驱动器中不能定义超过 12 个逻辑分区。
A.1.4. GUID 分区表(GPT)
GUID 分区表(GPT)是基于使用全局唯一标识符(GUID)的较新的分区方案。GPT 的开发是为了应对 MBR 分区表的限制,特别是磁盘的最大可寻址存储空间的限制。MBR 无法寻址大于 2 TiB 的存储空间(等同于大约 2.2 TB),而 GPT 可以用于大于这个磁盘的硬盘;最大可寻址的磁盘大小为 2.2 ZiB。此外,GP T 默认支持创建最多 128 个主分区。这个号码可以通过为分区表分配更多空间来扩展。
GPT 磁盘使用逻辑块寻址(LBA),分区布局如下:
- 为了保持与 MBR 磁盘的向后兼容性,GPT 的第一个扇区(LBA 0) 保留 用于 MBR 数据,这称为 “强制 MBR”。
- 主 GPT 标头 从设备的第二个逻辑块(LBA 1)开始。标头包含磁盘 GUID、主分区表的位置、从属 GPT 标头的位置、自身的 CRC32 校验和以及主分区表。它还指定表的分区条目数目。
- 默认情况下,主 GPT 表 包含 128 个分区条目,每个条目大小为 128 字节,其分区类型 GUID 和唯一分区 GUID。
- 辅助 GPT 表 与主 GPT 表相同。它主要用作恢复的备份表,以防主分区表损坏。
- 辅助 GPT 标头 位于磁盘的最后一个逻辑扇区,在主标头损坏时可用于恢复 GPT 信息。它包含磁盘 GUID、二级分区表和主 GPT 标头的位置、自身的 CRC32 校验和,以及可能的分区条目的数量。
重要
必须有一个 BIOS 引导分区,才能成功将引导装载程序安装到包含 GPT(GUID 分区表)的磁盘中。这包括 Anaconda 初始化的磁盘。如果磁盘已经包含 BIOS 引导分区,则它可以被重复使用。