第二章 安装 FreeBSD

2.1 安装前需知

2.1.1 如何取得FreeBSD

在这里我们只介绍二种较常使用的安装方式,即利用光盘安装与经由网络安装。如果要利用光盘安装,可以使用本书所附之第一片光盘,其版本是 5.2.1-RELEASE。或者您也可以到国内各大学的 FTP 站台取得 FreeBSD 的 ISO 文件来烧成光盘。国内对 FreeBSD 收集最知名的应该是交大资工,如果您要下载 ISO 档的话,可以在该 FTP 站台中的 ISO-IMAGES 目录中找到。以交大资工而言,ISO-IMAGE 通常放在 /pub/releases/i386/ISO-IMAGES/。我们一般的 PC 都是属于 i386 的架构,所以您在 i386 目录下看到一堆不同版本的 RELEASE 都是可以下载安装的版本。所有的 Release 版本都会任成可以直接烧录于光盘的 ISO 文件,有时在 ISO-IMAGES 目录中有许多档案,例如 5.2.1-RELEASE-i386-disc1.iso 、5.2.1-RELEASE-i386-mini.iso,那个 disc1.iso 就是我们要下载的档,而 mini.iso 也是可以用来安装的档案,只是没有一些常用的 packages ,所以档案较小。以下为各主要 FTP 站台的网址:

下载时您会发现该目录中有一个档案叫做 CHECKSUM.MD5,这是一个文字文件,用来检查下载的档案是否正确,您可以使用 FreeBSD 下的指令 md5 来检查计算出来的结果和 CHECKSUM.MD5 中的记录是否相同,也可以使用 WinMD5 这个工具,在 MS Windows 计算。WindMD5 可以在本书所附光盘二的 wintools 目录下找到。下载 ISO 档后,把扩展名 .iso 改成 .nrg 后,再用 NERO 以烧录映像档方式,将该档案烧录成光盘,该光盘即具备光盘开机的能力。详细的光盘烧录方式,请参考本书附录 C 的说明。

如果要以网络安装的话,必须先做开机片,当然,您也可以使用类似版本的光盘来开机,再更改一些设定以安装最新版本的 FreeBSD。要制作开机片,必须先到上述 FTP 站中下载三个档案到 MS Windows 端:

上面的各个目录可能依 FTP 站台的不同有点变更,不过基本上 fdimage.exe 一定在 tools 的目录下,而另外二个档案一定在想要安装的版本目录下的 floppies 目录中。上面目录中的 5.2.1-RELEASE 是您想要安装版本的目录,您可以更改为想要的版本。下载完后,准备二张磁盘,在 DOS 模式下 (Windows XP/2000 请执行在 [开始]->[执行] 输入 cmd 以进入命令列)执行下列指令以制作开机片。

c:>fdimage -f 1.44M kern.flp A:
c:>fdimage -f 1.44M mfsroot.flp A:

第一个指令完成后,第一张磁盘就做好了,别忘了要先换第二张磁盘后再下第二个指令,如此即完成开机片的制作。

2.1.2 硬盘分割表的概念

在 DOS/Windows 系统中,分割硬盘时,有一个主要扇区 (Primary partition)、一个延伸扇区 (Extended partition),延伸扇区中再去分割成许多的逻辑扇区 (Logical partition)。在 FreeBSD 中,我们会将硬盘先切出一块主要扇区,再细分为许多逻辑扇区 (logical slice),做为档案目录或虚拟内存。以我的计算机为例,我有二颗IDE硬盘,在 FreeBSD 中的代号分别为 ad0 及 ad1。在第一个硬盘中,我有一个 DOS 系统及 FreeBSD 操作系统,这二个硬盘我分别再分割为许多逻辑扇区做为不同用途,因为的硬盘中有 DOS 系统已用去了一个主要扇区的话,那么您看到第一个硬盘是 s2,举例说明:

