3 Linux管理员手册--存贮介质( 五 )


MBR(主引导记录), 启动扇区和分区表
一个硬盘如何分区的信息存在它的第一个扇区(即第一面第一道第一扇区) 。这个第一扇区是硬盘的主引导记录(MBR);这是计算机启动时BIOS读入和启动的扇区 。主引导记录包括一段小程序,读入分区表,检查哪个分区是活动分区(即启动分区),并读入活动分区的第一个扇区:该分区的启动扇区(MBR也是启动扇区,只不过因为其特殊地位,所以使用特殊的名字) 。这个启动扇区包括另一个小程序,读入这个分区(假设是可启动的)上操作系统的第一个部分,然后启动它 。
这个分区方案不是内置于硬件和BIOS的,只是许多操作系统遵循的约定 。并非所有的操作系统都遵循这个约定,也有例外 。有些操作系统支持分区,但他们占领硬盘上的一个分区,然后使用他们自己的内部分区方法管理这个分区 。较新的操作系统可以和其他操作系统和平共处(包括Linux),而无需特殊的措施,但不支持分区的操作系统无法在同一硬盘上与其他操作系统共存 。
为安全预防,最好先在纸上写下分区表,这样在错误发生时不会丢失你的文件 。(可以使用fdisk 修复坏的分区表) 。)相关信息可用fdisk -l 命令给出:
$ fdisk -l /dev/hda
Disk /dev/hda: 15 heads, 57 sectors, 790 cylinders
Units = cylinders of 855 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 1 1 24 1023182 Linux swap
/dev/hda2 25 25 48 10260 83 Linux native
/dev/hda3 49 49 408 153900 83 Linux native
/dev/hda4 409 409 790 163305 5 Extended
/dev/hda5 409 409 744 14361183 Linux native
/dev/hda6 745 745 790 1963683 Linux native
$
扩展和逻辑分区
PC硬盘的最初的分区方案只允许4个分区 。实际使用中这太少了,比如有人想装多于4个操作系统 (Linux, MS-DOS, OS/2, Minix, FreeBSD, NetBSD, Windows/NT等),或有时一个操作系统有多个分区更好,例如由于速度的原因,Linux的对换区最好单独使用自己的分区,而不是在主 Linux分区中(下文详述) 。
为克服这个设计问题,发明了扩展分区 。这个方法允许将基本分区分为若干子分区,因而被子分区的基本分区称为扩展分区,而子分区称为逻辑分区,他们的表现类似基本分区 ,但产生方法不同 。他们之间没有速度差别 。
硬盘的分区结构可能类似 。这个硬盘被分为3个基本分区,第二个被分为2个逻辑分区 。部分硬盘根本没有分区 。硬盘是一个整体,每个基本分区有一个启动扇区 。
分区种类
分区表(MBR和扩展分区里都有)中,对每个分区,有一个字节指出分区种类 。这试图确定使用该分区的操作系统,或用于何操作系统 。其目的是避免2个操作系统使用同一分区 。可实际上,操作系统并不真的注意分区种类字节;例如,Linux根本不管它是什么 。较坏的情况是,有些操作系统错误地使用它:例如有些版本的DR-DOS忽略了它的最高位(MSB),而其他一些系统则不是 。
没有一个标准化组织定义分区种类字节每个值的意义,但一些共同接受的值包括在表 4.1中 。相同的列表可以通过Linux的fdisk 命令得到 。
给硬盘分区
有许多产生和删除分区的程序 。许多操作系统自带,最好使用其自带的,除非要做一些它不能作到的 。许多这种程序叫fdisk , 包括Linux, 或其变种 。Linux fdisk 的使用细节可见其Man手册 。cfdisk 命令类似fdisk , 但有更好的用户界面(全屏的) 。
使用IDE硬盘时,启动分区(带可启动核心映象文件的分区)必须全在前1024个柱面内 。这是因为硬盘通过BIOS启动(在系统进入保护模式前),而BIOS不能处理多于1024柱面 。有时也可能使用部分在前1024柱面的启动分区,这要求所有用BIOS读入的文件都在前1024柱面内 。由于这难与安排,因此这是个很差的主意;你不可能知道什么时候核心升级或磁盘碎片整理会导致系统无法启动 。因此,应该确认你的启动分区完全在前1024柱面内 。

推荐阅读