FreeBSD/i386 6.2-RELEASE 安装说明书

The FreeBSD Project


  这篇文章对安装 FreeBSD/i386 6.2-RELEASE 作了一些简短的说明,特别强调了如何获取 FreeBSD 发行版本。 也给出了发现并解决的故障和频繁被问到的问题的记录。


1 安装 FreeBSD

  这一章节介绍了安装一个新的 FreeBSD 发行版本的过程。 这些说明重点强调了获取 FreeBSD 6.2-RELEASE 发行版本并开始安装的过程。FreeBSD 使用手册“安装 FreeBSD”一章提供了有关安装程序本身更深层次的信息, 包括一个全程截图的指南。

  如果您正在从 FreeBSD 的前一个发行版本升级,请查看 第 3 节的升级说明。


1.1 开始

  可能在安装前要做的最重要的步骤就是阅读 FreeBSD 提供的各种各样的安装文档。 与 FreeBSD 这个发行版本相关的文档的 roadmap 可以在 README.TXT 中找到,这个文件通常放在和本文件相同的位置。 大部分文档,比如发行注记和硬件兼容性列表也可以在安装程序的 Documentation 菜单中查看。

  注意如果您能接入 Internet 的话, FreeBSD FAQ使用手册 的在线版本也可以在 FreeBSD 项目 Web 站点上找到。

  这份文档集合可能看起来很吓人,但是阅读它们所花费的时间很可能会节省更多的时间。 熟悉可用的资源也有助于处理安装过程中的问题。

  再好的计划有时也会出错, 所以如果您遇到麻烦请看一看 第 4 节, 包含了很多有价值的出错处理的信息。 在安装之前您也应该阅读升级过的 ERRATA.TXT 拷贝, 因为这会对您的特定发行版本的中间时期所报告的任何问题向您提出警告。

重要: 尽管 FreeBSD 会尽可能地避免偶然的数据丢失, 但是如果在安装过程中您做错了什么还是很可能会 清空您的整个硬盘。 请不要进入 FreeBSD 最后的安装菜单, 除非您事先已经对重要数据进行了充分的备份。


1.2 硬件需求

  FreeBSD 在 i386 系统上需要 486 或更高的处理器, 以及至少 24 MB 的 RAM。 最小安装需要至少 150MB 的剩余硬盘空间。 请阅读下面的部分, 来了解如何缩小现有的 DOS 分区以便安装 FreeBSD 的方法。

  如果您对配置 FreeBSD 的硬件不熟悉,您一定要阅读 HARDWARE.TXT 文件,它包含了 FreeBSD 支持的硬件的重要信息。


1.3 软盘映像说明

  取决于您选择如何来安装 FreeBSD,您可能需要创建几张软盘(通常是三张)来开启安装过程。 这一章节简要描述了如何创建这些软盘来从 CDROM 或者从 Internet 安装。注意一般情况下在一台支持自启动 CDROM 的机器上从 CDROM 安装 FreeBSD 的话,这一章节描述的步骤都是不需要的,可以跳过。

  对于大多数 CDROM 或者网络安装来说,您需要从 floppies/ 目录拷贝到真实软盘的只有 boot.flpkernX.flp 映像(用于 1.44MB 软盘)。

  通过网络获取这些映像很容易。只需要从 http://www.FreeBSD.org/snapshots/ 或者列在使用手册的 FTP 站点一节或 http://mirrorlist.FreeBSD.org/ Web 页面中的众多镜像站点中下载 release/floppies/boot.flp 和所有的 release/floppies/kernX.flp 文件。

  拿几张空的、 新格式化过的软盘, 一张复制映像 boot.flp,另两张复制 kernX.flp 文件。 这些映像 不是 DOS 文件。 您不能把它们当作普通文件简单地复制到一张 DOS 或者 UFS 软盘上,您需要在 DOS 下使用 fdimage.exe 或者在 UNIX 下使用 dd(1) 命令把它们“image”复制到软盘上(查看您的 CDROM 或者 FreeBSD FTP 镜像上的 tools 目录)。

  例如,要从 DOS 下创建内核软盘映像,您应该这样做:

C> fdimage boot.flp a:

  假定您已经把 fdimage.exeboot.flp 复制到了某个目录里。当然,您应该对 kernX.flp 文件也这么做。

  如果您正在一台 UNIX 机器上创建启动软盘,您可能会发现:

# dd if=floppies/boot.flp of=/dev/rfd0

  或

# dd if=floppies/boot.flp of=/dev/fd0

  或

# dd if=floppies/boot.flp of=/dev/floppy

  工作正常,这取决于您的硬件和操作系统环境 (不同版本的 UNIX 对软驱有不同的命名)。


1.4 从 CDROM 或者 Internet 安装 FreeBSD

  最容易的安装方法就是从 CDROM 安装。 如果您有一个支持的 CDROM 驱动器和一张 FreeBSD 安装 CDROM,有两种方式来开始安装:

  • 如果您的系统支持自启动 CDROM 介质的“CDBOOT”标准并且已经激活了从 CD 启动, 只要把 FreeBSD 安装 CD 放进您的 CDROM 驱动器并启动系统开始安装。

  • 从每个 FreeBSD 发行版的 floppies/ 目录创建一系列的 FreeBSD 启动软盘。阅读 第 1.3 节 了解在不同的操作系统下创建启动软盘的更多信息。 然后您只要从第一张软盘启动,很快就会进入 FreeBSD 安装。



  如果您没有 CDROM (或者您的计算机不支持从 CDROM 启动) 并且只是想要通过网络使用 PPP、SLIP 或者专用连接安装, 您应该使用 第 1.3 节 处的安装说明从文件 floppies/boot.flpfloppies/kernX.flp 创建一系列 FreeBSD 启动软盘来开始安装。 用 boot.flp 软盘重新启动您的计算机, 出现提示符时插入需要的其他软盘。然后,请到 第 1.5.5 节 寻找通过 FTP 或 NFS 安装的额外的提示。


1.5 详述各种安装类型

  一旦您看到了初始的安装屏幕,不管用哪种方式, 您就可以跟随各种各样的菜单提示到处浏览了。如果您以前从未使用过 FreeBSD 安装程序,建议您阅读 Documentation 子菜单还有第一个菜单概括的 “Usage” 说明中的文档。

