原文:An Introduction to Disk Partitions
Link:http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/ch-partitions-x86.html
硬盘分区简介
注:本附录对非X86构架不一定适用,但是,提到的一般概念是适用的。
如果熟悉分区知识,可以跳到后面的 A.1.4节,"给fedora分配空间"那里提够了更多关于释放硬盘空间以便安装fedora的信息。这一部分也讨论linux系统分区命名方案,操作系统间硬盘共享等相关主题。
A.1.硬盘基本概念
硬盘执行一个非常简单的功能--存储数据并且通过命令可靠的检索它们。
当讨论像硬盘分区这样的主题的时候,了解点底层硬件的知识很重要。不幸的是,在细节上讨论非常容易陷入困境。因此,本附录使用一个简化的硬盘图形去帮助我们解释当硬盘分区的时候都发生了什么。图A.1“一块未使用的硬盘”显示了一块空的未使用的新硬盘。
图 A.1. 一块未使用的硬盘
没什么可看的,不是吗?但是如果我们以初级水准去讨论它,这些足够了。当你想往硬盘上存储一些数据的时候,它不会工作。因为我们需要先做一些事情。
A.1.1 不是写入了什么,而是怎样写
有经验的计算机用户可能先尝试着去格式化硬盘。格式化(通常被称作“写入文件系统)向硬盘写入信息,在未格式化的硬盘上创建有序的空白空间。
图 A.2 写入文件系统的硬盘
如 图A.2 "写入文件系统的硬盘"所示,文件系统创建的秩序涉及了一些“交易”: 硬盘可用空间的一小部分用来存储文件系统相关信息,可以看做是开销。 文件系统把剩余的空间分成小的,一致的段。例如linux,这些段被叫做块。
由于文件系统使得像目录、文件这些东西等成为可能,这种“交易”就像买东西后付钱一样。
值得一提的是没有单一通用的文件系统。像图A.3,"写入一个不同文件系统的硬盘",表明一块硬盘可能有不同文件系统中的一个。如你所想,不同的文件系统是不兼容的;也就是说,支持这种文件系统的操作系统可能不支持另一个。这不是铁定的规则。例如,fedora支持许多文件系统(包括其他操作系统许多通用的),使得不同文件系统间的数据交换很容易。
图A.3 写入一个不同文件系统的硬盘
当然了,将文件系统写入硬盘只是开始。这样做的目的是存储和检索数据。让我们看一下写入数据之后的硬盘。
图A.4. 写入数据的硬盘
如图A.4所示,以前的一些空块现在存储了数据。然而,只是通过这张图,我们不能精确判断有多少文件存储在这块硬盘上。可能只有一个文件或者更多,因为,也许所以文件用了不到一个块,或者一些文件用了好几个块。需注意的重要一点,这些被使用的块不必形成一个连续的区域;使用的和未使用的块可能是交叉散置的。就是常说的碎片。当要去重新调整已存在的分区大小时碎片整理是重要的一步。
和计算机相关技术一样,硬盘与时俱进。特别是他们的容量变得更大。物理形状没有增大,但是存储容量增大了。这种新增加的容量使得硬盘的使用方式发生了根本变化。
A.1.2 分区:把一块硬盘分成多个分区
随着硬盘容量的飙升,人们开始猜测如果把所有的格式化后的空间都存储在一个大的块上是否是一个伟大的想法。这种想法要从几方面考虑,有哲学的,也有技术上的。从哲学方面来讲,大硬盘上的空间超过了一定大小就牵引出更多的麻烦。从技术方面来讲,文件系统从来就没有设计成支持超过一定大小的容量。也许文件系统能够支持很大容量的硬盘,但是文件系统查找文件的开销会变得非常巨大。
问题的解决方案是对硬盘进行分区。每一个单独分区可以都可以被访问。可以通过增加一个分区表来实现。
注:虽然本章的图例显示了硬盘分区后的分区表,但这不完全正确。实际上,分区表存储在硬盘最开始的地方,比任何文件系统、用户数据都靠前。但是为了清晰,在图例中分区表和硬盘分开了。
图A.5有分区表的硬盘
如图A.5“有分区表的硬盘”所示,分区表被分成四个区或四个主分区。一个主分区是硬盘上只能容纳一个逻辑区(或者section)。每个section包含了定义单个分区的重要信息,也就是说分区表不能定义四个以上的分区。
每个分区表主要记录一些重要的分区特性:- 分区在硬盘开始和结束点
- 分区是否是激活的(active)
- 分区类型
让我们仔细地了解每一个特性。分区开始和结束点实际上定义了分区的大小和分区在硬盘上的位置。“激活”标志被一些操作系统的引导装载程序使用。也就是说,“激活”标志有效的分区上的操作系统是可启动的。
分区类型可能有一点复杂让人感到混乱。类型是一个数字,识别分区的预定使用方式。如果这种说法听起来有一点模糊,那是因为分区类型的含义本身就有点模糊。有的操作系统使用分区类型去表示一个特定文件系统的类型,有的是把其作为特定系统和分区联系的标记,有的是用其表示存储可启动操作系统的分区,有的综合三种情况。
现在,你可能在想这些额外的复杂性是如何被实现的。看图A.6“单分区硬盘”。
Figure A.6. 单分区硬盘
很多情况下,单分区使用了整个硬盘,本质上是复制分区技术出现以前的方法。只有一个分区表区被使用,它指向了分区的开始。 我们把这个分区标记成“DOS”类型。尽管它只是表A.1“分区类型”中列出的一个,但是这对于我们的讨论足够了。 表A.1 分区类型,包含了一些流行分区类型,还有他们的16进制值。
A.1.3. 带有分区的分区 --扩展分区概述
当然了,随着时间的推移,四个分区明显的不够用。硬盘容量不段增大,一个人配置了四个合理大小的分区后,依旧有剩余空间的情况越来越有可能出现。我们需要有创建更多分区的手段。
因此,引入了扩展分区技术。在表A.1“分区类型”中你也许注意到了有一个“Extended"分区类型。这种分区类型是扩展分区的核心。 当分区被创建并且类型为“Extended”,扩展分区也被创建。本质上讲,扩展分区就像是拥有自己权利的硬盘--它包含一个分区表,表项指向一个或者更多的分区(现在被称作逻辑分区,和主分区相对),这些逻辑分区在该扩展分区上。图A.7“带有扩展分区的硬盘”,显示的是带有一个主分区和一个扩展分区的硬盘,扩展分区又包含两个逻辑分区(还有一些未分区的自由空间)。.
图A.7. 带有扩展分区的硬盘
如图所示,主分区和逻辑分区的不同之处在于--只能有四个主分区,但是逻辑分区的数目没有限制。然而,考虑到在linux中访问分区的方式,你应该避免在一块硬盘上创建13个以上的逻辑分区。
既然我们概括性的讨论了分区,那就让我们来学习下如何应用这些知识来安装Fedora。
A.1.4 给Fedora分配空间
下面列出一些当你打算对硬盘重新分区的时候可能要面对的情景,。
- 未被分区的自由空间可用
- 不使用的分区可用
- 被使用的分区上空闲空间可用
让我们按序讨论每种情形
注:请牢记下面的图例都是简化的,为了能清晰的表达并且不会涉及到确切的分区布局,在你安装fedora的时候会遇到。
A.1.4.1 使用未被分区的自由空间
这种情况下,已定义的分区没有使用掉整个硬盘。没有分配的空间不属于任何已被定义的分区。图A.8,“带有未被分区的自由空间的硬盘”显示了这种情况。
图A.8.“带有未被分区的自由空间的硬盘”
在图A.8“带有未分区的自由空间的硬盘”1未分区,空间未分配,2空间分配,分区定义。
你可以这样想,未使用的硬盘也属于这种范畴。那么唯一的区别就是所有的硬盘空间不属于任何已定义的分区。
任何时候,你都可以在未使用的空间上创建分区。不幸的是,这虽然简单但不是很可能(除非你刚好买了一块新硬盘来安装fedora)。大部分预装的操作系统被配置成占有硬盘上的所有可用空间。(参见 A.1.4.3节,“使用已使用分区中的自由空间”)。
下面,我们来讨论一种更常见的情况。
A.1.4.2 使用不使用的分区上的空间
这种情况下,可能有一个或多个不使用的分区。以前也许在上面安装过其他系统,不打算再使用了。图A.9,"带有不使用分区的硬盘“,图示了这种情况。
图 A.9,"含有不使用分区的硬盘"。
在图A.9中,1一个不使用的分区,2把不使用的分区重新分配给linux。
如果你处于这种情形,那么可以使用这些不使用分区上的空间。必须先删除这个分区。然后创建适当linux的分区。你可以在安装过程中删除不再使用的分区,然后手动创建新的分区。
A.1.4.3 使用已使用分区中的自由空间
这是最常见的情况。也很不幸,它是最难处理的。主要是,尽管你有足够的空间,可是已经分配给某个分区,并且正在使用中。如果你买了一台预装软件的电脑,那么硬盘很可能有一个很大的分区,存储着操作系统和数据。
除了给系统添加一块新硬盘,还有两种选择:
数据损坏性重分区
基本步骤,删除单个大分区,然后创建几个小的分区。如你所想,分区上原来的所有数据都会被销毁。这意味着做一个全备份是必要。为自己着想,做双备份,使用验证机制(如果你的备份软件支持的话),并且在删除分区之前确定备份中数据可读。给系统创建完小分区后,你可以重新安装软件,恢复数据,启动你的fedora 安装程序。图 A.10,“进行数据破坏性重新分区的硬盘”表示了这个过程。图 A.10. 进行数据破坏性重新分区的硬盘
在图 A.10, “进行数据破坏性重新分区的硬盘”,1表示以前,2表示重分区后。
警告:如图A.10“进行数据破坏性重新分区的硬盘”所示,原分区上数据没有备份会全部丢失。
数据无损性重分区
启动一个程序,让它做一些看起来不可能的事:把一个大分区变小,却不丢失存储在分区上的任何文件。很多人已发现这种方法值得信赖并且没有故障。什么软件可以实现这种功能那?市场上有一些硬盘管理软件可以。搜索一下,找个最适合你状况的软件吧。虽然这种数据无损性重分区过程相当简单,却涉及一些步骤:
- 压缩并备份现有数据
- 重新设定现有分区大小
- 创建新分区
下面我们来更仔细的讨论下每个步骤。
A.1.4.3.1 压缩现有数据
如图 A.11“进行数据压缩的硬盘”所示,第一步是压缩现有分区上的数据。这样做的原因是整理数据以便在分区末端有最多的可用空间。
图 A.11. 进行数据压缩的硬盘
在图 A.11 “进行数据压缩的硬盘”, 1表示之前,2表示之后。
这一步至关重要。不这样做,现存数据的位置会阻止分区调整到理想大小。尽管这样,由于各种原因,一些数据不能被移动。如果遇到这样情况,你可能需要强制地对硬盘进行数据损坏性重分区。
A.1.4.3.2. 调整现有分区大小
图A.12“调整分区大小的硬盘”显示了分区大小调整的过程。虽然调整操作的实际结果依赖于所使用的软件,大多情况下被新释放的空间被创建成和原分区类型相同的分区,但是未格式化。
图 A.12. 进行调整分区大小的硬盘
在图 A.12, “调整分区大小的硬盘”, 1 表示原来2表示调整后。
理解你使用的调整分区大小软件对新释放的空间做了什么很重要,这样使得你能够采取适当的步骤。像我们说说的,最好是先删除新dos分区,然后创建是相应的linux分区。
A.1.4.3.3. 创建新分区
如上一步所示,建立新分区可能不是必须的。除非调整分区软件是Linux-aware,它已经删除了在调整过程中创建的新分区。如图A.13“Disk Drive with Final Partition Configuration”所示。
图A.13“Disk Drive with Final Partition Configuration”
在图 A.13, “Disk Drive with Final Partition Configuration”中, 1 表示之前 , 2 表示之后。
注:以下信息只针对X86构架计算机,为了便利,我们使用parted程序。这是一个可以重新调整分区大小的自由软件。
如果你打算使用parted对你的硬盘重新分区,熟悉硬盘存储并对数据备份很重要。应该给计算机上所有重要数据做双备份。备份应存储存在移动介质上(比如磁带,CD-ROM,或者移动硬盘),在执行操作前应确定备份数据是可读的。 如果你决定使用parted,请注意parted运行后你会得到两个分区:一个你重新调整大小的,另一个是parted用新释放的空间创建的。如果你的目的是使用那些空间去安装fedora,你应该使用当前系统的分区工具删除新分区,或者在安装过程中设置分区。
A.1.5. 分区命名方案
Linux使用字母和数字的组合来命名分区,这可能让人感到疑惑,特别是你如果熟悉“C 盘”这种方式引用硬盘和其他分区。在DOS/Windows 世界中,使用下面的方法来命名:
*每个分区类型被检测是否可以被DOS/Windows读取
*如果分区类型兼容,它被分配一个驱动号,以“C”开始,以此延续,依赖于被标记的分区数目。
*驱动号用来指定分区还有分区上的文件系统Fedora使用一种 更加复杂的命名方案,比其他操作系统使用的传达更多信息。这种方案是基于文件的,使用/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硬盘上的第二个逻辑分区。注: 记住这些,当你设置fedora分区的时候一切理解起来就很简单了。
A.1.6. 硬盘分区和其他操作系统
如果你的fedora分区和一块硬盘共享,该硬盘使用其他操作系统,通常你不会遇到问题。然后,linux和某些操作系统的特定组合需要额外小心。
A.1.7. 硬盘分区和挂载点
Linux新手发现一个令人困惑的地方:分区怎样被linux操作系统访问使用。在DOS/Windows中,这个相对简单:每个分区有个驱动号,然后使用正确的驱动号指向相应分区的文件和目录。 这和linux处理分区硬盘存储完全不同。主要的区别是分区被用做支持文件集和目录存储的重要部分。通过一个叫做挂载(mount)的过程把分区和目录结合起来实现这种功能。分区挂载后在特定的目录(被称作挂载点)就可以开始存储。 例如,如果/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.8. 要分多个分区?
在准备安装fedora过程中,你一定考虑新系统的分区数目和大小。“多少个分区”这个问题在linux社区上继续引发着争论,无休止。有多少人讨论这个话题就有多少种方案,可能这种说才保险点。
除非有理由不这样做,否则牢记:至少要创建交换分区(swap), /boot/,还有/(根root)分区。 更多信息参见 8.17.5节, “Recommended Partitioning Scheme”。