原创 磁盘分区

2007-3-23 11:25 2661 3 3 分类: 软件与OS

1、分区:将一个驱动器变成多个驱动器

由于磁盘
驱动器容量的不断增大,一些人开始质问将所有格式化的空间并为一大块是否明智。这一类想法的动机有哲学上的,也有技术上的。从哲学角度上讲,一个较大的磁
盘驱动器所提供的额外空间若超过了一定的大小似乎只会造成更多的杂乱无章。从技术角度上讲,某些文件系统不是为支持大于一定容量的磁盘驱动器而设计的。或
者,某些文件系统可能会支持拥有巨大容量的较大的驱动器,但是由文件系统跟踪文件所强加于上的管理费用也随之变得过高过大。

解决这个问题的办法是将磁盘划分为分区 (partition)。每一分区都可以像一个独立的磁盘一样被访问。这是通过添加分区表(partition table)来做到的。

注记注记
 

虽然本章图表中所显示的分区表和实际磁盘驱动器是分开的,这并不完全正确。事实上,分区表被保存在磁盘的最起首,在任何文件系统或用户数据之前。但是为了清楚起见,我们在图表中将之分开。

点击看大图

图 1. 带有分区表的磁盘驱动器

图 1所示,分区表被分为四个部分。每个部分都装有定义单个分区所必需的信息,这意味着分区表定义的分区不能超过四个。

每个分区表项目都包含着该分区的几项重要的特征:

  • 在磁盘上分区开始和结束的地点(起止点)

  • 分区是否“活跃”

  • 分区的类型

让我们来仔细查看一下每一个特征。起止点实际上定义了分区的大小及在磁盘上的位置。“活跃”标志是被某些操作系统的引导装载程序所用。换一句话说,标为“活跃”的分区上的操作系统将会被引导。


区类型可能有些不易分辨。
类型是标识分区将会被如何使用的数字。如果这句话听起来有些笼统,那是因为分区类型术语本身也有些笼统。某些操作系统用分区类型来代表一种指定的系统类
型,或将分区标为与某个操作系统相关联的分区,或用来指明该分区包含着可引导的操作系统,或是以上三者的结合。

表 1中包括了一些常用的(和罕见的)分区类型,以及它们的数值。

分区类型分区类型
空白00Novell Netware 38665
DOS 12-bit FAT01PIC/IX75
XENIX root02Old MINIX80
XENIX usr03Linux/MINUX81
DOS 16-bit <=32M04Linux 交换区82
扩展05Linux Native83
DOS 16-bit >=3206Linux 扩展85
OS/2 HPFS07Amoeba93
AIX08Amoeba BBT94
AIX 可引导09BSD/386a5
OS/2 引导管理器0aOpenBSDa6
Win95 FAT320bNEXTSTEPa7
Win95 FAT32 (LBA)0cBSDI fsb7
Win95 FAT16 (LBA)0eBSDI swapb8
Win95 扩展 (LBA)0fSyrinxc7
Venix 8028640CP/Mdb
Novell51DOS accesse1
Microport52DOS R/Oe3
GNU HURD63DOS secondaryf2
Novell Netware 28664BBTff

表 1. 分区类型

到了这一步,你可能会在猜想这些附加的复杂性通常是怎样被使用的。实例请见图 2

点击看大图

图 2. 只有一个分区的磁盘驱动器

在许多情况下,整个磁盘上只有一个分区,基本上是重复分区以前所使用的方法。分区表内只有一个项目,它指向分区的起点。

我们把此分区标为“DOS”类。虽然它只是列在表 1之中的几种可能的分区之一,但也足以达到本附录的讨论目的。这是多数新近购买的带有预装 Microsoft Windows™ 消费者版本的计算机上的典型分区布局。

2、分区内的分区 — 扩展分区概述

经过一段时间后,四个分区很明显将不够用。随着磁盘驱动器的不断增大,配置了四个相当大的分区后仍有剩余空间的可能性会越来越大。我们需要有一些创建更多分区的方法。

请进入扩展分区的世界。在表 1中你可能已注意到一种分区类型是“扩展”。它就是位于扩展分区核心的分区类型。

当一个分区被建立,其类型被设为“扩展”时,扩展分区表也被创建。简而言之,扩展分区就像一个独立的磁盘驱动器
— 它有自己的分区表,该表指向一个或多个分区——它们现在被称为逻辑分区(logical partitions),与四个主分区(primary
partitions)
相对,并完全包含在扩展分区之内。 图 3显示了一个磁盘驱动器,其中有一个主分区和一个包含两个逻辑分区的扩展分区(以及一些未分区的空闲空间)。

点击看大图