注意: 如果您感到迷惑,按 F1 键查看与指定部分相关的在线文档。

  如果您以前从未安装过 FreeBSD,或者即使您安装过, 仍然强烈推荐使用“Standard”安装模式, 因为它确保您一路安装下来访问到了所有重要的要检查的条目。 如果您非常熟悉 FreeBSD 安装过程并 精确的 知道您想做什么,可以使用“Express”或者“Custom”安装选项。 如果您在升级一个现存的系统,使用“Upgrade”选项。

  FreeBSD 安装程序支持直接使用软盘、DOS、磁带、CDROM、FTP、NFS 和 UFS 分区来作为安装介质。下面是从每种类型的介质安装的更深入的提示。


1.5.1 从网络 CDROM 安装

  如果您只希望从本地 CDROM 驱动器安装,可以查看 第 1.4 节。如果您的系统上没有 CDROM 驱动器,又希望使用有网络连接的另一个系统上的 CDROM 驱动器中的 FreeBSD 发行 CD,也有几种方式可以实现:

  • 如果您能够直接通过 FreeBSD 机器上的 CDROM 驱动器 FTP 安装,这很容易:保证有一台 FTP 服务器正在运行,然后只要把下面的几行添加到密码文件中 (使用 vipw(8) 命令):

    ftp:*:99:99::0:0:FTP:/cdrom:/sbin/nologin
    

    在您要运行安装的机器上,到 Options 菜单并设定 Release Name 为 any。然后您可以选择一种 FTP 媒介类型并在 ftp 站点目录中选定“URL”后键入 ftp://machine

    警告: 这会允许本地网络(或 Internet) 上的任何人和这台机器建立 “匿名 FTP” 连接,这可能不是所希望看到的。

  • 如果希望通过 NFS 将 CDROM 直接导出给其他机器来进行安装, 您需要首先在 /etc/exports 文件中添加对应的项目 (在有 CDROM 驱动器的那台机器上)。 下面的例子将允许 ziggy.foo.com 在安装过程中直接通过 NFS 挂接 CDROM:

    /cdrom          -ro             ziggy.foo.com
    

    当然, 带 CDROM 的那台机器必须配置为 NFS 服务器, 如果您不知道如何完成其配置, 则 NFS 对您来说可能并不是最佳的选择, 除非您打算仔细阅读 rc.conf(5) 并配置它。 如果顺利的话, 将可以通过输入: cdrom-host:/cdrom 作为在目标机器 NFS 安装过程的参数, 例如 wiggy:/cdrom


1.5.2 从软盘安装

  如果由于硬件不支持, 或者您喜欢把简单的问题复杂化而不得不从软盘安装, 您需要首先准备一些空白的软盘。

  首先, 按照 第 1.3 节 所介绍的过程来制作启动盘。

  然后, 仔细阅读 第 2 节 并要特别注意 “发行版本所采用的格式” 一节, 因为它介绍了您需要复制到软盘上的文件, 以及可以放心地跳过的文件。

  接下来您需要至少准备足够多的能放下 bin 目录里文件的 1.44MB 软盘。 如果您需要在 DOS 下准备这些软盘, 则 必须 使用 MS-DOS 的 FORMAT 命令来格式化它们。 如果您使用 Windows, 则可以使用 Windows 文件管理器 的格式化命令。

重要: 通常, 软盘是 “在出厂前格式化过的”。 虽然这很方便, 但过去许多用户的问题报告都与没有格式化磁盘有关。 建议您自行格式化一下, 以确认没有问题。

  如果您正在从另一个 FreeBSD 机器上制作需要的软盘, 格式化仍然是一个好习惯, 只是您并不需要在每张软盘上都放一个 DOS 文件系统。 您可以使用 disklabel(8) newfs(8) 这两个命令来在软盘上制作 UFS 文件系统, 使用下面介绍的命令:

# fdformat -f 1440 fd0
# disklabel -w fd0 floppy3
# newfs -i 65536 /dev/fd0

  在以 DOS 或 UFS 格式化过软盘之后, 还需要将文件复制到上面。 发布文件的大小是经过精心准备的, 因此每张软盘都能够放下一个发布文件。 每一个发布包的文件应该放到它自己的子目录中, 例如: a:\bin\bin.inf, a:\bin\bin.aa, a:\bin\bin.ab, ...

重要: bin.inf 文件需要放到 bin 发布集的第一张软盘上, 因为安装文件需要读取它以了解在将发布包重组时还需要获取多少个文件块。 当把发布放到软盘上时, distname.inf 文件 必须 和发布集的第一块放在一起。

  一旦您进入了安装程序的 Media 提示, 选择 “Floppy” 之后您将得到相应的提示。


1.5.3 从 DOS 分区安装

  要从 MS-DOS 分区安装您只需简单地把发布包文件复制到主 DOS 分区 (C:) 上的一个名字为 FREEBSD 的目录即可。 例如, 要从 DOS 中使用来自 CDROM 的文件完成 FreeBSD 的最小安装, 您需要照下面的提示做:

C:\> MD C:\FREEBSD
C:\> XCOPY /S E:\BASE C:\FREEBSD\BASE

  这里假设 E: 是您的 CD 所挂接的驱动器符。

  如果需要从 DOS 安装更多的发行包 (当然您需要足够的磁盘空间) 需要将它们都复制到 C:\FREEBSD - 而 BIN 则是必需的。

  一旦您复制了这些目录, 就可以简单地从软盘开始安装, 并在指定介质类型时选择 “DOS”。


1.5.4 从 QIC/SCSI 磁带安装

  当从磁带安装时, 安装程序预期安装文件是 tar 到上面的, 因此把您感兴趣的安装包复制出来之后, 简单地使用 tar(1) 把它们放到磁带上就可以了:

# cd /where/you/have/your/dists
# tar cvf /dev/sa0 dist1 .. dist2

  当您进行安装时, 您应该确认临时目录 (将提示您选择它) 中有足够放下 完整的 磁带内容的空间。 由于磁带不支持随机访问, 这种方式需要很多临时存储。 您需要准备写到磁带上那样多的临时存储空间。

