WWWsmith:FreeBSD 的安装与配置
FreeBSD 是一个流行的(且免费的)类 Unix 操作系统,可以从互联网和 CD-ROM(主要是 Walnut Creek CD-ROM)获得。在这方面,它与 Linux 有很多共同之处,但必须承认 Linux 更受欢迎,文档也更完善。
与 Linux 不同,FreeBSD(顾名思义)源自流行的 Unix BSD 变体;如今许多被认为是 Unix 标准的功能都起源于加州大学伯克利分校。这些功能包括(但不限于)网络和长文件名;特别是网络代码,成熟且高性能。(互联网上最繁忙的站点之一是 http://wcarchive.cdrom.com/,又名 ftp://ftp.cdrom.com/ 又名 ftp://ftp.freebsd.org/ 又名 https://freebsd.net.cn/;它运行 FreeBSD,并且每天每秒平均输出超过 2.5MB 的数据。)
在本文中,我将描述在 LAN 上安装 FreeBSD 并将其配置为 Web 服务器的过程,所有这些都使用免费软件。虽然 Unix 传统上不是一个用户友好的操作系统,但 FreeBSD 确实有一个可用的安装过程(前提是您阅读文档并对您正在做的事情有一个大致的了解),并且几乎不需要维护。
在安装 FreeBSD 之前,您需要做好准备。首先,您需要知道您将如何选择安装系统:通过 CD-ROM、NFS 或 FTP。CD-ROM 安装是最简单和最快的;FTP 是最常用的。这需要您要安装的计算机能够访问互联网(通过 LAN 或 PPP/SLIP)。
FreeBSD 至少需要一个 80386 级别的处理器,至少 4MB 的 RAM 和大约 150MB 的磁盘空间。请注意,FreeBSD 目前至少需要 5MB 的 RAM 才能进行安装——但安装后可以使用 4MB。大多数流行的磁盘控制器都受到支持,包括 (E)IDE 和几个 SCSI 控制器。我使用的机器是一台 33MHz 80486,具有 16MB 的 RAM 和一个 202MB IDE 驱动器。它还具有一个带有 CD-ROM 驱动器连接的 UltraStor 34f VLB SCSI 控制器,以及一个配置为 IRQ 5 和 0x280 的 Novell NE2000+ 以太网卡。
对于 PCI 系统,几乎任何基于 DEC 21x40 和 21x41 的以太网卡都足够了,并且 Adaptec 和 NCR SCSI 控制器都得到很好的支持。NCR 相当便宜,非常适合低负载系统。关于 Adaptec 新版本 SCSI 卡是否物有所值用于高端系统存在一些争议,这归因于 Adaptec 最近所做的更改。对于 DPT SCSI 卡,包括它们的 RAID 控制器,也有新的支持,这在某些情况下可能是理想的。
一些 IDE CD-ROM 驱动器和专有 CD-ROM 接口也受到支持。对这些接口的支持不如对 SCSI 的支持好。这是因为虽然 SCSI 驱动程序可能非常复杂,但命令集非常标准,而 IDE CD-ROM 驱动器的情况并非如此。
您还需要一张启动软盘。启动镜像可在 ftp://ftp.freebsd.org/pub/FreeBSD/<release>/floppies/boot.flp 和 CD-ROM 上以 /floppies/boot.flp 的形式获得。我使用的版本是 3.0-970522-SNAP。如果您在类 Unix 系统下创建启动软盘,您将使用 dd 来创建镜像。例如,在 FreeBSD 下,键入
dd if=boot.flp of=/dev/rfd0a bs=18k
在其他 Unix 系统上使用类似的命令。如果您在 MS-DOS 下创建软盘,您将需要 rawrite.exe 文件,该文件位于 FTP 站点和 CD-ROM 上的 .../tools/rawrite.exe 中。通过键入以下内容创建软盘
.. ools\rawrite boot.flp a:我安装了 3.0-SNAP 版本,该版本在 CD-ROM 上可用;它本质上是一个开发快照,因此不如其他版本稳定或成熟。
在开始安装之前,至少阅读发行说明。建议阅读的文件是 INSTALL.TXT、README.TXT 和 RELNOTES.TXT,所有文件都在发行版的根目录中。
写下硬件信息,例如磁盘几何结构(磁头、扇区和柱面)——虽然这不是真正必要的,但可能很有用。还有任何 ISA 卡的配置,例如 SCSI 和以太网。最后,由于机器将连接到 LAN,您应该写下主机名、域名、IP 地址、默认路由器 IP 地址和名称服务器 (DNS) IP 地址;这将为您节省大量后续的疯狂搜索。请注意,如果您要进行 FTP 或 NFS 安装,您需要相同的信息。
安装的开始方式与任何其他等效系统相同:将启动软盘或 CD-ROM 放入驱动器中。在 Boot: 提示符下按 enter 键;如果您不输入任何内容,它将超时并自动启动。
首先,会显示一个可滚动的菜单,让您决定是否配置内核。您可以选择跳过配置步骤,也可以进入可视化或面向行的配置程序。(我当然推荐可视化模式。)
内核配置过程允许您禁用或重新配置大多数设备驱动程序;如果您有一个设备卡配置与 FreeBSD 预期略有不同,这将非常宝贵。某些设备需要破坏性探测(意味着探测一个设备可能会混淆或禁用另一个设备);如果您知道您的系统中没有哪些设备并禁用所有这些设备,探测将不再是一个问题。请注意,PCI 设备目前不可配置——由于它们是动态配置的,因此没有冲突,也不需要重新配置或删除。
在我的情况下,我禁用了我没有的所有大容量存储设备,包括 Adaptec 154x 驱动程序和第二个 Western Digital 控制器。Western Digital 驱动程序 wdc 控制 (E)IDE、ESDI、MFM 和 RLL 硬盘驱动器。其中一个控制器的探测序列需要相当长的时间,因此禁用第二个控制器 _wdc1_ 可以显著加快启动过程。
可视化配置过程相当不言自明,只需几秒钟即可完成。但是,在大多数情况下,它不是真正必要的。一个需要它的例子是:如果我的以太网卡没有配置为 IRQ 5,I/O 端口 0x280,内存地址 0x0d8000,我将需要重新配置卡或更改 FreeBSD 内核的预期。如果您不小心删除了驱动程序,您可以通过按 tab 切换到“非活动驱动程序”部分,然后按 enter 重新启用它。
完成内核配置后,按 Q,回答出现的提示问题,然后观看系统启动。在速度较慢的系统上,您可以观看内核消息的发出,并确保已找到所有所需的设备。或者,您可以在内核开始滚动时按下滚动锁定键,当内核完成探测后,您可以使用箭头键和向上翻页/向下翻页来上下滚动显示。
现在您将看到一个文本菜单(如果您使用的是彩色 CGA 或 VGA 显示器,则为彩色)。(参见图 1。)
菜单中的第一项是“Usage”(用法),它解释了如何在菜单系统中移动以及哪些键执行什么操作。对于任何首次安装程序的人来说,这都是必读的。按 enter 键,您将看到“HOW TO USE THIS SYSTEM”(如何使用本系统)屏幕。(参见图 2。)
下一个菜单项是“Documentation”(文档),它提供了 FreeBSD 的简要概述、支持的硬件、安装指南等。这些文件在 CD-ROM 的根目录以及 FTP 位置的发行版根目录中可用。
第三个菜单项是“Options”(选项),主要适用于非 CD-ROM 安装——NFS 和 FTP。特别是,如果您需要使用除 ftp 之外的 FTP 名称(例如,anonymous 甚至非匿名帐户名)。(参见图 3。)
开始的最简单方法是选择“Novice”(新手)安装方法(主菜单的第四项)。它做的第一件事是为您分区磁盘,使用面向屏幕的 fdisk 程序。“Express”(快速)方法没有那么多详细的解释——如果您以前做过 FreeBSD 安装,这可能是最好的安装方式。(参见图 4。)
为了简单起见,我选择使用整个磁盘用于 FreeBSD,方法是键入 A——然后它询问我是否想要一个“true partition”(真实分区)条目。如果磁盘将用于混合操作系统、双启动机器(例如,DOS 和 FreeBSD 都有)中,则这是必要的。由于所讨论的机器将仅用作 Web 服务器,因此我回答了否。(参见图 5。)请注意,如果您使用 BIOS 几何结构映射,则很可能需要这样做。与往常一样,完成后键入 Q。
FreeBSD 可以与 DOS 样式分区一起工作,它也可以使用自己的分区。FreeBSD 将前者称为“slices”(切片),以避免混淆,尽管这不一定成功。一般来说,BSD 分区驻留在 DOS 样式分区(又名“切片”)内。磁盘的正常名称是 <device><unit><partition>,例如 wd0a;切片添加到单元之后,分区之前。例如,wd0s1e 将是第一个切片(从 1 而不是 0 开始),该切片内的第五个分区,是第一个 IDE 驱动器。FreeBSD 可以自动为您分区切片;在我的 202MB 驱动器上,它选择了
/ 32MB swap 41MB /var 30MB /usr 98MB
当然,您可以选择自己的大小。我选择了默认值,这些值非常合理。
在确定磁盘的布局后,下一步是选择要安装的系统类型。选项范围从最小到完整,大多数人选择介于两者之间的类型。对于此安装,最可能的类型是“Basic”(基本),它将安装基本的 FreeBSD 系统;但是,我也更喜欢配置我的内核以编辑掉不必要的设备,所以我选择了“kernel developer”(内核开发人员)包——这是基本包,带有编译器工具和内核源代码。安装后,它占用了大约 130MB 的磁盘空间。
在选择软件包(通过按空格键)时,系统会立即询问您是否要安装 DES 软件包。这是可取的,因为您可以通过这种方式与传统的 Unix 系统共享密码文件条目。但是,默认的 FreeBSD 密码加密方案(实际上是 MD5 校验和)似乎比 DES 更强大。请注意,除非您在美国或加拿大,否则不应安装 DES,因为存在出口限制,尽管软件包包含在 CD-ROM 中。
除了基本的 DES 软件包(静态库和共享库)之外,您还可以选择安装 Kerberos(MIT 开发的身份验证套件)以及每个软件包的源代码。虽然我通常使用 Kerberos,但我没有在此机器上安装它,因为空间变得紧张,而且配置 Kerberos 并不容易。
安装程序然后询问您是否要安装端口集合;这相当小(大约 10MB),但由于空间非常紧张,我没有安装它。稍后将详细介绍端口和软件包。
此时,您将再次看到“Choose Distributions”(选择发行版)菜单;如果您对您的选择感到满意,请按 return 键继续,否则,选择您希望的发行版类型并继续。
下一个选择是使用哪种介质进行安装。(参见图 6。)我选择使用 CD-ROM 方法,因为它比其他方法更快、更简单、更方便。但是,您也可以通过 NFS 和 FTP(以及被动 FTP——如果您位于由偏执的管理员配置的防火墙后面,则这是必需的)进行安装。对于 FTP 安装,它使用先前在“Options”(选项)部分中选择的帐户名。最后,您还可以通过现有文件系统(例如,MS-DOS 文件系统)、软盘或磁带进行安装。要使用磁带,您必须拥有 FreeBSD 支持的磁带驱动器之一——主要是 SCSI 磁带,但也包括 Wangtek 和其他几个。
如果您选择进行 FTP 安装,则必须选择要从中获取文件的站点——默认站点是“Primary Site”(主站点),即 ftp://ftp.freebsd.org(又名 http://wcarchive.cdrom.com/)。世界各地也有镜像站点。
在进行 FTP 或 NFS 安装时,您还需要配置网络接口。您将看到系统找到的所有网络接口——它识别出的任何网卡,以及 SLIP、PPP 和并行端口 IP 接口 (PLIP)。按 f1 键可在“Network interface information required”(需要网络接口信息)菜单中获得帮助。一个快速提示:SLIP 和 PLIP 选项假设连接将是硬连线连接——如果您需要使用调制解调器连接,PPP 是唯一可能的方法。
选择网络接口(例如,ed0)后,您需要告诉安装程序主机名和域名、默认路由器(又名“网关”)、名称服务器、IP 地址和任何额外的选项。请注意,网关和名称服务器字段需要是 IP 地址,而不是主机名。在进行安装后配置时,您需要再次输入此信息。
如果您选择了 PPP 接口,系统将要求您配置它。这需要知道要使用的波特率(默认为 115200)以及远程端的 IP 地址。默认情况下,它使用网关地址(如果您提供了它);您也可以告诉它使用“0”,这将允许它作为 PPP 连接设置的一部分进行协商。完成所有这些操作后,系统会告诉您切换到 VTY3(第三个虚拟控制台屏幕),PPP 程序已在那里启动。从那里,您需要连接到您正在使用的 PPP 服务器(例如,拨号调制解调器、输入帐户和密码信息等)。
之后,所有必要的操作就是等待系统安装。在我的慢速 486DX-33 上,使用 IDE 驱动器和双倍速 SCSI CD-ROM 驱动器,安装所有软件包花费了 16 分钟。
安装程序然后询问您是否要配置网络设备,如果要配置,则配置哪些设备。这与完成任何类型的网络安装时所做的操作相同。在我所做的安装案例中,只有一个接口需要配置:ed0。FreeBSD 会提示输入主机名和域名、网络网关、名称服务器和 IP 地址。网络掩码默认正确,但您可以在必要时更改它。还有一个用于“Extra options”(额外选项)的框——某些卡可能需要链路级选项来选择要使用的接口对,例如,BNC 或双绞线。
接下来的问题是关于 Samba、IP 转发、匿名 FTP 和 NFS 配置。在这些问题中,我选择配置的唯一一个是匿名 FTP,因为这有时对于 Web 服务器很有用。如果我的网络有更多(或者,实际上,任何)Windows 系统,Samba 将允许文件和打印机共享。如果该机器将成为我的路由器,我将启用 IP 转发。
最后三个系统配置问题是系统控制台配置(例如,屏幕保护程序、字体、键盘映射等)、时区和鼠标。这台特定的机器没有鼠标;如果有鼠标,则可以启用文本剪切和粘贴。
端口和软件包非常相似;唯一的区别在于文件中包含的内容。软件包是一个 gzipped tar 文件,其中包含所有需要的文件,以及一些描述和校验和文件。另一方面,端口由补丁和 Internet 上主文件位置的指针组成。许多端口是在应用源代码补丁后在本地系统上构建的。然而,有些是“端口”,因为它们是商业程序,无法通过 CD-ROM 或 Walnut Creek 的 FTP 站点分发。
我选择安装的唯一软件包是 WWW 类别中的 Apache 软件包。这只需几秒钟即可从 CD-ROM 安装完成,然后继续完成系统配置:其他帐户、设置 root 密码和注册。(注册会将电子邮件发送到 FreeBSD 项目,这不是必要的。但它确实对项目有所帮助。)
完成所有这些操作后,安装过程就完成了,您可以退出并重新启动。当您的机器重新启动后,您的 FreeBSD 系统现在应该已在网络上。
如上所述,我总是配置我的内核以删除任何不需要的设备。这类似于在可视化配置过程中所做的操作,但通过编译内核来完成,它会生成一个更小的内核,从而减少内存需求。
FreeBSD 手册详细描述了这个过程。《手册》可在 FreeBSD 网页 https://freebsd.net.cn/ 上获得,并且也以 HTML 格式安装在 /usr/share/doc/ 中。简而言之,您执行以下命令
cd /sys/i386/conf cp GENERIC <machine name> vi <machine name> #edit the file and exit vi config <machine name> cd ../../compile/<machine name> make depend all cp kernel /kernel reboot
复杂的部分在于编辑配置文件。在处理可视化配置实用程序之后,配置文件应该不会那么复杂。(它在《手册》中有文档记录。)您可以使用 dmesg 命令查看找到哪些设备以及未找到哪些设备。默认情况下,安装会在 /kernel.GENERIC 中保留通用内核的副本;您可以通过在 Boot: 提示符下键入内核名称来启动此内核或任何其他内核。
除了删除或配置设备外,系统参数也可以通过这种方式配置。一个这样的参数 maxusers 控制内核为某些资源分配多少内存——最大进程数、打开文件数和时间事件都基于 maxusers 计算。另一个可能需要更改的参数是 MAXMEM——由于 BIOS 限制,FreeBSD 默认只识别高达 64MB 的 RAM(或某些非常旧的系统上的 16MB),而 MAXMEM(以 KB 为单位指定)告诉它使用更多。
例如,在具有 256MB RAM 且预计负载较重的机器上,配置文件中可能会使用以下行
maxusers 100 options MAXMEM="(256*1024)" # 256MB
再次强调,在编辑相应的配置文件后,运行 config,然后运行 make。
Apache 软件包将配置文件安装到 /usr/local/etc/apache 中,默认配置文件的文档根目录为 /usr/local/www/data。通过在该目录中创建一个 index.html 文件,Web 服务器现在已启动。
对我来说,机器在大约两个小时内完全安装、配置并充当了 LAN 上的 Web 服务器。大部分时间都花在了等待内核重新编译上;在这台机器上花了 90 分钟(在我的 133MHz Pentium 上大约需要六分半钟)——并且系统在那段时间内一直作为 Web 服务器工作。
我已经安装了 FreeBSD 几次。该过程相当轻松,在很大程度上是直观的,并且从 CD-ROM 完成时非常快速。我的主要反对意见是,它在许多对话框或菜单中缺少帮助选项;如果您是 Unix 新手,这可能会使您难以知道该怎么做。但是,忽略这一点,安装过程顺利进行,并且我不需要了解任何 Apache 配置或安装知识。如果我没有选择重新配置内核,我将在开始安装后约 30 分钟内拥有一个功能齐全的 Web 服务器。
Sean Fagan 多年来一直是 BSD 的贡献者。他与一只精神错乱的猫住在圣何塞,这只猫坚持要在本文中被提及。可以通过 sef@kithrup.com 与他联系。