图 3. 带有扩展分区的磁盘驱动器

如图表中所暗示,主分区与逻辑分区之间有一个区别
— 主分区只能有四个,但是可以存在的逻辑分区数量却无固定限制。不过,鉴于分区在 Linux
中可被进入的方式,你应该避免在一个磁盘驱动器上定义 12 个以上逻辑分区。

现在,我们已经大致讨论了分区概念,让我们来看一看如何将这些知识应用到安装 Red Hat Linux 上。

4、为 Red Hat Linux 腾挪空间

当你试图为你的硬盘重新分区时,有三种可能的情况:

  • 有可用的未分区的空闲空间

  • 有可用的未使用过的分区

  • 被活跃使用的分区内有可用的空闲空间

让我们依此来看一看每一种情况。

注记注记
 

请记住,以下图解是为清晰起见而经简化的,它们并不反映当你实际安装
Red Hat Linux 时所会遇到的确切分区布局。

4-1使用未经分区的空闲空间

在这种情况下,已定义的分区没有扩展到整个硬盘,它没有包括那些不属于任何定义分区的未分配的空间。图 4显示了可能出现的情境。

点击看大图

图 4. 带有未分区的空闲空间的磁盘驱动器

如果细想一下,你就会认识到一个未经使用的硬盘也属这种类型。唯一的区别是后者的全部空间都不属于任何定义的分区。

在以上任一情况下,你都可以从未经使用的空间中创建必要的分区。不幸的是,这种情况虽然简单,出现的可能性却不大(除非你为 Red Hat Linux
特意购买了一个新磁盘)。多数预安装的操作系统被配置为占据磁盘驱动器上所有可用空间(参阅第 4-3节)。

接下来,我们将讨论一种更普遍的情况。

4-2使用一个未使用过的分区中的空间

在这种情况下,可能有一个或多个分区你已不再使用。可能你过去用过其它的操作系统,而你拨给它的分区似乎已不再被使用。图 5显示了这种情况。

点击看大图

图 E5. 带有未使用分区的磁盘驱动器

如果你发现自己处于这种情况,你可以使用那些拨给未使用过的分区的空间。首先,你应该删除该分区,然后在其上创建相应的 Linux 分区。你既可以用
parted 命令来删除该分区,也可以在安装过程中选择手工创建分区,然后在创建新分区前删除该分区。

4-3 使用活跃分区中的空闲空间

这是最常见的情况。不幸的是,这也是最难处理的情况。主要问题是,即便你有足够的空闲空间,它们目前已被分配给一个正在使用中的分区。如果你购买了一个带有预装软件的计算机,很可能整个硬盘是一个单个的带有操作系统和数据的大分区。

除了给你的系统添加一个新硬盘驱动器外,你还有以下两种选择:

破坏性重新分区

简而言之,这种方法让你删除一个大分区而创建几个小一些的分区。你可能想象得到,贮存在原来分区上的所有数据将会被破坏。这意味着你有做完全备份的必要。为你自己的利益着想,请做两个备份,并校验(如果你的备份软件提供了的话)这些备份,在你删除分区之前试着从你的备份中读取数据。

小心小心
 

如果该分区上装有某类操作系统,该操作系统也需要被重新安装。需要注意的是,那些带有预装操作系统售出的计算机可能没有包括重装该系统所需的光盘介质。请在破坏你的原有分区及原有操作系统之前觉查到这一点。

为现存的软件创建了一个较小的分区后,你可以重装这些软件,恢复你的数据,然后继续安装 Red Hat Linux。图 6显示了这个过程完成后的情景。

点击看大图

图 6 被破坏性重新分区的磁盘驱动器

小心小心
 

图 6所示,没有正确的备份,原有分区内的所有数据将会丢失!

非破坏性重新分区

这要求你运行一个似乎可以“为所不可为”的程序:它会把大分区变小,却不会丢失该分区上的原有文件。许多人都发现这个办法既可靠又简单可行。但是哪一个软件可以帮助你达到这一目的呢?在软件市场上有好几种磁盘管理软件。你应该做一番调查来找到最适合你的情况的一种。

非破坏性分区过程是非常直捷了当的,它包括以下几个步骤:

  • 压缩现存数据

  • 重新划分现存分区的大小

  • 创建新分区

接下来,我们将详细说明每一步骤。

4-3-1 压缩现存数据

图 7所示,第一步要压缩你现存分区上的数据。原因是将这些数据重新安排后,你将会在该分区“终点”后获得最多的可用空闲空间。

点击看大图

图 7 磁盘驱动器被压缩

