Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 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

Unused Disk Drive
没问题看法,不是吗?但是,如果我们将在基本层面讨论磁盘驱动器,就足够了。假设我们希望在此驱动器上存储一些数据。现在,它无法正常工作。首先我们需要这样做。

26.1.1. 这不是您编写的内容,即如何编写它

有经验的计算机用户在第一次尝试时可能会得到这一点。我们需要 格式化 驱动器。格式化(通常称为"生成 文件系统")将信息写入驱动器,在未格式化的驱动器中创建空白空间的顺序。

图 26.2. 使用文件系统进行磁盘驱动器

使用文件系统进行磁盘驱动器
作为 图 26.2 “使用文件系统进行磁盘驱动器”,文件系统强制强制的顺序涉及一些利弊:
  • 使用一个小百分比的驱动器可用空间来存储与文件系统相关的数据,并被视为开销。
  • 文件系统会将剩余空间分成较小的一致片段。对于 Linux,这些网段被称为 [11]
鉴于该文件系统可以进行诸如目录和文件之类的操作,因此这些权衡通常被视为价格较小。
值得一提的是,没有单一、通用的文件系统。如 图 26.3 “使用不同的文件系统进行磁盘驱动器” 所示,磁盘驱动器可能在其中写入多个不同文件系统之一。可能猜测,不同的文件系统往往不兼容;即,支持一个文件系统(或少数相关文件系统类型)的操作系统可能不支持其他。但是,最后一条声明不是一个困难且快速的规则。例如,Red Hat Enterprise Linux 支持各种文件系统(包括很多常用文件系统),在不同的文件系统间造成数据交换。

图 26.3. 使用不同的文件系统进行磁盘驱动器

使用不同的文件系统进行磁盘驱动器
当然,向磁盘写入文件系统只是开始。这个过程的目标是实际 存储和检索 数据。让我们在写入一些文件后了解这个驱动器。

图 26.4. 使用数据可写磁盘驱动器

使用数据可写磁盘驱动器
作为 图 26.4 “使用数据可写磁盘驱动器”,显示一些之前空块现在被数据保存。但是,通过浏览此图片,我们不能准确确定此驱动器上驻留的文件数量。只能有一个文件或者多个文件,因为所有文件都至少使用一个块,一些文件使用多个块。另一个值得注意的一点是,所用的块不必组成连续区域;已使用和未使用的块可以互相干扰。这称为 碎片。尝试重新定义现有分区大小时,碎片可以播放部分。
与大多数计算机相关技术一样,磁盘驱动器在引入后随时间变化。特别是,他们有规模更大。物理大小不大,但更大,可以存储信息。而且,这个额外的容量推动了使用磁盘驱动器的方式根本性变化。

26.1.2. 分区:为许多设备选择一 个驱动器

随着磁盘驱动器容量激增,有些人开始想知道,在一个大块中有所有格式化空间都是个好主意。这种想法由多个问题驱动,一些障碍是一些技术。在一定大小之上的理念上,它似乎是更大的驱动器提供的额外空间被更清晰。在技术方面,有些文件系统从未设计为支持任何特定容量。或者,文件系统 可以 支持更大的驱动器,但文件系统带来的开销会过大,以跟踪文件变得过大。
这个问题的解决方案是将磁盘分为 分区。每个分区都可以像是单独的磁盘一样进行访问。这是通过添加 分区表 来完成的。
备注
虽然本章的图表显示分区表与实际磁盘驱动器分开,但这不完全准确的。实际上,分区表在任何文件系统或用户数据之前保存在磁盘的最开始。但是为了清晰起见,它们在图表中是分开的。

图 26.5. 使用分区表的磁盘驱动器

使用分区表的磁盘驱动器
图 26.5 “使用分区表的磁盘驱动器” 所示,分区表被分为四个部分或 四个主分区。主分区是在硬盘中只能包含一个逻辑驱动器(或部分)的分区。每个部分都保存定义单个分区所需的信息,意味着分区表可定义不超过四个分区。
每个分区表条目包含分区的几个重要特征:
  • 磁盘上分区启动和结束的地方
  • 分区是否"活动"
  • 分区的类型
让我们仔细了解这些特征。起点和结束点实际上定义了分区的大小和在磁盘中的位置。"active" 标志供某些操作系统的引导装载程序使用。换句话说,标记为"active"的分区中的操作系统会被引导。
分区的类型可能比较混淆。类型是一个数字,用于识别分区预定的用法。如果该声明听起来有些模糊,就好像分区类型的含义是个模糊的。某些操作系统使用分区类型来表示特定的文件系统类型,来将分区标记为与特定操作系统关联的分区,来表示分区包含可引导的操作系统,或三者的某种组合。
此时,您可能想想过如何使用所有这些额外的复杂性。如需示例,请参阅 图 26.6 “使用单一分区的磁盘驱动器”

图 26.6. 使用单一分区的磁盘驱动器

使用单一分区的磁盘驱动器
在很多情况下,只有一个分区覆盖整个磁盘,本质上会复制在分区之前使用的方法。分区表只使用一个条目,它指向分区的开头。
我们已将此分区标记为"DOS"类型。虽然它只是 表 26.1 “分区类型” 中列出的几个可能分区类型之一,但对于本讨论的目的足够了。
表 26.1 “分区类型”包含一些流行(和 obscure)分区类型及其十六进制数字值的列表。

表 26.1. 分区类型

分区类型 分区类型
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. 使用扩展分区的磁盘驱动器

使用扩展分区的磁盘驱动器
如图所示,主分区和逻辑分区之间有一个区别 - 主分区和逻辑分区之间只能有 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. 使用未分区的空闲空间的磁盘驱动器

