25.1.2. 分区:将一个驱动器变成多个驱动器
由于磁盘驱动器容量的不断增大,一些人开始质问将所有格式化的空间并为一大块是否明智。这一类想法的动机有哲学上的,也有技术上的。从哲学角度上讲,一个较大的磁盘驱动器所提供的额外空间若超过了一定的大小似乎只会造成更多的杂乱无章。从技术角度上讲,某些文件系统不是为支持大于一定容量的磁盘驱动器而设计的。或者,某些文件系统可能会支持拥有巨大容量的较大的驱动器,但是由文件系统跟踪文件所强加于上的管理费用也随之变得过高过大。
解决这个问题的办法是将磁盘划分为分区 (partition)。每一分区都可以像一个独立的磁盘一样被访问。这是通过添加分区表(partition table)来做到的。
虽然本章图表中所显示的分区表和实际磁盘驱动器是分开的,这并不完全正确。事实上,分区表被保存在磁盘的最起首,在任何文件系统或用户数据之前。但是为了清楚起见,我们在图表中将之分开。
如 图 25.5 “带有分区表的磁盘驱动器” 所示,分区表被分成 4 个部分或者说是 4 个 primary 分区。主分区是硬盘上的可以只包含一个逻辑分区(或部分)的分区。每个分区都存放着定义单一分区的必要的信息,这意味着分区表最多可以定义 4 个分区。
每个分区表项目都包含着该分区的几项重要的特征:
在磁盘上分区开始和结束的地点(起止点)
分区是否“活跃”
分区的类型
让我们来仔细查看一下每一个特征。起止点实际上定义了分区的大小及在磁盘上的位置。“活跃”标志是被某些操作系统的引导装载程序所用。换一句话说,标为“活跃”的分区上的操作系统将会被引导。
分区类型可能有些不易分辨。 类型是标识分区将会被如何使用的数字。如果这句话听起来有些笼统,那是因为分区类型术语本身也有些笼统。某些操作系统用分区类型来代表一种指定的系统类型,或将分区标为与某个操作系统相关联的分区,或用来指明该分区包含着可引导的操作系统,或是以上三者的结合。
现在,你可能想知道怎么处理其他复杂的情况。你可以参阅 图 25.6 “只有一个分区的磁盘驱动器” 里的例子。
在许多情况下,整个磁盘上只有一个分区,基本上是重复分区以前所使用的方法。分区表内只有一个项目,它指向分区的起点。
我们已经把这个分区标记为 "DOS" 类型。虽然这只是 表 25.1 “分区类型” 里列出的可能类型里的其中一种,但对于这里的讨论来说,这已经足够了。
表 25.1 “分区类型”中包括了一些常用的(和罕见的)分区类型,以及它们的十六进制数值。
| 分区类型 | 值 | 分区类型 | 值 |
|---|---|---|---|
| Empty | 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 |
表 25.1. 分区类型