ad0s1 ad0 代表第一个硬盘,s1 是第一个主要扇区,我放 MSDOS。
ad0s2a s2 代表第二个主要扇区,最后一个 a 在传统上是指根目录。
ad0s2b b 在传统上是指 swap 虚拟内存
ad0s2e /usr
ad1s1e /home
ad1s1f /var

最后一个 a 在传统上是指根目录;b 在传统上是指 swap 虚拟内存;c 是指整个主要扇区;d 指的是整个硬盘;而 efgh 等是我们可以任意使用的,例如用来做 /usr 或 /home 。

在一般 Windows 系统中,我们常看到 C:、D: 等不同的磁盘驱动器,而在 UNIX 系统中,并没有这种磁盘驱动器的观念,所有切割出来的磁盘空间都会被指定挂入某个目录,日后我们要存取该存碟时,就是透过这个目录来存取。以上表为例,我们的第二颗硬盘分割成二个扇区,其中一个扇区被挂入 /home 这个目录下,安装完成后,所以存放在 /home 下的档案都会被放到第二颗硬盘上。

2.1.3 硬盘空间的配置

要分割成多少个 slice 见仁见智,您可以把任何目录都独立成一个 slice (我想没人这样做),如果 slice 分割成很多个的话,可能因为分割不良而造成日后有的扇区空间满了,而有的扇区完全没用到;如果分割成很大,档案都在同一个分割区上,当机时档案遗失的机会比较大。

因为每一个分割区都是一个独立的档案系统,在一个档案系统上,我们可以分别设定不同的属性。如果不同的目录要设不同的参数的话,就要分割成不同的扇区,这样一来我们就可以针对不同的扇区设定不同的属性。例如当要架设 BBS 或 News server 时,由于这类的服务器所使用的档案都比较小,所以 inode 会设比较多。所谓的 inode 指的是系统中可以建立的档案及目录总数,如果要存的档案大部分都很小,则同样大小的硬盘中会有较多的档案,也就是说需要较多的 inode 来挂档案及目录。如果 inode 满了而硬盘未满的话还是不能存档案,就好像是有一面墙(硬盘),上面有很多勾子 (inode) 可以挂衣服(档案)。如果勾子少,则彼此的空间大,衣服大件一点的话很好,小件的话就会很空,浪费墙的空间。反之,如果勾子多则可以多挂点衣服,不过勾子也是会占空间的,而且太多的 inode 会降低硬盘存取的效率。

如果不同目录写入的频率不同,我会把较常写入的目录独立出来,才不会影响其它档案。又如果有多颗硬盘,我也会平均分配每个硬盘的使用频率,利用分割的技巧来平均配置不同的目录。甚至有的目录我们只希望以只读的方式挂入,也必须使用一个独立的分割区。

最简单的分割方式就是一个根目录和一个 swap,这样就不会造成分割不良的浪费,不过这样挡案毁损的机会也大。以下为我一颗 20GB 硬盘的分割方式供大家参考:

