磁盘分区原理.docx
《磁盘分区原理.docx》由会员分享,可在线阅读,更多相关《磁盘分区原理.docx(36页珍藏版)》请在冰豆网上搜索。
磁盘分区原理
2008.07.28
======================================
附录C.磁盘分区简介
注记
本附录对于非x86体系不一定适用。
然而,在这里提及的一般原理可能适用。
磁盘分区长期以来一直是个人计算机领域中的一项基本必备知识。
然而,由于越来越多的人开始购买带有预安装的操作系统的计算机,相对来说,只有极少人理解分区的原理。
本章试图解释分区的原因以及用法,从而使你能够尽可能简便轻松地安装红帽企业Linux。
如果你对磁盘分区已有足够的了解,你可以直接跳到第C.1.4节来阅读关于如何腾出磁盘空间来准备红帽企业Linux安装的信息。
本节还将讨论Linux系统使用的分区命名方案,与其它操作系统共用磁盘,以及其它相关课题.
C.1.硬盘的基本概念
硬盘功能极为简单—它们被用来可靠地储存及检索数据.
在讨论磁盘分区之类的问题时,了解一些基础硬件知识至关重要。
不幸的是,这又极容易使人陷入小节,忽略全局。
因此,本附录使用了一种简化的磁盘驱动器图表来解释磁盘分区后的情形。
图C-1显示了一个崭新的、未曾使用的磁盘驱动器。
图C-1.未使用过的磁盘驱动器
没什么可看的,是不是?
不过,若我们仅在一个最基本的层次上讨论磁盘驱动器,此图表已足够。
假设我们要在这个磁盘驱动器上面储存一些数据,就目前而言,这还不行。
我们首先要做一些准备工作…
C.1.1.不是你写入什么,而是你怎么写入
有经验的计算机用户可能对此心中有数。
我们需要格式化(format)这个驱动器。
格式化又称“制作文件系统(filesystem)”,它是一个将信息写入驱动器,在未经格式化的驱动器内的空白空间中建立秩序的过程。
图C-2.有文件系统的磁盘驱动器
如图C-2所暗示,文件系统所建立的秩序牵涉到一些利弊得失:
∙驱动器上极小的一部分可用空间被用来储存与文件系统有关的数据,这可以被视作管理费用。
∙文件系统将剩余空间分割成小块的,大小统一的段。
在Linux中,这些段被称为块(block)。
[1]
由于文件系统带来创建目录和文件的可能性,以上牺牲可以被看作所需付出的一个很小的代价。
还有一点值得注意的是,统一通用的文件系统并不存在。
如图C-3所示,一个磁盘驱动器上可以有许多不同类型的文件系统。
你可能也猜得到,不同类型的文件系统通常是不兼容的。
这意味着,支持某种文件系统(或几种相关的文件系统类型)的操作系统可能不支持其它类型的文件系统。
不过,最后那句话并非是一个不折不扣的定理。
例如,红帽企业Linux支持的文件系统类型比较广泛(包括许多其它操作系统常用的文件系统),从而使不同文件系统之间的数据交换变得容易多了。
图C-3.含有不同文件系统的磁盘驱动器
当然,将文件系统写入磁盘仅仅是一个开端。
这个过程的目标实际上是储存并且检索数据。
写入一些文件后,让我们再来看一看磁盘。
图C-4.已写入数据的磁盘驱动器
如图C-4所示,某些先前空白的块现在已被写入数据。
然而,单看以上图示,我们无法判定在这个驱动器上究竟有多少个文件。
可能少到只有一个文件,也可能有很多文件,因为所有的文件至少要使用一个块,有些需要几个块。
还有一个要注意的要点是,所使用的块不必构成一处连续的区域;使用的和未使用的块可以交错散布。
这就是通称的碎段(fragmentation)。
碎段会对试图改变已存分区大小有一定的影响。
如同许多与计算机相关的科技,磁盘驱动器自问世后一直在不断地变化。
特别是,它们越来越大。
不是实际尺寸越来越大,而是它们储存信息的能力越来越大。
这种新增的容量导致了磁盘驱动器使用方法的根本改变。
C.1.2.分区:
将一个驱动器变成多个驱动器
由于磁盘驱动器容量的不断增大,一些人开始质问将所有格式化的空间并为一大块是否明智。
这一类想法的动机有哲学上的,也有技术上的。
从哲学角度上讲,一个较大的磁盘驱动器所提供的额外空间若超过了一定的大小似乎只会造成更多的杂乱无章。
从技术角度上讲,某些文件系统不是为支持大于一定容量的磁盘驱动器而设计的。
或者,某些文件系统可能会支持拥有巨大容量的较大的驱动器,但是由文件系统跟踪文件所强加于上的管理费用也随之变得过高过大。
解决这个问题的办法是将磁盘划分为分区(partition)。
每一分区都可以像一个独立的磁盘一样被访问。
这是通过添加分区表(partitiontable)来做到的。
注记
虽然本章图表中所显示的分区表和实际磁盘驱动器是分开的,这并不完全正确。
事实上,分区表被保存在磁盘的最起首,在任何文件系统或用户数据之前。
但是为了清楚起见,我们在图表中将之分开。
图C-5.带有分区表的磁盘驱动器
如图C-5所示,分区表被分为四个部分或四个“主分区”。
主分区是在硬盘驱动器上只能包含一个逻辑驱动器(或部分)的分区。
每个部分都装有定义单个分区所必需的信息,这意味着分区表定义的分区不能超过四个。
每个分区表项目都包含着该分区的几项重要的特征:
∙在磁盘上分区开始和结束的地点(起止点)
∙分区是否“活跃”
∙分区的类型
让我们来仔细查看一下每一个特征。
起止点实际上定义了分区的大小及在磁盘上的位置。
“活跃”标志是被某些操作系统的引导装载程序所用。
换一句话说,标为“活跃”的分区上的操作系统将会被引导。
分区类型可能有些不易分辨。
类型是标识分区将会被如何使用的数字。
如果这句话听起来有些笼统,那是因为分区类型术语本身也有些笼统。
某些操作系统用分区类型来代表一种指定的系统类型,或将分区标为与某个操作系统相关联的分区,或用来指明该分区包含着可引导的操作系统,或是以上三者的结合。
到了这一步,你可能会在猜想这些附加的复杂性通常是怎样被使用的。
实例请见图C-6。
图C-6.只有一个分区的磁盘驱动器
在许多情况下,整个磁盘上只有一个分区,基本上是重复分区以前所使用的方法。
分区表内只有一个项目,它指向分区的起点。
我们把此分区标为“DOS”类。
虽然它只是列在表C-1之中的几种可能的分区之一,但也足以达到本附录的讨论目的。
表C-1中包括了一些常用的(和罕见的)分区类型,以及它们的十六进制数值。
分区类型
值
分区类型
值
Empty
00
NovellNetware386
65
DOS12-bitFAT
01
PIC/IX
75
XENIXroot
02
OldMINIX
80
XENIXusr
03
Linux/MINUX
81
DOS16-bit<=32M
04
Linuxswap
82
Extended
05
LinuxNative
83
DOS16-bit>=32
06
Linuxextended
85
OS/2HPFS
07
Amoeba
93
AIX
08
AmoebaBBT
94
AIXbootable
09
BSD/386
a5
OS/2BootManager
0a
OpenBSD
a6
Win95FAT32
0b
NEXTSTEP
a7
Win95FAT32(LBA)
0c
BSDIfs
b7
Win95FAT16(LBA)
0e
BSDIswap
b8
Win95Extended(LBA)
0f
Syrinx
c7
Venix80286
40
CP/M
db
Novell
51
DOSaccess
e1
PPCPRePBoot
41
DOSR/O
e3
GNUHURD
63
DOSsecondary
f2
NovellNetware286
64
BBT
ff
表C-1.分区类型
C.1.3.分区内的分区—扩展分区概述
经过一段时间后,四个分区很明显将不够用。
随着磁盘驱动器的不断增大,配置了四个相当大的分区后仍有剩余空间的可能性会越来越大。
我们需要有一些创建更多分区的方法。
请进入扩展分区的世界。
在表C-1中你可能已注意到一种分区类型是“扩展”(Extended)。
它就是位于扩展分区核心的分区类型。
当一个分区被建立,其类型被设为“扩展”时,扩展分区表也被创建。
简而言之,扩展分区就像一个独立的磁盘驱动器—它有自己的分区表,该表指向一个或多个分区——它们现在被称为逻辑分区(logicalpartitions),与四个主分区(primarypartitions)相对,扩展分区的分区表完全包含在扩展分区之内。
图C-7显示了一个磁盘驱动器,其中有一个主分区和一个包含两个逻辑分区的扩展分区(以及一些未分区的空闲空间)。
图C-7.带有扩展分区的磁盘驱动器
如图表中所暗示,主分区与逻辑分区之间有一个区别—主分区只能有四个,但是可以存在的逻辑分区数量却无固定限制。
不过,鉴于Linux进入分区的方式,你应该避免在一个磁盘驱动器上定义12个以上逻辑分区。
现在,我们已经大致讨论了分区概念,让我们来看一看如何将这些知识应用到安装红帽企业Linux上。
C.1.4.为红帽企业Linux腾挪空间
当你试图为你的硬盘重新分区时,有三种可能的情况:
∙有可用的未分区的空闲空间
∙有可用的未使用过的分区
让我们依次来看一看每一种情况。
注记
请记住,以下图解是为清晰起见而经简化的,它们并不反映当你实际安装红帽企业Linux时所会遇到的确切分区布局。
C.1.4.1.使用未经分区的空闲空间
在这种情况下,已定义的分区没有扩展到整个硬盘,它没有包括那些不属于任何定义分区的未分配的空间。
图C-8显示了可能出现的情境。
图C-8.带有未分区的空闲空间的磁盘驱动器
在图C-8中,1代表带有未被拨发的空间的未定义分区,2代表带有已被拨发的空间的已定义分区。
如果细想一下,你就会认识到一个未经使用的硬盘也属这种类型。
唯一的区别是后者的全部空间都不属于任何定义的分区。
接下来,我们将讨论一种更普遍的情况。
C.1.4.2.使用一个未使用过的分区中的空间
在这种情况下,可能有一个或多个分区你已不再使用。
可能你过去用过其它的操作系统,而你拨给它的分区似乎已不再被使用。
图C-9显示了这种情况。
图C-9.带有未使用分区的磁盘驱动器
在图C-9中,1代表未使用的分区,2代表为Linux重新拨发未使用过的分区。
如果你发现自己处于这种情况,你可以使用那些拨给未使用分区的空间。
首先,你应该删除该分区,然后在其上创建相应的Linux分区。
你可以在安装过程中删除未用分区,然后再手工创建新分区。
C.1.5.分区命名方案
Linux使用字母和数字的组合来指代磁盘分区。
这可能有些使人迷惑不解,特别是如果你以前使用“C驱动器”这种方法来指代硬盘及它们的分区。
在DOS/Windows的世界里,分区是用下列方法命名的:
∙每个分区都被检查过以便判定它是否可被DOS/Windows读取。
∙如果分区类型是兼容的,它会被指派给一个“驱动器字母”。
驱动器字母从“C”开始,然后依据要标签的分区数量而按字母顺序推移。
∙驱动器字母可以用来指代那个分区,也可以用来指带分区所含的文件系统。
红帽企业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不同,所有分区都可在红帽企业Linux下被识别。
当然,这并不是说红帽企业Linux能够访问每一类分区上的数据,但是在许多情况下,访问专用于另一操作系统的分区上的数据是可能的。
请切记以上信息;它会帮助你在设置红帽企业Linux所需分区时更容易地理解许多步骤。
C.1.6.磁盘分区以及其它操作系统
如果你的红帽企业Linux分区将会与其它操作系统所用的分区共享一个硬盘,多数情况下,应该没什么问题。
不过,某类Liunx和其它操作系统的组合需要特别加以注意。
C.1.7.磁盘分区和挂载点
令许多Linux的新用户感到困惑的一个地方是各分区是如何被Linux操作系统使用及访问的。
它在DOS/Windows中相对来说较为简单。
每一分区有一个“驱动器字母”,你用恰当的驱动器字母来指代相应分区上的文件和目录。
这与Linux处理分区及磁盘贮存问题的方法截然不同。
其主要的区别在于,Linux中的每一个分区都是构成支持一组文件和目录所必需的贮存区的一部分。
它是通过挂载(mounting)来实现的,挂载是将分区关联到某一目录的过程。
挂载分区使起始于这个指定目录(通称为挂载点,mountpoint)的贮存区能够被使用。
例如,如果分区/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上。
C.1.8.多少个分区?
到了红帽企业Linux安装筹备工作的这一步,你应该开始考虑一下你的新操作系统所要使用的分区数量及大小。
“多少个分区”一直是Linux社区中的一个具有争议性的问题,在没有定论之前,可以说可用的分区布局与争论这一问题的人一样多。
鉴于上述情况,除非另有原因,我们推荐你至少应该创建以下几个分区:
swap、/boot/(/boot/文件只对其它系统必要,对iSeries系统没有必要),PPCPRePBoot、和/(根)分区。
注意,新的虚拟磁盘可以在OS/400V5R2和更新的版本上被动态添加。
详情请参阅第2.14.4节。
注
[1]
与图解所示不同,块实际上是大小统一的。
此外还请留意,一个普通的磁盘驱动器上含有数以千计的块。
不过,在本次讨论中,我们可以忽略这些细微出入。
2008.09.13
=====================================================================
扩展分区和逻辑分区:
DOS和FAT文件系统最初都被设计成可以支持在一块硬盘上最多建立24个分区,分别使用从C到Z24个驱动器盘符。
但是主引导记录中的分区表最多只能包含4个分区记录,为了有效地解决这个问题,DOS的分区命令FDISK允许用户创建一个扩展分区,并且在扩展分区内在建立最多23个逻辑分区,其中的每个分区都单独分配一个盘符,可以被计算机作为独立的物理设备使用。
关于逻辑分区的信息都被保存在扩展分区内,而主分区和扩展分区的信息被保存在硬盘的MBR内。
这也就是说无论硬盘有多少个分区,其主启动记录中只包含主分区(也就是启动分区)和扩展分区两个分区的信息。
硬盘分区之后,会形成3种形式的分区状态;即主分区、扩展分区和非DOS分区。
在硬盘中非DOS分区(Non-DOSPartition)是一种特殊的分区形式,它是将硬盘中的一块区域单独划分出来供另一个操作系统使用,对主分区的操作系统来讲,是一块被划分出去的存储空间。
只有非DOS分区内的操作系统才能管理和使用这块存储区域,非DOS分区之外的系统一般不能对该分区内的数据进行访问。
主分区则是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。
其中的主引导程序是它的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的DOS或其他操作系统。
此段程序损坏将无法从硬盘引导,但从软区或光区之后可对硬盘进行读写。
而扩展分区的概念是比较复杂的,极容易造成硬盘分区与逻辑磁盘混淆;分区表的第四个字节为分区类型值,正常的可引导的大于32mb的基本DOS分区值为06,扩展的DOS分区值是05。
如果把基本DOS分区类型改为05则无法启动系统,并且不能读写其中的数据。
如果把06改为DOS不识别的类型如efh,则DOS认为改分区不是DOS分区,当然无法读写。
很多人利用此类型值实现单个分区的加密技术,恢复原来的正确类型值即可使该分区恢复正常。
fat16
对电脑老"鸟"而言,对这种硬盘分区格式是最熟悉不过了,我们大都是通过这种分区格式认识和踏入电脑门槛的。
它采用16位的文件分配表,能支持的最大分区为2gb,是目前应用最为广泛和获得操作系统支持最多的一种磁盘分区格式,几乎所有的操作系统都支持这一种格式,从dos、win3.x、win95、win97到win98、windowsnt、win2000/XP,甚至火爆一时的linux都支持这种分区格式。
但是fat16分区格式有一个最大的缺点,那就是硬盘的实际利用效率低。
因为在dos和windows系统中,磁盘文件的分配是以簇为单位的,一个簇只分配给一个文件使用,不管这个文件占用整个簇容量的多少。
而且每簇的大小由硬盘分区的大小来决定,分区越大,簇就越大。
例如1gb的硬盘若只分一个区,那么簇的大小是32kb,也就是说,即使一个文件只有1字节长,存储时也要占32kb的硬盘空间,剩余的空间便全部闲置在那里,这样就导致了磁盘空间的极大浪费。
fat16支持的分区越大,磁盘上每个簇的容量也越大,造成的浪费也越大。
所以随着当前主流硬盘的容量越来越大,这种缺点变得越来越突出。
为了克服fat16的这个弱点,微软公司在win97操作系统中推出了一种全新的磁盘分区格式fat32。
fat32
这种格式采用32位的文件分配表,使其对磁盘的管理能力大大增强,突破了fat16对每一个分区的容量只有2gb的限制,运用fat32的分区格式后,用户可以将一个大硬盘定义成一个分区,而不必分为几个分区使用,大大方便了对硬盘的管理工作。
而且,fat32还具有一个最大的优点是:
在一个不超过8gb的分区中,fat32分区格式的每个簇容量都固定为4kb,与fat16相比,可以大大地减少硬盘空间的浪费,提高了硬盘利用效率。
目前,支持这一磁盘分区格式的操作系统有win97、win98和win2000/XP。
但是,这种分区格式也有它的缺点,首先是采用fat32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用fat16格式分区的硬盘要慢;另外,由于dos系统和某些早期的应用软件不支持这种分区格式,所以采用这种分区格式后,就无法再使用老的dos操作系统和某些旧的应用软件了。
ntfs
ntfs分区格式是一般电脑用户感到陌生的,它是网络操作系统windowsnt的硬盘分区格式,使用windowsnt的用户必须同这种分区格式打交道。
其显著的优点是安全性和稳定性极其出色,在使用中不易产生文件碎片,对硬盘的空间利用及软件的运行速度都有好处。
它能对用户的操作进行记录,通过对用户权限进行非常严格的限制,使每个用户只能按照系统赋予的权限进行操作,充分保护了网络系统与数据的安全。
但是,目前支持这种分区格式的操作系统不多,除了windowsnt外,刚刚上市的win2000也支持这种硬盘分区格式。
不过与windowsnt不同的是,win2000使用的是ntfs5.0分区格式。
ntfs5.0的新特性有"磁盘限额"--管理员可以限制磁盘使用者能使用的硬盘空间;"加密"--在从磁盘读取和写入文件时,可以自动加密和解密文件数据等。
随着win2000的普及,广大电脑用户会逐渐熟悉这种分区格式的。
linux
linux操作系统是去年it媒体炒得最为火爆的操作系统。
由于该系统为自由软件,几乎不用花钱就能装入电脑,所以赢得了许多用户。
它的磁盘分区格式与其他操作系统完全不同,共有两种格式:
一种是linuxnative主分区,一种是linuxswap交换分区。
这两种分区格式的安全性与稳定性极佳,结合linux操作系统后,死机的机会大大减少,能让我们摆脱windows常常崩溃的噩梦。
但是,目前支持这一分区格式的操作系统只有linux,对linux系统不感兴趣的用户也只能望洋兴叹了。
通过以上的介绍,我想你一定对常见的硬盘的分区格式有所了解了。
那么,赶快根据你所需要安装的操作系统,给你的硬盘确定分区格式吧。
硬盘必须先经过分区才能使用,磁盘经过分区之后,下一个步骤就是要对硬盘进行格式化(FORMAT)的工作,硬盘都必须格式化才能使用。
格式化是在磁盘中建立磁道和扇区,磁道和扇区建立好之后,电脑才可以使用磁盘来储存数据。
在Windows和DOS操作系统下,都有格式化Format的程序,不过,一旦进行格式化硬盘的工作,硬盘中的数据可是会全部不见喔!
所以进行这个动作前,先确定磁盘中的数据是否还有需要,如果是的话先另行备份吧。
exFAT
exFAT(全称ExtendedFileAllocationTableFileSystem,扩展FAT,即扩展文件分配表)是Microsoft在WindowsEmbeded6.0(包括WindowsCE6.0、WindowsMobile)中引入的一种适合于闪存的文件系统。
对于闪存,NTFS文件系统过于复杂,exFAT更为适用。
相对FAT文件系统,exFAT有如下好处:
•增强了台式电脑与移动设备的互操作能力
•单文件大小最大可达16EB(2305843009213693952字节,就是16M个TB,1TB=1024G)
•簇大小可高达32MB
•采用了剩余空间分配表,剩余空间分配性能改进
•同一目录下最大文件数可达65536个
•支持访问控制
•支持TFAT
采用该文件系统的闪存盘不支持WindowsVistaReadyBoost。
Wi