注意: 当开始安装时, 磁带应该在从软盘启动 之前 放进磁带机。 如果不这样做, 安装程序的 “探测” 操作可能会找不到它。

  现在按照 第 1.3 节 的描述制作安装软盘并继续安装就可以了。


1.5.5 通过网络使用 FTP 或 NFS 安装

  按照第一节的说明制作引导盘之后, 您可以使用三种不同的连接方式来继续安装过程: 串口连接、 并口连接, 或以太网。


1.5.5.1 串口

  SLIP 支持非常原始, 而且基本上限于硬连线的连接, 例如在两台计算机之间的串口电缆。 这类连接必须是直接连好的, 因为 SLIP 安装目前并不提供拨号能力。 如果您需要使用调制解调器来拨号或需要在连接之前进行其它交互, 则应使用 PPP 来代替它。

  如果您使用 PPP, 一定要确认您手头有 Internet 服务提供商的 IP 地址和 DNS 信息, 因为您在安装的开始阶段需要它们。 您还需要知道自己的 IP 地址, 尽管 PPP 支持动态地址协商, 并能够直接从您的 ISP 获取这些信息, 如果他们支持这样做的话。

  最后您还需要了解在您的 PPP 拨号服务上如何使用一些 “AT 命令” 来进行拨号, 因为 PPP 拨号程序只提供了非常简单的终端仿真程序。


1.5.5.2 并口

  如果有可用的到另一台 FreeBSD 或 Linux 机器的连接, 您也可以考虑通过 “laplink” 风格的并口电缆来安装。 通过并口连接的速度通常要比串口电缆 (通常最多 50k/秒) 要快的多, 因此能够让您更快地完成安装。 当使用点对点的并口电缆连接时通常并不需要 “真实的” IP 地址, 一般来说您可以在连接的两端使用 RFC 1918 风格的地址 (例如 10.0.0.110.0.0.2, 等等)。

重要: 如果您的 PLIP 另一端使用的是 Linux, 则还需要在 TCP/IP 设置界面的“extra options for ifconfig” 中指定 link0, 以便兼容 Linux 中略有不同的 PLIP 协议。


1.5.5.3 以太网

  FreeBSD 支持绝大多数常见的以太网卡, 它支持的网卡列表作为 FreeBSD 硬件说明 (参见 Documentation 菜单中的 HARDWARE.TXT 或启动盘和 CDROM 的顶级目录)。 如果您使用的是某种被支持的 PCMCIA 网卡, 则还应确认它在笔记本启动 之前 就已经插好了。 不幸的是, FreeBSD 目前还不支持在安装过程中 “热插” PCMCIA 卡。

  同时还需要知道您在局域网上的 IP 地址, 子网的 netmask 值和机器名。 您的系统管理员会告诉您在您的网络上所需要的值。 如果您想通过名字而不是 IP 地址来访问其它机器, 则还需要一个域名服务器, 而且可能还需要网关的地址 (如果使用 PPP, 则是您提供商的 IP 地址) 才能够访问它。 如果您打算通过 HTTP 代理来完成 FTP 安装, 您还需要代理服务器的地址。

  如果您不知道这些问题的答案, 您可能需要 首先 联系系统管理员, 然后才能开始安装。 在已有网络上使用随便选择的 IP 地址和子网掩码几乎肯定无法正常工作, 而且您的管理员可能会给您上人生一课。

  一旦您的网络连接能够使用, 就可以继续通过 NFS 或 FTP 来完成安装了。


1.5.5.4 NFS 安装提示

  NFS 安装相当的简单: 您只需将 FreeBSD 的安装文件复制到服务器上的某个目录, 并在选择 NFS 介质时给出这个目录即可。

  如果服务器只支持来自 “特权端口” 的访问 (这是 Sun 和 Linux 工作站上通常的默认情形), 您可能需要在安装之前在 Options 菜单中设置这个选项。

  如果您的网卡质量很差并造成数据传输迟缓, 您可能还需要调整一些 Options 选项。

  为了让 NFS 安装能够正常进行, 服务器还必须支持 “子目录挂接 (subdir mounts)”, 例如如果您的 FreeBSD 安装包目录在 wiggy:/usr/archive/stuff/FreeBSD 中, 则 wiggy 必须允许直接挂接 /usr/archive/stuff/FreeBSD, 而不仅仅是 /usr/usr/archive/stuff

  在 FreeBSD 的 /etc/exports 文件中可以通过 -alldirs 选项来控制它。 在其它 NFS 服务器上可能有不同的写法。 如果您收到了来自服务器的 Permission Denied 消息, 通常是因为您没有启用这一特性导致的。


1.5.5.5 FTP 安装提示

  FTP 安装可以通过从任何包含足够新版的 FreeBSD 的镜像站点来完成。 安装过程中您可以从 FTP 站点菜单中选择遍布全球的几乎每一个官方的镜像站点来完成安装。

  如果您正从某个没有在这里列出的 FTP 站点安装, 或您无法正确地配置域名解析服务器, 您也可以通过在菜单中选择 “URL” 来指定自己的 URL。 URL 可以包括一个域名或 IP 地址, 因此当没有域名解析服务器时, 您可以用类似下面的 URL 来完成安装:

ftp://216.66.64.162/pub/FreeBSD/releases/i386/4.2-RELEASE

  您可以从三种 FTP 安装方式中选择合适的:

  • FTP: 这种方式使用标准的 “主动 (Active)” 传输方式, 此时服务器将主动发起到客户机的数据连接。 在存在防火墙的环境中通常这会无法正常工作, 但与不支持被动模式的较老的 FTP 服务器配合时它是最佳选择。 如果您使用被动模式时连接挂起, 请尝试这个选项。

  • FTP Passive: 这将设置 FTP “被动 (Passive)” 模式, 它将阻止服务器打开到客户机的连接。 这个选项对于通过不允许连入到随机端口的防火墙接入的用户来说, 是最佳的选择。

  • FTP via an HTTP proxy: 这个选项指示 FreeBSD 使用 HTTP 连到一个代理商完成所有的 FTP 操作。 代理服务器将翻译所有的请求, 并把它们发给 FTP 服务器。 这允许用户通过完全不允许 FTP, 但提供了 HTTP 代理的防火墙连接。 除了 FTP 服务器之外, 您还必须指定代理服务器的主机名。

    极端情况下您可能有不通过 HTTP 的 FTP 代理服务器, 您可以把 URL 指定为下面的样子:

    ftp://foo.bar.com:端口/pub/FreeBSD
    

    上面的 URL 中, 端口 是 FTP 代理服务器的端口号。


