硬盘分区方式及命名
在个人计算机中,每个硬盘可以分为四个磁盘分区,其分区信息存储在该硬盘前部的分区表中,而每个分区可以由不
同的操作系统进行管理。常见的分区分为基本分区和扩展分区,又根据使用的不同文件组织格式,可以分为DOS的FAT分 区,FreeBSD的UFS分区、NT的NTFS分区,Linux的EXT2FS分区等。
一个硬盘上可以划分一个扩展分区,扩展分区与基本分区不同,它实际上不直接在上面存储实际数据,而是在上面再
划分逻辑分区,这样又可以划分四个逻辑分区。使用DOS/Windows操作系统的计算机必须拥有一个使用DOS的F AT文件系统的基本分区,这个将对应于DOS下的C盘,然后将其他空间划分到扩展分区中,在扩展分区中再划分DOS逻
辑分区,相应的FAT分区依次对应于D盘、E盘等。当其他的操作系统使用硬盘时,这个操作系统应该单独占用一个分区, 在这个分区上使用自己的文件组织格式。
DOS只能使用C、D等盘符来标志FAT格式的磁盘分区,它不能标识其他文件组织格式的磁盘分区,如果一个硬
盘上没有FAT格式的磁盘分区,那么就不会存在C盘、D盘等。然而其他更强大的操作系统通常能识别多种文件组织格式, 通常按照分区在分区表中的顺序来标识他们。例如FreeBSD将记录在分区表上的分区,分别称作wd0s1,wd0s
2,wd0s3,wd0s4,wd0为第一个IDE硬盘,使用s1标识第一个分区等。如果某个分区(例如第二个分区w d0s2)为扩展分区,那么其上面的逻辑分区,其顺序就从5算起,为wd0s5,wd0s6,wd0s7,wd0s8
。因此一个磁盘上最多只能有8个不同的分区同时存在。
然而毕竟扩展分区上的逻辑分区和基本分区还有所差别,因此不是所有类型的文件组织方式都可以适合在逻辑分区中
使用。FAT、NTFS和EXT2FS类型可以被在逻辑分区上使用,但是FreeBSD使用的UFS不能被逻辑分区使 用,只能是在基本分区中使用UFS文件组织格式。这是由于FreeBSD是一个完全独立的操作系统,使用的分区方式继
承自BSD Unix,早在个人计算机出现之前,BSD就已经形成了自己的管理硬盘和分区的方式了。
BSD Unix传统的使用硬盘方式是独占整个硬盘,只有文件系统或交换空间而没有分区的概念,也不使用硬盘
的分区表来保存分区信息,因此也不存在基本或扩展分区。BSD使用Slice来表示硬盘上的一个部分,一个Slice 是硬盘的一个部分,它可以是一个文件系统也可以是一个交换空间。Slice的概念与个人计算机传统使用的Partit
ion(分区)概念类似,因此也可以使用分区来称呼它。BSD方式的管理方法能管理多达8个Slice,BSD按字母 顺序依次命名他们为wd0a,wd0b等。按习惯用法,wd0a用于根文件系统
“/” ,wd0b用于交换空间,w d0c用于表示整个硬盘空间,wd0e用于/usr文件系统等。
然而FreeBSD毕竟是运行在个人计算机平台上的操作系统,其他操作系统使用Partition,而Fre
eBSD使用Slice,就必须采用一种折中的方式,使得FreeBSD能和其他操作系统相互协作,处理磁盘分区。F reeBSD的磁盘管理方式就是一种兼容的硬盘使用方式。每个FreeBSD系统将占用一个独立的UFS基本分区,这
个分区与其他操作系统使用分区的方式相同。在基本分区内再使用BSD的Slice方式进行管理,这种方式就类似于DO S在扩展分区内分割逻辑分区的方式。
假设FreeBSD使用了第三个分区wd0s3,则在这个分区内划分的相应Slice就被称为wd0s3a,
wd0s3b等,其中wd0s3a缺省被用做根文件系统等。这时仍然可以使用传统的名字wd0a来称呼wd0s3a, 使用wd0b称呼wd0s3b,以与BSD传统方式兼容的方式称呼这些Slice,但条件是wd0s3应该是wd0硬
盘上第一个UFS类型的基本分区(或唯一的UFS基本分区),wd0盘上的其他UFS分区中的Slice就只能使用全 称了。由于Slice和Partition都是用于分隔磁盘(或分区),以更方便的利用磁盘空间,为了简捷,可以将在
UFS基本分区中划分的Slice,如wd0s3a,称作wd0s3分区的子分区。
下面为DOS和FreeBSD(多操作系统并存)下常用硬盘分割的方式。

