diff options
Diffstat (limited to 'zh_CN.GB2312')
31 files changed, 1406 insertions, 3533 deletions
diff --git a/zh_CN.GB2312/books/handbook/Makefile b/zh_CN.GB2312/books/handbook/Makefile index 7196fe07b7..4e8f3252dd 100644 --- a/zh_CN.GB2312/books/handbook/Makefile +++ b/zh_CN.GB2312/books/handbook/Makefile @@ -3,7 +3,7 @@ # # Build the FreeBSD Handbook (Simplified Chinese). # -# Original revision: 1.99 +# Original revision: 1.100 # ------------------------------------------------------------------------ # @@ -177,7 +177,6 @@ SRCS+= mac/chapter.sgml SRCS+= mail/chapter.sgml SRCS+= mirrors/chapter.sgml SRCS+= multimedia/chapter.sgml -SRCS+= nanobsd/chapter.sgml SRCS+= network-servers/chapter.sgml SRCS+= pgpkeys/chapter.sgml SRCS+= ports/chapter.sgml diff --git a/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml b/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml index 90427b3422..f60fb5111f 100644 --- a/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Chinese Documentation Project - Original revision: 1.380 + Original revision: 1.381 $FreeBSD$ --> @@ -1165,7 +1165,7 @@ ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps</screen> 3Com Bluetooth PC 卡 3CRWB60-A 由 &man.ng.bt3c.4; 驱动程序支持。 基于 Serial 和 UART 的蓝牙设备由 &man.sio.4;、&man.ng.h4.4; 和 &man.hcseriald.8;。本节介绍 USB Bluetooth dongle - 的使用。在 &os; 5.0 及更新的系统里,都可以支持 Bluetooth。</para> + 的使用。</para> </sect2> <sect2> @@ -1762,8 +1762,7 @@ rfcomm_sppd[94692]: Starting on /dev/ttyp6...</screen> <title>选择网络接口卡</title> <para>一个网桥至少需要两块网卡才能运行。 - 不幸的是,并不是所有的网卡都能被 FreeBSD 4.0 - 支持用于桥接。阅读 &man.bridge.4; + 不幸的是,并不是所有的网卡都能被用于桥接。阅读 &man.bridge.4; 了解所支持网卡的细节。</para> <para>在继续之前要先安装并测试这两块网卡。</para> @@ -1941,8 +1940,7 @@ net.link.ether.bridge_ipfw=1</programlisting> 文件系统和一个共享的只读<filename>/usr</filename>。</para> <para>root 文件系统是一份标准的 FreeBSD 根文件系统 (一般是服务器的),只是一些配置文件被特定于无盘操作的配置文件覆盖。</para> - <para>root 文件系统必须可写的部分被 &man.mfs.8; - (&os; 4.X) 或 &man.md.4; (&os; 5.X) 文件系统覆盖。 + <para>root 文件系统必须可写的部分被 &man.md.4; 文件系统覆盖。 任何的改写在重启后都会丢失。</para> </listitem> <listitem> @@ -1956,9 +1954,8 @@ net.link.ether.bridge_ipfw=1</programlisting> 它应该处于网络的受保护区域并不被其它主机信任。</para> </caution> - <para>这部分所有的信息都已使用 &os;releases 4.9-RELEASE 和 - 5.2.1-RELEASE 测试过。文本主是使用 4.X 格式组织的。为适应 - 5.X 的改变,都有注释被加入。</para> + <para>这部分所有的信息均在 + 5.2.1-RELEASE 上测试过。</para> <sect2> <title>背景信息</title> @@ -2031,14 +2028,12 @@ net.link.ether.bridge_ipfw=1</programlisting> </itemizedlist> <para><acronym>PXE</acronym> 和 - <application>Etherboot</application> 在 4.X - 系统里工作得一样的好。因为 5.X 内核通常让 &man.loader.8; - 做了更多的事情,<acronym>PXE</acronym> 比较适合 5.X 系统。</para> - - <para>如果您的 <acronym>BIOS</acronym> 和网卡支持 - <acronym>PXE</acronym>,您应该使用它。当然, - 使用 <application>Etherboot</application> 依然可以启动 - 5.X 系统。</para> + <application>Etherboot</application> 工作得一样的好。 + 不过, 因为一般情况下内核希望 &man.loader.8; + 做了更多的事情, <acronym>PXE</acronym> 是推荐的方法。</para> + + <para>如果您的 <acronym>BIOS</acronym> 和网卡都支持 + <acronym>PXE</acronym>, 就应该使用它。</para> </listitem> <listitem> @@ -2063,7 +2058,7 @@ net.link.ether.bridge_ipfw=1</programlisting> 服务器可以回应 BOOTP 和 <acronym>DHCP</acronym> 的请求。</para> - <para>对于4.9的发行版,<application>ISC DHCP 3.0</application> + <para><application>ISC DHCP 3.0</application> 并不属于基本系统。首先您需要安装 <filename role="package">net/isc-dhcp3-server</filename> port 或相应的<quote>包</quote>。</para> @@ -2230,16 +2225,14 @@ margaux:ha=0123456789ab:tc=.def100</programlisting> <para>默认地,&man.pxeboot.8; 装载器通过 <acronym>NFS</acronym> 装载内核。它可以编译来使用 <acronym>TFTP</acronym>——通过在文件 <filename>/etc/make.conf</filename> 里指定 - <literal>LOADER_TFTP_SUPPORT</literal> 选项来代替。查看 - <filename>/etc/defaults/make.conf</filename> 里的注释 - (或5.X系统的 <filename>/usr/share/examples/etc/make.conf</filename>) - 可以获得指导。</para> + <literal>LOADER_TFTP_SUPPORT</literal> 选项来代替。 请参见 + <filename>/usr/share/examples/etc/make.conf</filename> 里的注释 + 了解如何配置。</para> - <para>其它有两个未说明的 <filename>make.conf</filename> + <para>除此之外还有两个未说明的 <filename>make.conf</filename> 选项——它可能对于设置一系列控制台无盘机器会有用: <literal>BOOT_PXELDR_PROBE_KEYBOARD</literal>和 - <literal>BOOT_PXELDR_ALWAYS_SERIAL</literal> - (后者只存在于 &os; 5.X 里)。</para> + <literal>BOOT_PXELDR_ALWAYS_SERIAL</literal>。</para> <para>当机器启动里,要使用 <acronym>PXE</acronym>, 通常需要选择 <literal>Boot from network</literal> @@ -2281,8 +2274,10 @@ margaux:ha=0123456789ab:tc=.def100</programlisting> </note> </step> <step> - <para>让 <application>inetd</application> 重读它的配置文件:</para> - <screen>&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput></screen> + <para>让 <application>inetd</application> 重读其配置文件。 + 要正确执行这个命令, 在 <filename>/etc/rc.conf</filename> 文件中必须加入 + <option>inetd_enable="YES"</option>:</para> + <screen>&prompt.root; <userinput>/etc/rc.d/inetd restart</userinput></screen> </step> </procedure> @@ -2311,7 +2306,7 @@ margaux:ha=0123456789ab:tc=.def100</programlisting> 重读它的配置文件。如果您真的需要启用第一步的 <filename>/etc/rc.conf</filename> 里 <acronym>NFS</acronym>, 您可能就要重启系统了。</para> - <screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen> + <screen>&prompt.root; <userinput>/etc/rc.d/mountd restart</userinput></screen> </step> </procedure> @@ -2336,8 +2331,7 @@ options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info <para>您可能也想使用 <literal>BOOTP_NFSV3</literal>, <literal>BOOT_COMPAT</literal> 和 <literal>BOOTP_WIRED_TO</literal> - (参考 4.X 里的 <filename>LINT</filename> 或5.X里的 - <filename>NOTES</filename>)。</para> + (参考 <filename>NOTES</filename> 文件)。</para> <para>这些名字具有历史性,并且有些有些误导, 因为它们实际上启用了内核里 (它可能强制限制 BOOTP 或 @@ -2361,7 +2355,7 @@ options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info <note> <para>为了使带有 <application>Etherboot</application> - 的 5.X 内核可引导,就需要把设备提示 (device hint) + 的内核可引导,就需要把设备提示 (device hint) 编译进去。通常要在配置文件(查看 <filename>NOTES</filename> 配置注释文件) 里设置下列选项:</para> @@ -2377,47 +2371,20 @@ options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info <secondary>无盘操作</secondary> </indexterm> - <para>您需要为无盘工作站建立根文件系统,位置列在 + <para>您需要为无盘工作站建立根文件系统, 它就是 <filename>dhcpd.conf</filename> 里的 <literal>root-path</literal> - 里边。下面部分描述了要这样做的两种方法:</para> - - <sect4> - <title>使用 <filename>clone_root</filename> 脚本</title> - - <para>这是建立根文件系统最快的方法,只是目前只在 &os;4.X - 里支持。这个 shell 脚本位于 - <filename>/usr/share/examples/diskless/clone_root</filename> - 并且需要定制,至少需要调整将会被建立文件系统的地方 - (<literal>DEST</literal> 可变)。</para> - - <para>参考用于指导的脚本的最前边的注释。 - 它们说明了如何建立一个基本文件系统, - 并且如果根据特定版本的无盘工作站、子网或个人工作站选择性地忽略。 - 它们也为无盘的 <filename>/etc/fstab</filename> 的 - <filename>/etc/rc.conf</filename> 文件给出了例子。</para> - - <para>在 <filename>/usr/share/examples/diskless</filename> 里的 - <filename>README</filename> 文件包含了许多有趣的背景信息, - 但是,他们同 <filename>diskless</filename> 目录里的其它例子一起, - 实际上说明了一种配置方法——与被 <filename>clone_root</filename> - 和 <filename role="directory">/etc</filename> - 里的系统启动脚本使用的完全不同,这个有点迷惑人。 - 使用它们只用做参考, - 除非您使用它们所描述的方法——这种情况下您需要定制 - <filename>rc</filename> 脚本。</para> - </sect4> + 所指定的目录。</para> <sect4> - <title>使用标准的 <command>make world</command> 程序</title> + <title>使用 <command>make world</command> 来复制根文件系统</title> - <para>这种方法可以应用到 &os; 4.X 或 5.X, - 而且会安装一个彻底干净的系统(不仅仅是根文件系统)到 - <envar>DESTDIR</envar>。您需要做的就是简单地执行下面的脚本:</para> + <para>这种方法可以迅速安装一个彻底干净的系统 (不仅仅是根文件系统) 到 + <envar>DESTDIR</envar>。 您要做的就是简单地执行下面的脚本:</para> <programlisting>#!/bin/sh export DESTDIR=/data/misc/diskless mkdir -p ${DESTDIR} -cd /usr/src; make world && make kernel +cd /usr/src; make buildworld && make buildkernel cd /usr/src/etc; make distribution</programlisting> <para>一旦完成,您可能需要定制 <filename>/etc/rc.conf</filename> @@ -2430,70 +2397,10 @@ cd /usr/src/etc; make distribution</programlisting> <title>配置 swap(交换)</title> <para>如果需要,位于服务器上的交换文件可以通过 - <acronym>NFS</acronym> 来访问。完成它的一种普遍使用的方法在 - 5.X 的发行版里已不再继续(使用)。</para> - - <sect4> - <title><acronym>NFS</acronym>与 &os; 4.X 之间的 Swap(交换)</title> - - <para>交换文件的位置和大小可以使用BOOTP/<acronym>DHCP</acronym> - 来指定,&os; 指定的选项是 128 和 129。用于 - <application>ISC DHCP 3.0</application> 或 - <application>bootpd</application>的配置文件例子如下:</para> - - <procedure><step><para>把下边几行加到 <filename>dhcpd.conf</filename> 里:</para> - <programlisting> -# Global section -option swap-path code 128 = string; -option swap-size code 129 = integer 32; - -host margaux { - ... # Standard lines, see above - option swap-path <replaceable>"192.168.4.4:/netswapvolume/netswap"</replaceable>; - option swap-size <replaceable>64000</replaceable>; -} - </programlisting> - - <para><literal>swap-path</literal> 指的是存放交换文件存的路径。 - 每个文件会命名为 - <filename>swap.<replaceable>client-ip</replaceable></filename>。</para> - - <para>旧版的 <application>dhcpd</application> 使用的风格是 - <literal>option option-128 "...</literal>,这个已不在支持。</para> - <para><filename>/etc/bootptab</filename> 会使用下面的格式代替:</para> - - <programlisting>T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00</programlisting> - - <note><para>在 <filename>/etc/bootptab</filename> 里, - 交换大小必须以十六进制表示。</para> - </note> - </step> - - <step> - <para>在 <acronym>NFS</acronym> 交换文件服务器上,建立交换文件:</para> - <screen> -&prompt.root; <userinput>mkdir <replaceable>/netswapvolume/netswap</replaceable></userinput> -&prompt.root; <userinput>cd <replaceable>/netswapvolume/netswap</replaceable></userinput> -&prompt.root; <userinput>dd if=/dev/zero bs=1024 count=<replaceable>64000</replaceable> of=swap.<replaceable>192.168.4.6</replaceable></userinput> -&prompt.root; <userinput>chmod 0600 swap.<replaceable>192.168.4.6</replaceable></userinput> - </screen> - <para><replaceable>192.168.4.6</replaceable> 是无盘客户端的 IP 地址。</para> - </step> - - <step> - <para>在 <acronym>NFS</acronym> 交换文件服务器上, - 增加下面几行到 <filename>/etc/exports</filename>:</para> - <programlisting> -<replaceable>/netswapvolume</replaceable> -maproot=0:10 -alldirs <replaceable>margaux corbieres</replaceable> - </programlisting> - <para>然后让 <application>mountd</application> - 重读 <filename>exports</filename>文件,同上。</para> - </step> - </procedure> - </sect4> + <acronym>NFS</acronym> 来访问。</para> <sect4> - <title><acronym>NFS</acronym> 与 &os; &os 5.X 之间的 Swap(交换)</title> + <title><acronym>NFS</acronym> 交换区</title> <para>内核并不支持在引导时启用 <acronym>NFS</acronym> 交换区。 交换区必须通过启动脚本启用, 其过程是挂接一个可写的文件系统, @@ -2533,15 +2440,13 @@ host margaux { FreeBSD,您须要在 FreeBSD 机器上建立根文件系统, 然后把它复制到它的目的地,使用的命令可以是 <command>tar</command> 或 <command>cpio</command>。</para> + <para>在这种情况下,有时对于 <filename>/dev</filename> 里的一些特殊的文件会有问题,原因就是不同的 <quote>最大/最小</quote>整数大小。 一种解决的方法就是从非 FreeBSD 服务里导出一个目录, - 并把它载入 FreeBSD 到机子上,然后在 FreeBSD 机子上执行 - <command>MAKEDEV</command> 来建立正确的设备条目 - (FreeBSD 5.0及新版使用 &man.devfs.5; - 来为用户透明地分派设备节点,在这些版本上执行 - <command>MAKEDEV</command> 是毫无意义的)。</para> + 并把它载入 FreeBSD 到机子上, 并使用 &man.devfs.5; + 来为用户透明地分派设备节点。</para> </sect4> @@ -2609,9 +2514,9 @@ host margaux { </indexterm> <para>FreeBSD 的 ISDN 工具通过被动卡 - (passive card) 仅支持 DSS1/Q.931(或 Euro-ISDN) 标准。启动 - FreeBSD 4.4,有些主动卡 (active card) 也被支持, - 这时它也支持其它发信协议;包括有最先支持的 + (passive card) 仅支持 DSS1/Q.931(或 Euro-ISDN) 标准。 + 此外也支持一些 active card, 它们的固件也支持其它信号协议, + 这其中包括最先得到支持的 <quote>Primary Rate (PRI) ISDN</quote>卡。</para> <para><application>isdn4bsd</application> 软件允许连接到其它 @@ -3216,13 +3121,8 @@ redirect_port tcp 192.168.0.3:80 80</programlisting> lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port</screen> - <para>并口必须是一个中断驱动的端口,在 &os; 4.X - 里,您的内核配置文件应该有一行和下面的差不多:</para> - - <programlisting>device ppc0 at isa? irq 7</programlisting> - - <para>在 &os; 5.X 中, - <filename>/boot/device.hints</filename> 文件中应包含下面的行:</para> + <para>并口必须是一个中断驱动的端口, 您应在 + <filename>/boot/device.hints</filename> 文件中配置:</para> <programlisting>hint.ppc.0.at="isa" hint.ppc.0.irq="7"</programlisting> diff --git a/zh_CN.GB2312/books/handbook/basics/chapter.sgml b/zh_CN.GB2312/books/handbook/basics/chapter.sgml index d849448125..3f3fc995e6 100644 --- a/zh_CN.GB2312/books/handbook/basics/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/basics/chapter.sgml @@ -132,12 +132,12 @@ login:</screen> 这个介绍换句话来说就是一个系统可容纳许多不同的用户, 谁都可以同时在单一结构下运行大量的程序。</para> - <para>每一个多用户系统都必须在某方面去区别<quote>user</quote>, - 在FreeBSD里 (以及 类-&unix; 操作系统),完成这方面工作是有必要的, - 每位使用者在运行程之前都必须<quote>登录</quote>, - 每位用户都有他的用户名 (<quote>username</quote>) 和密码 - (<quote>password</quote>)。 - FreeBSD 会在用户进入之前作出两次询问。</para> + <para>每一个多用户系统都必须在某方面去区分 <quote>user</quote>, + 在 FreeBSD 里 (以及 类-&unix; 操作系统), 完成这方面工作是有必要的, + 因而, 每位使用者在运行程序之前都必须首先 <quote>登录</quote>, + 而每位用户都有与之对应的用户名 (<quote>username</quote>) 和密码 + (<quote>password</quote>)。 FreeBSD + 会在用户进入之前作出询问这两项信息。</para> <indexterm><primary>启动脚本</primary></indexterm> <para>当 FreeBSD 引导并运行完启动脚本之后, diff --git a/zh_CN.GB2312/books/handbook/bibliography/chapter.sgml b/zh_CN.GB2312/books/handbook/bibliography/chapter.sgml index b524eed678..549cb88fe2 100644 --- a/zh_CN.GB2312/books/handbook/bibliography/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/bibliography/chapter.sgml @@ -1,7 +1,7 @@ <!-- The FreeBSD Chinese Documentation Project - Original Revision: 1.76 + Original Revision: 1.77 $FreeBSD$ --> @@ -353,9 +353,18 @@ </listitem> <listitem> - <para>Stevens, W. Richard. <emphasis>Advanced Programming in the UNIX - Environment</emphasis>. Reading, Mass. : Addison-Wesley, 1992. - ISBN 0-201-56317-7</para> + <para>Spinellis, Diomidis. <ulink + url="http://www.spinellis.gr/codequality/"><emphasis>Code + Quality: The Open Source Perspective</emphasis></ulink>. + Addison-Wesley, 2006. ISBN 0-321-16607-8</para> + </listitem> + + <listitem> + <para>Stevens, W. Richard and Stephen A. Rago. + <emphasis>Advanced Programming in the UNIX + Environment</emphasis>. 2nd Ed. + Reading, Mass. : Addison-Wesley, 2005. + ISBN 0-201-43307-9</para> </listitem> <listitem> diff --git a/zh_CN.GB2312/books/handbook/book.sgml b/zh_CN.GB2312/books/handbook/book.sgml index 7fb4a335a2..c488b67e96 100644 --- a/zh_CN.GB2312/books/handbook/book.sgml +++ b/zh_CN.GB2312/books/handbook/book.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Documentation Project - Original Revision: 1.165 + Original Revision: 1.166 $FreeBSD$ --> @@ -40,7 +40,6 @@ <!ENTITY % chap.network-servers "IGNORE"> <!ENTITY % chap.mail "IGNORE"> <!ENTITY % chap.cutting-edge "IGNORE"> -<!ENTITY % chap.nanobsd "IGNORE"> <!ENTITY % chap.linuxemu "IGNORE"> <!ENTITY % chap.mirrors "IGNORE"> <!ENTITY % chap.bibliography "IGNORE"> @@ -254,7 +253,6 @@ <![ %chap.vinum; [ &chap.vinum; ]]> <![ %chap.l10n; [ &chap.l10n; ]]> <![ %chap.cutting-edge; [ &chap.cutting-edge; ]]> - <![ %chap.nanobsd; [ &chap.nanobsd; ]]> </part> <part id="network-communication"> diff --git a/zh_CN.GB2312/books/handbook/boot/chapter.sgml b/zh_CN.GB2312/books/handbook/boot/chapter.sgml index 8357017f57..7ecc88fa09 100644 --- a/zh_CN.GB2312/books/handbook/boot/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/boot/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Chinese (Simplified) Project - Original Revision: 1.64 + Original Revision: 1.65 $FreeBSD$ --> @@ -188,7 +188,7 @@ label=FreeBSD</programlisting> <para>概念上,第一,第二阶段同属于一个程序,处于磁盘的相同区域。但由于空间限制, 它们被分为两部分。可是您总是会一起安装它们。它们由安装器或 - <application>disklabel</application>(见下文)复制自被组合而成的 + <application>bsdlabel</application>(见下文)复制自被组合而成的 <filename>/boot/boot</filename>。</para> <para>它们位于文件系统外,引导分区的第一轨道,从第一扇区开始。在这里<link @@ -197,7 +197,7 @@ label=FreeBSD</programlisting> 所使用的扇区数可由<filename>/boot/boot</filename>的大小确定。</para> <para><filename>boot1</filename> 非常简单,因为它再多也只能有 512 字节, - 只能识别储存着分区信息的 <firstterm>disklabel</firstterm>, + 只能识别储存着分区信息的 <firstterm>bsdlabel</firstterm>, 及寻找执行 <filename>boot2</filename>。</para> <para><filename>boot2</filename> 稍微有点加强,能够理解 FreeBSD @@ -218,8 +218,9 @@ boot:</screen> <para>如果您要更改已安装的 <filename>boot1</filename> 和 <filename>boot2</filename>,请使用命令 - &man.disklabel.8;。</para> - <screen>&prompt.root; <userinput>disklabel -B <replaceable>diskslice</replaceable></userinput></screen> + &man.bsdlabel.8;。</para> + + <screen>&prompt.root; <userinput>bsdlabel -B <replaceable>diskslice</replaceable></userinput></screen> <para><replaceable>diskslice</replaceable> 是用于引导的磁盘和分区, 比如 <devicename>ad0s1</devicename> @@ -228,7 +229,7 @@ boot:</screen> <warning> <title>dangerously dedicated</title> - <para>如果您在 &man.disklabel.8; 命令中只使用了磁盘名,比如 + <para>如果您在 &man.bsdlabel.8; 命令中只使用了磁盘名,比如 <devicename>ad0</devicename>,就会破坏磁盘上的所有分区。 这当然不是您所希望的,所以在按下 <keycap>回车</keycap> 之前 一定要对命令进行多次确认。</para> @@ -700,9 +701,8 @@ console none unknown off insecure</programlisting> 请参看它们的联机手册以获得更多的信息。</para> <note> - <para>电源管理需要支持,在 FreeBSD 5.X 中要求内核支持 - &man.acpi.4; 或以模块加载,在 FreeBSD 4.X 中需要 - &man.apm.4; 的支持。</para> + <para>电源管理需要支持, 这要求内核支持 + &man.acpi.4; 或以模块形式加载它。</para> </note> </sect1> diff --git a/zh_CN.GB2312/books/handbook/chapters.ent b/zh_CN.GB2312/books/handbook/chapters.ent index aa39eca9ce..75ffe54257 100644 --- a/zh_CN.GB2312/books/handbook/chapters.ent +++ b/zh_CN.GB2312/books/handbook/chapters.ent @@ -6,7 +6,7 @@ Chapters should be listed in the order in which they are referenced. - Original revision: 1.34 + Original revision: 1.35 $FreeBSD$ --> @@ -38,7 +38,6 @@ <!ENTITY chap.vinum SYSTEM "vinum/chapter.sgml"> <!ENTITY chap.l10n SYSTEM "l10n/chapter.sgml"> <!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml"> -<!ENTITY chap.nanobsd SYSTEM "nanobsd/chapter.sgml"> <!-- Part four --> <!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.sgml"> diff --git a/zh_CN.GB2312/books/handbook/config/chapter.sgml b/zh_CN.GB2312/books/handbook/config/chapter.sgml index 03e139a971..8325c2a9a4 100644 --- a/zh_CN.GB2312/books/handbook/config/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/config/chapter.sgml @@ -1,7 +1,7 @@ <!-- The FreeBSD Chinese Documentation Project - Original Revision: 1.216 + Original Revision: 1.217 $FreeBSD$ --> @@ -104,7 +104,7 @@ <sect3> <title>基本分区</title> - <para>当使用 &man.disklabel.8; 或者 &man.sysinstall.8; + <para>当使用 &man.bsdlabel.8; 或者 &man.sysinstall.8; 来分割您的文件系统的时候, 要记住硬盘驱动器外磁道传输数据要比从内磁道传输数据快。 因此应该将小的和经常访问的文件系统放在驱动器靠外的位置, @@ -750,16 +750,7 @@ sshd is running as pid 433.</screen> 联机手册将提供关于所支持的硬件更详细的信息, 甚至还包括可能发生的问题。</para> - <note> - <para><filename>NOTES</filename> 在 - &os; 4.X 上并不存在。 您需要查看 <filename>LINT</filename> - 来了解关于网卡的信息。 参见 - <xref linkend="kernelconfig-config"> - 以了解关于 <filename>NOTES</filename> 和 - <filename>LINT</filename> 的进一步信息。</para> - </note> - - <para>如果您有一个普通的网卡,大多数时候您不需要为驱动浪费精力。 + <para>如果您的网卡很常见的话, 大多数时候您不需要为驱动浪费精力。 常用的网卡在 <filename>GENERIC</filename> 内核中已经支持了, 所以您的网卡在启动时就会显示出来,像是:</para> @@ -1542,8 +1533,8 @@ device_probe_and_attach: cbb0 attach returned 12</screen> 不要盲目的把它设置太高!高的数值会导致同时发生的读操作的迟延。</para> <para>sysctl 中还有许多与 buffer cache 和 VM页面 cache - 有关的值, 一般不推荐修改它们。 从 &os; 4.3 - 开始,虚拟内存系统已经能够很好地进行自动调整了。</para> + 有关的值, 一般不推荐修改它们。 + 虚拟内存系统已经能够很好地进行自动调整了。</para> </sect3> <sect3> @@ -1632,11 +1623,8 @@ device_probe_and_attach: cbb0 attach returned 12</screen> <para>在文件系统被挂载之后不能用 &man.tunefs.8; 来修改。打开 Soft Updates 的最佳时机是在单用户模式下任何分区被被挂载前。</para> - <note><para>像 &os; 4.5,在文件系统创建时也可以打开 - Soft Updates,通过 &man.newfs.8; 的 <literal>-U</literal> 选项。</para></note> - <para> - Soft Updates 彻底的改善了数据描述(meta-data)的性能, + Soft Updates 极大地改善了元数据修改的性能, 主要是文件创建和删除,通过内存缓存。我们建议您在所有的文件系统上使用 Soft Updates。应该知道 Soft Updates 的两点:首先, Soft Updates 保证了崩溃后的文件系统完整性,但是很可能有几秒钟 (甚至一分钟!) @@ -1776,15 +1764,14 @@ device_probe_and_attach: cbb0 attach returned 12</screen> 尽管并不会真的有 256 个用户同时连接一台生产服务器, 但对于高负载的 web 服务器而言, 却可能需要与之类似的资源。</para> - <para>从 &os; 4.5 开始, 如果您明确地将 + <para>如果您明确地将 <literal>maxusers</literal> 设置为 <literal>0</literal>, 则系统会自动地根据硬件配置来确定这个值。<footnote> <para>自动调整算法会将 <literal>maxusers</literal> 设置为与主存的数量一样, 或者取其下限 32 或上限 384。</para> </footnote>。 在 &os; 5.X 和更高版本中, <literal>maxusers</literal> - 如果不指定的话, 就会取默认值 <literal>0</literal>。 - 如果您正使用的是 &os; 4.5 之前的版本, 或者希望自行管理 + 如果不指定的话, 就会取默认值 <literal>0</literal>。 如果希望自行管理 <literal>maxusers</literal>, 则应配置一个不低于 4 的值, 特别是使用 X Window System 或编译软件的时候。 这样做的原因是, <literal>maxusers</literal> @@ -1803,21 +1790,6 @@ device_probe_and_attach: cbb0 attach returned 12</screen> 看到令人担忧的 <errortype>proc table full</errortype> 错误, 就应该提高这一数值, 并重新联编内核。</para> - - <note> - <para><literal>maxusers</literal> 并 <emphasis>不能</emphasis> - 限制能够登录到您机器上的用户的实际数量。 - 它只是简单地将一系列内核数据表设置为合理的尺寸, - 使其与您系统上可能同时登录的用户的最大数量相适应。 - <emphasis>确实</emphasis> 能够限制同时进行的远程登录, - 以及 X 终端窗口数量的关键字是 <link - linkend="kernelconfig-ptys"><literal>pseudo-device pty - 16</literal></link>。 从 &os; 5.X 开始, - 您不再需要担心这个数字, 因为 &man.pty.4; 驱动具备了 - <quote>自动克隆</quote> 的能力; 只需在配置文件中配置 - <literal>device pty</literal> 就可以了。</para> - </note> - </sect3> <sect3> @@ -1943,18 +1915,6 @@ device_probe_and_attach: cbb0 attach returned 12</screen> <varname>net.inet.tcp.inflight.min</varname> (比如说, 3500) 来得到希望的效果。 减少这些参数的值, 只应作为最后不得已时的手段来使用。</para> - - <note> - <para>对于 4.X 和更早的 &os; 版本, - <literal>inflight</literal> sysctl 变量直接隶属于 - <varname>net.inet.tcp</varname>。 它们的名字是 - (按字母顺序): - <varname>net.inet.tcp.inflight_debug</varname>, - <varname>net.inet.tcp.inflight_enable</varname>, - <varname>net.inet.tcp.inflight_max</varname>, - <varname>net.inet.tcp.inflight_min</varname>, - <varname>net.inet.tcp.inflight_stab</varname>。</para> - </note> </sect3> </sect2> @@ -2017,11 +1977,9 @@ kern.maxvnodes: 100000</programlisting> <sect2 id="nfs-swap"> <title>通过 NFS 交换</title> - <para> - 通过 NFS 来交换只在您没有本地硬盘交换的时候被建议。在 - &os; 4.X 以前的版本中使用NFS交换速度很慢并且效率低下。4.0-RELEASE - 和更新的版本中他的速度和效率还是可以接受的。即使使用新版本的 - &os;,NFS 交换也会被可用的网络带宽限制并且增加 NFS 服务器的负担。</para> + <para>除非没有可以用做交换空间的本地硬盘时, + 否则不推荐您使用 NFS 来作为交换空间使用。 + NFS 交换会受到可用网络带宽限制并且增加 NFS 服务器的负担。</para> </sect2> <sect2 id="create-swapfile"> @@ -2033,51 +1991,7 @@ kern.maxvnodes: 100000</programlisting> 的 64MB 大小的文件。当然您也可以使用任何您所希望的名字。</para> <example> - <title>在 &os; 4.X 上创建一个交换文件</title> - - <orderedlist> - <listitem> - <para>确认您的内核配置包含了 vnode 驱动。 - 它不包含在最近版本的 <filename>GENERIC</filename>。</para> - - <programlisting>pseudo-device vn 1 #Vnode driver (turns a file into a device)</programlisting> - </listitem> - - <listitem> - <para>创建一个 vn-device 设备:</para> - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>sh MAKEDEV vn0</userinput></screen> - </listitem> - - <listitem> - <para>创建一个交换文件 (<filename>/usr/swap0</filename>):</para> - - <screen>&prompt.root; <userinput>dd if=/dev/zero of=/usr/swap0 bs=1024k count=64</userinput></screen> - </listitem> - - <listitem> - <para>赋予它(<filename>/usr/swap0</filename>)一个适当的权限:</para> - - <screen>&prompt.root; <userinput>chmod 0600 /usr/swap0</userinput></screen> - </listitem> - - <listitem> - <para>在 <filename>/etc/rc.conf</filename> 中启用交换文件:</para> - - <programlisting>swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.</programlisting> - </listitem> - - <listitem> - - <para>通过重新启动机器或下面的命令使交换文件立刻生效:</para> - - <screen>&prompt.root; <userinput>vnconfig -e /dev/vn0b /usr/swap0 swap</userinput></screen> - </listitem> - </orderedlist> - - </example> - <example> - <title>在 &os; 5.X 上创建一个交换文件:</title> + <title>在 &os; 中创建交换文件</title> <orderedlist> <listitem> @@ -2144,13 +2058,8 @@ kern.maxvnodes: 100000</programlisting> (并且可能提醒您)。 </para> - <para> - 在 &os; 使用手册的这一章节,我们将提供 <acronym>ACPI</acronym> - 全面的信息。参考资料会在末尾。<acronym>ACPI</acronym> 在 - &os; 5.X 及以上的操作系统中作为一个默认的内核模块被支持。对于 - &os; 4.9,<acronym>ACPI</acronym> 可以通过在内核配置文件中添加 - <literal>device acpica</literal> 并且重新编译内核来启用。 - </para> + <para>在 &os; 使用手册的这一章节,我们将提供 <acronym>ACPI</acronym> + 全面的信息。 参考资料会在末尾给出。</para> <sect2 id="acpi-intro"> <title>什么是 ACPI?</title> @@ -2168,8 +2077,8 @@ kern.maxvnodes: 100000</programlisting> <emphasis>操作系统控制的配置和电源管理(Operating System-directed configuration and Power Management)</emphasis>,也就是说, 它给操作系统(<acronym>OS</acronym>)提供了更多的控制和弹性。 - 现代操作系统<quote>延伸</quote>了当前即插即用接口(像是 &os;4.X - 中使用的 APM)的限制,在 <acronym>ACPI</acronym> 的介绍之前。 + 在引入 <acronym>ACPI</acronym> 之前, + 现代操作系统使得目前即插即用接口的局限性更加 <quote>凸现</quote> 出来。 <acronym>ACPI</acronym> 是 <acronym>APM(高级电源管理)</acronym> 的直接继承者。</para> </sect2> diff --git a/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml b/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml index 4f6ebf63b4..d6971dd646 100644 --- a/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.222 + Original Revision: 1.223 $FreeBSD$ --> @@ -516,7 +516,7 @@ 做贡献的都是人,偶尔也会犯错误。</para> <para>有时这些错误没什么危害,只是引起您的系统生成新的诊断警告。 - 有时是灾难性的,并导致您的系统不能惊动启动或破坏您的文件系统 + 有时是灾难性的,并导致您的系统不能启动或破坏您的文件系统 (甚至更糟)。</para> <para>如果出现了类似的问题, @@ -603,7 +603,7 @@ <para>检查 <filename>/usr/share/examples/etc/make.conf</filename> - (在 &os; 4.X 中叫做 <filename>/etc/defaults/make.conf</filename>) 以及 + 以及 <filename>/etc/make.conf</filename>。 第一个文件包含了一些默认的定义 – 它们中的绝大多数都注释掉了。 为了在重新编译系统时能够使用它们, @@ -612,10 +612,9 @@ <command>make</command> 的结果, 因此设置一些适合自己系统的选项是一个好习惯。</para> <para>一般的用户通常会从 <filename>/usr/share/examples/etc/make.conf</filename> - (或者 &os; 4.X 中的 <filename>/etc/defaults/make.conf</filename>) 复制 + 复制 <makevar>CFLAGS</makevar> 和 - <makevar>NO_PROFILE</makevar> (或者, 在 - &os; 5.X 和更早版本上, 是 <makevar>NOPROFILE</makevar>) 这样的设置到 + <makevar>NO_PROFILE</makevar> 这样的设置到 <filename>/etc/make.conf</filename> 中并令它们生效。</para> <para>请考虑其他的一些选项 (例如 <makevar>COPTFLAGS</makevar>、 @@ -706,7 +705,7 @@ <note> <para>如果您的 CMOS 时钟是设置为本地时间,而不是 GMT - (如果 &man.date.1; 命令输出不能显示正确的时间和地区也有确有其事), + (如果 &man.date.1; 命令输出不能显示正确的时间和地区也确有其事), 您可能也需要执行下边的命令:</para> <screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen> @@ -820,10 +819,7 @@ Script done, …</screen> 分支里第一次创建,然后在 &os.stable; 的 2.2.2 和 2.2.5 两个版本间,进行了大翻新),<maketarget>world</maketarget> target 已经分成了两个部分:<maketarget>buildworld</maketarget> 和 - <maketarget>installworld</maketarget>。 - 从 &os; 的 5.3 版开始, <maketarget>world</maketarget> target - 在默认时已经改为完全不动作, - 因为它事实上对于许多用户都具有相当的危险性。</para> + <maketarget>installworld</maketarget>。</para> <para>正如名字所暗示的,<maketarget>buildworld</maketarget> 在 <filename>/usr/obj</filename> 下边建立了一个全新的树,然后 @@ -963,7 +959,7 @@ Script done, …</screen> <para>如果在 <command>make buildworld</command> 的命令行指定了变量,您就必须在 <command>make installworld</command> 命令行里指定同样的变量。 - 对于其它的选项也不是必需的,如,<option>-j</option> + 对于其它的选项并不是必需的,如,<option>-j</option> 就不能同 <maketarget>installworld</maketarget> 一起使用。</para> <para>举例,您执行了:</para> @@ -1028,7 +1024,7 @@ Script done, …</screen> 知道我们希望保留我们当前的文件不改,并删除新的。 并不推荐这个选择,除非您没有更改当前文件的理由。任何时候在 &man.mergemaster.8; 提示符里输入 <keycap>?</keycap>,您就会得到帮助。 - 如果选择跳过文件,在其它文件处理完后再次进行。</para> + 如果选择跳过文件,将在其它文件处理完后再次进行。</para> <para><quote>选择安装未修改临时文件</quote>将会使新文件替换当前的。 对大部分未改的文件,这是个最好的选择。</para> @@ -1074,11 +1070,11 @@ Script done, …</screen> <screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen> <para><option>-R</option> 完成递归复制 - (设者注:即可以复制目录以下的所有内容),<option>-p</option> + (译者注:即可以复制目录以下的所有内容),<option>-p</option> 保留文件的时间、所属等等。</para> </warning> - <para>您需要建立的个虚目录 (a dummy set of directories ) + <para>您需要建立一个虚目录 (a dummy set of directories) 来安装新的 <filename>/etc</filename> 和其它文件。 <filename>/var/tmp/root</filename> 是个不错的选择, 除此之外,还有一些子目录是需要的。</para> @@ -1095,7 +1091,7 @@ Script done, …</screen> &prompt.root; <userinput>find -d . -type d | xargs rmdir 2>/dev/null</userinput></screen> <para>这样会删除所有的空目录。(标准的错误信息被重定向到了 - <filename>/dev/null</filename>,以防止关于非空目录的警告。</para> + <filename>/dev/null</filename>,以防止关于非空目录的警告。)</para> <para><filename>/var/tmp/root</filename> 现在包含了应放在 <filename>/</filename> 下某个位置的所有文件。 @@ -1193,10 +1189,10 @@ Script done, …</screen> <indexterm><primary>DEVFS</primary></indexterm> <para>如果您正在运行 FreeBSD 5.0 或更后的版本, 您可以安全地跳过这部分。这些版本使用了 - &man.devfs.5; 来透明地分配设备结点。</para> + &man.devfs.5; 来透明地分配设备节点。</para> </note> - <para>许多情况下,在有必要更新设备结点时,&man.mergemaster.8; + <para>许多情况下,在有必要更新设备节点时,&man.mergemaster.8; 工具就可以实现,并且可以自动地完成。 这里的说明用于怎样手工更新设备结点。</para> diff --git a/zh_CN.GB2312/books/handbook/disks/chapter.sgml b/zh_CN.GB2312/books/handbook/disks/chapter.sgml index d65e250cb2..fd8dc1d175 100644 --- a/zh_CN.GB2312/books/handbook/disks/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/disks/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.257 + Original Revision: 1.262 $FreeBSD$ --> @@ -77,31 +77,25 @@ </thead> <tbody> <row> - <entry>IDE hard drives</entry> + <entry>IDE 硬盘驱动器</entry> <entry><literal>ad</literal></entry> </row> <row> - <entry>IDE CDROM drives</entry> + <entry>IDE CDROM 驱动器</entry> <entry><literal>acd</literal></entry> </row> <row> - <entry>SCSI hard drives and USB Mass storage devices</entry> + <entry>SCSI 硬盘以及 USB 大容量存储设备</entry> <entry><literal>da</literal></entry> </row> <row> - <entry>SCSI CDROM drives</entry> + <entry>SCSI CDROM 驱动器</entry> <entry><literal>cd</literal></entry> </row> <row> - <entry>Assorted non-standard CDROM drives</entry> - <entry><literal>mcd</literal> for Mitsumi CD-ROM, - <literal>scd</literal> for Sony CD-ROM, - <literal>matcd</literal> for Matsushita/Panasonic CD-ROM - <footnote> - <para>&man.matcd.4; 驱动已经在 2002 年 10 月 5 日从 - FreeBSD 4.X 分支删去, FreeBSD 5.0 - 和之后的版本不再包含此驱动。</para> - </footnote> + <entry>各类非标准 CDROM 驱动器</entry> + <entry>用于 Mitsumi CD-ROM 的 <literal>mcd</literal> 以及用于 + Sony CD-ROM 驱动器的 <literal>scd</literal> </entry> </row> <row> @@ -154,15 +148,14 @@ </indexterm> <para>假设我们要给一台只有一个磁盘的机器增加一个新的 SCSI 磁盘。首先 - 需要关掉计算机,然后按操作规程来安装驱动器,控制器和驱动程序。由于 - 各厂家生产的产品各不相同,具体的安装细节不在此文档介绍之内。</para> + 需要关掉计算机,然后按操作规程来安装驱动器,控制器和驱动程序。由于 + 各厂家生产的产品各不相同,具体的安装细节不在此文档介绍之内。</para> <para>以 <username>root</username> 用户登录。安装完驱动后,检查一下 - <filename>/var/run/dmesg.boot</filename> 有没有找到新的磁盘。在我们 - 的例子中新增加的磁盘就是 <devicename>da1</devicename>,我们从 - <filename>/1</filename> 挂上它。 (如果您正添加一个 IDE 驱动器,在 - 4.0 版以前的系统里是 <devicename>wd1</devicename>,以后的版本的系 - 统里是 <devicename>ad1</devicename> )。</para> + <filename>/var/run/dmesg.boot</filename> 有没有找到新的磁盘。在我们 + 的例子中新增加的磁盘就是 <devicename>da1</devicename>,我们从 + <filename>/1</filename> 挂上它。 (如果您正添加 IDE 驱动器, + 则设备名应该是 <devicename>ad1</devicename>)。</para> <indexterm><primary> partitions</primary></indexterm> @@ -171,22 +164,21 @@ <primary><command>fdisk</command></primary> </indexterm> - <para>因为 FreeBSD 运行在 IBM-PC 兼容机上,它必须遵循 PC BIOS 分区 - 规范。这与传统的 BSD 分区是不同的。一个 PC 的磁盘最高只能有四个 BIOS - 主分区。如果磁盘只安装 FreeBSD 您可以使用 <emphasis>dedicated</emphasis> - 模式。另外, FreeBSD 必须安装在 PC BIOS 支持的分区内。FreeBSD 把分区叫作 - <emphasis>slices</emphasis> 这可能会把人搞糊涂。您也可以在只安装 - FreeBSD 的磁盘上使用 slices,也可以在安装有其它操作系统的磁盘上使用 - slices。这不会影响其它操作系统的 <command>fdisk</command> 分区工具。 - </para> + <para>因为 FreeBSD 运行在 IBM-PC 兼容机上,它必须遵循 PC BIOS 分区规范。 + 这与传统的 BSD 分区是不同的。一个 PC 的磁盘最高只能有四个 BIOS + 主分区。如果磁盘只安装 FreeBSD 您可以使用 <emphasis>dedicated</emphasis> + 模式。另外, FreeBSD 必须安装在 PC BIOS 支持的分区内。FreeBSD 把分区叫作 + <emphasis>slices</emphasis> 这可能会把人搞糊涂。您也可以在只安装 + FreeBSD 的磁盘上使用 slices,也可以在安装有其它操作系统的磁盘上使用 + slices。这不会影响其它操作系统的 <command>fdisk</command> 分区工具。</para> <para>在 slice 方式表示下,驱动器被添加到 <filename>/dev/da1s1e</filename>。 - 可以读作:SCSI 磁盘,编号为 1 (第二个SCSI 磁盘), slice 1 (PC BIOS 分区 1), + 可以读作:SCSI 磁盘,编号为 1 (第二个SCSI 磁盘), slice 1 (PC BIOS 分区 1), 的 BSD 分区 <filename>e</filename> 。在有些例子中,也可以简化为 <filename>/dev/da1e</filename>。</para> - <para>由于 &man.bsdlabel.8; (在 &os; 4.X 中叫做 &man.disklabel.8;) - 使用 32-位 的整数来表示扇区号, 因此在多数情况下它的表现力限于每个磁盘 + <para>由于 &man.bsdlabel.8; 使用 32-位 的整数来表示扇区号, + 因此在多数情况下它的表现力限于每个磁盘 2^32-1 个扇区或 2TB。 &man.fdisk.8; 格式允许的起始扇区号不能高于 2^32-1 而分区长度也不能大于 2^32-1, 通常情况下这限制了分区大小最大为 2TB 而磁盘大小则是 4TB。 &man.sunlabel.8; 格式的限制是每个分区 @@ -206,11 +198,10 @@ <step> <title>使用 <application>Sysinstall</application></title> - <para>您可以使用 <command>sysinstall</command> 命令 - (在 &os; 5.2 之前是 <command>/stand/sysinstall</command>), - 选择它的使用菜单来分区和标记一个新的磁盘。需要有 root 权限, - 或者直接使用 <username>root</username> 账户登录或者使用 - <command>su</command> 命令来切换到根用户。运行 + <para>您可以使用 <command>sysinstall</command> + 命令的菜单来分区和标记一个新的磁盘。 这一操作需要有 root 权限, + 您可以直接使用 <username>root</username> 账户登录或者使用 + <command>su</command> 命令来切换到 root 用户。运行 <command>sysinstall</command> ,然后选择 <literal>Configure</literal> 菜单。在 <literal>FreeBSD Configuration Menu</literal> 下,上下滚动, @@ -279,15 +270,15 @@ <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/da1 bs=1k count=1</userinput> &prompt.root; <userinput>fdisk -BI da1</userinput> #初始化新磁盘 -&prompt.root; <userinput>disklabel -B -w -r da1s1 auto</userinput> #加上标签 -&prompt.root; <userinput>disklabel -e da1s1</userinput> # 现在编辑您刚才创建的磁盘分区 +&prompt.root; <userinput>bsdlabel -B -w -r da1s1 auto</userinput> #加上标签 +&prompt.root; <userinput>bsdlabel -e da1s1</userinput> # 现在编辑您刚才创建的磁盘分区 &prompt.root; <userinput>mkdir -p /1</userinput> &prompt.root; <userinput>newfs /dev/da1s1e</userinput> # 为您创建的每个分区重复这个操作 &prompt.root; <userinput>mount /dev/da1s1e /1</userinput> # 挂上分区 &prompt.root; <userinput>vi /etc/fstab</userinput> # 完成之后,添加合适的记录到您的 <filename>/etc/fstab</filename>文件。</screen> - <para>如果有一个 IDE 磁盘,记得要用 <filename>ad</filename> - 来替换 <filename>da</filename>,4.X 以前的系统要用 <filename>wd</filename>。</para> + <para>如果有一个 IDE 磁盘,记得要用 <filename>ad</filename> 替换前面的 + <filename>da</filename>。</para> </sect3> <sect3> @@ -299,8 +290,8 @@ 它不识别找到的 IBM &os2 的 <quote>appropriate</quote> 分区。</para> <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/da1 bs=1k count=1</userinput> -&prompt.root; <userinput>disklabel -Brw da1 auto</userinput> -&prompt.root; <userinput>disklabel -e da1</userinput> # 创建 `e' 分区 +&prompt.root; <userinput>bsdlabel -Brw da1 auto</userinput> +&prompt.root; <userinput>bsdlabel -e da1</userinput> # 创建 `e' 分区 &prompt.root; <userinput>newfs -d0 /dev/da1e</userinput> &prompt.root; <userinput>mkdir -p /1</userinput> &prompt.root; <userinput>vi /etc/fstab</userinput> # 为 /dev/da1e添加一个记录 @@ -309,17 +300,12 @@ <para>另一种方法:</para> <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/da1 count=2</userinput> -&prompt.root; <userinput>disklabel /dev/da1 | disklabel -BrR da1 /dev/stdin</userinput> +&prompt.root; <userinput>bsdlabel /dev/da1 | bsdlabel -BrR da1 /dev/stdin</userinput> &prompt.root; <userinput>newfs /dev/da1e</userinput> &prompt.root; <userinput>mkdir -p /1</userinput> &prompt.root; <userinput>vi /etc/fstab</userinput> # 为 /dev/da1e添加一个记录 &prompt.root; <userinput>mount /1</userinput></screen> - <note><para>从 &os; 5.1-RELEASE 版本开始, &man.bsdlabel.8; 程序代替了 - 老版本的 &man.disklabel.8; 程序。&man.bsdlabel.8; 中大量过时的选项 - 和参数也被取消。在上面的例子中选项 <option>-r</option> 可以使用 - &man.bsdlabel.8;程序来删除。更多的信息,请参考 &man.bsdlabel.8; 联机手册。 - </para></note> </sect3> </sect2> </sect1> @@ -401,38 +387,24 @@ ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33</programlist 连接起来。要使用 &man.ccd.4;,您需要在内核中配置 &man.ccd.4; 支持选项。把这行加入到内核配置文件中,然后重建内核:</para> - <programlisting>pseudo-device ccd 4</programlisting> - - <para>在 5.X 和以后的版本中,您必须使用下面的行来代替:</para> - <programlisting>device ccd</programlisting> - <note><para>在 FreeBSD 5.X 里,不必指定一系统的 &man.ccd.4; 设备, - &man.ccd.4; 设备将自动按需要创建新的 — 设备。</para></note> + <para>对 &man.ccd.4; 的支持也可以内核模块的形式载入。</para> - <para>&man.ccd.4; 在FreeBSD 3.0 或以后的版本中也可以作为一个内核模块 - 来加载</para> + <para>要安装 &man.ccd.4;, 首先需要使用 &man.bsdlabel.8; 来编辑硬盘:</para> - <para>要安装 &man.ccd.4;, 首先需要使用 &man.disklabel.8; 来编辑硬盘:</para> + <programlisting>bsdlabel -r -w ad1 auto +bsdlabel -r -w ad2 auto +bsdlabel -r -w ad3 auto</programlisting> - <programlisting>disklabel -r -w ad1 auto -disklabel -r -w ad2 auto -disklabel -r -w ad3 auto</programlisting> + <para>此处将整个硬盘创建为 <devicename>ad1c</devicename>, <devicename>ad2c</devicename> + 和 <devicename>ad3c</devicename>。</para> - <para>这儿把整个硬盘创建成 <devicename>ad1c</devicename>, <devicename>ad2c</devicename> - 和 <devicename>ad3c</devicename> 。</para> - - <note><para>从 &os; 5.1-RELEASE 开始, &man.bsdlabel.8; 程序代替 - 了老版本的 &man.disklabel.8; 程序。&man.bsdlabel.8; 中大量过时的选项 - 和参数也被取消; 在上面的例子中,选项 <option>-r</option> 应该被删掉。 - 更的信息可以参考 &man.bsdlabel.8; 手册。</para></note> - - <para>下一步是改变 disklable 的类型。也可以使用 &man.disklabel.8; 来编辑: - </para> + <para>下一步是改变 disklable 的类型。也可以使用 &man.bsdlabel.8; 来编辑:</para> - <programlisting>disklabel -e ad1 -disklabel -e ad2 -disklabel -e ad3</programlisting> + <programlisting>bsdlabel -e ad1 +bsdlabel -e ad2 +bsdlabel -e ad3</programlisting> <para>这儿在每个已经设置了 <envar>EDITOR</envar> 环境变量的磁盘上打开了 disklable,在我我例子中使用的是 &man.vi.1;。</para> @@ -457,15 +429,6 @@ disklabel -e ad3</programlisting> <sect4 id="ccd-buildingfs"> <title>建立文件系统</title> - <para><devicename>ccd0c</devicename> 的设备节点可能不存在,所以要 - 创建它,执行下面的命令:</para> - - <programlisting>cd /dev -sh MAKEDEV ccd0</programlisting> - - <note><para>在 FreeBSD 5.0 中, &man.devfs.5; 会自动管理在 <filename>/dev</filename> - 中的设备节点, 所以没有必要使用 <command>MAKEDEV</command> 命令。</para></note> - <para>现在已给每个磁盘都加上了标签,下面需要建立 &man.ccd.4;。要这样做, 需要使用 &man.ccdconfig.8; 工具,同时要提供类似下面的选项:</para> @@ -718,22 +681,13 @@ device umass</programlisting> &man.atapicam.4; 驱动程序。</para> </note> - <para>从 &os; 5.X 开始, 对 USB 2.0 控制器提供了内建的支持; - 这一特性也被加入到了 &os; 4.10-RELEASE 和其后的 4.X 版本。 - 要获取对 USB 2.0 的支持, 您需要在内核的编译配置中加入:</para> + <para>在 &os; 中已经提供了对 USB 2.0 控制器的内建支持; + 然而, 您必须在编译内核时在配置中加入:</para> <programlisting>device ehci</programlisting> <para>注意, 如果需要 USB 1.X 的支持, 您仍需要使用 &man.uhci.4; 和 &man.ohci.4; 驱动程序。</para> - - <note> - <para>在 &os; 4.X 上, USB daemon (&man.usbd.8;) 必须能够 - 检测到正在运行的一些 USB 设备。为了启用它, - 添加 <literal>usbd_enable="YES"</literal> 到您的 - <filename>/etc/rc.conf</filename> 文件里,然后重新启动 - 计算机。</para> - </note> </sect2> <sect2> @@ -917,14 +871,8 @@ umass0: detached</screen> <screen>&prompt.root; <userinput>mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot</userinput></screen> - <para>如果内核中已经配置了 <devicename>vn</devicename> - (FreeBSD 4.X), 或 <devicename>md</devicename> - (FreeBSD 5.X),就可以挂上文件系统:</para> - - <screen>&prompt.root; <userinput>vnconfig -e vn0c /tmp/bootable.iso</userinput> -&prompt.root; <userinput>mount -t cd9660 /dev/vn0c /mnt</userinput></screen> - - <para>在 FreeBSD 4.X, 和 FreeBSD 5.X 中:</para> + <para>完成这些工作之后, 如果您的内核中配置了 <devicename>md</devicename>, + 就可以用下列命令来挂接文件系统了:</para> <screen>&prompt.root; <userinput>mdconfig -a -t vnode -f /tmp/bootable.iso -u 0</userinput> &prompt.root; <userinput>mount -t cd9660 /dev/md0 /mnt</userinput></screen> @@ -953,8 +901,7 @@ umass0: detached</screen> <para>在 <replaceable>cddevice</replaceable> 上刻录一份 <replaceable>imagefile.iso</replaceable> 的副本。 默认的设备是 - <filename>/dev/acd0</filename> (在 &os; 4.X 下则是 - <filename>/dev/acd0c</filename>)。 + <filename>/dev/acd0</filename>。 请参考 &man.burncd.8; 以了解设置写入速度的参数,如何在刻录完成之后自动弹出CD,以及刻录音频数据。</para> </sect2> @@ -982,7 +929,7 @@ umass0: detached</screen> <secondary>burning</secondary> </indexterm> <screen>&prompt.root; <userinput>cdrecord -scanbus</userinput> -Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling +Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jörg Schilling Using libscg version 'schily-0.1' scsibus0: 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk @@ -1056,15 +1003,6 @@ scsibus1: 如果您发现有某些项目缺失, 则应强制系统重新识别介质:</para> <screen>&prompt.root; <userinput>dd if=/dev/acd0 of=/dev/null count=1</userinput></screen> - - <note><para>在 &os; 4.X 中, 这些项的前缀并不包括零。 - 如果发现 <filename>/dev</filename> 缺少所需的项, - 可以用 <command>MAKEDEV</command> 来生成:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>sh MAKEDEV acd0t99</userinput></screen> - </note> - </step> <step> @@ -1095,10 +1033,7 @@ scsibus1: 镜像文件可以使用 &man.mkisofs.8; 创建,您可以使用这个工具复制 任何数据 CD。这里给出的例子假定您的 CDROM - 设备 <devicename>acd0</devicename>。代替您 - 正确的 CDROM 设备。在 &os; 4.X 下面,字符 <literal>c</literal> 必须被附加到 - 设备名的结尾处来指明是整个分区, - 或者对于 CDROM,指明是整个光盘。</para> + 设备是 <devicename>acd0</devicename>, 您应将其替换为您实际使用的 CDROM 设备。</para> <screen>&prompt.root; <userinput>dd if=/dev/acd0 of=file.iso bs=2048</userinput></screen> @@ -1141,10 +1076,8 @@ scsibus1: <para>用这种方法您基本可以使用任何买到的数据 CDROM。 然而某些有 ISO 9660 扩展的光盘可能会行为古怪。 例如,joliet 光盘用两个字节的 unicode 字符存储所有的文件名。 - FreeBSD 内核还不能识别 - unicode (重要!),所以非英语字符被做了有问题的标记。 - (如果您正在运行 FreeBSD 4.3 或者以后的版本, - CD9660 驱动包含了加载合适的 unicode 换算表的方法。 + FreeBSD 内核不能识别 Unicode (目前如此!), 因此非英语字符被做了有问题的标记。 + (FreeBSD CD9660 驱动包含了加载合适的 Unicode 换算表的方法。 一些常用编码的模块可以通过 <filename role="package">sysutils/cd9660_unicode</filename> port 来安装。)</para> @@ -1615,7 +1548,7 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c <title>配置</title> <para>DVD-RAM 刻录机通常使用 SCSI 或 ATAPI - 两种接口之一。 对于 ATAPI 设备, 还应启用 DMA 访问方式, + 两种接口之一。 对于 ATAPI 设备, DMA 传输模式必须手工启用。 这一工作可以通过在 <filename>/boot/loader.conf</filename> 文件中增加下述配置来完成:</para> @@ -1628,28 +1561,25 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c <para>如本章前面的介绍所言, DVD-RAM 可以视为一移动硬盘。 与任何其它型号的移动硬盘类似, 首次使用它之前, 应首先 <quote>初始化</quote> DVD-RAM。 - 在这个例子中, 我们将在全部空间上使用标准的 UFS2 文件系统。</para> - - <para>将 DVD-RAM 插入驱动器后, 以 <username>root</username> - 的身份执行:</para> + 在下面的例子中, 我们将在全部空间上使用标准的 UFS2 文件系统:</para> <screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>/dev/acd0</replaceable> count=2</userinput> -&prompt.root; <userinput>disklabel -Bw <replaceable>acd0</replaceable></userinput> +&prompt.root; <userinput>bsdlabel -Bw <replaceable>acd0</replaceable></userinput> &prompt.root; <userinput>newfs <replaceable>/dev/acd0</replaceable></userinput></screen> - <para>应根据您的设置来修改所用的 DVD 设备, - <devicename>acd0</devicename>。</para> + <para>您应根据实际情况将 <devicename>acd0</devicename> 改为您所使用的设备名。</para> </sect3> <sect3> <title>使用介质</title> - <para>一旦在您的 DVD-RAM 上完成了前面的操作, + <para>一旦您在 DVD-RAM 上完成了前面的操作, 就可以像普通的硬盘一样挂接它了:</para> <screen>&prompt.root; <userinput>mount <replaceable>/dev/acd0</replaceable> <replaceable>/mnt</replaceable></userinput></screen> - <para>然后就可以正常地对其进行读写了。</para> + <para>然后就可以正常地对 DVD-RAM 进行读写了。</para> + </sect3> </sect2> </sect1> @@ -1691,40 +1621,8 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c <para>软盘的访问像其它设备一样是通过在 <filename>/dev</filename> 中的条目来实现的。 - 访问 raw 软盘在 4.X 和更早的版本,使用 - <filename>/dev/fd<replaceable>N</replaceable></filename>, - 这里 <replaceable>N</replaceable> 标识设备号,通常为 0 , - 或 <filename>/dev/fd<replaceable>NX</replaceable></filename>, - 这里 <replaceable>X</replaceable> 标识为一个字符。</para> - - <para>在 5.0 或更新的版本中,简单的使用 - <filename>/dev/fd<replaceable>N</replaceable></filename>。</para> - - <sect4> - <title>4.X 以及更早版本的磁盘大小</title> - - <para>也有 <filename>/dev/fd<replaceable>N</replaceable>.<replaceable>size</replaceable></filename> - 这样的设备,这里 <replaceable>size</replaceable> 代表软盘的含量以 KB 为单位。 - 这个条目用在低级格式化时来确定磁盘的大小。下面的例子就是 1440kB </para> - - <para>有时这些条目必须在 <filename>/dev</filename> 目录中进行重建。 - 可以这样做:</para> - - <screen>&prompt.root; <userinput>cd /dev && ./MAKEDEV "fd*"</userinput></screen> - </sect4> - - <sect4> - <title>5.0 以及更新版本的磁盘大小</title> - - <para>在 5.0 版本中, &man.devfs.5; 将自动管理在 - <filename>/dev</filename> 目录中的设备,所以不摧荐使用 - <command>MAKEDEV</command> 命令。</para> - - <para>如果期望得到确定大小的磁盘可以给 &man.fdformat.1; 传递 - <option>-f</option> 参数。 支持的大小可以在 - &man.fdcontrol.8; 联机手册中找到, - 但推荐使用工作状态最好的 1440kB。</para> - </sect4> + 直接访问软盘时, 只需简单地使用 + <filename>/dev/fd<replaceable>N</replaceable></filename> 来表示。</para> </sect3> <sect3> @@ -1742,18 +1640,7 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c 磁盘的好与坏。</para> <sect4> - <title>在 4.X 以及更早版本中格式化</title> - - <para>使用 - <filename>/dev/fd<replaceable>N</replaceable>.<replaceable>size</replaceable></filename> - 设备来格式化软盘。插入一张新的 3.5 英寸的软盘在你的设备里:</para> - - <screen>&prompt.root; <userinput>/usr/sbin/fdformat /dev/fd0.1440</userinput></screen> - - </sect4> - - <sect4> - <title>在 5.0 以及更新版本中格式化</title> + <title>软盘的格式化</title> <para>使用 <filename>/dev/fd<replaceable>N</replaceable></filename> @@ -1765,8 +1652,6 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c </sect3> </sect2> - - <sect2> <title>磁盘标签</title> @@ -1777,16 +1662,9 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c 磁盘标签的 geometry 值列在 <filename>/etc/disktab</filename>中。</para> - <para>你能够使用 &man.disklabel.8; 像下面这样:</para> + <para>现在可以用下面的方法来使用 &man.bsdlabel.8; 了:</para> - <screen>&prompt.root; <userinput>/sbin/disklabel -B -r -w /dev/fd0 fd1440</userinput></screen> - - <note><para>从 &os; 5.1-RELEASE, 开始 &man.bsdlabel.8; - 程序代替了旧版本的 &man.disklabel.8; 程序。随着 - &man.bsdlabel.8; 一起许多陈旧的选项和参数也被清除了; - 在上面的例子中,选项 - <option>-r</option> 将被去掉。要想得到更多的信息, - 请参考 &man.bsdlabel.8; 联机手册。</para></note> + <screen>&prompt.root; <userinput>/sbin/bsdlabel -B -r -w /dev/fd0 fd1440</userinput></screen> </sect2> @@ -1812,10 +1690,9 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c <sect2> <title>使用软盘</title> - <para>要使用软盘,需要先使用 &man.mount.msdos.8; (在 - 4.X 和更早的版本中) 或 &man.mount.msdosfs.8; (在 5.0 或更新 - 的版本中)。也可以使用在 ports collection - 中的<filename role="package">emulators/mtools</filename> 程序。</para> + <para>要使用软盘,需要先使用 &man.mount.msdosfs.8; 挂接它。 + 除此之外, 也可以使用在 ports 套件中的 + <filename role="package">emulators/mtools</filename> 程序。</para> </sect2> </sect1> @@ -2363,11 +2240,11 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen> <para>在遇到灾难前,只需要执行以下四个步骤:</para> <indexterm> - <primary><command>disklabel</command></primary> + <primary><command>bsdlabel</command></primary> </indexterm> - <para>第一,打出您的每个磁盘驱动器的磁盘标签(例如: - <command>disklabel da0 | lpr</command>),文件系统表, + <para>第一,打出您的每个磁盘驱动器的磁盘标签 (例如: + <command>bsdlabel da0 | lpr</command>),文件系统表, (<filename>/etc/fstab</filename>) ,以及所有启动信息, 并将其复制两份。</para> @@ -2378,7 +2255,7 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen> 如果设备都被列出,并且可以正常使用,就可以跳到第三步。</para> <para>否则,必须建立两张传统的可启动软盘,并包含: - <command>fdisk</command>, <command>disklabel</command>, + <command>fdisk</command>, <command>bsdlabel</command>, <command>newfs</command>, <command>mount</command>, 以及所有使用的 备份程序。这些程序必须被静态的连接。如果使用的是 <command>dump</command>, 那么这张软盘就必须包含 <command>restore</command>。</para> @@ -2416,7 +2293,7 @@ fi # place boot blocks on the floppy # -disklabel -w -B /dev/fd0c fd1440 +bsdlabel -w -B /dev/fd0c fd1440 # # newfs the one and only partition @@ -2588,13 +2465,13 @@ echo "The floppy has been unmounted and is now ready."]]></programlisting> </indexterm> <indexterm><primary>root partition</primary></indexterm> <indexterm> - <primary><command>disklabel</command></primary> + <primary><command>bsdlabel</command></primary> </indexterm> <indexterm> <primary><command>newfs</command></primary> </indexterm> <para>试着 <command>mount</command> 上您的第一个磁盘的 root 分区(例如: <command>mount /dev/da0a - /mnt</command>)。假如这个磁盘标签已经损坏,使用 <command>disklabel</command> + /mnt</command>)。假如这个磁盘标签已经损坏,使用 <command>bsdlabel</command> 来重新分割并分配磁盘标签(利用您以前保留下来的数据)。使用 <command>newfs</command> 来建立文件系统,并重新挂上软盘读写的 root 分区 (<command>mount -u -o rw /mnt</command>)。然后使用备份程序及备份磁带来修复文件系统 (例如: <command>restore vrf @@ -2652,60 +2529,9 @@ echo "The floppy has been unmounted and is now ready."]]></programlisting> 后备文件系统和内存文件系统。</para> <note> - <para>FreeBSD 4.X 用户可以使用 &man.MAKEDEV.8; - 来创建需要的设备。 FreeBSD 5.0 和更新的版本使用 - &man.devfs.5; 来创建设备节点,对用户来说是透明的。</para> + <para>系统会使用 &man.devfs.5; 来创建设备节点, 这对用户来说是透明的。</para> </note> - <sect2 id="disks-vnconfig"> - <title>FreeBSD 4.X 下的 File-Backed 文件系统</title> - <indexterm> - <primary>磁盘</primary> - <secondary>file-backed (4.X)</secondary> - </indexterm> - - <para>应用程序 &man.vnconfig.8; 可以配置和启用 vnode 伪磁盘设备。 - 一个 <firstterm>vnode</firstterm> 代表一个文件。这就意味 - 使用 &man.vnconfig.8; 可以用来创建和操作一个文件系统。 - 也可以在文件中挂接一个软盘或 CD 映像。</para> - - <para>要使用 &man.vnconfig.8;,你需要在内核配置文件中 &man.vn.4; 的支持:</para> - - <programlisting>pseudo-device vn</programlisting> - - <para>挂接一个存在的文件系统映像:</para> - - <example> - <title>使用 vnconfig 来挂接一个存在的文件系统映像在 - FreeBSD 4.X 系统上。</title> - - <screen>&prompt.root; <userinput>vnconfig vn<replaceable>0</replaceable> <replaceable>diskimage</replaceable></userinput> -&prompt.root; <userinput>mount /dev/vn<replaceable>0</replaceable>c <replaceable>/mnt</replaceable></userinput></screen> - </example> - - <para>使用 &man.vnconfig.8; 创建一个新的文件系统映像:</para> - - <example> - <title>使用 <command>vnconfig</command> 创建新的文件后援磁盘</title> - - <screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>newimage</replaceable> bs=1k count=<replaceable>5</replaceable>k</userinput> -5120+0 records in -5120+0 records out -&prompt.root; <userinput>vnconfig -s labels -c vn<replaceable>0</replaceable> <replaceable>newimage</replaceable></userinput> -&prompt.root; <userinput>disklabel -r -w vn<replaceable>0</replaceable> auto</userinput> -&prompt.root; <userinput>newfs vn<replaceable>0</replaceable>c</userinput> -Warning: 2048 sector(s) in last cylinder unallocated -/dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors - 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) -super-block backups (for fsck -b #) at: - 32 -&prompt.root; <userinput>mount /dev/vn<replaceable>0</replaceable>c <replaceable>/mnt</replaceable></userinput> -&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput> -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/vn0c 4927 1 4532 0% /mnt</screen> - </example> - </sect2> - <sect2 id="disks-mdconfig"> <title>采用文件后端的文件系统</title> <indexterm> @@ -2713,7 +2539,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on <secondary>file-backed (采用文件作为后端)</secondary> </indexterm> - <para>在 FreeBSD 5.X 和更新版本的系统中, 可以用 &man.mdconfig.8; + <para>在 FreeBSD 系统中, 可以用 &man.mdconfig.8; 程序来配置和启用内存磁盘, &man.md.4;。 要使用 &man.mdconfig.8;, 就需要在内核配置文件中添加 &man.md.4; 模块来支持它:</para> @@ -2763,7 +2589,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on <para>应用程序 &man.mdconfig.8; 功能很强大, 但在创建采用文件后端的文件系统时需要使用许多多行命令。 为此 - FreeBSD 5.0 也提供了一个名为 &man.mdmfs.8; 的工具, 该程序使用 + FreeBSD 也提供了一个名为 &man.mdmfs.8; 的工具, 该程序使用 &man.mdconfig.8; 来配置 &man.md.4; 盘, 并在其上用 &man.newfs.8; 创建 UFS 文件系统, 然后用 &man.mount.8; 挂接它。 例如, 如果想创建和挂接像上面那样的文件系统映像, @@ -2787,35 +2613,6 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on </sect2> - <sect2 id="disks-md-freebsd4"> - <title>FreeBSD 4.X 下的内存后备式文件系统</title> - <indexterm> - <primary>磁盘</primary> - <secondary>内存文件系统(4.X)</secondary> - </indexterm> - - <para> &man.md.4; 驱动程序是一个简单有效的手段用来创建 - 内存文件系统在 FreeBSD 4.X 系统上。&man.malloc.9; 被 - 用来分配内存。</para> - - <para>简单的获得一个文件系统你需要准备,例如: - &man.vnconfig.8;</para> - - <example> - <title>FreeBSD 4.X 下的 md 内存磁盘</title> - - <screen>&prompt.root; <userinput>dd if=<replaceable>newimage</replaceable> of=/dev/md<replaceable>0</replaceable></userinput> -5120+0 records in -5120+0 records out -&prompt.root; <userinput>mount /dev/md<replaceable>0c</replaceable> <replaceable>/mnt</replaceable></userinput> -&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput> -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0c 4927 1 4532 0% /mnt</screen> - </example> - - <para>更多的详情,请参考 &man.md.4; 联机手册。</para> - </sect2> - <sect2 id="disks-md-freebsd5"> <title>以内存为后端的文件系统</title> <indexterm> @@ -2823,9 +2620,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on <secondary>内存文件系统</secondary> </indexterm> - <para>同样的工具既可以用来创建以文件为后端的文件系统, - 也可以用来创建基于内存的文件系统: &man.mdconfig.8; 和 &man.mdmfs.8;。 - 一般来说在建立以内存为后端的文件系统时, 应使用 <quote>交换区作为后端 + <para>一般来说, 在建立以内存为后端的文件系统时, 应使用 <quote>交换区作为后端 (swap backing)</quote>。 使用交换区作为后端, 并不意味着内存盘将被无条件地换出到交换区, 它只是表示将根据需要从可换出的内存池中分配内存。 @@ -2877,13 +2672,6 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on <para><command>mdconfig -l</command> 命令可以列出关于配置 &man.md.4; 设备的信息。</para> - - <para>在 FreeBSD 4.X 系统中,&man.vnconfig.8; 命令用来分离设备。 - 例如分离所有的资源使用 <filename>/dev/vn4</filename> 命令:</para> - - <screen>&prompt.root; <userinput>vnconfig -u vn<replaceable>4</replaceable></userinput></screen> - - </sect2> </sect1> @@ -2906,7 +2694,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on <secondary>快照</secondary> </indexterm> - <para>FreeBSD 5.0 提供了一个和 <link linkend="soft-updates">Soft Updates</link> + <para>FreeBSD 提供了一个和 <link linkend="soft-updates">Soft Updates</link> 关联的新功能: 文件系统快照</para> <para>快照允许用户创建指定文件系统的映像,并把它们当做一个文件来对待。 @@ -3227,15 +3015,6 @@ Password:</screen> </step> <step> - <title>验证操作系统的版本</title> - - <para>&man.gbde.4; 需要 FreeBSD 5.0 或更高的版本。</para> - - <screen>&prompt.root; <userinput>uname -r</userinput> -5.0-RELEASE</screen> - </step> - - <step> <title>在内核配置文件中添加对 &man.gbde.4; 的支持</title> <para>在您的内核配置中加入下面一行:</para> @@ -3328,13 +3107,12 @@ sector_size = 2048 <caution> <para><application>gbde</application> lock - 文件<emphasis>必须</emphasis>和加密分区上的内容一块备份。 - 当一个 lock 文件被独自删除时, - 不能确定一个 - <application>gbde</application> 分区上的数据被解密过。 - 没有 lock 文件, - 就是合法的磁盘所有者不经过大量细致的工作也将不能访问经过加密分区上的数据, - 这是 &man.gbde.8; 在设计时整体上不支持。</para> + 文件 <emphasis>必须</emphasis> 和加密分区上的内容同时备份。 + 如果发生只有 lock 文件遭到删除的情况时, 就没有办法确定 + <application>gbde</application> 分区上的数据是否是解密过的。 + 另外, 如果没有 lock 文件, 即使磁盘的合法主人, + 不经过大量细致的工作也无法访问加密分区上的数据, + 而这是在设计 &man.gbde.8; 时完全没有考虑过的。</para> </caution> </step> @@ -3363,9 +3141,6 @@ sector_size = 2048 文件系统比初始化一个 UFS1 文件系统还要快,摧荐使用 <option>-O2</option> 选项。</para> - <note><para><option>-O2</option> 选项在 &os; 5.1-RELEASE - 或更新的版本中是默认的选项。</para></note> - <screen>&prompt.root; <userinput>newfs -U -O2 /dev/ad4s1c.bde</userinput></screen> <note> @@ -3450,7 +3225,7 @@ Filesystem Size Used Avail Capacity Mounted on <para>可以创建脚本来自动地附加、 检测, 并挂接加密分区, 然而, 处于安全考虑, 这个脚本不应包含 &man.gbde.8; 密码。 - 于此相反, 我们建议这类脚本在控制台或通过 &man.ssh.1; + 因而, 我们建议这类脚本在控制台或通过 &man.ssh.1; 执行并要求用户输入口令。</para> <para>从 &os; 5.2-RELEASE 开始, 提供了一个新的 <filename>rc.d</filename> 脚本。 @@ -3591,7 +3366,7 @@ device crypto</screen> <filename role="directory">/private</filename> 的加密 provider。 这个密钥文件将提供一些随机数据来加密主密钥。 同时, 主密钥也会使用一个口令字来保护。 Provider 的扇区尺寸为 4kB。 - 此外, 这里的讨论将描述如何挂载 + 此外, 这里的讨论将介绍如何挂载 <command>geli</command> provider, 在其上创建文件系统, 如何挂接并在其上工作, 最后将其卸下。</para> diff --git a/zh_CN.GB2312/books/handbook/firewalls/chapter.sgml b/zh_CN.GB2312/books/handbook/firewalls/chapter.sgml index 410748db31..5e0720aad1 100644 --- a/zh_CN.GB2312/books/handbook/firewalls/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/firewalls/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.66 + Original Revision: 1.68 $FreeBSD$ --> @@ -188,54 +188,6 @@ 因此我们不打算在这本使用手册中进行更进一步的阐述, 以避免不必要的重复劳动。</para> - <para>PF 在各种 &os; 发行版上的可用情况如下所示:</para> - - <informaltable frame="none" pgwide="1"> - <tgroup cols="2"> - <thead> - <row> - <entry>&os; 版本</entry> - - <entry>PF 可用情况</entry> - </row> - </thead> - - <tbody> - <row> - <entry>4.X 之前的版本</entry> - - <entry>PF 在 &os; 4.X 之前的版本分支上不可用。</entry> - </row> - - <row> - <entry>所有 4.X 版本分支上的版本</entry> - - <entry>PF 作为 KAME 的一部分提供。</entry> - </row> - - <row> - <entry>5.X 在 5.3-RELEASE 之前的版本</entry> - - <entry><filename role="package">security/pf</filename> - port 可以用来在这些 &os; 版本上安装 PF。 - 这些版本主要是供开发人员, 以及预览早期的 5.X - 版本上使用的。 强烈建议升级到 - 5.3-RELEASE 或更新的 &os; 版本。</entry> - </row> - - <row> - <entry>5.3-RELEASE 以及之后的版本</entry> - - <entry>PF 已经成为了基本系统的一部分。 - 请 <emphasis>不要</emphasis> 尝试使用 <filename - role="package">security/pf</filename> port - 在这些 &os; 版本上安装它, 因为这样做是没有作用的。 - 请使用基本系统中的 &man.pf.4; 支持。</entry> - </row> - </tbody> - </tgroup> - </informaltable> - <para>更多的详细信息, 可以在 &os; 版本的 PF 网站上找到: <ulink url="http://pf4freebsd.love2party.net/"></ulink>。</para> @@ -478,6 +430,10 @@ options ALTQ_NOPCC # Required for SMP build</programlisting> <para>IPF FAQ 可以在 <ulink url="http://www.phildev.net/ipf/index.html"></ulink> 找到。</para> + <para>除此之外, 您还可以在 <ulink + url="http://marc.theaimsgroup.com/?l=ipfilter"></ulink> + 找到开放源代码的 IPFilter 的邮件列表存档, 并进行搜索。</para> + <sect2> <title>启用 IPF</title> @@ -530,10 +486,8 @@ options ALTQ_NOPCC # Required for SMP build</programlisting> 编入了内核, 则对应的内核模块将不被使用。</para> <para>关于 IPF 选项语句的内核编译配置的例子, 可以在内核源代码中的 - <filename>/usr/src/sys/conf/NOTES</filename> 找到 - (对于 &os; 4.X 来说, 则是 - <filename>/usr/src/sys/<replaceable>arch</replaceable>/conf/LINT</filename>) - 并这里列举如下:</para> + <filename>/usr/src/sys/conf/NOTES</filename> 找到。 + 此处列举如下:</para> <programlisting>options IPFILTER options IPFILTER_LOG @@ -749,19 +703,16 @@ LOG_ERR - 进一步记录含不完整的包头的数据包</screen> <programlisting>security.* /var/log/ipfilter.log</programlisting> - <para>对于 &os; 4.X 则应在 - <filename>/etc/syslog.conf</filename> 中加入:</para> - - <programlisting>local0.* /var/log/ipfilter.log</programlisting> + <para>或将下列语句加入 + <filename>/etc/syslog.conf</filename>。</para> - <para>这里的 <literal>security.*</literal> (对 4.X 则是 - <literal>local0</literal>) 表示把所有的相关日志信息写到指定的文件中。</para> + <para>这里的 <literal>security.*</literal> + 表示把所有的相关日志信息写到指定的文件中。</para> <para>要让 <filename>/etc/syslog.conf </filename> 中的修改立即生效, 您可以重新启动计算机, 或者通过执行 <command>/etc/rc.d/syslogd reload</command> - 来让它重新读取 <filename>/etc/syslog.conf</filename> - (在 &os; 4.X 中, 则是 <command>killall -HUP syslogd</command>)。</para> + 来让它重新读取 <filename>/etc/syslog.conf</filename>。</para> <para>不要忘了修改 <filename>/etc/newsyslog.conf </filename> 来让您刚创建的日志进行轮转。</para> @@ -1835,8 +1786,8 @@ pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state</pro <sect3> <title>FTP <acronym>NAT</acronym> 代理的 bug</title> - <para>在 &os; 4.9 中提供了 IPFILTER 的 3.4.31 版。 - 在整个 FTP 会话直到将要结束之前, FTP 代理都会像文档中介绍的那样。 + <para>在 IPFILTER 的 3.4.31 版中, + 直到整个 FTP 会话直到将要结束之前, FTP 代理都会像文档中介绍的那样。 但一旦有一方要求关闭会话, 则来自远程 FTP 服务器 21 端口的一个包会被阻止, 并在日志中记下这一情况。 <acronym>NAT</acronym> FTP/代理显然过早地删除了临时规则, 而不是等待远程 FTP 服务器确认它。 @@ -2336,7 +2287,7 @@ options IPV6FIREWALL_DEFAULT_TO_ACCEPT</programlisting> <para>动态规则机制在 SYN-flood 攻击下是脆弱的, 因为这种情况会产生大量的动态规则, 从而耗尽资源。 - 为了抵抗这种攻击, 从 &os; 4.5 版开始, 加入了一个叫做 limit + 为了抵抗这种攻击, 从 &os; 中加入了一个叫做 limit 的新选项。 这个选项可以用来限制符合规则的会话允许的并发连接数。 如果动态规则表中的规则数超过限制, 则包将被丢弃。</para> diff --git a/zh_CN.GB2312/books/handbook/geom/chapter.sgml b/zh_CN.GB2312/books/handbook/geom/chapter.sgml index 6aa6745e14..66e3a72cec 100644 --- a/zh_CN.GB2312/books/handbook/geom/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/geom/chapter.sgml @@ -218,8 +218,8 @@ XXX: What message? Put it inside the screen output above. 当存在镜像时, 它的意思是说 磁盘B 简单地复制 磁盘A。 或者, 也可能是 磁盘C+D 复制 磁盘A+B。 无论磁盘如何配置, 共同的特征, - 都是磁盘或卷的信息会被复制。 随后, 这些信息可以很容易地恢复原样、 - 备份, 而不需要造成服务或访问的停顿, 甚至其他更安全的地方。</para> + 都是磁盘或卷的信息会被复制。 随后,在无需中断服务或访问的情况下, + 可以很容易地复原和备份这些信息, 甚至把它们存储到其他更安全的地方。</para> <para>要开始做这件事, 首先要确保系统中有两个同样大的磁盘驱动器, 下面的例子假定使用直接访问方式 (Direct Access, &man.da.4;) @@ -330,7 +330,7 @@ Done.</screen> <screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf</userinput></screen> - <para>者将让 &man.loader.8; 在系统初始化过程中自动加载 + <para>这将让 &man.loader.8; 在系统初始化过程中自动加载 <filename>geom_mirror.ko</filename> 模块。</para> <para>最后重新启动系统:</para> diff --git a/zh_CN.GB2312/books/handbook/install/chapter.sgml b/zh_CN.GB2312/books/handbook/install/chapter.sgml index ae762a2508..5e9217b79a 100644 --- a/zh_CN.GB2312/books/handbook/install/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/install/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.331 + Original Revision: 1.332 $FreeBSD$ --> @@ -500,11 +500,7 @@ pqb0.0.1.4.0 PQB0 PCI EIDE</screen> <para>软盘映像文件的扩展名是 <filename>.flp</filename>。 在 <filename>floppies/</filename> 目录中包括了许多不同的映像文件, 随您安装的 FreeBSD 版本, 某些时候也随硬件的不同, - 您需要使用的映像文件可能会有所不同。 如果您正在安装的是 - FreeBSD 4.X 则通常只需要两张软盘的映像, - 即 <filename>kern.flp</filename> 和 - <filename>mfsroot.flp</filename>。 - 如果您正在安装的是 FreeBSD 5.X 则您通常会需要三张软盘, + 您需要使用的映像文件可能会有所不同。 您通常会需要三张软盘, 即 <filename>boot.flp</filename>、 <filename>kern1.flp</filename>, 以及 <filename>kern2.flp</filename>。 请查阅同一目录下的 @@ -709,8 +705,7 @@ Please insert MFS root floppy and press enter:</screen> <screen>Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _</screen> - <para>您可以等待十秒, 或按 <keycap>Enter</keycap> - (对于 &os; 4.X 则接下来将是进入内核配置菜单)。</para> + <para>您可以等待十秒, 或按 <keycap>Enter</keycap>。</para> </step> </procedure> @@ -766,229 +761,6 @@ Booting [kernel] in 9 seconds... _</screen> </sect2> - <sect2 id="start-userconfig"> - <title>配置内核</title> - - <note><para>从 FreeBSD 5.0 开始, 改用了新的 &man.device.hints.5; - 方式来进行配置, 而淘汰了先前的 userconfig 。 关于这一机制的进一步介绍, - 请参考 &man.device.hints.5; 或阅读 <xref linkend="device-hints"></para></note> - - <para><firstterm>内核</firstterm>是操作系统最核心的部分。它负责很多工作, - 包括存取系统上所有设备,如硬盘、网卡、声卡等等。每一个 FreeBSD - 核心支持的设备都有其相对应的驱动程序。这些驱动程序的名称由两个或三个字母级成,譬如: - <devicename>sa</devicename> 表示 SCSI 存取驱动程序;<devicename>sio</devicename> - 表示串口 I/O 驱动程序(管理 COM 端口)。</para> - - <para>当内核启动的时候,每个驱动程序会检查系统中是否有它所支持的设备。如果找到的话, - 这些驱动程序就会配置这些设备的状态以代核心使用。</para> - - <para>上述设备的检查我们称做 <firstterm>device probing(设备探测)</firstterm>。 - 但是很不幸地,这样做并不是完全安全的。因为有些硬件驱动程序没有办法想到共存, - 有时找到这个设备却让另一个设备处在不稳定的状态。这是 <acronym>PC</acronym> - 设计上的限制。</para> - - <para>许多早期的称作 ISA 的设备—(相对于 PCI 设备而言)。ISA - 设备的规格需要将硬件的某些数据写死在设备上,最具代表性的就是中断号(IRQ)以及 - IO 端口号。这些设定值通常是通过改变设备上的 <firstterm>jumpers(跳线)</firstterm>, - 或是使用由厂商提供的 DOS 工具程序来改变。</para> - - <para>这通常是问题的所在,因为这没办法让两个设备共同分享一个 IRQ 或是 IO 端口 - 地址。</para> - - <para>新的设备都按照 PCI 规格设计,这些设备就没有上述限制;它们会参考 BIOS - 中的设定然后动态分配 IRQ 及 IO 端口地址。</para> - - <para>如果您的系统中有任何 ISA 设备,那么在设置 FreeBSD 驱动程序的时候您就 - 必须指定这些设备的 IRQ 及 IO 地址。这也是我们在 <xref - linkend="install-inventory">一节中希望您先准备一份设备清单的用意。</para> - - <para>仍然很不幸地,预设给某些设备使用的 IRQ 会跟内存地址互相冲突。这是因为 - 有些 ISA 设备出厂的设定值就会跟其它的设备冲突。撇开这个不谈,FreeBSD 驱动 - 程序通常都会根据各制造商设备的出厂设定值来设定,这也是为什么许多设备可 - 以在 FreeBSD 顺利驱动的原因。</para> - - <para>在跑 FreeBSD 的时候根本不会有上冲突的问题,因为当两个设备互相冲突的 - 时候,其中一个设备将被停用(不论您用的是哪种操作系统)。</para> - - <para>通常在第一次安装 FreeBSD 的时候才会有问题,因为内核希望尽是多包含一 - 些驱动程序,这样才能支持许多不同设备的配置。这意味着在找到的这些设备中 - 有可能设定值会互相冲突。FreeBSD 在探测系统设备的时候会按照一的顺序,如 - 果您的某个设备在较后面探测到,但是跟前面找到的设备设定冲突,那么在安装 - FreeBSD 的时候,这个设备不一定能正确雇用。</para> - - <para>因为如此,当您在安装 FreeBSD 前,可以先看看在系统内核中包含了哪些驱 - 动程序,如果您没有某些设备,则可以将它们的驱动程序删除或是在稍后您也 - 可以确认您有的设备的设定值有没有问题。</para> - - <para>这听起来好像很复杂,但不全然如此。</para> - - <para><xref linkend="kernel-config"> 显示的是内核能设置的第一个配置菜单。 - 我们推荐您选择<guimenuitem>Start kernel configuration in full-screen visual - mode</guimenuitem> 选项, 因为这对新手来说比较容易。</para> - - <figure id="kernel-config"> - <title>内核配置菜单</title> - - <mediaobject> - <imageobject> - <imagedata fileref="install/userconfig" format="PNG"> - </imageobject> - - <textobject> - <screen>&txt.install.userconfig;</screen> - </textobject> - </mediaobject> - </figure> - - <para>内核配置画面 (图<xref linkend="fig-userconfig">) - 被分成四个部分:</para> - - <orderedlist> - <listitem> - <para>在<quote>active(可用)</quote>区域的展开式选择菜单分为四个群,例如 - <literal>Storage(储存设备)</literal>、 <literal>Network(网络设备)</literal>。 - 每个设备会显示一个对应的说明、由二或三个字母组成的驱动程序名称以及驱动程序 - 所使用的IRQ和内存地址。另外,如果可用的驱动程序跟另一个可用的驱动程序有冲突, - 它们的驱动程序名称之后会显示 <literal>CONF</literal> 字样。同时栏目标题也会 - 显示在可用的设备中总共有几个设备有冲突。</para> - </listitem> - - <listitem> - <para>在 Inactive(停用)区域的驱动程序仍然保留在内核中,但当内核启动的时候 - 并不会探测这些设备。这个区域的分组方式跟可用区一样。</para> - </listitem> - - <listitem> - <para>第三区(信息显示区)显示的是目前所选择设备的细节项目设置,包括 IRQ 及 - IO 端口地址。</para> - </listitem> - - <listitem> - <para>第四区告诉您这个画面的操作按键。</para> - </listitem> - </orderedlist> - - <figure id="fig-userconfig"> - <title>配置内核可视化视觉接口</title> - - <mediaobject> - <imageobject> - <imagedata fileref="install/userconfig2" format="PNG"> - </imageobject> - - <textobject> - <screen>&txt.install.userconfig2;</screen> - </textobject> - </mediaobject> - </figure> - - <para>在这个阶段,您总是会看到有冲突的设备被列出。请不要担心,因为这是正 - 常的;前面提到在安装的时候所有的设备都会被启用,而其中的某些设备就会跟 - 其它的设备产生冲突。</para> - - <para>现在您必须逐一检查这些设备驱动程序,然后解决冲突的问题。</para> - - <procedure> - <title>解决驱动程序冲突</title> - - <step> - <para>按下 <keycap>X</keycap> 键可以将所选择区域的驱动程序完全展开以方便您 - 检阅。您可以使用方向键在可用设备区前后移动。</para> - - <para><xref linkend="hardware-conflicts"> 显示按下 <keycap>X</keycap> 键 - 后的结果。 </para> - - <figure id="hardware-conflicts"> - <title>展开驱动程序清单</title> - - <mediaobject> - <imageobject> - <imagedata fileref="install/hdwrconf" format="PNG"> - </imageobject> - </mediaobject> - </figure> - </step> - - <step> - <para>停用任何您没有的设备的驱动程序。要停用一个设备,用方向键移动将该 - 设备反白然后按下 <keycap>Del</keycap> 键,则此设备驱动程序就会被移到 - <literal>Inactive Drivers(停用设备区)</literal> 列表。</para> - - <para>如果您不小心将一个设备停用,那么请按 <keycap>Tab</keycap> 切换到 - <literal>Inactive Drivers</literal> 区, 选择被停用的设备,然后按下 - <keycap>Enter</keycap> 键将它移回可用设备区。</para> - - <warning> - <para>请不要移除 <devicename>sc0</devicename>。这个驱动程序是控制屏幕 - 用的,除非您是通过串行线进行安装,否则请不要移除它。</para> - </warning> - - <warning> - <para>如果您用的是 USB 键盘才可以停用 <devicename>atkbd0</devicename> 用一般 - 的键盘请保留此 <devicename>atkbd0</devicename> 设备驱动程序。</para> - </warning> - </step> - - <step> - <para>如果现在显示没有冲突,那么您可以跳过这一步骤。否则,剩下的冲突还是必 - 须解决。如果在信息显示区没有看到 <quote>allowed conflict(允许冲突)</quote>, - 那么您必须改变这边显示的 IRQ 及内存地址, <emphasis>或</emphasis> 必须变更设备 - 上面的 IRQ 及内存地址。</para> - - <para>要改变设备驱动程序的 IRQ 及 IO 端口地址,选择要变更的驱动程序然后 - 按 <keycap>Enter</keycap> 键。之后等光标移到第三区(信息显示区)时候您就 - 可以理发这些设置。您应该输入之前做硬件清单列表的时候所记录的 IRQ 及 IO 端 - 口地址。要完成更改请按 <keycap>Q</keycap> 键并回到可用设备区。</para> - - <para>如果您不确定该设定什么值,那么可以试试看 <literal>-1</literal>。 - 有些 FreeBSD 驱动程序在搜寻设备的时候可以安全找出设备的正确设定值;所以这里设置 - <literal>-1</literal> 就是告诉这些驱动程序自行去尝试找出合适的设置。</para> - - <para>如果要直接在设备硬件上改变设定值,设定的方法每种设备都不大相同。有些 - 设备您必须将它从电脑中拆下来然后调整路线或是DIP开关;其它的可能厂商会提供 DOS - 工具软盘,里面有程序可以更改这些设定。不论是哪一种方式,您都应该参考设备所附 - 的使用手册。很明显地,改变这些设定值必须重新开机后才会生效,所以您必须重新进 - 入 FreeBSD 安装程序。</para> - </step> - - <step> - <para>当所有的冲突都解决了以后,您会看到类似<xref linkend="userconfig-done"> - 的画面。</para> - - <figure id="userconfig-done"> - <title>没有冲突的设备驱动程序状态画面</title> - - <mediaobject> - <imageobject> - <imagedata fileref="install/probstart" format="PNG"> - </imageobject> - </mediaobject> - </figure> - - <para>如您所见,可用设备列表变得干净多了,只列出您系统中有的设备。</para> - - <para>现在您可以储存所做的改变,然后进到下一个安装步骤。按 <keycap>Q</keycap> - 键离开设备配置界面,您会看到下面的信息:</para> - - <screen>Save these parameters before exiting? ([Y]es/[N]o/[C]ancel)</screen> - - <para>回答 <keycap>Y</keycap> 保存配置到内存(安装完成后将后保存到磁盘)然后开始 - 探测设备。在设备探测完毕后,<application>sysinstall</application> 就会启动并且显 - 示它的主界面。(<xref linkend="sysinstall-main">)。</para> - - <figure id="sysinstall-main"> - <title>Sysinstall 主界面</title> - - <mediaobject> - <imageobject> - <imagedata fileref="install/main1" format="PNG"> - </imageobject> - </mediaobject> - </figure> - </step> - </procedure> - </sect2> - <sect2 id="view-probe"> <title>查看设备探测的结果</title> @@ -1107,7 +879,7 @@ Mounting root from ufs:/dev/md0c <title>介绍 Sysinstall</title> <para><application>sysinstall</application> 是 FreeBSD 项目所提供的安装程序。 - 它以 console(控制台)为主,分为向个菜单及画面让您配置及控制安装过程。</para> + 它以 console(控制台)为主,分为多个菜单及画面让您配置及控制安装过程。</para> <para><application>sysinstall</application> 菜单画面由方向键、<keycap>Enter </keycap>、 <keycap>Space</keycap>、以及其它按键所控制。在主画面的 Usage 菜单 @@ -1171,7 +943,7 @@ Mounting root from ufs:/dev/md0c <title>选择键盘对应(Keymap)菜单</title> <para>如果要改变键盘按键的对应方式,请在主菜单选取 <guimenuitem>Keymap</guimenuitem> - 然后按 <keycap>Enter</keycap> 键。一般情况下不改变引项,除非您使用了非标准键盘或非 + 然后按 <keycap>Enter</keycap> 键。一般情况下不改变此项,除非您使用了非标准键盘或非 美国键盘。</para> <figure id="sysinstall-keymap"> @@ -1396,7 +1168,7 @@ Mounting root from ufs:/dev/md0c 地显示出来,必须修改 FreeBSD 配置文件(译注:/etc/fstab)才可以正确显示。</para> <para>为了解决这些问题,在配置内核的时候可以叫 FreeBSD 直接用 IDE 设备所 - 在的位置来命名,而不是要据的到的顺序。使用这种方式的话,在 secondary master + 在的位置来命名,而不是依据找到的顺序。使用这种方式的话,在 secondary master 的 IDE 设备就 <emphasis>永远是</emphasis> <devicename>ad2</devicename>, 即使您的系统中没有<devicename>ad0</devicename> 或 <devicename>ad1</devicename> 也不受影响。</para> @@ -1537,8 +1309,8 @@ Mounting root from ufs:/dev/md0c 键继续安装过程。</para> </sect2> - <sect2 id="disklabeleditor"> - <title>使用<application>Disklabel</application> + <sect2 id="bsdlabeleditor"> + <title>使用 <application>bsdlabel</application> 创建分区</title> <para>您现在必须在刚刚建立好的 slice 中规划一些 label。 请注意, 每个 label 的代号是 @@ -1583,7 +1355,7 @@ Mounting root from ufs:/dev/md0c <entry>100 MB</entry> <entry>这是一个根文件系统(root filesystem)。任何其它的文件系统都会 - 挂在根目录(译注:用根目录比较亲切)下面。 100 MB 对于要目录来说 + 挂在根目录(译注:用根目录比较亲切)下面。 100 MB 对于此目录来说 是合理的大小,因为您往后并不会在这里存放太多的数据;在安装FreeBSD后会 用掉约 40 MB 的根目录空间。剩下的空间是用来存放临时文件用的,同时, 您也应该预留一些空间,因为以后的FreeBSD版本可能会需要较多的 @@ -1683,7 +1455,7 @@ Mounting root from ufs:/dev/md0c <entry>剩下的硬盘空间</entry> - <entry>剩下的空间是一个在的分区,最简单的做法是将之规划为 + <entry>剩下的空间是一个大的分区,最简单的做法是将之规划为 <literal>a</literal>分区而不是<literal>e</literal>分区。然而, 习惯上<literal>a</literal>分区是保留给根目录 (<filename>/</filename>) 用的。您不一定要遵守这个习惯,但是<application>sysinstall</application> @@ -1730,7 +1502,7 @@ Mounting root from ufs:/dev/md0c <mediaobject> <imageobject> - <imagedata fileref="install/disklabel-ed1" format="PNG"> + <imagedata fileref="install/bsdlabel-ed1" format="PNG"> </imageobject> </mediaobject> </figure> @@ -1741,7 +1513,7 @@ Mounting root from ufs:/dev/md0c 的大小不一定合适。但是没有关系,您并不一定要使用预设的大小。</para> <note> - <para>从 FreeBSD 4.5开始,自动配置会给<filename>/tmp</filename> + <para>默认情况下会给<filename>/tmp</filename> 目录一个独立分区,而不是附属在 <filename>/</filename> 之下。这样可以 避免将一些临时文件放到根目录中(译注:可能会用完根目录空间)。</para> </note> @@ -1751,7 +1523,7 @@ Mounting root from ufs:/dev/md0c <mediaobject> <imageobject> - <imagedata fileref="install/disklabel-auto" format="PNG"> + <imagedata fileref="install/bsdlabel-auto" format="PNG"> </imageobject> </mediaobject> </figure> @@ -1782,7 +1554,7 @@ Mounting root from ufs:/dev/md0c <mediaobject> <imageobject> - <imagedata fileref="install/disklabel-root1" format="PNG"> + <imagedata fileref="install/bsdlabel-root1" format="PNG"> </imageobject> </mediaobject> </figure> @@ -1797,12 +1569,12 @@ Mounting root from ufs:/dev/md0c <mediaobject> <imageobject> - <imagedata fileref="install/disklabel-root2" format="PNG"> + <imagedata fileref="install/bsdlabel-root2" format="PNG"> </imageobject> </mediaobject> </figure> - <para>输入完大小后接着部您要建立的分区是文件系统还是交换空间,如 + <para>输入完大小后接着问您要建立的分区是文件系统还是交换空间,如 <xref linkend="sysinstall-label-type">所示。第一个分区是文件系统,所以 确认选择 <guimenuitem>FS</guimenuitem>后按<keycap>Enter</keycap>键。</para> @@ -1811,7 +1583,7 @@ Mounting root from ufs:/dev/md0c <mediaobject> <imageobject> - <imagedata fileref="install/disklabel-fs" format="PNG"> + <imagedata fileref="install/bsdlabel-fs" format="PNG"> </imageobject> </mediaobject> </figure> @@ -1827,7 +1599,7 @@ Mounting root from ufs:/dev/md0c <mediaobject> <imageobject> - <imagedata fileref="install/disklabel-root3" format="PNG"> + <imagedata fileref="install/bsdlabel-root3" format="PNG"> </imageobject> </mediaobject> </figure> @@ -1846,7 +1618,7 @@ Mounting root from ufs:/dev/md0c <mediaobject> <imageobject> - <imagedata fileref="install/disklabel-ed2" format="PNG"> + <imagedata fileref="install/bsdlabel-ed2" format="PNG"> </imageobject> </mediaobject> </figure> @@ -2938,13 +2710,13 @@ To change any of these settings later, edit /etc/rc.conf <title>配置其他网络服务</title> <para>配置网络服务总是让那些新手敬畏,因为他们缺乏在这个领域应有的基础知识。 - 网络,包括因特网有许多关于现代操作系统包括 &os;;的评论文章。这些文章对于 + 网络,包括因特网有许多关于现代操作系统包括 &os; 的评论文章。这些文章对于 理解&os;拥有的广泛的网络性能是非常有帮助的。在安装这些服务的过程中也能让 用户理解它们可用的各种服务。</para> <para>网络服务是一些可以使在网络的任何人来访问您提供的服务的程序。有许多 努力想使这些程序不会有任何的 <quote>伤害</quote>。不幸的是,这些程序并 - 不是十全十美的,黑客可能会掌握程序中的一些露洞来进行功击。只启用一些您 + 不是十全十美的,黑客可能会掌握程序中的一些露洞来进行攻击。只启用一些您 熟悉的和需要的服务十分重要。如果您存在一些疑虑或没有启用这些服务的必要 那么最好不要使用这些服务。您可以事后通过运行 <application>sysinstall</application> 程序或使用 @@ -3027,9 +2799,9 @@ To change any of these settings later, edit /etc/rc.conf <acronym>MTA</acronym>二者之一。</para> <para>选择 <acronym>MTA</acronym>或不选择它之后,网络配置菜单的下一 - 个选项是 <guimenuitem>NFS client</guimenuitem> 客房端程序。</para> + 个选项是 <guimenuitem>NFS client</guimenuitem> 客户端程序。</para> - <para> <guimenuitem>NFS client</guimenuitem> 客房端可以使系统通过 <acronym>NFS</acronym> + <para> <guimenuitem>NFS client</guimenuitem> 客户端可以使系统通过 <acronym>NFS</acronym> 与服务器进行通信。 <acronym>NFS</acronym> 服务器通过<acronym>NFS</acronym> 协议可以使其它在网络上的机器来访问自己的文件系统。如果这台机器要作为一台 @@ -3038,7 +2810,7 @@ To change any of these settings later, edit /etc/rc.conf <para>接下来的 <acronym>NFS</acronym> 服务器选项,可以允许您把系统设备成 为一台<acronym>NFS</acronym> 服务器。这需要更多的信息来启动远程过程调 - 用( <acronym>RPC</acronym>)服务。 <acronym>RPC</acronym>用来连接调 + 用(<acronym>RPC</acronym>)服务。 <acronym>RPC</acronym>用来连接调 用两台机器上的程序。</para> <para>下一项是 <guimenuitem>Ntpdate</guimenuitem> 选项,处理时间同步。当选择它后, @@ -3177,11 +2949,11 @@ To change any of these settings later, edit /etc/rc.conf </figure> <para>您可以通过许多方法来配置 X server。在认真读了所有的说明后, - 请使用方向键来选择一种配置方式,并按<keycap>Enter</keycap>。 + 请使用方向键来选择一种配置方式,并按<keycap>Enter</keycap> 键确认。</para> <para><application>xf86cfg</application> 和 - <application>xf86cfg -textmode</application> 配置方法可能会使屏幕黑屏一会 + <application>xf86cfg -textmode</application> 配置方法可能会使屏幕黑屏一会, 过一会即会启动。要有耐心。</para> @@ -3341,7 +3113,7 @@ Please answer the following question with either 'y' or 'n'. Do you want to select additional XKB options (group switcher, group indicator, etc.)? n</screen> - <para>接下来,我们要配置显示器。不要超过您显示器的刷新频率,这样可以 + <para>接下来,我们要配置显示器。不要超过您显示器的刷新频率,这样可能 会损坏您的显示器。如果您有疑问,请参考其它信息后再做配置。</para> <screen>Now we want to set the specifications of the monitor. The two critical @@ -3625,7 +3397,7 @@ failed. Would you like to try again? 就可以使用 <application>xvidtune</application> 来调整显示的高度和宽度以及显示器的中心位置。</para> <para>一些不适当的配置可能会损坏您的设备。如果在使用它们前存在疑虑,请不要 - 安装它们。可以使用监视器的控制工具来调整X窗口的显示。与文本显示模式不同 + 安装它们。可以使用监视器的控制工具来调整X窗口的显示。与文本显示模式不同 它更容易损坏设备。</para> <para>在调整这些参数前,请阅读 &man.xvidtune.1; 手册。</para> @@ -4202,8 +3974,8 @@ Please press any key to reboot.</screen> <para>先检查您的硬件,确保您的硬件被支持。</para> - <para>如果您的硬件能够被扶持,但还是会出问题,那就重新启动计算机。当出现 - 内核配置信息的时候,重新配置一下硬件信息。因为绝大多数硬件的IRQ,淡IO地 + <para>如果您的硬件能够被支持,但还是会出问题,那就重新启动计算机。当出现 + 内核配置信息的时候,重新配置一下硬件信息。因为绝大多数硬件的IRQ,IO地 址,DMA通道都有它们的生产商预先进行默认配置。如果您的硬件已经重新装配了, 就需要使用配置编辑器告诉FreeBSD到哪里去找相关信息。</para> @@ -4222,7 +3994,7 @@ Please press any key to reboot.</screen> <warning> <para>不要禁用安装过程中您会用到的驱动程序, 例如显示 <devicename>sc0</devicename>。 - 如果安装程序在修改了某些配置之后安装程序行为吊诡或失败, + 如果安装程序在修改了某些配置之后安装程序行为诡异或失败, 您可能修改或删除了某些不应删除的组件。 如果遇到这种情况, 应重新启动以便尝试其他设置。</para> </warning> @@ -4604,8 +4376,7 @@ Please press any key to reboot.</screen> 这样您可以安装 FreeBSD, 并从网上通过 ports/packages 系统 (参见 <xref linkend="ports">) 根据需要下载和安装第三方软件包。</para> - <para>如果您正打算安装 - &os; 4.<replaceable>X</replaceable> 版本, + <para>如果您正打算安装 &os; 并同时选择一些第三方软件包, 则可以下载第一张光盘的镜像文件。</para> @@ -4712,11 +4483,11 @@ Please press any key to reboot.</screen> <para>如果您在另外一台FreeBSD的机器上做了启动盘的话,进行格式化是一个不 错的主意。虽然您不需要把每张盘都做成DOS文件系统。您也可以使用 - <command>disklabel</command> 和 <command>newfs</command> + <command>bsdlabel</command> 和 <command>newfs</command> 命令来创建一个UFS文件系统,具体操作按下面的顺序进行:</para> <screen>&prompt.root; <userinput>fdformat -f 1440 fd0.1440</userinput> -&prompt.root; <userinput>disklabel -w -r fd0.1440 floppy3</userinput> +&prompt.root; <userinput>bsdlabel -w -r fd0.1440 floppy3</userinput> &prompt.root; <userinput>newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0</userinput></screen> <note> @@ -4764,11 +4535,6 @@ Please press any key to reboot.</screen> 每一个发行包都在一个目录中,例如 <emphasis>base</emphasis> 发行包可以在 <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/base/">&rel.current;/base/</ulink>目录中找到。</para> - <note> - <para>在 4.X 和其它老版本的 &os; the <quote>base</quote>发行包被叫做 - <quote>bin</quote>. 如果您使用这些版本的话,请调整上例中的命令和URLS.</para> - </note> - <para>对很多发行包来说,如果您希望从 &ms-dos;分区安装的话(您有足够的空间), 安装 <filename>c:\freebsd</filename> — 下的每个文件-这个 <literal>BIN</literal> 发行包只是最低限度的要求。</para> @@ -4782,7 +4548,7 @@ Please press any key to reboot.</screen> <secondary>from QIC/SCSI Tape</secondary> </indexterm> <para>从磁带安装也许是最简单的方式,比在线使用 FTP 安装或使用 CDROM 还快。 - 安装的程序假设是简单地被压缩在磁带上。在您到所有配置文件后,简单的解开它们, + 安装的程序假设是简单地被压缩在磁带上。在您得到所有配置文件后,简单地解开它们, 用下面的命令:</para> <screen>&prompt.root; <userinput>cd /freebsd/distdir</userinput> @@ -4848,8 +4614,8 @@ Please press any key to reboot.</screen> <para>通过网络安装,您可能需要知道IP地址,地址掩码,还有机器的名字。如果您 通过PPP进行安装,就不需要静态的IP地址,IP地址会由ISP给您自动指派。您的系统 管理员会告诉您通过网络安装的细节。如果您通过主机名而不是IP地址来访问其它主 - 机,需要有一个域名服务器或一个网关地址(如果您使用PPP进行安装,那它就您的 - 的ISP的IP地址)。如果您要通过一个HTTP的代理服务器进行FTP安装,需要一个代理 + 机,需要有一个域名服务器或一个网关地址(如果您使用PPP进行安装,那它就是您的 + ISP的IP地址)。如果您要通过一个HTTP的代理服务器进行FTP安装,需要一个代理 服务器地址。如果您不知道这些,在安装 <emphasis>之前</emphasis>可以询问 您的系统管理员或您的ISP服务商。</para> diff --git a/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml b/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml index 73ae29100e..40d6226b76 100644 --- a/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Chinese Documentation Project - Original Revision: 1.163 + Original Revision: 1.164 $FreeBSD$ --> @@ -249,14 +249,6 @@ </listitem> <listitem> - <para>如果您正运行 &os; 4.0 以前的版本, 而且您 - <emphasis>不是</emphasis> 准备使用 - <command>make buildworld</command> 来升级到 &os; 4.0 - 或更高版本的话, 则应使用方法1。 - </para> - </listitem> - - <listitem> <para> 如果您在没有升级源代码的情况下编译一个新内核(也许您只想为内核添加一个新的选项, 如<literal>IPFIREWALL</literal>),可以使用任何一种方法。 </para> @@ -374,27 +366,13 @@ linkend="kernelconfig-noboot">无法启动</link>, 请参考那一节。</para> <note> - <para>在 &os; 4.X 以及更早的版本中, 内核被安装到 - <filename>/kernel</filename> 而模块则放到 <filename - class="directory">/modules</filename>, 旧的内核则被备份到 - <filename>/kernel.old</filename>。 - 其他与启动过程相关的文件, 如 - &man.loader.8; 以及配置则放在 + <para>其他与启动过程相关的文件, 如 + &man.loader.8; 及其配置, 则放在 <filename>/boot</filename>。 第三方或定制的模块也可以放在 - <filename class="directory">/modules</filename>, + <filename class="directory">/boot/kernel</filename>, 不过应该注意保持模块和内核的同步时很重要的, 否则会导致不稳定和错误。</para> </note> - - <note> - <para>如果添加了新设备 (例如声卡) - 并在运行 &os; 4.X 或更早的版本, - 则可能好需要在 - <filename class="directory">/dev</filename> 目录中添加它们的设备节点之后才能使用。 - 欲了解详情,请参考本章稍后的 <link - linkend="kernelconfig-nodes">制作设备节点</link> - 一节。</para> - </note> </sect1> <sect1 id="kernelconfig-config"> @@ -414,12 +392,7 @@ <primary>内核</primary> <secondary>NOTES</secondary> </indexterm> - <indexterm> - <primary>kernel</primary> - <secondary>LINT</secondary> - </indexterm> <indexterm><primary>NOTES</primary></indexterm> - <indexterm><primary>LINT</primary></indexterm> <indexterm> <primary>内核</primary> <secondary>配置文件</secondary> @@ -438,24 +411,8 @@ 找到。</para> <note> - <para><filename>NOTES</filename> 在 &os; 4.X 中并不存在。 - 作为替代, 请参考 <filename>LINT</filename> 文件来获得关于 - <filename>GENERIC</filename> 中的选项和设备详细介绍。 - <filename>LINT</filename> 在 4.X 中完成了两项使命: - 为构建定制内核提供可选的选项, 以及提供尽可能多的调整为非默认值的选项。 - 这么做背后的原因是这种配置文件能够帮助 (并且仍然能) - 测试新代码以及现有代码的修改是否会造成与内核其他部分的冲突。 - 然而, 内核配置的架构在 5.X 中经历了巨大的变化; - 其中的一个例子是设备驱动的选项被移到了 <literal>hints</literal> - 中, 从而可以随时修改并在启动时动态加载, - 而 <filename>LINT</filename> 不能再包含这些 hints 了。 - 由于这个以及许多其他原因, - 决定将 <filename>LINT</filename> 改名为 - <filename>NOTES</filename>, 而保留它的主要是为了前面所说的第一个原因: - 给出可用的选项, 为用户提供方便。</para> - - <para>在 &os; 5.X 和以后的版本中您仍然可以通过下面的命令生成 - <filename>LINT</filename> 文件:</para> + <para>如果您需要一份包含所有选项的文件, + 例如用于测试目的, 则应以 <username>root</username> 身份执行下列命令:</para> <screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/conf && make LINT</userinput></screen> </note> @@ -545,11 +502,11 @@ cpu I686_CPU</programlisting> <programlisting>#To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices.</programlisting> - <para>在&os; 5.X和更新的版本里面,&man.device.hints.5;被用来配置设备驱动选项。 - 在启动的时候&man.loader.8;将会检查缺省位置<filename>/boot/devicehints</filename>。 - 使用<literal>hints</literal>选项您就可以把这些hints静态编译进内核。 - 这样就没有必要在<filename>/boot</filename>下创建<filename>devicehints</filename>。 - </para> + <para>&man.device.hints.5; 可以用来配置设备驱动选项。 + 在启动的时候 &man.loader.8; 将会检查缺省位置 <filename>/boot/devicehints</filename>。 + 使用 <literal>hints</literal> 选项您就可以把这些 hints 静态编译进内核。 + 这样就没有必要在 + <filename>/boot</filename>下创建<filename>devicehints</filename>。</para> <!-- XXX: Add a comment here that explains when compiling hints into the kernel is a good idea and why. --> @@ -659,24 +616,20 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENT</progra <programlisting>options PROCFS # Process filesystem</programlisting> <para>进程文件系统。 这是一个挂接在 <filename>/proc</filename> - 的一个 <quote>伪装的</quote> 文件系统, - 允许类似 &man.ps.1; 这样的程序给出正在运行的进程的更多信息。 - 在 &os; 5.X 和更高版本中, 绝大多数情况下都不再需要 - <literal>PROCFS</literal>, - 因为绝大多数调试和监视工具都已经进行了修改, - 不再需要 <literal>PROCFS</literal>: 与 &os; 4.X - 不同, 新安装的 &os; 5.X 默认情况下并不挂接它。 - 此外, 6.X-CURRENT 内核在使用 - <literal>PROCFS</literal> 时还必须加入 - <literal>PSEUDOFS</literal> 的支持:</para> + 的一个 <quote>假扮的</quote> 文件系统, 其作用是允许类似 &man.ps.1; + 这样的程序给出正在运行的进程的进一步信息。 多数情况下, + 并不需要使用 <literal>PROCFS</literal>, 因为绝大多数调试和监控工具, + 已经进行了一系列修改, 使之不再依赖 + <literal>PROCFS</literal>: 默认安装的系统中并不会挂接这一文件系统。 + 此外, 在 6.X-STABLE 内核中, + 如果希望使用 <literal>PROCFS</literal>, + 就必须加入 <literal>PSEUDOFS</literal> 的支持:</para> <programlisting>options PSEUDOFS # Pseudo-filesystem framework</programlisting> - <para><literal>PSEUDOFS</literal> 在 &os; 4.X 上不可用。</para> - <programlisting>options GEOM_GPT # GUID Partition Tables.</programlisting> - <para>这个选项提供了在一个磁盘上使用大量的分区的能力。</para> + <para>这个选项提供了在磁盘上使用大量的分区的能力。</para> <programlisting>options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]</programlisting> @@ -903,8 +856,7 @@ device atkbdc # AT keyboard controller</programlisting> <programlisting># splash screen/screen saver device splash # Splash screen and screen saver support</programlisting> - <para>启动时出现了 splash 画面!屏幕保护程序也需要它。 - 在 &os; 4.X 中,应写作 <literal>pseudo-device splash</literal> 。</para> + <para>启动时的 splash 画面! 屏幕保护程序也需要这一选项。</para> <programlisting># syscons is the default console driver, resembling an SCO console device sc</programlisting> @@ -914,7 +866,7 @@ device sc</programlisting> <filename>termcap</filename> 这样的终端数据库函数库赖访问控制台, 因此无论您使用这个或与 <literal>VT220</literal> 兼容的 <literal>vt</literal> 都没有什么关系。 - 如果您在运行这种控制台时使用全屏幕程序时发生问题, 清在登录之后将 + 如果您在运行这种控制台时使用全屏幕程序时发生问题, 请在登录之后将 <envar>TERM</envar> 变量设置为 <literal>scoansi</literal>。</para> <programlisting># Enable this for the pcvt (VT220 compatible) console driver @@ -1104,9 +1056,7 @@ device loop # Network loopback</programlisting> <para>这是 TCP/IP 的通用回环设备。 如果您 telnet 或 FTP 到 <hostid>localhost</hostid> (也就是 <hostid role="ipaddr">127.0.0.1</hostid>) 则将通过这个设备回到本机。 - 这个设备是 <emphasis>必需的</emphasis>。 在 - &os; 4.X 中, 则应使用 <literal>pseudo-device - loop</literal>。</para> + 这个设备是 <emphasis>必需的</emphasis>。</para> <programlisting>device mem # Memory and kernel memory devices</programlisting> @@ -1125,32 +1075,24 @@ device loop # Network loopback</programlisting> <programlisting>device ether # Ethernet support</programlisting> <para><literal>ether</literal> 只有在使用以太网卡时才需要。 - 它包含了通用的以太网协议代码。在 - &os; 4.X 中应写作 <literal>pseudo-device - ether</literal>.</para> + 它包含了通用的以太网协议代码。</para> <programlisting>device sl # Kernel SLIP</programlisting> <para><literal>sl</literal> 用以提供 SLIP 支持。 目前它几乎已经完全被 PPP 取代了, 因为后者更容易配置, - 而且更适合调制解调器之间的连接, 并提供了更强大的功能。 - 在 &os; 4.X 中, 这一行应写作 <literal>pseudo-device - sl</literal>.</para> + 而且更适合调制解调器之间的连接, 并提供了更强大的功能。</para> <programlisting>device ppp # Kernel PPP</programlisting> <para>这一选项用以提供内核级的 PPP 支持, 用于拨号连接。 也有以用户模式运行的 PPP 实现, 使用 - <literal>tun</literal> 并提供包括按需拨号在内的更为灵活的功能。 - 在 &os; 4.X 中应写作 - <literal>pseudo-device ppp</literal>.</para> + <literal>tun</literal> 并提供包括按需拨号在内的更为灵活的功能。</para> <programlisting>device tun # Packet tunnel.</programlisting> <para>它会被用户模式的 PPP 软件用到。 - 参考本书的 <link linkend="userppp">PPP</link> 以了解更多的细节。 - 在 &os; 4.X 中则应使用 <literal>pseudo-device - tun</literal>。</para> + 参考本书的 <link linkend="userppp">PPP</link> 以了解更多的细节。</para> <programlisting><anchor id="kernelconfig-ptys"> device pty # Pseudo-ttys (telnet etc)</programlisting> @@ -1161,35 +1103,21 @@ device pty # Pseudo-ttys (telnet etc)</programlisting> <application>xterm</application>, 以及一些其它程序如 <application>Emacs</application> 等。</para> - <note><para>在 &os; 4.X 中, - 您应该使用 <literal>pseudo-device pty - <replaceable>number</replaceable></literal>。 <literal>pty</literal> - 后面的 <replaceable>number</replaceable> 用于指定要创建的 - <literal>pty</literal> 数量。 如果您需要多于默认的同时 - 16 个 <application>xterm</application> 窗口或远程登录会话, - 则应相应的提高这个值, 其上限是 256。</para></note> - <programlisting>device md # Memory <quote>disks</quote></programlisting> - <para>内存盘伪设备。 对于 &os; 4.X 则应使用 - <literal>pseudo-device md</literal>。</para> + <para>内存盘伪设备。</para> <programlisting>device gif # IPv6 and IPv4 tunneling</programlisting> <para>它实现了在 IPv4 上的 IPv6 隧道、 IPv6 上的 IPv4 隧道、 IPv4 上的 IPv4 隧道、 以及IPv6 上的 IPv6隧道。 - 从 &os; 4.4 开始 <literal>gif</literal> 设备具有了 - <quote>自动克隆</quote> 能力, 因此只需指定 - <literal>pseudo-device gif</literal>。 - 更早版本的 &os; 4.X 需要手工指定一个数字, 例如 - <literal>pseudo-device gif 4</literal>。</para> + <literal>gif</literal> 设备是 + <quote>自动克隆</quote> 的, 它会根据需要自动创建设备节点。</para> <programlisting>device faith # IPv6-to-IPv4 relaying (translation)</programlisting> <para>这个伪设备能捕捉发给它的数据包,并把它们转发给 - IPv4/IPv6 翻译服务程序。在 - &os; 4.X 中,应写作 - <literal>pseudo-device faith 1</literal>。</para> + IPv4/IPv6 翻译服务程序。</para> <programlisting># The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! @@ -1198,9 +1126,7 @@ device bpf # Berkeley packet filter</programlisting> <para>这是 Berkeley 包过滤器。这个伪设备允许网络接口被置于混杂模式, 从而,截获广播网 (例如,以太网) 上的每一个数据包。 - 截获的数据报可以保存到磁盘上,也可以使用 &man.tcpdump.1; 程序来分析。 - 在 &os; 4.X 中,应写作 - <literal>pseudo-device bpf</literal>。</para> + 截获的数据报可以保存到磁盘上,也可以使用 &man.tcpdump.1; 程序来分析。</para> <note> <para>&man.bpf.4; 设备也被用于 @@ -1253,13 +1179,12 @@ device fwe # Ethernet over FireWire (non-standard!)</programl 因为4GB的限制,Intel在&pentium;及后续的CPUs上增加了36位物理地址的支持。 </para> - <para>&intel; &pentium; Pro和后续的CPUs允许内存地址扩展到64GB.(<acronym>PAE</acronym>) - &os;通过<option>PAE</option>选项来支持这个能力。 - 在&os; 4.X系列里面,4.9-RELEASE开始支持,&os; 5.X系列里面,从5.1-RELEASE开始支持。 - in the 4.X series of &os; beginning with 4.9-RELEASE and - in the 5.X series of &os; beginning with 5.1-RELEASE。因为Intel架构的限制, - 高于或低于4GB都没有什么区别,内存分配到大于4GB仅仅是增加了可利用的内存池。 - </para> + <para>物理地址扩展 (<acronym>PAE</acronym>) 是 + &intel; &pentium; Pro和后续的 CPU 提供的一种允许将内存地址扩展到 64GB + 的功能, &os; 的所有最新版本均支持此功能, 并通过 + <option>PAE</option> 选项来启用这个能力。 因为Intel架构的限制, + 高于或低于 4GB 都没有什么区别, + 超过 4GB 的内存分配只是简单地添加到可用内存池中。</para> <para>为了让内核支持<acronym>PAE</acronym>,只要增加下面这一行到配置文件:</para> @@ -1284,10 +1209,11 @@ device fwe # Ethernet over FireWire (non-standard!)</programl </listitem> <listitem> - <para>没有使用&man.bus.dma.9;界面的设备驱动程序在打开了<acronym>PAE</acronym>支持的内核里面 - 会导致数据腐化(corruption)。因为这个原因,&os; 5.X的<filename>PAE</filename>内核配置文件 - 把所有在打开了<acronym>PAE</acronym>的内核上不能工作的驱动程序排除在外。 - </para> + <para>没有使用 &man.bus.dma.9; 接口的设备驱动程序在打开了 + <acronym>PAE</acronym> 支持的内核中会导致数据损坏。 + 因为这个原因, <filename>PAE</filename> 内核配置文件 + 会把所有在打开了 <acronym>PAE</acronym> + 的内核上不能工作的驱动程序排除在外。</para> </listitem> <listitem> @@ -1311,64 +1237,6 @@ device fwe # Ethernet over FireWire (non-standard!)</programl </sect2> </sect1> - <sect1 id="kernelconfig-nodes"> - <title>创建设备节点</title> - - <indexterm><primary>设备节点</primary></indexterm> - <indexterm> - <primary><command>MAKEDEV</command></primary> - </indexterm> - - <para><emphasis>如果您在运行 &os; 5.0 或更高版本, - 则可以略过这节。 新版本使用 - &man.devfs.5; 来分配设备节点, 这一过程对用户是透明的。</emphasis></para> - - <para>内核中的几乎每个设备在 <filename>/dev</filename> 目录中都有对应的 - <quote>节点</quote> 项。 这些节点看上去像是普通的文件, - 但事实上却是程序在使用对应的设备时, 与内核联系的入口。 - Shell 脚本 <filename>/dev/MAKEDEV</filename> - 在首次安装操作系统时会创建几乎所有能够支持的设备节点。 - 然而, 它并不会创建 <emphasis>所有的</emphasis> 节点, - 因此当您增加了某些设备的支持时, 就需要检查这个目录中是否有对应的项了, - 如果没有, 就应该添加它们。 这有一个简单的例子:</para> - - <para>假定在内核中加入了IDE CD-ROM的支持。可以这样加入:</para> - - <programlisting>device acd0</programlisting> - - <para>这意味着您应当在<filename>/dev</filename>目录下找一些以<filename>acd0</filename>为起点的入口, - 通常后面有一个字母,像是以<literal>c</literal>,或者<literal>r</literal>开头,表示这是一个<quote>raw</quote>设备。 - 如果那些文件不在那儿,就必须改变到<filename>/dev</filename>目录然后键入:</para> - - <indexterm> - <primary><command>MAKEDEV</command></primary></indexterm> - <screen>&prompt.root; <userinput>sh MAKEDEV acd0</userinput></screen> - - <para>这些脚本完成后,您要在<filename>/dev</filename>目录下确认有<filename>acd0c</filename>和 - <filename>racd0c</filename>等几个入口,这表示程序已经正确执行。 - </para> - - <para>以下是加入声卡节点的例子:</para> - - <screen>&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen> - - <note> - <para>当创建完诸如声卡这样的设备节点时,如果其他人有权访问您的机器, - 可能有必要在<filename>/etc/fbtab</filename>文件中添加这些节点来保护系统安全。 - 更多的信息参考&man.fbtab.5; - </para> - </note> - - <para>依上述的简单程序,建立任何不在<filename>GENERIC</filename>里的硬件设备节点 - </para> - - <note> - <para> 所有的SCSI控制器都使用一样的设备节点,所以您无须重新建立节点。 - 另外,网卡与SLIP/PPP虚拟设备并没有任何设备节点,所以您不必担心怎么建立节点。 - </para> - </note> - </sect1> - <sect1 id="kernelconfig-trouble"> <title>如果出现问题怎么办</title> @@ -1404,25 +1272,6 @@ device fwe # Ethernet over FireWire (non-standard!)</programl </varlistentry> <varlistentry> - <term>安装新内核失败:</term> - - <listitem> - <para>如果内核编译得很顺利, 但安装失败 - (即 <command>make install</command> 或 - <command>make installkernel</command> 命令失败), - 第一件事是检查您的系统是否是以 1 或更高的安全级运行的 - (参见 &man.init.8;)。 内核安装过程将尝试去掉原有内核的 - immutable (不可改) 标志, 并在新的内核上设置它。 - 由于安全级 1 或更高的安全级会阻止修改系统中任何文件的这个标志, - 因此安装内核需要 0 或者更低的安全级。</para> - - <para>不过这只对 &os; 4.X 以及更早的版本有效。 - &os; 5.X 以及之后的版本并不会给内核设置不可改标志, - 因此安装失败可能说明发生了更深层次的问题。</para> - </listitem> - </varlistentry> - - <varlistentry> <term>内核无法启动:<anchor id="kernelconfig-noboot"></term> @@ -1430,9 +1279,9 @@ device fwe # Ethernet over FireWire (non-standard!)</programl <para>如果您的内核无法启动, 或不识别您的设备, 千万别慌! 非常幸运的是, &os; 有一个很好的机制帮助您从不兼容的内核恢复。 在 &os; 启动加载器那里简单地选择一下要启动的内核就可以了。 - 当系统在引导菜单的 10 秒倒计时时进入它。 按下除了 - <keycap>Enter</keycap> 之外的任意键, <command>unload</command> - 然后输入 + 当系统在引导菜单的 10 秒倒计时时进入它, 方法是选择 <quote>Escape to a loader + prompt</quote> 选项, 其编号为 6。 输入 + <command>unload kernel</command>, 然后输入 <command>boot /boot/<replaceable>kernel.old</replaceable>/kernel</command>, 或者其他任何一个可以正确引导的内核即可。 当重新配置内核时, 保持一个已经证明能够正常启动的内核永远是一个好习惯。</para> @@ -1457,20 +1306,6 @@ device fwe # Ethernet over FireWire (non-standard!)</programl <screen>&prompt.root; <userinput>mv /boot/kernel /boot/kernel.bad</userinput> &prompt.root; <userinput>mv /boot/<replaceable>kernel.good</replaceable> /boot/kernel</userinput></screen> - <para>对于 &os; 5.X 之前的版本, 正确的 - <quote>解除</quote> <command>make</command> - 所实施的保护的命令 (为了把另一个内核永久性地挪回来) 是:</para> - - <screen>&prompt.root; <userinput>chflags noschg /kernel</userinput></screen> - - <para>如果您发现您不能这样做,您的系统的安全级别可能大于0了。在<filename>/etc/rc.conf</filename>里面编辑 - <literal>kern_securelevel</literal>并把它设置为<literal>-1</literal>然后重启。 - 当您很满意这个内核的时候,您可以再把设置改回去。</para> - - <para>另外,如果您要<quote>锁住</quote>内核或其他文件,以致它不能被移动或修改, - 可以用下面的命令:</para> - - <screen>&prompt.root; <userinput>chflags schg /kernel</userinput></screen> </note> </listitem> </varlistentry> @@ -1480,7 +1315,7 @@ device fwe # Ethernet over FireWire (non-standard!)</programl <listitem> <para>如果您安装了一个与系统中内建工具版本不同的内核, - 例如在 4.x 系统上安装了 5.x 的内核, 许多用于检查系统状态的工具如 + 例如在 -STABLE 系统上安装了 -CURRENT 的内核, 许多用于检查系统状态的工具如 &man.ps.1; 和 &man.vmstat.8; 都将无法正常使用。 您应该 <link linkend="makeworld">重新编译一个和内核版本一致的系统</link>。 这也是为什么一般不鼓励使用与系统其他部分版本不同的内核的一个主要原因。</para> diff --git a/zh_CN.GB2312/books/handbook/l10n/chapter.sgml b/zh_CN.GB2312/books/handbook/l10n/chapter.sgml index d9c79e338c..fb8ece46c2 100644 --- a/zh_CN.GB2312/books/handbook/l10n/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/l10n/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Chinese Documentation Project - Original Revision: 1.118 + Original Revision: 1.119 $FreeBSD$ --> @@ -427,12 +427,8 @@ keychange="<replaceable>fkey_number sequence</replaceable>"</programlisting> <primary><application>moused</application></primary> </indexterm> <para>默认情况下, &man.syscons.4;驱动程序的鼠标指针在字符集中占用0xd0-0xd3的范围。 - 如果您的语言使用这个范围,您必须把指针范围移出这个范围。 - 要在5.0以前的FreeBSD版本中启用工作区,需要在您的内核中添加下面这行:</para> - - <programlisting>options SC_MOUSE_CHAR=0x03</programlisting> - - <para>对于 FreeBSD 4.4 和以后的版本, 需要在 + 如果您的语言使用这个范围,您必须把指针范围移出这个范围。 + 要绕过这个问题, 需要在 <filename>/etc/rc.conf</filename> 中加入:</para> <programlisting>mousechar_start=3</programlisting> @@ -653,20 +649,14 @@ keychange="<replaceable>fkey_number sequence</replaceable>"</programlisting> <itemizedlist> <listitem> - <para> - 对于FreeBSD 5.0以前的版本,添加下面这行到内核配置文件: - </para> - - <programlisting>options SC_MOUSE_CHAR=0x03</programlisting> - - <para>对于 FreeBSD 4.4 和更高版本把下面一行加到 + <para>把下面一行加到 <filename>/etc/rc.conf</filename>:</para> <programlisting>mousechar_start=3</programlisting> </listitem> <listitem> - <para>在<filename>/etc/rc.conf</filename>里面使用如下设置:</para> + <para>并在 <filename>/etc/rc.conf</filename> 里面增加如下设置:</para> <programlisting>keymap="ru.koi8-r" scrnmap="koi8-r2cp866" diff --git a/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml b/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml index 8ff3522137..2614e184c4 100644 --- a/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml @@ -1,7 +1,7 @@ <!-- The FreeBSD Documentation Project - Original Revision: 1.130 + Original Revision: 1.131 $FreeBSD$ --> @@ -1399,9 +1399,7 @@ with 128 MB,和一个EIDE DVD-ROM驱动器。RAID controller被挂上2个18 GB硬 <title>安装FreeBSD</title> <para>首先需要安装 FreeBSD。 - 有很多方法来完成这个工作 (FreeBSD 4.3 通过 FTP - 安装, 而 FreeBSD 4.5 则是从 RELEASE CD - 安装的)。 要了解进一步的情况请参考 <xref + 有很多方法来完成这个工作。 要了解进一步的情况请参考 <xref linkend="install-diff-media">。</para> <sect3 id="disk-layout"> @@ -1849,17 +1847,18 @@ options SEMMNS=1024 #number of semaphores in system options SEMMNI=520 #number of semaphore identifiers options SEMUME=100 #number of UNDO keys</programlisting> + <para>这篇文档中指定的最小值是来自&sap;。 没有针对Linux的描述, + 看看HP-UX的相关介绍了解更多信息。 安装4.6C SR2需要更多的内存, + 共享内存比 <application>&sap;</application> 和 + <application>&oracle;</application> 需要的还多, + 所以尽量为共享内存选一个大值。</para> - <para>这篇文档中指定的最小值是来自&sap;。没有针对Linux的描述,看看HP-UX的相关介绍了解更多信息 。 - 安装4.6C SR2需要更多的内存,共享内存比<application>&sap;</application>和 - <application>&oracle;</application>需要的还多,所以尽量为共享内存选一个大值。 - </para> - - <note><para>FreeBSD 4.5在&i386;上缺省应该设置<literal>MAXDSIZ</literal>和 - <literal>DFLDSIZ</literal>到1 GB。否则,奇怪的错误像 + <note><para>在 &i386; 上 的 FreeBSD 默认配置中, + 应将 <literal>MAXDSIZ</literal> 和 <literal>DFLDSIZ</literal> + 设置为 1 GB。否则, 会出现类似 <errorname>ORA-27102: out of memory</errorname>和 <errorname>Linux Error: 12: Cannot allocate memory</errorname> - 会出现。</para></note> + 这样的奇怪的错误。</para></note> </sect3> </sect2> diff --git a/zh_CN.GB2312/books/handbook/mac/chapter.sgml b/zh_CN.GB2312/books/handbook/mac/chapter.sgml index 33816cdbc9..50784461d9 100644 --- a/zh_CN.GB2312/books/handbook/mac/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/mac/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.65 + Original Revision: 1.67 $FreeBSD$ --> @@ -411,7 +411,7 @@ test: biba/high</screen> <sect4> <title>标签高级配置</title> - <para>如下所示, 用于 <literal>比较: 区间+ 区间</literal> 的数值等级数:</para> + <para>如下所示, 用于 <literal>comparison:compartment+compartment</literal> 的标签等级数:</para> <programlisting>biba/10:2+3+6(5:2+3-20:2+3+4+5+6)</programlisting> @@ -1483,7 +1483,7 @@ test: biba/low</screen> :passwordtime=91d:\ :umask=022:\ :ignoretime@:\ -:label=biba/10:</programlisting> +:label=biba/10(10-10):</programlisting> <para>并在 default 用户 class 中加入:</para> @@ -1524,8 +1524,8 @@ mac_seeotheruids_load="YES"</programlisting> <para>将 <username>nagios</username> 和 <username>www</username> 这两个用户归入不安全 class:</para> - <screen>&prompt.root; <userinput>pw usermod nagios -L default</userinput></screen> - <screen>&prompt.root; <userinput>pw usermod www -L default</userinput></screen> + <screen>&prompt.root; <userinput>pw usermod nagios -L insecure</userinput></screen> + <screen>&prompt.root; <userinput>pw usermod www -L insecure</userinput></screen> </sect2> <sect2> @@ -1630,8 +1630,8 @@ default_labels socket ?biba</programlisting> 下面的命令将完成此工作:</para> <screen>&prompt.root; <userinput>cd /etc/mail && make stop && \ -setpmac biba/equal make start && setpmac biba/10 apachectl start && \ -setpmac biba/10 /usr/local/etc/rc.d/nagios.sh forcestart</userinput></screen> +setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \ +setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart</userinput></screen> <para>再次检查是否一切正常。 如果不是的话, 请检查日志文件和错误信息。 此外, 还可以用 &man.sysctl.8; 来临时禁用 &man.mac.biba.4; diff --git a/zh_CN.GB2312/books/handbook/mail/chapter.sgml b/zh_CN.GB2312/books/handbook/mail/chapter.sgml index 4af20b1a41..4c84a79d78 100644 --- a/zh_CN.GB2312/books/handbook/mail/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/mail/chapter.sgml @@ -40,7 +40,7 @@ <itemizedlist> <listitem> - <para>那些软件与收发电子邮件有关。</para> + <para>哪些软件与收发电子邮件有关。</para> </listitem> <listitem> @@ -323,7 +323,7 @@ FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org</screen> <para>信箱可以在邮件服务器本地直接用 <acronym>MUA</acronym> 来进行操作。 这通常是通过 - <application>mutt</application> 或 &man.mail.1; 这样的用用程序实现的。 + <application>mutt</application> 或 &man.mail.1; 这样的应用程序实现的。 </para> </sect3> </sect2> @@ -603,7 +603,7 @@ postmaster@example.com postmaster@noc.example.net <para>先前已经提到,FreeBSD 中的 <application>sendmail</application> 已经安装了您的 - MTA (邮件传输代理程序)。因此它它负责着您的收发邮件的工作。</para> + MTA (邮件传输代理程序)。因此它负责着您的收发邮件的工作。</para> <para>然而,基于不同的理由,一些系统管理员想要改变他们系统的 MTA。这些理由从简单的想要尝试另一个 MTA,到需要一个特殊的特性或者 diff --git a/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml b/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml index 3c33973261..e9c280002a 100644 --- a/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Chinese Documentation Project - Original Revision: 1.416 + Original Revision: 1.419 $FreeBSD$ --> @@ -64,18 +64,6 @@ <listitem> <address> - <otheraddr>fastdiscs.com</otheraddr> - <street>6 Eltham Close</street> - <city>Leeds</city>, <postcode>LS6 2TY</postcode> - <country>United Kingdom</country> - Phone: <phone>+44 870 1995 171</phone> - Email: <email>sales@fastdiscs.com</email> - WWW: <otheraddr><ulink url="http://fastdiscs.com/freebsd/"></ulink></otheraddr> - </address> - </listitem> - - <listitem> - <address> <otheraddr>FreeBSD Mall, Inc.</otheraddr> <street>3623 Sanford Street</street> <city>Concord</city>, <state>CA</state> <postcode>94520-1405</postcode> @@ -2452,6 +2440,14 @@ doc/zh_*</screen> </varlistentry> <varlistentry> + <term>RELENG_5_5</term> + + <listitem> + <para>FreeBSD-5.5 安全分支。 只被安全公告和其它重要更新使用。</para> + </listitem> + </varlistentry> + + <varlistentry> <term>RELENG_5_4</term> <listitem> @@ -2621,6 +2617,14 @@ doc/zh_*</screen> <variablelist> <varlistentry> + <term>RELENG_6_1_0_RELEASE</term> + + <listitem> + <para>FreeBSD 6.1</para> + </listitem> + </varlistentry> + + <varlistentry> <term>RELENG_6_0_0_RELEASE</term> <listitem> @@ -2629,6 +2633,14 @@ doc/zh_*</screen> </varlistentry> <varlistentry> + <term>RELENG_5_5_0_RELEASE</term> + + <listitem> + <para>FreeBSD 5.5</para> + </listitem> + </varlistentry> + + <varlistentry> <term>RELENG_5_4_0_RELEASE</term> <listitem> diff --git a/zh_CN.GB2312/books/handbook/multimedia/chapter.sgml b/zh_CN.GB2312/books/handbook/multimedia/chapter.sgml index 669d5bc29b..e5699a0887 100644 --- a/zh_CN.GB2312/books/handbook/multimedia/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/multimedia/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Documentation Project - Original Revision: 1.115 + Original Revision: 1.116 $FreeBSD$ --> @@ -172,12 +172,6 @@ <command>cat /dev/sndstat</command> 来查询 <filename>/dev/sndstat</filename> 文件。</para> - <note> - <para>在 &os; 4.X 下,要加载所有的声卡驱动,您必须加载 - <filename>snd</filename> 模块而不是 - <filename>snd_driver</filename> 模块。</para> - </note> - <para>另外,您也可以把支持您声卡的代码静态地编译到内核里去。 下一节就采用这种方式支持硬件给出提示。 关于重新编译内核,请参考 <xref linkend="kernelconfig">。</para> @@ -190,10 +184,6 @@ <programlisting>device sound</programlisting> - <para>在 &os; 4.X 下,使用下面这行:</para> - - <programlisting>device pcm</programlisting> - <para>接下来就是加入对我们所用声卡的支持了。 首先需要确定我们的声卡需要使用哪一个驱动。 您可以参考 <ulink @@ -207,9 +197,7 @@ <para>一定要阅读驱动的联机手册了解如何使用它们。 关于内核配置文件中声卡驱动的写法, 也可以在 - <filename>/usr/src/sys/conf/NOTES</filename> 文件 - (对于 &os; 4.X, 则是 - <filename>/usr/src/sys/i386/conf/LINT</filename>)。</para> + <filename>/usr/src/sys/conf/NOTES</filename> 文件。</para> <para>非即插即用的 ISA 卡可能需要您为内核提供一些关于声卡配置的信息 (IRQ、 I/O 端口, 等等)。 这项工作可以通过 @@ -237,21 +225,11 @@ hint.sbc.0.flags="0x15"</programlisting> <para><filename>/boot/device.hints</filename> 文件的写法会在声卡驱动的联机手册中描述。 - 在 &os; 4.X 上,这些设定直接写进内核配置文件中。 - 对于我们的 ISA 卡这种情况,我们只要使用这行:</para> - - <programlisting>device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15</programlisting> + 在 &os; 4.X 上, 这些配置只能直接写进内核配置文件中。</para> <para>上面所展示的是默认的配置。 有时候, 您可能需要更改 IRQ 或其他配置, 以适应声卡的实际情况。 查看 &man.snd.sbc.4; 联机手册了解更多信息。</para> - - <note> - <para>在 &os; 4.X 下, - 一些主板内建声卡设备的系统需要在内核配置文件中配置下面的选项:</para> - - <programlisting>options PNPBIOS</programlisting> - </note> </sect3> </sect2> @@ -299,23 +277,6 @@ kld snd_ich (1p/2r/0v channels duplex default)</screen> <para>这里 <replaceable>filename</replaceable> 可以是任意文件。 这行命令会产生一些噪音,证明声卡果真在工作。</para> - <note> - <para>&os; 4.X 用户需要创建声卡设备节点才能使用。 - 如果在消息缓存中展示出来的卡是 <devicename>pcm0</devicename>, - 您必须以 <username>root</username> 来运行下面这两行:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen> - - <para>如果检测的声卡返回 <devicename>pcm1</devicename>, - 做上面展示的同样的步骤,只是要用 - <devicename>snd1</devicename> 来取代 - <devicename>snd0</devicename>。</para> - - <para><command>MAKEDEV</command> - 会创建一组设备节点让相关联应用程序的不同声音使用。</para> - </note> - <para>声卡混音级别可以通过 &man.mixer.8; 命令更改。 更多细节可以在 &man.mixer.8; 联机手册中找到。</para> @@ -697,13 +658,9 @@ link acd0 rdvd</programlisting> <para>另外,DVD解密要求调用专用的DVD-ROM函数,要求把许可定到DVD设备里。</para> <indexterm> - <primary>内核选项</primary> + <primary>kernel options (内核选项)</primary> <secondary>CPU_ENABLE_SSE</secondary> </indexterm> - <indexterm> - <primary>内核选项</primary> - <secondary>USER_LDT</secondary> - </indexterm> <para>前面讨论的一些 ports 要正确地联编有赖于下列内核的选项设置。 在试图联编之前, 把这一选项增加到内核配置文件中去, 联编新的内核, @@ -711,11 +668,6 @@ link acd0 rdvd</programlisting> <programlisting>options CPU_ENABLE_SSE</programlisting> - <note> - <para>在 &os; 4.X 上, 内核配置文件中还应加入 <literal>options USER_LDT</literal>。 - 这一选项在 &os; 5.X 和更新版本中不再提供。</para> - </note> - <para>为了增强用于共享内存的X11接口,推荐增加一些 &man.sysctl.8; 参数的值:</para> <programlisting>kern.ipc.shmmax=67108864 @@ -1287,7 +1239,9 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting> <screen>&prompt.root; <userinput>sysctl hw.bt848.tuner=6</userinput></screen> - <para>查看&man.bktr.4;手册和<filename>/usr/src/sys/conf/NOTES</filename>文件了解更多详细关于可用选项的资料。(如果您在&os; 4.X下,就使用<filename>/usr/src/sys/i386/conf/LINT</filename>代替 <filename>/usr/src/sys/conf/NOTES</filename>。)</para> + <para>请参见 &man.bktr.4; 手册和 + <filename>/usr/src/sys/conf/NOTES</filename> 文件, + 以了解更多详细关于可用选项的资料。</para> </sect2> <sect2> @@ -1406,13 +1360,6 @@ device uscanner</programlisting> <para>这表明我们的扫描仪正在使用 <filename>/dev/uscanner0</filename> 设备节点。</para> - - <note> - <para>在 &os; 4.X 上,USB 进程(&man.usbd.8;) - 必须运行来检测 USB 设备。要启用它, - 添加 <literal>usbd_enable="YES"</literal> 到您的 - <filename>/etc/rc.conf</filename> 文件中并重新启动。</para> - </note> </sect3> <sect3> @@ -1423,11 +1370,10 @@ device uscanner</programlisting> 取决于所使用的 SCSI 芯片, 您需要调整内核配置文件。 <filename>GENERIC</filename> 的内核支持最常用的 - SCSI 控制器。确保阅读 - <filename>NOTES</filename> 文件(在 &os; 4.x 下面是 - <filename>LINT</filename>)并在您的内核配置文件中添加正确的行。 + SCSI 控制器。 请阅读 + <filename>NOTES</filename> 文件并在您的内核配置文件中添加正确的行。 除了 SCSI 适配器驱动之外, - 您还需要在内核配置文件中有如下行:</para> + 您还需要在内核配置文件中增加下述配置:</para> <programlisting>device scbus device pass</programlisting> @@ -1609,9 +1555,7 @@ add path uscanner0 mode 660</programlisting> <programlisting>devfs_system_ruleset="system"</programlisting> <para>关于这些配置的进一步细节请参考联机手册 - &man.devfs.8;。 对于 &os; 4.X, 默认情况下 - <groupname>operator</groupname> 组已经拥有对 - <filename>/dev/uscanner0</filename> 的读和写权限。</para> + &man.devfs.8;。</para> <note> <para>当然, 考虑安全的原因, 在您将用户添加到任何组, 尤其是 diff --git a/zh_CN.GB2312/books/handbook/nanobsd/Makefile b/zh_CN.GB2312/books/handbook/nanobsd/Makefile deleted file mode 100644 index 480a71aeed..0000000000 --- a/zh_CN.GB2312/books/handbook/nanobsd/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# -# Build the Handbook with just the content from this chapter. -# -# Original Revision: 1.1 -# $FreeBSD$ -# - -CHAPTERS= nanobsd/chapter.sgml - -VPATH= .. - -MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} - -DOC_PREFIX?= ${.CURDIR}/../../../.. - -.include "../Makefile" diff --git a/zh_CN.GB2312/books/handbook/nanobsd/chapter.sgml b/zh_CN.GB2312/books/handbook/nanobsd/chapter.sgml deleted file mode 100644 index 797b6a3472..0000000000 --- a/zh_CN.GB2312/books/handbook/nanobsd/chapter.sgml +++ /dev/null @@ -1,432 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD Simplified Chinese Project - - Original Revision: 1.1 - $FreeBSD$ ---> - -<chapter id="nanobsd"> - <chapterinfo> - <authorgroup> - <author> - <firstname>Daniel</firstname> - <surname>Gerzo</surname> - <contrib>Written by </contrib> - <!-- 14 March 2006 --> - </author> - </authorgroup> - </chapterinfo> - - <title>NanoBSD</title> - - <sect1 id="nanobsd-intro"> - <title>NanoBSD 简介</title> - - <indexterm><primary>NanoBSD</primary></indexterm> - - <para><application>NanoBSD</application> 是 &a.phk; 目前正在开发的一项工具。 - 它可以用来创建用于嵌入式应用的 &os; 系统映像, - 以便配合袖珍闪存 (Compact Flash) 卡 (或其他大容量存储介质) 使用。</para> - - <para>这一工具也可以用来构建定制的安装映像, - 以方便安装和维护那些被称为 <quote>计算设备 (computer appliances)</quote> - 的系统。 计算设备通常在产品中将捆绑硬件和软件, - 或者换言之, 所有的应用程序都是预先装好的。 - 这些设备可以直接插到暨存的网络中, - 并 (几乎是) 立即投入使用。</para> - - <para><application>NanoBSD</application> 提供的功能包括:</para> - - <itemizedlist> - <listitem> - <para>可以和 &os; 一样使用 Ports 和预编译包— - 所有的应用程序都可以在 <application>NanoBSD</application> 映像中直接使用, - 而方式与 &os; 完全一样。</para> - </listitem> - - <listitem> - <para>不减少功能 — 能够使用 &os; 做的任何工作, 都可以在 - <application>NanoBSD</application> 中使用, - 除非您在创建 <application>NanoBSD</application> 映像时, - 明确地删去它们。</para> - </listitem> - - <listitem> - <para>所有对象在运行时均是只读的 — 可以安全地拔掉电源插小。 - 在系统非正常关闭之后, 无需运行 - &man.fsck.8;。</para> - </listitem> - - <listitem> - <para>便于联编和定制 — 只需使用一个 shell 脚本和一个配置文件, - 您可以很容易地裁减和定制适于任意需求的映像。</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="nanobsd-howto"> - <title>如何使用 NanoBSD</title> - - <sect2 id="nanobsd-design"> - <title>NanoBSD 的设计</title> - - <para>一旦将映像存入介质, 就可以用它来引导 <application>NanoBSD</application> - 了。 默认情况下, 大容量存储器会划分为三个区:</para> - - <itemizedlist> - <listitem> - <para>两个映像区: <literal>code#1</literal> - 和 <literal>code#2</literal>。</para> - </listitem> - - <listitem> - <para>一个配置文件区, 运行环境中, - 可以将其挂接到 <filename role="directory">/cfg</filename> 目录下。</para> - </listitem> - </itemizedlist> - - <para>这些分区默认情况下以只读方式挂接。</para> - - <para><filename role="directory">/etc</filename> 和 - <filename role="directory">/var</filename> 目录均为 - &man.md.4; (malloc) 盘。</para> - - <para>配置文件分区保存在 - <filename role="directory">/cfg</filename> 目录。 - 它包含了用于 <filename role="directory">/etc</filename> - 目录的文件, 在启动之后暂时以只读方式挂接。 因此, - 在需要从 <filename role="directory">/etc</filename> 向 - <filename role="directory">/cfg</filename> 目录复制所进行的、 - 希望在重启时保持不变的配置时, 需要进行一些额外的操作。</para> - - <example> - <title>在 <filename>/etc/resolv.conf</filename> 中进行需要保持的修改</title> - - <screen>&prompt.root; <userinput>vi /etc/resolv.conf</userinput> -[...] -&prompt.root; <userinput>mount /cfg</userinput> -&prompt.root; <userinput>cp /etc/resolv.conf /cfg</userinput> -&prompt.root; <userinput>umount /cfg</userinput></screen> - </example> - - <note> - <para>只有在系统启动过程中, 以及需要修改配置文件的场合, 才需要挂接包含 - <filename role="directory">/cfg</filename> 的那个分区。</para> - - <para>在任何时候都保持挂接 <filename role="directory">/cfg</filename> - 不是一个好主意, 特别是当您把 <application>NanoBSD</application> - 放在不适合进行大量写操作的分区时 - (由于文件系统的同步进程会定期向系统盘写一些数据)。</para> - </note> - </sect2> - - <sect2> - <title>构建 NanoBSD 映像</title> - - <para><application>NanoBSD</application> 映像是通过使用非常简单的 - <filename>nanobsd.sh</filename> shell 脚本来构建的, 这个脚本可以在 - <filename role="directory"><replaceable>/usr</replaceable>/src/tools/tools/nanobsd</filename> - 目录中找到。 这个脚本建立的映像文件, 可以用 &man.dd.1; 工具复制到存储介质上。</para> - - <para>构建 - <application>NanoBSD</application> 映像所需的命令是:</para> - - <screen>&prompt.root; <userinput>cd /usr/src/tools/tools/nanobsd</userinput> <co id="nbsd-cd"> -&prompt.root; <userinput>sh nanobsd.sh</userinput> <co id="nbsd-sh"> -&prompt.root; <userinput>cd /usr/obj/nanobsd.full</userinput> <co id="nbsd-cd2"> -&prompt.root; <userinput>dd if=_.disk.full of=/dev/da0 bs=64k</userinput> <co id="nbsd-dd"></screen> - - <calloutlist> - <callout arearefs="nbsd-cd"> - <para>进入 <application>NanoBSD</application> 构建脚本的主目录。</para> - </callout> - - <callout arearefs="nbsd-sh"> - <para>开始构建过程。</para> - </callout> - - <callout arearefs="nbsd-cd2"> - <para>进入构建好的映像文件所在的目录。</para> - </callout> - - <callout arearefs="nbsd-dd"> - <para>在存储介质上安装 <application>NanoBSD</application>。</para> - </callout> - </calloutlist> - </sect2> - - <sect2> - <title>定制 NanoBSD 映像</title> - - <para>这可能是 <application>NanoBSD</application> 最为重要, - 同时也是您最感兴趣的功能。 同时, 您在开发 - <application>NanoBSD</application> 应用时, - 这也是相当耗时的过程。</para> - - <para>执行下面的命令将使 - <filename>nanobsd.sh</filename> 从当前目录中的 - <filename>myconf.nano</filename> 文件读取配置:</para> - - <screen>&prompt.root; <userinput>sh nanobsd.sh -c myconf.nano</userinput></screen> - - <para>定制过程包含两步:</para> - - <itemizedlist> - <listitem> - <para>配置选项</para> - </listitem> - - <listitem> - <para>定制函数</para> - </listitem> - </itemizedlist> - - <sect3> - <title>配置选项</title> - - <para>通过对配置进行设置, 可以配置用以传递给 - <application>NanoBSD</application> 构建过程中 <literal>buildworld</literal> - 和 <literal>installworld</literal> 阶段的联编和安装选项, 以及 - <application>NanoBSD</application> 的主构建过程中的选项。 - 通过使用这些选项可以削减系统的尺寸, 使之能够放入 - 64MB 的存储。 您还可以进一步通过这些选项来削减 &os;, - 直到它只包含内核以及两三个用户环境文件为止。</para> - - <para>配置文件中包含用以代替默认值的配置选项。 - 最重要的语句包括:</para> - - <itemizedlist> - <listitem> - <para><literal>NANO_NAME</literal> — 本次构建的名称 - (用于创建工作目录的名字)。</para> - </listitem> - - <listitem> - <para><literal>NANO_SRC</literal> — 用以联编和构建映像的源码树的位置。</para> - </listitem> - - <listitem> - <para><literal>NANO_KERNEL</literal> — 用以联编内核的配置文件的名字。</para> - </listitem> - - <listitem> - <para><literal>CONF_BUILD</literal> — 用于传递给 - <literal>buildworld</literal> 构建阶段的选项。</para> - </listitem> - - <listitem> - <para><literal>CONF_INSTALL</literal> — 用于传递给 - <literal>installworld</literal> 构建阶段的选项。</para> - </listitem> - - <listitem> - <para><literal>CONF_WORLD</literal> — 用以传递给 - <literal>buildworld</literal> 和 - <literal>installworld</literal> 这两个构建阶段的选项。</para> - </listitem> - - <listitem> - <para><literal>FlashDevice</literal> — 定义所用的介质类型。 - 要了解进一步的细节, 请参考 <filename>FlashDevice.sub</filename> - 文件。</para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>定制函数</title> - - <para>通过在配置文件中使用 shell 函数可以进一步微调 - <application>NanoBSD</application>。 下面的例子展示了定制函数的基本模式:</para> - - <programlisting>cust_foo () ( - echo "bar=topless" > \ - ${NANO_WORLDDIR}/etc/foo -) -customize_cmd cust_foo</programlisting> - - <para>下面是一个更贴近实际的例子, 它将默认的 - <filename role="directory">/etc</filename> 目录尺寸, - 从 5MB 调整为 30MB:</para> - - <programlisting>cust_etc_size () ( - cd ${NANO_WORLDDIR}/conf - echo 30000 > default/etc/md_size -) -customize_cmd cust_etc_size</programlisting> - - <para>除此之外, 还有几个默认的预定义定制函数:</para> - - <itemizedlist> - <listitem> - <para><literal>cust_comconsole</literal> — 在 VGA 设备上禁止 - &man.getty.8; - (<filename>/dev/ttyv*</filename> 设备节点) 并启用串口 COM1 - 作为系统控制台。</para> - </listitem> - - <listitem> - <para><literal>cust_allow_ssh_root</literal> — 允许 - <username>root</username> 通过 &man.sshd.8; 登录。</para> - </listitem> - - <listitem> - <para><literal>cust_install_files</literal> — - 从 <filename role="directory">nanobsd/Files</filename> - 目录中安装文件, 这包含一些实用的系统管理脚本。</para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>配置文件举例</title> - - <para>下面是一个用于构建定制的 <application>NanoBSD</application> 映像的完整例子:</para> - - <programlisting>NANO_NAME=custom -NANO_SRC=/usr/src -NANO_KERNEL=MYKERNEL -NANO_IMAGES=2 - -CONF_BUILD=' -NO_KLDLOAD=YES -NO_NETGRAPH=YES -NO_PAM=YES -' - -CONF_INSTALL=' -NO_ACPI=YES -NO_BLUETOOTH=YES -NO_CVS=YES -NO_FORTRAN=YES -NO_HTML=YES -NO_LPR=YES -NO_MAN=YES -NO_SENDMAIL=YES -NO_SHAREDOCS=YES -NO_EXAMPLES=YES -NO_INSTALLLIB=YES -NO_CALENDAR=YES -NO_MISC=YES -NO_SHARE=YES -' - -CONF_WORLD=' -NO_BIND=YES -NO_MODULES=YES -NO_KERBEROS=YES -NO_GAMES=YES -NO_RESCUE=YES -NO_LOCALES=YES -NO_SYSCONS=YES -NO_INFO=YES -' - -FlashDevice SanDisk 1G - -cust_nobeastie() ( - touch ${NANO_WORLDDIR}/boot/loader.conf - echo "beastie_disable=\"YES\"" >> ${NANO_WORLDDIR}/boot/loader.conf -) - -customize_cmd cust_comconsole -customize_cmd cust_install_files -customize_cmd cust_allow_ssh_root -customize_cmd cust_nobeastie</programlisting> - </sect3> - </sect2> - - <sect2> - <title>更新 NanoBSD</title> - - <para>更新 <application>NanoBSD</application> 相对而言较为简单:</para> - - <procedure> - <step> - <para>和之前一样构建新的 <application>NanoBSD</application> 映像文件。</para> - </step> - - <step> - <para>将新的映像放入正运行的 - <application>NanoBSD</application> 设备中的一个未用的分区。</para> - - <para>与之前最初安装 <application>NanoBSD</application> 的步骤相比, - 这一步骤最重要的区别在于这次不应使用 <filename>_.disk.full</filename> 文件 - (它包含整个盘的映像), - 而应安装 <filename>_.disk.image</filename> 映像 (这个文件中, - 只包含一个系统分区)。</para> - </step> - - <step> - <para>重新启动, 并从新安装的分区中启动系统。</para> - </step> - - <step> - <para>如果一切顺利的话, 升级工作就完成了。</para> - </step> - - <step> - <para>如果发生了任何问题, 则可以从先前的分区启动 - (其中包含了旧的、 可用的映像), 来尽可能快地恢复系统功能。 - 接下来可以修正新联编的版本中存在的问题, 并重复前述步骤。</para> - </step> - </procedure> - - <para>要在正在运行的 - <application>NanoBSD</application> 系统中安装新的映像, 可以使用位于 - <filename role="directory">/root</filename> 目录的 - <filename>updatep1</filename> 或 - <filename>updatep2</filename> 脚本, - 具体使用哪一个脚本, 取决于正在运行的系统位于那个分区。</para> - - <para>随时提供新 <application>NanoBSD</application> 映像所提供的服务, - 以及采用的传输方法的不同, 您可以参考并使用下列三种方式之一:</para> - - <sect3> - <title>使用 &man.ftp.1;</title> - - <para>如果传输速度是第一要务, - 采用下面的例子:</para> - - <screen>&prompt.root; <userinput>ftp myhost -get _.disk.image "| sh updatep1"</userinput></screen> - </sect3> - - <sect3> - <title>使用 &man.ssh.1;</title> - - <para>如果更倾向于安全传输, 应参考下面的例子:</para> - - <screen>&prompt.root; <userinput>ssh myhost cat _.disk.image.gz | zcat | sh updatep1</userinput></screen> - </sect3> - - <sect3> - <title>使用 &man.nc.1;</title> - - <para>如果远程主机既不提供 - &man.ftp.1; 服务, 也不提供 &man.sshd.8; 服务:</para> - - <procedure> - <step> - <para>开始时, 在提供映像的主机上开启 TCP 监听, - 并令其将映像文件发给客户机:</para> - - <screen>myhost&prompt.root; <userinput>nc -l <replaceable>2222</replaceable> < _.disk.image</userinput></screen> - - <note> - <para>请确认您所使用的端口没有通过防火墙阻止来自 - <application>NanoBSD</application> 客户机的联接请求。</para> - </note> - </step> - <step> - <para>连接到提供新映像服务的主机, 并执行 - <filename>updatep1</filename> 脚本:</para> - - <screen>&prompt.root; <userinput>nc myhost <replaceable>2222</replaceable> | sh updatep1</userinput></screen> - </step> - </procedure> - </sect3> - </sect2> - </sect1> -</chapter> diff --git a/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml b/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml index 8381b1e070..6d8610a501 100644 --- a/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.79 + Original Revision: 1.86 $FreeBSD$ --> @@ -501,17 +501,10 @@ server-program-arguments</programlisting> 以及至少一台客户机, 客户机远程地访问保存在服务器上的数据。 要让这一切运转起来, 需要配置并运行几个程序。</para> - <note><para>在 &os; 4.X 中, <application>portmap</application> - 工具将发挥后续版本中 - <application>rpcbind</application> 工具的作用。 因此, - 在 &os; 4.X 中, 您可能需要把后续例子中的 - <application>rpcbind</application> 改成 - <application>portmap</application> 以便使用。</para></note> - <para>服务器必须运行以下服务:</para> <indexterm> <primary>NFS</primary> - <secondary>server</secondary> + <secondary>server (服务)</secondary> </indexterm> <indexterm> <primary>文件服务器</primary> @@ -522,9 +515,6 @@ server-program-arguments</programlisting> <primary><application>rpcbind</application></primary> </indexterm> <indexterm> - <primary><application>portmap</application></primary> - </indexterm> - <indexterm> <primary><application>mountd</application></primary> </indexterm> <indexterm> @@ -669,14 +659,21 @@ mountd_flags="-r"</programlisting> /exports -alldirs -maproot=root client01 client02 /exports/obj -ro</programlisting> - <para>一旦修改 <filename>/etc/exports</filename> 了之后, - 为了让变动生效,您必须重启 <application>mountd</application>。 - 可以通过对<command>mountd</command> 进程发送HUP信号重启:</para> + <para>在修改了 <filename>/etc/exports</filename> 文件之后, + 就必须让 <application>mountd</application> 服务重新检查它, + 以便使修改生效。 一种方法是通过给正在运行的服务程序发送 HUP + 信号来完成:</para> <screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen> - <para>另外,系统重启动可以让FreeBSD把一切都弄好。尽管如此,重启不是必须的。 - 以 <username>root</username> 身份执行下面的命令可以搞定一切。</para> + <para>或指定适当的参数来运行 <command>mountd</command> &man.rc.8; 脚本:</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/mountd reload</userinput></screen> + + <para>关于使用 rc 脚本的细节, 请参见 <xref linkend="configtuning-rcd">。</para> + + <para>另外, 系统重启动可以让 FreeBSD 把一切都弄好。 尽管如此, + 重启不是必须的。 以 <username>root</username> 身份执行下面的命令可以搞定一切。</para> <para>在 <acronym>NFS</acronym> 服务器端:</para> @@ -1031,9 +1028,7 @@ Exports list on foobar: 用到的一种网络协议)。 如果没有运行 <application>rpcbind</application>, 则没有办法运行 NIS 服务器, - 或作为 NIS 客户机 (对于 &os; 4.X, - <application>portmap</application> 完成 - <application>rpcbind</application> 的功能)。</entry> + 或作为 NIS 客户机。</entry> </row> <row> <entry><application>ypbind</application></entry> @@ -2284,13 +2279,11 @@ nis_client_flags="-S <replaceable>NIS domain</replaceable>,<replaceable>server</ <listitem> <para>您的内核中, 必须包含 <devicename>bpf</devicename> 设备。 如果需要这样做, 需要将 - <literal>device bpf</literal> (对于 &os; 4.X - 来说, 则应该是 <literal>pseudo-device - bpf</literal>) 添加到内核的编译配置文件中, 并重新编译内核。 + <literal>device bpf</literal> 添加到内核的编译配置文件中, 并重新编译内核。 要了解关于编译内核的进一步信息, 请参见 <xref linkend="kernelconfig">。</para> <para><devicename>bpf</devicename> 设备已经是 FreeBSD 发行版中默认的 <filename>GENERIC</filename> - 内核的一部分了,, 因此如果您没有对内核进行定制, + 内核的一部分了, 因此如果您没有对内核进行定制, 则不用创建一份新的内核配置文件, DHCP 就能工作了。</para> <note> <para>对于那些安全意识很强的人来说, @@ -2407,14 +2400,13 @@ dhcp_flags=""</programlisting> </indexterm> <para>为了在您的 FreeBSD 系统上进行配置以便作为 DHCP 服务器来使用, 需要把 &man.bpf.4; 设备编译进内核。 要完成这项工作, 需要将 - <literal>device bpf</literal> (如果使用 &os; 4.X 的话, 则写作 - <literal>pseudo-device bpf</literal>) 加入到您的内核配置文件中, + <literal>device bpf</literal> 加入到您的内核配置文件中, 并重新联编内核。 要得到关于如何联编内核的进一步信息, 请参见 <xref linkend="kernelconfig">。</para> <para><devicename>bpf</devicename> 设备是 FreeBSD 所附带的 <filename>GENERIC</filename> 内核中已经联入的组件, - 因此您并不需要为了让 DHCP 正常工作而特地定制内核。</para> + 因此您并不需要为了让 DHCP 正常工作而特别地定制内核。</para> <note> <para>如果您有较强的安全意识, 应该注意 @@ -2515,8 +2507,18 @@ host mailhost { </callout> </calloutlist> - <para>一旦您撰写完 - <filename>dhcpd.conf</filename>, 就可以用下面的命令来启动服务:</para> + <para>在配制好 + <filename>dhcpd.conf</filename> 之后, 应在 + <filename>/etc/rc.conf</filename> 中启用 DHCP 服务器, + 也就是增加:</para> + + <programlisting>dhcpd_enable="YES" +dhcpd_ifaces="dc0"</programlisting> + + <para>此处的 <literal>dc0</literal> 接口名应改为 DHCP + 服务器需要监听 DHCP 客户端请求的接口 (如果有多个, 则用空格分开)。</para> + + <para>接下来, 可以用下面的命令来启动服务:</para> <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/isc-dhcpd.sh start</userinput></screen> @@ -2579,58 +2581,59 @@ host mailhost { <surname>Lee</surname> <contrib>Contributed by </contrib> </author> + + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + </author> + + <author> + <firstname>Daniel</firstname> + <surname>Gerzo</surname> + </author> </authorgroup> </sect1info> - <title>域名系统 (DNS)</title> + <title>域名系统 (<acronym>DNS</acronym>)</title> <sect2> <title>纵览</title> <indexterm><primary>BIND</primary></indexterm> - <para>FreeBSD 在默认情况下使用一个版本的 BIND (Berkeley - Internet Name Domain), 这是目前最为流行的 DNS 协议实现。 - DNS 是一种协议, 可以通过它将域名同 IP 地址相互对应。 + <para>&os; 在默认情况下使用一个版本的 BIND (Berkeley + Internet Name Domain), 这是目前最为流行的 <acronym>DNS</acronym> 协议实现。 + <acronym>DNS</acronym> 是一种协议, 可以通过它将域名同 <acronym>IP</acronym> 地址相互对应。 例如, 查询 <hostid role="fqdn">www.FreeBSD.org</hostid> - 将得到 FreeBSD Project 的 web 服务器的 IP 地址, 而查询 <hostid - role="fqdn">ftp.FreeBSD.org</hostid> 则将得到响应的 FTP 机器的 - IP 地址。 类似地, 也可以做相反的事情。 查询 IP - 地址可以得到其主机名。 当然, 完成 DNS - 查询并不需要在系统中运行域名服务器。 - </para> - - <indexterm><primary>DNS</primary></indexterm> - <para>DNS 在 Internet 上通过一组略显复杂的权威根域名服务器来组织, - 它的其余部分则由较小规模的域名服务器组成, - 这些服务器提供少量的域名解析服务, 并对域名信息进行缓存。 - </para> + 将得到 &os; Project 的 web 服务器的 <acronym>IP</acronym> 地址, 而查询 <hostid + role="fqdn">ftp.FreeBSD.org</hostid> 则将得到响应的 <acronym>FTP</acronym> 机器的 + <acronym>IP</acronym> 地址。 类似地, 也可以做相反的事情。 查询 <acronym>IP</acronym> + 地址可以得到其主机名。 当然, 完成 <acronym>DNS</acronym> + 查询并不需要在系统中运行域名服务器。</para> - <para> - 这份文档介绍的是 BIND 8.x, 因为它是 &os; 中使用的稳定版本。 - &os; 5.3 以及更高版本则包含了 - <acronym>BIND</acronym>9 及其配置的说明可以在这一章的后一部分找到。 - 使用 &os; 5.2 以及更早版本的用户, - 可以通过 <filename role="package">net/bind9</filename> port - 来安装 <acronym>BIND</acronym>9。</para> + <para>目前, 默认情况下&os; 使用的是 <acronym>BIND</acronym>9 + <acronym>DNS</acronym> 服务软件。 我们内建于系统中的版本提供了增强的安全特性、 + 新的文件目录结构, 以及自动的 &man.chroot.8; 配置。</para> - <para> - RFC1034 和 RFC1035 定义了 DNS 协议。 - </para> - - <para> - 目前, BIND 由 - Internet Software Consortium <ulink url="http://www.isc.org/"></ulink> - 维护。 - </para> + <indexterm><primary>DNS</primary></indexterm> + <para>在 Internet 上的 <acronym>DNS</acronym> 是通过一套较为复杂的权威根域名系统, + 顶级域名 (<acronym>TLD</acronym>), 以及一系列小规模的, + 提供少量域名解析服务并对域名信息进行缓存的域名服务器组成的。</para> + + <para>目前, BIND 由 + Internet Software Consortium + <ulink url="http://www.isc.org/"></ulink> + 维护。</para> </sect2> <sect2> <title>术语</title> - <para>要理解这份文档, 需要首先了解一些相关的 DNS 术语。</para> + <para>要理解这份文档, 需要首先了解一些相关的 + <acronym>DNS</acronym> 术语。</para> + + <indexterm><primary>resolver (解析器)</primary></indexterm> + <indexterm><primary>reverse DNS (反向 DNS)</primary></indexterm> + <indexterm><primary>root zone (根域)</primary></indexterm> - <indexterm><primary>解析器 (resolver)</primary></indexterm> - <indexterm><primary>反向 DNS (reverse DNS)</primary></indexterm> - <indexterm><primary>根域 (root zone)</primary></indexterm> <informaltable frame="none" pgwide="1"> <tgroup cols="2"> <colspec colwidth="1*"> @@ -2645,7 +2648,7 @@ host mailhost { <tbody> <row> - <entry>正向 DNS (Forward DNS)</entry> + <entry>正向 <acronym>DNS</acronym></entry> <entry>将域名映射到 IP 地址</entry> </row> @@ -2655,8 +2658,8 @@ host mailhost { </row> <row> - <entry><application>named</application>, BIND, 域名服务器(name server)</entry> - <entry>在 FreeBSD 中 BIND 域名服务器软件包的常见叫法</entry> + <entry><application>named</application>, BIND, 域名服务器</entry> + <entry>在 &os; 中 BIND 域名服务器软件包的常见叫法。</entry> </row> <row> @@ -2665,8 +2668,8 @@ host mailhost { </row> <row> - <entry>反向 DNS (Reverse DNS)</entry> - <entry>与正向 DNS 相对; 将 IP 地址映射为主机名</entry> + <entry>反向 <acronym>DNS</acronym></entry> + <entry>与正向 <acronym>DNS</acronym> 相对; 将 <acronym>IP</acronym> 地址映射为主机名</entry> </row> <row> @@ -2678,7 +2681,7 @@ host mailhost { <row> <entry>域 (Zone)</entry> - <entry>独立的域, 子域, 或者由同一机构管理的 DNS 的一部分。</entry> + <entry>独立的域, 子域, 或者由同一机构管理的 <acronym>DNS</acronym> 的一部分。</entry> </row> </tbody> </tgroup> @@ -2689,39 +2692,39 @@ host mailhost { <secondary>例子</secondary> </indexterm> - <para>域的例子: - </para> + <para>域的例子:</para> + <itemizedlist> - <listitem> - <para><hostid>.</hostid> 是根域。</para> - </listitem> - <listitem> - <para><hostid>org.</hostid> 是一个根域下的域。</para> - </listitem> - <listitem> - <para><hostid role="domainname">example.org.</hostid> 是 - <hostid>org.</hostid> 之下的域。</para> - </listitem> - <listitem> - <para><hostid role="domainname">foo.example.org.</hostid> 是 - <hostid role="domainname">example.org.</hostid> 域的子域。</para> - </listitem> - <listitem> - <para> - <hostid>1.2.3.in-addr.arpa</hostid> 是用于表达 <hostid - role="ipaddr">3.2.1.*</hostid> IP 地址空间之下所有 - IP 地址的域。 - </para> - </listitem> - </itemizedlist> + <listitem> + <para><hostid>.</hostid> 是根域。</para> + </listitem> - <para>如您所见, 域名中最细节的部分在它的左边。 - 举例来说, <hostid - role="domainname">example.org.</hostid> 要比 - <hostid>org.</hostid> 更小, 就像 <hostid>org.</hostid> - 要比根域更小一样。 主机名的格局和文件系统类似: - <filename>/dev</filename> 目录在根目录中, 等等。</para> + <listitem> + <para><hostid>org.</hostid> 是根域之下的一个顶级域名 + (<acronym>TLD</acronym>)。</para> + </listitem> + + <listitem> + <para><hostid role="domainname">example.org.</hostid> 是在 + <hostid>org.</hostid> + <acronym>TLD</acronym> 之下的一个域。</para> + </listitem> + + <listitem> + <para><hostid>1.168.192.in-addr.arpa</hostid> 是一个表示所有 + <hostid role="ipaddr">192.168.1.*</hostid> + <acronym>IP</acronym> 地址空间中 <acronym>IP</acronym> + 地址的域。</para> + </listitem> + </itemizedlist> + <para>如您所见, 域名中越细节的部分会越靠左出现。 + 例如, <hostid + role="domainname">example.org.</hostid> 就比 + <hostid>org.</hostid> 范围更小, 而 <hostid>org.</hostid> 又比根域更小。 + 域名各个部分的格局与文件系统十分类似: + <filename role="directory">/dev</filename> 目录在根目录中, + 等等。</para> </sect2> <sect2> @@ -2734,46 +2737,45 @@ host mailhost { <itemizedlist> <listitem> - <para>想要向全世界提供 DNS 信息, + <para>想要向全世界提供 <acronym>DNS</acronym> 信息, 并对请求给出权威应答。</para> </listitem> + <listitem> <para>注册了类似 <hostid role="domainname">example.org</hostid> - 的域, 而需要将 IP 指定到其下的主机名上。</para> + 的域, 而需要将 <acronym>IP</acronym> 指定到其下的主机名上。</para> </listitem> + <listitem> - <para>某个 IP 地址块需要反向 DNS 项 (IP 到主机名)。</para> + <para>某个 <acronym>IP</acronym> 地址块需要反向 + <acronym>DNS</acronym> 项 (<acronym>IP</acronym> 到主机名)。</para> </listitem> + <listitem> - <para>需要备份服务器, 或常说的从 (slave) 服务器, - 在主服务器出现问题或无法访问时来应答查询请求。</para> - </listitem> + <para>备份服务器, 或常说的从 (slave) 服务器, + 会在主服务器出现问题或无法访问时来应答查询请求。</para> + </listitem> </itemizedlist> <para>下列情况需要有缓存域名服务器:</para> <itemizedlist> <listitem> - <para>本地的 DNS 服务器能够缓存, + <para>本地的 <acronym>DNS</acronym> 服务器能够缓存, 并比直接向外界的域名服务器请求更快地得到应答。</para> </listitem> - <listitem> - <para>减少所需的总体网络流量 (DNS - 流量通常占全部 Internet 流量的 5% 或更多)。</para> - </listitem> </itemizedlist> <para>当有人查询 <hostid role="fqdn">www.FreeBSD.org</hostid> 时,解析器通常会向上级 - ISP 的域名服务器发出请求, 并获得回应。 如果有本地的缓存 DNS - 服务器, 查询只有在第一次被缓存 DNS 服务器发到外部世界。 + <acronym>ISP</acronym> 的域名服务器发出请求, 并获得回应。 如果有本地的缓存 DNS + 服务器, 查询只有在第一次被缓存 <acronym>DNS</acronym> 服务器发到外部世界。 其他的查询不会发向局域网外, 因为它们已经有在本地的缓存了。</para> - </sect2> <sect2> <title>DNS 如何运作</title> - <para>在 FreeBSD 中, BIND 服务程序被称为 + <para>在 &os; 中, BIND 服务程序被称为 <application>named</application>, 其原因显而易见。</para> <informaltable frame="none" pgwide="1"> @@ -2787,12 +2789,12 @@ host mailhost { <tbody> <row> - <entry><application>named</application></entry> + <entry>&man.named.8;</entry> <entry>BIND 服务程序</entry> </row> <row> - <entry><command>ndc</command></entry> + <entry>&man.rndc.8;</entry> <entry>域名服务控制程序</entry> </row> @@ -2809,243 +2811,286 @@ host mailhost { </tgroup> </informaltable> - <para> - 域文件通常被放在 - <filename>/etc/namedb</filename> - 目录中, 它们包含域名服务器所提供的 DNS 域的信息。 - </para> + <para>随在服务器上配置的域的性质不同, 域的定义文件一般会存放到 + <filename role="directory">/etc/namedb</filename> 目录中的 <filename + role="directory">master</filename>、 <filename + role="directory">slave</filename>, 或 <filename + role="directory">dynamic</filename> 子目录里。 + 这些文件包含了在域名服务器发出回应时所需的 <acronym>DNS</acronym> 信息。</para> </sect2> <sect2> <title>启动 BIND</title> <indexterm> <primary>BIND</primary> - <secondary>启动</secondary> + <secondary>starting (启动)</secondary> </indexterm> - <para> - 由于 BIND 会在默认情况下安装, 因此配置它相对而言很简单。 - </para> - <para> - 要确保 <application>named</application> 服务程序在引导时被自动启动, - 把下面的行加到 <filename>/etc/rc.conf</filename> 中: - </para> + + <para>由于 BIND 是默认安装的, 因此配置它相对而言很简单。</para> + + <para>默认的 <application>named</application> 配置是在 + &man.chroot.8; 环境中提供基本的域名解析服务。 + 如果希望启动一下这种配置, 可以执行下面的命令:</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/named forcestart</userinput></screen> + + <para>如果希望 <application>named</application> + 服务在每次启动的时候都能够启动, 需要在 + <filename>/etc/rc.conf</filename> 中加入:</para> + <programlisting>named_enable="YES"</programlisting> - <para>要手工启动服务 (在完成配置之后):</para> - <screen>&prompt.root; <userinput>ndc start</userinput></screen> + + <para>当然, 除了这份文档所介绍的配置选项之外, 在 + <filename>/etc/namedb/named.conf</filename> 中还有很多其它的选项。 + 不过, 如果您需要了解 &os; 中用于启动 <application>named</application> + 的那些选项的话, 则可以查看 + <filename>/etc/defaults/rc.conf</filename> 中的 + <literal>named_<replaceable>*</replaceable></literal> 参数, 并参考 + &man.rc.conf.5; 联机手册。 除此之外, + <xref linkend="configtuning-rcd"> 也是一个不错的起点。</para> </sect2> <sect2> <title>配置文件</title> <indexterm> - <primary>BIND</primary> - <secondary>配置文件</secondary> + <primary>BIND</primary> + <secondary>configuration files (配置文件)</secondary> </indexterm> + + <para>目前, <application>named</application> 的配置文件存放于 + <filename role="directory">/etc/namedb</filename> 目录中, + 在使用前需要根据需要进行修改, + 除非只打算用它来完成简单的域名解析任务。 + 同时这个目录也是进行绝大多数配置的地方。</para> + <sect3> - <title>使用 <command>make-localhost</command></title> - <para>一定要: - </para> - <screen>&prompt.root; <userinput>cd /etc/namedb</userinput> -&prompt.root; <userinput>sh make-localhost</userinput></screen> - <para>以便创建正确的本地 DNS 反向解析域文件 - <filename>/etc/namedb/master/localhost.rev</filename>. - </para> + <title>使用 <command>make-localhost</command></title> + + <para>要为 localhost 配置主域, 需要进入 + <filename role="directory">/etc/namedb</filename> 目录, + 并运行下面的命令:</para> + + <screen>&prompt.root; <userinput>sh make-localhost</userinput></screen> + + <para>如果一切正常的话, 在 + <filename class="directory">master</filename> 子目录中会增加一组文件。 + 本地域名对应的文件是 <filename>localhost.rev</filename>, + 而 <acronym>IPv6</acronym> 对应的配置则是 <filename>localhost-v6.rev</filename>。 + 作为默认配置, 所需的信息已经放到了 + <filename>named.conf</filename> 文件中。</para> </sect3> <sect3> - <title><filename>/etc/namedb/named.conf</filename></title> + <title><filename>/etc/namedb/named.conf</filename></title> - <programlisting>// $FreeBSD$ + <programlisting>// $FreeBSD$ // -// Refer to the named(8) manual page for details. If you are ever going -// to setup a primary server, make sure you've understood the hairy -// details of how DNS is working. Even with simple mistakes, you can -// break connectivity for affected parties, or cause huge amount of -// useless Internet traffic. +// Refer to the named.conf(5) and named(8) man pages, and the documentation +// in /usr/share/doc/bind9 for more details. +// +// If you are going to set up an authoritative server, make sure you +// understand the hairy details of how DNS works. Even with +// simple mistakes, you can break connectivity for affected parties, +// or cause huge amounts of useless Internet traffic. options { - directory "/etc/namedb"; + directory "/etc/namedb"; + pid-file "/var/run/named/pid"; + dump-file "/var/dump/named_dump.db"; + statistics-file "/var/stats/named.stats"; + +// If named is being used only as a local resolver, this is a safe default. +// For named to be accessible to the network, comment this option, specify +// the proper IP address, or delete this option. + listen-on { 127.0.0.1; }; + +// If you have IPv6 enabled on this system, uncomment this option for +// use as a local resolver. To give access to the network, specify +// an IPv6 address, or the keyword "any". +// listen-on-v6 { ::1; }; // In addition to the "forwarders" clause, you can force your name // server to never initiate queries of its own, but always ask its // forwarders only, by enabling the following line: // -// forward only; +// forward only; // If you've got a DNS server around at your upstream provider, enter // its IP address here, and enable the line below. This will make you -// benefit from its cache, thus reduce overall DNS traffic in the -Internet. +// benefit from its cache, thus reduce overall DNS traffic in the Internet. /* - forwarders { - 127.0.0.1; - }; + forwarders { + 127.0.0.1; + }; */</programlisting> - <para> - 如注视所说, 要从上级的缓存中受益, 可以在此处启用 - <literal>forwarders</literal>。 在一般情况下, 域名服务器会逐级地查询 - Internet 来找到特定的域名服务器, 直到得到答案为止。 - 启用这个将让它首先查询上级域名服务器 (或另外提供的域名服务器), - 从而从它们的缓存中得到结果。 如果上级域名服务器的负载很重, - 在更快的域名服务器上启用它将有助于改善服务品质。 - </para> + <para>正如注释所言, 如果希望从上级缓存中受益, + 可以在此处启用 <literal>forwarders</literal>。 + 正常情况下, 域名服务器会逐级地查询 + Internet 来找到特定的域名服务器, 直到得到答案为止。 + 这个选项将让它首先查询上级域名服务器 (或另外提供的域名服务器), + 从而从它们的缓存中得到结果。 如果上级域名服务器是一个繁忙的高速域名服务器, + 则启用它将有助于改善服务品质。</para> <warning><para><hostid role="ipaddr">127.0.0.1</hostid> <emphasis>不会</emphasis> 正常工作。 - 一定要把地址改为您上级服务器的 IP 地址。</para> + 一定要把地址改为您上级服务器的 <acronym>IP</acronym> 地址。</para> </warning> - <programlisting> /* - * If there is a firewall between you and name servers you want - * to talk to, you might need to uncomment the query-source - * directive below. Previous versions of BIND always asked - * questions using port 53, but BIND 8.1 uses an unprivileged - * port by default. - */ - // query-source address * port 53; - - /* - * If running in a sandbox, you may have to specify a different - * location for the dumpfile. - */ - // dump-file "s/named_dump.db"; -}; - -// Note: the following will be supported in a future release. -/* -host { any; } { - topology { - 127.0.0.0/8; - }; + <programlisting> /* + * If there is a firewall between you and nameservers you want + * to talk to, you might need to uncomment the query-source + * directive below. Previous versions of BIND always asked + * questions using port 53, but BIND versions 8 and later + * use a pseudo-random unprivileged UDP port by default. + */ + // query-source address * port 53; }; -*/ -// Setting up secondaries is way easier and the rough picture for this -// is explained below. -// // If you enable a local name server, don't forget to enter 127.0.0.1 -// into your /etc/resolv.conf so this server will be queried first. +// first in your /etc/resolv.conf so this server will be queried. // Also, make sure to enable it in /etc/rc.conf. zone "." { - type hint; - file "named.root"; + type hint; + file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" { - type master; - file "localhost.rev"; + type master; + file "master/localhost.rev"; +}; + +// RFC 3152 +zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" { + type master; + file "master/localhost-v6.rev"; }; // NB: Do not use the IP addresses below, they are faked, and only // serve demonstration/documentation purposes! // -// Example secondary config entries. It can be convenient to become -// a secondary at least for the zone where your own domain is in. Ask +// Example slave zone config entries. It can be convenient to become +// a slave at least for the zone your own domain is in. Ask // your network administrator for the IP address of the responsible // primary. // // Never forget to include the reverse lookup (IN-ADDR.ARPA) zone! -// (This is the first bytes of the respective IP address, in reverse +// (This is named after the first bytes of the IP address, in reverse // order, with ".IN-ADDR.ARPA" appended.) // -// Before starting to setup a primary zone, better make sure you fully -// understand how DNS and BIND works, however. There are sometimes -// unobvious pitfalls. Setting up a secondary is comparably simpler. +// Before starting to set up a primary zone, make sure you fully +// understand how DNS and BIND works. There are sometimes +// non-obvious pitfalls. Setting up a slave zone is simpler. // // NB: Don't blindly enable the examples below. :-) Use actual names // and addresses instead. -// -// NOTE!!! FreeBSD runs BIND in a sandbox (see named_flags in rc.conf). -// The directory containing the secondary zones must be write accessible -// to BIND. The following sequence is suggested: -// -// mkdir /etc/namedb/s -// chown bind:bind /etc/namedb/s -// chmod 750 /etc/namedb/s</programlisting> - <para>For more information on running BIND in a sandbox, see - <link linkend="network-named-sandbox">Running named in a sandbox</link>. - </para> +/* An example master zone +zone "example.net" { + type master; + file "master/example.net"; +}; +*/ - <programlisting>/* -zone "example.com" { - type slave; - file "s/example.com.bak"; - masters { - 192.168.1.1; - }; +/* An example dynamic zone +key "exampleorgkey" { + algorithm hmac-md5; + secret "sf87HJqjkqh8ac87a02lla=="; +}; +zone "example.org" { + type master; + allow-update { + key "exampleorgkey"; + }; + file "dynamic/example.org"; }; +*/ -zone "0.168.192.in-addr.arpa" { - type slave; - file "s/0.168.192.in-addr.arpa.bak"; - masters { - 192.168.1.1; - }; +/* Examples of forward and reverse slave zones +zone "example.com" { + type slave; + file "slave/example.com"; + masters { + 192.168.1.1; + }; +}; +zone "1.168.192.in-addr.arpa" { + type slave; + file "slave/1.168.192.in-addr.arpa"; + masters { + 192.168.1.1; + }; }; */</programlisting> - <para>在 <filename>named.conf</filename> 中, 这是一些转发用的从域以及反向域的例子。</para> - <para>对于每一个新域, 域对应的项必须加到 - <filename>named.conf</filename> 中。</para> + <para>在 <filename>named.conf</filename> 中, + 还给出了从域、转发域和反解析域的例子。</para> + + <para>如果新增了域, 就必需在 <filename>named.conf</filename> 中加入对应的项目。</para> - <para>例如, 最简单的用于 - <hostid role="domainname">example.org</hostid> 域的条目类似下面的样子:</para> + <para>例如, 用于 + <hostid role="domainname">example.org</hostid> 的域文件的描述类似下面这样:</para> - <programlisting>zone "example.org" { + <programlisting>zone "example.org" { type master; - file "example.org"; + file "master/example.org"; };</programlisting> - <para>这是一个主域, 它由 <option>type</option> 语句标识出来, - 而信息则在 - <filename>/etc/namedb/example.org</filename> 域文件中, - 这是由 <option>file</option> 语句指定的。</para> + <para>如 <option>type</option> 语句所标示的那样, + 这是一个主域, 其信息保存在 + <filename>/etc/namedb/master/example.org</filename> + 中, 如 <option>file</option> 语句所示。</para> - <programlisting>zone "example.org" { + <programlisting>zone "example.org" { type slave; - file "example.org"; + file "slave/example.org"; };</programlisting> - <para>在从域的例子中, 域的信息从该域的某个主服务器传送过来, - 并保存在指定的文件中。 如果主服务器死掉了或不可达, - 从域名服务器将使用这些传过来的域信息, 从而完成应答。</para> + <para>在从域的情形中, 所指定的域的信息会从主域名服务器传递过来, + 并保存到对应的文件中。 当主域服务器发生问题或不可达时, + 从域名服务器就有一份可用的域名信息, 从而能够对外提供服务。</para> </sect3> <sect3> - <title>域信息文件</title> - <para> - 以下是一个用于 <hostid - role="domainname">example.org</hostid> 域的主域文件 (保存为 - <filename>/etc/namedb/example.org</filename>): - </para> + <title>域文件</title> + <indexterm> + <primary>BIND</primary> + <secondary>zone files (域文件)</secondary> + </indexterm> + + <para>下面的例子展示了用于 <hostid + role="domainname">example.org</hostid> 的主域文件 (存放于 + <filename>/etc/namedb/master/example.org</filename>):</para> + + <programlisting>$TTL 3600 ; 1 hour +example.org. IN SOA ns1.example.org. admin.example.org. ( + 2006051501 ; Serial + 10800 ; Refresh + 3600 ; Retry + 604800 ; Expire + 86400 ; Minimum TTL + ) - <programlisting>$TTL 3600 +; DNS Servers + IN NS ns1.example.org. + IN NS ns2.example.org. -example.org. IN SOA ns1.example.org. admin.example.org. ( - 5 ; Serial - 10800 ; Refresh - 3600 ; Retry - 604800 ; Expire - 86400 ) ; Minimum TTL +; MX Records + IN MX 10 mx.example.org. + IN MX 20 mail.example.org. -; DNS Servers -@ IN NS ns1.example.org. -@ IN NS ns2.example.org. + IN A 192.168.1.1 ; Machine Names localhost IN A 127.0.0.1 -ns1 IN A 3.2.1.2 -ns2 IN A 3.2.1.3 -mail IN A 3.2.1.10 -@ IN A 3.2.1.30 +ns1 IN A 192.168.1.2 +ns2 IN A 192.168.1.3 +mx IN A 192.168.1.4 +mail IN A 192.168.1.5 ; Aliases -www IN CNAME @ - -; MX Record -@ IN MX 10 mail.example.org.</programlisting> +www IN CNAME localhost</programlisting> <para> 请注意以 <quote>.</quote> 结尾的主机名是全称主机名, 而结尾没有 @@ -3111,7 +3156,7 @@ www IN CNAME @ <programlisting> example.org. IN SOA ns1.example.org. admin.example.org. ( - 5 ; Serial + 2006051501 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week @@ -3143,54 +3188,49 @@ example.org. IN SOA ns1.example.org. admin.example.org. ( </varlistentry> <varlistentry> - <term><literal>5</literal></term> + <term><literal>2006051501</literal></term> <listitem><para>文件的序号。 每次修改域文件时都必须增加这个数字。 现今, 许多管理员会考虑使用 <literal>yyyymmddrr</literal> 这样的格式来表示序号。 - <literal>2001041002</literal> 通常表示上次修改于 - 04/10/2001, 而后面的 - <literal>02</literal> 则表示在那天的第几次修改。 + <literal>2006051501</literal> 通常表示上次修改于 + 05/15/2006, 而后面的 + <literal>01</literal> 则表示在那天的第一次修改。 序号非常重要, 它用于通知从域服务器更新数据。</para> </listitem> </varlistentry> </variablelist> <programlisting> -@ IN NS ns1.example.org.</programlisting> + IN NS ns1.example.org.</programlisting> <para> 这是一个 NS 项。 每个准备提供权威应答的服务器都必须有一个对应项。 - 这里的 <literal>@</literal> 表示 - <hostid role="domainname">example.org.</hostid>。 - <literal>@</literal> 会被理解为原点。 </para> <programlisting> localhost IN A 127.0.0.1 -ns1 IN A 3.2.1.2 -ns2 IN A 3.2.1.3 -mail IN A 3.2.1.10 -@ IN A 3.2.1.30</programlisting> +ns1 IN A 192.168.1.2 +ns2 IN A 192.168.1.3 +mx IN A 192.168.1.4 +mail IN A 192.168.1.5</programlisting> <para> - A 记录代表及其名。 如上面看到的, + A 记录指明了机器名。 正如在前面所按倒的, <hostid role="fqdn">ns1.example.org</hostid> 将解析为 - <hostid role="ipaddr">3.2.1.2</hostid>。 在此再次使用了原点符, - <literal>@</literal>, 它表示 - <hostid role="domainname">example.org</hostid> 应解析为 - <hostid role="ipaddr">3.2.1.30</hostid>。 + <hostid role="ipaddr">192.168.1.2</hostid>。 </para> <programlisting> -www IN CNAME @</programlisting> +www IN CNAME localhost</programlisting> <para> - 正规名记录通常用于对某台机器的别名给出对应的正式名字。 - 在这个例子中, <hostid>www</hostid> 是名字为原点, 或者说 - <hostid role="domainname">example.org</hostid> - (<hostid role="ipaddr">3.2.1.30</hostid>) 那台机器的别名。 - CNAMEs 可以用来提供主机的别名, 或将同一名字在多台机器上作轮询。 + 正规名 (CNAME) 记录通常用于为某台机器指定别名。 在这个例子中, + <hostid>www</hostid> 是 + <hostid role="domainname">localhost.example.org</hostid> + (<hostid role="ipaddr">127.0.0.1</hostid>) 的别名。 + CNAME 也可以用来提供主机别名, + 或将一个主机名以轮转 (round robin) 方式指定到多台服务器。 </para> <indexterm> @@ -3198,7 +3238,7 @@ www IN CNAME @</programlisting> </indexterm> <programlisting> -@ IN MX 10 mail.example.org.</programlisting> + IN MX 10 mail.example.org.</programlisting> <para> MX 记录表示哪个邮件服务器负责接收发到这个域的邮件。 @@ -3207,10 +3247,11 @@ www IN CNAME @</programlisting> </para> <para> - 可以有多台邮件服务器, 其优先级分别是 3, 2, - 1。 向 <hostid - role="domainname">example.org</hostid> 进行投递的邮件服务器首先会尝试优先级最高 - (数字最小) 的 MX, 然后是较低优先级的, 等等, 直到成功地投递了邮件为止。 + 可以有多台邮件服务器, 其优先级分别是 10、 + 20 等等。 尝试向 <hostid + role="domainname">example.org</hostid> 投递邮件的服务器, + 会首先尝试优先级最高的 MX (优先级数值最低的记录)、 + 接着尝试次高的, 并重复这一过程直到邮件递送到达为止。 </para> <para> @@ -3220,20 +3261,21 @@ www IN CNAME @</programlisting> <programlisting>$TTL 3600 -1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. ( - 5 ; Serial +1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. ( + 2006051501 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 3600 ) ; Minimum -@ IN NS ns1.example.org. -@ IN NS ns2.example.org. + IN NS ns1.example.org. + IN NS ns2.example.org. +1 IN PTR example.org. 2 IN PTR ns1.example.org. 3 IN PTR ns2.example.org. -10 IN PTR mail.example.org. -30 IN PTR example.org.</programlisting> +4 IN PTR mx.example.org. +5 IN PTR mail.example.org.</programlisting> <para>这个文件给出了上述假想域中 IP 地址到域名的映射关系。</para> </sect3> @@ -3252,269 +3294,6 @@ www IN CNAME @</programlisting> 而不配置域就可以了。</para> </sect2> - <sect2 id="network-named-sandbox"> - <title>在沙盒中运行 <application>named</application></title> - <indexterm> - <primary>BIND</primary> - <secondary>在沙盒中运行</secondary> - </indexterm> - - <indexterm> - <primary><command>chroot</command></primary> - </indexterm> - <para>要更安全地运行 &man.named.8;, 应该以非特权用户来运行它, - 并配置为 &man.chroot.8; 到一个沙盒目录中。 - 这使得 <application>named</application> 服务无法访问任何沙盒外面的东西。 - 假如 <application>named</application> 被攻破, - 这将减少它所能带来的破坏。 默认情况下, FreeBSD 提供了名为 - <groupname>bind</groupname> 的用户和组来完成这样的目的。</para> - - <note><para>许多人建议不这样做, 而 - <application>named</application> 配置为 <command>chroot</command>, - 您应该在一个 &man.jail.8; 中运行 <application>named</application>。 - 这一节并不涵盖这种情形。</para> - </note> - - <para>由于 <application>named</application> 没有办法访问沙盒外面的任何东西 - (例如共享库, 日志 socket 等等), 您需要做许多事情来让 - <application>named</application> 正常工作。 下面的清单假定沙盒是 - <filename>/etc/namedb</filename> 而您没有事先改过这个目录中的内容。 - 以 <username>root</username> 的身份完成下列步骤:</para> - - <itemizedlist> - <listitem> - <para>创建 <application>named</application> - 需要访问的所有目录:</para> - - <screen>&prompt.root; <userinput>cd /etc/namedb</userinput> -&prompt.root; <userinput>mkdir -p bin dev etc var/tmp var/run master slave</userinput> -&prompt.root; <userinput>chown bind:bind slave var/*</userinput><co id="chown-slave"></screen> - - - - <calloutlist> - <callout arearefs="chown-slave"> - <para><application>named</application> 只需要写这些目录, - 这也是我们赋予它的全部权限。</para> - </callout> - </calloutlist> - </listitem> - - <listitem> - <para>重新组织基本的域和配置文件:</para> - <screen>&prompt.root; <userinput>cp /etc/localtime etc</userinput><co id="localtime"> -&prompt.root; <userinput>mv named.conf etc && ln -sf etc/named.conf</userinput> -&prompt.root; <userinput>mv named.root master</userinput> -<!-- I don't like this next bit --> -&prompt.root; <userinput>sh make-localhost</userinput> -&prompt.root; <userinput>cat > master/named.localhost -$ORIGIN localhost. -$TTL 6h -@ IN SOA localhost. postmaster.localhost. ( - 1 ; serial - 3600 ; refresh - 1800 ; retry - 604800 ; expiration - 3600 ) ; minimum - IN NS localhost. - IN A 127.0.0.1 -^D</userinput></screen> - - <calloutlist> - <callout arearefs="localtime"> - <para>这使得 <application>named</application> 能够将正确的时间传递给 - &man.syslogd.8;。</para> - </callout> - </calloutlist> - </listitem> - - <listitem> - - <indexterm><primary>syslog</primary></indexterm> - <indexterm><primary>日志文件</primary> - <secondary>named</secondary></indexterm> - - <para>如果您在运行 &os; 在 4.9-RELEASE 之前的版本, 需要联编一个静态连接的 - <application>named-xfer</application>, 并将其复制到沙盒中:</para> - - <screen>&prompt.root; <userinput>cd /usr/src/lib/libisc</userinput> -&prompt.root; <userinput>make cleandir && make cleandir && make depend && make all</userinput> -&prompt.root; <userinput>cd /usr/src/lib/libbind</userinput> -&prompt.root; <userinput>make cleandir && make cleandir && make depend && make all</userinput> -&prompt.root; <userinput>cd /usr/src/libexec/named-xfer</userinput> -&prompt.root; <userinput>make cleandir && make cleandir && make depend && make NOSHARED=yes all</userinput> -&prompt.root; <userinput>cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xfer</userinput><co id="clean-cruft"></screen> - - <para>在把静态连接的 - <command>named-xfer</command> 装好之后需要清理一下, - 以免将过时的库或程序留在您的源代码副本中:</para> - - <screen>&prompt.root; <userinput>cd /usr/src/lib/libisc</userinput> -&prompt.root; <userinput>make cleandir</userinput> -&prompt.root; <userinput>cd /usr/src/lib/libbind</userinput> -&prompt.root; <userinput>make cleandir</userinput> -&prompt.root; <userinput>cd /usr/src/libexec/named-xfer</userinput> -&prompt.root; <userinput>make cleandir</userinput></screen> - - <calloutlist> - <callout arearefs="clean-cruft"> - <para>据说这一步有时会失败。 如果您遇到这样的问题, 执行下面的命令:</para> - - <screen>&prompt.root; <userinput>cd /usr/src && make cleandir && make cleandir</userinput></screen> - - <para>并删除 <filename>/usr/obj</filename> 目录:</para> - - <screen>&prompt.root; <userinput>rm -fr /usr/obj && mkdir /usr/obj</userinput></screen> - - <para>这将把任何 <quote>垃圾</quote> 从您的源代码目录中删除, - 而后续工作将得以正常进行。</para> - </callout> - </calloutlist> - - <para>如果您运行 &os; 的 4.9-RELEASE 或更新的版本, 则默认情况下 - <filename>/usr/libexec</filename> 中的 <command>named-xfer</command> - 副本已经是静态连接的了。 您可以简单地把它用 &man.cp.1; 复制到沙盒中。</para> - </listitem> - - <listitem> - <para>做一个 <application>named</application> - 能够看到并写入的 <filename>dev/null</filename>:</para> - - <screen>&prompt.root; <userinput>cd /etc/namedb/dev && mknod null c 2 2</userinput> -&prompt.root; <userinput>chmod 666 null</userinput></screen> - </listitem> - - <listitem> - <para>将 <filename>/var/run/ndc</filename> 符号链接到 - <filename>/etc/namedb/var/run/ndc</filename>:</para> - - <screen>&prompt.root; <userinput>ln -sf /etc/namedb/var/run/ndc /var/run/ndc</userinput></screen> - - <note> - <para>这个非常简单的措施有效地避免了您每次都必须指定 - <option>-c</option> 参数来启动 &man.ndc.8; 的麻烦。 由于 - <filename>/var/run</filename> 中的内容会在启动时被删除, - 把上述命令加入到 - <username>root</username> 的 &man.crontab.5; 中, 并指定 - <option>@reboot</option> 选项会很有用。</para> - </note> - - </listitem> - - <listitem> - - <indexterm><primary>syslog</primary></indexterm> - <indexterm><primary>日志文件</primary> - <secondary>named</secondary></indexterm> - - <para>配置 &man.syslogd.8; 来创建一个 <application>named</application> - 可以写的 <devicename>log</devicename> socket。 要完成它, 需要将 - <literal>-l /etc/namedb/dev/log</literal> 加到 - <filename>/etc/rc.conf</filename> 的 - <varname>syslogd_flags</varname> 变量中。</para> - </listitem> - - <listitem> - - <indexterm><primary><command>chroot</command></primary></indexterm> - - <para>启动 <application>named</application> 并让它自动地把自己 - <command>chroot</command> 到沙盒中, 方法是把下面的内容加到 - <filename>/etc/rc.conf</filename>:</para> - - <programlisting>named_enable="YES" -named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf"</programlisting> - - <note> - <para>请注意配置文件 - <replaceable>/etc/named.conf</replaceable> 是以 - <emphasis>相对于沙盒</emphasis> 的完整路径来指定的, - 例如上面那一行, 文件所在的目录实际上是 - <filename>/etc/namedb/etc/named.conf</filename>。</para> - </note> - </listitem> - </itemizedlist> - - <para>下一步是编辑 - <filename>/etc/namedb/etc/named.conf</filename> 让 - <application>named</application> 直到需要加载哪些域, - 以及它们在磁盘上的位置。 您可以用注释掉的那个例子 - (没有明确地注释掉的哪些和不在沙盒中运行 DNS 服务器时的配置无异):</para> - - <programlisting>options { - directory "/";<co id="directory"> - named-xfer "/bin/named-xfer";<co id="named-xfer"> - version ""; // Don't reveal BIND version - query-source address * port 53; -}; -// ndc control socket -controls { - unix "/var/run/ndc" perm 0600 owner 0 group 0; -}; -// Zones follow: -zone "localhost" IN { - type master; - file "master/named.localhost";<co id="master"> - allow-transfer { localhost; }; - notify no; -}; -zone "0.0.127.in-addr.arpa" IN { - type master; - file "master/localhost.rev"; - allow-transfer { localhost; }; - notify no; -}; -zone "." IN { - type hint; - file "master/named.root"; -}; -zone "private.example.net" in { - type master; - file "master/private.example.net.db"; - allow-transfer { 192.168.10.0/24; }; -}; -zone "10.168.192.in-addr.arpa" in { - type slave; - masters { 192.168.10.2; }; - file "slave/192.168.10.db";<co id="slave"> -};</programlisting> - - <calloutlist> - <callout arearefs="directory"> - <para> - <literal>directory</literal> 语句被指定为 - <filename>/</filename>, 因为所有的 - <application>named</application> 需要在这个文件中 - (这相当于在 <quote>普通</quote> 模式下运行时的 - <filename>/etc/namedb</filename>)。</para> - </callout> - - <callout arearefs="named-xfer"> - <para>指定到 <command>named-xfer</command> 执行文件的完整路径 (相对 - <application>named</application> 的参照系)。 这是必须的步骤, - 因为 <application>named</application> 在默认情况下会从 - <filename>/usr/libexec</filename> 查找 <command>named-xfer</command>。</para> - </callout> - <callout arearefs="master"><para>指定文件名 (相对于前面的 - <literal>directory</literal> 语句指定的目录), - <application>named</application> 将在这里查找域信息文件。</para> - </callout> - <callout arearefs="slave"><para>指定文件名 (相对于前面的 - <literal>directory</literal> 语句指定的目录), - <application>named</application> 将在这里写入成功地从主服务器拿到的域信息文件副本。 - 这使为什么我们在前面的步骤中将 <filename>slave</filename> 的属主改为 - <groupname>bind</groupname> 的原因。</para> - </callout> - </calloutlist> - - <para>完成这些配置之后, 您可以重新启动服务器, 或重启 - &man.syslogd.8; 服务并启动 &man.named.8;, 以确认 - <varname>syslogd_flags</varname> 和 - <varname>named_flags</varname> 的新值生效了。 - 现在您应该已经在沙盒中运行 <application>named</application> 了!</para> - - </sect2> - <sect2> <title>安全</title> @@ -3522,22 +3301,27 @@ zone "10.168.192.in-addr.arpa" in { 时常会有人发现一些可能的甚至可以利用的安全漏洞。 </para> - <para> - 经常阅读 <ulink - url="http://www.cert.org/">CERT</ulink> 的安全公告并订阅 - &a.security-notifications; 会是一个帮助您时刻了解最新 - Internet 和 FreeBSD 安全问题的好习惯。 - </para> + <para>尽管 &os; 会自动将 + <application>named</application> 放到 &man.chroot.8; + 环境中运行, 但仍有一些其它可用的安全机制来帮助您规避潜在的针对 + <acronym>DNS</acronym> 服务的攻击。</para> + + <para>阅读 <ulink + url="http://www.cert.org/">CERT</ulink> 的安全公告, + 并订阅 the &a.security-notifications; 是一个有助于帮助您了解最新 + Internet 及 &os; 安全问题的好习惯。</para> - <tip><para>如果出现了问题, 将代码升级到最新版本并重新联编 - <application>named</application> 不会带来任何麻烦。</para></tip> + <tip> + <para>如果发现了问题, 确保源代码是最新的, + 并重新联编一份 <application>named</application> 不会给您带来任何麻烦。</para> + </tip> </sect2> <sect2> <title>进一步阅读</title> <para>BIND/<application>named</application> 联机手册: - &man.ndc.8; &man.named.8; &man.named.conf.5;</para> + &man.rndc.8; &man.named.8; &man.named.conf.5;</para> <itemizedlist> <listitem> @@ -3548,13 +3332,19 @@ zone "10.168.192.in-addr.arpa" in { <listitem> <para><ulink - url="http://www.nominum.com/getOpenSourceResource.php?id=6"> - BIND FAQ</ulink></para> + url="http://www.isc.org/sw/guild/bf/">Official ISC BIND + Forum</ulink></para> + </listitem> + + <listitem> + <para><ulink + url="http://www.nominum.com/getOpenSourceResource.php?id=6"> + BIND FAQ</ulink></para> </listitem> <listitem> - <para><ulink url="http://www.oreilly.com/catalog/dns4/">O'Reilly - DNS 和 BIND 第4版</ulink></para> + <para><ulink url="http://www.oreilly.com/catalog/dns5/">O'Reilly + DNS 和 BIND 第 5 版</ulink></para> </listitem> <listitem> @@ -3572,183 +3362,6 @@ zone "10.168.192.in-addr.arpa" in { </sect2> </sect1> - <sect1 id="network-bind9"> - <sect1info> - <authorgroup> - <author> - <firstname>Tom</firstname> - <surname>Rhodes</surname> - <contrib>撰写者 </contrib> - </author> - </authorgroup> - </sect1info> - <title><acronym>BIND</acronym>9 和 &os;</title> - -<!-- This section is here to get users up with BIND9 configurations! It - does not cover the terminology, theoretical discussion (why run a name - server) or the further reading which is still in the previous section. - I did things this way to avoid repetition of content and obviously we - cannot just remove the previous section since other supported releases - use it. When the previous section is removed then those comments - should be moved here. // Tom Rhodes --> - - <indexterm><primary>bind9</primary> - <secondary>安装</secondary></indexterm> - - <para>随着 &os; 5.3 版本的发布, - <acronym>BIND</acronym>9 <acronym>DNS</acronym> - 服务软件正式成为了发行版本的一部分。 新的安全特性,文件布局, - 以及自动的 &man.chroot.8; 配置也加入进来。 这一节分成两部分, - 第一部分讨论了新增特性以及如何配置它们; 后一部分则讲述了升级过程, - 帮助用户迁移到 &os; 5.3。 从现在起, 服务器将被简单地写作 - &man.named.8; 或 <acronym>BIND</acronym>。 - 这一节跳过了前一节所介绍的那些术语, 以及一些理论上的讨论; - 因此, 建议您在继续阅读之前首先看一看前面的章节。</para> - - <para>目前, <application>named</application> 的配置文件存放在 - <filename class="directory">/var/named/etc/namedb/</filename>, - 在使用之前需要进行一些修改。 这也是进行绝大多数相关配置的地方。</para> - - <sect2> - <title>主域的配置</title> - - <para>要配置主域, 应首先进入 - <filename class="directory">/var/named/etc/namedb/</filename> - 并执行下面的命令:</para> - - <screen>&prompt.root; <userinput>sh make-localhost</userinput></screen> - - <para>如果一切正常, 则在 - <filename class="directory">master</filename> 目录中将出现两个新文件。 - 它们的名字应该是用于本地域名解析的 <filename>localhost.rev</filename>, - 以及用于 <acronym>IPv6</acronym> 配置的 - <filename>localhost-v6.rev</filename>。 作为默认的配置文件, - 关于它们的配置已经在 <filename>named.conf</filename> 文件中定义了。</para> - </sect2> - - <sect2> - <title>从域的配置</title> - - <para>可以通过配置从域来提供额外的域或子域的解析。 - 多数情况下, <filename>master/localhost.rev</filename> - 文件可以直接复制到 <filename class="directory">slave</filename> - 目录中并进行修改。 此后, - 这些文件应该加入到 <filename>named.conf</filename>, 类似下面的 - <hostid role="domainname">example.com</hostid> - 配置:</para> - - <programlisting>zone "example.com" { - type slave; - file "slave/example.com"; - masters { - 10.0.0.1; - }; -}; - -zone "0.168.192.in-addr.arpa" { - type slave; - file "slave/0.168.192.in-addr.arpa"; - masters { - 10.0.0.1; - }; -};</programlisting> - - <para>请注意在这个例子中, 主服务器的 - <acronym>IP</acronym> 地址指明了我们要从哪里把域传过来; - 那台服务器本身并不一定要作为对外的 - <acronym>DNS</acronym> 服务器来用。</para> - </sect2> - - <sect2> - <title>系统的初始配置</title> - - <para>为了让 <application>named</application> 服务能够在系统启动时自动加载, - 需要把下面的选项加到 <filename>rc.conf</filename> 文件中:</para> - - <programlisting>named_enable="YES"</programlisting> - - <para>尽管还有其他的一些可用选项, 这是运行域名服务器所需要的最小配置。 - 请参考 &man.rc.conf.5; 联机手册了解更多的选项。 如果不需要继续在 - <filename>rc.conf</filename> 文件中进行其他配置了, - 就可以通过下面的命令行来启动 <application>named</application>:</para> - - <screen>&prompt.root; <userinput>/etc/rc.d/named start</userinput></screen> - </sect2> - - <sect2> - <title><acronym>BIND</acronym>9 的安全</title> - - <para>尽管 &os; 会自动地将 <application>named</application> - 放到一个 &man.chroot.8; 环境中, - 您仍然可以采取一些更为严密的措施来防止潜在的针对 - <acronym>DNS</acronym> 服务的攻击。</para> - - <sect3> - <title>查询访问控制表</title> - - <para>查询访问控制表可以用来限制对于域的查询。 - 这些配置通过在 <literal>acl</literal> 语句中列出的 - <acronym>IP</acronym> 地址来发挥作用。 要允许一个子网查询 - example.org 中的主机, 可以做下面的定义:</para> - - <programlisting>acl "example.com" { - 192.168.0.0/24; -}; - -zone "example.com" { - type slave; - file "slave/example.com"; - masters { - 10.0.0.1; - }; - allow-query { example.com; }; -}; - -zone "0.168.192.in-addr.arpa" { - type slave; - file "slave/0.168.192.in-addr.arpa"; - masters { - 10.0.0.1; - }; - allow-query { example.com; }; -};</programlisting> - </sect3> - - <sect3> - <title>限制版本查询</title> - - <para>允许查询 <acronym>DNS</acronym> 服务的版本, - 可能会给攻击者敞开方便之门。 - 心存恶意的用户能够利用这一信息找到存在已知漏洞的服务器, - 并利用这些漏洞来实施攻击。</para> - - <warning> - <para>配置伪造的版本号并不能阻止服务器被使用已知的攻击手段进行攻击。 - 唯一能够确保安全的办法是将服务器升级到没有已知问题的版本。</para> - </warning> - - <para>伪造的版本号可以通过 <filename>named.conf</filename> 的 - <literal>options</literal> 小节来指定:</para> - - <programlisting>options { - directory "/etc/namedb"; - pid-file "/var/run/named/pid"; - dump-file "/var/dump/named_dump.db"; - statistics-file "/var/stats/named.stats"; - version "None of your business"; -};</programlisting> - </sect3> - -<!-- Here is where I stopped for now - <sect3> - <title>Authentication</title> - - <para> ... </para> - ---> - </sect2> - </sect1> - <sect1 id="network-apache"> <sect1info> <authorgroup> @@ -4622,11 +4235,6 @@ driftfile /var/db/ntp.drift</programlisting> 例如:</para> <screen>&prompt.root; <userinput>ntpd -p /var/run/ntpd.pid</userinput></screen> - - <note> - <para>在 &os; 4.X 中, - 需要把上述参数中的 <literal>ntpd</literal> - 改为 <literal>xntpd</literal>。</para></note> </sect2> <sect2> diff --git a/zh_CN.GB2312/books/handbook/ppp-and-slip/chapter.sgml b/zh_CN.GB2312/books/handbook/ppp-and-slip/chapter.sgml index f9975d5909..98ab0dd5d7 100644 --- a/zh_CN.GB2312/books/handbook/ppp-and-slip/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/ppp-and-slip/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.172 + Original Revision: 1.173 $FreeBSD$ --> @@ -139,7 +139,7 @@ <sect3> <title>前提条件</title> - <para>本章假定您具备如下条件:</para> + <para>本章假定您具备如下条件:</para> <itemizedlist> <indexterm id="ppp-isp"> @@ -198,79 +198,58 @@ <itemizedlist> <listitem> - <para>ISP的网关IP地址. 网关是您要连接的且要被设为<emphasis>默认路由</emphasis>的主机. - 如果您没有这个信息,您可以虚构一个,在连接时ISP的PPP服务器会自动告诉您正确的值.</para> + <para>ISP的网关IP地址。 网关是您准备连接, 并设为 + <emphasis>默认路由</emphasis> 的主机。 + 如果您没有这个信息, 您可以虚构一个, + 在连接时 ISP 的 PPP 服务器会自动告诉您正确的值。</para> - <para>这个虚构的IP号被<application>ppp</application>称为 - <literal>HISADDR</literal>.</para> + <para>这个虚构的 IP 地址在 <application>ppp</application> 中记做 + <literal>HISADDR</literal>。</para> </listitem> <listitem> - <para>需要使用的子网掩码.如果ISP没有提供,您可以安全地使用 - <hostid role="netmask">255.255.255.255</hostid>.</para> + <para>准备使用的子网掩码。 如果ISP没有提供, 一般使用 + <hostid role="netmask">255.255.255.255</hostid> 是没有问题的。</para> </listitem> <indexterm id="ppp-static-ip"> - <primary>static IP address</primary> + <primary>static IP address (静态 IP 地址)</primary> </indexterm> <listitem> - <para>如果ISP提供了一个静态的IP地址和主机名,可以输入它们.否则,让对方主机指定它 - 认为合适的IP地址.</para> + <para>如果 ISP 提供了静态的IP地址和主机名, 可以输入它们。 + 反之, 则应让对方主机指定它认为合适的 IP 地址。</para> </listitem> </itemizedlist> - <para>如果您不知道这些信息,请与您的ISP联系.</para> + <para>如果您不知道这些信息, 请与您的 ISP 联系。</para> - <note><para>在这节中,所有作为样例显示的配置文件信息都对行进行了编号. - 这些行号只是为了使解释和讨论变得方便,在真实当地用tab键和sp文件中并不存在. - 缩进是必需的.</para> + <note><para>在这节中, 所有作为例子展示的配置文件中都有行号。 + 这些行号只是为了使解释和讨论变得方便, 在真实的文件中并不存在。 + 此外, 在必要时应使用 Tab 和空格来进行缩进。</para> </note> </sect3> <sect3> - <title>创建PPP设备节点</title> - <indexterm><primary>PPP</primary><secondary>creating device nodes</secondary></indexterm> - - <para>一般情况下,大多数用户只需要一个<devicename>tun</devicename>设备 - (<filename>/dev/tun0</filename>),提及<devicename>tun0</devicename>时, - 即指<devicename>tun<replaceable>N</replaceable></devicename>,N是您系统中具体的号码.</para> - - <para>若的FreeBSD(FreeBSD 4.X 及早前版本)没有启用&man.devfs.5;,应当先检查 - 是否存在<devicename>tun0</devicename>设备,如果已经启用了&man.devfs.5;,这一步就没必要了 - (因为&man.devfs.5;会根据需要创建设备).</para> - - <para>为了确保<devicename>tun0</devicename>配置正确, 最简单的方式是重新创建它。 - 按照以下步骤可以重新创建设备:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>sh MAKEDEV tun0</userinput></screen> - - <para>如果您的内核要有16个tunnel设备,您必须创建它们.可以通过执行以下命令完成:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>sh MAKEDEV tun15</userinput></screen> - </sect3> - - <sect3> <title><application>PPP</application>自动化配置</title> <indexterm><primary>PPP</primary><secondary>configuration</secondary></indexterm> <para> <command>ppp</command>和<command>pppd</command>(PPP的内核级实现) - 都使用<filename>/etc/ppp</filename>目录中的配置文件.用户级PPP的例子能 - 在<filename>/usr/share/examples/ppp/</filename>中找到.</para> + 都使用<filename>/etc/ppp</filename>目录中的配置文件。 用户级 PPP + 的例子可以在 <filename>/usr/share/examples/ppp/</filename> 中找到。</para> - <para>配置<command>ppp</command>要求根据您的需要编辑几个文件.编辑哪几个文件取决于您的 - IP是静态分配还是动态分配的.</para> + <para>配置<command>ppp</command>要求根据您的需要编辑几个文件。 + 编辑哪几个文件取决于您的 + IP 是静态分配还是动态分配的。</para> <sect4 id="userppp-staticIP"> <title>PPP和静态IP地址</title> <indexterm><primary>PPP</primary><secondary>with static IP addresses</secondary></indexterm> - <para>您需要编辑配置文件<filename>/etc/ppp/ppp.conf</filename>.如下所示.</para> + <para>您需要编辑配置文件<filename>/etc/ppp/ppp.conf</filename>, 如下所示。</para> <note> - <para>以冒号<literal>:</literal>结尾的行从第一列 (行首)开始, + <para>以冒号<literal>:</literal>结尾的行从第一列 (行首)开始, 其它所有的行都要使用空格或制表符 (Tab) 来缩进。</para> </note> @@ -295,48 +274,48 @@ <variablelist> <varlistentry> - <term>行1 :</term> + <term>行1:</term> <listitem> - <para>指定默认的项.当PPP运行时这个项中的命令将自动执行.</para> + <para>指定默认的项。 当PPP运行时这个项中的命令将自动执行。</para> </listitem> </varlistentry> <varlistentry> - <term>行2:</term> + <term>行2:</term> <listitem> - <para>启用登录参数.工作正常后,为避免产生过多的日志文件,这行应该简化为: - <programlisting>set log phase tun</programlisting>.</para> + <para>启用登录参数。 工作正常后, 为避免产生过多的日志文件, 这行应该简化为: + <programlisting>set log phase tun</programlisting>。</para> </listitem> </varlistentry> <varlistentry> - <term>行 3:</term> + <term>行 3:</term> <listitem> - <para>告诉PPP怎样向对方自我标识. - 如果在建立或使用连接时遇到任何麻烦,PPP就会向对方主机自我标识.对方主机管理员 - 在处理这个问题时,这些信息会有用.</para> + <para>告诉 PPP 怎样向对方标识自己。 + 如果在建立或使用连接时遇到任何麻烦, PPP就会向对方主机自我标识。 + 对方主机管理员在处理这个问题时, 这些信息会有用。</para> </listitem> </varlistentry> <varlistentry> - <term>行 4:</term> + <term>行 4:</term> <listitem> - <para>标明modem要连接的端口号.<devicename>COM1</devicename>是 - <filename>/dev/cuaa0</filename>, <devicename>COM2</devicename> - 是<filename>/dev/cuaa1</filename>.</para> + <para>标明modem要连接的端口号。 <devicename>COM1</devicename> 对应的设备是 + <filename>/dev/cuaa0</filename>, 而 <devicename>COM2</devicename> + 对应的则是 <filename>/dev/cuaa1</filename>。</para> </listitem> </varlistentry> <varlistentry> - <term>行 5:</term> + <term>行 5:</term> <listitem> - <para>设置连接的速度.如果115200 - 不能工作,试试 38400.</para> + <para>设置连接的速度。 如果 115200 + 有问题, 试试 38400。</para> </listitem> </varlistentry> @@ -345,60 +324,63 @@ <indexterm><primary>PPP</primary><secondary>user PPP</secondary></indexterm> <listitem> - <para>拨号字符串. 用户级PPP使用一种与&man.chat.8;程序相似的语法. - 请参考联机手册了解这种语言的相关信息.</para> + <para>拨号字符串。 用户级 PPP 使用一种与 &man.chat.8;程序相似的语法。 + 请参考联机手册了解这种语言的相关信息。</para> - <para>注意,为了便于阅读此命令进行了换行.任何<filename>ppp.conf</filename>里的 - 命令都可以这样做,前提是行的最后一个字符必须是<quote>\</quote>.</para> + <para>注意, 为了便于阅读此命令进行了换行。 任何 + <filename>ppp.conf</filename> 里的命令都可以这样做, + 前提是行的最后一个字符必须是 <quote>\</quote>。</para> </listitem> </varlistentry> <varlistentry> - <term>行 8:</term> + <term>行 8:</term> <listitem> - <para>设置连接的时间间隔.默认是180秒,所以这一行是多余的.</para> + <para>设置连接的时间间隔。 默认是 180 秒, 所以这一行是多余的。</para> </listitem> </varlistentry> <varlistentry> - <term>行 9:</term> + <term>行 9:</term> <listitem> - <para>告诉PPP向对方主机确认本地域名解析设置.如果您运行了本地的域名服务器,要注释或删除掉这一行.</para> + <para>告诉PPP向对方主机确认本地域名解析设置。 + 如果您运行了本地的域名服务器, 要注释或删除掉这一行。</para> </listitem> </varlistentry> <varlistentry> - <term>行 10:</term> + <term>行 10:</term> <listitem> - <para>为了可读性的需要设置一个空行.空行会被PPP忽略.</para> + <para>为了可读性的需要设置一个空行。 空行会被PPP忽略。</para> </listitem> </varlistentry> <varlistentry> - <term>行 11:</term> + <term>行 11:</term> <listitem> - <para>为<quote>provider</quote>指定一个项.可以改成 - <acronym>ISP</acronym>的名字.这样您以后就可以使用<option>load ISP</option> - 开启连接.</para> + <para>为 <quote>provider</quote>指定一个项。 可以改成 + <acronym>ISP</acronym>的名字, 这样您以后就可以使用 + <option>load ISP</option> 来开启连接。</para> </listitem> </varlistentry> <varlistentry> - <term>行 12:</term> + <term>行 12:</term> <listitem> - <para>设置提供商的电话号码. 多个电话号码可以使用冒号(<literal>:</literal>) - 或管道符号(<literal>|</literal>)隔开.这两个字符的区别在&man.ppp.8;的联机手册中有介绍. - 总的来讲,如果您要循环使用这些号码,可以使用冒号.如果您想使用第一个号码, - 当第一个号码失败了再用第二个号码,就使用管道符号。 - 如所示的那样, 要给整个电话号码加上引号(")。</para> - - <para> 如果电话号码里有空格,必须用引号(<literal>"</literal>)将其括起来. - 否则会造成简单却难以察觉的错误.</para> + <para>设置提供商的电话号码。 多个电话号码可以使用冒号 (<literal>:</literal>) + 或管道符号 (<literal>|</literal>) 隔开。 + 这两个字符的区别在&man.ppp.8;的联机手册中有介绍。 + 总的来讲, 如果您要循环使用这些号码, 可以使用冒号。 + 如果您想使用第一个号码, 当第一个号码失败了再用第二个号码, + 就使用管道符号。 如所示的那样, 要给整个电话号码加上引号(")。</para> + + <para> 如果电话号码里有空格, 必须用引号(<literal>"</literal>)将其括起来。 + 否则会造成简单却难以察觉的错误。</para> </listitem> </varlistentry> @@ -406,55 +388,63 @@ <term>行 13 & 14:</term> <listitem> - <para>指定用户名和密码.当使用一个&unix;风格的命令提示符登录时,这些值可以用带有\U \P参数 - 的<command>set login</command>命令进行修改.当使用PAP或CHAP进行连接时, - 这些值在验证使用.</para> + <para>指定用户名和密码。 当使用 &unix; 风格的命令提示符登录时, + 这些值可以用带有 \U \P 参数的 <command>set login</command> + 命令进行修改。 当使用PAP或CHAP进行连接时, 这些值在验证使用。</para> </listitem> </varlistentry> <varlistentry> - <term>行 15:</term> + <term>行 15:</term> <listitem> <indexterm><primary>PAP</primary></indexterm> <indexterm><primary>CHAP</primary></indexterm> - <para>如果您使用的是PAP或者CHAP,在这里就不会有登录.要注释或删除掉这一行. - 请参考 <link linkend="userppp-PAPnCHAP">PAP和CHAP认证</link> 以获取更多细节.</para> + <para>如果您使用的是PAP或者CHAP, 在这里就不会有登录。 + 要注释或删除掉这一行。 + 请参考 <link linkend="userppp-PAPnCHAP">PAP 和 CHAP认证</link> + 以了解更多细节。</para> - <para>登录命令是的语法是chat类型的.在这个例子中,是这样的:</para> + <para>登录命令是的语法是chat类型的。 在这个例子中是这样的:</para> <screen>J. Random Provider login: <replaceable>foo</replaceable> password: <replaceable>bar</replaceable> protocol: ppp</screen> - <para>您需要改变这个脚本以适合您自己的需要.当您第一次写这个脚本时, - 应当确保已经启用<quote>chat</quote>并处于登录状态,这样您才能确认通信是否 - 正在按计划进行.</para> + <para>您需要改变这个脚本以适合您自己的需要。 + 当您第一次写这个脚本时, 应当确保已经启用 + <quote>chat</quote> 并处于登录状态, + 这样您才能确认通信是否正在按计划进行。</para> </listitem> </varlistentry> <varlistentry> - <term>行16:</term> + <term>行16:</term> <indexterm><primary>timeout</primary></indexterm> <listitem> - <para>设置默认的超时时间.这里,连接若在300秒内无响应将被断开.如果您不想设置成超时, - 将这个值设置成0,或在命令行使用<option>-ddial</option>选项.</para> + <para>设置默认的超时时间。 这里, 连接若在 300 + 秒内无响应将被断开。如果您不想设置成超时, + 将这个值设置成0, 或在命令行使用 <option>-ddial</option> 选项。</para> </listitem> </varlistentry> <varlistentry> - <term>行 17:</term> + <term>行 17:</term> <indexterm><primary>ISP</primary></indexterm> <listitem> - <para>设置接口地址. 字符串 - <replaceable>x.x.x.x</replaceable>需要用ISP提供给您的IP地址替换. 字符串 - <replaceable>y.y.y.y</replaceable>要用ISP的网关IP地址替换(即您要连接的主机). - 如果ISP没有给您网关地址,可以使用<hostid role="netmask">10.0.0.2/0</hostid>. - 如果您需要使用一个<quote>猜到</quote>的地址,请确保在<filename>/etc/ppp/ppp.linkup</filename> - 中为每个<link linkend="userppp-dynamicIP">PPP和动态IP地址</link>指令创建了项. - 如果没有这一行,<command>ppp</command> 将无法运行<option>-auto</option>模式.</para> + <para>设置接口地址。 您需要用 ISP 提供给您的 IP 地址替换字符串 + <replaceable>x.x.x.x</replaceable>, 用 ISP 的网关 IP + 地址 (即您要连接的主机) 替换字符串 + <replaceable>y.y.y.y</replaceable>。 + 如果ISP没有给您提供网关地址, 可以使用 + <hostid role="netmask">10.0.0.2/0</hostid>。 + 如果您需要使用一个 <quote>猜到</quote>的地址, + 请确保在 <filename>/etc/ppp/ppp.linkup</filename> + 中为每个 <link linkend="userppp-dynamicIP">PPP和动态IP地址</link> + 指令创建了这一项。 如果没有这一行, <command>ppp</command> + 将无法以 <option>-auto</option> 模式运行。</para> </listitem> </varlistentry> @@ -467,87 +457,87 @@ protocol: ppp</screen> 这行必须出现在第17行之后,以免在 <literal>HISADDR</literal> 初始化之前使用它的值。</para> - <para>如果您不想使用 <option>-auto</option> 的 PPP,则这行应挪到, + <para>如果您不想使用 <option>-auto</option> 的 PPP,则这行应挪到 <filename>ppp.linkup</filename> 文件中。</para> </listitem> </varlistentry> </variablelist> - <para>若您有一个静态IP地址,且使用<option>-auto</option> - 模式运行ppp(因为在连接之前已经正确设置了路由表项),那就不需要再向<filename>ppp.linkup</filename> - 添加项.您可能希望在连接以后创建一个项来调用程序.这在以后的sendmail的例子中会解释. - .</para> + <para>若您有一个静态IP地址, 且使用<option>-auto</option> + 模式运行ppp(因为在连接之前已经正确设置了路由表项), 那就不需要再向<filename>ppp.linkup</filename> + 添加项。 您可能希望在连接以后创建一个项来调用程序。 这在以后的sendmail的例子中会解释。</para> - <para>示例配置文件可以在目录<filename>/usr/share/examples/ppp/</filename>中找到.</para> + <para>示例配置文件可以在目录<filename>/usr/share/examples/ppp/</filename>中找到。</para> </sect4> <sect4 id="userppp-dynamicIP"> <title>PPP和动态IP地址</title> <indexterm><primary>PPP</primary><secondary>with dynamic IP addresses</secondary></indexterm> <indexterm><primary>IPCP</primary></indexterm> - <para>如果ISP没给您指定静态的IP地址,<command>ppp</command>要被配置成能够与对方协商确定本地和远程地址. - 要完成这项工作,先要<quote>猜</quote>一个IP地址,然后允许 - <command>ppp</command>在连接后使用IP配置协议(IPCP)进行正确配置. + <para>如果ISP没给您指定静态的IP地址, <command>ppp</command>要被配置成能够与对方协商确定本地和远程地址。 + 要完成这项工作, 先要<quote>猜</quote>一个IP地址, 然后允许 + <command>ppp</command>在连接后使用IP配置协议(IPCP)进行正确配置。 <filename>ppp.conf</filename>的配置是与 - <link linkend="userppp-staticIP">PPP和静态IP地址</link>一样的,除了以下的改变:</para> + <link linkend="userppp-staticIP">PPP和静态IP地址</link>一样的, 除了以下的改变:</para> <programlisting>17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255</programlisting> - <para>再次强调,不要包括行号,它只是一个引用标记.缩排一个空格是必须的.</para> + <para>再次强调, 不要包括行号, 它只是一个引用标记。 缩排一个空格是必需的。</para> <variablelist> <varlistentry> - <term>行17:</term> + <term>行17:</term> <listitem> - <para><literal>/</literal>字符以后是PPP所要求的地址位码. - 您可以根据需要使用不同IP号码,但以上的例子永远是可行的.</para> + <para><literal>/</literal> 字符后面是 PPP 所要求的地址掩码。 + 您可以根据需要使用不同 IP 地址, 但以上的例子永远是可行的。</para> <para>最后的参数(<literal>0.0.0.0</literal>)告诉 PPP从<hostid - role="ipaddr">0.0.0.0</hostid> 而不是 <hostid - role="ipaddr">10.0.0.1</hostid> 开始协商地址,对于有些ISP, - 这是必需的.不要将 <literal>0.0.0.0</literal> - 作为 <command>set ifaddr</command>的第一个参数,因为这使得PPP在 - <option>-auto</option> 模式时不能设置初始路由.</para> + role="ipaddr">0.0.0.0</hostid> 而不是 <hostid + role="ipaddr">10.0.0.1</hostid> 开始协商地址, 对于有些ISP, + 这是必需的。 不要将 <literal>0.0.0.0</literal> + 作为 <command>set ifaddr</command> 的第一个参数, + 因为这使得 PPP 在 <option>-auto</option> 模式时不能设置初始路由。</para> </listitem> </varlistentry> </variablelist> - <para>如果您不运行<option>-auto</option>模式, - 就需要在<filename>/etc/ppp/ppp.linkup</filename>中创建一个项. - 连接建立之后,<filename>ppp.linkup</filename>被启用. 这时候, - <command>ppp</command>将指派接口地址,接着再添加路由表项:</para> + <para>如果您不运行<option>-auto</option>模式, + 就需要在<filename>/etc/ppp/ppp.linkup</filename>中创建一个项。 + 连接建立之后, <filename>ppp.linkup</filename>被启用。 这时候, + <command>ppp</command>将指派接口地址, 接着再添加路由表项:</para> <programlisting>1 provider: 2 add default HISADDR</programlisting> <variablelist> <varlistentry> - <term>Line 1:</term> + <term>行 1:</term> <listitem> - <para>为了建立连接, + <para>为了建立连接, <command>ppp</command> 会按按照如下规则在 - <filename>ppp.linkup</filename>寻找项:首先,试图寻找相同的标签 - (如同在<filename>ppp.conf</filename>一样).如果失败了,寻找作为网关 - IP地址的项,此项是四个八位字节的风格.如果依旧没有找到,就寻找<literal>MYADDR</literal>项</para> + <filename>ppp.linkup</filename>寻找项:首先, 试图寻找相同的标签 + (如同在<filename>ppp.conf</filename>一样)。 如果失败了, + 寻找作为网关 IP 地址的项, 此项是四个八位字节的风格。 + 如果依旧没有找到, 就寻找 <literal>MYADDR</literal> 项</para> </listitem> </varlistentry> <varlistentry> - <term>行 2:</term> + <term>行 2:</term> <listitem> <para>这行告诉 <command>ppp</command>添加指向 - <literal>HISADDR</literal>的默认路由. - <literal>HISADDR</literal>由通过IPCP协商得到的IP号替换.</para> + <literal>HISADDR</literal>的默认路由。 + <literal>HISADDR</literal>由通过IPCP协商得到的IP号替换。</para> </listitem> </varlistentry> </variablelist> <para>参考<filename>/usr/share/examples/ppp/ppp.conf.sample</filename> 和<filename>/usr/share/examples/ppp/ppp.linkup.sample</filename> - 中的<literal>pmdemand</literal>项以获取细节化的例子.</para> + 中的<literal>pmdemand</literal>项以获取细节化的例子。</para> </sect4> <sect4> @@ -555,58 +545,59 @@ protocol: ppp</screen> <indexterm><primary>PPP</primary><secondary>receiving incoming calls</secondary></indexterm> <para>当要配置 <application>ppp</application>接受来自LAN上的 - 拨入时,您需要决定是否将包转给LAN.如果是的话,您就必须从LAN子网中 - 给对方分配一个IP, 需要在文件<filename>/etc/ppp/ppp.conf</filename> - 中使用命令<command>enable proxy</command> .您还应该确定文件 - <filename>/etc/rc.conf</filename>中包含以下内容:</para> + 拨入时, 您需要决定是否将包转给LAN。 如果是的话, 您就必须从 LAN + 子网中给对方分配一个IP, 需要在文件 <filename>/etc/ppp/ppp.conf</filename> + 中使用命令 <command>enable proxy</command>。 您还应该确定文件 + <filename>/etc/rc.conf</filename> 中包含以下内容:</para> <programlisting>gateway_enable="YES"</programlisting> </sect4> <sect4> - <title>使用哪个ggtty?</title> + <title>使用哪个getty?</title> - <para><link linkend="dialup">配置FreeBSD的拨号服务</link>描述了怎么使用命令 - &man.getty.8;启动拨号服务.</para> + <para><link linkend="dialup">配置 FreeBSD 的拨号服务</link> + 描述了如何用 &man.getty.8; 来启动拨号服务。</para> - <para>除了<command>getty</command> 还有 <ulink - url="http://www.leo.org/~doering/mgetty/index.html">mgetty</ulink>, - 它是<command>getty</command>的智能版本,是按照拨号线的思想设计的.</para> + <para>除了 <command>getty</command> 之外还有 <ulink + url="http://www.leo.org/~doering/mgetty/index.html">mgetty</ulink>, + 它是 <command>getty</command> 的智能版本, 是按照拨号线的思想设计的。</para> - <para>使用<command>mgetty</command>的好处是它能积极地与modems进行 - <emphasis>talks</emphasis> , - 这就意味着如果在<filename>/etc/ttys</filename>中的端口被关闭, - 您的moderm就不会回应拨入.</para> + <para>使用 <command>mgetty</command> 的好处是它能积极地与 modem 进行 + <emphasis>会话</emphasis>, + 这就意味着如果在<filename>/etc/ttys</filename>中的端口被关闭, + 您的moderm就不会回应拨入。</para> - <para>最新版本的<command>mgetty</command> (from - 0.99beta onwards)也支持自动侦测PPP数据流,允许客户端不使用脚本就可以访问服务器 - .</para> + <para>较新版本的 <command>mgetty</command> (从 + 0.99beta 起) 也支持自动检测 PPP 数据流, + 这样即便客户端不使用脚本也能访问服务器了。</para> <para>参考<link linkend="userppp-mgetty">Mgetty 和 - AutoPPP</link>的联机手册了解更多信息.</para> + AutoPPP</link>的联机手册了解更多信息。</para> </sect4> <sect4> <title><application>PPP</application> 权限</title> - <para> <command>ppp</command>命令通常必须作为<username>root</username>用户运行. - 但如果想让一个普通用户将<command>ppp</command>运行于服务器模式(就像下面描述的那样) - ,您必须要把此用户加入<username>network</username>组以使其获得运行 <command>ppp</command> - 的权限.</para> + <para><command>ppp</command> 命令通常必须以 <username>root</username> + 用户的身份运行。 如果希望以普通用户的身份启动 <command>ppp</command> + 服务 (就像下面描述的那样), 就必须把此用户加入 + <username>network</username> 组, 使其获得运行 <command>ppp</command> + 的权限。</para> <para>您还需要使用<command>allow</command>命令使用户能访问配置文 - 件的一个或多个部分:</para> + 件的一个或多个部分:</para> <programlisting>allow users fred mary</programlisting> <para>如果这个命令被用在 <literal>default</literal> - 部分中,您可以让指定的用户访问任何东西.</para> + 部分中, 您可以让指定的用户访问任何东西。</para> </sect4> <sect4> <title>动态IP用户的PPP Shell</title> <indexterm><primary>PPP shells</primary></indexterm> - <para>创建一个名为<filename>/etc/ppp/ppp-shell</filename>文件,加入以下内容:</para> + <para>创建一个名为<filename>/etc/ppp/ppp-shell</filename>文件, 加入以下内容:</para> <programlisting>#!/bin/sh IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'` CALLEDAS="$IDENT" @@ -621,8 +612,8 @@ echo "Starting PPP for $IDENT" exec /usr/sbin/ppp -direct $IDENT</programlisting> - <para>这个脚本要有可执行属性. 然后通过如下命令创建一个指向此脚本且名为 - <filename>ppp-dialup</filename>的符号链接:</para> + <para>这个脚本要有可执行属性。 然后通过如下命令创建一个指向此脚本且名为 + <filename>ppp-dialup</filename>的符号链接:</para> <screen>&prompt.root; <userinput>ln -s ppp-shell /etc/ppp/ppp-dialup</userinput></screen> @@ -635,40 +626,40 @@ exec /usr/sbin/ppp -direct $IDENT</programlisting> <programlisting>pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup</programlisting> - <para>创建一个名为 <filename>/home/ppp</filename>的目录作为拨入用户的主目录, - 包含以下这些空文件:</para> + <para>创建一个名为 <filename>/home/ppp</filename>的目录作为拨入用户的主目录, + 包含以下这些空文件:</para> <screen>-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin -r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts</screen> - <para>这样就可以防止<filename>/etc/motd</filename>被显示出来.</para> + <para>这样就可以防止<filename>/etc/motd</filename>被显示出来。</para> </sect4> <sect4> <title>静态IP用户的Shell </title> <indexterm><primary>PPP shells</primary></indexterm> - <para>像上面那样创建<filename>ppp-shell</filename>文件, + <para>像上面那样创建<filename>ppp-shell</filename>文件, 为每个静态分配IP用户创建一个到 <filename>ppp-shell</filename>的 - 符号链接.</para> + 符号链接。</para> - <para>例如,如果您有三个拨号用户, - <username>fred</username>,<username>sam</username>,和 - <username>mary</username>,您为他们路由C类网络,您需要键入以下内容:</para> + <para>例如, 如果您有三个拨号用户, + <username>fred</username>, <username>sam</username>, 和 + <username>mary</username>, 您为他们路由C类网络, 您需要键入以下内容:</para> <screen>&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred</userinput> &prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam</userinput> &prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary</userinput></screen> <para>每个用户的Shell必须被设成一个符号链接(例如用户 - <username>mary</username>的Shell应该是<filename>/etc/ppp/ppp-mary</filename>).</para> + <username>mary</username>的Shell应该是<filename>/etc/ppp/ppp-mary</filename>)。</para> </sect4> <sect4> <title>为动态IP用户设置<filename>ppp.conf</filename> </title> <para> <filename>/etc/ppp/ppp.conf</filename>文件应该包含下面 - 这些行:</para> + 这些行:</para> <programlisting>default: set debug phase lcp chat @@ -683,21 +674,22 @@ ttyd1: enable proxy</programlisting> <note> - <para>缩进得必须的.</para> + <para>缩进得必须的。</para> </note> - <para> <literal>default:</literal>项在每次会话时都会加载.每个在 - <filename>/etc/ttys</filename>中启用的行都必须为其创建一个相似于 - <literal>ttyd0:</literal> 的项.每一行应该从动态IP 地址池中取得 - 唯一的IP地址.</para> + <para> <literal>default:</literal>项在每次会话时都会加载。 每个在 + <filename>/etc/ttys</filename> 中启用的行都必须为其创建一个相似于 + <literal>ttyd0:</literal> 的项。 每一行应该从动态 IP + 地址池中取得唯一的IP地址。</para> </sect4> <sect4> - <title> 为静态IP用户配置<filename>ppp.conf</filename></title> + <title>为静态 IP 用户配置 <filename>ppp.conf</filename></title> - <para>根据上面<filename>/usr/share/examples/ppp/ppp.conf</filename>文件的内容, - 您必须为每个静态拨号用户添加一个项.我们继续以<username>fred</username>, <username>sam</username>, - 和<username>mary</username>为例.</para> + <para>根据上面 <filename>/usr/share/examples/ppp/ppp.conf</filename> 文件的内容, + 您必须为每个静态拨号用户添加一个项。 我们继续以 + <username>fred</username>、 <username>sam</username> + 以及 <username>mary</username>为例。</para> <programlisting>fred: set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255 @@ -708,9 +700,10 @@ sam: mary: set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255</programlisting> - <para> 如果需要,<filename>/etc/ppp/ppp.linkup</filename> - 也应该包括每个静态IP用户的的路由信息.下面这一行为客户连接添加了 - <hostid role="ipaddr">203.14.101.0</hostid>C类路由.</para> + <para> 如果需要, <filename>/etc/ppp/ppp.linkup</filename> + 也应该包括每个静态IP用户的的路由信息。 + 下面这一行为客户连接添加了到 C 类网络 + <hostid role="ipaddr">203.14.101.0</hostid>的路由。</para> <programlisting>fred: add 203.14.101.0 netmask 255.255.255.0 HISADDR @@ -733,26 +726,26 @@ mary: <para>在配置和编译<command>mgetty</command> 时启用 <literal>AUTO_PPP</literal>选项 使<command>mgetty</command>能够探测PPP连接的的LCP状态 - 并自动产生PPP Shell. 但如果默认的login/password队列没有出现, - 那就必须使用PAP或CHAP来验证用户.</para> + 并自动产生PPP Shell。 但如果默认的login/password队列没有出现, + 那就必须使用PAP或CHAP来验证用户。</para> - <para>这节假定您已经为用户成功地配置,编译了带有<literal>AUTO_PPP</literal>选项的 - <command>mgetty</command>.</para> - <para>确认钅件<filename>/usr/local/etc/mgetty+sendfax/login.config</filename> - 包含以下内容:</para> + <para>这节假定您已经为用户成功地配置, 编译了带有<literal>AUTO_PPP</literal>选项的 + <command>mgetty</command>。</para> + <para>确认文件 <filename>/usr/local/etc/mgetty+sendfax/login.config</filename> + 包含以下内容:</para> <programlisting>/AutoPPP/ - - /etc/ppp/ppp-pap-dialup</programlisting> <para>这行告诉<command>mgetty</command>运行 - <filename>ppp-pap-dialup</filename>脚本来侦听PPP连接.</para> + <filename>ppp-pap-dialup</filename>脚本来侦听PPP连接。</para> - <para>创建<filename>/etc/ppp/ppp-pap-dialup</filename>文件写入以下内容 (此文件应该是可执行的):</para> + <para>创建<filename>/etc/ppp/ppp-pap-dialup</filename>文件写入以下内容 (此文件应该是可执行的):</para> <programlisting>#!/bin/sh exec /usr/sbin/ppp -direct pap$IDENT</programlisting> - <para>对应于每个在<filename>/etc/ttys</filename>的启用行,都要在<filename>/etc/ppp/ppp.conf</filename> - 中创建相应的项. 这和上面的定义是相同的.</para> + <para>对应于每个在<filename>/etc/ttys</filename>的启用行, 都要在<filename>/etc/ppp/ppp.conf</filename> + 中创建相应的项。 这和上面的定义是相同的。</para> <programlisting>pap: enable pap @@ -766,10 +759,11 @@ exec /usr/sbin/ppp -direct pap$IDENT</programlisting> <programlisting>enable passwdauth</programlisting> - <para>如果您想为某些用户分配静态IP, - 可以在<filename>/etc/ppp/ppp.secret</filename>中将IP号作为第三个参数指定. 参看 + <para>如果您想为某些用户分配静态IP, + 可以在 <filename>/etc/ppp/ppp.secret</filename> + 中将IP号作为第三个参数指定。 请参见 <filename>/usr/share/examples/ppp/ppp.secret.sample</filename> - 中的例子.</para> + 中的例子。</para> </sect4> <sect4> @@ -777,42 +771,44 @@ exec /usr/sbin/ppp -direct pap$IDENT</programlisting> <indexterm><primary>DNS</primary></indexterm> <indexterm><primary>NetBIOS</primary></indexterm> <indexterm><primary>PPP</primary><secondary>Microsoft extensions</secondary></indexterm> - <para>可以配置PPP以提供DNS和NetBIOS域名服务器地址.</para> + <para>可以配置PPP以提供DNS和NetBIOS域名服务器地址。</para> - <para>要在PPP版本 1.x中启用这些扩展,必须向 - <filename>/etc/ppp/ppp.conf</filename>的相关项加入以下行:</para> + <para>要在 PPP 1.x 版本中启用这些扩展, 需要在 + <filename>/etc/ppp/ppp.conf</filename> 的对应项中加入下列配置:</para> <programlisting>enable msext set ns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5</programlisting> - <para>PPP版本2及以上 :</para> + <para>PPP版本2及以上:</para> <programlisting>accept dns set dns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5</programlisting> - <para>这将告诉客户端首选域名服务器和备用域名服务器.</para> + <para>这将告诉客户端首选域名服务器和备用域名服务器。</para> - <para>在版本2及以上版本中, 如果省略了 - <literal>set dns</literal>, PPP会使用 - <filename>/etc/resolv.conf</filename>中的值.</para> + <para>在版本2及以上版本中, 如果省略了 + <literal>set dns</literal>, PPP会使用 + <filename>/etc/resolv.conf</filename>中的值。</para> </sect4> <sect4 id="userppp-PAPnCHAP"> - <title>PAP 和CHAP验证</title> + <title>PAP 和 CHAP 验证</title> <indexterm><primary>PAP</primary></indexterm> <indexterm><primary>CHAP</primary></indexterm> - <para>一些ISP将系统设置成使用PAP或CHAP机制来完成连接的验证部分. - . 如果是这样,在您连接时ISP就不会给出<prompt>login:</prompt>提示符而是立即开始PPP对话.</para> + <para>一些 ISP 将系统配置为使用 PAP 或 CHAP 机制来完成连接验证。 + 如果遇到这种情况, 在您连接时 ISP 就不会看到 + <prompt>login:</prompt> 提示符, 而是立即开始 PPP 对话。</para> - <para>PAP安全性要比CHAP差一些,但在这里安全性并不是问题,因为密码(即使用明文传送)只是通过串行线传送. - 黑客没有太多机会<quote>窃听</quote>.</para> + <para>PAP 安全性要比 CHAP 差一些, 但在这里安全性并不是问题, + 因为密码 (即使用明文传送) 只是通过串行线传送, + 攻击者并没有太多机会去 <quote>窃听</quote> 它。</para> - <para>参考<link linkend="userppp-staticIP">PPP - 和静态IP地址</link> 或 <link - linkend="userppp-dynamicIP">PPP 和动态IP地址</link> - 节,必须做以下修改:</para> + <para>参考 <link linkend="userppp-staticIP">PPP + 与静态 IP 地址</link> 或 <link + linkend="userppp-dynamicIP">PPP 与动态 IP 地址</link> + 小节, 并完成下列改动:</para> <programlisting>13 set authname <replaceable>MyUserName</replaceable> 14 set authkey <replaceable>MyPassword</replaceable> @@ -823,8 +819,8 @@ set nbns 203.14.100.5</programlisting> <term>第 13 行:</term> <listitem> - <para>这一行指明您的PAP/CHAP用户名. - 您需要为<replaceable>MyUserName</replaceable>输入正确的值.</para> + <para>这一行指明您的PAP/CHAP用户名。 + 您需要为<replaceable>MyUserName</replaceable>输入正确的值。</para> </listitem> </varlistentry> @@ -835,19 +831,19 @@ set nbns 203.14.100.5</programlisting> <para>这一行指明您的 PAP/CHAP password密码。 您需要为 <replaceable>MyPassword</replaceable> 输入正确的值。 另外,您可能希望加入一些额外的选项,例如:</para> - + <programlisting>16 accept PAP</programlisting> <para>或</para> <programlisting>16 accept CHAP</programlisting> - <para>以明确您的意图,但PAP和CHAP都是被默认接受的.</para> + <para>以明确您的意图, 不过, 默认情况下 PAP 和 CHAP 都会被接受。</para> </listitem> </varlistentry> <varlistentry> - <term>Line 15:</term> + <term>行 15:</term> <listitem> <para>如果您使用的是 PAP 或 CHAP, 一般来说 ISP @@ -862,16 +858,16 @@ set nbns 203.14.100.5</programlisting> <sect4> <title>即时改变您的<command>ppp</command> 配置</title> - <para>与后台运行的<command>ppp</command>程序进行对话是可能的, - 前提是设置了一个合适的诊断端口. 做到这一点,需要把下面的行加入到您的配置中:</para> + <para>与后台运行的<command>ppp</command>程序进行对话是可能的, + 前提是设置了一个合适的诊断端口。 做到这一点, 需要把下面的行加入到您的配置中:</para> <programlisting>set server /var/run/ppp-tun<replaceable>%d</replaceable> DiagnosticPassword 0177</programlisting> - <para>这行告诉 PPP在指定的&unix;域socket中侦听,当用户连接时需要给出指定的密码. - <literal>%d</literal>用<devicename>tun</devicename>设备号替换.</para> + <para>这行告诉 PPP在指定的&unix;域socket中侦听, 当用户连接时需要给出指定的密码。 + <literal>%d</literal>用<devicename>tun</devicename>设备号替换。</para> - <para>一旦启用了socket, 就可以在脚本中调用程序&man.pppctl.8;来处理正在运行的 - 的PPP.</para> + <para>一旦启用了socket, 就可以在脚本中调用程序&man.pppctl.8;来处理正在运行的 + 的PPP。</para> </sect4> </sect3> @@ -879,24 +875,24 @@ set nbns 203.14.100.5</programlisting> <title>使用PPP网络地址翻译</title> <indexterm><primary>PPP</primary><secondary>NAT</secondary></indexterm> - <para>PPP可以使用内建的NAT,而不需内核支持. 这个功能可以通过在<filename>/etc/ppp/ppp.conf</filename>中的 - 以下行启用:</para> + <para>PPP 可以使用内建的 NAT, 而无需内核支持。 + 您可以在 <filename>/etc/ppp/ppp.conf</filename> 中加入如下配置来启用它:</para> <programlisting>nat enable yes</programlisting> <para> PPP NAT也可以使用命令行选项 - <literal>-nat</literal>启动. 在文件 - <filename>/etc/rc.conf</filename>中也有 - <literal>ppp_nat</literal>项,且是默认启用的.</para> + <literal>-nat</literal>启动。 在 + <filename>/etc/rc.conf</filename> 文件中也有 + <literal>ppp_nat</literal> 项, 并默认启用。</para> - <para>如果您使用了这个特性, 您还会发现在 + <para>如果您使用了这个特性, 您还会发现在 <filename>/etc/ppp/ppp.conf</filename>中以下 - 选项对于启用incoming connections forwarding是有用的:</para> + 选项对于启用incoming connections forwarding是有用的:</para> <programlisting>nat port tcp 10.0.0.2:ftp ftp nat port tcp 10.0.0.2:http http</programlisting> - <para>or do not trust the outside at all</para> + <para>或者完全不信任外来的请求</para> <programlisting>nat deny_incoming yes</programlisting> </sect3> @@ -905,32 +901,33 @@ nat port tcp 10.0.0.2:http http</programlisting> <title>最后的系统配置</title> <indexterm><primary>PPP</primary><secondary>configuration</secondary></indexterm> - <para>现在您已配置了<command>ppp</command>,但在真正工作之前还有一些事情要做.它们都与编辑 - <filename>/etc/rc.conf</filename>有关.</para> + <para>现在您已配置了<command>ppp</command>, 但在真正工作之前还有一些事情要做。 + 即修改 <filename>/etc/rc.conf</filename>。</para> - <para>从上依次往下看,确认设置了 - <literal>hostname=</literal> 行, e.g.:</para> + <para>从上依次往下看, 确认已经正确地配置了 + <literal>hostname=</literal>, 例如:</para> <programlisting>hostname="foo.example.com"</programlisting> - <para>如果您的ISP提供给您一个静态的IP和名字,将这个名字设为hostname是最合适的.</para> + <para>如果您的ISP提供给您一个静态的IP和名字, 将这个名字设为hostname是最合适的。</para> - <para>寻找 <literal>network_interfaces</literal> 变量. - 如果要配置系统通过拨号连入ISP, - 一定要将<devicename>tun0</devicename>设备加入这个列表,否则就删除它.</para> + <para>寻找 <literal>network_interfaces</literal> 变量。 + 如果要配置系统通过拨号连入ISP, + 一定要将<devicename>tun0</devicename>设备加入这个列表, 否则就删除它。</para> <programlisting>network_interfaces="lo0 tun0" ifconfig_tun0=</programlisting> <note> - <para> <literal>ifconfig_tun0</literal>变量应该是空的,且要创建一个名为 - <filename>/etc/start_if.tun0</filename>的文件. - 这个文件应该包含这一行:</para> + <para> <literal>ifconfig_tun0</literal>变量应该是空的, 且要创建一个名为 + <filename>/etc/start_if.tun0</filename>的文件。 + 这个文件应该包含这一行:</para> <programlisting>ppp -auto mysystem</programlisting> - <para>此脚本在网络配置时被执行,开启PPP守护进程进入自动模式.如果这台机子充当一个LAN的网关, - 您可能希望使用<option>-alias</option>.参考相关联机手册了解更多细节.</para> + <para>此脚本在网络配置时被执行, 开启PPP守护进程进入自动模式。 + 如果这台机子充当一个LAN的网关, 您可能希望使用 + <option>-alias</option>。 参考相关联机手册了解更多细节。</para> </note> <para>务必在 @@ -956,12 +953,12 @@ ifconfig_tun0=</programlisting> <indexterm> <primary><application>sendmail</application></primary> </indexterm> - <para>替代的作法是当每次PPP连接建立时您必须通过键入以下命令强制 - <command>sendmail</command>重新检查邮件队列:</para> + <para>替代的做法是当每次 PPP 连接建立时您必须通过键入以下命令强制 + <command>sendmail</command> 重新检查邮件队列:</para> <screen>&prompt.root; <userinput>/usr/sbin/sendmail -q</userinput></screen> - <para>您也可以在<filename>ppp.linkup</filename>使用<command>!bg</command>命令自动完成这些工作:</para> + <para>您也可以在<filename>ppp.linkup</filename>使用<command>!bg</command>命令自动完成这些工作:</para> <programlisting>1 provider: 2 delete ALL @@ -969,18 +966,19 @@ ifconfig_tun0=</programlisting> 4 !bg sendmail -bd -q30m</programlisting> <indexterm><primary>SMTP</primary></indexterm> - <para>如果您不喜欢这样做, 可以设立一个 - <quote>dfilter</quote> 以阻止 SMTP传输.参考相关文件了解更多细节 .</para> + <para>如果您不喜欢这样做, 可以设立一个 + <quote>dfilter</quote> 以阻止 SMTP 传输。 + 参考相关文件了解更多细节。</para> <para>现在您唯一要做的事是重新启动计算机。 - 重起之后,可以输入:</para> + 重启之后,可以输入:</para> <screen>&prompt.root; <userinput>ppp</userinput></screen> - <para>然后是<command>dial provider</command>以开启 PPP会话. - 或者如果您想让<command>ppp</command>自动建立会话 - ,因为您有一个广域连接(且没有创建 <filename>start_if.tun0</filename> - 脚本),键入:</para> + <para>然后是<command>dial provider</command>以开启 PPP会话。 + 或者如果您想让<command>ppp</command>自动建立会话, + 因为您有一条广域网连接 (且没有创建 <filename>start_if.tun0</filename> + 脚本), 键入:</para> <screen>&prompt.root; <userinput>ppp -auto provider</userinput></screen> </sect3> @@ -988,75 +986,75 @@ ifconfig_tun0=</programlisting> <sect3> <title>总结</title> - <para>当第一次设置PPP时,下面几步是必须的:</para> + <para>当第一次设置PPP时, 下面几步是必须的:</para> - <para>客户端:</para> + <para>客户端:</para> <procedure> <step> - <para>确保 <devicename>tun</devicename>编译进了进核.</para> + <para>确保 <devicename>tun</devicename>编译进了进核。</para> </step> <step> <para>确保<filename>tun<replaceable>N</replaceable></filename> - 设备文件在 <filename>/dev</filename> 目录中是可用的.</para> + 设备文件在 <filename>/dev</filename> 目录中是可用的。</para> </step> <step> <para>在 - <filename>/etc/ppp/ppp.conf</filename>中创建一个项. - <filename>pmdemand</filename>示例应该适合于绝大多数ISP.</para> + <filename>/etc/ppp/ppp.conf</filename>中创建一个项。 + <filename>pmdemand</filename>示例应该适合于绝大多数ISP。</para> </step> <step> - <para>如果您使用动态IP地址,在<filename>/etc/ppp/ppp.linkup</filename>创建一个项.</para> + <para>如果您使用动态IP地址, 在<filename>/etc/ppp/ppp.linkup</filename>创建一个项。</para> </step> <step> <para>更新<filename>/etc/rc.conf</filename> - 文件.</para> + 文件。</para> </step> <step> - <para>如果您要求按需拨号,创建一个<filename>start_if.tun0</filename>脚本.</para> + <para>如果您要求按需拨号, 创建一个<filename>start_if.tun0</filename>脚本。</para> </step> </procedure> - <para>服务器端:</para> + <para>服务器端:</para> <procedure> <step> - <para>确保<devicename>tun</devicename>设备已编译入内核.</para> + <para>确保<devicename>tun</devicename>设备已编译入内核。</para> </step> <step> <para>确保<filename>tun<replaceable>N</replaceable></filename>设备文件在 - <filename>/dev</filename>目录中是可用的.</para> + <filename>/dev</filename>目录中是可用的。</para> </step> <step> <para>在<filename>/etc/passwd</filename>中创建一个项 - (使用&man.vipw.8;程序).</para> + (使用&man.vipw.8;程序)。</para> </step> <step> <para>在用户的home目录创建一个运行 - <command>ppp -direct direct-server</command>或相似命令的profile.</para> + <command>ppp -direct direct-server</command>或相似命令的profile。</para> </step> <step> - <para>在<filename>/etc/ppp/ppp.conf</filename>中创建一个项. - <filename>direct-server</filename>示例应该能满足要求.</para> + <para>在<filename>/etc/ppp/ppp.conf</filename>中创建一个项。 + <filename>direct-server</filename>示例应该能满足要求。</para> </step> <step> <para>在 - <filename>/etc/ppp/ppp.linkup</filename>中创建一个项.</para> + <filename>/etc/ppp/ppp.linkup</filename>中创建一个项。</para> </step> <step> <para>更新 <filename>/etc/rc.conf</filename> - 文件.</para> + 文件。</para> </step> </procedure> </sect3> @@ -1084,29 +1082,29 @@ ifconfig_tun0=</programlisting> <title>设立内核级PPP</title> <indexterm><primary>PPP</primary><secondary>kernel PPP</secondary></indexterm> - <para>在开始设置内核级PPP时, 需要确信<command>pppd</command>已经被定位在<filename>/usr/sbin</filename> 中 - 且存在<filename>/etc/ppp</filename>目录 .</para> + <para>在开始设置内核级PPP时, 需要确信<command>pppd</command>已经被定位在<filename>/usr/sbin</filename> 中 + 且存在<filename>/etc/ppp</filename>目录。</para> - <para><command>pppd</command>能在两种模式下工作:</para> + <para><command>pppd</command>能在两种模式下工作:</para> <orderedlist> <listitem> - <para>作为一个<quote>客户</quote> — 您要通过PPP串行线或modem线把您的机器连接到互联网上 - .</para> + <para>作为一个 <quote>客户</quote> — + 您要通过PPP串行线或modem线把您的机器连接到互联网上。</para> </listitem> <indexterm><primary>PPP</primary><secondary>server</secondary></indexterm> <listitem> - <para>作为<quote>服务器</quote> —计算机已经位于网络上,且被用于通过PPP与其它计算机连接.</para> + <para>作为<quote>服务器</quote> —计算机已经位于网络上, 且被用于通过PPP与其它计算机连接。</para> </listitem> </orderedlist> - <para>两种情况您都需要设立一个选项文件, + <para>两种情况您都需要设立一个选项文件, (<filename>/etc/ppp/options</filename> 或者是 - <filename>~/.ppprc</filename> 如果您的计算机有多个用户使用PPP).</para> + <filename>~/.ppprc</filename> 如果您的计算机有多个用户使用PPP)。</para> - <para>您还需要一些modem/serial软件(<filename role="package">comms/kermit</filename>就很适合), - 使您能够拨号并与远程主机建立连接.</para> + <para>您还需要一些modem/serial软件(<filename role="package">comms/kermit</filename>就很适合), + 使您能够拨号并与远程主机建立连接。</para> </sect2> <sect2> @@ -1125,7 +1123,7 @@ ifconfig_tun0=</programlisting> <indexterm><primary>PPP</primary><secondary>client</secondary></indexterm> <indexterm><primary>Cisco</primary></indexterm> <para>下面这个 <filename>/etc/ppp/options</filename>选项文件能够被用来与CISCO终端服务器的 - PPP线连接.</para> + PPP线连接。</para> <programlisting>crtscts # enable hardware flow control modem # modem control line @@ -1143,7 +1141,7 @@ domain ppp.foo.com # put your domain name here defaultroute # put this if you want that PPP server will be your # default router</programlisting> - <para>连接:</para> + <para>连接:</para> <indexterm><primary>Kermit</primary></indexterm> <indexterm><primary>modem</primary></indexterm> @@ -1159,18 +1157,19 @@ defaultroute # put this if you want that PPP server will be your </step> <step> - <para>键入下面这行:</para> + <para>键入下面这行:</para> <screen>&prompt.root; <userinput>/usr/src/usr.sbin/pppd.new/pppd <replaceable>/dev/tty01</replaceable> <replaceable>19200</replaceable></userinput></screen> - <para>一定要使用正确的速度和设备名.</para> + <para>一定要使用正确的速度和设备名。</para> </step> </procedure> - <para>现在您的计算机已经用PPP连接. 如果连接失败 - , 您可在文件<filename>/etc/ppp/options</filename>中添加 <option>debug</option>选项,察看控制台信息以跟踪问题.</para> + <para>现在您的计算机已经用PPP连接。 如果连接失败, + 您可在文件 <filename>/etc/ppp/options</filename> 中添加 + <option>debug</option> 选项, 并查看控制台信息以跟踪问题。</para> - <para>下面这个<filename>/etc/ppp/pppup</filename>脚本能自动完成这三个步骤:</para> + <para>下面这个<filename>/etc/ppp/pppup</filename>脚本能自动完成这三个步骤:</para> <programlisting>#!/bin/sh ps ax |grep pppd |grep -v grep @@ -1197,7 +1196,7 @@ pppd /dev/tty01 19200</programlisting> 脚本, 它会完成拨号, 并在远程主机上完成所有需要的身份验证过程 (这份文档的最后有一个脚本实例)。</para> - <para>使用下面这个脚本<filename>/etc/ppp/pppdown</filename>断开PPP连线:</para> + <para>使用下面这个脚本<filename>/etc/ppp/pppdown</filename>断开PPP连线:</para> <programlisting>#!/bin/sh pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` @@ -1218,7 +1217,7 @@ fi kermit -y /etc/ppp/kermit.hup /etc/ppp/ppptest</programlisting> - <para>通过执行<filename>/usr/etc/ppp/ppptest</filename>,看看<command>pppd</command> 是否仍在运行:</para> + <para>通过执行<filename>/usr/etc/ppp/ppptest</filename>, 看看<command>pppd</command> 是否仍在运行:</para> <programlisting>#!/bin/sh pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'` @@ -1232,7 +1231,7 @@ netstat -n -I ppp0 ifconfig ppp0</programlisting> <para>执行脚本 - <filename>/etc/ppp/kermit.hup</filename>以挂起moderm,这个文件包含:</para> + <filename>/etc/ppp/kermit.hup</filename>以挂起moderm, 这个文件包含:</para> <programlisting>set line /dev/tty01 ; put your modem device here set speed 19200 @@ -1254,11 +1253,11 @@ echo \13 exit</programlisting> <para>也可以用<command>chat</command> - 代替<command>kermit</command>:</para> + 代替<command>kermit</command>:</para> - <para>以下两个文件用以建立<command>pppd</command>连接.</para> + <para>以下两个文件用以建立<command>pppd</command>连接。</para> - <para><filename>/etc/ppp/options</filename>:</para> + <para><filename>/etc/ppp/options</filename>:</para> <programlisting>/dev/cuaa1 115200 @@ -1279,17 +1278,17 @@ domain <your.domain> # put your domain name here defaultroute # put this if you want that PPP server will be # your default router</programlisting> - <para><filename>/etc/ppp/login.chat.script</filename>:</para> + <para><filename>/etc/ppp/login.chat.script</filename>:</para> <note> - <para>以下的内容应该放在一行内.</para> + <para>以下的内容应该放在一行内。</para> </note> <programlisting>ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<phone.number> CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <login-id> TIMEOUT 5 sword: <password></programlisting> - <para>一旦这些被安装且修改正确,您所要做的就是运行<command>pppd</command>,就像这样:</para> + <para>一旦这些被安装且修改正确, 您所要做的就是运行<command>pppd</command>, 就像这样:</para> <screen>&prompt.root; <userinput>pppd</userinput></screen> </sect2> @@ -1297,7 +1296,7 @@ defaultroute # put this if you want that PPP server will be <sect2> <title>使用<command>pppd</command>作为服务器</title> - <para><filename>/etc/ppp/options</filename>要包括下面这些内容:</para> + <para><filename>/etc/ppp/options</filename>要包括下面这些内容:</para> <programlisting>crtscts # Hardware flow control netmask 255.255.255.0 # netmask (not required) @@ -1312,7 +1311,7 @@ passive # wait for LCP modem # modem line</programlisting> <para>下面这个脚本<filename>/etc/ppp/pppserv</filename> - 使<application>pppd</application>以服务器方式启动:</para> + 使<application>pppd</application>以服务器方式启动:</para> <programlisting>#!/bin/sh ps ax |grep pppd |grep -v grep @@ -1338,7 +1337,7 @@ kermit -y /etc/ppp/kermit.ans # run ppp pppd /dev/tty01 19200</programlisting> - <para>使用脚本<filename>/etc/ppp/pppservdown</filename>停止服务器:</para> + <para>使用脚本<filename>/etc/ppp/pppservdown</filename>停止服务器:</para> <programlisting>#!/bin/sh ps ax |grep pppd |grep -v grep @@ -1358,9 +1357,9 @@ ifconfig ppp0 delete kermit -y /etc/ppp/kermit.noans</programlisting> - <para>The following <application>Kermit</application> script - (<filename>/etc/ppp/kermit.ans</filename>) will enable/disable - autoanswer mode on your modem. It should look like this:</para> + <para>下面的 <application>Kermit</application> 脚本 + (<filename>/etc/ppp/kermit.ans</filename>) 能够启用/禁用您 modem + 的自动应答模式。 其内容类似下面这样:</para> <programlisting>set line /dev/tty01 set speed 19200 @@ -1387,8 +1386,8 @@ echo \13 exit</programlisting> <para>一个名为<filename>/etc/ppp/kermit.dial</filename>的脚本用于向远程主机 - 进行拨号和验证.您要根据需要定制它.要加入您的登寻名和密码.您还要根据modem - 和远程主机的反应更改输入语句.</para> + 进行拨号和验证。 您要根据需要定制它。 要加入您的登寻名和密码, + 您还要根据 modem 和远程主机的反应修改输入语句。</para> <programlisting>; ; put the com line attached to the modem here: @@ -1522,65 +1521,63 @@ exit 1 <indexterm><primary>PPP</primary><secondary>troubleshooting</secondary></indexterm> - <para>本节将讲述通过modem连接使用PPP时可能出现的问题 - . 例如,您可能需要确切地知道您拨入的系统会出现一个怎样的命令行提示符.有些<acronym>ISP</acronym>会提供 - <literal>ssword</literal>提示符,而其它的可能会出现 - <literal>password</literal>; 如果没有根据情况的不同相应地编写<command>ppp</command> - 脚本,登录就会失败.诊断<command>ppp</command>最常用的方法是手动进行连接 - . 以下的信息会一步一步地带您完成手动连接.</para> + <para>本节将讲述通过modem连接使用PPP时可能出现的问题。 + 例如, 您可能需要确切地知道您拨入的系统会出现一个怎样的命令行提示符。 + 有些 <acronym>ISP</acronym> 会提供 <literal>ssword</literal>提示符, + 而其它的可能会出现 <literal>password</literal>; + 如果没有根据情况的不同相应地编写 <command>ppp</command> + 脚本, 登录就会失败。 诊断 <command>ppp</command> + 最常用的方法是手动进行连接。 以下的信息会一步一步地带您完成手动连接。</para> <sect2> <title>检查设备节点</title> - <para>如果您的内核是经过重新配置的,那么就需要检查<devicename>sio</devicename>设备. - 如果没有配置过内核, 就没什么可担心的了.只要查看 - <command>dmesg</command>的输出以找到modem设备:</para> + <para>如果您的内核是经过重新配置的, 那么就需要检查<devicename>sio</devicename>设备。 + 如果没有配置过内核, 就没什么可担心的了。 只要查看 + <command>dmesg</command>的输出以找到modem设备:</para> <screen>&prompt.root; <userinput>dmesg | grep sio</userinput></screen> - <para>您应该找到与<devicename>sio</devicename>设备有关的输出. 这些就是我们需要的COM端口. - 如果您的modem按照标准串行端口工作,您能在<devicename>sio1</devicename>或<devicename>COM2</devicename>找到它. 如果是这样, - 您只需创建serial设备,而不必重建内核. cd到<filename>/dev</filename>目录,然后运行 - <filename>MAKEDEV</filename>脚本 :</para> - - <screen>&prompt.root; <userinput>sh MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3</userinput></screen> - - <para>它会为您的系统创建串行(serial)设备. - 如果modem设备连接在<devicename>sio1</devicename>接口(在DOS中称为<devicename>COM2</devicename>),那么您的modem将会是 - <filename>/dev/cuaa1</filename>。</para> + <para>您应该找到与 <devicename>sio</devicename> 设备有关的输出。 + 这些就是我们需要的 COM 端口。 如果您的 modem 按照标准串行端口工作, + 您就会在 <devicename>sio1</devicename> 或 <devicename>COM2</devicename> + 上找到它。 如果 modem 设备连接在 <devicename>sio1</devicename> + 接口 (在 DOS 中称为<devicename>COM2</devicename>), + 那么您的 modem 将会是 <filename>/dev/cuaa1</filename>。</para> </sect2> <sect2> <title>手动连接</title> <para>通过手动控制<command>ppp</command>来连接Internet - 是诊断连接及获知<acronym>ISP</acronym>处理<application>PPP</application>客户端方式的一个快速,简单的方法. - .让我们从<application>PPP</application> 命令行开始.在所有的例子中我们使用 - <emphasis>example</emphasis>作为运行<application>PPP</application>主机的主机名.键入<command>ppp</command> - 命令打开<command>ppp</command> :</para> + 是诊断连接及获知<acronym>ISP</acronym>处理<application>PPP</application>客户端方式的一个快速, 简单的方法。 + 让我们从<application>PPP</application> 命令行开始, 在所有的例子中我们使用 + <emphasis>example</emphasis> 表示运行 <application>PPP</application> + 服务的主机名。 键入<command>ppp</command> + 命令打开 <command>ppp</command>:</para> <screen>&prompt.root; <userinput>ppp</userinput></screen> - <para>现在我们已经打开了<command>ppp</command>.</para> + <para>现在我们已经打开了<command>ppp</command>。</para> <screen>ppp ON example> <userinput>set device <filename>/dev/cuaa1</filename></userinput></screen> - <para>设置modem设备,在本例子中是 - <devicename>cuaa1</devicename>.</para> + <para>设置modem设备, 在本例子中是 + <devicename>cuaa1</devicename>。</para> <screen>ppp ON example> <userinput>set speed 115200</userinput></screen> - <para>设置连接速度,在本例中我们使用15,200 <acronym>kbps</acronym>.</para> + <para>设置连接速度, 在本例中我们使用15,200 <acronym>kbps</acronym>。</para> <screen>ppp ON example> <userinput>enable dns</userinput></screen> - <para>使<command>ppp</command>配置域名服务, - 在文件<filename>/etc/resolv.conf</filename>中添加域名服务器行. - .如果 <command>ppp</command>不能确定我们的主机名,可以在稍后设置.</para> + <para>使<command>ppp</command>配置域名服务, + 在文件<filename>/etc/resolv.conf</filename>中添加域名服务器行。 + 如果 <command>ppp</command>不能确定我们的主机名, 可以在稍后设置。</para> <screen>ppp ON example> <userinput>term</userinput></screen> - <para>切换到 <quote>终端</quote>样我们就能手动地控制模式,这modem.</para> + <para>切换到 <quote>终端</quote>样我们就能手动地控制这台 modem 的模式。</para> <programlisting>deflink: Entering terminal mode on <filename>/dev/cuaa1</filename> type '~h' for help</programlisting> @@ -1589,75 +1586,78 @@ type '~h' for help</programlisting> OK <userinput>atdt<replaceable>123456789</replaceable></userinput></screen> - <para>使用命令<command>at</command>初始化modem, - 然后使用<command>atdt</command>和<acronym>ISP</acronym>给您的号码进行拨号.</para> + <para>使用命令<command>at</command>初始化modem, + 然后使用<command>atdt</command>和<acronym>ISP</acronym>给您的号码进行拨号。</para> <screen>CONNECT</screen> - <para>连接配置,如果我们遇到了与硬件无关的连接问题,可以在这里尝试解决.</para> + <para>连接配置, 如果我们遇到了与硬件无关的连接问题, 可以在这里尝试解决。</para> <screen>ISP Login:<userinput>myusername</userinput></screen> - <para>这里提示您输入用户名,输入<acronym>ISP</acronym>提供的用户名然后按回车.</para> + <para>这里提示您输入用户名, 输入<acronym>ISP</acronym>提供的用户名然后按回车。</para> <screen>ISP Pass:<userinput>mypassword</userinput></screen> - <para>这时提示我们输入密码,输入 - <acronym>ISP</acronym>提供的密码. - 如同登录入&os;,密码不会显示.</para> + <para>这时提示我们输入密码, 输入 + <acronym>ISP</acronym>提供的密码。 + 如同登录入&os;, 密码不会显示。</para> <screen>Shell or PPP:<userinput>ppp</userinput></screen> - <para>由于<acronym>ISP</acronym>的不同,这个提示符可能不会出现.这里我们被问及:是使用 - 一个运行于提供商端的Shell还是启动<command>ppp</command>. 这本例中,我们选择使用<command>ppp</command>因为我 - 们想得到Internet连接.</para> + <para>由于<acronym>ISP</acronym>的不同, 这个提示符可能不会出现。 + 这里我们需要考虑: 是使用运行于提供商端的 Shell, + 还是启动 <command>ppp</command>? 这本例中, + 我们选择使用 <command>ppp</command>, 因为我们希望得到 Internet 连接。</para> <screen>Ppp ON example></screen> - <para>注意在这个例子中,第一个 <option>p</option>已经大写. 这显示我们已经成功地连接上了<acronym>ISP</acronym>.</para> + <para>注意在这个例子中, 第一个 <option>p</option>已经大写。 + 这表示我们已经成功地连接上了 <acronym>ISP</acronym>。</para> <screen>PPp ON example></screen> <para>我们已经成功通过了 - <acronym>ISP</acronym>的验证,正在等待分配<acronym>IP</acronym>地址.</para> + <acronym>ISP</acronym>的验证, 正在等待分配<acronym>IP</acronym>地址。</para> <screen>PPP ON example></screen> <para>我们得到了一个 <acronym>IP</acronym> - 地址,成功地完成了连接.</para> + 地址, 成功地完成了连接。</para> <screen>PPP ON example><userinput>add default HISADDR</userinput></screen> - <para>这里,我们添加默认路由.在能与外界通信之前我们需要这样做,因为现在我们 - 只与服务器端建立了连接.如果由于已存在的路由而导致操作失败, - 您可以在<option>add</option>前加<literal>!</literal>号. - 作为另外一种方式,您也可以在真正连接之前设置这些(指add default HISADDR),ppp会根据这项设定协商取 - 得一个新的路由.</para> + <para>这样就完成了添加默认路由所需的配置。 这是与外界通信所必需的。 + 因为之前我们只是与服务器端建立了连接。 如果由于已存在的路由而导致操作失败, + 您可以在 <option>add</option> 前加 <literal>!</literal>号。 + 除此之外, 您也可以在真正连接之前设置这些 (指 add default HISADDR), + ppp 会根据这项设定协商取得新的路由。</para> - <para>如果一切顺利,现在我们应该能得到一个活动的Internet连接,可以使用<keycombo + <para>如果一切顺利, 现在我们应该能得到一个活动的 Internet 连接, + 可以使用 <keycombo action="simul"><keycap>CTRL</keycap> - <keycap>z</keycap></keycombo>使其转入后台.如果您发现 - <command>PPP</command>重新变为 <command>ppp</command>,那代表我们失去了连接.. - 大写的P表明我们有到<acronym>ISP</acronym>的连接 - 而小写的p表明由于某种原因我们失去了连接.这便于我们了解连接状态. - <command>ppp</command> 只有这两个状态.</para> + <keycap>z</keycap></keycombo> 使其转入后台。 如果您发现 + <command>PPP</command>重新变为 <command>ppp</command>, + 则表示连接被断开。 大写的 P 表明建立了到 <acronym>ISP</acronym> 的连接, + 而小写的 p 则表示连接由于某种原因被断开, 这有助于帮助我们了解连接的状态。 + <command>ppp</command> 只有这两个状态。</para> <sect3> <title>诊断排错</title> - <para>如果您有一根直连线且似乎不能建立连接,要使用<option>set - ctsrts off</option>以关闭字节流的<acronym>CTS/RTS</acronym>.这种情况一般发 - 生在连接兼容<application>PPP</application>的终端服务器时. - 当它向通信连接写入数据时,<application>PPP</application>就会挂起, - 一直等待一个<acronym>CTS</acronym>, - 或者一个不可能出现的Clear to Send信号。 如果使用了这个选项, 您还应使用 + <para>如果您有一根直连线且似乎不能建立连接, 要使用<option>set + ctsrts off</option>以关闭字节流的<acronym>CTS/RTS</acronym>。 + 这种情况一般发生在连接兼容 <application>PPP</application> 的终端服务器时。 + 当它向通信连接写入数据时, <application>PPP</application>就会挂起, + 一直等待一个<acronym>CTS</acronym>, + 或者一个不可能出现的 Clear to Send 信号。 如果使用了这个选项, 您还应使用 <option>set accmap</option>选项, 某些存在缺陷的硬件在完成端对端发送特定字符, 特别是 XON/XOFF 时可能会遇到困难。 请参见 &man.ppp.8; 联机手册以了解关于可用选项的更多细节, 以及如何使用它们。</para> - <para>如果您有一个比较旧的modem, 您要用 - <option>set parity even</option>。 奇偶校验的默认设置是 none, + <para>如果您的 modem 比较旧, 就需要使用 + <option>set parity even</option> 了。 奇偶校验的默认设置是 none, 但在旧式的 (当流量大量增加时) 调制解调器和某些 <acronym>ISP</acronym> 被用来纠错。 您需要使用这个选项才能使用 Compuserve <acronym>ISP</acronym>。</para> @@ -1736,23 +1736,23 @@ nameserver <replaceable>y.y.y.y</replaceable></programlisting> <indexterm><primary>PPP</primary><secondary>over Ethernet</secondary></indexterm> <indexterm> <primary>PPPoE</primary> - <see>PPP, over Ethernet</see> + <see>PPP, over Ethernet (以太网上的 PPP)</see> </indexterm> <para>本节将介绍如何建立基于以太网的PPP - (<acronym>PPPoE</acronym>).</para> + (<acronym>PPPoE</acronym>)。</para> <sect2> <title>配置内核</title> - <para>对于PPPOE,并没有必须的内核配置. 如果必需的netgraph支持没有编译入内核 ,它可以由 - <application>ppp</application>动态加载.</para> + <para>对于PPPOE, 并没有必须的内核配置。 如果必需的 netgraph + 支持没有编译入内核, 它可以由 <application>ppp</application> 动态加载。</para> </sect2> <sect2> <title>设置<filename>ppp.conf</filename></title> - <para>以下是一个<filename>ppp.conf</filename>的例子:</para> + <para>以下是一个<filename>ppp.conf</filename>的例子:</para> <programlisting>default: set log Phase tun command # you can add more detailed logging if you wish @@ -1771,16 +1771,16 @@ name_of_service_provider: <sect2> <title>运行<application>ppp</application></title> - <para>作为<username>root</username>,您可以执行:</para> + <para>以 <username>root</username> 身份执行:</para> <screen>&prompt.root; <userinput>ppp -ddial name_of_service_provider</userinput></screen> </sect2> <sect2> - <title>启动时运行<application>ppp</application> </title> + <title>启动时运行<application>ppp</application></title> - <para>在文件<filename>/etc/rc.conf</filename>加入以下内容:</para> + <para>在 <filename>/etc/rc.conf</filename> 中加入以下内容:</para> <programlisting>ppp_enable="YES" ppp_mode="ddial" @@ -1791,11 +1791,13 @@ ppp_profile="name_of_service_provider"</programlisting> <sect2> <title>使用 PPPoE 服务标签</title> - <para>在某些时候,有必要使用一个服务标签来建立您的连接.服务标签用于区分同一网络中的不同服务器.</para> + <para>在某些时候, 有必要使用一个服务标签来建立您的连接。 + 服务标签用于区分同一网络中的不同服务器。</para> - <para>您可以在ISP提供的文档中找到必要的服务标签信息.若不能找到,向您的ISP询求技术支持.</para> + <para>您可以在ISP提供的文档中找到必要的服务标签信息。 + 若不能找到, 则应向您的 ISP 寻求技术支持。</para> - <para>作为最后的方法, 您可以试试 + <para>作为最后的方法, 您可以试试 <ulink url="http://www.roaringpenguin.com/pppoe/">Roaring Penguin PPPoE</ulink>, 它可以在 <link linkend="ports">Ports Collection</link> 中找到。 @@ -1806,18 +1808,18 @@ ppp_profile="name_of_service_provider"</programlisting> 一般来说它的名字应该是 <emphasis>ISP</emphasis>。</para> - <para>配置文件名 (service tag, 服务标签) 将被用于 PPPoE + <para>配置文件名 (service tag, 服务标签) 将被用于 PPPoE 在 <filename>ppp.conf</filename> 中的配置项, 作为服务商 <command>set device</command> 命令的一部分 (参见 &man.ppp.8; 联机手册以了解更多细节)。 它应该类似下面的样子:</para> <programlisting>set device PPPoE:<replaceable>xl1</replaceable>:<replaceable>ISP</replaceable></programlisting> - <para>记住将<replaceable>xl1</replaceable>换成实际的以太网设备.</para> + <para>记住将<replaceable>xl1</replaceable>换成实际的以太网设备。</para> <para>记住将 <replaceable>ISP</replaceable> - 换成您刚刚找到的profile名.</para> + 换成您刚刚找到的profile名。</para> - <para>获得更多的信息,请参考:</para> + <para>获得更多的信息, 请参考:</para> <itemizedlist> <listitem> @@ -1840,15 +1842,18 @@ ppp_profile="name_of_service_provider"</programlisting> <title>带有一个&tm.3com; <trademark class="registered">HomeConnect</trademark>ADSL Modem的PPPOE双重连接</title> - <para>这个modem不遵循<ulink + <para>这个 modem 不遵循 <ulink url="http://www.faqs.org/rfcs/rfc2516.html">RFC 2516</ulink> (<emphasis>A Method for transmitting PPP over Ethernet - (PPPoE)</emphasis>, written by L. Mamakos, K. Lidl, J. Evarts, - D. Carrel, D. Simone, and R. Wheeler). 而是使用不同的数据包格式作为以太网的框架.请向 - <ulink url="http://www.3com.com/">3Com</ulink>抱怨,如果您认为它应该遵守PPPOE的规范.</para> + (PPPoE)</emphasis>, 其作者为 L. Mamakos、 K. Lidl、 J. Evarts、 + D. Carrel、 D. Simone 以及 R. Wheeler)。 + 而是使用不同的数据包格式作为以太网的框架。 请向 + <ulink url="http://www.3com.com/">3Com</ulink> 抱怨, + 如果您认为它应该遵守 PPPoE 的规范。</para> - <para>为了让FreeBSD能够与这个设备通信,必须设置sysctl.通过更改<filename>/etc/sysctl.conf</filename>,这一步 - 可以在启动时自动完成:</para> + <para>为了让FreeBSD能够与这个设备通信, 必须设置sysctl。 + 通过更改<filename>/etc/sysctl.conf</filename>, + 这一步可以在启动时自动完成:</para> <programlisting>net.graph.nonstandard_pppoe=1</programlisting> @@ -1856,9 +1861,9 @@ ppp_profile="name_of_service_provider"</programlisting> <screen>&prompt.root; <userinput>sysctl net.graph.nonstandard_pppoe=1</userinput></screen> - <para>很不幸,由于这是系统全局设置,无法同时与正常的PPP客户端(或服务器) - 和&tm.3com;<trademark class="registered">HomeConnect</trademark> ADSL Modem通信 - .</para> + <para>很不幸,由于这是系统全局设置, 无法同时与正常的PPP客户端(或服务器) + 和&tm.3com;<trademark class="registered">HomeConnect</trademark> + ADSL Modem通信。</para> </sect2> </sect1> @@ -1900,21 +1905,21 @@ ppp_profile="name_of_service_provider"</programlisting> product 0x4061 attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"</programlisting> - <para>要启动USB守护进程<application>usbd</application>, - 在<filename>/etc/rc.conf</filename>加入以下行:</para> + <para>要启动USB守护进程<application>usbd</application>, + 在<filename>/etc/rc.conf</filename>加入以下行:</para> <programlisting>usbd_enable="YES"</programlisting> - <para>也可以将<application>ppp</application>设置成启动时拨号. 向 - <filename>/etc/rc.conf</filename>加入以下这几行. - 同样地您需要以<username>root</username>用户登录.</para> + <para>也可以将<application>ppp</application>设置成启动时拨号。 向 + <filename>/etc/rc.conf</filename>加入以下这几行。 + 同样地您需要以<username>root</username>用户登录。</para> <programlisting>ppp_enable="YES" ppp_mode="ddial" ppp_profile="adsl"</programlisting> - <para>为了使其正常工作,您需要使用<filename role="package">net/pppoa</filename> - port提供的<filename>ppp.conf</filename>样例.</para> + <para>为了使其正常工作, 您需要使用<filename role="package">net/pppoa</filename> + port提供的<filename>ppp.conf</filename>样例。</para> </sect2> @@ -1970,14 +1975,14 @@ adsl: <calloutlist> <callout arearefs="co-mpd-ex-user"> - <para>username用来向您的ISP进行验证.</para> + <para>username用来向您的ISP进行验证。</para> </callout> <callout arearefs="co-mpd-ex-pass"> - <para> password用来向您的ISP进行验证.</para> + <para> password用来向您的ISP进行验证。</para> </callout> </calloutlist> - <para><filename>mpd.links</filename>包含连接的信息:</para> + <para><filename>mpd.links</filename>包含连接的信息:</para> <programlisting>adsl: set link type pptp @@ -1990,26 +1995,26 @@ adsl: <calloutlist> <callout arearefs="co-mpd-ex-self"> - <para>运行<application>mpd</application>的主机的IP地址.</para> + <para>运行<application>mpd</application>的主机的IP地址。</para> </callout> <callout arearefs="co-mpd-ex-peer"> - <para>ADSL modem的IP地址.Alcatel + <para>ADSL modem的IP地址。 Alcatel &speedtouch; Home 默认的是 <hostid - role="ipaddr">10.0.0.138</hostid>.</para> + role="ipaddr">10.0.0.138</hostid>。</para> </callout> </calloutlist> - <para>初始化连接:</para> + <para>初始化连接:</para> <screen>&prompt.root; <userinput>mpd -b <replaceable>adsl</replaceable></userinput></screen> - <para>您可以通过以下命令查看连接状态:</para> + <para>您可以通过以下命令查看连接状态:</para> <screen>&prompt.user; <userinput>ifconfig <replaceable>ng0</replaceable></userinput> ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500 inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff</screen> - <para>使用<application>mpd</application>连接ADSL服务是推荐的方式.</para> + <para>使用<application>mpd</application>连接ADSL服务是推荐的方式。</para> </sect2> @@ -2017,13 +2022,15 @@ ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500 <title>使用pptpclient</title> <para>也可以使用<filename role="package">net/pptpclient</filename>连接其它的 - PPPoA.</para> + PPPoA。</para> - <para>为了使用<filename role="package">net/pptpclient</filename>连接 - DSL服务,需要安装port或package并编辑<filename>/etc/ppp/ppp.conf</filename>.您需要有 - <username>root</username>权限以进行这两项操作.以下是<filename>ppp.conf</filename>中的一个示例项. - 参考<application>ppp</application>的联机手册&man.ppp.8;,以获取更多有关<filename>ppp.conf</filename> - 选项的信息.</para> + <para>要使用 <filename role="package">net/pptpclient</filename> 连接 + DSL 服务, 需要安装 port 或 package 并编辑 + <filename>/etc/ppp/ppp.conf</filename>。 您需要有 + <username>root</username> 权限才能完成这两项操作。 + 以下是 <filename>ppp.conf</filename> 中的一个示例项。 + 参考 <application>ppp</application> 的联机手册 &man.ppp.8;, + 以了解更多有关 <filename>ppp.conf</filename> 选项的信息。</para> <programlisting>adsl: set log phase chat lcp ipcp ccp tun command @@ -2036,45 +2043,48 @@ ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500 <calloutlist> <callout arearefs="co-pptp-ex-user"> - <para>The username of your account with the DSL provider.</para> + <para>您在 DSL 服务提供商那里的用户名</para> </callout> <callout arearefs="co-pptp-ex-pass"> - <para>The password for your account.</para> + <para>您帐户的口令。</para> </callout> </calloutlist> <warning> <para>由于您必须将帐号密码以明文的方式放入<filename>ppp.conf</filename> - 您应该确保没有任何人能看到此文件的内容.以下一系列命令将会确保此文件只对 - <username>root</username>用户可读.参考&man.chmod.1;和&man.chown.8; 的联机手册以获得更多信息.</para> + 您应该确保没有任何人能看到此文件的内容。 以下一系列命令将会确保此文件只对 + <username>root</username>用户可读。 + 请参见 &man.chmod.1; 和 &man.chown.8; 的联机手册以了解有关如何操作的进一步信息。</para> <screen>&prompt.root; <userinput>chown root:wheel /etc/ppp/ppp.conf</userinput> &prompt.root; <userinput>chmod 600 /etc/ppp/ppp.conf</userinput></screen> </warning> - <para>以下将为到DSL路由器的会话打开一个tunnel. - 以太网DSL modem有一个设置的局域网IP地址. 以Alcatel &speedtouch; Home为例,这个地址是 - <hostid role="ipaddr">10.0.0.138</hostid>.路由器的文档应该会告诉您它使用地址.执行以下命令 - 以打开tunnel并开始会话:</para> + <para>以下将为到 DSL 路由器的会话打开一个 tunnel。 + 以太网DSL modem有一个设置的局域网IP地址。 以 Alcatel &speedtouch; Home + 为例, 这个地址是 <hostid role="ipaddr">10.0.0.138</hostid>。 + 路由器的文档应该会告诉您它使用地址。 + 执行以下命令以打开 tunnel 并开始会话:</para> <screen>&prompt.root; <userinput>pptp <replaceable>address</replaceable> <replaceable>adsl</replaceable></userinput></screen> <tip> - <para>您应该在命令的最后加上(<quote>&</quote>)号,否则 <application>pptp</application> - 无法返回到命令行提示符.</para> + <para>您应该在命令的最后加上(<quote>&</quote>)号, 否则 <application>pptp</application> + 无法返回到命令行提示符。</para> </tip> <para>要创建一个 <devicename>tun</devicename>虚拟设备用于进程<application>pptp</application> - 和<application>ppp</application> 之间的交互.一旦您返回到了命令行,或者 <application>pptp</application> - 进程确认了一个连接,您可以这样检查tunnel设备:</para> + 和<application>ppp</application> 之间的交互。 一旦您回到了命令行, + 或者 <application>pptp</application> + 进程确认了一个连接, 您可以这样检查tunnel设备:</para> <screen>&prompt.user; <userinput>ifconfig <replaceable>tun0</replaceable></userinput> tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00 Opened by PID 918</screen> - <para>如果您无法连接,一般可以通过<application>telnet</application>或者web浏览器检查路由器(modem)的配置. - 如果依旧无法连接,您应该检查<command>pptp</command>的输出及<application>ppp</application>的日志文件 - <filename>/var/log/ppp.log</filename> 以获得线索.</para> + <para>如果您无法连接, 一般可以通过<application>telnet</application>或者web浏览器检查路由器(modem)的配置。 + 如果依旧无法连接, 您应该检查<command>pptp</command>的输出及<application>ppp</application>的日志文件 + <filename>/var/log/ppp.log</filename> 以获得线索。</para> </sect2> </sect1> @@ -2120,20 +2130,18 @@ tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 <filename>.kermrc</filename> 将是非常麻烦的事情!</para> <note> - <para><filename>/dev/cuaa0</filename> (or <filename>/dev/cuad0</filename> under &os; 6.X) is - <devicename>COM1</devicename>, <filename>cuaa1</filename> (or <filename>/dev/cuad1</filename>) is - <devicename>COM2</devicename>, etc.</para> + <para><filename>/dev/cuaa0</filename> (或 &os; 6.X + 中的 <filename>/dev/cuad0</filename>) 对应 + <devicename>COM1</devicename>, 而 <filename>cuaa1</filename> + (或 <filename>/dev/cuad1</filename>) 则对应 + <devicename>COM2</devicename>, 等等。</para> </note> <para>确保您的内核文件包含以下内容:</para> - - <programlisting>device sl</programlisting> - - <para>对于 &os; 4.X, 则是:</para> - <programlisting>pseudo-device sl 1</programlisting> + <programlisting>device sl</programlisting> - <para>这包含在<filename>GENERIC</filename>内核,所以这应该不会是个问题,除非您 + <para>这包含在<filename>GENERIC</filename>内核, 所以这应该不会是个问题, 除非您 已经删除了它。</para> <sect3> @@ -2165,24 +2173,24 @@ tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 </step> <step> - <para>编辑<filename>/etc/rc.conf</filename>.</para> + <para>编辑<filename>/etc/rc.conf</filename>。</para> <orderedlist> <listitem> - <para>编辑以下这行设置主机名(hostname):</para> + <para>编辑以下这行设置主机名(hostname):</para> <programlisting>hostname="myname.my.domain"</programlisting> - <para>应该用您主机的Internet全名代替.</para> + <para>应该用您主机的Internet全名代替。</para> </listitem> <indexterm><primary>default route</primary></indexterm> <listitem> - <para>改变这一行以指明默认的路由:</para> + <para>改变这一行以指明默认的路由:</para> <programlisting>defaultrouter="NO"</programlisting> - <para>改为:</para> + <para>改为:</para> <programlisting>defaultrouter="slip-gateway"</programlisting> </listitem> @@ -2190,7 +2198,7 @@ tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 </step> <step> - <para>创建文件<filename>/etc/resolv.conf</filename>,写入以下内容:</para> + <para>创建文件<filename>/etc/resolv.conf</filename>, 写入以下内容:</para> <programlisting>domain CS.Example.EDU nameserver 128.32.136.9 @@ -2198,16 +2206,17 @@ nameserver 128.32.136.12</programlisting> <indexterm><primary>nameserver</primary></indexterm> <indexterm><primary>domain name</primary></indexterm> - <para>正如您看到的, 这些行设置了域名服务器.当然,实际的域名和IP地址取决于您的环境.</para> + <para>正如您看到的, 这些行设置了域名服务器。 当然, + 实际的域名和IP地址取决于您的环境。</para> </step> <step> <para>设置<username>root</username>和 - <username>toor</username>的密码(其它任何没有密码的帐号).</para> + <username>toor</username>的密码(其它任何没有密码的帐号)。</para> </step> <step> - <para>重启计算机,然后确认使用了正确的主机名.</para> + <para>重启计算机, 然后确认使用了正确的主机名。</para> </step> </procedure> </sect3> @@ -2252,13 +2261,13 @@ output ***\x0d, echo \x0aCONNECTED\x0a</programlisting> <keycombo> <keycap>Ctrl</keycap> <keycap>z</keycap> - </keycombo> 将其挂起), 以 <username>root</username> 用户键入:</para> + </keycombo> 将其挂起), 以 <username>root</username> 用户键入:</para> <screen>&prompt.root; <userinput>slattach -h -c -s 115200 /dev/modem</userinput></screen> - <para>如果您能<command>ping</command>通路由器另一端的主机,就是连接好了! 如果不行, + <para>如果您能<command>ping</command>通路由器另一端的主机, 就是连接好了! 如果不行, 您可以使用<option>-a</option>选项代替 -<option>-c</option>作为<command>slattach</command>的参数.</para> +<option>-c</option>作为<command>slattach</command>的参数。</para> </step> </procedure> </sect3> @@ -2266,7 +2275,7 @@ output ***\x0d, echo \x0aCONNECTED\x0a</programlisting> <sect3> <title>关闭连接</title> - <para>按下面的步骤做:</para> + <para>按下面的步骤做:</para> <screen>&prompt.root; <userinput>kill -INT `cat /var/run/slattach.modem.pid`</userinput></screen> @@ -2276,7 +2285,7 @@ output ***\x0d, echo \x0aCONNECTED\x0a</programlisting> 则使用 <command>fg</command>) 并退出 (<keycap>q</keycap>)。</para> <para>在 &man.slattach.8; 联机手册中提到, - 必须使用 <command>ifconfig sl0 down</command> + 必须使用 <command>ifconfig sl0 down</command> 才能将接口标记为关闭, 但和这样做似乎没有什么区别。 (<command>ifconfig sl0</command> 仍然报告同样的东西。)</para> @@ -2293,17 +2302,19 @@ output ***\x0d, echo \x0aCONNECTED\x0a</programlisting> <itemizedlist> <listitem> - <para>执行<command>slattach</command>时不使用<option>-c</option>和<option>-a</option>选项 - (这应该不是关键的,但有些用户报告这样做解决了问题.)</para> + <para>执行 <command>slattach</command> 时不使用 + <option>-c</option>和<option>-a</option>选项 + (这应该不是关键的, 但有些用户报告这样做解决了问题)。</para> </listitem> <listitem> <para>使用<option>s10</option>替换 - <option>sl0</option> (在一些字体下很难看出不同).</para> + <option>sl0</option> (在一些字体下很难看出不同)。</para> </listitem> <listitem> - <para>试试<command>ifconfig sl0</command>来查看您的接口状态.例如,您可以这样做:</para> + <para>试试<command>ifconfig sl0</command>来查看您的接口状态。 + 例如, 您可以这样做:</para> <screen>&prompt.root; <userinput>ifconfig sl0</userinput> sl0: flags=10<POINTOPOINT> @@ -2331,8 +2342,8 @@ inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - - water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 (root node)</screen> - <para>前述的例子来自于一个非常繁忙的系统. - 您系统上的这些数字会因网络活动的不同而改变.</para> + <para>前述的例子来自于一个非常繁忙的系统。 + 您系统上的这些数字会因网络活动的不同而改变。</para> </listitem> </itemizedlist> @@ -2358,11 +2369,13 @@ water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 <sect3 id="slips-prereqs"> <title>前提条件</title> <indexterm><primary>TCP/IP networking</primary></indexterm> - <para>这一节本身就是非常技术性的, 所以要求有一定的背景知识.本节假定您熟悉TCP/IP网络协议,特别是网络和和结点寻址 - ,网络地址掩网, 划分子网, 路由, 路由协议(比如RIP).在一个拨号服务器上配置SLIP需要这些概念性的知识. - 如果您不熟悉它们,请先阅读Craig Hunt的 <emphasis>TCP/IP 网络管理</emphasis> - 由O'Reilly & Associates, Inc.出版(ISBN号为0-937175-82-X),或者Douglas Comer有关TCP/IP - 协议的书籍.</para> + <para>这一节技术性很强, 所以要求您有一定的背景知识。 + 本节假定您熟悉 TCP/IP 网络协议, 特别是网络和节点寻址、 + 子网掩码、 子网划分、 路由、 路由协议 (如RIP) 等知识。 + 在拨号服务器上配置 SLIP 需要这些概念性的知识。 + 如果您不熟悉它们, 请先阅读 Craig Hunt 的 <emphasis>TCP/IP 网络管理</emphasis> + 由O'Reilly & Associates, Inc. 出版 (ISBN 0-937175-82-X), + 或 Douglas Comer 有关 TCP/IP 协议的书籍。</para> <indexterm><primary>modem</primary></indexterm> <para>此外还假定您已经配置好了您的调制解调器以及相应的系统文件, @@ -2380,29 +2393,32 @@ water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 <sect3> <title>快速浏览</title> - <para>使用FreeBSD作为SLIP服务器,在典型配置时,它是这样工作的: - 一个SLIP客户拨号并以专用的login ID登录到FreeBSD SLIP服务器系统.这个用户使用<filename>/usr/sbin/sliplogin</filename> - 作为shell.<command>sliplogin</command>程序在文件<filename>/etc/sliphome/slip.hosts</filename>中查找这个用户的项, - 如果找到了匹配项,就将串行线连接到一个可用的SLIP接口,然后运行shell脚本<filename>/etc/sliphome/slip.login</filename> - 以配置SLIP接口.</para> + <para>使用FreeBSD作为SLIP服务器, 在典型配置时, 它是这样工作的: + 一个SLIP客户拨号并以专用的login ID登录到FreeBSD SLIP服务器系统。 + 这个用户使用 <filename>/usr/sbin/sliplogin</filename> + 作为 shell。 <command>sliplogin</command> 程序会在文件 + <filename>/etc/sliphome/slip.hosts</filename> 中查找这个用户的项, + 如果找到了匹配项, 就将串行线连接到一个可用的 SLIP 接口, + 然后运行 shell 脚本 <filename>/etc/sliphome/slip.login</filename> + 以配置 SLIP 接口。</para> <sect4> <title>一个SLIP服务器登录的例子</title> - <para>例如,如果一个SLIP用户的ID是<username>Shelmerg</username>, - 在<filename>/etc/master.passwd</filename>中<username>Shelmerg</username>的项如下的所示:</para> + <para>例如, 如果一个SLIP用户的ID是<username>Shelmerg</username>, + 在<filename>/etc/master.passwd</filename>中<username>Shelmerg</username>的项如下的所示:</para> <programlisting>Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin</programlisting> - <para><username>Shelmerg</username>登录时, + <para><username>Shelmerg</username>登录时, <command>sliplogin</command>在文件 - <filename>/etc/sliphome/slip.hosts</filename>中搜索与用户ID匹配的行;如下所示:</para> + <filename>/etc/sliphome/slip.hosts</filename>中搜索与用户ID匹配的行;如下所示:</para> <programlisting>Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting> - <para><command>sliplogin</command>找到这条区配行, - 并将串行线与另一个可用的SLIP接口连起来, - 然后执行<filename>/etc/sliphome/slip.login</filename>脚本:</para> + <para><command>sliplogin</command>找到这条区配行, + 并将串行线与另一个可用的SLIP接口连起来, + 然后执行<filename>/etc/sliphome/slip.login</filename>脚本:</para> <programlisting>/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting> @@ -2436,23 +2452,12 @@ water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 <programlisting>device sl</programlisting> - <para>在 &os; 4.X 下, 则是:</para> - - <programlisting>pseudo-device sl 2</programlisting> - - <note> - <para>行末的数字表示允许同时使用的最大 SLIP 连接数。 - 从 &os; 5.0 开始, &man.sl.4; - 驱动具有了 <quote>自动克隆</quote> 的能力, - 因而不再需要这一设置。</para> - </note> - <para>默认情况下, 您的 &os; 计算机不会转发包。 如果您希望将 FreeBSD SLIP 服务器作为路由器使用, 就需要修改 <filename>/etc/rc.conf</filename> 文件, 并加入一项将 <literal>gateway_enable</literal> 变量设为 <option>YES</option> 的设制。</para> - + <para>接下来需要重新启动以便使新设置生效。</para> <para>请参见 <xref linkend="kernelconfig"> 以了解如何配置 FreeBSD @@ -2462,16 +2467,16 @@ water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 <sect3> <title>Sliplogin配置</title> - <para>正如先前所提到的, + <para>正如先前所提到的, <filename>/etc/sliphome</filename>目录有三个文件构成<filename>/usr/sbin/sliplogin</filename>的配置 - (参考<command>sliplogin</command>的联机手册&man.sliplogin.8;): <filename>slip.hosts</filename>, - 定义SLIP用户及有关IP地址; <filename>slip.login</filename>,一般只配置SLIP接口; 文件 - <filename>slip.logout</filename>(可选的),串行连接终止时,撤消<filename>slip.login</filename>所做的修改.</para> + (参考<command>sliplogin</command>的联机手册&man.sliplogin.8;):<filename>slip.hosts</filename>, + 定义SLIP用户及有关IP地址; <filename>slip.login</filename>, 一般只配置SLIP接口; 文件 + <filename>slip.logout</filename>(可选的), 串行连接终止时, 撤消<filename>slip.login</filename>所做的修改。</para> <sect4> - <title><filename>slip.hosts</filename> Configuration</title> + <title>配置 <filename>slip.hosts</filename></title> - <para><filename>/etc/sliphome/slip.hosts</filename>里的每行包含至少四个元素,元素之间由空格隔开:</para> + <para><filename>/etc/sliphome/slip.hosts</filename>里的每行包含至少四个元素, 元素之间由空格隔开:</para> <itemizedlist> <listitem> @@ -2492,11 +2497,12 @@ water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 </itemizedlist> <para>本地和远程地址可以是主机名 - (通过文件<filename>/etc/hosts</filename>或者域名服务解析为IP地址, - 在FreeBSD 5.X上这取决于文件<filename>/etc/nsswitch.conf</filename>的设置; - 而在FreeBSD 4.X里,则是<filename>/etc/host.conf</filename>),网络掩网可以是一个 - 能通过文件<filename>/etc/networks</filename>解析的名字.在一个样例系统中, - <filename>/etc/sliphome/slip.hosts</filename>是这样的:</para> + (通过文件<filename>/etc/hosts</filename>或者域名服务解析为IP地址, + 这取决于文件<filename>/etc/nsswitch.conf</filename> + 中的设置), 网络掩网可以是一个 + 能通过文件<filename>/etc/networks</filename>解析的名字。 + 在一个样例系统中, + <filename>/etc/sliphome/slip.hosts</filename>是这样的:</para> <programlisting># # login local-addr remote-addr mask opt1 opt2 @@ -2517,38 +2523,40 @@ Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting </listitem> <listitem> - <para><option>autocomp</option> —如果远程端允许,压缩报头</para> + <para><option>autocomp</option> —如果远程端允许, 压缩报头</para> </listitem> <listitem> <para><option>noicmp</option> —禁用ICMP数据包 - (这样就会丢弃所有的<quote>ping</quote>数据包,不占用您的带宽)</para> + (这样就会丢弃所有的<quote>ping</quote>数据包, 不占用您的带宽)</para> </listitem> </itemizedlist> <indexterm><primary>SLIP</primary></indexterm> <indexterm><primary>TCP/IP networking</primary></indexterm> <para>对SLIP连接的本地及远程地址的选择取决是您是准备在SLIP服务器上使用 TCP/IP - 子网还是使用<quote>ARP代理</quote> (它并不是<quote>真正的</quote>ARP代理,而是我们在本节用于介绍的术语). - 如果您不能确定选择何种方式或者如何分配地址,请参考"前提条件"(<xref linkend="slips-prereqs">)里列出的TCP/IP书籍 - 或者向您的IP网络管理员请教.</para> + 子网还是使用<quote>ARP代理</quote> (它并不是<quote>真正的</quote>ARP代理, 而是我们在本节用于介绍的术语)。 + 如果您不能确定选择何种方式或者如何分配地址, 请参考"前提条件"(<xref linkend="slips-prereqs">)里列出的TCP/IP书籍 + 或者向您的IP网络管理员请教。</para> - <para>如果您准备为您的SLIP客户使用一个独立的子网 - , 您需要先从分配得到的网络号中取出一个子网号然后再在这个子网里给每个SLIP客户分配IP地址. - 然后您还需要通过SLIP服务器在最近的IP路由器上配置一个指向SLIP子网的静态路由.</para> + <para>如果打算为您的 SLIP 客户使用一个独立的子网, + 就需要先从分配得到的网络号中取出一个子网号, + 然后再在这个子网里给每个 SLIP 客户分配 IP 地址。 + 接下来, 您还需要通过 SLIP 服务器在最近的 IP + 路由器上配置一个指向 SLIP 子网的静态路由。</para> <indexterm><primary>Ethernet</primary></indexterm> - <para> 如果您要使用 <quote>代理 ARP</quote>的方式,您需要从SLIP服务器的以太子网中为每个SLIP客户分配IP地址, + <para>如果您要使用 <quote>代理 ARP</quote>的方式, 您需要从SLIP服务器的以太子网中为每个SLIP客户分配IP地址, 还必须修改<filename>/etc/sliphome/slip.login</filename> 和 <filename>/etc/sliphome/slip.logout</filename>脚本以使用 - &man.arp.8;来管理proxy-ARP在服务器ARP表中的项.</para> + &man.arp.8;来管理proxy-ARP在服务器ARP表中的项。</para> </sect4> <sect4> <title><filename>slip.login</filename> Configuration</title> <para>典型的<filename>/etc/sliphome/slip.login</filename> - 如下所示:</para> + 如下所示:</para> <programlisting>#!/bin/sh - # @@ -2563,11 +2571,11 @@ Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting /sbin/ifconfig sl$1 inet $4 $5 netmask $6</programlisting> <para>这个<filename>slip.login</filename>脚本仅仅为带有相应本地及远程地址和掩码的SLIP接口执行 - <command>ifconfig</command> .</para> + <command>ifconfig</command>。</para> <para>如果您决定使用<quote>ARP代理</quote> - 方式(而非为您的SLIP客户使用独立的子网),您的<filename>/etc/sliphome/slip.login</filename> - 应该是这样:</para> + 方式(而非为您的SLIP客户使用独立的子网), 您的<filename>/etc/sliphome/slip.login</filename> + 应该是这样:</para> <programlisting>#!/bin/sh - # @@ -2584,21 +2592,22 @@ Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting /usr/sbin/arp -s $5 00:11:22:33:44:55 pub</programlisting> <para><filename>slip.login</filename>新加的行<command>arp -s - $5 00:11:22:33:44:55 pub</command>在SLIP服务器的ARP表中加入了一个表项.这个ARP项使得 - 每当这个以太网上的其它IP节点对SLIP客户端IP地址进行ARP请求时,SLIP服务器会以自已的以太网MAC地址作为回应 - .</para> - - <indexterm><primary>Ethernet</primary><secondary>MAC address</secondary></indexterm> - <para>当使用以上的例子时, 一定要将 - 以太网MAC地址(<hostid role="mac">00:11:22:33:44:55</hostid>)替换成您系统网卡的MAC地址,否则<quote>ARP代理</quote>将 + $5 00:11:22:33:44:55 pub</command> 在 SLIP 服务器的 ARP + 表中加入了一个表项。 这个ARP项使得每当这个以太网上的其它 + IP 节点对 SLIP 客户端 IP 地址进行 ARP 请求时, + SLIP 服务器会以自已的以太网MAC地址作为回应。</para> + + <indexterm><primary>Ethernet (以太网)</primary><secondary>MAC address (MAC 地址)</secondary></indexterm> + <para>当使用以上的例子时, 一定要将 + 以太网MAC地址(<hostid role="mac">00:11:22:33:44:55</hostid>)替换成您系统网卡的MAC地址, 否则<quote>ARP代理</quote>将 完全无法工作!您可以查看<command>netstat -i</command>输出结果以取得以太网MAC地址; - 输出的第二行应该是这样:</para> + 输出的第二行应该是这样:</para> <screen>ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116</screen> <para>这行表明这个系统的以太网MAC地址是<hostid role="mac">00:02:c1:28:5f:4a</hostid> - —<command>netstat -i</command>输出的以太网MAC地址必须改成用冒号隔开,并且要单个十六进数前加上. - 这是&man.arp.8;要求的格式; 参考&man.arp.8; 的联机手册以获取完整的使用方法.</para> + —<command>netstat -i</command>输出的以太网MAC地址必须改成用冒号隔开, 并且要单个十六进数前加上。 + 这是&man.arp.8;要求的格式; 参考&man.arp.8; 的联机手册以获取完整的使用方法。</para> <note> <para>在编写 @@ -2614,8 +2623,8 @@ Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting <title><filename>slip.logout</filename>配置</title> <para><filename>/etc/sliphome/slip.logout</filename>并不是必需的 - (除非您使用了<quote>ARP代理</quote>),如果您准备创建它,这里有一个基本的 - <filename>slip.logout</filename> 脚本的例子 :</para> + (除非您使用了<quote>ARP代理</quote>), 如果您准备创建它, 这里有一个基本的 + <filename>slip.logout</filename> 脚本的例子:</para> <programlisting>#!/bin/sh - # @@ -2629,9 +2638,10 @@ Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting # /sbin/ifconfig sl$1 down</programlisting> - <para>If you are using <quote>proxy ARP</quote>, you will want to - have <filename>/etc/sliphome/slip.logout</filename> remove the - ARP entry for the SLIP client:</para> + <para>如果使用了 <quote>代理 ARP</quote>, + 则可能希望 <filename>/etc/sliphome/slip.logout</filename> + 在用户注销时自动为 SLIP 客户端删除 + ARP 项:</para> <programlisting>#!/bin/sh - # @@ -2674,7 +2684,7 @@ Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting <indexterm><primary>static routes</primary></indexterm> <para>向您最近的默认路由添加一个静态路由可以说是很麻烦 - (或者说是不可能,如果您没有权限这么做)。 如果在您的组织中使用多路由器网络, + (或者说是不可能, 如果您没有权限这么做)。 如果在您的组织中使用多路由器网络, 有些路由器 (比如 Cisco 和 Proteon 生产的) 不但要配置指向 SLIP 子网的路由, 而且还需要配置将哪些静态路由传给其它的路由器。 所以一些专家意见和问题解答对于使基于静态路由表的路由正常工作很有必要。</para> @@ -2687,10 +2697,10 @@ Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting </indexterm> <note> - <para><application>&gated;</application>现在是一个私有软件,无法取得它的源代码 - ( <ulink url="http://www.gated.org/">&gated;</ulink>上有更多的信息 ).This - section only exists to ensure backwards compatibility for - those that are still using an older version.</para> + <para><application>&gated;</application>现在是一个私有软件, + 因而您无法得到其源代码 (在 + <ulink url="http://www.gated.org/">&gated;</ulink> 上提供了进一步的详情)。 + 这一节内容主要是为了确保与仍在使用旧版软件的用户兼容而保留。</para> </note> <para>另一种避免静态路由所造成的头疼的方法, 是在您的 FreeBSD diff --git a/zh_CN.GB2312/books/handbook/preface/preface.sgml b/zh_CN.GB2312/books/handbook/preface/preface.sgml index cad1e1cea9..b5aef5221f 100644 --- a/zh_CN.GB2312/books/handbook/preface/preface.sgml +++ b/zh_CN.GB2312/books/handbook/preface/preface.sgml @@ -1,7 +1,7 @@ <!-- The FreeBSD Chinese Documentation Project - Original Revision: 1.31 + Original Revision: 1.32 $FreeBSD$ --> @@ -56,12 +56,6 @@ </listitem> <listitem> - <para>这一版新增了 <xref linkend="nanobsd">, NanoBSD。 - 它介绍了如何使用 NanoBSD, 一种用于创建 &os; 适用于嵌入式系统, - 以及袖珍闪存 (Compact Flash) 介质等的映像文件的工具。</para> - </listitem> - - <listitem> <para>在 <xref linkend="ppp-and-slip">,PPP 和 SLIP 一章中增加了排除故障的说明。</para> </listitem> @@ -347,14 +341,6 @@ 描述了一般用户如何紧跟开发过程并从中受益。</para> </listitem> </varlistentry> - <varlistentry> - <term><emphasis><xref linkend="nanobsd">, NanoBSD</emphasis></term> - <listitem> - <para>介绍了 <application>NanoBSD</application> 工具, - 它可以用来为嵌入式应用准备 &os; 系统的映像, - 适用于使用袖珍闪存卡, 以及其他类似的存储介质。</para> - </listitem> - </varlistentry> <!-- Part IV - Network Communications --> diff --git a/zh_CN.GB2312/books/handbook/printing/chapter.sgml b/zh_CN.GB2312/books/handbook/printing/chapter.sgml index d87123a5dc..fe06c73a06 100644 --- a/zh_CN.GB2312/books/handbook/printing/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/printing/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.95 + Original Revision: 1.96 $FreeBSD$ --> @@ -492,67 +492,12 @@ ppc0: FIFO with 16/16/8 bytes threshold</screen> </sect4> </sect3> - <sect3 id="printing-dev-ports"> - <title>在 <filename>/dev</filename> 中为端口添加 - 设备节点</title> - - <note><para>FreeBSD 5.0 支持 <literal>devfs</literal> - 这种在需要的时候自动添加设备节点 - 的文件系统。 如果您正在使用的 FreeBSD 开启了 - <literal>devfs</literal> 文件系统, 那么您可以安全的跳过 - 这部分。</para></note> - - <para>尽管内核可能已经支持通过串口或者并口 - 通讯, 但您还是需要一个软件接口 - 来使您系统上的程序通过它发送和接收 - 数据。 这也是 - <filename>/dev</filename> 目录中那些设备节点的作用。</para> - - <para><emphasis>要在 <filename>/dev</filename> 中为端口添加 - 一个设备节点:</emphasis></para> - - <procedure> - <step> - <para>使用 &man.su.1; 命令切换到 <username>root</username> 帐号。 - 在出现提示的时候输入 <username>root</username> 帐号的密码。</para> - </step> - - <step> - <para>将当前目录改变到 <filename>/dev</filename> - 目录:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput></screen> - </step> - - <step> - <para>输入:</para> - - <screen>&prompt.root; <userinput>./MAKEDEV <replaceable>port</replaceable></userinput></screen> - - <para>其中 <replaceable>port</replaceable> 替换成 - 您需要添加端口的节点名。 当打印机连接在第一个并口上时, 替换成 - <literal>lpt0</literal> , 连接在第二个并口上时, 替换成 - <literal>lpt1</literal> , 依此类推; 当打印机连接在第一个串口上时, 替换成 - <literal>ttyd0</literal> , 连接在第二个串口上时, 替换成 - <literal>ttyd1</literal> , 依此类推。</para> - </step> - - <step> - <para>输入:</para> - - <screen>&prompt.root; <userinput>ls -l <replaceable>port</replaceable></userinput></screen> - - <para>来检查设备节点是否正常建立。</para> - </step> - </procedure> - - <sect4 id="printing-parallel-port-mode"> - <title>设置并口的通讯 - 模式</title> + <sect3 id="printing-parallel-port-mode"> + <title>设置并口的通讯模式</title> <para>在使用并口时, 您可以选择 让 FreeBSD 用中断方式还是轮询方式来 - 与打印机通讯。 在 FreeBSD 4.X and 5.X 上, + 与打印机通讯。 在 FreeBSD 上, 通用的打印机驱动 (&man.lpt.4;) 使用 &man.ppbus.4; 系统, 它利用 &man.ppc.4; 驱动来控制端口芯片。</para> @@ -594,15 +539,8 @@ ppc0: FIFO with 16/16/8 bytes threshold</screen> <itemizedlist> <listitem> - <para>如果您想要使用中断方式, 在 FreeBSD 4.X 下的方法是指定一个 - <literal>irq</literal>:</para> - - <programlisting>device ppc0 at isa? irq <replaceable>N</replaceable></programlisting> - - <para>其中 <replaceable>N</replaceable> 是计算机并口 - 的中断编号。</para> - - <para>在 FreeBSD 5.X 下, 修改下面这一行:</para> + <para>如果您希望使用中断驱动模式, + 则应编辑下面的配置:</para> <programlisting>hint.ppc.0.irq="<replaceable>N</replaceable>"</programlisting> @@ -616,23 +554,14 @@ ppc0: FIFO with 16/16/8 bytes threshold</screen> </listitem> <listitem> - <para>如果您想要使用轮询方式, 则不用指定 - <literal>irq</literal>:</para> - - <para>在 FreeBSD 4.X 下, - 在内核配置文件中使用下面这行:</para> - - <programlisting>device ppc0 at isa?</programlisting> - - <para>在 FreeBSD 5.X 下, 只需要把 + <para>如果您想要使用轮询方式, 只需要把 <filename>/boot/device.hints</filename> 这个文件中的下面这行删除掉:</para> <programlisting>hint.ppc.0.irq="<replaceable>N</replaceable>"</programlisting> - <para>在 - FreeBSD 5.X 下, 有时上面的方法并不能使并口工作在轮询方式。 大多数 - 情况是由于 &man.acpi.4; 驱动造成的, + <para>在 FreeBSD 下, 有时上面的方法并不能使并口工作在轮询方式。 + 大多数情况是由于 &man.acpi.4; 驱动造成的, 它可以自动侦测到设备并将其挂载到系统上, 但也因此, 它控制着打印机端口的访问模式. 您需要检查 &man.acpi.4; 的配置来解决这个问题。</para> @@ -674,9 +603,9 @@ ppc0: FIFO with 16/16/8 bytes threshold</screen> <filename>/etc/rc.local</filename> 这个文件中, 这样每次启动系统 时都会设置成您想要的方式。 参见 &man.lptcontrol.8; 来获得 更多信息。</para> - </sect4> + </sect3> - <sect4 id="printing-testing"> + <sect3 id="printing-testing"> <title>检测打印机的通讯</title> <para>在设置后台打印系统之前, @@ -712,7 +641,7 @@ showpage</programlisting> 所以需要对这类打印机语言进行特殊的处理。</para> </note> - <sect5 id="printing-checking-parallel"> + <sect4 id="printing-checking-parallel"> <title>检测并口打印机</title> <indexterm> @@ -768,12 +697,12 @@ showpage</programlisting> </step> </procedure> - <para>之后, 您应该看到打印出了一些东西。 如果打印出的东西 - 看起来并不正确, 请不要着急; + <para>之后, 您应该看到打印出了一些东西。 + 如果打印出的东西看起来并不正确, 请不要着急; 我们将在后面指导您如何解决这类问题。</para> - </sect5> + </sect4> - <sect5 id="printing-checking-serial"> + <sect4 id="printing-checking-serial"> <title>检测串口打印机</title> <indexterm> @@ -868,9 +797,8 @@ showpage</programlisting> <para>您应该看到打印出了一些东西。 如果它们看起来并不正确也不要着急; 我们将在稍后的章节中介绍如何解决这类问题。</para> - </sect5> - </sect4> - </sect3> + </sect4> + </sect3> <sect3 id="printing-printcap"> <title>启用后台打印: 文件 <filename>/etc/printcap</filename> @@ -1120,9 +1048,7 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <sect4 id="printing-device"> <title>识别打印机设备</title> - <para>在 <link linkend="printing-dev-ports">为端口在 - <filename>/dev</filename> 目录下增加设备节点</link> - 章节中, 我们确定了使用 + <para>在 端口与对应的设备项 章节中, 我们确定了使用 <filename>/dev</filename> 目录中的哪个节点来让 FreeBSD 与打印机 通讯。 现在, 我们来告诉 <application>LPD</application> 这个 @@ -1131,8 +1057,7 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ 指定的设备。</para> <para>用 <literal>lp</literal> 标记在 <filename>/etc/printcap</filename> 里列出 <filename>/dev</filename> - 下的设备节点 - 。</para> + 下的设备节点。</para> <para>在我们的例子中, 假设打印机 <literal>rattan</literal> 在第一个并口上, 打印机 diff --git a/zh_CN.GB2312/books/handbook/security/chapter.sgml b/zh_CN.GB2312/books/handbook/security/chapter.sgml index c13fce23b2..9f2d4ebec6 100644 --- a/zh_CN.GB2312/books/handbook/security/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/security/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.293 + Original Revision: 1.294 $FreeBSD$ --> @@ -61,7 +61,7 @@ </listitem> <listitem> - <para>如何在 &os; 5.0 或更高版本上设置 + <para>如何在 &os; 上设置 <application>Kerberos5</application>。</para> </listitem> @@ -728,10 +728,8 @@ 通过建立可以生成 ICMP 出错响应的包, 攻击者能够攻击服务器的网络下行资源, 并导致其上行资源耗尽。 这种类型的攻击也可以通过耗尽 mbuf 来使得使得被攻击的服务器崩溃,特别是当这些服务器无法足够快地完成 - ICPM 响应的时候。 在 &os; 4.X 内核中有一个叫做 - <option>ICMP_BANDLIM</option> 的编译选项来限制这类攻击, - 使其变得不再那么有效, 而较新的内核则可以通过 <application>sysctl</application> - 变量 <literal>net.inet.icmp.icmplim</literal> 来调整。 + ICPM 响应的时候。 较新的内核可以通过调整 <application>sysctl</application> + 变量 <literal>net.inet.icmp.icmplim</literal> 来限制这种攻击。 最后一类主要的 springboard 是针对某些 <application>inetd</application> 的内部服务, 例如 udp echo 服务进行的。 攻击者简单地伪造一个来自服务器 A 的 @@ -752,7 +750,7 @@ 1600 秒才会过期。 如果内核发现路由表变得太大, 它会动态地降低 <varname>rtexpire</varname> 但以 <varname>rtminexpire</varname> 为限。 这引发了两个问题:</para> - + <orderedlist> <listitem> <para>在访问量不大的服务器上, 内核对于突然袭击的反应不够快。</para> @@ -851,10 +849,7 @@ <sect2> <title>识别您采用的加密算法</title> - <para>在 &os; 4.4 之前,<filename>libcrypt.a</filename> 曾经是 - 一个指向相应加密算法的符号连接。&os; 4.4 开始,把 - <filename>libcrypt.a</filename> 变成了一个可以配置的密码验证散列库。 - 现在这个库支持 DES,MD5和Blowfish散列函数。默认情况下, &os; + <para>现在这个库支持 DES、 MD5 和 Blowfish 散列函数。默认情况下, &os; 使用 MD5 来加密口令。</para> <para>可以很容易地识别 &os; 使用哪种加密方法。 @@ -884,39 +879,31 @@ <secondary>一次性口令</secondary> </indexterm> - <para>S/Key 是基于单向 hash 功能的一次性密码管理方式。 - 为了考虑兼容性而使用了 MD4 散列, 而其他系统则使用了 - MD5 和 DES-MAC。 S/Key 从 1.1.5 版之后就一直是 - &os; 基本系统的一部分, 包含这一特性的操作系统也日益增多。 - S/Key 是 Bell Communications Research, Inc. 的注册商标。</para> - - <para>从 &os; 5.0 版开始, S/Key 被功能相同的 - OPIE (One-time Passwords In Everything) 取代了。 - OPIE 默认使用 MD5 散列。</para> - - <para>下面将介绍三种不同的口令。 - 第一种是您常用的 &unix; 风格或 Kerberos 口令; 我们在后面的章节中将称其为 - <quote>&unix; 口令</quote>。 第二种是使用 S/Key 的 <command>key</command> - 程序或 OPIE 的 &man.opiekey.1; 程序生成, 并为 <command>keyinit</command> - 或 &man.opiepasswd.1; 以及登录提示所接受的一次性口令,我们称其为 + <para>默认情况下, &os; 提供了 + OPIE (One-time Passwords In Everything) 支持, + 它默认使用 MD5 散列。</para> + + <para>下面将介绍三种不同的口令。 第一种是您常用的 &unix; 风格或 Kerberos + 口令; 我们在后面的章节中将称其为 <quote>&unix; 口令</quote>。 + 第二种是使用 OPIE 的 &man.opiekey.1; 程序生成, + 并为 &man.opiepasswd.1; 以及登录提示所接受的一次性口令,我们称其为 <quote>一次性口令</quote>。 最后一类口令是您输入给 - <command>key</command>/<command>opiekey</command> 程序 (有些时候是 - <command>keyinit</command>/<command>opiepasswd</command> 程序) + <command>opiekey</command> 程序 (有些时候是 + <command>opiepasswd</command> 程序) 用以产生一次性口令的秘密口令,我们称其为 <quote>秘密口令</quote> 或通俗地简称为 <quote>口令</quote>。</para> <para>秘密口令和您的 &unix; 口令毫无关系, 尽管可以设置为相同的, - 但不推荐这么做。 S/Key 和 OPIE 秘密口令并不像旧式的 + 但不推荐这么做。 OPIE 秘密口令并不像旧式的 &unix; 口令那样只能限于8位以内<footnote><para>在 &os; 中标准的登录口令最长不能超过 128 个字符。</para></footnote>。 您想要用多长的口令都可以。 有六、七个词的短句是很常见的选择。 - 在绝大多数时候, - S/Key 或 OPIE 系统和 &unix; 口令系统完全相互独立地工作。</para> + 在绝大多数时候, OPIE 系统和 &unix; 口令系统完全相互独立地工作。</para> - <para>除了口令之外, 对于 S/Key 和 OPIE 还有两组至关重要的数据。 + <para>除了口令之外, 对于 OPIE 还有两组至关重要的数据。 其一被称作 <quote>种子</quote> 或 <quote>key</quote>, 它包括两个字符和五个数字。 另一个被称作 <quote>迭代轮数</quote>, 这是一个 1 到 100 之间的数字。 - S/Key 通过将种子加到秘密口令后面, 并执行迭代轮数那么多次的 MD4/MD5 + OPIE 通过将种子加到秘密口令后面, 并执行迭代轮数那么多次的 MD4/MD5 散列运算来得到结果, 并将结果表示为 6 个短的英文单词。 这 6 个英文单词就是您的一次性口令。 验证系统 (主要是 PAM) 会记录上次使用的一次性口令, @@ -924,51 +911,30 @@ 由于使用了单向的散列函数, 因此即使截获了上次使用的口令, 也没有办法恢复出下次将要使用的口令; 每次成功登录都将导致迭代轮数递减, 这样用户和登录程序将保持同步。 - 每当迭代轮数减少到 1 时, 都必须重新初始化 S/Key 和 OPIE。</para> + 每当迭代轮数减少到 1 时, 都必须重新初始化 OPIE。</para> <para>接下来将讨论和每个系统有关的三个程序。 - <command>key</command> 和 <command>opiekey</command> 程序能够接收带迭代计数, 种子和秘密口令, 并生成一个一次性口令, 或一张包含连续的一组一次性口令的表格。 - <command>keyinit</command> 和 <command>opiepasswd</command> - 程序分别用于初始化 S/Key 和 OPIE, 并修改口令、 - 迭代次数、种子和一次性口令。 <command>keyinfo</command> + <command>opiepasswd</command> + 程序用于初始化 OPIE, 并修改口令、 + 迭代次数、种子和一次性口令。 和 <command>opieinfo</command> 程序可以用于检查相应的验证数据文件 - (<filename>/etc/skeykeys</filename> 或 - <filename>/etc/opiekeys</filename>) 并显示执行命令的用户当前的迭代轮数和种子。</para> + (<filename>/etc/opiekeys</filename>) 并显示执行命令的用户当前的迭代轮数和种子。</para> - <para>我们将介绍四种不同的操作。 - 在安全的连接上通过 <command>keyinit</command> 或 + <para>我们将介绍四种不同的操作。 在安全的连接上通过 <command>opiepasswd</command> 来第一次设置一次性口令, - 或修改口令及种子。 - 第二类操作是在不安全的连接上使用 <command>keyinit</command> - 或 <command>opiepasswd</command> 辅以在安全连接上执行的 - <command>key</command> 或 <command>opiekey</command> - 来完成同样的工作。 第三类操作是在不安全的连接上使用 - <command>key</command>/<command>opiekey</command> 来登录。 - 最后一类操作是采用 <command>key</command> - 或 <command>opiekey</command> 来生成大批的密码, + 或修改口令及种子。 第二类操作是在不安全的连接上使用 + <command>opiepasswd</command> 辅以在安全连接上执行的 + <command>opiekey</command> 来完成同样的工作。 + 第三类操作是在不安全的连接上使用 <command>opiekey</command> 来登录。 + 最后一类操作是采用 <command>opiekey</command> 来生成大批的密码, 以便抄下来或打印出来,在没有安全连接的地方使用。</para> <sect2> <title>安全连接的初始化</title> - <para>第一次初始化 S/Key, 修改口令或种子需要在安全的连接 - (例如, 在那台机器的控制台上或者通过 <application>ssh</application>) - 登录来完成。 以自己的身份登录并执行不带参数的 - <command>keyinit</command> 命令:</para> - - <screen>&prompt.user; <userinput>keyinit</userinput> -Adding unfurl: -Reminder - Only use this method if you are directly connected. -If you are using telnet or rlogin exit with no password and use keyinit -s. -Enter secret password: -Again secret password: - -ID unfurl s/key is 99 to17757 -DEFY CLUB PRO NASH LACE SOFT</screen> - - <para>对于 OPIE, 则使用 <command>opiepasswd</command>:</para> + <para>第一次初始化 OPIE 时, 可以使用 <command>opiepasswd</command> 命令:</para> <screen>&prompt.user; <userinput>opiepasswd -c</userinput> [grimreaper] ~ $ opiepasswd -f -c @@ -999,26 +965,12 @@ MOS MALL GOAT ARM AVID COED <title>不安全连接初始化</title> <para>如果您需要通过一个不安全的连接来初始化, - 则应首先在安全连接上执行过一次 <command>key</command> - 或 <command>opiekey</command>; 这可以在 - &macintosh; 的桌面附件, 或是在可信的机器的 shell 上面完成。 + 则应首先在安全连接上执行过一次 <command>opiekey</command>; + 您可能希望在可信的机器的 shell 提示符下完成。 此外还需要指定一个迭代轮数 (100 也许是一个较好的选择) 也可以选择一个自己的种子, 或让计算机随机生成一个。 - 在不安全的连接上 (当然是连到您希望初始化的机器上),使用 <command>keyinit - -s</command> 命令:</para> - - <screen>&prompt.user; <userinput>keyinit -s</userinput> -Updating unfurl: -Old key: to17758 -Reminder you need the 6 English words from the key command. -Enter sequence count from 1 to 9999: <userinput>100</userinput> -Enter new key [default to17759]: -s/key 100 to 17759 -s/key access password: -s/key access password:<userinput>CURE MIKE BANE HIM RACY GORE</userinput> -</screen> - - <para>对于 OPIE, 则需要使用 <command>opiepasswd</command>:</para> + 在不安全的连接上 (当然是连到您希望初始化的机器上),使用 + <command>opiepasswd</command> 命令:</para> <screen>&prompt.user; <userinput>opiepasswd</userinput> @@ -1035,18 +987,9 @@ ID mark OTP key is 499 gr4269 LINE PAP MILK NELL BUOY TROY </screen> - <para>为了接受默认的种子 ( - <command>keyinit</command> 程序令人困惑地将其称作 - <literal>key</literal>), 按下 <keycap>Return</keycap>。 - 在输入访问口令之前, 到一个有安全连接或 - S/Key 桌面附件的机器上, 并给它同样的参数:</para> - - <screen>&prompt.user; <userinput>key 100 to17759</userinput> -Reminder - Do not use this program while logged in via telnet or rlogin. -Enter secret password: <userinput><secret password></userinput> -CURE MIKE BANE HIM RACY GORE</screen> - - <para>对于 OPIE:</para> + <para>为了接受默认的种子, 按下 <keycap>Return</keycap>。 + 在输入访问口令之前, 到一个有安全连接的机器上, + 并给它同样的参数:</para> <screen>&prompt.user; <userinput>opiekey 498 to4268</userinput> Using the MD5 algorithm to compute response. @@ -1061,20 +1004,7 @@ GAME GAG WELT OUT DOWN CHAT <sect2> <title>生成一个一次性密码</title> - <para>一旦初始化过 S/Key 或 OPIE, 当您登录时将看到类似这样的提示:</para> - -<screen>&prompt.user; <userinput>telnet example.com</userinput> -Trying 10.0.0.1... -Connected to example.com -Escape character is '^]'. - -FreeBSD/i386 (example.com) (ttypa) - -login: <userinput><username></userinput> -s/key 97 fw13894 -Password: </screen> - - <para>对于 OPIE 则是:</para> + <para>一旦初始化过 OPIE, 当您登录时将看到类似这样的提示:</para> <screen>&prompt.user; <userinput>telnet example.com</userinput> Trying 10.0.0.1... @@ -1087,7 +1017,7 @@ login: <userinput><username></userinput> otp-md5 498 gr4269 ext Password: </screen> - <para>另外, S/Key 和 OPIE 提示有一个很有用的特性 + <para>另外, OPIE 提示有一个很有用的特性 (这里没有表现出来): 如果您在口令提示处按下 <keycap>Return</keycap>(回车) 系统将回显刚键入的口令, 您可以藉此看到自己所键入的内容。 如果试图手工键入一个一次性密码, 这会非常有用。</para> @@ -1097,7 +1027,7 @@ Password: </screen> <indexterm><primary>MacOS</primary></indexterm> <para>此时您需要生成一个一次性密码来回答这一提示。 - 这项工作必须在一个可信的系统上执行 <command>key</command> 或 + 这项工作必须在一个可信的系统上执行 <command>opiekey</command> 来完成。 (也可以找到 DOS、 &windows; 以及 &macos; 等操作系统上运行的版本)。 这个程序需要将迭代轮数和种子提供给它。 @@ -1105,48 +1035,22 @@ Password: </screen> <para>在可信的系统上:</para> - <screen>&prompt.user; <userinput>key 97 fw13894</userinput> -Reminder - Do not use this program while logged in via telnet or rlogin. -Enter secret password: -WELD LIP ACTS ENDS ME HAAG</screen> - - <para>对于 OPIE:</para> - <screen>&prompt.user; <userinput>opiekey 498 to4268</userinput> Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT</screen> - <para>现在使用刚刚生成的一次性口令登录:</para> - - <screen>login: <userinput><username></userinput> -s/key 97 fw13894 -Password: <userinput><return to enable echo></userinput> -s/key 97 fw13894 -Password [echo on]: WELD LIP ACTS ENDS ME HAAG -Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ... </screen> - + <para>现在就可以用刚刚获得的一次性口令登录了。</para> </sect2> <sect2> <title>产生多个一次性口令</title> <para>有时,会需要到不能访问可信的机器或安全连接的地方。 - 这种情形下, 可以使用 <command>key</command> 和 + 这种情形下, 可以使用 <command>opiekey</command> 命令来一次生成许多一次性口令。 例如:</para> - <screen>&prompt.user; <userinput>key -n 5 30 zz99999</userinput> -Reminder - Do not use this program while logged in via telnet or rlogin. -Enter secret password: <userinput><secret password></userinput> -26: SODA RUDE LEA LIND BUDD SILT -27: JILT SPY DUTY GLOW COWL ROT -28: THEM OW COLA RUNT BONG SCOT -29: COT MASH BARR BRIM NAN FLAG -30: CAN KNEE CAST NAME FOLK BILK</screen> - - <para>对于 OPIE:</para> - <screen>&prompt.user; <userinput>opiekey -n 5 30 zz99999</userinput> Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. @@ -1183,31 +1087,9 @@ Enter secret pass phrase: <userinput><secret password></userinput> <filename>skey.access</filename> 中配置允许这样做。 无论如何, &unix; 在控制台上总是可用的。</para> - <para>下面是一个示例的 <filename>skey.access</filename> 配置文件, - 它展示了最常用的三类配置语句:</para> - - <programlisting>permit internet 192.168.0.0 255.255.0.0 -permit user fnord -permit port ttyd0</programlisting> - - <para>第一行 (<literal>permit internet</literal>) 允许来自 IP - 源地址 (需要注意这是可能被伪造的) 与指定的掩码值进行逻辑与之后, - 与给定值匹配的用户使用 &unix; 口令。 这不应被认为是一种安全机制, - 它只是为那些使用不安全网络的获得许可的用户提供了用 S/Key - 进行身份验证的手段。</para> - - <para>第二行 (<literal>permit user</literal>) 允许指定的用户, - 在本例中是 <username>fnord</username>, 在任何时候使用 - &unix; 口令。 一般说来, 只应为无法使用 - <command>key</command> 程序, 例如那些使用哑终端, - 或无法学会如何使用它的用户启用这样的功能。</para> - - <para>第三行 (<literal>permit port</literal>) 允许通过指定终端线的用户使用 - &unix; 口令; 这可以被用于拨号用户。</para> - - <para>OPIE 可以像 S/Key 一样对 &unix; 口令的使用进行基于 IP 的登录限制。 - 对应的文件是 <filename>/etc/opieaccess</filename>, 在 - 在 &os; 5.0 和更高版本的系统中, 默认情况下它就已经存在了。 + <para>OPIE 可以对 &unix; 口令的使用进行基于 IP 的登录限制。 + 对应的文件是 <filename>/etc/opieaccess</filename>, + 这个文件默认情况下就是存在的。 请参阅 &man.opieaccess.5; 以了解关于这个文件进一步的情况, 以及安全方面需要进行的一些考虑。</para> @@ -2040,11 +1922,6 @@ FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen> kadmind5_server_enable="YES" kerberos_stash="YES"</programlisting> - <note> - <para><option>kerberos_stash</option> 只能在 - &os; 4.X 上使用。</para> - </note> - <para>接下来需要修改 <application>Kerberos</application> 的配置文件, <filename>/etc/krb5.conf</filename>:</para> @@ -2871,7 +2748,7 @@ Connection closed by foreign host.</screen> 它支持两种协议族, IPv4 和 IPv6。</para> <note> - <para>FreeBSD 5.X 包括了采用 <quote>硬件加速的</quote> + <para>FreeBSD 包括了采用 <quote>硬件加速的</quote> IPsec 协议栈, 也称作 <quote>Fast IPsec</quote>, 它来自 OpenBSD。 它能够通过 &man.crypto.4; 子系统来利用加密硬件 (只要可能) @@ -3150,34 +3027,29 @@ options IPSEC_DEBUG #debug for IP security <para>到两边的内核配置文件中, 并重新编译、 安装和启动它们。</para> <para>配置隧道可以分为两步来完成。 首先隧道必须被告知外部的 - (或公网的) IP 地址, 可以通过 &man.gifconfig.8; 来完成这步。 + (或公网的) IP 地址, 可以通过 &man.ifconfig.8; 来完成这步。 私网 IP 地址则必须使用 &man.ifconfig.8; 来配置。</para> - <note> - <para>在 &os; 5.X 中, - &man.gifconfig.8; 的功能已经并入 - &man.ifconfig.8;。</para></note> - <para>在网络 #1 的网关机上可以通过下面的两个命令来配置隧道。</para> - <programlisting>gifconfig gif0 A.B.C.D W.X.Y.Z + <programlisting>ifconfig gif0 A.B.C.D W.X.Y.Z ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff </programlisting> <para>在另一边也需要做类似的设置, 只是 IP 地址的顺序是反过来的。</para> - <programlisting>gifconfig gif0 W.X.Y.Z A.B.C.D + <programlisting>ifconfig gif0 W.X.Y.Z A.B.C.D ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff </programlisting> - + <para>随后执行:</para> - - <programlisting>gifconfig gif0</programlisting> - + + <programlisting>ifconfig gif0</programlisting> + <para>可以查看当前的配置情况。 例如, 在网络 #1 的网关上您应该能够看到:</para> - - <screen>&prompt.root; <userinput>gifconfig gif0</userinput> + + <screen>&prompt.root; <userinput>ifconfig gif0</userinput> gif0: flags=8011<UP,POINTTOPOINT,MULTICAST> mtu 1280 inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff physical address inet A.B.C.D --> W.X.Y.Z @@ -3747,8 +3619,7 @@ ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D <para><application>OpenSSH</application> 由 OpenBSD project 维护, 它基于 SSH v1.2.12 并包含了最新的错误修复和更新。 - 它同时兼容 SSH 协议的 1 和 2 两个版本。 - 从 FreeBSD 4.0 开始, <application>OpenSSH</application> 成为了基本系统的一部分。</para> + 它同时兼容 SSH 协议的 1 和 2 两个版本。</para> <sect2> <title>使用 OpenSSH 的好处</title> @@ -3766,9 +3637,7 @@ ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D <secondary>启用</secondary> </indexterm> - <para>在 &os; 4.X 上, <application>sshd</application> - 服务是默认启用的。 在 &os; 5.X 和更高版本上, - <application>sshd</application> 的启用是作为 &os; 安装中 + <para><application>sshd</application> 的启用是作为 &os; 安装中 <literal>Standard</literal> 安装过程中的一步来进行的。 要查看 <application>sshd</application> 是否已被启用, 请检查 <filename>rc.conf</filename> 文件中的:</para> diff --git a/zh_CN.GB2312/books/handbook/serialcomms/chapter.sgml b/zh_CN.GB2312/books/handbook/serialcomms/chapter.sgml index 54b72d9cdd..cbccb35e32 100644 --- a/zh_CN.GB2312/books/handbook/serialcomms/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/serialcomms/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.112 + Original Revision: 1.113 $FreeBSD$ --> @@ -95,7 +95,7 @@ <sect3 id="term-cables"> <title>线缆</title> - <para>串口线缆又许多不同的种类。 最常见的两种类型是 null-modem + <para>串口线缆有许多不同的种类。 最常见的两种类型是 null-modem 线缆和标准 (<quote>直联</quote>) RS-232 线缆。 您的硬件说明书中会介绍应使用的线缆种类。</para> @@ -509,15 +509,6 @@ sio3: type 16550A</screen> <filename>/boot/device.hints</filename> 文件来进行一些配置。 此外, 也可以注释或完全删除掉您没有的设备。</para> - <para>在 &os; 4.X 中, 必须修改内核配置文件来达到这一目的。 - 要了解关于配置内核的详细信息, 请参见 <xref - linkend="kernelconfig">。 相关的设备如下:</para> - - <programlisting>device sio0 at isa? port IO_COM1 irq 4 -device sio1 at isa? port IO_COM2 irq 3 -device sio2 at isa? port IO_COM3 irq 5 -device sio3 at isa? port IO_COM4 irq 9</programlisting> - <para>请参见 &man.sio.4; 联机手册来了解关于串口, 以及多插口卡配置的进一步细节。 如果您正使用一个在不同版本的 FreeBSD 上的文件请务必小心, 因为设备参数和语法发生了变化。</para> @@ -548,13 +539,13 @@ device sio3 at isa? port IO_COM4 irq 9</programlisting> (在 &os; 6.X 上是 <filename>/dev/ttyd<replaceable>N</replaceable>.init</filename> 以及 <filename>/dev/cuad<replaceable>N</replaceable>.init</filename>, - 而在 &os; 5.X 和更早版本上则是 + 而在 &os; 5.X 上则是 <filename>/dev/ttyid<replaceable>N</replaceable></filename> 和 <filename>/dev/cuaia<replaceable>N</replaceable></filename>) 以及锁设备 (在 &os; 6.X 上是 <filename>/dev/ttyd<replaceable>N</replaceable>.lock</filename> 和 <filename>/dev/cuad<replaceable>N</replaceable>.lock</filename>, - 而在 &os; 5.X 和更早版本上则是 + 而在 &os; 5.X 上则是 <filename>/dev/ttyld<replaceable>N</replaceable></filename> 和 <filename>/dev/cuala<replaceable>N</replaceable></filename>)。 初始化设备用于在打开端口时初始化其通讯参数, 例如使用 @@ -563,44 +554,6 @@ device sio3 at isa? port IO_COM4 irq 9</programlisting> 防止用户或程序改变特定的参数; 请参见 &man.termios.4;、 &man.sio.4;, 以及 &man.stty.1; 的联机手册, 以了解关于终端配置、 锁和初始化设备, 以及配置终端参数的详细信息。</para> - - <sect3> - <title>编译设备指定文件</title> - - <note><para>从 FreeBSD 5.0 开始, &man.devfs.5; - 文件系统将根据需要创建设备节点。 如果您在运行启用 - <literal>devfs</literal> 的FreeBSD版本, - 您就可以跳过这一节。</para></note> - - <para>一个在<filename>/dev</filename> 目录下的叫做 - <command>MAKEDEV</command> 的 shell 脚本管理着设备指定文件。 - 要使用 <command>MAKEDEV</command> 来建立拨号设备指定文件, - 可以使用 <devicename>COM1</devicename>: (port 0), - <command>cd</command> 进入 <filename>/dev</filename>, - 然后执行命令 <command>MAKEDEV ttyd0</command>。 - 同样地,要建立拨号设备指定文件以使用 - <devicename>COM2</devicename>: (port 1), - 可以执行 <command>MAKEDEV ttyd1</command>。</para> - - <para><command>MAKEDEV</command> 不仅仅创建 - <filename>/dev/ttyd<replaceable>N</replaceable></filename> 设备指定文件,也创建 - <filename>/dev/cuaa<replaceable>N</replaceable></filename>, - <filename>/dev/cuaia<replaceable>N</replaceable></filename>, - <filename>/dev/cuala<replaceable>N</replaceable></filename>, - <filename>/dev/ttyld<replaceable>N</replaceable></filename>, 以及 - <filename>/dev/ttyid<replaceable>N</replaceable></filename>节点。</para> - - <para>建立完新设备指定文件后, 需要检查文件的权限来确定谁可以在这些文件上读写 - — 您可能不想让普通的用户使用您的 modem 吧。 - 在<filename>/dev/cua*</filename>文件上的默认权限应该是足够了:</para> - - <screen>crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1 -crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1 -crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1</screen> - - <para>这些许可允许用户<username>uucp</username>和在组<username>dialer</username> - 上的用户使用呼出设备。</para> - </sect3> </sect2> @@ -635,11 +588,6 @@ crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1</screen> 是由 <filename>/etc/rc.d/serial</filename> 来控制的。 这个文件会影响串口设备的默认设置。</para> - <note> - <para>在 &os; 4.X 中, 串口设备的初始化, - 是在 <filename>/etc/rc.serial</filename> 中控制的。</para> - </note> - <para>为了防止应用程序修改某些设置, 应修改 <quote>lock state</quote>(锁状态) 设备。 例如, 要把 <devicename>ttyd5</devicename> 的速率锁定为 57600 bps, 输入:</para> @@ -650,9 +598,6 @@ crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1</screen> 和设法改变端口速度的应用程序将被固定在57600bit/s。很自然地, 您需要确定初始状态,然后用root帐户锁定状态设备的写入功能。</para> - <indexterm> - <primary><command>MAKEDEV</command></primary> - </indexterm> <para>很显然,您应该只让 <username>root</username> 用户可以初始化或锁定设备的状态。</para> </sect2> @@ -2036,12 +1981,6 @@ raisechar=^^</programlisting> 参见 <ulink url="&url.books.developers-handbook;/index.html">开发者手册</ulink> 以了解关于远程调试更进一步的情况。</para> - - <note> - <para>在FreeBSD 4.0-CURRENT和以后的版本中,标记 - <literal>0x40</literal>通常是不同的, - 有另一个标记可以来指定一个串口用于远程调试。</para> - </note> </listitem> </varlistentry> </variablelist> @@ -2410,7 +2349,7 @@ boot:</screen> </step> <step> - <para>用 &man.disklabel.8; + <para>用 &man.bsdlabel.8; 将引导块写到启动盘上,然后从新内核启动。</para> </step> </procedure> diff --git a/zh_CN.GB2312/books/handbook/users/chapter.sgml b/zh_CN.GB2312/books/handbook/users/chapter.sgml index 1731c14083..ce1d32497b 100644 --- a/zh_CN.GB2312/books/handbook/users/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/users/chapter.sgml @@ -1,7 +1,7 @@ <!-- The FreeBSD Chinese Documentation Project - Original Revision: 1.54 + Original Revision: 1.55 $FreeBSD$ --> @@ -338,80 +338,6 @@ (<quote>dotfiles</quote>) 从 <filename>/usr/share/skel</filename> 这个目录, 然后给新用户发送一封带欢迎信息的邮件。</para> - <para>在 &os; 5.0 版本中, &man.adduser.8; 命令从 Perl 脚本改写为 shell 脚本, - 起包装 &man.pw.8; 的作用, 所以它的用法在 &os; 4.X - 上和 &os; 5.X 上略有不同。</para> - - <para>建立初始化配置文件, 使用 - <command>adduser -s -config_create</command>. - <footnote> - <para>选项 <option>-s</option> 的作用是让 &man.adduser.8; - 尽可能使用默认配置而不是提示用户输入。 - 如果需要修改之前保存的默认设置, - 则可以使用 <option>-v</option> 选项</para> - </footnote> - 接下来, 我们配置 &man.adduser.8; 的默认设置, - 并建立第一个普通用户帐户, 因为将 - <username>root</username> 用于日常使用会带来很多潜在问题。</para> - - <example> - <title>配置 <command>adduser</command> 和添加一个新用户,在&os; 4.X版本</title> - - <screen>&prompt.root; <userinput>adduser -v</userinput> -Use option ``-silent'' if you don't want to see all warnings and questions. -Check /etc/shells -Check /etc/master.passwd -Check /etc/group -Enter your default shell: csh date no sh tcsh zsh [sh]: <userinput>zsh</userinput> -Your default shell is: zsh -> /usr/local/bin/zsh -Enter your default HOME partition: [/home]: -Copy dotfiles from: /usr/share/skel no [/usr/share/skel]: -Send message from file: /etc/adduser.message no -[/etc/adduser.message]: <userinput>no</userinput> -Do not send message -Use passwords (y/n) [y]: <userinput>y</userinput> - -Write your changes to /etc/adduser.conf? (y/n) [n]: <userinput>y</userinput> - -Ok, let's go. -Don't worry about mistakes. I will give you the chance later to correct any input. -Enter username [a-z0-9_-]: <userinput>jru</userinput> -Enter full name []: <userinput>J. Random User</userinput> -Enter shell csh date no sh tcsh zsh [zsh]: -Enter home directory (full path) [/home/jru]: -Uid [1001]: -Enter login class: default []: -Login group jru [jru]: -Login group is ``jru''. Invite jru into other groups: guest no -[no]: <userinput>wheel</userinput> -Enter password []: -Enter password again []: - -Name: jru -Password: **** -Fullname: J. Random User -Uid: 1001 -Gid: 1001 (jru) -Class: -Groups: jru wheel -HOME: /home/jru -Shell: /usr/local/bin/zsh -OK? (y/n) [y]: <userinput>y</userinput> -Added user ``jru'' -Copy files from /usr/share/skel to /home/jru -Add another user? (y/n) [y]: <userinput>n</userinput> -Goodbye! -&prompt.root;</screen> - </example> - - <para>总体而言, 我们把默认的shell设置成 - <application>zsh</application> (一个可以在 Ports Collection 找到的 - shell), 关闭欢迎邮件。 然后保存配置, - 接着创建一个名为 <username>jru</username>的帐户, - 并且确信 <username>jru</username> 在 - <username>wheel</username> 组里 (这样它就能够通过 &man.su.1; - 转变为 <username>root</username>。)</para> - <note> <para>输入的口令不会被回显, 也不会显示星号。 请确保不要误输口令。 @@ -425,7 +351,7 @@ Goodbye! </note> <example> - <title>添加一个新用户在&os; 5.X版本</title> + <title>在 &os; 中添加一个新用户</title> <screen>&prompt.root; <userinput>adduser</userinput> Username: <userinput>jru</userinput> @@ -530,7 +456,8 @@ Removing files belonging to jru from /var/tmp/vi.recover: done. 不需要任何选项, &man.chpass.1; 将显示一个包含用户信息的编辑器. 可以试图改变用户在数据库中的信息.</para> <note> - <para>在 &os; 5.X版本, 编辑退出后,您应该索要您的口令,如果您不是超级用户的话.</para> + <para>如果您不是超级用户的话, 在退出编辑状态之后, + 系统会询问您口令。</para> </note> <example> diff --git a/zh_CN.GB2312/books/handbook/vinum/chapter.sgml b/zh_CN.GB2312/books/handbook/vinum/chapter.sgml index c07724c0b9..875780386d 100644 --- a/zh_CN.GB2312/books/handbook/vinum/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/vinum/chapter.sgml @@ -8,7 +8,7 @@ For the FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.40 + Original Revision: 1.41 $FreeBSD$ --> @@ -47,7 +47,7 @@ 例如使用多个, 有些时候甚至是冗余的, 磁盘。</para> <para>除了支持许多种不同的硬件 RAID 控制器之外, -FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。</para> +FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现虚拟磁盘驱动器的块设备。</para> <para>Vinum 提供了比传统磁盘存储更好的灵活性、性能和可靠性, 它还实现了 RAID-0, RAID-1, 以及 RAID-5 @@ -174,7 +174,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <emphasis>分段(striping)</emphasis> 或者 <acronym>RAID-0</acronym> <footnote> - <para><acronym>RAID</acronym> 代表<emphasis>廉价磁盘容错(Redundant + <para><acronym>RAID</acronym> 代表<emphasis>廉价冗余磁盘阵列 (Redundant Array of Inexpensive Disks)</emphasis> 提供各种容错机制, 但后面这个术语可能会有些让人误解:它不提供冗余功能。</para> </footnote>. @@ -194,10 +194,11 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <sect1 id="vinum-data-integrity"> <title>数据的完整性</title> - <para>T当前磁盘的最后一个问题是它们不太可靠。虽然磁盘驱动器 - 的可靠性在过去几年有了很大的提高,它们仍然是会损坏的服务器的 - 最核心组件。当它们发生故障的时候, 结果可能是灾难性的: - 替换一个坏的磁盘驱动器,然后恢复数据可能要花费几天时间。 + <para>现时磁盘的最后一个问题是它们不太可靠。 + 虽然磁盘驱动器的可靠性在过去几年有了很大的提高, + 但它们仍然是服务器中最容易损坏的核心组件。 + 当它们发生故障的时候, 结果可能是灾难性的: + 替换坏的磁盘驱动器并恢复数据可能要花费几天时间。 </para> <indexterm> @@ -211,12 +212,12 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <primary>RAID-1</primary> </indexterm> - <para>解决这个问题的传统方法是建立镜象 - <emphasis>镜象</emphasis>, 在不同的物理硬件上对数据做两个副本。 - 由于<acronym>RAID</acronym> 的出现levels, 所以这个技术也被叫做 - <acronym>第一级RAID</acronym> 或者 - <acronym>RAID-1</acronym>. 任何写到卷的数据也会被写到镜象上,所 - 以可以从任何一个副本读取数据, 如果其中有一个出现故障, + <para>解决这个问题的传统方法是建立 + <emphasis>镜象</emphasis>, 在不同的物理硬件上对数据做两个副本。 + 根据 <acronym>RAID</acronym> 级别出现的时间顺序, 这个技术也被叫做 + <acronym>RAID 级别1</acronym> 或者 + <acronym>RAID-1</acronym>。 任何写到卷的数据也会被写到镜象上, + 所以可以从任何一个副本读取数据, 如果其中有一个出现故障, 数据也还可以从其他驱动器上访问到。</para> <para>镜象有两个问题:</para> @@ -228,14 +229,14 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <listitem> <para>性能影响。 写入操作必须在两个驱动器上执行,所以它们 - 花费两倍的带宽。读取数据并不会影响性能:看起来它们会更快。</para> + 花费两倍的带宽。读取数据并不会影响性能: 它们甚至看起来会更快。</para> </listitem> </itemizedlist> - <para><indexterm><primary>RAID-5</primary></indexterm>一个 - 可选的方案采用 <emphasis>parity</emphasis>, - 其实现了 <acronym>RAID</acronym> 2, 3, 4 和 - 5. 而其中, <acronym>RAID-5</acronym> 是我们最感兴趣的。 + <para><indexterm><primary>RAID-5</primary></indexterm> + 一个可选的方案采用 <emphasis>奇偶校验</emphasis> 的方式, + 用以实现 <acronym>RAID</acronym> 2、 3、 4 和 + 5。 这其中, <acronym>RAID-5</acronym> 是我们最感兴趣的。 在 Vinum 的实现中, 这是一个条带组织结构的变体, 其中, 每一个条带中都以一个专用的块, 来保存其它块的奇偶校验值。 这样, @@ -269,7 +270,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <itemizedlist> <listitem> - <para>T最显著的目标是虚拟磁盘, 叫做 + <para>最显著的目标是虚拟磁盘, 叫做 <emphasis>卷(volume)</emphasis>. 卷本质上与一个UNIX 磁盘 驱动器有同样的属性,虽然它们是有些不太一样。它们没有大小的限制。 </para> @@ -315,7 +316,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 每个plex 是一个在一个卷中的数据的描述。一个卷可以包含一个 到八个plex。</para> - <para>Although虽然一个plex 描述了一个卷的所有数据,, + <para>虽然一个plex 描述了一个卷的所有数据,, 但可能描述的部分被物理地丢失了。可能是设计的问题 (没有为plex 部分定义一个subdisk)也可能是意外的故障 (由于驱动器的故障导致)。只要至少有一个plex 能够为 @@ -350,8 +351,8 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <listitem> <para>串联的plex 更加灵活:它们可以包含任何数量的subdisk, subdisk 也可能有不同的长度。Plex 可以通过添加额外的subdisk - 来得到扩展。 它们需要更少的 - <acronym>CPU</acronym> 时钟相对分段plexes, 尽管 + 来得到扩展。 与分段 plex 不同, 它们需要的 + <acronym>CPU</acronym> 时钟更少, 尽管 <acronym>CPU</acronym> 上的负载差异是不可测量的。 另一方面,它们的负载可能不平衡,一个磁盘可能负载很重, 而其他的可能很空闲。</para> @@ -365,7 +366,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 : 它们必须是同样大小, 通过添加新的subdisk 来扩展一个plex 是非常复杂的,以至Vinum 当前没有实现它. Vinum 利用一个额外 的,代价不高的限制:一个分段的plex 必须有至少两个subdisk, - 因为否则的话,它是无法从一个连接的plex 进行区分的。</para> + 否则, 它就无法区分连接的 plex 了。</para> </listitem> </itemizedlist> @@ -380,7 +381,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <entry>Plex 类型</entry> <entry>最少subdisks</entry> <entry>可否添加subdisks</entry> - <entry>必须相同大小</entry> + <entry>尺寸相同</entry> <entry>应用</entry> </row> </thead> @@ -390,7 +391,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <entry>串联 </entry> <entry>1</entry> <entry>可以</entry> - <entry>不可以</entry> + <entry>不必须</entry> <entry>带有很大弹性和适中性能的大数据量存储。 </entry> </row> @@ -399,7 +400,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <entry>分段</entry> <entry>2</entry> <entry>不可以</entry> - <entry>可以</entry> + <entry>必须</entry> <entry>大量并发访问时,具有较高性能。</entry> </row> </tbody> @@ -450,7 +451,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 唯一需要的参数是组织,在这个例子中是 <emphasis>concat</emphasis>. 没有名称是必然的: 系统自动通过添加suffix - <emphasis>.p</emphasis><emphasis>x</emphasis>px + <emphasis>.p</emphasis><emphasis>x</emphasis> 来从卷名称产生一个名字,这里的<emphasis>x</emphasis> 是在卷中的plex 的编号。而这个plex 将被 叫做<emphasis>myvol.p0</emphasis>。</para> @@ -563,8 +564,8 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <sect2> <title>优化性能</title> - <para>恰面例子中的镜像卷要比没有镜像的卷具有更好的容灾能力, - 但它的性能要差一些: 每一次写入卷时, 需要同时写道两个驱动器上, + <para>前面例子中的镜像卷要比没有镜像的卷具有更好的容灾能力, + 但它的性能要差一些: 每一次写入卷时, 需要同时写到两个驱动器上, 因而也就需要更大的磁盘访问带宽。 如果希望非常好的性能, 则需要另外一种方式: 不做镜像, 而将数据分成条带放到尽可能多的、不同的磁盘上。 @@ -666,7 +667,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <title>对象命名</title> <para>如前面所描述的那样, Vinum 会给 plex 和子盘指定默认的名字, - 而这些名字也是可以定制的。 不推荐盖面默认的名字: + 而这些名字也是可以定制的。 不推荐修改默认的名字: 使用允许给对象任意命名的 VERITAS 卷管理器的经验证明, 这一灵活性并没有带来太多的好处, 相反, 它很容易导致对象的混淆。</para> @@ -677,7 +678,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 32 个字符。</para> <para>Vinum 对象会在 - <filename>/dev/gvinum</filename> 之下生成设备接点。 + <filename>/dev/gvinum</filename> 之下生成设备节点。 前述的配置将使 Vinum 创建以下设备节点:</para> <itemizedlist> @@ -705,7 +706,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <note><para>这些内容仅适用于旧式的 Vinum 实现。</para></note> - <para>一个包含每个驱动器对应项的 <filename>/dev/vinum/drive</filename> + <para>一个包含每个驱动器对应设备的 <filename>/dev/vinum/drive</filename> 目录。 这些项事实上是指向对应磁盘节点的符号连接。</para> </listitem> @@ -764,7 +765,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 <para>对于系统而言, 卷和磁盘是一样的。 唯一的例外是, 与 &unix; 驱动器不同, Vinum 并不对卷进行分区, - 因而它也就不包含分区表。 这导致修改了某些磁盘工具, + 因而它也就不包含分区表。 这要求修改某些磁盘工具, 特别是 &man.newfs.8;, 它会试图将 Vinum 卷名当作分区标识。 例如, 磁盘驱动器的名字可能是 <filename>/dev/ad0a</filename> 或 <filename>/dev/da2h</filename>。 @@ -772,7 +773,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。 磁盘上的第一个分区 (<devicename>a</devicename>), 以及第三个 (2) SCSI 磁盘 (<devicename>da</devicename>) 上的第八个分区 (<devicename>h</devicename>)。 - 于此相反, Vinum 卷可能叫做 + 而相比而言, Vinum 卷可能叫做 <filename>/dev/gvinum/concat</filename>, 这个名字和分区名没有什么关系。</para> @@ -1002,13 +1003,13 @@ sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b dr <para>需要注意的是, Vinum 偏移量和尺寸的单位是字节。 它们必须是 512 的整数倍, 才能得到 - <command>disklabel</command> 命令所需的块号。</para> + <command>bsdlabel</command> 命令所需的块号。</para> </step> <step> <para>在每一个根卷成员设备上, 执行命令:</para> - <screen>&prompt.root; <userinput>disklabel -e <replaceable>devname</replaceable></userinput></screen> + <screen>&prompt.root; <userinput>bsdlabel -e <replaceable>devname</replaceable></userinput></screen> <para>这其中, 对于没有 slice (也就是 fdisk) 表的磁盘, <replaceable>devname</replaceable> 必须是磁盘的名字 @@ -1038,7 +1039,7 @@ sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b dr <para>这样, 新的 <literal>"a"</literal> 分区, 将创建并覆盖这一设备上的 Vinum 分区的范围。 - 注意, <command>disklabel</command> 只有在 + 注意, <command>bsdlabel</command> 只有在 Vinum 分区的 fstype 被标记为 <literal>"vinum"</literal> 时, 才允许这样做。</para> </step> @@ -1089,12 +1090,12 @@ Subdisk root.p1.s0: <para>需要注意的值是 <literal>135680</literal>, 也就是偏移量 (相对于 - <filename>/dev/da0h</filename> 分区)。 这相当于 <command>disklabel</command> + <filename>/dev/da0h</filename> 分区)。 这相当于 <command>bsdlabel</command> 记法中的 265 个 512-字节的磁盘块。 类似地, 根卷的尺寸是 245760 个 512-字节的磁盘块。 <filename>/dev/da1h</filename> 中, 包含了根卷的第二个副本, 采用了同样的配置。</para> - <para>这些设备的 disklabel 类似下面的样子:</para> + <para>这些设备的 bsdlabel 类似下面的样子:</para> <screen> ... @@ -1146,7 +1147,7 @@ Subdisk root.p1.s0: <option>-as</option> 会要求内核询问所挂接的根文件系统 (<option>-a</option>), 并使引导过程在单用户模式停止 (<option>-s</option>), 此时根文件系统是以只读方式挂接的。 - 这样, 及时只挂接了多 plex 卷中的一个 plex, + 这样, 即使只挂接了多 plex 卷中的一个 plex, 也不会引致 plex 之间数据不一致的问题。</para> <para>当提示输入要挂接的根文件系统时, @@ -1184,14 +1185,14 @@ Subdisk root.p1.s0: <para>这种情况一般是由于 Vinum 安装过程中破坏了引导程序造成的。 不幸的是, Vinum 目前只在分区开始的地方保留了 4 KB 的空间, 之后就开始写 Vinum 头信息了。 然而, - 目前第一阶段和第二阶段的引导程序, 加上 disklabel + 目前第一阶段和第二阶段的引导程序, 加上 bsdlabel 嵌入的内容则需要 8 KB。 因此, 如果 Vinum 分区从偏移量 0 开始, 而这个 slice 或磁盘能够启动, 则 Vinum 的安装将毁掉引导程序。</para> <para>类似地, 如果从上述情形中恢复, 例如, 从 <quote>Fixit</quote> 盘启动, 并通过 - <command>disklabel -B</command> 按照 <xref + <command>bsdlabel -B</command> 按照 <xref linkend="boot-boot1"> 中介绍的方法来恢复引导程序, 则引导程序会覆盖掉 Vinum 头, 这样 Vinum 也就找不到它的磁盘了。 尽管这并不会真的毁掉 Vinum 的配置数据, 或者 Vinum 卷上的数据, diff --git a/zh_CN.GB2312/books/handbook/x11/chapter.sgml b/zh_CN.GB2312/books/handbook/x11/chapter.sgml index 2ab2097a7b..286efdc011 100644 --- a/zh_CN.GB2312/books/handbook/x11/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/x11/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.172 + Original Revision: 1.173 $FreeBSD$ --> @@ -30,7 +30,7 @@ X11 是一种开放源代码的 X Window 系统实现, 它包括 <application>&xorg;</application> 和 <application>&xfree86;</application>。 &os; 在包括 - &os; 4.11-RELEASE 和 &os; 5.2.1-RELEASE + &os; 5.2.1-RELEASE 在内的版本之前, 都默认安装 <application>&xfree86;</application>, 一种由 &xfree86; Project, Inc. 发布的 X11 服务。 从 &os; 5.3-RELEASE 开始, @@ -579,33 +579,7 @@ EndSection</programlisting> <para>配置Intel i810芯片组的显示卡需要有针对 X11 的能够用来驱动显示卡的 <devicename>agpgart</devicename> AGP程序接口。 - 自从发行版本 4.8-RELEASE 和 5.0-RELEASE 发行以来 &man.agp.4; 驱动程序就包含在 - <filename>GENERIC</filename> 内核配置里面了。 - 在以前的发行版里,您必须要在您的内核配置文件里添加下面的一行:</para> - - <programlisting>device agp</programlisting> - - <para>然后重新编译一个新的内核。 - 或者,您可以在启动的时候使用 &man.loader.8; 自动加载 - <filename>agp.ko</filename> 内核模块。 - 简单的添加下面这行到 - <filename>/boot/loader.conf</filename> 文件里:</para> - - <programlisting>agp_load="YES"</programlisting> - - <para>接下来,如果您正在运行 FreeBSD 4.X 或者更早的版本, - 需要创建一个设备节点作为程序接口。 - 要创建 AGP 设备节点,在 <filename>/dev</filename> 下运行 - &man.MAKEDEV.8;:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>sh MAKEDEV agpgart</userinput></screen> - - <note> - <para>FreeBSD 5.X 和以后的版本会使用 &man.devfs.5; 来半透明的分配 - 设备节点,因此 - &man.MAKEDEV.8; 这一步是不必要的。</para> - </note> + 请参见 &man.agp.4; 驱动程序的联机手册了解更多细节。</para> <para>这也适用于其他的图形卡硬件配置。 注意如果系统没有将 &man.agp.4; |