1.5.6 串口控制台用户提示

  如果您想在只有串口的机器上安装 FreeBSD (例如, 在没有或不想购买 VGA 卡时), 请按照下面的步骤完成安装:

  1. 连接某种 ANSI (vt100) 兼容的终端或终端仿真程序到您打算安装 FreeBSD 的计算机的 COM1 口。

  2. 拔掉键盘 (是的, 这是正确的!) 然后尝试从软盘或安装 CDROM 启动。 启动时不要插键盘。

  3. 如果您在串口控制台上没有得到任何输出, 请重新插上键盘。 如果您正从 CDROM 启动, 在听到嘟嘟声时立即 步骤 5

  4. 如果从软盘引导, 当软驱不再动作时, 插入第一张 kernX.flp 盘并按 Enter。 当软驱不再动作时, 插入下一张 kernX.flp 盘并按 Enter, 重复直到您已经插入了所有的 kernX.flp 盘。 当磁盘动作结束时, 再次插入 boot.flp 软盘并按 Enter

  5. 一旦听到嘟嘟声, 按数字 6, 并输入

    boot -h
    

    您现在一定可以从串口看到一切。 如果这样还无法正常工作, 请检查您的串口电缆, 以及终端仿真程序或实际的终端设备的设置。 应该设置为 9600 波特, 8 数据位, 无奇偶校验位。


1.6 i386 体系结构用户的疑问与解答

1.6.1. 救命! 我的空间不足! 我是否需要首先删除所有的东西?
1.6.2. 我能在 FreeBSD 中使用压缩的 DOS 文件系统吗?
1.6.3. 是否能挂接我的 DOS 扩展分区?
1.6.4. 可以在 FreeBSD 中执行 DOS 可执行文件吗?
1.6.5. 可以在 FreeBSD 中运行 Microsoft® Windows® 应用吗?
1.6.6. 是否能够在 FreeBSD 中运行其他操作系统?

1.6.1. 救命! 我的空间不足! 我是否需要首先删除所有的东西?

如果您的计算机已经在运行 DOS 而只有很少或没有可以用于安装 FreeBSD 的磁盘空间, 还有机会! 您可以从 FreeBSD CDROM 的 tools/ 目录, 或众多 FreeBSD ftp 站点上找到 FIPS 工具来解决这个问题。

FIPS 允许您将已经存在的 DOS 分区分割为两部分, 保持原有分区中的内容, 从而在剩余空间上安装。 在运行 FIPS 之前首先应该使用 DOS 6.xx 的 DEFRAG 工具或 Norton Disk Tools 对您的 DOS 分区执行 “碎片整理”。 它将提示您输入所需的其它信息。 此后, 您可以重新启动并在新的分区上安装 FreeBSD。 还应注意 FIPS 将把第二个分区作为第一个的分区的 “克隆”, 因此实际上您将在原有的一个 DOS 主分区之外看到一个新的主分区。 不必理会警告! 您可以简单地删除那个多余的 DOS 主分区 (可以通过分区大小来看出是否是应该删除的那个)。

FIPS 目前并不支持 NTFS 格式的分区。 要分割这样的分区, 您需要类似 Partition Magic 这样的商业产品。

FIPS 无法处理扩展 DOS 分区。 但它支持 Windows 95/98/ME 的 FAT32 格式主分区。

1.6.2. 我能在 FreeBSD 中使用压缩的 DOS 文件系统吗?

不能。 如果您使用类似 Stacker(tm) 或 DoubleSpace(tm) 这样的工具, FreeBSD 只能使用文件系统中尚未压缩的部分。 余下的部分将展示为一个大文件。 不要删除那个文件 否则您可能会后悔莫及的!

如果需要在 DOS 和 FreeBSD 之间通讯, 最好建立一个未压缩的 DOS 扩展分区。

1.6.3. 是否能挂接我的 DOS 扩展分区?

可以。 DOS 扩展分区会被映射到 FreeBSD 的其它 “slices” 之后。 例如, 您的 D: 驱可能会是 /dev/da0s5, 而 E: 驱则是 /dev/da0s6, 等等。 当然, 这个例子假定您的扩展分区是在 SCSI 驱动器 0 上。 对于 IDE 驱动器, 相应地用 ad 换掉 da。 您可以按下面的方法来挂接其它 DOS 驱动器:

# mount -t msdos /dev/da0s5 /dos_d

1.6.4. 可以在 FreeBSD 中执行 DOS 可执行文件吗?

正在开发中的 BSDI 的 doscmd(1) 工具能够适应多数情况, 尽管还有一些较为粗糙的地方。 emulators/doscmd port/package 可以在 FreeBSD Ports Collection 中找到。 如果您对这样的工作感兴趣, 请发邮件到 FreeBSD-emulation 邮件列表 并说明您对这项工作感兴趣!

FreeBSD Ports Collection 中的 emulators/pcemu port/package 能够模拟 8088 和足够多的 BIOS 服务来支持 DOS 文本模式的应用程序。 运行它需要 X Window System (XFree86)。

1.6.5. 可以在 FreeBSD 中运行 Microsoft® Windows® 应用吗?

在 FreeBSD Ports Collection 中有很多能够运行众多 Windows 应用程序的 ports/packages。 emulators/wine 的 port/package 提供了在 FreeBSD 之上的一个兼容层, 使得很多 Windows 应用程序得以在 X Windows (XFree86) 中执行。

1.6.6. 是否能够在 FreeBSD 中运行其他操作系统?

再次强调, FreeBSD 的 Ports Collection 中有很多能够模拟 "虚拟机" 并使得其他操作系统能够在 FreeBSD 之上执行的 ports/packages。 emulators/bochs 中的 port/package 允许 Microsoft Windows、 Linux 甚至另一份 FreeBSD 在 FreeBSD 桌面的一个窗口中执行。 emulators/vmware2emulators/vmware3 ports/packages 提供了商业的 VMware 虚拟机软件, 并能够在 FreeBSD 上执行。