使用未分区的空闲空间的磁盘驱动器
图 26.8 “使用未分区的空闲空间的磁盘驱动器” 中,1 代表带有未分配空间的未定义分区,2 代表已分配空间的已定义分区。
如果您认为它,未使用的硬盘也会归为这个类别。唯一的区别是,所有 空间并不是任何定义的分区的一部分。
无论哪种情况,您都可以从未使用的空间创建必要的分区。不幸的是,这种方案虽然非常简单,但并没有非常大概(除非您只为 Red Hat Enterprise Linux 购买一个新的磁盘)。大多数预安装的操作系统都配置为占用磁盘驱动器上所有可用空间(请参考 第 26.1.4.3 节 “使用 Active 分区中的空闲空间”)。
接下来,我们将讨论一个比较常见的情况。

26.1.4.2. 使用未使用的分区中的空间

在这种情况下,您可能有一个或者多个不再使用的分区。或许您过去可能用过另一个操作系统,且您专用的分区不再会被使用。图 26.9 “使用未使用的分区进行磁盘驱动器”演示了这种情况。

图 26.9. 使用未使用的分区进行磁盘驱动器

使用未使用的分区进行磁盘驱动器
图 26.9 “使用未使用的分区进行磁盘驱动器” 中,1 代表未使用的分区,2 代表为 Linux 重新分配未使用的分区。
如果您在这种情况中找到自己,您可以使用分配给未使用分区的空间。您必须先删除分区,然后创建其所在分区的适当 Linux 分区。您可以删除未使用的分区,并在安装过程中手动创建新分区。

26.1.4.3. 使用 Active 分区中的空闲空间

这是最常见的情况。它还很抱歉,要处理困难。问题主要在于,即使您有足够的可用空间,它也会被分配给已经使用的分区。如果您购买了带有预安装软件的计算机,硬盘很可能拥有一个庞大的分区来保存操作系统和数据。
除了向您的系统添加新硬盘驱动器外,还有两种选择:
破坏性重新分区
基本上,您可以删除单个大分区并创建几个较小的分区。正如您想象的,在原始分区中的数据都会被销毁。这意味着需要备份完整备份。对于您自己的 sake,请创建两个备份,使用验证(在您的备份软件中可用),并在删除分区 尝试从备份中读取数据。
警告
如果该分区中有某些类型的操作系统,也需要重新安装它。请注意,一些计算机用预安装的操作系统出售,可能没有包括 CD-ROM 介质来重新安装原始操作系统。在销毁原始分区及其操作系统安装 ,请注意这适用于您的系统的最佳时间。
为现有操作系统创建较小的分区后,您可以重新安装任何软件,恢复您的数据并启动 Red Hat Enterprise Linux 安装。图 26.10 “以破坏性方式重新分区的磁盘驱动器” 显示正在完成的。

图 26.10. 以破坏性方式重新分区的磁盘驱动器

以破坏性方式重新分区的磁盘驱动器
图 26.10 “以破坏性方式重新分区的磁盘驱动器” 中,1 代表后代表,2 代表后代表。
警告
作为 图 26.10 “以破坏性方式重新分区的磁盘驱动器”,显示原始分区中存在的所有数据都会在没有正确备份的情况下丢失!
非破坏性重新分区
在这里,您运行一个看似不可能的程序:它使大分区较小,而不会丢失该分区中存储的任何文件。许多人发现,这种方法是可靠且无问题。您应该使用什么软件来执行此联合?市场上有多个磁盘管理软件产品。进行一些调查,找到最适合您的情况的研究。
虽然非破坏性重新分区的过程比较简单,但涉及多个步骤:
  • 压缩和备份现存数据
  • 重新划分现存分区的大小
  • 创建新分区
接下来,我们将更加详细地了解每个步骤。
26.1.4.3.1. 压缩现有数据
作为 图 26.11 “压缩磁盘驱动器”,显示第一步要压缩现有分区中的数据。这样做的原因是,重新排列数据,以便它最大程度提高分区的"end"可用空间。

图 26.11. 压缩磁盘驱动器

压缩磁盘驱动器
图 26.11 “压缩磁盘驱动器” 中,1 代表后代表,2 代表后代表。
这一步骤至关重要。如果没有它,数据的位置可能会阻止分区被重新定义到所需扩展。另请注意,出于某种原因或其他原因,某些数据也不会被移动。如果出现这种情况(且严重限制新分区的大小),您可以强制重新对磁盘进行破坏性。
26.1.4.3.2. 重新划分现存分区的大小
图 26.12 “使用分区重新调整的磁盘驱动器”显示了实际调整大小的流程。虽然调整大小操作的实际结果因所使用的软件而异,但在大多数情况下,新可用空间用于创建与原始分区相同的未格式化的分区。

图 26.12. 使用分区重新调整的磁盘驱动器

使用分区重新调整的磁盘驱动器
图 26.12 “使用分区重新调整的磁盘驱动器” 中,1 代表后代表,2 代表后代表。
务必要了解使用的大小软件与新可用空间的大小,以便执行适当的步骤。如果我们说明过这一点,最好删除新的 DOS 分区并创建适当的 Linux 分区。
26.1.4.3.3. 创建新分区
因为前面的步骤简单了,可能不需要创建新分区。然而,除非大小软件是 Linux 感知型,否则您可能必须删除在调整大小过程中创建的分区。图 26.13 “最后分区配置的磁盘驱动器”显示正在执行的操作。

图 26.13. 最后分区配置的磁盘驱动器

最后分区配置的磁盘驱动器
图 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
最后的数字表示分区。前四个分区(主分区或扩展分区)编号为 14。逻辑分区从 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)。


[11] 具体来说 ,块的大小 一致,这与我们图所示不同。另请记住,平均磁盘驱动器包含数千块。但出于本讨论的目的,请忽略这些次要差异。