目录 大小 用途
/ 500MB 根目录,放开机必备文件,包含/bin、/etc、/sbin、/root.....等。
swap 512MB 虚拟内存,一般而言,我会设定为内存的二倍。FreeBSD 对于虚拟内存的管理建议至少设为物理内存的二倍,因为系统核心在管理内存时,在这种设定下最有效率。如果您的硬盘有数十 GB 以上的空间,将虚拟内存设为实际内存的二倍吧。如果您的硬盘空间实在很小,系统上跑的程序也不多,您可以将 Swap 设小一点。我的 BBS 站有一百多人使用,内存有256MB,设512MB 的 Swap 用都没用到。
/usr 5GB 放执行档、设定档等,日后安装的软件都会放在这里,所以要大一点。如果要安装X Window的话,2.5GB是差不多的,因为在安装过程中,编译时会用去很大的空间,安装完清除后大概是 1GB 吧。如果不安装 X Window,只当服务器用的其它数据又位于另一个独立的分割区,则 /usr 1GB 一定足够。
/tmp 1GB /tmp 是许多程序的暂存区,其权限通常是所有使用者都可以读写,而且这个目录写入频繁,所以我将它独立出来。如果您的服务器上所执行的程序会用到大量的暂存空间,您可以切大一点。您也可以将 /var/tmp 也独立分割一个扇区,因为像 /tmp 及 /var/tmp 这二个目录都是一般使用者可以写入的地方,如果使用者在里面放大量档案而造成磁盘空间满了,会影响原本的系统运作 (例如必须用到 /var/log、/var/mail、及 /var/spool 的邮件服务器等)。
/var 2GB 这是放使用者信件、寄信时暂存区及一些系统记录(log) 的地方,如果信都不大、使用者不多,设成 100MB 也没关系,如果要做邮件服务器的话,就设大一点吧。使用者新进的信件都会放在 /var/mail 目录下,您也可以将这个扇区独立出来,并在这个扇区上设定限制使用者磁盘空间配额。
/home 10GB 这里是放使用者的目录,我通常把网页都放在这里。这个分割区会被用来存放使用者的数据,所以我将剩下的空间都给 /home 使用。如果您没有分割出 /home 这个扇区,/home 这个目录将使用 /usr 的扇区。

2.1.4 多重开机

FreeBSD 本身就支持多重开机,如果您想在计算机中安装不同的操作系统,例如同时安装 Windows 98 及 FreeBSD 的话,请先安装 Windows 98 再安装 FreeBSD,在安装 FreeBSD 时,可以选择使用 FreeBSD 内定的多重开机程序,也可以安装您喜欢的多重开机软件。FreeBSD 的多重开机就只有二行字,画面比较简单,但是安装容易,不需做额外的设定。如果您对于这种画面不满意,您可以使用其它多重开机软件在安装完 FreeBSD 后再在 Windows 98 下设定多重开机。

顺道一提,如果您使用了 FreeBSD 或是其它的多重开机, 日后要移除多重开机管理员时只要在 MS-DOS 下执行下列指令即可:

c:\> fdisk /mbr

2.2 系统安装

2.2.1 开机

如果使用光盘开机的话,只要放入本书的第一张光盘,就会进入设定核心的目录选单,记得要先在 BIOS 中设定可以光盘开机。

如果使用磁盘开机的话,放入安装前须知中制作的磁盘,一共有二张磁盘,先放入 kern.flp 那一张,读完之后会出现一个讯息,要您放入 mfsroot 那一张磁盘,这时候就拿出 kern 那一张再放入 mfsroot 那一张磁盘后,按 enter 就可以继续开机了。

2.2.2 设定核心

如果您使用 FreeBSD 5.x,系统一开机时会先出现一个选单:

图 2-1

请直接按 Enter 即可进入开机模式。如果您使用的是 FreeBSD 5.x,请直接跳到 2.2.3 小节;如果您使用 FreeBSD 4.x,开机完后会出现下列的画面:

图 2-2

这时候您可以选第一个跳过 kernel configure,也可以选第二个来设定核心。我通常第二个,因为有些硬件的驱动程序间会相冲,例如我的 SCSI 卡就不能选第一个直接进入,必须先移除其它的 SCSI 卡驱动程序。好吧,就选第二个 「Start kernel configuration in full-screen visual mode.」

图 2-3

在这里分成上下二个窗口,最上面的 Active-Drivers 是您要使用的驱动程序,下面是您移除的。如果在上面移除的话,就会跑到下面来。您可以用 [TAB] 键在二个窗口中移动,使用 [DEL] 键来删除设备。在这里只要设定 Storage Network 的选项即可。设定完后按 Q 存档离开。

如果您的 SCSI 卡都是 PCI 接口的话,您可以把 Storage 中所有出现 SCSI 的选项都按 [DEL] 来 删除,因为 PCI 的装置都是即插即用,都自动抓得到。其它设备网络卡等也都是这样,在 Network 选项中,里面的设备都是给 ISA 接口用的,如果您的是 PCI 的网络卡的话,就把它们都删了吧。如果您的设备有 ISA 接口的话,而您又不知道自己的设备是哪一个,就把它们都留着。