2 发行版本所采用的格式

  典型的 FreeBSD 发布目录的样子和下面列出的类似 (具体细节可能随版本、 硬件架构和其他因素而有微小变化):

ERRATA.HTM      README.TXT      compat1x        dict            kernel
ERRATA.TXT      RELNOTES.HTM    compat20        doc             manpages
HARDWARE.HTM    RELNOTES.TXT    compat21        docbook.css     packages
HARDWARE.TXT    base            compat22        filename.txt    ports
INSTALL.HTM     boot            compat3x        floppies        proflibs
INSTALL.TXT     catpages        compat4x        games           src
README.HTM      cdrom.inf       crypto          info            tools

  这些文件也可以在多碟组的第一张 CDROM 上找到, 只是格局略有不同。 在多数平台上, 安装 CDROM 在安装包文件之外, 也提供了一个 “现场文件系统”。 现场文件系统, 对于修复或排出现有的 FreeBSD 安装的问题非常有用 (参见 第 4 节 以了解如何完成这项工作)。

  对于无法从 CDROM 介质引导系统 (但可以通过其它手段来读取 CDROM) 的用户来说, 应关注一下 floppies 目录。 很容易从 floppies 提供的文件来自行制作 1.44MB 引导盘 (参见 第 1.3 节 以了解如何这样做), 并用它来开始从 CDROM、 FTP, 或者 NFS 的安装。 在安装过程中所需要的其他数据, 将自动地根据您的选择获得。 如果您之前从未安装过 FreeBSD, 则应完整地阅读这份文档 (安装指引)。

  如果您在尝试进行某种其他类型的安装, 或对于发布目录是如何组织的感到好奇, 请参考下面的说明以了解进一步的内容:

  1. *.TXT*.HTM 文件包含了文档 (举例来说, 这份文档可以在 INSTALL.TXTINSTALL.HTM 中找到), 您应该在开始安装之前阅读它们。 *.TXT 文件是普通的文本文件, 而 *.HTM 文件则是 HTML 文件, 可以使用几乎任何一种 Web 浏览器来阅读。 某些发布可能还包其他格式的文档, 例如 PDF 或 PostScript。

  2. docbook.css 是层次样式表 (CSS) 文件, 它会被 Web 浏览器用以完成 HTML 文档的排版。

  3. base, catpages, crypto, dict, doc, games, info, manpages, proflibs, 以及 src 这些目录中包含了 FreeBSD 本身的发布版本组件, 它们被分割为更小的文件, 以便放进软盘中 (如果需要的话)。

  4. compat1x, compat20, compat21, compat22, compat3x, 以及 compat4x 目录包含了用于与先前版本兼容的文件, 它们以单个的 gzip 压缩的 tar 文件的形式发布 - 在安装过程中或之后可以通过 install.sh 脚本来安装它们。

  5. floppies/ 子目录中包含了安装用的软盘镜像; 关于它们的更多信息可以在 第 1.3 节 找到。

  6. packagesports 目录提供了 FreeBSD 的 Packages 和 Ports Collections。 Packages 可以从其目录中通过下面的命令安装:

    # sysinstall configPackages
    

    Packages 也可以通过将 packages/ 下的文件名交给 pkg_add(1) 命令来完成。

    Ports Collection 可以通过与其他组件相同的方法来安装, 解压缩后它需要大约 190MB 的磁盘空间。 关于 ports collection 的更多资料可以在 http://www.FreeBSD.org/ports/ 或本地的 /usr/share/doc/handbook 找到, 当然, 后者的前提是您安装了 doc 发布。

  7. 最后, tools 目录中提供了各种用以测试磁盘尺寸、 安装引导管理器等的 DOS 工具。 这些工具纯粹是可选的, 提供它们是为了方便用户。

  典型的发布目录 (举例来说, info 发布) 在内部应该是这样:

CHECKSUM.MD5    info.ab         info.ad         info.inf        install.sh
info.aa         info.ac         info.ae         info.mtree

  CHECKSUM.MD5 文件包含了每个文件的 MD5 签名。 这主要是为了手工检测数据是否有损坏用的, 实际的安装过程并不会用到它。 info.a* 文件是分割过的经过 gzip 压缩的 tar 文件, 其内容可以通过下面的命令来显示:

# cat info.a* | tar tvzf -

  在安装过程中, 这些文件会被自动地重组并根据需要展开。

  info.inf 文件也是必要的, 因为它会被安装程序读取以了解需要为安装包复制多少片。 当把安装包放到软盘上时, .inf 文件 必须 放在每一个安装包的第一张软盘上!

  info.mtree 文件是另一个供用户参考而非必需的文件。 它包括了 未压缩的 安装包中的每个文件的 MD5 签名, 并可在其后通过使用 mtree(8) 程序来验证安装权限和校验和以了解这些文件是否有过改动。 当和 base 安装包联用时, 这是一种检测木马攻击的很好的手段。

  最后, install.sh 文件是用来方便用户在安装之后安装某个安装包的。 要在装完系统之后从 CDROM 安装某个安装包, 您可以按照下面的例子来完成:

# cd /cdrom/info
# sh install.sh

3 升级 FreeBSD

  这些说明描述了从一个旧版本的 FreeBSD 执行二进制升级的过程。

警告: 尽管 FreeBSD 升级过程尽力防止意外的数据丢失, 但是仍有很大可能这次安装会 擦除您的整个硬盘! 请不要接受最后的确认请求,除非您已经备份了所有重要的数据文件。

重要: 这些说明假定您正在使用您打算升级的 FreeBSD 版本提供的 sysinstall(8) 版本。使用一个不匹配的 sysinstall(8) 版本几乎总是会造成问题并且已知会让系统处于不可用状态。 在这方面最容易犯的错误就是使用现存的安装的旧的 sysinstall(8) 副本来升级 FreeBSD 到新的版本。 这是 绝不 推荐的。

警告: 现在还不支持从 FreeBSD 4-STABLE 到 FreeBSD 6.2-RELEASE 的二进制升级。FreeBSD 4-STABLE 中存在的一些文件会引起混乱, 但是却不能被二进制升级移除。一个著名的例子就是旧的 /usr/include/g++ 目录会引起 C++ 程序编译错误 (也可能没有影响)。

