版权 © 2000, 2001, 2002, 2003, 2004, 2005 The FreeBSD Documentation Project
这一章节介绍了安装一个新的 FreeBSD 发行版本的过程。 这些说明重点强调了获取 FreeBSD 6.1-RELEASE 发行版本并开始安装的过程。FreeBSD 使用手册的“安装 FreeBSD”一章提供了有关安装程序本身更深层次的信息, 包括一个全程截图的指南。
如果您正在从 FreeBSD 的前一个发行版本升级,请查看 第 3 节的升级说明。
可能在安装前要做的最重要的步骤就是阅读 FreeBSD 提供的各种各样的安装文档。 与 FreeBSD 这个发行版本相关的文档的 roadmap 可以在 README.TXT 中找到,这个文件通常放在和本文件相同的位置。 大部分文档,比如发行注记和硬件兼容性列表也可以在安装程序的 Documentation 菜单中查看。
注意如果您能接入 Internet 的话, FreeBSD FAQ 和 使用手册 的在线版本也可以在 FreeBSD 项目 Web 站点上找到。
这份文档集合可能看起来很吓人,但是阅读它们所花费的时间很可能会节省更多的时间。 熟悉可用的资源也有助于处理安装过程中的问题。
再好的计划有时也会出错, 所以如果您遇到麻烦请看一看 第 4 节, 包含了很多有价值的出错处理的信息。 在安装之前您也应该阅读升级过的 ERRATA.TXT 拷贝, 因为这会对您的特定发行版本的中间时期所报告的任何问题向您提出警告。
重要: 尽管 FreeBSD 会尽可能地避免偶然的数据丢失, 但是如果在安装过程中您做错了什么还是很可能会 清空您的整个硬盘。 请不要进入 FreeBSD 最后的安装菜单, 除非您事先已经对重要数据进行了充分的备份。
一旦您看到了初始的安装屏幕,不管用哪种方式, 您就可以跟随各种各样的菜单提示到处浏览了。如果您以前从未使用过 FreeBSD 安装程序,建议您阅读 Documentation 子菜单还有第一个菜单概括的 “Usage” 说明中的文档。
注意: 如果您感到迷惑,按 F1 键查看与指定部分相关的在线文档。
如果您以前从未安装过 FreeBSD,或者即使您安装过, 仍然强烈推荐使用“Standard”安装模式, 因为它确保您一路安装下来访问到了所有重要的要检查的条目。 如果您非常熟悉 FreeBSD 安装过程并 精确的 知道您想做什么,可以使用“Express”或者“Custom”安装选项。 如果您在升级一个现存的系统,使用“Upgrade”选项。
FreeBSD 安装程序支持直接使用软盘、DOS、磁带、CDROM、FTP、NFS 和 UFS 分区来作为安装介质。下面是从每种类型的介质安装的更深入的提示。
如果您只希望从本地 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.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” 之后您将得到相应的提示。
当从磁带安装时, 安装程序预期安装文件是 tar 到上面的, 因此把您感兴趣的安装包复制出来之后, 简单地使用 tar(1) 把它们放到磁带上就可以了:
# cd /where/you/have/your/dists # tar cvf /dev/sa0 dist1 .. dist2
当您进行安装时, 您应该确认临时目录 (将提示您选择它) 中有足够放下 完整的 磁带内容的空间。 由于磁带不支持随机访问, 这种方式需要很多临时存储。 您需要准备写到磁带上那样多的临时存储空间。
注意: 当开始安装时, 磁带应该在从软盘启动 之前 放进磁带机。 如果不这样做, 安装程序的 “探测” 操作可能会找不到它。
现在按照 第 1.3 节 的描述制作安装软盘并继续安装就可以了。
按照第一节的说明制作引导盘之后, 您可以使用三种不同的连接方式来继续安装过程: 串口连接、 并口连接, 或以太网。
SLIP 支持非常原始, 而且基本上限于硬连线的连接, 例如在两台计算机之间的串口电缆。 这类连接必须是直接连好的, 因为 SLIP 安装目前并不提供拨号能力。 如果您需要使用调制解调器来拨号或需要在连接之前进行其它交互, 则应使用 PPP 来代替它。
如果您使用 PPP, 一定要确认您手头有 Internet 服务提供商的 IP 地址和 DNS 信息, 因为您在安装的开始阶段需要它们。 您还需要知道自己的 IP 地址, 尽管 PPP 支持动态地址协商, 并能够直接从您的 ISP 获取这些信息, 如果他们支持这样做的话。
最后您还需要了解在您的 PPP 拨号服务上如何使用一些 “AT 命令” 来进行拨号, 因为 PPP 拨号程序只提供了非常简单的终端仿真程序。
如果有可用的到另一台 FreeBSD 或 Linux 机器的连接, 您也可以考虑通过 “laplink” 风格的并口电缆来安装。 通过并口连接的速度通常要比串口电缆 (通常最多 50k/秒) 要快的多, 因此能够让您更快地完成安装。 当使用点对点的并口电缆连接时通常并不需要 “真实的” IP 地址, 一般来说您可以在连接的两端使用 RFC 1918 风格的地址 (例如 10.0.0.1, 10.0.0.2, 等等)。
重要: 如果您的 PLIP 另一端使用的是 Linux, 则还需要在 TCP/IP 设置界面的“extra options for ifconfig” 中指定
link0
, 以便兼容 Linux 中略有不同的 PLIP 协议。
FreeBSD 支持绝大多数常见的以太网卡, 它支持的网卡列表作为 FreeBSD 硬件说明 (参见 Documentation 菜单中的 HARDWARE.TXT 或启动盘和 CDROM 的顶级目录)。 如果您使用的是某种被支持的 PCMCIA 网卡, 则还应确认它在笔记本启动 之前 就已经插好了。 不幸的是, FreeBSD 目前还不支持在安装过程中 “热插” PCMCIA 卡。
同时还需要知道您在局域网上的 IP 地址, 子网的 netmask
值和机器名。 您的系统管理员会告诉您在您的网络上所需要的值。 如果您想通过名字而不是 IP
地址来访问其它机器, 则还需要一个域名服务器, 而且可能还需要网关的地址 (如果使用 PPP,
则是您提供商的 IP 地址) 才能够访问它。 如果您打算通过 HTTP 代理来完成 FTP 安装,
您还需要代理服务器的地址。
如果您不知道这些问题的答案, 您可能需要 首先 联系系统管理员, 然后才能开始安装。 在已有网络上使用随便选择的 IP 地址和子网掩码几乎肯定无法正常工作, 而且您的管理员可能会给您上人生一课。
一旦您的网络连接能够使用, 就可以继续通过 NFS 或 FTP 来完成安装了。
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 消息,
通常是因为您没有启用这一特性导致的。
FTP 安装可以通过从任何包含足够新版的 FreeBSD 的镜像站点来完成。 安装过程中您可以从 FTP 站点菜单中选择遍布全球的几乎每一个官方的镜像站点来完成安装。
如果您正从某个没有在这里列出的 FTP 站点安装, 或您无法正确地配置域名解析服务器, 您也可以通过在菜单中选择 “URL” 来指定自己的 URL。 URL 可以包括一个域名或 IP 地址, 因此当没有域名解析服务器时, 您可以用类似下面的 URL 来完成安装:
ftp://216.66.64.162/pub/FreeBSD/releases/ia64/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 代理服务器的端口号。
典型的 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, 则应完整地阅读这份文档 (安装指引)。
如果您在尝试进行某种其他类型的安装, 或对于发布目录是如何组织的感到好奇, 请参考下面的说明以了解进一步的内容:
*.TXT 和 *.HTM 文件包含了文档 (举例来说, 这份文档可以在 INSTALL.TXT 和 INSTALL.HTM 中找到), 您应该在开始安装之前阅读它们。 *.TXT 文件是普通的文本文件, 而 *.HTM 文件则是 HTML 文件, 可以使用几乎任何一种 Web 浏览器来阅读。 某些发布可能还包其他格式的文档, 例如 PDF 或 PostScript。
docbook.css 是层次样式表 (CSS) 文件, 它会被 Web 浏览器用以完成 HTML 文档的排版。
base, catpages, crypto, dict, doc, games, info, manpages, proflibs, 以及 src 这些目录中包含了 FreeBSD 本身的发布版本组件, 它们被分割为更小的文件, 以便放进软盘中 (如果需要的话)。
compat1x, compat20, compat21, compat22, compat3x, 以及 compat4x 目录包含了用于与先前版本兼容的文件, 它们以单个的 gzip 压缩的 tar 文件的形式发布 - 在安装过程中或之后可以通过 install.sh 脚本来安装它们。
floppies/ 子目录中包含了安装用的软盘镜像; 关于它们的更多信息可以在 第 1.3 节 找到。
packages 和 ports 目录提供了 FreeBSD 的 Packages 和 Ports Collections。 Packages 可以从其目录中通过下面的命令安装:
#/stand/sysinstall configPackages
Packages 也可以通过将 packages/ 下的文件名交给 pkg_add(1) 命令来完成。
Ports Collection 可以通过与其他组件相同的方法来安装, 解压缩后它需要大约 190MB 的磁盘空间。 关于 ports collection 的更多资料可以在 http://www.FreeBSD.org/ports/ 或本地的 /usr/share/doc/handbook 找到, 当然, 后者的前提是您安装了 doc 发布。
最后, 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
这些说明描述了从一个旧版本的 FreeBSD 执行二进制升级的过程。
警告: 尽管 FreeBSD 升级过程尽力防止意外的数据丢失, 但是仍有很大可能这次安装会 擦除您的整个硬盘! 请不要接受最后的确认请求,除非您已经备份了所有重要的数据文件。
重要: 这些说明假定您正在使用您打算升级的 FreeBSD 版本提供的 sysinstall(8) 版本。使用一个不匹配的 sysinstall(8) 版本几乎总是会造成问题并且已知会让系统处于不可用状态。 在这方面最容易犯的错误就是使用现存的安装的旧的 sysinstall(8) 副本来升级 FreeBSD 到新的版本。 这是 绝不 推荐的。
警告: 现在还不支持从 FreeBSD 4-STABLE 到 FreeBSD 6.1-RELEASE 的二进制升级。FreeBSD 4-STABLE 中存在的一些文件会引起混乱, 但是却不能被二进制升级移除。一个著名的例子就是旧的 /usr/include/g++ 目录会引起 C++ 程序编译错误 (也可能没有影响)。
这些升级说明提供给那些从近来的 FreeBSD 6.1-STABLE snapshot 升级的用户。
升级过程用相应的最新的 FreeBSD release 取代用户选定的发行版本。 这个过程保护标准的系统配置文件数据, 还有用户数据、已安装的包和其它软件。
推荐正在考虑升级的管理员在着手升级之前完整阅读这一章节。 不这样做的后果很可能就是升级失败或者数据丢失。
发行版本的升级就是执行解压缩新版本组件覆盖当前版本。 属于旧的发行版本的文件不会被删除。
系统配置文件通过保留并恢复下列文件的当前版本来实现保护:
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/ 中所有文件要存放的位置。 在本地修改合并进入其它文件后,也可以从这个位置再找回它们。
这一节详细描述了升级过程。尤其关注那些和通常的安装有明显区别的部分。
进入 disklabel 编辑器会列出命名的磁盘文件系统设备。 在着手升级前,管理员应该记录一下设备名和相应的挂载点。 这些挂载点应该在这里输入。 不要 对任何文件系统设置“newfs flag”,因为这会引起数据丢失。
选择 distribution 的时候,没有强制的约束必须选择哪一个。 基本规则是,base distribution 对于升级来说应该选择,如果已经安装了联机手册 man distribution 也应该选择。 如果管理员希望添加额外的功能,在最初的安装之外其它 distribution 也可以选择。
那些对允许更复杂、诡异的升级方法感兴趣的人应该看看 FreeBSD 使用手册的 最前沿 一章。这个过程包括了从源代码重建整个 FreeBSD。 这依赖于可靠的网络连接、额外的磁盘空间和时间, 但是有网络以及其它更复杂安装的优势。 这基本和跟踪 -STABLE 或 -CURRENT 开发分支的过程是相同的。
/usr/src/UPDATING 包含了从源代码升级 FreeBSD 系统的重要信息。它列出了 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.flp 和 kernX.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)。
这份文档,以及其他与FreeBSD发行版本有关的文档,都可以在 http://www.FreeBSD.org/snapshots/下载。
在遇到关于FreeBSD的技术问题时,请首先阅读 文档 之后再考虑联系 <[email protected]>。
所有 FreeBSD 6.1-STABLE 的用户都应该订阅 <[email protected]> 邮件列表。
关于这份文档的任何问题,请致信 <[email protected]>。