这一步骤至关重要。不执行这一步骤,你的数据所在位置可能会阻止分区被重新划分为想要的大小。还请注意的是,由于某种原因,某些数据不能被移动。如果情况如此(这会严重地限制你的新分区的大小),你可能会被迫在你的磁盘上进行破坏性重新分区。

4-3-2重新划分现存分区的大小

图8显示了重新划分分区大小的实际过程。这一过程的结果要依你所使用的软件而定。多数情况下,新空出的空闲空间被用来创建一个与原有分区同类的未格式化的分区。

点击看大图

图 8. 分区大小被重新划分的磁盘驱动器

理解你所使用的重新分区软件对新空出的空间的操作是很重要的,只有这样,你才能正确地采取相应措施。在我们示范的情况中,最佳措施是删除新建的
DOS 分区,然后创建恰当的 Linux 分区。

4-3-3 创建新分区

如前一步骤所暗示,创建新分区可能必要,也可能没必要。然而,除非你的重新分区软件知道 Linux
的存在,你很可能需要删除在重新划分分区过程中创建的分区。 图9显示了完成后的情景。

点击看大图

图 9. 带有最终分区配置的磁盘驱动器

注记注记
 

下列信息是基于 intel 的计算机所特有的。

为了方便用户,我们提供了
parted 工具。它是一个可免费获得的重新划分分区大小的程序。

如果你决定要使用 parted
来重新给你的硬盘驱动器分区,你需要做两件重要的事:

  • 执行备份 — 将你的计算机上重要的数据做两个备份。这些备份应该保存在可移介质上(如磁盘、光盘或磁带),而且你应该在继续前确定它们可以被读取。

  • 阅读文档
    — 完整地阅读 parted
    文档。请参考《Red Hat Linux 定制指南》中的“管理磁盘贮存区”这一章。

如果你决定要使用 parted,请留意在 parted
运行后,你会有两个分区:一个是你重新划分大小的分区,另一个是
parted 用新空出的空间创建的新分区。如果你的目的是使用新空出的空间来安装
Red Hat Linux,你应该删除新分区。你既可以使用在目前操作系统下的
Windows fdisk 分区工具来删除它,也可以在安装过程中设置分区时删除它。

5、分区命名方案

Linux 使用字母和数字的组合来指代磁盘分区。这可能有些使人迷惑不解,特别是如果你以前使用“C
驱动器”这种方法来指代硬盘及它们的分区。在
DOS/Windows 的世界里,分区是用下列方法命名的:

  • 每个分区都被检查过以便判定它是否可被 DOS/Windows 读取。

  • 如果分区类型是兼容的,它会被指派给一个“驱动器字母”。驱动器字母从“C”开始,然后依据要标签的分区数量而按字母顺序推移。

  • 驱动器字母可以用来指代那个分区,也可以用来指带分区所含的文件系统。

Red Hat 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 Linux 下被识别。当然,这并不是说
Red Hat Linux 能够访问每一类分区上的数据,但是在许多情况下,访问专用于另一操作系统的分区上的数据是可能的。

请切记以上信息;它会帮助你在设置 Red Hat Linux 所需分区时更容易地理解许多步骤。

6、磁盘分区以及其它操作系统

如果你的 Red Hat Linux 分区将会与其它操作系统所用的分区共享一个硬盘,多数情况下,应该没什么问题。不过,某类 Liunx 和其它操作系统的组合需要特别加以注意。

注记注记
 

如果 Red Hat Linux 会和 OS/2 在你的机器上并存,你必须使用
OS/2 分区软件来创建你的磁盘分区
— 否则,OS/2 可能不会识别磁盘分区。在安装中,不要创建任何新分区,但是请使用
Linux parted
为你的 Linux 分区设立正确的分区类型。

注记注记
 

如果你想从 Red Hat Linux 中能够读写 Windows NT、2000、或 XP 分区,不要把 Windows
分区的文件系统类型设为 NTFS。若
Windows 分区的类型是 NTFS,它就不能在 Red Hat Linux 中被读取;若
Windows 分区的类型是 VFAT,它就能够在 Red Hat Linux 中被读取。

如果你有多个 Windows 分区,它们不必都使用同一文件系统类型。如果你的
Windows 中有不止一个分区,你可以把其中之一设为 VFAT,并在其上贮存你想在 Windows 和
Red Hat Linux 间共享的文件。

7、磁盘分区和挂载点

令许多 Linux 的新用户感到困惑的一个地方是各分区是如何被 Linux 操作系统使用及访问的。它在
DOS/Windows 中相对来说较为简单。每一分区有一个“驱动器字母”,你用恰当的驱动器字母来指代相应分区上的文件和目录。