这些升级说明提供给那些从近来的 FreeBSD 6.2-STABLE snapshot 升级的用户。


3.1 介绍

  升级过程用相应的最新的 FreeBSD release 取代用户选定的发行版本。 这个过程保护标准的系统配置文件数据, 还有用户数据、已安装的包和其它软件。

  推荐正在考虑升级的管理员在着手升级之前完整阅读这一章节。 不这样做的后果很可能就是升级失败或者数据丢失。


3.1.1 升级概览

  发行版本的升级就是执行解压缩新版本组件覆盖当前版本。 属于旧的发行版本的文件不会被删除。

  系统配置文件通过保留并恢复下列文件的当前版本来实现保护:

  Xaccel.ini, XF86Config, adduser.conf, aliases, aliases.db, amd.map, crontab, csh.cshrc, csh.login, csh.logout, cvsupfile, dhclient.conf, disktab, dm.conf, dumpdates, exports, fbtab, fstab, ftpusers, gettytab, gnats, group, hosts, hosts.allow, hosts.equiv, hosts.lpd, inetd.conf, localtime, login.access, login.conf, mail, mail.rc, make.conf, manpath.config, master.passwd, motd, namedb, networks, newsyslog.conf, nsmb.conf, nsswitch.conf, pam.conf, passwd, periodic, ppp, printcap, profile, pwd.db, rc.conf, rc.conf.local, rc.firewall, rc.local, remote, resolv.conf, rmt, sendmail.cf, sendmail.cw, services, shells, skeykeys, spwd.db, ssh, syslog.conf, ttys, uucp

  这些文件相应的新版本被转移到 /etc/upgrade/。 系统管理员可以仔细阅读这些新版本并合并需要的部分。 注意这里面很多文件是相互依赖的, 最好的合并过程是将所有的站点特定数据从当前文件复制进新的文件。

  在升级过程中,会提示管理员 /etc/ 中所有文件要存放的位置。 在本地修改合并进入其它文件后,也可以从这个位置再找回它们。


3.2 过程

  这一节详细描述了升级过程。尤其关注那些和通常的安装有明显区别的部分。


3.2.1 备份

  用户数据和系统配置文件在升级前应该备份。 尽管升级过程尽力的去防止意外的失误, 还是有可能全部或部分的毁坏数据和配置文件信息。


3.2.2 挂载文件系统

  进入 disklabel 编辑器会列出命名的磁盘文件系统设备。 在着手升级前,管理员应该记录一下设备名和相应的挂载点。 这些挂载点应该在这里输入。 不要 对任何文件系统设置“newfs flag”,因为这会引起数据丢失。


3.2.3 选择 Distribution

  选择 distribution 的时候,没有强制的约束必须选择哪一个。 基本规则是,base distribution 对于升级来说应该选择,如果已经安装了联机手册 man distribution 也应该选择。 如果管理员希望添加额外的功能,在最初的安装之外其它 distribution 也可以选择。


3.2.4 安装之后

  一旦安装过程完成,就会提示管理员检查新的配置文件。 这时候,应该做下检查来保证系统配置文件有效。 尤其是,应该检查 /etc/rc.conf/etc/fstab 文件。


3.3 从源代码升级

  那些对允许更复杂、诡异的升级方法感兴趣的人应该看看 FreeBSD 使用手册的 最前沿 一章。这个过程包括了从源代码重建整个 FreeBSD。 这依赖于可靠的网络连接、额外的磁盘空间和时间, 但是有网络以及其它更复杂安装的优势。 这基本和跟踪 -STABLE 或 -CURRENT 开发分支的过程是相同的。

  /usr/src/UPDATING 包含了从源代码升级 FreeBSD 系统的重要信息。它列出了 FreeBSD 中各种各样可能影响升级的改动。


4 故障排除

4.1 修复现有的 FreeBSD 安装

  FreeBSD 在其安装程序 sysinstall(8) 的顶级菜单上, 提供了一个 “fixit” 选项。 它提供了一个包含 FreeBSD 基本系统中常用程序的 shell; 这个环境对于修复或排除现有的 FreeBSD 安装中的故障十分有用。 要使用 fixit 模式, 您需要按照和其他引导盘相同的方式制作 fixit.flp 软盘, 或者使用 “现场文件系统” CDROM。 一般来说, 现场文件系统应该在 FreeBSD 安装光盘中的第一张上。 请注意, 使用 fixit 选项需要一些 UNIX 系统管理的经验。

  一般来说, 有两种方法来启动 fixit 模式。 能够从 FreeBSD 安装 CDROM 启动的用户, 应该这样做并在 sysinstall(8) 的主菜单选择 “fixit”。 然后, 再选择其中的 “CDROM/DVD” 选项。

  无法从 CDROM 启动, 但可以从软盘启动的用户, 则需要更多的步骤。 除了安装过程所需要的 boot.flpkernX.flp 之外, 还需要制作一张 fixit.flp 软盘, 方法和其他软盘无异。 按照启动安装程序的步骤进行, 直到出现 sysinstall(8) 菜单为止。 这时, 选择其中的 “fixit” 项, 随后的菜单中, 选择 “Floppy”, 并依提示插入 fixit.flp 软盘。

  尽管 CDROM 和软盘上的 fixit 环境很相似, 但并非一模一样。 它们都提供了一系列用于检查、 修复文件系统及其内容的命令。 在 CDROM 上的 fixit 版本提供了全部 FreeBSD 基本系统中的命令, 因为它是一个现场文件系统。 与此相反, 由于空间限制, 软盘 fixit 环境, 则只能提供它的一个子集。

  软盘版本的 fixit 中, 可以在 /stand/mnt2/stand 找到一些常用的独立的应用程序。 而在 CDROM 版本的 fixit 中, 这些程序可以在 /stand/mnt2/rescue 中找到 (余下的程序, 可以在现场文件系统中找到, 其位置是 /mnt)。


4.2 i386 架构上常见的问题

