第 26 章 磁盘分区简介
备注
本附录不一定适用于非基于 x86 的架构。但是,此处提到的一般概念可能适用。
本附录不一定适用于非基于 x86 的架构。但是,此处提到的一般概念可能适用。
如果您对磁盘分区非常适时,可以先跳至 第 26.1.4 节 “对 Red Hat Enterprise Linux 进行 Room”,以释放磁盘空间以准备 Red Hat Enterprise Linux 安装。本节还讨论 Linux 系统使用的分区命名方案,与其他操作系统共享磁盘空间,以及相关的主题。
26.1. 硬盘基本概念
硬盘执行非常简单的功能 - 它们存储数据并在命令上可靠地检索。
在讨论磁盘分区等问题时,了解底层硬件非常重要。不幸的是,在详细信息中很容易出现。因此,本附录使用磁盘驱动器的简图来说明在磁盘分区时真正发生的情况。图 26.1 “Unused Disk Drive”、显示一个全新的、未使用的磁盘驱动器。
图 26.1. Unused Disk Drive
[D]
没问题看法,不是吗?但是,如果我们将在基本层面讨论磁盘驱动器,就足够了。假设我们希望在此驱动器上存储一些数据。现在,它无法正常工作。首先我们需要这样做。
26.1.1. 这不是您编写的内容,即如何编写它
有经验的计算机用户在第一次尝试时可能会得到这一点。我们需要 格式化 驱动器。格式化(通常称为"生成 文件系统")将信息写入驱动器,在未格式化的驱动器中创建空白空间的顺序。
图 26.2. 使用文件系统进行磁盘驱动器
[D]
作为 图 26.2 “使用文件系统进行磁盘驱动器”,文件系统强制强制的顺序涉及一些利弊:
- 使用一个小百分比的驱动器可用空间来存储与文件系统相关的数据,并被视为开销。
- 文件系统会将剩余空间分成较小的一致片段。对于 Linux,这些网段被称为 块。[11]
鉴于该文件系统可以进行诸如目录和文件之类的操作,因此这些权衡通常被视为价格较小。
值得一提的是,没有单一、通用的文件系统。如 图 26.3 “使用不同的文件系统进行磁盘驱动器” 所示,磁盘驱动器可能在其中写入多个不同文件系统之一。可能猜测,不同的文件系统往往不兼容;即,支持一个文件系统(或少数相关文件系统类型)的操作系统可能不支持其他。但是,最后一条声明不是一个困难且快速的规则。例如,Red Hat Enterprise Linux 支持各种文件系统(包括很多常用文件系统),在不同的文件系统间造成数据交换。
图 26.3. 使用不同的文件系统进行磁盘驱动器
[D]
当然,向磁盘写入文件系统只是开始。这个过程的目标是实际 存储和检索 数据。让我们在写入一些文件后了解这个驱动器。
图 26.4. 使用数据可写磁盘驱动器
[D]
作为 图 26.4 “使用数据可写磁盘驱动器”,显示一些之前空块现在被数据保存。但是,通过浏览此图片,我们不能准确确定此驱动器上驻留的文件数量。只能有一个文件或者多个文件,因为所有文件都至少使用一个块,一些文件使用多个块。另一个值得注意的一点是,所用的块不必组成连续区域;已使用和未使用的块可以互相干扰。这称为 碎片。尝试重新定义现有分区大小时,碎片可以播放部分。
与大多数计算机相关技术一样,磁盘驱动器在引入后随时间变化。特别是,他们有规模更大。物理大小不大,但更大,可以存储信息。而且,这个额外的容量推动了使用磁盘驱动器的方式根本性变化。
26.1.2. 分区:为许多设备选择一 个驱动器
随着磁盘驱动器容量激增,有些人开始想知道,在一个大块中有所有格式化空间都是个好主意。这种想法由多个问题驱动,一些障碍是一些技术。在一定大小之上的理念上,它似乎是更大的驱动器提供的额外空间被更清晰。在技术方面,有些文件系统从未设计为支持任何特定容量。或者,文件系统 可以 支持更大的驱动器,但文件系统带来的开销会过大,以跟踪文件变得过大。
这个问题的解决方案是将磁盘分为 分区。每个分区都可以像是单独的磁盘一样进行访问。这是通过添加 分区表 来完成的。
备注
虽然本章的图表显示分区表与实际磁盘驱动器分开,但这不完全准确的。实际上,分区表在任何文件系统或用户数据之前保存在磁盘的最开始。但是为了清晰起见,它们在图表中是分开的。
图 26.5. 使用分区表的磁盘驱动器
[D]
如 图 26.5 “使用分区表的磁盘驱动器” 所示,分区表被分为四个部分或 四个主分区。主分区是在硬盘中只能包含一个逻辑驱动器(或部分)的分区。每个部分都保存定义单个分区所需的信息,意味着分区表可定义不超过四个分区。
每个分区表条目包含分区的几个重要特征:
- 磁盘上分区启动和结束的地方
- 分区是否"活动"
- 分区的类型
让我们仔细了解这些特征。起点和结束点实际上定义了分区的大小和在磁盘中的位置。"active" 标志供某些操作系统的引导装载程序使用。换句话说,标记为"active"的分区中的操作系统会被引导。
分区的类型可能比较混淆。类型是一个数字,用于识别分区预定的用法。如果该声明听起来有些模糊,就好像分区类型的含义是个模糊的。某些操作系统使用分区类型来表示特定的文件系统类型,来将分区标记为与特定操作系统关联的分区,来表示分区包含可引导的操作系统,或三者的某种组合。
此时,您可能想想过如何使用所有这些额外的复杂性。如需示例,请参阅 图 26.6 “使用单一分区的磁盘驱动器”。
图 26.6. 使用单一分区的磁盘驱动器
[D]
在很多情况下,只有一个分区覆盖整个磁盘,本质上会复制在分区之前使用的方法。分区表只使用一个条目,它指向分区的开头。
我们已将此分区标记为"DOS"类型。虽然它只是 表 26.1 “分区类型” 中列出的几个可能分区类型之一,但对于本讨论的目的足够了。
表 26.1 “分区类型”包含一些流行(和 obscure)分区类型及其十六进制数字值的列表。
分区类型 | 值 | 分区类型 | 值 |
---|---|---|---|
空 | 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 |
PPC PReP Boot | 41 | DOS R/O | e3 |
GNU HURD | 63 | DOS secondary | f2 |
Novell Netware 286 | 64 | BBT | ff |
26.1.3. 分区内的分区 - 扩展分区概述
当然,随着时间推移,四个分区变得不够。随着磁盘驱动器继续增长,用户也越来越有可能配置四个合理的分区,并且仍保留磁盘空间。需要采用某种方式来创建更多分区。
输入扩展分区。正如您在 表 26.1 “分区类型” 中看到的,有一个"Extended"分区类型。这是属于扩展分区核心的分区类型。
创建分区并将其类型设置为"Extended"时,会创建一个扩展分区表。本质上,扩展分区类似于其自身的磁盘驱动器 - 它有一个指向一个或多个分区的分区表(现在被称为 逻辑分区,而不是完全包含在扩展分区中的 四个主分区)。图 26.7 “使用扩展分区的磁盘驱动器”显示了一个含有一个主分区的磁盘驱动器和一个扩展分区(以及一些未分区的可用空间)。
图 26.7. 使用扩展分区的磁盘驱动器
[D]
如图所示,主分区和逻辑分区之间有一个区别 - 主分区和逻辑分区之间只能有 4 个分区,但逻辑分区的数量没有固定限制。但是,由于在 Linux 中访问分区的方式,您应该避免在单个磁盘驱动器中定义超过 12 个逻辑分区。
我们已经介绍了分区,让我们来了解如何使用这方面知识来安装 Red Hat Enterprise Linux。
26.1.4. 对 Red Hat Enterprise Linux 进行 Room
以下列表显示您在尝试重新分区硬盘时可能面临的一些可能情况:
- 有可用的未分区的空闲空间
- 有可用的未使用过的分区
- 被活跃使用的分区内有可用的空闲空间
让我们看一下每个场景。
备注
请记住,以下说明会简单化,不反映您在实际安装 Red Hat Enterprise Linux 时遇到的准确分区布局。
26.1.4.1. 使用未分区的空闲空间
在这种情况下,已定义的分区不会跨越整个硬盘,而保留不属于任何定义的分区的未分配空间。图 26.8 “使用未分区的空闲空间的磁盘驱动器”可以显示,的作用是什么。
图 26.8. 使用未分区的空闲空间的磁盘驱动器
[D]
在 图 26.8 “使用未分区的空闲空间的磁盘驱动器” 中,1 代表带有未分配空间的未定义分区,2 代表已分配空间的已定义分区。
如果您认为它,未使用的硬盘也会归为这个类别。唯一的区别是,所有 空间并不是任何定义的分区的一部分。
无论哪种情况,您都可以从未使用的空间创建必要的分区。不幸的是,这种方案虽然非常简单,但并没有非常大概(除非您只为 Red Hat Enterprise Linux 购买一个新的磁盘)。大多数预安装的操作系统都配置为占用磁盘驱动器上所有可用空间(请参考 第 26.1.4.3 节 “使用 Active 分区中的空闲空间”)。
接下来,我们将讨论一个比较常见的情况。
26.1.4.2. 使用未使用的分区中的空间
在这种情况下,您可能有一个或者多个不再使用的分区。或许您过去可能用过另一个操作系统,且您专用的分区不再会被使用。图 26.9 “使用未使用的分区进行磁盘驱动器”演示了这种情况。
图 26.9. 使用未使用的分区进行磁盘驱动器
[D]
在 图 26.9 “使用未使用的分区进行磁盘驱动器” 中,1 代表未使用的分区,2 代表为 Linux 重新分配未使用的分区。
如果您在这种情况中找到自己,您可以使用分配给未使用分区的空间。您必须先删除分区,然后创建其所在分区的适当 Linux 分区。您可以删除未使用的分区,并在安装过程中手动创建新分区。
26.1.4.3. 使用 Active 分区中的空闲空间
这是最常见的情况。它还很抱歉,要处理困难。问题主要在于,即使您有足够的可用空间,它也会被分配给已经使用的分区。如果您购买了带有预安装软件的计算机,硬盘很可能拥有一个庞大的分区来保存操作系统和数据。
除了向您的系统添加新硬盘驱动器外,还有两种选择:
- 破坏性重新分区
- 基本上,您可以删除单个大分区并创建几个较小的分区。正如您想象的,在原始分区中的数据都会被销毁。这意味着需要备份完整备份。对于您自己的 sake,请创建两个备份,使用验证(在您的备份软件中可用),并在删除分区 前 尝试从备份中读取数据。警告如果该分区中有某些类型的操作系统,也需要重新安装它。请注意,一些计算机用预安装的操作系统出售,可能没有包括 CD-ROM 介质来重新安装原始操作系统。在销毁原始分区及其操作系统安装 前,请注意这适用于您的系统的最佳时间。为现有操作系统创建较小的分区后,您可以重新安装任何软件,恢复您的数据并启动 Red Hat Enterprise Linux 安装。图 26.10 “以破坏性方式重新分区的磁盘驱动器” 显示正在完成的。
图 26.10. 以破坏性方式重新分区的磁盘驱动器
[D]在 图 26.10 “以破坏性方式重新分区的磁盘驱动器” 中,1 代表后代表,2 代表后代表。警告作为 图 26.10 “以破坏性方式重新分区的磁盘驱动器”,显示原始分区中存在的所有数据都会在没有正确备份的情况下丢失! - 非破坏性重新分区
- 在这里,您运行一个看似不可能的程序:它使大分区较小,而不会丢失该分区中存储的任何文件。许多人发现,这种方法是可靠且无问题。您应该使用什么软件来执行此联合?市场上有多个磁盘管理软件产品。进行一些调查,找到最适合您的情况的研究。虽然非破坏性重新分区的过程比较简单,但涉及多个步骤:
- 压缩和备份现存数据
- 重新划分现存分区的大小
- 创建新分区
接下来,我们将更加详细地了解每个步骤。
26.1.4.3.1. 压缩现有数据
作为 图 26.11 “压缩磁盘驱动器”,显示第一步要压缩现有分区中的数据。这样做的原因是,重新排列数据,以便它最大程度提高分区的"end"可用空间。
图 26.11. 压缩磁盘驱动器
[D]
在 图 26.11 “压缩磁盘驱动器” 中,1 代表后代表,2 代表后代表。
这一步骤至关重要。如果没有它,数据的位置可能会阻止分区被重新定义到所需扩展。另请注意,出于某种原因或其他原因,某些数据也不会被移动。如果出现这种情况(且严重限制新分区的大小),您可以强制重新对磁盘进行破坏性。
26.1.4.3.2. 重新划分现存分区的大小
图 26.12 “使用分区重新调整的磁盘驱动器”显示了实际调整大小的流程。虽然调整大小操作的实际结果因所使用的软件而异,但在大多数情况下,新可用空间用于创建与原始分区相同的未格式化的分区。
图 26.12. 使用分区重新调整的磁盘驱动器
[D]
在 图 26.12 “使用分区重新调整的磁盘驱动器” 中,1 代表后代表,2 代表后代表。
务必要了解使用的大小软件与新可用空间的大小,以便执行适当的步骤。如果我们说明过这一点,最好删除新的 DOS 分区并创建适当的 Linux 分区。
26.1.4.3.3. 创建新分区
因为前面的步骤简单了,可能不需要创建新分区。然而,除非大小软件是 Linux 感知型,否则您可能必须删除在调整大小过程中创建的分区。图 26.13 “最后分区配置的磁盘驱动器”显示正在执行的操作。
图 26.13. 最后分区配置的磁盘驱动器
[D]
在 图 26.13 “最后分区配置的磁盘驱动器” 中,1 代表后代表,2 代表后代表。
备注
以下信息只适用于基于 x86 的计算机。
为客户提供便利性,我们提供了 parted 实用程序。这是一个自由可用的程序,可以重新定义分区大小。
如果您决定使用 parted 重新分区硬盘,则务必要熟悉磁盘存储,并且您对计算机数据执行备份非常重要。您应该在您的计算机上制作所有重要数据的两个副本。这些副本应该是可移动介质(如 tape、CD-ROM 或 diskettes),并且您应该在继续之前确保它们可读。
如果您决定使用 parted,请注意,parted 运行之后,您 留有 两个分区:您调整大小一个,另一个是新空闲空间中创建的 parted。如果您的目标是使用该空间安装 Red Hat Enterprise Linux,则应该删除新创建的分区,可以使用当前操作系统下的分区实用程序,或者在安装期间设置分区时删除。
26.1.5. 分区命名方案
Linux 指的是磁盘分区,使用字母和数字的组合可能会令人困惑,特别是您用于引用硬盘及其分区的"C 驱动器"方法。在 DOS/Windows 世界中,分区使用以下方法命名:
- 每个分区的类型会被检查,以确定 DOS/Windows 是否可以读取它。
- 如果该分区的类型兼容,则会为其分配一个"驱动器"符。 驱动器字母以"C"开头并移动到以下字母,具体取决于要标记的分区数量。
- 然后可以使用驱动器符来指代该分区以及该分区中包含的文件系统。
Red Hat Enterprise Linux 使用一个命名方案,它比其他操作系统使用的方法更灵活并传达更多。命名方案基于文件,文件名格式为
/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 硬盘上的第二个逻辑分区。
备注
此命名约定没有基于分区类型的一部分;与 DOS/Windows 不同,所有分区 都可以在 Red Hat Enterprise Linux 下识别。当然,这并不表示 Red Hat Enterprise Linux 可以访问每种类型的分区上的数据,但很多情况下无法访问专用于其他操作系统的分区中的数据。
请记住这些信息;当您设置 Red Hat Enterprise Linux 需要的分区时,可以更容易地了解这些信息。
26.1.6. 磁盘分区和其它操作系统
如果您的 Red Hat Enterprise Linux 分区与其它操作系统使用的分区共享硬盘,则大多数时间都没有问题。但是,有一些需要额外关注的 Linux 和其他操作系统的组合。
26.1.7. 磁盘分区和挂载点
许多人对 Linux 的人感到困惑,就是 Linux 操作系统如何使用和访问分区的问题。在 DOS/Windows 中,它相对简单:每个分区获得一个"驱动器符"。 然后,使用正确的驱动器符来指代其对应分区中的文件和目录。
这与 Linux 与分区的交易方式以及一般磁盘存储有关的完全不同。主要区别在于,每个分区用于形成支持单个文件和目录所需的存储的一部分。这可以通过通过称为 挂载 的进程将分区与目录相关联。挂载分区会使其存储在指定目录(称为 挂载点)上可用。
例如,如果分区
/dev/hda5
挂载到 /usr/
上,这意味着 /usr/
中的所有文件和目录都位于 /dev/hda5 上。因此,文件 /usr/share/doc/FAQ/Linux-FAQ
将存储在 /dev/hda5
中,而文件 /etc/gdm/custom.conf
则不行。
继续我们的例子,还有可能是
/usr/
下面的一个或多个目录作为其他分区的挂载点。例如,分区(say、/dev/hda7)
可以挂载到 /usr/local/
,即 /usr/local/man/whatis
将驻留在 /dev/hda7
而不是 /dev/hda5
上。
26.1.8. 很多分区如何?
此时,准备安装 Red Hat Enterprise Linux 的过程,您必须考虑新操作系统所使用的分区的数量和大小。"多少分区"继续在 Linux 社区内出现争论,而且没有结束争论的争论,就有一种安全说,像人就有可能存在太多分区布局。
请记住,我们建议您这样做,除非有其他目的,您应该至少创建以下分区:
swap
、/boot/
(或 Itanium 系统的 /boot/efi/
分区)、Itanium 系统的 /var/
分区和 /
(root)。
有关详情请参阅 第 4.19.4 节 “推荐的分区方案”。