这与 Linux 处理分区及磁盘贮存问题的方法截然不同。其主要的区别在于,Linux
中的每一个分区都是构成支持一组文件和目录所必需的贮存区的一部分。它是通过挂载(mounting)来实现的,挂载是将分区关联到某一目录的过程。挂载分区使起始于这个指定目录(通称为挂载点,mount
point
)的贮存区能够被使用。

例如,如果分区 /dev/hda5
挂载在 /usr 上,这意味着所有在
/usr 之下的文件和目录在物理意义上位于
/dev/hda5 上。因此文件
/usr/share/doc/FAQ/txt/Linux-FAQ 被储存在
/dev/hda5上,而文件
/etc/X11/gdm/Sessions/Gnome 却不是。

继续以上的例子,/usr
之下的一个或多个目录还有可能是其它分区的挂载点。例如,某个分区(假设为,/dev/hda7)可以被挂载到
/usr/local 下,这意味着
/usr/local/man/whatis 将位于
/dev/hda7 上而不是
/dev/hda5 上。

8、多少个分区?

到了Red Hat Linux 安装筹备工作的这一步,你应该开始考虑一下你的新操作系统所要使用的分区数量及大小。“多少个分区”一直是
Linux 社区中的一个具有争议性的问题,在没有定论之前,可以说可用的分区布局与争论这一问题的人一样多。

鉴于上述情况,除非另有原因,你至少应该创建以下几个分区:swap/boot
以及 /(根)分区。


9、最后一个疑问:使用 GRUB 还是 LILO

GRUB 和 LILO 是最常用的在基于 Intel 的系统上引导 Red Hat Linux
的方法。作为操作系统装载程序,它们操作于任何操作系统 “之外”,仅使用计算机硬件中内建的基本 I/O
系统(或 BIOS)。本节向你描述 GRUB 和 LILO 与 PC BIOS 之间的交流,它只针对于 Intel 兼容的计算机。

9-1与 BIOS 相关的限制对 GRUB 和 LILO 的影响

在多数基于 Intel 的计算机中,GRUB 和 LILO 要接受由 BIOS
所强加的限制。特别是,多数 BIOS 无法进入两个以上的硬盘,而且它们无法访问任一驱动器上柱面
1023 以上所贮存的数据。请注意,某些新近的
BIOS 没有这些限制,但是无论如何这还不是统一的规范。

窍门窍门
 

在为你的硬盘驱动器分区的时候,请留意,某些老系统内的 BIOS 无法进入硬盘上前 1024
柱面外的空间。如果情况如此,请在你的硬盘驱动器的前 1024 柱面上为 /boot Linux
分区保留足够空间以便引导 Linux。 其它的 Linux 分区可以放在柱面 1024 之后。

parted 中,1024 柱面相当于 528MB。详情请参阅
http://www.pcguide.com/ref/hdd/bios/sizeMB504-c.html

所有 GRUB 和 LILO 需要在引导期间访问的数据(包括 Linux 内核)都位于
/boot 目录中。如果你遵循了以上所建议的分区布局,或者执行的是工作站、个人桌面或服务器安装,/boot
目录将会是一个单独的小分区。否则,它可能会驻留在根分区(/)上。无论如何,如果你要使用
GRUB 或 LILO 来引导你的 Red Hat Linux 系统,/boot 所驻留的分区一定要遵守以下条例:

在前两个 IDE 驱动器上

如果你有两个 IDE(或 EIDE)驱动器,/boot
必须要位于其中之一。请注意,两个驱动器的限制也包括任何在你的主 IDE 控制器上的 IDE
光盘驱动器。因此,如果在你的主控制器上你有一个
IDE 硬盘,和一个光盘驱动器,/boot
必须仅能位于第一个硬盘,即便你在次 IDE 控制器上另有硬盘。

在第一个 IDE 或第一个 SCSI 驱动器上

如果你有一个 IDE(或 EIDE)驱动器以及一个或更多 SCSI
驱动器,/boot 必须位于
IDE 驱动器上或 ID 为 0 的 SCSI 驱动器上。其它任何 SCSI ID都不行。

在前两个 SCSI 驱动器上

如果你只有 SCSI 硬盘,/boot
必须位于 ID 为 0 或 1 的驱动器上。其它任何 SCSI ID 都不行。

如前所述,某些新型的 BIOS 可能会允许 GRUB 和 LILO
与不符合这些条例的配置配合工作。同样的,某些 GRUB 和 LILO 的较隐诲的功能也可以用来启动
Linux 系统,即便其配置不符合我们的条例。然而,由于牵涉的变量太多,Red Hat 无法支持此类应用。

注记注记
 

Disk Druid,以及工作站和服务器的安装,把这些
BIOS 相关的限制都已考虑在内。

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /2 下一条