在 Storage 选项中,有 IDE 硬盘及软盘机用的设备,请不要把它们删除,最后的 Storage 选项至少应有下列图 2-4 所示的三个:

图 2-4

完成了上面的步骤,就可以按 Q 离开了,画面会出现:

Save these parameters before exiting? ([Y]es/[N]o/[C]ancel)

按 Y 就可以离开,进入下一个步骤。这时候系统会一直跑,继续开机的动作,最后会到一个蓝色画面。

2.2.3 开始自订安装

完成了开机后,会出现一个蓝色画面,这个画面日后您可以在 /stand 目录中,使用指令 sysinstall 去叫出这个安装时的画面。当开机进入蓝色画面时,您可以按 ALT+F2 来看除错信息,看一下是不是有硬件没有安装进来,由于 kernel 中只有安装时要用到的硬件才会驱动,所以如果没有抓到声卡的话也没关系。要回到蓝色画面就按 ALT+F1

图 2-5

我们选择第四项 Custom 来自订安装。请使用上下键来选择,并以空格键来确定进入。如果要把光棒从 Select 移到 Exit Install 的话,请使用左右键来移动。进入 Custom 后会出现下列画面:

图 2-6

如果您所使用的开机片并不是您想要安装的版本的开机片的话,您要先选第二项 Options 进去修改 Release Name 的部份,否则就可以略过这一步,直接选 3 Partition 来选择要安装 FreeBSD 的硬盘扇区。

2.2.4 分割硬盘

进入 Partition 选单时,如果您有二颗以上的硬盘,首先会出现硬盘选单,如图 2-7 所示:

图 2-7

您会看到上面的图,我们之前说过 ad0 是第一个硬盘,而这里的 ad2 是指第二个硬盘排线的第一个硬盘(master disk on the second IDE controller)。把光棒移到您要使用的硬盘,再按空格键进入即出现下面的画面。如果二个硬盘都要使用,等一下分割完第一颗之后再来设定第二颗。

图 2-8

在图2-8中,光棒所指的就是未使用的空间,如果您这个硬盘只要给 FreeBSD 使用的话,您可以直接按 A 使用整个硬盘。如果您有 DOS 分割区的话,应该会出现一列是 fat 的扇区。把光棒移到 unused 的地方,按 C 来建立扇区,它会问您要使用多大的空间,您可以输 入 10000M 代表 10000 MB 也就是 10 GB 。接着按 Enter 键,它会问您 TYPE ,预设是 165 ,这是 FreeBSD 档案系统代号,请直接按 Enter 就可以了。好了之后再对着刚设定好的 freebsd 扇区按 S 设定为可以开机,如果没有设定也没关系,FreeBSD 会自动将它 设定可开机。最后按 Q 离开画面。离开后会出现下列画面:

图 2-9

上图是问您要使用哪一种开机管理员,如果要使用其它操作系统,您可以使用 FreeBSD 的多重开机管理员,即选择第一个 BootMgr 选项。如果要使用其它多重开机管理员就选 None,不过这样一来如果没有安装其它多重开机管理员便无法使用 FreeBSD 开机。如果您的计算机中只有 FreeBSD 这个操作系统,就选中间这一个 Standard。我只要使用 FreeBSD ,并没有其它操作系统,所以我选 Standard。选完后会回到刚才的硬盘选单,如果您还有其它的硬盘要加入的话,您可以选其它硬盘重复刚才的步骤,如果要加入的是 DOS 的硬盘,只要选择进入后,什么都不做,直接按 Q 离开即可。当所有的硬盘都设定好了,回到硬盘选单时,按 Cancel 离开选单,回到自订安装选单。