准备硬盘
如果不是在新系统中安装FreeBSD,安装系统之前需要备份相应硬盘上的重要数据。因为安装过程将直接操作
硬盘,对硬盘进行分区和格式化(在Unix下称为建立文件系统),虽然在一定条件下安装者能够不破坏原有的数据,但是 有可能由于某次误操作,导致重要数据的无法恢复。因此建议对该计算机上的所有硬盘数据做一次完整备份。这些数据的备份
任务要使用计算机已经安装好的操作系统来完成。
然后需要确定将系统安装在何处,FreeBSD必须独占一个基本分区,要保留出自由空间就行了。硬盘上的自由
空间包括两个含义,一是分区表中的位置上的空间,四个分区表没有占满,另一个是硬盘空间,现有的分区没有占满所有的硬 盘。然而,安装程序也能删除现有分区,并重新分割硬盘。
如果是在一个新硬盘上安装FreeBSD系统,但又打算以后还安装DOS等其他操作系统,最好使用DOS程序
fdisk.exe先划分出一个基本分区。这个分区的大小都没有什么意义,它只是用来给FreeBSD安装程序提示B IOS的硬盘数据映射方式的,否则FreeBSD安装程序就不考虑BIOS的映射方式。由于这个分区只起到提示作用,
可以在安装过程中删除,重新按照原有的考虑分割硬盘。如果没有这样的分区,FreeBSD安装程序中的硬盘映射数据可 能和BIOS中的设置不一致,当然安装者可以进入BIOS,记录下硬盘的柱面、磁道和扇区映射数据,在安装过程中手工
更改映射数据设置。
硬盘映射数据不一致的问题,来源于个人计算机BIOS与Unix对硬盘的理解不同。个人计算机使用柱面、磁道
和扇区的概念来理解硬盘上数据的位置,而Unix只将硬盘等存储设备理解为分为一个个块的简单线形设备。这就导致Fr eeBSD中的Slice和BIOS中的Partition划分时的不同。如果计算机上只有FreeBSD一种系统独
占硬盘,FreeBSD只需要知道每个Slice的大小就行了,按块读取数据,不会出现任何问题。但如果与另一种操作 系统共享硬盘,那么就必须首先确定相应的Partition位置,这就受到BIOS的限制。一旦FreeBSD对柱面
、磁道和扇区理解与BIOS设置的不同,必然就发生不能找到分区的正确位置问题。
一般情况下,找不到分区位置的情况不会发生,因为FreeBSD系统能够侦测到硬盘的数据。但是个人计算机上
的BIOS会对柱面、磁道和扇区数据重新进行映射,导致BIOS以与硬盘本身并不一致的方式来分割硬盘上的Parti tion。因此对于在一个新硬盘上安装FreeBSD,BIOS又对磁盘数据进行了重新映射的情况下,就需要记录下B
IOS映射的数据用于纠正可能出现的映射数据问题。BIOS对硬盘数据进行映射发生于两种情况下,一种情况为使用SC SI硬盘时,SCSI硬盘本身使用线性地址,而BIOS必须要求柱面、磁道和扇区的概念,因而BIOS就对SCSI硬
盘进行映射。另一种情况是对EIDE硬盘,由于个人计算机BIOS的设计问题(系统调用仅支持1024柱面的限制), 支持大硬盘的BIOS也要将EIDE硬盘重新映射为合法的硬盘数据(使用LBA或其他映射方式)。因此即使在安装系统
之后,如果随意更改BIOS中的硬盘映射方式,就会使得分区的位置被映射到一个错误的位置上,发生启动错误。
FreeBSD本身并不使用任何BIOS调用来处理硬盘存取,而是使用自己内部的硬盘驱动程序。因此,只要启
动程序将控制权交给FreeBSD系统之后,BIOS中的硬盘映射方式就没有意义了。但是,启动系统的任务是由BIO S或使用BIOS调用的启动管理程序来完成的,BIOS必须能找到操作系统的启动部分才能载入相应的操作系统。这样就
有两种有趣的情况发生,第一种情况下,虽然BIOS的映射数据可能被改动了,但是改动之后的数据中操作系统分区的初始 位置没有变化,这样BIOS仍然能载入操作系统的启动部分,来启动FreeBSD。这种情况最常发生在让FreeBS
D系统独占整个硬盘的情况时,这样操作系统的启动就基本不受BIOS的映射数据的影响了,这种情况就是传统的BSD的 硬盘管理模式,硬盘中不存在Partition。
另一个情况发生在FreeBSD分区的位置在1024柱面之后,由于BIOS的1024柱面限制,它不能引导
1024柱面之后的分区。因此给FreeBSD留的空间要位于1024柱面之内,才能使安装后的FreeBSD系统能 够正常启动。在系统启动之后,FreeBSD就不再使用BIOS进行任何操作,则此时就可以处理1024柱面之后的硬
盘了。在这种情况下,BIOS的硬盘映射能起到帮助作用,因为如果BIOS使用了LBA或其他方式重新映射了硬盘数据 ,每个硬盘分区就将保留在1024柱面之内,就不存在这个问题了。因此,如果大硬盘使用的是LBA等模式,就不存在启
动问题,如果BIOS没有映射硬盘数据,就要注意分区的位置,以便系统能正确启动。但是,在硬盘上已有分区的情况下, 不应该调整硬盘的映射数据,因为这将丢失已有的分区数据。
因此如何处理分割分区就需要安装者仔细考虑。对于一个新系统,可以选择让FreeBSD独占整个硬盘或者保留
一个小的DOS分区。让FreeBSD独占整个硬盘的好处是硬盘不受BIOS的影响,因此这个硬盘可以立即安装到其他 FreeBSD系统下,而不需要考虑不同BIOS的不同映射方式。但是保留一个小DOS基本分区也存在相当多的好处,
因为Intel平台下的多数硬件配置和诊断程序为DOS程序,将这些配置程序保留在DOS分区内,便于更改硬件配置和 诊断故障。具体如何选择依赖于安装者的考虑,一般建议保留一个DOS分区。
对于在已安装有操作系统的硬盘上安装FreeBSD系统,处理分区就更需要小心。大多数预装DOS/Wind
ows的个人计算机通常使用DOS基本分区和扩展分区占满了整个硬盘空间,没有空余的自由硬盘空间留给FreeBSD 。因此就需要将一个分区留给FreeBSD,就需要在安装之前把这个分区中的数据都进行备份。此外还需注意如果是要将
扩展分区留给FreeBSD,就必须将整个扩展分区留给FreeBSD,FreeBSD不能在扩展分区中的某个逻辑分 区上安装。如果使用者想保留已有分区和数据,情况就比较复杂了,有一些软件能够在不损失数据的条件下,更改已有分区大
小,这样就能从现存分区中挤出空余空间来安装FreeBSD,这些软件有自由软件FIPS(在安装光盘中提供),商业 软件PartitionMagic等。
FIPS能够将FAT类型的DOS基本分区分割为两个分区,第一个分区保留原有数据,而可以使用FIPS分出
的第二个分区安装FreeBSD。然而这种操作直接操作硬盘,具有非常大的危险性,如果操作失误,很可能导致分区错误 及数据丢失。建议在FIPS操作之前,备份硬盘上的重要数据。此外,还应该首先使用磁盘整理工具来整理磁盘上的文件。
长期使用计算机,使硬盘上的文件被零零碎碎的放在硬盘的不同位置上,因此必须将所有的文件都移动到硬盘的前面,以减少 错误发生的可能性。微软的Defrag工具以及其他第三方厂商的工具,如Norton
SpeedDisk,都提供了 这个能力。
Defrag程序不移动系统和隐藏文件,因此对于可能位于磁盘后部的系统和隐藏文件,必须在运行Defrag
之前使用微软的attrib命令去除这些属性(包括Windows的交换文件),由于有这些属性的DOS系统文件IO .sys和MSDOS.sys总是位于磁盘的前部,因此不需要对它们进行处理。运行Defrag不能使用
“Defr ag File Only” (只整理文件碎片)选项,因为该选项并不把所有的文件都移动到硬盘前部。
运行了Defrag之后,最好使用Scandisk来检查一下是否存在磁盘错误,如果一切正常,并且分区表还
没有占满(总计不到四个分区),就可以运行FIPS来分割DOS基本分区了。FIPS执行程序位于安装介质下tool s目录中,由于FIPS是一个DOS程序,直接访问硬盘,因此应该在DOS模式运行它。它在运行时能将原有分区表保存
到软盘上,命名为RESTORRB.000(如果多次运行FIPS,文件名将依次增加为RESTORRB.00x), 可以使用随FIPS一起提供的RESTORRB来恢复原有分区数据。
准备软盘
常用的启动FreeBSD安装程序方式主要有三种,光盘启动、DOS启动和软盘启动。如果计算机的不支持光盘
启动,并且没有安装有DOS系统或没有DOS启动程序fbsdbot.exe和kernel文件,那么就需要使用启动 软盘启动。
在安装介质的floppies目录中保存有启动软盘的镜象文件boot.flp,使用者可以在其他计算机中的
DOS或者Unix下制作出这张软盘。然而,在新版本下这个镜象文件是2.88MB的高密度软盘镜象,必须要求计算机 支持2.88MB的软盘驱动器才可以,因此一般不使用这个镜像文件,它更常用来作为启动光盘的启动盘镜像。系统也提供
了两个1.44MB的普通磁盘镜象文件kern.flp和mfs.flp,其中kerm.flp为系统内核,mfs. flp为将被读到内存中MFS文件系统中的root文件系统,一般需要制作这两个软盘,用来启动安装系统。由于磁盘镜
像要占满整个磁盘,因此对软盘要求很高,软盘中不能有坏块。如果制作的软盘不能正常启动,最大的原因就是使用了非10 0%完好的软盘,
制作启动软盘必须使用一个现存Unix或DOS系统。
在DOS下,使用程序rawrite.exe或fdimage.exe(tools目录下)来将一个软盘镜象
文件复制到软盘中。可以使用它来制作启动软盘、fixit软盘等。
E:\TOOLS:>
FDIMAGE E:\FLOPPIES\KERN.FLP
在FreeBSD或其他Unix中要使用dd命令制作启动软盘,然而要注意在不同的Unix下,软驱对应的设
备文件名字是不同的,FreeBSD下为rfd0。