4.2.1. 我的计算机在启动并检测硬件时停住了, 或者安装时行为异常, 或者软驱没有检测到。
4.2.3. 先前版本的 FreeBSD 能够识别我的旧式 ISA 设备, 而新版本不能了。 发生了什么问题?
4.2.4. 安装完 FreeBSD 之后的首次硬盘启动, 内核已经正确加载并检测了硬件, 但却停机并给出了类似下面的信息:
4.2.5. 第一次安装 FreeBSD 后,我从硬盘进行引导,但是引导管理器却提示 F? 在每次引导时,但却不能引导进入系统。
4.2.6. mcd(4) 驱动总是认为它发现了一个设备, 而这导致我的 Intel EtherExpress 网卡无法正常工作。
4.2.7. 系统发现了我的 my ed(4) 网卡,但却出现 设备超时错误。
4.2.8. 我从软盘引导安装我的 IBM ThinkPad (tm)膝上型电脑, 键盘的输入一团糟。
4.2.9. 我的系统找不到我的 Intel EtherExpress 16 卡。
4.2.10. 在 EISA HP Netserver 上安装时,我的 AIC-7xxx SCSI 控制器检测不到。
4.2.11. 我有一台 Panasonic AL-N1 或 Rios Chandler Pentium 机器, 我发现每当进入安装时系统都会挂机。
4.2.12. 我有个 CMD640 IDE 控制器, 系统它坏了。
4.2.13. 在一台 Compaq Aero 笔记本上, 当尝试从软盘安装时, 提示 “No floppy devices found! Please check ...”。
4.2.14. 在安装一台 Dell Poweredge XE 时, 无法识别 Dell 自有的 RAID 控制器 DSA (Dell SCSI Array)。
4.2.15. 我有一个 IBM EtherJet PCI 卡,它被 fxp(4) 驱动程序正确的探测到, 但网卡上的灯却不亮, 也不能连到网络。
4.2.16. 当我在配置网络服务期间安装了一个 IBM Netfinity 3500, 系统停止了响应。
4.2.17. 我安装到由 Mylex PCI RAID 控制器管理的磁盘时, 系统启动失败 (例如, 显示 read error 错误信息)。

4.2.1. 我的计算机在启动并检测硬件时停住了, 或者安装时行为异常, 或者软驱没有检测到。

FreeBSD 5.0 以及更高版本大量地使用了 i386、 amd64 以及 ia64 平台上的系统 ACPI 服务以帮助检测系统在启动过程中检测到的设备。 不幸的是, ACPI 驱动程序以及主板及其 BIOS 仍然存在一些 bug。 ACPI 可以通过在启动加载的第三阶段通过设置 “hint.acpi.0.disabled” 来禁用:

set hint.acpi.0.disabled="1"

在每次启动时这个选项都会被复位, 因此有必要把 hint.acpi.0.disabled="1" 加入到 /boot/loader.conf中。 要了解关于启动加载器的进一步详情, 请参考 FreeBSD 使用手册。

4.2.3. 先前版本的 FreeBSD 能够识别我的旧式 ISA 设备, 而新版本不能了。 发生了什么问题?

类似 matcd 这样的一些驱动程序, 会由于无人维护或者其他一些原因而被删除。 其他一些仍然存在, 但由于其具有侵略性的检测方法而被默认禁用。 下面这些 ISA 设备驱动可以在启动加载器的第三步时启用: aha, ahv, aic, bt, ed, cs, sn, ie, fe, le, 以及 lnc。 要做到这一点, 在加载器进行 10 秒倒计时的时候将其中止, 并在提示符后输入:

unset hint.foo.0.disabled

foo 替换为驱动程序的名字就可以重新启用它们。 通过编辑文件 /boot/device.hints 并删去相应的 “disabled” 行可以使这一设置持久化。

4.2.4. 安装完 FreeBSD 之后的首次硬盘启动, 内核已经正确加载并检测了硬件, 但却停机并给出了类似下面的信息:

changing root device to ad1s1a panic: cannot mount root

哪个地方出错? 应该如何解决?

在引导提示中给出的 bios_drive:interface(unit,partition)kernel_name 是什么意思?

当引导盘不是系统中的第一块盘时可能会触发一个存在了很久的问题。 BIOS 使用和 FreeBSD 不同的标号机制, 而改正这样的问题是非常困难的事情。

当引导盘不是系统中的第一块盘时, FreeBSD 可能需要一些额外的帮助才能找到它。 这里有两种比较常见的情形, 在这两种情形中, 您都需要告诉 FreeBSD 根文件系统的位置。 您可以通过指定 BIOS 磁盘编号、 类型以及 FreeBSD 对那种类型的编号来完成这项工作。

第一种情况是您有两个 IDE 磁盘, 每个配置成主盘在它们各自的 IDE 总线上,并且希望它们能从 第二个盘引导 FreeBSD BIOS 把它们看作磁盘 0 和磁盘 1, FreeBSD 把它们看作 ad0ad2

FreeBSD 在 BIOS 磁盘 1 上,类型为 ad FreeBSD 盘号为 2, 因此您可以说:

1:ad(2,a)kernel

注意如果有一个从盘在主接口上, 则上面这些就不必要了 (而且, 事实上是错的)。

第二种解决涉及到从一个 SCSI 磁盘上引导 当您在系统上有一个或多个 IDE 磁盘。在这种情况下, FreeBSD 的盘号比 BIOS 的盘号要低。 如果您像 SCSI 磁盘一样有两个 IDE 磁盘, SCSI 磁盘是 BIOS 磁盘 2, 类型 da FreeBSD 盘号为 0,因此您可以这样说:

2:da(0,a)kernel

告诉 FreeBSD 您想从 BIOS 磁盘2上引导,它就是系统上的第 一个 SCSI 磁盘。如果您只有一个 IDE 磁盘,您需要使用 '1:' 来代替。

您一旦知道了需要使用的数值之后, 就可以用您喜欢的文本编辑器把这些命令写进 /boot.config 文件中。 除非另有说明, FreeBSD 会使用这个文件的内容, 作为对 boot: 提示的回应。

4.2.5. 第一次安装 FreeBSD 后,我从硬盘进行引导,但是引导管理器却提示 F? 在每次引导时,但却不能引导进入系统。