回到自订安装选单后,选第 3 个 Lable 进入 Disk Lable 编辑。即图 2-10 的画面:

图 2-10

我们之前在安装前的须知中说过关于扇区的分割方式及大小配置,您可以直接按 A 自动配置,不过这样出来的 swap 都会太大,如图2-9 中, swap 用了 368 MB。所以我们手动来做吧,最上方蓝色光棒的位置就是您现在要分割的硬盘及其使用空间。如果有二个硬盘,所看到的就不是像上面那样,而是有比较多个硬盘。不管硬盘有多少个,只要对着您要的硬盘按 C 去建立一个分割区,它会先问您大小,如图 2-11 所示:

图 2-11

在图 2-11 询问您所要分割的大小时,您可以输入想要的空间大小,接着会出现图 2-12 的画面,询问您要给哪一种类型的分割区,如果是要给目录使用的话,就选 A file system,如果是 swap 就选 A swap partition。我们先来分割给根目录使用,如下图:

图 2-12

接着选择挂入点,如果是分割给 swap 使用的话,并不会问您挂入点是什么。这里我们先分割根目录,如图 2-13:

图 2-13

这时您就输入 / 就代表根目录。接着再继续分割给其它目录,如 /usr、/home等。最后如图 2-14 所示:

图 2-14

在图 2-14 中,如果您有 DOS 分割区在硬盘中,您可以把它挂进来 (mount) 做为一个目录,这样子在 FreeBSD 中就可以看到 DOS 分割区了。您可以对着最上面一行 DOS 那一个按 M ,并输入目录名称为 /MSDOS ,就可以了。

如果您有 BBS 站的话,您必须更改一下 inode 的设定,才不会造成空间的浪费。把光棒移到 BBS 的目录,再按 N 并输入参数为 newfs -i 1024 -b 4096 -f 1024,来改变 inode 的设定。

好了,都设定好了就按 Q 离开,回到自订安装选单吧。接下来就开始选择要安装的套件。

2.2.5 安装自订套件

回到了自订安装选单后,选择 Distribution 来选择要安装的套件。进入图 2-15 的画面后,选择最下方的 Custom:

图 2-15

在上图中选 Custom 后,会进入图 2-16 的选单:

图 2-16

您最简单的方式就是选择所有的套件 All,不过我通常不会选择安装 compat1x 等等为了兼容于旧版的 FreeBSD 所需的套件。另外,我也不会选择 Local 这个用来安装自己要外挂的其它程序。在选择 src 选项时,会问您要选择哪些东西,这时候就选 All 吧。现在的硬盘应该都不小,src 中的东西是一些原始码,日后在修正一些 bug 时可能会用到。选完之后就选 Exit 离开。回到上一层选单,再选 Exit 回到自订安装选单。接着就是选择安装的来源了。

2.2.6 选择安装来源

回到自订安装选单后,我们选择 Media 来决定安装的来源,如图 2-17:

图 2-17

如果您是以光盘安装的话,就选第一个 CD/DVD 作为安装来源,选了之后就可以回到自订安装选单,选 Commit 开始安装,并按下确定开始。

如果您是以网络安装的话,就选第二个 FTP。选了 FTP 之后,会问您要使用哪一个 FTP 站台,这时候请选第二个 URL Specify some other ftp site by URL 来自订要使用的 FTP 站台。进入后会问您要使用的站台位置,您要先去找出该 FTP 站台放 FreeBSD 的目录为何,以交大资工而言,您应该输入 ftp://freebsd.csie.nctu.edu.tw/pub/releases/i386/

接着会要求您设定网络,使用网络安装必需先设定网络,出现图 2-18 的画面,要您选择网络卡:

图 2-18

图 2-18 中,您的网络卡会出现在第一个,如果您有二张网络卡的话,就会有二个不同编号。选择一个对外连到网络的卡后,接着会问您是否要使用 IPv6 选否,再来是问您要不要使用 DHCP (自动取得 IP 地址....这就看您有没有 DHCP server 可以自动取得 IP 啰),接着就进入图 2-19 的画面。

