FreeBSD的安装同其他UNIX系统一样,我们在安装之前应该了解要安装FreeBSD的计算机硬件配置和Unix的一些基本概念,以及FreeBSD软件的安装介质载体。在“概述篇”中我们就已经介绍了FreeBSD的起源、安装所包含的几种方式以及系统包含的文件内容含义;标准的FreeBSD最小能够安装在一台只有5MB内存,40MB硬盘,使用Intel 80386芯片的机器上。事实上运行FreeBSD只需4MB就足够了,只是FreeBSD的安装程序要将软盘上的数据首先展开到内存中的MFS文件系统中(相当于虚拟磁盘),因此要求至少5MB的存储空间。如果要求系统能运行X Window图形界面,那么就应该至少有8MB内存,250MB硬盘。
FreeBSD在这种低配置的计算机中仍然能完成相当多的任务,然而处理器的速度和内存的大小也限制了它的任务处理能力,显然更高配置的计算机能表现出更出色的性能,完成更复杂的处理任务。
这些信息能帮助我们了解这台计算机是否适合安装FreeBSD,是否具备安装FreeBSD的条件。绝大多数情况下使用安装光盘(或软盘)直接进行安装,就能完成安装任务,但了解更多的信息可以帮助安装者处理在特定条件下发生的安装问题。所以建议读者不要忽略安装的准备阶段,充分了解自己要安装的系统的硬件和FreeBSD中的常用概念,可以避免安装过程中出现问题。
常用的启动FreeBSD安装程序方式主要有光盘启动和软盘启动,其他还可以从DOS启动或从现存的FreeBSD系统启动。虽然光盘启动对于使用光盘安装来讲最为方便,事实上,当前的光盘启动标准,事实上是一种模拟软盘启动。因此,软盘启动方式是一种最为基本的方式,不仅仅在安装系统时需要使用它,其他的很多情况下也会用得到,例如修复系统的时候。
在安装介质中的floppies目录中保存有启动软盘的镜象文件boot.flp,使用者可以在其他计算机中的DOS或者Unix下制作出这张软盘。然而,在FreeBSD 3.0版本之后这个镜象文件是2.88MB高密度软盘镜象,那么计算机必须支持2.88MB的软盘驱动器才可以使用它。一般情况下,普通的PC都不支持2.88M的软驱,因此也无法使用这个镜像文件,但它可以用来作为启动光盘的启动盘镜像。
此外,系统也提供了两个1.44MB的普通磁盘镜象文件kern.flp和mfs.flp,它们才是最常用的软盘驱动镜像。其中kern.flp为系统内核,mfs.flp为将被读到内存中的虚拟硬盘镜像。制作这两个软盘,就可以用来启动安装系统。
说明:由于磁盘镜像要占满整个磁盘,因此对软盘要求很高,软盘中不能有坏块。如果制作的软盘不能正常启动,最大的原因就是使用了非100%完好的软盘,制作启动软盘必须使用一个现存Unix或DOS系统。
在DOS下,使用程序rawrite.exe或fdimage.exe(tools目录下)来将一个软盘镜象文件复制到软盘中。可以使用它来制作启动软盘、fixit软盘等。如果我们使用的是光盘,假设光盘的驱动器符号为 E:,那么请执行下面的命令:
E:\ tools\fdimage floppies\kern.flp A:
在FreeBSD或其他Unix中要使用dd命令制作启动软盘,在 FreeBSD 中,/dev/fd0 指的是第一个软驱(即 A: 驱动器);/dev/fd1 是 B: 驱动器,依此类推。然而要注意在不同的Unix下,软驱对应的设备文件名字是不同的,FreeBSD下为rfd0。
# dd if=/cdrom/floppies/kern.flp of=/dev/rfd0
FreeBSD系统需要安装到硬盘中,最简单的情况下,整个计算机只运行FreeBSD一个操作系统,因此FreeBSD系统可以占满整个硬盘,但在更复杂的使用情况下,一个计算机上可以安装多个操作系统,因此同一个硬盘中需要共存多个操作系统。
不管是哪种情况下,安装之前必须做好规划,特别是在磁盘中有数据的时候,因为安装通常需要对磁盘进行重新处理,很可能丢失数据。所以只有进行安装规划,才能避免可能的数据丢失。因此,这就需要明确系统安装的目标:安装的目的硬盘及其分区。
FreeBSD下的硬盘是以驱动程序的名称来命名的,而不同的硬件需要不同的驱动程序,因而它们的名字也不同。FreeBSD 3.x之前使用wd驱动程序支持IDE,新版本的FreeBSD系统使用ad驱动程序支持硬盘。第一个IDE控制器的主硬盘为ad0,第一个IDE控制器的从硬盘为ad0,第二个IDE驱动器的主硬盘为ad2,从硬盘为ad3。
FreeBSD采用驱动程序da来支持SCSI控制器之上的各种硬盘设备,SCSI硬盘驱动器也按检测到的顺序排列,从da0向后,依次排列。RAID控制器条件下的逻辑硬盘的命名将由该RAID控制器在FreeBSD下的驱动程序的名字决定,例如amr0等等,没有统一的名字。
下表是安装时驱动类型对应的FreeBSD驱动设备名:
一般来说,FreeBSD硬盘安装主要是针对 i386 (“PC 兼容机”) 体系结构的电脑,其它体系结构(如Alpha)的安装过程中有不同处。
一个 PC 硬盘可以被细分为许多分散的区域,这些区域叫做分区(partitions);由于设计的原因,每个硬盘仅支持四个分区;这些分区叫做主分区(Primary partion)。为了突破这个限制以便能使用更多的分区,就有了新的分区类型,叫做扩展分区(Extended partition),一个硬盘可以拥有一个扩展分区,在扩展分区里可以建立许多个所谓的逻辑分区(Logical partitions)。每个分区都有其独立的分区号(partition ID), 用以区分每个分区的数据类型。
FreeBSD 必须安装在主分区,FreeBSD 可以在这个分区上面存放系统数据或是我们建立的任何文件。然而,如果我们有多个硬盘,我们也可以在这些硬盘上(全部 或部分)建立 FreeBSD 分区。在我们安装 FreeBSD 的时候,必须要有一个分区可以给 FreeBSD 使用。这个分区可以是尚未规划的分区或是已经划好,但是里面的数据 我们都不想保存的分区。
如果我们已经用完了我们硬盘上的所有分区,那么我们必须使用其它操作系统所 提供的工具(如 DOS 或 Windows下的 fdisk)来腾出一个分区给 FreeBSD 使用。如果我们的某个分区有多余的空间,我们可以使用它。但是使用前我们需要先整理 一下这些分区。
FreeBSD 最小安装需要约 100 MB 的空间,但是这仅是非常基本的安装,几乎没有剩下多少空间可以建立我们自己的文件。一个较理想的最小安装是 250 MB,不含图形界面;或是 350 MB 以上,包含图形界面。如果我们还需要安装其它的第三方厂商的套件,那么将需要更多的硬盘空间。
在Alpha 上,我们必须使用一整个硬盘给 FreeBSD,没有办法在同一个硬盘上跟其它操作系统共存。根据不同的 Alpha 机器,硬盘可以是 SCSI 或 IDE 硬盘,只要机器可以从这些硬盘开机就可以。
按照 Digital/Compaq 使用手册书写的惯例,所有 SRM 输入的部分都用大写表示。注意,SRM 大小写有别。要想得知硬盘的名称以及型号,可以在 SRM console 提示符下使用 SHOW DEVICE 命令:
此范例使用 Digital Personal Workstation 433au 并且显示出此机器联接有三个硬盘。第一个是 CDROM,叫做 DKA0;另外两个是两个硬盘,分别叫做 DKC0 及 DKC100 。
硬盘名称中有 DKx 字样的是 SCSI 硬盘。例如 DKA100 表示是一个 SCSI 设备,其 SCSI ID 为 1,位于 第一个 SCSI 接口 (A)。 DKC300 表示一个 SCSI 硬盘, SCSI ID 为 3,位于第三个 SCSI 接口 (C)。设备名称 PKx 表示 SCSI 控制卡。由以上 SHOW DEVICE 指令的输出结果看来, SCSI 光盘也被视为是 SCSI 硬盘的一种。IDE 硬盘的名称类似 DQx,而 PQx 则表示相对应的硬盘控制器。
我们必须清楚的是,分区、分区表等概念是属于来源于个人计算机的概念,并非所有的计算机系统都认可这些概念。事实上,BSD Unix就采取另一种截然不同的方法去看待磁盘,形成了自己的管理硬盘和分区的方式了。
在BSD Unix中,磁盘是一种顺序的设备,它使用Slice的概念来表示硬盘上的一个部分,一个Slice是硬盘的一个部分,具备一个起始位置一个结束位置,可以用作一个文件系统也可以用作一个交换空间。Slice的概念与个人计算机传统使用的分区概念类似,因此也可以使用分区来称呼它。
FreeBSD的硬盘分割区域称为slice(片段或部分),一个硬盘最多可有四个FreeBSD的slice,FreeBSD的开机区必须在这些slice其中之一。每一个FreeBSD的slice有8个partition,分别称为a,b,c,d,e,f,g,h,传统上a,b,c,d分区有特殊的意义,a表示root分区,b表示swap分区,c表示整个slice,d表示整个硬盘,从FreeBSD-2.0.5 Release开始,FreeBSD发展了新的slice概念,只有c内定位整个slice,其它都可自由使用,但一般还是遵循传统观念,即a:root,b:swap,efgh:其它使用。
按BSD Unix的习惯用法,如ad0a用于根文件系统 “/” ,而ad0b用于交换空间,ad0c用于表示整个硬盘空间,ad0e用于/usr文件系统等。对于非FreeBSD的slice,没有a,b,c等的partition概念。对于DOS扩展分区的逻辑公区,是从s5开始的,例如,对于3.4-release中,第一个IDE硬盘的第一个扩展区的第一个逻辑分区是wd0s5,第二个逻辑分区是wd0s6。