附录 A. 磁盘分区简介
注意
A.1. 硬盘基本概念

图 A.1. 未使用过的磁盘驱动器
A.1.1. 写入什么没关系,关键是如何写入。

图 A.2. 有文件系统的磁盘驱动器
- 驱动器中的一小部分可用空间被用来存储与文件系统有关的数据,这可以被视作额外开销。
- 文件系统将剩余的空间分成小的一定大小的片段。在 Linux 中,这些片段就是块。[15]

图 A.3. 含有不同文件系统的磁盘驱动器

图 A.4. 已写入数据的磁盘驱动器
A.1.2. 分区:将一个驱动器变成多个
- 将操作系统数据与用户数据进行合理分隔。
- 可使用不同的文件系统
- 可在一台机器中运行多个操作系统
注意

图 A.5. 带有分区表的磁盘驱动器
- 在磁盘上分区开始和结束的地点(起止点)
- 分区是否"活跃"
- 分区的类型

图 A.6. 采用单一分区的磁盘驱动器
表 A.1. 分区类型
| 分区类型 | 值 | 分区类型 | 值 |
|---|---|---|---|
| Empty | 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 引导 | 41 | DOS R/O | e3 |
| GNU HURD | 63 | DOS secondary | f2 |
| Novell Netware 286 | 64 | BBT | ff |
A.1.3. 分区中的分区 — 扩展分区概述

图 A.7. 带有扩展分区的磁盘驱动器
A.1.4. GUID 分区表(GPT)
- 要保留与 MBR 磁盘的向后兼容性,则需要将 GPT 的第一个扇区(LBA 0)留给 MBR 数据,我们称之为 “保护性 MBR(protective MBR)”。
- 主 GPT 标头从该设备的第二个逻辑块(LBA 1)开始。该标头包含磁盘 GUID、主分区表位置、辅 GPT 标头位置以及其自身和主分区表的 CRC32 checksum。它还指定该分区表中的分区条目数。
- 默认主 GPT 表包括 128 个分区条目,每个条目为 128 字节,其分区类型 GUID 以及唯一 GUID。
- 副 GPT 表与主GPT表完全一致,主要是作为备份表使用,在主分区表崩溃时用来恢复。
- 副 GPT 标头从位于该磁盘的最后一个逻辑块中,可用来在主标头崩溃时恢复 GPT 信息。该标头包含磁盘 GUID、主分区表位置、辅分区表以及主 GPT 标头位置、以及其自身和副分区表的 CRC32 checksum、以及可能的分区条目数。
重要
A.1.5. 为 Red Hat Enterprise Linux 提供空间
- 有可用的未分区的闲置空间
- 有可用的未使用过的分区
- 被活跃使用的分区内有可用的闲置空间
注意
A.1.5.1. 使用未分区的剩余空间

图 A.8. 带有未分区的闲置空间的磁盘驱动器
A.1.5.2. 使用未使用分区中的空间

图 A.9. 带有未使用分区的磁盘驱动器
A.1.5.3. 使用激活分区中的剩余空间
- 破坏性分区
- 通常,删除单一大分区并创建几个较小的分区。如您所知,原始分区中的所有数据都会被破坏。就是说完全备份是必要的。为安全起见,生成两个备份,使用验证(如果您的备份软件可进行验证),并在删除分区前尝试从备份中读取数据。
警告
如果该分区上装有某类操作系统,该操作系统也需要被重新安装。需要注意的是,那些带有预装操作系统售出的计算机可能没有包括重装该系统所需的光盘介质。最好在破坏原有分区及原有操作系统之前意识到这一点。在为当前操作系统创建较小分区后,可以重新安装任何软件,恢复数据并启动 Red Hat Enterprise Linux 安装。图 A.10 “破坏性地对磁盘驱动器重新分区” 演示了这种情况。
图 A.10. 破坏性地对磁盘驱动器重新分区
在 图 A.10 “破坏性地对磁盘驱动器重新分区” 中,1 代表之前的情况,2 代表之后的情况。警告
如 图 A.10 “破坏性地对磁盘驱动器重新分区” 所示,在最初的分区中的数据都因没有正确备份而丢失! - 非破坏性分区
- 在此要运行一个看似不可能的程序:它会将大分区变小,却不会丢失该分区中的原有文件。许多人都发现这个办法既可靠又简单可行。但是哪一个软件可以帮助您达到这一目的呢?在软件市场上有好几种磁盘管理软件。请研究一下找到适合您的软件。非破坏性分区过程是非常直捷了当的,它包括以下几个步骤:
- 压缩和备份现有数据
- 重新划分现存分区大小
- 创建新分区
A.1.5.3.1. 压缩现有数据

图 A.11. 磁盘驱动器被压缩
A.1.5.3.2. 重新划分现存分区大小

图 A.12. 分区大小被重新划分的磁盘驱动器
A.1.5.3.3. 创建新分区

图 A.13. 带有最终分区分配的磁盘驱动器
注意
parted 工具。它是一个可免费获得的重新划分区大小的程序。
parted 重新为硬盘驱动器分区,则必须熟悉磁盘贮存区,并备份计算机中的数据。这一点至关重要。应该为计算机中重要的数据做两个备份。这些备份应该存储在可移介质中(如磁盘、光盘或磁带),而且应该在继续操作前确定可读取这些数据。
parted,请留意在 parted 运行后,会有两个分区:一个是重新划分大小的分区,另一个是 parted 用新空出的空间创建的新分区。如果目的是使用新空出的空间安装 Red Hat Enterprise Linux,则应该删除新分区。既可以使用在目前操作系统中的分区工具删除它,也可以在安装过程中设置分区时删除它。
A.1.6. 分区命名方案
- 检查每个分区的类型以便判定它是否可被 DOS/Windows 读取。
- 如果分区类型是兼容的,则会分配给它会一个"驱动器字母"。驱动器字母从"C"开始,然后依据要标记的分区数量而按字母顺序推移。
- 驱动器字母可以用来指代那个分区,也可以用来指带分区所含的文件系统。
/dev/xxyN。
/dev/- 这个是所有设备文件所在的目录名。因为分区位于硬盘中,而硬盘是设备,所以这些文件代表了在
/dev/中所有可能的分区。 xx- 分区名的前两个字母标明分区所在设备的类型。通常是
hd(IDE 磁盘)或sd(SCSI 磁盘)。 y- 这个字母标明分区所在的设备。例如,
/dev/hda(第一个 IDE 磁盘)或/dev/sdb(第二个 SCSI 磁盘) N- 最后的数字代表分区。前四个分区(主分区或扩展分区)是用数字从
1排列到4。逻辑分区从5开始。例如,/dev/hda3是在第一个 IDE 硬盘上的第三个主分区或扩展分区;/dev/sdb6是在第二个 SCSI 硬盘上的第二个逻辑分区。
注意
A.1.7. 磁盘分区以及其他操作系统
A.1.8. 磁盘分区和挂载点
/dev/hda5/ 被挂载在 /usr/ 上,这意味着所有 /usr/ 中的文件和目录在物理意义上位于 /dev/hda5/ 中。因此文件 /usr/share/doc/FAQ/txt/Linux-FAQ 被保存在 /dev/hda5/上,而文件 /etc/gdm/custom.conf 却不是。
/usr/ 之下的一个或多个目录还有可能是其他分区的挂载点。例如,某个分区(假设为,/dev/hda7/)可以被挂载到 /usr/local/ 下,这意味着 /usr/local/man/whatis 将位于 /dev/hda7 上而不是 /dev/hda5 上。
A.1.9. 多少个分区?
swap、/boot/以及 /(root)。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.