在安装 FreeBSD 的编辑分区时, 硬盘尺寸设置错误。 返回到分区编辑器并指定您的硬盘的实际尺寸。 您必须重新安装 FreeBSD 再次重新设置正确的尺寸。

如果在为您的机器指出正确的尺寸之后仍然失败,这里有个技巧: 安装一个小的 DOS 分区在磁盘开始安装 FreeBSD 后。安装程序将查看 DOS 分区并且尝试着去推断正确的尺寸。通常这样就能正常工作。

下面的提示不再推荐,但是留在这里作为参考:

如果您正打算安装只使用 FreeBSD 的服务器, 而不关心 (未来) 和 DOS, Linux 或其他操作系统的兼容性, 您还可以选择使用整个磁盘 (分区编辑器中的 ‘A’), 选择那个不标准的选项来让 FreeBSD 占满磁盘的每一个扇区。 这样您就不再需要考虑尺寸问题, 而限制则是您将无法运行 FreeBSD 以外的其他操作系统。

4.2.6. mcd(4) 驱动总是认为它发现了一个设备, 而这导致我的 Intel EtherExpress 网卡无法正常工作。

在引导加载的第三阶段, 设置 hint “hint.mcd.0.disabled="1"” 和 “hint.mcd.1.disabled="1"”, 就可以禁止探测 mcd0mcd1 设备。 一般而言, 在内核配置文件中您应该只保留和启用那些将要用到的设备。

4.2.7. 系统发现了我的 my ed(4) 网卡,但却出现 设备超时错误。

您的卡可能使用了与 /boot/device.hints 文件中指定的不同的 IRQ。 ed 驱动默认并不使用‘软’配置 (在 DOS 下使用 EZSETUP 进行的配置), 但如果您在接口的 hint 上指定 -1, 就会使用软配置。

可以通过跳线来改变硬件的设定 (并根据需要修改内核配置) 或通过设置 hint “hint.ed.0.irq="-1"” 将 IRQ 指定为 -1。 后者将让内核使用软件配置。

另一种可能是您的卡使用了 IRQ 9, 而这是和 IRQ 2 共用的, 这也是经常造成问题的原因 (尤其是当您的 VGA 显卡使用 IRQ 2 时!)。 只要可能, 您就不应使用 IRQ 2 或 9。

4.2.8. 我从软盘引导安装我的 IBM ThinkPad (tm)膝上型电脑, 键盘的输入一团糟。

较早的 IBM 笔记本使用了非标准的键盘控制器, 因此您必须告诉键盘驱动 (atkbd0) 进入与 ThinkPad 协同工作的一个特殊模式。 设置 hint “hint.atkbd.0.flags="4"” 应该能让其正常工作。

4.2.9. 我的系统找不到我的 Intel EtherExpress 16 卡。

您必须设置您的 Intel EtherExpress 16 卡的内存映射到地址 0xD0000, 并使用 Intel 提供的 softset.exe 程序进行设置, 让使映射后的内存大小为 32K

4.2.10. 在 EISA HP Netserver 上安装时,我的 AIC-7xxx SCSI 控制器检测不到。

这是一个已知问题, 并用会在将来对其进行修复。 要让系统能够正常安装, 需要在加载器第三阶段设置 hint “hw.eisa_slots="12"”。

4.2.11. 我有一台 Panasonic AL-N1 或 Rios Chandler Pentium 机器, 我发现每当进入安装时系统都会挂机。

由于某些原因, 您的机器可能不喜欢新的 i586_copyouti586_copyin 代码。 要禁用它们, 需要设置 hint “hint.npx.0.flags="1"”。

4.2.12. 我有个 CMD640 IDE 控制器, 系统它坏了。

FreeBSD 不支持这种控制器。

4.2.13. 在一台 Compaq Aero 笔记本上, 当尝试从软盘安装时, 提示 “No floppy devices found! Please check ...”。

Compaq 系统总是与其它系统有点不同, 他们没有在笔记本的 CMOS RAM 中说明软驱的存在。 因此, 驱动程序会认为没有配置软驱。 您需要设置 hint “hint.fdc.0.flags="1"” 这样驱动程序将认为第一个软驱存在, 而不去查询 CMOS。

4.2.14. 在安装一台 Dell Poweredge XE 时, 无法识别 Dell 自有的 RAID 控制器 DSA (Dell SCSI Array)。

配置 DSA 来使用 AHA-1540 仿真使用 EISA 配置程序。之后 FreeBSD 检测到 DSA 作为一个 Adaptec AHA-1540 SCSI 控制器,irq 11 和 port 340。在可视化模式下系统将使用 DSA RAID disks, 但您不能使用 DSA-specific 里的特性,例如查看 RAID 健壮性。

4.2.15. 我有一个 IBM EtherJet PCI 卡,它被 fxp(4) 驱动程序正确的探测到, 但网卡上的灯却不亮, 也不能连到网络。

我们不理解为什么会发生这样情况, IBM 也不理解 (我们问过他们)。 这块网卡是标准的 Intel EtherExpress Pro/100, 只是上面有 IBM 的标签, 这种卡通常工作的都很好。 您可以在一些 IBM 的服务器上看一些这方面的征兆。 唯一的解决办法是安装一个不同品牌的网卡。

4.2.16. 当我在配置网络服务期间安装了一个 IBM Netfinity 3500, 系统停止了响应。

在 Netfinity 3500 板上有一个问题, 目前为止我们还没有找出其根源。 它可能与系统配置不正确的 SMP 特性有关。 目前您只能换一块不同品牌的网卡, 而在任何时候都避免使用板载的。

4.2.17. 我安装到由 Mylex PCI RAID 控制器管理的磁盘时, 系统启动失败 (例如, 显示 read error 错误信息)。

Mylex 驱动中有一个 bug, 它会忽略 BIOS 中的 “8GB” 模式设置。 请改为使用 2GB 模式。


这份文档,以及其他与FreeBSD发行版本有关的文档,都可以在 http://www.FreeBSD.org/snapshots/下载。

在遇到关于FreeBSD的技术问题时,请首先阅读 文档 之后再考虑联系 <[email protected]>。

所有 FreeBSD 6.2-STABLE 的用户都应该订阅 <[email protected]> 邮件列表。

关于这份文档的任何问题,请致信 <[email protected]>。