图 2-19

您要先知道您的 Domain Name 及 IP 等,如果没有 Domain Name 的话,就随便输入吧。假设我们的机器是 www.mydomain.com ,所以在 Host 一栏中就输入 www.mydomain.tw,在 Domain 中就输入 mydomain.com。我的机器在中央大学,所以 Gateway 就输入 140.115.1.254,Name server 输入 140.115.1.31,IPv4 Address 就输入我的 IP 也就是 140.115.75.1,Netmask 也就是子网络就输入 255.255.0.0。接着按 OK 离开回到自订安装选单。再来选 Commit 开始安装,并按下确定开始。

2.2.7 最后的设定

经过了一段时间的安装后,最后就会出现一个窗口问您是否要做最后的设定,这时候选 [YES]。又回到了一开始 sysinstall 的画面。

图 2-20

这时候就选 Configure 进入设定选单,在 Configure 选单中,我们可以设定本机的基本资料。在这里我们仅设定下列几项:

如果您要设定键盘速度,请选择 Configure 以进入设定选单,如图 2-21 所示:

图 2-21

这个设定选单中,各个选项的说明如下:

Distributions 让我们新增 FreeBSD 的安装套件。
Packages 安装其它 packages 软件。
Root Password 设定超级使用者密码。
Fdisk 分割硬盘的工具,日后要再加入新硬盘时可以使用。
Label Disk Label editor,让我们将己分割的硬盘再分割成不同扇区,以挂入 FreeBSD 中使用。
User Management 使用者账号管理工具。
Console 文字模式下屏幕的设定。
Time Zone 设定时区。
Media 让定安装软件的来源。
Mouse 设定鼠标。如果您要使用鼠标,可以在此驱动。
Networking 设定网络。
Security 设定 FreeBSD Security Level。
Startup 设定开机时要启动的选项,我们可以在 /etc/rc.conf 中设定。
TTYs 设定不同 TTY 的权限。
Options 设定一些安装时选项。
XFree86 X Window 的设定。
Desktop X Window 的桌面管理员设定。
HTML Docs 显示 FreeBSD HTML文件。
Load LKM 从磁盘中加载 kernel module。

这里的设定只要先设定 Console 及 Time zone 即可,其余的设定(如新增使用者及设定密码等)我们都可以在重新开机后,于文字模式设定。

首先请选择 Console 进入图 2-22 的选单:

图 2-22

在 System Console Configuration 选单中,第二及第三个选项 Font、Keymap 可以让我们设定屏幕字型及键盘对映,不过我们不需要设定。第四项 Repeat 是设定键盘按键重复的速度,因为笔者喜欢按下一个键时,能快速的重复输入该键,所以我选了 Repeat 设定,并将速度设定 Fast。第五个选项是 Saver,我们可以选择喜欢的屏幕保护程序,也可以选择 Timeout 来设定启动屏幕保护的时间。当您设定完成之后,请选择 Exit 回到 Configuration Menu ,接着我们再选取 Time zone 来设定时区:

选择了 Time zone 后,它会问您目前 BIOS 是否设定为 UTC (格林威治时区),如图 2-23 所示,如果您不清楚,请选 NO。

图 2-23

接着要选择所在区域,我们选择第 5 项 Asia,如图 2-24:

图 2-24

然后再选择国家 Taiwan 即可。

图 2-25

最后系统会询问您所选择的是 CST 时区是否正确,如图 2-26,我们便选取 [Yes] 即可。

图 2-26

我们在 Configuration Menu 所做的设定最后都会存放在 /etc/rc.conf 中,如果日后有需要更改,可以经由修改 /etc/rc.conf 来完成。

最后就一直选 Exit ,最后 Exit Install 离开安装程序,重新开机即完成 FreeBSD 的安装。如果您在过程中遇到问题,可以到各大 BBS 的 386bsd 版中发问。