diff options
Diffstat (limited to 'zh_TW.UTF-8/books/handbook')
-rw-r--r-- | zh_TW.UTF-8/books/handbook/Makefile | 174 | ||||
-rw-r--r-- | zh_TW.UTF-8/books/handbook/zh_TW.po | 100544 |
2 files changed, 100553 insertions, 165 deletions
diff --git a/zh_TW.UTF-8/books/handbook/Makefile b/zh_TW.UTF-8/books/handbook/Makefile index 99d75e5e6f..6adfe8a20a 100644 --- a/zh_TW.UTF-8/books/handbook/Makefile +++ b/zh_TW.UTF-8/books/handbook/Makefile @@ -3,16 +3,6 @@ # # Build the FreeBSD Handbook (Traditional Chinese). # -# Original revision: r46480 -# - -# ------------------------------------------------------------------------ -# To add a new chapter to the Handbook: -# -# - Update this Makefile, chapters.ent and book.xml -# - Add a descriptive entry for the new chapter in preface/preface.xml -# -# ------------------------------------------------------------------------ .PATH: ${.CURDIR}/../../share/xml/glossary @@ -25,12 +15,20 @@ FORMATS?= html-split INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= +# English images +# as these are translated, move them from IMAGES_EN to IMAGES IMAGES_EN = advanced-networking/isdn-bus.eps IMAGES_EN+= advanced-networking/isdn-twisted-pair.eps IMAGES_EN+= advanced-networking/natd.eps IMAGES_EN+= advanced-networking/net-routing.pic IMAGES_EN+= advanced-networking/pxe-nfs.png IMAGES_EN+= advanced-networking/static-routes.pic +IMAGES_EN+= basics/disk-layout.eps +IMAGES_EN+= basics/example-dir1.eps +IMAGES_EN+= basics/example-dir2.eps +IMAGES_EN+= basics/example-dir3.eps +IMAGES_EN+= basics/example-dir4.eps +IMAGES_EN+= basics/example-dir5.eps IMAGES_EN+= bsdinstall/bsdinstall-adduser1.png IMAGES_EN+= bsdinstall/bsdinstall-adduser2.png IMAGES_EN+= bsdinstall/bsdinstall-adduser3.png @@ -87,71 +85,6 @@ IMAGES_EN+= bsdinstall/bsdinstall-zfs-vdev_invalid.png IMAGES_EN+= bsdinstall/bsdinstall-zfs-vdev_type.png IMAGES_EN+= bsdinstall/bsdinstall-zfs-warning.png IMAGES_EN+= geom/striping.pic -IMAGES_EN+= install/adduser1.scr -IMAGES_EN+= install/adduser2.scr -IMAGES_EN+= install/adduser3.scr -IMAGES_EN+= install/boot-loader-menu.scr -IMAGES_EN+= install/boot-mgr.scr -IMAGES_EN+= install/config-country.scr -IMAGES_EN+= install/config-keymap.scr -IMAGES_EN+= install/console-saver1.scr -IMAGES_EN+= install/console-saver2.scr -IMAGES_EN+= install/console-saver3.scr -IMAGES_EN+= install/console-saver4.scr -IMAGES_EN+= install/disklabel-auto.scr -IMAGES_EN+= install/disklabel-ed1.scr -IMAGES_EN+= install/disklabel-ed2.scr -IMAGES_EN+= install/disklabel-fs.scr -IMAGES_EN+= install/disklabel-root1.scr -IMAGES_EN+= install/disklabel-root2.scr -IMAGES_EN+= install/disklabel-root3.scr -IMAGES_EN+= install/disk-layout.eps -IMAGES_EN+= install/dist-set.scr -IMAGES_EN+= install/dist-set2.scr -IMAGES_EN+= install/docmenu1.scr -IMAGES_EN+= install/ed0-conf.scr -IMAGES_EN+= install/ed0-conf2.scr -IMAGES_EN+= install/edit-inetd-conf.scr -IMAGES_EN+= install/fdisk-drive1.scr -IMAGES_EN+= install/fdisk-drive2.scr -IMAGES_EN+= install/fdisk-edit1.scr -IMAGES_EN+= install/fdisk-edit2.scr -IMAGES_EN+= install/ftp-anon1.scr -IMAGES_EN+= install/ftp-anon2.scr -IMAGES_EN+= install/hdwrconf.scr -IMAGES_EN+= install/keymap.scr -IMAGES_EN+= install/main1.scr -IMAGES_EN+= install/mainexit.scr -IMAGES_EN+= install/main-std.scr -IMAGES_EN+= install/main-options.scr -IMAGES_EN+= install/main-doc.scr -IMAGES_EN+= install/main-keymap.scr -IMAGES_EN+= install/media.scr -IMAGES_EN+= install/mouse1.scr -IMAGES_EN+= install/mouse2.scr -IMAGES_EN+= install/mouse3.scr -IMAGES_EN+= install/mouse4.scr -IMAGES_EN+= install/mouse5.scr -IMAGES_EN+= install/mouse6.scr -IMAGES_EN+= install/mta-main.scr -IMAGES_EN+= install/net-config-menu1.scr -IMAGES_EN+= install/net-config-menu2.scr -IMAGES_EN+= install/nfs-server-edit.scr -IMAGES_EN+= install/ntp-config.scr -IMAGES_EN+= install/options.scr -IMAGES_EN+= install/pkg-cat.scr -IMAGES_EN+= install/pkg-confirm.scr -IMAGES_EN+= install/pkg-install.scr -IMAGES_EN+= install/pkg-sel.scr -IMAGES_EN+= install/probstart.scr -IMAGES_EN+= install/routed.scr -IMAGES_EN+= install/security.scr -IMAGES_EN+= install/sysinstall-exit.scr -IMAGES_EN+= install/timezone1.scr -IMAGES_EN+= install/timezone2.scr -IMAGES_EN+= install/timezone3.scr -IMAGES_EN+= install/userconfig.scr -IMAGES_EN+= install/userconfig2.scr IMAGES_EN+= mail/mutt1.scr IMAGES_EN+= mail/mutt2.scr IMAGES_EN+= mail/mutt3.scr @@ -160,12 +93,6 @@ IMAGES_EN+= mail/pine2.scr IMAGES_EN+= mail/pine3.scr IMAGES_EN+= mail/pine4.scr IMAGES_EN+= mail/pine5.scr - -IMAGES_EN+= install/example-dir1.eps -IMAGES_EN+= install/example-dir2.eps -IMAGES_EN+= install/example-dir3.eps -IMAGES_EN+= install/example-dir4.eps -IMAGES_EN+= install/example-dir5.eps IMAGES_EN+= security/ipsec-network.pic IMAGES_EN+= security/ipsec-crypt-pkt.pic IMAGES_EN+= security/ipsec-encap-pkt.pic @@ -226,95 +153,12 @@ IMAGES_LIB+= callouts/13.png IMAGES_LIB+= callouts/14.png IMAGES_LIB+= callouts/15.png -# -# SRCS lists the individual XML files that make up the document. Changes -# to any of these files will force a rebuild -# - # XML content -SRCS+= audit/chapter.xml -SRCS+= book.xml -SRCS+= bsdinstall/chapter.xml -SRCS+= colophon.xml -SRCS+= dtrace/chapter.xml -SRCS+= advanced-networking/chapter.xml -SRCS+= basics/chapter.xml -SRCS+= bibliography/chapter.xml -SRCS+= boot/chapter.xml -SRCS+= config/chapter.xml -SRCS+= cutting-edge/chapter.xml -SRCS+= desktop/chapter.xml -SRCS+= disks/chapter.xml -SRCS+= eresources/chapter.xml -SRCS+= firewalls/chapter.xml -SRCS+= zfs/chapter.xml -SRCS+= filesystems/chapter.xml -SRCS+= geom/chapter.xml -SRCS+= install/chapter.xml -SRCS+= introduction/chapter.xml -SRCS+= jails/chapter.xml -SRCS+= kernelconfig/chapter.xml -SRCS+= l10n/chapter.xml -SRCS+= linuxemu/chapter.xml -SRCS+= mac/chapter.xml -SRCS+= mail/chapter.xml -SRCS+= mirrors/chapter.xml -SRCS+= multimedia/chapter.xml -SRCS+= network-servers/chapter.xml -SRCS+= pgpkeys/chapter.xml -SRCS+= ports/chapter.xml -SRCS+= ppp-and-slip/chapter.xml -SRCS+= preface/preface.xml -SRCS+= printing/chapter.xml -SRCS+= security/chapter.xml -SRCS+= serialcomms/chapter.xml -SRCS+= virtualization/chapter.xml -SRCS+= x11/chapter.xml - -# Entities -SRCS+= chapters.ent +SRCS= book.xml SYMLINKS= ${DESTDIR} index.html handbook.html -# Turn on all the chapters. -CHAPTERS?= ${SRCS:M*chapter.xml} - -XMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./} -XMLFLAGS+= -i chap.freebsd-glossary - URL_RELPREFIX?= ../../../.. DOC_PREFIX?= ${.CURDIR}/../../.. -# -# rules generating lists of mirror site from XML database. -# -XMLDOCS= lastmod:::mirrors.lastmod.inc \ - mirrors-ftp-index:::mirrors.xml.ftp.index.inc \ - mirrors-ftp:::mirrors.xml.ftp.inc \ - eresources-index:::eresources.xml.www.index.inc \ - eresources:::eresources.xml.www.inc -DEPENDSET.DEFAULT= transtable mirror -XSLT.DEFAULT= ${XSL_MIRRORS} -XML.DEFAULT= ${XML_MIRRORS} - -PARAMS.lastmod+= --param 'target' "'lastmod'" -PARAMS.mirrors-ftp-index+= --param 'type' "'ftp'" \ - --param 'proto' "'ftp'" \ - --param 'target' "'index'" -PARAMS.mirrors-ftp+= --param 'type' "'ftp'" \ - --param 'proto' "'ftp'" \ - --param 'target' "'handbook/mirrors/chapter.xml'" -PARAMS.eresources-index+= --param 'type' "'www'" \ - --param 'proto' "'http'" \ - --param 'target' "'index'" -PARAMS.eresources+= --param 'type' "'www'" \ - --param 'proto' "'http'" \ - --param 'target' "'handbook/eresources/chapter.xml'" - -SRCS+= mirrors.lastmod.inc \ - mirrors.xml.ftp.inc \ - mirrors.xml.ftp.index.inc \ - eresources.xml.www.inc \ - eresources.xml.www.index.inc - .include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/zh_TW.UTF-8/books/handbook/zh_TW.po b/zh_TW.UTF-8/books/handbook/zh_TW.po new file mode 100644 index 0000000000..a1643c1a5d --- /dev/null +++ b/zh_TW.UTF-8/books/handbook/zh_TW.po @@ -0,0 +1,100544 @@ +# $FreeBSD$ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2016-06-30 10:46+0800\n" +"PO-Revision-Date: 2016-06-29 21:10+0800\n" +"Last-Translator: Chien Wei Lin <cwlin0416@gmail.com>\n" +"Language-Team: \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.8\n" + +#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2 +msgctxt "_" +msgid "translator-credits" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:589 +msgid "FreeBSD Handbook" +msgstr "FreeBSD 使用手冊" + +#. (itstool) path: info/author +#: book.translate.xml:591 +msgid "<orgname>The FreeBSD Documentation Project</orgname>" +msgstr "<orgname>FreeBSD 文件計劃</orgname>" + +#. (itstool) path: info/pubdate +#. (itstool) path: info/releaseinfo +#: book.translate.xml:595 book.translate.xml:597 +msgid "" +"$FreeBSD: head/en_US.ISO8859-1/books/handbook/book.xml 48108 2016-01-28 " +"02:09:41Z wblock $" +msgstr "" + +#. (itstool) path: info/copyright +#: book.translate.xml:599 +msgid "" +"<year>1995</year> <year>1996</year> <year>1997</year> <year>1998</year> " +"<year>1999</year> <year>2000</year> <year>2001</year> <year>2002</year> " +"<year>2003</year> <year>2004</year> <year>2005</year> <year>2006</year> " +"<year>2007</year> <year>2008</year> <year>2009</year> <year>2010</year> " +"<year>2011</year> <year>2012</year> <year>2013</year> <year>2014</year> " +"<year>2015</year> <holder>The FreeBSD Documentation Project</holder>" +msgstr "" + +#. (itstool) path: legalnotice/title +#: book.translate.xml:626 +msgid "Copyright" +msgstr "版權" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:628 +msgid "" +"Redistribution and use in source (XML DocBook) and 'compiled' forms (XML, " +"HTML, PDF, PostScript, RTF and so forth) with or without modification, are " +"permitted provided that the following conditions are met:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:635 +msgid "" +"Redistributions of source code (XML DocBook) must retain the above copyright " +"notice, this list of conditions and the following disclaimer as the first " +"lines of this file unmodified." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:641 +msgid "" +"Redistributions in compiled form (transformed to other DTDs, converted to " +"PDF, PostScript, RTF and other formats) must reproduce the above copyright " +"notice, this list of conditions and the following disclaimer in the " +"documentation and/or other materials provided with the distribution." +msgstr "" + +#. (itstool) path: important/para +#: book.translate.xml:650 +msgid "" +"THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT \"AS IS" +"\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE " +"IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE " +"ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE " +"LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR " +"CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF " +"SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS " +"INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN " +"CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) " +"ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF " +"THE POSSIBILITY OF SUCH DAMAGE." +msgstr "" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:667 +msgid "FreeBSD is a registered trademark of the FreeBSD Foundation." +msgstr "FreeBSD 是 FreeBSD 基金會的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:669 +msgid "3Com and HomeConnect are registered trademarks of 3Com Corporation." +msgstr "3Com 和 HomeConnect 是 3Com Corporation 的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:671 +msgid "3ware is a registered trademark of 3ware Inc." +msgstr "3ware 是 3ware Inc 的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:673 +msgid "ARM is a registered trademark of ARM Limited." +msgstr "ARM 是 ARM Limited. 的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:675 +msgid "Adaptec is a registered trademark of Adaptec, Inc." +msgstr "Adaptec 是 Adaptec, Inc. 的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:677 +msgid "" +"Adobe, Acrobat, Acrobat Reader, Flash and PostScript are either registered " +"trademarks or trademarks of Adobe Systems Incorporated in the United States " +"and/or other countries." +msgstr "" +"Adobe, Acrobat, Acrobat Reader, Flash 以及 PostScript 是 Adobe Systems " +"Incorporated 在美國和/或其他國家的商標或註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:681 +msgid "" +"Apple, AirPort, FireWire, iMac, iPhone, iPad, Mac, Macintosh, Mac OS, " +"Quicktime, and TrueType are trademarks of Apple Inc., registered in the U.S. " +"and other countries." +msgstr "" +"Apple, AirPort, FireWire, iMac, iPhone, iPad, Mac, Macintosh, Mac OS, " +"Quicktime 以及 TrueType 是 Apple Inc. 在美國以及其他國家的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:686 +msgid "Android is a trademark of Google Inc." +msgstr "Android 是 Google Inc 的商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:688 +msgid "" +"Heidelberg, Helvetica, Palatino, and Times Roman are either registered " +"trademarks or trademarks of Heidelberger Druckmaschinen AG in the U.S. and " +"other countries." +msgstr "" +"Heidelberg, Helvetica, Palatino 以及 Times Roman 是 Heidelberger " +"Druckmaschinen AG 在美國以及其他國家的商標或註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:692 +msgid "" +"IBM, AIX, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of " +"International Business Machines Corporation in the United States, other " +"countries, or both." +msgstr "" +"IBM, AIX, OS/2, PowerPC, PS/2, S/390 以及 ThinkPad 是 International Business " +"Machines Corporation 在美國和其他國家的商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:696 +msgid "" +"IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical " +"and Electronics Engineers, Inc. in the United States." +msgstr "" +"IEEE, POSIX 以及 802 是 Institute of Electrical and Electronics Engineers, " +"Inc. 在美國的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:699 +msgid "" +"Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium, Pentium, " +"and Xeon are trademarks or registered trademarks of Intel Corporation or its " +"subsidiaries in the United States and other countries." +msgstr "" +"Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium, Pentium 以" +"及 Xeon 是 Intel Corporation 及其分支機構在美國和其他國家的商標或註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:703 +msgid "" +"Intuit and Quicken are registered trademarks and/or registered service marks " +"of Intuit Inc., or one of its subsidiaries, in the United States and other " +"countries." +msgstr "" +"Intuit 和 Quicken 是 Intuit Inc., 或其子公司在美國和其他國家的商標或註冊商" +"標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:706 +msgid "Linux is a registered trademark of Linus Torvalds." +msgstr "Linux 是 Linus Torvalds 的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:708 +msgid "" +"LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID and Mylex are trademarks or " +"registered trademarks of LSI Logic Corp." +msgstr "" +"LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID 以及 Mylex 是 LSI Logic Corp 的" +"商標或註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:711 +msgid "" +"Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows " +"NT are either registered trademarks or trademarks of Microsoft Corporation " +"in the United States and/or other countries." +msgstr "" +"Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media 以及 " +"Windows NT 是 Microsoft Corporation 在美國和/或其他國家的商標或註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:715 +msgid "" +"Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The " +"Open Group are trademarks of The Open Group in the United States and other " +"countries." +msgstr "" +"Motif, OSF/1 以及 UNIX 是 The Open Group 在美國和其他國家的註冊商標; IT " +"DialTone 和 The Open Group 是其商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:719 +msgid "Oracle is a registered trademark of Oracle Corporation." +msgstr "Oracle 是 Oracle Corporation 的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:721 +msgid "" +"RealNetworks, RealPlayer, and RealAudio are the registered trademarks of " +"RealNetworks, Inc." +msgstr "" +"RealNetworks, RealPlayer, 和 RealAudio 是 RealNetworks, Inc. 的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:724 +msgid "" +"Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in " +"the United States and other countries." +msgstr "Red Hat, RPM, 是 Red Hat, Inc. 在美國和其他國家的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:727 +msgid "" +"Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JRE, JSP, JVM, " +"Netra, OpenJDK, Solaris, StarOffice, SunOS and VirtualBox are trademarks or " +"registered trademarks of Sun Microsystems, Inc. in the United States and " +"other countries." +msgstr "" +"Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JRE, JSP, JVM, " +"Netra, OpenJDK, Solaris, StarOffice, SunOS 以及 VirtualBox 是 Sun " +"Microsystems, Inc. 在美國和其他國家的商標或註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:732 +msgid "MATLAB is a registered trademark of The MathWorks, Inc." +msgstr "MATLAB 是 The MathWorks, Inc. 的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:734 +msgid "SpeedTouch is a trademark of Thomson." +msgstr "SpeedTouch 是 Thomson 的商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:736 +msgid "VMware is a trademark of VMware, Inc." +msgstr "VMware 是 VMware, Inc. 的商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:738 +msgid "Mathematica is a registered trademark of Wolfram Research, Inc." +msgstr "Mathematica 是 Wolfram Research, Inc 的註冊商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:740 +msgid "XFree86 is a trademark of The XFree86 Project, Inc." +msgstr "XFree86 是 The XFree86 Project, Inc 的商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:742 +msgid "Ogg Vorbis and Xiph.Org are trademarks of Xiph.Org." +msgstr "Ogg Vorbis 以及 Xiph.Org 是 Xiph.Org 的商標。" + +#. (itstool) path: legalnotice/para +#: book.translate.xml:744 +msgid "" +"Many of the designations used by manufacturers and sellers to distinguish " +"their products are claimed as trademarks. Where those designations appear in " +"this document, and the FreeBSD Project was aware of the trademark claim, the " +"designations have been followed by the <quote>™</quote> or the <quote>®</" +"quote> symbol." +msgstr "" +"許多製造商和經銷商使用一些稱為商標的圖案或文字設計來區別自己的產品。 本文件中" +"出現的眾多商標,以及 FreeBSD Project 本身廣所人知的商標,後面將以 <quote>™</" +"quote> 或 <quote>®</quote> 符號來標示。" + +#. (itstool) path: abstract/para +#: book.translate.xml:753 +msgid "" +"Welcome to FreeBSD! This handbook covers the installation and day to day use " +"of <emphasis>FreeBSD 9.3-RELEASE</emphasis> and <emphasis>FreeBSD 10.3-" +"RELEASE</emphasis>. This book is the result of ongoing work by many " +"individuals. Some sections might be outdated. Those interested in helping to " +"update and expand this document should send email to the <link xlink:href=" +"\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc\">FreeBSD " +"documentation project mailing list</link>." +msgstr "" +"歡迎使用 FreeBSD! 本使用手冊涵蓋範圍包括了 <emphasis>FreeBSD 9.3-RELEASE</" +"emphasis> 與 <emphasis>FreeBSD 10.3-RELEASE</emphasis>。 這份使用手冊是很多人" +"的集體創作,而且仍然『持續不斷』的進行中。 許多章節仍未完成,已完成的部份也有" +"些需要更新。 如果您有興趣協助本計畫的話,請寄電子郵件至 <link xlink:href=" +"\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc\">FreeBSD 文件專案郵" +"遞論壇</link>。" + +#. (itstool) path: abstract/para +#: book.translate.xml:761 +msgid "" +"The latest version of this book is available from the <link xlink:href=" +"\"http://www.FreeBSD.org/\">FreeBSD web site</link>. Previous versions can " +"be obtained from <uri xlink:href=\"http://docs.FreeBSD.org/doc/\">http://" +"docs.FreeBSD.org/doc/</uri>. The book can be downloaded in a variety of " +"formats and compression options from the <link xlink:href=\"ftp://ftp." +"FreeBSD.org/pub/FreeBSD/doc/\">FreeBSD FTP server</link> or one of the " +"numerous <link linkend=\"mirrors-ftp\">mirror sites</link>. Printed copies " +"can be purchased at the <link xlink:href=\"http://www.freebsdmall.com/" +"\">FreeBSD Mall</link>. Searches can be performed on the handbook and other " +"documents on the <link xlink:href=\"@@URL_RELPREFIX@@/search/index.html" +"\">search page</link>." +msgstr "" +"在 <link xlink:href=\"http://www.FreeBSD.org/\">FreeBSD 網站</link> 可以找到" +"這份文件的最新版本,舊版文件可從 <uri xlink:href=\"http://docs.FreeBSD.org/" +"doc/\">http://docs.FreeBSD.org/doc/</uri> 取得,也可以從 <link xlink:href=" +"\"ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/\">FreeBSD FTP 伺服器</link> 或是眾" +"多 <link linkend=\"mirrors-ftp\">鏡像網站</link> 下載不同格式的資料。 如果比" +"較偏好實體書面資料,那可以在 <link xlink:href=\"http://www.freebsdmall.com/" +"\">FreeBSD 商城</link> 購買。 此外,您可在 <link xlink:href=" +"\"@@URL_RELPREFIX@@/search/index.html\">搜尋頁面</link> 中搜尋本文件或其他文" +"件的資料。" + +#. (itstool) path: preface/title +#: book.translate.xml:782 +msgid "Preface" +msgstr "序" + +#. (itstool) path: preface/bridgehead +#. (itstool) id: book.translate.xml#preface-audience +#: book.translate.xml:784 +msgid "Intended Audience" +msgstr "給讀者的話" + +#. (itstool) path: preface/para +#: book.translate.xml:787 +msgid "" +"The FreeBSD newcomer will find that the first section of this book guides " +"the user through the FreeBSD installation process and gently introduces the " +"concepts and conventions that underpin <trademark class=\"registered\">UNIX</" +"trademark>. Working through this section requires little more than the " +"desire to explore, and the ability to take on board new concepts as they are " +"introduced." +msgstr "" +"若您是第一次接觸 FreeBSD 的新手,可以在本書第一部分找到 FreeBSD 的安裝方法," +"同時會逐步介紹 <trademark class=\"registered\">UNIX</trademark> 的基礎概念與" +"一些常用、共通的東西。而閱讀這部分並不難,只需要您有探索的精神和接受新概念。" + +#. (itstool) path: preface/para +#: book.translate.xml:794 +msgid "" +"Once you have traveled this far, the second, far larger, section of the " +"Handbook is a comprehensive reference to all manner of topics of interest to " +"FreeBSD system administrators. Some of these chapters may recommend that you " +"do some prior reading, and this is noted in the synopsis at the beginning of " +"each chapter." +msgstr "" +"讀完這些之後,手冊中的第二部分花很長篇幅介紹的各種廣泛主題,相當值得系統管理" +"者去注意。 在閱讀這些章節的內容時所需要的背景知識,都註釋在該章的大綱裡面,若" +"不熟的話,可在閱讀前先預習一番。" + +#. (itstool) path: preface/para +#: book.translate.xml:801 +msgid "" +"For a list of additional sources of information, please see <xref linkend=" +"\"bibliography\"/>." +msgstr "延伸閱讀方面,可參閱 <xref linkend=\"bibliography\"/>。" + +#. (itstool) path: preface/bridgehead +#. (itstool) id: book.translate.xml#preface-changes-from3 +#: book.translate.xml:804 +msgid "Changes from the Third Edition" +msgstr "自第三版後的主要修訂" + +#. (itstool) path: preface/para +#: book.translate.xml:807 +msgid "" +"The current online version of the Handbook represents the cumulative effort " +"of many hundreds of contributors over the past 10 years. The following are " +"some of the significant changes since the two volume third edition was " +"published in 2004:" +msgstr "" +"您目前看到的這本手冊代表著上百位貢獻者歷時 10 年所累積的心血之作。以下為自 " +"2014 年發佈的兩冊第三版後所做的主要修訂:" + +#. (itstool) path: listitem/para +#: book.translate.xml:814 +msgid "" +"<xref linkend=\"dtrace\"/> has been added with information about the " +"powerful DTrace performance analysis tool." +msgstr "" +"<xref linkend=\"dtrace\"/> 增加說明有關強大的 DTrace 效能分析工具的資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:819 +msgid "" +"<xref linkend=\"filesystems\"/> has been added with information about non-" +"native file systems in FreeBSD, such as ZFS from <trademark>Sun</trademark>." +msgstr "" +"<xref linkend=\"filesystems\"/> 增加有關 FreeBSD 非原生檔案系統的資訊,如:來" +"自 <trademark>Sun</trademark> 的 ZSF。" + +#. (itstool) path: listitem/para +#: book.translate.xml:825 +msgid "" +"<xref linkend=\"audit\"/> has been added to cover the new auditing " +"capabilities in FreeBSD and explain its use." +msgstr "" +"<xref linkend=\"audit\"/> 增加的內容涵蓋 FreeBSD 的新稽查功能及其使用說明。" + +#. (itstool) path: listitem/para +#: book.translate.xml:830 +msgid "" +"<xref linkend=\"virtualization\"/> has been added with information about " +"installing FreeBSD on virtualization software." +msgstr "" +"<xref linkend=\"virtualization\"/> 增加有關在虛擬化軟體安裝 FreeBSD 的資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:836 +msgid "" +"<xref linkend=\"bsdinstall\"/> has been added to cover installation of " +"FreeBSD using the new installation utility, <application>bsdinstall</" +"application>." +msgstr "" +"<xref linkend=\"bsdinstall\"/> 增加的內容涵蓋使用新安裝工具 " +"<application>bsdinstall</application> 來安裝 FreeBSD。" + +#. (itstool) path: preface/bridgehead +#. (itstool) id: book.translate.xml#preface-changes-from2 +#: book.translate.xml:842 +msgid "Changes from the Second Edition (2004)" +msgstr "自第二版後的主要修訂 (2004)" + +#. (itstool) path: preface/para +#: book.translate.xml:845 +msgid "" +"The third edition was the culmination of over two years of work by the " +"dedicated members of the FreeBSD Documentation Project. The printed edition " +"grew to such a size that it was necessary to publish as two separate " +"volumes. The following are the major changes in this new edition:" +msgstr "" +"您目前看到的這本手冊第三版是 FreeBSD 文件計劃的成員歷時兩年完成的心血之作。因" +"文件內容成長到一定大小,印刷版需要分成兩冊發佈。新版的主要修訂部分如下:" + +#. (itstool) path: listitem/para +#: book.translate.xml:853 +msgid "" +"<xref linkend=\"config-tuning\"/> has been expanded with new information " +"about the ACPI power and resource management, the <command>cron</command> " +"system utility, and more kernel tuning options." +msgstr "" +"<xref linkend=\"config-tuning\"/> 已針對新內容作更新,如:ACPI 電源管理、" +"<command>cron</command> 以及其他更多的核心調校選項說明內容。" + +#. (itstool) path: listitem/para +#: book.translate.xml:860 +msgid "" +"<xref linkend=\"security\"/> has been expanded with new information about " +"virtual private networks (VPNs), file system access control lists (ACLs), " +"and security advisories." +msgstr "" +"<xref linkend=\"security\"/> 增加了虛擬私人網路(VPN)、檔案系統的存取控制" +"(ACL),以及安全報告。" + +#. (itstool) path: listitem/para +#: book.translate.xml:866 +msgid "" +"<xref linkend=\"mac\"/> is a new chapter with this edition. It explains what " +"MAC is and how this mechanism can be used to secure a FreeBSD system." +msgstr "" +"<xref linkend=\"mac\"/> 是此版本新增的章節。該章介紹:什麼是 MAC 機制?以及如" +"何運用它來使您的 FreeBSD 系統更安全。" + +#. (itstool) path: listitem/para +#: book.translate.xml:872 +msgid "" +"<xref linkend=\"disks\"/> has been expanded with new information about USB " +"storage devices, file system snapshots, file system quotas, file and network " +"backed filesystems, and encrypted disk partitions." +msgstr "" +"<xref linkend=\"disks\"/> 新增了像是:USB 隨身碟、檔案系統快照(snapshot)、檔" +"案系統配額(quota) 、檔案及網路的備援檔案系統、以及如何對硬碟分割區作加密等詳" +"解。" + +#. (itstool) path: listitem/para +#: book.translate.xml:879 +msgid "" +"A troubleshooting section has been added to <xref linkend=\"ppp-and-slip\"/>." +msgstr "<xref linkend=\"ppp-and-slip\"/> 增加了疑難排解的章節。" + +#. (itstool) path: listitem/para +#: book.translate.xml:883 +msgid "" +"<xref linkend=\"mail\"/> has been expanded with new information about using " +"alternative transport agents, SMTP authentication, UUCP, " +"<application>fetchmail</application>, <application>procmail</application>, " +"and other advanced topics." +msgstr "" +"<xref linkend=\"mail\"/> 新增有關如何使用其它的傳輸代理程式、SMTP 認證、" +"UUCP、<application>fetchmail</application>、<application>procmail</" +"application> 的運用以及其它進階主題。" + +#. (itstool) path: listitem/para +#: book.translate.xml:891 +msgid "" +"<xref linkend=\"network-servers\"/> is all new with this edition. This " +"chapter includes information about setting up the <application>Apache HTTP " +"Server</application>, <application>ftpd</application>, and setting up a " +"server for <trademark class=\"registered\">Microsoft</trademark> <trademark " +"class=\"registered\">Windows</trademark> clients with <application>Samba</" +"application>. Some sections from <xref linkend=\"advanced-networking\"/> " +"were moved here to improve the presentation." +msgstr "" +"<xref linkend=\"network-servers\"/> 是該版中全新的一章。這一章介紹了如何架設 " +"<application>Apache HTTP 伺服器</application>、<application>ftpd</" +"application> 以及用於支援 <trademark class=\"registered\">Microsoft</" +"trademark> <trademark class=\"registered\">Windows</trademark> 客戶端的 " +"<application>Samba</application>。其中有些段落來自原先的 <xref linkend=" +"\"advanced-networking\"/> 。" + +#. (itstool) path: listitem/para +#: book.translate.xml:901 +msgid "" +"<xref linkend=\"advanced-networking\"/> has been expanded with new " +"information about using <trademark class=\"registered\">Bluetooth</" +"trademark> devices with FreeBSD, setting up wireless networks, and " +"Asynchronous Transfer Mode (ATM) networking." +msgstr "" +"<xref linkend=\"advanced-networking\"/> 新增有關在 FreeBSD 中使用<trademark " +"class=\"registered\">藍牙</trademark>裝置、設定無線網路以及使用非同步傳輸模" +"式 (Asynchronous Transfer Mode, ATM) 網路的介紹。" + +#. (itstool) path: listitem/para +#: book.translate.xml:908 +msgid "" +"A glossary has been added to provide a central location for the definitions " +"of technical terms used throughout the book." +msgstr "增加詞彙表,用以說明全書中出現的術語。" + +#. (itstool) path: listitem/para +#: book.translate.xml:914 +msgid "" +"A number of aesthetic improvements have been made to the tables and figures " +"throughout the book." +msgstr "重新美編書中所列的圖表。" + +#. (itstool) path: preface/bridgehead +#. (itstool) id: book.translate.xml#preface-changes +#: book.translate.xml:919 +msgid "Changes from the First Edition (2001)" +msgstr "自第一版後的主要修訂 (2001)" + +#. (itstool) path: preface/para +#: book.translate.xml:922 +msgid "" +"The second edition was the culmination of over two years of work by the " +"dedicated members of the FreeBSD Documentation Project. The following were " +"the major changes in this edition:" +msgstr "" +"本手冊的第二版是 FreeBSD 文件計劃的成員歷時兩年完成的心血之作。第二版包的主要" +"變動如下︰" + +#. (itstool) path: listitem/para +#: book.translate.xml:930 +msgid "A complete Index has been added." +msgstr "增加完整的目錄索引。" + +#. (itstool) path: listitem/para +#: book.translate.xml:934 +msgid "All ASCII figures have been replaced by graphical diagrams." +msgstr "所有的 ASCII 圖表均改成圖檔格式的圖表。" + +#. (itstool) path: listitem/para +#: book.translate.xml:939 +msgid "" +"A standard synopsis has been added to each chapter to give a quick summary " +"of what information the chapter contains, and what the reader is expected to " +"know." +msgstr "每個章節均加入概述,以便快速的瀏覽該章節內容摘要、讀者所欲了解的部分。" + +#. (itstool) path: listitem/para +#: book.translate.xml:945 +msgid "" +"The content has been logically reorganized into three parts: <quote>Getting " +"Started</quote>, <quote>System Administration</quote>, and " +"<quote>Appendices</quote>." +msgstr "" +"內容架構重新組織成三大部分: <quote>入門</quote>、<quote>系統管理</quote> 以" +"及 <quote>附錄</quote>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:952 +msgid "" +"<xref linkend=\"basics\"/> has been expanded to contain additional " +"information about processes, daemons, and signals." +msgstr "<xref linkend=\"basics\"/> 新增了程序、Daemon 以及 Signal 的介紹。" + +#. (itstool) path: listitem/para +#: book.translate.xml:958 +msgid "" +"<xref linkend=\"ports\"/> has been expanded to contain additional " +"information about binary package management." +msgstr "<xref linkend=\"ports\"/> 新增了介紹如何管理 binary 套件的資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:964 +msgid "" +"<xref linkend=\"x11\"/> has been completely rewritten with an emphasis on " +"using modern desktop technologies such as <application>KDE</application> and " +"<application>GNOME</application> on <trademark>XFree86</trademark> 4.X." +msgstr "" +"<xref linkend=\"x11\"/> 經過全面改寫,著重於在 <trademark>XFree86</" +"trademark> 4.X 上的現代桌面技術,如: <application>KDE</application> 和 " +"<application>GNOME</application>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:971 +msgid "<xref linkend=\"boot\"/> has been expanded." +msgstr "<xref linkend=\"boot\"/> 更新相關內容。" + +#. (itstool) path: listitem/para +#: book.translate.xml:975 +msgid "" +"<xref linkend=\"disks\"/> has been written from what used to be two separate " +"chapters on <quote>Disks</quote> and <quote>Backups</quote>. We feel that " +"the topics are easier to comprehend when presented as a single chapter. A " +"section on RAID (both hardware and software) has also been added." +msgstr "" +"<xref linkend=\"disks\"/> 分別以兩個章節 <quote>磁碟</quote> 與 <quote>備份</" +"quote> 來撰寫。我們認為這樣子會比單一章節來得容易瞭解。還有關於 RAID (包含硬" +"體、軟體 RAID) 的段落也新增上去了。" + +#. (itstool) path: listitem/para +#: book.translate.xml:984 +msgid "" +"<xref linkend=\"serialcomms\"/> has been completely reorganized and updated " +"for FreeBSD 4.X/5.X." +msgstr "" +"<xref linkend=\"serialcomms\"/> 架構重新改寫,並更新至 FreeBSD 4.X/5.X 的內" +"容。" + +#. (itstool) path: listitem/para +#: book.translate.xml:989 +msgid "<xref linkend=\"ppp-and-slip\"/> has been substantially updated." +msgstr "<xref linkend=\"ppp-and-slip\"/> 有相當程度的更新。" + +#. (itstool) path: listitem/para +#: book.translate.xml:994 +msgid "" +"Many new sections have been added to <xref linkend=\"advanced-networking\"/>." +msgstr "<xref linkend=\"advanced-networking\"/> 加入許多新內容。" + +#. (itstool) path: listitem/para +#: book.translate.xml:998 +msgid "" +"<xref linkend=\"mail\"/> has been expanded to include more information about " +"configuring <application>sendmail</application>." +msgstr "" +"<xref linkend=\"mail\"/> 大量新增了設定 <application>sendmail</application> " +"的介紹。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1004 +msgid "" +"<xref linkend=\"linuxemu\"/> has been expanded to include information about " +"installing <application><trademark class=\"registered\">Oracle</trademark></" +"application> and <application><trademark class=\"registered\">SAP</" +"trademark> <trademark class=\"registered\">R/3</trademark></application>." +msgstr "" +"<xref linkend=\"linuxemu\"/> 增加許多有關安裝 <application><trademark class=" +"\"registered\">Oracle</trademark></application> 以及 <application><trademark " +"class=\"registered\">SAP</trademark> <trademark class=\"registered\">R/3</" +"trademark></application> 的介紹。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1011 +msgid "The following new topics are covered in this second edition:" +msgstr "此外,第二版還新加章節,以介紹下列新主題:" + +#. (itstool) path: listitem/para +#: book.translate.xml:1016 +msgid "<xref linkend=\"config-tuning\"/>." +msgstr "<xref linkend=\"config-tuning\"/>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1020 +msgid "<xref linkend=\"multimedia\"/>." +msgstr "<xref linkend=\"multimedia\"/>。" + +#. (itstool) path: preface/bridgehead +#. (itstool) id: book.translate.xml#preface-overview +#: book.translate.xml:1026 +msgid "Organization of This Book" +msgstr "本書架構" + +#. (itstool) path: preface/para +#: book.translate.xml:1028 +msgid "" +"This book is split into five logically distinct sections. The first section, " +"<emphasis>Getting Started</emphasis>, covers the installation and basic " +"usage of FreeBSD. It is expected that the reader will follow these chapters " +"in sequence, possibly skipping chapters covering familiar topics. The second " +"section, <emphasis>Common Tasks</emphasis>, covers some frequently used " +"features of FreeBSD. This section, and all subsequent sections, can be read " +"out of order. Each chapter begins with a succinct synopsis that describes " +"what the chapter covers and what the reader is expected to already know. " +"This is meant to allow the casual reader to skip around to find chapters of " +"interest. The third section, <emphasis>System Administration</emphasis>, " +"covers administration topics. The fourth section, <emphasis>Network " +"Communication</emphasis>, covers networking and server topics. The fifth " +"section contains appendices of reference information." +msgstr "" +"本書主要分為五大部分,第一部份<emphasis>入門</emphasis>:介紹 FreeBSD 的安" +"裝、基本操作。 讀者可根據自己的程度,循序或者跳過一些熟悉的主題來閱讀; 第二" +"部分<emphasis>一般作業</emphasis>:介紹 FreeBSD 常用功能,這部分可以不按順序" +"來讀。 每章前面都會有概述,概述會描述本章節涵蓋的內容和讀者應該已知的, 這主" +"要是讓讀者可以挑喜歡的章節閱讀; 第三部分<emphasis>系統管理</emphasis>:介紹 " +"FreeBSD 老手所感興趣的各種主題部分; 第四部分<emphasis>網路通訊</emphasis>:" +"則包括網路和各式伺服器主題;而第五部分則為附錄包含各種有關 FreeBSD 的資源。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1053 +msgid "" +"Introduces FreeBSD to a new user. It describes the history of the FreeBSD " +"Project, its goals and development model." +msgstr "向新手介紹 FreeBSD。該篇說明了 FreeBSD 計劃的歷史、目標和開發模式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1063 +msgid "" +"Walks a user through the entire installation process of FreeBSD 9." +"<replaceable>x</replaceable> and later using <application>bsdinstall</" +"application>." +msgstr "" +"帶領使用者走一次使用 <application>bsdinstall</application> 在 FreeBSD 9." +"<replaceable>x</replaceable> 及之後版本的完整安裝流程。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1073 +msgid "" +"Covers the basic commands and functionality of the FreeBSD operating system. " +"If you are familiar with <trademark class=\"registered\">Linux</trademark> " +"or another flavor of <trademark class=\"registered\">UNIX</trademark> then " +"you can probably skip this chapter." +msgstr "" +"涵蓋 FreeBSD 作業系統的基礎指令及功能。若您熟悉 <trademark class=\"registered" +"\">Linux</trademark> 或其他類 UNIX® 系統,您則可跳過此章。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1084 +msgid "" +"Covers the installation of third-party software with both FreeBSD's " +"innovative <quote>Ports Collection</quote> and standard binary packages." +msgstr "" +"涵蓋如何使用 FreeBSD 獨創的 <quote>Ports 套件集</quote> 與標準 Binary 套件安" +"裝第三方軟體。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1094 +msgid "" +"Describes the X Window System in general and using X11 on FreeBSD in " +"particular. Also describes common desktop environments such as " +"<application>KDE</application> and <application>GNOME</application>." +msgstr "" +"介紹 X Windows 系統概要及在 FreeBSD 上使用 X11,同時也會介紹常用的桌面環境如 " +"<application>KDE</application> 與 <application>GNOME</application>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1107 +msgid "" +"Lists some common desktop applications, such as web browsers and " +"productivity suites, and describes how to install them on FreeBSD." +msgstr "" +"列出一些常用的桌面應用程式,例如:網頁瀏覽器、辦工工具並介紹如何安裝這些應用" +"程式到 FreeBSD。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1116 +msgid "" +"Shows how to set up sound and video playback support for your system. Also " +"describes some sample audio and video applications." +msgstr "" +"示範如何在您的系統設定音效及影像播放支援,同時會介紹幾個代表性的音訊及視訊應" +"用程式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1126 +msgid "" +"Explains why you might need to configure a new kernel and provides detailed " +"instructions for configuring, building, and installing a custom kernel." +msgstr "說明為何需要設定新的核心並會提供設定、編譯與安裝的詳細操作說明。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1136 +msgid "" +"Describes managing printers on FreeBSD, including information about banner " +"pages, printer accounting, and initial setup." +msgstr "" +"介紹如何在 FreeBSD 管理印表機,包含橫幅頁面、列印帳務以及初始設定等資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1146 +msgid "" +"Describes the <trademark class=\"registered\">Linux</trademark> " +"compatibility features of FreeBSD. Also provides detailed installation " +"instructions for many popular <trademark class=\"registered\">Linux</" +"trademark> applications such as <application><trademark class=\"registered" +"\">Oracle</trademark></application> and <application><trademark class=" +"\"registered\">Mathematica</trademark></application>." +msgstr "" +"介紹 FreeBSD 的 <trademark class=\"registered\">Linux</trademark> 相容性功" +"能,同時提供許多熱門的 <trademark class=\"registered\">Linux</trademark> 應用" +"程式詳細的安裝操作說明,例如 <application><trademark class=\"registered" +"\">Oracle</trademark></application> 及 <application><trademark class=" +"\"registered\">Mathematica</trademark></application>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1160 +msgid "" +"Describes the parameters available for system administrators to tune a " +"FreeBSD system for optimum performance. Also describes the various " +"configuration files used in FreeBSD and where to find them." +msgstr "" +"介紹可供系統管理者用來調校 FreeBSD 系統的可用參數來最佳化效率,同時也介紹 " +"FreeBSD 用到的各種設定檔以及到何處尋找這些設定檔。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1171 +msgid "" +"Describes the FreeBSD boot process and explains how to control this process " +"with configuration options." +msgstr "介紹 FreeBSD 開機流程並說明如何使用設定選項控制開機流程。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1180 +msgid "" +"Describes many different tools available to help keep your FreeBSD system " +"secure, including Kerberos, IPsec and OpenSSH." +msgstr "" +"介紹許多可讓您的 FreeBSD 系統更安全的各種工具,包含 Kerberos, IPsec 及 " +"OpenSSH。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1190 +msgid "" +"Describes the jails framework, and the improvements of jails over the " +"traditional chroot support of FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1199 +msgid "" +"Explains what Mandatory Access Control (MAC) is and how this mechanism can " +"be used to secure a FreeBSD system." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1209 +msgid "" +"Describes what FreeBSD Event Auditing is, how it can be installed, " +"configured, and how audit trails can be inspected or monitored." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1219 +msgid "" +"Describes how to manage storage media and filesystems with FreeBSD. This " +"includes physical disks, RAID arrays, optical and tape media, memory-backed " +"disks, and network filesystems." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1230 +msgid "" +"Describes what the GEOM framework in FreeBSD is and how to configure various " +"supported RAID levels." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1239 +msgid "" +"Examines support of non-native file systems in FreeBSD, like the Z File " +"System from <trademark>Sun</trademark>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1248 +msgid "" +"Describes what virtualization systems offer, and how they can be used with " +"FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1257 +msgid "" +"Describes how to use FreeBSD in languages other than English. Covers both " +"system and application level localization." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1267 +msgid "" +"Explains the differences between FreeBSD-STABLE, FreeBSD-CURRENT, and " +"FreeBSD releases. Describes which users would benefit from tracking a " +"development system and outlines that process. Covers the methods users may " +"take to update their system to the latest security release." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1280 +msgid "" +"Describes how to configure and use the DTrace tool from <trademark>Sun</" +"trademark> in FreeBSD. Dynamic tracing can help locate performance issues, " +"by performing real time system analysis." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1293 +msgid "" +"Explains how to connect terminals and modems to your FreeBSD system for both " +"dial in and dial out connections." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1303 +msgid "Describes how to use PPP to connect to remote systems with FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1312 +msgid "" +"Explains the different components of an email server and dives into simple " +"configuration topics for the most popular mail server software: " +"<application>sendmail</application>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1323 +msgid "" +"Provides detailed instructions and example configuration files to set up " +"your FreeBSD machine as a network filesystem server, domain name server, " +"network information system server, or time synchronization server." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1334 +msgid "" +"Explains the philosophy behind software-based firewalls and provides " +"detailed information about the configuration of the different firewalls " +"available for FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1344 +msgid "" +"Describes many networking topics, including sharing an Internet connection " +"with other computers on your LAN, advanced routing topics, wireless " +"networking, <trademark class=\"registered\">Bluetooth</trademark>, ATM, " +"IPv6, and much more." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1357 +msgid "" +"Lists different sources for obtaining FreeBSD media on CDROM or DVD as well " +"as different sites on the Internet that allow you to download and install " +"FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1367 +msgid "" +"This book touches on many different subjects that may leave you hungry for a " +"more detailed explanation. The bibliography lists many excellent books that " +"are referenced in the text." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1378 +msgid "" +"Describes the many forums available for FreeBSD users to post questions and " +"engage in technical conversations about FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1388 +msgid "Lists the PGP fingerprints of several FreeBSD Developers." +msgstr "" + +#. (itstool) path: preface/bridgehead +#. (itstool) id: book.translate.xml#preface-conv +#: book.translate.xml:1394 +msgid "Conventions used in this book" +msgstr "本書的編排體裁" + +#. (itstool) path: preface/para +#: book.translate.xml:1397 +msgid "" +"To provide a consistent and easy to read text, several conventions are " +"followed throughout the book." +msgstr "為方便閱讀本書,以下是一些本書所遵循的編排體裁:" + +#. (itstool) path: preface/bridgehead +#. (itstool) id: book.translate.xml#preface-conv-typographic +#: book.translate.xml:1400 +msgid "Typographic Conventions" +msgstr "文字編排體裁" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:1404 +msgid "<emphasis>Italic</emphasis>" +msgstr "<emphasis>斜體字</emphasis>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1407 +msgid "" +"An <emphasis>italic</emphasis> font is used for filenames, URLs, emphasized " +"text, and the first usage of technical terms." +msgstr "" +"<emphasis>斜體字</emphasis>用於:檔名、目錄、網址(URL)、 強調語氣、以及第一次" +"提及的技術詞彙。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:1414 +msgid "<literal>Monospace</literal>" +msgstr "<literal>等寬字</literal>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1417 +msgid "" +"A <literal>monospaced</literal> font is used for error messages, commands, " +"environment variables, names of ports, hostnames, user names, group names, " +"device names, variables, and code fragments." +msgstr "" +"<literal>等寬字</literal>用於: 錯誤訊息、指令、環境變數、Port 名稱、主機名" +"稱、帳號、群組、裝置名稱、變數、程式碼等。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:1425 +msgid "<application>Bold</application>" +msgstr "<application>粗體字</application>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1428 +msgid "" +"A <keycap>bold</keycap> font is used for applications, commands, and keys." +msgstr "以<keycap>粗體字</keycap>表示:應用程式、命令、按鍵。" + +#. (itstool) path: preface/bridgehead +#. (itstool) id: book.translate.xml#preface-conv-commands +#: book.translate.xml:1435 +msgid "User Input" +msgstr "使用者輸入" + +#. (itstool) path: preface/para +#: book.translate.xml:1438 +msgid "" +"Keys are shown in <keycap>bold</keycap> to stand out from other text. Key " +"combinations that are meant to be typed simultaneously are shown with " +"`<literal>+</literal>' between the keys, such as:" +msgstr "" +"鍵盤輸入以<keycap>粗體字</keycap>表示,以便與一般文字做區隔。 組合鍵是指同時" +"按下一些按鍵,我們以 `<literal>+</literal>' 來表示連接,像是:" + +#. (itstool) path: preface/para +#: book.translate.xml:1443 +msgid "" +"<keycombo action=\"simul\"> <keycap>Ctrl</keycap> <keycap>Alt</keycap> " +"<keycap>Del</keycap></keycombo>" +msgstr "" + +#. (itstool) path: preface/para +#: book.translate.xml:1449 +msgid "" +"Meaning the user should type the <keycap>Ctrl</keycap>, <keycap>Alt</" +"keycap>, and <keycap>Del</keycap> keys at the same time." +msgstr "" +"是說,一起按 <keycap>Ctrl</keycap>、 <keycap>Alt</keycap> 以及 <keycap>Del</" +"keycap> 鍵。" + +#. (itstool) path: preface/para +#: book.translate.xml:1453 +msgid "" +"Keys that are meant to be typed in sequence will be separated with commas, " +"for example:" +msgstr "若要逐一按鍵,那麼會以逗號(,)來表示,像是:" + +#. (itstool) path: preface/para +#: book.translate.xml:1456 +msgid "" +"<keycombo action=\"simul\"> <keycap>Ctrl</keycap> <keycap>X</keycap> </" +"keycombo>, <keycombo action=\"simul\"> <keycap>Ctrl</keycap> <keycap>S</" +"keycap></keycombo>" +msgstr "" + +#. (itstool) path: preface/para +#: book.translate.xml:1465 +msgid "" +"Would mean that the user is expected to type the <keycap>Ctrl</keycap> and " +"<keycap>X</keycap> keys simultaneously and then to type the <keycap>Ctrl</" +"keycap> and <keycap>S</keycap> keys simultaneously." +msgstr "" +"是說:先同時按下 <keycap>Ctrl</keycap> 與 <keycap>X</keycap> 鍵, 然後放開後" +"再同時按 <keycap>Ctrl</keycap> 與 <keycap>S</keycap> 鍵。" + +#. (itstool) path: preface/bridgehead +#. (itstool) id: book.translate.xml#preface-conv-examples +#: book.translate.xml:1471 +msgid "Examples" +msgstr "範例" + +#. (itstool) path: preface/para +#: book.translate.xml:1473 +msgid "" +"Examples starting with <filename>C:\\></filename> indicate a <trademark " +"class=\"registered\">MS-DOS</trademark> command. Unless otherwise noted, " +"these commands may be executed from a <quote>Command Prompt</quote> window " +"in a modern <trademark class=\"registered\">Microsoft</trademark> <trademark " +"class=\"registered\">Windows</trademark> environment." +msgstr "" +"範例以 <filename>C:\\></filename> 為開頭代表 <trademark class=" +"\"registered\">MS-DOS</trademark> 的指令。 若沒有特殊情況的話,這些指令應該是" +"在 <trademark class=\"registered\">Microsoft</trademark> <trademark class=" +"\"registered\">Windows</trademark> 環境的 <quote>命令提示字元(Command " +"Prompt)</quote> 視窗內執行。" + +#. (itstool) path: preface/screen +#: book.translate.xml:1479 +#, no-wrap +msgid "<prompt>E:\\></prompt> <userinput>tools\\fdimage floppies\\kern.flp A:</userinput>" +msgstr "" + +#. (itstool) path: preface/para +#: book.translate.xml:1481 +msgid "" +"Examples starting with <prompt>#</prompt> indicate a command that must be " +"invoked as the superuser in FreeBSD. You can login as <systemitem class=" +"\"username\">root</systemitem> to type the command, or login as your normal " +"account and use <citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> to gain superuser privileges." +msgstr "" +"範例以 <prompt>#</prompt> 為開頭代表在 FreeBSD 中以超級使用者權限來執行的指" +"令。 你可以先以 <systemitem class=\"username\">root</systemitem> 登入系統並下" +"指令,或是以你自己的帳號登入再使用 <citerefentry><refentrytitle>su</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> 來取得超級使用者權限。" + +#. (itstool) path: preface/screen +#: book.translate.xml:1487 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dd if=kern.flp of=/dev/fd0</userinput>" +msgstr "" + +#. (itstool) path: preface/para +#: book.translate.xml:1489 +msgid "" +"Examples starting with <prompt>%</prompt> indicate a command that should be " +"invoked from a normal user account. Unless otherwise noted, C-shell syntax " +"is used for setting environment variables and other shell commands." +msgstr "" +"範例以 <prompt>%</prompt> 為開頭代表在 FreeBSD 中以一般使用者帳號執行的指" +"令。 除非有提到其他用法,否則都是預設為 C-shell 語法,用來設定環境變數以及下" +"其他指令的意思。" + +#. (itstool) path: preface/screen +#: book.translate.xml:1494 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>top</userinput>" +msgstr "" + +#. (itstool) path: preface/bridgehead +#. (itstool) id: book.translate.xml#preface-acknowledgements +#: book.translate.xml:1496 +msgid "Acknowledgments" +msgstr "銘謝" + +#. (itstool) path: preface/para +#: book.translate.xml:1498 +msgid "" +"The book you are holding represents the efforts of many hundreds of people " +"around the world. Whether they sent in fixes for typos, or submitted " +"complete chapters, all the contributions have been useful." +msgstr "" +"您所看到的這本書是經過數百個分散在世界各地的人所努力而來的結果。 無論他們只是" +"糾正一些錯誤或提交完整的章節,所有的點滴貢獻都是非常寶貴有用的。" + +#. (itstool) path: preface/para +#: book.translate.xml:1503 +msgid "" +"Several companies have supported the development of this document by paying " +"authors to work on it full-time, paying for publication, etc. In particular, " +"BSDi (subsequently acquired by <link xlink:href=\"http://www.windriver.com" +"\">Wind River Systems</link>) paid members of the FreeBSD Documentation " +"Project to work on improving this book full time leading up to the " +"publication of the first printed edition in March 2000 (ISBN 1-57176-241-8). " +"Wind River Systems then paid several additional authors to make a number of " +"improvements to the print-output infrastructure and to add additional " +"chapters to the text. This work culminated in the publication of the second " +"printed edition in November 2001 (ISBN 1-57176-303-1). In 2003-2004, <link " +"xlink:href=\"http://www.freebsdmall.com\">FreeBSD Mall, Inc</link>, paid " +"several contributors to improve the Handbook in preparation for the third " +"printed edition." +msgstr "" +"也有一些公司透過提供資金讓作者專注於撰稿、提供出版資金等模式來支持文件的寫" +"作。 其中,BSDi (之後併入 <link xlink:href=\"http://www.windriver.com\">Wind " +"River Systems</link>) 資助 FreeBSD 文件計劃成員來專職改善這本書直到 2000 年 " +"3 月第一版的出版。(ISBN 1-57176-241-8) Wind River Systems 同時資助其他作者來" +"對輸出架構做很多改進,以及給文章增加一些附加章節。這項工作結束於 2001 年 11 " +"月第二版。(ISBN 1-57176-303-1) 在 2003-2004 兩年中,<link xlink:href=" +"\"http://www.freebsdmall.com\">FreeBSD Mall, Inc</link> 把報酬支付給改進這本" +"手冊以使第三版印刷版本能夠出版的志工。" + +#. (itstool) path: part/title +#: book.translate.xml:1522 +msgid "Getting Started" +msgstr "入門" + +#. (itstool) path: partintro/para +#: book.translate.xml:1525 +msgid "" +"This part of the handbook is for users and administrators who are new to " +"FreeBSD. These chapters:" +msgstr "這部份是提供給初次使用 FreeBSD 的使用者和系統管理者。 這些章節包括:" + +#. (itstool) path: listitem/para +#: book.translate.xml:1530 +msgid "Introduce FreeBSD." +msgstr "介紹 FreeBSD 給您。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1534 +msgid "Guide readers through the installation process." +msgstr "在安裝過程給您指引。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1538 +msgid "" +"Teach <trademark class=\"registered\">UNIX</trademark> basics and " +"fundamentals." +msgstr "教您 <trademark class=\"registered\">UNIX</trademark> 的基礎及原理。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1542 +msgid "" +"Show how to install the wealth of third party applications available for " +"FreeBSD." +msgstr "展示給您看如何安裝豐富的 FreeBSD 的應用軟體。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1547 +msgid "" +"Introduce X, the <trademark class=\"registered\">UNIX</trademark> windowing " +"system, and detail how to configure a desktop environment that makes users " +"more productive." +msgstr "" +"向您介紹 X,<trademark class=\"registered\">UNIX</trademark> 的視窗系統以及詳" +"細的桌面環境設定,讓您更有生產力。" + +#. (itstool) path: partintro/para +#: book.translate.xml:1553 +msgid "" +"The number of forward references in the text have been kept to a minimum so " +"that this section can be read from front to back with minimal page flipping." +msgstr "" +"我們試著儘可能的讓這段文字的參考連結數目降到最低,讓您在讀使用手冊的這部份時" +"可以不太需要常常前後翻頁。" + +#. (itstool) path: info/title +#. (itstool) path: sect1/title +#. (itstool) path: sect2/title +#: book.translate.xml:1567 book.translate.xml:23657 book.translate.xml:65535 +msgid "Introduction" +msgstr "簡介" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:1570 book.translate.xml:2823 +msgid "" +"<personname> <firstname>Jim</firstname> <surname>Mock</surname> </" +"personname> <contrib>Restructured, reorganized, and parts rewritten by </" +"contrib>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:1582 book.translate.xml:2876 book.translate.xml:5481 +#: book.translate.xml:8870 book.translate.xml:10534 book.translate.xml:12704 +#: book.translate.xml:13826 book.translate.xml:15432 book.translate.xml:17914 +#: book.translate.xml:19171 book.translate.xml:22656 book.translate.xml:23569 +#: book.translate.xml:27640 book.translate.xml:29250 book.translate.xml:31018 +#: book.translate.xml:31752 book.translate.xml:35405 book.translate.xml:41337 +#: book.translate.xml:41544 book.translate.xml:42846 book.translate.xml:43897 +#: book.translate.xml:46046 book.translate.xml:46431 book.translate.xml:48634 +#: book.translate.xml:50302 book.translate.xml:52215 book.translate.xml:57941 +#: book.translate.xml:61628 +msgid "Synopsis" +msgstr "概述" + +#. (itstool) path: sect1/para +#: book.translate.xml:1584 +msgid "" +"Thank you for your interest in FreeBSD! The following chapter covers various " +"aspects of the FreeBSD Project, such as its history, goals, development " +"model, and so on." +msgstr "" +"非常感謝您對 FreeBSD 感興趣!以下章節涵蓋 FreeBSD 計劃的各方面:比如它的歷" +"史、目標、開發模式等等。" + +#. (itstool) path: sect1/para +#: book.translate.xml:1588 book.translate.xml:2903 book.translate.xml:5488 +#: book.translate.xml:8882 book.translate.xml:10555 book.translate.xml:15445 +#: book.translate.xml:17936 book.translate.xml:19185 book.translate.xml:23582 +#: book.translate.xml:27712 book.translate.xml:29277 book.translate.xml:31042 +#: book.translate.xml:31760 book.translate.xml:35431 book.translate.xml:41369 +#: book.translate.xml:41552 book.translate.xml:43909 book.translate.xml:46084 +#: book.translate.xml:46442 book.translate.xml:48645 book.translate.xml:50313 +#: book.translate.xml:57996 book.translate.xml:61633 +msgid "After reading this chapter, you will know:" +msgstr "讀完這章,您將了解︰" + +#. (itstool) path: listitem/para +#: book.translate.xml:1592 +msgid "How FreeBSD relates to other computer operating systems." +msgstr "FreeBSD 與其他作業系統之間的關係。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1597 +msgid "The history of the FreeBSD Project." +msgstr "FreeBSD 計劃的歷史。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1601 +msgid "The goals of the FreeBSD Project." +msgstr "FreeBSD 計劃的目標。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1605 +msgid "The basics of the FreeBSD open-source development model." +msgstr "FreeBSD 開源開發模式的基礎概念。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1610 +msgid "And of course: where the name <quote>FreeBSD</quote> comes from." +msgstr "當然囉,還有 <quote>FreeBSD</quote> 這名字的由來。" + +#. (itstool) path: sect1/title +#: book.translate.xml:1617 +msgid "Welcome to FreeBSD!" +msgstr "歡迎使用 FreeBSD!" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: para/indexterm +#: book.translate.xml:1619 book.translate.xml:1788 +msgid "<primary>4.4BSD-Lite</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:1621 +msgid "" +"FreeBSD is a 4.4BSD-Lite based operating system for Intel (x86 and " +"<trademark class=\"registered\">Itanium</trademark>), AMD64, Sun <trademark " +"class=\"registered\">UltraSPARC</trademark> computers. Ports to other " +"architectures are also under way. You can also read about <link linkend=" +"\"history\">the history of FreeBSD</link>, or the <link xlink:href=" +"\"@@URL_RELPREFIX@@/releases\">current release</link>. If you are interested " +"in contributing something to the Project (code, hardware, funding), see the " +"<link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/" +"contributing/index.html\">Contributing to FreeBSD</link> article." +msgstr "" +"FreeBSD 是一個從 4.4BSD-Lite 衍生出而能在以 Intel (x86 與 <trademark class=" +"\"registered\">Itanium</trademark>), AMD64, Sun <trademark class=\"registered" +"\">UltraSPARC</trademark> 為基礎的電腦上執行的作業系統。同時,移植到其他平台" +"的工作也在進行中。 對於本計劃歷史的介紹,請看 <link linkend=\"history" +"\">FreeBSD 歷史</link>, 對於 FreeBSD 的最新版本介紹,請看 <link xlink:href=" +"\"@@URL_RELPREFIX@@/releases\">最新的發行版本</link>。 若打算對於 FreeBSD 計" +"劃有所貢獻的話 (程式碼、硬體、經費), 請看 <link xlink:href=" +"\"@@URL_RELPREFIX@@/doc/zh_TW.UTF-8/articles/contributing/index.html\">如何" +"對 FreeBSD 有貢獻</link>。" + +#. (itstool) path: sect2/title +#: book.translate.xml:1631 +msgid "What Can FreeBSD Do?" +msgstr "FreeBSD 能做什麼?" + +#. (itstool) path: sect2/para +#: book.translate.xml:1633 +msgid "FreeBSD has many noteworthy features. Some of these are:" +msgstr "FreeBSD 提供給你許多先進功能。這些功能包括:" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1639 +msgid "<primary>preemptive multitasking</primary>" +msgstr "<primary>先佔式多工</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1638 +msgid "" +"<emphasis>Preemptive multitasking</emphasis> <_:indexterm-1/> with dynamic " +"priority adjustment to ensure smooth and fair sharing of the computer " +"between applications and users, even under the heaviest of loads." +msgstr "" +"動態優先權調整的 <emphasis>先佔式多工</emphasis> <_:indexterm-1/> 能夠確保," +"即使在系統負擔很重的情況下,程式執行平順並且應用程式與使用者公平地共享資源。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1648 +msgid "<primary>multi-user facilities</primary>" +msgstr "<primary>多人共用</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1648 +msgid "" +"<emphasis>Multi-user facilities</emphasis><_:indexterm-1/> which allow many " +"people to use a FreeBSD system simultaneously for a variety of things. This " +"means, for example, that system peripherals such as printers and tape drives " +"are properly shared between all users on the system or the network and that " +"individual resource limits can be placed on users or groups of users, " +"protecting critical system resources from over-use." +msgstr "" +"<emphasis>多人共用</emphasis><_:indexterm-1/> 代表著許多人可以同時使用一個 " +"FreeBSD 系統來處理各自的事務。 系統的硬體周邊 (如印表機及磁帶機) 也可以讓所有" +"的使用者適當地分享。 也可以針對各別使用者或一群使用者的系統資源,予以設限,以" +"保護系統不致被過度使用。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1661 +msgid "<primary>TCP/IP networking</primary>" +msgstr "TCP/IP 網路" + +#. (itstool) path: listitem/para +#: book.translate.xml:1660 +msgid "" +"Strong <emphasis>TCP/IP networking</emphasis><_:indexterm-1/> with support " +"for industry standards such as SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec, and " +"IPv6. This means that your FreeBSD machine can interoperate easily with " +"other systems as well as act as an enterprise server, providing vital " +"functions such as NFS (remote file access) and email services or putting " +"your organization on the Internet with WWW, FTP, routing and firewall " +"(security) services." +msgstr "" +"強大的 <emphasis>TCP/IP 網路</emphasis><_:indexterm-1/> 功能可支援許多業界標" +"準,如:SCTP、DHCP、NFS、NIS、PPP、SLIP、IPSec、IPv6 的支援,也就是說 " +"FreeBSD 可以容易地跟其他作業系統透過網路共同運作,或是當作企業的伺服器用途 ," +"例如提供遠端檔案共享(NFS)及電子郵件等服務, 或是讓您的企業連上網際網路並提供 " +"WWW、FTP、路由及防火牆 (安全性) 等必備服務。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1674 +msgid "<primary>memory protection</primary>" +msgstr "<primary>記憶體保護</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1674 +msgid "" +"<emphasis>Memory protection</emphasis><_:indexterm-1/> ensures that " +"applications (or users) cannot interfere with each other. One application " +"crashing will not affect others in any way." +msgstr "" +"<emphasis>記憶體保護</emphasis> 能確保程式 (或使用者) 不會互相干擾,即使任何" +"程式有不正常的運作,都不會影響其他程式的執行。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1683 book.translate.xml:1926 +msgid "<primary>X Window System</primary>" +msgstr "<primary>X Window 系統</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1682 +msgid "" +"The industry standard <emphasis>X Window System</emphasis><_:indexterm-1/> " +"(X11R7) can provide a graphical user interface (GUI) on any machine and " +"comes with full sources." +msgstr "" +"業界標準的 <emphasis>X Window 系統</emphasis><_:indexterm-1/> (X11R7) 可以在" +"常見的便宜 VGA 顯示卡/螢幕, 提供了圖形化的使用者介面 (GUI),並且包括了完整的" +"原始程式碼。" + +#. (itstool) path: para/indexterm +#. (itstool) path: sect1/indexterm +#: book.translate.xml:1692 book.translate.xml:17919 +msgid "<primary>binary compatibility</primary> <secondary>Linux</secondary>" +msgstr "<primary>Binary 相容性</primary> <secondary>Linux</secondary>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1696 +msgid "<primary>binary compatibility</primary> <secondary>SCO</secondary>" +msgstr "<primary>Binary 相容性</primary> <secondary>SCO</secondary>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1700 +msgid "<primary>binary compatibility</primary> <secondary>SVR4</secondary>" +msgstr "<primary>Binary 相容性</primary> <secondary>SVR4</secondary>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1704 +msgid "<primary>binary compatibility</primary> <secondary>BSD/OS</secondary>" +msgstr "<primary>Binary 相容性</primary> <secondary>BSD/OS</secondary>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1708 +msgid "<primary>binary compatibility</primary> <secondary>NetBSD</secondary>" +msgstr "<primary>Binary 相容性</primary> <secondary>NetBSD</secondary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1691 +msgid "" +"<_:indexterm-1/> <_:indexterm-2/> <_:indexterm-3/> <_:indexterm-4/> <_:" +"indexterm-5/> <emphasis>Binary compatibility</emphasis> with many programs " +"built for Linux, SCO, SVR4, BSDI and NetBSD." +msgstr "" +"<_:indexterm-1/> <_:indexterm-2/> <_:indexterm-3/> <_:indexterm-4/> <_:" +"indexterm-5/> <emphasis>Binary 相容性</emphasis> 可執行許多其他作業系統 " +"(如: Linux、SCO、SVR4、BSDI 和 NetBSD) 的可執行檔。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1718 +msgid "" +"Thousands of <emphasis>ready-to-run</emphasis> applications are available " +"from the FreeBSD <emphasis>ports</emphasis> and <emphasis>packages</" +"emphasis> collection. Why search the net when you can find it all right here?" +msgstr "" +"數以萬計的 <emphasis>立即可以執行</emphasis> 的應用程式,這些都可透過 " +"FreeBSD 的 <emphasis>ports</emphasis> 及 <emphasis>套件</emphasis> 管理機制來" +"取得。 不再需要費心到網路上到處搜尋所需要的軟體。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1726 +msgid "" +"Thousands of additional and <emphasis>easy-to-port</emphasis> applications " +"are available on the Internet. FreeBSD is source code compatible with most " +"popular commercial <trademark class=\"registered\">UNIX</trademark> systems " +"and thus most applications require few, if any, changes to compile." +msgstr "" +"在網路上有數以千計 <emphasis>易於移植</emphasis> 的應用程式。FreeBSD 的原始程" +"式碼與許多常見的商業版 <trademark class=\"registered\">UNIX</trademark> 系統" +"都相容, 所以大部分的程式都只需要很少的修改(或根本不用修改) ,就可以編譯執" +"行。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1735 +msgid "<primary>virtual memory</primary>" +msgstr "<primary>虛擬記憶體</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1734 +msgid "" +"Demand paged <emphasis>virtual memory</emphasis><_:indexterm-1/> and " +"<quote>merged VM/buffer cache</quote> design efficiently satisfies " +"applications with large appetites for memory while still maintaining " +"interactive response to other users." +msgstr "" +"需要時才置換的 <emphasis>虛擬記憶體</emphasis><_:indexterm-1/> 及 " +"<quote>merged VM/buffer cache</quote> 的設計, 這點在系統中有用去大量記憶體的" +"程式執行時,仍然有不錯的效率表現。 " + +#. (itstool) path: para/indexterm +#: book.translate.xml:1744 +msgid "<primary>Symmetric Multi-Processing (SMP)</primary>" +msgstr "<primary>對稱多工處理 (SMP)</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1744 +msgid "" +"<emphasis>SMP</emphasis><_:indexterm-1/> support for machines with multiple " +"CPUs." +msgstr "" +"支援 CPU 的<emphasis>對稱多工處理(SMP)</emphasis><_:indexterm-1/>:可以支援" +"多 CPU 的電腦系統。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1753 +msgid "<primary>compilers</primary> <secondary>C</secondary>" +msgstr "<primary>編譯器</primary> <secondary>C</secondary>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1757 +msgid "<primary>compilers</primary> <secondary>C++</secondary>" +msgstr "<primary>編譯器</primary> <secondary>C++</secondary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1752 +msgid "" +"<_:indexterm-1/> <_:indexterm-2/> A full complement of <emphasis>C</" +"emphasis> and <emphasis>C++</emphasis> development tools. Many additional " +"languages for advanced research and development are also available in the " +"ports and packages collection." +msgstr "" +"<_:indexterm-1/><_:indexterm-2/>完全相容的 <emphasis>C</emphasis>、" +"<emphasis>C++</emphasis> 以及 Fortran 的環境和其他開發工具。 以及其他許多可供" +"進階研發的程式語言也收集在 ports 和套件。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1770 +msgid "<primary>source code</primary>" +msgstr "<primary>原始碼</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1770 +msgid "" +"<emphasis>Source code</emphasis><_:indexterm-1/> for the entire system means " +"you have the greatest degree of control over your environment. Why be locked " +"into a proprietary solution at the mercy of your vendor when you can have a " +"truly open system?" +msgstr "" +"整個系統都有 <emphasis>原始程式碼</emphasis><_:indexterm-1/>, 這讓你對作業環" +"境擁有最完全的掌握度。 既然能擁有完全開放的系統,何苦被特定封閉軟體所約束,任" +"廠商擺佈呢?" + +#. (itstool) path: listitem/para +#: book.translate.xml:1779 +msgid "Extensive <emphasis>online documentation</emphasis>." +msgstr "廣泛且豐富的 <emphasis>線上文件</emphasis>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1784 +msgid "<emphasis>And many more!</emphasis>" +msgstr "<emphasis>當然囉,還不止如此!</emphasis>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1791 +msgid "<primary>Computer Systems Research Group (CSRG)</primary>" +msgstr "<primary>電腦系統研究組 (CSRG)</primary>" + +#. (itstool) path: sect2/para +#: book.translate.xml:1788 +msgid "" +"FreeBSD is based on the 4.4BSD-Lite<_:indexterm-1/> release from Computer " +"Systems Research Group (CSRG)<_:indexterm-2/> at the University of " +"California at Berkeley, and carries on the distinguished tradition of BSD " +"systems development. In addition to the fine work provided by CSRG, the " +"FreeBSD Project has put in many thousands of hours in fine tuning the system " +"for maximum performance and reliability in real-life load situations. " +"FreeBSD offers performance and reliability on par with commercial offerings, " +"combined with many cutting-edge features not available anywhere else." +msgstr "" +"FreeBSD 系統乃是基於美國加州大學柏克萊分校的電腦系統研究組 (Computer Systems " +"Research Group 也就是 CSRG) 所發行的 4.4BSD-Lite<_:indexterm-1/>,以及基於 " +"BSD 系統開發的優良傳統。 除了由 CSRG 所提供的高品質的成果, 為了提供可處理真" +"正具負荷的工作, FreeBSD 計劃也投入了數千小時以上的細部調整, 以能獲得最好的" +"執行效率以及系統的穩定度。 正當許多商業上的巨人正努力地希望能提供效能及穩定" +"時,FreeBSD 已經具備這樣的特質,並具有其他地方沒有的尖端功能。" + +#. (itstool) path: sect2/para +#: book.translate.xml:1802 +msgid "" +"The applications to which FreeBSD can be put are truly limited only by your " +"own imagination. From software development to factory automation, inventory " +"control to azimuth correction of remote satellite antennae; if it can be " +"done with a commercial <trademark class=\"registered\">UNIX</trademark> " +"product then it is more than likely that you can do it with FreeBSD too! " +"FreeBSD also benefits significantly from literally thousands of high quality " +"applications developed by research centers and universities around the " +"world, often available at little to no cost. Commercial applications are " +"also available and appearing in greater numbers every day." +msgstr "" +"FreeBSD 的運用範圍無限,其實完全限制在你的想像力上。 從軟體的開發到工廠自動" +"化,或是人造衛星上面的天線的方位角度的遠端控制; 這些功能若可以用商用的 " +"<trademark class=\"registered\">UNIX</trademark> 產品來達成, 那麼極有可能使" +"用 FreeBSD 也能辦到! FreeBSD 也受益於來自於全球各研究中心及大學所開發的數千" +"個高品質的軟體 ,這些通常只需要花費很少的費用或根本就是免費的。 當然也有商業" +"軟體,而且出現的數目是與日俱增。" + +#. (itstool) path: sect2/para +#: book.translate.xml:1814 +msgid "" +"Because the source code for FreeBSD itself is generally available, the " +"system can also be customized to an almost unheard of degree for special " +"applications or projects, and in ways not generally possible with operating " +"systems from most major commercial vendors. Here is just a sampling of some " +"of the applications in which people are currently using FreeBSD:" +msgstr "" +"由於每個人都可以取得 FreeBSD 的原始程式碼, 這個系統可以被量身訂做成能執行任" +"何原本完全無法想像的功能或計劃, 而對於從各廠商取得的作業系統通常沒有辦法這樣" +"地被修改。 以下提供一些人們使用 FreeBSD 的例子:" + +#. (itstool) path: listitem/para +#: book.translate.xml:1824 +msgid "" +"<emphasis>Internet Services:</emphasis> The robust TCP/IP networking built " +"into FreeBSD makes it an ideal platform for a variety of Internet services " +"such as:" +msgstr "" +"<emphasis>網際網路服務:</emphasis> FreeBSD 內建強勁的網路功能使它成為網路服" +"務(如下例)的理想平台:" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1831 +msgid "<primary>web servers</primary>" +msgstr "<primary>網頁伺服器</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1831 +msgid "World Wide Web servers<_:indexterm-1/> (standard or secure [SSL])" +msgstr "全球資訊網伺服器<_:indexterm-1/> (標準的或更安全的 [SSL])" + +#. (itstool) path: listitem/para +#: book.translate.xml:1838 +msgid "IPv4 and IPv6 routing" +msgstr "IPv4 及 IPv6 路由" + +#. (itstool) path: para/indexterm +#. (itstool) path: chapter/indexterm +#: book.translate.xml:1842 book.translate.xml:57932 +msgid "<primary>firewall</primary>" +msgstr "<primary>防火牆</primary>" + +#. (itstool) path: para/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:1845 book.translate.xml:61098 +msgid "<primary>NAT</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1842 +msgid "" +"Firewalls<_:indexterm-1/> and NAT<_:indexterm-2/> (<quote>IP masquerading</" +"quote>) gateways" +msgstr "" +"防火牆<_:indexterm-1/>以及 NAT<_:indexterm-2/> (<quote>IP masquerading</" +"quote>) 通訊閘。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1852 +msgid "<primary>FTP servers</primary>" +msgstr "<primary>FTP 伺服器</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1852 +msgid "FTP servers<_:indexterm-1/>" +msgstr "檔案傳輸協定伺服器<_:indexterm-1/>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1859 +msgid "<primary>electronic mail</primary> <see>email</see>" +msgstr "<primary>電子郵件</primary> <see>email</see>" + +#. (itstool) path: para/indexterm +#. (itstool) path: sect1/indexterm +#: book.translate.xml:1863 book.translate.xml:50304 +msgid "<primary>email</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1858 +msgid "<_:indexterm-1/> <_:indexterm-2/> Electronic Mail servers" +msgstr "<_:indexterm-1/><_:indexterm-2/> 電子郵件伺服器" + +#. (itstool) path: listitem/para +#: book.translate.xml:1870 +msgid "And more..." +msgstr "還有更多..." + +#. (itstool) path: listitem/para +#: book.translate.xml:1876 +msgid "" +"<emphasis>Education:</emphasis> Are you a student of computer science or a " +"related engineering field? There is no better way of learning about " +"operating systems, computer architecture and networking than the hands on, " +"under the hood experience that FreeBSD can provide. A number of freely " +"available CAD, mathematical and graphic design packages also make it highly " +"useful to those whose primary interest in a computer is to get " +"<emphasis>other</emphasis> work done!" +msgstr "" +"<emphasis>教育:</emphasis>若您是資工相關領域的學生,再也沒有比使用 FreeBSD " +"能學到更多作業系統、計算機結構、及網路的方法了。 另外如果你想利用電腦來處理一" +"些<emphasis>其他</emphasis>的工作,還有一些如 CAD、 數學運算以及圖形處理軟體" +"等可以免費地取得使用。" + +#. (itstool) path: listitem/para +#: book.translate.xml:1888 +msgid "" +"<emphasis>Research:</emphasis> With source code for the entire system " +"available, FreeBSD is an excellent platform for research in operating " +"systems as well as other branches of computer science. FreeBSD's freely " +"available nature also makes it possible for remote groups to collaborate on " +"ideas or shared development without having to worry about special licensing " +"agreements or limitations on what may be discussed in open forums." +msgstr "" +"<emphasis>研究:</emphasis>有了完整的原始程式碼,FreeBSD 是研究作業系統及電腦" +"科學的極佳環境。 具有免費且自由取得特性的 FreeBSD 也使得一個分置兩地的合作計" +"劃,不必擔心版權及系統開放性的問題, 而能自在的交流。" + +#. (itstool) path: para/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:1900 book.translate.xml:61976 +msgid "<primary>router</primary>" +msgstr "<primary>路由器</primary>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1902 +msgid "<primary>DNS Server</primary>" +msgstr "<primary>DNS 伺服器</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1899 +msgid "" +"<emphasis>Networking:</emphasis> Need a new router?<_:indexterm-1/> A name " +"server (DNS)?<_:indexterm-2/> A firewall to keep people out of your internal " +"network? FreeBSD can easily turn that unused PC sitting in the corner into " +"an advanced router with sophisticated packet-filtering capabilities." +msgstr "" +"<emphasis>網路:</emphasis> 你如果需要 路由器<_:indexterm-1/>、名稱伺服器 " +"(DNS)<_:indexterm-2/> 或安全的防火牆, FreeBSD 可以輕易的將你沒有用到的 386 " +"或 486 PC 變身成為絕佳的伺服器,甚至具有過濾封包的功能。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1913 +msgid "<primary>embedded</primary>" +msgstr "<primary>嵌入式</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1911 +msgid "" +"<emphasis>Embedded:</emphasis> FreeBSD makes an excellent platform to build " +"embedded systems upon. <_:indexterm-1/> With support for the <trademark " +"class=\"registered\">ARM</trademark>, <trademark class=\"registered\">MIPS</" +"trademark> and <trademark class=\"registered\">PowerPC</trademark> " +"platforms, coupled with a robust network stack, cutting edge features and " +"the permissive <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/" +"books/faq/introduction.html#bsd-license-restrictions\">BSD license</link> " +"FreeBSD makes an excellent foundation for building embedded routers, " +"firewalls, and other devices." +msgstr "" +"<emphasis>嵌入式:</emphasis> FreeBSD 是一套可用來建立嵌入式系統的傑出平台。 " +"<_:indexterm-1/> 支援 <trademark class=\"registered\">ARM</trademark>, " +"<trademark class=\"registered\">MIPS</trademark> 以及 <trademark class=" +"\"registered\">PowerPC</trademark> 平台,再加上健全的網路環境、尖端的功能以及" +"自由的 <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/faq/" +"introduction.html#bsd-license-restrictions\">BSD 授權條款</link>,FreeBSD 成" +"為用來建置嵌入式路由器、防火牆及其他裝置的絕佳基礎。" + +#. (itstool) path: para/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:1929 book.translate.xml:11904 +msgid "<primary>GNOME</primary>" +msgstr "" + +#. (itstool) path: para/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:1932 book.translate.xml:11991 +msgid "<primary>KDE</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1925 +msgid "" +"<_:indexterm-1/> <_:indexterm-2/> <_:indexterm-3/> <emphasis>Desktop:</" +"emphasis> FreeBSD makes a fine choice for an inexpensive desktop solution " +"using the freely available X11 server. FreeBSD offers a choice from many " +"open-source desktop environments, including the standard <application>GNOME</" +"application> and <application>KDE</application> graphical user interfaces. " +"FreeBSD can even boot <quote>diskless</quote> from a central server, making " +"individual workstations even cheaper and easier to administer." +msgstr "" +"<_:indexterm-1/> <_:indexterm-2/> <_:indexterm-3/> <emphasis>桌面:</" +"emphasis> FreeBSD 同時也是低成本桌面解決方案中不錯的選擇,使用了免費的 X11 伺" +"服器。FreeBSD 提供許多開源桌面環境可選擇,包含了標準 <application>GNOME</" +"application> 及 <application>KDE</application> 圖型化使用者介面。FreeBSD 甚至" +"可以透過中央伺服器做 <quote>無磁碟</quote> 開機,讓個人工作站變的更便宜、更易" +"於管理。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1951 +msgid "<primary>Compiler</primary>" +msgstr "<primary>編譯器</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:1948 +msgid "" +"<emphasis>Software Development:</emphasis> The basic FreeBSD system comes " +"with a full complement of development tools including a full C/C++<_:" +"indexterm-1/> compiler and debugger suite. Support for many other languages " +"are also available through the ports and packages collection." +msgstr "" +"<emphasis>軟體開發:</emphasis> 基本安裝的 FreeBSD 就包含了完整的程式開發工" +"具,如 C/C++<_:indexterm-1/> 編譯器及除錯器。 透過 port 與套件管理系統也可支" +"援需多其他語言。" + +#. (itstool) path: sect2/para +#: book.translate.xml:1960 +msgid "" +"FreeBSD is available to download free of charge, or can be obtained on " +"either CD-ROM or DVD. Please see <xref linkend=\"mirrors\"/> for more " +"information about obtaining FreeBSD." +msgstr "" +"你可以經由燒錄 CD-ROM、DVD 或是從 FTP 站上抓回 FreeBSD。 詳情請參閱 <xref " +"linkend=\"mirrors\"/> 取得 FreeBSD。" + +#. (itstool) path: sect2/title +#: book.translate.xml:1967 +msgid "Who Uses FreeBSD?" +msgstr "誰在用 FreeBSD?" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:1969 +msgid "" +"<primary>users</primary> <secondary>large sites running FreeBSD</secondary>" +msgstr "" +"<primary>使用者</primary> <secondary>執行 FreeBSD 的大型站台</secondary>" + +#. (itstool) path: sect2/para +#: book.translate.xml:1974 +msgid "" +"FreeBSD's advanced features, proven security, predictable release cycle, and " +"permissive license have led to its use as a platform for building many " +"commercial and open source appliances, devices, and products. Many of the " +"world's largest IT companies use FreeBSD:" +msgstr "" +"FreeBSD 先進的功能、成熟的安全性、可預測的發佈週期以及自由的授權條款,讓 " +"FreeBSD 已經被用來做為建立許多商業、開源應用、裝置以及產品的平台,有許多世界" +"上最大的資訊公司使用 FreeBSD:" + +#. (itstool) path: para/indexterm +#. (itstool) path: sect1/indexterm +#: book.translate.xml:1984 book.translate.xml:56605 +msgid "<primary>Apache</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1983 +msgid "" +"<link xlink:href=\"http://www.apache.org/\">Apache</link> <_:indexterm-1/> - " +"The Apache Software Foundation runs most of its public facing " +"infrastructure, including possibly one of the largest SVN repositories in " +"the world with over 1.4 million commits, on FreeBSD." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:1994 +msgid "<primary>Apple</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:1993 +msgid "" +"<link xlink:href=\"http://www.apple.com/\">Apple</link> <_:indexterm-1/> - " +"OS X borrows heavily from FreeBSD for the network stack, virtual file " +"system, and many userland components. Apple iOS also contains elements " +"borrowed from FreeBSD." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2004 +msgid "<primary>Cisco</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2003 +msgid "" +"<link xlink:href=\"http://www.cisco.com/\">Cisco</link> <_:indexterm-1/> - " +"IronPort network security and anti-spam appliances run a modified FreeBSD " +"kernel." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2012 +msgid "<primary>Citrix</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2011 +msgid "" +"<link xlink:href=\"http://www.citrix.com/\">Citrix</link> <_:indexterm-1/> - " +"The NetScaler line of security appliances provide layer 4-7 load balancing, " +"content caching, application firewall, secure VPN, and mobile cloud network " +"access, along with the power of a FreeBSD shell." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2023 +msgid "<primary>Dell KACE</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2021 +msgid "" +"<link xlink:href=\"http://www.dell.com/KACE\">Dell KACE</link> <_:" +"indexterm-1/> - The KACE system management appliances run FreeBSD because of " +"its reliability, scalability, and the community that supports its continued " +"development." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2033 +msgid "<primary>Experts Exchange</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2031 +msgid "" +"<link xlink:href=\"http://www.experts-exchange.com/\">Experts Exchange</" +"link> <_:indexterm-1/> - All public facing web servers are powered by " +"FreeBSD and they make extensive use of jails to isolate development and " +"testing environments without the overhead of virtualization." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2043 +msgid "<primary>Isilon</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2042 +msgid "" +"<link xlink:href=\"http://www.isilon.com/\">Isilon</link> <_:indexterm-1/> - " +"Isilon's enterprise storage appliances are based on FreeBSD. The extremely " +"liberal FreeBSD license allowed Isilon to integrate their intellectual " +"property throughout the kernel and focus on building their product instead " +"of an operating system." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2055 +msgid "<primary>iXsystems</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2054 +msgid "" +"<link xlink:href=\"http://www.ixsystems.com/\">iXsystems</link> <_:" +"indexterm-1/> - The TrueNAS line of unified storage appliances is based on " +"FreeBSD. In addition to their commercial products, iXsystems also manages " +"development of the open source projects PC-BSD and FreeNAS." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2065 +msgid "<primary>Juniper</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2064 +msgid "" +"<link xlink:href=\"http://www.juniper.net/\">Juniper</link> <_:indexterm-1/> " +"- The JunOS operating system that powers all Juniper networking gear " +"(including routers, switches, security, and networking appliances) is based " +"on FreeBSD. Juniper is one of many vendors that showcases the symbiotic " +"relationship between the project and vendors of commercial products. " +"Improvements generated at Juniper are upstreamed into FreeBSD to reduce the " +"complexity of integrating new features from FreeBSD back into JunOS in the " +"future." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2080 +msgid "<primary>McAfee</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2079 +msgid "" +"<link xlink:href=\"http://www.mcafee.com/\">McAfee</link> <_:indexterm-1/> - " +"SecurOS, the basis of McAfee enterprise firewall products including " +"Sidewinder is based on FreeBSD." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2089 +msgid "<primary>NetApp</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2088 +msgid "" +"<link xlink:href=\"http://www.netapp.com/\">NetApp</link> <_:indexterm-1/> - " +"The Data ONTAP GX line of storage appliances are based on FreeBSD. In " +"addition, NetApp has contributed back many features, including the new BSD " +"licensed hypervisor, bhyve." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2099 book.translate.xml:2361 +msgid "<primary>Netflix</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2098 +msgid "" +"<link xlink:href=\"http://www.netflix.com/\">Netflix</link> <_:indexterm-1/> " +"- The OpenConnect appliance that Netflix uses to stream movies to its " +"customers is based on FreeBSD. Netflix has made extensive contributions to " +"the codebase and works to maintain a zero delta from mainline FreeBSD. " +"Netflix OpenConnect appliances are responsible for delivering more than 32% " +"of all Internet traffic in North America." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2112 +msgid "<primary>Sandvine</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2111 +msgid "" +"<link xlink:href=\"http://www.sandvine.com/\">Sandvine</link> <_:indexterm-1/" +"> - Sandvine uses FreeBSD as the basis of their high performance realtime " +"network processing platforms that make up their intelligent network policy " +"control products." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2122 +msgid "<primary>Sony</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2121 +msgid "" +"<link xlink:href=\"http://www.sony.com/\">Sony</link> <_:indexterm-1/> - The " +"PlayStation 4 gaming console runs a modified version of FreeBSD." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2130 +msgid "<primary>Sophos</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2129 +msgid "" +"<link xlink:href=\"http://www.sophos.com/\">Sophos</link> <_:indexterm-1/> - " +"The Sophos Email Appliance product is based on a hardened FreeBSD and scans " +"inbound mail for spam and viruses, while also monitoring outbound mail for " +"malware as well as the accidental loss of sensitive information." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2142 +msgid "<primary>Spectra Logic</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2140 +msgid "" +"<link xlink:href=\"http://www.spectralogic.com/\">Spectra Logic</link> <_:" +"indexterm-1/> - The nTier line of archive grade storage appliances run " +"FreeBSD and OpenZFS." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2151 +msgid "<primary>The Weather Channel</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2149 +msgid "" +"<link xlink:href=\"http://www.weather.com/\">The Weather Channel</link> <_:" +"indexterm-1/> - The IntelliStar appliance that is installed at each local " +"cable providers headend and is responsible for injecting local weather " +"forecasts into the cable TV network's programming runs FreeBSD." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2162 +msgid "<primary>Verisign</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2161 +msgid "" +"<link xlink:href=\"http://www.verisign.com/\">Verisign</link> <_:indexterm-1/" +"> - Verisign is responsible for operating the .com and .net root domain " +"registries as well as the accompanying DNS infrastructure. They rely on a " +"number of different network operating systems including FreeBSD to ensure " +"there is no common point of failure in their infrastructure." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2175 +msgid "<primary>Voxer</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2174 +msgid "" +"<link xlink:href=\"http://www.voxer.com/\">Voxer</link> <_:indexterm-1/> - " +"Voxer powers their mobile voice messaging platform with ZFS on FreeBSD. " +"Voxer switched from a Solaris derivative to FreeBSD because of its superior " +"documentation, larger and more active community, and more developer friendly " +"environment. In addition to critical features like <acronym>ZFS</acronym> " +"and DTrace, FreeBSD also offers TRIM support for <acronym>ZFS</acronym>." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2189 +msgid "<primary>WhatsApp</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2188 +msgid "" +"<link xlink:href=\"http://www.whatsapp.com/\">WhatsApp</link> <_:indexterm-1/" +"> - When WhatsApp needed a platform that would be able to handle more than 1 " +"million concurrent TCP connections per server, they chose FreeBSD. They then " +"proceeded to scale past 2.5 million connections per server." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2201 +msgid "<primary>Wheel Systems</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2199 +msgid "" +"<link xlink:href=\"http://wheelsystems.com/\">Wheel Systems</link> <_:" +"indexterm-1/> - The FUDO security appliance allows enterprises to monitor, " +"control, record, and audit contractors and administrators who work on their " +"systems. Based on all of the best security features of FreeBSD including " +"ZFS, GELI, Capsicum, HAST, and auditdistd." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:2213 +msgid "FreeBSD has also spawned a number of related open source projects:" +msgstr "FreeBSD 也催生了數個相關的開源計劃:" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2220 +msgid "<primary>BSD Router</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2218 +msgid "" +"<link xlink:href=\"http://bsdrp.net/\">BSD Router</link> <_:indexterm-1/> - " +"A FreeBSD based replacement for large enterprise routers designed to run on " +"standard PC hardware." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2229 +msgid "<primary>FreeNAS</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2228 +msgid "" +"<link xlink:href=\"http://www.freenas.org/\">FreeNAS</link> <_:indexterm-1/> " +"- A customized FreeBSD designed to be used as a network file server " +"appliance. Provides a python based web interface to simplify the management " +"of both the UFS and ZFS file systems. Includes support for NFS, SMB/CIFS, " +"AFP, FTP, and iSCSI. Includes an extensible plugin system based on FreeBSD " +"jails." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2241 +msgid "<primary>GhostBSD</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2240 +msgid "" +"<link xlink:href=\"http://www.ghostbsd.org/\">GhostBSD</link> <_:indexterm-1/" +"> - A desktop oriented distribution of FreeBSD bundled with the Gnome " +"desktop environment." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2249 +msgid "<primary>mfsBSD</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2248 +msgid "" +"<link xlink:href=\"http://mfsbsd.vx.sk/\">mfsBSD</link> <_:indexterm-1/> - A " +"toolkit for building a FreeBSD system image that runs entirely from memory." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2257 +msgid "<primary>NAS4Free</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2256 +msgid "" +"<link xlink:href=\"http://www.nas4free.org/\">NAS4Free</link> <_:indexterm-1/" +"> - A file server distribution based on FreeBSD with a PHP powered web " +"interface." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2265 +msgid "<primary>OPNsense</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2264 +msgid "" +"<link xlink:href=\"http://www.opnsense.org/\">OPNSense</link> <_:indexterm-1/" +"> - OPNsense is an open source, easy-to-use and easy-to-build FreeBSD based " +"firewall and routing platform. OPNsense includes most of the features " +"available in expensive commercial firewalls, and more in many cases. It " +"brings the rich feature set of commercial offerings with the benefits of " +"open and verifiable sources." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2277 +msgid "<primary>PC-BSD</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2276 +msgid "" +"<link xlink:href=\"http://www.pcbsd.org/\">PC-BSD</link> <_:indexterm-1/> - " +"A customized version of FreeBSD geared towards desktop users with graphical " +"utilities to exposing the power of FreeBSD to all users. Designed to ease " +"the transition of Windows and OS X users." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2287 +msgid "<primary>pfSense</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2286 +msgid "" +"<link xlink:href=\"http://www.pfsense.org/\">pfSense</link> <_:indexterm-1/> " +"- A firewall distribution based on FreeBSD with a huge array of features and " +"extensive IPv6 support." +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2296 +msgid "<primary>ZRouter</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2295 +msgid "" +"<link xlink:href=\"http://zrouter.org/\">ZRouter</link> <_:indexterm-1/> - " +"An open source alternative firmware for embedded devices based on FreeBSD. " +"Designed to replace the proprietary firmware on off-the-shelf routers." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:2304 +msgid "" +"FreeBSD is also used to power some of the biggest sites on the Internet, " +"including:" +msgstr "FreeBSD 也同時被用來驅動一些網際網路上的大型網站,包括:" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2310 +msgid "<primary>Yahoo!</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2309 +msgid "" +"<link xlink:href=\"http://www.yahoo.com/\">Yahoo!</link> <_:indexterm-1/>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2317 +msgid "<primary>Yandex</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2316 +msgid "" +"<link xlink:href=\"http://www.yandex.ru/\">Yandex</link> <_:indexterm-1/>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2324 +msgid "<primary>Rambler</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2323 +msgid "" +"<link xlink:href=\"http://www.rambler.ru/\">Rambler</link> <_:indexterm-1/>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2331 +msgid "<primary>Sina</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2330 +msgid "<link xlink:href=\"http://www.sina.com/\">Sina</link> <_:indexterm-1/>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2339 +msgid "<primary>Pair Networks</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2337 +msgid "" +"<link xlink:href=\"http://www.pair.com/\">Pair Networks</link> <_:" +"indexterm-1/>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2347 +msgid "<primary>Sony Japan</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2345 +msgid "" +"<link xlink:href=\"http://www.sony.co.jp/\">Sony Japan</link> <_:indexterm-1/" +">" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2354 +msgid "<primary>Netcraft</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2353 +msgid "" +"<link xlink:href=\"http://www.netcraft.com/\">Netcraft</link> <_:indexterm-1/" +">" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2360 +msgid "" +"<link xlink:href=\"https://signup.netflix.com/openconnect\">Netflix</link> " +"<_:indexterm-1/>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2368 +msgid "<primary>NetEase</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2367 +msgid "" +"<link xlink:href=\"http://www.163.com/\">NetEase</link> <_:indexterm-1/>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2375 +msgid "<primary>Weathernews</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2374 +msgid "" +"<link xlink:href=\"http://www.weathernews.com/\">Weathernews</link> <_:" +"indexterm-1/>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2383 +msgid "<primary>TELEHOUSE America</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2381 +msgid "" +"<link xlink:href=\"http://www.telehouse.com/\">TELEHOUSE America</link> <_:" +"indexterm-1/>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:2390 +msgid "" +"and many more. Wikipedia also maintains a <link xlink:href=\"http://en." +"wikipedia.org/wiki/List_of_products_based_on_FreeBSD\">list of products " +"based on FreeBSD</link>." +msgstr "" +"還有許多的應用。維基百科也維護了一份 <link xlink:href=\"http://en.wikipedia." +"org/wiki/List_of_products_based_on_FreeBSD\">以 FreeBSD 為基礎的產品</link>。" + +#. (itstool) path: sect1/title +#: book.translate.xml:2396 +msgid "About the FreeBSD Project" +msgstr "關於 FreeBSD 計劃" + +#. (itstool) path: sect1/para +#: book.translate.xml:2398 +msgid "" +"The following section provides some background information on the project, " +"including a brief history, project goals, and the development model of the " +"project." +msgstr "接下來講的是 FreeBSD 計劃的背景,包含歷史、計劃目標以及開發模式。" + +#. (itstool) path: sect2/title +#: book.translate.xml:2403 +msgid "A Brief History of FreeBSD" +msgstr "FreeBSD 歷史簡介" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2405 +msgid "<primary>386BSD Patchkit</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2406 +msgid "<primary>Hubbard, Jordan</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2407 +msgid "<primary>Williams, Nate</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2408 +msgid "<primary>Grimes, Rod</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2409 +msgid "<primary>FreeBSD Project</primary> <secondary>history</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:2414 +msgid "" +"The FreeBSD Project had its genesis in the early part of 1993, partially as " +"an outgrowth of the Unofficial 386BSDPatchkit by the patchkit's last 3 " +"coordinators: Nate Williams, Rod Grimes and Jordan Hubbard." +msgstr "" +"FreeBSD 計畫的想法是在 1993 年初所形成的, 那是源自於維護一組『非官方 386BSD " +"的修正工具』計劃的三個協調維護人 Nate Williams,Rod Grimes 和 Jordan " +"Hubbard。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2419 book.translate.xml:2459 +msgid "<primary>386BSD</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:2420 +msgid "" +"The original goal was to produce an intermediate snapshot of 386BSD in order " +"to fix a number of problems with it that the patchkit mechanism just was not " +"capable of solving. The early working title for the project was 386BSD 0.5 " +"or 386BSD Interim in reference of that fact." +msgstr "" +"最初的目標是做出一份 386BSD 綜合修正的 snapshot 版,以便修正當時一堆 " +"patchkit 都不容易解決的問題。有些人可能還記得早期的計劃名稱叫做 386BSD 0.5 " +"或 386BSD Interim 就是這個原因。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2426 +msgid "<primary>Jolitz, Bill</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:2427 +msgid "" +"386BSD was Bill Jolitz's operating system, which had been up to that point " +"suffering rather severely from almost a year's worth of neglect. As the " +"patchkit swelled ever more uncomfortably with each passing day, they decided " +"to assist Bill by providing this interim <quote>cleanup</quote> snapshot. " +"Those plans came to a rude halt when Bill Jolitz suddenly decided to " +"withdraw his sanction from the project without any clear indication of what " +"would be done instead." +msgstr "" +"386BSD 是 Bill Jolitz 的作業系統,在當時就已有約一年的分裂討論。 當該修正工" +"具 (patchkit) 日漸龐雜得令人不舒服,我們無異議地同意要作一些事了, 並決定提供" +"一份臨時性的 <quote>淨化版(cleanup)</quote> 來幫助 Bill。 然而,由於 Bill " +"Jolitz 忽然決定取消其對該計劃的認可,且沒有明確指出未來的打算, 所以該計劃便" +"突然面臨斷炊危機。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2437 +msgid "<primary>Greenman, David</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2438 +msgid "<primary>Walnut Creek CDROM</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:2440 +msgid "" +"The trio thought that the goal remained worthwhile, even without Bill's " +"support, and so they adopted the name \"FreeBSD\" coined by David Greenman. " +"The initial objectives were set after consulting with the system's current " +"users and, once it became clear that the project was on the road to perhaps " +"even becoming a reality, Jordan contacted Walnut Creek CDROM with an eye " +"toward improving FreeBSD's distribution channels for those many unfortunates " +"without easy access to the Internet. Walnut Creek CDROM not only supported " +"the idea of distributing FreeBSD on CD but also went so far as to provide " +"the project with a machine to work on and a fast Internet connection. " +"Without Walnut Creek CDROM's almost unprecedented degree of faith in what " +"was, at the time, a completely unknown project, it is quite unlikely that " +"FreeBSD would have gotten as far, as fast, as it has today." +msgstr "" +"不久我們便決定在即使沒有 Bill 的支持下,讓該計劃仍然繼續下去, 最後我們採用 " +"David Greenman 丟銅板決定的名字,也就是『FreeBSD』。 在詢問了當時的一些使用者" +"意見之後,就開始決定了最初的目標, 當該計劃開始實施一切就要成真時,一切就變得" +"更清楚了。 我跟 Walnut Creek CD-ROM 討論發行 CD-ROM 這樣子不便上網的人就可以" +"用比較簡單的方式取得 FreeBSD。 Walnut Creek CD-ROM 不只贊成以 CD-ROM 來發行 " +"FreeBSD 的想法,同時提供了一台機器以及快速的網際網路的頻寬。 如果不是 Walnut " +"Creek CD-ROM 幾乎是空前的信任這個剛開始還是完全默默無聞的計劃, 那麼很可能 " +"FreeBSD 不會如此快速的成長到今日這樣的規模。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2456 +msgid "<primary>4.3BSD-Lite</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2457 book.translate.xml:2472 +msgid "<primary>Net/2</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2458 book.translate.xml:2471 +msgid "<primary>U.C. Berkeley</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2460 book.translate.xml:8837 +msgid "<primary>Free Software Foundation</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:2462 +msgid "" +"The first CD-ROM (and general net-wide) distribution was FreeBSD 1.0, " +"released in December of 1993. This was based on the 4.3BSD-Lite " +"(<quote>Net/2</quote>) tape from U.C. Berkeley, with many components also " +"provided by 386BSD and the Free Software Foundation. It was a fairly " +"reasonable success for a first offering, and they followed it with the " +"highly successful FreeBSD 1.1 release in May of 1994." +msgstr "" +"第一張以 CD-ROM (及網路)發行的 FreeBSD 1.0 是在 1993 年十二月。 該版本是基於" +"由 U.C. Berkeley 以磁帶方式發行的 4.3BSD-Lite (<quote>Net/2</quote>)以及許多" +"來自於 386BSD 和自由軟體基金會的軟體。對於第一次發行而言還算成功, 我們又接著" +"於 1994 年 5 月發行了相當成功的 FreeBSD 1.1。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2470 +msgid "<primary>Novell</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2473 +msgid "<primary>AT&T</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:2474 +msgid "" +"Around this time, some rather unexpected storm clouds formed on the horizon " +"as Novell and U.C. Berkeley settled their long-running lawsuit over the " +"legal status of the Berkeley Net/2 tape. A condition of that settlement was " +"U.C. Berkeley's concession that large parts of Net/2 were <quote>encumbered</" +"quote> code and the property of Novell, who had in turn acquired it from " +"AT&T some time previously. What Berkeley got in return was Novell's " +"<quote>blessing</quote> that the 4.4BSD-Lite release, when it was finally " +"released, would be declared unencumbered and all existing Net/2 users would " +"be strongly encouraged to switch. This included FreeBSD, and the project was " +"given until the end of July 1994 to stop shipping its own Net/2 based " +"product. Under the terms of that agreement, the project was allowed one last " +"release before the deadline, that release being FreeBSD 1.1.5.1." +msgstr "" +"然而此後不久,另一個意外的風暴在 Novell 和 U.C. Berkeley 關於 Berkeley Net/2 " +"磁帶之法律地位的訴訟確定之後形成。 U.C. Berkeley 接受大部份的 Net/2 的程式碼" +"都是<quote>侵佔來的</quote>且是屬於 Novell 的財產 -- 事實上是當時不久前從 " +"AT&T 取得的。 Berkeley 得到的是 Novell 對於 4.4BSD-Lite 的<quote>祝福</" +"quote>,最後當 4.4BSD-Lite 終於發行之後,便不再是侵佔行為。 而所有現有 Net/2 " +"使用者都被強烈建議更換新版本,這包括了 FreeBSD。 於是,我們被要求於 1994 年 " +"6 月底前停止散佈基於 Net/2 的產品。在此前提之下,本計劃被允許在期限以前作最後" +"一次發行,也就是 FreeBSD 1.1.5.1。" + +#. (itstool) path: sect2/para +#: book.translate.xml:2491 +msgid "" +"FreeBSD then set about the arduous task of literally re-inventing itself " +"from a completely new and rather incomplete set of 4.4BSD-Lite bits. The " +"<quote>Lite</quote> releases were light in part because Berkeley's CSRG had " +"removed large chunks of code required for actually constructing a bootable " +"running system (due to various legal requirements) and the fact that the " +"Intel port of 4.4 was highly incomplete. It took the project until November " +"of 1994 to make this transition, and in December it released FreeBSD 2.0 to " +"the world. Despite being still more than a little rough around the edges, " +"the release was a significant success and was followed by the more robust " +"and easier to install FreeBSD 2.0.5 release in June of 1995." +msgstr "" +"FreeBSD 便開始了這宛如『重新發明輪子』的艱鉅工作 -- 從全新的且不完整的 " +"4.4BSD-Lite 重新整合。 這個 <quote>Lite</quote> 版本是不完整的,因為 " +"Berkeley 的 CSRG 已經刪除了大量在建立一個可以開機執行的系統所需要的程式碼 (基" +"於若干法律上的要求),且該版本在 Intel 平台的移植是非常不完整的。 直到 1994 " +"年 11 月本計劃才完成了這個轉移, 同時在該年 12 月底以 CD-ROM 以及網路的形式發" +"行了 FreeBSD 2.0。 雖然該份版本在當時有點匆促粗糙,但仍是富有意義的成功。 隨" +"之於 1995 年 6 月又發行了更容易安裝,更好的 FreeBSD 2.0.5。" + +#. (itstool) path: sect2/para +#: book.translate.xml:2505 +msgid "" +"Since that time, FreeBSD has made a series of releases each time improving " +"the stability, speed, and feature set of the previous version." +msgstr "" +"自那時以來,FreeBSD 在每一次對先前版本改進穩定性、速度及功能時便會發佈一個新" +"的發佈版本。" + +#. (itstool) path: sect2/para +#: book.translate.xml:2509 +msgid "" +"For now, long-term development projects continue to take place in the 10.X-" +"CURRENT (trunk) branch, and snapshot releases of 10.X are continually made " +"available from <link xlink:href=\"ftp://ftp.FreeBSD.org/pub/FreeBSD/" +"snapshots/\">the snapshot server</link> as work progresses." +msgstr "" +"目前,長期的開發計畫繼續在 10.X-CURRENT (trunk) 分支中進行,而 10.X 的 " +"snapshot 版本可以在 <link xlink:href=\"ftp://ftp.FreeBSD.org/pub/FreeBSD/" +"snapshots/\">Snapshot 伺服器</link> 取得。" + +#. (itstool) path: info/title +#: book.translate.xml:2517 +msgid "FreeBSD Project Goals" +msgstr "FreeBSD 計劃目標" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:2520 +msgid "" +"<personname> <firstname>Jordan</firstname> <surname>Hubbard</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2530 +msgid "<primary>FreeBSD Project</primary> <secondary>goals</secondary>" +msgstr "<primary>FreeBSD 計劃</primary> <secondary>目標</secondary>" + +#. (itstool) path: sect2/para +#: book.translate.xml:2534 +msgid "" +"The goals of the FreeBSD Project are to provide software that may be used " +"for any purpose and without strings attached. Many of us have a significant " +"investment in the code (and project) and would certainly not mind a little " +"financial compensation now and then, but we are definitely not prepared to " +"insist on it. We believe that our first and foremost <quote>mission</quote> " +"is to provide code to any and all comers, and for whatever purpose, so that " +"the code gets the widest possible use and provides the widest possible " +"benefit. This is, I believe, one of the most fundamental goals of Free " +"Software and one that we enthusiastically support." +msgstr "" +"FreeBSD 計劃的目標在於提供可作任意用途的軟體而不附帶任何限制條文。 我們之中許" +"多人對程式碼 (以及計畫本身) 都有非常大的投入, 因此,當然不介意偶爾有一些資金" +"上的補償,但我們並沒打算堅決地要求得到這類資助。 我們認為我們的首要<quote>使" +"命</quote>是為任何人提供程式碼, 不管他們打算用這些程式碼做什麼, 因為這樣程" +"式碼將能夠被更廣泛地使用,從而發揮其價值。 我認為這是自由軟體最基本的,同時也" +"是我們所倡導的一個目標。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2546 +msgid "<primary>GNU General Public License (GPL)</primary>" +msgstr "<primary>GNU 通用公共授權條款 (GPL)</primary>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2549 +msgid "<primary>GNU Lesser General Public License (LGPL)</primary>" +msgstr "<primary>GNU 較寬鬆通用公共授權條款 (LGPL)</primary>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2552 +msgid "<primary>BSD Copyright</primary>" +msgstr "<primary>BSD 版權</primary>" + +#. (itstool) path: sect2/para +#: book.translate.xml:2553 +msgid "" +"That code in our source tree which falls under the GNU General Public " +"License (GPL) or Library General Public License (LGPL) comes with slightly " +"more strings attached, though at least on the side of enforced access rather " +"than the usual opposite. Due to the additional complexities that can evolve " +"in the commercial use of GPL software we do, however, prefer software " +"submitted under the more relaxed BSD copyright when it is a reasonable " +"option to do so." +msgstr "" +"我們程式碼樹中,有若干是以 GNU 通用公共授權條款 (GPL) 或者 GNU Lesser " +"General Public License (LGPL) 發佈的那些程式碼帶有少許的附加限制,還好只是強" +"制性的要求開放程式碼而不是別的。 由於使用 GPL 的軟體在商業用途上會增加若干複" +"雜性,因此,如果可以選擇的話, 我們會比較喜歡使用限制相對更寬鬆的 BSD 版權來" +"發佈軟體。" + +#. (itstool) path: info/title +#: book.translate.xml:2565 +msgid "The FreeBSD Development Model" +msgstr "FreeBSD 開發模式" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:2568 +msgid "" +"<personname> <firstname>Satoshi</firstname> <surname>Asami</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:2578 +msgid "" +"<primary>FreeBSD Project</primary> <secondary>development model</secondary>" +msgstr "<primary>FreeBSD 專案</primary> <secondary>開發模式</secondary>" + +#. (itstool) path: sect2/para +#: book.translate.xml:2583 +msgid "" +"The development of FreeBSD is a very open and flexible process, being " +"literally built from the contributions of thousands of people around the " +"world, as can be seen from our <link xlink:href=\"@@URL_RELPREFIX@@/doc/" +"en_US.ISO8859-1/articles/contributors/article.html\">list of contributors</" +"link>. FreeBSD's development infrastructure allow these thousands of " +"contributors to collaborate over the Internet. We are constantly on the " +"lookout for new developers and ideas, and those interested in becoming more " +"closely involved with the project need simply contact us at the <link xlink:" +"href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers\">FreeBSD " +"technical discussions mailing list</link>. The <link xlink:href=\"http://" +"lists.FreeBSD.org/mailman/listinfo/freebsd-announce\">FreeBSD announcements " +"mailing list</link> is also available to those wishing to make other FreeBSD " +"users aware of major areas of work." +msgstr "" +"FreeBSD 的開發是一個非常開放且具彈性的過程,就像從 <link xlink:href=" +"\"@@URL_RELPREFIX@@/doc/zh_TW.UTF-8/articles/contributors/article.html\">貢獻" +"者名單</link> 所看到的,是由全世界成千上萬的貢獻者發展起來的。 FreeBSD 的開發" +"基礎架構允許數以百計的開發者透過網際網路協同工作。 我們也經常關注著那些對我們" +"的計畫感興趣的新開發者和新的創意, 那些有興趣更進一步參與計劃的人只需要在 " +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers" +"\">FreeBSD 技術討論郵遞論壇</link> 連繫我們。 <link xlink:href=\"http://" +"lists.FreeBSD.org/mailman/listinfo/freebsd-announce\">FreeBSD 公告郵遞論壇</" +"link> 對那些希望了解我們進度的人也是相當有用的。" + +#. (itstool) path: sect2/para +#: book.translate.xml:2596 +msgid "" +"Useful things to know about the FreeBSD Project and its development process, " +"whether working independently or in close cooperation:" +msgstr "" +"無論是單獨開發者或者封閉式的團隊合作,多瞭解 FreeBSD 計劃和它的開發過程會是不" +"錯的︰" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:2602 +msgid "The SVN repositories<anchor xml:id=\"development-cvs-repository\"/>" +msgstr "SVN 檔案庫<anchor xml:id=\"development-cvs-repository\"/>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2606 +msgid "<primary>CVS</primary>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2610 +msgid "<primary>CVS Repository</primary>" +msgstr "<primary>CVS 檔案庫</primary>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2614 +msgid "<primary>Concurrent Versions System</primary> <see>CVS</see>" +msgstr "" + +#. (itstool) path: para/indexterm +#. (itstool) path: sect1/indexterm +#: book.translate.xml:2619 book.translate.xml:44965 book.translate.xml:45005 +#: book.translate.xml:65535 +msgid "<primary>Subversion</primary>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2623 +msgid "<primary>Subversion Repository</primary>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2627 +msgid "<primary>SVN</primary> <see>Subversion</see>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2605 +msgid "" +"<_:indexterm-1/> <_:indexterm-2/> <_:indexterm-3/> <_:indexterm-4/> <_:" +"indexterm-5/> <_:indexterm-6/> For several years, the central source tree " +"for FreeBSD was maintained by <link xlink:href=\"http://www.nongnu.org/cvs/" +"\">CVS</link> (Concurrent Versions System), a freely available source code " +"control tool. In June 2008, the Project switched to using <link xlink:href=" +"\"http://subversion.tigris.org\">SVN</link> (Subversion). The switch was " +"deemed necessary, as the technical limitations imposed by <application>CVS</" +"application> were becoming obvious due to the rapid expansion of the source " +"tree and the amount of history already stored. The Documentation Project and " +"Ports Collection repositories also moved from <application>CVS</application> " +"to <application>SVN</application> in May 2012 and July 2012, respectively. " +"Please refer to the <link linkend=\"synching\">Synchronizing your source " +"tree</link> section for more information on obtaining the FreeBSD " +"<literal>src/</literal> repository and <link linkend=\"ports-using\">Using " +"the Ports Collection</link> for details on obtaining the FreeBSD Ports " +"Collection." +msgstr "" +"<_:indexterm-1/> <_:indexterm-2/> <_:indexterm-3/> <_:indexterm-4/> <_:" +"indexterm-5/> <_:indexterm-6/>過去數年來 FreeBSD 的中央原始碼樹 (Source " +"tree) 一直是以 <link xlink:href=\"http://www.nongnu.org/cvs/\">CVS</link> " +"(Concurrent Versions System) 來維護的, 它是一套免費的原始碼控管工具。 從 " +"2008 年 6 月起, FreeBSD 計劃開始改用 <link xlink:href=\"http://subversion." +"tigris.org\">SVN</link> (Subversion)。 這是一個必要的更換動作,因為隨著原始碼" +"樹及歷史版本儲存的數量不斷快速擴張,<application>CVS</application> 先天的技術" +"限制越來越明顯。 文件計劃與 Ports 套件集檔案庫也同樣於 2012 年 5 月及 2012 " +"年 7 月由 <application>CVS</application> 改為 <application>SVN</" +"application>。請參考 <link linkend=\"synching\">同步您的原始碼樹</link> 一節" +"來取得有關如何取得 FreeBSD <literal>src/</literal> 檔案庫的更多資訊,以及 " +"<link linkend=\"ports-using\">使用 Ports 套件集</link> 了解如何取得 FreeBSD " +"Ports 套件集。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:2654 +msgid "The committers list<anchor xml:id=\"development-committers\"/>" +msgstr "提交者名單<anchor xml:id=\"development-committers\"/>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2658 +msgid "<primary>committers</primary>" +msgstr "<primary>提交者</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:2657 +msgid "" +"The <firstterm>committers</firstterm> <_:indexterm-1/> are the people who " +"have <emphasis>write</emphasis> access to the Subversion tree, and are " +"authorized to make modifications to the FreeBSD source (the term " +"<quote>committer</quote> comes from <command>commit</command>, the source " +"control command which is used to bring new changes into the repository). " +"Anyone can submit a bug to the <link xlink:href=\"https://bugs.FreeBSD.org/" +"submit/\">Bug Database</link>. Before submitting a bug report, the FreeBSD " +"mailing lists, IRC channels, or forums can be used to help verify that an " +"issue is actually a bug." +msgstr "" +"所謂的 <firstterm>提交者 (Committers)</firstterm> 指的是對 Subversion 原始碼" +"樹有 <emphasis>寫入</emphasis> 權限的人, 並且被授予修改 FreeBSD 原始碼的權" +"限。 (<quote>committer</quote> 一詞源自版本管理系統中的 <command>commit</" +"command> 指令,該指令是用來把新的修改提交給檔案庫)。 任何人都可以回報問題到 " +"<link xlink:href=\"https://bugs.FreeBSD.org/submit/\">Bug Database</link>,在" +"回報問題之前,可以使用 FreeBSD 郵遞清單、IRC 頻道或論壇來確認問題真的是一個錯" +"誤 (Bug)。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:2674 +msgid "The FreeBSD core team<anchor xml:id=\"development-core\"/>" +msgstr "FreeBSD 核心團隊<anchor xml:id=\"development-core\"/>" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2678 +msgid "<primary>core team</primary>" +msgstr "<primary>核心團隊</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:2677 +msgid "" +"The <firstterm>FreeBSD core team</firstterm> <_:indexterm-1/> would be " +"equivalent to the board of directors if the FreeBSD Project were a company. " +"The primary task of the core team is to make sure the project, as a whole, " +"is in good shape and is heading in the right directions. Inviting dedicated " +"and responsible developers to join our group of committers is one of the " +"functions of the core team, as is the recruitment of new core team members " +"as others move on. The current core team was elected from a pool of " +"committer candidates in July 2014. Elections are held every 2 years." +msgstr "" +"如果把 FreeBSD 看成是一家公司的話, <firstterm>FreeBSD 核心團隊</" +"firstterm><_:indexterm-1/> 就相當於董事會。 核心團隊的主要職責在於確保此計劃" +"有良好的架構,以朝著正確的方向發展。 此外,邀請熱血且負責的軟體開發者加入提交" +"者的行列, 以在若干成員離去時得以補充新血。 目前的核心團隊是在 2014 年 7 月從" +"提交者候選人之中選出來的,這個選舉每兩年會舉辦一次。" + +#. (itstool) path: note/para +#: book.translate.xml:2693 +msgid "" +"Like most developers, most members of the core team are also volunteers when " +"it comes to FreeBSD development and do not benefit from the project " +"financially, so <quote>commitment</quote> should also not be misconstrued as " +"meaning <quote>guaranteed support.</quote> The <quote>board of directors</" +"quote> analogy above is not very accurate, and it may be more suitable to " +"say that these are the people who gave up their lives in favor of FreeBSD " +"against their better judgement!" +msgstr "" +"如同多數的開發者,核心團隊大部分成員加入 FreeBSD 開發都是志工性質而已, 並未" +"從本計劃中獲得任何薪酬,所以這只是一個 <quote>承諾</quote> 不應該被誤解為 " +"<quote>保證支援</quote> 才對。 前面用 <quote>董事會</quote> 來舉例可能不是很" +"恰當,或許我們應該說: 他們是一群自願放棄原本的優渥生活、個人其他領域成就, " +"而選擇投入 FreeBSD 開發的熱血有為者才對!" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:2708 +msgid "Outside contributors" +msgstr "非官方貢獻者" + +#. (itstool) path: listitem/para +#: book.translate.xml:2711 +msgid "" +"Last, but definitely not least, the largest group of developers are the " +"users themselves who provide feedback and bug fixes to us on an almost " +"constant basis. The primary way of keeping in touch with FreeBSD's more non-" +"centralized development is to subscribe to the <link xlink:href=\"http://" +"lists.FreeBSD.org/mailman/listinfo/freebsd-hackers\">FreeBSD technical " +"discussions mailing list</link> where such things are discussed. See <xref " +"linkend=\"eresources\"/> for more information about the various FreeBSD " +"mailing lists." +msgstr "" +"最後一點,但這點絕非最不重要的, 最大的開發者團隊就是持續為我們提供回饋以及錯" +"誤修正的使用者自己。 與 FreeBSD 非核心開發者互動的主要方式,便是透過訂閱 " +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers" +"\">FreeBSD 技術討論郵遞論壇</link> 來進行溝通,這方面可參考,請參閱 <xref " +"linkend=\"eresources\"/> 以瞭解各式不同的 FreeBSD 郵遞論壇。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2722 +msgid "<primary>contributors</primary>" +msgstr "<primary>貢獻者</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:2720 +msgid "" +"<citetitle><link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/" +"contributors/article.html\">The FreeBSD Contributors List</link></citetitle> " +"<_:indexterm-1/> is a long and growing one, so why not join it by " +"contributing something back to FreeBSD today?" +msgstr "" +"<citetitle><link xlink:href=\"@@URL_RELPREFIX@@/doc/zh_TW.UTF-8/articles/" +"contributors/article.html\">FreeBSD 貢獻者名單</link></citetitle> <_:" +"indexterm-1/> 相當長且不斷成長中, 只要有貢獻就會被列入其中, 要不要立即考慮" +"貢獻 FreeBSD 一些回饋呢?" + +#. (itstool) path: listitem/para +#: book.translate.xml:2727 +msgid "" +"Providing code is not the only way of contributing to the project; for a " +"more complete list of things that need doing, please refer to the <link " +"xlink:href=\"@@URL_RELPREFIX@@/index.html\">FreeBSD Project web site</link>." +msgstr "" +"提供原始碼並非為這個計劃做貢獻的唯一方式; 需要大家投入的完整工作清單請參閱 " +"<link xlink:href=\"@@URL_RELPREFIX@@/index.html\">FreeBSD 計畫網站</link>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:2735 +msgid "" +"In summary, our development model is organized as a loose set of concentric " +"circles. The centralized model is designed for the convenience of the " +"<emphasis>users</emphasis> of FreeBSD, who are provided with an easy way of " +"tracking one central code base, not to keep potential contributors out! Our " +"desire is to present a stable operating system with a large set of coherent " +"<link linkend=\"ports\">application programs</link> that the users can " +"easily install and use — this model works very well in accomplishing that." +msgstr "" +"總而言之,我們的開發模式像是由鬆散的同心圓所組織。這個集中模式的設計為的是讓 " +"FreeBSD 的<emphasis>使用者</emphasis>更便利,可以很容易的追蹤同一個中央的程式" +"庫,避免把潛在的貢獻者排除在外!而我們的目標是提供一個穩定的作業系統,並有大" +"量相關的 <link linkend=\"ports\">應用程式</link>,讓使用者能夠輕鬆的安裝與使" +"用 — 而這個開發模式對我們要完成這個目標來說運作的非常好。" + +#. (itstool) path: sect2/para +#: book.translate.xml:2745 +msgid "" +"All we ask of those who would join us as FreeBSD developers is some of the " +"same dedication its current people have to its continued success!" +msgstr "" +"我們對於那些想要加入 FreeBSD 開發者的期待是: 請保持如同前人一樣的投入,以確" +"保繼續成功!" + +#. (itstool) path: sect2/title +#: book.translate.xml:2751 +msgid "Third Party Programs" +msgstr "第三方程式" + +#. (itstool) path: sect2/para +#: book.translate.xml:2753 +msgid "" +"In addition to the base distributions, FreeBSD offers a ported software " +"collection with thousands of commonly sought-after programs. At the time of " +"this writing, there were over 24,000 ports! The list of ports ranges from " +"http servers, to games, languages, editors, and almost everything in " +"between. The entire Ports Collection requires approximately 500 MB. To " +"compile a port, you simply change to the directory of the program you wish " +"to install, type <command>make install</command>, and let the system do the " +"rest. The full original distribution for each port you build is retrieved " +"dynamically so you need only enough disk space to build the ports you want. " +"Almost every port is also provided as a pre-compiled <quote>package</quote>, " +"which can be installed with a simple command (<command>pkg install</" +"command>) by those who do not wish to compile their own ports from source. " +"More information on packages and ports can be found in <xref linkend=\"ports" +"\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:2774 +msgid "Additional Documentation" +msgstr "其他文件" + +#. (itstool) path: sect2/para +#: book.translate.xml:2776 +msgid "" +"All recent FreeBSD versions provide an option in the installer (either " +"<citerefentry><refentrytitle>sysinstall</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> or <citerefentry><refentrytitle>bsdinstall</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>) to install additional " +"documentation under <filename>/usr/local/share/doc/freebsd</filename> during " +"the initial system setup. Documentation may also be installed at any later " +"time using packages as described in <xref linkend=\"doc-ports-install-package" +"\"/>. You may view the locally installed manuals with any HTML capable " +"browser using the following URLs:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:2788 +msgid "The FreeBSD Handbook" +msgstr "FreeBSD 使用手冊" + +#. (itstool) path: listitem/para +#: book.translate.xml:2791 +msgid "" +"<link xlink:href=\"file://localhost/usr/local/share/doc/freebsd/handbook/" +"index.html\"><filename>/usr/local/share/doc/freebsd/handbook/index.html</" +"filename></link>" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:2796 +msgid "The FreeBSD FAQ" +msgstr "FreeBSD 常見問答集" + +#. (itstool) path: listitem/para +#: book.translate.xml:2799 +msgid "" +"<link xlink:href=\"file://localhost/usr/local/share/doc/freebsd/faq/index." +"html\"><filename>/usr/local/share/doc/freebsd/faq/index.html</filename></" +"link>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:2804 +msgid "" +"You can also view the master (and most frequently updated) copies at <uri " +"xlink:href=\"http://www.FreeBSD.org/\">http://www.FreeBSD.org/</uri>." +msgstr "" +"此外,可在下列網址找到最新版 (也是更新最頻繁的版本):<uri xlink:href=" +"\"http://www.FreeBSD.org/\">http://www.FreeBSD.org/</uri>。" + +#. (itstool) path: info/title +#: book.translate.xml:2820 +msgid "Installing FreeBSD" +msgstr "安裝 FreeBSD" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:2846 +msgid "" +"<personname> <firstname>Gavin</firstname> <surname>Atkinson</surname> </" +"personname> <contrib>Updated for bsdinstall by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:2855 +msgid "" +"<personname> <firstname>Warren</firstname> <surname>Block</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:2864 +msgid "" +"<personname> <firstname>Allan</firstname> <surname>Jude</surname> </" +"personname> <contrib>Updated for root-on-ZFS by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:2878 +msgid "<primary>installation</primary>" +msgstr "<primary>安裝</primary>" + +#. (itstool) path: sect1/para +#: book.translate.xml:2880 +msgid "" +"Beginning with FreeBSD 9.0-RELEASE, FreeBSD provides an easy to use, text-" +"based installation program named <application>bsdinstall</application>. This " +"chapter describes how to install FreeBSD using <application>bsdinstall</" +"application>." +msgstr "" +"自從 FreeBSD 9.0-RELEASE 開始, FreeBSD 提供一個易用,文字介面的安裝程式 " +"<application>bsdinstall</application>。 本章描述如何用 " +"<application>bsdinstall</application> 來安裝 FreeBSD。" + +#. (itstool) path: sect1/para +#: book.translate.xml:2886 +msgid "" +"In general, the installation instructions in this chapter are written for " +"the <trademark>i386</trademark> and <acronym>AMD64</acronym> architectures. " +"Where applicable, instructions specific to other platforms will be listed. " +"There may be minor differences between the installer and what is shown here, " +"so use this chapter as a general guide rather than as a set of literal " +"instructions." +msgstr "" +"一般來說,本章所寫的安裝說明是針對 <trademark>i386</trademark> 和 " +"<acronym>AMD64</acronym> 架構。如果可以用於其他平台,將會列表說明。 安裝程式" +"和本章所敘述的內容可能會有些微差異,所以請將本章視為通用的指引,而不是完全照" +"著來做。" + +#. (itstool) path: note/para +#: book.translate.xml:2895 +msgid "" +"Users who prefer to install FreeBSD using a graphical installer may be " +"interested in <application>pc-sysinstall</application>, the installer used " +"by the PC-BSD Project. It can be used to install either a graphical desktop " +"(PC-BSD) or a command line version of FreeBSD. Refer to the PC-BSD Users " +"Handbook for details (<link xlink:href=\"http://wiki.pcbsd.org/index.php/" +"Colophon\">http://wiki.pcbsd.org/index.php/Colophon</link>)." +msgstr "" +"喜歡用圖形化安裝程式安裝 FreeBSD 的使用者, 可能會對 <application>pc-" +"sysinstall</application> 有興趣,這是 PC-BSD 計畫所使用的。 他可以用來安裝圖" +"形化桌面 (PC-BSD) 或是指令列版本的 FreeBSD。 細節請參考 PC-BSD 使用者 " +"Handbook (<link xlink:href=\"http://wiki.pcbsd.org/index.php/Colophon" +"\">http://wiki.pcbsd.org/index.php/Colophon</link>)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:2907 +msgid "The minimum hardware requirements and FreeBSD supported architectures." +msgstr "最低的硬體需求和 FreeBSD 支援的架構。" + +#. (itstool) path: listitem/para +#: book.translate.xml:2912 +msgid "How to create the FreeBSD installation media." +msgstr "如何建立 FreeBSD 的安裝媒體。" + +#. (itstool) path: listitem/para +#: book.translate.xml:2916 +msgid "How to start <application>bsdinstall</application>." +msgstr "如何開始執行 <application>bsdinstall</application>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:2921 +msgid "" +"The questions <application>bsdinstall</application> will ask, what they " +"mean, and how to answer them." +msgstr "" +"<application>bsdinstall</application> 會詢問的問題,問題代表的意思,以及如何" +"回答。" + +#. (itstool) path: listitem/para +#: book.translate.xml:2926 +msgid "How to troubleshoot a failed installation." +msgstr "安裝失敗時如何做故障排除。" + +#. (itstool) path: listitem/para +#: book.translate.xml:2930 +msgid "" +"How to access a live version of FreeBSD before committing to an installation." +msgstr "如何在正式安裝前使用 live 版本的 FreeBSD。" + +#. (itstool) path: sect1/para +#: book.translate.xml:2935 book.translate.xml:10584 book.translate.xml:13889 +#: book.translate.xml:17960 book.translate.xml:19218 book.translate.xml:23642 +#: book.translate.xml:29313 book.translate.xml:31060 book.translate.xml:31812 +#: book.translate.xml:35456 book.translate.xml:41387 book.translate.xml:41582 +#: book.translate.xml:42906 book.translate.xml:43940 book.translate.xml:46101 +#: book.translate.xml:46460 book.translate.xml:48671 book.translate.xml:50377 +#: book.translate.xml:58024 book.translate.xml:61670 +msgid "Before reading this chapter, you should:" +msgstr "在開始閱讀這章之前,您需要︰" + +#. (itstool) path: listitem/para +#: book.translate.xml:2939 +msgid "" +"Read the supported hardware list that shipped with the version of FreeBSD to " +"be installed and verify that the system's hardware is supported." +msgstr "" +"閱讀即將安裝的 FreeBSD 版本所附帶的硬體支援清單,並核對系統的硬體是否有支援。" + +#. (itstool) path: sect1/title +#: book.translate.xml:2947 +msgid "Minimum Hardware Requirements" +msgstr "最低硬體需求" + +#. (itstool) path: sect1/para +#: book.translate.xml:2949 +msgid "" +"The hardware requirements to install FreeBSD vary by the hardware " +"architecture. Hardware architectures and devices supported by a FreeBSD " +"release are listed on the Release Information page of the FreeBSD web site " +"(<link xlink:href=\"@@URL_RELPREFIX@@/releases/index.html\">http://www." +"FreeBSD.org/releases/index.html</link>)." +msgstr "" +"安裝 FreeBSD 的硬體需求隨 FreeBSD 的版本和硬體架構而不同。 FreeBSD 發行版支援" +"的硬體架構和裝置可在 FreeBSD 網站 (<link xlink:href=\"@@URL_RELPREFIX@@/" +"releases/index.html\">http://www.FreeBSD.org/releases/index.html</link>)的發" +"行資訊頁面找到。" + +#. (itstool) path: sect1/para +#: book.translate.xml:2954 +msgid "" +"A FreeBSD installation will require a minimum 64 MB of <acronym>RAM</" +"acronym> and 1.5 GB of free hard drive space for the most minimal " +"installation. However, that is a <emphasis>minimal</emphasis> install, " +"leaving almost no free space. RAM requirements depend on usage. Specialized " +"FreeBSD systems can run in as little as 128MB RAM while desktop systems " +"should have at least 4 GB of <acronym>RAM</acronym>." +msgstr "" +"FreeBSD 最小安裝需要至少 64 MB 的 <acronym>RAM</acronym> 和 1.5 GB 的可用硬碟" +"空間 但是這真的是 <emphasis>最小</emphasis>,幾乎沒有剩下多餘的空間。 RAM 的" +"需求視實際使用而訂,經特殊處理過後的 FreeBSD 系統可只使用 128MB RAM,圖形化環" +"境最少需要 4 GB 的 <acronym>RAM</acronym>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:2963 +msgid "" +"The processor requirements for each architecture can be summarized as " +"follows:" +msgstr "每一種架構的處理器需求概述如下:" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:2968 +msgid "amd64" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2970 +msgid "" +"This is the most common type of processor desktop and laptop computers will " +"have. Other vendors may call this architecture <acronym>x86-64</acronym>." +msgstr "" +"這桌上型電腦與筆記型電腦是最常見的處理器類型,有些廠商可能會稱之為 " +"<acronym>x86-64</acronym>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:2974 +msgid "" +"There are two primary vendors of amd64 processors: <trademark class=" +"\"registered\">Intel</trademark> (which produces <acronym>Intel64</acronym> " +"class processors) and AMD (which produces <acronym>AMD64</acronym>)." +msgstr "" +"主要有兩個廠商提供 amd64 處理器:<trademark class=\"registered\">Intel</" +"trademark> (生產 <acronym>Intel64</acronym> 級處理器) 以及 AMD (生產 " +"<acronym>AMD64</acronym>)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:2979 +msgid "" +"Examples of amd64 compatible processsors include: <trademark>AMD Athlon</" +"trademark>64, <trademark>AMD Opteron</trademark>, multi-core <trademark " +"class=\"registered\">Intel</trademark> <trademark>Xeon</trademark>, and " +"<trademark class=\"registered\">Intel</trademark> <trademark>Core</" +"trademark> 2 and later processors." +msgstr "" +"與 amd64 相容的處理器包含:<trademark>AMD Athlon</trademark>64, " +"<trademark>AMD Opteron</trademark>, 多核心 <trademark class=\"registered" +"\">Intel</trademark> <trademark>Xeon</trademark> 以及 <trademark class=" +"\"registered\">Intel</trademark> <trademark>Core</trademark> 2 與之後的處理" +"器。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:2987 +msgid "i386" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:2989 +msgid "This architecture is the 32-bit x86 architecture." +msgstr "這個架構即為 32-bit x86 架構。" + +#. (itstool) path: listitem/para +#: book.translate.xml:2992 +msgid "" +"Almost all i386-compatible processors with a floating point unit are " +"supported. All <trademark class=\"registered\">Intel</trademark> processors " +"486 or higher are supported." +msgstr "" +"幾乎所有含浮點運算單元的 i386 相容處理器都有支援。所有 <trademark class=" +"\"registered\">Intel</trademark> 486 或是更高階的處理器也有支援。" + +#. (itstool) path: listitem/para +#: book.translate.xml:2996 +msgid "" +"FreeBSD will take advantage of Physical Address Extensions (<acronym>PAE</" +"acronym>) support on <acronym>CPU</acronym>s that support this feature. A " +"kernel with the <acronym>PAE</acronym> feature enabled will detect memory " +"above 4 GB and allow it to be used by the system. This feature places " +"constraints on the device drivers and other features of FreeBSD which may be " +"used; refer to <citerefentry><refentrytitle>pae</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> for details." +msgstr "" +"若 <acronym>CPU</acronym> 有支援實體位址延伸(<acronym>PAE</acronym>) 功能," +"FreeBSD 可以運用這項功能的所帶來優點。有開啟 <acronym>PAE</acronym> 支援的核" +"心會偵測超過 4 GB 的記憶體,並讓這些記憶體能夠被系統使用。 這項功能會限制驅動" +"程式以及 FreeBSD 可能使用的其他功能,詳情請見 " +"<citerefentry><refentrytitle>pae</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:3008 +msgid "ia64" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3010 +msgid "" +"Currently supported processors are the <trademark class=\"registered" +"\">Itanium</trademark> and the <trademark class=\"registered\">Itanium</" +"trademark> 2. Supported chipsets include the HP zx1, <trademark class=" +"\"registered\">Intel</trademark> 460GX, and <trademark class=\"registered" +"\">Intel</trademark> E8870. Both Uniprocessor (<acronym>UP</acronym>) and " +"Symmetric Multi-processor (<acronym>SMP</acronym>) configurations are " +"supported." +msgstr "" +"目前支援的處理器是 <trademark class=\"registered\">Itanium</trademark> 和 " +"<trademark class=\"registered\">Itanium</trademark> 2。支援的晶片組包括 HP " +"zx1, <trademark class=\"registered\">Intel</trademark> 460GX 和 <trademark " +"class=\"registered\">Intel</trademark> E8870。 單處理器 (Uniprocessor, " +"<acronym>UP</acronym>) 和對稱多處理器 (Symmetric Multi-processor, " +"<acronym>SMP</acronym>)的設定都有支援。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:3020 +msgid "pc98" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3022 +msgid "" +"NEC PC-9801/9821 series with almost all i386-compatible processors, " +"including 80486, <trademark class=\"registered\">Pentium</trademark>, " +"<trademark class=\"registered\">Pentium</trademark> Pro, and <trademark " +"class=\"registered\">Pentium</trademark> II, are all supported. All i386-" +"compatible processors by AMD, Cyrix, IBM, and IDT are also supported. EPSON " +"PC-386/486/586 series, which are compatible with NEC PC-9801 series, are " +"supported. The NEC FC-9801/9821 and NEC SV-98 series should be supported." +msgstr "" +"NEC PC-9801/9821 系列幾乎所有 i386 相容處理器包括 80486、<trademark class=" +"\"registered\">Pentium</trademark>、 <trademark class=\"registered" +"\">Pentium</trademark> Pro 和 <trademark class=\"registered\">Pentium</" +"trademark> II 都有支援。 所有 AMD, Cyrix, IBM, 及 IDT 的i386 相容處理器都有支" +"援。 相容 NEC PC-9801 的 EPSON PC-386/486/586 系列都有支援。 NEC " +"FC-9801/9821 及 NEC SV-98 系列也有支援。" + +#. (itstool) path: listitem/para +#: book.translate.xml:3031 +msgid "" +"High-resolution mode is not supported. NEC PC-98XA/XL/RL/XL^2, and NEC PC-" +"H98 series are supported in normal (PC-9801 compatible) mode only. The " +"<acronym>SMP</acronym>-related features of FreeBSD are not supported. The " +"New Extend Standard Architecture (<acronym>NESA</acronym>) bus used in the " +"PC-H98, SV-H98, and FC-H98 series, is not supported." +msgstr "" +"不支援高解析度模式。NEC PC-98XA/XL/RL/XL^2 和 NEC PC-H98 系列只支援正常 " +"(PC-9801 相容) 模式。 FreeBSD 對稱多處理器 <acronym>SMP</acronym> 相關功能並" +"不支援。 PC-H98, SV-H98 和FC-H98 新延伸標準架構 (<acronym>NESA</acronym>) 匯" +"流排不支援。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:3042 +msgid "powerpc" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3044 +msgid "" +"All New World <acronym>ROM</acronym> <trademark class=\"registered\">Apple</" +"trademark> <trademark class=\"registered\">Mac</trademark> systems with " +"built-in <acronym>USB</acronym> are supported. <acronym>SMP</acronym> is " +"supported on machines with multiple <acronym>CPU</acronym>s." +msgstr "" +"所有內建 <acronym>USB</acronym> 的 New World <acronym>ROM</acronym> " +"<trademark class=\"registered\">Apple</trademark> <trademark class=" +"\"registered\">Mac</trademark> 系統都有支援。 <acronym>SMP</acronym> 在多 " +"<acronym>CPU</acronym> 的機器都有支援。" + +#. (itstool) path: listitem/para +#: book.translate.xml:3049 +msgid "A 32-bit kernel can only use the first 2 GB of <acronym>RAM</acronym>." +msgstr "32 位元的核心只能使用前 2 GB 的 <acronym>RAM</acronym>。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:3055 +msgid "sparc64" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3057 +msgid "" +"Systems supported by FreeBSD/sparc64 are listed at the FreeBSD/sparc64 " +"Project (<link xlink:href=\"@@URL_RELPREFIX@@/platforms/sparc.html\">http://" +"www.freebsd.org/platforms/sparc.html</link>)." +msgstr "" +"FreeBSD/sparc64 支援的系統列在 FreeBSD/sparc64 計劃 (<link xlink:href=" +"\"@@URL_RELPREFIX@@/platforms/sparc.html\">http://www.freebsd.org/platforms/" +"sparc.html</link>)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:3060 +msgid "" +"<acronym>SMP</acronym> is supported on all systems with more than 1 " +"processor. A dedicated disk is required as it is not possible to share a " +"disk with another operating system at this time." +msgstr "" +"所有超過一個處理器的系統都有支援 <acronym>SMP</acronym>。需要專用的磁碟系統," +"因為此時無法和其他作業系統共用磁碟。" + +#. (itstool) path: sect1/title +#: book.translate.xml:3070 +msgid "Pre-Installation Tasks" +msgstr "安裝前準備工作" + +#. (itstool) path: sect1/para +#: book.translate.xml:3072 +msgid "" +"Once it has been determined that the system meets the minimum hardware " +"requirements for installing FreeBSD, the installation file should be " +"downloaded and the installation media prepared. Before doing this, check " +"that the system is ready for an installation by verifying the items in this " +"checklist:" +msgstr "" +"一旦確定系統符合安裝 FreeBSD 的最低硬體需求,就可以下載安裝檔案並準備安裝的媒" +"體。 做這些之前,先檢查以下核對清單的項目是否準備好了:" + +#. (itstool) path: step/title +#: book.translate.xml:3081 +msgid "Back Up Important Data" +msgstr "備份重要資料" + +#. (itstool) path: step/para +#: book.translate.xml:3083 +msgid "" +"Before installing any operating system, <emphasis>always</emphasis> backup " +"all important data first. Do not store the backup on the system being " +"installed. Instead, save the data to a removable disk such as a " +"<acronym>USB</acronym> drive, another system on the network, or an online " +"backup service. Test the backup before starting the installation to make " +"sure it contains all of the needed files. Once the installer formats the " +"system's disk, all data stored on that disk will be lost." +msgstr "" +"安裝任何作業系統前, <emphasis>總是</emphasis> 要先備份所有重要資料。 不要儲" +"存備份在即將安裝的系統上。改為將資料儲存在可移除磁碟,像是 <acronym>USB</" +"acronym> 隨身碟,網路上的另一個系統或是線上備份服務上。 開始安裝前,要測試備" +"份,確定它含有所有需要的檔案。 一旦安裝程式格式化系統的磁碟,所有儲存在上面的" +"資料都會遺失。" + +#. (itstool) path: step/title +#: book.translate.xml:3095 +msgid "Decide Where to Install FreeBSD" +msgstr "決定 FreeBSD 安裝在哪裡" + +#. (itstool) path: step/para +#: book.translate.xml:3097 +msgid "" +"If FreeBSD will be the only operating system installed, this step can be " +"skipped. But if FreeBSD will share the disk with another operating system, " +"decide which disk or partition will be used for FreeBSD." +msgstr "" +"如果 FreeBSD 是唯一要安裝的作業系統,這個步驟可以略過。 但是假如 FreeBSD 將和" +"其他作業系統分享磁碟空間的話,要決定 FreeBSD 要安裝在哪個磁碟或是哪個分割區。" + +#. (itstool) path: step/para +#: book.translate.xml:3102 +msgid "" +"In the i386 and amd64 architectures, disks can be divided into multiple " +"partitions using one of two partitioning schemes. A traditional " +"<firstterm>Master Boot Record</firstterm> (<acronym>MBR</acronym>) holds a " +"partition table defining up to four <firstterm>primary partitions</" +"firstterm>. For historical reasons, FreeBSD calls these primary partition " +"<firstterm>slices</firstterm>. One of these primary partitions can be made " +"into an <firstterm>extended partition</firstterm> containing multiple " +"<firstterm>logical partitions</firstterm>. The <firstterm>GUID Partition " +"Table</firstterm> (<acronym>GPT</acronym>) is a newer and simpler method of " +"partitioning a disk. Common <acronym>GPT</acronym> implementations allow up " +"to 128 partitions per disk, eliminating the need for logical partitions." +msgstr "" +"在 i386 和 amd64 平台,磁碟可以使用兩種分割區配置之一來分割成多個分割區。 傳" +"統的<firstterm>主開機紀錄</firstterm> (Master Boot Record, <acronym>MBR</" +"acronym>) 有一個分割區表定義最多到 <firstterm>主分割區</firstterm>。 因為歷史" +"性的理由, FreeBSD 稱這些主分割區為 <firstterm>slices</firstterm>。 其中一個" +"主分割區可以分成一個 延伸分割區 ,他包含多個 邏輯分割區。 <firstterm>GUID 分" +"割區表</firstterm> (GUID Partition Table, <acronym>GPT</acronym>) 是較新和較" +"簡單的分割磁碟的方法,一般 <acronym>GPT</acronym> 實作允許每個磁碟最多達 128 " +"個分割區,減少使用邏輯分割區的需要。" + +#. (itstool) path: warning/para +#: book.translate.xml:3120 +msgid "" +"Some older operating systems, like <trademark class=\"registered\">Windows</" +"trademark> XP, are not compatible with the <acronym>GPT</acronym> partition " +"scheme. If FreeBSD will be sharing a disk with such an operating system, " +"<acronym>MBR</acronym> partitioning is required." +msgstr "" +"一些比較舊的作業系統,像是 <trademark class=\"registered\">Windows</" +"trademark> XP 不相容 <acronym>GPT</acronym> 分割區配置。 如果 FreeBSD 將和這" +"樣的作業系統共享一個磁碟,那就需要用 <acronym>MBR</acronym> 分割。" + +#. (itstool) path: step/para +#: book.translate.xml:3127 +msgid "" +"The FreeBSD boot loader requires either a primary or <acronym>GPT</acronym> " +"partition. If all of the primary or <acronym>GPT</acronym> partitions are " +"already in use, one must be freed for FreeBSD. To create a partition without " +"deleting existing data, use a partition resizing tool to shrink an existing " +"partition and create a new partition using the freed space." +msgstr "" +"FreeBSD 開機啟動程式需要主分割區或是 <acronym>GPT</acronym> 分割區。如果所有" +"的主分割區或 <acronym>GPT</acronym> 分割區都已使用,必須釋放其中一個分割區讓 " +"FreeBSD 使用。如果要建立一個分割區而不刪除原有的資料,可以使用磁碟分割工具來" +"縮小現有的分割區,並使用多出的空間來建立新分割區。" + +#. (itstool) path: step/para +#: book.translate.xml:3135 +msgid "" +"A variety of free and commercial partition resizing tools are listed at " +"<link xlink:href=\"http://en.wikipedia.org/wiki/" +"List_of_disk_partitioning_software\">http://en.wikipedia.org/wiki/" +"List_of_disk_partitioning_software</link>. <application>GParted Live</" +"application> (<link xlink:href=\"http://gparted.sourceforge.net/livecd.php" +"\">http://gparted.sourceforge.net/livecd.php</link>) is a free live " +"<acronym>CD</acronym> which includes the <application>GParted</application> " +"partition editor. <application>GParted</application> is also included with " +"many other Linux live <acronym>CD</acronym> distributions." +msgstr "" +"各種自由的和商業化的磁碟分割工具列於 <link xlink:href=\"http://en.wikipedia." +"org/wiki/List_of_disk_partitioning_software\">http://en.wikipedia.org/wiki/" +"List_of_disk_partitioning_software</link>。<application>GParted Live</" +"application> (<link xlink:href=\"http://gparted.sourceforge.net/livecd.php" +"\">http://gparted.sourceforge.net/livecd.php</link>) 是包含分割編輯工具 " +"<application>GParted</application> 的自由的 live <acronym>CD</acronym>。 " +"GParted 也包含在許多 Linux live <acronym>CD</acronym> 套件裡。" + +#. (itstool) path: warning/para +#: book.translate.xml:3145 +msgid "" +"When used properly, disk shrinking utilities can safely create space for " +"creating a new partition. Since the possibility of selecting the wrong " +"partition exists, always backup any important data and verify the integrity " +"of the backup before modifying disk partitions." +msgstr "" +"當正確地使用,磁碟分割工具可以安全地建立空間讓新的分割區使用。 因為有可能會誤" +"選已經存在的分割區,所以在修改磁碟分割區前, 一定要備份重要資料,並確認備份的" +"完整性。" + +#. (itstool) path: step/para +#: book.translate.xml:3152 +msgid "" +"Disk partitions containing different operating systems make it possible to " +"install multiple operating systems on one computer. An alternative is to use " +"virtualization (<xref linkend=\"virtualization\"/>) which allows multiple " +"operating systems to run at the same time without modifying any disk " +"partitions." +msgstr "" +"包含不同作業系統的磁碟分割區可以讓一台電腦安裝多重作業系統。 另一種作法是使用" +"虛擬化 (<xref linkend=\"virtualization\"/>) ,可以讓多重作業系統同時間執行而" +"不需要改變任何磁碟分割區。" + +#. (itstool) path: step/title +#: book.translate.xml:3161 +msgid "Collect Network Information" +msgstr "收集網路資訊" + +#. (itstool) path: step/para +#: book.translate.xml:3163 +msgid "" +"Some FreeBSD installation methods require a network connection in order to " +"download the installation files. After any installation, the installer will " +"offer to setup the system's network interfaces." +msgstr "" +"有些 FreeBSD 安裝方法為了下載安裝檔案需要網路連線。 在系統安裝之後,安裝程式" +"將會讓您設定系統的網路介面。" + +#. (itstool) path: step/para +#: book.translate.xml:3168 +msgid "" +"If the network has a <acronym>DHCP</acronym> server, it can be used to " +"provide automatic network configuration. If <acronym>DHCP</acronym> is not " +"available, the following network information for the system must be obtained " +"from the local network administrator or Internet service provider:" +msgstr "" +"如果網路有 <acronym>DHCP</acronym> 伺服器,可以自動設定網路。 如果沒有 " +"<acronym>DHCP</acronym> , 需要從區域網路管理者或是網際網路服務商取得以下系統" +"的網路資訊:" + +#. (itstool) path: orderedlist/title +#: book.translate.xml:3176 +msgid "Required Network Information" +msgstr "需要的網路資訊" + +#. (itstool) path: listitem/para +#. (itstool) path: row/entry +#: book.translate.xml:3179 book.translate.xml:53431 +msgid "<acronym>IP</acronym> address" +msgstr "<acronym>IP</acronym> 位址" + +#. (itstool) path: listitem/para +#: book.translate.xml:3183 +msgid "Subnet mask" +msgstr "子網路遮罩" + +#. (itstool) path: listitem/para +#: book.translate.xml:3187 +msgid "<acronym>IP</acronym> address of default gateway" +msgstr "預設閘道器 <acronym>IP</acronym> 位址" + +#. (itstool) path: listitem/para +#: book.translate.xml:3192 +msgid "Domain name of the network" +msgstr "網路的網域名稱" + +#. (itstool) path: listitem/para +#: book.translate.xml:3196 +msgid "" +"<acronym>IP</acronym> addresses of the network's <acronym>DNS</acronym> " +"servers" +msgstr "網路 <acronym>DNS</acronym> 伺服器 <acronym>IP</acronym> 位址" + +#. (itstool) path: step/title +#: book.translate.xml:3203 +msgid "Check for FreeBSD Errata" +msgstr "檢查 FreeBSD 勘誤表" + +#. (itstool) path: step/para +#: book.translate.xml:3205 +msgid "" +"Although the FreeBSD Project strives to ensure that each release of FreeBSD " +"is as stable as possible, bugs occasionally creep into the process. On very " +"rare occasions those bugs affect the installation process. As these problems " +"are discovered and fixed, they are noted in the FreeBSD Errata (<link xlink:" +"href=\"@@URL_RELPREFIX@@/releases/10.3R/errata.html\">http://www.freebsd.org/" +"releases/10.3R/errata.html</link>) on the FreeBSD web site. Check the errata " +"before installing to make sure that there are no problems that might affect " +"the installation." +msgstr "" +"儘管 FreeBSD Project 努力確保每個 FreeBSD 發行版能夠儘可能地穩定,錯誤偶爾還" +"是會悄悄出現。 有極小的機會錯誤會影響安裝過程。 當這些問題被發現並修正後,會" +"被紀錄在 FreeBSD 網站的 FreeBSD 勘誤表 (<link xlink:href=\"@@URL_RELPREFIX@@/" +"releases/10.3R/errata.html\">http://www.freebsd.org/releases/10.3R/errata." +"html</link>)。 安裝前要檢查勘誤表,確保沒有會影響到安裝的問題。" + +#. (itstool) path: step/para +#: book.translate.xml:3215 +msgid "" +"Information and errata for all the releases can be found on the release " +"information section of the FreeBSD web site (<link xlink:href=" +"\"@@URL_RELPREFIX@@/releases/index.html\">http://www.freebsd.org/releases/" +"index.html</link>)." +msgstr "" +"所有發行版的資訊和勘誤表可以在 FreeBSD 網站的發行資訊找到 (<link xlink:href=" +"\"@@URL_RELPREFIX@@/releases/index.html\">http://www.freebsd.org/releases/" +"index.html</link>)。" + +#. (itstool) path: sect2/title +#: book.translate.xml:3222 +msgid "Prepare the Installation Media" +msgstr "準備安裝的媒體" + +#. (itstool) path: sect2/para +#: book.translate.xml:3224 +msgid "" +"The FreeBSD installer is not an application that can be run from within " +"another operating system. Instead, download a FreeBSD installation file, " +"burn it to the media associated with its file type and size (<acronym>CD</" +"acronym>, <acronym>DVD</acronym>, or <acronym>USB</acronym>), and boot the " +"system to install from the inserted media." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3231 +msgid "" +"FreeBSD installation files are available at <link xlink:href=" +"\"@@URL_RELPREFIX@@/where.html#download\">www.freebsd.org/where." +"html#download</link>. Each installation file's name includes the release " +"version of FreeBSD, the architecture, and the type of file. For example, to " +"install FreeBSD 10.2 on an amd64 system from a <acronym>DVD</acronym>, " +"download <filename>FreeBSD-10.2-RELEASE-amd64-dvd1.iso</filename>, burn this " +"file to a <acronym>DVD</acronym>, and boot the system with the <acronym>DVD</" +"acronym> inserted." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3240 +msgid "" +"Installation files are available in several formats. The formats vary " +"depending on computer architecture and media type." +msgstr "" + +#. (itstool) path: sect2/para +#. (itstool) id: book.translate.xml#bsdinstall-installation-media-uefi +#: book.translate.xml:3244 +msgid "" +"Additional installation files are included for computers that boot with " +"<acronym>UEFI</acronym> (Unified Extensible Firmware Interface). The names " +"of these files include the string <filename>uefi</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3250 +msgid "File types:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3254 +msgid "" +"<literal>-bootonly.iso</literal>: This is the smallest installation file as " +"it only contains the installer. A working Internet connection is required " +"during installation as the installer will download the files it needs to " +"complete the FreeBSD installation. This file should be burned to a " +"<acronym>CD</acronym> using a <acronym>CD</acronym> burning application." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3264 +msgid "" +"<literal>-disc1.iso</literal>: This file contains all of the files needed to " +"install FreeBSD, its source, and the Ports Collection. It should be burned " +"to a <acronym>CD</acronym> using a <acronym>CD</acronym> burning application." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3272 +msgid "" +"<literal>-dvd1.iso</literal>: This file contains all of the files needed to " +"install FreeBSD, its source, and the Ports Collection. It also contains a " +"set of popular binary packages for installing a window manager and some " +"applications so that a complete system can be installed from media without " +"requiring a connection to the Internet. This file should be burned to a " +"<acronym>DVD</acronym> using a <acronym>DVD</acronym> burning application." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3283 +msgid "" +"<literal>-memstick.img</literal>: This file contains all of the files needed " +"to install FreeBSD, its source, and the Ports Collection. It should be " +"burned to a <acronym>USB</acronym> stick using the instructions below." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3291 +msgid "" +"After downloading the image file, download <filename>CHECKSUM.SHA256</" +"filename> from the same directory. Calculate a <firstterm>checksum</" +"firstterm> for the image file. FreeBSD provides " +"<citerefentry><refentrytitle>sha256</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> for this, used as <command>sha256 <replaceable>imagefilename</" +"replaceable></command>. Other operating systems have similar programs." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3299 +msgid "" +"Compare the calculated checksum with the one shown in <filename>CHECKSUM." +"SHA256</filename>. The checksums must match exactly. If the checksums do not " +"match, the image file is corrupt and must be downloaded again." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:3305 +msgid "Writing an Image File to <acronym>USB</acronym>" +msgstr "寫入映象檔到 <acronym>USB</acronym>" + +#. (itstool) path: sect3/para +#: book.translate.xml:3307 +msgid "" +"The <filename>*.img</filename> file is an <emphasis>image</emphasis> of the " +"complete contents of a memory stick. It <emphasis>cannot</emphasis> be " +"copied to the target device as a file. Several applications are available " +"for writing the <filename>*.img</filename> to a <acronym>USB</acronym> " +"stick. This section describes two of these utilities." +msgstr "" + +#. (itstool) path: important/para +#: book.translate.xml:3316 +msgid "" +"Before proceeding, back up any important data on the <acronym>USB</acronym> " +"stick. This procedure will erase the existing data on the stick." +msgstr "" +"在繼續之前,請先備份 <acronym>USB</acronym> 上的重要資料,這個程序會清除在隨" +"身碟上既有的資料。" + +#. (itstool) path: procedure/title +#: book.translate.xml:3322 +msgid "Using <command>dd</command> to Write the Image" +msgstr "使用 <command>dd</command> 來寫入映像檔" + +#. (itstool) path: warning/para +#: book.translate.xml:3326 +msgid "" +"This example uses <filename>/dev/da0</filename> as the target device where " +"the image will be written. Be <emphasis>very careful</emphasis> that the " +"correct device is used as this command will destroy the existing data on the " +"specified target device." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:3334 +msgid "" +"The <citerefentry><refentrytitle>dd</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> command-line utility is available on BSD, <trademark class=" +"\"registered\">Linux</trademark>, and <trademark class=\"registered" +"\">Mac OS</trademark> systems. To burn the image using <command>dd</" +"command>, insert the <acronym>USB</acronym> stick and determine its device " +"name. Then, specify the name of the downloaded installation file and the " +"device name for the <acronym>USB</acronym> stick. This example burns the " +"amd64 installation image to the first <acronym>USB</acronym> device on an " +"existing FreeBSD system." +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:3345 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dd if=<replaceable>FreeBSD-10.2-RELEASE-amd64-memstick.img</replaceable> of=/dev/<replaceable>da0</replaceable> bs=1M conv=sync</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:3347 +msgid "" +"If this command fails, verify that the <acronym>USB</acronym> stick is not " +"mounted and that the device name is for the disk, not a partition. Some " +"operating systems might require this command to be run with " +"<citerefentry><refentrytitle>sudo</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. Systems like <trademark class=\"registered\">Linux</" +"trademark> might buffer writes. To force all writes to complete, use " +"<citerefentry><refentrytitle>sync</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:3358 +msgid "" +"Using <trademark class=\"registered\">Windows</trademark> to Write the Image" +msgstr "使用 <trademark class=\"registered\">Windows</trademark> 來寫入映象檔" + +#. (itstool) path: warning/para +#: book.translate.xml:3361 +msgid "" +"Be sure to give the correct drive letter as the existing data on the " +"specified drive will be overwritten and destroyed." +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:3367 +msgid "" +"Obtaining <application>Image Writer for <trademark class=\"registered" +"\">Windows</trademark></application>" +msgstr "" +"取得 <application>Image Writer <trademark class=\"registered\">Windows</" +"trademark> 版</application>" + +#. (itstool) path: step/para +#: book.translate.xml:3370 +msgid "" +"<application>Image Writer for <trademark class=\"registered\">Windows</" +"trademark></application> is a free application that can correctly write an " +"image file to a memory stick. Download it from <uri xlink:href=\"https://" +"launchpad.net/win32-image-writer/\">https://launchpad.net/win32-image-writer/" +"</uri> and extract it into a folder." +msgstr "" +"<application>Image Writer <trademark class=\"registered\">Windows</" +"trademark> 版</application> 是一個免費的應用程式,可以正確地將映像檔寫入隨身" +"碟。 從 <uri xlink:href=\"https://launchpad.net/win32-image-writer/" +"\">https://launchpad.net/win32-image-writer/</uri> 下載,並解壓縮到一個資料" +"夾。" + +#. (itstool) path: step/title +#: book.translate.xml:3378 +msgid "Writing the Image with Image Writer" +msgstr "用 Image Writer 寫入映象檔" + +#. (itstool) path: step/para +#: book.translate.xml:3380 +msgid "" +"Double-click the <application>Win32DiskImager</application> icon to start " +"the program. Verify that the drive letter shown under " +"<computeroutput>Device</computeroutput> is the drive with the memory stick. " +"Click the folder icon and select the image to be written to the memory " +"stick. Click <guibutton>[ Save ]</guibutton> to accept the image file name. " +"Verify that everything is correct, and that no folders on the memory stick " +"are open in other windows. When everything is ready, click " +"<guibutton>[ Write ]</guibutton> to write the image file to the memory stick." +msgstr "" +"雙擊 <application>Win32DiskImager</application> 圖示啟動程式。 確認 " +"<computeroutput>Device</computeroutput> 顯示的磁碟機代號是隨身碟的磁碟機代" +"號。 按下資料夾圖示選擇要寫入隨身碟的映像檔。 按下 <guibutton>[ Save ]</" +"guibutton> 按鈕確定映像檔名。 確認所有東西都正確,隨身碟的資料夾並沒有在其他" +"視窗開啟。 所有東西準備好後,按下 <guibutton>[ Write ]</guibutton> 將映像檔寫" +"入隨身碟。" + +#. (itstool) path: sect3/para +#: book.translate.xml:3395 +msgid "You are now ready to start installing FreeBSD." +msgstr "您現在可以開始安裝 FreeBSD 。" + +#. (itstool) path: sect1/title +#: book.translate.xml:3401 +msgid "Starting the Installation" +msgstr "開始安裝" + +#. (itstool) path: important/para +#: book.translate.xml:3404 +msgid "" +"By default, the installation will not make any changes to the disk(s) before " +"the following message:" +msgstr "預設安裝程式在下列訊息顯示之前不會對磁碟做任何更動:" + +#. (itstool) path: important/programlisting +#: book.translate.xml:3407 +#, no-wrap +msgid "" +"Your changes will now be written to disk. If you\n" +"have chosen to overwrite existing data, it will\n" +"be PERMANENTLY ERASED. Are you sure you want to\n" +"commit your changes?" +msgstr "" + +#. (itstool) path: important/para +#: book.translate.xml:3412 +msgid "" +"The install can be exited at any time prior to this warning. If there is a " +"concern that something is incorrectly configured, just turn the computer off " +"before this point and no changes will be made to the system's disks." +msgstr "" +"在這個警告訊息之前可以隨時中止安裝,若有任何設定錯誤的疑慮,只需在此時關閉電" +"腦,將不會對系統磁碟做任何更改。" + +#. (itstool) path: sect1/para +#: book.translate.xml:3419 +msgid "" +"This section describes how to boot the system from the installation media " +"which was prepared using the instructions in <xref linkend=\"bsdinstall-" +"installation-media\"/>. When using a bootable USB stick, plug in the " +"<acronym>USB</acronym> stick before turning on the computer. When booting " +"from <acronym>CD</acronym> or <acronym>DVD</acronym>, turn on the computer " +"and insert the media at the first opportunity. How to configure the system " +"to boot from the inserted media depends upon the architecture." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:3430 +msgid "Booting on <trademark>i386</trademark> and amd64" +msgstr "在 <trademark>i386</trademark> 及 amd64 開機" + +#. (itstool) path: sect2/para +#: book.translate.xml:3432 +msgid "" +"These architectures provide a <acronym>BIOS</acronym> menu for selecting the " +"boot device. Depending upon the installation media being used, select the " +"<acronym>CD</acronym>/<acronym>DVD</acronym> or <acronym>USB</acronym> " +"device as the first boot device. Most systems also provide a key for " +"selecting the boot device during startup without having to enter the " +"<acronym>BIOS</acronym>. Typically, the key is either <keycap>F10</keycap>, " +"<keycap>F11</keycap>, <keycap>F12</keycap>, or <keycap>Escape</keycap>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3443 +msgid "" +"If the computer loads the existing operating system instead of the FreeBSD " +"installer, then either:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3448 +msgid "" +"The installation media was not inserted early enough in the boot process. " +"Leave the media inserted and try restarting the computer." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3454 +msgid "" +"The <acronym>BIOS</acronym> changes were incorrect or not saved. Double-" +"check that the right boot device is selected as the first boot device." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3460 +msgid "" +"This system is too old to support booting from the chosen media. In this " +"case, the <application>Plop Boot Manager</application> (<link xlink:href=" +"\"http://www.plop.at/en/bootmanagers.html\"/>) can be used to boot the " +"system from the selected media." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:3470 +msgid "Booting on <trademark class=\"registered\">PowerPC</trademark>" +msgstr "在 <trademark class=\"registered\">PowerPC</trademark> 開機" + +#. (itstool) path: sect2/para +#: book.translate.xml:3472 +msgid "" +"On most machines, holding <keycap>C</keycap> on the keyboard during boot " +"will boot from the <acronym>CD</acronym>. Otherwise, hold <keycombo action=" +"\"simul\"> <keycap>Command</keycap> <keycap>Option</keycap> <keycap>O</" +"keycap> <keycap>F</keycap> </keycombo>, or <keycombo action=\"simul\"> " +"<keycap>Windows</keycap> <keycap>Alt</keycap> <keycap>O</keycap> <keycap>F</" +"keycap> </keycombo> on non-<trademark class=\"registered\">Apple</trademark> " +"keyboards. At the <prompt>0 ></prompt> prompt, enter" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:3488 +#, no-wrap +msgid "<userinput>boot cd:,\\ppc\\loader cd:0</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:3492 +msgid "Booting on <trademark class=\"registered\">SPARC64</trademark>" +msgstr "在 <trademark class=\"registered\">SPARC64</trademark> 開機" + +#. (itstool) path: sect2/para +#: book.translate.xml:3494 +msgid "" +"Most <trademark class=\"registered\">SPARC64</trademark> systems are set up " +"to boot automatically from disk. To install FreeBSD from a <acronym>CD</" +"acronym> requires a break into the <acronym>PROM</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3498 +msgid "" +"To do this, reboot the system and wait until the boot message appears. The " +"message depends on the model, but should look something like this:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:3502 +#, no-wrap +msgid "" +"Sun Blade 100 (UltraSPARC-IIe), Keyboard Present\n" +"Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved.\n" +"OpenBoot 4.2, 128 MB memory installed, Serial #51090132.\n" +"Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3507 +msgid "" +"If the system proceeds to boot from disk at this point, press <keycombo " +"action=\"simul\"><keycap>L1</keycap><keycap>A</keycap></keycombo> or " +"<keycombo action=\"simul\"><keycap>Stop</keycap><keycap>A</keycap></" +"keycombo> on the keyboard, or send a <command>BREAK</command> over the " +"serial console. When using <application>tip</application> or " +"<application>cu</application>, <command>~#</command> will issue a BREAK. The " +"<acronym>PROM</acronym> prompt will be <prompt>ok</prompt> on systems with " +"one <acronym>CPU</acronym> and <prompt>ok {0} </prompt> on <acronym>SMP</" +"acronym> systems, where the digit indicates the number of the active " +"<acronym>CPU</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3519 +msgid "" +"At this point, place the <acronym>CD</acronym> into the drive and type " +"<command>boot cdrom</command> from the <acronym>PROM</acronym> prompt." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:3525 +msgid "FreeBSD Boot Menu" +msgstr "FreeBSD 開機選單" + +#. (itstool) path: sect2/para +#: book.translate.xml:3527 +msgid "" +"Once the system boots from the installation media, a menu similar to the " +"following will be displayed:" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:3531 +msgid "FreeBSD Boot Loader Menu" +msgstr "FreeBSD 開機載入程式選單" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3535 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-newboot-loader-menu' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3540 +msgid "" +"By default, the menu will wait ten seconds for user input before booting " +"into the FreeBSD installer or, if FreeBSD is already installed, before " +"booting into FreeBSD. To pause the boot timer in order to review the " +"selections, press <keycap>Space</keycap>. To select an option, press its " +"highlighted number, character, or key. The following options are available." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3550 +msgid "" +"<literal>Boot Multi User</literal>: This will continue the FreeBSD boot " +"process. If the boot timer has been paused, press <keycap>1</keycap>, upper- " +"or lower-case <keycap>B</keycap>, or <keycap>Enter</keycap>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3558 +msgid "" +"<literal>Boot Single User</literal>: This mode can be used to fix an " +"existing FreeBSD installation as described in <xref linkend=\"boot-singleuser" +"\"/>. Press <keycap>2</keycap> or the upper- or lower-case <keycap>S</" +"keycap> to enter this mode." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3566 +msgid "" +"<literal>Escape to loader prompt</literal>: This will boot the system into a " +"repair prompt that contains a limited number of low-level commands. This " +"prompt is described in <xref linkend=\"boot-loader\"/>. Press <keycap>3</" +"keycap> or <keycap>Esc</keycap> to boot into this prompt." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3575 +msgid "<literal>Reboot</literal>: Reboots the system." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3579 +msgid "" +"<literal>Configure Boot Options</literal>: Opens the menu shown in, and " +"described under, <xref linkend=\"bsdinstall-boot-options-menu\"/>." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:3585 +msgid "FreeBSD Boot Options Menu" +msgstr "FreeBSD 開機選項選單" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3589 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-boot-options-menu' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3594 +msgid "" +"The boot options menu is divided into two sections. The first section can be " +"used to either return to the main boot menu or to reset any toggled options " +"back to their defaults." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3599 +msgid "" +"The next section is used to toggle the available options to <literal>On</" +"literal> or <literal>Off</literal> by pressing the option's highlighted " +"number or character. The system will always boot using the settings for " +"these options until they are modified. Several options can be toggled using " +"this menu:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3608 +msgid "" +"<literal>ACPI Support</literal>: If the system hangs during boot, try " +"toggling this option to <literal>Off</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3614 +msgid "" +"<literal>Safe Mode</literal>: If the system still hangs during boot even " +"with <literal>ACPI Support</literal> set to <literal>Off</literal>, try " +"setting this option to <literal>On</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3621 +msgid "" +"<literal>Single User</literal>: Toggle this option to <literal>On</literal> " +"to fix an existing FreeBSD installation as described in <xref linkend=\"boot-" +"singleuser\"/>. Once the problem is fixed, set it back to <literal>Off</" +"literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3629 +msgid "" +"<literal>Verbose</literal>: Toggle this option to <literal>On</literal> to " +"see more detailed messages during the boot process. This can be useful when " +"troubleshooting a piece of hardware." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3636 +msgid "" +"After making the needed selections, press <keycap>1</keycap> or " +"<keycap>Backspace</keycap> to return to the main boot menu, then press " +"<keycap>Enter</keycap> to continue booting into FreeBSD. A series of boot " +"messages will appear as FreeBSD carries out its hardware device probes and " +"loads the installation program. Once the boot is complete, the welcome menu " +"shown in <xref linkend=\"bsdinstall-choose-mode\"/> will be displayed." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:3645 +msgid "Welcome Menu" +msgstr "歡迎選單" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3649 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-choose-mode' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3654 +msgid "" +"Press <keycap>Enter</keycap> to select the default of " +"<guibutton>[ Install ]</guibutton> to enter the installer. The rest of this " +"chapter describes how to use this installer. Otherwise, use the right or " +"left arrows or the colorized letter to select the desired menu item. The " +"<guibutton>[ Shell ]</guibutton> can be used to access a FreeBSD shell in " +"order to use command line utilities to prepare the disks before " +"installation. The <guibutton>[ Live CD ]</guibutton> option can be used to " +"try out FreeBSD before installing it. The live version is described in <xref " +"linkend=\"using-live-cd\"/>." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:3667 +msgid "" +"To review the boot messages, including the hardware device probe, press the " +"upper- or lower-case <keycap>S</keycap> and then <keycap>Enter</keycap> to " +"access a shell. At the shell prompt, type <command>more /var/run/dmesg.boot</" +"command> and use the space bar to scroll through the messages. When " +"finished, type <command>exit</command> to return to the welcome menu." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:3680 +msgid "Using <application>bsdinstall</application>" +msgstr "使用 <application>bsdinstall</application>" + +#. (itstool) path: sect1/para +#: book.translate.xml:3682 +msgid "" +"This section shows the order of the <application>bsdinstall</application> " +"menus and the type of information that will be asked before the system is " +"installed. Use the arrow keys to highlight a menu option, then " +"<keycap>Space</keycap> to select or deselect that menu item. When finished, " +"press <keycap>Enter</keycap> to save the selection and move onto the next " +"screen." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:3691 +msgid "Selecting the Keymap Menu" +msgstr "選擇鍵盤對應表選單" + +#. (itstool) path: sect2/para +#: book.translate.xml:3693 +msgid "" +"Depending on the system console being used, <application>bsdinstall</" +"application> may initially display the menu shown in <xref linkend=" +"\"bsdinstall-keymap-select-default\"/>." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:3698 +msgid "Keymap Selection" +msgstr "鍵盤對應表選擇" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3702 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-keymap-select-default' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3707 +msgid "" +"To configure the keyboard layout, press <keycap>Enter</keycap> with " +"<guibutton>[ YES ]</guibutton> selected, which will display the menu shown " +"in <xref linkend=\"bsdinstall-config-keymap\"/>. To instead use the default " +"layout, use the arrow key to select <guibutton>[ NO ]</guibutton> and press " +"<keycap>Enter</keycap> to skip this menu screen." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:3716 +msgid "Selecting Keyboard Menu" +msgstr "選擇鍵盤選單" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3720 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-config-keymap' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3725 +msgid "" +"When configuring the keyboard layout, use the up and down arrows to select " +"the keymap that most closely represents the mapping of the keyboard attached " +"to the system. Press <keycap>Enter</keycap> to save the selection." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:3731 +msgid "" +"Pressing <keycap>Esc</keycap> will exit this menu and use the default " +"keymap. If the choice of keymap is not clear, <guimenuitem>United States of " +"America ISO-8859-1</guimenuitem> is also a safe option." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3737 +msgid "" +"In FreeBSD 10.0-RELEASE and later, this menu has been enhanced. The full " +"selection of keymaps is shown, with the default preselected. In addition, " +"when selecting a different keymap, a dialog is displayed that allows the " +"user to try the keymap and ensure it is correct before proceeding." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:3744 +msgid "Enhanced Keymap Menu" +msgstr "改進後的鍵盤對應表選單" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3748 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-keymap-10' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/title +#. (itstool) path: figure/title +#: book.translate.xml:3756 book.translate.xml:3763 +msgid "Setting the Hostname" +msgstr "設定主機名稱" + +#. (itstool) path: sect2/para +#: book.translate.xml:3758 +msgid "" +"The next <application>bsdinstall</application> menu is used to set the " +"hostname for the newly installed system." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3767 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-config-hostname' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3772 +msgid "" +"Type in a hostname that is unique for the network. It should be a fully-" +"qualified hostname, such as <systemitem class=\"fqdomainname\">machine3." +"example.com</systemitem>." +msgstr "" + +#. (itstool) path: sect2/title +#. (itstool) path: figure/title +#: book.translate.xml:3777 book.translate.xml:3783 +msgid "Selecting Components to Install" +msgstr "選擇要安裝的元件" + +#. (itstool) path: sect2/para +#: book.translate.xml:3779 +msgid "" +"Next, <application>bsdinstall</application> will prompt to select optional " +"components to install." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3787 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-config-components' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3792 +msgid "" +"Deciding which components to install will depend largely on the intended use " +"of the system and the amount of disk space available. The FreeBSD kernel and " +"userland, collectively known as the <firstterm>base system</firstterm>, are " +"always installed. Depending on the architecture, some of these components " +"may not appear:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3801 +msgid "" +"<literal>doc</literal> - Additional documentation, mostly of historical " +"interest, to install into <filename>/usr/share/doc</filename>. The " +"documentation provided by the FreeBSD Documentation Project may be installed " +"later using the instructions in <xref linkend=\"updating-upgrading-" +"documentation\"/>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3809 +msgid "" +"<literal>games</literal> - Several traditional <acronym>BSD</acronym> games, " +"including <application>fortune</application>, <application>rot13</" +"application>, and others." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3816 +msgid "" +"<literal>lib32</literal> - Compatibility libraries for running 32-bit " +"applications on a 64-bit version of FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3822 +msgid "" +"<literal>ports</literal> - The FreeBSD Ports Collection is a collection of " +"files which automates the downloading, compiling and installation of third-" +"party software packages. <xref linkend=\"ports\"/> discusses how to use the " +"Ports Collection." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:3829 +msgid "" +"The installation program does not check for adequate disk space. Select this " +"option only if sufficient hard disk space is available. The FreeBSD Ports " +"Collection takes up about 500 MB of disk space." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:3838 +msgid "" +"<literal>src</literal> - The complete FreeBSD source code for both the " +"kernel and the userland. Although not required for the majority of " +"applications, it may be required to build device drivers, kernel modules, or " +"some applications from the Ports Collection. It is also used for developing " +"FreeBSD itself. The full source tree requires 1 GB of disk space and " +"recompiling the entire FreeBSD system requires an additional 5 GB of space." +msgstr "" + +#. (itstool) path: sect2/title +#. (itstool) path: figure/title +#: book.translate.xml:3851 book.translate.xml:3862 +msgid "Installing from the Network" +msgstr "從網路安裝" + +#. (itstool) path: sect2/para +#: book.translate.xml:3853 +msgid "" +"The menu shown in <xref linkend=\"bsdinstall-netinstall-notify\"/> only " +"appears when installing from a <filename>-bootonly.iso</filename> " +"<acronym>CD</acronym> as this installation media does not hold copies of the " +"installation files. Since the installation files must be retrieved over a " +"network connection, this menu indicates that the network interface must be " +"first configured." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3866 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-netinstall-files' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3871 +msgid "" +"To configure the network connection, press <keycap>Enter</keycap> and follow " +"the instructions in <xref linkend=\"bsdinstall-config-network-dev\"/>. Once " +"the interface is configured, select a mirror site that is located in the " +"same region of the world as the computer on which FreeBSD is being " +"installed. Files can be retrieved more quickly when the mirror is close to " +"the target computer, reducing installation time." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:3880 +msgid "Choosing a Mirror" +msgstr "選擇鏡像站" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3884 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-netinstall-mirrorselect' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3889 +msgid "" +"Installation will then continue as if the installation files were located on " +"the local installation media." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:3895 +msgid "Allocating Disk Space" +msgstr "配置磁碟空間" + +#. (itstool) path: sect1/para +#: book.translate.xml:3897 +msgid "" +"The next menu is used to determine the method for allocating disk space. The " +"options available in the menu depend upon the version of FreeBSD being " +"installed." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:3902 +msgid "Partitioning Choices on FreeBSD 9.x" +msgstr "FreeBSD 9.x 的分割區選擇" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3906 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-part-guided-manual' md5='__failed__'" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:3912 +msgid "Partitioning Choices on FreeBSD 10.x and Higher" +msgstr "FreeBSD 10.x 或更新版本的磁碟分割選項" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:3916 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-zfs-partmenu' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:3921 +msgid "" +"<literal>Guided</literal> partitioning automatically sets up the disk " +"partitions, <literal>Manual</literal> partitioning allows advanced users to " +"create customized partitions from menu options, and <literal>Shell</literal> " +"opens a shell prompt where advanced users can create customized partitions " +"using command-line utilities like <citerefentry><refentrytitle>gpart</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>fdisk</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, and <citerefentry><refentrytitle>bsdlabel</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. <literal>ZFS</" +"literal> partitioning, only available in FreeBSD 10 and later, creates an " +"optionally encrypted root-on-ZFS system with support for <firstterm>boot " +"environments</firstterm>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:3932 +msgid "" +"This section describes what to consider when laying out the disk partitions. " +"It then demonstrates how to use the different partitioning methods." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:3937 +msgid "Designing the Partition Layout" +msgstr "規劃分割區配置" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:3939 +msgid "<primary>partition layout</primary>" +msgstr "<primary>分割區配置</primary>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:3940 +msgid "<primary><filename>/etc</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:3943 +msgid "<primary><filename>/var</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:3946 +msgid "<primary><filename>/usr</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3950 +msgid "" +"When laying out file systems, remember that hard drives transfer data faster " +"from the outer tracks to the inner. Thus, smaller and heavier-accessed file " +"systems should be closer to the outside of the drive, while larger " +"partitions like <filename>/usr</filename> should be placed toward the inner " +"parts of the disk. It is a good idea to create partitions in an order " +"similar to: <filename>/</filename>, swap, <filename>/var</filename>, and " +"<filename>/usr</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3960 +msgid "" +"The size of the <filename>/var</filename> partition reflects the intended " +"machine's usage. This partition is used to hold mailboxes, log files, and " +"printer spools. Mailboxes and log files can grow to unexpected sizes " +"depending on the number of users and how long log files are kept. On " +"average, most users rarely need more than about a gigabyte of free disk " +"space in <filename>/var</filename>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:3970 +msgid "" +"Sometimes, a lot of disk space is required in <filename>/var/tmp</filename>. " +"When new software is installed, the packaging tools extract a temporary copy " +"of the packages under <filename>/var/tmp</filename>. Large software " +"packages, like <application>Firefox</application>, <application>Apache " +"OpenOffice</application> or <application>LibreOffice</application> may be " +"tricky to install if there is not enough disk space under <filename>/var/" +"tmp</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3981 +msgid "" +"The <filename>/usr</filename> partition holds many of the files which " +"support the system, including the FreeBSD Ports Collection and system source " +"code. At least 2 gigabytes is recommended for this partition." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3986 +msgid "" +"When selecting partition sizes, keep the space requirements in mind. Running " +"out of space in one partition while barely using another can be a hassle." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:3990 +msgid "<primary>swap sizing</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:3993 +msgid "<primary>swap partition</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:3997 +msgid "" +"As a rule of thumb, the swap partition should be about double the size of " +"physical memory (<acronym>RAM</acronym>). Systems with minimal <acronym>RAM</" +"acronym> may perform better with more swap. Configuring too little swap can " +"lead to inefficiencies in the <acronym>VM</acronym> page scanning code and " +"might create issues later if more memory is added." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4005 +msgid "" +"On larger systems with multiple <acronym>SCSI</acronym> disks or multiple " +"<acronym>IDE</acronym> disks operating on different controllers, it is " +"recommended that swap be configured on each drive, up to four drives. The " +"swap partitions should be approximately the same size. The kernel can handle " +"arbitrary sizes but internal data structures scale to 4 times the largest " +"swap partition. Keeping the swap partitions near the same size will allow " +"the kernel to optimally stripe swap space across disks. Large swap sizes are " +"fine, even if swap is not used much. It might be easier to recover from a " +"runaway program before being forced to reboot." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4018 +msgid "" +"By properly partitioning a system, fragmentation introduced in the smaller " +"write heavy partitions will not bleed over into the mostly read partitions. " +"Keeping the write loaded partitions closer to the disk's edge will increase " +"<acronym>I/O</acronym> performance in the partitions where it occurs the " +"most. While <acronym>I/O</acronym> performance in the larger partitions may " +"be needed, shifting them more toward the edge of the disk will not lead to a " +"significant performance improvement over moving <filename>/var</filename> to " +"the edge." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:4031 +msgid "Guided Partitioning" +msgstr "引導式磁碟分割" + +#. (itstool) path: sect2/para +#: book.translate.xml:4033 +msgid "" +"When this method is selected, a menu will display the available disk(s). If " +"multiple disks are connected, choose the one where FreeBSD is to be " +"installed." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4038 +msgid "Selecting from Multiple Disks" +msgstr "自多個磁碟選擇" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4042 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-part-guided-disk' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4047 +msgid "" +"Once the disk is selected, the next menu prompts to install to either the " +"entire disk or to create a partition using free space. If " +"<guibutton>[ Entire Disk ]</guibutton> is chosen, a general partition layout " +"filling the whole disk is automatically created. Selecting " +"<guibutton>[ Partition ]</guibutton> creates a partition layout from the " +"unused space on the disk." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4057 +msgid "Selecting Entire Disk or Partition" +msgstr "選擇完整磁碟或分割區" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4061 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-part-entire-part' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4066 +msgid "" +"After the partition layout has been created, review it to ensure it meets " +"the needs of the installation. Selecting <guibutton>[ Revert ]</guibutton> " +"will reset the partitions to their original values and pressing " +"<guibutton>[ Auto ]</guibutton> will recreate the automatic FreeBSD " +"partitions. Partitions can also be manually created, modified, or deleted. " +"When the partitioning is correct, select <guibutton>[ Finish ]</guibutton> " +"to continue with the installation." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4077 +msgid "Review Created Partitions" +msgstr "確認已建立的分割區" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4081 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-part-review' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:4088 +msgid "Manual Partitioning" +msgstr "手動磁碟分割" + +#. (itstool) path: sect2/para +#: book.translate.xml:4090 +msgid "Selecting this method opens the partition editor:" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4093 book.translate.xml:4108 book.translate.xml:4179 +msgid "Manually Create Partitions" +msgstr "手動建立分割區" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4097 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-part-manual-create' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4102 +msgid "" +"Highlight the installation drive (<filename>ada0</filename> in this example) " +"and select <guibutton>[ Create ]</guibutton> to display a menu of available " +"partition schemes:" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4112 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-part-manual-partscheme' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4117 +msgid "" +"<acronym>GPT</acronym> is usually the most appropriate choice for amd64 " +"computers. Older computers that are not compatible with <acronym>GPT</" +"acronym> should use <acronym>MBR</acronym>. The other partition schemes are " +"generally used for uncommon or older computers." +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:4124 +msgid "Partitioning Schemes" +msgstr "磁碟分割格式" + +#. (itstool) path: row/entry +#: book.translate.xml:4129 +msgid "Abbreviation" +msgstr "縮寫" + +#. (itstool) path: row/entry +#: book.translate.xml:4130 book.translate.xml:7088 book.translate.xml:8431 +#: book.translate.xml:11770 book.translate.xml:22965 book.translate.xml:23144 +#: book.translate.xml:27226 book.translate.xml:31214 book.translate.xml:42941 +#: book.translate.xml:52773 book.translate.xml:53280 book.translate.xml:54039 +#: book.translate.xml:54080 book.translate.xml:55406 book.translate.xml:65535 +msgid "Description" +msgstr "說明" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:4136 book.translate.xml:65535 +msgid "APM" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4137 +msgid "" +"Apple Partition Map, used by <trademark class=\"registered\">PowerPC</" +"trademark>." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:4141 book.translate.xml:65535 +msgid "BSD" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4142 +msgid "" +"<acronym>BSD</acronym> label without an <acronym>MBR</acronym>, sometimes " +"called <firstterm>dangerously dedicated mode</firstterm> as non-" +"<acronym>BSD</acronym> disk utilities may not recognize it." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4150 +msgid "GPT" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4151 +msgid "" +"GUID Partition Table (<link xlink:href=\"http://en.wikipedia.org/wiki/" +"GUID_Partition_Table\">http://en.wikipedia.org/wiki/GUID_Partition_Table</" +"link>)." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4155 +msgid "MBR" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4156 +msgid "" +"Master Boot Record (<link xlink:href=\"http://en.wikipedia.org/wiki/" +"Master_boot_record\">http://en.wikipedia.org/wiki/Master_boot_record</link>)." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4160 +msgid "PC98" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4161 +msgid "" +"<acronym>MBR</acronym> variant used by NEC PC-98 computers (<link xlink:href=" +"\"http://en.wikipedia.org/wiki/Pc9801\">http://en.wikipedia.org/wiki/Pc9801</" +"link>)." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4166 +msgid "VTOC8" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4167 +msgid "Volume Table Of Contents used by Sun SPARC64 and UltraSPARC computers." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4174 +msgid "" +"After the partitioning scheme has been selected and created, select " +"<guibutton>[ Create ]</guibutton> again to create the partitions." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4183 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-part-manual-addpart' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4188 +msgid "" +"A standard FreeBSD <acronym>GPT</acronym> installation uses at least three " +"partitions:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:4193 +msgid "<literal>freebsd-boot</literal> - Holds the FreeBSD boot code." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:4198 +msgid "" +"<literal>freebsd-ufs</literal> - A FreeBSD <acronym>UFS</acronym> file " +"system." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:4203 +msgid "<literal>freebsd-swap</literal> - FreeBSD swap space." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4208 +msgid "" +"Another partition type worth noting is <literal>freebsd-zfs</literal>, used " +"for partitions that will contain a FreeBSD <acronym>ZFS</acronym> file " +"system (<xref linkend=\"zfs\"/>). Refer to " +"<citerefentry><refentrytitle>gpart</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for descriptions of the available <acronym>GPT</acronym> " +"partition types." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4214 +msgid "" +"Multiple file system partitions can be created and some people prefer a " +"traditional layout with separate partitions for <filename>/</filename>, " +"<filename>/var</filename>, <filename>/tmp</filename>, and <filename>/usr</" +"filename>. See <xref linkend=\"bsdinstall-part-manual-splitfs\"/> for an " +"example." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4221 +msgid "" +"The <literal>Size</literal> may be entered with common abbreviations: " +"<emphasis>K</emphasis> for kilobytes, <emphasis>M</emphasis> for megabytes, " +"or <emphasis>G</emphasis> for gigabytes." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:4227 +msgid "" +"Proper sector alignment provides the best performance, and making partition " +"sizes even multiples of 4K bytes helps to ensure alignment on drives with " +"either 512-byte or 4K-byte sectors. Generally, using partition sizes that " +"are even multiples of 1M or 1G is the easiest way to make sure every " +"partition starts at an even multiple of 4K. There is one exception: the " +"<emphasis>freebsd-boot</emphasis> partition should be no larger than 512K " +"due to current boot code limitations." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4238 +msgid "" +"A <literal>Mountpoint</literal> is needed if the partition will contain a " +"file system. If only a single <acronym>UFS</acronym> partition will be " +"created, the mountpoint should be <filename>/</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4243 +msgid "" +"The <literal>Label</literal> is a name by which the partition will be known. " +"Drive names or numbers can change if the drive is connected to a different " +"controller or port, but the partition label does not change. Referring to " +"labels instead of drive names and partition numbers in files like <filename>/" +"etc/fstab</filename> makes the system more tolerant to hardware changes. " +"<acronym>GPT</acronym> labels appear in <filename>/dev/gpt/</filename> when " +"a disk is attached. Other partitioning schemes have different label " +"capabilities and their labels appear in different directories in <filename>/" +"dev/</filename>." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:4256 +msgid "" +"Use a unique label on every partition to avoid conflicts from identical " +"labels. A few letters from the computer's name, use, or location can be " +"added to the label. For instance, use <literal>labroot</literal> or " +"<literal>rootfslab</literal> for the <acronym>UFS</acronym> root partition " +"on the computer named <literal>lab</literal>." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:4266 +msgid "Creating Traditional Split File System Partitions" +msgstr "建立傳統分割的檔案系統分割區" + +#. (itstool) path: example/para +#: book.translate.xml:4269 +msgid "" +"For a traditional partition layout where the <filename>/</filename>, " +"<filename>/var</filename>, <filename>/tmp</filename>, and <filename>/usr</" +"filename> directories are separate file systems on their own partitions, " +"create a <acronym>GPT</acronym> partitioning scheme, then create the " +"partitions as shown. Partition sizes shown are typical for a 20G target " +"disk. If more space is available on the target disk, larger swap or " +"<filename>/var</filename> partitions may be useful. Labels shown here are " +"prefixed with <literal>ex</literal> for <quote>example</quote>, but readers " +"should use other unique label values as described above." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:4282 +msgid "" +"By default, FreeBSD's <filename>gptboot</filename> expects the first " +"<acronym>UFS</acronym> partition to be the <filename>/</filename> partition." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4290 +msgid "Partition Type" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4291 +msgid "Size" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4292 +msgid "Mountpoint" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4293 +msgid "Label" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4299 +msgid "<literal>freebsd-boot</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4300 +msgid "<literal>512K</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4304 book.translate.xml:4318 book.translate.xml:4325 +#: book.translate.xml:4332 +msgid "<literal>freebsd-ufs</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4305 book.translate.xml:4319 +msgid "<literal>2G</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4306 book.translate.xml:7093 +msgid "<filename>/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4307 +msgid "<literal>exrootfs</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4311 +msgid "<literal>freebsd-swap</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4312 +msgid "<literal>4G</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4314 +msgid "<literal>exswap</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4320 +msgid "<filename>/var</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4321 +msgid "<literal>exvarfs</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4326 +msgid "<literal>1G</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4327 +msgid "<filename>/tmp</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4328 +msgid "<literal>extmpfs</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4333 +msgid "accept the default (remainder of the disk)" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4335 +msgid "<filename>/usr</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:4336 +msgid "<literal>exusrfs</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4343 +msgid "" +"After the custom partitions have been created, select <guibutton>[ Finish ]</" +"guibutton> to continue with the installation." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:4349 +msgid "Root-on-ZFS Automatic Partitioning" +msgstr "Root-on-ZFS 自動磁碟分割" + +#. (itstool) path: sect2/para +#: book.translate.xml:4351 +msgid "" +"Support for automatic creation of root-on-ZFS installations was added in " +"FreeBSD 10.0-RELEASE. This partitioning mode only works with whole disks and " +"will erase the contents of the entire disk. The installer will automatically " +"create partitions aligned to 4k boundaries and force <acronym>ZFS</acronym> " +"to use 4k sectors. This is safe even with 512 byte sector disks, and has the " +"added benefit of ensuring that pools created on 512 byte disks will be able " +"to have 4k sector disks added in the future, either as additional storage " +"space or as replacements for failed disks. The installer can also optionally " +"employ <acronym>GELI</acronym> disk encryption as described in <xref linkend=" +"\"disks-encrypting-geli\"/>. If encryption is enabled, a 2 GB unencrypted " +"boot pool containing the <filename>/boot</filename> directory is created. It " +"holds the kernel and other files necessary to boot the system. A swap " +"partition of a user selectable size is also created, and all remaining space " +"is used for the <acronym>ZFS</acronym> pool." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4370 +msgid "" +"The main <acronym>ZFS</acronym> configuration menu offers a number of " +"options to control the creation of the pool." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4375 +msgid "<acronym>ZFS</acronym> Partitioning Menu" +msgstr "<acronym>ZFS</acronym> 分割區選單" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4379 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-zfs-menu' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4384 +msgid "" +"Select <keycap>T</keycap> to configure the <literal>Pool Type</literal> and " +"the disk(s) that will constitute the pool. The automatic <acronym>ZFS</" +"acronym> installer currently only supports the creation of a single top " +"level vdev, except in stripe mode. To create more complex pools, use the " +"instructions in <xref linkend=\"bsdinstall-part-shell\"/> to create the " +"pool. The installer supports the creation of various pool types, including " +"stripe (not recommended, no redundancy), mirror (best performance, least " +"usable space), and RAID-Z 1, 2, and 3 (with the capability to withstand the " +"concurrent failure of 1, 2, and 3 disks, respectively). while selecting the " +"pool type, a tooltip is displayed across the bottom of the screen with " +"advice about the number of required disks, and in the case of RAID-Z, the " +"optimal number of disks for each configuration." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4401 +msgid "<acronym>ZFS</acronym> Pool Type" +msgstr "<acronym>ZFS</acronym> 儲存池類型" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4405 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-zfs-vdev_type' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4410 +msgid "" +"Once a <literal>Pool Type</literal> has been selected, a list of available " +"disks is displayed, and the user is prompted to select one or more disks to " +"make up the pool. The configuration is then validated, to ensure enough " +"disks are selected. If not, select <guibutton><Change Selection></" +"guibutton> to return to the list of disks, or <guibutton><Cancel></" +"guibutton> to change the pool type." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4420 +msgid "Disk Selection" +msgstr "磁碟選擇" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4424 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-zfs-disk_select' md5='__failed__'" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4430 +msgid "Invalid Selection" +msgstr "無效的選擇" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4434 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-zfs-vdev_invalid' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4439 +msgid "" +"If one or more disks are missing from the list, or if disks were attached " +"after the installer was started, select <guibutton>- Rescan Devices</" +"guibutton> to repopulate the list of available disks. To ensure that the " +"correct disks are selected, so as not to accidently destroy the wrong disks, " +"the <guibutton>- Disk Info</guibutton> menu can be used to inspect each " +"disk, including its partition table and various other information such as " +"the device model number and serial number, if available." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4450 +msgid "Analyzing a Disk" +msgstr "分析磁碟" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4454 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-zfs-disk_info' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4459 +msgid "" +"The main <acronym>ZFS</acronym> configuration menu also allows the user to " +"enter a pool name, disable forcing 4k sectors, enable or disable encryption, " +"switch between <acronym>GPT</acronym> (recommended) and <acronym>MBR</" +"acronym> partition table types, and select the amount of swap space. Once " +"all options have been set to the desired values, select the <guibutton>>" +">> Install</guibutton> option at the top of the menu." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4469 +msgid "" +"If <acronym>GELI</acronym> disk encryption was enabled, the installer will " +"prompt twice for the passphrase to be used to encrypt the disks." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4474 +msgid "Disk Encryption Password" +msgstr "磁碟加密密碼" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4478 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-zfs-geli_password' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4483 +msgid "" +"The installer then offers a last chance to cancel before the contents of the " +"selected drives are destroyed to create the <acronym>ZFS</acronym> pool." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4488 +msgid "Last Chance" +msgstr "最後修改" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4492 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-zfs-warning' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4497 +msgid "The installation then proceeds normally." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:4502 +msgid "Shell Mode Partitioning" +msgstr "Shell 模式磁碟分割" + +#. (itstool) path: sect2/para +#: book.translate.xml:4504 +msgid "" +"When creating advanced installations, the <application>bsdinstall</" +"application> paritioning menus may not provide the level of flexibility " +"required. Advanced users can select the <guibutton>Shell</guibutton> option " +"from the partitioning menu in order to manually partition the drives, create " +"the file system(s), populate <filename>/tmp/bsdinstall_etc/fstab</filename>, " +"and mount the file systems under <filename>/mnt</filename>. Once this is " +"done, type <command>exit</command> to return to <application>bsdinstall</" +"application> and continue the installation." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:4519 +msgid "Committing to the Installation" +msgstr "確認安裝" + +#. (itstool) path: sect1/para +#: book.translate.xml:4521 +msgid "" +"Once the disks are configured, the next menu provides the last chance to " +"make changes before the selected hard drive(s) are formatted. If changes " +"need to be made, select <guibutton>[ Back ]</guibutton> to return to the " +"main partitioning menu. <guibutton>[ Revert & Exit ]</guibutton> will " +"exit the installer without making any changes to the hard drive." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4531 +msgid "Final Confirmation" +msgstr "最後確認" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4535 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-final-confirmation' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:4540 +msgid "" +"To instead start the actual installation, select <guibutton>[ Commit ]</" +"guibutton> and press <keycap>Enter</keycap>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:4544 +msgid "" +"Installation time will vary depending on the distributions chosen, " +"installation media, and speed of the computer. A series of messages will " +"indicate the progress." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:4548 +msgid "" +"First, the installer formats the selected disk(s) and initializes the " +"partitions. Next, in the case of a bootonly media, it downloads the selected " +"components:" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4553 +msgid "Fetching Distribution Files" +msgstr "取得發佈版本檔案" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4557 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-distfile-fetching' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:4562 +msgid "" +"Next, the integrity of the distribution files is verified to ensure they " +"have not been corrupted during download or misread from the installation " +"media:" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4567 +msgid "Verifying Distribution Files" +msgstr "檢驗發佈版本檔案" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4571 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-distfile-verifying' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:4576 +msgid "Finally, the verified distribution files are extracted to the disk:" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4580 +msgid "Extracting Distribution Files" +msgstr "解開發佈版本檔案" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4584 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-distfile-extracting' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:4589 +msgid "" +"Once all requested distribution files have been extracted, " +"<application>bsdinstall</application> displays the first post-installation " +"configuration screen. The available post-configuration options are described " +"in the next section." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:4597 +msgid "Post-Installation" +msgstr "安裝後注意事項" + +#. (itstool) path: sect1/para +#: book.translate.xml:4599 +msgid "" +"Once FreeBSD is installed, <application>bsdinstall</application> will prompt " +"to configure several options before booting into the newly installed system. " +"This section describes these configuration options." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:4605 +msgid "" +"Once the system has booted, <command>bsdconfig</command> provides a menu-" +"driven method for configuring the system using these and additional options." +msgstr "" + +#. (itstool) path: sect2/title +#. (itstool) path: figure/title +#: book.translate.xml:4612 book.translate.xml:4623 +msgid "Setting the <systemitem class=\"username\">root</systemitem> Password" +msgstr "設定 <systemitem class=\"username\">root</systemitem> 密碼" + +#. (itstool) path: sect2/para +#: book.translate.xml:4616 +msgid "" +"First, the <systemitem class=\"username\">root</systemitem> password must be " +"set. While entering the password, the characters being typed are not " +"displayed on the screen. After the password has been entered, it must be " +"entered again. This helps prevent typing errors." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4627 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-post-root-passwd' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:4634 +msgid "Configuring Network Interfaces" +msgstr "設定網路介面" + +#. (itstool) path: sect2/para +#: book.translate.xml:4636 +msgid "" +"Next, a list of the network interfaces found on the computer is shown. " +"Select the interface to configure." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:4640 +msgid "" +"The network configuration menus will be skipped if the network was " +"previously configured as part of a <emphasis>bootonly</emphasis> " +"installation." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4646 +msgid "Choose a Network Interface" +msgstr "選擇網路介面" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4650 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-network-interface' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4655 +msgid "" +"If an Ethernet interface is selected, the installer will skip ahead to the " +"menu shown in <xref linkend=\"bsdinstall-configure-net-ipv4\"/>. If a " +"wireless network interface is chosen, the system will instead scan for " +"wireless access points:" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4661 +msgid "Scanning for Wireless Access Points" +msgstr "掃描無線網路存取點" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4665 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-wireless-scan' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4670 +msgid "" +"Wireless networks are identified by a Service Set Identifier (<acronym>SSID</" +"acronym>), a short, unique name given to each network. <acronym>SSIDs</" +"acronym> found during the scan are listed, followed by a description of the " +"encryption types available for that network. If the desired <acronym>SSID</" +"acronym> does not appear in the list, select <guibutton>[ Rescan ]</" +"guibutton> to scan again. If the desired network still does not appear, " +"check for problems with antenna connections or try moving the computer " +"closer to the access point. Rescan after each change is made." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4682 +msgid "Choosing a Wireless Network" +msgstr "選擇無線網路" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4686 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-wireless-accesspoints' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4691 +msgid "" +"Next, enter the encryption information for connecting to the selected " +"wireless network. <acronym>WPA2</acronym> encryption is strongly recommended " +"as older encryption types, like <acronym>WEP</acronym>, offer little " +"security. If the network uses <acronym>WPA2</acronym>, input the password, " +"also known as the Pre-Shared Key (<acronym>PSK</acronym>). For security " +"reasons, the characters typed into the input box are displayed as asterisks." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4701 +msgid "WPA2 Setup" +msgstr "WPA2 設定" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4705 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-wireless-wpa2setup' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4710 +msgid "" +"Next, choose whether or not an <acronym>IPv4</acronym> address should be " +"configured on the Ethernet or wireless interface:" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4715 +msgid "Choose <acronym>IPv4</acronym> Networking" +msgstr "選擇 <acronym>IPv4</acronym> 網路" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4719 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-network-interface-ipv4' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4724 +msgid "" +"There are two methods of <acronym>IPv4</acronym> configuration. " +"<acronym>DHCP</acronym> will automatically configure the network interface " +"correctly and should be used if the network provides a <acronym>DHCP</" +"acronym> server. Otherwise, the addressing information needs to be input " +"manually as a static configuration." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:4732 +msgid "" +"Do not enter random network information as it will not work. If a " +"<acronym>DHCP</acronym> server is not available, obtain the information " +"listed in <xref linkend=\"bsdinstall-collect-network-information\"/> from " +"the network administrator or Internet service provider." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4739 +msgid "" +"If a <acronym>DHCP</acronym> server is available, select <guibutton>[ Yes ]</" +"guibutton> in the next menu to automatically configure the network " +"interface. The installer will appear to pause for a minute or so as it finds " +"the <acronym>DHCP</acronym> server and obtains the addressing information " +"for the system." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4747 +msgid "Choose <acronym>IPv4</acronym> <acronym>DHCP</acronym> Configuration" +msgstr "選擇 <acronym>IPv4</acronym> <acronym>DHCP</acronym> 設定" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4752 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-network-interface-ipv4-dhcp' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4757 +msgid "" +"If a <acronym>DHCP</acronym> server is not available, select " +"<guibutton>[ No ]</guibutton> and input the following addressing information " +"in this menu:" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4762 +msgid "<acronym>IPv4</acronym> Static Configuration" +msgstr "<acronym>IPv4</acronym> 靜態位置設定" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4766 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-network-interface-ipv4-static' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:4773 +msgid "" +"<literal>IP Address</literal> - The <acronym>IPv4</acronym> address assigned " +"to this computer. The address must be unique and not already in use by " +"another piece of equipment on the local network." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:4780 +msgid "<literal>Subnet Mask</literal> - The subnet mask for the network." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:4785 +msgid "" +"<literal>Default Router</literal> - The <acronym>IP</acronym> address of the " +"network's default gateway." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4791 +msgid "" +"The next screen will ask if the interface should be configured for " +"<acronym>IPv6</acronym>. If <acronym>IPv6</acronym> is available and " +"desired, choose <guibutton>[ Yes ]</guibutton> to select it." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4797 +msgid "Choose IPv6 Networking" +msgstr "選擇 IPv6 網路" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4801 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-network-interface-ipv6' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4806 +msgid "" +"<acronym>IPv6</acronym> also has two methods of configuration. StateLess " +"Address AutoConfiguration (<acronym>SLAAC</acronym>) will automatically " +"request the correct configuration information from a local router. Refer to " +"<link xlink:href=\"http://tools.ietf.org/html/rfc4862\">http://tools.ietf." +"org/html/rfc4862</link> for more information. Static configuration requires " +"manual entry of network information." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4814 +msgid "" +"If an <acronym>IPv6</acronym> router is available, select " +"<guibutton>[ Yes ]</guibutton> in the next menu to automatically configure " +"the network interface. The installer will appear to pause for a minute or so " +"as it finds the router and obtains the addressing information for the system." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4821 +msgid "Choose IPv6 SLAAC Configuration" +msgstr "選擇 IPv6 SLAAC 設定" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4825 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-network-interface-slaac' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4830 +msgid "" +"If an <acronym>IPv6</acronym> router is not available, select " +"<guibutton>[ No ]</guibutton> and input the following addressing information " +"in this menu:" +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4835 +msgid "IPv6 Static Configuration" +msgstr "IPv6 靜態位置設定" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4839 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-network-interface-ipv6-static' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:4846 +msgid "" +"<literal>IPv6 Address</literal> - The <acronym>IPv6</acronym> address " +"assigned to this computer. The address must be unique and not already in use " +"by another piece of equipment on the local network." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:4853 +msgid "" +"<literal>Default Router</literal> - The <acronym>IPv6</acronym> address of " +"the network's default gateway." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4859 +msgid "" +"The last network configuration menu is used to configure the Domain Name " +"System (<acronym>DNS</acronym>) resolver, which converts hostnames to and " +"from network addresses. If <acronym>DHCP</acronym> or <acronym>SLAAC</" +"acronym> was used to autoconfigure the network interface, the " +"<literal>Resolver Configuration</literal> values may already be filled in. " +"Otherwise, enter the local network's domain name in the <literal>Search</" +"literal> field. <literal>DNS #1</literal> and <literal>DNS #2</literal> are " +"the <acronym>IPv4</acronym> and/or <acronym>IPv6</acronym> addresses of the " +"<acronym>DNS</acronym> servers. At least one <acronym>DNS</acronym> server " +"is required." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4873 +msgid "DNS Configuration" +msgstr "DNS 設定" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4877 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-configure-network-ipv4-dns' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:4884 +msgid "Setting the Time Zone" +msgstr "設定時區" + +#. (itstool) path: sect2/para +#: book.translate.xml:4886 +msgid "" +"The next menu asks if the system clock uses <acronym>UTC</acronym> or local " +"time. When in doubt, select <guibutton>[ No ]</guibutton> to choose the more " +"commonly-used local time." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4892 +msgid "Select Local or UTC Clock" +msgstr "選擇本地或 UTC 時鐘" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4896 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-set-clock-local-utc' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4901 +msgid "" +"The next series of menus are used to determine the correct local time by " +"selecting the geographic region, country, and time zone. Setting the time " +"zone allows the system to automatically correct for regional time changes, " +"such as daylight savings time, and perform other time zone related functions " +"properly." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4908 +msgid "" +"The example shown here is for a machine located in the Eastern time zone of " +"the United States. The selections will vary according to the geographical " +"location." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4913 +msgid "Select a Region" +msgstr "選擇區域" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4917 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-timezone-region' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4922 +msgid "" +"The appropriate region is selected using the arrow keys and then pressing " +"<keycap>Enter</keycap>." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4926 +msgid "Select a Country" +msgstr "選擇城市" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4930 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-timezone-country' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4935 +msgid "" +"Select the appropriate country using the arrow keys and press <keycap>Enter</" +"keycap>." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4939 +msgid "Select a Time Zone" +msgstr "選擇時區" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4943 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-timezone-zone' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4948 +msgid "" +"The appropriate time zone is selected using the arrow keys and pressing " +"<keycap>Enter</keycap>." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4952 +msgid "Confirm Time Zone" +msgstr "確認時區" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4956 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-timezone-confirm' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4961 +msgid "" +"Confirm the abbreviation for the time zone is correct. If it is, press " +"<keycap>Enter</keycap> to continue with the post-installation configuration." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:4967 +msgid "Enabling Services" +msgstr "開啟服務" + +#. (itstool) path: sect2/para +#: book.translate.xml:4969 +msgid "" +"The next menu is used to configure which system services will be started " +"whenever the system boots. All of these services are optional. Only start " +"the services that are needed for the system to function." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:4975 +msgid "Selecting Additional Services to Enable" +msgstr "選擇要開啟的其他服務" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:4979 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-config-services' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:4984 +msgid "Here is a summary of the services which can be enabled in this menu:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:4989 +msgid "" +"<literal>sshd</literal> - The Secure Shell (<acronym>SSH</acronym>) daemon " +"is used to remotely access a system over an encrypted connection. Only " +"enable this service if the system should be available for remote logins." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:4997 +msgid "" +"<literal>moused</literal> - Enable this service if the mouse will be used " +"from the command-line system console." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5003 +msgid "" +"<literal>ntpd</literal> - The Network Time Protocol (<acronym>NTP</acronym>) " +"daemon for automatic clock synchronization. Enable this service if there is " +"a <trademark class=\"registered\">Windows</trademark>, Kerberos, or " +"<acronym>LDAP</acronym> server on the network." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5011 +msgid "" +"<literal>powerd</literal> - System power control utility for power control " +"and energy saving." +msgstr "" + +#. (itstool) path: sect2/title +#. (itstool) path: figure/title +#: book.translate.xml:5018 book.translate.xml:5026 +msgid "Enabling Crash Dumps" +msgstr "開啟 Crash Dumps" + +#. (itstool) path: sect2/para +#: book.translate.xml:5020 +msgid "" +"The next menu is used to configure whether or not crash dumps should be " +"enabled. Enabling crash dumps can be useful in debugging issues with the " +"system, so users are encouraged to enable crash dumps." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:5030 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-config-crashdump' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:5037 +msgid "Add Users" +msgstr "新增使用者" + +#. (itstool) path: sect2/para +#: book.translate.xml:5039 +msgid "" +"The next menu prompts to create at least one user account. It is recommended " +"to login to the system using a user account rather than as <systemitem class=" +"\"username\">root</systemitem>. When logged in as <systemitem class=" +"\"username\">root</systemitem>, there are essentially no limits or " +"protection on what can be done. Logging in as a normal user is safer and " +"more secure." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5046 +msgid "Select <guibutton>[ Yes ]</guibutton> to add new users." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:5050 +msgid "Add User Accounts" +msgstr "新增使用者帳號" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:5054 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-adduser1' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5059 +msgid "" +"Follow the prompts and input the requested information for the user account. " +"The example shown in <xref linkend=\"bsdinstall-add-user2\"/> creates the " +"<systemitem class=\"username\">asample</systemitem> user account." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:5063 +msgid "Enter User Information" +msgstr "輸入使用者資訊" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:5067 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-adduser2' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5072 +msgid "Here is a summary of the information to input:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5076 +msgid "" +"<literal>Username</literal> - The name the user will enter to log in. A " +"common convention is to use the first letter of the first name combined with " +"the last name, as long as each username is unique for the system. The " +"username is case sensitive and should not contain any spaces." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5085 +msgid "" +"<literal>Full name</literal> - The user's full name. This can contain spaces " +"and is used as a description for the user account." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5091 +msgid "" +"<literal>Uid</literal> - User <acronym>ID</acronym>. Typically, this is left " +"blank so the system will assign a value." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5097 +msgid "" +"<literal>Login group</literal> - The user's group. Typically this is left " +"blank to accept the default." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5102 +msgid "" +"<literal>Invite <replaceable>user</replaceable> into other groups?</literal> " +"- Additional groups to which the user will be added as a member. If the user " +"needs administrative access, type <literal>wheel</literal> here." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5110 +msgid "<literal>Login class</literal> - Typically left blank for the default." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5115 +msgid "" +"<literal>Shell</literal> - Type in one of the listed values to set the " +"interactive shell for the user. Refer to <xref linkend=\"shells\"/> for more " +"information about shells." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5122 +msgid "" +"<literal>Home directory</literal> - The user's home directory. The default " +"is usually correct." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5127 +msgid "" +"<literal>Home directory permissions</literal> - Permissions on the user's " +"home directory. The default is usually correct." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5133 +msgid "" +"<literal>Use password-based authentication?</literal> - Typically " +"<literal>yes</literal> so that the user is prompted to input their password " +"at login." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5139 +msgid "" +"<literal>Use an empty password?</literal> - Typically <literal>no</literal> " +"as it is insecure to have a blank password." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5145 +msgid "" +"<literal>Use a random password?</literal> - Typically <literal>no</literal> " +"so that the user can set their own password in the next prompt." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5151 +msgid "" +"<literal>Enter password</literal> - The password for this user. Characters " +"typed will not show on the screen." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5157 +msgid "" +"<literal>Enter password again</literal> - The password must be typed again " +"for verification." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5162 +msgid "" +"<literal>Lock out the account after creation?</literal> - Typically " +"<literal>no</literal> so that the user can login." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5168 +msgid "" +"After entering everything, a summary is shown for review. If a mistake was " +"made, enter <literal>no</literal> and try again. If everything is correct, " +"enter <literal>yes</literal> to create the new user." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:5174 +msgid "Exit User and Group Management" +msgstr "離開使用者與群組管理" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:5178 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-adduser3' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5183 +msgid "" +"If there are more users to add, answer the <literal>Add another user?</" +"literal> question with <literal>yes</literal>. Enter <literal>no</literal> " +"to finish adding users and continue the installation." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5188 +msgid "" +"For more information on adding users and user management, see <xref linkend=" +"\"users-synopsis\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#. (itstool) path: figure/title +#: book.translate.xml:5193 book.translate.xml:5199 +msgid "Final Configuration" +msgstr "最後設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:5195 +msgid "" +"After everything has been installed and configured, a final chance is " +"provided to modify settings." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:5203 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-finalconfiguration' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5208 +msgid "" +"Use this menu to make any changes or do any additional configuration before " +"completing the installation." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5213 +msgid "" +"<literal>Add User</literal> - Described in <xref linkend=\"bsdinstall-" +"addusers\"/>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5217 +msgid "" +"<literal>Root Password</literal> - Described in <xref linkend=\"bsdinstall-" +"post-root\"/>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5221 +msgid "" +"<literal>Hostname</literal> - Described in <xref linkend=\"bsdinstall-" +"hostname\"/>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5225 +msgid "" +"<literal>Network</literal> - Described in <xref linkend=\"bsdinstall-config-" +"network-dev\"/>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5229 +msgid "" +"<literal>Services</literal> - Described in <xref linkend=\"bsdinstall-sysconf" +"\"/>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5233 +msgid "" +"<literal>Time Zone</literal> - Described in <xref linkend=\"bsdinstall-" +"timezone\"/>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5237 +msgid "" +"<literal>Handbook</literal> - Download and install the FreeBSD Handbook." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5242 +msgid "" +"After any final configuration is complete, select <guibutton>Exit</" +"guibutton>." +msgstr "" + +#. (itstool) path: figure/title +#. (itstool) path: sect2/title +#: book.translate.xml:5246 book.translate.xml:11366 +msgid "Manual Configuration" +msgstr "手動設定" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:5250 +msgctxt "_" +msgid "" +"external ref='bsdinstall/bsdinstall-final-modification-shell' " +"md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5255 +msgid "" +"<application>bsdinstall</application> will prompt if there are any " +"additional configuration that needs to be done before rebooting into the new " +"system. Select <guibutton>[ Yes ]</guibutton> to exit to a shell within the " +"new system or <guibutton>[ No ]</guibutton> to proceed to the last step of " +"the installation." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:5264 +msgid "Complete the Installation" +msgstr "完成安裝" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:5268 +msgctxt "_" +msgid "external ref='bsdinstall/bsdinstall-mainexit' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5273 +msgid "" +"If further configuration or special setup is needed, select " +"<guibutton>[ Live CD ]</guibutton> to boot the install media into Live " +"<acronym>CD</acronym> mode." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5278 +msgid "" +"If the installation is complete, select <guibutton>[ Reboot ]</guibutton> to " +"reboot the computer and start the new FreeBSD system. Do not forget to " +"remove the FreeBSD install media or the computer may boot from it again." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5284 +msgid "" +"As FreeBSD boots, informational messages are displayed. After the system " +"finishes booting, a login prompt is displayed. At the <prompt>login:</" +"prompt> prompt, enter the username added during the installation. Avoid " +"logging in as <systemitem class=\"username\">root</systemitem>. Refer to " +"<xref linkend=\"users-superuser\"/> for instructions on how to become the " +"superuser when administrative access is needed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5293 +msgid "" +"The messages that appeared during boot can be reviewed by pressing " +"<keycap>Scroll-Lock</keycap> to turn on the scroll-back buffer. The " +"<keycap>PgUp</keycap>, <keycap>PgDn</keycap>, and arrow keys can be used to " +"scroll back through the messages. When finished, press <keycap>Scroll-Lock</" +"keycap> again to unlock the display and return to the console. To review " +"these messages once the system has been up for some time, type " +"<command>less /var/run/dmesg.boot</command> from a command prompt. Press " +"<keycap>q</keycap> to return to the command line after viewing." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5305 +msgid "" +"If <application>sshd</application> was enabled in <xref linkend=\"bsdinstall-" +"config-serv\"/>, the first boot may be a bit slower as the system will " +"generate the <acronym>RSA</acronym> and <acronym>DSA</acronym> keys. " +"Subsequent boots will be faster. The fingerprints of the keys will be " +"displayed, as seen in this example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:5311 +#, no-wrap +msgid "" +"Generating public/private rsa1 key pair.\n" +"Your identification has been saved in /etc/ssh/ssh_host_key.\n" +"Your public key has been saved in /etc/ssh/ssh_host_key.pub.\n" +"The key fingerprint is:\n" +"10:a0:f5:af:93:ae:a3:1a:b2:bb:3c:35:d9:5a:b3:f3 root@machine3.example.com\n" +"The key's randomart image is:\n" +"+--[RSA1 1024]----+\n" +"| o.. |\n" +"| o . . |\n" +"| . o |\n" +"| o |\n" +"| o S |\n" +"| + + o |\n" +"|o . + * |\n" +"|o+ ..+ . |\n" +"|==o..o+E |\n" +"+-----------------+\n" +"Generating public/private dsa key pair.\n" +"Your identification has been saved in /etc/ssh/ssh_host_dsa_key.\n" +"Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.\n" +"The key fingerprint is:\n" +"7e:1c:ce:dc:8a:3a:18:13:5b:34:b5:cf:d9:d1:47:b2 root@machine3.example.com\n" +"The key's randomart image is:\n" +"+--[ DSA 1024]----+\n" +"| .. . .|\n" +"| o . . + |\n" +"| . .. . E .|\n" +"| . . o o . . |\n" +"| + S = . |\n" +"| + . = o |\n" +"| + . * . |\n" +"| . . o . |\n" +"| .o. . |\n" +"+-----------------+\n" +"Starting sshd." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5347 +msgid "" +"Refer to <xref linkend=\"openssh\"/> for more information about fingerprints " +"and <acronym>SSH</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5350 +msgid "" +"FreeBSD does not install a graphical environment by default. Refer to <xref " +"linkend=\"x11\"/> for more information about installing and configuring a " +"graphical window manager." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5354 +msgid "" +"Proper shutdown of a FreeBSD computer helps protect data and hardware from " +"damage. <emphasis>Do not turn off the power before the system has been " +"properly shut down!</emphasis> If the user is a member of the <systemitem " +"class=\"groupname\">wheel</systemitem> group, become the superuser by typing " +"<command>su</command> at the command line and entering the <systemitem class=" +"\"username\">root</systemitem> password. Then, type <command>shutdown -p " +"now</command> and the system will shut down cleanly, and if the hardware " +"supports it, turn itself off." +msgstr "" + +#. (itstool) path: sect1/title +#. (itstool) path: sect2/title +#. (itstool) path: sect3/title +#: book.translate.xml:5367 book.translate.xml:12308 book.translate.xml:15064 +#: book.translate.xml:20212 book.translate.xml:35340 book.translate.xml:36110 +#: book.translate.xml:47782 book.translate.xml:51028 book.translate.xml:62116 +#: book.translate.xml:63771 book.translate.xml:64494 +msgid "Troubleshooting" +msgstr "疑難排解" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:5369 +msgid "<primary>installation</primary> <secondary>troubleshooting</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:5373 +msgid "" +"This section covers basic installation troubleshooting, such as common " +"problems people have reported." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:5377 +msgid "" +"Check the Hardware Notes (<link xlink:href=\"@@URL_RELPREFIX@@/releases/" +"index.html\">http://www.freebsd.org/releases/index.html</link>) document for " +"the version of FreeBSD to make sure the hardware is supported. If the " +"hardware is supported and lock-ups or other problems occur, build a custom " +"kernel using the instructions in <xref linkend=\"kernelconfig\"/> to add " +"support for devices which are not present in the <filename>GENERIC</" +"filename> kernel. The default kernel assumes that most hardware devices are " +"in their factory default configuration in terms of <acronym>IRQ</acronym>s, " +"<acronym>I/O</acronym> addresses, and <acronym>DMA</acronym> channels. If " +"the hardware has been reconfigured, a custom kernel configuration file can " +"tell FreeBSD where to find things." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:5391 +msgid "" +"Some installation problems can be avoided or alleviated by updating the " +"firmware on various hardware components, most notably the motherboard. " +"Motherboard firmware is usually referred to as the <acronym>BIOS</acronym>. " +"Most motherboard and computer manufacturers have a website for upgrades and " +"upgrade information." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:5398 +msgid "" +"Manufacturers generally advise against upgrading the motherboard " +"<acronym>BIOS</acronym> unless there is a good reason for doing so, like a " +"critical update. The upgrade process <emphasis>can</emphasis> go wrong, " +"leaving the <acronym>BIOS</acronym> incomplete and the computer inoperative." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:5406 +msgid "" +"If the system hangs while probing hardware during boot, or it behaves " +"strangely during install, <acronym>ACPI</acronym> may be the culprit. " +"FreeBSD makes extensive use of the system <acronym>ACPI</acronym> service on " +"the i386, amd64, and ia64 platforms to aid in system configuration if it is " +"detected during boot. Unfortunately, some bugs still exist in both the " +"<acronym>ACPI</acronym> driver and within system motherboards and " +"<acronym>BIOS</acronym> firmware. <acronym>ACPI</acronym> can be disabled by " +"setting the <literal>hint.acpi.0.disabled</literal> hint in the third stage " +"boot loader:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:5418 +#, no-wrap +msgid "<userinput>set hint.acpi.0.disabled=\"1\"</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:5420 +msgid "" +"This is reset each time the system is booted, so it is necessary to add " +"<literal>hint.acpi.0.disabled=\"1\"</literal> to the file <filename>/boot/" +"loader.conf</filename>. More information about the boot loader can be found " +"in <xref linkend=\"boot-synopsis\"/>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:5427 +msgid "Using the Live <acronym>CD</acronym>" +msgstr "使用 Live <acronym>CD</acronym>" + +#. (itstool) path: sect1/para +#: book.translate.xml:5429 +msgid "" +"The welcome menu of <application>bsdinstall</application>, shown in <xref " +"linkend=\"bsdinstall-choose-mode\"/>, provides a <guibutton>[ Live CD ]</" +"guibutton> option. This is useful for those who are still wondering whether " +"FreeBSD is the right operating system for them and want to test some of the " +"features before installing." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:5436 +msgid "" +"The following points should be noted before using the " +"<guibutton>[ Live CD ]</guibutton>:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5441 +msgid "" +"To gain access to the system, authentication is required. The username is " +"<systemitem class=\"username\">root</systemitem> and the password is blank." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5447 +msgid "" +"As the system runs directly from the installation media, performance will be " +"significantly slower than that of a system installed on a hard disk." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5453 +msgid "" +"This option only provides a command prompt and not a graphical interface." +msgstr "" + +#. (itstool) path: chapter/title +#: book.translate.xml:5478 +msgid "UNIX Basics" +msgstr "UNIX 基礎概念" + +#. (itstool) path: sect1/para +#: book.translate.xml:5483 +msgid "" +"This chapter covers the basic commands and functionality of the FreeBSD " +"operating system. Much of this material is relevant for any <trademark class=" +"\"registered\">UNIX</trademark>-like operating system. New FreeBSD users are " +"encouraged to read through this chapter carefully." +msgstr "" +"接下來的這一章將涵蓋 FreeBSD 作業系統的基本指令及功能。 大部份的內容在 " +"<trademark class=\"registered\">UNIX</trademark>-like 作業系統中都是相通的。 " +"如果您對這些內容熟悉的話,可以放心的跳過。 如果您剛接觸 FreeBSD,那您一定要仔" +"細的讀完這章。" + +#. (itstool) path: listitem/para +#: book.translate.xml:5492 +msgid "How to use and configure virtual consoles." +msgstr "如何使用 FreeBSD 的虛擬 Console。" + +#. (itstool) path: listitem/para +#: book.translate.xml:5496 +msgid "How to create and manage users and groups on FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5501 +msgid "" +"How <trademark class=\"registered\">UNIX</trademark> file permissions and " +"FreeBSD file flags work." +msgstr "" +"<trademark class=\"registered\">UNIX</trademark> 檔案權限以及 FreeBSD 檔案標" +"記的運作方式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:5506 +msgid "The default FreeBSD file system layout." +msgstr "預設的 FreeBSD 檔案系統配置。" + +#. (itstool) path: listitem/para +#: book.translate.xml:5510 +msgid "The FreeBSD disk organization." +msgstr "FreeBSD 的磁碟組織。" + +#. (itstool) path: listitem/para +#: book.translate.xml:5514 +msgid "How to mount and unmount file systems." +msgstr "如何掛載(mount)、卸載(umount)檔案系統。" + +#. (itstool) path: listitem/para +#: book.translate.xml:5518 +msgid "What processes, daemons, and signals are." +msgstr "什麼是程序、Daemon 以及 Signal。" + +#. (itstool) path: listitem/para +#: book.translate.xml:5522 +msgid "What a shell is, and how to change the default login environment." +msgstr "什麼是 Shell,以及如何變更您預設的登入環境。" + +#. (itstool) path: listitem/para +#: book.translate.xml:5527 +msgid "How to use basic text editors." +msgstr "如何使用基本的文字編輯器。" + +#. (itstool) path: listitem/para +#: book.translate.xml:5531 +msgid "What devices and device nodes are." +msgstr "什麼是 Devices 和 Device node 。" + +#. (itstool) path: listitem/para +#: book.translate.xml:5535 +msgid "How to read manual pages for more information." +msgstr "如何閱讀操作手冊以獲得更多的資訊。" + +#. (itstool) path: sect1/title +#: book.translate.xml:5541 +msgid "Virtual Consoles and Terminals" +msgstr "虛擬 Console 與終端機" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:5543 +msgid "<primary>virtual consoles</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:5546 book.translate.xml:47064 +msgid "<primary>terminals</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect3/indexterm +#: book.translate.xml:5549 book.translate.xml:23194 +msgid "<primary>console</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:5553 +msgid "" +"Unless FreeBSD has been configured to automatically start a graphical " +"environment during startup, the system will boot into a command line login " +"prompt, as seen in this example:" +msgstr "" +"如果您沒有將 FreeBSD 設定成開機時自動進入圖形化模式,系統會進入指令登入提示像" +"是這樣的東西:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:5558 +#, no-wrap +msgid "" +"FreeBSD/amd64 (pc3.example.org) (ttyv0)\n" +"\n" +"login:" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:5562 +msgid "" +"The first line contains some information about the system. The " +"<literal>amd64</literal> indicates that the system in this example is " +"running a 64-bit version of FreeBSD. The hostname is <systemitem>pc3.example." +"org</systemitem>, and <filename>ttyv0</filename> indicates that this is the " +"<quote>system console</quote>. The second line is the login prompt." +msgstr "" +"第一行包含了剛開機完系統的資訊,<literal>amd64</literal> 代表此範例所使用的系" +"統是執行 64-位元版本的 FreeBSD,這台主機的名稱是 <systemitem>pc3.example." +"org</systemitem>,<filename>ttyv0</filename> 代表這是個 <quote>系統 Console</" +"quote>。第二行則是登人的提示訊息。" + +#. (itstool) path: sect1/para +#: book.translate.xml:5570 +msgid "" +"Since FreeBSD is a multiuser system, it needs some way to distinguish " +"between different users. This is accomplished by requiring every user to log " +"into the system before gaining access to the programs on the system. Every " +"user has a unique name <quote>username</quote> and a personal " +"<quote>password</quote>." +msgstr "" +"FreeBSD 是一個多使用者的系統,需要一套可以分辨不同使用者的方法。因此所有的使" +"用者在執行程式之前必須先“登入”系統以取得系統內程式的存取權限。每個使用者都有" +"一組獨特的帳號名稱 (<quote>username</quote>) 及個人密碼 (<quote>password</" +"quote>)。" + +#. (itstool) path: sect1/para +#: book.translate.xml:5577 +msgid "" +"To log into the system console, type the username that was configured during " +"system installation, as described in <xref linkend=\"bsdinstall-addusers\"/" +">, and press <keycap>Enter</keycap>. Then enter the password associated with " +"the username and press <keycap>Enter</keycap>. The password is <emphasis>not " +"echoed</emphasis> for security reasons." +msgstr "" +"要登入系統 Console 需輸入在系統安裝時設定的使用者名稱,請參考 <xref linkend=" +"\"bsdinstall-addusers\"/>,並按下 <keycap>Enter</keycap>。 接著輸入該使用者名" +"稱的密碼按下 <keycap>Enter</keycap>。 輸入的密碼為了安全起見<emphasis>不會顯" +"示</emphasis>在畫面上。" + +#. (itstool) path: sect1/para +#: book.translate.xml:5585 +msgid "" +"Once the correct password is input, the message of the day (<acronym>MOTD</" +"acronym>) will be displayed followed by a command prompt. Depending upon the " +"shell that was selected when the user was created, this prompt will be a " +"<literal>#</literal>, <literal>$</literal>, or <literal>%</literal> " +"character. The prompt indicates that the user is now logged into the FreeBSD " +"system console and ready to try the available commands." +msgstr "" +"如果您輸入了正確的密碼,您應該會看到今日訊息 (Message of the day, " +"<acronym>MOTD</acronym>),後面接著顯示指令提示字元,依使用者建立時所選擇的 " +"Shell 會有不同的提示字元可能為 <literal>#</literal>, <literal>$</literal> 或" +"者 <literal>%</literal>。 看到指令提示代表使用者現在已經登入 FreeBSD 系統 " +"Console 且已經準備好可以下指令。" + +#. (itstool) path: sect2/title +#: book.translate.xml:5595 +msgid "Virtual Consoles" +msgstr "虛擬 Console" + +#. (itstool) path: sect2/para +#: book.translate.xml:5597 +msgid "" +"While the system console can be used to interact with the system, a user " +"working from the command line at the keyboard of a FreeBSD system will " +"typically instead log into a virtual console. This is because system " +"messages are configured by default to display on the system console. These " +"messages will appear over the command or file that the user is working on, " +"making it difficult to concentrate on the work at hand." +msgstr "" +"雖然系統 Console 已經可以用來與系統互動,但使用鍵盤來下指令使用 FreeBSD 系統" +"的使用者通常會使用虛擬 Console 登入。 因為系統訊息預設會顯示在系統 Console," +"這些訊些會在使用者作業的過程中不斷出現,讓使用者難以專心作業。" + +#. (itstool) path: sect2/para +#: book.translate.xml:5606 +msgid "" +"By default, FreeBSD is configured to provide several virtual consoles for " +"inputting commands. Each virtual console has its own login prompt and shell " +"and it is easy to switch between virtual consoles. This essentially provides " +"the command line equivalent of having several windows open at the same time " +"in a graphical environment." +msgstr "" +"FreeBSD 預設提供多個虛擬 Console 可輸入指令,每個虛擬 Console 都有自己的登入" +"提示及 Shell 並且可以輕易的在虛擬 Console 間切換。 這實際上讓指令輸入有了類似" +"於圖型化環境中可以同時開啟多個視窗的功能。" + +#. (itstool) path: sect2/para +#: book.translate.xml:5613 +msgid "" +"The key combinations <keycombo><keycap>Alt</keycap><keycap>F1</keycap></" +"keycombo> through <keycombo><keycap>Alt</keycap><keycap>F8</keycap></" +"keycombo> have been reserved by FreeBSD for switching between virtual " +"consoles. Use <keycombo><keycap>Alt</keycap><keycap>F1</keycap></keycombo> " +"to switch to the system console (<filename>ttyv0</filename>), " +"<keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> to access the " +"first virtual console (<filename>ttyv1</filename>), <keycombo><keycap>Alt</" +"keycap><keycap>F3</keycap></keycombo> to access the second virtual console " +"(<filename>ttyv2</filename>), and so on." +msgstr "" +"組合鍵 <keycombo><keycap>Alt</keycap><keycap>F1</keycap></keycombo> 至 " +"<keycombo><keycap>Alt</keycap><keycap>F8</keycap></keycombo> 被 FreeBSD 保留" +"用來切換虛擬 Console,使用 <keycombo><keycap>Alt</keycap><keycap>F1</" +"keycap></keycombo> 可切換至系統 Console (<filename>ttyv0</filename>)," +"<keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> 可存取第一個虛" +"擬 Console (<filename>ttyv1</filename>),<keycombo><keycap>Alt</" +"keycap><keycap>F3</keycap></keycombo> 可存取第二個虛擬 Console " +"(<filename>ttyv2</filename>),以此類推。" + +#. (itstool) path: sect2/para +#: book.translate.xml:5629 +msgid "" +"When switching from one console to the next, FreeBSD manages the screen " +"output. The result is an illusion of having multiple virtual screens and " +"keyboards that can be used to type commands for FreeBSD to run. The programs " +"that are launched in one virtual console do not stop running when the user " +"switches to a different virtual console." +msgstr "" +"當您從一個 Console 切換到下一個的時候,FreeBSD 會切換畫面顯示的內容, 這就好" +"像有很多虛擬的螢幕和鍵盤可以讓您輸入指令到 FreeBSD 執行。 在某一個虛擬 " +"Console 上執行的程式並不會因為使用者切到別的 Console 而停止執行。" + +#. (itstool) path: sect2/para +#: book.translate.xml:5636 +msgid "" +"Refer to <citerefentry><refentrytitle>kbdcontrol</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>vidcontrol</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, <citerefentry><refentrytitle>atkbd</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>syscons</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry>, and <citerefentry><refentrytitle>vt</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> for a more technical " +"description of the FreeBSD console and its keyboard drivers." +msgstr "" +"請參考 <citerefentry><refentrytitle>kbdcontrol</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, <citerefentry><refentrytitle>vidcontrol</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>atkbd</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>, <citerefentry><refentrytitle>syscons</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> 以及 " +"<citerefentry><refentrytitle>vt</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> 來取得更多有關 FreeBSD Console 及鍵盤驅動程式的技術說明。" + +#. (itstool) path: sect2/para +#: book.translate.xml:5641 +msgid "" +"In FreeBSD, the number of available virtual consoles is configured in this " +"section of <filename>/etc/ttys</filename>:" +msgstr "" +"FreeBSD 中虛擬 Console 的數量設定在 <filename>/etc/ttys</filename> 檔案中的下" +"列章節:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:5645 +#, no-wrap +msgid "" +"# name getty type status comments\n" +"#\n" +"ttyv0 \"/usr/libexec/getty Pc\" xterm on secure\n" +"# Virtual terminals\n" +"ttyv1 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv2 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv3 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv4 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv5 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv6 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv7 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv8 \"/usr/X11R6/bin/xdm -nodaemon\" xterm off secure" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5659 +msgid "" +"To disable a virtual console, put a comment symbol (<literal>#</literal>) at " +"the beginning of the line representing that virtual console. For example, to " +"reduce the number of available virtual consoles from eight to four, put a " +"<literal>#</literal> in front of the last four lines representing virtual " +"consoles <filename>ttyv5</filename> through <filename>ttyv8</filename>. " +"<emphasis>Do not</emphasis> comment out the line for the system console " +"<filename>ttyv0</filename>. Note that the last virtual console " +"(<filename>ttyv8</filename>) is used to access the graphical environment if " +"<application>Xorg</application> has been installed and configured as " +"described in <xref linkend=\"x11\"/>." +msgstr "" +"要關閉虛擬 Console 只要在指定的虛擬 Console 該行設定的一開始加上註解符號 " +"(<literal>#</literal>)。 例如要將虛擬 Console 的數量由 8 個改為 4 個,則可將 " +"<literal>#</literal> 加在代表虛擬 Console 的 <filename>ttyv5</filename> 到 " +"<filename>ttyv8</filename> 的最後四行一開始。 <emphasis>請勿</emphasis>將系" +"統 Console <filename>ttyv0</filename> 加上註解符號。 注意,若有依照 <xref " +"linkend=\"x11\"/> 安裝並設定 <application>Xorg</application> 時,會用到最後一" +"個虛擬 Console (<filename>ttyv8</filename>)。" + +#. (itstool) path: sect2/para +#: book.translate.xml:5673 +msgid "" +"For a detailed description of every column in this file and the available " +"options for the virtual consoles, refer to " +"<citerefentry><refentrytitle>ttys</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry>." +msgstr "" +"有關各欄位的設定以及其他選項,請參閱 <citerefentry><refentrytitle>ttys</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 說明。" + +#. (itstool) path: sect2/title +#: book.translate.xml:5679 +msgid "Single User Mode" +msgstr "單使用者模式" + +#. (itstool) path: sect2/para +#: book.translate.xml:5681 +msgid "" +"The FreeBSD boot menu provides an option labelled as <quote>Boot Single " +"User</quote>. If this option is selected, the system will boot into a " +"special mode known as <quote>single user mode</quote>. This mode is " +"typically used to repair a system that will not boot or to reset the " +"<systemitem class=\"username\">root</systemitem> password when it is not " +"known. While in single user mode, networking and other virtual consoles are " +"not available. However, full <systemitem class=\"username\">root</" +"systemitem> access to the system is available, and by default, the " +"<systemitem class=\"username\">root</systemitem> password is not needed. For " +"these reasons, physical access to the keyboard is needed to boot into this " +"mode and determining who has physical access to the keyboard is something to " +"consider when securing a FreeBSD system." +msgstr "" +"FreeBSD 開機選單會提供一個選項為 <quote>Boot Single User</quote>,若選擇該項" +"目,系統將會進入所謂 <quote>單使用者模式</quote> 的特殊模式。 此模式通常用在" +"修復系統無法開機或重設已忘掉的 <systemitem class=\"username\">root</" +"systemitem> 密碼。 在當使用者模式中無法使用網路及其他虛擬 Console,但有完整 " +"<systemitem class=\"username\">root</systemitem> 對系統的存取權限,而且預設是" +"不須要輸入 <systemitem class=\"username\">root</systemitem> 密碼。 也因此,要" +"能透過實體鍵盤操作才能進入此模式,在考量 FreeBSD 系統安全時須要限制可操作實體" +"鍵盤的人員。" + +#. (itstool) path: sect2/para +#: book.translate.xml:5697 +msgid "" +"The settings which control single user mode are found in this section of " +"<filename>/etc/ttys</filename>:" +msgstr "" +"有關單使用者模式的設定可在 <filename>/etc/ttys</filename> 中的以下章節中找到:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:5700 +#, no-wrap +msgid "" +"# name getty type status comments\n" +"#\n" +"# If console is marked \"insecure\", then init will ask for the root password\n" +"# when going to single-user mode.\n" +"console none unknown off secure" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5706 +msgid "" +"By default, the status is set to <literal>secure</literal>. This assumes " +"that who has physical access to the keyboard is either not important or it " +"is controlled by a physical security policy. If this setting is changed to " +"<literal>insecure</literal>, the assumption is that the environment itself " +"is insecure because anyone can access the keyboard. When this line is " +"changed to <literal>insecure</literal>, FreeBSD will prompt for the " +"<systemitem class=\"username\">root</systemitem> password when a user " +"selects to boot into single user mode." +msgstr "" +"預設狀態為安全 (<literal>secure</literal>),這代表誰能夠操作實體鍵盤不是不重" +"要就是已受到實體安全規範管制。 若設定更該為不安全(<literal>insecure</" +"literal>) 則代表主機所在的環境不安全,因為任何人皆可接觸鍵盤。 當此行設定更改" +"為不安全 (<literal>insecure</literal>) 時,當使用擇選擇單使用者模式時," +"FreeBSD 將會要求輸入 <systemitem class=\"username\">root</systemitem> 的密" +"碼。" + +#. (itstool) path: note/para +#: book.translate.xml:5718 +msgid "" +"<emphasis>Be careful when changing this setting to <literal>insecure</" +"literal></emphasis>! If the <systemitem class=\"username\">root</systemitem> " +"password is forgotten, booting into single user mode is still possible, but " +"may be difficult for someone who is not familiar with the FreeBSD booting " +"process." +msgstr "" +"<emphasis>請審慎考慮是否要改為 <literal>insecure</literal></emphasis>! 因為" +"萬一忘記 <systemitem class=\"username\">root</systemitem> 密碼的話,雖然還是" +"有其他辦法可以登入單使用者模式,只是對不熟 FreeBSD 開機程序的人可就麻煩了。" + +#. (itstool) path: sect2/title +#: book.translate.xml:5728 +msgid "Changing Console Video Modes" +msgstr "更改 Console 影像模式" + +#. (itstool) path: sect2/para +#: book.translate.xml:5730 +msgid "" +"The FreeBSD console default video mode may be adjusted to 1024x768, " +"1280x1024, or any other size supported by the graphics chip and monitor. To " +"use a different video mode load the <literal>VESA</literal> module:" +msgstr "" +"FreeBSD Console 預設顯示大小可以調整為 1024x768、1280x1024 或其他顯示卡與螢幕" +"有支援的解析度大小。 要使用不同的影像模式需載入 <literal>VESA</literal> 模" +"組:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:5735 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload vesa</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5737 +msgid "" +"To determine which video modes are supported by the hardware, use " +"<citerefentry><refentrytitle>vidcontrol</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>. To get a list of supported video modes issue the " +"following:" +msgstr "" +"要偵測硬體支援的影像模式,可使用 <citerefentry><refentrytitle>vidcontrol</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>。 要取得支援的影像模式" +"清單可輸入以下指令:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:5741 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>vidcontrol -i mode</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5743 +msgid "" +"The output of this command lists the video modes that are supported by the " +"hardware. To select a new video mode, specify the mode using " +"<citerefentry><refentrytitle>vidcontrol</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> as the <systemitem class=\"username\">root</" +"systemitem> user:" +msgstr "" +"該指令會顯示硬體所支援的影像模式清單,要採用新的影像模式需以 <systemitem " +"class=\"username\">root</systemitem> 使用者執行 " +"<citerefentry><refentrytitle>vidcontrol</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 指令:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:5748 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>vidcontrol MODE_279</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5750 +msgid "" +"If the new video mode is acceptable, it can be permanently set on boot by " +"adding it to <filename>/etc/rc.conf</filename>:" +msgstr "" +"若可接受新的影像模式,可以在 <filename>/etc/rc.conf</filename> 加入設定,讓每" +"次重開機後會自動生效:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:5754 +#, no-wrap +msgid "allscreens_flags=\"MODE_279\"" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:5771 +msgid "Users and Basic Account Management" +msgstr "使用者與基礎帳號管理" + +#. (itstool) path: sect1/para +#: book.translate.xml:5773 +msgid "" +"FreeBSD allows multiple users to use the computer at the same time. While " +"only one user can sit in front of the screen and use the keyboard at any one " +"time, any number of users can log in to the system through the network. To " +"use the system, each user should have their own user account." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:5779 +msgid "This chapter describes:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5783 +msgid "The different types of user accounts on a FreeBSD system." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5788 +msgid "How to add, remove, and modify user accounts." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5792 +msgid "" +"How to set limits to control the resources that users and groups are allowed " +"to access." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5798 +msgid "How to create groups and add users as members of a group." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:5804 +msgid "Account Types" +msgstr "帳號類型" + +#. (itstool) path: sect2/para +#: book.translate.xml:5806 +msgid "" +"Since all access to the FreeBSD system is achieved using accounts and all " +"processes are run by users, user and account management is important." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:5810 +msgid "" +"There are three main types of accounts: system accounts, user accounts, and " +"the superuser account." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:5814 +msgid "System Accounts" +msgstr "系統帳號" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:5816 +msgid "<primary>accounts</primary> <secondary>system</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:5821 +msgid "" +"System accounts are used to run services such as DNS, mail, and web servers. " +"The reason for this is security; if all services ran as the superuser, they " +"could act without restriction." +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:5826 +msgid "" +"<primary>accounts</primary> <secondary><systemitem class=\"username" +"\">daemon</systemitem></secondary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:5830 +msgid "" +"<primary>accounts</primary> <secondary><systemitem class=\"username" +"\">operator</systemitem></secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:5835 +msgid "" +"Examples of system accounts are <systemitem class=\"username\">daemon</" +"systemitem>, <systemitem class=\"username\">operator</systemitem>, " +"<systemitem class=\"username\">bind</systemitem>, <systemitem class=" +"\"username\">news</systemitem>, and <systemitem class=\"username\">www</" +"systemitem>." +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:5842 +msgid "" +"<primary>accounts</primary> <secondary><systemitem class=\"username" +"\">nobody</systemitem></secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:5847 +msgid "" +"<systemitem class=\"username\">nobody</systemitem> is the generic " +"unprivileged system account. However, the more services that use <systemitem " +"class=\"username\">nobody</systemitem>, the more files and processes that " +"user will become associated with, and hence the more privileged that user " +"becomes." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:5856 +msgid "User Accounts" +msgstr "使用者帳號" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:5858 +msgid "<primary>accounts</primary> <secondary>user</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:5863 +msgid "" +"User accounts are assigned to real people and are used to log in and use the " +"system. Every person accessing the system should have a unique user account. " +"This allows the administrator to find out who is doing what and prevents " +"users from clobbering the settings of other users." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:5869 +msgid "" +"Each user can set up their own environment to accommodate their use of the " +"system, by configuring their default shell, editor, key bindings, and " +"language settings." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:5874 +msgid "" +"Every user account on a FreeBSD system has certain information associated " +"with it:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:5879 +msgid "User name" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5882 +msgid "" +"The user name is typed at the <prompt>login:</prompt> prompt. Each user must " +"have a unique user name. There are a number of rules for creating valid user " +"names which are documented in <citerefentry><refentrytitle>passwd</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>. It is recommended to " +"use user names that consist of eight or fewer, all lower case characters in " +"order to maintain backwards compatibility with applications." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:5894 +msgid "Password" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5897 +msgid "Each account has an associated password." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:5902 +msgid "User ID (<acronym>UID</acronym>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5905 +msgid "" +"The User ID (<acronym>UID</acronym>) is a number used to uniquely identify " +"the user to the FreeBSD system. Commands that allow a user name to be " +"specified will first convert it to the <acronym>UID</acronym>. It is " +"recommended to use a UID less than 65535, since higher values may cause " +"compatibility issues with some software." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:5916 +msgid "Group ID (<acronym>GID</acronym>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5919 +msgid "" +"The Group ID (<acronym>GID</acronym>) is a number used to uniquely identify " +"the primary group that the user belongs to. Groups are a mechanism for " +"controlling access to resources based on a user's <acronym>GID</acronym> " +"rather than their <acronym>UID</acronym>. This can significantly reduce the " +"size of some configuration files and allows users to be members of more than " +"one group. It is recommended to use a GID of 65535 or lower as higher GIDs " +"may break some software." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:5933 +msgid "Login class" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5936 +msgid "" +"Login classes are an extension to the group mechanism that provide " +"additional flexibility when tailoring the system to different users. Login " +"classes are discussed further in <xref linkend=\"users-limiting\"/>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:5945 +msgid "Password change time" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5948 +msgid "" +"By default, passwords do not expire. However, password expiration can be " +"enabled on a per-user basis, forcing some or all users to change their " +"passwords after a certain amount of time has elapsed." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:5957 +msgid "Account expiration time" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5960 +msgid "" +"By default, FreeBSD does not expire accounts. When creating accounts that " +"need a limited lifespan, such as student accounts in a school, specify the " +"account expiry date using <citerefentry><refentrytitle>pw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. After the expiry time " +"has elapsed, the account cannot be used to log in to the system, although " +"the account's directories and files will remain." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:5971 +msgid "User's full name" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5974 +msgid "" +"The user name uniquely identifies the account to FreeBSD, but does not " +"necessarily reflect the user's real name. Similar to a comment, this " +"information can contain spaces, uppercase characters, and be more than 8 " +"characters long." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:5983 +msgid "Home directory" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:5986 +msgid "" +"The home directory is the full path to a directory on the system. This is " +"the user's starting directory when the user logs in. A common convention is " +"to put all user home directories under <filename><replaceable>/home/" +"username</replaceable></filename> or <filename><replaceable>/usr/home/" +"username</replaceable></filename>. Each user stores their personal files and " +"subdirectories in their own home directory." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:5997 +msgid "User shell" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:6000 +msgid "" +"The shell provides the user's default environment for interacting with the " +"system. There are many different kinds of shells and experienced users will " +"have their own preferences, which can be reflected in their account settings." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:6011 +msgid "The Superuser Account" +msgstr "超級使用者帳號" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:6013 +msgid "<primary>accounts</primary> <secondary>superuser (root)</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6018 +msgid "" +"The superuser account, usually called <systemitem class=\"username\">root</" +"systemitem>, is used to manage the system with no limitations on privileges. " +"For this reason, it should not be used for day-to-day tasks like sending and " +"receiving mail, general exploration of the system, or programming." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6025 +msgid "" +"The superuser, unlike other user accounts, can operate without limits, and " +"misuse of the superuser account may result in spectacular disasters. User " +"accounts are unable to destroy the operating system by mistake, so it is " +"recommended to login as a user account and to only become the superuser when " +"a command requires extra privilege." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6033 +msgid "" +"Always double and triple-check any commands issued as the superuser, since " +"an extra space or missing character can mean irreparable data loss." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6037 +msgid "" +"There are several ways to gain superuser privilege. While one can log in as " +"<systemitem class=\"username\">root</systemitem>, this is highly discouraged." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6042 +msgid "" +"Instead, use <citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> to become the superuser. If <literal>-</literal> " +"is specified when running this command, the user will also inherit the root " +"user's environment. The user running this command must be in the <systemitem " +"class=\"groupname\">wheel</systemitem> group or else the command will fail. " +"The user must also know the password for the <systemitem class=\"username" +"\">root</systemitem> user account." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6052 +msgid "" +"In this example, the user only becomes superuser in order to run " +"<command>make install</command> as this step requires superuser privilege. " +"Once the command completes, the user types <command>exit</command> to leave " +"the superuser account and return to the privilege of their user account." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6060 +msgid "Install a Program As the Superuser" +msgstr "以超級使用者的身份安裝程式" + +#. (itstool) path: example/screen +#: book.translate.xml:6062 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>configure</userinput>\n" +"<prompt>%</prompt> <userinput>make</userinput>\n" +"<prompt>%</prompt> <userinput>su -</userinput>\n" +"Password:\n" +"<prompt>#</prompt> <userinput>make install</userinput>\n" +"<prompt>#</prompt> <userinput>exit</userinput>\n" +"<prompt>%</prompt>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6071 +msgid "" +"The built-in <citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> framework works well for single systems or small " +"networks with just one system administrator. An alternative is to install " +"the <package>security/sudo</package> package or port. This software provides " +"activity logging and allows the administrator to configure which users can " +"run which commands as the superuser." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:6082 +msgid "Managing Accounts" +msgstr "管理帳號" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:6084 +msgid "<primary>accounts</primary> <secondary>modifying</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6089 +msgid "" +"FreeBSD provides a variety of different commands to manage user accounts. " +"The most common commands are summarized in <xref linkend=\"users-modifying-" +"utilities\"/>, followed by some examples of their usage. See the manual page " +"for each utility for more details and usage examples." +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:6096 +msgid "Utilities for Managing User Accounts" +msgstr "管理使用者帳號的工具" + +#. (itstool) path: row/entry +#: book.translate.xml:6104 book.translate.xml:58355 book.translate.xml:61882 +msgid "Command" +msgstr "指令" + +#. (itstool) path: row/entry +#. (itstool) path: sect2/title +#: book.translate.xml:6105 book.translate.xml:16965 book.translate.xml:17119 +msgid "Summary" +msgstr "摘要" + +#. (itstool) path: row/entry +#: book.translate.xml:6110 +msgid "" +"<citerefentry><refentrytitle>adduser</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6111 +msgid "The recommended command-line application for adding new users." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6116 +msgid "" +"<citerefentry><refentrytitle>rmuser</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6117 +msgid "The recommended command-line application for removing users." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6122 +msgid "" +"<citerefentry><refentrytitle>chpass</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6123 +msgid "A flexible tool for changing user database information." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6128 +msgid "" +"<citerefentry><refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6129 +msgid "The command-line tool to change user passwords." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6134 +msgid "" +"<citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6135 +msgid "" +"A powerful and flexible tool for modifying all aspects of user accounts." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:6143 +msgid "<command>adduser</command>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:6145 +msgid "<primary>accounts</primary> <secondary>adding</secondary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#. (itstool) path: sect4/indexterm +#: book.translate.xml:6149 book.translate.xml:43126 +msgid "<primary><command>adduser</command></primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:6152 +msgid "<primary><filename>/usr/share/skel</filename></primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:6155 +msgid "<primary>skeleton directory</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6159 +msgid "" +"The recommended program for adding new users is " +"<citerefentry><refentrytitle>adduser</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. When a new user is added, this program " +"automatically updates <filename>/etc/passwd</filename> and <filename>/etc/" +"group</filename>. It also creates a home directory for the new user, copies " +"in the default configuration files from <filename>/usr/share/skel</" +"filename>, and can optionally mail the new user a welcome message. This " +"utility must be run as the superuser." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6169 +msgid "" +"The <citerefentry><refentrytitle>adduser</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> utility is interactive and walks through the steps " +"for creating a new user account. As seen in <xref linkend=\"users-modifying-" +"adduser\"/>, either input the required information or press <keycap>Return</" +"keycap> to accept the default value shown in square brackets. In this " +"example, the user has been invited into the <systemitem class=\"groupname" +"\">wheel</systemitem> group, allowing them to become the superuser with " +"<citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. When finished, the utility will prompt to either create " +"another user or to exit." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6181 +msgid "Adding a User on FreeBSD" +msgstr "在 FreeBSD 新增使用者" + +#. (itstool) path: example/screen +#: book.translate.xml:6183 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>adduser</userinput>\n" +"Username: <userinput>jru</userinput>\n" +"Full name: <userinput>J. Random User</userinput>\n" +"Uid (Leave empty for default):\n" +"Login group [jru]:\n" +"Login group is jru. Invite jru into other groups? []: <userinput>wheel</userinput>\n" +"Login class [default]:\n" +"Shell (sh csh tcsh zsh nologin) [sh]: <userinput>zsh</userinput>\n" +"Home directory [/home/jru]:\n" +"Home directory permissions (Leave empty for default):\n" +"Use password-based authentication? [yes]:\n" +"Use an empty password? (yes/no) [no]:\n" +"Use a random password? (yes/no) [no]:\n" +"Enter password:\n" +"Enter password again:\n" +"Lock out the account after creation? [no]:\n" +"Username : jru\n" +"Password : ****\n" +"Full Name : J. Random User\n" +"Uid : 1001\n" +"Class :\n" +"Groups : jru wheel\n" +"Home : /home/jru\n" +"Shell : /usr/local/bin/zsh\n" +"Locked : no\n" +"OK? (yes/no): <userinput>yes</userinput>\n" +"adduser: INFO: Successfully added (jru) to the user database.\n" +"Add another user? (yes/no): <userinput>no</userinput>\n" +"Goodbye!\n" +"<prompt>#</prompt>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:6216 +msgid "" +"Since the password is not echoed when typed, be careful to not mistype the " +"password when creating the user account." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:6223 +msgid "<command>rmuser</command>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:6225 +msgid "<primary><command>rmuser</command></primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:6228 +msgid "<primary>accounts</primary> <secondary>removing</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6233 +msgid "" +"To completely remove a user from the system, run " +"<citerefentry><refentrytitle>rmuser</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> as the superuser. This command performs the following steps:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:6239 +msgid "" +"Removes the user's <citerefentry><refentrytitle>crontab</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> entry, if one exists." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:6244 +msgid "" +"Removes any <citerefentry><refentrytitle>at</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> jobs belonging to the user." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:6249 +msgid "Kills all processes owned by the user." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:6253 +msgid "Removes the user from the system's local password file." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:6258 +msgid "" +"Optionally removes the user's home directory, if it is owned by the user." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:6263 +msgid "" +"Removes the incoming mail files belonging to the user from <filename>/var/" +"mail</filename>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:6268 +msgid "" +"Removes all files owned by the user from temporary file storage areas such " +"as <filename>/tmp</filename>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:6274 +msgid "" +"Finally, removes the username from all groups to which it belongs in " +"<filename>/etc/group</filename>. If a group becomes empty and the group name " +"is the same as the username, the group is removed. This complements the per-" +"user unique groups created by <citerefentry><refentrytitle>adduser</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6283 +msgid "" +"<citerefentry><refentrytitle>rmuser</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> cannot be used to remove superuser accounts since that is " +"almost always an indication of massive destruction." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6287 +msgid "" +"By default, an interactive mode is used, as shown in the following example." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6291 +msgid "<command>rmuser</command> Interactive Account Removal" +msgstr "<command>rmuser</command> 互動式帳號移除" + +#. (itstool) path: example/screen +#: book.translate.xml:6294 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>rmuser jru</userinput>\n" +"Matching password entry:\n" +"jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh\n" +"Is this the entry you wish to remove? <userinput>y</userinput>\n" +"Remove user's home directory (/home/jru)? <userinput>y</userinput>\n" +"Removing user (jru): mailspool home passwd.\n" +"<prompt>#</prompt>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:6305 +msgid "<command>chpass</command>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:6307 +msgid "<primary><command>chpass</command></primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6311 +msgid "" +"Any user can use <citerefentry><refentrytitle>chpass</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> to change their " +"default shell and personal information associated with their user account. " +"The superuser can use this utility to change additional account information " +"for any user." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6316 +msgid "" +"When passed no options, aside from an optional username, " +"<citerefentry><refentrytitle>chpass</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> displays an editor containing user information. When the user " +"exits from the editor, the user database is updated with the new information." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:6322 +msgid "" +"This utility will prompt for the user's password when exiting the editor, " +"unless the utility is run as the superuser." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6327 +msgid "" +"In <xref linkend=\"users-modifying-chpass-su\"/>, the superuser has typed " +"<command>chpass jru</command> and is now viewing the fields that can be " +"changed for this user. If <systemitem class=\"username\">jru</systemitem> " +"runs this command instead, only the last six fields will be displayed and " +"available for editing. This is shown in <xref linkend=\"users-modifying-" +"chpass-ru\"/>." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6336 +msgid "Using <command>chpass</command> as Superuser" +msgstr "以超級使用者的身份使用 <command>chpass</command>" + +#. (itstool) path: example/screen +#: book.translate.xml:6339 +#, no-wrap +msgid "" +"#Changing user database information for jru.\n" +"Login: jru\n" +"Password: *\n" +"Uid [#]: 1001\n" +"Gid [# or name]: 1001\n" +"Change [month day year]:\n" +"Expire [month day year]:\n" +"Class:\n" +"Home directory: /home/jru\n" +"Shell: /usr/local/bin/zsh\n" +"Full Name: J. Random User\n" +"Office Location:\n" +"Office Phone:\n" +"Home Phone:\n" +"Other information:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6357 +msgid "Using <command>chpass</command> as Regular User" +msgstr "以一般使用者的身份使用 <command>chpass</command>" + +#. (itstool) path: example/screen +#: book.translate.xml:6360 +#, no-wrap +msgid "" +"#Changing user database information for jru.\n" +"Shell: /usr/local/bin/zsh\n" +"Full Name: J. Random User\n" +"Office Location:\n" +"Office Phone:\n" +"Home Phone:\n" +"Other information:" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:6370 +msgid "" +"The commands <citerefentry><refentrytitle>chfn</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>chsh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> are links to " +"<citerefentry><refentrytitle>chpass</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, as are <citerefentry><refentrytitle>ypchpass</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>ypchfn</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, and <citerefentry><refentrytitle>ypchsh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. Since <acronym>NIS</" +"acronym> support is automatic, specifying the <literal>yp</literal> before " +"the command is not necessary. How to configure NIS is covered in <xref " +"linkend=\"network-servers\"/>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:6380 +msgid "<command>passwd</command>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:6382 +msgid "<primary><command>passwd</command></primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:6385 +msgid "<primary>accounts</primary> <secondary>changing password</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6390 +msgid "" +"Any user can easily change their password using " +"<citerefentry><refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. To prevent accidental or unauthorized changes, this command " +"will prompt for the user's original password before a new password can be " +"set:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6396 +msgid "Changing Your Password" +msgstr "更改您的密碼" + +#. (itstool) path: example/screen +#: book.translate.xml:6398 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>passwd</userinput>\n" +"Changing local password for jru.\n" +"Old password:\n" +"New password:\n" +"Retype new password:\n" +"passwd: updating the database...\n" +"passwd: done" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6407 +msgid "" +"The superuser can change any user's password by specifying the username when " +"running <citerefentry><refentrytitle>passwd</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>. When this utility is run as the superuser, it " +"will not prompt for the user's current password. This allows the password to " +"be changed when a user cannot remember the original password." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6415 +msgid "Changing Another User's Password as the Superuser" +msgstr "以超級使用者的身份更改其他使用者的密碼" + +#. (itstool) path: example/screen +#: book.translate.xml:6418 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>passwd jru</userinput>\n" +"Changing local password for jru.\n" +"New password:\n" +"Retype new password:\n" +"passwd: updating the database...\n" +"passwd: done" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:6427 +msgid "" +"As with <citerefentry><refentrytitle>chpass</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, <citerefentry><refentrytitle>yppasswd</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> is a link to " +"<citerefentry><refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, so <acronym>NIS</acronym> works with either command." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:6434 +msgid "<command>pw</command>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#. (itstool) path: sect4/indexterm +#: book.translate.xml:6436 book.translate.xml:43149 +msgid "<primary><command>pw</command></primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:6440 +msgid "" +"The <citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> utility can create, remove, modify, and display users and " +"groups. It functions as a front end to the system user and group files. " +"<citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> has a very powerful set of command line options that make it " +"suitable for use in shell scripts, but new users may find it more " +"complicated than the other commands presented in this section." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:6451 +msgid "Managing Groups" +msgstr "管理群組" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:6453 +msgid "<primary>groups</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:6456 +msgid "<primary><filename>/etc/groups</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:6459 +msgid "<primary>accounts</primary> <secondary>groups</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6464 +msgid "" +"A group is a list of users. A group is identified by its group name and " +"<acronym>GID</acronym>. In FreeBSD, the kernel uses the <acronym>UID</" +"acronym> of a process, and the list of groups it belongs to, to determine " +"what the process is allowed to do. Most of the time, the <acronym>GID</" +"acronym> of a user or process usually means the first group in the list." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6471 +msgid "" +"The group name to <acronym>GID</acronym> mapping is listed in <filename>/etc/" +"group</filename>. This is a plain text file with four colon-delimited " +"fields. The first field is the group name, the second is the encrypted " +"password, the third the <acronym>GID</acronym>, and the fourth the comma-" +"delimited list of members. For a more complete description of the syntax, " +"refer to <citerefentry><refentrytitle>group</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6479 +msgid "" +"The superuser can modify <filename>/etc/group</filename> using a text " +"editor. Alternatively, <citerefentry><refentrytitle>pw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> can be used to add and " +"edit groups. For example, to add a group called <systemitem class=\"groupname" +"\">teamtwo</systemitem> and then confirm that it exists:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6486 +msgid "" +"Adding a Group Using <citerefentry><refentrytitle>pw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>" +msgstr "" +"使用 <citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 新增群組" + +#. (itstool) path: example/screen +#: book.translate.xml:6488 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pw groupadd teamtwo</userinput>\n" +"<prompt>#</prompt> <userinput>pw groupshow teamtwo</userinput>\n" +"teamtwo:*:1100:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6493 +msgid "" +"In this example, <literal>1100</literal> is the <acronym>GID</acronym> of " +"<systemitem class=\"groupname\">teamtwo</systemitem>. Right now, <systemitem " +"class=\"groupname\">teamtwo</systemitem> has no members. This command will " +"add <systemitem class=\"username\">jru</systemitem> as a member of " +"<systemitem class=\"groupname\">teamtwo</systemitem>." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6502 +msgid "" +"Adding User Accounts to a New Group Using <citerefentry><refentrytitle>pw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>" +msgstr "" +"使用 <citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 加入使用者帳號到新的群組" + +#. (itstool) path: example/screen +#: book.translate.xml:6505 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pw groupmod teamtwo -M jru</userinput>\n" +"<prompt>#</prompt> <userinput>pw groupshow teamtwo</userinput>\n" +"teamtwo:*:1100:jru" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6510 +msgid "" +"The argument to <option>-M</option> is a comma-delimited list of users to be " +"added to a new (empty) group or to replace the members of an existing group. " +"To the user, this group membership is different from (and in addition to) " +"the user's primary group listed in the password file. This means that the " +"user will not show up as a member when using <option>groupshow</option> with " +"<citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, but will show up when the information is queried via " +"<citerefentry><refentrytitle>id</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> or a similar tool. When <citerefentry><refentrytitle>pw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> is used to add a user " +"to a group, it only manipulates <filename>/etc/group</filename> and does not " +"attempt to read additional data from <filename>/etc/passwd</filename>." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6524 +msgid "" +"Adding a New Member to a Group Using <citerefentry><refentrytitle>pw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>" +msgstr "" +"使用 <citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 加入新成員到群組" + +#. (itstool) path: example/screen +#: book.translate.xml:6526 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pw groupmod teamtwo -m db</userinput>\n" +"<prompt>#</prompt> <userinput>pw groupshow teamtwo</userinput>\n" +"teamtwo:*:1100:jru,db" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6531 +msgid "" +"In this example, the argument to <option>-m</option> is a comma-delimited " +"list of users who are to be added to the group. Unlike the previous example, " +"these users are appended to the group and do not replace existing users in " +"the group." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:6538 +msgid "" +"Using <citerefentry><refentrytitle>id</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> to Determine Group Membership" +msgstr "" +"使用 <citerefentry><refentrytitle>id</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 來查看所屬群組" + +#. (itstool) path: example/screen +#: book.translate.xml:6540 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>id jru</userinput>\n" +"uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6544 +msgid "" +"In this example, <systemitem class=\"username\">jru</systemitem> is a member " +"of the groups <systemitem class=\"groupname\">jru</systemitem> and " +"<systemitem class=\"groupname\">teamtwo</systemitem>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6549 +msgid "" +"For more information about this command and the format of <filename>/etc/" +"group</filename>, refer to <citerefentry><refentrytitle>pw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>group</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:6556 +msgid "Permissions" +msgstr "權限" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:6558 +msgid "<primary>UNIX</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:6562 +msgid "" +"In FreeBSD, every file and directory has an associated set of permissions " +"and several utilities are available for viewing and modifying these " +"permissions. Understanding how permissions work is necessary to make sure " +"that users are able to access the files that they need and are unable to " +"improperly access the files used by the operating system or owned by other " +"users." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:6570 +msgid "" +"This section discusses the traditional <trademark class=\"registered\">UNIX</" +"trademark> permissions used in FreeBSD. For finer grained file system access " +"control, refer to <xref linkend=\"fs-acl\"/>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:6574 +msgid "" +"In <trademark class=\"registered\">UNIX</trademark>, basic permissions are " +"assigned using three types of access: read, write, and execute. These access " +"types are used to determine file access to the file's owner, group, and " +"others (everyone else). The read, write, and execute permissions can be " +"represented as the letters <literal>r</literal>, <literal>w</literal>, and " +"<literal>x</literal>. They can also be represented as binary numbers as each " +"permission is either on or off (<literal>0</literal>). When represented as a " +"number, the order is always read as <literal>rwx</literal>, where " +"<literal>r</literal> has an on value of <literal>4</literal>, <literal>w</" +"literal> has an on value of <literal>2</literal> and <literal>x</literal> " +"has an on value of <literal>1</literal>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:6589 +msgid "" +"Table 4.1 summarizes the possible numeric and alphabetic possibilities. When " +"reading the <quote>Directory Listing</quote> column, a <literal>-</literal> " +"is used to represent a permission that is set to off." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:6594 +msgid "<primary>permissions</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:6597 +msgid "<primary>file permissions</primary>" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:6602 +msgid "<trademark class=\"registered\">UNIX</trademark> Permissions" +msgstr "<trademark class=\"registered\">UNIX</trademark> 權限" + +#. (itstool) path: row/entry +#: book.translate.xml:6607 +msgid "Value" +msgstr "數值" + +#. (itstool) path: row/entry +#: book.translate.xml:6608 +msgid "Permission" +msgstr "權限" + +#. (itstool) path: row/entry +#: book.translate.xml:6609 +msgid "Directory Listing" +msgstr "目錄標示" + +#. (itstool) path: row/entry +#: book.translate.xml:6615 +msgid "0" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6616 +msgid "No read, no write, no execute" +msgstr "不可讀取, 不可寫入, 不可執行" + +#. (itstool) path: row/entry +#: book.translate.xml:6617 +msgid "<literal>---</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6621 book.translate.xml:46762 book.translate.xml:46784 +#: book.translate.xml:46874 +msgid "1" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6622 +msgid "No read, no write, execute" +msgstr "不可讀取, 不可寫入, 可執行" + +#. (itstool) path: row/entry +#: book.translate.xml:6623 +msgid "<literal>--x</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6627 book.translate.xml:46654 book.translate.xml:46664 +#: book.translate.xml:46736 book.translate.xml:46746 book.translate.xml:46826 +#: book.translate.xml:46828 +msgid "2" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6628 +msgid "No read, write, no execute" +msgstr "不可讀取, 可寫入, 不可執行" + +#. (itstool) path: row/entry +#: book.translate.xml:6629 +msgid "<literal>-w-</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6633 book.translate.xml:46656 book.translate.xml:46662 +#: book.translate.xml:46738 book.translate.xml:46744 book.translate.xml:46834 +#: book.translate.xml:46836 +msgid "3" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6634 +msgid "No read, write, execute" +msgstr "不可讀取, 可寫入, 可執行" + +#. (itstool) path: row/entry +#: book.translate.xml:6635 +msgid "<literal>-wx</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6639 book.translate.xml:46670 book.translate.xml:46680 +#: book.translate.xml:46752 book.translate.xml:46760 book.translate.xml:46778 +#: book.translate.xml:46786 book.translate.xml:46842 book.translate.xml:46850 +#: book.translate.xml:46892 +msgid "4" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6640 +msgid "Read, no write, no execute" +msgstr "可讀取, 不可寫入, 不可執行" + +#. (itstool) path: row/entry +#: book.translate.xml:6641 +msgid "<literal>r--</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6645 book.translate.xml:46672 book.translate.xml:46678 +#: book.translate.xml:46768 book.translate.xml:46770 book.translate.xml:46858 +#: book.translate.xml:46884 +msgid "5" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6646 +msgid "Read, no write, execute" +msgstr "可讀取, 不可寫入, 可執行" + +#. (itstool) path: row/entry +#: book.translate.xml:6647 +msgid "<literal>r-x</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6651 book.translate.xml:46688 book.translate.xml:46702 +#: book.translate.xml:46754 book.translate.xml:46776 book.translate.xml:46844 +#: book.translate.xml:46866 +msgid "6" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6652 +msgid "Read, write, no execute" +msgstr "可讀取, 可寫入, 不可執行" + +#. (itstool) path: row/entry +#: book.translate.xml:6653 +msgid "<literal>rw-</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6657 book.translate.xml:46646 book.translate.xml:46648 +#: book.translate.xml:46792 book.translate.xml:46802 book.translate.xml:46860 +#: book.translate.xml:46882 +msgid "7" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6658 +msgid "Read, write, execute" +msgstr "可讀取, 可寫入, 可執行" + +#. (itstool) path: row/entry +#: book.translate.xml:6659 +msgid "<literal>rwx</literal>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:6665 +msgid "" +"<primary><citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:6668 +msgid "<primary>directories</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:6672 +msgid "" +"Use the <option>-l</option> argument to <citerefentry><refentrytitle>ls</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> to view a long " +"directory listing that includes a column of information about a file's " +"permissions for the owner, group, and everyone else. For example, a " +"<command>ls -l</command> in an arbitrary directory may show:" +msgstr "" +"使用 <citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 指令時,可以加上 <option>-l</option> 參數, 來檢視" +"詳細的目錄清單。 清單中欄位的資訊包含檔案對所有者、群組及其他人的權限。 在任" +"一個目錄底下執行 <command>ls -l</command>,會顯示如下的結果:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:6678 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ls -l</userinput>\n" +"total 530\n" +"-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile\n" +"-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile\n" +"-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:6684 +msgid "" +"The first (leftmost) character in the first column indicates whether this " +"file is a regular file, a directory, a special character device, a socket, " +"or any other special pseudo-file device. In this example, the <literal>-</" +"literal> indicates a regular file. The next three characters, <literal>rw-</" +"literal> in this example, give the permissions for the owner of the file. " +"The next three characters, <literal>r--</literal>, give the permissions for " +"the group that the file belongs to. The final three characters, <literal>r--" +"</literal>, give the permissions for the rest of the world. A dash means " +"that the permission is turned off. In this example, the permissions are set " +"so the owner can read and write to the file, the group can read the file, " +"and the rest of the world can only read the file. According to the table " +"above, the permissions for this file would be <literal>644</literal>, where " +"each digit represents the three parts of the file's permission." +msgstr "" +"第一個 (最左邊) 的字元用來表示這個檔案的類型為何,除標準檔案以外,尚有目錄、" +"特殊字元裝置、Socket 及其他特殊虛擬檔案裝置, 在此例當中,<literal>-</" +"literal> 表示該檔案為一個標準的檔案。 範例中接下來的三個字元中,<literal>rw-" +"</literal> 代表所有者對檔案擁有的權限。 再接下來的三個字元, <literal>r--</" +"literal> 則代表群組對檔案擁有的權限, 最後三個字元,<literal>r--</literal> 則" +"代表其他人對檔案擁有的權限。 破折號 (-) 表示沒有權限,範例中的這個檔案的權" +"限, 只允許所有者讀取、寫入檔案,群組以及其他人僅能讀取檔案。 根據以上的表" +"格,此種權限的檔案可以使用 <literal>644</literal> 來表示, 每組數字分別代表檔" +"案的三種權限。" + +#. (itstool) path: sect1/para +#: book.translate.xml:6701 +msgid "" +"How does the system control permissions on devices? FreeBSD treats most " +"hardware devices as a file that programs can open, read, and write data to. " +"These special device files are stored in <filename>/dev/</filename>." +msgstr "" +"那系統如何控制裝置的權限? 實際上 FreeBSD 對大多的硬碟裝置就如同檔案,程式可" +"以開啟、讀取以及寫入資料如一般檔案。 這些特殊裝置檔案都儲存於 <filename>/dev/" +"</filename> 目錄中。" + +#. (itstool) path: sect1/para +#: book.translate.xml:6706 +msgid "" +"Directories are also treated as files. They have read, write, and execute " +"permissions. The executable bit for a directory has a slightly different " +"meaning than that of files. When a directory is marked executable, it means " +"it is possible to change into that directory using " +"<citerefentry><refentrytitle>cd</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. This also means that it is possible to access the files " +"within that directory, subject to the permissions on the files themselves." +msgstr "" +"目錄也同如檔案,擁有讀取、寫入及執行的權限, 但在執行權限上與檔案有明顯的差" +"異。 當目錄被標示為可執行時,代表可以使用 <citerefentry><refentrytitle>cd</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> 指令切換進入該目錄。 也" +"代表能夠存取在此目錄之中的已知檔名的檔案,但仍會受限於檔案本身所設定的權限。" + +#. (itstool) path: sect1/para +#: book.translate.xml:6715 +msgid "" +"In order to perform a directory listing, the read permission must be set on " +"the directory. In order to delete a file that one knows the name of, it is " +"necessary to have write <emphasis>and</emphasis> execute permissions to the " +"directory containing the file." +msgstr "" +"要能夠列出目錄內容,必須擁有目錄的讀取權限。 要刪除已知檔名的檔案,必須擁有檔" +"案所在目錄的寫入 <emphasis>以及</emphasis> 執行的權限。" + +#. (itstool) path: sect1/para +#: book.translate.xml:6721 +msgid "" +"There are more permission bits, but they are primarily used in special " +"circumstances such as setuid binaries and sticky directories. For more " +"information on file permissions and how to set them, refer to " +"<citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>." +msgstr "" +"還有一些權限位元,但這些權限主要在特殊情況使用,如 setuid binaries 及 sticky " +"directories。 如果您還想知道更多檔案權限的資訊及使用方法,請務必參閱 " +"<citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>。" + +#. (itstool) path: info/title +#: book.translate.xml:6728 +msgid "Symbolic Permissions" +msgstr "權限符號" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:6731 book.translate.xml:6866 book.translate.xml:6917 +#: book.translate.xml:19238 book.translate.xml:19345 book.translate.xml:19523 +#: book.translate.xml:20642 book.translate.xml:21168 book.translate.xml:23417 +#: book.translate.xml:33824 book.translate.xml:45463 book.translate.xml:65535 +msgid "" +"<personname> <firstname>Tom</firstname> <surname>Rhodes</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:6741 +msgid "<primary>permissions</primary> <secondary>symbolic</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6746 +msgid "" +"Symbolic permissions use characters instead of octal values to assign " +"permissions to files or directories. Symbolic permissions use the syntax of " +"(who) (action) (permissions), where the following values are available:" +msgstr "" +"權限符號可稱做符號表示,使用字元的方式來取代使用數值來設定檔案或目錄的權限。 " +"符號表示的格式依序為 (某人)(動作)(權限),可使用的符號如下:" + +#. (itstool) path: row/entry +#: book.translate.xml:6756 book.translate.xml:23143 +msgid "Option" +msgstr "項目" + +#. (itstool) path: row/entry +#: book.translate.xml:6757 +msgid "Letter" +msgstr "字母" + +#. (itstool) path: row/entry +#: book.translate.xml:6758 +msgid "Represents" +msgstr "代表意義" + +#. (itstool) path: row/entry +#: book.translate.xml:6764 book.translate.xml:6770 book.translate.xml:6776 +#: book.translate.xml:6782 +msgid "(who)" +msgstr "(某人)" + +#. (itstool) path: row/entry +#: book.translate.xml:6765 +msgid "u" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6766 +msgid "User" +msgstr "使用者" + +#. (itstool) path: row/entry +#: book.translate.xml:6771 +msgid "g" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6772 +msgid "Group owner" +msgstr "群組所有者" + +#. (itstool) path: row/entry +#: book.translate.xml:6777 +msgid "o" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6778 +msgid "Other" +msgstr "其他" + +#. (itstool) path: row/entry +#: book.translate.xml:6783 +msgid "a" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6784 +msgid "All (<quote>world</quote>)" +msgstr "全部 (<quote>world</quote>)" + +#. (itstool) path: row/entry +#: book.translate.xml:6788 book.translate.xml:6794 book.translate.xml:6800 +msgid "(action)" +msgstr "(動作)" + +#. (itstool) path: row/entry +#: book.translate.xml:6789 book.translate.xml:31385 book.translate.xml:39117 +msgid "+" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6790 +msgid "Adding permissions" +msgstr "\t增加權限" + +#. (itstool) path: row/entry +#: book.translate.xml:6795 book.translate.xml:31390 book.translate.xml:39122 +msgid "-" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6796 +msgid "Removing permissions" +msgstr "移除權限" + +#. (itstool) path: row/entry +#: book.translate.xml:6801 +msgid "=" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6802 +msgid "Explicitly set permissions" +msgstr "指定權限" + +#. (itstool) path: row/entry +#: book.translate.xml:6806 book.translate.xml:6812 book.translate.xml:6818 +#: book.translate.xml:6824 book.translate.xml:6830 +msgid "(permissions)" +msgstr "(權限)" + +#. (itstool) path: row/entry +#: book.translate.xml:6807 +msgid "r" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6808 +msgid "Read" +msgstr "讀取" + +#. (itstool) path: row/entry +#: book.translate.xml:6813 +msgid "w" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6814 +msgid "Write" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6819 +msgid "x" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6820 +msgid "Execute" +msgstr "寫入" + +#. (itstool) path: row/entry +#: book.translate.xml:6825 +msgid "t" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6826 +msgid "Sticky bit" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6831 +msgid "s" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:6832 +msgid "Set UID or GID" +msgstr "\tSet UID 或 GID" + +#. (itstool) path: sect2/para +#: book.translate.xml:6838 +msgid "" +"These values are used with <citerefentry><refentrytitle>chmod</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, but with letters " +"instead of numbers. For example, the following command would block other " +"users from accessing <replaceable>FILE</replaceable>:" +msgstr "" +"如先前同樣使用 <citerefentry><refentrytitle>chmod</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> 指令來設定,但使用的參" +"數為這些字元。 例如,您可以使用下列指令禁止其他使用者存取檔案 " +"<replaceable>FILE</replaceable>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:6843 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>chmod go= FILE</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6845 +msgid "" +"A comma separated list can be provided when more than one set of changes to " +"a file must be made. For example, the following command removes the group " +"and <quote>world</quote> write permission on <replaceable>FILE</" +"replaceable>, and adds the execute permissions for everyone:" +msgstr "" +"若有兩個以上的符號表示可以使用逗號 (,) 區隔。 例如,下列指令將會移除群組及其" +"他人對檔案 <replaceable>FILE</replaceable> 的寫入權限, 並使全部人 " +"(<quote>world</quote>) 對該檔有執行權限。" + +#. (itstool) path: sect2/screen +#: book.translate.xml:6852 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>chmod go-w,a+x <replaceable>FILE</replaceable></userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:6863 +msgid "FreeBSD File Flags" +msgstr "FreeBSD 檔案旗標" + +#. (itstool) path: sect2/para +#: book.translate.xml:6876 +msgid "" +"In addition to file permissions, FreeBSD supports the use of <quote>file " +"flags</quote>. These flags add an additional level of security and control " +"over files, but not directories. With file flags, even <systemitem class=" +"\"username\">root</systemitem> can be prevented from removing or altering " +"files." +msgstr "" +"除了前面提到的檔案權限外,FreeBSD 支援使用 <quote>檔案旗標</quote>。 這些旗標" +"增加了檔案的安全性及管理性,但不包含目錄。有了檔案旗標可確保在某些時候 " +"<systemitem class=\"username\">root</systemitem> 不會意外將檔案修改或移除。" + +#. (itstool) path: sect2/para +#: book.translate.xml:6883 +msgid "" +"File flags are modified using <citerefentry><refentrytitle>chflags</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. For example, to " +"enable the system undeletable flag on the file <filename>file1</filename>, " +"issue the following command:" +msgstr "" +"修改的檔案 flag 僅需要使用擁有簡易的介面的 " +"<citerefentry><refentrytitle>chflags</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 工具。 例如,標示系統禁止刪除的旗標於檔案 " +"<filename>file1</filename>,使用下列指令:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:6888 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chflags sunlink file1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6890 +msgid "" +"To disable the system undeletable flag, put a <quote>no</quote> in front of " +"the <option>sunlink</option>:" +msgstr "" +"若要移除系統禁止刪除的旗標,只需要簡單在 <option>sunlink</option> 前加上 " +"<quote>no</quote>,例如:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:6894 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chflags nosunlink file1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6896 +msgid "" +"To view the flags of a file, use <option>-lo</option> with " +"<citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>:" +msgstr "" +"使用 <citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 及參數 <option>-lo</option> 可檢視檔案目前的旗標:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:6899 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ls -lo file1</userinput>" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:6901 +#, no-wrap +msgid "-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6903 +msgid "" +"Several file flags may only be added or removed by the <systemitem class=" +"\"username\">root</systemitem> user. In other cases, the file owner may set " +"its file flags. Refer to <citerefentry><refentrytitle>chflags</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>chflags</refentrytitle><manvolnum>2</" +"manvolnum></citerefentry> for more information." +msgstr "" +"多數的旗標僅能由 <systemitem class=\"username\">root</systemitem> 使用者來標" +"示或移除,而部份旗標可由檔案所有者設定。 我們建議系統管理者可閱讀 " +"<citerefentry><refentrytitle>chflags</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 及 <citerefentry><refentrytitle>chflags</" +"refentrytitle><manvolnum>2</manvolnum></citerefentry> 說明以瞭解相關細節。" + +#. (itstool) path: info/title +#: book.translate.xml:6912 +msgid "" +"The <literal>setuid</literal>, <literal>setgid</literal>, and " +"<literal>sticky</literal> Permissions" +msgstr "" +"<literal>setuid</literal> 、<literal>setgid</literal> 與 <literal>sticky</" +"literal> 權限" + +#. (itstool) path: sect2/para +#: book.translate.xml:6927 +msgid "" +"Other than the permissions already discussed, there are three other specific " +"settings that all administrators should know about. They are the " +"<literal>setuid</literal>, <literal>setgid</literal>, and <literal>sticky</" +"literal> permissions." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6933 +msgid "" +"These settings are important for some <trademark class=\"registered\">UNIX</" +"trademark> operations as they provide functionality not normally granted to " +"normal users. To understand them, the difference between the real user ID " +"and effective user ID must be noted." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6938 +msgid "" +"The real user ID is the <acronym>UID</acronym> who owns or starts the " +"process. The effective <acronym>UID</acronym> is the user ID the process " +"runs as. As an example, <citerefentry><refentrytitle>passwd</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> runs with the real " +"user ID when a user changes their password. However, in order to update the " +"password database, the command runs as the effective ID of the <systemitem " +"class=\"username\">root</systemitem> user. This allows users to change their " +"passwords without seeing a <errorname>Permission Denied</errorname> error." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6948 +msgid "" +"The setuid permission may be set by prefixing a permission set with the " +"number four (4) as shown in the following example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:6952 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chmod 4755 suidexample.sh</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6954 +msgid "" +"The permissions on <filename><replaceable>suidexample.sh</replaceable></" +"filename> now look like the following:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:6958 +#, no-wrap +msgid "-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6960 +msgid "" +"Note that a <literal>s</literal> is now part of the permission set " +"designated for the file owner, replacing the executable bit. This allows " +"utilities which need elevated permissions, such as " +"<citerefentry><refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:6966 +msgid "" +"The <literal>nosuid</literal> <citerefentry><refentrytitle>mount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> option will cause such " +"binaries to silently fail without alerting the user. That option is not " +"completely reliable as a <literal>nosuid</literal> wrapper may be able to " +"circumvent it." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6973 +msgid "" +"To view this in real time, open two terminals. On one, type <command>passwd</" +"command> as a normal user. While it waits for a new password, check the " +"process table and look at the user information for " +"<citerefentry><refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6979 +msgid "In terminal A:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:6981 +#, no-wrap +msgid "" +"Changing local password for trhodes\n" +"Old Password:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6984 +msgid "In terminal B:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:6986 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ps aux | grep passwd</userinput>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:6988 +#, no-wrap +msgid "" +"trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd\n" +"root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6991 +msgid "" +"Although <citerefentry><refentrytitle>passwd</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> is run as a normal user, it is using the effective " +"<acronym>UID</acronym> of <systemitem class=\"username\">root</systemitem>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:6995 +msgid "" +"The <literal>setgid</literal> permission performs the same function as the " +"<literal>setuid</literal> permission; except that it alters the group " +"settings. When an application or utility executes with this setting, it will " +"be granted the permissions based on the group that owns the file, not the " +"user who started the process." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:7002 +msgid "" +"To set the <literal>setgid</literal> permission on a file, provide " +"<citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> with a leading two (2):" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:7005 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chmod 2755 sgidexample.sh</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:7007 +msgid "" +"In the following listing, notice that the <literal>s</literal> is now in the " +"field designated for the group permission settings:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:7011 +#, no-wrap +msgid "-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:7014 +msgid "" +"In these examples, even though the shell script in question is an executable " +"file, it will not run with a different <acronym>EUID</acronym> or effective " +"user ID. This is because shell scripts may not access the " +"<citerefentry><refentrytitle>setuid</refentrytitle><manvolnum>2</manvolnum></" +"citerefentry> system calls." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:7021 +msgid "" +"The <literal>setuid</literal> and <literal>setgid</literal> permission bits " +"may lower system security, by allowing for elevated permissions. The third " +"special permission, the <literal>sticky bit</literal>, can strengthen the " +"security of a system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:7027 +msgid "" +"When the <literal>sticky bit</literal> is set on a directory, it allows file " +"deletion only by the file owner. This is useful to prevent file deletion in " +"public directories, such as <filename>/tmp</filename>, by users who do not " +"own the file. To utilize this permission, prefix the permission set with a " +"one (1):" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:7034 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chmod 1777 /tmp</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:7036 +msgid "" +"The <literal>sticky bit</literal> permission will display as a <literal>t</" +"literal> at the very end of the permission set:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:7040 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ls -al / | grep tmp</userinput>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:7042 +#, no-wrap +msgid "drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:7048 +msgid "Directory Structure" +msgstr "目錄結構" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:7050 +msgid "<primary>directory hierarchy</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:7054 +msgid "" +"The FreeBSD directory hierarchy is fundamental to obtaining an overall " +"understanding of the system. The most important directory is root or, " +"<quote>/</quote>. This directory is the first one mounted at boot time and " +"it contains the base system necessary to prepare the operating system for " +"multi-user operation. The root directory also contains mount points for " +"other file systems that are mounted during the transition to multi-user " +"operation." +msgstr "" +"認識 FreeBSD 的目錄架構,就可對系統有概略的基礎理解。 最重要的莫過於整個目錄" +"的根目錄,就是 <quote>/</quote> 目錄, 該目錄會在開機時最先掛載 (mount),裡面" +"會有開機所會用到必備檔案。 此外,根目錄還有紀錄其他檔案系統的掛載點相關設定。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7063 +msgid "" +"A mount point is a directory where additional file systems can be grafted " +"onto a parent file system (usually the root file system). This is further " +"described in <xref linkend=\"disk-organization\"/>. Standard mount points " +"include <filename>/usr/</filename>, <filename>/var/</filename>, <filename>/" +"tmp/</filename>, <filename>/mnt/</filename>, and <filename>/cdrom/</" +"filename>. These directories are usually referenced to entries in <filename>/" +"etc/fstab</filename>. This file is a table of various file systems and mount " +"points and is read by the system. Most of the file systems in <filename>/etc/" +"fstab</filename> are mounted automatically at boot time from the script " +"<citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> unless their entry includes <option>noauto</option>. Details " +"can be found in <xref linkend=\"disks-fstab\"/>." +msgstr "" +"「掛載點」就是讓新增的檔案系統,能接到上層的檔案系統 (通常就是「根目錄」檔案" +"系統) 的目錄。 在 <xref linkend=\"disk-organization\"/> 這邊對此有更詳細介" +"紹。 標準的掛載點包括了 <filename>/usr/</filename>, <filename>/var/</" +"filename>, <filename>/tmp/</filename>, <filename>/mnt/</filename> 以及 " +"<filename>/cdrom/</filename>。 這些目錄通常會記錄在 <filename>/etc/fstab</" +"filename> 設定檔內。 <filename>/etc/fstab</filename> 是記錄各檔案系統及相關掛" +"載點的表格。 大部分在 <filename>/etc/fstab</filename> 有記錄的檔案系統,會在" +"開機時由 <citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> Script 來自動掛載,除非它們有設定 <option>noauto</" +"option> 選項。 其中細節說明可參閱 <xref linkend=\"disks-fstab\"/>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7078 +msgid "" +"A complete description of the file system hierarchy is available in " +"<citerefentry><refentrytitle>hier</refentrytitle><manvolnum>7</manvolnum></" +"citerefentry>. The following table provides a brief overview of the most " +"common directories." +msgstr "" +"有關檔案系統架構的完整說明可參閱 <citerefentry><refentrytitle>hier</" +"refentrytitle><manvolnum>7</manvolnum></citerefentry>。 現在呢,讓我們大致先" +"一窺常見的目錄有哪些吧。" + +#. (itstool) path: row/entry +#. (itstool) path: sect3/title +#: book.translate.xml:7087 book.translate.xml:10870 +msgid "Directory" +msgstr "目錄" + +#. (itstool) path: row/entry +#: book.translate.xml:7094 +msgid "Root directory of the file system." +msgstr "檔案系統的根目錄。" + +#. (itstool) path: row/entry +#: book.translate.xml:7098 +msgid "<filename>/bin/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7099 +msgid "" +"User utilities fundamental to both single-user and multi-user environments." +msgstr "single-user、multi-user 兩種模式皆可使用的基本工具 。" + +#. (itstool) path: row/entry +#: book.translate.xml:7104 +msgid "<filename>/boot/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7105 +msgid "" +"Programs and configuration files used during operating system bootstrap." +msgstr "作業系統開機過程會用到的程式、設定檔。" + +#. (itstool) path: row/entry +#: book.translate.xml:7110 +msgid "<filename>/boot/defaults/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7111 +msgid "" +"Default boot configuration files. Refer to " +"<citerefentry><refentrytitle>loader.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for details." +msgstr "" +"預設的開機啟動設定檔,詳情請參閱 <citerefentry><refentrytitle>loader.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>。" + +#. (itstool) path: row/entry +#: book.translate.xml:7116 +msgid "<filename>/dev/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7117 +msgid "" +"Device nodes. Refer to <citerefentry><refentrytitle>intro</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> for details." +msgstr "" +"Device nodes,詳情請參閱 <citerefentry><refentrytitle>intro</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>。" + +#. (itstool) path: row/entry +#: book.translate.xml:7122 +msgid "<filename>/etc/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7123 +msgid "System configuration files and scripts." +msgstr "系統設定檔及一些 script 檔。" + +#. (itstool) path: row/entry +#: book.translate.xml:7127 +msgid "<filename>/etc/defaults/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7128 +msgid "" +"Default system configuration files. Refer to " +"<citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for details." +msgstr "" +"預設的系統設定檔,詳情請參閱 <citerefentry><refentrytitle>rc</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>。" + +#. (itstool) path: row/entry +#: book.translate.xml:7133 +msgid "<filename>/etc/mail/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7134 +msgid "" +"Configuration files for mail transport agents such as " +"<citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" +"MTA(Mail Transport Agent)的相關設定檔,像是 " +"<citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>。" + +#. (itstool) path: row/entry +#: book.translate.xml:7139 +msgid "<filename>/etc/namedb/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7140 +msgid "" +"<citerefentry><refentrytitle>named</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> configuration files." +msgstr "" +"<citerefentry><refentrytitle>named</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 設定檔。" + +#. (itstool) path: row/entry +#: book.translate.xml:7144 +msgid "<filename>/etc/periodic/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7145 +msgid "" +"Scripts that run daily, weekly, and monthly, via " +"<citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. Refer to <citerefentry><refentrytitle>periodic</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for details." +msgstr "" +"每日、每週、每月透過 <citerefentry><refentrytitle>cron</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>,執行的定期排程 " +"script,詳情請參閱 <citerefentry><refentrytitle>periodic</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>。" + +#. (itstool) path: row/entry +#: book.translate.xml:7151 +msgid "<filename>/etc/ppp/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7152 +msgid "" +"<citerefentry><refentrytitle>ppp</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> configuration files." +msgstr "" +"<citerefentry><refentrytitle>ppp</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 設定檔。" + +#. (itstool) path: row/entry +#: book.translate.xml:7156 +msgid "<filename>/mnt/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7157 +msgid "" +"Empty directory commonly used by system administrators as a temporary mount " +"point." +msgstr "系統管理者慣用充當臨時掛載點的空目錄。" + +#. (itstool) path: row/entry +#: book.translate.xml:7162 +msgid "<filename>/proc/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7163 +msgid "" +"Process file system. Refer to <citerefentry><refentrytitle>procfs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>mount_procfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for details." +msgstr "" +"Process 檔案系統,詳情請參閱 <citerefentry><refentrytitle>procfs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 及 " +"<citerefentry><refentrytitle>mount_procfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>。" + +#. (itstool) path: row/entry +#: book.translate.xml:7168 +msgid "<filename>/rescue/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7169 +msgid "" +"Statically linked programs for emergency recovery as described in " +"<citerefentry><refentrytitle>rescue</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" +"緊急救援用途的一些 statically linked 程式,詳情請參閱 " +"<citerefentry><refentrytitle>rescue</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>。" + +#. (itstool) path: row/entry +#: book.translate.xml:7174 +msgid "<filename>/root/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7175 +msgid "" +"Home directory for the <systemitem class=\"username\">root</systemitem> " +"account." +msgstr "<systemitem class=\"username\">root</systemitem> 帳號的家目錄。" + +#. (itstool) path: row/entry +#: book.translate.xml:7181 +msgid "<filename>/sbin/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7182 +msgid "" +"System programs and administration utilities fundamental to both single-user " +"and multi-user environments." +msgstr "供 single-user 及 multi-user 環境使用的系統程式及管理工具 。" + +#. (itstool) path: row/entry +#: book.translate.xml:7188 +msgid "<filename>/tmp/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7189 +msgid "" +"Temporary files which are usually <emphasis>not</emphasis> preserved across " +"a system reboot. A memory-based file system is often mounted at <filename>/" +"tmp</filename>. This can be automated using the tmpmfs-related variables of " +"<citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> or with an entry in <filename>/etc/fstab</" +"filename>; refer to <citerefentry><refentrytitle>mdmfs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for details." +msgstr "" +"臨時檔案。 一般而言,重開機之後 /tmp 內的東西會被<emphasis>清除</emphasis>" +"掉。 而通常會將 memory-based 檔案系統掛載在 <filename>/tmp</filename> 上。 這" +"些瑣事可透過 tmpmfs 相關的 <citerefentry><refentrytitle>rc.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 環境變數來自動完成 。" +"(或是在 <filename>/etc/fstab</filename> 內做設定, 詳情請參閱 " +"<citerefentry><refentrytitle>mdmfs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>)。" + +#. (itstool) path: row/entry +#: book.translate.xml:7199 +msgid "<filename>/usr/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7200 +msgid "The majority of user utilities and applications." +msgstr "主要是使用者所安裝的工具程式、應用程式存放處。" + +#. (itstool) path: row/entry +#: book.translate.xml:7205 +msgid "<filename>/usr/bin/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7206 +msgid "Common utilities, programming tools, and applications." +msgstr "常用工具、開發工具、應用軟體。" + +#. (itstool) path: row/entry +#: book.translate.xml:7211 +msgid "<filename>/usr/include/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7212 +msgid "Standard C include files." +msgstr "標準 C include 檔案。" + +#. (itstool) path: row/entry +#: book.translate.xml:7216 +msgid "<filename>/usr/lib/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7217 +msgid "Archive libraries." +msgstr "程式庫存放處。" + +#. (itstool) path: row/entry +#: book.translate.xml:7222 +msgid "<filename>/usr/libdata/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7223 +msgid "Miscellaneous utility data files." +msgstr "其他各式工具的資料檔。" + +#. (itstool) path: row/entry +#: book.translate.xml:7227 +msgid "<filename>/usr/libexec/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7228 +msgid "System daemons and system utilities executed by other programs." +msgstr "系統 Daemon 及系統工具程式 (透過其他程式來執行)。" + +#. (itstool) path: row/entry +#: book.translate.xml:7233 +msgid "<filename>/usr/local/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7234 +msgid "" +"Local executables and libraries. Also used as the default destination for " +"the FreeBSD ports framework. Within <filename>/usr/local</filename>, the " +"general layout sketched out by <citerefentry><refentrytitle>hier</" +"refentrytitle><manvolnum>7</manvolnum></citerefentry> for <filename>/usr</" +"filename> should be used. Exceptions are the man directory, which is " +"directly under <filename>/usr/local</filename> rather than under <filename>/" +"usr/local/share</filename>, and the ports documentation is in " +"<filename>share/doc/<replaceable>port</replaceable></filename>." +msgstr "" +"存放一些自行安裝的執行檔、程式庫等等。 同時,也是 FreeBSD ports 架構的預設安" +"裝目錄。 <filename>/usr/local</filename> 內的目錄架構大致與 <filename>/usr</" +"filename> 相同,詳情請參閱 <citerefentry><refentrytitle>hier</" +"refentrytitle><manvolnum>7</manvolnum></citerefentry> 說明。 但 man 目錄例" +"外,它們是直接放在 <filename>/usr/local</filename> 底下,而非 <filename>/usr/" +"local/share</filename>,而 ports 所安裝的說明文件則在 <filename>share/doc/" +"<replaceable>port</replaceable></filename>。" + +#. (itstool) path: row/entry +#: book.translate.xml:7247 +msgid "<filename>/usr/obj/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7248 +msgid "" +"Architecture-specific target tree produced by building the <filename>/usr/" +"src</filename> tree." +msgstr "在編譯 <filename>/usr/src</filename> 目錄時所產生的相關架構目地檔。" + +#. (itstool) path: row/entry +#: book.translate.xml:7254 +msgid "<filename>/usr/ports/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7255 +msgid "The FreeBSD Ports Collection (optional)." +msgstr "FreeBSD Ports 套件集 (選用)。" + +#. (itstool) path: row/entry +#: book.translate.xml:7259 +msgid "<filename>/usr/sbin/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7260 +msgid "System daemons and system utilities executed by users." +msgstr "由使用者執行的系統 Daemon 及系統工具。" + +#. (itstool) path: row/entry +#: book.translate.xml:7265 +msgid "<filename>/usr/share/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7266 +msgid "Architecture-independent files." +msgstr "各架構皆共通的檔案。" + +#. (itstool) path: row/entry +#: book.translate.xml:7270 +msgid "<filename>/usr/src/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7271 +msgid "BSD and/or local source files." +msgstr "BSD 原始碼 (或自行新增的)。" + +#. (itstool) path: row/entry +#: book.translate.xml:7275 +msgid "<filename>/var/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7276 +msgid "" +"Multi-purpose log, temporary, transient, and spool files. A memory-based " +"file system is sometimes mounted at <filename>/var</filename>. This can be " +"automated using the varmfs-related variables in " +"<citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> or with an entry in <filename>/etc/fstab</" +"filename>; refer to <citerefentry><refentrytitle>mdmfs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for details." +msgstr "" +"存放各種用途的日誌(log)檔、臨時或暫時存放、列印或郵件的 spool 檔案。有時候," +"memory-based 檔案系統也會掛載在 <filename>/var</filename>。 這些瑣事可透過 " +"varmfs 相關的 <citerefentry><refentrytitle>rc.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 環境變數來自動完成。(或" +"是在 <filename>/etc/fstab</filename> 內做設定,相關細節請參閱 " +"<citerefentry><refentrytitle>mdmfs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>)。" + +#. (itstool) path: row/entry +#: book.translate.xml:7287 +msgid "<filename>/var/log/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7288 +msgid "Miscellaneous system log files." +msgstr "各項系統記錄的日誌(log)檔。" + +#. (itstool) path: row/entry +#: book.translate.xml:7292 +msgid "<filename>/var/mail/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7293 +msgid "User mailbox files." +msgstr "各使用者的郵件(mailbox)檔案。" + +#. (itstool) path: row/entry +#: book.translate.xml:7297 +msgid "<filename>/var/spool/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7298 +msgid "Miscellaneous printer and mail system spooling directories." +msgstr "各種印表機、郵件系統的 spool 目錄。" + +#. (itstool) path: row/entry +#: book.translate.xml:7303 +msgid "<filename>/var/tmp/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7304 +msgid "" +"Temporary files which are usually preserved across a system reboot, unless " +"<filename>/var</filename> is a memory-based file system." +msgstr "" +"臨時檔案。 這些檔案在重開機後通常仍會保留,除非 <filename>/var</filename> 是" +"屬於 memory-based 檔案系統。" + +#. (itstool) path: row/entry +#: book.translate.xml:7311 +msgid "<filename>/var/yp/</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7312 +msgid "NIS maps." +msgstr "NIS 對應表。" + +#. (itstool) path: sect1/title +#: book.translate.xml:7320 +msgid "Disk Organization" +msgstr "磁碟組織" + +#. (itstool) path: sect1/para +#: book.translate.xml:7322 +msgid "" +"The smallest unit of organization that FreeBSD uses to find files is the " +"filename. Filenames are case-sensitive, which means that <filename>readme." +"txt</filename> and <filename>README.TXT</filename> are two separate files. " +"FreeBSD does not use the extension of a file to determine whether the file " +"is a program, document, or some other form of data." +msgstr "" +"FreeBSD 用來尋找檔案的最小單位就是檔案的名稱了。 檔案的名稱有大小寫之分,所以" +"說 <filename>readme.txt</filename> 和 <filename>README.TXT</filename> 是兩個" +"不同的檔案。 FreeBSD 並不使用副檔名 (.txt) 來判別這是一個程式檔、文件檔或是其" +"他類型的檔案。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7329 +msgid "" +"Files are stored in directories. A directory may contain no files, or it may " +"contain many hundreds of files. A directory can also contain other " +"directories, allowing a hierarchy of directories within one another in order " +"to organize data." +msgstr "" +"檔案存在目錄裡面。 一個目錄中可能沒有任何檔案,也可能有好幾百個檔案。 目錄之" +"中也可以包含其他的目錄; 您可以建立階層式的目錄以便資料的管理。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7335 +msgid "" +"Files and directories are referenced by giving the file or directory name, " +"followed by a forward slash, <literal>/</literal>, followed by any other " +"directory names that are necessary. For example, if the directory " +"<filename>foo</filename> contains a directory <filename>bar</filename> which " +"contains the file <filename>readme.txt</filename>, the full name, or " +"<firstterm>path</firstterm>, to the file is <filename>foo/bar/readme.txt</" +"filename>. Note that this is different from <trademark class=\"registered" +"\">Windows</trademark> which uses <literal>\\</literal> to separate file and " +"directory names. FreeBSD does not use drive letters, or other drive names in " +"the path. For example, one would not type <filename>c:\\foo\\bar\\readme." +"txt</filename> on FreeBSD." +msgstr "" +"檔案或目錄的對應是藉由給定的檔案或目錄名稱,然後加上正斜線符號 (<literal>/</" +"literal>);之後再視需要加上其他的目錄名稱。 如果您有一個目錄 <filename>foo</" +"filename> ,裡面有一個目錄叫作 <filename>bar</filename>,這個目錄中又包含了一" +"個叫 <filename>readme.txt</filename> 的檔案,那麼這個檔案的全名,或者說檔案的" +"<firstterm>路徑</firstterm>就是 <filename>foo/bar/readme.txt</filename>。" +"Note that this is different from <trademark class=\"registered\">Windows</" +"trademark> which uses <literal>\\</literal> to separate file and directory " +"names. FreeBSD does not use drive letters, or other drive names in the path. " +"For example, one would not type <filename>c:\\foo\\bar\\readme.txt</" +"filename> on FreeBSD." + +#. (itstool) path: sect1/para +#: book.translate.xml:7350 +msgid "" +"Directories and files are stored in a file system. Each file system contains " +"exactly one directory at the very top level, called the <firstterm>root " +"directory</firstterm> for that file system. This root directory can contain " +"other directories. One file system is designated the <firstterm>root file " +"system</firstterm> or <literal>/</literal>. Every other file system is " +"<firstterm>mounted</firstterm> under the root file system. No matter how " +"many disks are on the FreeBSD system, every directory appears to be part of " +"the same disk." +msgstr "" +"目錄及檔案儲存在檔案系統之中。 每個檔案系統都有唯一一個最上層的目錄,叫做" +"<firstterm>根目錄</firstterm> (root directory)。 然後在這個根目錄下面才能有其" +"他的目錄。One file system is designated the <firstterm>root file system</" +"firstterm> or <literal>/</literal>. Every other file system is " +"<firstterm>mounted</firstterm> under the root file system. No matter how " +"many disks are on the FreeBSD system, every directory appears to be part of " +"the same disk." + +#. (itstool) path: sect1/para +#: book.translate.xml:7361 +msgid "" +"Consider three file systems, called <literal>A</literal>, <literal>B</" +"literal>, and <literal>C</literal>. Each file system has one root directory, " +"which contains two other directories, called <literal>A1</literal>, " +"<literal>A2</literal> (and likewise <literal>B1</literal>, <literal>B2</" +"literal> and <literal>C1</literal>, <literal>C2</literal>)." +msgstr "" +"假設您有三個檔案系統,分別叫作 <literal>A</literal>, <literal>B</literal> 及 " +"<literal>C</literal>。 每個檔案系統都包含兩個目錄,叫做 <literal>A1</" +"literal>, <literal>A2</literal> (依此類推得 <literal>B1</literal>, " +"<literal>B2</literal> 及 <literal>C1</literal>, <literal>C2</literal>)。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7368 +msgid "" +"Call <literal>A</literal> the root file system. If " +"<citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> is used to view the contents of this directory, it will show " +"two subdirectories, <literal>A1</literal> and <literal>A2</literal>. The " +"directory tree looks like this:" +msgstr "" +"稱 <literal>A</literal> 為主要的檔案系統;如果您用 " +"<citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 指令查看此目錄的內容,您會看到兩個子目錄: <literal>A1</" +"literal> 及 <literal>A2</literal>,如下所示:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:7376 +msgctxt "_" +msgid "external ref='basics/example-dir1' md5='__failed__'" +msgstr "" + +#. (itstool) path: textobject/literallayout +#: book.translate.xml:7380 +#, no-wrap +msgid "" +" /\n" +" |\n" +" +--- A1\n" +" |\n" +" `--- A2" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:7388 +msgid "" +"A file system must be mounted on to a directory in another file system. When " +"mounting file system <literal>B</literal> on to the directory <literal>A1</" +"literal>, the root directory of <literal>B</literal> replaces <literal>A1</" +"literal>, and the directories in <literal>B</literal> appear accordingly:" +msgstr "" +"一個檔案系統必須以目錄形式掛載於另一個檔案系統上。 因此,假設您將 " +"<literal>B</literal> 掛載於 <literal>A1</literal> 之上,則 <literal>B</" +"literal> 的根目錄就變成了 <literal>A1</literal>,而在 <literal>B</literal> 之" +"下的任何目錄的路徑也隨之改變:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:7397 +msgctxt "_" +msgid "external ref='basics/example-dir2' md5='__failed__'" +msgstr "" + +#. (itstool) path: textobject/literallayout +#: book.translate.xml:7401 +#, no-wrap +msgid "" +" /\n" +" |\n" +" +--- A1\n" +" | |\n" +" | +--- B1\n" +" | |\n" +" | `--- B2\n" +" |\n" +" `--- A2" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:7413 +msgid "" +"Any files that are in the <literal>B1</literal> or <literal>B2</literal> " +"directories can be reached with the path <filename>/A1/B1</filename> or " +"<filename>/A1/B2</filename> as necessary. Any files that were in <filename>/" +"A1</filename> have been temporarily hidden. They will reappear if " +"<literal>B</literal> is <firstterm>unmounted</firstterm> from <literal>A</" +"literal>." +msgstr "" +"在 <literal>B1</literal> 或 <literal>B2</literal> 目錄中的任何檔案必須經由路" +"徑 <filename>/A1/B1</filename> 或 <filename>/A1/B2</filename> 才能達到。 所有" +"原來在 <filename>/A1</filename> 中的檔案會暫時被隱藏起來,直到 <literal>B</" +"literal> 被<firstterm>移除</firstterm>後才會再顯現出來。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7422 +msgid "" +"If <literal>B</literal> had been mounted on <literal>A2</literal> then the " +"diagram would look like this:" +msgstr "" +"如果 <literal>B</literal> 掛載在 <literal>A2</literal> 之上,則會變成:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:7428 +msgctxt "_" +msgid "external ref='basics/example-dir3' md5='__failed__'" +msgstr "" + +#. (itstool) path: textobject/literallayout +#: book.translate.xml:7432 +#, no-wrap +msgid "" +" /\n" +" |\n" +" +--- A1\n" +" |\n" +" `--- A2\n" +" |\n" +" +--- B1\n" +" |\n" +" `--- B2" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:7444 +msgid "" +"and the paths would be <filename>/A2/B1</filename> and <filename>/A2/B2</" +"filename> respectively." +msgstr "" +"上面的路徑分別為 <filename>/A2/B1</filename> 及 <filename>/A2/B2</filename>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7449 +msgid "" +"File systems can be mounted on top of one another. Continuing the last " +"example, the <literal>C</literal> file system could be mounted on top of the " +"<literal>B1</literal> directory in the <literal>B</literal> file system, " +"leading to this arrangement:" +msgstr "" +"檔案系統可以掛在其他檔案系統的目錄之上。 延續之前的例子,<literal>C</" +"literal> 檔案系統可以掛在檔案系統 <literal>B</literal> 的 <literal>B1</" +"literal> 目錄之上,如圖所示:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:7457 +msgctxt "_" +msgid "external ref='basics/example-dir4' md5='__failed__'" +msgstr "" + +#. (itstool) path: textobject/literallayout +#: book.translate.xml:7461 +#, no-wrap +msgid "" +" /\n" +" |\n" +" +--- A1\n" +" |\n" +" `--- A2\n" +" |\n" +" +--- B1\n" +" | |\n" +" | +--- C1\n" +" | |\n" +" | `--- C2\n" +" |\n" +" `--- B2" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:7477 +msgid "" +"Or <literal>C</literal> could be mounted directly on to the <literal>A</" +"literal> file system, under the <literal>A1</literal> directory:" +msgstr "" +"或者 <literal>C</literal> 直接掛載於 <literal>A</literal> 的 <literal>A1</" +"literal> 目錄之上:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:7483 +msgctxt "_" +msgid "external ref='basics/example-dir5' md5='__failed__'" +msgstr "" + +#. (itstool) path: textobject/literallayout +#: book.translate.xml:7487 +#, no-wrap +msgid "" +" /\n" +" |\n" +" +--- A1\n" +" | |\n" +" | +--- C1\n" +" | |\n" +" | `--- C2\n" +" |\n" +" `--- A2\n" +" |\n" +" +--- B1\n" +" |\n" +" `--- B2" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:7503 +msgid "" +"It is entirely possible to have one large root file system, and not need to " +"create any others. There are some drawbacks to this approach, and one " +"advantage." +msgstr "" +"您完全可以使用單一的一個大的根檔案系統 (root file system) 而不建立其他的檔案" +"系統。 這樣有好處也有有壞處。" + +#. (itstool) path: itemizedlist/title +#: book.translate.xml:7508 +msgid "Benefits of Multiple File Systems" +msgstr "使用多個檔案系統的好處" + +#. (itstool) path: listitem/para +#: book.translate.xml:7511 +msgid "" +"Different file systems can have different <firstterm>mount options</" +"firstterm>. For example, the root file system can be mounted read-only, " +"making it impossible for users to inadvertently delete or edit a critical " +"file. Separating user-writable file systems, such as <filename>/home</" +"filename>, from other file systems allows them to be mounted " +"<firstterm>nosuid</firstterm>. This option prevents the <firstterm>suid</" +"firstterm>/<firstterm>guid</firstterm> bits on executables stored on the " +"file system from taking effect, possibly improving security." +msgstr "" +"不同的檔案系統在掛上的時候可以有不同的 <firstterm>掛載參數</firstterm>。 舉例" +"來說,為求謹慎您可以將根檔案系統設成唯讀, 以避免不小心刪除或修改掉重要的檔" +"案。 將使用者可寫入的檔案系統 (例如 <filename>/home</filename>) 獨立出來也可" +"以讓他們用 <firstterm>nosuid</firstterm> 的參數掛載,此選項可以讓在這個檔案系" +"統中執行檔的 <firstterm>suid</firstterm>/<firstterm>guid</firstterm> bits 失" +"效,也許可以讓系統更安全。" + +#. (itstool) path: listitem/para +#: book.translate.xml:7525 +msgid "" +"FreeBSD automatically optimizes the layout of files on a file system, " +"depending on how the file system is being used. So a file system that " +"contains many small files that are written frequently will have a different " +"optimization to one that contains fewer, larger files. By having one big " +"file system this optimization breaks down." +msgstr "" +"FreeBSD 會自動根據您檔案系統的使用方式來做最佳的檔案配置方式。 因此,一個有很" +"多小檔案、 常常寫入的檔案系統跟只有幾個較大的檔案的檔案系統配置是不一樣的。 " +"如果您只有單一一個大的檔案系統,這部分就沒用了。" + +#. (itstool) path: listitem/para +#: book.translate.xml:7534 +msgid "" +"FreeBSD's file systems are robust if power is lost. However, a power loss at " +"a critical point could still damage the structure of the file system. By " +"splitting data over multiple file systems it is more likely that the system " +"will still come up, making it easier to restore from backup as necessary." +msgstr "" +"FreeBSD 的檔案系統在停電的時候很穩固。 然而,在某些重要的時候停電仍然會對檔案" +"系統結構造成損害。 分割成許多個檔案系統的話在系統在停電後比較能夠正常啟動, " +"以便您在需要的時候將備份資料回存回來。" + +#. (itstool) path: itemizedlist/title +#: book.translate.xml:7544 +msgid "Benefit of a Single File System" +msgstr "使用單一檔案系統的好處" + +#. (itstool) path: listitem/para +#: book.translate.xml:7547 +msgid "" +"File systems are a fixed size. If you create a file system when you install " +"FreeBSD and give it a specific size, you may later discover that you need to " +"make the partition bigger. This is not easily accomplished without backing " +"up, recreating the file system with the new size, and then restoring the " +"backed up data." +msgstr "" +"檔案系統的大小是固定的。 您當初安裝 FreeBSD 的時候應該會給定一個大小,可是後" +"來您可能會想把空間加大。 如果沒有備份的話是很難達成的; 您必須將檔案系統重新" +"建立為您需要的大小,然後將備份回存回來。" + +#. (itstool) path: important/para +#: book.translate.xml:7555 +msgid "" +"FreeBSD features the <citerefentry><refentrytitle>growfs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> command, which makes " +"it possible to increase the size of file system on the fly, removing this " +"limitation." +msgstr "" +"FreeBSD 的 <citerefentry><refentrytitle>growfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 指令可以突破此限制直接變更檔案系統的大小。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7562 +msgid "" +"File systems are contained in partitions. This does not have the same " +"meaning as the common usage of the term partition (for example, <trademark " +"class=\"registered\">MS-DOS</trademark> partition), because of FreeBSD's " +"<trademark class=\"registered\">UNIX</trademark> heritage. Each partition is " +"identified by a letter from <literal>a</literal> through to <literal>h</" +"literal>. Each partition can contain only one file system, which means that " +"file systems are often described by either their typical mount point in the " +"file system hierarchy, or the letter of the partition they are contained in." +msgstr "" +"檔案系統包含在分割區裡面。 因為 FreeBSD 承襲 <trademark class=\"registered" +"\">UNIX</trademark> 架構,這邊講的分割區和一般提到的分割區 (例如 <trademark " +"class=\"registered\">MS-DOS</trademark> 分割區) 不同。 每一個分割區由一個代號" +"(字母)表示,從 <literal>a</literal> 到 <literal>h</literal>。 每個分割區只能" +"包含一個檔案系統。 因此除了說常見到用檔案系統同的掛載點來表示檔案系統外, 也" +"可以用包含他的分割區代號來表示。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7572 +msgid "" +"FreeBSD also uses disk space for <firstterm>swap space</firstterm> to " +"provide <firstterm>virtual memory</firstterm>. This allows your computer to " +"behave as though it has much more memory than it actually does. When FreeBSD " +"runs out of memory, it moves some of the data that is not currently being " +"used to the swap space, and moves it back in (moving something else out) " +"when it needs it." +msgstr "" +"FreeBSD 也會拿磁碟空間來當 <firstterm>swap space</firstterm>。 Swap space 給 " +"FreeBSD 當作<firstterm>虛擬記憶體</firstterm>用。 這讓您的電腦好像擁有比實際" +"更多的記憶體。 當 FreeBSD 的記憶體用完的時候,它會把一些目前沒用到的資料移到 " +"swap space,然後在用到的時候移回去 (同時移出部份沒用到的)。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7581 +msgid "Some partitions have certain conventions associated with them." +msgstr "某些分割區有慣例的使用方式如下:" + +#. (itstool) path: row/entry +#: book.translate.xml:7591 +msgid "Partition" +msgstr "分割區" + +#. (itstool) path: row/entry +#: book.translate.xml:7592 +msgid "Convention" +msgstr "慣例" + +#. (itstool) path: row/entry +#: book.translate.xml:7598 +msgid "<literal>a</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7599 +msgid "Normally contains the root file system." +msgstr "通常包含根檔案系統 (root file system)" + +#. (itstool) path: row/entry +#: book.translate.xml:7603 +msgid "<literal>b</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7604 +msgid "Normally contains swap space." +msgstr "通常是 swap space" + +#. (itstool) path: row/entry +#: book.translate.xml:7608 +msgid "<literal>c</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7609 +msgid "" +"Normally the same size as the enclosing slice. This allows utilities that " +"need to work on the entire slice, such as a bad block scanner, to work on " +"the <literal>c</literal> partition. A file system would not normally be " +"created on this partition." +msgstr "" +"通常和整個 slice 的大小一樣,給一些會用到整個 slice 的工具程式 (例如硬碟壞軌" +"檢查工具) 來使用。 一般來說您應該不會把檔案系統建立在這個分割區。" + +#. (itstool) path: row/entry +#: book.translate.xml:7617 +msgid "<literal>d</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7618 +msgid "" +"Partition <literal>d</literal> used to have a special meaning associated " +"with it, although that is now gone and <literal>d</literal> may work as any " +"normal partition." +msgstr "" +"分割區 <literal>d</literal> 曾經有代表特殊意義,但是已經不再使用。 所以現在 " +"<literal>d</literal> 就和其他一般的分割區相同了。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7627 +msgid "" +"Disks in FreeBSD are divided into slices, referred to in <trademark class=" +"\"registered\">Windows</trademark> as partitions, which are numbered from 1 " +"to 4. These are then divided into partitions, which contain file systems, " +"and are labeled using letters." +msgstr "" +"每個包含有檔案系統的分割區是存在所謂的 slice 裡面。 FreeBSD 的 slice 就是指平" +"常我們在 <trademark class=\"registered\">Windows</trademark> 稱為分割區 " +"(partition) 的東西一樣有自己的檔案系統,用單字標示,編號從 1 號到 4 號。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:7632 +msgid "<primary>slices</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:7635 book.translate.xml:31855 book.translate.xml:31951 +msgid "<primary>partitions</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:7638 +msgid "<primary>dangerously dedicated</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:7642 +msgid "" +"Slice numbers follow the device name, prefixed with an <literal>s</literal>, " +"starting at 1. So <quote>da0<emphasis>s1</emphasis></quote> is the first " +"slice on the first SCSI drive. There can only be four physical slices on a " +"disk, but there can be logical slices inside physical slices of the " +"appropriate type. These extended slices are numbered starting at 5, so " +"<quote>ada0<emphasis>s5</emphasis></quote> is the first extended slice on " +"the first SATA disk. These devices are used by file systems that expect to " +"occupy a slice." +msgstr "" +"slice 號碼跟在裝置名稱後面,先接一個字母 <literal>s</literal>,然後從 1 號開" +"始編下去。 因此 <quote>da0<emphasis>s1</emphasis></quote> 就是指第一個 SCSI " +"硬碟的第一個 slice。 一個磁碟上只能有四個實體的 slice,但是在實體的 slice 中" +"您可以塞進適當類型的邏輯 slice。 這些延伸的 slice 編號從 5 開始,所以 " +"<quote>ada0<emphasis>s5</emphasis></quote> 是第一個 SATA 硬碟上的第一個延伸 " +"slice。 檔案系統在裝置 (device) 裡就是在一個 slice 之中。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7652 +msgid "" +"Slices, <quote>dangerously dedicated</quote> physical drives, and other " +"drives contain <firstterm>partitions</firstterm>, which are represented as " +"letters from <literal>a</literal> to <literal>h</literal>. This letter is " +"appended to the device name, so <quote>da0<emphasis>a</emphasis></quote> is " +"the <literal>a</literal> partition on the first <literal>da</literal> drive, " +"which is <quote>dangerously dedicated</quote>. <quote>ada1s3<emphasis>e</" +"emphasis></quote> is the fifth partition in the third slice of the second " +"SATA disk drive." +msgstr "" +"Slices、<quote>dangerously dedicated</quote> 模式的實體磁碟機,以及其他包含" +"<firstterm>分割區</firstterm>(partition) 的磁碟都是以字母 <literal>a</" +"literal> 到 <literal>h</literal> 的編號來表示。 編號是接在裝置名稱的後面的," +"因此 <quote>da0<emphasis>a</emphasis></quote> is the <literal>a</literal> 是" +"磁碟機 <literal>da</literal> 上的第一個 <quote>dangerously dedicated</quote> " +"模式之分割區。 而 <quote>ada1s3<emphasis>e</emphasis></quote> 則是第二顆 " +"SATA 硬碟上第三個 slice 的第五個分割區。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7665 +msgid "" +"Finally, each disk on the system is identified. A disk name starts with a " +"code that indicates the type of disk, and then a number, indicating which " +"disk it is. Unlike slices, disk numbering starts at 0. Common codes are " +"listed in <xref linkend=\"disks-naming\"/>." +msgstr "" +"最後,我們就可以把系統上的每個磁碟都區分出來了。 一個磁碟的名稱會有一個代碼來" +"表示這個磁碟的類型,接著是一個數字, 表示這是哪一個磁碟。 這邊跟 slice 每個磁" +"碟編號從 0 開始不一樣。 常見的代碼可以參考 表格 <xref linkend=\"disks-naming" +"\"/>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7671 +msgid "" +"When referring to a partition, include the disk name, <literal>s</literal>, " +"the slice number, and then the partition letter. Examples are shown in <xref " +"linkend=\"basics-disk-slice-part\"/>." +msgstr "" +"當要參照一個分割區的時候,需包含磁碟機名稱 <literal>s</literal> 加上 slice 編" +"號,最後再輸入分割區字母代號。 範例可以參考 <xref linkend=\"basics-disk-" +"slice-part\"/>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7676 +msgid "" +"<xref linkend=\"basics-concept-disk-model\"/> shows a conceptual model of a " +"disk layout." +msgstr "" +"<xref linkend=\"basics-concept-disk-model\"/> 示範了一個基本的磁碟配置,相信" +"對您有些幫助。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7679 +msgid "" +"When installing FreeBSD, configure the disk slices, create partitions within " +"the slice to be used for FreeBSD, create a file system or swap space in each " +"partition, and decide where each file system will be mounted." +msgstr "" +"要安裝 FreeBSD,您必須先建置磁碟的 slice,接著於 slice 中建立要給 FreeBSD 用" +"的分割區。 最後在這些分割區中建立檔案系統 (或 swap space) 並決定要將這些檔案" +"系統掛載於哪裡。" + +#. (itstool) path: table/title +#: book.translate.xml:7685 +msgid "Disk Device Names" +msgstr "磁碟裝置名稱" + +#. (itstool) path: row/entry +#: book.translate.xml:7693 +msgid "Drive Type" +msgstr "磁碟機類型" + +#. (itstool) path: row/entry +#: book.translate.xml:7694 +msgid "Drive Device Name" +msgstr "磁碟機裝置稱" + +#. (itstool) path: row/entry +#: book.translate.xml:7700 +msgid "<acronym>SATA</acronym> and <acronym>IDE</acronym> hard drives" +msgstr "<acronym>SATA</acronym> 及<acronym>IDE</acronym> 硬碟" + +#. (itstool) path: row/entry +#: book.translate.xml:7702 +msgid "<literal>ada</literal> or <literal>ad</literal>" +msgstr "<literal>ada</literal> 或 <literal>ad</literal>" + +#. (itstool) path: row/entry +#: book.translate.xml:7707 +msgid "" +"<acronym>SCSI</acronym> hard drives and <acronym>USB</acronym> storage " +"devices" +msgstr "<acronym>SCSI</acronym> 硬碟與 <acronym>USB</acronym> 儲存裝置" + +#. (itstool) path: row/entry +#: book.translate.xml:7709 +msgid "<literal>da</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7713 +msgid "" +"<acronym>SATA</acronym> and <acronym>IDE</acronym> <acronym>CD-ROM</acronym> " +"drives" +msgstr "" +"<acronym>SATA</acronym> 與 <acronym>IDE</acronym> <acronym>CD-ROM</acronym> " +"光碟機" + +#. (itstool) path: row/entry +#: book.translate.xml:7715 +msgid "<literal>cd</literal> or <literal>acd</literal>" +msgstr "<literal>cd</literal> 或 <literal>acd</literal>" + +#. (itstool) path: row/entry +#: book.translate.xml:7720 +msgid "<acronym>SCSI</acronym> <acronym>CD-ROM</acronym> drives" +msgstr "<acronym>SCSI</acronym> <acronym>CD-ROM</acronym> 光碟機" + +#. (itstool) path: row/entry +#: book.translate.xml:7722 +msgid "<literal>cd</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7726 +msgid "Floppy drives" +msgstr "軟碟機" + +#. (itstool) path: row/entry +#: book.translate.xml:7727 +msgid "<literal>fd</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7731 +msgid "Assorted non-standard <acronym>CD-ROM</acronym> drives" +msgstr "各種非標準 <acronym>CD-ROM</acronym> 光碟機" + +#. (itstool) path: row/entry +#: book.translate.xml:7733 +msgid "" +"<literal>mcd</literal> for Mitsumi <acronym>CD-ROM</acronym> and " +"<literal>scd</literal> for Sony <acronym>CD-ROM</acronym> devices" +msgstr "" +"<literal>mcd</literal> 代表 Mitsumi <acronym>CD-ROM</acronym> 以及 " +"<literal>scd</literal> 代表 Sony <acronym>CD-ROM</acronym> 光碟機" + +#. (itstool) path: row/entry +#: book.translate.xml:7739 +msgid "<acronym>SCSI</acronym> tape drives" +msgstr "<acronym>SCSI</acronym> 磁帶機" + +#. (itstool) path: row/entry +#: book.translate.xml:7740 +msgid "<literal>sa</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7744 +msgid "<acronym>IDE</acronym> tape drives" +msgstr "<acronym>IDE</acronym> 磁帶機" + +#. (itstool) path: row/entry +#: book.translate.xml:7745 +msgid "<literal>ast</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7749 +msgid "RAID drives" +msgstr "RAID 磁碟機" + +#. (itstool) path: row/entry +#: book.translate.xml:7750 +msgid "" +"Examples include <literal>aacd</literal> for <trademark class=\"registered" +"\">Adaptec</trademark> AdvancedRAID, <literal>mlxd</literal> and " +"<literal>mlyd</literal> for <trademark class=\"registered\">Mylex</" +"trademark>, <literal>amrd</literal> for AMI <trademark class=\"registered" +"\">MegaRAID</trademark>, <literal>idad</literal> for Compaq Smart RAID, " +"<literal>twed</literal> for <trademark class=\"registered\">3ware</" +"trademark> RAID." +msgstr "" +"範例包含 <literal>aacd</literal> 代表 <trademark class=\"registered" +"\">Adaptec</trademark> AdvancedRAID,<literal>mlxd</literal> 及 " +"<literal>mlyd</literal> 代表 <trademark class=\"registered\">Mylex</" +"trademark>,<literal>amrd</literal> 代表 AMI <trademark class=\"registered" +"\">MegaRAID</trademark>,<literal>idad</literal> 代表 Compaq Smart RAID," +"<literal>twed</literal> 代表 <trademark class=\"registered\">3ware</" +"trademark> RAID." + +#. (itstool) path: example/title +#: book.translate.xml:7762 +msgid "Sample Disk, Slice, and Partition Names" +msgstr "磁碟、Slice 及分割區命名範例" + +#. (itstool) path: row/entry +#: book.translate.xml:7771 +msgid "Name" +msgstr "名稱" + +#. (itstool) path: row/entry +#: book.translate.xml:7772 book.translate.xml:62539 +msgid "Meaning" +msgstr "意義" + +#. (itstool) path: row/entry +#: book.translate.xml:7778 +msgid "<literal>ada0s1a</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7779 +msgid "" +"The first partition (<literal>a</literal>) on the first slice (<literal>s1</" +"literal>) on the first <acronym>SATA</acronym> disk (<literal>ada0</" +"literal>)." +msgstr "" +"第一個 SATA 硬碟 (<literal>ada0</literal>) 上第一個 slice (<literal>s1</" +"literal>)的第一個分割區(<literal>a</literal>) 。" + +#. (itstool) path: row/entry +#: book.translate.xml:7786 +msgid "<literal>da1s2e</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:7787 +msgid "" +"The fifth partition (<literal>e</literal>) on the second slice (<literal>s2</" +"literal>) on the second SCSI disk (<literal>da1</literal>)." +msgstr "" +"第二個 SCSI 硬碟 (<literal>da1</literal>) 上第二個 slice (<literal>s2</" +"literal>) 的第五個分割區 (<literal>e</literal>) 。" + +#. (itstool) path: example/title +#: book.translate.xml:7797 +msgid "Conceptual Model of a Disk" +msgstr "磁碟的概念模型" + +#. (itstool) path: example/para +#: book.translate.xml:7799 +msgid "" +"This diagram shows FreeBSD's view of the first <acronym>SATA</acronym> disk " +"attached to the system. Assume that the disk is 250 GB in size, and contains " +"an 80 GB slice and a 170 GB slice (<trademark class=\"registered\">MS-DOS</" +"trademark> partitions). The first slice contains a <trademark class=" +"\"registered\">Windows</trademark> <acronym>NTFS</acronym> file system, " +"<filename>C:</filename>, and the second slice contains a FreeBSD " +"installation. This example FreeBSD installation has four data partitions and " +"a swap partition." +msgstr "" +"此圖顯示 FreeBSD 中接到系統的第一個 <acronym>SATA</acronym> 磁碟機內部配置" +"圖。 假設這個磁碟的容量是 250 GB,並且包含了一個 80 GB 的 slice 及一個 " +"170 GB 的 slice (<trademark class=\"registered\">MS-DOS</trademark> 的分割" +"區)。 第一個 slice 是 <trademark class=\"registered\">Windows</trademark> " +"<acronym>NTFS</acronym> 檔案系統的 <filename>C:</filename> 磁碟機,第二個則安" +"裝了 FreeBSD。 本範例的 FreeBSD 有三個分割區以及一個 swap 分割區。" + +#. (itstool) path: example/para +#: book.translate.xml:7809 +msgid "" +"The four partitions each hold a file system. Partition <literal>a</literal> " +"is used for the root file system, <literal>d</literal> for <filename>/var/</" +"filename>, <literal>e</literal> for <filename>/tmp/</filename>, and " +"<literal>f</literal> for <filename>/usr/</filename>. Partition letter " +"<literal>c</literal> refers to the entire slice, and so is not used for " +"ordinary partitions." +msgstr "" +"這四個分割區每個都是一個檔案系統。 <literal>a</literal> 分割是根 (root) 檔案" +"系統;分割 <literal>d</literal> 是 <filename>/var/</filename>;分割 " +"<literal>e</literal> 是 <filename>/tmp/</filename>,而 <literal>f</literal> " +"分割是 <filename>/usr/</filename> 目錄結構。Partition letter <literal>c</" +"literal> refers to the entire slice, and so is not used for ordinary " +"partitions." + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:7819 +msgctxt "_" +msgid "external ref='basics/disk-layout' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:7826 +msgid "Mounting and Unmounting File Systems" +msgstr "掛載與缷載檔案系組" + +#. (itstool) path: sect1/para +#: book.translate.xml:7828 +msgid "" +"The file system is best visualized as a tree, rooted, as it were, at " +"<filename>/</filename>. <filename>/dev</filename>, <filename>/usr</" +"filename>, and the other directories in the root directory are branches, " +"which may have their own branches, such as <filename>/usr/local</filename>, " +"and so on." +msgstr "" +"檔案系統就像一顆樹。<filename>/</filename> 就像是樹根,而 <filename>/dev</" +"filename>,<filename>/usr</filename> 以及其他在根目錄下的目錄就像是樹枝,而這" +"些樹枝上面又還有分支,像是 <filename>/usr/local</filename> 等。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:7837 +msgid "<primary>root file system</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:7841 +msgid "" +"There are various reasons to house some of these directories on separate " +"file systems. <filename>/var</filename> contains the directories " +"<filename>log/</filename>, <filename>spool/</filename>, and various types of " +"temporary files, and as such, may get filled up. Filling up the root file " +"system is not a good idea, so splitting <filename>/var</filename> from " +"<filename>/</filename> is often favorable." +msgstr "" +"因為某些原因,我們會將一些目錄分別放在不同的檔案系統上。 如 <filename>/var</" +"filename> 包含了可能會滿出來的 <filename>log/</filename>,<filename>spool/</" +"filename> 等目錄以及各式各樣的暫存檔。 把根檔案系統塞到滿出來顯然不是個好主" +"意,所以我們往往會比較傾向把 <filename>/var</filename> 從 <filename>/</" +"filename> 中拉出來。" + +#. (itstool) path: sect1/para +#: book.translate.xml:7852 +msgid "" +"Another common reason to contain certain directory trees on other file " +"systems is if they are to be housed on separate physical disks, or are " +"separate virtual disks, such as Network File System mounts, described in " +"<xref linkend=\"network-nfs\"/>, or CDROM drives." +msgstr "" +"另一個常見到把某些目錄放在不同檔案系統上的理由是: 這些檔案在不同的實體或虛擬" +"磁碟機上。 像是網路檔案系統 (Network File System) 詳情可參考 <xref linkend=" +"\"network-nfs\"/> 或是光碟機。" + +#. (itstool) path: sect2/title +#: book.translate.xml:7859 +msgid "The <filename>fstab</filename> File" +msgstr "<filename>fstab</filename> 檔" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:7861 +msgid "" +"<primary>file systems</primary> <secondary>mounted with fstab</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:7866 +msgid "" +"During the boot process (<xref linkend=\"boot\"/>), file systems listed in " +"<filename>/etc/fstab</filename> are automatically mounted except for the " +"entries containing <option>noauto</option>. This file contains entries in " +"the following format:" +msgstr "" +"在 <filename>/etc/fstab</filename> 裡面有設定的檔案系統會在開機(<xref " +"linkend=\"boot\"/>)的過程中自動地被掛載 (除非該檔案系統有被加上 " +"<option>noauto</option> 參數)。檔案內容的格式如下:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:7872 +#, no-wrap +msgid "<replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable>" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:7876 +msgid "<literal>device</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:7878 +msgid "" +"An existing device name as explained in <xref linkend=\"disks-naming\"/>." +msgstr "已存在的裝置名稱,詳情請參閱 <xref linkend=\"disks-naming\"/>。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:7884 +msgid "<literal>mount-point</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:7887 +msgid "An existing directory on which to mount the file system." +msgstr "檔案系統要掛載到的目錄 (該目錄必須存在)。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:7893 +msgid "<literal>fstype</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:7896 +msgid "" +"The file system type to pass to <citerefentry><refentrytitle>mount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. The default FreeBSD " +"file system is <literal>ufs</literal>." +msgstr "" +"檔案系統類型,這是要傳給 <citerefentry><refentrytitle>mount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 的參數。 FreeBSD 預設的" +"檔案系統是 <literal>ufs</literal>。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:7903 +msgid "<literal>options</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:7906 +msgid "" +"Either <option>rw</option> for read-write file systems, or <option>ro</" +"option> for read-only file systems, followed by any other options that may " +"be needed. A common option is <option>noauto</option> for file systems not " +"normally mounted during the boot sequence. Other options are listed in " +"<citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" +"可讀可寫(Read-Write)的檔案系統用 <option>rw</option>,而唯讀(Read-Only)的檔案" +"系統則是用 <option>ro</option>,後面視需要還可以加其他選項。 常見的選項如 " +"<option>noauto</option> 是用在不要於開機過程中自動的掛載的檔案系統。 其他選項" +"可參閱 <citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 說明。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:7917 +msgid "<literal>dumpfreq</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:7920 +msgid "" +"Used by <citerefentry><refentrytitle>dump</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> to determine which file systems require dumping. " +"If the field is missing, a value of zero is assumed." +msgstr "" +"<citerefentry><refentrytitle>dump</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 由此項目決定那些檔案系統需要傾印。 如果這格空白則以零為預設值。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:7927 +msgid "<literal>passno</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:7930 +msgid "" +"Determines the order in which file systems should be checked. File systems " +"that should be skipped should have their <literal>passno</literal> set to " +"zero. The root file system needs to be checked before everything else and " +"should have its <literal>passno</literal> set to one. The other file systems " +"should be set to values greater than one. If more than one file system has " +"the same <literal>passno</literal>, <citerefentry><refentrytitle>fsck</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> will attempt to check " +"file systems in parallel if possible." +msgstr "" +"這個項目決定檔案系統檢查的順序。 對於要跳過檢查的檔案系統,它們的 " +"<literal>passno</literal> 值要設為零。 根檔案系統的 <literal>passno</" +"literal> 值應設為一 (因為需要比所有其他的還要先檢查),而其他的檔案系統的 " +"<literal>passno</literal> 值應該要設得比一大。 若有多個檔案系統具有相同的 " +"<literal>passno</literal> 值,則 <citerefentry><refentrytitle>fsck</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 會試著平行地 (如果可能" +"的話) 檢查這些檔案系統。" + +#. (itstool) path: sect2/para +#: book.translate.xml:7944 +msgid "" +"Refer to <citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for more information on the format of <filename>/" +"etc/fstab</filename> and its options." +msgstr "" +"更多關於 <filename>/etc/fstab</filename> 檔案格式及選項的資訊請參閱 " +"<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> 說明文件。" + +#. (itstool) path: sect2/title +#: book.translate.xml:7949 +msgid "" +"Using <citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" +msgstr "" +"使用 <citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:7951 +msgid "<primary>file systems</primary> <secondary>mounting</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:7956 +msgid "" +"File systems are mounted using <citerefentry><refentrytitle>mount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. The most basic syntax " +"is as follows:" +msgstr "" +"<citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 指令是拿來掛載檔案系統用的。基本的操作指令格式如下:" + +#. (itstool) path: informalexample/screen +#: book.translate.xml:7960 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount <replaceable>device</replaceable> <replaceable>mountpoint</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:7963 +msgid "" +"This command provides many options which are described in " +"<citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, The most commonly used options include:" +msgstr "" +"在 <citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 裡面有提到一大堆的選項,不過最常用的就是這些:" + +#. (itstool) path: variablelist/title +#: book.translate.xml:7967 +msgid "Mount Options" +msgstr "掛載選項" + +#. (itstool) path: varlistentry/term +#. (itstool) path: row/entry +#: book.translate.xml:7970 book.translate.xml:23150 +msgid "<option>-a</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:7973 +msgid "" +"Mount all the file systems listed in <filename>/etc/fstab</filename>, except " +"those marked as <quote>noauto</quote>, excluded by the <option>-t</option> " +"flag, or those that are already mounted." +msgstr "" +"把 /etc/fstab 裡面所有還沒有被掛載、沒有被標記成 <filename>/etc/fstab</" +"filename> 而且沒有用 <option>-t</option> 排除的檔案系統掛載起來。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:7982 +msgid "<option>-d</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:7986 +msgid "" +"Do everything except for the actual mount system call. This option is useful " +"in conjunction with the <option>-v</option> flag to determine what " +"<citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> is actually trying to do." +msgstr "" +"執行所有的動作,但是不真的去呼叫掛載的 system call。 這個選項和 <option>-v</" +"option> 搭配拿來推測 <citerefentry><refentrytitle>mount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 將要做什麼動作時很好" +"用。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:7994 book.translate.xml:26243 +msgid "<option>-f</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:7997 +msgid "" +"Force the mount of an unclean file system (dangerous), or the revocation of " +"write access when downgrading a file system's mount status from read-write " +"to read-only." +msgstr "" +"強迫掛載不乾淨的檔案系統 (危險),或是用來強制取消寫入權限 (把檔案系統的掛載狀" +"態從可存取變成唯讀)。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:8005 +msgid "<option>-r</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:8008 +msgid "" +"Mount the file system read-only. This is identical to using <option>-o ro</" +"option>." +msgstr "" +"用唯讀的方式掛載檔案系統。 這個選項和在 -o 選項中指定 ro 參數是一樣的。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:8014 +msgid "<option>-t</option> <replaceable>fstype</replaceable>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:8018 +msgid "" +"Mount the specified file system type or mount only file systems of the given " +"type, if <option>-a</option> is included. <quote>ufs</quote> is the default " +"file system type." +msgstr "" +"用指定的檔案系統型態來掛載指定的檔案系統,或是在有 <option>-a</option> 選項時" +"只掛載指定型態的檔案系統。預設的檔案系統類型為 <quote>ufs</quote>。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:8026 +msgid "<option>-u</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:8029 +msgid "Update mount options on the file system." +msgstr "更新檔案系統的掛載選項。" + +#. (itstool) path: varlistentry/term +#. (itstool) path: row/entry +#: book.translate.xml:8034 book.translate.xml:23167 +msgid "<option>-v</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:8037 +msgid "Be verbose." +msgstr "顯示詳細資訊。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:8042 +msgid "<option>-w</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:8045 +msgid "Mount the file system read-write." +msgstr "以可讀寫的模式掛載檔案系統。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8050 +msgid "" +"The following options can be passed to <option>-o</option> as a comma-" +"separated list:" +msgstr "<option>-o</option> 選項後面會接著以逗號分隔的參數:" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:8055 +msgid "nosuid" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:8058 +msgid "" +"Do not interpret setuid or setgid flags on the file system. This is also a " +"useful security option." +msgstr "" +"不解析檔案系統上的 setuid 或 setgid 旗標, 這也是一個蠻有用的安全選項。" + +#. (itstool) path: sect2/title +#: book.translate.xml:8067 +msgid "" +"Using <citerefentry><refentrytitle>umount</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" +msgstr "" +"使用 <citerefentry><refentrytitle>umount</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:8069 +msgid "<primary>file systems</primary> <secondary>unmounting</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8074 +msgid "" +"To unmount a file system use <citerefentry><refentrytitle>umount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. This command takes " +"one parameter which can be a mountpoint, device name, <option>-a</option> or " +"<option>-A</option>." +msgstr "" +"要缺載檔案系統可使用 umount(8) 指令。該指令需要一個參數可以是掛載點 " +"(mountpoint),裝置名稱,以及 -a 或是 -A 等選項。 " + +#. (itstool) path: sect2/para +#: book.translate.xml:8078 +msgid "" +"All forms take <option>-f</option> to force unmounting, and <option>-v</" +"option> for verbosity. Be warned that <option>-f</option> is not generally a " +"good idea as it might crash the computer or damage data on the file system." +msgstr "" +"加上 <option>-f</option> 可以強制卸載,加上 <option>-v</option> 則是會顯示詳" +"細資訊。 要注意的是一般來說用 <option>-f</option> 並不是個好主意,強制卸載檔" +"案系統有可能會造成電腦當機, 或者損壞檔案系統內的資料。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8083 +msgid "" +"To unmount all mounted file systems, or just the file system types listed " +"after <option>-t</option>, use <option>-a</option> or <option>-A</option>. " +"Note that <option>-A</option> does not attempt to unmount the root file " +"system." +msgstr "" +"<option>-a</option> 和 <option>-A</option> 是用來卸載所有已掛載的檔案系統,另" +"外還可以用 <option>-t</option> 來指定要卸載的是哪些種類的檔案系統。 要注意的" +"是 <option>-A</option> 並不會試圖卸載根檔案系統。" + +#. (itstool) path: sect1/title +#: book.translate.xml:8092 +msgid "Processes and Daemons" +msgstr "程序與 Daemon" + +#. (itstool) path: sect1/para +#: book.translate.xml:8094 +msgid "" +"FreeBSD is a multi-tasking operating system. Each program running at any one " +"time is called a <firstterm>process</firstterm>. Every running command " +"starts at least one new process and there are a number of system processes " +"that are run by FreeBSD." +msgstr "" +"FreeBSD 是一個多工的作業系統,也就是說在同一時間內可以跑超過一個程式。 每一個" +"正在花時間跑的程式就叫做 <firstterm>程序</firstterm> (process)。 您下的每個指" +"令都至少會開啟一個新的程序, 而有些系統程序是一直在跑以維持系統正常運作的。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8100 +msgid "" +"Each process is uniquely identified by a number called a <firstterm>process " +"ID</firstterm> (<acronym>PID</acronym>). Similar to files, each process has " +"one owner and group, and the owner and group permissions are used to " +"determine which files and devices the process can open. Most processes also " +"have a parent process that started them. For example, the shell is a " +"process, and any command started in the shell is a process which has the " +"shell as its parent process. The exception is a special process called " +"<citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> which is always the first process to start at boot time and " +"which always has a <acronym>PID</acronym> of <literal>1</literal>." +msgstr "" +"每一個程序都有一個獨一無二的數字叫做 <firstterm>程序代號</firstterm> " +"(Process ID, PID),而且就像檔案一樣,每一個程序也有擁有者及群組。 擁有者及群" +"組的資訊是用來決定什麼檔案或裝置是這個程序可以開啟的 (前面有提到過檔案權" +"限)。 大部份的程序都有父程序。 父程序是開啟這個程序的程序,例如:您對 shell " +"輸入指令,shell 本身就是一個程序,而您執行的指令也是程序。 每一個您用這種方式" +"跑的程序的父程序都是 shell。 有一個特別的程序叫做 " +"<citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 是個例外,在 FreeBSD 開機的時候 init 會自動地被開啟,init 永遠" +"是第一個程序,所以他的 <acronym>PID</acronym> 一直都會是 <literal>1</" +"literal>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8112 +msgid "" +"Some programs are not designed to be run with continuous user input and " +"disconnect from the terminal at the first opportunity. For example, a web " +"server responds to web requests, rather than user input. Mail servers are " +"another example of this type of application. These types of programs are " +"known as <firstterm>daemons</firstterm>. The term daemon comes from Greek " +"mythology and represents an entity that is neither good nor evil, and which " +"invisibly performs useful tasks. This is why the BSD mascot is the cheerful-" +"looking daemon with sneakers and a pitchfork." +msgstr "" +"有些程式並不是設計成一直在接收使用者的輸入的, 而是在開始執行的時候就從中斷與" +"終端機的連線。 例如說, 網頁伺服器整天都在回應網頁方面的要求,它通常不需要您" +"輸入任何東西。 另外,像是把信從一個站傳送到另一個站的程式,也是這種類型的應用" +"程式。我們把這種程式稱作 <firstterm>Daemon</firstterm>。 Daemon 一詞是來自是" +"希臘神話中的角色:祂們既不屬於善良陣營或邪惡陣營,祂們在背地裡做一些有用的事" +"情。這也就是為何 BSD 的吉祥物,是一隻穿著帆布鞋拿著三叉耙的快樂小惡魔的原因。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8123 +msgid "" +"There is a convention to name programs that normally run as daemons with a " +"trailing <quote>d</quote>. For example, <application>BIND</application> is " +"the Berkeley Internet Name Domain, but the actual program that executes is " +"<command>named</command>. The <application>Apache</application> web server " +"program is <command>httpd</command> and the line printer spooling daemon is " +"<command>lpd</command>. This is only a naming convention. For example, the " +"main mail daemon for the <application>Sendmail</application> application is " +"<command>sendmail</command>, and not <literal>maild</literal>." +msgstr "" +"通常來說做為 Deamon 執行的程式名字後面都會加一個字母 <quote>d</quote>。 " +"<application>BIND</application> 是 Berkeley Internet Name Domain 的縮寫,但實" +"際上執行的程式名稱是 <command>named</command>、<application>Apache</" +"application> 網頁伺服器的程式名稱是 <command>httpd</command>、行列式印表機暫" +"存服務(Line Printer Spooling) Daemon 是 <command>lpd</command>,依此類推。 但" +"這是習慣用法,並沒有硬性規定,例如 <application>Sendmail</application> 主要的" +"寄信 Daemon 是叫做 <command>sendmail</command> 而不是 <literal>maild</" +"literal>。" + +#. (itstool) path: sect2/title +#: book.translate.xml:8137 +msgid "Viewing Processes" +msgstr "檢視程序" + +#. (itstool) path: sect2/para +#: book.translate.xml:8139 +msgid "" +"To see the processes running on the system, use " +"<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> or <citerefentry><refentrytitle>top</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. To display a static " +"list of the currently running processes, their <acronym>PID</acronym>s, how " +"much memory they are using, and the command they were started with, use " +"<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. To display all the running processes and update the display " +"every few seconds in order to interactively see what the computer is doing, " +"use <citerefentry><refentrytitle>top</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>." +msgstr "" +"要看系統執行中的程序,有兩個相當有用的指令可用: " +"<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 以及 <citerefentry><refentrytitle>top</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>。" +"<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 指令是用來列出正在執行之程序,而且可以顯示它們的 <acronym>PID</" +"acronym>、用了多少記憶體、執行的指令名稱及其後之參數是什麼等等。 " +"<citerefentry><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 指令則是顯示所有正在執行的程序, 並且數秒鐘更新一次。因此您可以" +"互動式的觀看您的電腦正在做什麼。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8147 +msgid "" +"By default, <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> only shows the commands that are running and owned " +"by the user. For example:" +msgstr "" +"在預設的情況下,<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 指令只會顯示使用者所擁有的的程序。 例如:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:8150 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ps</userinput>\n" +" PID TT STAT TIME COMMAND\n" +"8203 0 Ss 0:00.59 /bin/csh\n" +"8895 0 R+ 0:00.00 ps" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8155 +msgid "" +"The output from <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> is organized into a number of columns. The " +"<literal>PID</literal> column displays the process ID. <acronym>PID</" +"acronym>s are assigned starting at 1, go up to 99999, then wrap around back " +"to the beginning. However, a <acronym>PID</acronym> is not reassigned if it " +"is already in use. The <literal>TT</literal> column shows the tty the " +"program is running on and <literal>STAT</literal> shows the program's state. " +"<literal>TIME</literal> is the amount of time the program has been running " +"on the CPU. This is usually not the elapsed time since the program was " +"started, as most programs spend a lot of time waiting for things to happen " +"before they need to spend time on the CPU. Finally, <literal>COMMAND</" +"literal> is the command that was used to start the program." +msgstr "" +"在這個範例裡可以看到 <citerefentry><refentrytitle>ps</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> 的輸出分成好幾個欄位。 " +"<literal>PID</literal> 就是前面有提到的程序代號。 <literal>PID</literal> 的分" +"配是從 1 開始一直到 99999,如果用完的話又會繞回來重頭開始分配 (若該 " +"<acronym>PID</acronym> 已經在用了,則 PID 不會重新分配)。 <literal>TT</" +"literal> 欄位是指這個程式在哪個 Console (tty) 上執行,在這裡可以先忽略不管。" +"<literal>STAT</literal> 是程式的狀態,也可以先不要管。<literal>TIME</" +"literal> 是這個程式在 CPU 上執行的時間—這通常不是程式總共花的時間, 因為當您" +"開始執行程式後,大部份的程式在 CPU 上執行前會先花上不少時間等待 。 最後," +"<literal>COMMAND</literal> 是執行這個程式的指令。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8170 +msgid "" +"A number of different options are available to change the information that " +"is displayed. One of the most useful sets is <literal>auxww</literal>, where " +"<option>a</option> displays information about all the running processes of " +"all users, <option>u</option> displays the username and memory usage of the " +"process' owner, <option>x</option> displays information about daemon " +"processes, and <option>ww</option> causes <citerefentry><refentrytitle>ps</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> to display the full " +"command line for each process, rather than truncating it once it gets too " +"long to fit on the screen." +msgstr "" +"有幾個不同的選項組合可以用來變更顯示出來的資訊,其中一個最有用的組合是 " +"<literal>auxww</literal>。 <option>a</option> 可以顯示所有正在跑的程序的指" +"令,不只是您自已的。 <option>u</option> 則是顯示程序的擁有者名稱以及記憶體使" +"用情況。 <option>x</option> 可以把 daemon 程序顯示出來, 而 <option>ww</" +"option> 可讓 <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 顯示出每個程序完整的內容, 而不致因過長而被螢幕截掉" +"了。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8181 +msgid "" +"The output from <citerefentry><refentrytitle>top</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> is similar:" +msgstr "" +"<citerefentry><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 也有類似的輸出。 一般的情況看像是這樣:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:8183 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>top</userinput>\n" +"last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46\n" +"107 processes: 2 running, 104 sleeping, 1 zombie\n" +"CPU: 6.2% user, 0.1% nice, 8.2% system, 0.4% interrupt, 85.1% idle\n" +"Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free\n" +"ARC: 992M Total, 377M MFU, 589M MRU, 250K Anon, 5280K Header, 21M Other\n" +"Swap: 2048M Total, 2048M Free\n" +"\n" +" PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND\n" +" 557 root 1 -21 r31 136M 42296K select 0 2:20 9.96% Xorg\n" +" 8198 dru 2 52 0 449M 82736K select 3 0:08 5.96% kdeinit4\n" +" 8311 dru 27 30 0 1150M 187M uwait 1 1:37 0.98% firefox\n" +" 431 root 1 20 0 14268K 1728K select 0 0:06 0.98% moused\n" +" 9551 dru 1 21 0 16600K 2660K CPU3 3 0:01 0.98% top\n" +" 2357 dru 4 37 0 718M 141M select 0 0:21 0.00% kdeinit4\n" +" 8705 dru 4 35 0 480M 98M select 2 0:20 0.00% kdeinit4\n" +" 8076 dru 6 20 0 552M 113M uwait 0 0:12 0.00% soffice.bin\n" +" 2623 root 1 30 10 12088K 1636K select 3 0:09 0.00% powerd\n" +" 2338 dru 1 20 0 440M 84532K select 1 0:06 0.00% kwin\n" +" 1427 dru 5 22 0 605M 86412K select 1 0:05 0.00% kdeinit4" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8204 +msgid "" +"The output is split into two sections. The header (the first five or six " +"lines) shows the <acronym>PID</acronym> of the last process to run, the " +"system load averages (which are a measure of how busy the system is), the " +"system uptime (time since the last reboot) and the current time. The other " +"figures in the header relate to how many processes are running, how much " +"memory and swap space has been used, and how much time the system is " +"spending in different CPU states. If the <acronym>ZFS</acronym> file system " +"module has been loaded, an <literal>ARC</literal> line indicates how much " +"data was read from the memory cache instead of from disk." +msgstr "" +"輸出的資訊分成兩個部份。開頭 (前五行或六行) 顯示出最近一個程序的 " +"<acronym>PID</acronym>、系統平均負載 (系統有多忙錄的測試)、系統的開機時間 (從" +"上次重開算起) 以及現在的時間等。 在開頭裡面的其他數字分別是在講有多少程序正在" +"執行、有多少記憶體及 swap 空間被占用了,還有就是系統分別花了多少時間在不同的 " +"CPU 狀態上。If the <acronym>ZFS</acronym> file system module has been " +"loaded, an <literal>ARC</literal> line indicates how much data was read from " +"the memory cache instead of from disk." + +#. (itstool) path: sect2/para +#: book.translate.xml:8216 +msgid "" +"Below the header is a series of columns containing similar information to " +"the output from <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, such as the <acronym>PID</acronym>, username, " +"amount of CPU time, and the command that started the process. By default, " +"<citerefentry><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> also displays the amount of memory space taken by the process. " +"This is split into two columns: one for total size and one for resident " +"size. Total size is how much memory the application has needed and the " +"resident size is how much it is actually using now." +msgstr "" +"接下來的部份是由好幾個欄位所構成,和 <citerefentry><refentrytitle>ps</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> 輸出的資訊類似。 就如同" +"前例,您可以看到 <acronym>PID</acronym>、使用者名稱、CPU 花費的時間以及正在執" +"行的指令。 <citerefentry><refentrytitle>top</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 在預設的情況下還會告訴您程序用掉了多少的記憶體空" +"間。 在這邊會分成兩欄,一個是總用量 (total size),另一個是實際用量 (resident " +"size)——總用量是指這個應用程式需要的記憶體空間,而實際用量則是指目前實際上該程" +"式的記憶體使用量。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8226 +msgid "" +"<citerefentry><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> automatically updates the display every two seconds. A " +"different interval can be specified with <option>-s</option>." +msgstr "" +"top(1) 每隔 2 秒鐘會自動更新顯示內容,可用 <option>-s</option> 選項來改變間隔" +"的時間。" + +#. (itstool) path: sect2/title +#: book.translate.xml:8232 +msgid "Killing Processes" +msgstr "終止程序" + +#. (itstool) path: sect2/para +#: book.translate.xml:8234 +msgid "" +"One way to communicate with any running process or daemon is to send a " +"<firstterm>signal</firstterm> using <citerefentry><refentrytitle>kill</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. There are a number of " +"different signals; some have a specific meaning while others are described " +"in the application's documentation. A user can only send a signal to a " +"process they own and sending a signal to someone else's process will result " +"in a permission denied error. The exception is the <systemitem class=" +"\"username\">root</systemitem> user, who can send signals to anyone's " +"processes." +msgstr "" +"要與執行中的程序或 Daemon 溝通唯一的方法是透過 " +"<citerefentry><refentrytitle>kill</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 指令傳送<firstterm>信號</firstterm> (signal)。 信號有很多種,有" +"些有特定的意義,有些則是會由應用程式來解讀,應用程式的說明文件會告訴您該程式" +"是如何解讀信號。 使用者只能送信號給自己所擁有的程序,送信號給其他人的程序會出" +"現權限不足的錯誤。 唯一的例外是 <systemitem class=\"username\">root</" +"systemitem>使用者,他可以送信號給任何人的程序。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8244 +msgid "" +"The operating system can also send a signal to a process. If an application " +"is badly written and tries to access memory that it is not supposed to, " +"FreeBSD will send the process the <quote>Segmentation Violation</quote> " +"signal (<literal>SIGSEGV</literal>). If an application has been written to " +"use the <citerefentry><refentrytitle>alarm</refentrytitle><manvolnum>3</" +"manvolnum></citerefentry> system call to be alerted after a period of time " +"has elapsed, it will be sent the <quote>Alarm</quote> signal " +"(<literal>SIGALRM</literal>)." +msgstr "" +"作業系統在某些情況也會送信號給應用程式。 假設有個應用程式寫得不好,企圖要存取" +"它不該碰的記憶體的時候,FreeBSD 會送一個 <quote>Segmentation Violation</" +"quote> 信號 (<literal>SIGSEGV</literal>) 給這個程序。 如果有一個應用程式用了 " +"<citerefentry><refentrytitle>alarm</refentrytitle><manvolnum>3</manvolnum></" +"citerefentry> 的 system call 要求系統在過一段時間之後發出通知,時間到了的時候" +"系統就會發出通知信號 (SIGALRM) 給該程式。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8254 +msgid "" +"Two signals can be used to stop a process: <literal>SIGTERM</literal> and " +"<literal>SIGKILL</literal>. <literal>SIGTERM</literal> is the polite way to " +"kill a process as the process can read the signal, close any log files it " +"may have open, and attempt to finish what it is doing before shutting down. " +"In some cases, a process may ignore <literal>SIGTERM</literal> if it is in " +"the middle of some task that cannot be interrupted." +msgstr "" +"<literal>SIGTERM</literal> 與 <literal>SIGKILL</literal> 這兩個信號可以拿來終" +"止程序。 用 <literal>SIGTERM</literal> 結束程序是比較有禮貌的方式,該程序收到" +"信號後可以把自已所使用的日誌檔關閉及其他要在結束前要做的事完成, 然後在關掉程" +"序之前結束掉手邊的工作。 在某些情況下程序有可能會忽略 <literal>SIGTERM</" +"literal>,如它正在做一些不能中斷的工作的話。" + +#. (itstool) path: footnote/para +#: book.translate.xml:8266 +msgid "" +"There are a few tasks that cannot be interrupted. For example, if the " +"process is trying to read from a file that is on another computer on the " +"network, and the other computer is unavailable, the process is said to be " +"<quote>uninterruptible</quote>. Eventually the process will time out, " +"typically after two minutes. As soon as this time out occurs the process " +"will be killed." +msgstr "" +"還是有少數東西不能被中斷。 例如有個程序正在從網路上的別的電腦讀一個檔案, 而" +"那部電腦因為某些理由連不到,那這個程序就是一個 <quote>不能中斷的</quote> 程" +"序。 通常在經過 2 分鐘左右之後這個程序會逾時。 當發生逾時的時候這個程序就會被" +"結束掉了。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8263 +msgid "" +"<literal>SIGKILL</literal> cannot be ignored by a process. Sending a " +"<literal>SIGKILL</literal> to a process will usually stop that process there " +"and then. <_:footnote-1/>." +msgstr "" +"<literal>SIGKILL</literal> 就沒有辦法被程序忽略。 傳送 <literal>SIGKILL</" +"literal> 信號給程序通常會將程序直接中止<_:footnote-1/>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8275 +msgid "" +"Other commonly used signals are <literal>SIGHUP</literal>, <literal>SIGUSR1</" +"literal>, and <literal>SIGUSR2</literal>. Since these are general purpose " +"signals, different applications will respond differently." +msgstr "" +"其他常用的信號有:<literal>SIGHUP</literal>, <literal>SIGUSR1</literal> 及 " +"<literal>SIGUSR2</literal>。 這些是通用的信號,對不同的應用程式會有不同的反" +"應。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8280 +msgid "" +"For example, after changing a web server's configuration file, the web " +"server needs to be told to re-read its configuration. Restarting " +"<command>httpd</command> would result in a brief outage period on the web " +"server. Instead, send the daemon the <literal>SIGHUP</literal> signal. Be " +"aware that different daemons will have different behavior, so refer to the " +"documentation for the daemon to determine if <literal>SIGHUP</literal> will " +"achieve the desired results." +msgstr "" +"舉例來說,當您更動了網頁伺服器的設定檔,您想要叫網頁伺服器去重新讀取設定。 重" +"新啟動 <command>httpd</command> 會造成網頁伺服器暫停服務一段時間,我們可以傳" +"送 <literal>SIGHUP</literal> 信號來取代關掉重開。 不同的 Daemon 會有不同的行" +"為,所以使用前請先參考 Deamon 的說明文件查看是否可以達到想要的結果。" + +#. (itstool) path: procedure/title +#: book.translate.xml:8291 +msgid "Sending a Signal to a Process" +msgstr "送信號給程序" + +#. (itstool) path: procedure/para +#: book.translate.xml:8293 +msgid "" +"This example shows how to send a signal to " +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. The <citerefentry><refentrytitle>inetd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> configuration file is " +"<filename>/etc/inetd.conf</filename>, and " +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> will re-read this configuration file when it is sent a " +"<literal>SIGHUP</literal>." +msgstr "" +"這個範例將會示範如何送一個信號給 <citerefentry><refentrytitle>inetd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>。" +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 的設定檔是 <filename>/etc/inetd.conf</filename>,而 " +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 會在收到 <literal>SIGHUP</literal> 的時候重新讀取這個設定檔。" + +#. (itstool) path: step/para +#: book.translate.xml:8300 +msgid "" +"Find the <acronym>PID</acronym> of the process to send the signal to using " +"<citerefentry><refentrytitle>pgrep</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. In this example, the <acronym>PID</acronym> for " +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> is 198:" +msgstr "" +"使用 <citerefentry><refentrytitle>pgrep</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 來查詢要傳送信號的目標程序。 在這個例子中 " +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 的 <acronym>PID</acronym> 為 198:" + +#. (itstool) path: step/screen +#: book.translate.xml:8304 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>pgrep -l inetd</userinput>\n" +"198 inetd -wW" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:8310 +msgid "" +"Use <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> to send the signal. Because " +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> is owned by <systemitem class=\"username\">root</systemitem>, " +"use <citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> to become <systemitem class=\"username\">root</systemitem> " +"first." +msgstr "" +"使用 <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 來發送信號。因為 " +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 是 <systemitem class=\"username\">root</systemitem> 所有,因此" +"必須先用 <citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 切換成 <systemitem class=\"username\">root</" +"systemitem> 先。" + +#. (itstool) path: step/screen +#: book.translate.xml:8317 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>su</userinput>\n" +"<prompt>Password:</prompt>\n" +"<prompt>#</prompt> <userinput>/bin/kill -s HUP 198</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:8321 +msgid "" +"Like most <trademark class=\"registered\">UNIX</trademark> commands, " +"<citerefentry><refentrytitle>kill</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> will not print any output if it is successful. If a signal is " +"sent to a process not owned by that user, the message <errorname>kill: " +"<replaceable>PID</replaceable>: Operation not permitted</errorname> will be " +"displayed. Mistyping the <acronym>PID</acronym> will either send the signal " +"to the wrong process, which could have negative results, or will send the " +"signal to a <acronym>PID</acronym> that is not currently in use, resulting " +"in the error <errorname>kill: <replaceable>PID</replaceable>: No such " +"process</errorname>." +msgstr "" +"對大多數 <trademark class=\"registered\">UNIX</trademark> 指令來講," +"<citerefentry><refentrytitle>kill</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 執行成功時並不會輸出任何訊息。 假設您送一個信號給某個不是使用者" +"所擁有的程序, 那麼就會顯示這個錯誤訊息: <errorname>kill: <replaceable>PID</" +"replaceable>: Operation not permitted</errorname>。 若打錯 <acronym>PID</" +"acronym> 的話,那就會把信號送給錯誤的程序,並把該程序關閉,或者是把信號送給一" +"個非使用中的 <acronym>PID</acronym>,那您就會看到錯誤:<errorname>kill: " +"<replaceable>PID</replaceable>: No such process</errorname>。" + +#. (itstool) path: note/title +#: book.translate.xml:8334 +msgid "Why Use <command>/bin/kill</command>?" +msgstr "為何要使用 <command>/bin/kill</command>? " + +#. (itstool) path: note/para +#: book.translate.xml:8336 +msgid "" +"Many shells provide <command>kill</command> as a built in command, meaning " +"that the shell will send the signal directly, rather than running <filename>/" +"bin/kill</filename>. Be aware that different shells have a different syntax " +"for specifying the name of the signal to send. Rather than try to learn all " +"of them, it can be simpler to specify <command>/bin/kill</command>." +msgstr "" +"多數 shell 都有提供內建的 <command>kill</command> 指令。 也就是說這種 shell " +"會直接發送信號,而不是執行 <filename>/bin/kill</filename>。 但要小心不同的 " +"shell 會有不同的語法來指定信號的名稱等。 與其嘗試去把它們通通學會,不如就單純" +"的直接用 <command>/bin/kill</command>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8348 +msgid "" +"When sending other signals, substitute <literal>TERM</literal> or " +"<literal>KILL</literal> with the name of the signal." +msgstr "" +"要送其他的信號的話也是非常類似,就視需要把指令中的 <literal>TERM</literal> " +"或 <literal>KILL</literal> 替換成其他信號的名稱即可。" + +#. (itstool) path: important/para +#: book.translate.xml:8353 +msgid "" +"Killing a random process on the system is a bad idea. In particular, " +"<citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, <acronym>PID</acronym> 1, is special. Running <command>/bin/" +"kill -s KILL 1</command> is a quick, and unrecommended, way to shutdown the " +"system. <emphasis>Always</emphasis> double check the arguments to " +"<citerefentry><refentrytitle>kill</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> <emphasis>before</emphasis> pressing <keycap>Return</keycap>." +msgstr "" +"隨便抓一個系統中的程序然後把他砍掉並不是個好主意。 特別是 " +"<citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, <acronym>PID</acronym> 1 是一個非常特別的程序。 執行 " +"<command>/bin/kill -s KILL 1</command> 的結果就是系統立刻關機。 因此在您按下 " +"<keycap>Return</keycap> 要執行 <citerefentry><refentrytitle>kill</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> 之前, 請<emphasis>一定" +"要</emphasis>記得再次確認您下的參數。" + +#. (itstool) path: sect1/title +#: book.translate.xml:8365 +msgid "Shells" +msgstr "Shell" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8367 +msgid "<primary>shells</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8370 +msgid "<primary>command line</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8374 +msgid "" +"A <firstterm>shell</firstterm> provides a command line interface for " +"interacting with the operating system. A shell receives commands from the " +"input channel and executes them. Many shells provide built in functions to " +"help with everyday tasks such as file management, file globbing, command " +"line editing, command macros, and environment variables. FreeBSD comes with " +"several shells, including the Bourne shell (<citerefentry><refentrytitle>sh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>) and the extended C " +"shell (<citerefentry><refentrytitle>tcsh</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>). Other shells are available from the FreeBSD " +"Ports Collection, such as <command>zsh</command> and <command>bash</command>." +msgstr "" +"<firstterm>Shell</firstterm> 提供了指令列介面可用來與作業系統互動,Shell 負責" +"從輸入的頻道接收指令並執行它們。 多數 Shell 也內建一些有助於日常工作的功能," +"像是檔案管理、檔案搜尋、指令列編輯、指令巨集以及環境變數等。 FreeBSD 有內附了" +"幾個 Shell,包含 Bourne Shell (<citerefentry><refentrytitle>sh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>),與改良版的 C-shell " +"(<citerefentry><refentrytitle>tcsh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>)。 還有許多其他的 Shell 可以從 FreeBSD Ports 套件集中取得,像" +"是 <command>zsh</command> 以及 <command>bash</command> 等。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8385 +msgid "" +"The shell that is used is really a matter of taste. A C programmer might " +"feel more comfortable with a C-like shell such as " +"<citerefentry><refentrytitle>tcsh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. A <trademark class=\"registered\">Linux</trademark> user " +"might prefer <command>bash</command>. Each shell has unique properties that " +"may or may not work with a user's preferred working environment, which is " +"why there is a choice of which shell to use." +msgstr "" +"要用哪個 Shell 牽涉到每個人的喜好。 如果您是一個 C 程式設計師,那對於使用像" +"是 <citerefentry><refentrytitle>tcsh</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 這種 C-like 的 shell 可能會感到較容易上手。 如果是 " +"<trademark class=\"registered\">Linux</trademark> 的使用者,那您也許會想要用 " +"<command>bash</command>。 每一個 Shell 都有自已獨特之處,至於這些特點能不能符" +"合使用者的喜好,就是您選擇 shell 的重點了。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8392 +msgid "" +"One common shell feature is filename completion. After a user types the " +"first few letters of a command or filename and presses <keycap>Tab</keycap>, " +"the shell completes the rest of the command or filename. Consider two files " +"called <filename>foobar</filename> and <filename>football</filename>. To " +"delete <filename>foobar</filename>, the user might type <command>rm foo</" +"command> and press <keycap>Tab</keycap> to complete the filename." +msgstr "" +"常見的 Shell 功能之一就是檔名自動補齊。 首先輸入指令或檔案的前幾個字母,然後" +"按下 <keycap>Tab</keycap> 鍵,Shell 就會自動把指令或是檔案名稱剩餘的部份補" +"齊。 假設您有兩個檔案分別叫作 <filename>foobar</filename> 及 " +"<filename>football</filename>。 要刪掉 <filename>foobar</filename>,那麼可以" +"輸入 <command>rm foo</command> 然後按下 <keycap>Tab</keycap> 來補齊檔名。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8401 +msgid "" +"But the shell only shows <command>rm foo</command>. It was unable to " +"complete the filename because both <filename>foobar</filename> and " +"<filename>football</filename> start with <literal>foo</literal>. Some shells " +"sound a beep or show all the choices if more than one name matches. The user " +"must then type more characters to identify the desired filename. Typing a " +"<literal>t</literal> and pressing <keycap>Tab</keycap> again is enough to " +"let the shell determine which filename is desired and fill in the rest." +msgstr "" +"但 Shell 只顯示了 <command>rm foo</command>,這代表它沒有辦法完全自動補齊檔" +"名,因為有不只一個檔名符合條件。 <filename>foobar</filename> 和 " +"<filename>football</filename> 都是 <literal>foo</literal> 開頭的檔名。 有一" +"些 Shell 會有嗶的音效或者顯示所有符符條件的檔名。 使用者只需要多打幾個字元來" +"分辦想要的檔名。 輸入 <literal>t</literal> 然後再按 <keycap>Tab</keycap> 一" +"次,那 Shell 就能夠替您把剩下的檔名填滿了。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8411 +msgid "<primary>environment variables</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8415 +msgid "" +"Another feature of the shell is the use of environment variables. " +"Environment variables are a variable/key pair stored in the shell's " +"environment. This environment can be read by any program invoked by the " +"shell, and thus contains a lot of program configuration. <xref linkend=" +"\"shell-env-vars\"/> provides a list of common environment variables and " +"their meanings. Note that the names of environment variables are always in " +"uppercase." +msgstr "" +"Shell 的另一項特點是使用了環境變數。 環境變數是以變數與鍵值 (variable/key) 的" +"對應關係儲存於 Shell 的環境,任何由該 Shell 所產生的程序都可以讀取此環境變" +"數, 因此環境變數儲存了許多程序的設定。 <xref linkend=\"shell-env-vars\"/> 提" +"供了常見的環境變數與其涵義的清單。 請注意環境變數的名稱永遠以大寫表示。" + +#. (itstool) path: table/title +#: book.translate.xml:8425 +msgid "Common Environment Variables" +msgstr "常用環境變數" + +#. (itstool) path: row/entry +#: book.translate.xml:8430 book.translate.xml:22964 +msgid "Variable" +msgstr "變數" + +#. (itstool) path: row/entry +#: book.translate.xml:8437 +msgid "<envar>USER</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8438 +msgid "Current logged in user's name." +msgstr "目前登入的使用者名稱。" + +#. (itstool) path: row/entry +#: book.translate.xml:8442 +msgid "<envar>PATH</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8443 +msgid "Colon-separated list of directories to search for binaries." +msgstr "以冒號 (:) 隔開的目錄列表,用以搜尋執行檔的路徑。" + +#. (itstool) path: row/entry +#: book.translate.xml:8448 +msgid "<envar>DISPLAY</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8449 +msgid "" +"Network name of the <application>Xorg</application> display to connect to, " +"if available." +msgstr "" +"若存在這個環境變數,則代表 <application>Xorg</application> 顯示器的網路名稱。" + +#. (itstool) path: row/entry +#: book.translate.xml:8455 +msgid "<envar>SHELL</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8456 +msgid "The current shell." +msgstr "目前使用的 Shell。" + +#. (itstool) path: row/entry +#: book.translate.xml:8460 +msgid "<envar>TERM</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8462 +msgid "" +"The name of the user's type of terminal. Used to determine the capabilities " +"of the terminal." +msgstr "使用者終端機類型的名稱,用來判斷終端機有那些功能。" + +#. (itstool) path: row/entry +#: book.translate.xml:8467 +msgid "<envar>TERMCAP</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8469 +msgid "" +"Database entry of the terminal escape codes to perform various terminal " +"functions." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8474 +msgid "<envar>OSTYPE</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8475 +msgid "Type of operating system." +msgstr "作業系統的類型。" + +#. (itstool) path: row/entry +#: book.translate.xml:8479 +msgid "<envar>MACHTYPE</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8480 +msgid "The system's CPU architecture." +msgstr "系統的 CPU 架構。" + +#. (itstool) path: row/entry +#: book.translate.xml:8484 +msgid "<envar>EDITOR</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8485 +msgid "The user's preferred text editor." +msgstr "使用者偏好的文字編輯器。" + +#. (itstool) path: row/entry +#: book.translate.xml:8489 +msgid "<envar>PAGER</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8490 +msgid "The user's preferred utility for viewing text one page at a time." +msgstr "使用者偏好的文字分頁檢視工具。" + +#. (itstool) path: row/entry +#: book.translate.xml:8495 +msgid "<envar>MANPATH</envar>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:8496 +msgid "Colon-separated list of directories to search for manual pages." +msgstr "以冒號 (:) 隔開的目錄列表,用以搜尋使用手冊的路徑。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8503 +msgid "<primary>Bourne shells</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8507 +msgid "" +"How to set an environment variable differs between shells. In " +"<citerefentry><refentrytitle>tcsh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>csh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, use <command>setenv</" +"command> to set environment variables. In <citerefentry><refentrytitle>sh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> and <command>bash</" +"command>, use <command>export</command> to set the current environment " +"variables. This example sets the default <envar>EDITOR</envar> to <filename>/" +"usr/local/bin/emacs</filename> for the <citerefentry><refentrytitle>tcsh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> shell:" +msgstr "" +"在不同的 shell 底下設定環境變數的方式也有所不同。 在 " +"<citerefentry><refentrytitle>tcsh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 和 <citerefentry><refentrytitle>csh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>,使用 setenv 來設定環境" +"變數。 在 <citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 和 <command>bash</command>, use <command>export</" +"command>,則使用 <command>export</command> 來設定目前環境的變數。 以下範例將 " +"<citerefentry><refentrytitle>tcsh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 下的 <envar>EDITOR</envar> 環境變數從預設值更改為 <filename>/" +"usr/local/bin/emacs</filename>:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:8516 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>setenv EDITOR /usr/local/bin/emacs</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8518 +msgid "The equivalent command for <command>bash</command> would be:" +msgstr "相同功能的指令在 <command>bash</command> 下則是:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:8521 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>export EDITOR=\"/usr/local/bin/emacs\"</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8523 +msgid "" +"To expand an environment variable in order to see its current setting, type " +"a <literal>$</literal> character in front of its name on the command line. " +"For example, <command>echo $TERM</command> displays the current <envar>" +"$TERM</envar> setting." +msgstr "" +"要展開以顯示目前環境變數中的值,只要在指令列輸入環境變數之前加上 <literal>$</" +"literal> 字元。 舉例來說,<command>echo $TERM</command> 會顯示出目前 <envar>" +"$TERM</envar> 的設定值。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8529 +msgid "" +"Shells treat special characters, known as meta-characters, as special " +"representations of data. The most common meta-character is <literal>*</" +"literal>, which represents any number of characters in a filename. Meta-" +"characters can be used to perform filename globbing. For example, " +"<command>echo *</command> is equivalent to <command>ls</command> because the " +"shell takes all the files that match <literal>*</literal> and <command>echo</" +"command> lists them on the command line." +msgstr "" +"Shell 中有特殊字元用來表示特殊資料,我們將其稱作 Meta-characters。 其中最常" +"見的 Meta-characters 是 <literal>*</literal> 字元,它代表了檔名中的任意字" +"元。 Meta-characters 可以用在搜尋檔名,舉例來說,輸入 <command>echo *</" +"command> 會和輸入 <command>ls</command> 得到幾乎相同的結果,這是因為 shell 會" +"將所有符合 <literal>*</literal> 字元的檔案由 <command>echo</command> 顯示出" +"來。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8539 +msgid "" +"To prevent the shell from interpreting a special character, escape it from " +"the shell by starting it with a backslash (<literal>\\</literal>). For " +"example, <command>echo $TERM</command> prints the terminal setting whereas " +"<command>echo \\$TERM</command> literally prints the string <literal>$TERM</" +"literal>." +msgstr "" +"為了避免 Shell 轉譯這些特殊字元,我們可以在這些特殊字元前放一個反斜線 " +"(<literal>\\</literal>) 字元使他們跳脫(escape) Shell 的轉譯。舉例來說," +"<command>echo $TERM</command> 會印出你目前終端機的設定, <command>echo \\" +"$TERM</command> 則會直接印出 <literal>$TERM</literal> 這幾個字。" + +#. (itstool) path: sect2/title +#: book.translate.xml:8547 +msgid "Changing the Shell" +msgstr "變更 Shell" + +#. (itstool) path: sect2/para +#: book.translate.xml:8549 +msgid "" +"The easiest way to permanently change the default shell is to use " +"<command>chsh</command>. Running this command will open the editor that is " +"configured in the <envar>EDITOR</envar> environment variable, which by " +"default is set to <citerefentry><refentrytitle>vi</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. Change the " +"<literal>Shell:</literal> line to the full path of the new shell." +msgstr "" +"永久變更 Shell 最簡單的方法就是透過 <command>chsh</command> 命令。 執行 " +"<command>chsh</command> 將會使用環境變數中 <envar>EDITOR</envar> 指定的文字編" +"輯器,如果沒有設定,則預設是 <citerefentry><refentrytitle>vi</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>。 請修改 " +"<literal>Shell:</literal> 為新的 Shell 的完整路徑。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8556 +msgid "" +"Alternately, use <command>chsh -s</command> which will set the specified " +"shell without opening an editor. For example, to change the shell to " +"<command>bash</command>:" +msgstr "" +"或者,使用 <command>chsh -s</command>, 來直接設定 Shell 而不開啟文字編輯" +"器。 例如, 假設想把 Shell 更改為 <command>bash</command>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:8560 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>chsh -s /usr/local/bin/bash</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:8563 +msgid "" +"The new shell <emphasis>must</emphasis> be present in <filename>/etc/shells</" +"filename>. If the shell was installed from the FreeBSD Ports Collection as " +"described in <xref linkend=\"ports\"/>, it should be automatically added to " +"this file. If it is missing, add it using this command, replacing the path " +"with the path of the shell:" +msgstr "" +"新的 Shell <emphasis>必須</emphasis>已列於 <filename>/etc/shells</filename> " +"裡頭。 若是依 <xref linkend=\"ports\"/> 說明由 Ports 套件集來裝的 Shell, 那" +"就會自動列入至該檔案裡。 若仍缺少,請使用以下指令加入檔案 (請將路徑替換為新" +"的 Shell 的路徑):" + +#. (itstool) path: note/screen +#: book.translate.xml:8570 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>echo <replaceable>/usr/local/bin/bash</replaceable> >> /etc/shells</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:8572 +msgid "" +"Then, rerun <citerefentry><refentrytitle>chsh</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>." +msgstr "" +"然後重新執行 <citerefentry><refentrytitle>chsh</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>。" + +#. (itstool) path: info/title +#: book.translate.xml:8578 +msgid "Advanced Shell Techniques" +msgstr "進階 Shell 技巧" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:8581 book.translate.xml:31000 book.translate.xml:35394 +#: book.translate.xml:35474 book.translate.xml:37083 book.translate.xml:43967 +#: book.translate.xml:54419 book.translate.xml:56854 +msgid "" +"<personname> <firstname>Tom</firstname> <surname>Rhodes</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8591 +msgid "" +"The <trademark class=\"registered\">UNIX</trademark> shell is not just a " +"command interpreter, it acts as a powerful tool which allows users to " +"execute commands, redirect their output, redirect their input and chain " +"commands together to improve the final command output. When this " +"functionality is mixed with built in commands, the user is provided with an " +"environment that can maximize efficiency." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8599 +msgid "" +"Shell redirection is the action of sending the output or the input of a " +"command into another command or into a file. To capture the output of the " +"<citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> command, for example, into a file, redirect the output:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:8604 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>ls > directory_listing.txt</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8606 +msgid "" +"The directory contents will now be listed in <filename>directory_listing." +"txt</filename>. Some commands can be used to read input, such as " +"<citerefentry><refentrytitle>sort</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. To sort this listing, redirect the input:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:8611 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>sort < directory_listing.txt</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8613 +msgid "" +"The input will be sorted and placed on the screen. To redirect that input " +"into another file, one could redirect the output of " +"<citerefentry><refentrytitle>sort</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> by mixing the direction:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:8617 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>sort < directory_listing.txt > sorted.txt</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8619 +msgid "" +"In all of the previous examples, the commands are performing redirection " +"using file descriptors. Every <trademark class=\"registered\">UNIX</" +"trademark> system has file descriptors, which include standard input " +"(stdin), standard output (stdout), and standard error (stderr). Each one has " +"a purpose, where input could be a keyboard or a mouse, something that " +"provides input. Output could be a screen or paper in a printer. And error " +"would be anything that is used for diagnostic or error messages. All three " +"are considered <acronym>I/O</acronym> based file descriptors and sometimes " +"considered streams." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8630 +msgid "" +"Through the use of these descriptors, the shell allows output and input to " +"be passed around through various commands and redirected to or from a file. " +"Another method of redirection is the pipe operator." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8635 +msgid "" +"The <trademark class=\"registered\">UNIX</trademark> pipe operator, <quote>|" +"</quote> allows the output of one command to be directly passed or directed " +"to another program. Basically, a pipe allows the standard output of a " +"command to be passed as standard input to another command, for example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:8641 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>cat directory_listing.txt | sort | less</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8643 +msgid "" +"In that example, the contents of <filename>directory_listing.txt</filename> " +"will be sorted and the output passed to <citerefentry><refentrytitle>less</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. This allows the user " +"to scroll through the output at their own pace and prevent it from scrolling " +"off the screen." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:8652 +msgid "Text Editors" +msgstr "文字編輯器" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8654 +msgid "<primary>text editors</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8657 book.translate.xml:8693 +msgid "<primary>editors</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8661 +msgid "" +"Most FreeBSD configuration is done by editing text files. Because of this, " +"it is a good idea to become familiar with a text editor. FreeBSD comes with " +"a few as part of the base system, and many more are available in the Ports " +"Collection." +msgstr "" +"在 FreeBSD 中有許多設定必須透過編輯文字檔完成。 因此,若能熟悉文字編輯器是再" +"好不過的。 FreeBSD 本身就內建幾種文字編輯器, 您也可以透過 Ports 套件集來安裝" +"其他的文字編輯器。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8666 +msgid "<primary><command>ee</command></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8669 +msgid "" +"<primary>editors</primary> <secondary><citerefentry><refentrytitle>ee</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry></secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8674 +msgid "" +"A simple editor to learn is <citerefentry><refentrytitle>ee</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, which stands for easy " +"editor. To start this editor, type <command>ee <replaceable>filename</" +"replaceable></command> where <replaceable>filename</replaceable> is the name " +"of the file to be edited. Once inside the editor, all of the commands for " +"manipulating the editor's functions are listed at the top of the display. " +"The caret (<literal>^</literal>) represents <keycap>Ctrl</keycap>, so " +"<literal>^e</literal> expands to <keycombo action=\"simul\"> <keycap>Ctrl</" +"keycap> <keycap>e</keycap> </keycombo>. To leave " +"<citerefentry><refentrytitle>ee</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, press <keycap>Esc</keycap>, then choose the <quote>leave " +"editor</quote> option from the main menu. The editor will prompt to save any " +"changes if the file has been modified." +msgstr "" +"最簡單易學的文字編輯器叫做 <citerefentry><refentrytitle>ee</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>,意為簡易的編輯器(Easy " +"Editor)。 要開始使用這個編輯器, 只需輸入 <command>ee <replaceable>filename</" +"replaceable></command>,其中 <replaceable>filename</replaceable> 代表你想要編" +"輯的檔案名稱。 在編輯器中, 所有編輯器的功能與操作都顯示在螢幕的上方。 其中的" +"插入符號 (<literal>^</literal>) 代表鍵盤上的 <keycap>Ctrl</keycap> 鍵,所以 " +"<literal>^e</literal> 代表的是 <keycombo action=\"simul\"> <keycap>Ctrl</" +"keycap> <keycap>e</keycap> </keycombo>。 若要結束 " +"<citerefentry><refentrytitle>ee</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>,請按下 <keycap>Esc</keycap> 鍵,接著選擇 <quote>leave editor</" +"quote> 即可。 此時如果該檔案有修改過,編輯器會提醒你是否要存檔。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8690 +msgid "<primary><command>vi</command></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8696 +msgid "<primary><command>emacs</command></primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8700 +msgid "" +"FreeBSD also comes with more powerful text editors, such as " +"<citerefentry><refentrytitle>vi</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, as part of the base system. Other editors, like " +"<package>editors/emacs</package> and <package>editors/vim</package>, are " +"part of the FreeBSD Ports Collection. These editors offer more functionality " +"at the expense of being more complicated to learn. Learning a more powerful " +"editor such as <application>vim</application> or <application>Emacs</" +"application> can save more time in the long run." +msgstr "" +"FreeBSD 同時也內建功能強大的文字編輯器,像是<citerefentry><refentrytitle>vi</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>。 其他編輯器如 " +"<package>editors/emacs</package> 及 <package>editors/vim</package> 則由 " +"FreeBSD Ports 套件集提供。 這些編輯器提供更強的功能,但是也比較難學習。 長期" +"來看學習 <application>vim</application> 或 <application>Emacs</application> " +"會在日後為您省下更多的時間。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8710 +msgid "" +"Many applications which modify files or require typed input will " +"automatically open a text editor. To change the default editor, set the " +"<envar>EDITOR</envar> environment variable as described in <xref linkend=" +"\"shells\"/>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:8717 +msgid "Devices and Device Nodes" +msgstr "裝置及裝置節點" + +#. (itstool) path: sect1/para +#: book.translate.xml:8719 +msgid "" +"A device is a term used mostly for hardware-related activities in a system, " +"including disks, printers, graphics cards, and keyboards. When FreeBSD " +"boots, the majority of the boot messages refer to devices being detected. A " +"copy of the boot messages are saved to <filename>/var/run/dmesg.boot</" +"filename>." +msgstr "" +"裝置(Device)一詞大多是跟硬體比較有關的術語,包括磁碟、印表機、顯示卡和鍵盤。 " +"FreeBSD 開機過程當中,開機訊息(Boot Message)中主要是會列出偵測到的硬體裝置," +"開機訊息的複本也會存放在 <filename>/var/run/dmesg.boot</filename>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8726 +msgid "" +"Each device has a device name and number. For example, <filename>ada0</" +"filename> is the first SATA hard drive, while <filename>kbd0</filename> " +"represents the keyboard." +msgstr "" +"每一個裝置都有一個裝置名稱及編號,舉例來說 <filename>ada0</filename> 是第一" +"台 SATA 硬碟,而 <filename>kbd0</filename> 則代表鍵盤。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8731 +msgid "" +"Most devices in a FreeBSD must be accessed through special files called " +"device nodes, which are located in <filename>/dev</filename>." +msgstr "" +"在 FreeBSD 中大多數的裝置必須透過裝置節點(Device Node)的特殊檔案來存取,這些" +"檔案會放置在 <filename>/dev</filename>。" + +#. (itstool) path: sect1/title +#: book.translate.xml:8737 +msgid "Manual Pages" +msgstr "操作手冊" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8739 +msgid "<primary>manual pages</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8743 +msgid "" +"The most comprehensive documentation on FreeBSD is in the form of manual " +"pages. Nearly every program on the system comes with a short reference " +"manual explaining the basic operation and available arguments. These manuals " +"can be viewed using <command>man</command>:" +msgstr "" +"在 FreeBSD 中,最詳細的文件莫過於操作手冊。 幾乎在系統上所有程式都會有簡短的" +"操作手冊來介紹該程式的基本操作以及可用的參數。 這些操作手冊可以使用 " +"<command>man</command> 指令來檢視:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:8749 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>man <replaceable>command</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8751 +msgid "" +"where <replaceable>command</replaceable> is the name of the command to learn " +"about. For example, to learn more about <citerefentry><refentrytitle>ls</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, type:" +msgstr "" +"其中 <replaceable>command</replaceable> 想要瞭解指令的名稱。 舉例,要知道 " +"<citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 的詳細用法,就可以打:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:8755 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>man ls</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8757 +msgid "" +"Manual pages are divided into sections which represent the type of topic. In " +"FreeBSD, the following sections are available:" +msgstr "" +"操作手冊被分成很多個章節,每個章節有不同的主題。 在 FreeBSD 中操作手冊有以下" +"章節:" + +#. (itstool) path: listitem/para +#: book.translate.xml:8763 +msgid "User commands." +msgstr "使用者指令。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8767 +msgid "System calls and error numbers." +msgstr "系統呼叫(System call)與錯誤編號。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8771 +msgid "Functions in the C libraries." +msgstr "C 程式庫函數。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8775 +msgid "Device drivers." +msgstr "裝置驅動程式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8779 +msgid "File formats." +msgstr "檔案格式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8783 +msgid "Games and other diversions." +msgstr "遊戲及其他程式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8787 +msgid "Miscellaneous information." +msgstr "其他資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8791 +msgid "System maintenance and operation commands." +msgstr "系統維護與操作指令。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8795 +msgid "System kernel interfaces." +msgstr "系統核心介面。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8799 +msgid "" +"In some cases, the same topic may appear in more than one section of the " +"online manual. For example, there is a <command>chmod</command> user command " +"and a <function>chmod()</function> system call. To tell " +"<citerefentry><refentrytitle>man</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> which section to display, specify the section number:" +msgstr "" +"有些情況會有同樣主題會同時出現在不同章節。 舉個例子,系統內會有 " +"<command>chmod</command> 使用者指令,但同時也有 <function>chmod()</function> " +"系統呼叫。 在這種情況,要告訴 <citerefentry><refentrytitle>man</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> 要查詢的章節編號:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:8805 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>man 1 chmod</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8807 +msgid "" +"This will display the manual page for the user command " +"<citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. References to a particular section of the online manual are " +"traditionally placed in parenthesis in written documentation, so " +"<citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> refers to the user command and " +"<citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>2</manvolnum></" +"citerefentry> refers to the system call." +msgstr "" +"如此一來就會查詢使用者指令 <citerefentry><refentrytitle>chmod</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>。 通常在寫文件時會把有" +"參考到特定章節的號碼寫在括號內。 所以 <citerefentry><refentrytitle>chmod</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> 就是指使用者指令,而 " +"<citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>2</manvolnum></" +"citerefentry> 則是指系統呼叫。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8813 +msgid "" +"If the name of the manual page is unknown, use <command>man -k</command> to " +"search for keywords in the manual page descriptions:" +msgstr "" +"若不曉得操作手冊的名稱,可以使用 <command>man -k</command> 來以關鍵字查詢所有" +"操作手冊的描述:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:8817 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>man -k <replaceable>mail</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:8819 +msgid "" +"This command displays a list of commands that have the keyword <quote>mail</" +"quote> in their descriptions. This is equivalent to using " +"<citerefentry><refentrytitle>apropos</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>." +msgstr "" +"這個指令會顯示所有描述中有使用到關鍵字 <quote>mail</quote> 的指令。 這等同使" +"用 <citerefentry><refentrytitle>apropos</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8823 +msgid "" +"To read the descriptions for all of the commands in <filename>/usr/bin</" +"filename>, type:" +msgstr "想要閱讀所有在 <filename>/usr/bin</filename> 底下的指令說明則可輸入:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:8826 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>cd /usr/bin</userinput>\n" +"<prompt>%</prompt> <userinput>man -f * | more</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#. (itstool) path: listitem/para +#: book.translate.xml:8829 book.translate.xml:49388 +msgid "or" +msgstr "或" + +#. (itstool) path: sect1/screen +#: book.translate.xml:8831 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>cd /usr/bin</userinput>\n" +"<prompt>%</prompt> <userinput>whatis * |more</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:8835 +msgid "GNU Info Files" +msgstr "GNU Info 檔" + +#. (itstool) path: sect2/para +#: book.translate.xml:8841 +msgid "" +"FreeBSD includes several applications and utilities produced by the Free " +"Software Foundation (FSF). In addition to manual pages, these programs may " +"include hypertext documents called <literal>info</literal> files. These can " +"be viewed using <citerefentry><refentrytitle>info</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> or, if " +"<package>editors/emacs</package> is installed, the info mode of " +"<application>emacs</application>." +msgstr "" +"FreeBSD 有許多應用程式與工具來自自由軟體基金會(Free Software Foundation, " +"FSF)。 除了操作手冊之外,這些程式提供了另外一種更具有彈性的超文字文件叫做 " +"<literal>info</literal> 檔。 這些檔案可以使用 " +"<citerefentry><refentrytitle>info</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 指令來閱讀,或者若有裝 <package>editors/emacs</package> 亦可透" +"過 <application>emacs</application> 的 info 模式閱讀。" + +#. (itstool) path: sect2/para +#: book.translate.xml:8849 +msgid "" +"To use <citerefentry><refentrytitle>info</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, type:" +msgstr "" +"要使用 <citerefentry><refentrytitle>info</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 指令,只需輸入:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:8851 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>info</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:8853 +msgid "" +"For a brief introduction, type <literal>h</literal>. For a quick command " +"reference, type <literal>?</literal>." +msgstr "" +"要查詢簡單說明請按 <literal>h</literal> 鍵,若要查訊快速指令參考請按 " +"<literal>?</literal> 鍵。" + +#. (itstool) path: chapter/title +#: book.translate.xml:8867 +msgid "Installing Applications: Packages and Ports" +msgstr "安裝應用程式: 套件與 Ports" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8872 +msgid "<primary>ports</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:8873 +msgid "<primary>packages</primary>" +msgstr "<primary>套件</primary>" + +#. (itstool) path: sect1/para +#: book.translate.xml:8874 +msgid "" +"FreeBSD is bundled with a rich collection of system tools as part of the " +"base system. In addition, FreeBSD provides two complementary technologies " +"for installing third-party software: the FreeBSD Ports Collection, for " +"installing from source, and packages, for installing from pre-built " +"binaries. Either method may be used to install software from local media or " +"from the network." +msgstr "" +"FreeBSD 已內建豐富的系統工具,此外 FreeBSD 提供了 2 種安裝第三方軟體的套件管" +"理技術︰由原始碼安的 FreeBSD Ports 套件集,以及由預先編譯好的 Binary 安裝的 " +"Binary 套件集。 無論要用哪一種方式,都可由本地的媒體或網路來安裝軟體。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8886 +msgid "The difference between binary packages and ports." +msgstr "Binary 套件集與 Ports 的差別。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8890 +msgid "How to find third-party software that has been ported to FreeBSD." +msgstr "如何找到已移植到 FreeBSD 的第三方軟體。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8895 +msgid "How to manage binary packages using <application>pkg</application>." +msgstr "如何使用 <application>pkg</application> 管理 Binary 套件。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8900 +msgid "" +"How to build third-party software from source using the Ports Collection." +msgstr "如何編譯來自 Ports 套件集的第三方軟體原始碼。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8905 +msgid "" +"How to find the files installed with the application for post-installation " +"configuration." +msgstr "如何找到應用程式已安裝的檔案來完成安裝後的設定。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8910 +msgid "What to do if a software installation fails." +msgstr "若軟體安裝失敗要如何處理。" + +#. (itstool) path: sect1/title +#: book.translate.xml:8916 +msgid "Overview of Software Installation" +msgstr "安裝軟體的概要" + +#. (itstool) path: sect1/para +#: book.translate.xml:8918 +msgid "" +"The typical steps for installing third-party software on a <trademark class=" +"\"registered\">UNIX</trademark> system include:" +msgstr "" +"通常要在 <trademark class=\"registered\">UNIX</trademark> 系統上安裝第三方軟" +"體時,有幾個步驟要作:" + +#. (itstool) path: step/para +#: book.translate.xml:8923 +msgid "" +"Find and download the software, which might be distributed in source code " +"format or as a binary." +msgstr "找到並且下載軟體,該軟體有可能以原始碼或 Binary 格式發佈。" + +#. (itstool) path: step/para +#: book.translate.xml:8928 +msgid "" +"Unpack the software from its distribution format. This is typically a " +"tarball compressed with <citerefentry><refentrytitle>compress</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>gzip</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, or <citerefentry><refentrytitle>bzip2</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>." +msgstr "" +"解壓縮軟體。 發佈的格式通常會使用 tarball 並以 " +"<citerefentry><refentrytitle>compress</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, <citerefentry><refentrytitle>gzip</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> 或 " +"<citerefentry><refentrytitle>bzip2</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 壓縮。" + +#. (itstool) path: step/para +#: book.translate.xml:8934 +msgid "" +"Locate the documentation in <filename>INSTALL</filename>, <filename>README</" +"filename> or some file in a <filename>doc/</filename> subdirectory and read " +"up on how to install the software." +msgstr "" +"找到位於 <filename>INSTALL</filename>, <filename>README</filename> 或者 " +"<filename>doc/</filename> 子目錄底下的檔案閱讀如何安裝該軟體。" + +#. (itstool) path: step/para +#: book.translate.xml:8941 +msgid "" +"If the software was distributed in source format, compile it. This may " +"involve editing a <filename>Makefile</filename> or running a " +"<command>configure</command> script." +msgstr "" +"若軟體是以原始碼的格式發佈則需要編譯該軟體。 這可能會需要修改 " +"<filename>Makefile</filename> 或執行 <command>configure</command> Script。" + +#. (itstool) path: step/para +#: book.translate.xml:8948 +msgid "Test and install the software." +msgstr "測試並安裝該軟體。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8952 +msgid "" +"If the software package was not deliberately ported, or tested to work, on " +"FreeBSD, the source code may need editing in order for it to install and run " +"properly. At the time of this writing, over 24,000 third-party applications " +"have been ported to FreeBSD." +msgstr "" +"如果軟體套件未被特意移植到 FreeBSD 或測試是否可運作。 那可能需要修改一下該軟" +"體的原始碼才能正常使用。 在搛寫此篇文章時候, 已經有超過 24,000 個第三方應用" +"程式已經被移植到 FreeBSD。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8958 +msgid "" +"A FreeBSD package contains pre-compiled copies of all the commands for an " +"application, as well as any configuration files and documentation. A package " +"can be manipulated with the <application>pkg</application> commands, such as " +"<command>pkg install</command>." +msgstr "" +"FreeBSD Binary 套件中包含了應用程式預先編譯好的指令、設定檔及文件。 套件可以" +"使用 <application>pkg</application> 指令來管理,如 <command>pkg install</" +"command>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8964 +msgid "" +"A FreeBSD port is a collection of files designed to automate the process of " +"compiling an application from source code. The files that comprise a port " +"contain all the necessary information to automatically download, extract, " +"patch, compile, and install the application." +msgstr "" +"FreeBSD Port 套件則包含了已設計好從原始碼編譯成應用程式的自動化程序。 Port 套" +"件中的檔案包含自動下載、解壓縮、修補、編譯及安裝應用程式流程中所有需要的資" +"訊。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8970 +msgid "" +"The ports system can also be used to generate packages which can be " +"manipulated with the FreeBSD package management commands." +msgstr "Ports 系統可以透過 FreeBSD 套件管理指令來產生套件。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8974 +msgid "" +"Both packages and ports understand dependencies. If a package or port is " +"used to install an application and a dependent library is not already " +"installed, the library will automatically be installed first." +msgstr "" +"不論是 Binary 套件或者 Ports 套件都有相依的功能,若以 Binary 或 Port 套件安裝" +"應用程式,且該應用程式有相依的程式庫尚未被安裝,則會自動先安裝該程式庫。" + +#. (itstool) path: sect1/para +#: book.translate.xml:8979 +msgid "" +"While the two technologies are similar, packages and ports each have their " +"own strengths. Select the technology that meets your requirements for " +"installing a particular application." +msgstr "" +"雖然兩種技術非常相似,但 Binary 套件及 Ports 套件有各自的優點。 要視您要安裝" +"的應用程式需求來選擇。" + +#. (itstool) path: itemizedlist/title +#: book.translate.xml:8985 +msgid "Package Benefits" +msgstr "Binary 套件優點" + +#. (itstool) path: listitem/para +#: book.translate.xml:8988 +msgid "" +"A compressed package tarball is typically smaller than the compressed " +"tarball containing the source code for the application." +msgstr "應用程式壓縮 Binary 套件的 tarball 會比壓縮原始碼的 tarball 還要小。" + +#. (itstool) path: listitem/para +#: book.translate.xml:8994 +msgid "" +"Packages do not require compilation time. For large applications, such as " +"<application>Mozilla</application>, <application>KDE</application>, or " +"<application>GNOME</application>, this can be important on a slow system." +msgstr "" +"安裝 Binary 套件不需要編譯的時間,對於較慢的電腦要安裝大型的應用程式如 " +"<application>Mozilla</application>, <application>KDE</application> 或 " +"<application>GNOME</application> 這點顯的相當重要。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9002 +msgid "" +"Packages do not require any understanding of the process involved in " +"compiling software on FreeBSD." +msgstr "Binary 套件不需要了解在 FreeBSD 上編譯軟體的流程。" + +#. (itstool) path: itemizedlist/title +#: book.translate.xml:9008 +msgid "Port Benefits" +msgstr "Port 套件優點" + +#. (itstool) path: listitem/para +#: book.translate.xml:9011 +msgid "" +"Packages are normally compiled with conservative options because they have " +"to run on the maximum number of systems. By compiling from the port, one can " +"change the compilation options." +msgstr "" +"由於 Binary 套件必須盡可能在大多數系統上執行,通常會採用較通用的編譯選項來編" +"譯,由 Port 來編輯可更改編譯選項。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9018 +msgid "" +"Some applications have compile-time options relating to which features are " +"installed. For example, <application>Apache</application> can be configured " +"with a wide variety of different built-in options." +msgstr "" +"部份應用程式編譯期選項會與要安裝的功能有關,舉例來說 <application>Apache</" +"application> 便有大量不同的內建選項可以設定。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9023 +msgid "" +"In some cases, multiple packages will exist for the same application to " +"specify certain settings. For example, <application>Ghostscript</" +"application> is available as a <filename>ghostscript</filename> package and " +"a <filename>ghostscript-nox11</filename> package, depending on whether or " +"not <application>Xorg</application> is installed. Creating multiple packages " +"rapidly becomes impossible if an application has more than one or two " +"different compile-time options." +msgstr "" +"在某些情況,同樣的應用程式會存在多個不同的 Binary 套件,如 " +"<application>Ghostscript</application> 有 <filename>ghostscript</filename> " +"及 <filename>ghostscript-nox11</filename> 兩種 Binary 套件,用來區別是否有安" +"裝 <application>Xorg</application>。 若應用程式有一個以上的編譯期選項便無法用" +"這個方式來區別 Binary 套件。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9035 +msgid "" +"The licensing conditions of some software forbid binary distribution. Such " +"software must be distributed as source code which must be compiled by the " +"end-user." +msgstr "" +"部份軟體的授權條款中禁止以 Binary 格式發佈。 這種軟體必須以原始碼發佈並由終端" +"使用者編譯。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9041 +msgid "" +"Some people do not trust binary distributions or prefer to read through " +"source code in order to look for potential problems." +msgstr "部份人並不相信 Binary 發佈版本,寧願閱讀原始碼來查看是否潛藏的問題。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9047 +msgid "Source code is needed in order to apply custom patches." +msgstr "原始碼可套用自訂的修補。" + +#. (itstool) path: sect1/para +#: book.translate.xml:9052 +msgid "" +"To keep track of updated ports, subscribe to the <link xlink:href=\"http://" +"lists.FreeBSD.org/mailman/listinfo/freebsd-ports\">FreeBSD ports mailing " +"list</link> and the <link xlink:href=\"http://lists.FreeBSD.org/mailman/" +"listinfo/freebsd-ports-bugs\">FreeBSD ports bugs mailing list</link>." +msgstr "" +"要持續追蹤 Ports 的更新可以訂閱 <link xlink:href=\"http://lists.FreeBSD.org/" +"mailman/listinfo/freebsd-ports\">FreeBSD Ports 郵遞論壇</link> 與 <link " +"xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-bugs" +"\">FreeBSD Ports 問題郵遞論壇</link>。" + +#. (itstool) path: warning/para +#: book.translate.xml:9056 +msgid "" +"Before installing any application, check <link xlink:href=\"http://vuxml." +"freebsd.org/\"/> for security issues related to the application or type " +"<command>pkg audit -F</command> to check all installed applications for " +"known vulnerabilities." +msgstr "" +"在安裝任何應用程式之前,請先查看 <link xlink:href=\"http://vuxml.freebsd.org/" +"\"/> 是否有與該應用程式相關的安全性問題或輸入 <command>pkg audit -F</" +"command> 來檢查所有已安裝的應用程式是否有已知的漏洞。" + +#. (itstool) path: sect1/para +#: book.translate.xml:9062 +msgid "" +"The remainder of this chapter explains how to use packages and ports to " +"install and manage third-party software on FreeBSD." +msgstr "" +"本章接下來的部份將說明如何在 FreeBSD 使用 Binary 套件及 Ports 套件安裝與管理" +"第三方軟體。" + +#. (itstool) path: sect1/title +#: book.translate.xml:9068 +msgid "Finding Software" +msgstr "搜尋軟體" + +#. (itstool) path: sect1/para +#: book.translate.xml:9070 +msgid "" +"FreeBSD's list of available applications is growing all the time. There are " +"a number of ways to find software to install:" +msgstr "" +"FreeBSD 上可安裝的軟體清單不斷在增加, 有幾種方式可以來找你想安裝的軟體:" + +#. (itstool) path: listitem/para +#: book.translate.xml:9076 +msgid "" +"The FreeBSD web site maintains an up-to-date searchable list of all the " +"available applications, at <link xlink:href=\"@@URL_RELPREFIX@@/ports/index." +"html\">http://www.FreeBSD.org/ports/</link>. The ports can be searched by " +"application name or by software category." +msgstr "" +"FreeBSD 網站有維護一份可搜尋的最新應用程式清單,在 <link xlink:href=" +"\"@@URL_RELPREFIX@@/ports/index.html\">http://www.FreeBSD.org/ports/</" +"link>。 可以依應用程式名稱或軟體分類來搜尋 Ports。" + +#. (itstool) path: listitem/indexterm +#: book.translate.xml:9083 +msgid "<primary>FreshPorts</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:9085 +msgid "" +"Dan Langille maintains <link xlink:href=\"http://www.FreshPorts.org/" +"\">FreshPorts.org</link> which provides a comprehensive search utility and " +"also tracks changes to the applications in the Ports Collection. Registered " +"users can create a customized watch list in order to receive an automated " +"email when their watched ports are updated." +msgstr "" +"由 Dan Langille 維護的 <link xlink:href=\"http://www.FreshPorts.org/" +"\">FreshPorts.org</link>,提供完整的搜尋工具並且可追蹤在 Ports 套件集中的應用" +"程式變更。註冊的使用者可以建立自訂的監視清單會自動寄發電子郵件通知 Ports 的更" +"新資訊。" + +#. (itstool) path: listitem/indexterm +#: book.translate.xml:9094 +msgid "<primary>SourceForge</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:9096 +msgid "" +"If finding a particular application becomes challenging, try searching a " +"site like <link xlink:href=\"http://www.sourceforge.net/\">SourceForge.net</" +"link> or <link xlink:href=\"http://www.github.com/\">GitHub.com</link> then " +"check back at the <link xlink:href=\"@@URL_RELPREFIX@@/ports/index.html" +"\">FreeBSD site</link> to see if the application has been ported." +msgstr "" +"若找不到指定的應用程式,可以先到網站 <link xlink:href=\"http://www." +"sourceforge.net/\">SourceForge.net</link> 或 <link xlink:href=\"http://www." +"github.com/\">GitHub.com</link> 搜尋,後然再回到 <link xlink:href=" +"\"@@URL_RELPREFIX@@/ports/index.html\">FreeBSD 網站</link> 檢查該應用程式是否" +"已被移植。" + +#. (itstool) path: listitem/indexterm +#: book.translate.xml:9104 +msgid "<primary>pkg</primary> <secondary>search</secondary>" +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#pkg-search +#: book.translate.xml:9109 +msgid "To search the binary package repository for an application:" +msgstr "要搜尋 Binary 套件檔案庫中的應用程式可:" + +#. (itstool) path: listitem/screen +#: book.translate.xml:9112 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pkg search <replaceable>subversion</replaceable></userinput>\n" +"git-subversion-<replaceable>1.9.2</replaceable>\n" +"java-subversion-<replaceable>1.8.8_2</replaceable>\n" +"p5-subversion-<replaceable>1.8.8_2</replaceable>\n" +"py27-hgsubversion-<replaceable>1.6</replaceable>\n" +"py27-subversion-<replaceable>1.8.8_2</replaceable>\n" +"ruby-subversion-<replaceable>1.8.8_2</replaceable>\n" +"subversion-<replaceable>1.8.8_2</replaceable>\n" +"subversion-book-<replaceable>4515</replaceable>\n" +"subversion-static-<replaceable>1.8.8_2</replaceable>\n" +"subversion16-<replaceable>1.6.23_4</replaceable>\n" +"subversion17-<replaceable>1.7.16_2</replaceable>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:9125 +msgid "" +"Package names include the version number and in case of ports based on " +"python, the version number of the version of python the package was built " +"with. Some ports also have multiple versions available. In case of " +"<application>subversion</application> there are different versions " +"available, as well as different compile options. In this case, the " +"statically linked version of <application>subversion</application>. When " +"indicating which package to install, it is best to specify the application " +"by the port origin, which is the path in the ports tree. Repeat the " +"<command>pkg search</command> with <option>-o</option> to list the origin of " +"each package:" +msgstr "" +"套件名稱包含版本編號,且若 Ports 使用 Python 為基礎,也會包含用來編譯該套件" +"的 Python 版本。有些 Ports 會有多個版本可使用,如 <application>subversion</" +"application> ,因編譯選項不同,有多個版本可用,這個例子中即指靜態連結版本的 " +"<application>subversion</application>。在指定要安裝的套件時,最好使用 Ports " +"來源來指定該應用程式,Ports 來源是指應用程式在 Ports 樹中的路徑。再輸入一次 " +"<command>pkg search</command> 並加上 <option>-o</option> 來列出每個套件來源:" + +#. (itstool) path: listitem/screen +#: book.translate.xml:9139 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pkg search -o <replaceable>subversion</replaceable></userinput>\n" +"devel/git-subversion\n" +"java/java-subversion\n" +"devel/p5-subversion\n" +"devel/py-hgsubversion\n" +"devel/py-subversion\n" +"devel/ruby-subversion\n" +"devel/subversion16\n" +"devel/subversion17\n" +"devel/subversion\n" +"devel/subversion-book\n" +"devel/subversion-static" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:9152 +msgid "" +"Searching by shell globs, regular expressions, exact match, by description, " +"or any other field in the repository database is also supported by " +"<command>pkg search</command>. After installing <package>ports-mgmt/pkg</" +"package> or <package>ports-mgmt/pkg-devel</package>, see " +"<citerefentry><refentrytitle>pkg-search</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for more details." +msgstr "" +"<command>pkg search</command> 支援使用 Shell 萬手字元(globs)、正規表示法、描" +"述或檔案庫中的其他其他內容。在安裝 <package>ports-mgmt/pkg</package> 或 " +"<package>ports-mgmt/pkg-devel</package> 之後,可參考 " +"<citerefentry><refentrytitle>pkg-search</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 以取得更多詳細資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9161 +msgid "" +"If the Ports Collection is already installed, there are several methods to " +"query the local version of the ports tree. To find out which category a port " +"is in, type <command>whereis <replaceable>file</replaceable></command>, " +"where <replaceable>file</replaceable> is the program to be installed:" +msgstr "" +"若 Ports 套件集已安裝,有數個方法可以查詢 Ports 樹中的本地版本。要找到 Port " +"所在的分類,可輸入 <command>whereis <replaceable>file</replaceable></" +"command>,其中 <replaceable>file</replaceable> 是要安裝的程式:" + +#. (itstool) path: listitem/screen +#: book.translate.xml:9168 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>whereis lsof</userinput>\n" +"lsof: /usr/ports/sysutils/lsof" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:9171 +msgid "" +"Alternately, an <citerefentry><refentrytitle>echo</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> statement can be used:" +msgstr "" +"或者,也可使用 <citerefentry><refentrytitle>echo</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>:" + +#. (itstool) path: listitem/screen +#: book.translate.xml:9174 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>echo /usr/ports/*/*lsof*</userinput>\n" +"/usr/ports/sysutils/lsof" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:9177 +msgid "" +"Note that this will also return any matched files downloaded into the " +"<filename>/usr/ports/distfiles</filename> directory." +msgstr "" +"請注意,這也會顯示已下載至 <filename>/usr/ports/distfiles</filename> 目錄中任" +"何已符合條件的檔案。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9183 +msgid "" +"Another way to find software is by using the Ports Collection's built-in " +"search mechanism. To use the search feature, <application>cd</application> " +"to <filename>/usr/ports</filename> then run <command>make search " +"name=program-name</command> where <replaceable>program-name</replaceable> is " +"the name of the software. For example, to search for <command>lsof</command>:" +msgstr "" +"另一個方法是使用 Ports 套件集內建的搜尋機制來找軟體。要使用搜尋的功能需先 " +"<application>cd</application> 到 <filename>/usr/ports</filename> 然後執行 " +"<command>make search name=program-name</command>,其中 <replaceable>program-" +"name</replaceable> 代表軟體的名稱。舉例搜尋 <command>lsof</command>:" + +#. (itstool) path: listitem/screen +#: book.translate.xml:9192 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports</userinput>\n" +"<prompt>#</prompt> <userinput>make search name=lsof</userinput>\n" +"Port: lsof-4.88.d,8\n" +"Path: /usr/ports/sysutils/lsof\n" +"Info: Lists information about open files (similar to fstat(1))\n" +"Maint: ler@lerctr.org\n" +"Index: sysutils\n" +"B-deps:\n" +"R-deps: " +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:9203 +msgid "" +"The built-in search mechanism uses a file of index information. If a message " +"indicates that the <filename>INDEX</filename> is required, run <command>make " +"fetchindex</command> to download the current index file. With the " +"<filename>INDEX</filename> present, <command>make search</command> will be " +"able to perform the requested search." +msgstr "" +"內建的搜尋機制會使用索引檔內的資訊。若出現訊息指出需要 <filename>INDEX</" +"filename> 檔,可執行 <command>make fetchindex</command> 來下載最新的索引檔。" +"當 <filename>INDEX</filename> 檔存在時,<command>make search</command> 方可執" +"行請求的搜尋動作。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9212 +msgid "The <quote>Path:</quote> line indicates where to find the port." +msgstr "<quote>Path:</quote> 此行代表 Ports 的所在位置。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9215 +msgid "" +"To receive less information, use the <command>quicksearch</command> feature:" +msgstr "若不要接受這麼多資訊,可使用 <command>quicksearch</command> 功能:" + +#. (itstool) path: listitem/screen +#: book.translate.xml:9218 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports</userinput>\n" +"<prompt>#</prompt> <userinput>make quicksearch name=lsof</userinput>\n" +"Port: lsof-4.88.d,8\n" +"Path: /usr/ports/sysutils/lsof\n" +"Info: Lists information about open files (similar to fstat(1))" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:9224 +msgid "" +"For more in-depth searching, use <command>make search " +"key=<replaceable>string</replaceable></command> or <command>make quicksearch " +"key=<replaceable>string</replaceable></command>, where <replaceable>string</" +"replaceable> is some text to search for. The text can be in comments, " +"descriptions, or dependencies in order to find ports which relate to a " +"particular subject when the name of the program is unknown." +msgstr "" +"若要進行更有深度的搜尋,使用 <command>make search key=<replaceable>string</" +"replaceable></command> 或 <command>make quicksearch key=<replaceable>string</" +"replaceable></command> 其中 <replaceable>string</replaceable> 是要搜尋的文" +"字。該文字可以是一部份的註解、描述或相依套件,當不清楚程式的名稱時可以找到與" +"特定主題相關的 Ports。" + +#. (itstool) path: para/buildtarget +#: book.translate.xml:9235 +msgid "search" +msgstr "" + +#. (itstool) path: para/buildtarget +#: book.translate.xml:9236 +msgid "quicksearch" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:9235 +msgid "" +"When using <_:buildtarget-1/> or <_:buildtarget-2/>, the search string is " +"case-insensitive. Searching for <quote>LSOF</quote> will yield the same " +"results as searching for <quote>lsof</quote>." +msgstr "" +"當使用 <_:buildtarget-1/> 或 <_:buildtarget-2/> 時,搜尋的字串不分大小寫。 搜" +"尋 <quote>LSOF</quote> 會與搜尋 <quote>lsof</quote> 產生相同的結果。" + +#. (itstool) path: sect1/title +#: book.translate.xml:9245 +msgid "Using <application>pkg</application> for Binary Package Management" +msgstr "使用 <application>pkg</application> 管理 Binary 套件" + +#. (itstool) path: sect1/para +#: book.translate.xml:9248 +msgid "" +"<application>pkg</application> is the next generation replacement for the " +"traditional FreeBSD package management tools, offering many features that " +"make dealing with binary packages faster and easier." +msgstr "" +"<application>pkg</application> 是新一代套件管理工具用來取代舊版工具,提供許多" +"功能讓處理 Binary 套件更快更簡單。" + +#. (itstool) path: sect1/para +#: book.translate.xml:9253 +msgid "" +"<application>pkg</application> is not a replacement for port management " +"tools like <package>ports-mgmt/portmaster</package> or <package>ports-mgmt/" +"portupgrade</package>. These tools can be used to install third-party " +"software from both binary packages and the Ports Collection, while " +"<application>pkg</application> installs only binary packages." +msgstr "" +"<application>pkg</application> 並不是用來取代 Port 管理工具如 <package>ports-" +"mgmt/portmaster</package> 或 <package>ports-mgmt/portupgrade</package>,這些" +"工具可用來安裝來自 Binary 與 Ports 套件集的第三方軟體,而 <application>pkg</" +"application> 僅能安裝 Binary 套件。" + +#. (itstool) path: sect2/title +#: book.translate.xml:9263 +msgid "Getting Started with <application>pkg</application>" +msgstr "開始使用 <application>pkg</application>" + +#. (itstool) path: sect2/para +#: book.translate.xml:9266 +msgid "" +"FreeBSD includes a bootstrap utility which can be used to download and " +"install <application>pkg</application>, along with its manual pages." +msgstr "" +"FreeBSD 內建啟動(Bootstrap)工具可用來下載並安裝 <application>pkg</" +"application> 及其操作手冊。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9270 +msgid "To bootstrap the system, run:" +msgstr "要啟動(Bootstrap)系統請執行:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9272 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>/usr/sbin/pkg</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9274 +msgid "" +"For earlier FreeBSD versions, <application>pkg</application> must instead be " +"installed from the Ports Collection or as a binary package." +msgstr "" +"對較舊的 FreeBSD 版本,<application>pkg</application> 必須改透過 Ports 套件集" +"或者 Binary 套件來安裝。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9278 +msgid "To install the port, run:" +msgstr "要安裝 Port 套件,請執行:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9280 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/ports-mgmt/pkg</userinput>\n" +"<prompt>#</prompt> <userinput>make</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9284 +msgid "" +"When upgrading an existing system that originally used the older package " +"system, the database must be converted to the new format, so that the new " +"tools are aware of the already installed packages. Once <application>pkg</" +"application> has been installed, the package database must be converted from " +"the traditional format to the new format by running this command:" +msgstr "" +"當升級原使用舊版套件系統的既有系統時,必須將資料庫轉換成新的格式,因此新的工" +"具才會知道有那些已安裝過的套件。一旦 <application>pkg</application> 已安裝," +"必須執行以下指令將套件資料庫從舊版格式轉換到新版格式:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9292 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg2ng</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:9294 +msgid "" +"This step is not required for new installations that do not yet have any " +"third-party software installed." +msgstr "新安裝的版本因尚未安裝任何第三方軟體因此不須做這個步驟。" + +#. (itstool) path: important/para +#: book.translate.xml:9299 +msgid "" +"This step is not reversible. Once the package database has been converted to " +"the <application>pkg</application> format, the traditional <literal>pkg_*</" +"literal> tools should no longer be used." +msgstr "" +"這個步驟無法還原。一旦套件資料庫轉為成 <application>pkg</application> 的格" +"式,舊版 <literal>pkg_*</literal> 工具就不該再繼續使用。" + +#. (itstool) path: note/para +#: book.translate.xml:9306 +msgid "" +"The package database conversion may emit errors as the contents are " +"converted to the new version. Generally, these errors can be safely ignored. " +"However, a list of third-party software that was not successfully converted " +"will be listed after <command>pkg2ng</command> has finished and these " +"applications must be manually reinstalled." +msgstr "" +"套件資料庫轉換的過程可能會因內容轉換為新版本產生錯誤。通常,這些錯誤皆可安全" +"忽略,雖然如此,仍然有在執行 <command>pkg2ng</command> 後無法成功轉換的第三方" +"軟體清單,這些應用程式則必須手動重新安裝。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9314 +msgid "" +"To ensure that the FreeBSD Ports Collection registers new software with " +"<application>pkg</application>, and not the traditional packages format, " +"FreeBSD versions earlier than 10.<replaceable>X</replaceable> require this " +"line in <filename>/etc/make.conf</filename>:" +msgstr "" +"為了確保 FreeBSD Ports 套件集會將新軟體的資訊註冊到 <application>pkg</" +"application> 而非舊版套件格式,FreeBSD 版本 10.<replaceable>X</replaceable> " +"之前需要在 <filename>/etc/make.conf</filename> 加入此行:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:9320 +#, no-wrap +msgid "WITH_PKGNG=\tyes" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9322 +msgid "" +"By default <application>pkg</application> uses the FreeBSD package mirrors. " +"For information about building a custom package repository, see <xref " +"linkend=\"ports-poudriere\"/>" +msgstr "" +"預設 <application>pkg</application> 會使用 FreeBSD 套件鏡像站。若要取得有關編" +"譯自訂套件檔案庫的資訊,請參考 \n" +"<xref linkend=\"ports-poudriere\"/>" + +#. (itstool) path: sect2/para +#: book.translate.xml:9326 +msgid "" +"Additional <application>pkg</application> configuration options are " +"described in <citerefentry><refentrytitle>pkg.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" +"其他 <application>pkg</application> 設定選項說明請參考 " +"<citerefentry><refentrytitle>pkg.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9329 +msgid "" +"Usage information for <application>pkg</application> is available in the " +"<citerefentry><refentrytitle>pkg</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> manual page or by running <command>pkg</command> without " +"additional arguments." +msgstr "" +"<application>pkg</application> 的用法資訊可在 " +"<citerefentry><refentrytitle>pkg</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 操作手冊或不加任何參數執行 <command>pkg</command> 來取得。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9333 +msgid "" +"Each <application>pkg</application> command argument is documented in a " +"command-specific manual page. To read the manual page for <command>pkg " +"install</command>, for example, run either of these commands:" +msgstr "" +"每個 <application>pkg</application> 指令參數皆記庫在指令操件手冊。要閱讀 " +"<command>pkg install</command> 的操作手冊,可執行以下指令:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9338 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg help install</userinput>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9340 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>man pkg-install</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9342 +msgid "" +"The rest of this section demonstrates common binary package management tasks " +"which can be performed using <application>pkg</application>. Each " +"demonstrated command provides many switches to customize its use. Refer to a " +"command's help or man page for details and more examples." +msgstr "" +"本章節剩餘的部份將會示範使用 <application>pkg</application> 執行常用的 " +"Binary 套件管理工作。每個示範的指令皆會提供多個參數可使用,請參考指令的說明或" +"操作手冊以取得詳細資訊或更多範例。" + +#. (itstool) path: sect2/title +#: book.translate.xml:9351 +msgid "Obtaining Information About Installed Packages" +msgstr "取得有關已安裝套件的資訊" + +#. (itstool) path: sect2/para +#: book.translate.xml:9353 +msgid "" +"Information about the packages installed on a system can be viewed by " +"running <command>pkg info</command> which, when run without any switches, " +"will list the package version for either all installed packages or the " +"specified package." +msgstr "" +"有關已安裝在系統的套件資訊可透過執行 <command>pkg info</command> 來檢視,若執" +"行時未指定任何參數,將會列出所有已安裝或指定的套件版本。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9359 +msgid "" +"For example, to see which version of <application>pkg</application> is " +"installed, run:" +msgstr "例如,要查看已安裝的 <application>pkg</application> 版本可執行:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9362 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pkg info pkg</userinput>\n" +"pkg-1.1.4_1" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:9367 +msgid "Installing and Removing Packages" +msgstr "安裝與移除套件" + +#. (itstool) path: sect2/para +#: book.translate.xml:9369 +msgid "" +"To install a binary package use the following command, where " +"<replaceable>packagename</replaceable> is the name of the package to install:" +msgstr "" +"要安裝 Binary 套件可使用以下指令,其中 <replaceable>packagename</" +"replaceable> 為要安裝的套件名稱:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9373 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install <replaceable>packagename</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9375 +msgid "" +"This command uses repository data to determine which version of the software " +"to install and if it has any uninstalled dependencies. For example, to " +"install <application>curl</application>:" +msgstr "" +"這個指令會使用檔案庫的資料來決定要安裝的軟體版本以及是否有任何未安裝的相依。" +"例如,要安裝 <application>curl</application>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9380 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pkg install curl</userinput>\n" +"Updating repository catalogue\n" +"/usr/local/tmp/All/curl-7.31.0_1.txz 100% of 1181 kB 1380 kBps 00m01s\n" +"\n" +"/usr/local/tmp/All/ca_root_nss-3.15.1_1.txz 100% of 288 kB 1700 kBps 00m00s\n" +"\n" +"Updating repository catalogue\n" +"The following 2 packages will be installed:\n" +"\n" +" Installing ca_root_nss: 3.15.1_1\n" +" Installing curl: 7.31.0_1\n" +"\n" +"The installation will require 3 MB more space\n" +"\n" +"0 B to be downloaded\n" +"\n" +"Proceed with installing packages [y/N]: <userinput>y</userinput>\n" +"Checking integrity... done\n" +"[1/2] Installing ca_root_nss-3.15.1_1... done\n" +"[2/2] Installing curl-7.31.0_1... done\n" +"Cleaning up cache files...Done" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9402 +msgid "" +"The new package and any additional packages that were installed as " +"dependencies can be seen in the installed packages list:" +msgstr "新的套件以及任何做為相依安裝的額外套件可在已安裝的套件清單中看到:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9406 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pkg info</userinput>\n" +"ca_root_nss-3.15.1_1\tThe root certificate bundle from the Mozilla Project\n" +"curl-7.31.0_1\tNon-interactive tool to get files from FTP, GOPHER, HTTP(S) servers\n" +"pkg-1.1.4_6\tNew generation package manager" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9411 +msgid "" +"Packages that are no longer needed can be removed with <command>pkg delete</" +"command>. For example:" +msgstr "不再需要的套件可以使用 <command>pkg delete</command> 來移除,例如:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9414 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pkg delete curl</userinput>\n" +"The following packages will be deleted:\n" +"\n" +"\tcurl-7.31.0_1\n" +"\n" +"The deletion will free 3 MB\n" +"\n" +"Proceed with deleting packages [y/N]: <userinput>y</userinput>\n" +"[1/1] Deleting curl-7.31.0_1... done" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:9426 +msgid "Upgrading Installed Packages" +msgstr "升級已安裝套件" + +#. (itstool) path: sect2/para +#: book.translate.xml:9428 +msgid "Installed packages can be upgraded to their latest versions by running:" +msgstr "執行以下指令,可將已安裝的套件升級到最新版本:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9431 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg upgrade</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9433 +msgid "" +"This command will compare the installed versions with those available in the " +"repository catalogue and upgrade them from the repository." +msgstr "" +"這個指令將會比對已安裝的版本與在檔案庫分類中的版本,並從檔案庫升級這些套件。" + +#. (itstool) path: sect2/title +#: book.translate.xml:9439 +msgid "Auditing Installed Packages" +msgstr "稽查已安裝套件" + +#. (itstool) path: sect2/para +#: book.translate.xml:9441 +msgid "" +"Occasionally, software vulnerabilities may be discovered in third-party " +"applications. To address this, <application>pkg</application> includes a " +"built-in auditing mechanism. To determine if there are any known " +"vulnerabilities for the software installed on the system, run:" +msgstr "" +"偶爾可能會在第三方的應用程式中發現軟體漏洞,要找出這些程式,可使用 " +"<application>pkg</application> 內建的稽查機制。要查詢已安裝在系統上的軟體是否" +"有任何已知的漏洞可執行:" + +#. (itstool) path: sect2/screen +#. (itstool) path: sect1/screen +#: book.translate.xml:9448 book.translate.xml:26673 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg audit -F</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:9452 +msgid "Automatically Removing Leaf Dependencies" +msgstr "自動移除不使用的相依" + +#. (itstool) path: sect2/para +#: book.translate.xml:9454 +msgid "" +"Removing a package may leave behind dependencies which are no longer " +"required. Unneeded packages that were installed as dependencies can be " +"automatically detected and removed using:" +msgstr "" +"移除一個套件可能會留下不再需要使用的相依套件。不再需要的相依套件可以使用以下" +"指令自動偵測並移除:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9459 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pkg autoremove</userinput>\n" +"Packages to be autoremoved:\n" +"\tca_root_nss-3.15.1_1\n" +"\n" +"The autoremoval will free 723 kB\n" +"\n" +"Proceed with autoremoval of packages [y/N]: <userinput>y</userinput>\n" +"Deinstalling ca_root_nss-3.15.1_1... done" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:9470 +msgid "Restoring the Package Database" +msgstr "還原套件資料庫" + +#. (itstool) path: sect2/para +#: book.translate.xml:9472 +msgid "" +"Unlike the traditional package management system, <application>pkg</" +"application> includes its own package database backup mechanism. This " +"functionality is enabled by default." +msgstr "" +"不如傳統的套件管理系統,<application>pkg</application> 有自己的套件資料庫備份" +"機制,此功能預設是開啟的。" + +#. (itstool) path: tip/para +#: book.translate.xml:9478 +msgid "" +"To disable the periodic script from backing up the package database, set " +"<literal>daily_backup_pkgdb_enable=\"NO\"</literal> in " +"<citerefentry><refentrytitle>periodic.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" +"要停止週期的 Script 備份套件資料庫可在 <citerefentry><refentrytitle>periodic." +"conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> 設定 " +"<literal>daily_backup_pkgdb_enable=\"NO\"</literal>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9484 +msgid "" +"To restore the contents of a previous package database backup, run the " +"following command replacing <replaceable>/path/to/pkg.sql</replaceable> with " +"the location of the backup:" +msgstr "" +"要還原先前套件資料庫的備份,可執行以下指令並將 <replaceable>/path/to/pkg." +"sql</replaceable> 替換為備份的位置:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9489 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg backup -r <replaceable>/path/to/pkg.sql</replaceable></userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:9492 +msgid "" +"If restoring a backup taken by the periodic script, it must be decompressed " +"prior to being restored." +msgstr "若要還原有週期 Script 所產生的備份必須在還原前先解壓縮。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9496 +msgid "" +"To run a manual backup of the <application>pkg</application> database, run " +"the following command, replacing <replaceable>/path/to/pkg.sql</replaceable> " +"with a suitable file name and location:" +msgstr "" +"要手動備份 <application>pkg</application> 資料庫,可執行以下指令,並替換 " +"<replaceable>/path/to/pkg.sql</replaceable> 為適當的檔案名稱與位置:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9501 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg backup -d <replaceable>/path/to/pkg.sql</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:9505 +msgid "Removing Stale Packages" +msgstr "移除過時的套件" + +#. (itstool) path: sect2/para +#: book.translate.xml:9507 +msgid "" +"By default, <application>pkg</application> stores binary packages in a cache " +"directory defined by <envar>PKG_CACHEDIR</envar> in " +"<citerefentry><refentrytitle>pkg.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>. Only copies of the latest installed packages are " +"kept. Older versions of <application>pkg</application> kept all previous " +"packages. To remove these outdated binary packages, run:" +msgstr "" +"預設 <application>pkg</application> 會儲存 Binary 套件在快取目錄定義在 " +"<citerefentry><refentrytitle>pkg.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> 中的 <envar>PKG_CACHEDIR</envar>,只會保留最後安裝" +"的套件複本。較舊版的 <application>pkg</application> 會保留所有先前的套件,若" +"要移除這些過時的 Binary 套件,可執行:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9514 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9516 +msgid "The entire cache may be cleared by running:" +msgstr "使用以下指令可清空全部的快取:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9518 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg clean -a</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:9522 +msgid "Modifying Package Metadata" +msgstr "修改套件 Metadata" + +#. (itstool) path: sect2/para +#: book.translate.xml:9524 +msgid "" +"Software within the FreeBSD Ports Collection can undergo major version " +"number changes. To address this, <application>pkg</application> has a built-" +"in command to update package origins. This can be useful, for example, if " +"<package>lang/php5</package> is renamed to <package>lang/php53</package> so " +"that <package>lang/php5</package> can now represent version <literal>5.4</" +"literal>." +msgstr "" +"在 FreeBSD Ports 套件集中的軟體可能會經歷主要版號的修改,要解決這個問題可使" +"用 <application>pkg</application> 內建的指令來更新套件來源。這非常有用,例如 " +"<package>lang/php5</package> 重新命名為 <package>lang/php53</package> 因此 " +"<package>lang/php5</package> 從此之後代表版本 <literal>5.4</literal>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9533 +msgid "To change the package origin for the above example, run:" +msgstr "要更改上述例子中的套件來源,可執行:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9536 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg set -o lang/php5:lang/php53</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9538 +msgid "" +"As another example, to update <package>lang/ruby18</package> to " +"<package>lang/ruby19</package>, run:" +msgstr "" +"再一個例子,要更新 <package>lang/ruby18</package> 為 <package>lang/ruby19</" +"package>,可執行:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9542 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg set -o lang/ruby18:lang/ruby19</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9544 +msgid "" +"As a final example, to change the origin of the <filename>libglut</filename> " +"shared libraries from <package>graphics/libglut</package> to " +"<package>graphics/freeglut</package>, run:" +msgstr "" +"最後一個例子,要更改 <filename>libglut</filename> 共用程式庫的來源從 " +"<package>graphics/libglut</package> 改成 <package>graphics/freeglut</" +"package> 可執行:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9549 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg set -o graphics/libglut:graphics/freeglut</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:9552 +msgid "" +"When changing package origins, it is important to reinstall packages that " +"are dependent on the package with the modified origin. To force a " +"reinstallation of dependent packages, run:" +msgstr "" +"在更改套件來源之後,很重要的一件事是要重新安裝套件,來讓相依的套件也同時使用" +"修改後的來源。要強制重新安裝相依套件,可執行:" + +#. (itstool) path: note/screen +#: book.translate.xml:9557 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install -Rf <replaceable>graphics/freeglut</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:9563 +msgid "Using the Ports Collection" +msgstr "使用 Ports 套件集" + +#. (itstool) path: sect1/para +#: book.translate.xml:9565 +msgid "" +"The Ports Collection is a set of <filename>Makefiles</filename>, patches, " +"and description files stored in <filename>/usr/ports</filename>. This set of " +"files is used to compile and install applications on FreeBSD. Before an " +"application can be compiled using a port, the Ports Collection must first be " +"installed. If it was not installed during the installation of FreeBSD, use " +"one of the following methods to install it:" +msgstr "" +"Ports 套件集是指一系列儲存在 <filename>/usr/ports</filename> 的 " +"<filename>Makefiles</filename>、修補及描述檔,這一系列檔案用來編譯與安裝在 " +"FreeBSD 上的應用程式。在使用 Port 安裝應用程式前,必須先安裝 Ports 套件集,若" +"未在安裝 FreeBSD 的過程式中安裝,可使用下列其中一種方法來安裝:" + +#. (itstool) path: procedure/title +#: book.translate.xml:9575 +msgid "Portsnap Method" +msgstr "Portsnap 方法" + +#. (itstool) path: procedure/para +#: book.translate.xml:9577 +msgid "" +"The base system of FreeBSD includes <application>Portsnap</application>. " +"This is a fast and user-friendly tool for retrieving the Ports Collection " +"and is the recommended choice for most users. This utility connects to a " +"FreeBSD site, verifies the secure key, and downloads a new copy of the Ports " +"Collection. The key is used to verify the integrity of all downloaded files." +msgstr "" +"FreeBSD 的基礎系統內含 <application>Portsnap</application>,這是一個可用來取" +"得 Ports 套件集簡單又快速的工具,較建議多數使用者使用這個方式。此工具會連線" +"到 FreeBSD 的網站,驗証密鑰,然後下載 Ports 套件集的新複本。該金鑰是要用來檢" +"驗所有已下載檔案的完整性。" + +#. (itstool) path: step/para +#: book.translate.xml:9586 +msgid "" +"To download a compressed snapshot of the Ports Collection into <filename>/" +"var/db/portsnap</filename>:" +msgstr "" +"要下載壓縮後的 Ports 套件集快照 (Snapshot) 到 <filename>/var/db/portsnap</" +"filename>:" + +#. (itstool) path: step/screen +#: book.translate.xml:9590 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portsnap fetch</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:9594 +msgid "" +"When running <application>Portsnap</application> for the first time, extract " +"the snapshot into <filename>/usr/ports</filename>:" +msgstr "" +"當第一次執行 <application>Portsnap</application> 時,要先解壓縮快照到 " +"<filename>/usr/ports</filename>:" + +#. (itstool) path: step/screen +#: book.translate.xml:9598 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portsnap extract</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:9602 +msgid "" +"After the first use of <application>Portsnap</application> has been " +"completed as shown above, <filename>/usr/ports</filename> can be updated as " +"needed by running:" +msgstr "" +"在完成上述第一次使用 <application>Portsnap</application> 的動作之後,往後可隨" +"需要執行以下指令來更新 <filename>/usr/ports</filename> :" + +#. (itstool) path: step/screen +#: book.translate.xml:9607 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>portsnap fetch</userinput>\n" +"<prompt>#</prompt> <userinput>portsnap update</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:9610 +msgid "" +"When using <literal>fetch</literal>, the <literal>extract</literal> or the " +"<literal>update</literal> operation may be run consecutively, like so:" +msgstr "" +"當使用 <literal>fetch</literal> 時也可同時執行 <literal>extract</literal> 或 " +"<literal>update</literal> 如:" + +#. (itstool) path: step/screen +#: book.translate.xml:9614 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portsnap fetch update</userinput>" +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:9619 +msgid "Subversion Method" +msgstr "Subversion 方法" + +#. (itstool) path: procedure/para +#: book.translate.xml:9621 +msgid "" +"If more control over the ports tree is needed or if local changes need to be " +"maintained, <application>Subversion</application> can be used to obtain the " +"Ports Collection. Refer to <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US." +"ISO8859-1/articles/committers-guide/subversion-primer.html\">the Subversion " +"Primer</link> for a detailed description of <application>Subversion</" +"application>." +msgstr "" +"若要取得更多對 Ports 樹的控制,或若有本地的變更需要維護,可以使用 " +"<application>Subversion</application> 來取得 Ports 套件集。請參考 <link " +"xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/committers-guide/" +"subversion-primer.html\">Subversion Primer</link> 來取得 " +"<application>Subversion</application> 的詳細說明。" + +#. (itstool) path: step/para +#: book.translate.xml:9629 +msgid "" +"<application>Subversion</application> must be installed before it can be " +"used to check out the ports tree. If a copy of the ports tree is already " +"present, install <application>Subversion</application> like this:" +msgstr "" +"必須安裝 <application>Subversion</application> 才可用來取出 (Check out) " +"Ports 樹。若已存在 Ports 樹的複本,可使用此方式安裝 <application>Subversion</" +"application>:" + +#. (itstool) path: step/screen +#. (itstool) path: sect2/screen +#: book.translate.xml:9634 book.translate.xml:65535 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/devel/subversion</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:9637 +msgid "" +"If the ports tree is not available, or <application>pkg</application> is " +"being used to manage packages, <application>Subversion</application> can be " +"installed as a package:" +msgstr "" +"若尚無法使用 Ports 樹,或已經使用 <application>pkg</application> 來管理套件," +"可使用套件來安裝 <application>Subversion</application>:" + +#. (itstool) path: step/screen +#. (itstool) path: sect2/screen +#: book.translate.xml:9642 book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install subversion</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:9647 +msgid "Check out a copy of the ports tree:" +msgstr "取出 Ports 樹的複本:" + +#. (itstool) path: step/screen +#. (itstool) path: sect2/screen +#: book.translate.xml:9649 book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>svn checkout https://svn.FreeBSD.org/ports/head /usr/ports</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:9653 +msgid "" +"As needed, update <filename>/usr/ports</filename> after the initial " +"<application>Subversion</application> checkout:" +msgstr "" +"若需要,在第一次 <application>Subversion</application> 取出後可使用以下指令更" +"新 <filename>/usr/ports</filename>:" + +#. (itstool) path: step/screen +#. (itstool) path: sect2/screen +#: book.translate.xml:9657 book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>svn update /usr/ports</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:9661 +msgid "" +"The Ports Collection installs a series of directories representing software " +"categories with each category having a subdirectory for each application. " +"Each subdirectory, also referred to as a ports skeleton, contains a set of " +"files that tell FreeBSD how to compile and install that program. Each port " +"skeleton includes these files and directories:" +msgstr "" +"Ports 套件集會安裝一系列代表軟體分類的目錄,每個分類底下的子目錄代表每隻應用" +"程式。 這些子目錄又稱做 Ports Skeleton,裡面檔案是用來告訴 FreeBSD 如何編譯與" +"安裝該程式,每個 Port Skeleton 會含有以下檔案及目錄:" + +#. (itstool) path: listitem/para +#: book.translate.xml:9670 +msgid "" +"<filename>Makefile</filename>: contains statements that specify how the " +"application should be compiled and where its components should be installed." +msgstr "" +"<filename>Makefile</filename>: 內含用來說明應用程式要如何編譯、要安裝該程式到" +"那的敘述句。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9676 +msgid "" +"<filename>distinfo</filename>: contains the names and checksums of the files " +"that must be downloaded to build the port." +msgstr "" +"<filename>distinfo</filename>: 內含編譯 Port 必須下載的檔案名稱以及校驗碼 " +"(Checksums)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9682 +msgid "" +"<filename>files/</filename>: this directory contains any patches needed for " +"the program to compile and install on FreeBSD. This directory may also " +"contain other files used to build the port." +msgstr "" +"<filename>files/</filename>: 此目錄含有編譯與安裝程式到 FreeBSD 時所需的修補" +"檔。此目錄也可能含有其他用來編譯 Ports 的檔案。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9689 +msgid "" +"<filename>pkg-descr</filename>: provides a more detailed description of the " +"program." +msgstr "<filename>pkg-descr</filename>: 提供程式更詳細的說明。" + +#. (itstool) path: listitem/para +#: book.translate.xml:9694 +msgid "" +"<filename>pkg-plist</filename>: a list of all the files that will be " +"installed by the port. It also tells the ports system which files to remove " +"upon deinstallation." +msgstr "" +"<filename>pkg-plist</filename>: Port 安裝的所有檔案清單,也同時會告訴 Ports " +"系統解除安裝時要移除那一些檔案。" + +#. (itstool) path: sect1/para +#: book.translate.xml:9701 +msgid "" +"Some ports include <filename>pkg-message</filename> or other files to handle " +"special situations. For more details on these files, and on ports in " +"general, refer to the <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US." +"ISO8859-1/books/porters-handbook/index.html\">FreeBSD Porter's Handbook</" +"link>." +msgstr "" +"部份 Ports 含有 <filename>pkg-message</filename> 或其他檔案用來處理特殊情況。" +"要取得有關這些檔案的詳細資訊,以及 Ports 的概要可參考 <link xlink:href=" +"\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/porters-handbook/index.html" +"\">FreeBSD Porter's Handbook</link>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:9706 +msgid "" +"The port does not include the actual source code, also known as a " +"<filename>distfile</filename>. The extract portion of building a port will " +"automatically save the downloaded source to <filename>/usr/ports/distfiles</" +"filename>." +msgstr "" +"Port 中並不含實際的原始碼,即為 <filename>distfile</filename>,在編譯 Port 解" +"壓縮時會自動下載的原始碼到 <filename>/usr/ports/distfiles</filename>。" + +#. (itstool) path: sect2/title +#: book.translate.xml:9712 +msgid "Installing Ports" +msgstr "安裝 Ports" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:9714 +msgid "<primary>ports</primary> <secondary>installing</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9719 +msgid "" +"This section provides basic instructions on using the Ports Collection to " +"install or remove software. The detailed description of available " +"<command>make</command> targets and environment variables is available in " +"<citerefentry><refentrytitle>ports</refentrytitle><manvolnum>7</manvolnum></" +"citerefentry>." +msgstr "" +"下面我們會介紹如何使用 Ports 套件集來安裝、移除軟體的基本用法。 " +"<command>make</command> 可用的目標及環境變數詳細說明可參閱 " +"<citerefentry><refentrytitle>ports</refentrytitle><manvolnum>7</manvolnum></" +"citerefentry>。" + +#. (itstool) path: warning/para +#: book.translate.xml:9725 +msgid "" +"Before compiling any port, be sure to update the Ports Collection as " +"described in the previous section. Since the installation of any third-party " +"software can introduce security vulnerabilities, it is recommended to first " +"check <link xlink:href=\"http://vuxml.freebsd.org/\"/> for known security " +"issues related to the port. Alternately, run <command>pkg audit -F</command> " +"before installing a new port. This command can be configured to " +"automatically perform a security audit and an update of the vulnerability " +"database during the daily security system check. For more information, refer " +"to <citerefentry><refentrytitle>pkg-audit</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>periodic</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" +"在編譯任何 Port 套件前,請先確認已經如前章節所敘述之方法更新 Ports 套件集。安" +"裝任何第三方軟體皆可能會導致安全性漏洞,建議在安裝前先閱讀 <link xlink:href=" +"\"http://vuxml.freebsd.org/\"/> 了解 Port 已知的安全性問題。或者在每次安裝" +"新 Port 前執行 <command>pkg audit -F</command>。此指令可以設定在每日系統安全" +"性檢查時自動完成安全性稽查以及更新漏洞資料庫。要取得更多資訊,請參考 " +"<citerefentry><refentrytitle>pkg-audit</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 及 <citerefentry><refentrytitle>periodic</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9739 +msgid "" +"Using the Ports Collection assumes a working Internet connection. It also " +"requires superuser privilege." +msgstr "" +"使用 Ports 套件集會假設您擁有可正常連線的網路,同時也會需要超級使用者的權限。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9742 +msgid "" +"To compile and install the port, change to the directory of the port to be " +"installed, then type <command>make install</command> at the prompt. Messages " +"will indicate the progress:" +msgstr "" +"要編譯並安裝 Port,需切換目錄到要安裝的 Port 底下,然後輸入 <command>make " +"install</command>,訊息中會顯示安裝的進度:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9747 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/sysutils/lsof</userinput>\n" +"<prompt>#</prompt> <userinput>make install</userinput>\n" +">> lsof_4.88D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +">> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.\n" +"===> Extracting for lsof-4.88\n" +"...\n" +"[extraction output snipped]\n" +"...\n" +">> Checksum OK for lsof_4.88D.freebsd.tar.gz.\n" +"===> Patching for lsof-4.88.d,8\n" +"===> Applying FreeBSD patches for lsof-4.88.d,8\n" +"===> Configuring for lsof-4.88.d,8\n" +"...\n" +"[configure output snipped]\n" +"...\n" +"===> Building for lsof-4.88.d,8\n" +"...\n" +"[compilation output snipped]\n" +"...\n" +"\n" +"===> Installing for lsof-4.88.d,8\n" +"...\n" +"[installation output snipped]\n" +"...\n" +"===> Generating temporary packing list\n" +"===> Compressing manual pages for lsof-4.88.d,8\n" +"===> Registering installation for lsof-4.88.d,8\n" +"===> SECURITY NOTE:\n" +" This port has installed the following binaries which execute with\n" +" increased privileges.\n" +"/usr/local/sbin/lsof\n" +"<prompt>#</prompt>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9780 +msgid "" +"Since <command>lsof</command> is a program that runs with increased " +"privileges, a security warning is displayed as it is installed. Once the " +"installation is complete, the prompt will be returned." +msgstr "" +"<command>lsof</command> 是需要進階權限才有辦法執行的程式,因此當該程式安裝完" +"成時會顯示安全性警告。一旦安裝完成便會顯示指令提示。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9785 +msgid "" +"Some shells keep a cache of the commands that are available in the " +"directories listed in the <envar>PATH</envar> environment variable, to speed " +"up lookup operations for the executable file of these commands. Users of the " +"<command>tcsh</command> shell should type <command>rehash</command> so that " +"a newly installed command can be used without specifying its full path. Use " +"<command>hash -r</command> instead for the <command>sh</command> shell. " +"Refer to the documentation for the shell for more information." +msgstr "" +"有些 Shell 會將 <envar>PATH</envar> 環境變數中所列目錄中可用的指令做快取,來" +"增加在執行指這些指令時的查詢速度。<command>tcsh</command> Shell 的使用者應輸" +"入 <command>rehash</command> 來讓新安裝的指令不須指定完整路徑便可使用。若在 " +"<command>sh</command> Shell 則使用 <command>hash -r</command>。請參考 Shell " +"的說明文件以取得更多資訊。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9796 +msgid "" +"During installation, a working subdirectory is created which contains all " +"the temporary files used during compilation. Removing this directory saves " +"disk space and minimizes the chance of problems later when upgrading to the " +"newer version of the port:" +msgstr "" +"安裝過程中會建立工作用的子目錄用來儲存編譯時暫存的檔案。可移除此目錄來節省磁" +"碟空間並漸少往後升級新版 Port 時造成問題:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9802 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>make clean</userinput>\n" +"===> Cleaning for lsof-88.d,8\n" +"<prompt>#</prompt>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:9807 +msgid "" +"To save this extra step, instead use <command>make install clean</command> " +"when compiling the port." +msgstr "" +"若想要少做這個額外的步驟,可以編譯 Port 時使用 <command>make install clean</" +"command>。" + +#. (itstool) path: sect3/title +#: book.translate.xml:9812 +msgid "Customizing Ports Installation" +msgstr "自訂 Ports 安裝" + +#. (itstool) path: sect3/para +#: book.translate.xml:9814 +msgid "" +"Some ports provide build options which can be used to enable or disable " +"application components, provide security options, or allow for other " +"customizations. Examples include <package>www/firefox</package>, " +"<package>security/gpgme</package>, and <package>mail/sylpheed-claws</" +"package>. If the port depends upon other ports which have configurable " +"options, it may pause several times for user interaction as the default " +"behavior is to prompt the user to select options from a menu. To avoid this, " +"run <command>make config-recursive</command> within the port skeleton to do " +"this configuration in one batch. Then, run <command>make install [clean]</" +"command> to compile and install the port." +msgstr "" +"部份 Ports 提供編譯選項,可用來開啟或關閉應用程式中的元件、安全選項、或其他允" +"許自訂的項目。這類的應用程式例子包括 <package>www/firefox</package>, " +"<package>security/gpgme</package> 以及 <package>mail/sylpheed-claws</" +"package>。若 Port 相依的其他 Port 有可設定的選項時,預設的模式會提示使用者選" +"擇選單中的選項,這可能會讓安裝的過程暫停讓使用者操作數次。要避免這個情況,可" +"在 Port skeleton 中執行 <command>make config-recursive</command> 來一次設定所" +"有選項。然後再執行 <command>make install [clean]</command> 編譯與安裝該 " +"Port。" + +#. (itstool) path: para/buildtarget +#: book.translate.xml:9831 +msgid "config-recursive" +msgstr "" + +#. (itstool) path: para/buildtarget +#: book.translate.xml:9833 +msgid "all-depends-list" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:9830 +msgid "" +"When using <_:buildtarget-1/>, the list of ports to configure are gathered " +"by the <_:buildtarget-2/> target. It is recommended to run <command>make " +"config-recursive</command> until all dependent ports options have been " +"defined, and ports options screens no longer appear, to be certain that all " +"dependency options have been configured." +msgstr "" +"使用 <_:buildtarget-1/> 時,會使用 <_:buildtarget-2/> Target 來收集所有要設" +"定 Port 清單。建議執行 <command>make config-recursive</command> 直到所有相依" +"的 Port 選項都已定義,直到 Ports 的選項畫面不會再出現,來確定所有相依的選項都" +"已經設定。" + +#. (itstool) path: sect3/para +#: book.translate.xml:9841 +msgid "" +"There are several ways to revisit a port's build options menu in order to " +"add, remove, or change these options after a port has been built. One method " +"is to <command>cd</command> into the directory containing the port and type " +"<command>make config</command>. Another option is to use <command>make " +"showconfig</command>. Another option is to execute <command>make rmconfig</" +"command> which will remove all selected options and allow you to start over. " +"All of these options, and others, are explained in great detail in " +"<citerefentry><refentrytitle>ports</refentrytitle><manvolnum>7</manvolnum></" +"citerefentry>." +msgstr "" +"有許多方式可以重新進入 Port 的編譯選項清單,以便在編譯 Port 之後加入、移除或" +"更改這些選項。方法之一是 <command>cd</command> 進入含有 Port 的目錄並輸入 " +"<command>make config</command>。還有另一個方法是使用 <command>make " +"showconfig</command>。最後一個方法是執行 <command>make rmconfig</command> 來" +"移除所有曾選擇過的選項,讓您能夠重新設定。這些方法在 " +"<citerefentry><refentrytitle>ports</refentrytitle><manvolnum>7</manvolnum></" +"citerefentry> 中都有詳細的說明。" + +#. (itstool) path: sect3/para +#: book.translate.xml:9853 +msgid "" +"The ports system uses <citerefentry><refentrytitle>fetch</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> to download the source " +"files, which supports various environment variables. The " +"<envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>, and " +"<envar>FTP_PASSWORD</envar> variables may need to be set if the FreeBSD " +"system is behind a firewall or FTP/HTTP proxy. See " +"<citerefentry><refentrytitle>fetch</refentrytitle><manvolnum>3</manvolnum></" +"citerefentry> for the complete list of supported variables." +msgstr "" +"Ports 系統使用 <citerefentry><refentrytitle>fetch</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> 來下載檔案,它支援許多" +"的環境變數可設定。若 FreeBSD 系統在防火牆或 FTP/HTTP 代理伺服器後面,可以設" +"定 <envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar> 以及 " +"<envar>FTP_PASSWORD</envar> 變數。請參考 <citerefentry><refentrytitle>fetch</" +"refentrytitle><manvolnum>3</manvolnum></citerefentry> 取得完整支援的變數清" +"單。" + +#. (itstool) path: sect3/para +#: book.translate.xml:9861 +msgid "" +"For users who cannot be connected to the Internet all the time, " +"<command>make fetch</command> can be run within <filename>/usr/ports</" +"filename>, to fetch all distfiles, or within a category, such as <filename>/" +"usr/ports/net</filename>, or within the specific port skeleton. Note that if " +"a port has any dependencies, running this command in a category or ports " +"skeleton will <emphasis>not</emphasis> fetch the distfiles of ports from " +"another category. Instead, use <command>make fetch-recursive</command> to " +"also fetch the distfiles for all the dependencies of a port." +msgstr "" +"對於那些無法一直連線到網際網路的使用者,可在 <filename>/usr/ports</filename> " +"下執行 <command>make fetch</command> 來下載所有的 distfiles,或是可在某個分類" +"的目錄中,例如 <filename>/usr/ports/net</filename>,或指定的 Port Skeleton 中" +"執行。要注意的是,若 Port 有任何的相依,在分類或 Ports Skeleton 中執行此指令" +"並 <emphasis>不會</emphasis> 下載相依在其他分類的 Port distfiles。可使用 " +"<command>make fetch-recursive</command> 來下載所有相依 Port 的 distfiles。" + +#. (itstool) path: sect3/para +#: book.translate.xml:9873 +msgid "" +"In rare cases, such as when an organization has a local distfiles " +"repository, the <varname>MASTER_SITES</varname> variable can be used to " +"override the download locations specified in the <filename>Makefile</" +"filename>. When using, specify the alternate location:" +msgstr "" +"在部份少數情況,例如當公司或組織有自己的本地 distfiles 檔案庫,可使用 " +"<varname>MASTER_SITES</varname> 變數來覆蓋在 <filename>Makefile</filename> 中" +"指定的下載位址。當要指定替代的位址時可:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:9879 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>make MASTER_SITE_OVERRIDE= \\\n" +"<replaceable>ftp://ftp.organization.org/pub/FreeBSD/ports/distfiles/</replaceable> fetch</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:9883 +msgid "" +"The <varname>WRKDIRPREFIX</varname> and <varname>PREFIX</varname> variables " +"can override the default working and target directories. For example:" +msgstr "" +"也可使用 <varname>WRKDIRPREFIX</varname> 及 <varname>PREFIX</varname> 變數來" +"覆蓋預設的工作及目標目錄。例如:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:9887 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make WRKDIRPREFIX=/usr/home/example/ports install</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:9889 +msgid "" +"will compile the port in <filename>/usr/home/example/ports</filename> and " +"install everything under <filename>/usr/local</filename>." +msgstr "" +"會編譯在 <filename>/usr/home/example/ports</filename> 的 Port 並安裝所有東西" +"到 <filename>/usr/local</filename> 下。" + +#. (itstool) path: sect3/screen +#: book.translate.xml:9893 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make PREFIX=/usr/home/example/local install</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:9895 +msgid "" +"will compile the port in <filename>/usr/ports</filename> and install it in " +"<filename>/usr/home/example/local</filename>. And:" +msgstr "" +"會編譯在 <filename>/usr/ports</filename> Port 並安裝到 <filename>/usr/home/" +"example/local</filename>。然後:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:9899 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make WRKDIRPREFIX=../ports PREFIX=../local install</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:9901 +msgid "will combine the two." +msgstr "來同時設定工作及目標目錄。" + +#. (itstool) path: sect3/para +#: book.translate.xml:9903 +msgid "" +"These can also be set as environmental variables. Refer to the manual page " +"for your shell for instructions on how to set an environmental variable." +msgstr "" +"這些變數也可做為環境變數設定,請參考您使用的 Shell 操作手冊來取得如何設定環境" +"變數的說明。" + +#. (itstool) path: sect2/title +#: book.translate.xml:9910 +msgid "Removing Installed Ports" +msgstr "移除已安裝的 Ports" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:9912 +msgid "<primary>ports</primary> <secondary>removing</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9917 +msgid "" +"Installed ports can be uninstalled using <command>pkg delete</command>. " +"Examples for using this command can be found in the " +"<citerefentry><refentrytitle>pkg-delete</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> manual page." +msgstr "" +"安裝的 Ports 可以使用 <command>pkg delete</command> 解除安裝。 使用這個指令的" +"範例可以在 <citerefentry><refentrytitle>pkg-delete</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 操作手冊找到。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9921 +msgid "" +"Alternately, <command>make deinstall</command> can be run in the port's " +"directory:" +msgstr "或者,可在 Port 的目錄下執行 <command>make deinstall</command>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9924 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/sysutils/lsof</userinput>\n" +"<userinput>make deinstall</userinput>\n" +"===> Deinstalling for sysutils/lsof\n" +"===> Deinstalling\n" +"Deinstallation has been requested for the following 1 packages:\n" +"\n" +"\tlsof-4.88.d,8\n" +"\n" +"The deinstallation will free 229 kB\n" +"[1/1] Deleting lsof-4.88.d,8... done" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9935 +msgid "" +"It is recommended to read the messages as the port is uninstalled. If the " +"port has any applications that depend upon it, this information will be " +"displayed but the uninstallation will proceed. In such cases, it may be " +"better to reinstall the application in order to prevent broken dependencies." +msgstr "" +"建議閱讀 Port 解除安裝後的訊息,若有任何相依該 Port 的應用程式,這些資訊會被" +"顯示出來,但解除安裝的程序仍會繼續。在這種情況下最好重新安裝應用程式來避免破" +"壞相依性。" + +#. (itstool) path: sect2/title +#: book.translate.xml:9944 +msgid "Upgrading Ports" +msgstr "升級 Ports" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:9946 +msgid "<primary>ports</primary> <secondary>upgrading</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9951 +msgid "" +"Over time, newer versions of software become available in the Ports " +"Collection. This section describes how to determine which software can be " +"upgraded and how to perform the upgrade." +msgstr "" +"隨著時間推移,Ports 套件集中會有新版的軟體可用。本節將說明如何檢查是否有可以" +"升級的軟體及如何升級。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9956 +msgid "" +"To determine if newer versions of installed ports are available, ensure that " +"the latest version of the ports tree is installed, using the updating " +"command described in either <xref linkend=\"ports-using-portsnap-method\"/> " +"or <xref linkend=\"ports-using-subversion-method\"/>. On FreeBSD 10 and " +"later, or if the system has been converted to <application>pkg</" +"application>, the following command will list the installed ports which are " +"out of date:" +msgstr "" +"要檢查已安裝 Ports 是否有新版可用,請先確定已安裝最新版本的 Ports 樹,使用 " +"<xref linkend=\"ports-using-portsnap-method\"/> 或 <xref linkend=\"ports-" +"using-subversion-method\"/> 中說明的指令來更新。在 FreeBSD 10 與更新的版本," +"或若套件系統已轉換為 <application>pkg</application>,可以使用下列指令列出已經" +"安裝的 Ports 中有那些已過時:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9965 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg version -l \"<\"</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:9967 +msgid "" +"For FreeBSD 9.<replaceable>X</replaceable> and lower, the following command " +"will list the installed ports that are out of date:" +msgstr "" +"在 FreeBSD 9.<replaceable>X</replaceable> 與較舊的版本,可以使用下列指令列出" +"已經安裝的 Ports 中有那些已過時:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:9971 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg_version -l \"<\"</userinput>" +msgstr "" + +#. (itstool) path: important/para +#: book.translate.xml:9974 +msgid "" +"Before attempting an upgrade, read <filename>/usr/ports/UPDATING</filename> " +"from the top of the file to the date closest to the last time ports were " +"upgraded or the system was installed. This file describes various issues and " +"additional steps users may encounter and need to perform when updating a " +"port, including such things as file format changes, changes in locations of " +"configuration files, or any incompatibilities with previous versions. Make " +"note of any instructions which match any of the ports that need upgrading " +"and follow these instructions when performing the upgrade." +msgstr "" +"在嘗試升級之前,請先從檔首閱讀 <filename>/usr/ports/UPDATING</filename> 來取" +"得最近有那些 Ports 已升級或系統已安裝。這個檔案中會說明各種問題及在升級 Port " +"時可能會需要使用者執行的額外步驟,例如檔案格式更改、設定檔位置更改、或任何與" +"先前版本不相容的問題。留意那些與您要升級 Ports 相關的指示,並依照這些指示執行" +"升級。" + +#. (itstool) path: sect2/para +#: book.translate.xml:9988 +msgid "" +"To perform the actual upgrade, use either <application>Portmaster</" +"application> or <application>Portupgrade</application>." +msgstr "" +"要執行實際的升級,可使用 <application>Portmaster</application> 或 " +"<application>Portupgrade</application>。" + +#. (itstool) path: sect3/title +#: book.translate.xml:9993 +msgid "Upgrading Ports Using <application>Portmaster</application>" +msgstr "使用 <application>Portmaster</application> 升級 Ports" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:9996 +msgid "<primary>portmaster</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10000 +msgid "" +"<package>ports-mgmt/portmaster</package> is a very small utility for " +"upgrading installed ports. It is designed to use the tools installed with " +"FreeBSD without depending on other ports or databases. To install this " +"utility as a port:" +msgstr "" +"<package>ports-mgmt/portmaster</package> 是可用來升級已安裝 Port 的小巧工具," +"它可不需要相依其他 Ports 或資料庫便可在 FreeBSD 使用,要使用 Port 安裝此工具" +"可:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:10007 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/ports-mgmt/portmaster</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10010 +msgid "<application>Portmaster</application> defines four categories of ports:" +msgstr "<application>Portmaster</application> 將 Ports 定義成四種類型:" + +#. (itstool) path: listitem/para +#: book.translate.xml:10015 +msgid "" +"Root port: has no dependencies and is not a dependency of any other ports." +msgstr "根 Port:沒有相依且也不被任何其他 Ports 相依。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10020 +msgid "Trunk port: has no dependencies, but other ports depend upon it." +msgstr "主幹 Port:沒有相依,但被其他 Ports 相依。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10025 +msgid "Branch port: has dependencies and other ports depend upon it." +msgstr "分支 Port:有相依,且其被其他 Ports 相依。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10030 +msgid "Leaf port: has dependencies but no other ports depend upon it." +msgstr "枝 Port:有相依,但沒有被其他 Ports 相依。" + +#. (itstool) path: sect3/para +#: book.translate.xml:10035 +msgid "To list these categories and search for updates:" +msgstr "要列出這幾個分類並搜尋是否有新版:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:10037 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>portmaster -L</userinput>\n" +"===>>> Root ports (No dependencies, not depended on)\n" +"===>>> ispell-3.2.06_18\n" +"===>>> screen-4.0.3\n" +" ===>>> New version available: screen-4.0.3_1\n" +"===>>> tcpflow-0.21_1\n" +"===>>> 7 root ports\n" +"...\n" +"===>>> Branch ports (Have dependencies, are depended on)\n" +"===>>> apache22-2.2.3\n" +" ===>>> New version available: apache22-2.2.8\n" +"...\n" +"===>>> Leaf ports (Have dependencies, not depended on)\n" +"===>>> automake-1.9.6_2\n" +"===>>> bash-3.1.17\n" +" ===>>> New version available: bash-3.2.33\n" +"...\n" +"===>>> 32 leaf ports\n" +"\n" +"===>>> 137 total installed ports\n" +" ===>>> 83 have new versions available" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10059 +msgid "This command is used to upgrade all outdated ports:" +msgstr "此指令用來升級所有過時的 Port:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:10062 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portmaster -a</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:10065 +msgid "" +"By default, <application>Portmaster</application> makes a backup package " +"before deleting the existing port. If the installation of the new version is " +"successful, <application>Portmaster</application> deletes the backup. Using " +"<option>-b</option> instructs <application>Portmaster</application> not to " +"automatically delete the backup. Adding <option>-i</option> starts " +"<application>Portmaster</application> in interactive mode, prompting for " +"confirmation before upgrading each port. Many other options are available. " +"Read through the manual page for <citerefentry vendor=\"ports" +"\"><refentrytitle>portmaster</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for details regarding their usage." +msgstr "" +"預設 <application>Portmaster</application> 會在刪除已存在的 Port 前備份套件," +"若成功安裝新版 <application>Portmaster</application> 會刪除該備份。使用 " +"<option>-b</option> 來讓 <application>Portmaster</application> 不會自動刪除備" +"份。加入 <option>-i</option> 可啟動 <application>Portmaster</application> 的" +"互動模式,會在升級每個 Port 前提示訊息。尚有許多可用的其他選項,請閱讀 " +"<citerefentry vendor=\"ports\"><refentrytitle>portmaster</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 的操作手冊來取得詳細的" +"用法。" + +#. (itstool) path: sect3/para +#: book.translate.xml:10079 +msgid "" +"If errors are encountered during the upgrade process, add <option>-f</" +"option> to upgrade and rebuild all ports:" +msgstr "" +"若升級的過程發生錯誤,可加入 <option>-f</option> 來升級並重新編譯所有 Ports:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:10083 book.translate.xml:44408 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portmaster -af</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10085 +msgid "" +"<application>Portmaster</application> can also be used to install new ports " +"on the system, upgrading all dependencies before building and installing the " +"new port. To use this function, specify the location of the port in the " +"Ports Collection:" +msgstr "" +"<application>Portmaster</application> 也可用來安裝新的 Ports 到系統,在編譯及" +"安裝新 Port 前升級所有相依模組。要使用這個功能,要指定 Port 位於 Ports 套件集" +"中的位置:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:10091 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portmaster <replaceable>shells/bash</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:10095 +msgid "Upgrading Ports Using Portupgrade" +msgstr "使用 Portupgrade 升級 Ports" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:10097 +msgid "<primary>portupgrade</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10101 +msgid "" +"Another utility that can be used to upgrade ports is " +"<application>Portupgrade</application>, which is available as the " +"<package>ports-mgmt/portupgrade</package> package or port. This utility " +"installs a suite of applications which can be used to manage ports. However, " +"it is dependent upon Ruby. To install the port:" +msgstr "" +"另一個可以用來升級 Ports 的工具是 <application>Portupgrade</application>,可" +"在 <package>ports-mgmt/portupgrade</package> 取得套件或 Ports,此工具會安裝一" +"套可以用來管理 Ports 的應用程式,但是它需要相依 Ruby。要安裝該 Port:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:10108 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/ports-mgmt/portupgrade</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10111 +msgid "" +"Before performing an upgrade using this utility, it is recommended to scan " +"the list of installed ports using <command>pkgdb -F</command> and to fix all " +"the inconsistencies it reports." +msgstr "" +"在執行升級之前使用此工具,建議使用 <command>pkgdb -F</command> 掃描已安裝的 " +"Ports 並修正該指令回報的所有資訊不一致的套件。" + +#. (itstool) path: sect3/para +#: book.translate.xml:10116 +msgid "" +"To upgrade all the outdated ports installed on the system, use " +"<command>portupgrade -a</command>. Alternately, include <option>-i</option> " +"to be asked for confirmation of every individual upgrade:" +msgstr "" +"要升級所有安裝在系統上過時的 Ports,可使用 <command>portupgrade -a</" +"command>,或者加上 <option>-i</option> 會在每個套件升級時詢問確認:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:10121 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portupgrade -ai</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10123 +msgid "" +"To upgrade only a specified application instead of all available ports, use " +"<command>portupgrade <replaceable>pkgname</replaceable></command>. It is " +"very important to include <option>-R</option> to first upgrade all the ports " +"required by the given application:" +msgstr "" +"要升級指定的應用程式而非所有可用 Ports 可使用 <command>portupgrade " +"<replaceable>pkgname</replaceable></command>,非常重要的是,要加上 <option>-" +"R</option> 來先升級指定應用程式所有相依的 Ports:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:10129 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portupgrade -R firefox</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10131 +msgid "" +"If <option>-P</option> is included, <application>Portupgrade</application> " +"searches for available packages in the local directories listed in " +"<envar>PKG_PATH</envar>. If none are available locally, it then fetches " +"packages from a remote site. If packages can not be found locally or fetched " +"remotely, <application>Portupgrade</application> will use ports. To avoid " +"using ports entirely, specify <option>-PP</option>. This last set of options " +"tells <application>Portupgrade</application> to abort if no packages are " +"available:" +msgstr "" +"若使用 <option>-P</option>,<application>Portupgrade</application> 會先在 " +"<envar>PKG_PATH</envar> 清單中的本地目錄中搜尋可用的套件。若本地沒有可用的套" +"件,則會從遠端下載。若套件無法在本地或遠端找到,<application>Portupgrade</" +"application> 則會使用 Ports 來安裝。要避免完全使用 Ports 安裝,可使用 " +"<option>-PP</option>,這個選項會告訴 <application>Portupgrade</application> " +"若沒有套件可用時放棄安裝:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:10144 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portupgrade -PP gnome3</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10146 +msgid "" +"To just fetch the port distfiles, or packages, if <option>-P</option> is " +"specified, without building or installing anything, use <option>-F</option>. " +"For further information on all of the available switches, refer to the " +"manual page for <command>portupgrade</command>." +msgstr "" +"若只想要下載 Port distfiles 或套件,使用 <option>-P</option> 參數。若不要編譯" +"或安裝任何東西,使用 <option>-F</option>。請參考 <command>portupgrade</" +"command> 的操作手冊來取得所有可用選項的更多資訊。" + +#. (itstool) path: sect2/title +#: book.translate.xml:10155 +msgid "Ports and Disk Space" +msgstr "Ports 與磁碟空間" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:10157 +msgid "<primary>ports</primary> <secondary>disk-space</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10162 +msgid "" +"Using the Ports Collection will use up disk space over time. After building " +"and installing a port, running <command>make clean</command> within the " +"ports skeleton will clean up the temporary <filename>work</filename> " +"directory. If <application>Portmaster</application> is used to install a " +"port, it will automatically remove this directory unless <option>-K</option> " +"is specified. If <application>Portupgrade</application> is installed, this " +"command will remove all <filename>work</filename> directories found within " +"the local copy of the Ports Collection:" +msgstr "" +"使用 Ports 套件集會隨著時間消耗磁碟空間。在編譯與安裝 Port 完之後,在 Ports " +"Skeleton 中執行 <command>make clean</command> 可清除暫存的 <filename>work</" +"filename> 目錄。若使用 <application>Portmaster</application> 來安裝 Port,則" +"會自動移除該目錄,除非使用 <option>-K</option>。若有安裝 " +"<application>Portupgrade</application>,此指令將會移除所有在 Ports 套件集的本" +"地複本中找到的 <filename>work</filename> 目錄:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10173 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portsclean -C</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10175 +msgid "" +"In addition, a lot of out-dated source distribution files will collect in " +"<filename>/usr/ports/distfiles</filename> over time. If " +"<application>Portupgrade</application> is installed, this command will " +"delete all the distfiles that are no longer referenced by any ports:" +msgstr "" +"除此之外,許多過時的原始碼發行檔案會儲存在 <filename>/usr/ports/distfiles</" +"filename>。若有安裝 <application>Portupgrade</application>,此指令將會刪除所" +"有不再被任何 Ports 所引用的 distfiles:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10181 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portsclean -D</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10183 +msgid "" +"To use <application>Portupgrade</application> to remove all distfiles not " +"referenced by any port currently installed on the system:" +msgstr "" +"要使用 <application>Portupgrade</application> 來移除所有未被任何安裝在系統上" +"的 Port 所引用的 distfiles:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10187 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portsclean -DD</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10189 +msgid "If <application>Portmaster</application> is installed, use:" +msgstr "若有安裝 <application>Portmaster</application>,則可使用:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10192 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portmaster --clean-distfiles</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10194 +msgid "" +"By default, this command is interactive and will prompt the user to confirm " +"if a distfile should be deleted." +msgstr "預設這個指令會互動的方式詢問使用者確認是否要刪除 distfile。" + +#. (itstool) path: sect2/para +#: book.translate.xml:10197 +msgid "" +"In addition to these commands, the <package>ports-mgmt/pkg_cutleaves</" +"package> package or port automates the task of removing installed ports that " +"are no longer needed." +msgstr "" +"除了以上指令外,<package>ports-mgmt/pkg_cutleaves</package> 套件或 Port 可自" +"動移除不再需要使用的 Ports。" + +#. (itstool) path: sect1/title +#: book.translate.xml:10205 +msgid "Building Packages with <application>Poudriere</application>" +msgstr "使用 <application>Poudriere</application> 編譯套件" + +#. (itstool) path: sect1/para +#: book.translate.xml:10208 +msgid "" +"<application>Poudriere</application> is a <acronym>BSD</acronym>-licensed " +"utility for creating and testing FreeBSD packages. It uses FreeBSD jails to " +"set up isolated compilation environments. These jails can be used to build " +"packages for versions of FreeBSD that are different from the system on which " +"it is installed, and also to build packages for i386 if the host is an amd64 " +"system. Once the packages are built, they are in a layout identical to the " +"official mirrors. These packages are usable by " +"<citerefentry><refentrytitle>pkg</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and other package management tools." +msgstr "" +"<application>Poudriere</application> 是一個使用 <acronym>BSD</acronym> 授權條" +"款用來建立與測試 FreeBSD 套件的工具。它使用 FreeBSD Jail 來建置獨立的編譯環" +"境,這些 Jail 可以用來編譯與目前所在系統不同 FreeBSD 版本的套件,也同樣可以在" +"主機為 amd64 的系統上編譯供 i386 使用的套件。套件編譯完成後的目錄配置會與官方" +"鏡像站完全相同。這些套件可由 <citerefentry><refentrytitle>pkg</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 及其他套件管理工具使" +"用。" + +#. (itstool) path: sect1/para +#: book.translate.xml:10219 +msgid "" +"<application>Poudriere</application> is installed using the <package role=" +"\"port\">ports-mgmt/poudriere</package> package or port. The installation " +"includes a sample configuration file <filename>/usr/local/etc/poudriere.conf." +"sample</filename>. Copy this file to <filename>/usr/local/etc/poudriere." +"conf</filename>. Edit the copied file to suit the local configuration." +msgstr "" +"<application>Poudriere</application> 可使用 <package role=\"port\">ports-" +"mgmt/poudriere</package> 套件或 Ports 安裝。安裝完成後會有一個範例的設定檔 " +"<filename>/usr/local/etc/poudriere.conf.sample</filename>。複製此檔案到 " +"<filename>/usr/local/etc/poudriere.conf</filename>,編輯複製的檔案來配合本地" +"的設定。" + +#. (itstool) path: sect1/para +#: book.translate.xml:10227 +msgid "" +"While <acronym>ZFS</acronym> is not required on the system running " +"<application>poudriere</application>, it is beneficial. When <acronym>ZFS</" +"acronym> is used, <varname>ZPOOL</varname> must be specified in <filename>/" +"usr/local/etc/poudriere.conf</filename> and <varname>FREEBSD_HOST</varname> " +"should be set to a nearby mirror. Defining <varname>CCACHE_DIR</varname> " +"enables the use of <package role=\"port\">devel/ccache</package> to cache " +"compilation and reduce build times for frequently-compiled code. It may be " +"convenient to put <application>poudriere</application> datasets in an " +"isolated tree mounted at <filename>/poudriere</filename>. Defaults for the " +"other configuration values are adequate." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:10241 +msgid "" +"The number of processor cores detected is used to define how many builds " +"should run in parallel. Supply enough virtual memory, either with " +"<acronym>RAM</acronym> or swap space. If virtual memory runs out, compiling " +"jails will stop and be torn down, resulting in weird error messages." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:10248 +msgid "Initialize Jails and Port Trees" +msgstr "初始化 Jails 與 Port 樹" + +#. (itstool) path: sect2/para +#: book.translate.xml:10250 +msgid "" +"After configuration, initialize <application>poudriere</application> so that " +"it installs a jail with the required FreeBSD tree and a ports tree. Specify " +"a name for the jail using <option>-j</option> and the FreeBSD version with " +"<option>-v</option>. On systems running FreeBSD/amd64, the architecture can " +"be set with <option>-a</option> to either <literal>i386</literal> or " +"<literal>amd64</literal>. The default is the architecture shown by " +"<command>uname</command>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10260 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>poudriere jail -c -j <replaceable>10amd64</replaceable> -v <replaceable>10.0-RELEASE</replaceable></userinput>\n" +"====>> Creating 10amd64 fs... done\n" +"====>> Fetching base.txz for FreeBSD 10.0-RELEASE amd64\n" +"/poudriere/jails/10amd64/fromftp/base.txz 100% of 59 MB 1470 kBps 00m42s\n" +"====>> Extracting base.txz... done\n" +"====>> Fetching src.txz for FreeBSD 10.0-RELEASE amd64\n" +"/poudriere/jails/10amd64/fromftp/src.txz 100% of 107 MB 1476 kBps 01m14s\n" +"====>> Extracting src.txz... done\n" +"====>> Fetching games.txz for FreeBSD 10.0-RELEASE amd64\n" +"/poudriere/jails/10amd64/fromftp/games.txz 100% of 865 kB 734 kBps 00m01s\n" +"====>> Extracting games.txz... done\n" +"====>> Fetching lib32.txz for FreeBSD 10.0-RELEASE amd64\n" +"/poudriere/jails/10amd64/fromftp/lib32.txz 100% of 14 MB 1316 kBps 00m12s\n" +"====>> Extracting lib32.txz... done\n" +"====>> Cleaning up... done\n" +"====>> Jail 10amd64 10.0-RELEASE amd64 is ready to be used" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10277 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>poudriere ports -c -p <replaceable>local</replaceable></userinput>\n" +"====>> Creating local fs... done\n" +"====>> Extracting portstree \"local\"...\n" +"Looking up portsnap.FreeBSD.org mirrors... 7 mirrors found.\n" +"Fetching public key from ec2-eu-west-1.portsnap.freebsd.org... done.\n" +"Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done.\n" +"Fetching snapshot metadata... done.\n" +"Fetching snapshot generated at Tue Feb 11 01:07:15 CET 2014:\n" +"94a3431f0ce567f6452ffde4fd3d7d3c6e1da143efec76100% of 69 MB 1246 kBps 00m57s\n" +"Extracting snapshot... done.\n" +"Verifying snapshot integrity... done.\n" +"Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done.\n" +"Fetching snapshot metadata... done.\n" +"Updating from Tue Feb 11 01:07:15 CET 2014 to Tue Feb 11 16:05:20 CET 2014.\n" +"Fetching 4 metadata patches... done.\n" +"Applying metadata patches... done.\n" +"Fetching 0 metadata files... done.\n" +"Fetching 48 patches.\n" +"(48/48) 100.00% done.\n" +"done.\n" +"Applying patches...\n" +"done.\n" +"Fetching 1 new ports or files... done.\n" +"/poudriere/ports/tester/CHANGES\n" +"/poudriere/ports/tester/COPYRIGHT\n" +"\n" +"[...]\n" +"\n" +"Building new INDEX files... done." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10307 +msgid "" +"On a single computer, <application>poudriere</application> can build ports " +"with multiple configurations, in multiple jails, and from different port " +"trees. Custom configurations for these combinations are called " +"<emphasis>sets</emphasis>. See the CUSTOMIZATION section of <citerefentry " +"vendor=\"ports\"><refentrytitle>poudriere</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for details after <package>ports-mgmt/poudriere</" +"package> or <package>ports-mgmt/poudriere-devel</package> is installed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10316 +msgid "" +"The basic configuration shown here puts a single jail-, port-, and set-" +"specific <filename>make.conf</filename> in <filename>/usr/local/etc/" +"poudriere.d</filename>. The filename in this example is created by combining " +"the jail name, port name, and set name: <filename><replaceable>10amd64-local-" +"workstation</replaceable>-make.conf</filename>. The system <filename>make." +"conf</filename> and this new file are combined at build time to create the " +"<filename>make.conf</filename> used by the build jail." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10326 +msgid "" +"Packages to be built are entered in <filename><replaceable>10amd64-local-" +"workstation</replaceable>-pkglist</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:10329 +#, no-wrap +msgid "" +"editors/emacs\n" +"devel/git\n" +"ports-mgmt/pkg\n" +"..." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10334 +msgid "Options and dependencies for the specified ports are configured:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10337 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>poudriere options -j <replaceable>10amd64</replaceable> -p <replaceable>local</replaceable> -z <replaceable>workstation</replaceable> -f <replaceable>10amd64-local-workstation-pkglist</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10339 +msgid "Finally, packages are built and a package repository is created:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10342 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>poudriere bulk -j <replaceable>10amd64</replaceable> -p <replaceable>local</replaceable> -z <replaceable>workstation</replaceable> -f <replaceable>10amd64-local-workstation-pkglist</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10344 +msgid "" +"<keycombo action=\"simul\"><keycap>Ctrl</keycap><keycap>t</keycap></" +"keycombo> displays the current state of the build. <application>Poudriere</" +"application> also builds files in <filename>/poudriere/logs/bulk/" +"<replaceable>jailname</replaceable></filename> that can be used with a web " +"server to display build information." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10351 +msgid "" +"Packages are now available for installation from the <application>poudriere</" +"application> repository." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10355 +msgid "" +"For more information on using <application>poudriere</application>, see " +"<citerefentry vendor=\"ports\"><refentrytitle>poudriere</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> and the main web site, " +"<link xlink:href=\"https://github.com/freebsd/poudriere/wiki\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:10360 +msgid "Configuring pkg Clients to Use a Poudriere Repository" +msgstr "設定 pkg 客戶端使用 Poudriere 檔案庫" + +#. (itstool) path: sect2/para +#: book.translate.xml:10363 +msgid "" +"While it is possible to use both a custom repository along side of the " +"official repository, sometimes it is useful to disable the official " +"repository. This is done by creating a configuration file that overrides and " +"disables the official configuration file. Create <filename>/usr/local/etc/" +"pkg/repos/FreeBSD.conf</filename> that contains the following:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10371 +#, no-wrap +msgid "" +"FreeBSD: {\n" +"\tenabled: no\n" +"}" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10375 +msgid "" +"Usually it is easiest to serve a poudriere repository to the client machines " +"via HTTP. Setup a webserver to serve up the package directory, usually " +"something like: <filename>/usr/local/poudriere/data/packages/" +"<replaceable>10amd64</replaceable></filename>. Where <filename>10amd64</" +"filename> is the name of the build." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10382 +msgid "" +"If the URL to the package repository is: <literal>http://pkg.example." +"com/10amd64</literal>, then the repository configuration file in <filename>/" +"usr/local/etc/pkg/repos/custom.conf</filename> would look like:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10388 +#, no-wrap +msgid "" +"custom: {\n" +"\turl: \"<replaceable>http://pkg.example.com/10amd64</replaceable>\",\n" +"\tenabled: yes,\n" +"}" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:10396 +msgid "Post-Installation Considerations" +msgstr "安裝後的注意事項" + +#. (itstool) path: sect1/para +#: book.translate.xml:10398 +msgid "" +"Regardless of whether the software was installed from a binary package or " +"port, most third-party applications require some level of configuration " +"after installation. The following commands and locations can be used to help " +"determine what was installed with the application." +msgstr "" +"不論軟體是從套件或 Port 安裝,大部份的第三方應用程式安裝完後需要做某種程度的" +"設定,下列指令與位置可以用來協助找到應用程式安裝了什麼。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10406 +msgid "" +"Most applications install at least one default configuration file in " +"<filename>/usr/local/etc</filename>. In the case where an application has a " +"large number of configuration files, a subdirectory will be created to hold " +"them. Often, sample configuration files are installed which end with a " +"suffix such as <filename>.sample</filename>. The configuration files should " +"be reviewed and possibly edited to meet the system's needs. To edit a sample " +"file, first copy it without the <filename>.sample</filename> extension." +msgstr "" +"大部份應用程式安裝會在 <filename>/usr/local/etc</filename> 安裝至少一個預設的" +"設定檔,在應用程式有大量設定檔的情況會建立一個子目錄來存放這些設定檔。範例的" +"設定檔名通常會使用 <filename>.sample</filename> 結尾,應要檢查這些檔案的內" +"容,並可能要做一些編輯讓設定檔符合系統的需求,要編輯設定檔範本前需先複製該檔" +"案並去除 <filename>.sample</filename> 副檔名。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10419 +msgid "" +"Applications which provide documentation will install it into <filename>/usr/" +"local/share/doc</filename> and many applications also install manual pages. " +"This documentation should be consulted before continuing." +msgstr "" +"應用程式提供的文件會安裝到 <filename>/usr/local/share/doc</filename>,且許多" +"應用程式也同時會安裝操作手冊,在繼續使用應用程式前應先查看這些文件。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10426 +msgid "" +"Some applications run services which must be added to <filename>/etc/rc." +"conf</filename> before starting the application. These applications usually " +"install a startup script in <filename>/usr/local/etc/rc.d</filename>. See " +"<link linkend=\"configtuning-starting-services\">Starting Services</link> " +"for more information." +msgstr "" +"部份應用程式會以服務的方式執行,在啟動應用程式前前需要加入設定到 <filename>/" +"etc/rc.conf</filename>。這些應用程式通常會安裝啟動 Script 到 <filename>/usr/" +"local/etc/rc.d</filename>,請參考 <link linkend=\"configtuning-starting-" +"services\">啟動服務</link> 來取得更多資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10435 +msgid "" +"Users of <citerefentry><refentrytitle>csh</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> should run <command>rehash</command> to rebuild " +"the known binary list in the shells <envar>PATH</envar>." +msgstr "" +"<citerefentry><refentrytitle>csh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 的使用者應要執行 <command>rehash</command> 來更新已知 Binary 清" +"單到 Shell 的 <envar>PATH</envar>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10441 +msgid "" +"Use <command>pkg info</command> to determine which files, man pages, and " +"binaries were installed with the application." +msgstr "" +"使用 <command>pkg info</command> 來了解應用程式安裝了那些檔案、操作手冊以及 " +"Binary。" + +#. (itstool) path: sect1/title +#: book.translate.xml:10449 +msgid "Dealing with Broken Ports" +msgstr "處理損壞的 Ports" + +#. (itstool) path: sect1/para +#: book.translate.xml:10451 +msgid "When a port does not build or install, try the following:" +msgstr "當發現某個 Port 無法順利編譯或安裝,可以嘗試以下幾種方法解決:" + +#. (itstool) path: listitem/para +#: book.translate.xml:10456 +msgid "" +"Search to see if there is a fix pending for the port in the <link xlink:href=" +"\"@@URL_RELPREFIX@@/support.html\">Problem Report database</link>. If so, " +"implementing the proposed fix may fix the issue." +msgstr "" +"搜尋 <link xlink:href=\"@@URL_RELPREFIX@@/support.html\">問題回報資料庫</" +"link> 看該 Port 有沒有待審核的修正,若有的話可以使用該修正來修正問題。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10463 +msgid "" +"Ask the maintainer of the port for help. Type <command>make maintainer</" +"command> in the ports skeleton or read the port's <filename>Makefile</" +"filename> to find the maintainer's email address. Remember to include the " +"<literal>$FreeBSD:</literal> line from the port's <filename>Makefile</" +"filename> and the output leading up to the error in the email to the " +"maintainer." +msgstr "" +"尋求維護人員的協助,在 Ports Skeleton 目錄中輸入 <command>make maintainer</" +"command> 或閱讀 Port 的 <filename>Makefile</filename> 來取得維護人員的電子郵" +"件位址。寄給維護人員的郵件內容請記得要包含 Port 的 <filename>Makefile</" +"filename> 中的 <literal>$FreeBSD:</literal> 一整行及輸出的錯誤訊息。" + +#. (itstool) path: note/para +#: book.translate.xml:10473 +msgid "" +"Some ports are not maintained by an individual but instead by a <link xlink:" +"href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/mailing-list-faq/" +"article.html\">mailing list</link>. Many, but not all, of these addresses " +"look like <email role=\"nolink\">freebsd-listname@FreeBSD.org</email>. Take " +"this into account when sending an email." +msgstr "" +"有一些 Port 並非由個人維護,而是由 <link xlink:href=\"@@URL_RELPREFIX@@/doc/" +"en_US.ISO8859-1/articles/mailing-list-faq/article.html\">郵遞論壇</link> 維" +"護,只要郵件地址長的像 <email role=\"nolink\">freebsd-listname@FreeBSD.org</" +"email> 都是,寄信時記得代入實際的論壇名稱。" + +#. (itstool) path: note/para +#: book.translate.xml:10479 +msgid "" +"In particular, ports shown as maintained by <email role=\"nolink" +"\">ports@FreeBSD.org</email> are not maintained by a specific individual. " +"Instead, any fixes and support come from the general community who subscribe " +"to that mailing list. More volunteers are always needed!" +msgstr "" +"尤其是顯示 <email role=\"nolink\">ports@FreeBSD.org</email> 的 Port 都不是" +"由特定個人維護,該 Ports 的修正與支援來自訂閱該郵遞論壇的一般社群所提供,我們" +"非常歡迎志工參與。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10487 +msgid "" +"If there is no response to the email, use Bugzilla to submit a bug report " +"using the instructions in <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US." +"ISO8859-1/articles/problem-reports/article.html\">Writing FreeBSD Problem " +"Reports</link>." +msgstr "" +"若寄信後沒有取得任何回應,可以依照 <link xlink:href=\"@@URL_RELPREFIX@@/doc/" +"en_US.ISO8859-1/articles/problem-reports/article.html\">撰寫 FreeBSD 問題回報" +"</link> 的說明使用 Bugzilla 提出問題回報。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10494 +msgid "" +"Fix it! The <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/" +"porters-handbook/index.html\">Porter's Handbook</link> includes detailed " +"information on the ports infrastructure so that you can fix the occasional " +"broken port or even submit your own!" +msgstr "" +"自行修正看看! <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/" +"porters-handbook/index.html\">Porter's Handbook</link> 中含有 Port 基礎架構的" +"詳細資訊,可提供資訊讓您可修正偶然損壞的 Port 或甚至您可以提交之自己的 Port。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10501 +msgid "" +"Install the package instead of the port using the instructions in <xref " +"linkend=\"pkgng-intro\"/>." +msgstr "" +"依照 <xref linkend=\"pkgng-intro\"/> 中的說明安裝 Binary 套件,替代使用 Port " +"安裝。" + +#. (itstool) path: chapter/title +#: book.translate.xml:10531 +msgid "The X Window System" +msgstr "X Window 系統" + +#. (itstool) path: sect1/para +#: book.translate.xml:10536 +msgid "" +"An installation of FreeBSD using <application>bsdinstall</application> does " +"not automatically install a graphical user interface. This chapter describes " +"how to install and configure <application>Xorg</application>, which provides " +"the open source X Window System used to provide a graphical environment. It " +"then describes how to find and install a desktop environment or window " +"manager." +msgstr "" +"使用 <application>bsdinstall</application> 安裝 FreeBSD 並不會自動安裝圖型化" +"使用者介面。本章將說明如何安裝並設定 <application>Xorg</application>,該應用" +"程式提供開放源碼的 X Window 系統來提供圖型化環境。接著會說明如何找到並安裝桌" +"面環境或視窗管理程式。" + +#. (itstool) path: note/para +#: book.translate.xml:10545 +msgid "" +"Users who prefer an installation method that automatically configures the " +"<application>Xorg</application> and offers a choice of window managers " +"during installation should refer to the <link xlink:href=\"http://www.pcbsd." +"org/\">pcbsd.org</link> website." +msgstr "" +"偏好安裝時會自動設定 <application>Xorg</application> 並且在安裝過程提供視窗管" +"理程式選項的使用者請參考 <link xlink:href=\"http://www.pcbsd.org/\">pcbsd." +"org</link> 網站。" + +#. (itstool) path: sect1/para +#: book.translate.xml:10552 +msgid "" +"For more information on the video hardware that <application>Xorg</" +"application> supports, refer to the <link xlink:href=\"http://www.x.org/\">x." +"org</link> website." +msgstr "" +"更多有關 <application>Xorg</application> 支援影像硬體資訊,請參考 <link " +"xlink:href=\"http://www.x.org/\">x.org</link> 網站。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10559 +msgid "" +"The various components of the X Window System, and how they interoperate." +msgstr "組成 X Window 系統的各種元件以及它們是如何相互運作。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10564 +msgid "How to install and configure <application>Xorg</application>." +msgstr "如何安裝並設定 <application>Xorg</application>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10569 +msgid "" +"How to install and configure several window managers and desktop " +"environments." +msgstr "如何安裝並設定各種視窗管理程式與桌面環境。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10574 +msgid "" +"How to use <trademark class=\"registered\">TrueType</trademark> fonts in " +"<application>Xorg</application>." +msgstr "" +"如何在 <application>Xorg</application> 上使用 <trademark class=\"registered" +"\">TrueType</trademark> 字型。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10579 +msgid "" +"How to set up your system for graphical logins (<application>XDM</" +"application>)." +msgstr "如何設定系統以使用圖形化登入 (<application>XDM</application>)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10588 +msgid "" +"Know how to install additional third-party software as described in <xref " +"linkend=\"ports\"/>." +msgstr "了解如何依照 <xref linkend=\"ports\"/> 說明安裝其他第三方軟體。" + +#. (itstool) path: sect1/title +#: book.translate.xml:10595 +msgid "Terminology" +msgstr "術語" + +#. (itstool) path: sect1/para +#: book.translate.xml:10597 +msgid "" +"While it is not necessary to understand all of the details of the various " +"components in the X Window System and how they interact, some basic " +"knowledge of these components can be useful." +msgstr "" +"雖然 X 各元件的所有細節及運作方式,並不是必須要知道的。 但對它們有些基本概念" +"會更容易上手。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10604 +msgid "X server" +msgstr "X 伺服器(X Server)" + +#. (itstool) path: listitem/para +#: book.translate.xml:10607 +msgid "" +"X was designed from the beginning to be network-centric, and adopts a " +"<quote>client-server</quote> model. In this model, the <quote>X server</" +"quote> runs on the computer that has the keyboard, monitor, and mouse " +"attached. The server's responsibility includes tasks such as managing the " +"display, handling input from the keyboard and mouse, and handling input or " +"output from other devices such as a tablet or a video projector. This " +"confuses some people, because the X terminology is exactly backward to what " +"they expect. They expect the <quote>X server</quote> to be the big powerful " +"machine down the hall, and the <quote>X client</quote> to be the machine on " +"their desk." +msgstr "" +"X 最初設計是以網路為中心,採用 <quote>client-server</quote> 架構。在此架構下 " +"<quote>X 伺服器</quote> 在有鍵盤、螢幕、滑鼠的電腦上運作。該伺服器負責的工作" +"包含管理顯示、處理來自鍵盤、滑鼠的輸入及來自其他設備(如平板或或影像投影機)的" +"輸入或輸出。這點可能會讓人感到困惑,因為 X 使用的術語與一般的認知剛好相反。 " +"一般認知會以為 <quote>X 伺服器</quote> 是要在最強悍的主機上執行,而 <quote>X " +"客戶端</quote> 才是在桌機上面執行,實際上卻是相反。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10624 +msgid "X client" +msgstr "X 客戶端(X Client)" + +#. (itstool) path: listitem/para +#: book.translate.xml:10627 +msgid "" +"Each X application, such as <application>XTerm</application> or " +"<application>Firefox</application>, is a <quote>client</quote>. A client " +"sends messages to the server such as <quote>Please draw a window at these " +"coordinates</quote>, and the server sends back messages such as <quote>The " +"user just clicked on the OK button</quote>." +msgstr "" +"每個 X 應用程式,如 <application>XTerm</application>、<application>Firefox</" +"application> 都是 <quote>客戶端</quote>。 客戶端會傳訊息到伺服器,例如:" +"<quote>請在這些座標畫一個視窗</quote>,接著伺服器會傳回訊息,如:<quote>使用" +"者剛點選了確定按鈕</quote>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10636 +msgid "" +"In a home or small office environment, the X server and the X clients " +"commonly run on the same computer. It is also possible to run the X server " +"on a less powerful computer and to run the X applications on a more powerful " +"system. In this scenario, the communication between the X client and server " +"takes place over the network." +msgstr "" +"在家庭或小型辦公室環境,通常 X 伺服器跟 X 客戶端都是在同一台電腦上執行。也可" +"以在比較慢的電腦上執行 X 伺服器, 並在比較強、比較貴的系統上執行 X 應用程" +"式。 在這種情景,X 客戶端與伺服器之間的溝通就需透過網路來進行。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10646 +msgid "window manager" +msgstr "視窗管理程式(Window Manager)" + +#. (itstool) path: listitem/para +#: book.translate.xml:10649 +msgid "" +"X does not dictate what windows should look like on-screen, how to move them " +"around with the mouse, which keystrokes should be used to move between " +"windows, what the title bars on each window should look like, whether or not " +"they have close buttons on them, and so on. Instead, X delegates this " +"responsibility to a separate window manager application. There are <link " +"xlink:href=\"http://xwinman.org/\">dozens of window managers</link> " +"available. Each window manager provides a different look and feel: some " +"support virtual desktops, some allow customized keystrokes to manage the " +"desktop, some have a <quote>Start</quote> button, and some are themeable, " +"allowing a complete change of the desktop's look-and-feel. Window managers " +"are available in the <filename>x11-wm</filename> category of the Ports " +"Collection." +msgstr "" +"X 並不規定螢幕上的視窗該長什麼樣、要如何移動滑鼠指標、 要用什麼鍵來在視窗切" +"換、每個視窗的標題列長相,及是否該有關閉按鈕,等等。事實上,X 把這部分交給所" +"謂的視窗管理程式來管理。可用的<link xlink:href=\"http://xwinman.org/\">視窗管" +"理程式有很多種</link>,每一種視窗管理程式都提供不同的使用介面風格:有些支援虛" +"擬桌面,有些允許自訂組合鍵來管理桌面,有些有 <quote>開始</quote> 鈕,有些則是" +"可更換佈景主題,可自行安裝新的佈景主題以更換外觀。 視窗管理程式可在 Ports 套" +"件集的 <filename>x11-wm</filename> 分類找到。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10665 +msgid "" +"Each window manager uses a different configuration mechanism. Some expect " +"configuration file written by hand while others provide graphical tools for " +"most configuration tasks." +msgstr "" +"每個視窗管理程式也各有其不同的設定機制,有些需要手動修改設定檔, 而有的則可透" +"過圖型化工具來完成大部分的設定工作。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10673 +msgid "desktop environment" +msgstr "桌面環境(Desktop Environment)" + +#. (itstool) path: listitem/para +#: book.translate.xml:10676 +msgid "" +"<application>KDE</application> and <application>GNOME</application> are " +"considered to be desktop environments as they include an entire suite of " +"applications for performing common desktop tasks. These may include office " +"suites, web browsers, and games." +msgstr "" +"<application>KDE</application> 與 <application>GNOME</application> 會被稱作桌" +"面環境是因為包含了完整常用桌面作業的應用程式,這些應用程式可能包含文書軟體、" +"網頁瀏覽器及遊戲。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10685 +msgid "focus policy" +msgstr "聚焦政策(Focus Policy)" + +#. (itstool) path: listitem/para +#: book.translate.xml:10688 +msgid "" +"The window manager is responsible for the mouse focus policy. This policy " +"provides some means for choosing which window is actively receiving " +"keystrokes and it should also visibly indicate which window is currently " +"active." +msgstr "" +"視窗管理程式負責滑鼠指標的聚焦政策。 聚焦政策指的是如何決定使用中及接收鍵盤輸" +"入的視窗。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10694 +msgid "" +"One focus policy is called <quote>click-to-focus</quote>. In this model, a " +"window becomes active upon receiving a mouse click. In the <quote>focus-" +"follows-mouse</quote> policy, the window that is under the mouse pointer has " +"focus and the focus is changed by pointing at another window. If the mouse " +"is over the root window, then this window is focused. In the <quote>sloppy-" +"focus</quote> model, if the mouse is moved over the root window, the most " +"recently used window still has the focus. With sloppy-focus, focus is only " +"changed when the cursor enters a new window, and not when exiting the " +"current window. In the <quote>click-to-focus</quote> policy, the active " +"window is selected by mouse click. The window may then be raised and appear " +"in front of all other windows. All keystrokes will now be directed to this " +"window, even if the cursor is moved to another window." +msgstr "" +"通常較為人熟悉的聚焦政策叫做 <quote>click-to-focus</quote>,這個模式中,滑鼠" +"點選到的視窗便會處於作用中(Active)的狀態。在 <quote>focus-follows-mouse</" +"quote> 模式滑鼠指標所在的視窗便是作用中的視窗,只要把滑鼠移到其他視窗就可以改" +"變作用中的視窗,若滑鼠移到根視窗(Root Window),則會聚焦在根視窗。在 " +"<quote>sloppy-focus</quote> 模式,既使滑鼠移到根視窗,仍然會聚焦在最後聚焦的" +"視窗上,此模式只有當滑鼠進入新的視窗時才會聚焦於該視窗,而非離開目前視窗時。" +"<quote>click-to-focus</quote> 模式用滑鼠點擊來決定作用中的視窗,且該視窗會被" +"置頂到所有其他視窗之前,即使滑鼠移到其他視窗,所有的鍵盤輸入仍會由該視窗所接" +"收。" + +#. (itstool) path: listitem/para +#: book.translate.xml:10712 +msgid "" +"Different window managers support different focus models. All of them " +"support click-to-focus, and the majority of them also support other " +"policies. Consult the documentation for the window manager to determine " +"which focus models are available." +msgstr "" +"不同的視窗管理程式支援不同的聚焦模式,全部都支援 click-to-focus 且其中大部份" +"支援其他模式,請查看視窗管理程式的說明文件來了解可用的聚焦模式。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10721 +msgid "widgets" +msgstr "視窗元件(Widget)" + +#. (itstool) path: listitem/para +#: book.translate.xml:10724 +msgid "" +"Widget is a term for all of the items in the user interface that can be " +"clicked or manipulated in some way. This includes buttons, check boxes, " +"radio buttons, icons, and lists. A widget toolkit is a set of widgets used " +"to create graphical applications. There are several popular widget toolkits, " +"including Qt, used by <application>KDE</application>, and GTK+, used by " +"<application>GNOME</application>. As a result, applications will have a " +"different look and feel, depending upon which widget toolkit was used to " +"create the application." +msgstr "" +"視窗元件指的是在所有在使用者介面上可被點選或操作的項目,這包括按鈕、核選方" +"塊、單選按鈕、圖示及清單。 視窗元件工具包(Widget toolkit)是指用來建立圖型化應" +"用程式的一系列的視窗元件。目前有數個有名的視窗元件工具包,包含 " +"<application>KDE</application> 所使用的 Qt、<application>GNOME</application> " +"所使用的 GTK+。 因此應用程式會依其開發時所選用的視窗元件工具包而有不同的外" +"觀。" + +#. (itstool) path: sect1/title +#: book.translate.xml:10741 +msgid "Installing <application>Xorg</application>" +msgstr "安裝 <application>Xorg</application>" + +#. (itstool) path: sect1/para +#: book.translate.xml:10743 +msgid "" +"On FreeBSD, <application>Xorg</application> can be installed as a package or " +"port." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:10746 +msgid "To build and install from the Ports Collection:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:10748 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/x11/xorg</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:10751 +msgid "" +"The binary package can be installed more quickly but with fewer options for " +"customization:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:10754 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install xorg</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:10756 +msgid "" +"Either of these installations results in the complete <application>Xorg</" +"application> system being installed. This is the best option for most users." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:10760 +msgid "" +"A smaller version of the X system suitable for experienced users is " +"available in <package>x11/xorg-minimal</package>. Most of the documents, " +"libraries, and applications will not be installed. Some applications require " +"these additional components to function." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:10768 +msgid "<application>Xorg</application> Configuration" +msgstr "<application>Xorg</application> 設定" + +#. (itstool) path: info/author +#: book.translate.xml:10771 +msgid "" +"<personname> <firstname>Warren</firstname> <surname>Block</surname> </" +"personname> <contrib>Originally contributed by</contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:10780 +msgid "<primary>Xorg</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:10781 +msgid "<primary><application>Xorg</application></primary>" +msgstr "" + +#. (itstool) path: sect2/title +#. (itstool) path: sect1/title +#: book.translate.xml:10784 book.translate.xml:16768 book.translate.xml:62324 +msgid "Quick Start" +msgstr "快速開始" + +#. (itstool) path: sect2/para +#: book.translate.xml:10786 +msgid "" +"<application>Xorg</application> supports most common video cards, keyboards, " +"and pointing devices. These devices are automatically detected and do not " +"require any manual configuration." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:10793 +msgid "" +"If <application>Xorg</application> has been used on this computer before, " +"move or remove any existing configuration files:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:10797 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mv /etc/X11/xorg.conf ~/xorg.conf.etc</userinput>\n" +"<prompt>#</prompt> <userinput>mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:10802 +msgid "" +"Add the user who will run <application>Xorg</application> to the " +"<literal>video</literal> or <literal>wheel</literal> group to enable 3D " +"acceleration when available. To add user <replaceable>jru</replaceable> to " +"whichever group is available:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:10810 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw groupmod video -m <replaceable>jru</replaceable> || pw groupmod wheel -m <replaceable>jru</replaceable></userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:10814 +msgid "" +"The <acronym>TWM</acronym> window manager is included by default. It is " +"started when <application>Xorg</application> starts:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:10818 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>startx</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:10822 +msgid "" +"On some older versions of FreeBSD, the system console must be set to " +"<citerefentry><refentrytitle>vt</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> before switching back to the text console will work properly. " +"See <xref linkend=\"x-config-kms\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:10831 +msgid "User Group for Accelerated Video" +msgstr "用來加速影像處理的使用者群組" + +#. (itstool) path: sect2/para +#: book.translate.xml:10833 +msgid "" +"Access to <filename>/dev/dri</filename> is needed to allow 3D acceleration " +"on video cards. It is usually simplest to add the user who will be running X " +"to either the <literal>video</literal> or <literal>wheel</literal> group. " +"Here, <citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> is used to add user <replaceable>slurms</" +"replaceable> to the <literal>video</literal> group, or to the " +"<literal>wheel</literal> group if there is no <literal>video</literal> group:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:10843 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw groupmod video -m <replaceable>slurms</replaceable> || pw groupmod wheel -m <replaceable>slurms</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:10847 +msgid "Kernel Mode Setting (<acronym>KMS</acronym>)" +msgstr "核心模式設定 (Kernel Mode Setting, <acronym>KMS</acronym>)" + +#. (itstool) path: sect2/para +#: book.translate.xml:10849 +msgid "" +"When the computer switches from displaying the console to a higher screen " +"resolution for X, it must set the video output <emphasis>mode</emphasis>. " +"Recent versions of <acronym>Xorg</acronym> use a system inside the kernel to " +"do these mode changes more efficiently. Older versions of FreeBSD use " +"<citerefentry><refentrytitle>sc</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>, which is not aware of the <acronym>KMS</acronym> system. The " +"end result is that after closing X, the system console is blank, even though " +"it is still working. The newer <citerefentry><refentrytitle>vt</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> console avoids this " +"problem." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:10860 +msgid "" +"Add this line to <filename>/boot/loader.conf</filename> to enable " +"<citerefentry><refentrytitle>vt</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:10863 +#, no-wrap +msgid "kern.vty=vt" +msgstr "" + +#. (itstool) path: sect2/title +#. (itstool) path: sect1/title +#. (itstool) path: sect3/title +#: book.translate.xml:10867 book.translate.xml:20892 book.translate.xml:31425 +#: book.translate.xml:45321 book.translate.xml:55482 +msgid "Configuration Files" +msgstr "設定檔" + +#. (itstool) path: sect3/para +#: book.translate.xml:10872 +msgid "" +"<application>Xorg</application> looks in several directories for " +"configuration files. <filename>/usr/local/etc/X11/</filename> is the " +"recommended directory for these files on FreeBSD. Using this directory helps " +"keep application files separate from operating system files." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10879 +msgid "" +"Storing configuration files in the legacy <filename>/etc/X11/</filename> " +"still works. However, this mixes application files with the base FreeBSD " +"files and is not recommended." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:10886 +msgid "Single or Multiple Files" +msgstr "單檔或多檔" + +#. (itstool) path: sect3/para +#: book.translate.xml:10888 +msgid "" +"It is easier to use multiple files that each configure a specific setting " +"than the traditional single <filename>xorg.conf</filename>. These files are " +"stored in the <filename>xorg.conf.d/</filename> subdirectory of the main " +"configuration file directory. The full path is typically <filename>/usr/" +"local/etc/X11/xorg.conf.d/</filename>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10896 +msgid "Examples of these files are shown later in this section." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:10899 +msgid "" +"The traditional single <filename>xorg.conf</filename> still works, but is " +"neither as clear nor as flexible as multiple files in the <filename>xorg." +"conf.d/</filename> subdirectory." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:10907 +msgid "Video Cards" +msgstr "顯示卡" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10911 +msgid "<trademark class=\"registered\">Intel</trademark>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10914 +msgid "" +"3D acceleration is supported on most <trademark class=\"registered\">Intel</" +"trademark> graphics up to Ivy Bridge (HD Graphics 2500, 4000, and P4000), " +"including Iron Lake (HD Graphics) and Sandy Bridge (HD Graphics 2000)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10919 +msgid "Driver name: <literal>intel</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10921 +msgid "" +"For reference, see <link xlink:href=\"https://en.wikipedia.org/wiki/" +"List_of_Intel_graphics_processing_units\"/>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10926 +msgid "<trademark class=\"registered\">AMD</trademark> Radeon" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10929 +msgid "" +"2D and 3D acceleration is supported on Radeon cards up to and including the " +"HD6000 series." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10932 +msgid "Driver name: <literal>radeon</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10934 +msgid "" +"For reference, see <link xlink:href=\"https://en.wikipedia.org/wiki/" +"List_of_AMD_graphics_processing_units\"/>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10939 +msgid "NVIDIA" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10942 +msgid "" +"Several NVIDIA drivers are available in the <filename>x11</filename> " +"category of the Ports Collection. Install the driver that matches the video " +"card." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10947 +msgid "" +"For reference, see <link xlink:href=\"https://en.wikipedia.org/wiki/" +"List_of_Nvidia_graphics_processing_units\"/>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10952 +msgid "Hybrid Combination Graphics" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10955 +msgid "" +"Some notebook computers add additional graphics processing units to those " +"built into the chipset or processor. <emphasis>Optimus</emphasis> combines " +"<trademark class=\"registered\">Intel</trademark> and NVIDIA hardware. " +"<emphasis>Switchable Graphics</emphasis> or <emphasis>Hybrid Graphics</" +"emphasis> are a combination of an <trademark class=\"registered\">Intel</" +"trademark> or <trademark class=\"registered\">AMD</trademark> processor and " +"an <trademark class=\"registered\">AMD</trademark> Radeon <acronym>GPU</" +"acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10964 +msgid "" +"Implementations of these hybrid graphics systems vary, and " +"<application>Xorg</application> on FreeBSD is not able to drive all versions " +"of them." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10968 +msgid "" +"Some computers provide a <acronym>BIOS</acronym> option to disable one of " +"the graphics adapters or select a <emphasis>discrete</emphasis> mode which " +"can be used with one of the standard video card drivers. For example, it is " +"sometimes possible to disable the NVIDIA <acronym>GPU</acronym> in an " +"Optimus system. The <trademark class=\"registered\">Intel</trademark> video " +"can then be used with an <trademark class=\"registered\">Intel</trademark> " +"driver." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10977 +msgid "" +"<acronym>BIOS</acronym> settings depend on the model of computer. In some " +"situations, both <acronym>GPU</acronym>s can be left enabled, but creating a " +"configuration file that only uses the main <acronym>GPU</acronym> in the " +"<literal>Device</literal> section is enough to make such a system functional." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:10988 +msgid "Other Video Cards" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10991 +msgid "" +"Drivers for some less-common video cards can be found in the <filename>x11-" +"drivers</filename> directory of the Ports Collection." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:10995 +msgid "" +"Cards that are not supported by a specific driver might still be usable with " +"the <package>x11-drivers/xf86-video-vesa</package> driver. This driver is " +"installed by <package>x11/xorg</package>. It can also be installed manually " +"as <package>x11-drivers/xf86-video-vesa</package>. <application>Xorg</" +"application> attempts to use this driver when a specific driver is not found " +"for the video card." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11005 +msgid "" +"<package>x11-drivers/xf86-video-scfb</package> is a similar nonspecialized " +"video driver that works on many <acronym>UEFI</acronym> and <trademark class=" +"\"registered\">ARM</trademark> computers." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:11012 +msgid "Setting the Video Driver in a File" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11015 +msgid "" +"To set the <trademark class=\"registered\">Intel</trademark> driver in a " +"configuration file:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:11019 +msgid "" +"Select <trademark class=\"registered\">Intel</trademark> Video Driver in a " +"File" +msgstr "" +"在單檔中選擇 <trademark class=\"registered\">Intel</trademark> 影像驅動程式" + +#. (itstool) path: example/para +#: book.translate.xml:11021 +msgid "<filename>/usr/local/etc/X11/xorg.conf.d/driver-intel.conf</filename>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:11023 +#, no-wrap +msgid "" +"Section \"Device\"\n" +"\tIdentifier \"Card0\"\n" +"\tDriver \"intel\"\n" +"\t# BusID \"PCI:1:0:0\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:11029 +msgid "" +"If more than one video card is present, the <literal>BusID</literal> " +"identifier can be uncommented and set to select the desired card. A list of " +"video card bus <acronym>ID</acronym>s can be displayed with <command>pciconf " +"-lv | grep -B3 display</command>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11037 +msgid "To set the Radeon driver in a configuration file:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:11041 +msgid "Select Radeon Video Driver in a File" +msgstr "在單檔中選擇 Radeon 影像驅動程式" + +#. (itstool) path: example/para +#: book.translate.xml:11043 +msgid "<filename>/usr/local/etc/X11/xorg.conf.d/driver-radeon.conf</filename>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:11045 +#, no-wrap +msgid "" +"Section \"Device\"\n" +"\tIdentifier \"Card0\"\n" +"\tDriver \"radeon\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11051 +msgid "To set the <acronym>VESA</acronym> driver in a configuration file:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:11055 +msgid "Select <acronym>VESA</acronym> Video Driver in a File" +msgstr "在單檔中選擇 <acronym>VESA</acronym> 影像驅動程式" + +#. (itstool) path: example/para +#: book.translate.xml:11058 +msgid "<filename>/usr/local/etc/X11/xorg.conf.d/driver-vesa.conf</filename>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:11060 +#, no-wrap +msgid "" +"Section \"Device\"\n" +"\tIdentifier \"Card0\"\n" +"\tDriver \"vesa\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11066 +msgid "" +"To set the <literal>scfb</literal> driver for use with a <acronym>UEFI</" +"acronym> or <trademark class=\"registered\">ARM</trademark> computer:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:11070 +msgid "Select <literal>scfb</literal> Video Driver in a File" +msgstr "在單檔中選擇 <literal>scfb</literal> 影像驅動程式" + +#. (itstool) path: example/para +#: book.translate.xml:11073 +msgid "<filename>/usr/local/etc/X11/xorg.conf.d/driver-scfb.conf</filename>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:11075 +#, no-wrap +msgid "" +"Section \"Device\"\n" +"\tIdentifier \"Card0\"\n" +"\tDriver \"scfb\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:11086 +msgid "Monitors" +msgstr "顯示器" + +#. (itstool) path: sect2/para +#: book.translate.xml:11088 +msgid "" +"Almost all monitors support the Extended Display Identification Data " +"standard (<acronym>EDID</acronym>). <application>Xorg</application> uses " +"<acronym>EDID</acronym> to communicate with the monitor and detect the " +"supported resolutions and refresh rates. Then it selects the most " +"appropriate combination of settings to use with that monitor." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11096 +msgid "" +"Other resolutions supported by the monitor can be chosen by setting the " +"desired resolution in configuration files, or after the X server has been " +"started with <citerefentry vendor=\"xfree86\"><refentrytitle>xrandr</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:11103 +msgid "" +"Using <citerefentry vendor=\"xfree86\"><refentrytitle>xrandr</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11106 +msgid "" +"Run <citerefentry vendor=\"xfree86\"><refentrytitle>xrandr</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> without any parameters " +"to see a list of video outputs and detected monitor modes:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:11109 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>xrandr</userinput>\n" +"Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192\n" +"DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm\n" +" 1920x1200 59.95*+\n" +" 1600x1200 60.00\n" +" 1280x1024 85.02 75.02 60.02\n" +" 1280x960 60.00\n" +" 1152x864 75.00\n" +" 1024x768 85.00 75.08 70.07 60.00\n" +" 832x624 74.55\n" +" 800x600 75.00 60.32\n" +" 640x480 75.00 60.00\n" +" 720x400 70.08\n" +"DisplayPort-0 disconnected (normal left inverted right x axis y axis)\n" +"HDMI-0 disconnected (normal left inverted right x axis y axis)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11125 +msgid "" +"This shows that the <literal>DVI-0</literal> output is being used to display " +"a screen resolution of 1920x1200 pixels at a refresh rate of about 60 Hz. " +"Monitors are not attached to the <literal>DisplayPort-0</literal> and " +"<literal>HDMI-0</literal> connectors." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11132 +msgid "" +"Any of the other display modes can be selected with <citerefentry vendor=" +"\"xfree86\"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. For example, to switch to 1280x1024 at 60 Hz:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:11136 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>xrandr --mode 1280x1024 --rate 60</userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11138 +msgid "" +"A common task is using the external video output on a notebook computer for " +"a video projector." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11141 +msgid "" +"The type and quantity of output connectors varies between devices, and the " +"name given to each output varies from driver to driver. What one driver " +"calls <literal>HDMI-1</literal>, another might call <literal>HDMI1</" +"literal>. So the first step is to run <citerefentry vendor=" +"\"xfree86\"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> to list all the available outputs:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:11149 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>xrandr</userinput>\n" +"Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192\n" +"LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm\n" +" 1366x768 60.04*+\n" +" 1024x768 60.00\n" +" 800x600 60.32 56.25\n" +" 640x480 59.94\n" +"VGA1 connected (normal left inverted right x axis y axis)\n" +" 1280x1024 60.02 + 75.02\n" +" 1280x960 60.00\n" +" 1152x864 75.00\n" +" 1024x768 75.08 70.07 60.00\n" +" 832x624 74.55\n" +" 800x600 72.19 75.00 60.32 56.25\n" +" 640x480 75.00 72.81 66.67 60.00\n" +" 720x400 70.08\n" +"HDMI1 disconnected (normal left inverted right x axis y axis)\n" +"DP1 disconnected (normal left inverted right x axis y axis)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11168 +msgid "" +"Four outputs were found: the built-in panel <literal>LVDS1</literal>, and " +"external <literal>VGA1</literal>, <literal>HDMI1</literal>, and " +"<literal>DP1</literal> connectors." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11173 +msgid "" +"The projector has been connected to the <literal>VGA1</literal> output. " +"<citerefentry vendor=\"xfree86\"><refentrytitle>xrandr</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> is now used to set " +"that output to the native resolution of the projector and add the additional " +"space to the right side of the desktop:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:11179 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>xrandr --output VGA1 --auto --right-of LVDS1</userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11181 +msgid "" +"<literal>--auto</literal> chooses the resolution and refresh rate detected " +"by <acronym>EDID</acronym>. If the resolution is not correctly detected, a " +"fixed value can be given with <literal>--mode</literal> instead of the " +"<literal>--auto</literal> statement. For example, most projectors can be " +"used with a 1024x768 resolution, which is set with <literal>--mode 1024x768</" +"literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11190 +msgid "" +"<citerefentry vendor=\"xfree86\"><refentrytitle>xrandr</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> is often run from " +"<filename>.xinitrc</filename> to set the appropriate mode when X starts." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:11197 +msgid "Setting Monitor Resolution in a File" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11200 +msgid "To set a screen resolution of 1024x768 in a configuration file:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:11204 +msgid "Set Screen Resolution in a File" +msgstr "在單檔中設定螢幕解析度" + +#. (itstool) path: example/para +#: book.translate.xml:11206 +msgid "" +"<filename>/usr/local/etc/X11/xorg.conf.d/screen-resolution.conf</filename>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:11208 +#, no-wrap +msgid "" +"Section \"Screen\"\n" +"\tIdentifier \"Screen0\"\n" +"\tDevice \"Card0\"\n" +"\tSubSection \"Display\"\n" +"\tModes \"1024x768\"\n" +"\tEndSubSection\n" +"EndSection" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11217 +msgid "" +"The few monitors that do not have <acronym>EDID</acronym> can be configured " +"by setting <literal>HorizSync</literal> and <literal>VertRefresh</literal> " +"to the range of frequencies supported by the monitor." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:11224 +msgid "Manually Setting Monitor Frequencies" +msgstr "手動設定顯示器頻率" + +#. (itstool) path: example/para +#: book.translate.xml:11226 +msgid "<filename>/usr/local/etc/X11/xorg.conf.d/monitor0-freq.conf</filename>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:11228 +#, no-wrap +msgid "" +"Section \"Monitor\"\n" +"\tIdentifier \"Monitor0\"\n" +"\tHorizSync 30-83 # kHz\n" +"\tVertRefresh 50-76 # Hz\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:11240 +msgid "Input Devices" +msgstr "輸入裝置" + +#. (itstool) path: sect3/title +#: book.translate.xml:11243 +msgid "Keyboards" +msgstr "鍵盤" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:11247 +msgid "Keyboard Layout" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11250 +msgid "" +"The standardized location of keys on a keyboard is called a " +"<emphasis>layout</emphasis>. Layouts and other adjustable parameters are " +"listed in <citerefentry vendor=\"xfree86\"><refentrytitle>xkeyboard-config</" +"refentrytitle><manvolnum>7</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11255 +msgid "" +"A United States layout is the default. To select an alternate layout, set " +"the <literal>XkbLayout</literal> and <literal>XkbVariant</literal> options " +"in an <literal>InputClass</literal>. This will be applied to all input " +"devices that match the class." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11262 +msgid "" +"This example selects a French keyboard layout with the <literal>oss</" +"literal> variant." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:11266 +msgid "Setting a Keyboard Layout" +msgstr "設定鍵盤配置" + +#. (itstool) path: example/para +#: book.translate.xml:11268 +msgid "" +"<filename>/usr/local/etc/X11/xorg.conf.d/keyboard-fr-oss.conf</filename>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:11270 +#, no-wrap +msgid "" +"Section\t\"InputClass\"\n" +"\tIdentifier\t\"KeyboardDefaults\"\n" +"\tDriver\t\t\"keyboard\"\n" +"\tMatchIsKeyboard\t\"on\"\n" +"\tOption\t\t\"XkbLayout\" \"fr\"\n" +"\tOption\t\t\"XkbVariant\" \"oss\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:11280 +msgid "Setting Multiple Keyboard Layouts" +msgstr "設定多個鍵盤配置" + +#. (itstool) path: example/para +#: book.translate.xml:11282 +msgid "" +"Set United States, Spanish, and Ukrainian keyboard layouts. Cycle through " +"these layouts by pressing <keycombo action=\"simul\"> <keycap>Alt</keycap> " +"<keycap>Shift</keycap> </keycombo>. <package>x11/xxkb</package> or " +"<package>x11/sbxkb</package> can be used for improved layout switching " +"control and current layout indicators." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:11293 +msgid "" +"<filename>/usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.conf</filename>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:11295 +#, no-wrap +msgid "" +"Section\t\"InputClass\"\n" +"\tIdentifier\t\"All Keyboards\"\n" +"\tMatchIsKeyboard\t\"yes\"\n" +"\tOption\t\t\"XkbLayout\" \"us, es, ua\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:11305 +msgid "Closing <application>Xorg</application> From the Keyboard" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11309 +msgid "" +"X can be closed with a combination of keys. By default, that key combination " +"is not set because it conflicts with keyboard commands for some " +"applications. Enabling this option requires changes to the keyboard " +"<literal>InputDevice</literal> section:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:11317 +msgid "Enabling Keyboard Exit from X" +msgstr "開啟鍵盤離開 X 功能" + +#. (itstool) path: example/para +#: book.translate.xml:11319 +msgid "<filename>/usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf</filename>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:11321 +#, no-wrap +msgid "" +"Section\t\"InputClass\"\n" +"\tIdentifier\t\"KeyboardDefaults\"\n" +"\tDriver\t\t\"keyboard\"\n" +"\tMatchIsKeyboard\t\"on\"\n" +"\tOption\t\t\"XkbOptions\" \"terminate:ctrl_alt_bksp\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:11334 +msgid "Mice and Pointing Devices" +msgstr "滑鼠與指標裝置" + +#. (itstool) path: sect3/para +#: book.translate.xml:11336 +msgid "" +"Many mouse parameters can be adjusted with configuration options. See " +"<citerefentry vendor=\"xorg\"><refentrytitle>mousedrv</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> for a full list." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:11341 +msgid "Mouse Buttons" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:11344 +msgid "" +"The number of buttons on a mouse can be set in the mouse " +"<literal>InputDevice</literal> section of <filename>xorg.conf</filename>. To " +"set the number of buttons to 7:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:11350 +msgid "Setting the Number of Mouse Buttons" +msgstr "設定滑鼠按鍵編號" + +#. (itstool) path: example/para +#: book.translate.xml:11352 +msgid "<filename>/usr/local/etc/X11/xorg.conf.d/mouse0-buttons.conf</filename>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:11354 +#, no-wrap +msgid "" +"Section \"InputDevice\"\n" +"\tIdentifier \"Mouse0\"\n" +"\tOption \"Buttons\" \"7\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11368 +msgid "" +"In some cases, <application>Xorg</application> autoconfiguration does not " +"work with particular hardware, or a different configuration is desired. For " +"these cases, a custom configuration file can be created." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11373 +msgid "" +"A configuration file can be generated by <application>Xorg</application> " +"based on the detected hardware. This file is often a useful starting point " +"for custom configurations." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11378 +msgid "Generating an <filename>xorg.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11380 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>Xorg -configure</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11382 +msgid "" +"The configuration file is saved to <filename>/root/xorg.conf.new</filename>. " +"Make any changes desired, then test that file with:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11386 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>Xorg -config /root/xorg.conf.new</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11388 +msgid "" +"After the new configuration has been adjusted and tested, it can be split " +"into smaller files in the normal location, <filename>/usr/local/etc/X11/xorg." +"conf.d/</filename>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:11406 +msgid "Using Fonts in <application>Xorg</application>" +msgstr "在 <application>Xorg</application> 使用字型" + +#. (itstool) path: sect2/title +#: book.translate.xml:11409 +msgid "Type1 Fonts" +msgstr "Type1 字型" + +#. (itstool) path: sect2/para +#: book.translate.xml:11411 +msgid "" +"The default fonts that ship with <application>Xorg</application> are less " +"than ideal for typical desktop publishing applications. Large presentation " +"fonts show up jagged and unprofessional looking, and small fonts are almost " +"completely unintelligible. However, there are several free, high quality " +"Type1 (<trademark class=\"registered\">PostScript</trademark>) fonts " +"available which can be readily used with <application>Xorg</application>. " +"For instance, the URW font collection (<package>x11-fonts/urwfonts</" +"package>) includes high quality versions of standard type1 fonts (<trademark " +"class=\"registered\">Times Roman</trademark>, <trademark class=\"registered" +"\">Helvetica</trademark>, <trademark class=\"registered\">Palatino</" +"trademark> and others). The Freefonts collection (<package>x11-fonts/" +"freefonts</package>) includes many more fonts, but most of them are intended " +"for use in graphics software such as the <application>Gimp</application>, " +"and are not complete enough to serve as screen fonts. In addition, " +"<application>Xorg</application> can be configured to use <trademark class=" +"\"registered\">TrueType</trademark> fonts with a minimum of effort. For more " +"details on this, see the <citerefentry vendor=\"xfree86\"><refentrytitle>X</" +"refentrytitle><manvolnum>7</manvolnum></citerefentry> manual page or <xref " +"linkend=\"truetype\"/>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11430 +msgid "" +"To install the above Type1 font collections from the Ports Collection, run " +"the following commands:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11433 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/x11-fonts/urwfonts</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11436 +msgid "" +"And likewise with the freefont or other collections. To have the X server " +"detect these fonts, add an appropriate line to the X server configuration " +"file (<filename>/etc/X11/xorg.conf</filename>), which reads:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11441 +#, no-wrap +msgid "FontPath \"/usr/local/share/fonts/urwfonts/\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11443 +msgid "Alternatively, at the command line in the X session run:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11446 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>xset fp+ /usr/local/share/fonts/urwfonts</userinput>\n" +"<prompt>%</prompt> <userinput>xset fp rehash</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11449 +msgid "" +"This will work but will be lost when the X session is closed, unless it is " +"added to the startup file (<filename>~/.xinitrc</filename> for a normal " +"<command>startx</command> session, or <filename>~/.xsession</filename> when " +"logging in through a graphical login manager like <application>XDM</" +"application>). A third way is to use the new <filename>/usr/local/etc/fonts/" +"local.conf</filename> as demonstrated in <xref linkend=\"antialias\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:11461 +msgid "<trademark class=\"registered\">TrueType</trademark> Fonts" +msgstr "<trademark class=\"registered\">TrueType</trademark> 字型" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:11463 +msgid "<primary>TrueType Fonts</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:11466 +msgid "<primary>fonts</primary> <secondary>TrueType</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11471 +msgid "" +"<application>Xorg</application> has built in support for rendering " +"<trademark class=\"registered\">TrueType</trademark> fonts. There are two " +"different modules that can enable this functionality. The freetype module is " +"used in this example because it is more consistent with the other font " +"rendering back-ends. To enable the freetype module just add the following " +"line to the <literal>\"Module\"</literal> section of <filename>/etc/X11/xorg." +"conf</filename>." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11479 +#, no-wrap +msgid "Load \"freetype\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11481 +msgid "" +"Now make a directory for the <trademark class=\"registered\">TrueType</" +"trademark> fonts (for example, <filename>/usr/local/share/fonts/TrueType</" +"filename>) and copy all of the <trademark class=\"registered\">TrueType</" +"trademark> fonts into this directory. Keep in mind that <trademark class=" +"\"registered\">TrueType</trademark> fonts cannot be directly taken from an " +"<trademark class=\"registered\">Apple</trademark> <trademark class=" +"\"registered\">Mac</trademark>; they must be in <trademark class=\"registered" +"\">UNIX</trademark>/<trademark class=\"registered\">MS-DOS</trademark>/" +"<trademark class=\"registered\">Windows</trademark> format for use by " +"<application>Xorg</application>. Once the files have been copied into this " +"directory, use <application>mkfontdir</application> to create a " +"<filename>fonts.dir</filename>, so that the X font renderer knows that these " +"new files have been installed. <command>mkfontdir</command> can be installed " +"as a package:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11495 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install mkfontdir</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11497 +msgid "Then create an index of X font files in a directory:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11500 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/local/share/fonts/TrueType</userinput>\n" +"<prompt>#</prompt> <userinput>mkfontdir</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11503 +msgid "" +"Now add the <trademark class=\"registered\">TrueType</trademark> directory " +"to the font path. This is just the same as described in <xref linkend=" +"\"type1\"/>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11506 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>xset fp+ /usr/local/share/fonts/TrueType</userinput>\n" +"<prompt>%</prompt> <userinput>xset fp rehash</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11509 +msgid "" +"or add a <literal>FontPath</literal> line to <filename>xorg.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11512 +msgid "" +"Now <application>Gimp</application>, <application>Apache OpenOffice</" +"application>, and all of the other X applications should now recognize the " +"installed <trademark class=\"registered\">TrueType</trademark> fonts. " +"Extremely small fonts (as with text in a high resolution display on a web " +"page) and extremely large fonts (within <application><trademark>StarOffice</" +"trademark></application>) will look much better now." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:11533 +msgid "Anti-Aliased Fonts" +msgstr "反鋸齒字型" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:11535 +msgid "<primary>anti-aliased fonts</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:11538 +msgid "<primary>fonts</primary> <secondary>anti-aliased</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11543 +msgid "" +"All fonts in <application>Xorg</application> that are found in <filename>/" +"usr/local/share/fonts/</filename> and <filename>~/.fonts/</filename> are " +"automatically made available for anti-aliasing to Xft-aware applications. " +"Most recent applications are Xft-aware, including <application>KDE</" +"application>, <application>GNOME</application>, and <application>Firefox</" +"application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11552 +msgid "" +"In order to control which fonts are anti-aliased, or to configure anti-" +"aliasing properties, create (or edit, if it already exists) the file " +"<filename>/usr/local/etc/fonts/local.conf</filename>. Several advanced " +"features of the Xft font system can be tuned using this file; this section " +"describes only some simple possibilities. For more details, please see " +"<citerefentry vendor=\"xorg\"><refentrytitle>fonts-conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:11561 +msgid "<primary>XML</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11563 +msgid "" +"This file must be in XML format. Pay careful attention to case, and make " +"sure all tags are properly closed. The file begins with the usual XML header " +"followed by a DOCTYPE definition, and then the <literal><fontconfig></" +"literal> tag:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11569 +#, no-wrap +msgid "" +"<?xml version=\"1.0\"?>\n" +" <!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">\n" +" <fontconfig>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11573 +msgid "" +"As previously stated, all fonts in <filename>/usr/local/share/fonts/</" +"filename> as well as <filename>~/.fonts/</filename> are already made " +"available to Xft-aware applications. If you wish to add another directory " +"outside of these two directory trees, add a line similar to the following to " +"<filename>/usr/local/etc/fonts/local.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11581 +#, no-wrap +msgid "<dir>/path/to/my/fonts</dir>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11583 +msgid "" +"After adding new fonts, and especially new font directories, you should run " +"the following command to rebuild the font caches:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11587 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>fc-cache -f</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11589 +msgid "" +"Anti-aliasing makes borders slightly fuzzy, which makes very small text more " +"readable and removes <quote>staircases</quote> from large text, but can " +"cause eyestrain if applied to normal text. To exclude font sizes smaller " +"than 14 point from anti-aliasing, include these lines:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11596 +#, no-wrap +msgid "" +" <match target=\"font\">\n" +"\t <test name=\"size\" compare=\"less\">\n" +"\t\t<double>14</double>\n" +"\t </test>\n" +"\t <edit name=\"antialias\" mode=\"assign\">\n" +"\t\t<bool>false</bool>\n" +"\t </edit>\n" +"\t</match>\n" +"\t<match target=\"font\">\n" +"\t <test name=\"pixelsize\" compare=\"less\" qual=\"any\">\n" +"\t\t<double>14</double>\n" +"\t </test>\n" +"\t <edit mode=\"assign\" name=\"antialias\">\n" +"\t\t<bool>false</bool>\n" +"\t </edit>\n" +"\t</match>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:11613 +msgid "<primary>fonts</primary> <secondary>spacing</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11618 +msgid "" +"Spacing for some monospaced fonts may also be inappropriate with anti-" +"aliasing. This seems to be an issue with <application>KDE</application>, in " +"particular. One possible fix for this is to force the spacing for such fonts " +"to be 100. Add the following lines:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11624 +#, no-wrap +msgid "" +" <match target=\"pattern\" name=\"family\">\n" +"\t <test qual=\"any\" name=\"family\">\n" +"\t <string>fixed</string>\n" +"\t </test>\n" +"\t <edit name=\"family\" mode=\"assign\">\n" +"\t <string>mono</string>\n" +"\t </edit>\n" +"\t</match>\n" +"\t<match target=\"pattern\" name=\"family\">\n" +"\t <test qual=\"any\" name=\"family\">\n" +"\t\t<string>console</string>\n" +"\t </test>\n" +"\t <edit name=\"family\" mode=\"assign\">\n" +"\t\t<string>mono</string>\n" +"\t </edit>\n" +"\t</match>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11641 +msgid "" +"(this aliases the other common names for fixed fonts as <literal>\"mono\"</" +"literal>), and then add:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11644 +#, no-wrap +msgid "" +" <match target=\"pattern\" name=\"family\">\n" +"\t <test qual=\"any\" name=\"family\">\n" +"\t\t <string>mono</string>\n" +"\t </test>\n" +"\t <edit name=\"spacing\" mode=\"assign\">\n" +"\t\t <int>100</int>\n" +"\t </edit>\n" +"\t </match> " +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11653 +msgid "" +"Certain fonts, such as Helvetica, may have a problem when anti-aliased. " +"Usually this manifests itself as a font that seems cut in half vertically. " +"At worst, it may cause applications to crash. To avoid this, consider adding " +"the following to <filename>local.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11659 +#, no-wrap +msgid "" +" <match target=\"pattern\" name=\"family\">\n" +"\t <test qual=\"any\" name=\"family\">\n" +"\t\t <string>Helvetica</string>\n" +"\t </test>\n" +"\t <edit name=\"family\" mode=\"assign\">\n" +"\t\t <string>sans-serif</string>\n" +"\t </edit>\n" +"\t </match> " +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11668 +msgid "" +"Once you have finished editing <filename>local.conf</filename> make sure you " +"end the file with the <literal></fontconfig></literal> tag. Not doing " +"this will cause your changes to be ignored." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11673 +msgid "" +"Finally, users can add their own settings via their personal <filename>." +"fonts.conf</filename> files. To do this, each user should simply create a " +"<filename>~/.fonts.conf</filename>. This file must also be in XML format." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:11679 +msgid "<primary>LCD screen</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:11680 +msgid "<primary>Fonts</primary> <secondary>LCD screen</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11683 +msgid "" +"One last point: with an LCD screen, sub-pixel sampling may be desired. This " +"basically treats the (horizontally separated) red, green and blue components " +"separately to improve the horizontal resolution; the results can be " +"dramatic. To enable this, add the line somewhere in <filename>local.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11690 +#, no-wrap +msgid "" +"<match target=\"font\">\n" +"\t <test qual=\"all\" name=\"rgba\">\n" +"\t\t <const>unknown</const>\n" +"\t </test>\n" +"\t <edit name=\"rgba\" mode=\"assign\">\n" +"\t\t <const>rgb</const>\n" +"\t </edit>\n" +"\t </match>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:11700 +msgid "" +"Depending on the sort of display, <literal>rgb</literal> may need to be " +"changed to <literal>bgr</literal>, <literal>vrgb</literal> or <literal>vbgr</" +"literal>: experiment and see which works best." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:11711 +msgid "The X Display Manager" +msgstr "X 顯示管理程式" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:11714 +msgid "" +"<personname> <firstname>Seth</firstname> <surname>Kingsley</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:11724 +msgid "<primary>X Display Manager</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:11725 +msgid "" +"<application>Xorg</application> provides an X Display Manager, " +"<application>XDM</application>, which can be used for login session " +"management. <application>XDM</application> provides a graphical interface " +"for choosing which display server to connect to and for entering " +"authorization information such as a login and password combination." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:11732 +msgid "" +"This section demonstrates how to configure the X Display Manager on FreeBSD. " +"Some desktop environments provide their own graphical login manager. Refer " +"to <xref linkend=\"x11-wm-gnome\"/> for instructions on how to configure the " +"GNOME Display Manager and <xref linkend=\"x11-wm-kde\"/> for instructions on " +"how to configure the KDE Display Manager." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:11739 +msgid "Configuring <application>XDM</application>" +msgstr "設定 <application>XDM</application>" + +#. (itstool) path: sect2/para +#: book.translate.xml:11741 +msgid "" +"To install <application>XDM</application>, use the <package>x11/xdm</" +"package> package or port. Once installed, <application>XDM</application> can " +"be configured to run when the machine boots up by editing this entry in " +"<filename>/etc/ttys</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11747 +#, no-wrap +msgid "ttyv8 \"/usr/local/bin/xdm -nodaemon\" xterm off secure" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11749 +msgid "" +"Change the <literal>off</literal> to <literal>on</literal> and save the " +"edit. The <literal>ttyv8</literal> in this entry indicates that " +"<application>XDM</application> will run on the ninth virtual terminal." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11754 +msgid "" +"The <application>XDM</application> configuration directory is located in " +"<filename>/usr/local/lib/X11/xdm</filename>. This directory contains several " +"files used to change the behavior and appearance of <application>XDM</" +"application>, as well as a few scripts and programs used to set up the " +"desktop when <application>XDM</application> is running. <xref linkend=\"xdm-" +"config-files\"/> summarizes the function of each of these files. The exact " +"syntax and usage of these files is described in <citerefentry vendor=" +"\"xfree86\"><refentrytitle>xdm</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:11764 +msgid "XDM Configuration Files" +msgstr "XDM 設定檔" + +#. (itstool) path: row/entry +#: book.translate.xml:11769 book.translate.xml:55405 +msgid "File" +msgstr "檔案" + +#. (itstool) path: row/entry +#: book.translate.xml:11776 +msgid "<filename>Xaccess</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11777 +msgid "" +"The protocol for connecting to <application>XDM</application> is called the " +"X Display Manager Connection Protocol (<acronym>XDMCP</acronym>) This file " +"is a client authorization ruleset for controlling <acronym>XDMCP</acronym> " +"connections from remote machines. By default, this file does not allow any " +"remote clients to connect." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11787 +msgid "<filename>Xresources</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11788 +msgid "" +"This file controls the look and feel of the <application>XDM</application> " +"display chooser and login screens. The default configuration is a simple " +"rectangular login window with the hostname of the machine displayed at the " +"top in a large font and <quote>Login:</quote> and <quote>Password:</quote> " +"prompts below. The format of this file is identical to the app-defaults file " +"described in the <application>Xorg</application> documentation." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11801 +msgid "<filename>Xservers</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11802 +msgid "" +"The list of local and remote displays the chooser should provide as login " +"choices." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11807 +msgid "<filename>Xsession</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11808 +msgid "" +"Default session script for logins which is run by <application>XDM</" +"application> after a user has logged in. Normally each user will have a " +"customized session script in <filename>~/.xsession</filename> that overrides " +"this script" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11816 +msgid "<filename>Xsetup_</filename>*" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11817 +msgid "" +"Script to automatically launch applications before displaying the chooser or " +"login interfaces. There is a script for each display being used, named " +"<filename>Xsetup_*</filename>, where <literal>*</literal> is the local " +"display number. Typically these scripts run one or two programs in the " +"background such as <command>xconsole</command>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11828 +msgid "<filename>xdm-config</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11829 +msgid "Global configuration for all displays running on this machine." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11834 +msgid "<filename>xdm-errors</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11835 +msgid "" +"Contains errors generated by the server program. If a display that " +"<application>XDM</application> is trying to start hangs, look at this file " +"for error messages. These messages are also written to the user's " +"<filename>~/.xsession-errors</filename> on a per-session basis." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11844 +msgid "<filename>xdm-pid</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:11845 +msgid "" +"The running process <acronym>ID</acronym> of <application>XDM</application>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:11854 +msgid "Configuring Remote Access" +msgstr "設定遠端存取" + +#. (itstool) path: sect2/para +#: book.translate.xml:11856 +msgid "" +"By default, only users on the same system can login using <application>XDM</" +"application>. To enable users on other systems to connect to the display " +"server, edit the access control rules and enable the connection listener." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11861 +msgid "" +"To configure <application>XDM</application> to listen for any remote " +"connection, comment out the <literal>DisplayManager.requestPort</literal> " +"line in <filename>/usr/local/lib/X11/xdm/xdm-config</filename> by putting a " +"<literal>!</literal> in front of it:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11867 +#, no-wrap +msgid "" +"! SECURITY: do not listen for XDMCP or Chooser requests\n" +"! Comment out this line if you want to manage X terminals with xdm\n" +"DisplayManager.requestPort: 0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11871 +msgid "" +"Save the edits and restart <application>XDM</application>. To restrict " +"remote access, look at the example entries in <filename>/usr/local/lib/X11/" +"xdm/Xaccess</filename> and refer to <citerefentry vendor=" +"\"xfree86\"><refentrytitle>xdm</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> for further information." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:11880 +msgid "Desktop Environments" +msgstr "桌面環境" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:11883 +msgid "" +"<personname> <firstname>Valentino</firstname> <surname>Vaschetto</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:11894 +msgid "" +"This section describes how to install three popular desktop environments on " +"a FreeBSD system. A desktop environment can range from a simple window " +"manager to a complete suite of desktop applications. Over a hundred desktop " +"environments are available in the <filename>x11-wm</filename> category of " +"the Ports Collection." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:11902 +msgid "GNOME" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11905 +msgid "" +"<application>GNOME</application> is a user-friendly desktop environment. It " +"includes a panel for starting applications and displaying status, a desktop, " +"a set of tools and applications, and a set of conventions that make it easy " +"for applications to cooperate and be consistent with each other. More " +"information regarding <application>GNOME</application> on FreeBSD can be " +"found at <link xlink:href=\"http://www.FreeBSD.org/gnome\">http://www." +"FreeBSD.org/gnome</link>. That web site contains additional documentation " +"about installing, configuring, and managing <application>GNOME</application> " +"on FreeBSD." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11916 +msgid "This desktop environment can be installed from a package:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11919 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install gnome3</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11921 +msgid "" +"To instead build <application>GNOME</application> from ports, use the " +"following command. <application>GNOME</application> is a large application " +"and will take some time to compile, even on a fast computer." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11927 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/x11/gnome3</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11930 +msgid "" +"<application>GNOME</application> requires <filename>/proc</filename> to be " +"mounted. Add this line to <filename>/etc/fstab</filename> to mount this file " +"system automatically during system startup:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11935 book.translate.xml:12026 +#, no-wrap +msgid "proc /proc procfs rw 0 0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11937 +msgid "" +"<application>GNOME</application> uses <application>D-Bus</application> and " +"<application>HAL</application> for a message bus and hardware abstraction. " +"These applications are automatically installed as dependencies of " +"<application>GNOME</application>. Enable them in <filename>/etc/rc.conf</" +"filename> so they will be started when the system boots:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11945 book.translate.xml:12036 +#, no-wrap +msgid "" +"dbus_enable=\"YES\"\n" +"hald_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11948 +msgid "" +"After installation, configure <application>Xorg</application> to start " +"<application>GNOME</application>. The easiest way to do this is to enable " +"the GNOME Display Manager, <application>GDM</application>, which is " +"installed as part of the <application>GNOME</application> package or port. " +"It can be enabled by adding this line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11957 +#, no-wrap +msgid "gdm_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11959 +msgid "" +"It is often desirable to also start all <application>GNOME</application> " +"services. To achieve this, add a second line to <filename>/etc/rc.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:11963 +#, no-wrap +msgid "gnome_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11965 +msgid "" +"<application>GDM</application> will start automatically when the system " +"boots." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11968 +msgid "" +"A second method for starting <application>GNOME</application> is to type " +"<command>startx</command> from the command-line after configuring " +"<filename>~/.xinitrc</filename>. If this file already exists, replace the " +"line that starts the current window manager with one that starts <filename>/" +"usr/local/bin/gnome-session</filename>. If this file does not exist, create " +"it with this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11977 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>echo \"exec /usr/local/bin/gnome-session\" > ~/.xinitrc</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11979 +msgid "" +"A third method is to use <application>XDM</application> as the display " +"manager. In this case, create an executable <filename>~/.xsession</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:11983 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>echo \"#!/bin/sh\" > ~/.xsession</userinput>\n" +"<prompt>%</prompt> <userinput>echo \"exec /usr/local/bin/gnome-session\" >> ~/.xsession</userinput>\n" +"<prompt>%</prompt> <userinput>chmod +x ~/.xsession</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:11989 +msgid "KDE" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:11993 +msgid "" +"<application>KDE</application> is another easy-to-use desktop environment. " +"This desktop provides a suite of applications with a consistent look and " +"feel, a standardized menu and toolbars, keybindings, color-schemes, " +"internationalization, and a centralized, dialog-driven desktop " +"configuration. More information on <application>KDE</application> can be " +"found at <link xlink:href=\"http://www.kde.org/\">http://www.kde.org/</" +"link>. For FreeBSD-specific information, consult <link xlink:href=\"http://" +"freebsd.kde.org/\">http://freebsd.kde.org</link>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12002 +msgid "To install the <application>KDE</application> package, type:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12005 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install x11/kde4</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12007 +msgid "" +"To instead build the <application>KDE</application> port, use the following " +"command. Installing the port will provide a menu for selecting which " +"components to install. <application>KDE</application> is a large application " +"and will take some time to compile, even on a fast computer." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12013 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/x11/kde4</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:12016 +msgid "<primary>KDE</primary> <secondary>display manager</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12021 +msgid "" +"<application>KDE</application> requires <filename>/proc</filename> to be " +"mounted. Add this line to <filename>/etc/fstab</filename> to mount this file " +"system automatically during system startup:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12028 +msgid "" +"<application>KDE</application> uses <application>D-Bus</application> and " +"<application>HAL</application> for a message bus and hardware abstraction. " +"These applications are automatically installed as dependencies of " +"<application>KDE</application>. Enable them in <filename>/etc/rc.conf</" +"filename> so they will be started when the system boots:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12039 +msgid "" +"The installation of <application>KDE</application> includes the KDE Display " +"Manager, <application>KDM</application>. To enable this display manager, add " +"this line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12045 +#, no-wrap +msgid "kdm4_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12047 +msgid "" +"A second method for launching <application>KDE</application> is to type " +"<command>startx</command> from the command line. For this to work, the " +"following line is needed in <filename>~/.xinitrc</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12053 +#, no-wrap +msgid "exec /usr/local/bin/startkde" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12055 +msgid "" +"A third method for starting <application>KDE</application> is through " +"<application>XDM</application>. To do so, create an executable <filename>~/." +"xsession</filename> as follows:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12060 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>echo \"#!/bin/sh\" > ~/.xsession</userinput>\n" +"<prompt>%</prompt> <userinput>echo \"exec /usr/local/bin/startkde\" >> ~/.xsession</userinput>\n" +"<prompt>%</prompt> <userinput>chmod +x ~/.xsession</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12064 +msgid "" +"Once <application>KDE</application> is started, refer to its built-in help " +"system for more information on how to use its various menus and applications." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:12070 +msgid "Xfce" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12072 +msgid "" +"<application>Xfce</application> is a desktop environment based on the GTK+ " +"toolkit used by <application>GNOME</application>. However, it is more " +"lightweight and provides a simple, efficient, easy-to-use desktop. It is " +"fully configurable, has a main panel with menus, applets, and application " +"launchers, provides a file manager and sound manager, and is themeable. " +"Since it is fast, light, and efficient, it is ideal for older or slower " +"machines with memory limitations. More information on <application>Xfce</" +"application> can be found at <link xlink:href=\"http://www.xfce.org/" +"\">http://www.xfce.org</link>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12083 +msgid "To install the <application>Xfce</application> package:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12086 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install xfce</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12088 +msgid "Alternatively, to build the port:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12090 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/x11-wm/xfce4</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12093 +msgid "" +"Unlike <application>GNOME</application> or <application>KDE</application>, " +"<application>Xfce</application> does not provide its own login manager. In " +"order to start <application>Xfce</application> from the command line by " +"typing <command>startx</command>, first add its entry to <filename>~/." +"xinitrc</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12100 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>echo \"exec /usr/local/bin/startxfce4 --with-ck-launch\" > ~/.xinitrc</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12102 +msgid "" +"An alternate method is to use <application>XDM</application>. To configure " +"this method, create an executable <filename>~/.xsession</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12106 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>echo \"#!/bin/sh\" > ~/.xsession</userinput>\n" +"<prompt>%</prompt> <userinput>echo \"exec /usr/local/bin/startxfce4 --with-ck-launch\" >> ~/.xsession</userinput>\n" +"<prompt>%</prompt> <userinput>chmod +x ~/.xsession</userinput>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:12113 +msgid "Installing Compiz Fusion" +msgstr "安裝 Compiz Fusion" + +#. (itstool) path: sect1/para +#: book.translate.xml:12115 +msgid "" +"One way to make using a desktop computer more pleasant is with nice 3D " +"effects." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12118 +msgid "" +"Installing the <application>Compiz Fusion</application> package is easy, but " +"configuring it requires a few steps that are not described in the port's " +"documentation." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:12123 +msgid "Setting up the FreeBSD nVidia Driver" +msgstr "設定 FreeBSD nVidia 驅動程式" + +#. (itstool) path: sect2/para +#: book.translate.xml:12125 +msgid "" +"Desktop effects can cause quite a load on the graphics card. For an nVidia-" +"based graphics card, the proprietary driver is required for good " +"performance. Users of other graphics cards can skip this section and " +"continue with the <filename>xorg.conf</filename> configuration." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12131 +msgid "" +"To determine which nVidia driver is needed see the <link xlink:href=" +"\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/faq/x.html#idp59950544\">FAQ " +"question on the subject</link>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12134 +msgid "" +"Having determined the correct driver to use for your card, installation is " +"as simple as installing any other package." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12138 +msgid "For example, to install the latest driver:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12140 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install x11/nvidia-driver</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12142 +msgid "" +"The driver will create a kernel module, which needs to be loaded at system " +"startup. Add the following line to <filename>/boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12146 +#, no-wrap +msgid "nvidia_load=\"YES\"" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:12149 +msgid "" +"To immediately load the kernel module into the running kernel by issuing a " +"command like <command>kldload nvidia</command>, however it has been noted " +"that the some versions of <application>Xorg</application> will not function " +"properly if the driver is not loaded at boot time. After editing <filename>/" +"boot/loader.conf</filename>, a reboot is recommended." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12158 +msgid "" +"With the kernel module loaded, you normally only need to change a single " +"line in <filename>xorg.conf</filename> to enable the proprietary driver:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12162 +msgid "Find the following line in <filename>/etc/X11/xorg.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12165 +#, no-wrap +msgid "Driver \"nv\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12167 +msgid "and change it to:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12169 +#, no-wrap +msgid "Driver \"nvidia\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12171 +msgid "" +"Start the GUI as usual, and you should be greeted by the nVidia splash. " +"Everything should work as usual." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:12176 +msgid "Configuring xorg.conf for Desktop Effects" +msgstr "設定 xorg.conf 來啟動桌面特效" + +#. (itstool) path: sect2/para +#: book.translate.xml:12178 +msgid "" +"To enable <application>Compiz Fusion</application>, <filename>/etc/X11/xorg." +"conf</filename> needs to be modified:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12182 +msgid "Add the following section to enable composite effects:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12185 +#, no-wrap +msgid "" +"Section \"Extensions\"\n" +" Option \"Composite\" \"Enable\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12189 +msgid "" +"Locate the <quote>Screen</quote> section which should look similar to the " +"one below:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12192 +#, no-wrap +msgid "" +"Section \"Screen\"\n" +" Identifier \"Screen0\"\n" +" Device \"Card0\"\n" +" Monitor \"Monitor0\"\n" +" ..." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12198 +msgid "and add the following two lines (after <quote>Monitor</quote> will do):" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12201 +#, no-wrap +msgid "" +"DefaultDepth 24\n" +"Option \"AddARGBGLXVisuals\" \"True\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12204 +msgid "" +"Locate the <quote>Subsection</quote> that refers to the screen resolution " +"that you wish to use. For example, if you wish to use 1280x1024, locate the " +"section that follows. If the desired resolution does not appear in any " +"subsection, you may add the relevant entry by hand:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12210 +#, no-wrap +msgid "" +"SubSection \"Display\"\n" +" Viewport 0 0\n" +" Modes \"1280x1024\"\n" +"EndSubSection" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12215 +msgid "" +"A color depth of 24 bits is needed for desktop composition, change the above " +"subsection to:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12218 +#, no-wrap +msgid "" +"SubSection \"Display\"\n" +" Viewport 0 0\n" +" Depth 24\n" +" Modes \"1280x1024\"\n" +"EndSubSection" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12224 +msgid "" +"Finally, confirm that the <quote>glx</quote> and <quote>extmod</quote> " +"modules are loaded in the <quote>Module</quote> section:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12228 +#, no-wrap +msgid "" +"Section \"Module\"\n" +" Load \"extmod\"\n" +" Load \"glx\"\n" +" ..." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12233 +msgid "" +"The preceding can be done automatically with <package>x11/nvidia-xconfig</" +"package> by running (as root):" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12237 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>nvidia-xconfig --add-argb-glx-visuals</userinput>\n" +"<prompt>#</prompt> <userinput>nvidia-xconfig --composite</userinput>\n" +"<prompt>#</prompt> <userinput>nvidia-xconfig --depth=24</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:12243 +msgid "Installing and Configuring Compiz Fusion" +msgstr "安裝與設定 Compiz Fusion" + +#. (itstool) path: sect2/para +#: book.translate.xml:12245 +msgid "" +"Installing <application>Compiz Fusion</application> is as simple as any " +"other package:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12248 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install x11-wm/compiz-fusion</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12250 +msgid "" +"When the installation is finished, start your graphic desktop and at a " +"terminal, enter the following commands (as a normal user):" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12254 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>compiz --replace --sm-disable --ignore-desktop-hints ccp &</userinput>\n" +"<prompt>%</prompt> <userinput>emerald --replace &</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12257 +msgid "" +"Your screen will flicker for a few seconds, as your window manager (e.g. " +"<application>Metacity</application> if you are using <application>GNOME</" +"application>) is replaced by <application>Compiz Fusion</application>. " +"<application>Emerald</application> takes care of the window decorations (i." +"e. close, minimize, maximize buttons, title bars and so on)." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12265 +msgid "" +"You may convert this to a trivial script and have it run at startup " +"automatically (e.g. by adding to <quote>Sessions</quote> in a " +"<application>GNOME</application> desktop):" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12270 +#, no-wrap +msgid "" +"#! /bin/sh\n" +"compiz --replace --sm-disable --ignore-desktop-hints ccp &\n" +"emerald --replace &" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12274 +msgid "" +"Save this in your home directory as, for example, <filename>start-compiz</" +"filename> and make it executable:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12278 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>chmod +x ~/start-compiz</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12280 +msgid "" +"Then use the GUI to add it to <guimenuitem>Startup Programs</guimenuitem> " +"(located in <guimenuitem>System</guimenuitem>, <guimenuitem>Preferences</" +"guimenuitem>, <guimenuitem>Sessions</guimenuitem> on a <application>GNOME</" +"application> desktop)." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12287 +msgid "" +"To actually select all the desired effects and their settings, execute " +"(again as a normal user) the <application>Compiz Config Settings Manager</" +"application>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12291 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>ccsm</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:12294 +msgid "" +"In <application>GNOME</application>, this can also be found in the " +"<guimenuitem>System</guimenuitem>, <guimenuitem>Preferences</guimenuitem> " +"menu." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12299 +msgid "" +"If you have selected <quote>gconf support</quote> during the build, you will " +"also be able to view these settings using <command>gconf-editor</command> " +"under <literal>apps/compiz</literal>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12310 +msgid "" +"If the mouse does not work, you will need to first configure it before " +"proceeding. In recent <application>Xorg</application> versions, the " +"<literal>InputDevice</literal> sections in <filename>xorg.conf</filename> " +"are ignored in favor of the autodetected devices. To restore the old " +"behavior, add the following line to the <literal>ServerLayout</literal> or " +"<literal>ServerFlags</literal> section of this file:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:12319 +#, no-wrap +msgid "Option \"AutoAddDevices\" \"false\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12321 +msgid "" +"Input devices may then be configured as in previous versions, along with any " +"other options needed (e.g., keyboard layout switching)." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:12326 +msgid "" +"As previously explained the <application>hald</application> daemon will, by " +"default, automatically detect your keyboard. There are chances that your " +"keyboard layout or model will not be correct, desktop environments like " +"<application>GNOME</application>, <application>KDE</application> or " +"<application>Xfce</application> provide tools to configure the keyboard. " +"However, it is possible to set the keyboard properties directly either with " +"the help of the <citerefentry vendor=\"xorg\"><refentrytitle>setxkbmap</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> utility or with a " +"<application>hald</application>'s configuration rule." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:12338 +msgid "" +"For example if, one wants to use a PC 102 keys keyboard coming with a french " +"layout, we have to create a keyboard configuration file for " +"<application>hald</application> called <filename>x11-input.fdi</filename> " +"and saved in the <filename>/usr/local/etc/hal/fdi/policy</filename> " +"directory. This file should contain the following lines:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:12346 +#, no-wrap +msgid "" +"<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n" +"<deviceinfo version=\"0.2\">\n" +" <device>\n" +" <match key=\"info.capabilities\" contains=\"input.keyboard\">\n" +"\t <merge key=\"input.x11_options.XkbModel\" type=\"string\">pc102</merge>\n" +"\t <merge key=\"input.x11_options.XkbLayout\" type=\"string\">fr</merge>\n" +" </match>\n" +" </device>\n" +"</deviceinfo>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:12356 +msgid "" +"If this file already exists, just copy and add to your file the lines " +"regarding the keyboard configuration." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:12359 +msgid "" +"You will have to reboot your machine to force <application>hald</" +"application> to read this file." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:12362 +msgid "" +"It is possible to do the same configuration from an X terminal or a script " +"with this command line:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:12365 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>setxkbmap -model pc102 -layout fr</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:12367 +msgid "" +"<filename>/usr/local/share/X11/xkb/rules/base.lst</filename> lists the " +"various keyboard, layouts and options available." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:12372 +msgid "<primary><application>Xorg</application> tuning</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12375 +msgid "" +"The <filename>xorg.conf.new</filename> configuration file may now be tuned " +"to taste. Open the file in a text editor such as <citerefentry vendor=\"ports" +"\"><refentrytitle>emacs</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> or <citerefentry><refentrytitle>ee</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. If the monitor is an " +"older or unusual model that does not support autodetection of sync " +"frequencies, those settings can be added to <filename>xorg.conf.new</" +"filename> under the <literal>\"Monitor\"</literal> section:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:12383 +#, no-wrap +msgid "" +"Section \"Monitor\"\n" +"\tIdentifier \"Monitor0\"\n" +"\tVendorName \"Monitor Vendor\"\n" +"\tModelName \"Monitor Model\"\n" +"\tHorizSync 30-107\n" +"\tVertRefresh 48-120\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12391 +msgid "" +"Most monitors support sync frequency autodetection, making manual entry of " +"these values unnecessary. For the few monitors that do not support " +"autodetection, avoid potential damage by only entering values provided by " +"the manufacturer." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12397 +msgid "" +"X allows DPMS (Energy Star) features to be used with capable monitors. The " +"<citerefentry vendor=\"xfree86\"><refentrytitle>xset</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> program controls the " +"time-outs and can force standby, suspend, or off modes. If you wish to " +"enable DPMS features for your monitor, you must add the following line to " +"the monitor section:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:12403 +#, no-wrap +msgid "Option \"DPMS\"" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:12405 +msgid "<primary><filename>xorg.conf</filename></primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12409 +msgid "" +"While the <filename>xorg.conf.new</filename> configuration file is still " +"open in an editor, select the default resolution and color depth desired. " +"This is defined in the <literal>\"Screen\"</literal> section:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:12414 +#, no-wrap +msgid "" +"Section \"Screen\"\n" +"\tIdentifier \"Screen0\"\n" +"\tDevice \"Card0\"\n" +"\tMonitor \"Monitor0\"\n" +"\tDefaultDepth 24\n" +"\tSubSection \"Display\"\n" +"\t\tViewport 0 0\n" +"\t\tDepth 24\n" +"\t\tModes \"1024x768\"\n" +"\tEndSubSection\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12426 +msgid "" +"The <literal>DefaultDepth</literal> keyword describes the color depth to run " +"at by default. This can be overridden with the <option>-depth</option> " +"command line switch to <citerefentry vendor=\"xorg\"><refentrytitle>Xorg</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. The <literal>Modes</" +"literal> keyword describes the resolution to run at for the given color " +"depth. Note that only VESA standard modes are supported as defined by the " +"target system's graphics hardware. In the example above, the default color " +"depth is twenty-four bits per pixel. At this color depth, the accepted " +"resolution is 1024 by 768 pixels." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12437 +msgid "" +"Finally, write the configuration file and test it using the test mode given " +"above." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:12441 +msgid "" +"One of the tools available to assist you during troubleshooting process are " +"the <application>Xorg</application> log files, which contain information on " +"each device that the <application>Xorg</application> server attaches to. " +"<application>Xorg</application> log file names are in the format of " +"<filename>/var/log/Xorg.0.log</filename>. The exact name of the log can vary " +"from <filename>Xorg.0.log</filename> to <filename>Xorg.8.log</filename> and " +"so forth." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12453 +msgid "" +"If all is well, the configuration file needs to be installed in a common " +"location where <citerefentry vendor=\"xorg\"><refentrytitle>Xorg</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> can find it. This is " +"typically <filename>/etc/X11/xorg.conf</filename> or <filename>/usr/local/" +"etc/X11/xorg.conf</filename>." +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:12458 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cp xorg.conf.new /etc/X11/xorg.conf</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12460 +msgid "" +"The <application>Xorg</application> configuration process is now complete. " +"<application>Xorg</application> may be now started with the <citerefentry " +"vendor=\"xfree86\"><refentrytitle>startx</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> utility. The <application>Xorg</application> " +"server may also be started with the use of <citerefentry vendor=" +"\"xfree86\"><refentrytitle>xdm</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:12467 +msgid "" +"Configuration with <trademark class=\"registered\">Intel</trademark> " +"<literal>i810</literal> Graphics Chipsets" +msgstr "" +"設定 <trademark class=\"registered\">Intel</trademark> <literal>i810</" +"literal> 繪圖晶片組" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:12470 +msgid "<primary>Intel i810 graphic chipset</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12474 +msgid "" +"Configuration with <trademark class=\"registered\">Intel</trademark> i810 " +"integrated chipsets requires the <filename>agpgart</filename> AGP " +"programming interface for <application>Xorg</application> to drive the card. " +"See the <citerefentry><refentrytitle>agp</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> driver manual page for more information." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12480 +msgid "" +"This will allow configuration of the hardware as any other graphics board. " +"Note on systems without the <citerefentry><refentrytitle>agp</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver compiled in the " +"kernel, trying to load the module with <citerefentry><refentrytitle>kldload</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> will not work. This " +"driver has to be in the kernel at boot time through being compiled in or " +"using <filename>/boot/loader.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:12489 +msgid "Adding a Widescreen Flatpanel to the Mix" +msgstr "加入寬螢幕平板顯示器到設定檔" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:12491 +msgid "<primary>widescreen flatpanel configuration</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12495 +msgid "" +"This section assumes a bit of advanced configuration knowledge. If attempts " +"to use the standard configuration tools above have not resulted in a working " +"configuration, there is information enough in the log files to be of use in " +"getting the setup working. Use of a text editor will be necessary." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12502 +msgid "" +"Current widescreen (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, et.al.) formats " +"support 16:10 and 10:9 formats or aspect ratios that can be problematic. " +"Examples of some common screen resolutions for 16:10 aspect ratios are:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:12509 +msgid "2560x1600" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:12513 +msgid "1920x1200" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:12517 +msgid "1680x1050" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:12521 +msgid "1440x900" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:12525 +msgid "1280x800" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12529 +msgid "" +"At some point, it will be as easy as adding one of these resolutions as a " +"possible <literal>Mode</literal> in the <literal>Section \"Screen\"</" +"literal> as such:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12533 +#, no-wrap +msgid "" +"Section \"Screen\"\n" +"Identifier \"Screen0\"\n" +"Device \"Card0\"\n" +"Monitor \"Monitor0\"\n" +"DefaultDepth 24\n" +"SubSection \"Display\"\n" +"\tViewport 0 0\n" +"\tDepth 24\n" +"\tModes \"1680x1050\"\n" +"EndSubSection\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12545 +msgid "" +"<application>Xorg</application> is smart enough to pull the resolution " +"information from the widescreen via I2C/DDC information so it knows what the " +"monitor can handle as far as frequencies and resolutions." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12550 +msgid "" +"If those <literal>ModeLines</literal> do not exist in the drivers, one might " +"need to give <application>Xorg</application> a little hint. Using <filename>/" +"var/log/Xorg.0.log</filename> one can extract enough information to manually " +"create a <literal>ModeLine</literal> that will work. Simply look for " +"information resembling this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12558 +#, no-wrap +msgid "" +"(II) MGA(0): Supported additional Video Mode:\n" +"(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm\n" +"(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0\n" +"(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0\n" +"(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12564 +msgid "" +"This information is called EDID information. Creating a <literal>ModeLine</" +"literal> from this is just a matter of putting the numbers in the correct " +"order:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12568 +#, no-wrap +msgid "ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12570 +msgid "" +"So that the <literal>ModeLine</literal> in <literal>Section \"Monitor\"</" +"literal> for this example would look like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:12574 +#, no-wrap +msgid "" +"Section \"Monitor\"\n" +"Identifier \"Monitor1\"\n" +"VendorName \"Bigname\"\n" +"ModelName \"BestModel\"\n" +"ModeLine \"1680x1050\" 146.2 1680 1784 1960 2240 1050 1053 1059 1089\n" +"Option \"DPMS\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12582 +msgid "" +"Now having completed these simple editing steps, X should start on your new " +"widescreen monitor." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:12587 +msgid "Troubleshooting Compiz Fusion" +msgstr "Compiz Fusion 疑難排解" + +#. (itstool) path: question/para +#: book.translate.xml:12592 +msgid "" +"I have installed <application>Compiz Fusion</application>, and after running " +"the commands you mention, my windows are left without title bars and " +"buttons. What is wrong?" +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:12600 +msgid "" +"You are probably missing a setting in <filename>/etc/X11/xorg.conf</" +"filename>. Review this file carefully and check especially the " +"<literal>DefaultDepth</literal> and <literal>AddARGBGLXVisuals</literal> " +"directives." +msgstr "" + +#. (itstool) path: question/para +#: book.translate.xml:12611 +msgid "" +"When I run the command to start <application>Compiz Fusion</application>, " +"the X server crashes and I am back at the console. What is wrong?" +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:12618 +msgid "" +"If you check <filename>/var/log/Xorg.0.log</filename>, you will probably " +"find error messages during the X startup. The most common would be:" +msgstr "" + +#. (itstool) path: answer/screen +#: book.translate.xml:12623 +#, no-wrap +msgid "" +"(EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X\n" +"(EE) NVIDIA(0): log file that the GLX module has been loaded in your X\n" +"(EE) NVIDIA(0): server, and that the module is the NVIDIA GLX module. If\n" +"(EE) NVIDIA(0): you continue to encounter problems, Please try\n" +"(EE) NVIDIA(0): reinstalling the NVIDIA driver." +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:12629 +msgid "" +"This is usually the case when you upgrade <application>Xorg</application>. " +"You will need to reinstall the <package>x11/nvidia-driver</package> package " +"so glx is built again." +msgstr "" + +#. (itstool) path: part/title +#: book.translate.xml:12643 +msgid "Common Tasks" +msgstr "一般作業" + +#. (itstool) path: partintro/para +#: book.translate.xml:12646 +msgid "" +"Now that the basics have been covered, this part of the book discusses some " +"frequently used features of FreeBSD. These chapters:" +msgstr "" +"既然基礎的部分已經提過了,接下來的這個部分將會討論一些常會用到的 FreeBSD 的特" +"色,這些章節包括:" + +#. (itstool) path: listitem/para +#: book.translate.xml:12652 +msgid "" +"Introduce popular and useful desktop applications: browsers, productivity " +"tools, document viewers, and more." +msgstr "介紹給您常見且實用的桌面應用軟體:瀏覽器、辦工工具、文件閱覽程式等。" + +#. (itstool) path: listitem/para +#: book.translate.xml:12658 +msgid "Introduce a number of multimedia tools available for FreeBSD." +msgstr "介紹給您眾多 FreeBSD 上可用的多媒體工具。" + +#. (itstool) path: listitem/para +#: book.translate.xml:12663 +msgid "" +"Explain the process of building a customized FreeBSD kernel to enable extra " +"functionality." +msgstr "解釋如何編譯量身訂做的 FreeBSD 核心以增加額外系統功能的流程。" + +#. (itstool) path: listitem/para +#: book.translate.xml:12668 +msgid "" +"Describe the print system in detail, both for desktop and network-connected " +"printer setups." +msgstr "詳細描述列印系統,包含桌上型印表機及網路印表機的設定。" + +#. (itstool) path: listitem/para +#: book.translate.xml:12673 +msgid "Show how to run Linux applications on the FreeBSD system." +msgstr "展示給您看如何在您的 FreeBSD 系統中執行 Linux 應用軟體。" + +#. (itstool) path: partintro/para +#: book.translate.xml:12678 +msgid "" +"Some of these chapters recommend prior reading, and this is noted in the " +"synopsis at the beginning of each chapter." +msgstr "這些章節中有些需要您預先閱讀些相關文件,在各章節開頭的概要內會提及。" + +#. (itstool) path: chapter/title +#: book.translate.xml:12701 +msgid "Desktop Applications" +msgstr "桌面應用程式" + +#. (itstool) path: sect1/para +#: book.translate.xml:12706 +msgid "" +"While FreeBSD is popular as a server for its performance and stability, it " +"is also suited for day-to-day use as a desktop. With over 24,000 " +"applications available as FreeBSD packages or ports, it is easy to build a " +"customized desktop that runs a wide variety of desktop applications. This " +"chapter demonstrates how to install numerous desktop applications, including " +"web browsers, productivity software, document viewers, and financial " +"software." +msgstr "" +"隨著 FreeBSD 優越的效能及穩定性越來越熱門,它同時適合作為每日使用的桌面系統。" +"FreeBSD 套件或 Ports 有超過 24,000 個可用的應用程式,可以簡單的建立一個自訂的" +"桌面環境來執行各種不同的桌面應用程式。本章將示範如何安裝數個桌面應用程式,包" +"含網頁瀏覽器、辦工軟體、文件閱覽程式以及財務軟體。" + +#. (itstool) path: note/para +#: book.translate.xml:12716 +msgid "" +"Users who prefer to install a pre-built desktop version of FreeBSD rather " +"than configuring one from scratch should refer to the <link xlink:href=" +"\"http://www.pcbsd.org/\">pcbsd.org website.</link>" +msgstr "" +"比起重頭設定,更偏好安裝預先編譯好桌面環境的 FreeBSD 版本的使用者可參考 " +"<link xlink:href=\"http://www.pcbsd.org/\">pcbsd.org 網站</link>" + +#. (itstool) path: sect1/para +#: book.translate.xml:12723 +msgid "Readers of this chapter should know how to:" +msgstr "在閱讀這章之前,你必須了解如何:" + +#. (itstool) path: listitem/para +#: book.translate.xml:12727 +msgid "" +"Install additional software using packages or ports as described in <xref " +"linkend=\"ports\"/>." +msgstr "使用套件或 Port 安裝其他軟體如 <xref linkend=\"ports\"/> 所敘述。" + +#. (itstool) path: listitem/para +#: book.translate.xml:12732 +msgid "Install X and a window manager as described in <xref linkend=\"x11\"/>." +msgstr "安狀 X 與視窗管理程式如 <xref linkend=\"x11\"/> 所敘述。" + +#. (itstool) path: sect1/para +#: book.translate.xml:12737 +msgid "" +"For information on how to configure a multimedia environment, refer to <xref " +"linkend=\"multimedia\"/>." +msgstr "" +"要取得有關如何設定多媒體環境的資訊,請參考 <xref linkend=\"multimedia\"/>。" + +#. (itstool) path: sect1/title +#: book.translate.xml:12742 +msgid "Browsers" +msgstr "瀏覽器" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:12744 +msgid "<primary>browsers</primary> <secondary>web</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:12749 +msgid "" +"FreeBSD does not come with a pre-installed web browser. Instead, the <link " +"xlink:href=\"http://www.FreeBSD.org/ports/www.html\">www</link> category of " +"the Ports Collection contains many browsers which can be installed as a " +"package or compiled from the Ports Collection." +msgstr "" +"在 FreeBSD 中並未預先安裝好網頁瀏覽器。 但在 Ports 套件集中的 <link xlink:" +"href=\"http://www.FreeBSD.org/ports/www.html\">www</link> 分類中有許多瀏覽器" +"可以採 Binary 套件安裝或自 Ports 套件集編譯的方式安裝。" + +#. (itstool) path: sect1/para +#: book.translate.xml:12755 +msgid "" +"The <application>KDE</application> and <application>GNOME</application> " +"desktop environments include their own HTML browser. Refer to <xref linkend=" +"\"x11-wm\"/> for more information on how to set up these complete desktops." +msgstr "" +"<application>KDE</application> 和 <application>GNOME</application> 桌面環境都" +"有提供自有的 HTML 瀏覽器。請參考 <xref linkend=\"x11-wm\"/> 來了解更多有關如" +"何設定完整桌面環境的資訊。" + +#. (itstool) path: sect1/para +#: book.translate.xml:12761 +msgid "" +"Some lightweight browsers include <package>www/dillo2</package>, " +"<package>www/links</package>, and <package>www/w3m</package>." +msgstr "" +"有一些輕量化的瀏覽器可使用,包含 <package>www/dillo2</package>, <package>www/" +"links</package> 以及 <package>www/w3m</package>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:12765 +msgid "" +"This section demonstrates how to install the following popular web browsers " +"and indicates if the application is resource-heavy, takes time to compile " +"from ports, or has any major dependencies." +msgstr "" +"本章節將示範如何安裝下列常見的網頁瀏覽器並說明該應用程式是否需要用到大量資" +"源、花費大量時間自 Ports 編譯或何主要的相依套件。" + +#. (itstool) path: row/entry +#: book.translate.xml:12774 book.translate.xml:13133 book.translate.xml:13443 +#: book.translate.xml:13667 +msgid "Application Name" +msgstr "應用程式名稱" + +#. (itstool) path: row/entry +#: book.translate.xml:12775 book.translate.xml:13134 book.translate.xml:13444 +#: book.translate.xml:13668 +msgid "Resources Needed" +msgstr "所需資源" + +#. (itstool) path: row/entry +#: book.translate.xml:12776 book.translate.xml:13135 book.translate.xml:13445 +#: book.translate.xml:13669 +msgid "Installation from Ports" +msgstr "自 Ports 安裝時間" + +#. (itstool) path: row/entry +#: book.translate.xml:12777 book.translate.xml:17080 book.translate.xml:65535 +msgid "Notes" +msgstr "說明" + +#. (itstool) path: row/entry +#: book.translate.xml:12783 +msgid "<application>Firefox</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:12784 book.translate.xml:12799 book.translate.xml:12807 +msgid "medium" +msgstr "中" + +#. (itstool) path: row/entry +#: book.translate.xml:12785 book.translate.xml:12800 book.translate.xml:12808 +#: book.translate.xml:13144 book.translate.xml:13159 book.translate.xml:13166 +#: book.translate.xml:13483 book.translate.xml:13678 book.translate.xml:13685 +#: book.translate.xml:13692 +msgid "heavy" +msgstr "多" + +#. (itstool) path: row/entry +#: book.translate.xml:12786 +msgid "" +"FreeBSD, <trademark class=\"registered\">Linux</trademark>, and localized " +"versions are available" +msgstr "" +"有 FreeBSD 、 <trademark class=\"registered\">Linux</trademark> 及在地化版本" + +#. (itstool) path: row/entry +#: book.translate.xml:12791 +msgid "<application>Opera</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:12792 book.translate.xml:12793 book.translate.xml:13143 +#: book.translate.xml:13150 book.translate.xml:13151 book.translate.xml:13158 +#: book.translate.xml:13453 book.translate.xml:13454 book.translate.xml:13460 +#: book.translate.xml:13461 book.translate.xml:13467 book.translate.xml:13468 +#: book.translate.xml:13475 book.translate.xml:13476 book.translate.xml:13482 +#: book.translate.xml:13677 book.translate.xml:13684 book.translate.xml:13691 +msgid "light" +msgstr "少" + +#. (itstool) path: row/entry +#: book.translate.xml:12794 +msgid "" +"FreeBSD and <trademark class=\"registered\">Linux</trademark> versions are " +"available" +msgstr "有 FreeBSD 、 <trademark class=\"registered\">Linux</trademark> 版本" + +#. (itstool) path: row/entry +#: book.translate.xml:12798 +msgid "<application>Konqueror</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:12801 +msgid "Requires <application>KDE</application> libraries" +msgstr "需要 <application>KDE</application> 程式庫" + +#. (itstool) path: row/entry +#: book.translate.xml:12806 +msgid "<application>Chromium</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:12809 +msgid "Requires <application>Gtk+</application>" +msgstr "需要 <application>Gtk+</application> 程式庫" + +#. (itstool) path: sect2/title +#: book.translate.xml:12816 +msgid "Firefox" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:12818 +msgid "<primary><application>Firefox</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12822 +msgid "" +"<application>Firefox</application> is an open source browser that is fully " +"ported to FreeBSD. It features a standards-compliant HTML display engine, " +"tabbed browsing, popup blocking, extensions, improved security, and more. " +"<application>Firefox</application> is based on the <application>Mozilla</" +"application> codebase." +msgstr "" +"<application>Firefox</application> 是一套已完整植到 FreeBSD 的開放源始碼瀏覽" +"器,它具備符合 HTML 標準的顯示引擎、頁籤瀏覽、彈出視窗封鎖、擴充套件、強化安" +"全性及其他更多功能。<application>Firefox</application> 的基礎使用了 " +"<application>Mozilla</application> 的程式庫。" + +#. (itstool) path: sect2/para +#: book.translate.xml:12829 +msgid "" +"To install the package of the latest release version of " +"<application>Firefox</application>, type:" +msgstr "要安裝最新釋出版本的 <application>Firefox</application> 套件可輸入:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12832 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install firefox</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12834 +msgid "" +"To instead install <application>Firefox</application> Extended Support " +"Release (ESR) version, use:" +msgstr "" +"要安裝延長支援發佈 (Extended Support Release, ESR) 版本的 " +"<application>Firefox</application>,可使用:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12837 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install firefox-esr</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12839 +msgid "" +"Localized versions are available in <package>www/firefox-i18n</package> and " +"<package>www/firefox-esr-i18n</package>." +msgstr "" +"在地化的版本可在 <package>www/firefox-i18n</package> 及 <package>www/firefox-" +"esr-i18n</package> 取得。" + +#. (itstool) path: sect2/para +#: book.translate.xml:12843 +msgid "" +"The Ports Collection can instead be used to compile the desired version of " +"<application>Firefox</application> from source code. This example builds " +"<package>www/firefox</package>, where <literal>firefox</literal> can be " +"replaced with the ESR or localized version to install." +msgstr "" +"使用 Ports 套件地可以用原始碼編譯成您想要的 <application>Firefox</" +"application> 版本。此範例編譯 <package>www/firefox</package>,其中 " +"<literal>firefox</literal> 可替換為 ESR 或在地化版本來安裝。" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12850 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/www/firefox</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:12854 +msgid "Firefox and <trademark>Java</trademark> Plugin" +msgstr "Firefox 與 <trademark>Java</trademark> 附加元件" + +#. (itstool) path: sect3/para +#: book.translate.xml:12856 +msgid "" +"The installation of <application>Firefox</application> does not include " +"<trademark>Java</trademark> support. However, <package>java/icedtea-web</" +"package> provides a free software web browser plugin for running Java " +"applets. It can be installed as a package. To alternately compile the port:" +msgstr "" +"安裝 <application>Firefox</application> 並不包含 <trademark>Java</trademark> " +"支援,雖然如此 <package>java/icedtea-web</package> 提供了免費的網頁瀏覽器附加" +"元件來執行 Java applet,此附加元件可以用 Binary 套件安裝或者自 Port 編譯:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:12863 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/java/icedtea-web</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:12866 +msgid "Keep the default configuration options when compiling the port." +msgstr "編譯 Port 時使用預設設定選項。" + +#. (itstool) path: sect3/para +#: book.translate.xml:12869 +msgid "" +"Once installed, start <application>firefox</application>, enter " +"<literal>about:plugins</literal> in the location bar and press " +"<keycap>Enter</keycap>. A page listing the installed plugins will be " +"displayed. The <application><trademark>Java</trademark></application> plugin " +"should be listed." +msgstr "" +"安裝完成時,啟動 <application>firefox</application>,在網址列輸入 " +"<literal>about:plugins</literal> 並按 <keycap>Enter</keycap> 鍵。 會出現一個" +"頁面列出已安裝的附加元件。 <application><trademark>Java</trademark></" +"application> 附加元件應該會列在其中。" + +#. (itstool) path: sect3/para +#: book.translate.xml:12876 +msgid "" +"If the browser is unable to find the plugin, each user will have to run the " +"following command and relaunch the browser:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:12880 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ln -s /usr/local/lib/IcedTeaPlugin.so \\\n" +" $HOME/.mozilla/plugins/</userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:12886 +msgid "" +"Firefox and <trademark class=\"registered\">Adobe</trademark> <trademark " +"class=\"registered\">Flash</trademark> Plugin" +msgstr "" +"Firefox 與 <trademark class=\"registered\">Adobe</trademark> <trademark " +"class=\"registered\">Flash</trademark> 附加元件" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:12888 +msgid "<primary>Flash</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:12892 +msgid "" +"A native <trademark class=\"registered\">Adobe</trademark> <trademark class=" +"\"registered\">Flash</trademark> plugin is not available for FreeBSD. " +"However, a software wrapper for running the <trademark class=\"registered" +"\">Linux</trademark> version of the plugin is available. This wrapper also " +"provides support for other browser plugins such as <trademark class=" +"\"registered\">RealPlayer</trademark>." +msgstr "" +"FreeBSD 並沒有原生的 <trademark class=\"registered\">Adobe</trademark> " +"<trademark class=\"registered\">Flash</trademark> 附加原件。雖然如此,仍可以" +"使用軟體包裝程式來執行 <trademark class=\"registered\">Linux</trademark> 版" +"本 的附加元件。該包裝程式也提供其他瀏覽器附加元件的支援,如 <trademark class=" +"\"registered\">RealPlayer</trademark>。" + +#. (itstool) path: sect3/para +#: book.translate.xml:12897 +msgid "To install and enable this plugin, perform these steps:" +msgstr "要安裝並開啟此附加元件,可執行以下步驟:" + +#. (itstool) path: step/para +#: book.translate.xml:12902 +msgid "" +"Install <package role=\"port\">www/nspluginwrapper</package> from the port. " +"Due to licensing restrictions, a package is not available. This port " +"requires <package>emulators/linux_base-c6</package>." +msgstr "" +"自 Port 安裝 <package role=\"port\">www/nspluginwrapper</package> ,受到授權" +"條款的限制,該套件無 Binary 版本。此 Port 需安裝 <package>emulators/" +"linux_base-c6</package>。" + +#. (itstool) path: step/para +#: book.translate.xml:12909 +msgid "" +"Install <package role=\"port\">www/linux-c6-flashplugin11</package> from the " +"port. Due to licensing restrictions, a package is not available." +msgstr "" +"自 Port 安裝 <package role=\"port\">www/linux-c6-flashplugin11</package> ,受" +"到授權條款的限制,該套件無 Binary 版本。" + +#. (itstool) path: step/para +#: book.translate.xml:12915 +msgid "Before the plugin is first used, each user must run:" +msgstr "第一次使用附加元件前,每位使用者需要先執行:" + +#. (itstool) path: step/screen +#: book.translate.xml:12918 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>nspluginwrapper -v -a -i</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:12920 +msgid "" +"When the plugin port has been updated and reinstalled, each user must run:" +msgstr "當附加元件 Port 完成更新並且重新安裝後,每位使用者需要執行:" + +#. (itstool) path: step/screen +#: book.translate.xml:12923 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>nspluginwrapper -v -a -u</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:12925 +msgid "" +"Start the browser, enter <literal>about:plugins</literal> in the location " +"bar and press <keycap>Enter</keycap>. A list of all the currently available " +"plugins will be shown." +msgstr "" +"開啟瀏覽器並在網址列輸入 <literal>about:plugins</literal> 並按 " +"<keycap>Enter</keycap> 鍵,目前可用的附加元件清單中應會顯示該附加元件。" + +#. (itstool) path: sect3/title +#: book.translate.xml:12935 +msgid "" +"Firefox and Swfdec <trademark class=\"registered\">Flash</trademark> Plugin" +msgstr "" +"Firefox 與 Swfdec <trademark class=\"registered\">Flash</trademark> 附加元件" + +#. (itstool) path: sect3/para +#: book.translate.xml:12937 +msgid "" +"<application>Swfdec</application> is a decoder and renderer for <trademark " +"class=\"registered\">Flash</trademark> animations. <application>Swfdec-" +"Mozilla</application> is a plugin for <application>Firefox</application> " +"browsers that uses the Swfdec library for playing SWF files." +msgstr "" + +#. (itstool) path: sect3/para +#. (itstool) path: sect2/para +#: book.translate.xml:12943 book.translate.xml:13264 +msgid "To install the package:" +msgstr "要安裝套件可:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:12945 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install swfdec-plugin</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:12947 +msgid "" +"If the package is not available, compile and install it from the Ports " +"Collection:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:12950 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/www/swfdec-plugin</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:12953 +msgid "Restart the browser to activate this plugin." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:12958 +msgid "Opera" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:12960 +msgid "<primary><application>Opera</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12964 +msgid "" +"<application>Opera</application> is a full-featured and standards-compliant " +"browser which is still lightweight and fast. It comes with a built-in mail " +"and news reader, an IRC client, an RSS/Atom feeds reader, and more. It is " +"available as a native FreeBSD version and as a version that runs under " +"<trademark class=\"registered\">Linux</trademark> emulation." +msgstr "" +"<application>Opera</application> 是個具備完整功能、符合標準且輕量、執行速度快" +"的瀏覽器。 它同時也具備了內建的郵件、新聞閱讀器、IRC 客戶端、RSS/Atom 來源閱" +"讀器等。 可用的版本有兩種原生的 FreeBSD 版本及 <trademark class=\"registered" +"\">Linux</trademark> 模擬模式下執行的版本。" + +#. (itstool) path: sect2/para +#: book.translate.xml:12971 +msgid "" +"This command installs the package of the FreeBSD version of " +"<application>Opera</application>. Replace <literal>opera</literal> with " +"<literal>linux-opera</literal> to instead install the <trademark class=" +"\"registered\">Linux</trademark> version." +msgstr "" +"以下指令可安裝 FreeBSD Binary 套件版本的 Opera,替換 <literal>opera</" +"literal> 為 <literal>linux-opera</literal> 則可改安裝 <trademark class=" +"\"registered\">Linux</trademark> 版本。" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12976 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install opera</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12978 +msgid "" +"Alternately, install either version through the Ports Collection. This " +"example compiles the native version:" +msgstr "或者,可安裝 Ports 套件集中的版本,以下範例會編譯原生的版本。" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12981 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/www/opera</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12984 +msgid "" +"To install the <trademark class=\"registered\">Linux</trademark> version, " +"substitute <literal>linux-opera</literal> in place of <literal>opera</" +"literal>." +msgstr "" +"要安裝 <trademark class=\"registered\">Linux</trademark> 則替換 " +"<literal>opera</literal> 為 <literal>linux-opera</literal>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:12988 +msgid "" +"To install <trademark class=\"registered\">Adobe</trademark> <trademark " +"class=\"registered\">Flash</trademark> plugin support, first compile the " +"<package role=\"port\">www/linux-c6-flashplugin11</package> port. Licensing " +"restrictions prevent making a package available. Then install <package role=" +"\"port\">www/opera-linuxplugins</package>. This example compiles both " +"applications from ports:" +msgstr "" +"要安裝 <trademark class=\"registered\">Adobe</trademark> <trademark class=" +"\"registered\">Flash</trademark> 附加元件,需先編譯 <package role=\"port" +"\">www/linux-c6-flashplugin11</package> Port,因受到授權條款限制無法事先做為 " +"Binary 套件。然後安裝 <package role=\"port\">www/opera-linuxplugins</" +"package>。以下範例示範編譯 Port 中的這兩個應用程式。" + +#. (itstool) path: sect2/screen +#: book.translate.xml:12994 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/www/linux-c6-flashplugin11</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>\n" +"<prompt>#</prompt> <userinput>cd /usr/ports/www/opera-linuxplugins</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:12999 +msgid "" +"Once installed, check the presence of the plugin by starting the browser, " +"entering <literal>opera:plugins</literal> in the location bar and pressing " +"<keycap>Enter</keycap>. A list should appear with all the currently " +"available plugins." +msgstr "" +"安裝完成後,開啟瀏覽器檢查附加元件是否存在,在網址列輸入 <literal>opera:" +"plugins</literal> 並按下 <keycap>Enter</keycap> 鍵,便會有清單顯示目前可用的" +"附加元件。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13005 +msgid "" +"To add the <application><trademark>Java</trademark></application> plugin, " +"follow the instructions in <xref linkend=\"moz-java-plugin\"/>." +msgstr "" +"若要安裝 <application><trademark>Java</trademark></application> 附加元件請依" +"照 <xref linkend=\"moz-java-plugin\"/> 中的指示。" + +#. (itstool) path: sect2/title +#: book.translate.xml:13010 +msgid "Konqueror" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13012 +msgid "<primary><application>Konqueror</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13016 +msgid "" +"<application>Konqueror</application> is more than a web browser as it is " +"also a file manager and a multimedia viewer. It is included in the " +"<package>x11/kde4-baseapps</package> package or port." +msgstr "" +"<application>Konqueror</application> 不只是個網頁瀏覽器, 它同時也是檔案管理" +"器和多媒體瀏覽器。它包含在 <package>x11/kde4-baseapps</package> 套件或 Port " +"中。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13021 +msgid "" +"<application>Konqueror</application> supports WebKit as well as its own " +"KHTML. WebKit is a rendering engine used by many modern browsers including " +"Chromium. To use WebKit with <application>Konqueror</application> on " +"FreeBSD, install the <package>www/kwebkitpart</package> package or port. " +"This example compiles the port:" +msgstr "" +"<application>Konqueror</application> 使用支援 WebKit 以及它自有的 KTHML。" +"WebKit 是一套被許多現代瀏覽器所使用的繪圖引擎,包含 Chromium。要在 FreeBSD " +"的 <application>Konqueror</application> 使用 WebKit 需安裝 <package>www/" +"kwebkitpart</package> 套件或 Port。此範例示範使用 Port 編譯:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13028 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/www/kwebkitpart</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13031 +msgid "" +"To enable WebKit within <application>Konqueror</application>, click " +"<quote>Settings</quote>, <quote>Configure Konqueror</quote>. In the " +"<quote>General</quote> settings page, click the drop-down menu next to " +"<quote>Default web browser engine</quote> and change <quote>KHTML</quote> to " +"<quote>WebKit</quote>." +msgstr "" +"要啟動 <application>Konqueror</application> 中的 WebKit 點選 " +"<quote>Settings</quote>、<quote>Configure Konqueror</quote>。在 " +"<quote>General</quote> 設定頁面內點選 <quote>Default web browser engine</" +"quote> 旁的下拉示選單並變更 <quote>KHTML</quote> 為 <quote>WebKit</quote>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13039 +msgid "" +"<application>Konqueror</application> also supports <application><trademark " +"class=\"registered\">Flash</trademark></application>. A <quote>How To</" +"quote> guide for getting <application><trademark class=\"registered\">Flash</" +"trademark></application> support on <application>Konqueror</application> is " +"available at <uri xlink:href=\"http://freebsd.kde.org/howtos/konqueror-flash." +"php\">http://freebsd.kde.org/howtos/konqueror-flash.php</uri>." +msgstr "" +"<application>Konqueror</application> 也支援 <application><trademark class=" +"\"registered\">Flash</trademark></application>,<quote>如何</quote>在 " +"<application>Konqueror</application> 上安裝 <application><trademark class=" +"\"registered\">Flash</trademark></application> 的說明可參考 <uri xlink:href=" +"\"http://freebsd.kde.org/howtos/konqueror-flash.php\">http://freebsd.kde.org/" +"howtos/konqueror-flash.php</uri>。" + +#. (itstool) path: sect2/title +#: book.translate.xml:13046 +msgid "Chromium" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13048 +msgid "<primary><application>Chromium</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13052 +msgid "" +"<application>Chromium</application> is an open source browser project that " +"aims to build a safer, faster, and more stable web browsing experience. " +"<application>Chromium</application> features tabbed browsing, popup " +"blocking, extensions, and much more. <application>Chromium</application> is " +"the open source project upon which the Google Chrome web browser is based." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13060 +msgid "" +"<application>Chromium</application> can be installed as a package by typing:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13063 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install chromium</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13065 +msgid "" +"Alternatively, <application>Chromium</application> can be compiled from " +"source using the Ports Collection:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13068 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/www/chromium</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:13072 +msgid "" +"The executable for <application>Chromium</application> is <filename>/usr/" +"local/bin/chrome</filename>, not <filename>/usr/local/bin/chromium</" +"filename>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:13078 +msgid "Chromium and <trademark>Java</trademark> Plugin" +msgstr "Chromium 與 <trademark>Java</trademark> 附加元件" + +#. (itstool) path: sect3/para +#: book.translate.xml:13080 +msgid "" +"The installation of <application>Chromium</application> does not include " +"<trademark>Java</trademark> support. To install <trademark>Java</trademark> " +"plugin support, follow the instructions in <xref linkend=\"moz-java-plugin\"/" +">." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:13085 +msgid "" +"Once <trademark>Java</trademark> support is installed, start " +"<application>Chromium</application> and enter <literal>about:plugins</" +"literal> in the address bar. IcedTea-Web should be listed as one of the " +"installed plugins." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:13091 +msgid "" +"If <application>Chromium</application> does not display the IcedTea-Web " +"plugin, run the following commands and restart the web browser:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:13095 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mkdir -p /usr/local/share/chromium/plugins\n" +"<prompt>#</prompt> ln -s /usr/local/lib/IcedTeaPlugin.so \\\n" +" /usr/local/share/chromium/plugins/</userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:13101 +msgid "" +"Chromium and <trademark class=\"registered\">Adobe</trademark> <trademark " +"class=\"registered\">Flash</trademark> Plugin" +msgstr "" +"Chromium 與 <trademark class=\"registered\">Adobe</trademark> <trademark " +"class=\"registered\">Flash</trademark> 附加元件" + +#. (itstool) path: sect3/para +#: book.translate.xml:13103 +msgid "" +"Configuring <application>Chromium</application> and <trademark class=" +"\"registered\">Adobe</trademark> <trademark class=\"registered\">Flash</" +"trademark> is similar to the instructions in <xref linkend=\"moz-flash-plugin" +"\"/>. No additional configuration should be necessary, since " +"<application>Chromium</application> is able to use some plugins from other " +"browsers." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:13114 +msgid "Productivity" +msgstr "辦工工具" + +#. (itstool) path: sect1/para +#: book.translate.xml:13116 +msgid "" +"When it comes to productivity, new users often look for an office suite or " +"an easy-to-use word processor. While some <link linkend=\"x11-wm\">desktop " +"environments</link> like <application>KDE</application> provide an office " +"suite, there is no default productivity package. Several office suites and " +"graphical word processors are available for FreeBSD, regardless of the " +"installed window manager." +msgstr "" +"當開始進行辦公,新的使用者通常會去找好用的辦公室軟體或是好上手的文件處理程" +"式。 雖然有些 <link linkend=\"x11-wm\">桌面環境</link> 像是 " +"<application>KDE</application> 已經提供了辦公軟體組合的套件,FreeBSD 預設未提" +"供任何辦工工具。 不論是否有安裝視窗管理程式,FreeBSD 可安裝多套辦公軟體以及圖" +"型化文件處理程式。" + +#. (itstool) path: sect1/para +#: book.translate.xml:13124 +msgid "" +"This section demonstrates how to install the following popular productivity " +"software and indicates if the application is resource-heavy, takes time to " +"compile from ports, or has any major dependencies." +msgstr "" +"本章節元範如何安裝以下熱門的辦工軟體以及說明該應用程式所需的資源、自 Ports 編" +"譯的時間或者是否有其他主要相依套件。" + +#. (itstool) path: row/entry +#: book.translate.xml:13136 book.translate.xml:13446 book.translate.xml:13670 +msgid "Major Dependencies" +msgstr "主要相依套件" + +#. (itstool) path: row/entry +#: book.translate.xml:13142 +msgid "<application>Calligra</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13145 book.translate.xml:13484 book.translate.xml:13693 +msgid "<application>KDE</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13149 +msgid "<application>AbiWord</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13152 book.translate.xml:13469 +msgid "<application>Gtk+</application> or <application>GNOME</application>" +msgstr "<application>Gtk+</application> 或 <application>GNOME</application>" + +#. (itstool) path: row/entry +#: book.translate.xml:13157 +msgid "<application>The Gimp</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13160 book.translate.xml:13477 +msgid "<application>Gtk+</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13164 +msgid "<application>Apache OpenOffice</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13167 book.translate.xml:13175 +msgid "huge" +msgstr "非常多" + +#. (itstool) path: row/entry +#: book.translate.xml:13168 +msgid "" +"<application><trademark>JDK</trademark></application> and " +"<application>Mozilla</application>" +msgstr "" +"<application><trademark>JDK</trademark></application> 及 " +"<application>Mozilla</application>" + +#. (itstool) path: row/entry +#: book.translate.xml:13173 +msgid "<application>LibreOffice</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13174 +msgid "somewhat heavy" +msgstr "有點多" + +#. (itstool) path: row/entry +#: book.translate.xml:13176 +msgid "" +"<application>Gtk+</application>, or <application>KDE</application>/ " +"<application>GNOME</application>, or <application><trademark>JDK</" +"trademark></application>" +msgstr "" +"<application>Gtk+</application> 或 <application>KDE</application>/ " +"<application>GNOME</application> 或 <application><trademark>JDK</trademark></" +"application>" + +#. (itstool) path: sect2/title +#: book.translate.xml:13186 +msgid "Calligra" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13188 +msgid "<primary><application>Calligra</application></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13191 +msgid "" +"<primary>office suite</primary> <secondary><application>Calligra</" +"application></secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13196 +msgid "" +"The KDE desktop environment includes an office suite which can be installed " +"separately from <application>KDE</application>. <application>Calligra</" +"application> includes standard components that can be found in other office " +"suites. <application>Words</application> is the word processor, " +"<application>Sheets</application> is the spreadsheet program, " +"<application>Stage</application> manages slide presentations, and " +"<application>Karbon</application> is used to draw graphical documents." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13207 +msgid "" +"In FreeBSD, <package>editors/calligra</package> can be installed as a " +"package or a port. To install the package:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13211 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install calligra</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13213 +msgid "If the package is not available, use the Ports Collection instead:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13216 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/editors/calligra</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:13221 +msgid "AbiWord" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13223 +msgid "<primary><application>AbiWord</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13227 +msgid "" +"<application>AbiWord</application> is a free word processing program similar " +"in look and feel to <application><trademark class=\"registered\">Microsoft</" +"trademark> Word</application>. It is fast, contains many features, and is " +"user-friendly." +msgstr "" +"<application>AbiWord</application> 是一個免費的文件處理軟體,外觀和感覺都近似" +"於 <application><trademark class=\"registered\">Microsoft</trademark> Word</" +"application>。 它非常快速,包含了許多功能而且非常容易上手。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13232 +msgid "" +"<application>AbiWord</application> can import or export many file formats, " +"including some proprietary ones like <trademark class=\"registered" +"\">Microsoft</trademark> <filename>.rtf</filename>." +msgstr "" +"<application>AbiWord</application> 可以輸入或輸出許多檔案格式, 包括一些有專" +"利的格式,例如 <trademark class=\"registered\">Microsoft</trademark> " +"<filename>.rtf</filename> 格式。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13236 +msgid "To install the <application>AbiWord</application> package:" +msgstr "" +"要安裝 <application>AbiWord</application> Binary 套件,可使用下列指令:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13239 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install abiword</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13241 +msgid "" +"If the package is not available, it can be compiled from the Ports " +"Collection:" +msgstr "若沒有 Binary 套件版本,也可以從 Ports 套件集中編譯安裝:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13244 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/editors/abiword</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:13249 +msgid "The GIMP" +msgstr "The GIMP" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13251 +msgid "<primary><application>The GIMP</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13255 +msgid "" +"For image authoring or picture retouching, <application>The GIMP</" +"application> provides a sophisticated image manipulation program. It can be " +"used as a simple paint program or as a quality photo retouching suite. It " +"supports a large number of plugins and features a scripting interface. " +"<application>The GIMP</application> can read and write a wide range of file " +"formats and supports interfaces with scanners and tablets." +msgstr "" +"對於影像的編輯及修改來說,<application>The GIMP</application> 是非常精緻的影" +"像處理軟體。 它可以當作簡單的繪圖軟體或是高品質的相片處理軟體。 它支援為數眾" +"多的外掛程式及指令稿 (script-fu) 介面。 <application>The GIMP</application> " +"可以讀寫許多檔案格式。 它也支援掃描器和手寫板。" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13266 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install gimp</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13268 +msgid "Alternately, use the Ports Collection:" +msgstr "或使用 Ports 套件集安裝:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13270 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/graphics/gimp</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13273 +msgid "" +"The graphics category (<link xlink:href=\"http://www.FreeBSD.org/ports/" +"graphics.html\">freebsd.org/ports/graphics.html</link>) of the Ports " +"Collection contains several <application>GIMP</application>-related plugins, " +"help files, and user manuals." +msgstr "" +" 在 Ports 套件集的 graphics 分類 (<link xlink:href=\"http://www.FreeBSD.org/" +"ports/graphics.html\">freebsd.org/ports/graphics.html</link>) 下也包含了許多 " +"<application>GIMP</application> 相關的附加元件,說明檔及使用手冊。" + +#. (itstool) path: sect2/title +#: book.translate.xml:13281 +msgid "Apache OpenOffice" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13283 +msgid "<primary> <application>Apache OpenOffice</application> </primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13288 +msgid "" +"<primary>office suite</primary> <secondary> <application>Apache OpenOffice</" +"application> </secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13295 +msgid "" +"<application>Apache OpenOffice</application> is an open source office suite " +"which is developed under the wing of the Apache Software Foundation's " +"Incubator. It includes all of the applications found in a complete office " +"productivity suite: a word processor, spreadsheet, presentation manager, and " +"drawing program. Its user interface is similar to other office suites, and " +"it can import and export in various popular file formats. It is available in " +"a number of different languages and internationalization has been extended " +"to interfaces, spell checkers, and dictionaries." +msgstr "" +"<application>Apache OpenOffice</application> 是開放原始碼的辦工室軟體,由 " +"Apache Software Foundation's Incubator 底下的團隊所開發。 它包含了所有完整的" +"辦公軟體組合: 文字處理器、試算表、簡報軟體還有繪圖軟體。 除了它的使用者介面" +"非常類似其他的辦公軟體, 他還能夠輸入和輸出許多熱門的檔案格式。 它也包含了不" +"同語言的使用者介面、拼字檢查和字典。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13306 +msgid "" +"The word processor of <application>Apache OpenOffice</application> uses a " +"native XML file format for increased portability and flexibility. The " +"spreadsheet program features a macro language which can be interfaced with " +"external databases. <application>Apache OpenOffice</application> is stable " +"and runs natively on <trademark class=\"registered\">Windows</trademark>, " +"<trademark>Solaris</trademark>, <trademark class=\"registered\">Linux</" +"trademark>, FreeBSD, and <trademark class=\"registered\">Mac OS</" +"trademark> X. More information about <application>Apache OpenOffice</" +"application> can be found at <link xlink:href=\"http://openoffice.org/" +"\">openoffice.org</link>. For FreeBSD specific information refer to <link " +"xlink:href=\"http://porting.openoffice.org/freebsd/\">porting.openoffice.org/" +"freebsd/</link>." +msgstr "" +"<application>Apache OpenOffice</application> 的文字處理器使用原生的 XML 檔案" +"格式來增加移植性及彈性。 試算表程式支援巨集 (Macro) 功能而且能夠使用外來的資" +"料庫介面。 <application>Apache OpenOffice</application> 已經十分穩定, 並且能" +"夠在 <trademark class=\"registered\">Windows</trademark>, " +"<trademark>Solaris</trademark>, <trademark class=\"registered\">Linux</" +"trademark>, FreeBSD 及 <trademark class=\"registered\">Mac OS</trademark> X " +"等作業系統上面執行。 想知道更多關於 <application>Apache OpenOffice</" +"application> 的資訊可以在 <link xlink:href=\"http://openoffice.org/" +"\">openoffice.org</link> 網頁上查詢。在 FreeBSD 特定的資訊可參考 <link xlink:" +"href=\"http://porting.openoffice.org/freebsd/\">porting.openoffice.org/" +"freebsd/</link>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13317 +msgid "To install the <application>Apache OpenOffice</application> package:" +msgstr "要安裝 <application>Apache OpenOffice</application> 套件:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13320 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install apache-openoffice</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13322 +msgid "" +"Once the package is installed, type the following command to launch " +"<application>Apache OpenOffice</application>:" +msgstr "" +"當套件安裝完成之後,只要輸入下面的指令就能執行 <application>Apache " +"OpenOffice</application>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13325 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>openoffice-<replaceable>X.Y.Z</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13327 +msgid "" +"where <replaceable>X.Y.Z</replaceable> is the version number of the " +"installed version of <application>Apache OpenOffice</application>. The first " +"time <application>Apache OpenOffice</application> launches, some questions " +"will be asked and a <filename>.openoffice.org</filename> folder will be " +"created in the user's home directory." +msgstr "" +"其中 <replaceable>X.Y.Z</replaceable> 是已安裝的 <application>Apache " +"OpenOffice</application> 的版本編號。第一次執行 <application>Apache " +"OpenOffice</application> 會詢問一些問題且會在使用者的家目錄建立一個 " +"<filename>.openoffice.org</filename> 資料夾。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13335 +msgid "" +"If the desired <application>Apache OpenOffice</application> package is not " +"available, compiling the port is still an option. However, this requires a " +"lot of disk space and a fairly long time to compile:" +msgstr "" +"若無法由套件取得想要的 <application>Apache OpenOffice</application>,仍可選擇" +"從 Port 編譯。 不過必須注意:編譯的過程會需要大量的磁碟空間與時間:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13340 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/editors/openoffice-4</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:13344 +msgid "To build a localized version, replace the previous command with:" +msgstr "如果想要編譯在地化的版本,將前面的指令替換成為:" + +#. (itstool) path: note/screen +#: book.translate.xml:13347 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make LOCALIZED_LANG=<replaceable>your_language</replaceable> install clean</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:13349 +msgid "" +"Replace <replaceable>your_language</replaceable> with the correct language " +"ISO-code. A list of supported language codes is available in <filename>files/" +"Makefile.localized</filename>, located in the port's directory." +msgstr "" +"替換 <replaceable>your_language</replaceable> 為正確的語言 ISO 編碼。支援的語" +"言編碼清單在 <filename>files/Makefile.localized</filename>,位於該 Port 的目" +"錄。" + +#. (itstool) path: sect2/title +#: book.translate.xml:13359 +msgid "LibreOffice" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13361 +msgid "<primary><application>LibreOffice</application></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13364 +msgid "" +"<primary>office suite</primary> <secondary><application>LibreOffice</" +"application></secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13369 +msgid "" +"<application>LibreOffice</application> is a free software office suite " +"developed by <link xlink:href=\"http://www.documentfoundation.org/" +"\">documentfoundation.org</link>. It is compatible with other major office " +"suites and available on a variety of platforms. It is a rebranded fork of " +"<application>Apache OpenOffice</application> and includes applications found " +"in a complete office productivity suite: a word processor, spreadsheet, " +"presentation manager, drawing program, database management program, and a " +"tool for creating and editing mathematical formulæ. It is available in a " +"number of different languages and internationalization has been extended to " +"interfaces, spell checkers, and dictionaries." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13382 +msgid "" +"The word processor of <application>LibreOffice</application> uses a native " +"XML file format for increased portability and flexibility. The spreadsheet " +"program features a macro language which can be interfaced with external " +"databases. <application>LibreOffice</application> is stable and runs " +"natively on <trademark class=\"registered\">Windows</trademark>, <trademark " +"class=\"registered\">Linux</trademark>, FreeBSD, and <trademark class=" +"\"registered\">Mac OS</trademark> X. More information about " +"<application>LibreOffice</application> can be found at <link xlink:href=" +"\"http://www.libreoffice.org/\">libreoffice.org</link>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13392 +msgid "" +"To install the English version of the <application>LibreOffice</application> " +"package:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13395 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install libreoffice</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13397 +msgid "" +"The editors category (<link xlink:href=\"http://www.FreeBSD.org/ports/" +"editors.html\">freebsd.org/ports/editors.html</link>) of the Ports " +"Collection contains several localizations for <application>LibreOffice</" +"application>. When installing a localized package, replace " +"<literal>libreoffice</literal> with the name of the localized package." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13403 +msgid "" +"Once the package is installed, type the following command to run " +"<application>LibreOffice</application>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13406 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>libreoffice</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13408 +msgid "" +"During the first launch, some questions will be asked and a <filename>." +"libreoffice</filename> folder will be created in the user's home directory." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13412 +msgid "" +"If the desired <application>LibreOffice</application> package is not " +"available, compiling the port is still an option. However, this requires a " +"lot of disk space and a fairly long time to compile. This example compiles " +"the English version:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13418 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/editors/libreoffice</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:13422 +msgid "" +"To build a localized version, <command>cd</command> into the port directory " +"of the desired language. Supported languages can be found in the editors " +"category (<link xlink:href=\"http://www.FreeBSD.org/ports/editors.html" +"\">freebsd.org/ports/editors.html</link>) of the Ports Collection." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:13432 +msgid "Document Viewers" +msgstr "文件閱覽程式" + +#. (itstool) path: sect1/para +#: book.translate.xml:13434 +msgid "" +"Some new document formats have gained popularity since the advent of " +"<trademark class=\"registered\">UNIX</trademark> and the viewers they " +"require may not be available in the base system. This section demonstrates " +"how to install the following document viewers:" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13452 +msgid "<application>Xpdf</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13455 +msgid "<application>FreeType</application>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: sect2/title +#: book.translate.xml:13459 book.translate.xml:13524 +msgid "<application>gv</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13462 +msgid "<application>Xaw3d</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13466 +msgid "<application>Geeqie</application>" +msgstr "<application>Geeqie</application>" + +#. (itstool) path: row/entry +#: book.translate.xml:13474 +msgid "<application>ePDFView</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13481 +msgid "<application>Okular</application>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:13491 +msgid "Xpdf" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13493 +msgid "<primary><application>Xpdf</application></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13496 book.translate.xml:13529 book.translate.xml:13595 +msgid "<primary>PDF</primary> <secondary>viewing</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13501 +msgid "" +"For users that prefer a small FreeBSD PDF viewer, <application>Xpdf</" +"application> provides a light-weight and efficient viewer which requires few " +"resources. It uses the standard X fonts and does not require any additional " +"toolkits." +msgstr "" +"如果你想要一個小型的 FreeBSD PDF 閱覽軟體, <application>Xpdf</application> " +"是個輕量級而且有效率的閱覽器。 它只需要非常少的資源而且十分穩定。 它只使用標" +"準的 X 字型且不需要額外的工具包(Toolkit)。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13507 +msgid "To install the <application>Xpdf</application> package:" +msgstr "安裝 <application>Xpdf</application> 套件:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13510 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install xpdf</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13512 book.translate.xml:13582 book.translate.xml:13727 +#: book.translate.xml:13761 book.translate.xml:13794 +msgid "If the package is not available, use the Ports Collection:" +msgstr "若沒有可用的套件版本,可使用 Ports 套件集安裝:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13515 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/graphics/xpdf</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13518 +msgid "" +"Once the installation is complete, launch <command>xpdf</command> and use " +"the right mouse button to activate the menu." +msgstr "完成安裝後,執行 <command>xpdf</command> 並使用滑鼠右鍵開啟選單。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13526 +msgid "<primary><application>gv</application></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13533 +msgid "<primary>PostScript</primary> <secondary>viewing</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13538 +msgid "" +"<application>gv</application> is a <trademark class=\"registered" +"\">PostScript</trademark> and PDF viewer. It is based on " +"<application>ghostview</application>, but has a nicer look as it is based on " +"the <application>Xaw3d</application> widget toolkit. <application>gv</" +"application> has many configurable features, such as orientation, paper " +"size, scale, and anti-aliasing. Almost any operation can be performed with " +"either the keyboard or the mouse." +msgstr "" +"<application>gv</application> 是 <trademark class=\"registered\">PostScript</" +"trademark> 和 PDF 的閱覽器。 它建構於 <application>ghostview</application> 的" +"基礎上,不過因為使用 <application>Xaw3d</application> 視窗元件工具包,所以外" +"觀看起來比較漂亮。 <application>gv</application> 有許多可設定的功能,比如說紙" +"張方向、紙張大小、縮放比例、和反鋸齒(Anti-aliasing)等。 而且幾乎所有的使用都" +"可以從鍵盤或滑鼠來完成。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13547 +msgid "To install <application>gv</application> as a package:" +msgstr "安裝 <application>gv</application> 套件:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13550 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install gv</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13552 book.translate.xml:13614 book.translate.xml:13644 +msgid "If a package is unavailable, use the Ports Collection:" +msgstr "若沒有可用的套件版本,可使用 Ports 套件集安裝:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13555 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/print/gv</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:13560 +msgid "Geeqie" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13562 +msgid "<primary><application>Geeqie</application></primary>" +msgstr "<primary><application>Geeqie</application></primary>" + +#. (itstool) path: sect2/para +#: book.translate.xml:13566 +msgid "" +"<application>Geeqie</application> is a fork from the unmaintained " +"<application>GQView</application> project, in an effort to move development " +"forward and integrate the existing patches. <application>Geeqie</" +"application> is an image manager which supports viewing a file with a single " +"click, launching an external editor, and thumbnail previews. It also " +"features a slideshow mode and some basic file operations, making it easy to " +"manage image collections and to find duplicate files. <application>Geeqie</" +"application> supports full screen viewing and internationalization." +msgstr "" +"<application>Geeqie</application> 是由已經停止維護的 <application>GQView</" +"application> 專案所衍伸出來的分支,並致力開發新功能並整合已有的修補。" +"<application>Geeqie</application> 是一套影像管理軟體,支援單鍵閱覽檔案、啟動" +"外部編輯器、縮圖預覽等功能。 它也有幻燈片模式及一些基本的檔案操作的功能,能輕" +"鬆的管理大量影像並找出重複的檔案。 <application>Geeqie</application> 也支援使" +"用全螢幕閱覽以及國際化。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13577 +msgid "To install the <application>Geeqie</application> package:" +msgstr "安裝 <application>Geeqie</application> 套件:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13580 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install geeqie</userinput>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13585 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/graphics/geeqie</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:13590 +msgid "ePDFView" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13592 +msgid "<primary><application>ePDFView</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13600 +msgid "" +"<application>ePDFView</application> is a lightweight <acronym>PDF</acronym> " +"document viewer that only uses the <application>Gtk+</application> and " +"<application>Poppler</application> libraries. It is currently under " +"development, but already opens most <acronym>PDF</acronym> files (even " +"encrypted), save copies of documents, and has support for printing using " +"<application>CUPS</application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13609 +msgid "To install <application>ePDFView</application> as a package:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13612 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install epdfview</userinput>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13617 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/graphics/epdfview</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:13622 +msgid "Okular" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13624 +msgid "<primary><application>Okular</application></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13627 +msgid "" +"<primary><acronym>PDF</acronym></primary> <secondary>viewing</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13632 +msgid "" +"<application>Okular</application> is a universal document viewer based on " +"<application>KPDF</application> for <application>KDE</application>. It can " +"open many document formats, including <acronym>PDF</acronym>, <trademark " +"class=\"registered\">PostScript</trademark>, DjVu, <acronym>CHM</acronym>, " +"<acronym>XPS</acronym>, and ePub." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13639 +msgid "To install <application>Okular</application> as a package:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13642 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install okular</userinput>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13647 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/graphics/okular</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:13653 +msgid "Finance" +msgstr "財務" + +#. (itstool) path: sect1/para +#: book.translate.xml:13655 +msgid "" +"For managing personal finances on a FreeBSD desktop, some powerful and easy-" +"to-use applications can be installed. Some are compatible with widespread " +"file formats, such as the formats used by <application>Quicken</application> " +"and <application>Excel</application>." +msgstr "" +"如果有任何理由你想要在你的 FreeBSD 桌面環境上管理你的個人財務, 這裡有一些功" +"能強大、使用簡單的應用程式可供安裝。 這些財務管理軟體之中有些是相容於流行的 " +"<application>Quicken</application> 或 <application>Excel</application> 文件。" + +#. (itstool) path: sect1/para +#: book.translate.xml:13661 +msgid "This section covers these programs:" +msgstr "這節涵蓋了下面這些軟體:" + +#. (itstool) path: row/entry +#: book.translate.xml:13676 +msgid "<application>GnuCash</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13679 book.translate.xml:13686 +msgid "<application>GNOME</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13683 +msgid "<application>Gnumeric</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:13690 +msgid "<application>KMyMoney</application>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:13700 +msgid "GnuCash" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13702 +msgid "<primary><application>GnuCash</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13706 +msgid "" +"<application>GnuCash</application> is part of the <application>GNOME</" +"application> effort to provide user-friendly, yet powerful, applications to " +"end-users. <application>GnuCash</application> can be used to keep track of " +"income and expenses, bank accounts, and stocks. It features an intuitive " +"interface while remaining professional." +msgstr "" +"<application>GnuCash</application> 是 <application>GNOME</application> 團隊努" +"力成果中的一部分, <application>GNOME</application> 團隊主要提供親切而強大的" +"桌面應用程式給終端使用者。使用 <application>GnuCash</application> 可以持續追" +"蹤記錄收入與花費、銀行帳戶以及股票證券等。 它的特性是介面直覺但功能仍非常專" +"業。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13714 +msgid "" +"<application>GnuCash</application> provides a smart register, a hierarchical " +"system of accounts, and many keyboard accelerators and auto-completion " +"methods. It can split a single transaction into several more detailed " +"pieces. <application>GnuCash</application> can import and merge " +"<application>Quicken</application> QIF files. It also handles most " +"international date and currency formats." +msgstr "" +"<application>GnuCash</application> 提供了智慧的計數器、多階層帳戶系統以及快速" +"鍵及自動完成功能。 它也能分開單一的報表至數個詳細的部份。 " +"<application>GnuCash</application> 也能夠匯入及合併 <application>Quicken</" +"application> QIF 檔案。 它也能處理大部分國際的日期及通用貨幣之格式。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13722 +msgid "To install the <application>GnuCash</application> package:" +msgstr "安裝 <application>GnuCash</application> 套件:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13725 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install gnucash</userinput>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13730 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/finance/gnucash</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:13735 +msgid "Gnumeric" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13737 +msgid "<primary><application>Gnumeric</application></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13740 +msgid "" +"<primary>spreadsheet</primary> <secondary><application>Gnumeric</" +"application></secondary>" +msgstr "" +"<primary>試算表</primary> <secondary><application>Gnumeric</application></" +"secondary>" + +#. (itstool) path: sect2/para +#: book.translate.xml:13745 +msgid "" +"<application>Gnumeric</application> is a spreadsheet program developed by " +"the <application>GNOME</application> community. It features convenient " +"automatic guessing of user input according to the cell format with an " +"autofill system for many sequences. It can import files in a number of " +"popular formats, including <application>Excel</application>, " +"<application>Lotus 1-2-3</application>, and <application>Quattro Pro</" +"application>. It has a large number of built-in functions and allows all of " +"the usual cell formats such as number, currency, date, time, and much more." +msgstr "" +"<application>Gnumeric</application> 是 <application>GNOME</application> 社群" +"所開發的試算表程式。 它的特點是擁有能夠根據儲存格格式 「猜出」使用者的輸入來" +"自動補齊的系統。 它也能夠匯入許多熱門的檔案格式,像是 <application>Excel</" +"application>, <application>Lotus 1-2-3</application> 以及 " +"<application>Quattro Pro</application>。 它有大量內建的函數而且能夠使用常用的" +"儲存格格式,像是:數字、貨幣、日期、時間及其他格式等。" + +#. (itstool) path: sect2/para +#: book.translate.xml:13756 +msgid "To install <application>Gnumeric</application> as a package:" +msgstr "安裝 <application>Gnumeric</application> 套件:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13759 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install gnumeric</userinput>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13764 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/math/gnumeric</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:13769 +msgid "KMyMoney" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13771 +msgid "<primary><application>KMyMoney</application></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:13773 +msgid "" +"<primary>spreadsheet</primary> <secondary><application>KMyMoney</" +"application></secondary>" +msgstr "" +"<primary>試算表</primary> <secondary><application>KMyMoney</application></" +"secondary>" + +#. (itstool) path: sect2/para +#: book.translate.xml:13778 +msgid "" +"<application>KMyMoney</application> is a personal finance application " +"created by the <application>KDE</application> community. " +"<application>KMyMoney</application> aims to provide the important features " +"found in commercial personal finance manager applications. It also " +"highlights ease-of-use and proper double-entry accounting among its " +"features. <application>KMyMoney</application> imports from standard " +"<application>Quicken</application> QIF files, tracks investments, handles " +"multiple currencies, and provides a wealth of reports." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13789 +msgid "To install <application>KMyMoney</application> as a package:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13792 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install kmymoney-kde4</userinput>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:13797 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/finance/kmymoney-kde4</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:13812 +msgid "Multimedia" +msgstr "多媒體" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:13815 +msgid "" +"<personname> <firstname>Ross</firstname> <surname>Lippert</surname> </" +"personname> <contrib>Edited by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:13828 +msgid "" +"FreeBSD supports a wide variety of sound cards, allowing users to enjoy high " +"fidelity output from a FreeBSD system. This includes the ability to record " +"and playback audio in the MPEG Audio Layer 3 (<acronym>MP3</acronym>), " +"Waveform Audio File (<acronym>WAV</acronym>), Ogg Vorbis, and other formats. " +"The FreeBSD Ports Collection contains many applications for editing recorded " +"audio, adding sound effects, and controlling attached MIDI devices." +msgstr "" +"FreeBSD 廣泛地支援各種音效卡, 讓您可以享受來自電腦上的高傳真音質(Hi-Fi), 此" +"外還包括了錄製和播放 MPEG Audio Layer 3 (<acronym>MP3</acronym>)、 Waveform " +"Audio File (<acronym>WAV</acronym>)、Ogg Vorbis 以及其他許多種格式聲音的能" +"力。同時 FreeBSD Ports 套件集也包含了許多可讓您可以錄音、編修音效以及控制 " +"MIDI 配備的應用程式。" + +#. (itstool) path: sect1/para +#: book.translate.xml:13837 +msgid "" +"FreeBSD also supports the playback of video files and <acronym>DVD</" +"acronym>s. The FreeBSD Ports Collection contains applications to encode, " +"convert, and playback various video media." +msgstr "" +" FreeBSD 也能播放一般的視訊檔和 <acronym>DVD</acronym>。 FreeBSD Ports 套件集" +"中含有可編碼、轉換以及播放格種影像媒體的應用程式。" + +#. (itstool) path: sect1/para +#: book.translate.xml:13842 +msgid "" +"This chapter describes how to configure sound cards, video playback, TV " +"tuner cards, and scanners on FreeBSD. It also describes some of the " +"applications which are available for using these devices." +msgstr "" +"本章會說明如何設定 FreeBSD 上的音效卡、影像播放器、電視卡及掃描器。同時會說明" +"有那些應用程式可以使用這些裝置。" + +#. (itstool) path: sect1/para +#: book.translate.xml:13847 +msgid "After reading this chapter, you will know how to:" +msgstr "讀完這章,您將了解:" + +#. (itstool) path: listitem/para +#: book.translate.xml:13851 +msgid "Configure a sound card on FreeBSD." +msgstr "設定 FreeBSD 上的音效卡。" + +#. (itstool) path: listitem/para +#: book.translate.xml:13855 +msgid "Troubleshoot the sound setup." +msgstr "音效設定疑難排解。" + +#. (itstool) path: listitem/para +#: book.translate.xml:13859 +msgid "Playback and encode MP3s and other audio." +msgstr "播放、錄製 MP3 及其他聲音檔案格式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:13863 +msgid "Prepare a FreeBSD system for video playback." +msgstr "FreeBSD 系統播放影像的準備工具。" + +#. (itstool) path: listitem/para +#: book.translate.xml:13867 +msgid "" +"Play <acronym>DVD</acronym>s, <filename>.mpg</filename>, and <filename>.avi</" +"filename> files." +msgstr "" +"播放 <acronym>DVD</acronym> 的 <filename>.mpg</filename> 及 <filename>.avi</" +"filename> 檔。" + +#. (itstool) path: listitem/para +#: book.translate.xml:13872 +msgid "" +"Rip <acronym>CD</acronym> and <acronym>DVD</acronym> content into files." +msgstr "" +"擷取(Rip) <acronym>CD</acronym> 和 <acronym>DVD</acronym>的內容至檔案。" + +#. (itstool) path: listitem/para +#: book.translate.xml:13877 +msgid "Configure a TV card." +msgstr "設定電視卡。" + +#. (itstool) path: listitem/para +#: book.translate.xml:13881 +msgid "Install and setup MythTV on FreeBSD" +msgstr "在 FreeBSD 安裝 MythTV 。" + +#. (itstool) path: listitem/para +#: book.translate.xml:13885 +msgid "Configure an image scanner." +msgstr "設定影像掃描機。" + +#. (itstool) path: listitem/para +#: book.translate.xml:13892 +msgid "" +"Know how to install applications as described in <xref linkend=\"ports\"/>." +msgstr "知道如何安裝應用程式如 <xref linkend=\"ports\"/> 所敘述。" + +#. (itstool) path: info/title +#: book.translate.xml:13899 +msgid "Setting Up the Sound Card" +msgstr "設定音效卡" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:13902 +msgid "" +"<personname> <firstname>Moses</firstname> <surname>Moore</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:13912 +msgid "" +"<personname> <firstname>Marc</firstname> <surname>Fonvieille</surname> </" +"personname> <contrib>Enhanced by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:13922 +msgid "<primary>PCI</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:13923 +msgid "<primary>sound cards</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:13924 +msgid "" +"Before beginning the configuration, determine the model of the sound card " +"and the chip it uses. FreeBSD supports a wide variety of sound cards. Check " +"the supported audio devices list of the <link xlink:href=\"http://www." +"FreeBSD.org/releases/10.3R/hardware.html\">Hardware Notes</link> to see if " +"the card is supported and which FreeBSD driver it uses." +msgstr "" +"開始設定之前,必須先知道你的音效卡型號、晶片為何。 FreeBSD 支援許多種音效卡," +"請檢查支援的音效硬體表 <link xlink:href=\"http://www.FreeBSD.org/" +"releases/10.3R/hardware.html\">Hardware Notes</link>,以確認你的音效卡是否支" +"援以及如何在 FreeBSD 上驅動。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:13931 +msgid "<primary>kernel</primary> <secondary>configuration</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:13936 +msgid "" +"In order to use the sound device, its device driver must be loaded. The " +"easiest way is to load a kernel module for the sound card with " +"<citerefentry><refentrytitle>kldload</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. This example loads the driver for a built-in " +"audio chipset based on the Intel specification:" +msgstr "" +"要使用音效裝置,必須要載入正確的驅動程式才行。最簡單方式就是以 " +"<citerefentry><refentrytitle>kldload</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 來載入核心模組。以下範例示範載入 Intel 規格內建的音" +"效晶片驅動程式。" + +#. (itstool) path: sect1/screen +#: book.translate.xml:13942 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload snd_hda</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:13944 +msgid "" +"To automate the loading of this driver at boot time, add the driver to " +"<filename>/boot/loader.conf</filename>. The line for this driver is:" +msgstr "" +"要開機時自動載入驅動程式,需將驅動程式加到 <filename>/boot/loader.conf</" +"filename> 檔,以此驅動程式為例:" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:13948 +#, no-wrap +msgid "snd_hda_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:13950 +msgid "" +"Other available sound modules are listed in <filename>/boot/defaults/loader." +"conf</filename>. When unsure which driver to use, load the " +"<filename>snd_driver</filename> module:" +msgstr "" +"其他可用的音效卡模組清單列於 <filename>/boot/defaults/loader.conf</" +"filename>。當不確認要使用何種驅動程式時,可載入 <filename>snd_driver</" +"filename> 模組:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:13955 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload snd_driver</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:13957 +msgid "" +"This is a metadriver which loads all of the most common sound drivers and " +"can be used to speed up the search for the correct driver. It is also " +"possible to load all sound drivers by adding the metadriver to <filename>/" +"boot/loader.conf</filename>." +msgstr "" +"它是 metadriver 會載入所有最通用的音效驅動程式並且用來加速尋找正確的驅動程" +"式。也可以把 metadriver 加入 <filename>/boot/loader.conf</filename> 檔來載入" +"所有音效驅動程式。" + +#. (itstool) path: sect1/para +#: book.translate.xml:13963 +msgid "" +"To determine which driver was selected for the sound card after loading the " +"<filename>snd_driver</filename> metadriver, type <command>cat /dev/sndstat</" +"command>." +msgstr "" +"要知道載入 <filename>snd_driver</filename> metadriver 後使用了那個音效卡驅動" +"程式,請輸入 <command>cat /dev/sndstat</command>。" + +#. (itstool) path: sect2/title +#: book.translate.xml:13968 +msgid "Configuring a Custom Kernel with Sound Support" +msgstr "設定自訂核心支援音效" + +#. (itstool) path: sect2/para +#: book.translate.xml:13970 +msgid "" +"This section is for users who prefer to statically compile in support for " +"the sound card in a custom kernel. For more information about recompiling a " +"kernel, refer to <xref linkend=\"kernelconfig\"/>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13974 +msgid "" +"When using a custom kernel to provide sound support, make sure that the " +"audio framework driver exists in the custom kernel configuration file:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:13978 +#, no-wrap +msgid "device sound" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13980 +msgid "" +"Next, add support for the sound card. To continue the example of the built-" +"in audio chipset based on the Intel specification from the previous section, " +"use the following line in the custom kernel configuration file:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:13985 +#, no-wrap +msgid "device snd_hda" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13987 +msgid "" +"Be sure to read the manual page of the driver for the device name to use for " +"the driver." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:13990 +msgid "" +"Non-PnP ISA sound cards may require the IRQ and I/O port settings of the " +"card to be added to <filename>/boot/device.hints</filename>. During the boot " +"process, <citerefentry><refentrytitle>loader</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> reads this file and passes the settings to the " +"kernel. For example, an old Creative <trademark class=\"registered" +"\">SoundBlaster</trademark> 16 ISA non-PnP card will use the " +"<citerefentry><refentrytitle>snd_sbc</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> driver in conjunction with <literal>snd_sb16</" +"literal>. For this card, the following lines must be added to the kernel " +"configuration file:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:14000 +#, no-wrap +msgid "" +"device snd_sbc\n" +"device snd_sb16" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14003 +msgid "" +"If the card uses the <literal>0x220</literal> I/O port and IRQ <literal>5</" +"literal>, these lines must also be added to <filename>/boot/device.hints</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:14007 +#, no-wrap +msgid "" +"hint.sbc.0.at=\"isa\"\n" +"hint.sbc.0.port=\"0x220\"\n" +"hint.sbc.0.irq=\"5\"\n" +"hint.sbc.0.drq=\"1\"\n" +"hint.sbc.0.flags=\"0x15\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14013 +msgid "" +"The syntax used in <filename>/boot/device.hints</filename> is described in " +"<citerefentry><refentrytitle>sound</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> and the manual page for the driver of the sound card." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14017 +msgid "" +"The settings shown above are the defaults. In some cases, the IRQ or other " +"settings may need to be changed to match the card. Refer to " +"<citerefentry><refentrytitle>snd_sbc</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> for more information about this card." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:14024 +msgid "Testing Sound" +msgstr "測試音效" + +#. (itstool) path: sect2/para +#: book.translate.xml:14026 +msgid "" +"After loading the required module or rebooting into the custom kernel, the " +"sound card should be detected. To confirm, run <command>dmesg | grep pcm</" +"command>. This example is from a system with a built-in Conexant CX20590 " +"chipset:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14031 +#, no-wrap +msgid "" +"pcm0: <NVIDIA (0x001c) (HDMI/DP 8ch)> at nid 5 on hdaa0\n" +"pcm1: <NVIDIA (0x001c) (HDMI/DP 8ch)> at nid 6 on hdaa0\n" +"pcm2: <Conexant CX20590 (Analog 2.0+HP/2.0)> at nid 31,25 and 35,27 on hdaa1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14035 +msgid "The status of the sound card may also be checked using this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14038 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cat /dev/sndstat</userinput>\n" +"FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)\n" +"Installed devices:\n" +"pcm0: <NVIDIA (0x001c) (HDMI/DP 8ch)> (play)\n" +"pcm1: <NVIDIA (0x001c) (HDMI/DP 8ch)> (play)\n" +"pcm2: <Conexant CX20590 (Analog 2.0+HP/2.0)> (play/rec) default" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14045 +msgid "" +"The output will vary depending upon the sound card. If no <filename>pcm</" +"filename> devices are listed, double-check that the correct device driver " +"was loaded or compiled into the kernel. The next section lists some common " +"problems and their solutions." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14051 +msgid "" +"If all goes well, the sound card should now work in FreeBSD. If the " +"<acronym>CD</acronym> or <acronym>DVD</acronym> drive is properly connected " +"to the sound card, one can insert an audio <acronym>CD</acronym> in the " +"drive and play it with <citerefentry><refentrytitle>cdcontrol</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14057 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>cdcontrol -f /dev/acd0 play 1</userinput>" +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:14060 +msgid "" +"Audio <acronym>CD</acronym>s have specialized encodings which means that " +"they should not be mounted using <citerefentry><refentrytitle>mount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14065 +msgid "" +"Various applications, such as <package>audio/workman</package>, provide a " +"friendlier interface. The <package>audio/mpg123</package> port can be " +"installed to listen to MP3 audio files." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14070 +msgid "" +"Another quick way to test the card is to send data to <filename>/dev/dsp</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14073 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>cat <replaceable>filename</replaceable> > /dev/dsp</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14075 +msgid "" +"where <filename><replaceable>filename</replaceable></filename> can be any " +"type of file. This command should produce some noise, confirming that the " +"sound card is working." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:14081 +msgid "" +"The <filename>/dev/dsp*</filename> device nodes will be created " +"automatically as needed. When not in use, they do not exist and will not " +"appear in the output of <citerefentry><refentrytitle>ls</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:14089 +msgid "Troubleshooting Sound" +msgstr "疑難排解音效" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:14091 +msgid "<primary>device nodes</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:14092 +msgid "<primary>I/O port</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:14093 +msgid "<primary>IRQ</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:14094 +msgid "<primary>DSP</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14096 +msgid "" +"<xref linkend=\"multimedia-sound-common-error-messages\"/> lists some common " +"error messages and their solutions:" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:14100 +msgid "Common Error Messages" +msgstr "常見錯誤訊息" + +#. (itstool) path: row/entry +#: book.translate.xml:14105 +msgid "Error" +msgstr "錯誤" + +#. (itstool) path: row/entry +#: book.translate.xml:14106 +msgid "Solution" +msgstr "解決方式" + +#. (itstool) path: row/entry +#: book.translate.xml:14112 +msgid "<errorname>sb_dspwr(XX) timed out</errorname>" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:14114 +msgid "The I/O port is not set correctly." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:14119 +msgid "<errorname>bad irq XX</errorname>" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:14120 +msgid "" +"The IRQ is set incorrectly. Make sure that the set IRQ and the sound IRQ are " +"the same." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:14126 +msgid "<errorname>xxx: gus pcm not attached, out of memory</errorname>" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:14128 +msgid "There is not enough available memory to use the device." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:14133 +msgid "<errorname>xxx: can't open /dev/dsp!</errorname>" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:14135 +msgid "" +"Type <command>fstat | grep dsp</command> to check if another application is " +"holding the device open. Noteworthy troublemakers are <application>esound</" +"application> and <application>KDE</application>'s sound support." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14146 +msgid "" +"Modern graphics cards often come with their own sound driver for use with " +"<acronym>HDMI</acronym>. This sound device is sometimes enumerated before " +"the sound card meaning that the sound card will not be used as the default " +"playback device. To check if this is the case, run <application>dmesg</" +"application> and look for <literal>pcm</literal>. The output looks something " +"like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:14155 +#, no-wrap +msgid "" +"...\n" +"hdac0: HDA Driver Revision: 20100226_0142\n" +"hdac1: HDA Driver Revision: 20100226_0142\n" +"hdac0: HDA Codec #0: NVidia (Unknown)\n" +"hdac0: HDA Codec #1: NVidia (Unknown)\n" +"hdac0: HDA Codec #2: NVidia (Unknown)\n" +"hdac0: HDA Codec #3: NVidia (Unknown)\n" +"pcm0: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 0 nid 1 on hdac0\n" +"pcm1: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 1 nid 1 on hdac0\n" +"pcm2: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 2 nid 1 on hdac0\n" +"pcm3: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 3 nid 1 on hdac0\n" +"hdac1: HDA Codec #2: Realtek ALC889\n" +"pcm4: <HDA Realtek ALC889 PCM #0 Analog> at cad 2 nid 1 on hdac1\n" +"pcm5: <HDA Realtek ALC889 PCM #1 Analog> at cad 2 nid 1 on hdac1\n" +"pcm6: <HDA Realtek ALC889 PCM #2 Digital> at cad 2 nid 1 on hdac1\n" +"pcm7: <HDA Realtek ALC889 PCM #3 Digital> at cad 2 nid 1 on hdac1\n" +"..." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14173 +msgid "" +"In this example, the graphics card (<literal>NVidia</literal>) has been " +"enumerated before the sound card (<literal>Realtek ALC889</literal>). To use " +"the sound card as the default playback device, change <varname>hw.snd." +"default_unit</varname> to the unit that should be used for playback:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14180 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sysctl hw.snd.default_unit=<replaceable>n</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14182 +msgid "" +"where <literal>n</literal> is the number of the sound device to use. In this " +"example, it should be <literal>4</literal>. Make this change permanent by " +"adding the following line to <filename>/etc/sysctl.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:14188 +#, no-wrap +msgid "hw.snd.default_unit=<replaceable>4</replaceable>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:14193 +msgid "Utilizing Multiple Sound Sources" +msgstr "使用多個音效來源" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:14196 +msgid "" +"<personname> <firstname>Munish</firstname> <surname>Chopra</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14206 +msgid "" +"It is often desirable to have multiple sources of sound that are able to " +"play simultaneously. FreeBSD uses <quote>Virtual Sound Channels</quote> to " +"multiplex the sound card's playback by mixing sound in the kernel." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14211 +msgid "" +"Three <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> knobs are available for configuring virtual " +"channels:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14214 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>sysctl dev.pcm.0.play.vchans=4</userinput>\n" +"<prompt>#</prompt> <userinput>sysctl dev.pcm.0.rec.vchans=4</userinput>\n" +"<prompt>#</prompt> <userinput>sysctl hw.snd.maxautovchans=4</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14218 +msgid "" +"This example allocates four virtual channels, which is a practical number " +"for everyday use. Both <varname>dev.pcm.0.play.vchans=4</varname> and " +"<varname>dev.pcm.0.rec.vchans=4</varname> are configurable after a device " +"has been attached and represent the number of virtual channels " +"<filename>pcm0</filename> has for playback and recording. Since the " +"<filename>pcm</filename> module can be loaded independently of the hardware " +"drivers, <varname>hw.snd.maxautovchans</varname> indicates how many virtual " +"channels will be given to an audio device when it is attached. Refer to " +"<citerefentry><refentrytitle>pcm</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> for more information." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:14231 +msgid "" +"The number of virtual channels for a device cannot be changed while it is in " +"use. First, close any programs using the device, such as music players or " +"sound daemons." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14236 +msgid "" +"The correct <filename>pcm</filename> device will automatically be allocated " +"transparently to a program that requests <filename>/dev/dsp0</filename>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:14243 +msgid "Setting Default Values for Mixer Channels" +msgstr "設定混音器頻道的預設值" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:14246 +msgid "" +"<personname> <firstname>Josef</firstname> <surname>El-Rayes</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14256 +msgid "" +"The default values for the different mixer channels are hardcoded in the " +"source code of the <citerefentry><refentrytitle>pcm</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver. While sound " +"card mixer levels can be changed using <citerefentry><refentrytitle>mixer</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> or third-party " +"applications and daemons, this is not a permanent solution. To instead set " +"default mixer values at the driver level, define the appropriate values in " +"<filename>/boot/device.hints</filename>, as seen in this example:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:14265 +#, no-wrap +msgid "hint.pcm.0.vol=\"50\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14267 +msgid "" +"This will set the volume channel to a default value of <literal>50</literal> " +"when the <citerefentry><refentrytitle>pcm</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> module is loaded." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:14275 +msgid "MP3 Audio" +msgstr "MP3 音樂" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:14278 book.translate.xml:60018 +msgid "" +"<personname> <firstname>Chern</firstname> <surname>Lee</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:14288 +msgid "" +"This section describes some <acronym>MP3</acronym> players available for " +"FreeBSD, how to rip audio <acronym>CD</acronym> tracks, and how to encode " +"and decode <acronym>MP3</acronym>s." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:14294 +msgid "MP3 Players" +msgstr "MP3 播放器" + +#. (itstool) path: sect2/para +#: book.translate.xml:14296 +msgid "" +"A popular graphical <acronym>MP3</acronym> player is <application>XMMS</" +"application>. It supports <application>Winamp</application> skins and " +"additional plugins. The interface is intuitive, with a playlist, graphic " +"equalizer, and more. Those familiar with <application>Winamp</application> " +"will find <application>XMMS</application> simple to use. On FreeBSD, " +"<application>XMMS</application> can be installed from the " +"<package>multimedia/xmms</package> port or package." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14306 +msgid "" +"The <package>audio/mpg123</package> package or port provides an alternative, " +"command-line <acronym>MP3</acronym> player. Once installed, specify the " +"<acronym>MP3</acronym> file to play on the command line. If the system has " +"multiple audio devices, the sound device can also be specifed:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14312 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mpg123 <replaceable>-a /dev/dsp1.0 Foobar-GreatestHits.mp3</replaceable></userinput>\n" +"High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3\n" +" version 1.18.1; written and copyright by Michael Hipp and others\n" +" free software (LGPL) without any warranty but with best wishes\n" +"\n" +"Playing MPEG stream from Foobar-GreatestHits.mp3 ...\n" +"MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14320 +msgid "" +"Additional <acronym>MP3</acronym> players are available in the FreeBSD Ports " +"Collection." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:14325 +msgid "Ripping <acronym>CD</acronym> Audio Tracks" +msgstr "擷取 <acronym>CD</acronym> 音軌" + +#. (itstool) path: sect2/para +#: book.translate.xml:14327 +msgid "" +"Before encoding a <acronym>CD</acronym> or <acronym>CD</acronym> track to " +"<acronym>MP3</acronym>, the audio data on the <acronym>CD</acronym> must be " +"ripped to the hard drive. This is done by copying the raw <acronym>CD</" +"acronym> Digital Audio (<acronym>CDDA</acronym>) data to <acronym>WAV</" +"acronym> files." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14334 +msgid "" +"The <command>cdda2wav</command> tool, which is installed with the " +"<package>sysutils/cdrtools</package> suite, can be used to rip audio " +"information from <acronym>CD</acronym>s." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14339 +msgid "" +"With the audio <acronym>CD</acronym> in the drive, the following command can " +"be issued as <systemitem class=\"username\">root</systemitem> to rip an " +"entire <acronym>CD</acronym> into individual, per track, <acronym>WAV</" +"acronym> files:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14345 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cdda2wav -D <replaceable>0,1,0</replaceable> -B</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14347 +msgid "" +"In this example, the <option>-D <replaceable>0,1,0</replaceable></option> " +"indicates the <acronym>SCSI</acronym> device <filename>0,1,0</filename> " +"containing the <acronym>CD</acronym> to rip. Use <command>cdrecord -scanbus</" +"command> to determine the correct device parameters for the system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14354 +msgid "To rip individual tracks, use <option>-t</option> to specify the track:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14357 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cdda2wav -D <replaceable>0,1,0</replaceable> -t 7</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14359 +msgid "To rip a range of tracks, such as track one to seven, specify a range:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14362 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cdda2wav -D <replaceable>0,1,0</replaceable> -t 1+7</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14364 +msgid "" +"To rip from an <acronym>ATAPI</acronym> (<acronym>IDE</acronym>) " +"<acronym>CDROM</acronym> drive, specify the device name in place of the " +"<acronym>SCSI</acronym> unit numbers. For example, to rip track 7 from an " +"IDE drive:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14370 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cdda2wav -D <replaceable>/dev/acd0 -t 7</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14372 +msgid "" +"Alternately, <command>dd</command> can be used to extract audio tracks on " +"<acronym>ATAPI</acronym> drives, as described in <xref linkend=\"duplicating-" +"audiocds\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:14378 +msgid "Encoding and Decoding MP3s" +msgstr "MP3 編碼與解碼" + +#. (itstool) path: sect2/para +#: book.translate.xml:14380 +msgid "" +"<application>Lame</application> is a popular <acronym>MP3</acronym> encoder " +"which can be installed from the <package>audio/lame</package> port. Due to " +"patent issues, a package is not available." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14385 +msgid "" +"The following command will convert the ripped <acronym>WAV</acronym> file " +"<filename><replaceable>audio01.wav</replaceable></filename> to " +"<filename><replaceable>audio01.mp3</replaceable></filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14390 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>lame -h -b <replaceable>128</replaceable> --tt \"<replaceable>Foo Song Title</replaceable>\" --ta \"<replaceable>FooBar Artist</replaceable>\" --tl \"<replaceable>FooBar Album</replaceable>\" \\\n" +"--ty \"<replaceable>2014</replaceable>\" --tc \"<replaceable>Ripped and encoded by Foo</replaceable>\" --tg \"<replaceable>Genre</replaceable>\" <replaceable>audio01.wav audio01.mp3</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14393 +msgid "" +"The specified 128 kbits is a standard <acronym>MP3</acronym> bitrate while " +"the 160 and 192 bitrates provide higher quality. The higher the bitrate, the " +"larger the size of the resulting <acronym>MP3</acronym>. The <option>-h</" +"option> turns on the <quote>higher quality but a little slower</quote> mode. " +"The options beginning with <option>--t</option> indicate <acronym>ID3</" +"acronym> tags, which usually contain song information, to be embedded within " +"the <acronym>MP3</acronym> file. Additional encoding options can be found in " +"the <application>lame</application> manual page." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14406 +msgid "" +"In order to burn an audio <acronym>CD</acronym> from <acronym>MP3</" +"acronym>s, they must first be converted to a non-compressed file format. " +"<application>XMMS</application> can be used to convert to the <acronym>WAV</" +"acronym> format, while <application>mpg123</application> can be used to " +"convert to the raw Pulse-Code Modulation (<acronym>PCM</acronym>) audio data " +"format." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14414 +msgid "" +"To convert <filename>audio01.mp3</filename> using <application>mpg123</" +"application>, specify the name of the <acronym>PCM</acronym> file:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14418 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mpg123 -s <replaceable>audio01.mp3</replaceable> > <replaceable>audio01.pcm</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14420 +msgid "" +"To use <application>XMMS</application> to convert a <acronym>MP3</acronym> " +"to <acronym>WAV</acronym> format, use these steps:" +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:14425 +msgid "" +"Converting to <acronym>WAV</acronym> Format in <application>XMMS</" +"application>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:14429 +msgid "Launch <application>XMMS</application>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:14433 +msgid "" +"Right-click the window to bring up the <application>XMMS</application> menu." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:14438 +msgid "Select <literal>Preferences</literal> under <literal>Options</literal>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:14443 +msgid "Change the Output Plugin to <quote>Disk Writer Plugin</quote>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:14448 +msgid "Press <literal>Configure</literal>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:14452 +msgid "Enter or browse to a directory to write the uncompressed files to." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:14457 +msgid "" +"Load the <acronym>MP3</acronym> file into <application>XMMS</application> as " +"usual, with volume at 100% and EQ settings turned off." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:14463 +msgid "" +"Press <literal>Play</literal>. The <application>XMMS</application> will " +"appear as if it is playing the <acronym>MP3</acronym>, but no music will be " +"heard. It is actually playing the <acronym>MP3</acronym> to a file." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:14471 +msgid "" +"When finished, be sure to set the default Output Plugin back to what it was " +"before in order to listen to <acronym>MP3</acronym>s again." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14477 +msgid "" +"Both the <acronym>WAV</acronym> and <acronym>PCM</acronym> formats can be " +"used with <application>cdrecord</application>. When using <acronym>WAV</" +"acronym> files, there will be a small tick sound at the beginning of each " +"track. This sound is the header of the <acronym>WAV</acronym> file. The " +"<package>audio/sox</package> port or package can be used to remove the " +"header:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:14485 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>sox -t wav -r 44100 -s -w -c 2 <replaceable>track.wav track.raw</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14487 +msgid "" +"Refer to <xref linkend=\"creating-cds\"/> for more information on using a " +"<acronym>CD</acronym> burner in FreeBSD." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:14495 +msgid "Video Playback" +msgstr "影片播放" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:14498 +msgid "" +"<personname> <firstname>Ross</firstname> <surname>Lippert</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:14508 +msgid "" +"Before configuring video playback, determine the model and chipset of the " +"video card. While <application>Xorg</application> supports a wide variety of " +"video cards, not all provide good playback performance. To obtain a list of " +"extensions supported by the <application>Xorg</application> server using the " +"card, run <command>xdpyinfo</command> while <application>Xorg</application> " +"is running." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:14517 +msgid "" +"It is a good idea to have a short MPEG test file for evaluating various " +"players and options. Since some <acronym>DVD</acronym> applications look for " +"<acronym>DVD</acronym> media in <filename>/dev/dvd</filename> by default, or " +"have this device name hardcoded in them, it might be useful to make a " +"symbolic link to the proper device:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:14524 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ln -sf /dev/cd0 /dev/dvd</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:14526 +msgid "" +"Due to the nature of <citerefentry vendor=\"current\"><refentrytitle>devfs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>, manually created " +"links will not persist after a system reboot. In order to recreate the " +"symbolic link automatically when the system boots, add the following line to " +"<filename>/etc/devfs.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:14531 +#, no-wrap +msgid "link cd0 dvd" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:14533 +msgid "" +"<acronym>DVD</acronym> decryption invokes certain functions that require " +"write permission to the <acronym>DVD</acronym> device." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:14537 +msgid "" +"To enhance the shared memory <application>Xorg</application> interface, it " +"is recommended to increase the values of these " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variables:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:14542 +#, no-wrap +msgid "" +"kern.ipc.shmmax=67108864\n" +"kern.ipc.shmall=32768" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:14546 +msgid "Determining Video Capabilities" +msgstr "偵測影像處理能力" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:14548 +msgid "<primary>XVideo</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:14549 +msgid "<primary>SDL</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:14550 +msgid "<primary>DGA</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14552 +msgid "" +"There are several possible ways to display video under <application>Xorg</" +"application> and what works is largely hardware dependent. Each method " +"described below will have varying quality across different hardware." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14557 +msgid "Common video interfaces include:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:14561 +msgid "<application>Xorg</application>: normal output using shared memory." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:14566 +msgid "" +"XVideo: an extension to the <application>Xorg</application> interface which " +"allows video to be directly displayed in drawable objects through a special " +"acceleration. This extension provides good quality playback even on low-end " +"machines. The next section describes how to determine if this extension is " +"running." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:14576 +msgid "" +"<acronym>SDL</acronym>: the Simple Directmedia Layer is a porting layer for " +"many operating systems, allowing cross-platform applications to be developed " +"which make efficient use of sound and graphics. <acronym>SDL</acronym> " +"provides a low-level abstraction to the hardware which can sometimes be more " +"efficient than the <application>Xorg</application> interface. On FreeBSD, " +"<acronym>SDL</acronym> can be installed using the <package>devel/sdl20</" +"package> package or port." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:14588 +msgid "" +"<acronym>DGA</acronym>: the Direct Graphics Access is an <application>Xorg</" +"application> extension which allows a program to bypass the " +"<application>Xorg</application> server and directly alter the framebuffer. " +"Because it relies on a low level memory mapping, programs using it must be " +"run as <systemitem class=\"username\">root</systemitem>. The <acronym>DGA</" +"acronym> extension can be tested and benchmarked using <citerefentry vendor=" +"\"xfree86\"><refentrytitle>dga</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. When <command>dga</command> is running, it changes the colors " +"of the display whenever a key is pressed. To quit, press <keycap>q</keycap>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:14603 +msgid "SVGAlib: a low level console graphics layer." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:14608 +msgid "XVideo" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14610 +msgid "" +"To check whether this extension is running, use <command>xvinfo</command>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14613 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>xvinfo</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14615 +msgid "XVideo is supported for the card if the result is similar to:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14618 +#, no-wrap +msgid "" +"X-Video Extension version 2.2\n" +" screen #0\n" +" Adaptor #0: \"Savage Streams Engine\"\n" +" number of ports: 1\n" +" port base: 43\n" +" operations supported: PutImage\n" +" supported visuals:\n" +" depth 16, visualID 0x22\n" +" depth 16, visualID 0x23\n" +" number of attributes: 5\n" +" \"XV_COLORKEY\" (range 0 to 16777215)\n" +" client settable attribute\n" +" client gettable attribute (current value is 2110)\n" +" \"XV_BRIGHTNESS\" (range -128 to 127)\n" +" client settable attribute\n" +" client gettable attribute (current value is 0)\n" +" \"XV_CONTRAST\" (range 0 to 255)\n" +" client settable attribute\n" +" client gettable attribute (current value is 128)\n" +" \"XV_SATURATION\" (range 0 to 255)\n" +" client settable attribute\n" +" client gettable attribute (current value is 128)\n" +" \"XV_HUE\" (range -180 to 180)\n" +" client settable attribute\n" +" client gettable attribute (current value is 0)\n" +" maximum XvImage size: 1024 x 1024\n" +" Number of image formats: 7\n" +" id: 0x32595559 (YUY2)\n" +" guid: 59555932-0000-0010-8000-00aa00389b71\n" +" bits per pixel: 16\n" +" number of planes: 1\n" +" type: YUV (packed)\n" +" id: 0x32315659 (YV12)\n" +" guid: 59563132-0000-0010-8000-00aa00389b71\n" +" bits per pixel: 12\n" +" number of planes: 3\n" +" type: YUV (planar)\n" +" id: 0x30323449 (I420)\n" +" guid: 49343230-0000-0010-8000-00aa00389b71\n" +" bits per pixel: 12\n" +" number of planes: 3\n" +" type: YUV (planar)\n" +" id: 0x36315652 (RV16)\n" +" guid: 52563135-0000-0000-0000-000000000000\n" +" bits per pixel: 16\n" +" number of planes: 1\n" +" type: RGB (packed)\n" +" depth: 0\n" +" red, green, blue masks: 0x1f, 0x3e0, 0x7c00\n" +" id: 0x35315652 (RV15)\n" +" guid: 52563136-0000-0000-0000-000000000000\n" +" bits per pixel: 16\n" +" number of planes: 1\n" +" type: RGB (packed)\n" +" depth: 0\n" +" red, green, blue masks: 0x1f, 0x7e0, 0xf800\n" +" id: 0x31313259 (Y211)\n" +" guid: 59323131-0000-0010-8000-00aa00389b71\n" +" bits per pixel: 6\n" +" number of planes: 3\n" +" type: YUV (packed)\n" +" id: 0x0\n" +" guid: 00000000-0000-0000-0000-000000000000\n" +" bits per pixel: 0\n" +" number of planes: 0\n" +" type: RGB (packed)\n" +" depth: 1\n" +" red, green, blue masks: 0x0, 0x0, 0x0" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14687 +msgid "" +"The formats listed, such as YUV2 and YUV12, are not present with every " +"implementation of XVideo and their absence may hinder some players." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14691 +msgid "If the result instead looks like:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14693 +#, no-wrap +msgid "" +"X-Video Extension version 2.2\n" +"screen #0\n" +"no adaptors present" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14697 +msgid "" +"XVideo is probably not supported for the card. This means that it will be " +"more difficult for the display to meet the computational demands of " +"rendering video, depending on the video card and processor." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:14705 +msgid "Ports and Packages Dealing with Video" +msgstr "可處理影像的 Ports 與套件" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:14707 +msgid "<primary>video ports</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:14708 +msgid "<primary>video packages</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14710 +msgid "" +"This section introduces some of the software available from the FreeBSD " +"Ports Collection which can be used for video playback." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:14715 +msgid "" +"<application>MPlayer</application> and <application>MEncoder</application>" +msgstr "" +"<application>MPlayer</application> 與 <application>MEncoder</application>" + +#. (itstool) path: sect3/para +#: book.translate.xml:14718 +msgid "" +"<application>MPlayer</application> is a command-line video player with an " +"optional graphical interface which aims to provide speed and flexibility. " +"Other graphical front-ends to <application>MPlayer</application> are " +"available from the FreeBSD Ports Collection." +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:14724 +msgid "<primary>MPlayer</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14726 +msgid "" +"<application>MPlayer</application> can be installed using the " +"<package>multimedia/mplayer</package> package or port. Several compile " +"options are available and a variety of hardware checks occur during the " +"build process. For these reasons, some users prefer to build the port rather " +"than install the package." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14733 +msgid "" +"When compiling the port, the menu options should be reviewed to determine " +"the type of support to compile into the port. If an option is not selected, " +"<application>MPlayer</application> will not be able to display that type of " +"video format. Use the arrow keys and spacebar to select the required " +"formats. When finished, press <keycap>Enter</keycap> to continue the port " +"compile and installation." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14742 +msgid "" +"By default, the package or port will build the <command>mplayer</command> " +"command line utility and the <command>gmplayer</command> graphical utility. " +"To encode videos, compile the <package>multimedia/mencoder</package> port. " +"Due to licensing restrictions, a package is not available for " +"<application>MEncoder</application>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14749 +msgid "" +"The first time <application>MPlayer</application> is run, it will create " +"<filename>~/.mplayer</filename> in the user's home directory. This " +"subdirectory contains default versions of the user-specific configuration " +"files." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14754 +msgid "" +"This section describes only a few common uses. Refer to mplayer(1) for a " +"complete description of its numerous options." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14758 +msgid "" +"To play the file <filename><replaceable>testfile.avi</replaceable></" +"filename>, specify the video interfaces with <option>-vo</option>, as seen " +"in the following examples:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14763 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>mplayer -vo xv <replaceable>testfile.avi</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14765 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>mplayer -vo sdl <replaceable>testfile.avi</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14767 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>mplayer -vo x11 <replaceable>testfile.avi</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14769 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mplayer -vo dga <replaceable>testfile.avi</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14771 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mplayer -vo 'sdl:dga' <replaceable>testfile.avi</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14773 +msgid "" +"It is worth trying all of these options, as their relative performance " +"depends on many factors and will vary significantly with hardware." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14777 +msgid "" +"To play a <acronym>DVD</acronym>, replace <filename><replaceable>testfile." +"avi</replaceable></filename> with <option>dvd://<replaceable>N</replaceable> " +"-dvd-device <replaceable>DEVICE</replaceable></option>, where " +"<replaceable>N</replaceable> is the title number to play and " +"<replaceable>DEVICE</replaceable> is the device node for the <acronym>DVD</" +"acronym>. For example, to play title 3 from <filename>/dev/dvd</filename>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14786 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mplayer -vo xv dvd://3 -dvd-device /dev/dvd</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:14789 +msgid "" +"The default <acronym>DVD</acronym> device can be defined during the build of " +"the <application>MPlayer</application> port by including the " +"<varname>WITH_DVD_DEVICE=/path/to/desired/device</varname> option. By " +"default, the device is <filename>/dev/cd0</filename>. More details can be " +"found in the port's <filename>Makefile.options</filename>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14799 +msgid "" +"To stop, pause, advance, and so on, use a keybinding. To see the list of " +"keybindings, run <command>mplayer -h</command> or read mplayer(1)." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14803 +msgid "" +"Additional playback options include <option>-fs -zoom</option>, which " +"engages fullscreen mode, and <option>-framedrop</option>, which helps " +"performance." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14807 +msgid "" +"Each user can add commonly used options to their <filename>~/.mplayer/" +"config</filename> like so:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:14810 +#, no-wrap +msgid "" +"vo=xv\n" +"fs=yes\n" +"zoom=yes" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14814 +msgid "" +"<command>mplayer</command> can be used to rip a <acronym>DVD</acronym> title " +"to a <filename>.vob</filename>. To dump the second title from a " +"<acronym>DVD</acronym>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14819 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14821 +msgid "" +"The output file, <filename>out.vob</filename>, will be in <acronym>MPEG</" +"acronym> format." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14824 +msgid "" +"Anyone wishing to obtain a high level of expertise with <trademark class=" +"\"registered\">UNIX</trademark> video should consult <link xlink:href=" +"\"http://www.mplayerhq.hu/DOCS/\">mplayerhq.hu/DOCS</link> as it is " +"technically informative. This documentation should be considered as required " +"reading before submitting any bug reports." +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:14830 +msgid "<primary>mencoder</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14834 +msgid "" +"Before using <command>mencoder</command>, it is a good idea to become " +"familiar with the options described at <link xlink:href=\"http://www." +"mplayerhq.hu/DOCS/HTML/en/mencoder.html\">mplayerhq.hu/DOCS/HTML/en/mencoder." +"html</link>. There are innumerable ways to improve quality, lower bitrate, " +"and change formats, and some of these options may make the difference " +"between good or bad performance. Improper combinations of command line " +"options can yield output files that are unplayable even by <command>mplayer</" +"command>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14843 +msgid "Here is an example of a simple copy:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14845 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>mencoder <replaceable>input.avi</replaceable> -oac copy -ovc copy -o <replaceable>output.avi</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14847 +msgid "" +"To rip to a file, use <option>-dumpfile</option> with <command>mplayer</" +"command>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14850 +msgid "" +"To convert <filename><replaceable>input.avi</replaceable></filename> to the " +"MPEG4 codec with MPEG3 audio encoding, first install the <package>audio/" +"lame</package> port. Due to licensing restrictions, a package is not " +"available. Once installed, type:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14857 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>mencoder <replaceable>input.avi</replaceable> -oac mp3lame -lameopts br=192 \\\n" +"\t -ovc lavc -lavcopts vcodec=mpeg4:vhq -o <replaceable>output.avi</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14860 +msgid "" +"This will produce output playable by applications such as <command>mplayer</" +"command> and <command>xine</command>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14864 +msgid "" +"<filename><replaceable>input.avi</replaceable></filename> can be replaced " +"with <option>dvd://1 -dvd-device /dev/dvd</option> and run as <systemitem " +"class=\"username\">root</systemitem> to re-encode a <acronym>DVD</acronym> " +"title directly. Since it may take a few tries to get the desired result, it " +"is recommended to instead dump the title to a file and to work on the file." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:14874 +msgid "The <application>xine</application> Video Player" +msgstr "<application>xine</application> 影像播放器" + +#. (itstool) path: sect3/para +#: book.translate.xml:14877 +msgid "" +"<application>xine</application> is a video player with a reusable base " +"library and a modular executable which can be extended with plugins. It can " +"be installed using the <package>multimedia/xine</package> package or port." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14882 +msgid "" +"In practice, <application>xine</application> requires either a fast CPU with " +"a fast video card, or support for the XVideo extension. The " +"<application>xine</application> video player performs best on XVideo " +"interfaces." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14887 +msgid "" +"By default, the <application>xine</application> player starts a graphical " +"user interface. The menus can then be used to open a specific file." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14891 +msgid "" +"Alternatively, <application>xine</application> may be invoked from the " +"command line by specifying the name of the file to play:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14895 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>xine -g -p <replaceable>mymovie.avi</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14897 +msgid "" +"Refer to <link xlink:href=\"http://www.xine-project.org/faq\"> xine-project." +"org/faq</link> for more information and troubleshooting tips." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:14903 +msgid "The <application>Transcode</application> Utilities" +msgstr "<application>Transcode</application> 工具" + +#. (itstool) path: sect3/para +#: book.translate.xml:14906 +msgid "" +"<application>Transcode</application> provides a suite of tools for re-" +"encoding video and audio files. <application>Transcode</application> can be " +"used to merge video files or repair broken files using command line tools " +"with stdin/stdout stream interfaces." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14912 +msgid "" +"In FreeBSD, <application>Transcode</application> can be installed using the " +"<package>multimedia/transcode</package> package or port. Many users prefer " +"to compile the port as it provides a menu of compile options for specifying " +"the support and codecs to compile in. If an option is not selected, " +"<application>Transcode</application> will not be able to encode that format. " +"Use the arrow keys and spacebar to select the required formats. When " +"finished, press <keycap>Enter</keycap> to continue the port compile and " +"installation." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14923 +msgid "" +"This example demonstrates how to convert a DivX file into a PAL MPEG-1 file " +"(PAL VCD):" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:14926 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>transcode -i <replaceable>input.avi</replaceable> -V --export_prof vcd-pal -o output_vcd</userinput>\n" +"<prompt>%</prompt> <userinput>mplex -f 1 -o <replaceable>output_vcd.mpg output_vcd.m1v output_vcd.mpa</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14929 +msgid "" +"The resulting <acronym>MPEG</acronym> file, " +"<filename><replaceable>output_vcd.mpg</replaceable></filename>, is ready to " +"be played with <application>MPlayer</application>. The file can be burned on " +"a <acronym>CD</acronym> media to create a video <acronym>CD</acronym> using " +"a utility such as <package>multimedia/vcdimager</package> or " +"<package>sysutils/cdrdao</package>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:14938 +msgid "" +"In addition to the manual page for <command>transcode</command>, refer to " +"<link xlink:href=\"http://www.transcoding.org/cgi-bin/transcode" +"\">transcoding.org/cgi-bin/transcode</link> for further information and " +"examples." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:14947 +msgid "TV Cards" +msgstr "電視卡" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:14950 +msgid "" +"<personname> <firstname>Josef</firstname> <surname>El-Rayes</surname> </" +"personname> <contrib>Original contribution by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:14960 +msgid "" +"<personname> <firstname>Marc</firstname> <surname>Fonvieille</surname> </" +"personname> <contrib>Enhanced and adapted by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:14970 +msgid "<primary>TV cards</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:14974 +msgid "" +"TV cards can be used to watch broadcast or cable TV on a computer. Most " +"cards accept composite video via an <acronym>RCA</acronym> or S-video input " +"and some cards include a <acronym>FM</acronym> radio tuner." +msgstr "" +"電視卡(TV card)可以讓您用電腦來看無線、有線電視節目。許多卡都是透過 " +"<acronym>RCA</acronym> 或 S-video 輸入端子來接收視訊,而且有些卡還可接收 " +"<acronym>FM</acronym> 廣播的功能。" + +#. (itstool) path: sect1/para +#: book.translate.xml:14979 +msgid "" +"FreeBSD provides support for PCI-based TV cards using a Brooktree " +"Bt848/849/878/879 video capture chip with the " +"<citerefentry><refentrytitle>bktr</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> driver. This driver supports most Pinnacle PCTV video cards. " +"Before purchasing a TV card, consult <citerefentry><refentrytitle>bktr</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> for a list of " +"supported tuners." +msgstr "" +"FreeBSD 可透過 <citerefentry><refentrytitle>bktr</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> 驅動程式,來支援 PCI 介" +"面的電視卡,只要這些卡使用的是 Brooktree Bt848/849/878/879 或 Conexant " +"CN-878/Fusion 878a 視訊擷取晶片。此外,要再確認哪些卡上所附的選台功能是否有支" +"援,可以參考 <citerefentry><refentrytitle>bktr</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> 說明,以查看所支援的硬體清單。" + +#. (itstool) path: sect2/title +#: book.translate.xml:14986 +msgid "Loading the Driver" +msgstr "載入驅動程式" + +#. (itstool) path: sect2/para +#: book.translate.xml:14988 +msgid "" +"In order to use the card, the <citerefentry><refentrytitle>bktr</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver must be loaded. " +"To automate this at boot time, add the following line to <filename>/boot/" +"loader.conf</filename>:" +msgstr "" +"要用電視卡的話,就要載入 <citerefentry><refentrytitle>bktr</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> 驅動程式,這個可以透過" +"在 <filename>/boot/loader.conf</filename> 檔加上下面這一行就可以了:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:14992 +#, no-wrap +msgid "bktr_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:14994 +msgid "" +"Alternatively, one can statically compile support for the TV card into a " +"custom kernel. In that case, add the following lines to the custom kernel " +"configuration file:" +msgstr "" +"或者可以將電視卡支援靜態編譯到自訂的核心當中,若要這麼做則可在自訂核心設定檔" +"加入以下行:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:14999 +#, no-wrap +msgid "" +"device\t bktr\n" +"device\tiicbus\n" +"device\tiicbb\n" +"device\tsmbus" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15004 +msgid "" +"These additional devices are necessary as the card components are " +"interconnected via an I2C bus. Then, build and install a new kernel." +msgstr "" +"之所以要加上這些額外的驅動程式,是因為卡的各組成部分都是透過 I2C 匯流排而相互" +"連接的。接下來,請編譯、安裝新的核心 。" + +#. (itstool) path: sect2/para +#: book.translate.xml:15008 +msgid "" +"To test that the tuner is correctly detected, reboot the system. The TV card " +"should appear in the boot messages, as seen in this example:" +msgstr "" +"要測試調諧器 (Tuner) 是否被正確的偵測,請先重新啟動系統。電視卡應該會出現在開" +"機訊息檔中,如同此範例:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:15012 +#, no-wrap +msgid "" +"bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0\n" +"iicbb0: <I2C bit-banging driver> on bti2c0\n" +"iicbus0: <Philips I2C bus> on iicbb0 master-only\n" +"iicbus1: <Philips I2C bus> on iicbb0 master-only\n" +"smbus0: <System Management Bus> on bti2c0\n" +"bktr0: Pinnacle/Miro TV, Philips SECAM tuner." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15019 +msgid "" +"The messages will differ according to the hardware. If necessary, it is " +"possible to override some of the detected parameters using " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> or custom kernel configuration options. For example, to force " +"the tuner to a Philips SECAM tuner, add the following line to a custom " +"kernel configuration file:" +msgstr "" +"該訊息會依硬體不同而有所不同。若必要,可以使用 " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 系統偵測的參數或者自訂核心設定選項。例如要強制使用 Philips " +"SECAM 調諧器則可加入下列行至自訂核心設定檔:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:15026 +#, no-wrap +msgid "options OVERRIDE_TUNER=6" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15028 +msgid "" +"or, use <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" +"或使用 <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15030 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sysctl hw.bt848.tuner=6</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15032 +msgid "" +"Refer to <citerefentry><refentrytitle>bktr</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> for a description of the available " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> parameters and kernel options." +msgstr "" +"請參考 <citerefentry><refentrytitle>bktr</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> 查看 <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 可用的參數說明及核心選" +"項。" + +#. (itstool) path: sect2/title +#: book.translate.xml:15037 +msgid "Useful Applications" +msgstr "好用的應用程式" + +#. (itstool) path: sect2/para +#: book.translate.xml:15039 +msgid "To use the TV card, install one of the following applications:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:15044 +msgid "" +"<package>multimedia/fxtv</package> provides TV-in-a-window and image/audio/" +"video capture capabilities." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:15049 +msgid "" +"<package>multimedia/xawtv</package> is another TV application with similar " +"features." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:15053 +msgid "" +"<package>audio/xmradio</package> provides an application for using the FM " +"radio tuner of a TV card." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15059 +msgid "More applications are available in the FreeBSD Ports Collection." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15066 +msgid "" +"If any problems are encountered with the TV card, check that the video " +"capture chip and the tuner are supported by " +"<citerefentry><refentrytitle>bktr</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> and that the right configuration options were used. For more " +"support or to ask questions about supported TV cards, refer to the <link " +"xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-multimedia" +"\">freebsd-multimedia</link> mailing list." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:15075 +msgid "MythTV" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15077 +msgid "" +"MythTV is a popular, open source Personal Video Recorder (<acronym>PVR</" +"acronym>) application. This section demonstrates how to install and setup " +"MythTV on FreeBSD. Refer to <link xlink:href=\"http://www.mythtv.org/wiki/" +"\">mythtv.org/wiki</link> for more information on how to use MythTV." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15082 +msgid "" +"MythTV requires a frontend and a backend. These components can either be " +"installed on the same system or on different machines." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15086 +msgid "" +"The frontend can be installed on FreeBSD using the <package>multimedia/" +"mythtv-frontend</package> package or port. <application>Xorg</application> " +"must also be installed and configured as described in <xref linkend=\"x11\"/" +">. Ideally, this system has a video card that supports X-Video Motion " +"Compensation (<acronym>XvMC</acronym>) and, optionally, a Linux Infrared " +"Remote Control (<acronym>LIRC</acronym>)-compatible remote." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15095 +msgid "" +"To install both the backend and the frontend on FreeBSD, use the " +"<package>multimedia/mythtv</package> package or port. A <trademark>MySQL</" +"trademark> database server is also required and should automatically be " +"installed as a dependency. Optionally, this system should have a tuner card " +"and sufficient storage to hold recorded data." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:15103 +msgid "Hardware" +msgstr "硬體" + +#. (itstool) path: sect2/para +#: book.translate.xml:15105 +msgid "" +"MythTV uses Video for Linux (<acronym>V4L</acronym>) to access video input " +"devices such as encoders and tuners. In FreeBSD, MythTV works best with " +"<acronym>USB</acronym> DVB-S/C/T cards as they are well supported by the " +"<package>multimedia/webcamd</package> package or port which provides a " +"<acronym>V4L</acronym> userland application. Any Digital Video Broadcasting " +"(<acronym>DVB</acronym>) card supported by <application>webcamd</" +"application> should work with MythTV. A list of known working cards can be " +"found at <link xlink:href=\"http://wiki.freebsd.org/WebcamCompat\">wiki." +"freebsd.org/WebcamCompat</link>. Drivers are also available for Hauppauge " +"cards in the <package>multimedia/pvr250</package> and <package>multimedia/" +"pvrxxx</package> ports, but they provide a non-standard driver interface " +"that does not work with versions of MythTV greater than 0.23. Due to " +"licensing restrictions, no packages are available and these two ports must " +"be compiled." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15123 +msgid "" +"The <link xlink:href=\"http://wiki.freebsd.org/HTPC\">wiki.freebsd.org/HTPC</" +"link> page contains a list of all available <acronym>DVB</acronym> drivers." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:15129 +msgid "Setting up the MythTV Backend" +msgstr "設定 MythTV 後端" + +#. (itstool) path: sect2/para +#: book.translate.xml:15131 +msgid "To install MythTV using the port:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15133 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/multimedia/mythtv</userinput>\n" +"<prompt>#</prompt> <userinput>make install</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15136 +msgid "Once installed, set up the MythTV database:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15138 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mysql -uroot -p < /usr/local/share/mythtv/database/mc.sql</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15140 +msgid "Then, configure the backend:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15142 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mythtv-setup</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15144 +msgid "Finally, start the backend:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15146 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>echo 'mythbackend_enable=\"YES\"' >> /etc/rc.conf</userinput>\n" +"<prompt>#</prompt> <userinput>service mythbackend start</userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:15153 +msgid "Image Scanners" +msgstr "影像掃描器" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:15156 +msgid "" +"<personname> <firstname>Marc</firstname> <surname>Fonvieille</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:15166 +msgid "<primary>image scanners</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15170 +msgid "" +"In FreeBSD, access to image scanners is provided by <application>SANE</" +"application> (Scanner Access Now Easy), which is available in the FreeBSD " +"Ports Collection. <application>SANE</application> will also use some FreeBSD " +"device drivers to provide access to the scanner hardware." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15176 +msgid "" +"FreeBSD supports both <acronym>SCSI</acronym> and <acronym>USB</acronym> " +"scanners. Depending upon the scanner interface, different device drivers are " +"required. Be sure the scanner is supported by <application>SANE</" +"application> prior to performing any configuration. Refer to <link xlink:" +"href=\"http://www.sane-project.org/sane-supported-devices.html\"> http://www." +"sane-project.org/sane-supported-devices.html</link> for more information " +"about supported scanners." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15184 +msgid "" +"This chapter describes how to determine if the scanner has been detected by " +"FreeBSD. It then provides an overview of how to configure and use " +"<application>SANE</application> on a FreeBSD system." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:15190 +msgid "Checking the Scanner" +msgstr "檢查掃描器" + +#. (itstool) path: sect2/para +#: book.translate.xml:15192 +msgid "" +"The <filename>GENERIC</filename> kernel includes the device drivers needed " +"to support <acronym>USB</acronym> scanners. Users with a custom kernel " +"should ensure that the following lines are present in the custom kernel " +"configuration file:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:15198 +#, no-wrap +msgid "" +"device usb\n" +"device uhci\n" +"device ohci\n" +"device ehci" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15203 +msgid "" +"To determine if the <acronym>USB</acronym> scanner is detected, plug it in " +"and use <command>dmesg</command> to determine whether the scanner appears in " +"the system message buffer. If it does, it should display a message similar " +"to this:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15209 +#, no-wrap +msgid "ugen0.2: <EPSON> at usbus0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15211 +msgid "" +"In this example, an <trademark class=\"registered\">EPSON Perfection</" +"trademark> 1650 <acronym>USB</acronym> scanner was detected on <filename>/" +"dev/ugen0.2</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15216 +msgid "" +"If the scanner uses a <acronym>SCSI</acronym> interface, it is important to " +"know which <acronym>SCSI</acronym> controller board it will use. Depending " +"upon the <acronym>SCSI</acronym> chipset, a custom kernel configuration file " +"may be needed. The <filename>GENERIC</filename> kernel supports the most " +"common <acronym>SCSI</acronym> controllers. Refer to <filename>/usr/src/sys/" +"conf/NOTES</filename> to determine the correct line to add to a custom " +"kernel configuration file. In addition to the <acronym>SCSI</acronym> " +"adapter driver, the following lines are needed in a custom kernel " +"configuration file:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:15228 +#, no-wrap +msgid "" +"device scbus\n" +"device pass" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15231 +msgid "Verify that the device is displayed in the system message buffer:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15234 +#, no-wrap +msgid "" +"pass2 at aic0 bus 0 target 2 lun 0\n" +"pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device\n" +"pass2: 3.300MB/s transfers" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15238 +msgid "" +"If the scanner was not powered-on at system boot, it is still possible to " +"manually force detection by performing a <acronym>SCSI</acronym> bus scan " +"with <command>camcontrol</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15243 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>camcontrol rescan all</userinput>\n" +"Re-scan of bus 0 was successful\n" +"Re-scan of bus 1 was successful\n" +"Re-scan of bus 2 was successful\n" +"Re-scan of bus 3 was successful" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15249 +msgid "" +"The scanner should now appear in the <acronym>SCSI</acronym> devices list:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15252 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>camcontrol devlist</userinput>\n" +"<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)\n" +"<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)\n" +"<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)\n" +"<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15258 +msgid "" +"Refer to <citerefentry><refentrytitle>scsi</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>camcontrol</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more details about " +"<acronym>SCSI</acronym> devices on FreeBSD." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:15263 +msgid "<application>SANE</application> Configuration" +msgstr "<application>SANE</application> 設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:15265 +msgid "" +"The <application>SANE</application> system is split in two parts: the " +"backends (<package>graphics/sane-backends</package>) and the frontends " +"(<package>graphics/sane-frontends</package> or <package>graphics/xsane</" +"package>). The backends provide access to the scanner. Refer to <link xlink:" +"href=\"http://www.sane-project.org/sane-supported-devices.html\">http://www." +"sane-project.org/sane-supported-devices.html</link> to determine which " +"backend supports the scanner. The frontends provide the graphical scanning " +"interface. <package>graphics/sane-frontends</package> installs " +"<application>xscanimage</application> while <package>graphics/xsane</" +"package> installs <application>xsane</application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15278 +msgid "" +"After installing the <package>graphics/sane-backends</package> port or " +"package, use <command>sane-find-scanner</command> to check the scanner " +"detection by the <application>SANE</application> system:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15284 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>sane-find-scanner -q</userinput>\n" +"found SCSI scanner \"AGFA SNAPSCAN 600 1.10\" at /dev/pass3" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15287 +msgid "" +"The output should show the interface type of the scanner and the device node " +"used to attach the scanner to the system. The vendor and the product model " +"may or may not appear." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:15292 +msgid "" +"Some <acronym>USB</acronym> scanners require firmware to be loaded. Refer to " +"sane-find-scanner(1) and sane(7) for details." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15297 +msgid "" +"Next, check if the scanner will be identified by a scanning frontend. The " +"<application>SANE</application> backends include <command>scanimage</" +"command> which can be used to list the devices and perform an image " +"acquisition. Use <option>-L</option> to list the scanner devices. The first " +"example is for a <acronym>SCSI</acronym> scanner and the second is for a " +"<acronym>USB</acronym> scanner:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15305 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>scanimage -L</userinput>\n" +"device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner\n" +"<prompt>#</prompt> <userinput>scanimage -L</userinput>\n" +"device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15310 +msgid "" +"In this second example, <literal>'epson2:libusb:/dev/usb:/dev/ugen0.2'</" +"literal> is the backend name (<literal>epson2</literal>) and <literal>/dev/" +"ugen0.2</literal> is the device node used by the scanner." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15316 +msgid "" +"If <command>scanimage</command> is unable to identify the scanner, this " +"message will appear:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15319 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>scanimage -L</userinput>\n" +"\n" +"No scanners were identified. If you were expecting something different,\n" +"check that the scanner is plugged in, turned on and detected by the\n" +"sane-find-scanner tool (if appropriate). Please read the documentation\n" +"which came with this software (README, FAQ, manpages)." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15326 +msgid "" +"If this happens, edit the backend configuration file in <filename>/usr/local/" +"etc/sane.d/</filename> and define the scanner device used. For example, if " +"the undetected scanner model is an <trademark class=\"registered\">EPSON " +"Perfection</trademark> 1650 and it uses the <literal>epson2</literal> " +"backend, edit <filename>/usr/local/etc/sane.d/epson2.conf</filename>. When " +"editing, add a line specifying the interface and the device node used. In " +"this case, add the following line:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:15336 +#, no-wrap +msgid "usb /dev/ugen0.2" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15338 +msgid "" +"Save the edits and verify that the scanner is identified with the right " +"backend name and the device node:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15341 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>scanimage -L</userinput>\n" +"device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15344 +msgid "" +"Once <command>scanimage -L</command> sees the scanner, the configuration is " +"complete and the scanner is now ready to use." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15348 +msgid "" +"While <command>scanimage</command> can be used to perform an image " +"acquisition from the command line, it is often preferable to use a graphical " +"interface to perform image scanning. The <package>graphics/sane-frontends</" +"package> package or port installs a simple but efficient graphical " +"interface, <application>xscanimage</application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15355 +msgid "" +"Alternately, <application>xsane</application>, which is installed with the " +"<package>graphics/xsane</package> package or port, is another popular " +"graphical scanning frontend. It offers advanced features such as various " +"scanning modes, color correction, and batch scans. Both of these " +"applications are usable as a <application>GIMP</application> plugin." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:15364 +msgid "Scanner Permissions" +msgstr "掃描器權限" + +#. (itstool) path: sect2/para +#: book.translate.xml:15366 +msgid "" +"In order to have access to the scanner, a user needs read and write " +"permissions to the device node used by the scanner. In the previous example, " +"the <acronym>USB</acronym> scanner uses the device node <filename>/dev/" +"ugen0.2</filename> which is really a symlink to the real device node " +"<filename>/dev/usb/0.2.0</filename>. The symlink and the device node are " +"owned, respectively, by the <systemitem class=\"groupname\">wheel</" +"systemitem> and <systemitem class=\"groupname\">operator</systemitem> " +"groups. While adding the user to these groups will allow access to the " +"scanner, it is considered insecure to add a user to <systemitem class=" +"\"groupname\">wheel</systemitem>. A better solution is to create a group and " +"make the scanner device accessible to members of this group." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15379 +msgid "" +"This example creates a group called <systemitem class=\"groupname" +"\"><replaceable>usb</replaceable></systemitem>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15381 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw groupadd usb</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15383 +msgid "" +"Then, make the <filename>/dev/ugen0.2</filename> symlink and the <filename>/" +"dev/usb/0.2.0</filename> device node accessible to the <systemitem class=" +"\"groupname\">usb</systemitem> group with write permissions of " +"<literal>0660</literal> or <literal>0664</literal> by adding the following " +"lines to <filename>/etc/devfs.rules</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:15390 +#, no-wrap +msgid "" +"[system=5]\n" +"add path ugen0.2 mode 0660 group usb\n" +"add path usb/0.2.0 mode 0666 group usb" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15394 +msgid "" +"Finally, add the users to <systemitem class=\"groupname\"><replaceable>usb</" +"replaceable></systemitem> in order to allow access to the scanner:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:15397 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw groupmod usb -m <replaceable>joe</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:15399 +msgid "" +"For more details refer to <citerefentry><refentrytitle>pw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: chapter/title +#: book.translate.xml:15429 +msgid "Configuring the FreeBSD Kernel" +msgstr "設定 FreeBSD 核心" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:15434 +msgid "" +"<primary>kernel</primary> <secondary>building a custom kernel</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15439 +msgid "" +"The kernel is the core of the FreeBSD operating system. It is responsible " +"for managing memory, enforcing security controls, networking, disk access, " +"and much more. While much of FreeBSD is dynamically configurable, it is " +"still occasionally necessary to configure and compile a custom kernel." +msgstr "" +"核心 (Kernel) 是 FreeBSD 作業系統最重要的部份之一。它負責記憶體管理、安全控" +"管、網路、硬碟存取等等。 儘管目前 FreeBSD 大多可以用動態設定, 但有時仍需要設" +"定並編譯自訂的核心。" + +#. (itstool) path: listitem/para +#: book.translate.xml:15449 +msgid "When to build a custom kernel." +msgstr "何時需要編譯自訂核心。" + +#. (itstool) path: listitem/para +#: book.translate.xml:15453 +msgid "How to take a hardware inventory." +msgstr "如何取得硬體資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:15457 +msgid "How to customize a kernel configuration file." +msgstr "如何量身訂做核心設定檔。" + +#. (itstool) path: listitem/para +#: book.translate.xml:15461 +msgid "" +"How to use the kernel configuration file to create and build a new kernel." +msgstr "如何使用核心設定檔來建立並編譯新的核心。" + +#. (itstool) path: listitem/para +#: book.translate.xml:15466 +msgid "How to install the new kernel." +msgstr "如何安裝新的核心。" + +#. (itstool) path: listitem/para +#: book.translate.xml:15470 +msgid "How to troubleshoot if things go wrong." +msgstr "發生錯誤時如何排除問題。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15474 +msgid "" +"All of the commands listed in the examples in this chapter should be " +"executed as <systemitem class=\"username\">root</systemitem>." +msgstr "" +"所有在本章所列出的指令均應以 <systemitem class=\"username\">root</" +"systemitem> 來執行。" + +#. (itstool) path: sect1/title +#: book.translate.xml:15479 +msgid "Why Build a Custom Kernel?" +msgstr "為何要編譯自訂的核心?" + +#. (itstool) path: sect1/para +#: book.translate.xml:15481 +msgid "" +"Traditionally, FreeBSD used a monolithic kernel. The kernel was one large " +"program, supported a fixed list of devices, and in order to change the " +"kernel's behavior, one had to compile and then reboot into a new kernel." +msgstr "" +"早期的 FreeBSD 的核心 (Kernel) 被戲稱為 “巨石”。因為當時的核心是一個非常大的" +"程式,且只支援固定的硬體裝置,如果您想改變核心的設定,就必須編譯一個新核心並" +"重新開機,才能使用。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15486 +msgid "" +"Today, most of the functionality in the FreeBSD kernel is contained in " +"modules which can be dynamically loaded and unloaded from the kernel as " +"necessary. This allows the running kernel to adapt immediately to new " +"hardware or for new functionality to be brought into the kernel. This is " +"known as a modular kernel." +msgstr "" +"現在,大多數在 FreeBSD 核心的功能已採用模組 (Module) 的方式包裝,可以依據需求" +"動態在核心載入或卸載。 這使得核心能夠快速採用新硬體環境的新功能,就叫做模組化" +"核心 (Modular Kernel)。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15493 +msgid "" +"Occasionally, it is still necessary to perform static kernel configuration. " +"Sometimes the needed functionality is so tied to the kernel that it can not " +"be made dynamically loadable. Some security environments prevent the loading " +"and unloading of kernel modules and require that only needed functionality " +"is statically compiled into the kernel." +msgstr "" +"儘管如此,還是有一些功能因使用到靜態的核心設定須要編譯,因為這些功能與核心緊" +"密結合,無法將做成可動態載入的模組。且部份強調安全性的環境會盡量避免載入與卸" +"載核心模組,且只要將需要的功能靜態的編譯到核心當中。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15500 +msgid "" +"Building a custom kernel is often a rite of passage for advanced BSD users. " +"This process, while time consuming, can provide benefits to the FreeBSD " +"system. Unlike the <filename>GENERIC</filename> kernel, which must support a " +"wide range of hardware, a custom kernel can be stripped down to only provide " +"support for that computer's hardware. This has a number of benefits, such as:" +msgstr "" +"編譯自訂的核心幾乎是每位進階的 BSD 使用者所必須經歷的過程。儘管這項工作可能比" +"較耗時,但在 FreeBSD 的使用上會有許多好處。 跟必須支援大多數各式硬體的 " +"<filename>GENERIC</filename> 核心相比的話, 自訂的核心可以更『體貼』,只支援" +"『自己硬體』的部分就好。 自訂核心有許多項優點,如︰" + +#. (itstool) path: listitem/para +#: book.translate.xml:15510 +msgid "" +"Faster boot time. Since the kernel will only probe the hardware on the " +"system, the time it takes the system to boot can decrease." +msgstr "" +"加速開機,因為自訂的核心只需要偵測您系統上存在的硬體,所以讓啟動所花的過程更" +"流暢快速。" + +#. (itstool) path: listitem/para +#: book.translate.xml:15516 +msgid "" +"Lower memory usage. A custom kernel often uses less memory than the " +"<filename>GENERIC</filename> kernel by omitting unused features and device " +"drivers. This is important because the kernel code remains resident in " +"physical memory at all times, preventing that memory from being used by " +"applications. For this reason, a custom kernel is useful on a system with a " +"small amount of RAM." +msgstr "" +"減少記憶體使用,自訂的核心通常會比 <filename>GENERIC</filename> 核心使用更少" +"的記憶體,這很重要,因為核心必須一直存放在實體記憶體內,會讓其他應用程式無法" +"使用。因此,自訂核心對於記憶體較小的系統來說,發揮很大的作用。" + +#. (itstool) path: listitem/para +#: book.translate.xml:15527 +msgid "" +"Additional hardware support. A custom kernel can add support for devices " +"which are not present in the <filename>GENERIC</filename> kernel." +msgstr "" +"支援額外的硬體,自訂的核心可以增加一些 <filename>GENERIC</filename> 核心沒有" +"提供的硬體支援。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15533 +msgid "" +"Before building a custom kernel, consider the reason for doing so. If there " +"is a need for specific hardware support, it may already exist as a module." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15537 +msgid "" +"Kernel modules exist in <filename>/boot/kernel</filename> and may be " +"dynamically loaded into the running kernel using " +"<citerefentry><refentrytitle>kldload</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. Most kernel drivers have a loadable module and " +"manual page. For example, the <citerefentry><refentrytitle>ath</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> wireless Ethernet " +"driver has the following information in its manual page:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:15543 +#, no-wrap +msgid "" +"Alternatively, to load the driver as a module at boot time, place the\n" +"following line in <citerefentry><refentrytitle>loader.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>:\n" +"\n" +" if_ath_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15548 +msgid "" +"Adding <literal>if_ath_load=\"YES\"</literal> to <filename>/boot/loader." +"conf</filename> will load this module dynamically at boot time." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15552 +msgid "" +"In some cases, there is no associated module in <filename>/boot/kernel</" +"filename>. This is mostly true for certain subsystems." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:15569 +msgid "Finding the System Hardware" +msgstr "偵測系統硬體" + +#. (itstool) path: sect1/para +#: book.translate.xml:15571 +msgid "" +"Before editing the kernel configuration file, it is recommended to perform " +"an inventory of the machine's hardware. On a dual-boot system, the inventory " +"can be created from the other operating system. For example, <trademark " +"class=\"registered\">Microsoft</trademark>'s <application>Device Manager</" +"application> contains information about installed devices." +msgstr "" +"在編輯核心設定檔之前,建議先調查清楚機器各項硬體資訊。在雙作業系統的環境,也" +"可透過其他作業系統來了解目前機器上的硬體資訊。 舉例來說,<trademark class=" +"\"registered\">Microsoft</trademark> 的 <application>裝置管理員</" +"application> (Device Manager) 內會有目前已安裝的硬體資訊。" + +#. (itstool) path: note/para +#: book.translate.xml:15579 +msgid "" +"Some versions of <trademark class=\"registered\">Microsoft</" +"trademark> <trademark class=\"registered\">Windows</trademark> have a " +"<application>System</application> icon which can be used to access " +"<application>Device Manager</application>." +msgstr "" +"某些版本的 <trademark class=\"registered\">Microsoft</trademark> <trademark " +"class=\"registered\">Windows</trademark> 會有<application>系統</application> " +"(System) 圖示可用來進入 <application>裝置管理員</application>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15584 +msgid "" +"If FreeBSD is the only installed operating system, use " +"<citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to determine the hardware that was found and listed during the " +"boot probe. Most device drivers on FreeBSD have a manual page which lists " +"the hardware supported by that driver. For example, the following lines " +"indicate that the <citerefentry><refentrytitle>psm</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver found a mouse:" +msgstr "" +"若 FreeBSD 是唯一安裝的作業系統,則可使用 " +"<citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 來查看開時時系統偵測到的硬體資訊 。FreeBSD 上大多硬體驅動程式都" +"有操作手冊會列出支援的硬體。例如,以下幾行是說 " +"<citerefentry><refentrytitle>psm</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> 驅動程式偵測到了一隻滑鼠:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:15591 +#, no-wrap +msgid "" +"psm0: <PS/2 Mouse> irq 12 on atkbdc0\n" +"psm0: [GIANT-LOCKED]\n" +"psm0: [ITHREAD]\n" +"psm0: model Generic PS/2 mouse, device ID 0" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15596 +msgid "" +"Since this hardware exists, this driver should not be removed from a custom " +"kernel configuration file." +msgstr "因為該硬體存在,此驅動程式便不應該從自訂核心設定檔中移除。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15599 +msgid "" +"If the output of <command>dmesg</command> does not display the results of " +"the boot probe output, instead read the contents of <filename>/var/run/dmesg." +"boot</filename>." +msgstr "" +"若 <command>dmesg</command> 輸出的結果未顯示開機偵測硬體的部份,則可改閱讀 " +"<filename>/var/run/dmesg.boot</filename> 檔案的內容。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15603 +msgid "" +"Another tool for finding hardware is <citerefentry><refentrytitle>pciconf</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, which provides more " +"verbose output. For example:" +msgstr "" +"另外,也可以透過 <citerefentry><refentrytitle>pciconf</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 工具可用來查詢硬體資" +"訊,該工具會列出更詳細的硬體資訊如:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:15606 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>pciconf -lv</userinput>\n" +"ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00\n" +" vendor = 'Atheros Communications Inc.'\n" +" device = 'AR5212 Atheros AR5212 802.11abg wireless'\n" +" class = network\n" +" subclass = ethernet" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15613 +msgid "" +"This output shows that the <filename>ath</filename> driver located a " +"wireless Ethernet device." +msgstr "" +"以上輸出資訊說明 <filename>ath</filename> 驅動程式已經找到一個無線乙太網路裝" +"置。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15616 +msgid "" +"The <option>-k</option> flag of <citerefentry><refentrytitle>man</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> can be used to provide " +"useful information. For example, to display a list of manual pages which " +"contain the specified word:" +msgstr "" +"在 <citerefentry><refentrytitle>man</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 指令加上 <option>-k</option> 參數,可提供有用的資訊,例如,列出" +"有包含指定關鍵字的手冊頁面清單:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:15620 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>man -k <replaceable>Atheros</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:15622 +#, no-wrap +msgid "" +"ath(4) - Atheros IEEE 802.11 wireless network driver\n" +"ath_hal(4) - Atheros Hardware Access Layer (HAL)" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15625 +msgid "" +"Once the hardware inventory list is created, refer to it to ensure that " +"drivers for installed hardware are not removed as the custom kernel " +"configuration is edited." +msgstr "" +"準備好硬體清單之後,參考該清單來確認已安裝的硬體驅動程式在編輯自訂核心設定時" +"沒有被移除。" + +#. (itstool) path: sect1/title +#. (itstool) path: sect2/title +#: book.translate.xml:15642 book.translate.xml:44027 +msgid "The Configuration File" +msgstr "設定檔" + +#. (itstool) path: sect1/para +#: book.translate.xml:15644 +msgid "" +"In order to create a custom kernel configuration file and build a custom " +"kernel, the full FreeBSD source tree must first be installed." +msgstr "" +"為了要建立自訂核心設定檔並編譯自訂核心,必須先安裝完整的 FreeBSD 原始碼樹。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15648 +msgid "" +"If <filename>/usr/src/</filename> does not exist or it is empty, source has " +"not been installed. Source can be installed using <application>Subversion</" +"application> and the instructions in <xref linkend=\"svn\"/>." +msgstr "" +"若 <filename>/usr/src/</filename> 目錄不存在或者是空的,代表尚未安裝。原始碼" +"可以使用 <application>Subversion</application> 並依據 <xref linkend=\"svn\"/" +"> 中的操作說明來安裝。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15653 +msgid "" +"Once source is installed, review the contents of <filename>/usr/src/sys</" +"filename>. This directory contains a number of subdirectories, including " +"those which represent the following supported architectures: " +"<filename>amd64</filename>, <filename>i386</filename>, <filename>ia64</" +"filename>, <filename>pc98</filename>, <filename>powerpc</filename>, and " +"<filename>sparc64</filename>. Everything inside a particular architecture's " +"directory deals with that architecture only and the rest of the code is " +"machine independent code common to all platforms. Each supported " +"architecture has a <filename>conf</filename> subdirectory which contains the " +"<filename>GENERIC</filename> kernel configuration file for that architecture." +msgstr "" +"完成原始碼完成後,需檢查 <filename>/usr/src/sys</filename> 內的檔案。該目錄內" +"包含數個子目錄,這些子目錄中包了支援的硬體架構 (Architecture) 如下:" +"<filename>amd64</filename>, <filename>i386</filename>, <filename>ia64</" +"filename>, <filename>pc98</filename>, <filename>powerpc</filename> 以及 " +"<filename>sparc64</filename>。在指定架構目錄中的內容只對該架構有效,其餘部份" +"的程式碼與硬體架構無關,可通用所有平台。每個支援的硬體架構中會有 " +"<filename>conf</filename> 子目錄,裡面含有供該架構使用的 <filename>GENERIC</" +"filename> 核心設定檔。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15667 +msgid "" +"Do not make edits to <filename>GENERIC</filename>. Instead, copy the file to " +"a different name and make edits to the copy. The convention is to use a name " +"with all capital letters. When maintaining multiple FreeBSD machines with " +"different hardware, it is a good idea to name it after the machine's " +"hostname. This example creates a copy, named <filename>MYKERNEL</filename>, " +"of the <filename>GENERIC</filename> configuration file for the " +"<literal>amd64</literal> architecture:" +msgstr "" +"請不要直接對 <filename>GENERIC</filename> 檔案做編輯。複製該檔案為另一個名" +"稱,並對複製出來的檔案做編輯,習慣上檔名會全部使用大寫字元。當維護多台安裝不" +"同的硬體的 FreeBSD 機器時,將檔名後方加上機器的主機名稱 (Host name) 是個不錯" +"的方法。以下範例使用 <literal>amd64</literal> 架構的 <filename>GENERIC</" +"filename> 設定檔建立了一個複本名稱為 <filename>MYKERNEL</filename>:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:15676 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src/sys/<replaceable>amd64</replaceable>/conf</userinput>\n" +"<prompt>#</prompt> <userinput>cp GENERIC <replaceable>MYKERNEL</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15679 +msgid "" +"<filename><replaceable>MYKERNEL</replaceable></filename> can now be " +"customized with any <acronym>ASCII</acronym> text editor. The default editor " +"is <application>vi</application>, though an easier editor for beginners, " +"called <application>ee</application>, is also installed with FreeBSD." +msgstr "" +"現在可以使用任何 <acronym>ASCII</acronym> 文字編輯器來自訂 " +"<filename><replaceable>MYKERNEL</replaceable></filename>。預設的編輯器為 " +"<application>vi</application>,在 FreeBSD 也內建一個易於初學者使用的編輯器叫" +"做 <application>ee</application>。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:15686 +msgid "<primary>kernel</primary> <secondary>NOTES</secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:15690 +msgid "<primary>NOTES</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:15691 +msgid "<primary>kernel</primary> <secondary>configuration file</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15696 +msgid "" +"The format of the kernel configuration file is simple. Each line contains a " +"keyword that represents a device or subsystem, an argument, and a brief " +"description. Any text after a <literal>#</literal> is considered a comment " +"and ignored. To remove kernel support for a device or subsystem, put a " +"<literal>#</literal> at the beginning of the line representing that device " +"or subsystem. Do not add or remove a <literal>#</literal> for any line that " +"you do not understand." +msgstr "" +"核心設定檔的格式很簡單,每一行會含有代表裝置 (Device) 或子系統 (Subsystem) 的" +"關鍵字、參數以及簡短的說明。任何在 <literal>#</literal> 符號之後的文字會被當" +"做註解並且略過。要移除核心對某個裝置或子系統的支援,僅需要在代表該裝置或子系" +"統的行前加上 <literal>#</literal> 符號。請不要在您還不了解用途的行前加上或移" +"除 <literal>#</literal> 符號。" + +#. (itstool) path: warning/para +#: book.translate.xml:15707 +msgid "" +"It is easy to remove support for a device or option and end up with a broken " +"kernel. For example, if the <citerefentry><refentrytitle>ata</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver is removed from " +"the kernel configuration file, a system using <acronym>ATA</acronym> disk " +"drivers may not boot. When in doubt, just leave support in the kernel." +msgstr "" +"移除對裝置或選項的支援很容易會造成核心損壞。例如,若從核心設定檔 " +"<citerefentry><refentrytitle>ata</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> 驅動程式,那麼使用 <acronym>ATA</acronym> 磁碟驅動程式的系統便" +"會無法開機。因此當您不確定時,請在核心保留該項目的支援。" + +#. (itstool) path: sect1/para +#: book.translate.xml:15714 +msgid "" +"In addition to the brief descriptions provided in this file, additional " +"descriptions are contained in <filename>NOTES</filename>, which can be found " +"in the same directory as <filename>GENERIC</filename> for that architecture. " +"For architecture independent options, refer to <filename>/usr/src/sys/conf/" +"NOTES</filename>." +msgstr "" +"除了在設定檔中提供的簡短說明之外,尚有其他的說明在 <filename>NOTES</" +"filename> 檔案中,可在與該架構 <filename>GENERIC</filename> 相同的目錄底下找" +"到。要查看所有架構通用的選項,請參考 <filename>/usr/src/sys/conf/NOTES</" +"filename>。" + +#. (itstool) path: tip/para +#: book.translate.xml:15722 +msgid "" +"When finished customizing the kernel configuration file, save a backup copy " +"to a location outside of <filename>/usr/src</filename>." +msgstr "" +"當完成自訂的核心設定檔,請備份到 <filename>/usr/src</filename> 位置之外。" + +#. (itstool) path: tip/para +#: book.translate.xml:15726 +msgid "" +"Alternately, keep the kernel configuration file elsewhere and create a " +"symbolic link to the file:" +msgstr "" +"或者,將核心設定檔放在其他地方,然後建立一個符號連結 (Symbolic link) 至該檔" +"案:" + +#. (itstool) path: tip/screen +#: book.translate.xml:15729 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src/sys/amd64/conf</userinput>\n" +"<prompt>#</prompt> <userinput>mkdir /root/kernels</userinput>\n" +"<prompt>#</prompt> <userinput>cp GENERIC /root/kernels/MYKERNEL</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s /root/kernels/MYKERNEL</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15735 +msgid "" +"An <literal>include</literal> directive is available for use in " +"configuration files. This allows another configuration file to be included " +"in the current one, making it easy to maintain small changes relative to an " +"existing file. If only a small number of additional options or drivers are " +"required, this allows a delta to be maintained with respect to " +"<filename>GENERIC</filename>, as seen in this example:" +msgstr "" +"設定檔中可以使用 <literal>include</literal> 指令 (Directive)。該指令可以引用" +"其他設定檔到目前的設定檔,這讓只需根據現有檔案設定做些微調整時更簡單。若只有" +"少量的額外選項或驅動程式需要設定,該指令可引用 <filename>GENERIC</filename> " +"並設定額外增加的選項,如範例所示:" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:15743 +#, no-wrap +msgid "" +"include GENERIC\n" +"ident MYKERNEL\n" +"\n" +"options IPFIREWALL\n" +"options DUMMYNET\n" +"options IPFIREWALL_DEFAULT_TO_ACCEPT\n" +"options IPDIVERT" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:15751 +msgid "" +"Using this method, the local configuration file expresses local differences " +"from a <filename>GENERIC</filename> kernel. As upgrades are performed, new " +"features added to <filename>GENERIC</filename> will also be added to the " +"local kernel unless they are specifically prevented using " +"<literal>nooptions</literal> or <literal>nodevice</literal>. A comprehensive " +"list of configuration directives and their descriptions may be found in " +"<citerefentry><refentrytitle>config</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry>." +msgstr "" +"使用此方法,設定檔只含有與 <filename>GENERIC</filename> 核心不同的部份。當升" +"級有新功能加入 <filename>GENERIC</filename> 時,也可一併引用,除非特別使用 " +"<literal>nooptions</literal> 或 <literal>nodevice</literal> 選項來排除設定。" +"更詳細的設定檔指令及其說明可在 <citerefentry><refentrytitle>config</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 找到。" + +#. (itstool) path: note/para +#: book.translate.xml:15761 +msgid "" +"To build a file which contains all available options, run the following " +"command as <systemitem class=\"username\">root</systemitem>:" +msgstr "" +"要產生含有所有可用選項的設定檔,可以 <systemitem class=\"username\">root</" +"systemitem> 執行以下指令:" + +#. (itstool) path: note/screen +#: book.translate.xml:15764 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cd /usr/src/sys/<replaceable>arch</replaceable>/conf && make LINT</userinput>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:16580 +msgid "Building and Installing a Custom Kernel" +msgstr "編譯與安裝自訂核心" + +#. (itstool) path: sect1/para +#: book.translate.xml:16582 +msgid "" +"Once the edits to the custom configuration file have been saved, the source " +"code for the kernel can be compiled using the following steps:" +msgstr "完成自訂設定檔的編輯並儲存之後,便可依據以下步驟編譯核心的原始碼:" + +#. (itstool) path: procedure/title +#: book.translate.xml:16587 +msgid "Building a Kernel" +msgstr "編譯核心" + +#. (itstool) path: procedure/indexterm +#: book.translate.xml:16589 +msgid "<primary>kernel</primary> <secondary>building / installing</secondary>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:16595 +msgid "Change to this directory:" +msgstr "切換至此目錄:" + +#. (itstool) path: step/screen +#: book.translate.xml:16597 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cd /usr/src</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:16601 +msgid "" +"Compile the new kernel by specifying the name of the custom kernel " +"configuration file:" +msgstr "指定自訂核心設定檔的名稱來編譯新的核心:" + +#. (itstool) path: step/screen +#: book.translate.xml:16604 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make buildkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:16608 +msgid "" +"Install the new kernel associated with the specified kernel configuration " +"file. This command will copy the new kernel to <filename>/boot/kernel/" +"kernel</filename> and save the old kernel to <filename>/boot/kernel.old/" +"kernel</filename>:" +msgstr "" +"安裝使用指定核心設定檔所編譯的新核心。此指令將會複製新核心到 <filename>/boot/" +"kernel/kernel</filename> 並將舊核心備份到 <filename>/boot/kernel.old/kernel</" +"filename>:" + +#. (itstool) path: step/screen +#: book.translate.xml:16614 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make installkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:16618 +msgid "" +"Shutdown the system and reboot into the new kernel. If something goes wrong, " +"refer to <xref linkend=\"kernelconfig-noboot\"/>." +msgstr "" +"關機並重新開機載入新的核心,若發生錯誤請參考 <xref linkend=\"kernelconfig-" +"noboot\"/>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:16623 +msgid "" +"By default, when a custom kernel is compiled, all kernel modules are " +"rebuilt. To update a kernel faster or to build only custom modules, edit " +"<filename>/etc/make.conf</filename> before starting to build the kernel." +msgstr "" +"預設在自訂核心編譯完成後,所有核心模組也同被重新編譯。要快速更新核心或只編譯" +"自訂的模組,需在開始編譯之前先編輯 <filename>/etc/make.conf</filename>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:16628 +msgid "" +"For example, this variable specifies the list of modules to build instead of " +"using the default of building all modules:" +msgstr "例如,使用以下變數可指定要編譯的模組清單來替代預設編譯所有模組的設定:" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:16632 +#, no-wrap +msgid "MODULES_OVERRIDE = linux acpi" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:16634 +msgid "" +"Alternately, this variable lists which modules to exclude from the build " +"process:" +msgstr "或者,可使用以下變數來從編譯程序中排除要編譯的模組:" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:16637 +#, no-wrap +msgid "WITHOUT_MODULES = linux acpi sound" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:16639 +msgid "" +"Additional variables are available. Refer to " +"<citerefentry><refentrytitle>make.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for details." +msgstr "" +"尚有其他可用的變數,請參考 <citerefentry><refentrytitle>make.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 取得詳細資訊。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:16642 +msgid "<primary><filename>/boot/kernel.old</filename></primary>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:16648 +msgid "If Something Goes Wrong" +msgstr "如果發生錯誤" + +#. (itstool) path: sect1/para +#: book.translate.xml:16650 +msgid "" +"There are four categories of trouble that can occur when building a custom " +"kernel:" +msgstr "當編譯自訂核心時可能發生以下四種類型的問題:" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:16655 +msgid "<command>config</command> fails" +msgstr "<command>config</command> 失敗" + +#. (itstool) path: listitem/para +#: book.translate.xml:16658 +msgid "" +"If <command>config</command> fails, it will print the line number that is " +"incorrect. As an example, for the following message, make sure that line 17 " +"is typed correctly by comparing it to <filename>GENERIC</filename> or " +"<filename>NOTES</filename>:" +msgstr "" +"若 <command>config</command> 失敗,會列出不正確的行號。使用以下訊息為例子,需" +"要與 <filename>GENERIC</filename> 或 <filename>NOTES</filename> 比對來確認第 " +"17 行輸入的內容正確:" + +#. (itstool) path: listitem/screen +#: book.translate.xml:16664 +#, no-wrap +msgid "config: line 17: syntax error" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:16669 +msgid "<command>make</command> fails" +msgstr "<command>make</command> 失敗" + +#. (itstool) path: listitem/para +#: book.translate.xml:16672 +msgid "" +"If <command>make</command> fails, it is usually due to an error in the " +"kernel configuration file which is not severe enough for <command>config</" +"command> to catch. Review the configuration, and if the problem is not " +"apparent, send an email to the <link xlink:href=\"http://lists.FreeBSD.org/" +"mailman/listinfo/freebsd-questions\">FreeBSD general questions mailing list</" +"link> which contains the kernel configuration file." +msgstr "" +"若 <command>make</command> 失敗,通常是因為核心設定檔未提供足夠的資訊讓 " +"<command>config</command> 找到問題。請仔細檢查設定檔,若仍不清楚問題,請寄發" +"電子郵件給 <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/" +"freebsd-questions\">FreeBSD general questions mailing list</link> 並附上核心" +"設定檔。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:16682 +msgid "The kernel does not boot" +msgstr "無法使用核心開機" + +#. (itstool) path: listitem/para +#: book.translate.xml:16685 +msgid "" +"If the new kernel does not boot or fails to recognize devices, do not panic! " +"Fortunately, FreeBSD has an excellent mechanism for recovering from " +"incompatible kernels. Simply choose the kernel to boot from at the FreeBSD " +"boot loader. This can be accessed when the system boot menu appears by " +"selecting the <quote>Escape to a loader prompt</quote> option. At the " +"prompt, type <command>boot <replaceable>kernel.old</replaceable></command>, " +"or the name of any other kernel that is known to boot properly." +msgstr "" +"若新核心無法開機或無法辨識裝置並不要恐慌!幸好,FreeBSD 有良好的機制可以從不" +"相容的核心復原。只需要在 FreeBSD 開機載入程式 (Boot loader) 選擇要用來開機的" +"核心便可,當系統開機選單出現時選擇 <quote>Escape to a loader prompt</quote> " +"選項,並在指令提示後輸入 <command>boot <replaceable>kernel.old</" +"replaceable></command> 或替換為任何其他已經知道可以正常開機的核心名稱。" + +#. (itstool) path: listitem/para +#: book.translate.xml:16697 +msgid "" +"After booting with a good kernel, check over the configuration file and try " +"to build it again. One helpful resource is <filename>/var/log/messages</" +"filename> which records the kernel messages from every successful boot. " +"Also, <citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> will print the kernel messages from the current " +"boot." +msgstr "" +"使用好的核心開機之後,檢查設定檔並嘗試再編譯一次。<filename>/var/log/" +"messages</filename> 是有用的資源,它在每次成功開機時會記錄核心訊息。同樣的," +"<citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 也會印出自本次開機後的核心訊息。" + +#. (itstool) path: note/para +#: book.translate.xml:16705 +msgid "" +"When troubleshooting a kernel, make sure to keep a copy of " +"<filename>GENERIC</filename>, or some other kernel that is known to work, as " +"a different name that will not get erased on the next build. This is " +"important because every time a new kernel is installed, <filename>kernel." +"old</filename> is overwritten with the last installed kernel, which may or " +"may not be bootable. As soon as possible, move the working kernel by " +"renaming the directory containing the good kernel:" +msgstr "" +"在排除核心問題時,請確定留有 <filename>GENERIC</filename> 的複本,或者其他已" +"知可以運作的核心,並使用不同的名稱來確保下次編譯時不會被刪除,這很重要,因此" +"每當新的核心被安裝之後,<filename>kernel.old</filename> 都會被最後安裝的核心" +"覆寫,有可能會無法開機。盡快,透過重新命名將可運作的核心目錄移動到目前運作的" +"核心目錄。" + +#. (itstool) path: note/screen +#: book.translate.xml:16715 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mv /boot/kernel <replaceable>/boot/kernel.bad</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>mv /boot/<replaceable>kernel.good</replaceable> /boot/kernel</userinput>" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:16722 +msgid "" +"The kernel works, but <citerefentry><refentrytitle>ps</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> does not" +msgstr "" +"核心可運作,但 <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 無法運作" + +#. (itstool) path: listitem/para +#: book.translate.xml:16725 +msgid "" +"If the kernel version differs from the one that the system utilities have " +"been built with, for example, a kernel built from -CURRENT sources is " +"installed on a -RELEASE system, many system status commands like " +"<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>vmstat</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> will not work. To fix " +"this, <link linkend=\"makeworld\">recompile and install a world</link> built " +"with the same version of the source tree as the kernel. It is never a good " +"idea to use a different version of the kernel than the rest of the operating " +"system." +msgstr "" +"若核心版本與系統工具所編譯的版本不同,例如,有一個核心使用 -CURRENT 的原始碼" +"編譯並安裝在 -RELEASE 的系統上,許多系統狀態指令如 " +"<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 及 <citerefentry><refentrytitle>vmstat</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 將會無法運作。要修正此" +"問題,請使用與核心相同版本的原始碼樹 (Source tree) <link linkend=\"makeworld" +"\">重新編譯並安裝 World</link>。使用與作業系統其他部份版本不同的核心永遠不會" +"是個好主意。" + +#. (itstool) path: info/title +#: book.translate.xml:16750 +msgid "Printing" +msgstr "列印" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:16753 book.translate.xml:28573 +msgid "" +"<personname> <firstname>Warren</firstname> <surname>Block</surname> </" +"personname><contrib>Originally contributed by </contrib>" +msgstr "" + +#. (itstool) path: chapter/para +#: book.translate.xml:16762 +msgid "" +"Putting information on paper is a vital function, despite many attempts to " +"eliminate it. Printing has two basic components. The data must be delivered " +"to the printer, and must be in a form that the printer can understand." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:16770 +msgid "" +"Basic printing can be set up quickly. The printer must be capable of " +"printing plain <acronym>ASCII</acronym> text. For printing to other types of " +"files, see <xref linkend=\"printing-lpd-filters\"/>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:16777 +msgid "Create a directory to store files while they are being printed:" +msgstr "" + +#. (itstool) path: step/screen +#. (itstool) path: sect2/screen +#: book.translate.xml:16780 book.translate.xml:17189 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mkdir -p /var/spool/lpd/lp</userinput>\n" +"<prompt>#</prompt> <userinput>chown daemon:daemon /var/spool/lpd/lp</userinput>\n" +"<prompt>#</prompt> <userinput>chmod 770 /var/spool/lpd/lp</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:16786 +msgid "" +"As <systemitem class=\"username\">root</systemitem>, create <filename>/etc/" +"printcap</filename> with these contents:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:16790 +#, no-wrap +msgid "" +"lp:\\\n" +"\t<replaceable>:lp=/dev/unlpt0:\\</replaceable> <co xml:id=\"printing-qs-co-printcap\"/>\n" +"\t:sh:\\\n" +"\t:mx#0:\\\n" +"\t:sd=/var/spool/lpd/lp:\\\n" +"\t:lf=/var/log/lpd-errs:" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:16799 +msgid "This line is for a printer connected to a <acronym>USB</acronym> port." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:16802 +msgid "" +"For a printer connected to a parallel or <quote>printer</quote> port, use:" +msgstr "" + +#. (itstool) path: callout/programlisting +#. (itstool) path: entry/programlisting +#: book.translate.xml:16805 book.translate.xml:17246 +#, no-wrap +msgid ":lp=/dev/lpt0:\\" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:16807 +msgid "For a printer connected directly to a network, use:" +msgstr "" + +#. (itstool) path: callout/programlisting +#. (itstool) path: entry/programlisting +#: book.translate.xml:16810 book.translate.xml:17255 +#, no-wrap +msgid ":lp=:rm=<replaceable>network-printer-name</replaceable>:rp=raw:\\" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:16812 +msgid "" +"Replace <replaceable>network-printer-name</replaceable> with the " +"<acronym>DNS</acronym> host name of the network printer." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:16821 +msgid "" +"Enable <command>lpd</command> by editing <filename>/etc/rc.conf</filename>, " +"adding this line:" +msgstr "" + +#. (itstool) path: step/programlisting +#. (itstool) path: sect2/programlisting +#: book.translate.xml:16824 book.translate.xml:17312 +#, no-wrap +msgid "lpd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: step/para +#. (itstool) path: sect2/para +#: book.translate.xml:16826 book.translate.xml:17314 +msgid "Start the service:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:16828 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service lpd start</userinput>\n" +"Starting lpd." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:16833 +msgid "Print a test:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:16835 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>printf \"1. This printer can print.\\n2. This is the second line.\\n\" | lpr</userinput>" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:16838 +msgid "" +"If both lines do not start at the left border, but <quote>stairstep</quote> " +"instead, see <xref linkend=\"printing-lpd-filters-stairstep\"/>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:16843 +msgid "" +"Text files can now be printed with <command>lpr</command>. Give the filename " +"on the command line, or pipe output directly into <command>lpr</command>." +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:16848 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>lpr textfile.txt</userinput>\n" +"<prompt>%</prompt> <userinput>ls -lh | lpr</userinput>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:16855 +msgid "Printer Connections" +msgstr "印表機連線" + +#. (itstool) path: sect1/para +#: book.translate.xml:16857 +msgid "" +"Printers are connected to computer systems in a variety of ways. Small " +"desktop printers are usually connected directly to a computer's " +"<acronym>USB</acronym> port. Older printers are connected to a parallel or " +"<quote>printer</quote> port. Some printers are directly connected to a " +"network, making it easy for multiple computers to share them. A few printers " +"use a rare serial port connection." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:16865 +msgid "FreeBSD can communicate with all of these types of printers." +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: row/entry +#: book.translate.xml:16870 book.translate.xml:17232 +msgid "<acronym>USB</acronym>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16873 +msgid "" +"<acronym>USB</acronym> printers can be connected to any available " +"<acronym>USB</acronym> port on the computer." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16877 +msgid "" +"When FreeBSD detects a <acronym>USB</acronym> printer, two device entries " +"are created: <filename>/dev/ulpt0</filename> and <filename>/dev/unlpt0</" +"filename>. Data sent to either device will be relayed to the printer. After " +"each print job, <filename>ulpt0</filename> resets the <acronym>USB</acronym> " +"port. Resetting the port can cause problems with some printers, so the " +"<filename>unlpt0</filename> device is usually used instead. " +"<filename>unlpt0</filename> does not reset the USB port at all." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:16892 +msgid "Parallel (<acronym>IEEE</acronym>-1284)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16895 +msgid "" +"The parallel port device is <filename>/dev/lpt0</filename>. This device " +"appears whether a printer is attached or not, it is not autodetected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16900 +msgid "" +"Vendors have largely moved away from these <quote>legacy</quote> ports, and " +"many computers no longer have them. Adapters can be used to connect a " +"parallel printer to a <acronym>USB</acronym> port. With such an adapter, the " +"printer can be treated as if it were actually a <acronym>USB</acronym> " +"printer. Devices called <emphasis>print servers</emphasis> can also be used " +"to connect parallel printers directly to a network." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:16912 +msgid "Serial (RS-232)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16915 +msgid "" +"Serial ports are another legacy port, rarely used for printers except in " +"certain niche applications. Cables, connectors, and required wiring vary " +"widely." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16919 +msgid "" +"For serial ports built into a motherboard, the serial device name is " +"<filename>/dev/cuau0</filename> or <filename>/dev/cuau1</filename>. Serial " +"<acronym>USB</acronym> adapters can also be used, and these will appear as " +"<filename>/dev/cuaU<replaceable>0</replaceable></filename>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16926 +msgid "" +"Several communication parameters must be known to communicate with a serial " +"printer. The most important are <emphasis>baud rate</emphasis> or " +"<acronym>BPS</acronym> (Bits Per Second) and <emphasis>parity</emphasis>. " +"Values vary, but typical serial printers use a baud rate of 9600 and no " +"parity." +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: row/entry +#: book.translate.xml:16936 book.translate.xml:17250 +msgid "Network" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16939 +msgid "Network printers are connected directly to the local computer network." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16942 +msgid "" +"The <acronym>DNS</acronym> hostname of the printer must be known. If the " +"printer is assigned a dynamic address by <acronym>DHCP</acronym>, " +"<acronym>DNS</acronym> should be dynamically updated so that the host name " +"always has the correct <acronym>IP</acronym> address. Network printers are " +"often given static <acronym>IP</acronym> addresses to avoid this problem." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16950 +msgid "" +"Most network printers understand print jobs sent with the <acronym>LPD</" +"acronym> protocol. A print queue name can also be specified. Some printers " +"process data differently depending on which queue is used. For example, a " +"<literal>raw</literal> queue prints the data unchanged, while the " +"<literal>text</literal> queue adds carriage returns to plain text." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16958 +msgid "Many network printers can also print data sent directly to port 9100." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:16967 +msgid "" +"Wired network connections are usually the easiest to set up and give the " +"fastest printing. For direct connection to the computer, <acronym>USB</" +"acronym> is preferred for speed and simplicity. Parallel connections work " +"but have limitations on cable length and speed. Serial connections are more " +"difficult to configure. Cable wiring differs between models, and " +"communication parameters like baud rate and parity bits must add to the " +"complexity. Fortunately, serial printers are rare." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:16980 +msgid "Common Page Description Languages" +msgstr "常見的頁面描述語言" + +#. (itstool) path: sect1/para +#: book.translate.xml:16982 +msgid "" +"Data sent to a printer must be in a language that the printer can " +"understand. These languages are called Page Description Languages, or " +"<acronym>PDL</acronym>s." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:16988 +msgid "<acronym>ASCII</acronym>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:16991 +msgid "" +"Plain <acronym>ASCII</acronym> text is the simplest way to send data to a " +"printer. Characters correspond one to one with what will be printed: an " +"<literal>A</literal> in the data prints an <literal>A</literal> on the page. " +"Very little formatting is available. There is no way to select a font or " +"proportional spacing. The forced simplicity of plain <acronym>ASCII</" +"acronym> means that text can be printed straight from the computer with " +"little or no encoding or translation. The printed output corresponds " +"directly with what was sent." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:17002 +msgid "" +"Some inexpensive printers cannot print plain <acronym>ASCII</acronym> text. " +"This makes them more difficult to set up, but it is usually still possible." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:17010 +msgid "<trademark class=\"registered\">PostScript</trademark>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:17013 +msgid "" +"<trademark class=\"registered\">PostScript</trademark> is almost the " +"opposite of <acronym>ASCII</acronym>. Rather than simple text, a <trademark " +"class=\"registered\">PostScript</trademark> program is a set of instructions " +"that draw the final document. Different fonts and graphics can be used. " +"However, this power comes at a price. The program that draws the page must " +"be written. Usually this program is generated by application software, so " +"the process is invisible to the user." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:17022 +msgid "" +"Inexpensive printers sometimes leave out <trademark class=\"registered" +"\">PostScript</trademark> compatibility as a cost-saving measure." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:17028 +msgid "<acronym>PCL</acronym> (Printer Command Language)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:17031 +msgid "" +"<acronym>PCL</acronym> is an extension of <acronym>ASCII</acronym>, adding " +"escape sequences for formatting, font selection, and printing graphics. Many " +"printers provide <acronym>PCL5</acronym> support. Some support the newer " +"<acronym>PCL6</acronym> or <acronym>PCLXL</acronym>. These later versions " +"are supersets of <acronym>PCL5</acronym> and can provide faster printing." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:17043 +msgid "Host-Based" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:17046 +msgid "" +"Manufacturers can reduce the cost of a printer by giving it a simple " +"processor and very little memory. These printers are not capable of printing " +"plain text. Instead, bitmaps of text and graphics are drawn by a driver on " +"the host computer and then sent to the printer. These are called " +"<emphasis>host-based</emphasis> printers." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:17054 +msgid "" +"Communication between the driver and a host-based printer is often through " +"proprietary or undocumented protocols, making them functional only on the " +"most common operating systems." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17063 +msgid "" +"Converting <trademark class=\"registered\">PostScript</trademark> to Other " +"<acronym>PDL</acronym>s" +msgstr "" +"轉換 <trademark class=\"registered\">PostScript</trademark> 至其他 " +"<acronym>PDL</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:17066 +msgid "" +"Many applications from the Ports Collection and FreeBSD utilities produce " +"<trademark class=\"registered\">PostScript</trademark> output. This table " +"shows the utilities available to convert that into other common " +"<acronym>PDL</acronym>s:" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:17072 +msgid "Output <acronym>PDL</acronym>s" +msgstr "輸出 <acronym>PDL</acronym> 格式" + +#. (itstool) path: row/entry +#: book.translate.xml:17077 +msgid "Output <acronym>PDL</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17079 +msgid "Generated By" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17086 +msgid "<acronym>PCL</acronym> or <acronym>PCL5</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17088 book.translate.xml:17096 book.translate.xml:17104 +msgid "<package role=\"port\">print/ghostscript9</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17089 +msgid "" +"<literal>-sDEVICE=ljet4</literal> for monochrome, <literal>-sDEVICE=cljet5</" +"literal> for color" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17094 +msgid "<acronym>PCLXL</acronym> or <acronym>PCL6</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17097 +msgid "" +"<literal>-sDEVICE=pxlmono</literal> for monochrome, <literal>-" +"sDEVICE=pxlcolor</literal> for color" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17103 +msgid "<acronym>ESC/P2</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17105 +msgid "<literal>-sDEVICE=uniprint</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17109 +msgid "<acronym>XQX</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17110 +msgid "<package role=\"port\">print/foo2zjs</package>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17121 +msgid "" +"For the easiest printing, choose a printer that supports <trademark class=" +"\"registered\">PostScript</trademark>. Printers that support <acronym>PCL</" +"acronym> are the next preferred. With <package role=\"port\">print/" +"ghostscript</package>, these printers can be used as if they understood " +"<trademark class=\"registered\">PostScript</trademark> natively. Printers " +"that support <trademark class=\"registered\">PostScript</trademark> or " +"<acronym>PCL</acronym> directly almost always support direct printing of " +"plain <acronym>ASCII</acronym> text files also." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17131 +msgid "" +"Line-based printers like typical inkjets usually do not support <trademark " +"class=\"registered\">PostScript</trademark> or <acronym>PCL</acronym>. They " +"often can print plain <acronym>ASCII</acronym> text files. <package role=" +"\"port\">print/ghostscript</package> supports the <acronym>PDL</acronym>s " +"used by some of these printers. However, printing an entire graphic-based " +"page on these printers is often very slow due to the large amount of data to " +"be transferred and printed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17140 +msgid "" +"Host-based printers are often more difficult to set up. Some cannot be used " +"at all because of proprietary <acronym>PDL</acronym>s. Avoid these printers " +"when possible." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17145 +msgid "" +"Descriptions of many <acronym>PDL</acronym>s can be found at <link xlink:" +"href=\"http://www.undocprint.org/formats/page_description_languages\"/>. The " +"particular <acronym>PDL</acronym> used by various models of printers can be " +"found at <link xlink:href=\"http://www.openprinting.org/printers\"/>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:17153 +msgid "Direct Printing" +msgstr "直接列印" + +#. (itstool) path: sect1/para +#: book.translate.xml:17155 +msgid "" +"For occasional printing, files can be sent directly to a printer device " +"without any setup. For example, a file called <filename>sample.txt</" +"filename> can be sent to a <acronym>USB</acronym> printer:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:17160 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cp sample.txt /dev/unlpt0</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:17162 +msgid "" +"Direct printing to network printers depends on the abilities of the printer, " +"but most accept print jobs on port 9100, and " +"<citerefentry><refentrytitle>nc</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> can be used with them. To print the same file to a printer " +"with the <acronym>DNS</acronym> hostname of <replaceable>netlaser</" +"replaceable>:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:17168 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>nc <replaceable>netlaser</replaceable> 9100 < sample.txt</userinput>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:17172 +msgid "<acronym>LPD</acronym> (Line Printer Daemon)" +msgstr "<acronym>LPD</acronym> (行列式印表機 Daemon)" + +#. (itstool) path: sect1/para +#: book.translate.xml:17174 +msgid "" +"Printing a file in the background is called <emphasis>spooling</emphasis>. A " +"spooler allows the user to continue with other programs on the computer " +"without waiting for the printer to slowly complete the print job." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:17179 +msgid "" +"FreeBSD includes a spooler called <citerefentry><refentrytitle>lpd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. Print jobs are " +"submitted with <citerefentry><refentrytitle>lpr</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17183 book.translate.xml:28662 +msgid "Initial Setup" +msgstr "初始設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:17185 +msgid "" +"A directory for storing print jobs is created, ownership is set, and the " +"permissions are set to prevent other users from viewing the contents of " +"those files:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17193 +msgid "" +"Printers are defined in <filename>/etc/printcap</filename>. An entry for " +"each printer includes details like a name, the port where it is attached, " +"and various other settings. Create <filename>/etc/printcap</filename> with " +"these contents:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:17199 +#, no-wrap +msgid "" +"lp:\\\t\t\t\t<co xml:id=\"printing-lpd-co-name\"/>\n" +"\t:lp=/dev/unlpt0:\\\t<co xml:id=\"printing-lpd-co-device\"/>\n" +"\t:sh:\\\t\t\t<co xml:id=\"printing-lpd-co-header\"/>\n" +"\t:mx#0:\\\t\t\t<co xml:id=\"printing-lpd-co-mx\"/>\n" +"\t:sd=/var/spool/lpd/lp:\\\t<co xml:id=\"printing-lpd-co-sd\"/>\n" +"\t:lf=/var/log/lpd-errs:\t<co xml:id=\"printing-lpd-co-lf\"/>" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:17208 +msgid "" +"The name of this printer. <citerefentry><refentrytitle>lpr</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> sends print jobs to " +"the <literal>lp</literal> printer unless another printer is specified with " +"<option>-P</option>, so the default printer should be named <literal>lp</" +"literal>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:17216 +msgid "" +"The device where the printer is connected. Replace this line with the " +"appropriate one for the connection type shown here." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17224 +msgid "Connection Type" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17225 +msgid "Device Entry in <filename>/etc/printcap</filename>" +msgstr "" + +#. (itstool) path: entry/programlisting +#: book.translate.xml:17233 +#, no-wrap +msgid ":lp=/dev/unlpt0:\\" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:17235 +msgid "" +"This is the <emphasis>non-resetting</emphasis> <acronym>USB</acronym> " +"printer device. If problems are experienced, use <filename>ulpt0</filename> " +"instead, which resets the <acronym>USB</acronym> port on each use." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17245 +msgid "Parallel" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:17252 +msgid "For a printer supporting the <acronym>LPD</acronym> protocol:" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:17257 +msgid "For printers supporting port 9100 printing:" +msgstr "" + +#. (itstool) path: entry/programlisting +#: book.translate.xml:17260 +#, no-wrap +msgid ":lp=9100@<replaceable>network-printer-name</replaceable>:\\" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:17262 +msgid "" +"For both types, replace <replaceable>network-printer-name</replaceable> with " +"the <acronym>DNS</acronym> host name of the network printer." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:17269 +msgid "Serial" +msgstr "" + +#. (itstool) path: entry/programlisting +#: book.translate.xml:17270 +#, no-wrap +msgid ":lp=/dev/cuau0:br=9600:pa=none:\\" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:17272 +msgid "" +"These values are for a typical serial printer connected to a motherboard " +"serial port. The baud rate is 9600, and no parity is used." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:17283 +msgid "Suppress the printing of a header page at the start of a print job." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:17288 +msgid "Do not limit the maximum size of a print job." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:17292 +msgid "" +"The path to the spooling directory for this printer. Each printer uses its " +"own spooling directory." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:17297 +msgid "The log file where errors on this printer will be reported." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17302 +msgid "" +"After creating <filename>/etc/printcap</filename>, use " +"<citerefentry><refentrytitle>chkprintcap</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> to test it for errors:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:17305 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chkprintcap</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17307 +msgid "Fix any reported problems before continuing." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17309 +msgid "" +"Enable <citerefentry><refentrytitle>lpd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> in <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:17316 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service lpd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17320 +msgid "" +"Printing with <citerefentry><refentrytitle>lpr</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>" +msgstr "" +"使用 <citerefentry><refentrytitle>lpr</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 列印" + +#. (itstool) path: sect2/para +#: book.translate.xml:17322 +msgid "" +"Documents are sent to the printer with <command>lpr</command>. A file to be " +"printed can be named on the command line or piped into <command>lpr</" +"command>. These two commands are equivalent, sending the contents of " +"<filename>doc.txt</filename> to the default printer:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:17328 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>lpr doc.txt</userinput>\n" +"<prompt>%</prompt> <userinput>cat doc.txt | lpr</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17331 +msgid "" +"Printers can be selected with <option>-P</option>. To print to a printer " +"called <replaceable>laser</replaceable>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:17335 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>lpr -Plaser doc.txt</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17339 +msgid "Filters" +msgstr "過濾器" + +#. (itstool) path: sect2/para +#: book.translate.xml:17341 +msgid "" +"The examples shown so far have sent the contents of a text file directly to " +"the printer. As long as the printer understands the content of those files, " +"output will be printed correctly." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17346 +msgid "" +"Some printers are not capable of printing plain text, and the input file " +"might not even be plain text." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17349 +msgid "" +"<emphasis>Filters</emphasis> allow files to be translated or processed. The " +"typical use is to translate one type of input, like plain text, into a form " +"that the printer can understand, like <trademark class=\"registered" +"\">PostScript</trademark> or <acronym>PCL</acronym>. Filters can also be " +"used to provide additional features, like adding page numbers or " +"highlighting source code to make it easier to read." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17357 +msgid "" +"The filters discussed here are <emphasis>input filters</emphasis> or " +"<emphasis>text filters</emphasis>. These filters convert the incoming file " +"into different forms. Use <citerefentry><refentrytitle>su</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> to become <systemitem " +"class=\"username\">root</systemitem> before creating the files." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17364 +msgid "" +"Filters are specified in <filename>/etc/printcap</filename> with the " +"<literal>if=</literal> identifier. To use <filename>/usr/local/libexec/" +"lf2crlf</filename> as a filter, modify <filename>/etc/printcap</filename> " +"like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:17370 +#, no-wrap +msgid "" +"lp:\\\n" +"\t:lp=/dev/unlpt0:\\\n" +"\t:sh:\\\n" +"\t:mx#0:\\\n" +"\t:sd=/var/spool/lpd/lp:\\\n" +"\t:if=/usr/local/libexec/lf2crlf:\\ <co xml:id=\"printing-lpd-filters-co-if\"/>\n" +"\t:lf=/var/log/lpd-errs:" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:17380 +msgid "" +"<literal>if=</literal> identifies the <emphasis>input filter</emphasis> that " +"will be used on incoming text." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:17387 +msgid "" +"The backslash <emphasis>line continuation</emphasis> characters at the end " +"of the lines in <filename>printcap</filename> entries reveal that an entry " +"for a printer is really just one long line with entries delimited by colon " +"characters. An earlier example can be rewritten as a single less-readable " +"line:" +msgstr "" + +#. (itstool) path: tip/programlisting +#: book.translate.xml:17394 +#, no-wrap +msgid "lp:lp=/dev/unlpt0:sh:mx#0:sd=/var/spool/lpd/lp:if=/usr/local/libexec/lf2crlf:lf=/var/log/lpd-errs:" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:17398 +msgid "Preventing Stairstepping on Plain Text Printers" +msgstr "避免在純文字印表機階梯狀列印" + +#. (itstool) path: sect3/para +#: book.translate.xml:17400 +msgid "" +"Typical FreeBSD text files contain only a single line feed character at the " +"end of each line. These lines will <quote>stairstep</quote> on a standard " +"printer:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:17404 +#, no-wrap +msgid "" +"A printed file looks\n" +" like the steps of a staircase\n" +" scattered by the wind" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17408 +msgid "" +"A filter can convert the newline characters into carriage returns and " +"newlines. The carriage returns make the printer return to the left after " +"each line. Create <filename>/usr/local/libexec/lf2crlf</filename> with these " +"contents:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:17414 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"CR=$'\\r'\n" +"/usr/bin/sed -e \"s/$/${CR}/g\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17418 book.translate.xml:17453 book.translate.xml:17485 +#: book.translate.xml:17539 +msgid "Set the permissions and make it executable:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17420 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chmod 555 /usr/local/libexec/lf2crlf</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17422 book.translate.xml:17457 +msgid "Modify <filename>/etc/printcap</filename> to use the new filter:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:17425 +#, no-wrap +msgid ":if=/usr/local/libexec/lf2crlf:\\" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17427 +msgid "" +"Test the filter by printing the same plain text file. The carriage returns " +"will cause each line to start at the left side of the page." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:17433 +msgid "" +"Fancy Plain Text on <trademark class=\"registered\">PostScript</trademark> " +"Printers with <package>print/enscript</package>" +msgstr "" +"使用 <package>print/enscript</package> 在 <trademark class=\"registered" +"\">PostScript</trademark> 印表機美化純文字內容" + +#. (itstool) path: sect3/para +#: book.translate.xml:17436 +msgid "" +"<acronym>GNU</acronym> <application>Enscript</application> converts plain " +"text files into nicely-formatted <trademark class=\"registered\">PostScript</" +"trademark> for printing on <trademark class=\"registered\">PostScript</" +"trademark> printers. It adds page numbers, wraps long lines, and provides " +"numerous other features to make printed text files easier to read. Depending " +"on the local paper size, install either <package role=\"port\">print/" +"enscript-letter</package> or <package role=\"port\">print/enscript-a4</" +"package> from the Ports Collection." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17447 +msgid "" +"Create <filename>/usr/local/libexec/enscript</filename> with these contents:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:17450 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"/usr/local/bin/enscript -o -" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17455 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chmod 555 /usr/local/libexec/enscript</userinput>" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:17460 +#, no-wrap +msgid ":if=/usr/local/libexec/enscript:\\" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17462 +msgid "Test the filter by printing a plain text file." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:17466 +msgid "" +"Printing <trademark class=\"registered\">PostScript</trademark> to " +"<acronym>PCL</acronym> Printers" +msgstr "" +"列印 <trademark class=\"registered\">PostScript</trademark> 到 <acronym>PCL</" +"acronym> 印表機" + +#. (itstool) path: sect3/para +#: book.translate.xml:17469 +msgid "" +"Many programs produce <trademark class=\"registered\">PostScript</trademark> " +"documents. However, inexpensive printers often only understand plain text or " +"<acronym>PCL</acronym>. This filter converts <trademark class=\"registered" +"\">PostScript</trademark> files to <acronym>PCL</acronym> before sending " +"them to the printer." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17475 +msgid "" +"Install the Ghostscript <trademark class=\"registered\">PostScript</" +"trademark> interpreter, <package role=\"port\">print/ghostscript9</package>, " +"from the Ports Collection." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17479 +msgid "" +"Create <filename>/usr/local/libexec/ps2pcl</filename> with these contents:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:17482 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"/usr/local/bin/gs -dSAFER -dNOPAUSE -dBATCH -q -sDEVICE=ljet4 -sOutputFile=- -" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17487 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chmod 555 /usr/local/libexec/ps2pcl</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17489 +msgid "" +"<trademark class=\"registered\">PostScript</trademark> input sent to this " +"script will be rendered and converted to <acronym>PCL</acronym> before being " +"sent on to the printer." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17493 book.translate.xml:17543 +msgid "Modify <filename>/etc/printcap</filename> to use this new input filter:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:17496 +#, no-wrap +msgid ":if=/usr/local/libexec/ps2pcl:\\" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17498 +msgid "" +"Test the filter by sending a small <trademark class=\"registered" +"\">PostScript</trademark> program to it:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17501 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>printf \"%%\\!PS \\n /Helvetica findfont 18 scalefont setfont \\\n" +"72 432 moveto (PostScript printing successful.) show showpage \\004\" | lpr</userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:17506 +msgid "Smart Filters" +msgstr "智慧過濾器" + +#. (itstool) path: sect3/para +#: book.translate.xml:17508 +msgid "" +"A filter that detects the type of input and automatically converts it to the " +"correct format for the printer can be very convenient. The first two " +"characters of a <trademark class=\"registered\">PostScript</trademark> file " +"are usually <literal>%!</literal>. A filter can detect those two characters. " +"<trademark class=\"registered\">PostScript</trademark> files can be sent on " +"to a <trademark class=\"registered\">PostScript</trademark> printer " +"unchanged. Text files can be converted to <trademark class=\"registered" +"\">PostScript</trademark> with <application>Enscript</application> as shown " +"earlier. Create <filename>/usr/local/libexec/psif</filename> with these " +"contents:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:17519 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"#\n" +"# psif - Print PostScript or plain text on a PostScript printer\n" +"#\n" +"IFS=\"\" read -r first_line\n" +"first_two_chars=`expr \"$first_line\" : '\\(..\\)'`\n" +"\n" +"case \"$first_two_chars\" in\n" +"%!)\n" +" # %! : PostScript job, print it.\n" +" echo \"$first_line\" && cat && exit 0\n" +" exit 2\n" +" ;;\n" +"*)\n" +" # otherwise, format with enscript\n" +" ( echo \"$first_line\"; cat ) | /usr/local/bin/enscript -o - && exit 0\n" +" exit 2\n" +" ;;\n" +"esac" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17541 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chmod 555 /usr/local/libexec/psif</userinput>" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:17546 +#, no-wrap +msgid ":if=/usr/local/libexec/psif:\\" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17548 +msgid "" +"Test the filter by printing <trademark class=\"registered\">PostScript</" +"trademark> and plain text files." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:17553 +msgid "Other Smart Filters" +msgstr "其他智慧過濾器" + +#. (itstool) path: sect3/para +#: book.translate.xml:17555 +msgid "" +"Writing a filter that detects many different types of input and formats them " +"correctly is challenging. <package role=\"port\">print/apsfilter</package> " +"from the Ports Collection is a smart <quote>magic</quote> filter that " +"detects dozens of file types and automatically converts them to the " +"<acronym>PDL</acronym> understood by the printer. See <link xlink:href=" +"\"http://www.apsfilter.org\"/> for more details." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17567 +msgid "Multiple Queues" +msgstr "多序列" + +#. (itstool) path: sect2/para +#: book.translate.xml:17569 +msgid "" +"The entries in <filename>/etc/printcap</filename> are really definitions of " +"<emphasis>queues</emphasis>. There can be more than one queue for a single " +"printer. When combined with filters, multiple queues provide users more " +"control over how their jobs are printed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17575 +msgid "" +"As an example, consider a networked <trademark class=\"registered" +"\">PostScript</trademark> laser printer in an office. Most users want to " +"print plain text, but a few advanced users want to be able to print " +"<trademark class=\"registered\">PostScript</trademark> files directly. Two " +"entries can be created for the same printer in <filename>/etc/printcap</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:17581 +#, no-wrap +msgid "" +"textprinter:\\\n" +"\t:lp=9100@officelaser:\\\n" +"\t:sh:\\\n" +"\t:mx#0:\\\n" +"\t:sd=/var/spool/lpd/textprinter:\\\n" +"\t:if=/usr/local/libexec/enscript:\\\n" +"\t:lf=/var/log/lpd-errs:\n" +"\n" +"psprinter:\\\n" +"\t:lp=9100@officelaser:\\\n" +"\t:sh:\\\n" +"\t:mx#0:\\\n" +"\t:sd=/var/spool/lpd/psprinter:\\\n" +"\t:lf=/var/log/lpd-errs:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17596 +msgid "" +"Documents sent to <literal>textprinter</literal> will be formatted by the " +"<filename>/usr/local/libexec/enscript</filename> filter shown in an earlier " +"example. Advanced users can print <trademark class=\"registered" +"\">PostScript</trademark> files on <literal>psprinter</literal>, where no " +"filtering is done." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17603 +msgid "" +"This multiple queue technique can be used to provide direct access to all " +"kinds of printer features. A printer with a duplexer could use two queues, " +"one for ordinary single-sided printing, and one with a filter that sends the " +"command sequence to enable double-sided printing and then sends the incoming " +"file." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17612 +msgid "Monitoring and Controlling Printing" +msgstr "監視與控制列印" + +#. (itstool) path: sect2/para +#: book.translate.xml:17614 +msgid "" +"Several utilities are available to monitor print jobs and check and control " +"printer operation." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:17618 +msgid "" +"<citerefentry><refentrytitle>lpq</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17620 +msgid "" +"<citerefentry><refentrytitle>lpq</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> shows the status of a user's print jobs. Print jobs from other " +"users are not shown." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17623 +msgid "Show the current user's pending jobs on a single printer:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17626 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>lpq -P<replaceable>lp</replaceable></userinput>\n" +"Rank Owner Job Files Total Size\n" +"1st jsmith 0 (standard input) 12792 bytes" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17630 +msgid "Show the current user's pending jobs on all printers:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17633 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>lpq -a</userinput>\n" +"lp:\n" +"Rank Owner Job Files Total Size\n" +"1st jsmith 1 (standard input) 27320 bytes\n" +"\n" +"laser:\n" +"Rank Owner Job Files Total Size\n" +"1st jsmith 287 (standard input) 22443 bytes" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:17644 +msgid "" +"<citerefentry><refentrytitle>lprm</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17646 +msgid "" +"<citerefentry><refentrytitle>lprm</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> is used to remove print jobs. Normal users are only allowed to " +"remove their own jobs. <systemitem class=\"username\">root</systemitem> can " +"remove any or all jobs." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17651 +msgid "Remove all pending jobs from a printer:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17653 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>lprm -P<replaceable>lp</replaceable> -</userinput>\n" +"dfA002smithy dequeued\n" +"cfA002smithy dequeued\n" +"dfA003smithy dequeued\n" +"cfA003smithy dequeued\n" +"dfA004smithy dequeued\n" +"cfA004smithy dequeued" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17661 +msgid "" +"Remove a single job from a printer. <citerefentry><refentrytitle>lpq</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> is used to find the " +"job number." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17664 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>lpq</userinput>\n" +"Rank Owner Job Files Total Size\n" +"1st jsmith 5 (standard input) 12188 bytes\n" +"<prompt>%</prompt> <userinput>lprm -P<replaceable>lp</replaceable> <replaceable>5</replaceable></userinput>\n" +"dfA005smithy dequeued\n" +"cfA005smithy dequeued" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:17673 +msgid "" +"<citerefentry><refentrytitle>lpc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17675 +msgid "" +"<citerefentry><refentrytitle>lpc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> is used to check and modify printer status. <literal>lpc</" +"literal> is followed by a command and an optional printer name. " +"<literal>all</literal> can be used instead of a specific printer name, and " +"the command will be applied to all printers. Normal users can view status " +"with <citerefentry><refentrytitle>lpc</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. Only <systemitem> class=\"username\">root</" +"systemitem> can use commands which modify printer status." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17684 +msgid "Show the status of all printers:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17686 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>lpc status all</userinput>\n" +"lp:\n" +"\tqueuing is enabled\n" +"\tprinting is enabled\n" +"\t1 entry in spool area\n" +"\tprinter idle\n" +"laser:\n" +"\tqueuing is enabled\n" +"\tprinting is enabled\n" +"\t1 entry in spool area\n" +"\twaiting for laser to come up" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17698 +msgid "" +"Prevent a printer from accepting new jobs, then begin accepting new jobs " +"again:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17701 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>lpc disable <replaceable>lp</replaceable></userinput>\n" +"lp:\n" +"\tqueuing disabled\n" +"<prompt>#</prompt> <userinput>lpc enable <replaceable>lp</replaceable></userinput>\n" +"lp:\n" +"\tqueuing enabled" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17708 +msgid "" +"Stop printing, but continue to accept new jobs. Then begin printing again:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17711 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>lpc stop <replaceable>lp</replaceable></userinput>\n" +"lp:\n" +"\tprinting disabled\n" +"<prompt>#</prompt> <userinput>lpc start <replaceable>lp</replaceable></userinput>\n" +"lp:\n" +"\tprinting enabled\n" +"\tdaemon started" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17719 +msgid "Restart a printer after some error condition:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17721 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>lpc restart <replaceable>lp</replaceable></userinput>\n" +"lp:\n" +"\tno daemon to abort\n" +"\tprinting enabled\n" +"\tdaemon restarted" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17727 +msgid "" +"Turn the print queue off and disable printing, with a message to explain the " +"problem to users:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17730 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>lpc down <replaceable>lp</replaceable> Repair parts will arrive on Monday</userinput>\n" +"lp:\n" +"\tprinter and queuing disabled\n" +"\tstatus message is now: Repair parts will arrive on Monday" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17735 +msgid "Re-enable a printer that is down:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17737 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>lpc up <replaceable>lp</replaceable></userinput>\n" +"lp:\n" +"\tprinting enabled\n" +"\tdaemon started" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17742 +msgid "" +"See <citerefentry><refentrytitle>lpc</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for more commands and options." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17747 +msgid "Shared Printers" +msgstr "分享印表機" + +#. (itstool) path: sect2/para +#: book.translate.xml:17749 +msgid "" +"Printers are often shared by multiple users in businesses and schools. " +"Additional features are provided to make sharing printers more convenient." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:17754 +msgid "Aliases" +msgstr "別名" + +#. (itstool) path: sect3/para +#: book.translate.xml:17756 +msgid "" +"The printer name is set in the first line of the entry in <filename>/etc/" +"printcap</filename>. Additional names, or <emphasis>aliases</emphasis>, can " +"be added after that name. Aliases are separated from the name and each other " +"by vertical bars:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:17762 +#, no-wrap +msgid "lp|<replaceable>repairsprinter</replaceable>|<replaceable>salesprinter</replaceable>:\\" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17764 +msgid "" +"Aliases can be used in place of the printer name. For example, users in the " +"Sales department print to their printer with" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17768 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>lpr -P<replaceable>salesprinter</replaceable> <replaceable>sales-report.txt</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17770 +msgid "" +"Users in the Repairs department print to <emphasis>their</emphasis> printer " +"with" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:17773 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>lpr -P<replaceable>repairsprinter</replaceable> <replaceable>repairs-report.txt</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17775 +msgid "" +"All of the documents print on that single printer. When the Sales department " +"grows enough to need their own printer, the alias can be removed from the " +"shared printer entry and used as the name of a new printer. Users in both " +"departments continue to use the same commands, but the Sales documents are " +"sent to the new printer." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:17784 +msgid "Header Pages" +msgstr "頁首" + +#. (itstool) path: sect3/para +#: book.translate.xml:17786 +msgid "" +"It can be difficult for users to locate their documents in the stack of " +"pages produced by a busy shared printer. <emphasis>Header pages</emphasis> " +"were created to solve this problem. A header page with the user name and " +"document name is printed before each print job. These pages are also " +"sometimes called <emphasis>banner</emphasis> or <emphasis>separator</" +"emphasis> pages." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17794 +msgid "" +"Enabling header pages differs depending on whether the printer is connected " +"directly to the computer with a <acronym>USB</acronym>, parallel, or serial " +"cable, or is connected remotely over a network." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17799 +msgid "" +"Header pages on directly-connected printers are enabled by removing the " +"<literal>:sh:\\</literal> (Suppress Header) line from the entry in " +"<filename>/etc/printcap</filename>. These header pages only use line feed " +"characters for new lines. Some printers will need the <filename>/usr/share/" +"examples/printing/hpif</filename> filter to prevent stairstepped text. The " +"filter configures <acronym>PCL</acronym> printers to print both carriage " +"returns and line feeds when a line feed is received." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:17809 +msgid "" +"Header pages for network printers must be configured on the printer itself. " +"Header page entries in <filename>/etc/printcap</filename> are ignored. " +"Settings are usually available from the printer front panel or a " +"configuration web page accessible with a web browser." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17820 book.translate.xml:22620 +msgid "References" +msgstr "參考文獻" + +#. (itstool) path: sect2/para +#: book.translate.xml:17822 +msgid "" +"Example files: <filename role=\"directory\">/usr/share/examples/printing/</" +"filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17824 +msgid "" +"The <emphasis>4.3BSD Line Printer Spooler Manual</emphasis>, <filename>/usr/" +"share/doc/smm/07.lpd/paper.ascii.gz</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17828 +msgid "" +"Manual pages: <citerefentry><refentrytitle>printcap</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>lpd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, <citerefentry><refentrytitle>lpr</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, <citerefentry><refentrytitle>lpc</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>lprm</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, <citerefentry><refentrytitle>lpq</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:17834 +msgid "Other Printing Systems" +msgstr "其他列印系統" + +#. (itstool) path: sect1/para +#: book.translate.xml:17836 +msgid "" +"Several other printing systems are available in addition to the built-in " +"<citerefentry><refentrytitle>lpd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. These systems offer support for other protocols or additional " +"features." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17841 +msgid "" +"<acronym>CUPS</acronym> (Common <trademark class=\"registered\">UNIX</" +"trademark> Printing System)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17844 +msgid "" +"<acronym>CUPS</acronym> is a popular printing system available on many " +"operating systems. Using <acronym>CUPS</acronym> on FreeBSD is documented in " +"a separate article:<link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/" +"articles/cups\"/>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17851 +msgid "HPLIP" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17853 +msgid "" +"Hewlett Packard provides a printing system that supports many of their " +"inkjet and laser printers. The port is <package role=\"port\">print/hplip</" +"package>. The main web page is at <link xlink:href=\"http://hplipopensource." +"com/hplip-web/index.html\"/>. The port handles all the installation details " +"on FreeBSD. Configuration information is shown at <link xlink:href=\"http://" +"hplipopensource.com/hplip-web/install/manual/hp_setup.html\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:17862 +msgid "LPRng" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:17864 +msgid "" +"<application>LPRng</application> was developed as an enhanced alternative to " +"<citerefentry><refentrytitle>lpd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. The port is <package role=\"port\">sysutils/LPRng</package>. " +"For details and documentation, see <link xlink:href=\"http://www.lprng.com/" +"\"/>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:17882 +msgid "<trademark class=\"registered\">Linux</trademark> Binary Compatibility" +msgstr "<trademark class=\"registered\">Linux</trademark> Binary 相容性" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:17885 +msgid "" +"<personname> <firstname>Jim</firstname> <surname>Mock</surname> </" +"personname> <contrib>Restructured and parts updated by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:17896 +msgid "" +"<personname> <firstname>Brian N.</firstname> <surname>Handy</surname> </" +"personname> <contrib>Originally contributed by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:17904 +msgid "" +"<personname> <firstname>Rich</firstname> <surname>Murphey</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:17916 +msgid "<primary>Linux binary compatibility</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:17924 +msgid "" +"FreeBSD provides 32-bit binary compatibility with <trademark class=" +"\"registered\">Linux</trademark>, allowing users to install and run most 32-" +"bit <trademark class=\"registered\">Linux</trademark> binaries on a FreeBSD " +"system without having to first modify the binary. It has even been reported " +"that, in some situations, 32-bit <trademark class=\"registered\">Linux</" +"trademark> binaries perform better on FreeBSD than they do on <trademark " +"class=\"registered\">Linux</trademark>." +msgstr "" +"FreeBSD 提供和 32 位元 <trademark class=\"registered\">Linux</trademark> " +"Binary 的相容性,允許使用者在 FreeBSD 不需要修改就可以安裝和執行大部份 32 位" +"元 <trademark class=\"registered\">Linux</trademark> Binary。 曾經有報告指" +"出,在某些情況下,32 位元 <trademark class=\"registered\">Linux</trademark> " +"Binary 在 FreeBSD 的表現比在 <trademark class=\"registered\">Linux</" +"trademark> 好。" + +#. (itstool) path: sect1/para +#: book.translate.xml:17930 +msgid "" +"However, some <trademark class=\"registered\">Linux</trademark>-specific " +"operating system features are not supported under FreeBSD. For example, " +"<trademark class=\"registered\">Linux</trademark> binaries will not work on " +"FreeBSD if they overly use <trademark>i386</trademark> specific calls, such " +"as enabling virtual 8086 mode. In addition, 64-bit <trademark class=" +"\"registered\">Linux</trademark> binaries are not supported at this time." +msgstr "" +"然而,部份 <trademark class=\"registered\">Linux</trademark> 作業系統的特色" +"在 FreeBSD 並未支援。 例如,如果 <trademark class=\"registered\">Linux</" +"trademark> Binary 過度使用 <trademark>i386</trademark> 特定的呼叫,像是啟動虛" +"擬 8086 模式,將無法在 FreeBSD 執行。此外,64 位元 <trademark class=" +"\"registered\">Linux</trademark> Binary 目前也尚未支援。" + +#. (itstool) path: listitem/para +#: book.translate.xml:17940 +msgid "" +"How to enable <trademark class=\"registered\">Linux</trademark> binary " +"compatibility on a FreeBSD system." +msgstr "" +"如何在 FreeBSD 系統啟用 <trademark class=\"registered\">Linux</trademark> " +"Binary 相容模式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:17945 +msgid "" +"How to install additional <trademark class=\"registered\">Linux</trademark> " +"shared libraries." +msgstr "" +"如何安裝其他的 <trademark class=\"registered\">Linux</trademark> 共用程式庫。" + +#. (itstool) path: listitem/para +#: book.translate.xml:17950 +msgid "" +"How to install <trademark class=\"registered\">Linux</trademark> " +"applications on a FreeBSD system." +msgstr "" +"如何在 FreeBSD 系統安裝 <trademark class=\"registered\">Linux</trademark> 應" +"用程式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:17955 +msgid "" +"The implementation details of <trademark class=\"registered\">Linux</" +"trademark> compatibility in FreeBSD." +msgstr "" +"在 FreeBSD 中 <trademark class=\"registered\">Linux</trademark> 相容性的實作" +"細節。" + +#. (itstool) path: listitem/para +#: book.translate.xml:17964 +msgid "" +"Know how to install <link linkend=\"ports\">additional third-party software</" +"link>." +msgstr "知道如何安裝 <link linkend=\"ports\">其他的第三方軟體</link>。" + +#. (itstool) path: sect1/title +#: book.translate.xml:17972 +msgid "" +"Configuring <trademark class=\"registered\">Linux</trademark> Binary " +"Compatibility" +msgstr "設定 <trademark class=\"registered\">Linux</trademark> Binary 相容性" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:17974 +msgid "<primary>Ports Collection</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:17976 +msgid "" +"By default, <trademark class=\"registered\">Linux</trademark> libraries are " +"not installed and <trademark class=\"registered\">Linux</trademark> binary " +"compatibility is not enabled. <trademark class=\"registered\">Linux</" +"trademark> libraries can either be installed manually or from the FreeBSD " +"Ports Collection." +msgstr "" +"<trademark class=\"registered\">Linux</trademark> 程式庫預設並不會安裝,且並" +"不會開啟 <trademark class=\"registered\">Linux</trademark> Binary 相容性。 " +"<trademark class=\"registered\">Linux</trademark> 程式庫可以手動安裝或是從 " +"FreeBSD Ports 套件集安裝。" + +#. (itstool) path: sect1/para +#: book.translate.xml:17981 +msgid "" +"Before attempting to build the port, load the <trademark class=\"registered" +"\">Linux</trademark> kernel module, otherwise the build will fail:" +msgstr "" +"在嘗試編譯 Port 前,要載入 <trademark class=\"registered\">Linux</trademark> " +"核心模組,否則編譯會失敗:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:17984 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload linux</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:17986 +msgid "To verify that the module is loaded:" +msgstr "確認模組已載入:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:17988 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>kldstat</userinput>\n" +" Id Refs Address Size Name\n" +" 1 2 0xc0100000 16bdb8 kernel\n" +" 7 1 0xc24db000 d000 linux.ko" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:17993 +msgid "" +"The <package>emulators/linux_base-c6</package> package or port is the " +"easiest way to install a base set of <trademark class=\"registered\">Linux</" +"trademark> libraries and binaries on a FreeBSD system. To install the port:" +msgstr "" +"在 FreeBSD 安裝基本的 <trademark class=\"registered\">Linux</trademark> 程式" +"庫和 Binary 最簡單的方式是安裝 <package>emulators/linux_base-c6</package> 套" +"件或是 Port 。要安裝 Port:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:17998 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>printf \"compat.linux.osrelease=2.6.18\\n\" >> /etc/sysctl.conf</userinput>\n" +"<prompt>#</prompt> <userinput>sysctl compat.linux.osrelease=2.6.18</userinput>\n" +"<prompt>#</prompt> <userinput>pkg install emulators/linux_base-c6</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:18002 +msgid "" +"For <trademark class=\"registered\">Linux</trademark> compatibility to be " +"enabled at boot time, add this line to <filename>/etc/rc.conf</filename>:" +msgstr "" +"要在開機時開啟 <trademark class=\"registered\">Linux</trademark> 相容性,可以" +"加入這行到 <filename>/etc/rc.conf</filename>:" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:18005 +#, no-wrap +msgid "linux_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:18007 +msgid "<primary>kernel options</primary> <secondary>COMPAT_LINUX</secondary>" +msgstr "<primary>核心選項</primary> <secondary>COMPAT_LINUX</secondary>" + +#. (itstool) path: sect1/para +#: book.translate.xml:18012 +msgid "" +"Users who prefer to statically link <trademark class=\"registered\">Linux</" +"trademark> binary compatibility into a custom kernel should add " +"<literal>options COMPAT_LINUX</literal> to their custom kernel configuration " +"file. Compile and install the new kernel as described in <xref linkend=" +"\"kernelconfig\"/>." +msgstr "" +"想要靜態連結 <trademark class=\"registered\">Linux</trademark> Binary 相容性" +"到自訂核心的使用者應加入 <literal>options COMPAT_LINUX</literal> 到自訂核心設" +"定檔。 編譯並安裝新核心的方法,如 <xref linkend=\"kernelconfig\"/> 所述。" + +#. (itstool) path: sect2/title +#: book.translate.xml:18019 +msgid "Installing Additional Libraries Manually" +msgstr "手動安裝其他程式庫" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:18021 +msgid "<primary>shared libraries</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18025 +msgid "" +"If a <trademark class=\"registered\">Linux</trademark> application complains " +"about missing shared libraries after configuring <trademark class=" +"\"registered\">Linux</trademark> binary compatibility, determine which " +"shared libraries the <trademark class=\"registered\">Linux</trademark> " +"binary needs and install them manually." +msgstr "" +"若有 <trademark class=\"registered\">Linux</trademark> 應用程式在設定 " +"<trademark class=\"registered\">Linux</trademark> Binary 相容性後出現缺少共用" +"程式庫的情況,確認這個 <trademark class=\"registered\">Linux</trademark> " +"Binary 需要哪個共用程式庫並手動安裝。" + +#. (itstool) path: sect2/para +#: book.translate.xml:18030 +msgid "" +"From a <trademark class=\"registered\">Linux</trademark> system, " +"<command>ldd</command> can be used to determine which shared libraries the " +"application needs. For example, to check which shared libraries " +"<command>linuxdoom</command> needs, run this command from a <trademark class=" +"\"registered\">Linux</trademark> system that has <application>Doom</" +"application> installed:" +msgstr "" +"在 <trademark class=\"registered\">Linux</trademark> 系統,可使用 " +"<command>ldd</command> 來找出應用程式需要哪個共用程式庫。 例如,檢查 " +"<command>linuxdoom</command> 需要哪個共用程式庫,在有安裝 <application>Doom</" +"application> 的 <trademark class=\"registered\">Linux</trademark> 系統執行這" +"個指令:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:18037 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ldd linuxdoom</userinput>\n" +"libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0\n" +"libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0\n" +"libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:18042 +msgid "<primary>symbolic links</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18046 +msgid "" +"Then, copy all the files in the last column of the output from the " +"<trademark class=\"registered\">Linux</trademark> system into <filename>/" +"compat/linux</filename> on the FreeBSD system. Once copied, create symbolic " +"links to the names in the first column. This example will result in the " +"following files on the FreeBSD system:" +msgstr "" +"然後,複製所有 <trademark class=\"registered\">Linux</trademark> 系統輸出結果" +"中最後一欄的檔案到 FreeBSD 系統的 <filename>/compat/linux</filename>。 複製完" +"後,建立符號連結 (Symbolic link) 至輸出結果第一欄的名稱。以這個例子會在 " +"FreeBSD 系統產生以下檔案:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:18053 +#, no-wrap +msgid "" +"/compat/linux/usr/X11/lib/libXt.so.3.1.0\n" +"/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0\n" +"/compat/linux/usr/X11/lib/libX11.so.3.1.0\n" +"/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0\n" +"/compat/linux/lib/libc.so.4.6.29\n" +"/compat/linux/lib/libc.so.4 -> libc.so.4.6.29" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18060 +msgid "" +"If a <trademark class=\"registered\">Linux</trademark> shared library " +"already exists with a matching major revision number to the first column of " +"the <command>ldd</command> output, it does not need to be copied to the file " +"named in the last column, as the existing library should work. It is " +"advisable to copy the shared library if it is a newer version, though. The " +"old one can be removed, as long as the symbolic link points to the new one." +msgstr "" +"若 <trademark class=\"registered\">Linux</trademark> 共用程式庫已經存在,並符" +"合 <command>ldd</command> 輸出結果第一欄的主要修訂版號,則不需要複製該行最後" +"一欄的檔案,使用既有的程式庫應可運作。若有較新的版本建議仍要複製共用程式庫," +"只要符號連結指向新版的程式庫,舊版便可移除。" + +#. (itstool) path: sect2/para +#: book.translate.xml:18068 +msgid "For example, these libraries already exist on the FreeBSD system:" +msgstr "例如,以下程式庫已存在 FreeBSD 系統:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:18071 +#, no-wrap +msgid "" +"/compat/linux/lib/libc.so.4.6.27\n" +"/compat/linux/lib/libc.so.4 -> libc.so.4.6.27" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18074 +msgid "" +"and <command>ldd</command> indicates that a binary requires a later version:" +msgstr "且 <command>ldd</command> 顯示 Binary 需要使用較新的版本:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:18077 +#, no-wrap +msgid "libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18079 +msgid "" +"Since the existing library is only one or two versions out of date in the " +"last digit, the program should still work with the slightly older version. " +"However, it is safe to replace the existing <filename>libc.so</filename> " +"with the newer version:" +msgstr "" +"雖然既有的程式庫只有在最後一碼過時一或兩個版本,程式應該仍可使用稍微舊的版本" +"執行,雖然如此,保險起見還替換既有的 <filename>libc.so</filename> 為較新的版" +"本:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:18085 +#, no-wrap +msgid "" +"/compat/linux/lib/libc.so.4.6.29\n" +"/compat/linux/lib/libc.so.4 -> libc.so.4.6.29" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18088 +msgid "" +"Generally, one will need to look for the shared libraries that <trademark " +"class=\"registered\">Linux</trademark> binaries depend on only the first few " +"times that a <trademark class=\"registered\">Linux</trademark> program is " +"installed on FreeBSD. After a while, there will be a sufficient set of " +"<trademark class=\"registered\">Linux</trademark> shared libraries on the " +"system to be able to run newly installed <trademark class=\"registered" +"\">Linux</trademark> binaries without any extra work." +msgstr "" +"一般來說,只有在安裝 <trademark class=\"registered\">Linux</trademark> 程式" +"到 FreeBSD 完的前幾次會需要查看 <trademark class=\"registered\">Linux</" +"trademark> Binary 相依的共用程式庫。之後系統便有足夠的 <trademark class=" +"\"registered\">Linux</trademark> 共用程式庫能夠執行新安裝的 <trademark class=" +"\"registered\">Linux</trademark> Binary,便不再需要額外的動作。" + +#. (itstool) path: sect2/title +#: book.translate.xml:18097 +msgid "" +"Installing <trademark class=\"registered\">Linux</trademark> <acronym>ELF</" +"acronym> Binaries" +msgstr "" +"安裝 <trademark class=\"registered\">Linux</trademark> <acronym>ELF</" +"acronym> Binary" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:18100 +msgid "<primary>Linux</primary> <secondary>ELF binaries</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18105 +msgid "" +"<acronym>ELF</acronym> binaries sometimes require an extra step. When an " +"unbranded <acronym>ELF</acronym> binary is executed, it will generate an " +"error message:" +msgstr "" +"<acronym>ELF</acronym> Binary 有時候需要額外的步驟。當執行無商標 (Unbranded) " +"的 <acronym>ELF</acronym> Binary,會產生錯誤訊息:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:18109 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>./my-linux-elf-binary</userinput>\n" +"ELF binary type not known\n" +"Abort" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18113 +msgid "" +"To help the FreeBSD kernel distinguish between a FreeBSD <acronym>ELF</" +"acronym> binary and a <trademark class=\"registered\">Linux</trademark> " +"binary, use <citerefentry><refentrytitle>brandelf</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>:" +msgstr "" +"要協助 FreeBSD 核心區別是 FreeBSD <acronym>ELF</acronym> Binary 還是 " +"<trademark class=\"registered\">Linux</trademark> Binary,可使用 " +"<citerefentry><refentrytitle>brandelf</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:18117 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>brandelf -t Linux my-linux-elf-binary</userinput>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:18119 +msgid "<primary>GNU toolchain</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18123 +msgid "" +"Since the GNU toolchain places the appropriate branding information into " +"<acronym>ELF</acronym> binaries automatically, this step is usually not " +"necessary." +msgstr "" +"由於 GNU 工具鏈會自動放置適當的商標資訊到 <acronym>ELF</acronym> Binary,通常" +"不需要這個步驟。" + +#. (itstool) path: sect2/title +#: book.translate.xml:18129 +msgid "" +"Installing a <trademark class=\"registered\">Linux</trademark> <acronym>RPM</" +"acronym> Based Application" +msgstr "" +"安裝以 <trademark class=\"registered\">Linux</trademark> <acronym>RPM</" +"acronym> 為基礎的應用程式" + +#. (itstool) path: sect2/para +#: book.translate.xml:18132 +msgid "" +"To install a <trademark class=\"registered\">Linux</trademark> <acronym>RPM</" +"acronym>-based application, first install the <package>archivers/rpm4</" +"package> package or port. Once installed, <systemitem class=\"username" +"\">root</systemitem> can use this command to install a <filename>.rpm</" +"filename>:" +msgstr "" +"要安裝 <trademark class=\"registered\">Linux</trademark> <acronym>RPM</" +"acronym> 為基礎的應用程式,需先安裝 <package>archivers/rpm4</package> 套件或 " +"Port。安裝完成之後,<systemitem class=\"username\">root</systemitem> 可以使用" +"這個指令安裝 <filename>.rpm</filename>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:18139 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /compat/linux</userinput>\n" +"<prompt>#</prompt> <userinput>rpm2cpio < /path/to/linux.archive.rpm | cpio -id</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18142 +msgid "" +"If necessary, <command>brandelf</command> the installed <acronym>ELF</" +"acronym> binaries. Note that this will prevent a clean uninstall." +msgstr "" +"如果需要, <command>brandelf</command> 已安裝的 <acronym>ELF</acronym> " +"Binary。注意,這將會無法乾淨地解除安裝。" + +#. (itstool) path: sect2/title +#: book.translate.xml:18148 +msgid "Configuring the Hostname Resolver" +msgstr "設定主機名稱解析器" + +#. (itstool) path: sect2/para +#: book.translate.xml:18150 +msgid "If <acronym>DNS</acronym> does not work or this error appears:" +msgstr "如果 <acronym>DNS</acronym> 無法運作或出現這個錯誤:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:18153 +#, no-wrap +msgid "" +"resolv+: \"bind\" is an invalid keyword resolv+:\n" +"\"hosts\" is an invalid keyword" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18156 +msgid "configure <filename>/compat/linux/etc/host.conf</filename> as follows:" +msgstr "將 <filename>/compat/linux/etc/host.conf</filename> 設定如下:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:18159 +#, no-wrap +msgid "" +"order hosts, bind\n" +"multi on" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:18162 +msgid "" +"This specifies that <filename>/etc/hosts</filename> is searched first and " +"<acronym>DNS</acronym> is searched second. When <filename>/compat/linux/etc/" +"host.conf</filename> does not exist, <trademark class=\"registered\">Linux</" +"trademark> applications use <filename>/etc/host.conf</filename> and complain " +"about the incompatible FreeBSD syntax. Remove <literal>bind</literal> if a " +"name server is not configured using <filename>/etc/resolv.conf</filename>." +msgstr "" +"這指定先搜尋 <filename>/etc/hosts</filename>,其次為 <acronym>DNS</" +"acronym>。 當 <filename>/compat/linux/etc/host.conf</filename> 不存在, " +"<trademark class=\"registered\">Linux</trademark> 應用程式會使用 <filename>/" +"etc/host.conf</filename> 並會警告不相容的 FreeBSD 語法。如果名稱伺服器未設定" +"使用 <filename>/etc/resolv.conf</filename> 的話,則可移除 <literal>bind</" +"literal>。" + +#. (itstool) path: sect1/title +#: book.translate.xml:18997 book.translate.xml:40101 book.translate.xml:51172 +msgid "Advanced Topics" +msgstr "進階主題" + +#. (itstool) path: sect1/para +#: book.translate.xml:18999 +msgid "" +"This section describes how <trademark class=\"registered\">Linux</trademark> " +"binary compatibility works and is based on an email written to <link xlink:" +"href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-chat\">FreeBSD chat " +"mailing list</link> by Terry Lambert <email>tlambert@primenet.com</email> " +"(Message ID: <literal><199906020108.SAA07001@usr09.primenet.com></" +"literal>)." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:19004 +msgid "<primary>execution class loader</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19006 +msgid "" +"FreeBSD has an abstraction called an <quote>execution class loader</quote>. " +"This is a wedge into the <citerefentry><refentrytitle>execve</" +"refentrytitle><manvolnum>2</manvolnum></citerefentry> system call." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19010 +msgid "" +"Historically, the <trademark class=\"registered\">UNIX</trademark> loader " +"examined the magic number (generally the first 4 or 8 bytes of the file) to " +"see if it was a binary known to the system, and if so, invoked the binary " +"loader." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19015 +msgid "" +"If it was not the binary type for the system, the " +"<citerefentry><refentrytitle>execve</refentrytitle><manvolnum>2</manvolnum></" +"citerefentry> call returned a failure, and the shell attempted to start " +"executing it as shell commands. The assumption was a default of " +"<quote>whatever the current shell is</quote>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19021 +msgid "" +"Later, a hack was made for <citerefentry><refentrytitle>sh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> to examine the first " +"two characters, and if they were <literal>:\\n</literal>, it invoked the " +"<citerefentry><refentrytitle>csh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> shell instead." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19025 +msgid "" +"FreeBSD has a list of loaders, instead of a single loader, with a fallback " +"to the <literal>#!</literal> loader for running shell interpreters or shell " +"scripts." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:19029 +msgid "<primary>ELF</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:19033 book.translate.xml:53222 +msgid "<primary>Solaris</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19037 +msgid "" +"For the <trademark class=\"registered\">Linux</trademark> <acronym>ABI</" +"acronym> support, FreeBSD sees the magic number as an ELF binary. The ELF " +"loader looks for a specialized <emphasis>brand</emphasis>, which is a " +"comment section in the ELF image, and which is not present on SVR4/" +"<trademark>Solaris</trademark> ELF binaries." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19043 +msgid "" +"For <trademark class=\"registered\">Linux</trademark> binaries to function, " +"they must be <emphasis>branded</emphasis> as type <literal>Linux</literal> " +"using <citerefentry><refentrytitle>brandelf</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:19047 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>brandelf -t Linux file</userinput>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:19049 +msgid "<primary>ELF</primary> <secondary>branding</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19054 +msgid "" +"When the ELF loader sees the <literal>Linux</literal> brand, the loader " +"replaces a pointer in the <literal>proc</literal> structure. All system " +"calls are indexed through this pointer. In addition, the process is flagged " +"for special handling of the trap vector for the signal trampoline code, and " +"several other (minor) fix-ups that are handled by the <trademark class=" +"\"registered\">Linux</trademark> kernel module." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19062 +msgid "" +"The <trademark class=\"registered\">Linux</trademark> system call vector " +"contains, among other things, a list of <literal>sysent[]</literal> entries " +"whose addresses reside in the kernel module." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19066 +msgid "" +"When a system call is called by the <trademark class=\"registered\">Linux</" +"trademark> binary, the trap code dereferences the system call function " +"pointer off the <literal>proc</literal> structure, and gets the <trademark " +"class=\"registered\">Linux</trademark>, not the FreeBSD, system call entry " +"points." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19071 +msgid "" +"<trademark class=\"registered\">Linux</trademark> mode dynamically " +"<emphasis>reroots</emphasis> lookups. This is, in effect, equivalent to the " +"<option>union</option> option to file system mounts. First, an attempt is " +"made to lookup the file in <filename>/compat/linux/<replaceable>original-" +"path</replaceable></filename>. If that fails, the lookup is done in " +"<filename>/<replaceable>original-path</replaceable></filename>. This makes " +"sure that binaries that require other binaries can run. For example, the " +"<trademark class=\"registered\">Linux</trademark> toolchain can all run " +"under <trademark class=\"registered\">Linux</trademark> <acronym>ABI</" +"acronym> support. It also means that the <trademark class=\"registered" +"\">Linux</trademark> binaries can load and execute FreeBSD binaries, if " +"there are no corresponding <trademark class=\"registered\">Linux</trademark> " +"binaries present, and that a <citerefentry><refentrytitle>uname</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> command can be placed " +"in the <filename>/compat/linux</filename> directory tree to ensure that the " +"<trademark class=\"registered\">Linux</trademark> binaries cannot tell they " +"are not running on <trademark class=\"registered\">Linux</trademark>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19088 +msgid "" +"In effect, there is a <trademark class=\"registered\">Linux</trademark> " +"kernel in the FreeBSD kernel. The various underlying functions that " +"implement all of the services provided by the kernel are identical to both " +"the FreeBSD system call table entries, and the <trademark class=\"registered" +"\">Linux</trademark> system call table entries: file system operations, " +"virtual memory operations, signal delivery, and System V IPC. The only " +"difference is that FreeBSD binaries get the FreeBSD <emphasis>glue</" +"emphasis> functions, and <trademark class=\"registered\">Linux</trademark> " +"binaries get the <trademark class=\"registered\">Linux</trademark> " +"<emphasis>glue</emphasis> functions. The FreeBSD <emphasis>glue</emphasis> " +"functions are statically linked into the kernel, and the <trademark class=" +"\"registered\">Linux</trademark> <emphasis>glue</emphasis> functions can be " +"statically linked, or they can be accessed via a kernel module." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19101 +msgid "" +"Technically, this is not really emulation, it is an <acronym>ABI</acronym> " +"implementation. It is sometimes called <quote><trademark class=\"registered" +"\">Linux</trademark> emulation</quote> because the implementation was done " +"at a time when there was no other word to describe what was going on. Saying " +"that FreeBSD ran <trademark class=\"registered\">Linux</trademark> binaries " +"was not true, since the code was not compiled in." +msgstr "" + +#. (itstool) path: part/title +#: book.translate.xml:19113 +msgid "System Administration" +msgstr "系統管理" + +#. (itstool) path: partintro/para +#: book.translate.xml:19116 +msgid "" +"The remaining chapters cover all aspects of FreeBSD system administration. " +"Each chapter starts by describing what will be learned as a result of " +"reading the chapter, and also details what the reader is expected to know " +"before tackling the material." +msgstr "" +"FreeBSD 使用手冊剩下的這些章節涵蓋了全方位的 FreeBSD 系統管理。 每個章節的開" +"頭會先描述在該您讀完該章節後您會學到什麼,也會詳述在您在看這些資料時應該要有" +"的一些背景知識。" + +#. (itstool) path: partintro/para +#: book.translate.xml:19122 +msgid "" +"These chapters are designed to be read as the information is needed. They do " +"not need to be read in any particular order, nor must all of them be read " +"before beginning to use FreeBSD." +msgstr "" +"這些章節是讓您在需要查資料的時候翻閱用的。 您不需要依照特定的順序來讀,也不需" +"要將這些章節全部過讀之後才開始用 FreeBSD。" + +#. (itstool) path: info/title +#: book.translate.xml:19137 +msgid "Configuration and Tuning" +msgstr "設定與調校" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:19140 +msgid "" +"<personname> <firstname>Chern</firstname> <surname>Lee</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:19150 +msgid "" +"<personname> <firstname>Mike</firstname> <surname>Smith</surname> </" +"personname> <contrib>Based on a tutorial written by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:19160 +msgid "" +"<personname> <firstname>Matt</firstname> <surname>Dillon</surname> </" +"personname> <contrib>Also based on tuning(7) written by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:19173 +msgid "<primary>system configuration</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:19176 +msgid "<primary>system optimization</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19180 +msgid "" +"One of the important aspects of FreeBSD is proper system configuration. This " +"chapter explains much of the FreeBSD configuration process, including some " +"of the parameters which can be set to tune a FreeBSD system." +msgstr "" +"在 FreeBSD 使用過程中,相當重要的環節之一就是如何正確設定系統。 本章著重於介" +"紹 FreeBSD 的設定流程,包括一些可以調整 FreeBSD 效能的參數設定。" + +#. (itstool) path: listitem/para +#: book.translate.xml:19189 +msgid "" +"The basics of <filename>rc.conf</filename> configuration and <filename>/usr/" +"local/etc/rc.d</filename> startup scripts." +msgstr "" +"<filename>rc.conf</filename> 設定的基礎概念及 <filename>/usr/local/etc/rc.d</" +"filename> 啟動 Script。" + +#. (itstool) path: listitem/para +#: book.translate.xml:19195 +msgid "How to configure and test a network card." +msgstr "如何設定並測試網路卡。" + +#. (itstool) path: listitem/para +#: book.translate.xml:19199 +msgid "How to configure virtual hosts on network devices." +msgstr "如何在網路裝置上設定虛擬主機。" + +#. (itstool) path: listitem/para +#: book.translate.xml:19204 +msgid "" +"How to use the various configuration files in <filename>/etc</filename>." +msgstr "如何使用在 <filename>/etc</filename> 中的各種設定檔。" + +#. (itstool) path: listitem/para +#: book.translate.xml:19209 +msgid "" +"How to tune FreeBSD using <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> variables." +msgstr "" +"如何使用 <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 變數調校 FreeBSD。" + +#. (itstool) path: listitem/para +#: book.translate.xml:19213 +msgid "How to tune disk performance and modify kernel limitations." +msgstr "如何調校磁碟效能及修改核心限制。" + +#. (itstool) path: listitem/para +#: book.translate.xml:19222 book.translate.xml:29317 book.translate.xml:31064 +#: book.translate.xml:34885 book.translate.xml:46105 +msgid "" +"Understand <trademark class=\"registered\">UNIX</trademark> and FreeBSD " +"basics (<xref linkend=\"basics\"/>)." +msgstr "" +"了解 <trademark class=\"registered\">UNIX</trademark> 及 FreeBSD 基礎 (<xref " +"linkend=\"basics\"/>)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:19227 +msgid "" +"Be familiar with the basics of kernel configuration and compilation (<xref " +"linkend=\"kernelconfig\"/>)." +msgstr "熟悉核心設定與編譯的基礎 (<xref linkend=\"kernelconfig\"/>)。" + +#. (itstool) path: info/title +#: book.translate.xml:19235 +msgid "Starting Services" +msgstr "啟動服務" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:19248 +msgid "<primary>services</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19252 +msgid "" +"Many users install third party software on FreeBSD from the Ports Collection " +"and require the installed services to be started upon system initialization. " +"Services, such as <package>mail/postfix</package> or <package>www/apache22</" +"package> are just two of the many software packages which may be started " +"during system initialization. This section explains the procedures available " +"for starting third party software." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19261 +msgid "" +"In FreeBSD, most included services, such as " +"<citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, are started through the system start up scripts." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:19265 +msgid "Extended Application Configuration" +msgstr "延伸應用程式設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:19267 +msgid "" +"Now that FreeBSD includes <filename>rc.d</filename>, configuration of " +"application startup is easier and provides more features. Using the key " +"words discussed in <xref linkend=\"configtuning-rcd\"/>, applications can be " +"set to start after certain other services and extra flags can be passed " +"through <filename>/etc/rc.conf</filename> in place of hard coded flags in " +"the start up script. A basic script may look similar to the following:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:19276 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"#\n" +"# PROVIDE: utility\n" +"# REQUIRE: DAEMON\n" +"# KEYWORD: shutdown\n" +"\n" +". /etc/rc.subr\n" +"\n" +"name=utility\n" +"rcvar=utility_enable\n" +"\n" +"command=\"/usr/local/sbin/utility\"\n" +"\n" +"load_rc_config $name\n" +"\n" +"#\n" +"# DO NOT CHANGE THESE DEFAULT VALUES HERE\n" +"# SET THEM IN THE /etc/rc.conf FILE\n" +"#\n" +"utility_enable=${utility_enable-\"NO\"}\n" +"pidfile=${utility_pidfile-\"/var/run/utility.pid\"}\n" +"\n" +"run_rc_command \"$1\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19300 +msgid "" +"This script will ensure that the provided <literal>utility</literal> will be " +"started after the <literal>DAEMON</literal> pseudo-service. It also provides " +"a method for setting and tracking the process ID (<acronym>PID</acronym>)." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19306 +msgid "" +"This application could then have the following line placed in <filename>/etc/" +"rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:19309 +#, no-wrap +msgid "utility_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19311 +msgid "" +"This method allows for easier manipulation of command line arguments, " +"inclusion of the default functions provided in <filename>/etc/rc.subr</" +"filename>, compatibility with <citerefentry><refentrytitle>rcorder</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, and provides for " +"easier configuration via <filename>rc.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:19319 +msgid "Using Services to Start Services" +msgstr "使用服務來啟動其他服務" + +#. (itstool) path: sect2/para +#: book.translate.xml:19321 +msgid "" +"Other services can be started using <citerefentry><refentrytitle>inetd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. Working with " +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and its configuration is described in depth in <xref linkend=" +"\"network-inetd\"/>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19326 +msgid "" +"In some cases, it may make more sense to use " +"<citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to start system services. This approach has a number of " +"advantages as <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> runs these processes as the owner of the " +"<citerefentry><refentrytitle>crontab</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>. This allows regular users to start and maintain " +"their own applications." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19333 +msgid "" +"The <literal>@reboot</literal> feature of <citerefentry><refentrytitle>cron</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, may be used in place " +"of the time specification. This causes the job to run when " +"<citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> is started, normally during system initialization." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:19342 +msgid "" +"Configuring <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" +msgstr "" +"設定 <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:19355 +msgid "<primary>cron</primary> <secondary>configuration</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19360 +msgid "" +"One of the most useful utilities in FreeBSD is <application>cron</" +"application>. This utility runs in the background and regularly checks " +"<filename>/etc/crontab</filename> for tasks to execute and searches " +"<filename>/var/cron/tabs</filename> for custom crontab files. These files " +"are used to schedule tasks which <application>cron</application> runs at the " +"specified times. Each entry in a crontab defines a task to run and is known " +"as a <firstterm>cron job</firstterm>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19370 +msgid "" +"Two different types of configuration files are used: the system crontab, " +"which should not be modified, and user crontabs, which can be created and " +"edited as needed. The format used by these files is documented in " +"<citerefentry><refentrytitle>crontab</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>. The format of the system crontab, <filename>/etc/" +"crontab</filename> includes a <literal>who</literal> column which does not " +"exist in user crontabs. In the system crontab, <application>cron</" +"application> runs the command as the user specified in this column. In a " +"user crontab, all commands run as the user who created the crontab." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19381 +msgid "" +"User crontabs allow individual users to schedule their own tasks. The " +"<systemitem class=\"username\">root</systemitem> user can also have a user " +"<filename>crontab</filename> which can be used to schedule tasks that do not " +"exist in the system <filename>crontab</filename>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19387 +msgid "" +"Here is a sample entry from the system crontab, <filename>/etc/crontab</" +"filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:19390 +#, no-wrap +msgid "" +"# /etc/crontab - root's crontab for FreeBSD\n" +"#\n" +"# $FreeBSD$\n" +"# <co xml:id=\"co-comments\"/>\n" +"SHELL=/bin/sh\n" +"PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <co xml:id=\"co-env\"/>\n" +"#\n" +"#minute\thour\tmday\tmonth\twday\twho\tcommand <co xml:id=\"co-field-descr\"/>\n" +"#\n" +"*/5\t*\t*\t*\t*\troot\t/usr/libexec/atrun <co xml:id=\"co-main\"/>" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:19403 +msgid "" +"Lines that begin with the <literal>#</literal> character are comments. A " +"comment can be placed in the file as a reminder of what and why a desired " +"action is performed. Comments cannot be on the same line as a command or " +"else they will be interpreted as part of the command; they must be on a new " +"line. Blank lines are ignored." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:19412 +msgid "" +"The equals (<literal>=</literal>) character is used to define any " +"environment settings. In this example, it is used to define the " +"<envar>SHELL</envar> and <envar>PATH</envar>. If the <envar>SHELL</envar> is " +"omitted, <application>cron</application> will use the default Bourne shell. " +"If the <envar>PATH</envar> is omitted, the full path must be given to the " +"command or script to run." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:19423 +msgid "" +"This line defines the seven fields used in a system crontab: " +"<literal>minute</literal>, <literal>hour</literal>, <literal>mday</literal>, " +"<literal>month</literal>, <literal>wday</literal>, <literal>who</literal>, " +"and <literal>command</literal>. The <literal>minute</literal> field is the " +"time in minutes when the specified command will be run, the <literal>hour</" +"literal> is the hour when the specified command will be run, the " +"<literal>mday</literal> is the day of the month, <literal>month</literal> is " +"the month, and <literal>wday</literal> is the day of the week. These fields " +"must be numeric values, representing the twenty-four hour clock, or a " +"<literal>*</literal>, representing all values for that field. The " +"<literal>who</literal> field only exists in the system crontab and specifies " +"which user the command should be run as. The last field is the command to be " +"executed." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:19442 +msgid "" +"This entry defines the values for this cron job. The <literal>*/5</literal>, " +"followed by several more <literal>*</literal> characters, specifies that " +"<command>/usr/libexec/atrun</command> is invoked by <systemitem class=" +"\"username\">root</systemitem> every five minutes of every hour, of every " +"day and day of the week, of every month." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:19450 +msgid "" +"Commands can include any number of switches. However, commands which extend " +"to multiple lines need to be broken with the backslash <quote>\\</quote> " +"continuation character." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:19458 +msgid "Creating a User Crontab" +msgstr "建立使用者的 Crontab" + +#. (itstool) path: sect2/para +#: book.translate.xml:19460 +msgid "" +"To create a user crontab, invoke <command>crontab</command> in editor mode:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:19463 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>crontab -e</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19465 +msgid "" +"This will open the user's crontab using the default text editor. The first " +"time a user runs this command, it will open an empty file. Once a user " +"creates a crontab, this command will open that file for editing." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19470 +msgid "" +"It is useful to add these lines to the top of the crontab file in order to " +"set the environment variables and to remember the meanings of the fields in " +"the crontab:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:19474 +#, no-wrap +msgid "" +"SHELL=/bin/sh\n" +"PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin\n" +"# Order of crontab fields\n" +"# minute\thour\tmday\tmonth\twday\tcommand" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19479 +msgid "" +"Then add a line for each command or script to run, specifying the time to " +"run the command. This example runs the specified custom Bourne shell script " +"every day at two in the afternoon. Since the path to the script is not " +"specified in <literal>PATH</literal>, the full path to the script is given:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:19486 +#, no-wrap +msgid "0\t14\t*\t*\t*\t/usr/home/dru/bin/mycustomscript.sh" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:19489 +msgid "" +"Before using a custom script, make sure it is executable and test it with " +"the limited set of environment variables set by cron. To replicate the " +"environment that would be used to run the above cron entry, use:" +msgstr "" + +#. (itstool) path: tip/programlisting +#: book.translate.xml:19494 +#, no-wrap +msgid "env -i SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/home/<replaceable>dru</replaceable> LOGNAME=<replaceable>dru</replaceable> <replaceable>/usr/home/dru/bin/mycustomscript.sh</replaceable>" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:19496 +msgid "" +"The environment set by cron is discussed in " +"<citerefentry><refentrytitle>crontab</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>. Checking that scripts operate correctly in a cron " +"environment is especially important if they include any commands that delete " +"files using wildcards." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19502 +msgid "" +"When finished editing the crontab, save the file. It will automatically be " +"installed and <application>cron</application> will read the crontab and run " +"its cron jobs at their specified times. To list the cron jobs in a crontab, " +"use this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:19508 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>crontab -l</userinput>\n" +"0\t14\t*\t*\t*\t/usr/home/dru/bin/mycustomscript.sh" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19511 +msgid "To remove all of the cron jobs in a user crontab:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:19513 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>crontab -r</userinput>\n" +"remove crontab for dru? <userinput>y</userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:19520 +msgid "Managing Services in FreeBSD" +msgstr "管理 FreeBSD 中的服務" + +#. (itstool) path: sect1/para +#: book.translate.xml:19533 +msgid "" +"FreeBSD uses the <citerefentry><refentrytitle>rc</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> system of startup " +"scripts during system initialization and for managing services. The scripts " +"listed in <filename>/etc/rc.d</filename> provide basic services which can be " +"controlled with the <option>start</option>, <option>stop</option>, and " +"<option>restart</option> options to <citerefentry><refentrytitle>service</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. For instance, " +"<citerefentry><refentrytitle>sshd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> can be restarted with the following command:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:19541 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service sshd restart</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19543 +msgid "" +"This procedure can be used to start services on a running system. Services " +"will be started automatically at boot time as specified in " +"<citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>. For example, to enable " +"<citerefentry><refentrytitle>natd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> at system startup, add the following line to <filename>/etc/rc." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:19549 +#, no-wrap +msgid "natd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19551 +msgid "" +"If a <option>natd_enable=\"NO\"</option> line is already present, change the " +"<literal>NO</literal> to <literal>YES</literal>. The " +"<citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> scripts will automatically load any dependent services during " +"the next boot, as described below." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19557 +msgid "" +"Since the <citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> system is primarily intended to start and stop " +"services at system startup and shutdown time, the <option>start</option>, " +"<option>stop</option> and <option>restart</option> options will only perform " +"their action if the appropriate <filename>/etc/rc.conf</filename> variable " +"is set. For instance, <command>sshd restart</command> will only work if " +"<varname>sshd_enable</varname> is set to <option>YES</option> in <filename>/" +"etc/rc.conf</filename>. To <option>start</option>, <option>stop</option> or " +"<option>restart</option> a service regardless of the settings in <filename>/" +"etc/rc.conf</filename>, these commands should be prefixed with <quote>one</" +"quote>. For instance, to restart <citerefentry><refentrytitle>sshd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> regardless of the " +"current <filename>/etc/rc.conf</filename> setting, execute the following " +"command:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:19573 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service sshd onerestart</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19575 +msgid "" +"To check if a service is enabled in <filename>/etc/rc.conf</filename>, run " +"the appropriate <citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> script with <option>rcvar</option>. This example " +"checks to see if <citerefentry><refentrytitle>sshd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> is enabled in " +"<filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:19581 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service sshd rcvar</userinput>\n" +"# sshd\n" +"#\n" +"sshd_enable=\"YES\"\n" +"# (default: \"\")" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:19588 +msgid "" +"The <literal># sshd</literal> line is output from the above command, not a " +"<systemitem class=\"username\">root</systemitem> console." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19593 +msgid "" +"To determine whether or not a service is running, use <option>status</" +"option>. For instance, to verify that <citerefentry><refentrytitle>sshd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> is running:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:19597 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service sshd status</userinput>\n" +"sshd is running as pid 433." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19600 +msgid "" +"In some cases, it is also possible to <option>reload</option> a service. " +"This attempts to send a signal to an individual service, forcing the service " +"to reload its configuration files. In most cases, this means sending the " +"service a <literal>SIGHUP</literal> signal. Support for this feature is not " +"included for every service." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19607 +msgid "" +"The <citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> system is used for network services and it also contributes to " +"most of the system initialization. For instance, when the <filename>/etc/rc." +"d/bgfsck</filename> script is executed, it prints out the following message:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:19613 +#, no-wrap +msgid "Starting background file system checks in 60 seconds." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19615 +msgid "" +"This script is used for background file system checks, which occur only " +"during system initialization." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19618 +msgid "" +"Many system services depend on other services to function properly. For " +"example, <citerefentry><refentrytitle>yp</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> and other <acronym>RPC</acronym>-based services " +"may fail to start until after the <citerefentry><refentrytitle>rpcbind</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> service has started. " +"To resolve this issue, information about dependencies and other meta-data is " +"included in the comments at the top of each startup script. The " +"<citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> program is used to parse these comments during " +"system initialization to determine the order in which system services should " +"be invoked to satisfy the dependencies." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19629 +msgid "" +"The following key word must be included in all startup scripts as it is " +"required by <citerefentry><refentrytitle>rc.subr</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to <quote>enable</" +"quote> the startup script:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:19635 +msgid "<literal>PROVIDE</literal>: Specifies the services this file provides." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19640 +msgid "" +"The following key words may be included at the top of each startup script. " +"They are not strictly necessary, but are useful as hints to " +"<citerefentry><refentrytitle>rcorder</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:19646 +msgid "" +"<literal>REQUIRE</literal>: Lists services which are required for this " +"service. The script containing this key word will run <emphasis>after</" +"emphasis> the specified services." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:19653 +msgid "" +"<literal>BEFORE</literal>: Lists services which depend on this service. The " +"script containing this key word will run <emphasis>before</emphasis> the " +"specified services." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19660 +msgid "" +"By carefully setting these keywords for each startup script, an " +"administrator has a fine-grained level of control of the startup order of " +"the scripts, without the need for <quote>runlevels</quote> used by some " +"<trademark class=\"registered\">UNIX</trademark> operating systems." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19666 +msgid "" +"Additional information can be found in <citerefentry><refentrytitle>rc</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>rc.subr</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. Refer to <link xlink:href=\"@@URL_RELPREFIX@@/doc/" +"en_US.ISO8859-1/articles/rc-scripting\">this article</link> for instructions " +"on how to create custom <citerefentry><refentrytitle>rc</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> scripts." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:19672 +msgid "Managing System-Specific Configuration" +msgstr "管理特定系統的設定" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:19674 +msgid "" +"<primary>rc files</primary> <secondary><filename>rc.conf</filename></" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19679 +msgid "" +"The principal location for system configuration information is <filename>/" +"etc/rc.conf</filename>. This file contains a wide range of configuration " +"information and it is read at system startup to configure the system. It " +"provides the configuration information for the <filename>rc*</filename> " +"files." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19686 +msgid "" +"The entries in <filename>/etc/rc.conf</filename> override the default " +"settings in <filename>/etc/defaults/rc.conf</filename>. The file containing " +"the default settings should not be edited. Instead, all system-specific " +"changes should be made to <filename>/etc/rc.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19693 +msgid "" +"A number of strategies may be applied in clustered applications to separate " +"site-wide configuration from system-specific configuration in order to " +"reduce administration overhead. The recommended approach is to place system-" +"specific configuration into <filename>/etc/rc.conf.local</filename>. For " +"example, these entries in <filename>/etc/rc.conf</filename> apply to all " +"systems:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:19702 +#, no-wrap +msgid "" +"sshd_enable=\"YES\"\n" +"keyrate=\"fast\"\n" +"defaultrouter=\"10.1.1.254\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19706 +msgid "" +"Whereas these entries in <filename>/etc/rc.conf.local</filename> apply to " +"this system only:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:19710 +#, no-wrap +msgid "" +"hostname=\"node1.example.org\"\n" +"ifconfig_fxp0=\"inet 10.1.1.1/8\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19713 +msgid "" +"Distribute <filename>/etc/rc.conf</filename> to every system using an " +"application such as <application>rsync</application> or <application>puppet</" +"application>, while <filename>/etc/rc.conf.local</filename> remains unique." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19720 +msgid "" +"Upgrading the system will not overwrite <filename>/etc/rc.conf</filename>, " +"so system configuration information will not be lost." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:19725 +msgid "" +"Both <filename>/etc/rc.conf</filename> and <filename>/etc/rc.conf.local</" +"filename> are parsed by <citerefentry><refentrytitle>sh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. This allows system " +"operators to create complex configuration scenarios. Refer to " +"<citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for further information on this topic." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:19737 +msgid "Setting Up Network Interface Cards" +msgstr "設定網路介面卡" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:19740 book.translate.xml:32068 book.translate.xml:32370 +#: book.translate.xml:32753 +msgid "" +"<personname> <firstname>Marc</firstname> <surname>Fonvieille</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:19750 book.translate.xml:19963 +msgid "<primary>network cards</primary> <secondary>configuration</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:19755 +msgid "" +"Adding and configuring a network interface card (<acronym>NIC</acronym>) is " +"a common task for any FreeBSD administrator." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:19760 +msgid "Locating the Correct Driver" +msgstr "找到正確的驅動程式" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:19762 +msgid "<primary>network cards</primary> <secondary>driver</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19767 +msgid "" +"First, determine the model of the <acronym>NIC</acronym> and the chip it " +"uses. FreeBSD supports a wide variety of <acronym>NIC</acronym>s. Check the " +"Hardware Compatibility List for the FreeBSD release to see if the " +"<acronym>NIC</acronym> is supported." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19773 +msgid "" +"If the <acronym>NIC</acronym> is supported, determine the name of the " +"FreeBSD driver for the <acronym>NIC</acronym>. Refer to <filename>/usr/src/" +"sys/conf/NOTES</filename> and <filename>/usr/src/sys/<replaceable>arch</" +"replaceable>/conf/NOTES</filename> for the list of <acronym>NIC</acronym> " +"drivers with some information about the supported chipsets. When in doubt, " +"read the manual page of the driver as it will provide more information about " +"the supported hardware and any known limitations of the driver." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19783 +msgid "" +"The drivers for common <acronym>NIC</acronym>s are already present in the " +"<filename>GENERIC</filename> kernel, meaning the <acronym>NIC</acronym> " +"should be probed during boot. The system's boot messages can be viewed by " +"typing <command>more /var/run/dmesg.boot</command> and using the spacebar to " +"scroll through the text. In this example, two Ethernet <acronym>NIC</" +"acronym>s using the <citerefentry><refentrytitle>dc</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver are present on " +"the system:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:19792 +#, no-wrap +msgid "" +"dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38\n" +"000ff irq 15 at device 11.0 on pci0\n" +"miibus0: <MII bus> on dc0\n" +"bmtphy0: <BCM5201 10/100baseTX PHY> PHY 1 on miibus0\n" +"bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto\n" +"dc0: Ethernet address: 00:a0:cc:da:da:da\n" +"dc0: [ITHREAD]\n" +"dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30\n" +"000ff irq 11 at device 12.0 on pci0\n" +"miibus1: <MII bus> on dc1\n" +"bmtphy1: <BCM5201 10/100baseTX PHY> PHY 1 on miibus1\n" +"bmtphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto\n" +"dc1: Ethernet address: 00:a0:cc:da:da:db\n" +"dc1: [ITHREAD]" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19807 +msgid "" +"If the driver for the <acronym>NIC</acronym> is not present in " +"<filename>GENERIC</filename>, but a driver is available, the driver will " +"need to be loaded before the <acronym>NIC</acronym> can be configured and " +"used. This may be accomplished in one of two ways:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:19815 +msgid "" +"The easiest way is to load a kernel module for the <acronym>NIC</acronym> " +"using <citerefentry><refentrytitle>kldload</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. To also automatically load the driver at boot " +"time, add the appropriate line to <filename>/boot/loader.conf</filename>. " +"Not all <acronym>NIC</acronym> drivers are available as modules." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:19825 +msgid "" +"Alternatively, statically compile support for the <acronym>NIC</acronym> " +"into a custom kernel. Refer to <filename>/usr/src/sys/conf/NOTES</filename>, " +"<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf/NOTES</filename> " +"and the manual page of the driver to determine which line to add to the " +"custom kernel configuration file. For more information about recompiling the " +"kernel, refer to <xref linkend=\"kernelconfig\"/>. If the <acronym>NIC</" +"acronym> was detected at boot, the kernel does not need to be recompiled." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:19838 +msgid "" +"Using <trademark class=\"registered\">Windows</trademark> <acronym>NDIS</" +"acronym> Drivers" +msgstr "" +"使用 <trademark class=\"registered\">Windows</trademark> <acronym>NDIS</" +"acronym> 驅動程式" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:19840 +msgid "<primary><acronym>NDIS</acronym></primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:19843 +msgid "<primary>NDISulator</primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:19846 +msgid "" +"<primary><trademark class=\"registered\">Windows</trademark> drivers</" +"primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:19849 +msgid "" +"<primary><trademark class=\"registered\">Microsoft</trademark> <trademark " +"class=\"registered\">Windows</trademark></primary> <secondary>device " +"drivers</secondary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:19853 +msgid "<primary><acronym>KLD</acronym> (kernel loadable object)</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19861 +msgid "" +"Unfortunately, there are still many vendors that do not provide schematics " +"for their drivers to the open source community because they regard such " +"information as trade secrets. Consequently, the developers of FreeBSD and " +"other operating systems are left with two choices: develop the drivers by a " +"long and pain-staking process of reverse engineering or using the existing " +"driver binaries available for <trademark class=\"registered\">Microsoft</" +"trademark> <trademark class=\"registered\">Windows</trademark> platforms." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19870 +msgid "" +"FreeBSD provides <quote>native</quote> support for the Network Driver " +"Interface Specification (<acronym>NDIS</acronym>). It includes " +"<citerefentry><refentrytitle>ndisgen</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> which can be used to convert a <trademark class=" +"\"registered\">Windows</trademark> XP driver into a format that can be used " +"on FreeBSD. Because the <citerefentry><refentrytitle>ndis</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver uses a " +"<trademark class=\"registered\">Windows</trademark> XP binary, it only runs " +"on <trademark>i386</trademark> and amd64 systems. <acronym>PCI</acronym>, " +"CardBus, <acronym>PCMCIA</acronym>, and <acronym>USB</acronym> devices are " +"supported." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19880 +msgid "" +"To use <citerefentry><refentrytitle>ndisgen</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, three things are needed:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:19884 +msgid "FreeBSD kernel sources." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:19888 +msgid "" +"A <trademark class=\"registered\">Windows</trademark> XP driver binary with " +"a <filename>.SYS</filename> extension." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:19893 +msgid "" +"A <trademark class=\"registered\">Windows</trademark> XP driver " +"configuration file with a <filename>.INF</filename> extension." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19898 +msgid "" +"Download the <filename>.SYS</filename> and <filename>.INF</filename> files " +"for the specific <acronym>NIC</acronym>. Generally, these can be found on " +"the driver CD or at the vendor's website. The following examples use " +"<filename>W32DRIVER.SYS</filename> and <filename>W32DRIVER.INF</filename>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19905 +msgid "" +"The driver bit width must match the version of FreeBSD. For FreeBSD/i386, " +"use a <trademark class=\"registered\">Windows</trademark> 32-bit driver. For " +"FreeBSD/amd64, a <trademark class=\"registered\">Windows</trademark> 64-bit " +"driver is needed." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19909 +msgid "" +"The next step is to compile the driver binary into a loadable kernel module. " +"As <systemitem class=\"username\">root</systemitem>, use " +"<citerefentry><refentrytitle>ndisgen</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:19914 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ndisgen <replaceable>/path/to/W32DRIVER.INF</replaceable> <replaceable>/path/to/W32DRIVER.SYS</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19916 +msgid "" +"This command is interactive and prompts for any extra information it " +"requires. A new kernel module will be generated in the current directory. " +"Use <citerefentry><refentrytitle>kldload</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> to load the new module:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:19921 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload <replaceable>./W32DRIVER_SYS.ko</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19923 +msgid "" +"In addition to the generated kernel module, the <filename>ndis.ko</filename> " +"and <filename>if_ndis.ko</filename> modules must be loaded. This should " +"happen automatically when any module that depends on " +"<citerefentry><refentrytitle>ndis</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> is loaded. If not, load them manually, using the following " +"commands:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:19930 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>kldload ndis</userinput>\n" +"<prompt>#</prompt> <userinput>kldload if_ndis</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19933 +msgid "" +"The first command loads the <citerefentry><refentrytitle>ndis</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> miniport driver " +"wrapper and the second loads the generated <acronym>NIC</acronym> driver." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19937 +msgid "" +"Check <citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> to see if there were any load errors. If all went " +"well, the output should be similar to the following:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:19941 +#, no-wrap +msgid "" +"ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1\n" +"ndis0: NDIS API version: 5.0\n" +"ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5\n" +"ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps\n" +"ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19947 +msgid "" +"From here, <filename>ndis0</filename> can be configured like any other " +"<acronym>NIC</acronym>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:19950 +msgid "" +"To configure the system to load the <citerefentry><refentrytitle>ndis</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> modules at boot time, " +"copy the generated module, <filename>W32DRIVER_SYS.ko</filename>, to " +"<filename>/boot/modules</filename>. Then, add the following line to " +"<filename>/boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:19956 +#, no-wrap +msgid "W32DRIVER_SYS_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:19961 +msgid "Configuring the Network Card" +msgstr "設定網路卡" + +#. (itstool) path: sect2/para +#: book.translate.xml:19968 +msgid "" +"Once the right driver is loaded for the <acronym>NIC</acronym>, the card " +"needs to be configured. It may have been configured at installation time by " +"<citerefentry><refentrytitle>bsdinstall</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19973 +msgid "" +"To display the <acronym>NIC</acronym> configuration, enter the following " +"command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:19976 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ifconfig</userinput>\n" +"dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=80008<VLAN_MTU,LINKSTATE>\n" +" ether 00:a0:cc:da:da:da\n" +" inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255\n" +" media: Ethernet autoselect (100baseTX <full-duplex>)\n" +" status: active\n" +"dc1: flags=8802<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=80008<VLAN_MTU,LINKSTATE>\n" +" ether 00:a0:cc:da:da:db\n" +" inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255\n" +" media: Ethernet 10baseT/UTP\n" +" status: no carrier\n" +"lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384\n" +" options=3<RXCSUM,TXCSUM>\n" +" inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4\n" +" inet6 ::1 prefixlen 128\n" +" inet 127.0.0.1 netmask 0xff000000\n" +" nd6 options=3<PERFORMNUD,ACCEPT_RTADV>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:19996 +msgid "In this example, the following devices were displayed:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20001 +msgid "<filename>dc0</filename>: The first Ethernet interface." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20006 +msgid "<filename>dc1</filename>: The second Ethernet interface." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20011 +msgid "<filename>lo0</filename>: The loopback device." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20016 +msgid "" +"FreeBSD uses the driver name followed by the order in which the card is " +"detected at boot to name the <acronym>NIC</acronym>. For example, " +"<filename>sis2</filename> is the third <acronym>NIC</acronym> on the system " +"using the <citerefentry><refentrytitle>sis</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> driver." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20023 +msgid "" +"In this example, <filename>dc0</filename> is up and running. The key " +"indicators are:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20028 +msgid "<literal>UP</literal> means that the card is configured and ready." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20033 +msgid "" +"The card has an Internet (<literal>inet</literal>) address, <systemitem " +"class=\"ipaddress\">192.168.1.3</systemitem>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20038 +msgid "" +"It has a valid subnet mask (<literal>netmask</literal>), where <systemitem " +"class=\"netmask\">0xffffff00</systemitem> is the same as <systemitem class=" +"\"netmask\">255.255.255.0</systemitem>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20045 +msgid "" +"It has a valid broadcast address, <systemitem class=\"ipaddress" +"\">192.168.1.255</systemitem>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20049 +msgid "" +"The <acronym>MAC</acronym> address of the card (<literal>ether</literal>) is " +"<systemitem class=\"etheraddress\">00:a0:cc:da:da:da</systemitem>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20054 +msgid "" +"The physical media selection is on autoselection mode (<literal>media: " +"Ethernet autoselect (100baseTX <full-duplex>)</literal>). In this " +"example, <filename>dc1</filename> is configured to run with <literal>10baseT/" +"UTP</literal> media. For more information on available media types for a " +"driver, refer to its manual page." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20064 +msgid "" +"The status of the link (<literal>status</literal>) is <literal>active</" +"literal>, indicating that the carrier signal is detected. For <filename>dc1</" +"filename>, the <literal>status: no carrier</literal> status is normal when " +"an Ethernet cable is not plugged into the card." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20073 +msgid "" +"If the <citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> output had shown something similar to:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:20076 +#, no-wrap +msgid "" +"dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\toptions=80008<VLAN_MTU,LINKSTATE>\n" +"\tether 00:a0:cc:da:da:da\n" +"\tmedia: Ethernet autoselect (100baseTX <full-duplex>)\n" +"\tstatus: active" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20082 +msgid "it would indicate the card has not been configured." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20084 +msgid "" +"The card must be configured as <systemitem class=\"username\">root</" +"systemitem>. The <acronym>NIC</acronym> configuration can be performed from " +"the command line with <citerefentry><refentrytitle>ifconfig</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> but will not persist " +"after a reboot unless the configuration is also added to <filename>/etc/rc." +"conf</filename>. If a <acronym>DHCP</acronym> server is present on the LAN, " +"just add this line:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:20093 +#, no-wrap +msgid "ifconfig_dc0=\"DHCP\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20095 +msgid "" +"Replace <replaceable>dc0</replaceable> with the correct value for the system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20098 +msgid "" +"The line added, then, follow the instructions given in <xref linkend=" +"\"config-network-testing\"/>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:20102 +msgid "" +"If the network was configured during installation, some entries for the " +"<acronym>NIC</acronym>(s) may be already present. Double check <filename>/" +"etc/rc.conf</filename> before adding any lines." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20108 +msgid "" +"In the case, there is no <acronym>DHCP</acronym> server, the <acronym>NIC</" +"acronym>(s) have to be configured manually. Add a line for each " +"<acronym>NIC</acronym> present on the system, as seen in this example:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:20113 +#, no-wrap +msgid "" +"ifconfig_dc0=\"inet 192.168.1.3 netmask 255.255.255.0\"\n" +"ifconfig_dc1=\"inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20116 +msgid "" +"Replace <filename>dc0</filename> and <filename>dc1</filename> and the " +"<acronym>IP</acronym> address information with the correct values for the " +"system. Refer to the man page for the driver, " +"<citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, and <citerefentry><refentrytitle>rc.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for more details about " +"the allowed options and the syntax of <filename>/etc/rc.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20123 +msgid "" +"If the network is not using <acronym>DNS</acronym>, edit <filename>/etc/" +"hosts</filename> to add the names and <acronym>IP</acronym> addresses of the " +"hosts on the <acronym>LAN</acronym>, if they are not already there. For more " +"information, refer to <citerefentry><refentrytitle>hosts</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> and to <filename>/usr/" +"share/examples/etc/hosts</filename>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:20131 +msgid "" +"If there is no <acronym>DHCP</acronym> server and access to the Internet is " +"needed, manually configure the default gateway and the nameserver:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:20135 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>echo 'defaultrouter=\"<replaceable>your_default_router</replaceable>\"' >> /etc/rc.conf</userinput>\n" +"<prompt>#</prompt> <userinput>echo 'nameserver <replaceable>your_DNS_server</replaceable>' >> /etc/resolv.conf</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:20141 +msgid "Testing and Troubleshooting" +msgstr "測試與疑難排解" + +#. (itstool) path: sect2/para +#: book.translate.xml:20143 +msgid "" +"Once the necessary changes to <filename>/etc/rc.conf</filename> are saved, a " +"reboot can be used to test the network configuration and to verify that the " +"system restarts without any configuration errors. Alternatively, apply the " +"settings to the networking system with this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#. (itstool) path: step/screen +#: book.translate.xml:20150 book.translate.xml:62384 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service netif restart</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:20153 +msgid "" +"If a default gateway has been set in <filename>/etc/rc.conf</filename>, also " +"issue this command:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:20157 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service routing restart</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20160 +msgid "" +"Once the networking system has been relaunched, test the <acronym>NIC</" +"acronym>s." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:20164 +msgid "Testing the Ethernet Card" +msgstr "測試乙太網路卡" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:20166 +msgid "<primary>network cards</primary> <secondary>testing</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20171 +msgid "" +"To verify that an Ethernet card is configured correctly, " +"<citerefentry><refentrytitle>ping</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> the interface itself, and then " +"<citerefentry><refentrytitle>ping</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> another machine on the <acronym>LAN</acronym>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:20175 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ping -c5 192.168.1.3</userinput>\n" +"PING 192.168.1.3 (192.168.1.3): 56 data bytes\n" +"64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms\n" +"64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms\n" +"64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms\n" +"64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms\n" +"64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms\n" +"\n" +"--- 192.168.1.3 ping statistics ---\n" +"5 packets transmitted, 5 packets received, 0% packet loss\n" +"round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:20187 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ping -c5 192.168.1.2</userinput>\n" +"PING 192.168.1.2 (192.168.1.2): 56 data bytes\n" +"64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms\n" +"64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms\n" +"64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms\n" +"64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms\n" +"64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms\n" +"\n" +"--- 192.168.1.2 ping statistics ---\n" +"5 packets transmitted, 5 packets received, 0% packet loss\n" +"round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20199 +msgid "" +"To test network resolution, use the host name instead of the <acronym>IP</" +"acronym> address. If there is no <acronym>DNS</acronym> server on the " +"network, <filename>/etc/hosts</filename> must first be configured. To this " +"purpose, edit <filename>/etc/hosts</filename> to add the names and " +"<acronym>IP</acronym> addresses of the hosts on the <acronym>LAN</acronym>, " +"if they are not already there. For more information, refer to " +"<citerefentry><refentrytitle>hosts</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> and to <filename>/usr/share/examples/etc/hosts</filename>." +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:20214 +msgid "<primary>network cards</primary> <secondary>troubleshooting</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20219 +msgid "" +"When troubleshooting hardware and software configurations, check the simple " +"things first. Is the network cable plugged in? Are the network services " +"properly configured? Is the firewall configured correctly? Is the " +"<acronym>NIC</acronym> supported by FreeBSD? Before sending a bug report, " +"always check the Hardware Notes, update the version of FreeBSD to the latest " +"STABLE version, check the mailing list archives, and search the Internet." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20228 +msgid "" +"If the card works, yet performance is poor, read through " +"<citerefentry><refentrytitle>tuning</refentrytitle><manvolnum>7</manvolnum></" +"citerefentry>. Also, check the network configuration as incorrect network " +"settings can cause slow connections." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20233 +msgid "" +"Some users experience one or two <errorname>device timeout</errorname> " +"messages, which is normal for some cards. If they continue, or are " +"bothersome, determine if the device is conflicting with another device. " +"Double check the cable connections. Consider trying another card." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20240 +msgid "" +"To resolve <errorname>watchdog timeout</errorname> errors, first check the " +"network cable. Many cards require a <acronym>PCI</acronym> slot which " +"supports bus mastering. On some old motherboards, only one <acronym>PCI</" +"acronym> slot allows it, usually slot 0. Check the <acronym>NIC</acronym> " +"and the motherboard documentation to determine if that may be the problem." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20249 +msgid "" +"<errorname>No route to host</errorname> messages occur if the system is " +"unable to route a packet to the destination host. This can happen if no " +"default route is specified or if a cable is unplugged. Check the output of " +"<command>netstat -rn</command> and make sure there is a valid route to the " +"host. If there is not, read <xref linkend=\"network-routing\"/>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20257 +msgid "" +"<errorname>ping: sendto: Permission denied</errorname> error messages are " +"often caused by a misconfigured firewall. If a firewall is enabled on " +"FreeBSD but no rules have been defined, the default policy is to deny all " +"traffic, even <citerefentry><refentrytitle>ping</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. Refer to <xref linkend=\"firewalls\"/> for more " +"information." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20264 +msgid "" +"Sometimes performance of the card is poor or below average. In these cases, " +"try setting the media selection mode from <literal>autoselect</literal> to " +"the correct media selection. While this works for most hardware, it may or " +"may not resolve the issue. Again, check all the network settings, and refer " +"to <citerefentry><refentrytitle>tuning</refentrytitle><manvolnum>7</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:20276 +msgid "Virtual Hosts" +msgstr "虛擬主機" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:20278 +msgid "<primary>virtual hosts</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:20279 +msgid "<primary><acronym>IP</acronym> aliases</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:20282 +msgid "" +"A common use of FreeBSD is virtual site hosting, where one server appears to " +"the network as many servers. This is achieved by assigning multiple network " +"addresses to a single interface." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:20287 +msgid "" +"A given network interface has one <quote>real</quote> address, and may have " +"any number of <quote>alias</quote> addresses. These aliases are normally " +"added by placing alias entries in <filename>/etc/rc.conf</filename>, as seen " +"in this example:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:20293 +#, no-wrap +msgid "ifconfig_fxp0_alias0=\"inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:20295 +msgid "" +"Alias entries must start with <literal>alias<replaceable>0</replaceable></" +"literal> using a sequential number such as <literal>alias0</literal>, " +"<literal>alias1</literal>, and so on. The configuration process will stop at " +"the first missing number." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:20302 +msgid "" +"The calculation of alias netmasks is important. For a given interface, there " +"must be one address which correctly represents the network's netmask. Any " +"other addresses which fall within this network must have a netmask of all " +"<literal>1</literal>s, expressed as either <systemitem class=\"netmask" +"\">255.255.255.255</systemitem> or <systemitem class=\"netmask\">0xffffffff</" +"systemitem>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:20310 +msgid "" +"For example, consider the case where the <filename>fxp0</filename> interface " +"is connected to two networks: <systemitem class=\"ipaddress\">10.1.1.0</" +"systemitem> with a netmask of <systemitem class=\"netmask\">255.255.255.0</" +"systemitem> and <systemitem class=\"ipaddress\">202.0.75.16</systemitem> " +"with a netmask of <systemitem class=\"netmask\">255.255.255.240</" +"systemitem>. The system is to be configured to appear in the ranges " +"<systemitem class=\"ipaddress\">10.1.1.1</systemitem> through <systemitem " +"class=\"ipaddress\">10.1.1.5</systemitem> and <systemitem class=\"ipaddress" +"\">202.0.75.17</systemitem> through <systemitem class=\"ipaddress" +"\">202.0.75.20</systemitem>. Only the first address in a given network range " +"should have a real netmask. All the rest (<systemitem class=\"ipaddress" +"\">10.1.1.2</systemitem> through <systemitem class=\"ipaddress\">10.1.1.5</" +"systemitem> and <systemitem class=\"ipaddress\">202.0.75.18</systemitem> " +"through <systemitem class=\"ipaddress\">202.0.75.20</systemitem>) must be " +"configured with a netmask of <systemitem class=\"netmask\">255.255.255.255</" +"systemitem>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:20332 +msgid "" +"The following <filename>/etc/rc.conf</filename> entries configure the " +"adapter correctly for this scenario:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:20335 +#, no-wrap +msgid "" +"ifconfig_fxp0=\"inet 10.1.1.1 netmask 255.255.255.0\"\n" +"ifconfig_fxp0_alias0=\"inet 10.1.1.2 netmask 255.255.255.255\"\n" +"ifconfig_fxp0_alias1=\"inet 10.1.1.3 netmask 255.255.255.255\"\n" +"ifconfig_fxp0_alias2=\"inet 10.1.1.4 netmask 255.255.255.255\"\n" +"ifconfig_fxp0_alias3=\"inet 10.1.1.5 netmask 255.255.255.255\"\n" +"ifconfig_fxp0_alias4=\"inet 202.0.75.17 netmask 255.255.255.240\"\n" +"ifconfig_fxp0_alias5=\"inet 202.0.75.18 netmask 255.255.255.255\"\n" +"ifconfig_fxp0_alias6=\"inet 202.0.75.19 netmask 255.255.255.255\"\n" +"ifconfig_fxp0_alias7=\"inet 202.0.75.20 netmask 255.255.255.255\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:20345 +msgid "" +"A simpler way to express this is with a space-separated list of <acronym>IP</" +"acronym> address ranges. The first address will be given the indicated " +"subnet mask and the additional addresses will have a subnet mask of " +"<literal>255.255.255.255</literal>." +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:20351 +#, no-wrap +msgid "ifconfig_fxp0_aliases=\"inet 10.1.1.1-5/24 inet 202.0.75.17-20/28\"" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:20356 +msgid "Configuring System Logging" +msgstr "設定系統日誌" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:20359 +msgid "" +"<personname> <firstname>Niclas</firstname> <surname>Zeising</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:20369 +msgid "<primary>system logging</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:20372 book.translate.xml:57109 +msgid "<primary>syslog</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:20375 +msgid "" +"<primary><citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry></primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:20379 +msgid "" +"Generating and reading system logs is an important aspect of system " +"administration. The information in system logs can be used to detect " +"hardware and software issues as well as application and system configuration " +"errors. This information also plays an important role in security auditing " +"and incident response. Most system daemons and applications will generate " +"log entries." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:20387 +msgid "" +"FreeBSD provides a system logger, <application>syslogd</application>, to " +"manage logging. By default, <application>syslogd</application> is started " +"when the system boots. This is controlled by the variable " +"<literal>syslogd_enable</literal> in <filename>/etc/rc.conf</filename>. " +"There are numerous application arguments that can be set using " +"<literal>syslogd_flags</literal> in <filename>/etc/rc.conf</filename>. Refer " +"to <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for more information on the available arguments." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:20398 +msgid "" +"This section describes how to configure the FreeBSD system logger for both " +"local and remote logging and how to perform log rotation and log management." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:20403 +msgid "Configuring Local Logging" +msgstr "設定本地日誌" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:20405 +msgid "<primary>syslog.conf</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20407 +msgid "" +"The configuration file, <filename>/etc/syslog.conf</filename>, controls what " +"<application>syslogd</application> does with log entries as they are " +"received. There are several parameters to control the handling of incoming " +"events. The <firstterm>facility</firstterm> describes which subsystem " +"generated the message, such as the kernel or a daemon, and the " +"<firstterm>level</firstterm> describes the severity of the event that " +"occurred. This makes it possible to configure if and where a log message is " +"logged, depending on the facility and level. It is also possible to take " +"action depending on the application that sent the message, and in the case " +"of remote logging, the hostname of the machine generating the logging event." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20422 +msgid "" +"This configuration file contains one line per action, where the syntax for " +"each line is a selector field followed by an action field. The syntax of the " +"selector field is <replaceable>facility.level</replaceable> which will match " +"log messages from <replaceable>facility</replaceable> at level " +"<replaceable>level</replaceable> or higher. It is also possible to add an " +"optional comparison flag before the level to specify more precisely what is " +"logged. Multiple selector fields can be used for the same action, and are " +"separated with a semicolon (<literal>;</literal>). Using <literal>*</" +"literal> will match everything. The action field denotes where to send the " +"log message, such as to a file or remote log host. As an example, here is " +"the default <filename>syslog.conf</filename> from FreeBSD:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:20437 +#, no-wrap +msgid "" +"# $FreeBSD$\n" +"#\n" +"# Spaces ARE valid field separators in this file. However,\n" +"# other *nix-like systems still insist on using tabs as field\n" +"# separators. If you are sharing this file between systems, you\n" +"# may want to use only tabs as field separators here.\n" +"# Consult the syslog.conf(5) manpage.\n" +"*.err;kern.warning;auth.notice;mail.crit /dev/console\n" +"*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages\n" +"security.* /var/log/security\n" +"auth.info;authpriv.info /var/log/auth.log\n" +"mail.info /var/log/maillog\n" +"lpr.info /var/log/lpd-errs\n" +"ftp.info /var/log/xferlog\n" +"cron.* /var/log/cron\n" +"!-devd\n" +"*.=debug /var/log/debug.log\n" +"*.emerg *\n" +"# uncomment this to log all writes to /dev/console to /var/log/console.log\n" +"#console.info /var/log/console.log\n" +"# uncomment this to enable logging of all log messages to /var/log/all.log\n" +"# touch /var/log/all.log and chmod it to mode 600 before it will work\n" +"#*.* /var/log/all.log\n" +"# uncomment this to enable logging to a remote loghost named loghost\n" +"#*.* @loghost\n" +"# uncomment these if you're running inn\n" +"# news.crit /var/log/news/news.crit\n" +"# news.err /var/log/news/news.err\n" +"# news.notice /var/log/news/news.notice\n" +"# Uncomment this if you wish to see messages produced by devd\n" +"# !devd\n" +"# *.>=info\n" +"!ppp\n" +"*.* /var/log/ppp.log\n" +"!*" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20473 +msgid "In this example:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20477 +msgid "" +"Line 8 matches all messages with a level of <literal>err</literal> or " +"higher, as well as <literal>kern.warning</literal>, <literal>auth.notice</" +"literal> and <literal>mail.crit</literal>, and sends these log messages to " +"the console (<filename>/dev/console</filename>)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20487 +msgid "" +"Line 12 matches all messages from the <literal>mail</literal> facility at " +"level <literal>info</literal> or above and logs the messages to <filename>/" +"var/log/maillog</filename>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20494 +msgid "" +"Line 17 uses a comparison flag (<literal>=</literal>) to only match messages " +"at level <literal>debug</literal> and logs them to <filename>/var/log/debug." +"log</filename>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20501 +msgid "" +"Line 33 is an example usage of a program specification. This makes the rules " +"following it only valid for the specified program. In this case, only the " +"messages generated by <application>ppp</application> are logged to " +"<filename>/var/log/ppp.log</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20509 +msgid "" +"The available levels, in order from most to least critical are " +"<literal>emerg</literal>, <literal>alert</literal>, <literal>crit</literal>, " +"<literal>err</literal>, <literal>warning</literal>, <literal>notice</" +"literal>, <literal>info</literal>, and <literal>debug</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20516 +msgid "" +"The facilities, in no particular order, are <literal>auth</literal>, " +"<literal>authpriv</literal>, <literal>console</literal>, <literal>cron</" +"literal>, <literal>daemon</literal>, <literal>ftp</literal>, <literal>kern</" +"literal>, <literal>lpr</literal>, <literal>mail</literal>, <literal>mark</" +"literal>, <literal>news</literal>, <literal>security</literal>, " +"<literal>syslog</literal>, <literal>user</literal>, <literal>uucp</literal>, " +"and <literal>local0</literal> through <literal>local7</literal>. Be aware " +"that other operating systems might have different facilities." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20528 +msgid "" +"To log everything of level <literal>notice</literal> and higher to " +"<filename>/var/log/daemon.log</filename>, add the following entry:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:20532 +#, no-wrap +msgid "daemon.notice /var/log/daemon.log" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20534 +msgid "" +"For more information about the different levels and facilities, refer to " +"<citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>syslogd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. For more information " +"about <filename>/etc/syslog.conf</filename>, its syntax, and more advanced " +"usage examples, see <citerefentry><refentrytitle>syslog.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:20542 +msgid "Log Management and Rotation" +msgstr "日誌管理與循環" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:20544 +msgid "<primary>newsyslog</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:20545 +msgid "<primary>newsyslog.conf</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:20546 +msgid "<primary>log rotation</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:20547 +msgid "<primary>log management</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20549 +msgid "" +"Log files can grow quickly, taking up disk space and making it more " +"difficult to locate useful information. Log management attempts to mitigate " +"this. In FreeBSD, <application>newsyslog</application> is used to manage log " +"files. This built-in program periodically rotates and compresses log files, " +"and optionally creates missing log files and signals programs when log files " +"are moved. The log files may be generated by <application>syslogd</" +"application> or by any other program which generates log files. While " +"<application>newsyslog</application> is normally run from " +"<citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, it is not a system daemon. In the default configuration, it " +"runs every hour." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20562 +msgid "" +"To know which actions to take, <application>newsyslog</application> reads " +"its configuration file, <filename>/etc/newsyslog.conf</filename>. This file " +"contains one line for each log file that <application>newsyslog</" +"application> manages. Each line states the file owner, permissions, when to " +"rotate that file, optional flags that affect log rotation, such as " +"compression, and programs to signal when the log is rotated. Here is the " +"default configuration in FreeBSD:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:20572 +#, no-wrap +msgid "" +"# configuration file for newsyslog\n" +"# $FreeBSD$\n" +"#\n" +"# Entries which do not specify the '/pid_file' field will cause the\n" +"# syslogd process to be signalled when that log file is rotated. This\n" +"# action is only appropriate for log files which are written to by the\n" +"# syslogd process (ie, files listed in /etc/syslog.conf). If there\n" +"# is no process which needs to be signalled when a given log file is\n" +"# rotated, then the entry for that file should include the 'N' flag.\n" +"#\n" +"# The 'flags' field is one or more of the letters: BCDGJNUXZ or a '-'.\n" +"#\n" +"# Note: some sites will want to select more restrictive protections than the\n" +"# defaults. In particular, it may be desirable to switch many of the 644\n" +"# entries to 640 or 600. For example, some sites will consider the\n" +"# contents of maillog, messages, and lpd-errs to be confidential. In the\n" +"# future, these defaults may change to more conservative ones.\n" +"#\n" +"# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]\n" +"/var/log/all.log 600 7 * @T00 J\n" +"/var/log/amd.log 644 7 100 * J\n" +"/var/log/auth.log 600 7 100 @0101T JC\n" +"/var/log/console.log 600 5 100 * J\n" +"/var/log/cron 600 3 100 * JC\n" +"/var/log/daily.log 640 7 * @T00 JN\n" +"/var/log/debug.log 600 7 100 * JC\n" +"/var/log/kerberos.log 600 7 100 * J\n" +"/var/log/lpd-errs 644 7 100 * JC\n" +"/var/log/maillog 640 7 * @T00 JC\n" +"/var/log/messages 644 5 100 @0101T JC\n" +"/var/log/monthly.log 640 12 * $M1D0 JN\n" +"/var/log/pflog 600 3 100 * JB /var/run/pflogd.pid\n" +"/var/log/ppp.log root:network 640 3 100 * JC\n" +"/var/log/devd.log 644 3 100 * JC\n" +"/var/log/security 600 10 100 * JC\n" +"/var/log/sendmail.st 640 10 * 168 B\n" +"/var/log/utx.log 644 3 * @01T05 B\n" +"/var/log/weekly.log 640 5 1 $W6D0 JN\n" +"/var/log/xferlog 600 7 100 * JC" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20612 +msgid "" +"Each line starts with the name of the log to be rotated, optionally followed " +"by an owner and group for both rotated and newly created files. The " +"<literal>mode</literal> field sets the permissions on the log file and " +"<literal>count</literal> denotes how many rotated log files should be kept. " +"The <literal>size</literal> and <literal>when</literal> fields tell " +"<application>newsyslog</application> when to rotate the file. A log file is " +"rotated when either its size is larger than the <literal>size</literal> " +"field or when the time in the <literal>when</literal> field has passed. An " +"asterisk (<literal>*</literal>) means that this field is ignored. The " +"<replaceable>flags</replaceable> field gives further instructions, such as " +"how to compress the rotated file or to create the log file if it is missing. " +"The last two fields are optional and specify the name of the Process ID " +"(<acronym>PID</acronym>) file of a process and a signal number to send to " +"that process when the file is rotated." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20630 +msgid "" +"For more information on all fields, valid flags, and how to specify the " +"rotation time, refer to <citerefentry><refentrytitle>newsyslog.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>. Since " +"<application>newsyslog</application> is run from " +"<citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, it cannot rotate files more often than it is scheduled to run " +"from <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:20639 +msgid "Configuring Remote Logging" +msgstr "設定遠端日誌" + +#. (itstool) path: sect2/para +#: book.translate.xml:20652 +msgid "" +"Monitoring the log files of multiple hosts can become unwieldy as the number " +"of systems increases. Configuring centralized logging can reduce some of the " +"administrative burden of log file administration." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:20657 +msgid "" +"In FreeBSD, centralized log file aggregation, merging, and rotation can be " +"configured using <application>syslogd</application> and " +"<application>newsyslog</application>. This section demonstrates an example " +"configuration, where host <systemitem>A</systemitem>, named <systemitem " +"class=\"fqdomainname\">logserv.example.com</systemitem>, will collect " +"logging information for the local network. Host <systemitem>B</systemitem>, " +"named <systemitem class=\"fqdomainname\">logclient.example.com</systemitem>, " +"will be configured to pass logging information to the logging server." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:20669 +msgid "Log Server Configuration" +msgstr "日誌伺服器設定" + +#. (itstool) path: sect3/para +#: book.translate.xml:20671 +msgid "" +"A log server is a system that has been configured to accept logging " +"information from other hosts. Before configuring a log server, check the " +"following:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20677 +msgid "" +"If there is a firewall between the logging server and any logging clients, " +"ensure that the firewall ruleset allows <acronym>UDP</acronym> port 514 for " +"both the clients and the server." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:20684 +msgid "" +"The logging server and all client machines must have forward and reverse " +"entries in the local <acronym>DNS</acronym>. If the network does not have a " +"<acronym>DNS</acronym> server, create entries in each system's <filename>/" +"etc/hosts</filename>. Proper name resolution is required so that log entries " +"are not rejected by the logging server." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20694 +msgid "" +"On the log server, edit <filename>/etc/syslog.conf</filename> to specify the " +"name of the client to receive log entries from, the logging facility to be " +"used, and the name of the log to store the host's log entries. This example " +"adds the hostname of <systemitem>B</systemitem>, logs all facilities, and " +"stores the log entries in <filename>/var/log/logclient.log</filename>." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:20704 +msgid "Sample Log Server Configuration" +msgstr "日誌伺服器設定範例" + +#. (itstool) path: example/programlisting +#: book.translate.xml:20706 +#, no-wrap +msgid "" +"+logclient.example.com\n" +"*.* /var/log/logclient.log" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20710 +msgid "" +"When adding multiple log clients, add a similar two-line entry for each " +"client. More information about the available facilities may be found in " +"<citerefentry><refentrytitle>syslog.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20714 +msgid "Next, configure <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:20717 +#, no-wrap +msgid "" +"syslogd_enable=\"YES\"\n" +"syslogd_flags=\"-a logclient.example.com -v -v\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20720 +msgid "" +"The first entry starts <application>syslogd</application> at system boot. " +"The second entry allows log entries from the specified client. The <option>-" +"v -v</option> increases the verbosity of logged messages. This is useful for " +"tweaking facilities as administrators are able to see what type of messages " +"are being logged under each facility." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20728 +msgid "" +"Multiple <option>-a</option> options may be specified to allow logging from " +"multiple clients. <acronym>IP</acronym> addresses and whole netblocks may " +"also be specified. Refer to <citerefentry><refentrytitle>syslogd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for a full list of " +"possible options." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20734 +msgid "Finally, create the log file:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:20736 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>touch /var/log/logclient.log</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20738 +msgid "" +"At this point, <application>syslogd</application> should be restarted and " +"verified:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:20741 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service syslogd restart</userinput>\n" +"<prompt>#</prompt> <userinput>pgrep syslog</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20744 +msgid "" +"If a <acronym>PID</acronym> is returned, the server restarted successfully, " +"and client configuration can begin. If the server did not restart, consult " +"<filename>/var/log/messages</filename> for the error." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:20751 +msgid "Log Client Configuration" +msgstr "日誌客戶端設定" + +#. (itstool) path: sect3/para +#: book.translate.xml:20753 +msgid "" +"A logging client sends log entries to a logging server on the network. The " +"client also keeps a local copy of its own logs." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20757 +msgid "" +"Once a logging server has been configured, edit <filename>/etc/rc.conf</" +"filename> on the logging client:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:20761 +#, no-wrap +msgid "" +"syslogd_enable=\"YES\"\n" +"syslogd_flags=\"-s -v -v\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20764 +msgid "" +"The first entry enables <application>syslogd</application> on boot up. The " +"second entry prevents logs from being accepted by this client from other " +"hosts (<option>-s</option>) and increases the verbosity of logged messages." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20770 +msgid "" +"Next, define the logging server in the client's <filename>/etc/syslog.conf</" +"filename>. In this example, all logged facilities are sent to a remote " +"system, denoted by the <literal>@</literal> symbol, with the specified " +"hostname:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:20776 +#, no-wrap +msgid "*.*\t\t@logserv.example.com" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20778 +msgid "" +"After saving the edit, restart <application>syslogd</application> for the " +"changes to take effect:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:20782 book.translate.xml:20826 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service syslogd restart</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20784 +msgid "" +"To test that log messages are being sent across the network, use " +"<citerefentry><refentrytitle>logger</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> on the client to send a message to <application>syslogd</" +"application>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:20788 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>logger \"<replaceable>Test message from logclient</replaceable>\"</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20790 +msgid "" +"This message should now exist both in <filename>/var/log/messages</filename> " +"on the client and <filename>/var/log/logclient.log</filename> on the log " +"server." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:20797 +msgid "Debugging Log Servers" +msgstr "日誌伺服器除錯" + +#. (itstool) path: sect3/para +#: book.translate.xml:20799 +msgid "" +"If no messages are being received on the log server, the cause is most " +"likely a network connectivity issue, a hostname resolution issue, or a typo " +"in a configuration file. To isolate the cause, ensure that both the logging " +"server and the logging client are able to <command>ping</command> each other " +"using the hostname specified in their <filename>/etc/rc.conf</filename>. If " +"this fails, check the network cabling, the firewall ruleset, and the " +"hostname entries in the <acronym>DNS</acronym> server or <filename>/etc/" +"hosts</filename> on both the logging server and clients. Repeat until the " +"<command>ping</command> is successful from both hosts." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20813 +msgid "" +"If the <command>ping</command> succeeds on both hosts but log messages are " +"still not being received, temporarily increase logging verbosity to narrow " +"down the configuration issue. In the following example, <filename>/var/log/" +"logclient.log</filename> on the logging server is empty and <filename>/var/" +"log/messages</filename> on the logging client does not indicate a reason for " +"the failure. To increase debugging output, edit the <literal>syslogd_flags</" +"literal> entry on the logging server and issue a restart:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:20824 +#, no-wrap +msgid "syslogd_flags=\"-d -a logclient.example.com -v -v\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20828 +msgid "" +"Debugging data similar to the following will flash on the console " +"immediately after the restart:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:20831 +#, no-wrap +msgid "" +"logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart\n" +"syslogd: restarted\n" +"logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel\n" +"Logging to FILE /var/log/messages\n" +"syslogd: kernel boot file is /boot/kernel/kernel\n" +"cvthname(192.168.1.10)\n" +"validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;\n" +"rejected in rule 0 due to name mismatch." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20840 +msgid "" +"In this example, the log messages are being rejected due to a typo which " +"results in a hostname mismatch. The client's hostname should be " +"<literal>logclient</literal>, not <literal>logclien</literal>. Fix the typo, " +"issue a restart, and verify the results:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:20846 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service syslogd restart</userinput>\n" +"logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart\n" +"syslogd: restarted\n" +"logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel\n" +"syslogd: kernel boot file is /boot/kernel/kernel\n" +"logmsg: pri 166, flags 17, from logserv.example.com,\n" +"msg Dec 10 20:55:02 <syslog.err> logserv.example.com syslogd: exiting on signal 2\n" +"cvthname(192.168.1.10)\n" +"validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;\n" +"accepted in rule 0.\n" +"logmsg: pri 15, flags 0, from logclient.example.com, msg Dec 11 02:01:28 trhodes: Test message 2\n" +"Logging to FILE /var/log/logclient.log\n" +"Logging to FILE /var/log/messages" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20860 +msgid "" +"At this point, the messages are being properly received and placed in the " +"correct file." +msgstr "" + +#. (itstool) path: sect3/title +#. (itstool) path: sect2/title +#: book.translate.xml:20865 book.translate.xml:52646 +msgid "Security Considerations" +msgstr "安全注意事項" + +#. (itstool) path: sect3/para +#: book.translate.xml:20867 +msgid "" +"As with any network service, security requirements should be considered " +"before implementing a logging server. Log files may contain sensitive data " +"about services enabled on the local host, user accounts, and configuration " +"data. Network data sent from the client to the server will not be encrypted " +"or password protected. If a need for encryption exists, consider using " +"<package>security/stunnel</package>, which will transmit the logging data " +"over an encrypted tunnel." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20877 +msgid "" +"Local security is also an issue. Log files are not encrypted during use or " +"after log rotation. Local users may access log files to gain additional " +"insight into system configuration. Setting proper permissions on log files " +"is critical. The built-in log rotator, <application>newsyslog</application>, " +"supports setting permissions on newly created and rotated log files. Setting " +"log files to mode <literal>600</literal> should prevent unwanted access by " +"local users. Refer to <citerefentry><refentrytitle>newsyslog.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for additional " +"information." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:20895 +msgid "<filename>/etc</filename> Layout" +msgstr "<filename>/etc</filename> 配置" + +#. (itstool) path: sect2/para +#: book.translate.xml:20898 +msgid "" +"There are a number of directories in which configuration information is " +"kept. These include:" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20908 +msgid "<filename>/etc</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20909 +msgid "Generic system-specific configuration information." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20914 +msgid "<filename>/etc/defaults</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20915 +msgid "Default versions of system configuration files." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20920 +msgid "<filename>/etc/mail</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20921 +msgid "" +"Extra <citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> configuration and other <acronym>MTA</acronym> " +"configuration files." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20926 +msgid "<filename>/etc/ppp</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20927 +msgid "Configuration for both user- and kernel-ppp programs." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20932 book.translate.xml:55422 +msgid "<filename>/etc/namedb</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20933 +msgid "" +"Default location for <citerefentry><refentrytitle>named</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> data. Normally " +"<filename>named.conf</filename> and zone files are stored here." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20939 +msgid "<filename>/usr/local/etc</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20940 +msgid "" +"Configuration files for installed applications. May contain per-application " +"subdirectories." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20945 +msgid "<filename>/usr/local/etc/rc.d</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20946 +msgid "" +"<citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> scripts for installed applications." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20951 +msgid "<filename>/var/db</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20952 +msgid "" +"Automatically generated system-specific database files, such as the package " +"database and the <citerefentry><refentrytitle>locate</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> database." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:20962 +msgid "Hostnames" +msgstr "主機名稱" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:20964 +msgid "<primary>hostname</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#. (itstool) path: sect1/indexterm +#: book.translate.xml:20965 book.translate.xml:49299 book.translate.xml:50401 +#: book.translate.xml:51287 book.translate.xml:55132 +msgid "<primary>DNS</primary>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:20968 +msgid "<filename>/etc/resolv.conf</filename>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:20970 +msgid "<primary><filename>resolv.conf</filename></primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20974 +msgid "" +"How a FreeBSD system accesses the Internet Domain Name System (<acronym>DNS</" +"acronym>) is controlled by <citerefentry><refentrytitle>resolv.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:20978 +msgid "The most common entries to <filename>/etc/resolv.conf</filename> are:" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20988 +msgid "<literal>nameserver</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20989 +msgid "" +"The <acronym>IP</acronym> address of a name server the resolver should " +"query. The servers are queried in the order listed with a maximum of three." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20996 +msgid "<literal>search</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:20997 +msgid "" +"Search list for hostname lookup. This is normally determined by the domain " +"of the local hostname." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:21003 +msgid "<literal>domain</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:21004 +msgid "The local domain name." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21010 +msgid "A typical <filename>/etc/resolv.conf</filename> looks like this:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:21013 +#, no-wrap +msgid "" +"search example.com\n" +"nameserver 147.11.1.11\n" +"nameserver 147.11.100.30" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:21018 +msgid "" +"Only one of the <literal>search</literal> and <literal>domain</literal> " +"options should be used." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21022 +msgid "" +"When using <acronym>DHCP</acronym>, <citerefentry><refentrytitle>dhclient</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> usually rewrites " +"<filename>/etc/resolv.conf</filename> with information received from the " +"<acronym>DHCP</acronym> server." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:21029 +msgid "<filename>/etc/hosts</filename>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21031 +msgid "<primary>hosts</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21033 +msgid "" +"<filename>/etc/hosts</filename> is a simple text database which works in " +"conjunction with <acronym>DNS</acronym> and <acronym>NIS</acronym> to " +"provide host name to <acronym>IP</acronym> address mappings. Entries for " +"local computers connected via a <acronym>LAN</acronym> can be added to this " +"file for simplistic naming purposes instead of setting up a " +"<citerefentry><refentrytitle>named</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> server. Additionally, <filename>/etc/hosts</filename> can be " +"used to provide a local record of Internet names, reducing the need to query " +"external <acronym>DNS</acronym> servers for commonly accessed names." +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:21046 +#, no-wrap +msgid "" +"# $FreeBSD$\n" +"#\n" +"#\n" +"# Host Database\n" +"#\n" +"# This file should contain the addresses and aliases for local hosts that\n" +"# share this file. Replace 'my.domain' below with the domainname of your\n" +"# machine.\n" +"#\n" +"# In the presence of the domain name service or NIS, this file may\n" +"# not be consulted at all; see /etc/nsswitch.conf for the resolution order.\n" +"#\n" +"#\n" +"::1\t\t\tlocalhost localhost.my.domain\n" +"127.0.0.1\t\tlocalhost localhost.my.domain\n" +"#\n" +"# Imaginary network.\n" +"#10.0.0.2\t\tmyname.my.domain myname\n" +"#10.0.0.3\t\tmyfriend.my.domain myfriend\n" +"#\n" +"# According to RFC 1918, you can use the following IP networks for\n" +"# private nets which will never be connected to the Internet:\n" +"#\n" +"#\t10.0.0.0\t- 10.255.255.255\n" +"#\t172.16.0.0\t- 172.31.255.255\n" +"#\t192.168.0.0\t- 192.168.255.255\n" +"#\n" +"# In case you want to be able to connect to the Internet, you need\n" +"# real official assigned numbers. Do not try to invent your own network\n" +"# numbers but instead get one from your network provider (if any) or\n" +"# from your regional registry (ARIN, APNIC, LACNIC, RIPE NCC, or AfriNIC.)\n" +"#" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21079 +msgid "The format of <filename>/etc/hosts</filename> is as follows:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:21082 +#, no-wrap +msgid "[Internet address] [official hostname] [alias1] [alias2] ..." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21084 +msgid "For example:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:21086 +#, no-wrap +msgid "10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21088 +msgid "" +"Consult <citerefentry><refentrytitle>hosts</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:21094 +msgid "" +"Tuning with <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" +msgstr "" +"使用 <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 調校" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:21096 book.translate.xml:21141 +msgid "<primary>sysctl</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:21097 +msgid "<primary>tuning</primary> <secondary>with sysctl</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:21102 +msgid "" +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> is used to make changes to a running FreeBSD system. This " +"includes many advanced options of the <acronym>TCP/IP</acronym> stack and " +"virtual memory system that can dramatically improve performance for an " +"experienced system administrator. Over five hundred system variables can be " +"read and set using <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:21109 +msgid "" +"At its core, <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> serves two functions: " +"to read and to modify system settings." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:21112 +msgid "To view all readable variables:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:21114 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>sysctl -a</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:21116 +msgid "To read a particular variable, specify its name:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:21118 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>sysctl kern.maxproc</userinput>\n" +"kern.maxproc: 1044" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:21121 +msgid "" +"To set a particular variable, use the <replaceable>variable</" +"replaceable>=<replaceable>value</replaceable> syntax:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:21125 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>sysctl kern.maxfiles=5000</userinput>\n" +"kern.maxfiles: 2088 -> 5000" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:21128 +msgid "" +"Settings of sysctl variables are usually either strings, numbers, or " +"booleans, where a boolean is <literal>1</literal> for yes or <literal>0</" +"literal> for no." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:21132 +msgid "" +"To automatically set some variables each time the machine boots, add them to " +"<filename>/etc/sysctl.conf</filename>. For more information, refer to " +"<citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> and <xref linkend=\"configtuning-sysctlconf\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:21138 +msgid "<filename>sysctl.conf</filename>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:21140 +msgid "<primary>sysctl.conf</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21143 +msgid "" +"The configuration file for <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, <filename>/etc/sysctl." +"conf</filename>, looks much like <filename>/etc/rc.conf</filename>. Values " +"are set in a <literal>variable=value</literal> form. The specified values " +"are set after the system goes into multi-user mode. Not all variables are " +"settable in this mode." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21150 +msgid "" +"For example, to turn off logging of fatal signal exits and prevent users " +"from seeing processes started by other users, the following tunables can be " +"set in <filename>/etc/sysctl.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:21155 +#, no-wrap +msgid "" +"# Do not log fatal signal exits (e.g., sig 11)\n" +"kern.logsigexit=0\n" +"\n" +"# Prevent users from seeing information about processes that\n" +"# are being run under another UID.\n" +"security.bsd.see_other_uids=0" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:21165 +msgid "" +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> Read-only" +msgstr "" +"唯讀 <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" + +#. (itstool) path: sect2/para +#: book.translate.xml:21178 +msgid "" +"In some cases it may be desirable to modify read-only " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> values, which will require a reboot of the system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21182 +msgid "" +"For instance, on some laptop models the " +"<citerefentry><refentrytitle>cardbus</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> device will not probe memory ranges and will fail " +"with errors similar to:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:21186 +#, no-wrap +msgid "" +"cbb0: Could not map register memory\n" +"device_probe_and_attach: cbb0 attach returned 12" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21189 +msgid "" +"The fix requires the modification of a read-only " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> setting. Add <option>hw.pci.allow_unsupported_io_range=1</" +"option> to <filename>/boot/loader.conf</filename> and reboot. Now " +"<citerefentry><refentrytitle>cardbus</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> should work properly." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:21198 +msgid "Tuning Disks" +msgstr "調校磁碟" + +#. (itstool) path: sect1/para +#: book.translate.xml:21200 +msgid "" +"The following section will discuss various tuning mechanisms and options " +"which may be applied to disk devices. In many cases, disks with mechanical " +"parts, such as <acronym>SCSI</acronym> drives, will be the bottleneck " +"driving down the overall system performance. While a solution is to install " +"a drive without mechanical parts, such as a solid state drive, mechanical " +"drives are not going away anytime in the near future. When tuning disks, it " +"is advisable to utilize the features of the " +"<citerefentry><refentrytitle>iostat</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> command to test various changes to the system. This command " +"will allow the user to obtain valuable information on system <acronym>IO</" +"acronym>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:21214 +msgid "Sysctl Variables" +msgstr "Sysctl 變數" + +#. (itstool) path: sect3/title +#: book.translate.xml:21217 +msgid "<varname>vfs.vmiodirenable</varname>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21219 +msgid "<primary><varname>vfs.vmiodirenable</varname></primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21223 +msgid "" +"The <varname>vfs.vmiodirenable</varname> " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variable may be set to either <literal>0</literal> (off) or " +"<literal>1</literal> (on). It is set to <literal>1</literal> by default. " +"This variable controls how directories are cached by the system. Most " +"directories are small, using just a single fragment (typically 1 K) in the " +"file system and typically 512 bytes in the buffer cache. With this variable " +"turned off, the buffer cache will only cache a fixed number of directories, " +"even if the system has a huge amount of memory. When turned on, this " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> allows the buffer cache to use the <acronym>VM</acronym> page " +"cache to cache the directories, making all the memory available for caching " +"directories. However, the minimum in-core memory used to cache a directory " +"is the physical page size (typically 4 K) rather than 512 bytes. Keeping " +"this option enabled is recommended if the system is running any services " +"which manipulate large numbers of files. Such services can include web " +"caches, large mail systems, and news systems. Keeping this option on will " +"generally not reduce performance, even with the wasted memory, but one " +"should experiment to find out." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:21249 +msgid "<varname>vfs.write_behind</varname>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21251 +msgid "<primary><varname>vfs.write_behind</varname></primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21255 +msgid "" +"The <varname>vfs.write_behind</varname> <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> variable defaults to " +"<literal>1</literal> (on). This tells the file system to issue media writes " +"as full clusters are collected, which typically occurs when writing large " +"sequential files. This avoids saturating the buffer cache with dirty buffers " +"when it would not benefit I/O performance. However, this may stall processes " +"and under certain circumstances should be turned off." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:21267 +msgid "<varname>vfs.hirunningspace</varname>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21269 +msgid "<primary><varname>vfs.hirunningspace</varname></primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21273 +msgid "" +"The <varname>vfs.hirunningspace</varname> " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variable determines how much outstanding write I/O may be " +"queued to disk controllers system-wide at any given instance. The default is " +"usually sufficient, but on machines with many disks, try bumping it up to " +"four or five <emphasis>megabytes</emphasis>. Setting too high a value which " +"exceeds the buffer cache's write threshold can lead to bad clustering " +"performance. Do not set this value arbitrarily high as higher write values " +"may add latency to reads occurring at the same time." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21284 +msgid "" +"There are various other buffer cache and <acronym>VM</acronym> page cache " +"related <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> values. Modifying these values is not recommended " +"as the <acronym>VM</acronym> system does a good job of automatically tuning " +"itself." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:21292 +msgid "<varname>vm.swap_idle_enabled</varname>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21294 +msgid "<primary><varname>vm.swap_idle_enabled</varname></primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21298 +msgid "" +"The <varname>vm.swap_idle_enabled</varname> " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variable is useful in large multi-user systems with many " +"active login users and lots of idle processes. Such systems tend to generate " +"continuous pressure on free memory reserves. Turning this feature on and " +"tweaking the swapout hysteresis (in idle seconds) via <varname>vm." +"swap_idle_threshold1</varname> and <varname>vm.swap_idle_threshold2</" +"varname> depresses the priority of memory pages associated with idle " +"processes more quickly then the normal pageout algorithm. This gives a " +"helping hand to the pageout daemon. Only turn this option on if needed, " +"because the tradeoff is essentially pre-page memory sooner rather than later " +"which eats more swap and disk bandwidth. In a small system this option will " +"have a determinable effect, but in a large system that is already doing " +"moderate paging, this option allows the <acronym>VM</acronym> system to " +"stage whole processes into and out of memory easily." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:21319 +msgid "<varname>hw.ata.wc</varname>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21321 +msgid "<primary><varname>hw.ata.wc</varname></primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21325 +msgid "" +"Turning off <acronym>IDE</acronym> write caching reduces write bandwidth to " +"<acronym>IDE</acronym> disks, but may sometimes be necessary due to data " +"consistency issues introduced by hard drive vendors. The problem is that " +"some <acronym>IDE</acronym> drives lie about when a write completes. With " +"<acronym>IDE</acronym> write caching turned on, <acronym>IDE</acronym> hard " +"drives write data to disk out of order and will sometimes delay writing some " +"blocks indefinitely when under heavy disk load. A crash or power failure may " +"cause serious file system corruption. Check the default on the system by " +"observing the <varname>hw.ata.wc</varname> " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variable. If <acronym>IDE</acronym> write caching is turned " +"off, one can set this read-only variable to <literal>1</literal> in " +"<filename>/boot/loader.conf</filename> in order to enable it at boot time." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21343 +msgid "" +"For more information, refer to <citerefentry><refentrytitle>ata</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:21347 +msgid "<literal>SCSI_DELAY</literal> (<varname>kern.cam.scsi_delay</varname>)" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21350 +msgid "<primary><varname>kern.cam.scsi_delay</varname></primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21354 +msgid "" +"<primary>kernel options</primary> <secondary><literal>SCSI DELAY</literal></" +"secondary>" +msgstr "" +"<primary>核心選項</primary> <secondary><literal>SCSI DELAY</literal></" +"secondary>" + +#. (itstool) path: sect3/para +#: book.translate.xml:21359 +msgid "" +"The <literal>SCSI_DELAY</literal> kernel configuration option may be used to " +"reduce system boot times. The defaults are fairly high and can be " +"responsible for <literal>15</literal> seconds of delay in the boot process. " +"Reducing it to <literal>5</literal> seconds usually works with modern " +"drives. The <varname>kern.cam.scsi_delay</varname> boot time tunable should " +"be used. The tunable and kernel configuration option accept values in terms " +"of <emphasis>milliseconds</emphasis> and <emphasis>not</emphasis> " +"<emphasis>seconds</emphasis>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:21375 +msgid "Soft Updates" +msgstr "軟更新" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:21377 +msgid "<primary>Soft Updates</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:21378 +msgid "" +"<primary><citerefentry><refentrytitle>tunefs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21380 +msgid "" +"To fine-tune a file system, use <citerefentry><refentrytitle>tunefs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. This program has many " +"different options. To toggle Soft Updates on and off, use:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:21384 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>tunefs -n enable /filesystem</userinput>\n" +"<prompt>#</prompt> <userinput>tunefs -n disable /filesystem</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21387 +msgid "" +"A file system cannot be modified with <citerefentry><refentrytitle>tunefs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> while it is mounted. A " +"good time to enable Soft Updates is before any partitions have been mounted, " +"in single-user mode." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21391 +msgid "" +"Soft Updates is recommended for <acronym>UFS</acronym> file systems as it " +"drastically improves meta-data performance, mainly file creation and " +"deletion, through the use of a memory cache. There are two downsides to Soft " +"Updates to be aware of. First, Soft Updates guarantee file system " +"consistency in the case of a crash, but could easily be several seconds or " +"even a minute behind updating the physical disk. If the system crashes, " +"unwritten data may be lost. Secondly, Soft Updates delay the freeing of file " +"system blocks. If the root file system is almost full, performing a major " +"update, such as <command>make installworld</command>, can cause the file " +"system to run out of space and the update to fail." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:21405 +msgid "More Details About Soft Updates" +msgstr "有關軟更新的更多詳細資訊" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21407 +msgid "<primary>Soft Updates</primary> <secondary>details</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21412 +msgid "" +"Meta-data updates are updates to non-content data like inodes or " +"directories. There are two traditional approaches to writing a file system's " +"meta-data back to disk." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21416 +msgid "" +"Historically, the default behavior was to write out meta-data updates " +"synchronously. If a directory changed, the system waited until the change " +"was actually written to disk. The file data buffers (file contents) were " +"passed through the buffer cache and backed up to disk later on " +"asynchronously. The advantage of this implementation is that it operates " +"safely. If there is a failure during an update, meta-data is always in a " +"consistent state. A file is either created completely or not at all. If the " +"data blocks of a file did not find their way out of the buffer cache onto " +"the disk by the time of the crash, <citerefentry><refentrytitle>fsck</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> recognizes this and " +"repairs the file system by setting the file length to <literal>0</literal>. " +"Additionally, the implementation is clear and simple. The disadvantage is " +"that meta-data changes are slow. For example, <command>rm -r</command> " +"touches all the files in a directory sequentially, but each directory change " +"will be written synchronously to the disk. This includes updates to the " +"directory itself, to the inode table, and possibly to indirect blocks " +"allocated by the file. Similar considerations apply for unrolling large " +"hierarchies using <command>tar -x</command>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21439 +msgid "" +"The second approach is to use asynchronous meta-data updates. This is the " +"default for a <acronym>UFS</acronym> file system mounted with <command>mount " +"-o async</command>. Since all meta-data updates are also passed through the " +"buffer cache, they will be intermixed with the updates of the file content " +"data. The advantage of this implementation is there is no need to wait until " +"each meta-data update has been written to disk, so all operations which " +"cause huge amounts of meta-data updates work much faster than in the " +"synchronous case. This implementation is still clear and simple, so there is " +"a low risk for bugs creeping into the code. The disadvantage is that there " +"is no guarantee for a consistent state of the file system. If there is a " +"failure during an operation that updated large amounts of meta-data, like a " +"power failure or someone pressing the reset button, the file system will be " +"left in an unpredictable state. There is no opportunity to examine the state " +"of the file system when the system comes up again as the data blocks of a " +"file could already have been written to the disk while the updates of the " +"inode table or the associated directory were not. It is impossible to " +"implement a <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> which is able to clean up the resulting chaos " +"because the necessary information is not available on the disk. If the file " +"system has been damaged beyond repair, the only choice is to reformat it and " +"restore from backup." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21466 +msgid "" +"The usual solution for this problem is to implement <emphasis>dirty region " +"logging</emphasis>, which is also referred to as <emphasis>journaling</" +"emphasis>. Meta-data updates are still written synchronously, but only into " +"a small region of the disk. Later on, they are moved to their proper " +"location. Because the logging area is a small, contiguous region on the " +"disk, there are no long distances for the disk heads to move, even during " +"heavy operations, so these operations are quicker than synchronous updates. " +"Additionally, the complexity of the implementation is limited, so the risk " +"of bugs being present is low. A disadvantage is that all meta-data is " +"written twice, once into the logging region and once to the proper location, " +"so performance <quote>pessimization</quote> might result. On the other hand, " +"in case of a crash, all pending meta-data operations can be either quickly " +"rolled back or completed from the logging area after the system comes up " +"again, resulting in a fast file system startup." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21485 +msgid "" +"Kirk McKusick, the developer of Berkeley <acronym>FFS</acronym>, solved this " +"problem with Soft Updates. All pending meta-data updates are kept in memory " +"and written out to disk in a sorted sequence (<quote>ordered meta-data " +"updates</quote>). This has the effect that, in case of heavy meta-data " +"operations, later updates to an item <quote>catch</quote> the earlier ones " +"which are still in memory and have not already been written to disk. All " +"operations are generally performed in memory before the update is written to " +"disk and the data blocks are sorted according to their position so that they " +"will not be on the disk ahead of their meta-data. If the system crashes, an " +"implicit <quote>log rewind</quote> causes all operations which were not " +"written to the disk appear as if they never happened. A consistent file " +"system state is maintained that appears to be the one of 30 to 60 seconds " +"earlier. The algorithm used guarantees that all resources in use are marked " +"as such in their blocks and inodes. After a crash, the only resource " +"allocation error that occurs is that resources are marked as <quote>used</" +"quote> which are actually <quote>free</quote>. " +"<citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> recognizes this situation, and frees the resources that are no " +"longer used. It is safe to ignore the dirty state of the file system after a " +"crash by forcibly mounting it with <command>mount -f</command>. In order to " +"free resources that may be unused, <citerefentry><refentrytitle>fsck</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> needs to be run at a " +"later time. This is the idea behind the <emphasis>background " +"<citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry></emphasis>: at system startup time, only a <emphasis>snapshot</" +"emphasis> of the file system is recorded and " +"<citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> is run afterwards. All file systems can then be mounted " +"<quote>dirty</quote>, so the system startup proceeds in multi-user mode. " +"Then, background <citerefentry><refentrytitle>fsck</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> is scheduled for all " +"file systems where this is required, to free resources that may be unused. " +"File systems that do not use Soft Updates still need the usual foreground " +"<citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21523 +msgid "" +"The advantage is that meta-data operations are nearly as fast as " +"asynchronous updates and are faster than <emphasis>logging</emphasis>, which " +"has to write the meta-data twice. The disadvantages are the complexity of " +"the code, a higher memory consumption, and some idiosyncrasies. After a " +"crash, the state of the file system appears to be somewhat <quote>older</" +"quote>. In situations where the standard synchronous approach would have " +"caused some zero-length files to remain after the " +"<citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, these files do not exist at all with Soft Updates because " +"neither the meta-data nor the file contents have been written to disk. Disk " +"space is not released until the updates have been written to disk, which may " +"take place some time after running <citerefentry><refentrytitle>rm</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. This may cause " +"problems when installing large amounts of data on a file system that does " +"not have enough free space to hold all the files twice." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:21545 +msgid "Tuning Kernel Limits" +msgstr "調校核心限制" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:21547 +msgid "<primary>tuning</primary> <secondary>kernel limits</secondary>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:21553 +msgid "File/Process Limits" +msgstr "檔案/程序限制" + +#. (itstool) path: sect3/title +#: book.translate.xml:21556 +msgid "<varname>kern.maxfiles</varname>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21558 +msgid "<primary><varname>kern.maxfiles</varname></primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21562 +msgid "" +"The <varname>kern.maxfiles</varname> <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> variable can be raised " +"or lowered based upon system requirements. This variable indicates the " +"maximum number of file descriptors on the system. When the file descriptor " +"table is full, <errorname>file: table is full</errorname> will show up " +"repeatedly in the system message buffer, which can be viewed using " +"<citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21570 +msgid "" +"Each open file, socket, or fifo uses one file descriptor. A large-scale " +"production server may easily require many thousands of file descriptors, " +"depending on the kind and number of services running concurrently." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21575 +msgid "" +"In older FreeBSD releases, the default value of <varname>kern.maxfiles</" +"varname> is derived from <option>maxusers</option> in the kernel " +"configuration file. <varname>kern.maxfiles</varname> grows proportionally to " +"the value of <option>maxusers</option>. When compiling a custom kernel, " +"consider setting this kernel configuration option according to the use of " +"the system. From this number, the kernel is given most of its pre-defined " +"limits. Even though a production machine may not have 256 concurrent users, " +"the resources needed may be similar to a high-scale web server." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21587 +msgid "" +"The read-only <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> variable <varname>kern." +"maxusers</varname> is automatically sized at boot based on the amount of " +"memory available in the system, and may be determined at run-time by " +"inspecting the value of <varname>kern.maxusers</varname>. Some systems " +"require larger or smaller values of <varname>kern.maxusers</varname> and " +"values of <literal>64</literal>, <literal>128</literal>, and <literal>256</" +"literal> are not uncommon. Going above <literal>256</literal> is not " +"recommended unless a huge number of file descriptors is needed. Many of the " +"tunable values set to their defaults by <varname>kern.maxusers</varname> may " +"be individually overridden at boot-time or run-time in <filename>/boot/" +"loader.conf</filename>. Refer to <citerefentry><refentrytitle>loader.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> and <filename>/boot/" +"defaults/loader.conf</filename> for more details and some hints." +msgstr "" + +#. (itstool) path: footnote/para +#: book.translate.xml:21609 +msgid "" +"The auto-tuning algorithm sets <literal>maxusers</literal> equal to the " +"amount of memory in the system, with a minimum of <literal>32</literal>, and " +"a maximum of <literal>384</literal>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21606 +msgid "" +"In older releases, the system will auto-tune <literal>maxusers</literal> if " +"it is set to <literal>0</literal>. <_:footnote-1/>. When setting this " +"option, set <literal>maxusers</literal> to at least <literal>4</literal>, " +"especially if the system runs <application>Xorg</application> or is used to " +"compile software. The most important table set by <literal>maxusers</" +"literal> is the maximum number of processes, which is set to <literal>20 + " +"16 * maxusers</literal>. If <literal>maxusers</literal> is set to " +"<literal>1</literal>, there can only be <literal>36</literal> simultaneous " +"processes, including the <literal>18</literal> or so that the system starts " +"up at boot time and the <literal>15</literal> or so used by " +"<application>Xorg</application>. Even a simple task like reading a manual " +"page will start up nine processes to filter, decompress, and view it. " +"Setting <literal>maxusers</literal> to <literal>64</literal> allows up to " +"<literal>1044</literal> simultaneous processes, which should be enough for " +"nearly all uses. If, however, the <errortype>proc table full</errortype> " +"error is displayed when trying to start another program, or a server is " +"running with a large number of simultaneous users, increase the number and " +"rebuild." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:21638 +msgid "" +"<literal>maxusers</literal> does <emphasis>not</emphasis> limit the number " +"of users which can log into the machine. It instead sets various table sizes " +"to reasonable values considering the maximum number of users on the system " +"and how many processes each user will be running." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:21648 +msgid "<varname>kern.ipc.soacceptqueue</varname>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21650 +msgid "<primary><varname>kern.ipc.soacceptqueue</varname></primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21654 +msgid "" +"The <varname>kern.ipc.soacceptqueue</varname> " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variable limits the size of the listen queue for accepting new " +"<literal>TCP</literal> connections. The default value of <literal>128</" +"literal> is typically too low for robust handling of new connections on a " +"heavily loaded web server. For such environments, it is recommended to " +"increase this value to <literal>1024</literal> or higher. A service such as " +"<citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, or <application>Apache</application> may itself " +"limit the listen queue size, but will often have a directive in its " +"configuration file to adjust the queue size. Large listen queues do a better " +"job of avoiding Denial of Service (<acronym>DoS</acronym>) attacks." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:21671 +msgid "Network Limits" +msgstr "網路限制" + +#. (itstool) path: sect2/para +#: book.translate.xml:21673 +msgid "" +"The <literal>NMBCLUSTERS</literal> kernel configuration option dictates the " +"amount of network Mbufs available to the system. A heavily-trafficked server " +"with a low number of Mbufs will hinder performance. Each cluster represents " +"approximately 2 K of memory, so a value of <literal>1024</literal> " +"represents <literal>2</literal> megabytes of kernel memory reserved for " +"network buffers. A simple calculation can be done to figure out how many are " +"needed. A web server which maxes out at <literal>1000</literal> simultaneous " +"connections where each connection uses a 6 K receive and 16 K send buffer, " +"requires approximately 32 MB worth of network buffers to cover the web " +"server. A good rule of thumb is to multiply by <literal>2</literal>, so " +"2x32 MB / 2 KB = 64 MB / 2 kB = <literal>32768</literal>. Values between " +"<literal>4096</literal> and <literal>32768</literal> are recommended for " +"machines with greater amounts of memory. Never specify an arbitrarily high " +"value for this parameter as it could lead to a boot time crash. To observe " +"network cluster usage, use <option>-m</option> with " +"<citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21697 +msgid "" +"The <varname>kern.ipc.nmbclusters</varname> loader tunable should be used to " +"tune this at boot time. Only older versions of FreeBSD will require the use " +"of the <literal>NMBCLUSTERS</literal> kernel " +"<citerefentry><refentrytitle>config</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> option." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21703 +msgid "" +"For busy servers that make extensive use of the " +"<citerefentry><refentrytitle>sendfile</refentrytitle><manvolnum>2</" +"manvolnum></citerefentry> system call, it may be necessary to increase the " +"number of <citerefentry><refentrytitle>sendfile</refentrytitle><manvolnum>2</" +"manvolnum></citerefentry> buffers via the <literal>NSFBUFS</literal> kernel " +"configuration option or by setting its value in <filename>/boot/loader.conf</" +"filename> (see <citerefentry><refentrytitle>loader</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for details). A common " +"indicator that this parameter needs to be adjusted is when processes are " +"seen in the <literal>sfbufa</literal> state. The " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variable <varname>kern.ipc.nsfbufs</varname> is read-only. " +"This parameter nominally scales with <varname>kern.maxusers</varname>, " +"however it may be necessary to tune accordingly." +msgstr "" + +#. (itstool) path: important/para +#: book.translate.xml:21717 +msgid "" +"Even though a socket has been marked as non-blocking, calling " +"<citerefentry><refentrytitle>sendfile</refentrytitle><manvolnum>2</" +"manvolnum></citerefentry> on the non-blocking socket may result in the " +"<citerefentry><refentrytitle>sendfile</refentrytitle><manvolnum>2</" +"manvolnum></citerefentry> call blocking until enough <literal>struct sf_buf</" +"literal>'s are made available." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:21725 +msgid "<varname>net.inet.ip.portrange.*</varname>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21727 +msgid "<primary>net.inet.ip.portrange.*</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21731 +msgid "" +"The <varname>net.inet.ip.portrange.*</varname> " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variables control the port number ranges automatically bound " +"to <literal>TCP</literal> and <literal>UDP</literal> sockets. There are " +"three ranges: a low range, a default range, and a high range. Most network " +"programs use the default range which is controlled by <varname>net.inet.ip." +"portrange.first</varname> and <varname>net.inet.ip.portrange.last</varname>, " +"which default to <literal>1024</literal> and <literal>5000</literal>, " +"respectively. Bound port ranges are used for outgoing connections and it is " +"possible to run the system out of ports under certain circumstances. This " +"most commonly occurs when running a heavily loaded web proxy. The port range " +"is not an issue when running a server which handles mainly incoming " +"connections, such as a web server, or has a limited number of outgoing " +"connections, such as a mail relay. For situations where there is a shortage " +"of ports, it is recommended to increase <varname>net.inet.ip.portrange.last</" +"varname> modestly. A value of <literal>10000</literal>, <literal>20000</" +"literal> or <literal>30000</literal> may be reasonable. Consider firewall " +"effects when changing the port range. Some firewalls may block large ranges " +"of ports, usually low-numbered ports, and expect systems to use higher " +"ranges of ports for outgoing connections. For this reason, it is not " +"recommended that the value of <varname>net.inet.ip.portrange.first</varname> " +"be lowered." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:21762 +msgid "<literal>TCP</literal> Bandwidth Delay Product" +msgstr "<literal>TCP</literal> 頻寬延遲乘積" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:21764 +msgid "" +"<primary><literal>TCP</literal> Bandwidth Delay Product Limiting</primary> " +"<secondary><varname>net.inet.tcp.inflight.enable</varname></secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21770 +msgid "" +"<literal>TCP</literal> bandwidth delay product limiting can be enabled by " +"setting the <varname>net.inet.tcp.inflight.enable</varname> " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variable to <literal>1</literal>. This instructs the system to " +"attempt to calculate the bandwidth delay product for each connection and " +"limit the amount of data queued to the network to just the amount required " +"to maintain optimum throughput." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21779 +msgid "" +"This feature is useful when serving data over modems, Gigabit Ethernet, high " +"speed <literal>WAN</literal> links, or any other link with a high bandwidth " +"delay product, especially when also using window scaling or when a large " +"send window has been configured. When enabling this option, also set " +"<varname>net.inet.tcp.inflight.debug</varname> to <literal>0</literal> to " +"disable debugging. For production use, setting <varname>net.inet.tcp." +"inflight.min</varname> to at least <literal>6144</literal> may be " +"beneficial. Setting high minimums may effectively disable bandwidth " +"limiting, depending on the link. The limiting feature reduces the amount of " +"data built up in intermediate route and switch packet queues and reduces the " +"amount of data built up in the local host's interface queue. With fewer " +"queued packets, interactive connections, especially over slow modems, will " +"operate with lower <emphasis>Round Trip Times</emphasis>. This feature only " +"effects server side data transmission such as uploading. It has no effect on " +"data reception or downloading." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21799 +msgid "" +"Adjusting <varname>net.inet.tcp.inflight.stab</varname> is <emphasis>not</" +"emphasis> recommended. This parameter defaults to <literal>20</literal>, " +"representing 2 maximal packets added to the bandwidth delay product window " +"calculation. The additional window is required to stabilize the algorithm " +"and improve responsiveness to changing conditions, but it can also result in " +"higher <citerefentry><refentrytitle>ping</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> times over slow links, though still much lower " +"than without the inflight algorithm. In such cases, try reducing this " +"parameter to <literal>15</literal>, <literal>10</literal>, or <literal>5</" +"literal> and reducing <varname>net.inet.tcp.inflight.min</varname> to a " +"value such as <literal>3500</literal> to get the desired effect. Reducing " +"these parameters should be done as a last resort only." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:21818 +msgid "Virtual Memory" +msgstr "虛擬記憶體" + +#. (itstool) path: sect3/title +#: book.translate.xml:21821 +msgid "<varname>kern.maxvnodes</varname>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21823 +msgid "" +"A vnode is the internal representation of a file or directory. Increasing " +"the number of vnodes available to the operating system reduces disk I/O. " +"Normally, this is handled by the operating system and does not need to be " +"changed. In some cases where disk I/O is a bottleneck and the system is " +"running out of vnodes, this setting needs to be increased. The amount of " +"inactive and free <acronym>RAM</acronym> will need to be taken into account." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21833 +msgid "To see the current number of vnodes in use:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:21835 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>sysctl vfs.numvnodes</userinput>\n" +"vfs.numvnodes: 91349" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21838 +msgid "To see the maximum vnodes:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:21840 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>sysctl kern.maxvnodes</userinput>\n" +"kern.maxvnodes: 100000" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:21843 +msgid "" +"If the current vnode usage is near the maximum, try increasing <varname>kern." +"maxvnodes</varname> by a value of <literal>1000</literal>. Keep an eye on " +"the number of <varname>vfs.numvnodes</varname>. If it climbs up to the " +"maximum again, <varname>kern.maxvnodes</varname> will need to be increased " +"further. Otherwise, a shift in memory usage as reported by " +"<citerefentry><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> should be visible and more memory should be active." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:21856 +msgid "Adding Swap Space" +msgstr "增加交換空間" + +#. (itstool) path: sect1/para +#: book.translate.xml:21858 +msgid "" +"Sometimes a system requires more swap space. This section describes two " +"methods to increase swap space: adding swap to an existing partition or new " +"hard drive, and creating a swap file on an existing partition." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:21863 +msgid "" +"For information on how to encrypt swap space, which options exist, and why " +"it should be done, refer to <xref linkend=\"swap-encrypting\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:21867 +msgid "Swap on a New Hard Drive or Existing Partition" +msgstr "使用新硬碟或既有分割區增加交換空間" + +#. (itstool) path: sect2/para +#: book.translate.xml:21869 +msgid "" +"Adding a new hard drive for swap gives better performance than using a " +"partition on an existing drive. Setting up partitions and hard drives is " +"explained in <xref linkend=\"disks-adding\"/> while <xref linkend=" +"\"configtuning-initial\"/> discusses partition layouts and swap partition " +"size considerations." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21874 +msgid "" +"Use <command>swapon</command> to add a swap partition to the system. For " +"example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:21877 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>swapon <replaceable>/dev/ada1s1b</replaceable></userinput>" +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:21880 +msgid "" +"It is possible to use any partition not currently mounted, even if it " +"already contains data. Using <command>swapon</command> on a partition that " +"contains data will overwrite and destroy that data. Make sure that the " +"partition to be added as swap is really the intended partition before " +"running <command>swapon</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21888 +msgid "" +"To automatically add this swap partition on boot, add an entry to <filename>/" +"etc/fstab</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:21891 +#, no-wrap +msgid "<replaceable>/dev/ada1s1b</replaceable>\tnone\tswap\tsw\t0\t0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21893 +msgid "" +"See <citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for an explanation of the entries in <filename>/" +"etc/fstab</filename>. More information about <command>swapon</command> can " +"be found in <citerefentry><refentrytitle>swapon</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:21900 +msgid "Creating a Swap File" +msgstr "建立交換檔" + +#. (itstool) path: sect2/para +#: book.translate.xml:21902 +msgid "" +"These examples create a 64M swap file called <filename>/usr/swap0</filename> " +"instead of using a partition." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:21906 +msgid "" +"Using swap files requires that the module needed by " +"<citerefentry><refentrytitle>md</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> has either been built into the kernel or has been loaded " +"before swap is enabled. See <xref linkend=\"kernelconfig\"/> for information " +"about building a custom kernel." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:21913 +msgid "" +"Creating a Swap File on FreeBSD 10.<replaceable>X</replaceable> and Later" +msgstr "建立交換檔於 FreeBSD 10.<replaceable>X</replaceable> 及以後版本" + +#. (itstool) path: step/para +#: book.translate.xml:21918 +msgid "Create the swap file:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:21920 book.translate.xml:21958 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dd if=/dev/zero of=<replaceable>/usr/swap0</replaceable> bs=1m count=<replaceable>64</replaceable></userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:21924 +msgid "Set the proper permissions on the new file:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:21926 book.translate.xml:21965 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chmod 0600 <replaceable>/usr/swap0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:21930 +msgid "" +"Inform the system about the swap file by adding a line to <filename>/etc/" +"fstab</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:21933 +#, no-wrap +msgid "md99\tnone\tswap\tsw,file=/usr/swap0,late\t0\t0" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:21935 +msgid "" +"The <citerefentry><refentrytitle>md</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> device <filename>md99</filename> is used, leaving lower device " +"numbers available for interactive use." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:21941 +msgid "" +"Swap space will be added on system startup. To add swap space immediately, " +"use <citerefentry><refentrytitle>swapon</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:21944 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>swapon -aL</userinput>" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:21950 +msgid "" +"Creating a Swap File on FreeBSD 9.<replaceable>X</replaceable> and Earlier" +msgstr "建立交換檔於 FreeBSD 9.<replaceable>X</replaceable> 及先前版本" + +#. (itstool) path: step/para +#: book.translate.xml:21955 +msgid "Create the swap file, <filename>/usr/swap0</filename>:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:21962 +msgid "Set the proper permissions on <filename>/usr/swap0</filename>:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:21969 +msgid "Enable the swap file in <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:21972 +#, no-wrap +msgid "swapfile=\"<replaceable>/usr/swap0</replaceable>\" # Set to name of swap file" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:21976 +msgid "" +"Swap space will be added on system startup. To enable the swap file " +"immediately, specify a free memory device. Refer to <xref linkend=\"disks-" +"virtual\"/> for more information about memory devices." +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:21981 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mdconfig -a -t vnode -f <replaceable>/usr/swap0</replaceable> -u <replaceable>0</replaceable> && swapon /dev/md<replaceable>0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:21990 +msgid "Power and Resource Management" +msgstr "電源與資源管理" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:21993 +msgid "" +"<personname> <firstname>Hiten</firstname> <surname>Pandya</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:22001 book.translate.xml:22481 +msgid "" +"<personname> <firstname>Tom</firstname> <surname>Rhodes</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22010 +msgid "" +"It is important to utilize hardware resources in an efficient manner. Power " +"and resource management allows the operating system to monitor system limits " +"and to possibly provide an alert if the system temperature increases " +"unexpectedly. An early specification for providing power management was the " +"Advanced Power Management (<acronym>APM</acronym>) facility. <acronym>APM</" +"acronym> controls the power usage of a system based on its activity. " +"However, it was difficult and inflexible for operating systems to manage the " +"power usage and thermal properties of a system. The hardware was managed by " +"the <acronym>BIOS</acronym> and the user had limited configurability and " +"visibility into the power management settings. The <acronym>APM</acronym> " +"<acronym>BIOS</acronym> is supplied by the vendor and is specific to the " +"hardware platform. An <acronym>APM</acronym> driver in the operating system " +"mediates access to the <acronym>APM</acronym> Software Interface, which " +"allows management of power levels." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22029 +msgid "" +"There are four major problems in <acronym>APM</acronym>. First, power " +"management is done by the vendor-specific <acronym>BIOS</acronym>, separate " +"from the operating system. For example, the user can set idle-time values " +"for a hard drive in the <acronym>APM</acronym> <acronym>BIOS</acronym> so " +"that, when exceeded, the <acronym>BIOS</acronym> spins down the hard drive " +"without the consent of the operating system. Second, the <acronym>APM</" +"acronym> logic is embedded in the <acronym>BIOS</acronym>, and it operates " +"outside the scope of the operating system. This means that users can only " +"fix problems in the <acronym>APM</acronym> <acronym>BIOS</acronym> by " +"flashing a new one into the <acronym>ROM</acronym>, which is a dangerous " +"procedure with the potential to leave the system in an unrecoverable state " +"if it fails. Third, <acronym>APM</acronym> is a vendor-specific technology, " +"meaning that there is a lot of duplication of efforts and bugs found in one " +"vendor's <acronym>BIOS</acronym> may not be solved in others. Lastly, the " +"<acronym>APM</acronym> <acronym>BIOS</acronym> did not have enough room to " +"implement a sophisticated power policy or one that can adapt well to the " +"purpose of the machine." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22051 +msgid "" +"The Plug and Play <acronym>BIOS</acronym> (<acronym>PNPBIOS</acronym>) was " +"unreliable in many situations. <acronym>PNPBIOS</acronym> is 16-bit " +"technology, so the operating system has to use 16-bit emulation in order to " +"interface with <acronym>PNPBIOS</acronym> methods. FreeBSD provides an " +"<acronym>APM</acronym> driver as <acronym>APM</acronym> should still be used " +"for systems manufactured at or before the year 2000. The driver is " +"documented in <citerefentry><refentrytitle>apm</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:22061 +msgid "<primary>ACPI</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:22065 +msgid "<primary>APM</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22069 +msgid "" +"The successor to <acronym>APM</acronym> is the Advanced Configuration and " +"Power Interface (<acronym>ACPI</acronym>). <acronym>ACPI</acronym> is a " +"standard written by an alliance of vendors to provide an interface for " +"hardware resources and power management. It is a key element in " +"<emphasis>Operating System-directed configuration and Power Management</" +"emphasis> as it provides more control and flexibility to the operating " +"system." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22078 +msgid "" +"This chapter demonstrates how to configure <acronym>ACPI</acronym> on " +"FreeBSD. It then offers some tips on how to debug <acronym>ACPI</acronym> " +"and how to submit a problem report containing debugging information so that " +"developers can diagnosis and fix <acronym>ACPI</acronym> issues." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:22085 +msgid "Configuring <acronym>ACPI</acronym>" +msgstr "設定 <acronym>ACPI</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:22087 +msgid "" +"In FreeBSD the <citerefentry><refentrytitle>acpi</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver is loaded by " +"default at system boot and should <emphasis>not</emphasis> be compiled into " +"the kernel. This driver cannot be unloaded after boot because the system bus " +"uses it for various hardware interactions. However, if the system is " +"experiencing problems, <acronym>ACPI</acronym> can be disabled altogether by " +"rebooting after setting <literal>hint.acpi.0.disabled=\"1\"</literal> in " +"<filename>/boot/loader.conf</filename> or by setting this variable at the " +"loader prompt, as described in <xref linkend=\"boot-loader\"/>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:22099 +msgid "" +"<acronym>ACPI</acronym> and <acronym>APM</acronym> cannot coexist and should " +"be used separately. The last one to load will terminate if the driver " +"notices the other is running." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22105 +msgid "" +"<acronym>ACPI</acronym> can be used to put the system into a sleep mode with " +"<command>acpiconf</command>, the <option>-s</option> flag, and a number from " +"<literal>1</literal> to <literal>5</literal>. Most users only need " +"<literal>1</literal> (quick suspend to <acronym>RAM</acronym>) or " +"<literal>3</literal> (suspend to <acronym>RAM</acronym>). Option <literal>5</" +"literal> performs a soft-off which is the same as running <command>halt -p</" +"command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22115 +msgid "" +"Other options are available using <command>sysctl</command>. Refer to " +"<citerefentry><refentrytitle>acpi</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> and <citerefentry vendor=\"current\"><refentrytitle>acpiconf</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:22121 +msgid "Common Problems" +msgstr "常見問題" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:22123 +msgid "<primary><acronym>ACPI</acronym></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22127 +msgid "" +"<acronym>ACPI</acronym> is present in all modern computers that conform to " +"the ia32 (x86), ia64 (Itanium), and amd64 (<acronym>AMD</acronym>) " +"architectures. The full standard has many features including <acronym>CPU</" +"acronym> performance management, power planes control, thermal zones, " +"various battery systems, embedded controllers, and bus enumeration. Most " +"systems implement less than the full standard. For instance, a desktop " +"system usually only implements bus enumeration while a laptop might have " +"cooling and battery management support as well. Laptops also have suspend " +"and resume, with their own associated complexity." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22139 +msgid "" +"An <acronym>ACPI</acronym>-compliant system has various components. The " +"<acronym>BIOS</acronym> and chipset vendors provide various fixed tables, " +"such as <acronym>FADT</acronym>, in memory that specify things like the " +"<acronym>APIC</acronym> map (used for <acronym>SMP</acronym>), config " +"registers, and simple configuration values. Additionally, a bytecode table, " +"the Differentiated System Description Table <acronym>DSDT</acronym>, " +"specifies a tree-like name space of devices and methods." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22149 +msgid "" +"The <acronym>ACPI</acronym> driver must parse the fixed tables, implement an " +"interpreter for the bytecode, and modify device drivers and the kernel to " +"accept information from the <acronym>ACPI</acronym> subsystem. For FreeBSD, " +"<trademark class=\"registered\">Intel</trademark> has provided an " +"interpreter (<acronym>ACPI-CA</acronym>) that is shared with <trademark " +"class=\"registered\">Linux</trademark> and NetBSD. The path to the " +"<acronym>ACPI-CA</acronym> source code is <filename>src/sys/contrib/dev/" +"acpica</filename>. The glue code that allows <acronym>ACPI-CA</acronym> to " +"work on FreeBSD is in <filename>src/sys/dev/acpica/Osd</filename>. Finally, " +"drivers that implement various <acronym>ACPI</acronym> devices are found in " +"<filename>src/sys/dev/acpica</filename>." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:22162 book.translate.xml:22490 book.translate.xml:22545 +msgid "<primary>ACPI</primary> <secondary>problems</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22167 +msgid "" +"For <acronym>ACPI</acronym> to work correctly, all the parts have to work " +"correctly. Here are some common problems, in order of frequency of " +"appearance, and some possible workarounds or fixes. If a fix does not " +"resolve the issue, refer to <xref linkend=\"ACPI-submitdebug\"/> for " +"instructions on how to submit a bug report." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:22175 +msgid "Mouse Issues" +msgstr "滑鼠問題" + +#. (itstool) path: sect3/para +#: book.translate.xml:22177 +msgid "" +"In some cases, resuming from a suspend operation will cause the mouse to " +"fail. A known work around is to add <literal>hint.psm.0.flags=\"0x3000\"</" +"literal> to <filename>/boot/loader.conf</filename>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:22184 +msgid "Suspend/Resume" +msgstr "待機/喚醒" + +#. (itstool) path: sect3/para +#: book.translate.xml:22186 +msgid "" +"<acronym>ACPI</acronym> has three suspend to <acronym>RAM</acronym> " +"(<acronym>STR</acronym>) states, <literal>S1</literal>-<literal>S3</" +"literal>, and one suspend to disk state (<acronym>STD</acronym>), called " +"<literal>S4</literal>. <acronym>STD</acronym> can be implemented in two " +"separate ways. The <literal>S4</literal><acronym>BIOS</acronym> is a " +"<acronym>BIOS</acronym>-assisted suspend to disk and <literal>S4</" +"literal><acronym>OS</acronym> is implemented entirely by the operating " +"system. The normal state the system is in when plugged in but not powered up " +"is <quote>soft off</quote> (<literal>S5</literal>)." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22199 +msgid "" +"Use <command>sysctl hw.acpi</command> to check for the suspend-related " +"items. These example results are from a Thinkpad:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:22203 +#, no-wrap +msgid "" +"hw.acpi.supported_sleep_state: S3 S4 S5\n" +"hw.acpi.s4bios: 0" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22206 +msgid "" +"Use <command>acpiconf -s</command> to test <literal>S3</literal>, " +"<literal>S4</literal>, and <literal>S5</literal>. An <option>s4bios</option> " +"of one (<literal>1</literal>) indicates <literal>S4</literal><acronym>BIOS</" +"acronym> support instead of <literal>S4</literal> operating system support." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22213 +msgid "" +"When testing suspend/resume, start with <literal>S1</literal>, if supported. " +"This state is most likely to work since it does not require much driver " +"support. No one has implemented <literal>S2</literal>, which is similar to " +"<literal>S1</literal>. Next, try <literal>S3</literal>. This is the deepest " +"<acronym>STR</acronym> state and requires a lot of driver support to " +"properly reinitialize the hardware." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22222 +msgid "" +"A common problem with suspend/resume is that many device drivers do not " +"save, restore, or reinitialize their firmware, registers, or device memory " +"properly. As a first attempt at debugging the problem, try:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:22227 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>sysctl debug.bootverbose=1</userinput>\n" +"<prompt>#</prompt> <userinput>sysctl debug.acpi.suspend_bounce=1</userinput>\n" +"<prompt>#</prompt> <userinput>acpiconf -s 3</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22231 +msgid "" +"This test emulates the suspend/resume cycle of all device drivers without " +"actually going into <literal>S3</literal> state. In some cases, problems " +"such as losing firmware state, device watchdog time out, and retrying " +"forever, can be captured with this method. Note that the system will not " +"really enter <literal>S3</literal> state, which means devices may not lose " +"power, and many will work fine even if suspend/resume methods are totally " +"missing, unlike real <literal>S3</literal> state." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22241 +msgid "" +"Harder cases require additional hardware, such as a serial port and cable " +"for debugging through a serial console, a Firewire port and cable for using " +"<citerefentry><refentrytitle>dcons</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>, and kernel debugging skills." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22246 +msgid "" +"To help isolate the problem, unload as many drivers as possible. If it " +"works, narrow down which driver is the problem by loading drivers until it " +"fails again. Typically, binary drivers like <filename>nvidia.ko</filename>, " +"display drivers, and <acronym>USB</acronym> will have the most problems " +"while Ethernet interfaces usually work fine. If drivers can be properly " +"loaded and unloaded, automate this by putting the appropriate commands in " +"<filename>/etc/rc.suspend</filename> and <filename>/etc/rc.resume</" +"filename>. Try setting <option>hw.acpi.reset_video</option> to <literal>1</" +"literal> if the display is messed up after resume. Try setting longer or " +"shorter values for <option>hw.acpi.sleep_delay</option> to see if that helps." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22262 +msgid "" +"Try loading a recent <trademark class=\"registered\">Linux</trademark> " +"distribution to see if suspend/resume works on the same hardware. If it " +"works on <trademark class=\"registered\">Linux</trademark>, it is likely a " +"FreeBSD driver problem. Narrowing down which driver causes the problem will " +"assist developers in fixing the problem. Since the <acronym>ACPI</acronym> " +"maintainers rarely maintain other drivers, such as sound or <acronym>ATA</" +"acronym>, any driver problems should also be posted to the <link xlink:href=" +"\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-current\">freebsd-" +"current</link> list and mailed to the driver maintainer. Advanced users can " +"include debugging <citerefentry><refentrytitle>printf</" +"refentrytitle><manvolnum>3</manvolnum></citerefentry>s in a problematic " +"driver to track down where in its resume function it hangs." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22274 +msgid "" +"Finally, try disabling <acronym>ACPI</acronym> and enabling <acronym>APM</" +"acronym> instead. If suspend/resume works with <acronym>APM</acronym>, stick " +"with <acronym>APM</acronym>, especially on older hardware (pre-2000). It " +"took vendors a while to get <acronym>ACPI</acronym> support correct and " +"older hardware is more likely to have <acronym>BIOS</acronym> problems with " +"<acronym>ACPI</acronym>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:22285 +msgid "System Hangs" +msgstr "系統無回應" + +#. (itstool) path: sect3/para +#: book.translate.xml:22287 +msgid "" +"Most system hangs are a result of lost interrupts or an interrupt storm. " +"Chipsets may have problems based on boot, how the <acronym>BIOS</acronym> " +"configures interrupts before correctness of the <acronym>APIC</acronym> " +"(<acronym>MADT</acronym>) table, and routing of the System Control Interrupt " +"(<acronym>SCI</acronym>)." +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:22294 +msgid "<primary>interrupt storms</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22298 +msgid "" +"Interrupt storms can be distinguished from lost interrupts by checking the " +"output of <command>vmstat -i</command> and looking at the line that has " +"<literal>acpi0</literal>. If the counter is increasing at more than a couple " +"per second, there is an interrupt storm. If the system appears hung, try " +"breaking to <acronym>DDB</acronym> (<keycombo action=\"simul\"> " +"<keycap>CTRL</keycap> <keycap>ALT</keycap> <keycap>ESC</keycap> </keycombo> " +"on console) and type <literal>show interrupts</literal>." +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:22311 +msgid "<primary>APIC</primary> <secondary>disabling</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22316 +msgid "" +"When dealing with interrupt problems, try disabling <acronym>APIC</acronym> " +"support with <literal>hint.apic.0.disabled=\"1\"</literal> in <filename>/" +"boot/loader.conf</filename>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:22323 +msgid "Panics" +msgstr "當機" + +#. (itstool) path: sect3/para +#: book.translate.xml:22325 +msgid "" +"Panics are relatively rare for <acronym>ACPI</acronym> and are the top " +"priority to be fixed. The first step is to isolate the steps to reproduce " +"the panic, if possible, and get a backtrace. Follow the advice for enabling " +"<literal>options DDB</literal> and setting up a serial console in <xref " +"linkend=\"serialconsole-ddb\"/> or setting up a dump partition. To get a " +"backtrace in <acronym>DDB</acronym>, use <literal>tr</literal>. When " +"handwriting the backtrace, get at least the last five and the top five lines " +"in the trace." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22336 +msgid "" +"Then, try to isolate the problem by booting with <acronym>ACPI</acronym> " +"disabled. If that works, isolate the <acronym>ACPI</acronym> subsystem by " +"using various values of <option>debug.acpi.disable</option>. See " +"<citerefentry><refentrytitle>acpi</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> for some examples." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:22344 +msgid "System Powers Up After Suspend or Shutdown" +msgstr "系統在待機或關機後仍開機" + +#. (itstool) path: sect3/para +#: book.translate.xml:22346 +msgid "" +"First, try setting <literal>hw.acpi.disable_on_poweroff=\"0\"</literal> in " +"<filename>/boot/loader.conf</filename>. This keeps <acronym>ACPI</acronym> " +"from disabling various events during the shutdown process. Some systems need " +"this value set to <literal>1</literal> (the default) for the same reason. " +"This usually fixes the problem of a system powering up spontaneously after a " +"suspend or poweroff." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:22357 +msgid "BIOS Contains Buggy Bytecode" +msgstr "BIOS 含有有問題的 Bytecode" + +#. (itstool) path: sect3/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:22359 book.translate.xml:22390 +msgid "" +"<primary><acronym>ACPI</acronym></primary> <secondary><acronym>ASL</" +"acronym></secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22364 +msgid "" +"Some <acronym>BIOS</acronym> vendors provide incorrect or buggy bytecode. " +"This is usually manifested by kernel console messages like this:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:22368 +#, no-wrap +msgid "" +"ACPI-1287: *** Error: Method execution failed [\\\\_SB_.PCI0.LPC0.FIGD._STA] \\\\\n" +"(Node 0xc3f6d160), AE_NOT_FOUND" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:22371 +msgid "" +"Often, these problems may be resolved by updating the <acronym>BIOS</" +"acronym> to the latest revision. Most console messages are harmless, but if " +"there are other problems, like the battery status is not working, these " +"messages are a good place to start looking for problems." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:22381 +msgid "Overriding the Default <acronym>AML</acronym>" +msgstr "覆蓋預設的 <acronym>AML</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:22383 +msgid "" +"The <acronym>BIOS</acronym> bytecode, known as <acronym>ACPI</acronym> " +"Machine Language (<acronym>AML</acronym>), is compiled from a source " +"language called <acronym>ACPI</acronym> Source Language (<acronym>ASL</" +"acronym>). The <acronym>AML</acronym> is found in the table known as the " +"Differentiated System Description Table (<acronym>DSDT</acronym>)." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22395 +msgid "" +"The goal of FreeBSD is for everyone to have working <acronym>ACPI</acronym> " +"without any user intervention. Workarounds are still being developed for " +"common mistakes made by <acronym>BIOS</acronym> vendors. The <trademark " +"class=\"registered\">Microsoft</trademark> interpreter (<filename>acpi.sys</" +"filename> and <filename>acpiec.sys</filename>) does not strictly check for " +"adherence to the standard, and thus many <acronym>BIOS</acronym> vendors who " +"only test <acronym>ACPI</acronym> under <trademark class=\"registered" +"\">Windows</trademark> never fix their <acronym>ASL</acronym>. FreeBSD " +"developers continue to identify and document which non-standard behavior is " +"allowed by <trademark class=\"registered\">Microsoft</trademark>'s " +"interpreter and replicate it so that FreeBSD can work without forcing users " +"to fix the <acronym>ASL</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22410 +msgid "" +"To help identify buggy behavior and possibly fix it manually, a copy can be " +"made of the system's <acronym>ASL</acronym>. To copy the system's " +"<acronym>ASL</acronym> to a specified file name, use <command>acpidump</" +"command> with <option>-t</option>, to show the contents of the fixed tables, " +"and <option>-d</option>, to disassemble the <acronym>AML</acronym>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:22418 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>acpidump -td > <replaceable>my.asl</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22420 +msgid "" +"Some <acronym>AML</acronym> versions assume the user is running <trademark " +"class=\"registered\">Windows</trademark>. To override this, set <literal>hw." +"acpi.osname=<replaceable>\"Windows 2009\"</replaceable></literal> in " +"<filename>/boot/loader.conf</filename>, using the most recent <trademark " +"class=\"registered\">Windows</trademark> version listed in the <acronym>ASL</" +"acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22427 +msgid "" +"Other workarounds may require <filename>my.asl</filename> to be customized. " +"If this file is edited, compile the new <acronym>ASL</acronym> using the " +"following command. Warnings can usually be ignored, but errors are bugs that " +"will usually prevent <acronym>ACPI</acronym> from working correctly." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:22433 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>iasl -f <replaceable>my.asl</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22435 +msgid "" +"Including <option>-f</option> forces creation of the <acronym>AML</acronym>, " +"even if there are errors during compilation. Some errors, such as missing " +"return statements, are automatically worked around by the FreeBSD " +"interpreter." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22441 +msgid "" +"The default output filename for <command>iasl</command> is <filename>DSDT." +"aml</filename>. Load this file instead of the <acronym>BIOS</acronym>'s " +"buggy copy, which is still present in flash memory, by editing <filename>/" +"boot/loader.conf</filename> as follows:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:22447 +#, no-wrap +msgid "" +"acpi_dsdt_load=\"YES\"\n" +"acpi_dsdt_name=\"/boot/DSDT.aml\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22450 +msgid "" +"Be sure to copy <filename>DSDT.aml</filename> to <filename>/boot</filename>, " +"then reboot the system. If this fixes the problem, send a " +"<citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> of the old and new <acronym>ASL</acronym> to <link xlink:href=" +"\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-acpi\">freebsd-acpi</" +"link> so that developers can work around the buggy behavior in " +"<filename>acpica</filename>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:22460 +msgid "Getting and Submitting Debugging Info" +msgstr "取得與回報除錯資訊" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:22463 +msgid "" +"<personname> <firstname>Nate</firstname> <surname>Lawson</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:22473 +msgid "" +"<personname> <firstname>Peter</firstname> <surname>Schultz</surname> </" +"personname> <contrib>With contributions from </contrib>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:22495 +msgid "<primary>ACPI</primary> <secondary>debugging</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22500 +msgid "" +"The <acronym>ACPI</acronym> driver has a flexible debugging facility. A set " +"of subsystems and the level of verbosity can be specified. The subsystems to " +"debug are specified as layers and are broken down into components " +"(<literal>ACPI_ALL_COMPONENTS</literal>) and <acronym>ACPI</acronym> " +"hardware support (<literal>ACPI_ALL_DRIVERS</literal>). The verbosity of " +"debugging output is specified as the level and ranges from just report " +"errors (<literal>ACPI_LV_ERROR</literal>) to everything " +"(<literal>ACPI_LV_VERBOSE</literal>). The level is a bitmask so multiple " +"options can be set at once, separated by spaces. In practice, a serial " +"console should be used to log the output so it is not lost as the console " +"message buffer flushes. A full list of the individual layers and levels is " +"found in <citerefentry><refentrytitle>acpi</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22516 +msgid "" +"Debugging output is not enabled by default. To enable it, add " +"<literal>options ACPI_DEBUG</literal> to the custom kernel configuration " +"file if <acronym>ACPI</acronym> is compiled into the kernel. Add " +"<literal>ACPI_DEBUG=1</literal> to <filename>/etc/make.conf</filename> to " +"enable it globally. If a module is used instead of a custom kernel, " +"recompile just the <filename>acpi.ko</filename> module as follows:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:22524 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cd /sys/modules/acpi/acpi && make clean && make ACPI_DEBUG=1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22526 +msgid "" +"Copy the compiled <filename>acpi.ko</filename> to <filename>/boot/kernel</" +"filename> and add the desired level and layer to <filename>/boot/loader." +"conf</filename>. The entries in this example enable debug messages for all " +"<acronym>ACPI</acronym> components and hardware drivers and output error " +"messages at the least verbose level:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:22533 +#, no-wrap +msgid "" +"debug.acpi.layer=\"ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS\"\n" +"debug.acpi.level=\"ACPI_LV_ERROR\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22536 +msgid "" +"If the required information is triggered by a specific event, such as a " +"suspend and then resume, do not modify <filename>/boot/loader.conf</" +"filename>. Instead, use <command>sysctl</command> to specify the layer and " +"level after booting and preparing the system for the specific event. The " +"variables which can be set using <command>sysctl</command> are named the " +"same as the tunables in <filename>/boot/loader.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22550 +msgid "" +"Once the debugging information is gathered, it can be sent to <link xlink:" +"href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-acpi\">freebsd-" +"acpi</link> so that it can be used by the FreeBSD <acronym>ACPI</acronym> " +"maintainers to identify the root cause of the problem and to develop a " +"solution." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:22556 +msgid "" +"Before submitting debugging information to this mailing list, ensure the " +"latest <acronym>BIOS</acronym> version is installed and, if available, the " +"embedded controller firmware version." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22562 +msgid "When submitting a problem report, include the following information:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:22567 +msgid "" +"Description of the buggy behavior, including system type, model, and " +"anything that causes the bug to appear. Note as accurately as possible when " +"the bug began occurring if it is new." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:22574 +msgid "" +"The output of <command>dmesg</command> after running <command>boot -v</" +"command>, including any error messages generated by the bug." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:22580 +msgid "" +"The <command>dmesg</command> output from <command>boot -v</command> with " +"<acronym>ACPI</acronym> disabled, if disabling <acronym>ACPI</acronym> helps " +"to fix the problem." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:22587 +msgid "" +"Output from <command>sysctl hw.acpi</command>. This lists which features the " +"system offers." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:22592 +msgid "" +"The <acronym>URL</acronym> to a pasted version of the system's <acronym>ASL</" +"acronym>. Do <emphasis>not</emphasis> send the <acronym>ASL</acronym> " +"directly to the list as it can be very large. Generate a copy of the " +"<acronym>ASL</acronym> by running this command:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:22599 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>acpidump -dt > <replaceable>name</replaceable>-<replaceable>system</replaceable>.asl</userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:22601 +msgid "" +"Substitute the login name for <replaceable>name</replaceable> and " +"manufacturer/model for <replaceable>system</replaceable>. For example, use " +"<filename>njl-FooCo6000.asl</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22608 +msgid "" +"Most FreeBSD developers watch the <link xlink:href=\"http://lists.FreeBSD." +"org/mailman/listinfo/freebsd-current\">FreeBSD-CURRENT mailing list</link>, " +"but one should submit problems to <link xlink:href=\"http://lists.FreeBSD." +"org/mailman/listinfo/freebsd-acpi\">freebsd-acpi</link> to be sure it is " +"seen. Be patient when waiting for a response. If the bug is not immediately " +"apparent, submit a <acronym>PR</acronym> using " +"<citerefentry><refentrytitle>send-pr</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>. When entering a <acronym>PR</acronym>, include " +"the same information as requested above. This helps developers to track the " +"problem and resolve it. Do not send a <acronym>PR</acronym> without emailing " +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-acpi" +"\">freebsd-acpi</link> first as it is likely that the problem has been " +"reported before." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22622 +msgid "" +"More information about <acronym>ACPI</acronym> may be found in the following " +"locations:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:22627 +msgid "" +"The FreeBSD <acronym>ACPI</acronym> Mailing List Archives (<uri xlink:href=" +"\"http://lists.freebsd.org/pipermail/freebsd-acpi/\">http://lists.freebsd." +"org/pipermail/freebsd-acpi/</uri>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:22632 +msgid "" +"The <acronym>ACPI</acronym> 2.0 Specification (<uri xlink:href=\"http://acpi." +"info/spec.htm\">http://acpi.info/spec.htm</uri>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:22636 +msgid "" +"<citerefentry><refentrytitle>acpi</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>, <citerefentry><refentrytitle>acpi_thermal</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>acpidump</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, <citerefentry><refentrytitle>iasl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, and " +"<citerefentry><refentrytitle>acpidb</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: chapter/title +#: book.translate.xml:22653 +msgid "The FreeBSD Booting Process" +msgstr "FreeBSD 開機程序" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:22658 +msgid "<primary>booting</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:22659 +msgid "<primary>bootstrap</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22661 +msgid "" +"The process of starting a computer and loading the operating system is " +"referred to as <quote>the bootstrap process</quote>, or <quote>booting</" +"quote>. FreeBSD's boot process provides a great deal of flexibility in " +"customizing what happens when the system starts, including the ability to " +"select from different operating systems installed on the same computer, " +"different versions of the same operating system, or a different installed " +"kernel." +msgstr "" +"從開啟電腦到載入作業系統的這段流程稱為<quote>開機程序</quote> (Bootstrap " +"process) 或<quote>開機</quote> (booting)。FreeBSD 的開機程序提供大量的客製化" +"彈性,包含可選擇安裝在同電腦的其他的作業系統、不同版本的作業系統或不同核心的" +"作業系統的功能。" + +#. (itstool) path: sect1/para +#: book.translate.xml:22670 +msgid "" +"This chapter details the configuration options that can be set. It " +"demonstrates how to customize the FreeBSD boot process, including everything " +"that happens until the FreeBSD kernel has started, probed for devices, and " +"started <citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. This occurs when the text color of the boot " +"messages changes from bright white to grey." +msgstr "" +"本章會詳細說明可以設定的選項。示範如何自訂 FreeBSD 開機流程,包含其中所有會發" +"生的事,直到啟動 FreeBSD 核心、偵測裝置及啟動 " +"<citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>。這些事會發生在開機訊息的文字顏色會從亮白變成灰色之間。" + +#. (itstool) path: sect1/para +#: book.translate.xml:22677 +msgid "After reading this chapter, you will recognize:" +msgstr "在閱讀本章之後,您會了解:" + +#. (itstool) path: listitem/para +#: book.translate.xml:22681 +msgid "The components of the FreeBSD bootstrap system and how they interact." +msgstr "FreeBSD 開機系統的元件以及它們如何互動。" + +#. (itstool) path: listitem/para +#: book.translate.xml:22686 +msgid "" +"The options that can be passed to the components in the FreeBSD bootstrap in " +"order to control the boot process." +msgstr "FreeBSD 開機程式中各元件可使用的選項,用來控制開機程序。" + +#. (itstool) path: listitem/para +#: book.translate.xml:22691 +msgid "How to configure a customized boot splash screen." +msgstr "如何設定自訂的開機啟動畫面 (Splash screen)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:22695 +msgid "The basics of setting device hints." +msgstr "設定 Device Hints 的基礎。" + +#. (itstool) path: listitem/para +#: book.translate.xml:22699 +msgid "" +"How to boot into single- and multi-user mode and how to properly shut down a " +"FreeBSD system." +msgstr "如何開機進入單人及多人模式以及如何正確關閉 FreeBSD 系統。" + +#. (itstool) path: note/para +#: book.translate.xml:22705 +msgid "" +"This chapter only describes the boot process for FreeBSD running on x86 and " +"amd64 systems." +msgstr "本章僅說明 FreeBSD 在 x86 及 amd64 系統上執行的開機流程。" + +#. (itstool) path: sect1/title +#: book.translate.xml:22711 +msgid "FreeBSD Boot Process" +msgstr "FreeBSD 開機程序" + +#. (itstool) path: sect1/para +#: book.translate.xml:22713 +msgid "" +"Turning on a computer and starting the operating system poses an interesting " +"dilemma. By definition, the computer does not know how to do anything until " +"the operating system is started. This includes running programs from the " +"disk. If the computer can not run a program from the disk without the " +"operating system, and the operating system programs are on the disk, how is " +"the operating system started?" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22721 +msgid "" +"This problem parallels one in the book <citetitle>The Adventures of Baron " +"Munchausen</citetitle>. A character had fallen part way down a manhole, and " +"pulled himself out by grabbing his bootstraps and lifting. In the early days " +"of computing, the term <firstterm>bootstrap</firstterm> was applied to the " +"mechanism used to load the operating system. It has since become shortened " +"to <quote>booting</quote>." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:22729 +msgid "<primary><acronym>BIOS</acronym></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:22731 +msgid "" +"<primary>Basic Input/Output System</primary><see><acronym>BIOS</acronym></" +"see>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22734 +msgid "" +"On x86 hardware, the Basic Input/Output System (<acronym>BIOS</acronym>) is " +"responsible for loading the operating system. The <acronym>BIOS</acronym> " +"looks on the hard disk for the Master Boot Record (<acronym>MBR</acronym>), " +"which must be located in a specific place on the disk. The <acronym>BIOS</" +"acronym> has enough knowledge to load and run the <acronym>MBR</acronym>, " +"and assumes that the <acronym>MBR</acronym> can then carry out the rest of " +"the tasks involved in loading the operating system, possibly with the help " +"of the <acronym>BIOS</acronym>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:22746 +msgid "" +"FreeBSD provides for booting from both the older <acronym>MBR</acronym> " +"standard, and the newer GUID Partition Table (<acronym>GPT</acronym>). " +"<acronym>GPT</acronym> partitioning is often found on computers with the " +"Unified Extensible Firmware Interface (<acronym>UEFI</acronym>). However, " +"FreeBSD can boot from <acronym>GPT</acronym> partitions even on machines " +"with only a legacy <acronym>BIOS</acronym> with " +"<citerefentry><refentrytitle>gptboot</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. Work is under way to provide direct " +"<acronym>UEFI</acronym> booting." +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:22757 book.translate.xml:22813 +msgid "<primary>Master Boot Record (<acronym>MBR</acronym>)</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:22760 book.translate.xml:22811 +msgid "<primary>Boot Manager</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:22762 +msgid "<primary>Boot Loader</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22764 +msgid "" +"The code within the <acronym>MBR</acronym> is typically referred to as a " +"<emphasis>boot manager</emphasis>, especially when it interacts with the " +"user. The boot manager usually has more code in the first track of the disk " +"or within the file system. Examples of boot managers include the standard " +"FreeBSD boot manager <application>boot0</application>, also called " +"<application>Boot Easy</application>, and <application>Grub</application>, " +"which is used by many <trademark class=\"registered\">Linux</trademark> " +"distributions." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22774 +msgid "" +"If only one operating system is installed, the <acronym>MBR</acronym> " +"searches for the first bootable (active) slice on the disk, and then runs " +"the code on that slice to load the remainder of the operating system. When " +"multiple operating systems are present, a different boot manager can be " +"installed to display a list of operating systems so the user can select one " +"to boot." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22782 +msgid "" +"The remainder of the FreeBSD bootstrap system is divided into three stages. " +"The first stage knows just enough to get the computer into a specific state " +"and run the second stage. The second stage can do a little bit more, before " +"running the third stage. The third stage finishes the task of loading the " +"operating system. The work is split into three stages because the " +"<acronym>MBR</acronym> puts limits on the size of the programs that can be " +"run at stages one and two. Chaining the tasks together allows FreeBSD to " +"provide a more flexible loader." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:22793 +msgid "<primary>kernel</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:22794 book.translate.xml:23120 +msgid "" +"<primary><citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry></primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22796 +msgid "" +"The kernel is then started and begins to probe for devices and initialize " +"them for use. Once the kernel boot process is finished, the kernel passes " +"control to the user process <citerefentry><refentrytitle>init</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, which makes sure the " +"disks are in a usable state, starts the user-level resource configuration " +"which mounts file systems, sets up network cards to communicate on the " +"network, and starts the processes which have been configured to run at " +"startup." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:22805 +msgid "" +"This section describes these stages in more detail and demonstrates how to " +"interact with the FreeBSD boot process." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:22809 +msgid "The Boot Manager" +msgstr "開機管理程式" + +#. (itstool) path: sect2/para +#: book.translate.xml:22816 +msgid "" +"The boot manager code in the <acronym>MBR</acronym> is sometimes referred to " +"as <emphasis>stage zero</emphasis> of the boot process. By default, FreeBSD " +"uses the <application>boot0</application> boot manager." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22821 +msgid "" +"The <acronym>MBR</acronym> installed by the FreeBSD installer is based on " +"<filename>/boot/boot0</filename>. The size and capability of " +"<application>boot0</application> is restricted to 446 bytes due to the slice " +"table and <literal>0x55AA</literal> identifier at the end of the " +"<acronym>MBR</acronym>. If <application>boot0</application> and multiple " +"operating systems are installed, a message similar to this example will be " +"displayed at boot time:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:22831 +msgid "<filename>boot0</filename> Screenshot" +msgstr "<filename>boot0</filename> 螢幕截圖" + +#. (itstool) path: example/screen +#: book.translate.xml:22833 +#, no-wrap +msgid "" +"F1 Win\n" +"F2 FreeBSD\n" +"\n" +"Default: F2" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22839 +msgid "" +"Other operating systems will overwrite an existing <acronym>MBR</acronym> if " +"they are installed after FreeBSD. If this happens, or to replace the " +"existing <acronym>MBR</acronym> with the FreeBSD <acronym>MBR</acronym>, use " +"the following command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:22845 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>fdisk -B -b /boot/boot0 <replaceable>device</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22847 +msgid "" +"where <replaceable>device</replaceable> is the boot disk, such as " +"<filename>ad0</filename> for the first <acronym>IDE</acronym> disk, " +"<filename>ad2</filename> for the first <acronym>IDE</acronym> disk on a " +"second <acronym>IDE</acronym> controller, or <filename>da0</filename> for " +"the first <acronym>SCSI</acronym> disk. To create a custom configuration of " +"the <acronym>MBR</acronym>, refer to <citerefentry><refentrytitle>boot0cfg</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:22858 +msgid "Stage One and Stage Two" +msgstr "階段一與階段二" + +#. (itstool) path: sect2/para +#: book.translate.xml:22860 +msgid "" +"Conceptually, the first and second stages are part of the same program on " +"the same area of the disk. Because of space constraints, they have been " +"split into two, but are always installed together. They are copied from the " +"combined <filename>/boot/boot</filename> by the FreeBSD installer or " +"<command>bsdlabel</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22867 +msgid "" +"These two stages are located outside file systems, in the first track of the " +"boot slice, starting with the first sector. This is where " +"<application>boot0</application>, or any other boot manager, expects to find " +"a program to run which will continue the boot process." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22873 +msgid "" +"The first stage, <filename>boot1</filename>, is very simple, since it can " +"only be 512 bytes in size. It knows just enough about the FreeBSD " +"<firstterm>bsdlabel</firstterm>, which stores information about the slice, " +"to find and execute <filename>boot2</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22879 +msgid "" +"Stage two, <filename>boot2</filename>, is slightly more sophisticated, and " +"understands the FreeBSD file system enough to find files. It can provide a " +"simple interface to choose the kernel or loader to run. It runs " +"<application>loader</application>, which is much more sophisticated and " +"provides a boot configuration file. If the boot process is interrupted at " +"stage two, the following interactive screen is displayed:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:22889 +msgid "<filename>boot2</filename> Screenshot" +msgstr "<filename>boot2</filename> 螢幕截圖" + +#. (itstool) path: example/screen +#. (itstool) path: step/screen +#: book.translate.xml:22891 book.translate.xml:48478 +#, no-wrap +msgid "" +">> FreeBSD/i386 BOOT\n" +"Default: 0:ad(0,a)/boot/loader\n" +"boot:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22896 +msgid "" +"To replace the installed <filename>boot1</filename> and <filename>boot2</" +"filename>, use <command>bsdlabel</command>, where <replaceable>diskslice</" +"replaceable> is the disk and slice to boot from, such as <filename>ad0s1</" +"filename> for the first slice on the first <acronym>IDE</acronym> disk:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:22902 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>bsdlabel -B <replaceable>diskslice</replaceable></userinput>" +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:22905 +msgid "" +"If just the disk name is used, such as <filename>ad0</filename>, " +"<command>bsdlabel</command> will create the disk in <quote>dangerously " +"dedicated mode</quote>, without slices. This is probably not the desired " +"action, so double check the <replaceable>diskslice</replaceable> before " +"pressing <keycap>Return</keycap>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:22916 +msgid "Stage Three" +msgstr "階段三" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:22918 +msgid "<primary>boot-loader</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22920 +msgid "" +"The <application>loader</application> is the final stage of the three-stage " +"bootstrap process. It is located on the file system, usually as <filename>/" +"boot/loader</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22925 +msgid "" +"The <application>loader</application> is intended as an interactive method " +"for configuration, using a built-in command set, backed up by a more " +"powerful interpreter which has a more complex command set." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22930 +msgid "" +"During initialization, <application>loader</application> will probe for a " +"console and for disks, and figure out which disk it is booting from. It will " +"set variables accordingly, and an interpreter is started where user commands " +"can be passed from a script or interactively." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:22936 +msgid "<primary>loader</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:22937 +msgid "<primary>loader configuration</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22939 +msgid "" +"The <application>loader</application> will then read <filename>/boot/loader." +"rc</filename>, which by default reads in <filename>/boot/defaults/loader." +"conf</filename> which sets reasonable defaults for variables and reads " +"<filename>/boot/loader.conf</filename> for local changes to those variables. " +"<filename>loader.rc</filename> then acts on these variables, loading " +"whichever modules and kernel are selected." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:22948 +msgid "" +"Finally, by default, <application>loader</application> issues a 10 second " +"wait for key presses, and boots the kernel if it is not interrupted. If " +"interrupted, the user is presented with a prompt which understands the " +"command set, where the user may adjust variables, unload all modules, load " +"modules, and then finally boot or reboot. <xref linkend=\"boot-loader-" +"commands\"/> lists the most commonly used <application>loader</application> " +"commands. For a complete discussion of all available commands, refer to " +"<citerefentry><refentrytitle>loader</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:22959 +msgid "Loader Built-In Commands" +msgstr "載入程式內建指令" + +#. (itstool) path: row/entry +#: book.translate.xml:22971 +msgid "autoboot <replaceable>seconds</replaceable>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:22973 +msgid "" +"Proceeds to boot the kernel if not interrupted within the time span given, " +"in seconds. It displays a countdown, and the default time span is 10 seconds." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:22980 +msgid "" +"boot <optional><replaceable>-options</replaceable></optional> " +"<optional><replaceable>kernelname</replaceable></optional>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:22983 +msgid "" +"Immediately proceeds to boot the kernel, with any specified options or " +"kernel name. Providing a kernel name on the command-line is only applicable " +"after an <command>unload</command> has been issued. Otherwise, the " +"previously-loaded kernel will be used. If <emphasis>kernelname</emphasis> is " +"not qualified it will be searched under <emphasis>/boot/kernel</emphasis> " +"and <emphasis>/boot/modules</emphasis>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:22995 +msgid "boot-conf" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:22996 +msgid "" +"Goes through the same automatic configuration of modules based on specified " +"variables, most commonly <envar>kernel</envar>. This only makes sense if " +"<command>unload</command> is used first, before changing some variables." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23004 +msgid "help <optional><replaceable>topic</replaceable></optional>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23006 +msgid "" +"Shows help messages read from <filename>/boot/loader.help</filename>. If the " +"topic given is <literal>index</literal>, the list of available topics is " +"displayed." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23013 +msgid "include <replaceable>filename</replaceable> …" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23015 +msgid "" +"Reads the specified file and interprets it line by line. An error " +"immediately stops the <command>include</command>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23021 +msgid "" +"load <optional>-t <replaceable>type</replaceable></optional> " +"<replaceable>filename</replaceable>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23024 +msgid "" +"Loads the kernel, kernel module, or file of the type given, with the " +"specified filename. Any arguments after <replaceable>filename</replaceable> " +"are passed to the file. If <emphasis>filename</emphasis> is not qualified it " +"will be searched under <emphasis>/boot/kernel</emphasis> and <emphasis>/boot/" +"modules</emphasis>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23035 +msgid "" +"ls <optional>-l</optional> <optional><replaceable>path</replaceable></" +"optional>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23037 +msgid "" +"Displays a listing of files in the given path, or the root directory, if the " +"path is not specified. If <option>-l</option> is specified, file sizes will " +"also be shown." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23044 +msgid "lsdev <optional>-v</optional>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23045 +msgid "" +"Lists all of the devices from which it may be possible to load modules. If " +"<option>-v</option> is specified, more details are printed." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23051 +msgid "lsmod <optional>-v</optional>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23052 +msgid "" +"Displays loaded modules. If <option>-v</option> is specified, more details " +"are shown." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23057 +msgid "more <replaceable>filename</replaceable>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23058 +msgid "" +"Displays the files specified, with a pause at each <varname>LINES</varname> " +"displayed." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23063 +msgid "reboot" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23064 +msgid "Immediately reboots the system." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23068 +msgid "" +"set <replaceable>variable</replaceable>, set <replaceable>variable</" +"replaceable>=<replaceable>value</replaceable>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23070 +msgid "Sets the specified environment variables." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23074 +msgid "unload" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23075 +msgid "Removes all loaded modules." +msgstr "" + +#. (itstool) path: para/indexterm +#. (itstool) path: sect3/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:23083 book.translate.xml:23193 book.translate.xml:45308 +msgid "<primary>single-user mode</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23081 +msgid "" +"Here are some practical examples of loader usage. To boot the usual kernel " +"in single-user mode <_:indexterm-1/>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23086 +#, no-wrap +msgid "<userinput>boot -s</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23088 +msgid "" +"To unload the usual kernel and modules and then load the previous or " +"another, specified kernel:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23091 +#, no-wrap +msgid "" +"<userinput>unload</userinput>\n" +"<userinput>load <replaceable>kernel.old</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23094 +msgid "" +"Use <filename>kernel.GENERIC</filename> to refer to the default kernel that " +"comes with an installation, or <filename>kernel.old</filename>, to refer to " +"the previously installed kernel before a system upgrade or before " +"configuring a custom kernel." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23100 +msgid "Use the following to load the usual modules with another kernel:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23103 +#, no-wrap +msgid "" +"<userinput>unload</userinput>\n" +"<userinput>set kernel=\"<replaceable>kernel.old</replaceable>\"</userinput>\n" +"<userinput>boot-conf</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23107 +msgid "To load an automated kernel configuration script:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23109 +#, no-wrap +msgid "<userinput>load -t userconfig_script <replaceable>/boot/kernel.conf</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:23111 +msgid "<primary>kernel</primary> <secondary>boot interaction</secondary>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:23118 +msgid "Last Stage" +msgstr "最終階段" + +#. (itstool) path: sect2/para +#: book.translate.xml:23124 +msgid "" +"Once the kernel is loaded by either <application>loader</application> or by " +"<application>boot2</application>, which bypasses <application>loader</" +"application>, it examines any boot flags and adjusts its behavior as " +"necessary. <xref linkend=\"boot-kernel\"/> lists the commonly used boot " +"flags. Refer to <citerefentry><refentrytitle>boot</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more information " +"on the other boot flags." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:23132 +msgid "<primary>kernel</primary> <secondary>bootflags</secondary>" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:23138 +msgid "Kernel Interaction During Boot" +msgstr "開機時核心互動參數" + +#. (itstool) path: row/entry +#: book.translate.xml:23151 +msgid "" +"During kernel initialization, ask for the device to mount as the root file " +"system." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23156 +msgid "<option>-C</option>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23157 +msgid "Boot the root file system from a <acronym>CDROM</acronym>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23162 +msgid "<option>-s</option>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23163 +msgid "Boot into single-user mode." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:23168 +msgid "Be more verbose during kernel startup." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23174 +msgid "" +"Once the kernel has finished booting, it passes control to the user process " +"<citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, which is located at <filename>/sbin/init</filename>, or the " +"program path specified in the <envar>init_path</envar> variable in " +"<command>loader</command>. This is the last stage of the boot process." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23181 +msgid "" +"The boot sequence makes sure that the file systems available on the system " +"are consistent. If a <acronym>UFS</acronym> file system is not, and " +"<command>fsck</command> cannot fix the inconsistencies, <application>init</" +"application> drops the system into single-user mode so that the system " +"administrator can resolve the problem directly. Otherwise, the system boots " +"into multi-user mode." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:23191 +msgid "Single-User Mode" +msgstr "單使用者模式" + +#. (itstool) path: sect3/para +#: book.translate.xml:23196 +msgid "" +"A user can specify this mode by booting with <option>-s</option> or by " +"setting the <envar>boot_single</envar> variable in <application>loader</" +"application>. It can also be reached by running <command>shutdown now</" +"command> from multi-user mode. Single-user mode begins with this message:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:23203 +#, no-wrap +msgid "Enter full pathname of shell or RETURN for /bin/sh:" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:23205 +msgid "" +"If the user presses <keycap>Enter</keycap>, the system will enter the " +"default Bourne shell. To specify a different shell, input the full path to " +"the shell." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:23209 +msgid "" +"Single-user mode is usually used to repair a system that will not boot due " +"to an inconsistent file system or an error in a boot configuration file. It " +"can also be used to reset the <systemitem class=\"username\">root</" +"systemitem> password when it is unknown. These actions are possible as the " +"single-user mode prompt gives full, local access to the system and its " +"configuration files. There is no networking in this mode." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:23218 +msgid "" +"While single-user mode is useful for repairing a system, it poses a security " +"risk unless the system is in a physically secure location. By default, any " +"user who can gain physical access to a system will have full control of that " +"system after booting into single-user mode." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:23224 +msgid "" +"If the system <literal>console</literal> is changed to <literal>insecure</" +"literal> in <filename>/etc/ttys</filename>, the system will first prompt for " +"the <systemitem class=\"username\">root</systemitem> password before " +"initiating single-user mode. This adds a measure of security while removing " +"the ability to reset the <systemitem class=\"username\">root</systemitem> " +"password when it is unknown." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:23234 +msgid "Configuring an Insecure Console in <filename>/etc/ttys</filename>" +msgstr "在 <filename>/etc/ttys</filename> 設定不安全的 Console" + +#. (itstool) path: example/programlisting +#: book.translate.xml:23237 +#, no-wrap +msgid "" +"# name getty type status comments\n" +"#\n" +"# If console is marked \"insecure\", then init will ask for the root password\n" +"# when going to single-user mode.\n" +"console none unknown off <replaceable>insecure</replaceable>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:23244 +msgid "" +"An <literal>insecure</literal> console means that physical security to the " +"console is considered to be insecure, so only someone who knows the " +"<systemitem class=\"username\">root</systemitem> password may use single-" +"user mode." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:23251 +msgid "Multi-User Mode" +msgstr "多使用者模式" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:23253 +msgid "<primary>multi-user mode</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:23255 +msgid "" +"If <application>init</application> finds the file systems to be in order, or " +"once the user has finished their commands in single-user mode and has typed " +"<command>exit</command> to leave single-user mode, the system enters multi-" +"user mode, in which it starts the resource configuration of the system." +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:23262 +msgid "<primary>rc files</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:23264 +msgid "" +"The resource configuration system reads in configuration defaults from " +"<filename>/etc/defaults/rc.conf</filename> and system-specific details from " +"<filename>/etc/rc.conf</filename>. It then proceeds to mount the system file " +"systems listed in <filename>/etc/fstab</filename>. It starts up networking " +"services, miscellaneous system daemons, then the startup scripts of locally " +"installed packages." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:23273 +msgid "" +"To learn more about the resource configuration system, refer to " +"<citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and examine the scripts located in <filename>/etc/rc.d</" +"filename>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:23288 +msgid "Configuring Boot Time Splash Screens" +msgstr "設定開機啟動畫面" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:23291 book.translate.xml:57912 +msgid "" +"<personname> <firstname>Joseph J.</firstname> <surname>Barbish</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23301 +msgid "" +"Typically when a FreeBSD system boots, it displays its progress as a series " +"of messages at the console. A boot splash screen creates an alternate boot " +"screen that hides all of the boot probe and service startup messages. A few " +"boot loader messages, including the boot options menu and a timed wait " +"countdown prompt, are displayed at boot time, even when the splash screen is " +"enabled. The display of the splash screen can be turned off by hitting any " +"key on the keyboard during the boot process." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23311 +msgid "" +"There are two basic environments available in FreeBSD. The first is the " +"default legacy virtual console command line environment. After the system " +"finishes booting, a console login prompt is presented. The second " +"environment is a configured graphical environment. Refer to <xref linkend=" +"\"x11\"/> for more information on how to install and configure a graphical " +"display manager and a graphical login manager." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23319 +msgid "" +"Once the system has booted, the splash screen defaults to being a screen " +"saver. After a time period of non-use, the splash screen will display and " +"will cycle through steps of changing intensity of the image, from bright to " +"very dark and over again. The configuration of the splash screen saver can " +"be overridden by adding a <literal>saver=</literal> line to <filename>/etc/" +"rc.conf</filename>. Several built-in screen savers are available and " +"described in <citerefentry><refentrytitle>splash</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>. The <literal>saver=</" +"literal> option only applies to virtual consoles and has no effect on " +"graphical display managers." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23330 +msgid "" +"Sample splash screen files can be downloaded from the gallery at <link xlink:" +"href=\"http://artwork.freebsdgr.org/node/3/\">http://artwork.freebsdgr.org</" +"link>. By installing the <package>sysutils/bsd-splash-changer</package> " +"package or port, a random splash image from a collection will display at " +"boot." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23336 +msgid "" +"The splash screen function supports 256-colors in the bitmap (<filename>." +"bmp</filename>), ZSoft <acronym>PCX</acronym> (<filename>.pcx</filename>), " +"or TheDraw (<filename>.bin</filename>) formats. The <filename>.bmp</" +"filename>, <filename>.pcx</filename>, or <filename>.bin</filename> image has " +"to be placed on the root partition, for example in <filename>/boot</" +"filename>. The splash image files must have a resolution of 320 by 200 " +"pixels or less in order to work on standard <acronym>VGA</acronym> adapters. " +"For the default boot display resolution of 256-colors and 320 by 200 pixels " +"or less, add the following lines to <filename>/boot/loader.conf</filename>. " +"Replace <replaceable>splash.bmp</replaceable> with the name of the bitmap " +"file to use:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:23351 +#, no-wrap +msgid "" +"splash_bmp_load=\"YES\"\n" +"bitmap_load=\"YES\"\n" +"bitmap_name=\"/boot/<replaceable>splash.bmp</replaceable>\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23355 +msgid "To use a <acronym>PCX</acronym> file instead of a bitmap file:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:23358 +#, no-wrap +msgid "" +"splash_pcx_load=\"YES\"\n" +"bitmap_load=\"YES\"\n" +"bitmap_name=\"/boot/<replaceable>splash.pcx</replaceable>\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23362 +msgid "" +"To instead use ASCII art in the <link xlink:href=\"https://en.wikipedia.org/" +"wiki/TheDraw\">https://en.wikipedia.org/wiki/TheDraw</link> format:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:23365 +#, no-wrap +msgid "" +"splash_txt=\"YES\"\n" +"bitmap_load=\"YES\"\n" +"bitmap_name=\"/boot/<replaceable>splash.bin</replaceable>\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23369 +msgid "" +"To use larger images that fill the whole display screen, up to the maximum " +"resolution of 1024 by 768 pixels, the <acronym>VESA</acronym> module must " +"also be loaded during system boot. If using a custom kernel, ensure that the " +"custom kernel configuration file includes the <literal>VESA</literal> kernel " +"configuration option. To load the <acronym>VESA</acronym> module for the " +"splash screen, add this line to <filename>/boot/loader.conf</filename> " +"before the three lines mentioned in the above examples:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:23379 +#, no-wrap +msgid "vesa_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23381 +msgid "Other interesting <filename>loader.conf</filename> options include:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:23385 +msgid "<literal>beastie_disable=\"YES\"</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:23388 +msgid "" +"This will stop the boot options menu from being displayed, but the timed " +"wait count down prompt will still be present. Even with the display of the " +"boot options menu disabled, entering an option selection at the timed wait " +"count down prompt will enact the corresponding boot option." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:23397 +msgid "<literal>loader_logo=\"beastie\"</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:23400 +msgid "" +"This will replace the default words <quote>FreeBSD</quote>, which are " +"displayed to the right of the boot options menu, with the colored beastie " +"logo." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23408 +msgid "" +"For more information, refer to <citerefentry><refentrytitle>splash</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>loader.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>, and <citerefentry><refentrytitle>vga</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:23414 +msgid "Device Hints" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:23427 +msgid "<primary>device.hints</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23431 +msgid "" +"During initial system startup, the boot <citerefentry><refentrytitle>loader</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> reads <citerefentry " +"vendor=\"current\"><refentrytitle>device.hints</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>. This file stores kernel boot information known as " +"variables, sometimes referred to as <quote>device hints</quote>. These " +"<quote>device hints</quote> are used by device drivers for device " +"configuration." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23437 +msgid "" +"Device hints may also be specified at the Stage 3 boot loader prompt, as " +"demonstrated in <xref linkend=\"boot-loader\"/>. Variables can be added " +"using <command>set</command>, removed with <command>unset</command>, and " +"viewed <command>show</command>. Variables set in <filename>/boot/device." +"hints</filename> can also be overridden. Device hints entered at the boot " +"loader are not permanent and will not be applied on the next reboot." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23446 +msgid "" +"Once the system is booted, <citerefentry><refentrytitle>kenv</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> can be used to dump " +"all of the variables." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23449 +msgid "" +"The syntax for <filename>/boot/device.hints</filename> is one variable per " +"line, using the hash <quote>#</quote> as comment markers. Lines are " +"constructed as follows:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:23454 +#, no-wrap +msgid "<userinput>hint.driver.unit.keyword=\"<replaceable>value</replaceable>\"</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23456 +msgid "The syntax for the Stage 3 boot loader is:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:23458 +#, no-wrap +msgid "<userinput>set hint.driver.unit.keyword=<replaceable>value</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23460 +msgid "" +"where <literal>driver</literal> is the device driver name, <literal>unit</" +"literal> is the device driver unit number, and <literal>keyword</literal> is " +"the hint keyword. The keyword may consist of the following options:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:23467 +msgid "" +"<literal>at</literal>: specifies the bus which the device is attached to." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:23472 +msgid "" +"<literal>port</literal>: specifies the start address of the <acronym>I/O</" +"acronym> to be used." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:23477 +msgid "" +"<literal>irq</literal>: specifies the interrupt request number to be used." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:23482 +msgid "<literal>drq</literal>: specifies the DMA channel number." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:23487 +msgid "" +"<literal>maddr</literal>: specifies the physical memory address occupied by " +"the device." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:23492 +msgid "<literal>flags</literal>: sets various flag bits for the device." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:23497 +msgid "" +"<literal>disabled</literal>: if set to <literal>1</literal> the device is " +"disabled." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23502 +msgid "" +"Since device drivers may accept or require more hints not listed here, " +"viewing a driver's manual page is recommended. For more information, refer " +"to <citerefentry vendor=\"current\"><refentrytitle>device.hints</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>kenv</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, <citerefentry><refentrytitle>loader.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>, and " +"<citerefentry><refentrytitle>loader</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:23509 +msgid "Shutdown Sequence" +msgstr "關機程序" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:23511 +msgid "" +"<primary><citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry></primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23515 +msgid "" +"Upon controlled shutdown using <citerefentry><refentrytitle>shutdown</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> will attempt to run the script <filename>/etc/rc.shutdown</" +"filename>, and then proceed to send all processes the <literal>TERM</" +"literal> signal, and subsequently the <literal>KILL</literal> signal to any " +"that do not terminate in a timely manner." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23522 +msgid "" +"To power down a FreeBSD machine on architectures and systems that support " +"power management, use <command>shutdown -p now</command> to turn the power " +"off immediately. To reboot a FreeBSD system, use <command>shutdown -r now</" +"command>. One must be <systemitem class=\"username\">root</systemitem> or a " +"member of <systemitem class=\"groupname\">operator</systemitem> in order to " +"run <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. One can also use " +"<citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>reboot</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. Refer to their manual " +"pages and to <citerefentry><refentrytitle>shutdown</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23534 +msgid "" +"Modify group membership by referring to <xref linkend=\"users-synopsis\"/>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:23538 +msgid "" +"Power management requires <citerefentry><refentrytitle>acpi</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> to be loaded as a " +"module or statically compiled into a custom kernel." +msgstr "" + +#. (itstool) path: info/title +#. (itstool) path: sect3/title +#: book.translate.xml:23553 book.translate.xml:56480 +msgid "Security" +msgstr "安全性" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:23556 +msgid "" +"<personname> <firstname>Tom</firstname> <surname>Rhodes</surname> </" +"personname> <contrib>Rewritten by </contrib>" +msgstr "" + +#. (itstool) path: chapter/indexterm +#: book.translate.xml:23566 +msgid "<primary>security</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23571 +msgid "" +"Security, whether physical or virtual, is a topic so broad that an entire " +"industry has evolved around it. Hundreds of standard practices have been " +"authored about how to secure systems and networks, and as a user of FreeBSD, " +"understanding how to protect against attacks and intruders is a must." +msgstr "" +"不論實體或虛擬,安全性這個主題大到有整個產業圍繞著它,上百個標準案例已經被用" +"來搛寫如何確保系統與網路的安全性。身為 FreeBSD 必須了解如何避免攻擊與入侵。" + +#. (itstool) path: sect1/para +#: book.translate.xml:23577 +msgid "" +"In this chapter, several fundamentals and techniques will be discussed. The " +"FreeBSD system comes with multiple layers of security, and many more third " +"party utilities may be added to enhance security." +msgstr "" +"在此章會討論幾個基本原理及技術。FreeBSD 系統的安全性有許多層面,且有許多第三" +"方工具可以用來增加安全性。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23586 +msgid "Basic FreeBSD system security concepts." +msgstr "基礎 FreeBSD 系統安全概念。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23590 +msgid "The various crypt mechanisms available in FreeBSD." +msgstr "FreeBSD 中的幾種加密 (Crypt) 機制。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23594 +msgid "How to set up one-time password authentication." +msgstr "如何設定一次性密碼認證。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23598 +msgid "" +"How to configure <application>TCP Wrapper</application> for use with " +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" +"如何設定 <citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 中的 <application>TCP Wrapper</application>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23603 +msgid "How to set up <application>Kerberos</application> on FreeBSD." +msgstr "如何在 FreeBSD 設定 <application>Kerberos</application>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23608 +msgid "" +"How to configure <acronym>IPsec</acronym> and create a <acronym>VPN</" +"acronym>." +msgstr "如何設定 <acronym>IPsec</acronym> 並且建立 <acronym>VPN</acronym>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23613 +msgid "How to configure and use <application>OpenSSH</application> on FreeBSD." +msgstr "如何在 FreeBSD 設定並使用 <application>OpenSSH</application>" + +#. (itstool) path: listitem/para +#: book.translate.xml:23618 +msgid "How to use file system <acronym>ACL</acronym>s." +msgstr "如何使用檔案系統 <acronym>ACL</acronym>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23622 +msgid "" +"How to use <application>pkg</application> to audit third party software " +"packages installed from the Ports Collection." +msgstr "" +"如何使用 <application>pkg</application> 來稽查從 Ports 套件集安裝的第三方軟體" +"套件。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23628 +msgid "How to utilize FreeBSD security advisories." +msgstr "如何利用 FreeBSD 安全報告。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23632 +msgid "What Process Accounting is and how to enable it on FreeBSD." +msgstr "什麼是程序追蹤 (Process Accounting) 以及如何在 FreeBSD 開啟。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23637 +msgid "" +"How to control user resources using login classes or the resource limits " +"database." +msgstr "如何使用登入類別或資源限制資料庫控制使用者資源。" + +#. (itstool) path: listitem/para +#: book.translate.xml:23646 book.translate.xml:58028 +msgid "Understand basic FreeBSD and Internet concepts." +msgstr "了解 FreeBSD 基礎及網路概念。" + +#. (itstool) path: sect1/para +#: book.translate.xml:23650 +msgid "" +"Additional security topics are covered elsewhere in this Handbook. For " +"example, Mandatory Access Control is discussed in <xref linkend=\"mac\"/> " +"and Internet firewalls are discussed in <xref linkend=\"firewalls\"/>." +msgstr "" +"其他的安全性議題會在本操作手冊的其他處說明。例如 強制存取控制 (Mandatory " +"Access Control, MAC) 會在 <xref linkend=\"mac\"/> 討論及網路防火牆會在 <xref " +"linkend=\"firewalls\"/> 討論。" + +#. (itstool) path: sect1/para +#: book.translate.xml:23659 +msgid "" +"Security is everyone's responsibility. A weak entry point in any system " +"could allow intruders to gain access to critical information and cause havoc " +"on an entire network. One of the core principles of information security is " +"the <acronym>CIA</acronym> triad, which stands for the Confidentiality, " +"Integrity, and Availability of information systems." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23667 +msgid "" +"The <acronym>CIA</acronym> triad is a bedrock concept of computer security " +"as customers and users expect their data to be protected. For example, a " +"customer expects that their credit card information is securely stored " +"(confidentiality), that their orders are not changed behind the scenes " +"(integrity), and that they have access to their order information at all " +"times (availablility)." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23675 +msgid "" +"To provide <acronym>CIA</acronym>, security professionals apply a defense in " +"depth strategy. The idea of defense in depth is to add several layers of " +"security to prevent one single layer failing and the entire security system " +"collapsing. For example, a system administrator cannot simply turn on a " +"firewall and consider the network or system secure. One must also audit " +"accounts, check the integrity of binaries, and ensure malicious tools are " +"not installed. To implement an effective security strategy, one must " +"understand threats and how to defend against them." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23686 +msgid "" +"What is a threat as it pertains to computer security? Threats are not " +"limited to remote attackers who attempt to access a system without " +"permission from a remote location. Threats also include employees, malicious " +"software, unauthorized network devices, natural disasters, security " +"vulnerabilities, and even competing corporations." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23693 +msgid "" +"Systems and networks can be accessed without permission, sometimes by " +"accident, or by remote attackers, and in some cases, via corporate espionage " +"or former employees. As a user, it is important to prepare for and admit " +"when a mistake has led to a security breach and report possible issues to " +"the security team. As an administrator, it is important to know of the " +"threats and be prepared to mitigate them." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23701 +msgid "" +"When applying security to systems, it is recommended to start by securing " +"the basic accounts and system configuration, and then to secure the network " +"layer so that it adheres to the system policy and the organization's " +"security procedures. Many organizations already have a security policy that " +"covers the configuration of technology devices. The policy should include " +"the security configuration of workstations, desktops, mobile devices, " +"phones, production servers, and development servers. In many cases, standard " +"operating procedures (<acronym>SOP</acronym>s) already exist. When in doubt, " +"ask the security team." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:23713 +msgid "" +"The rest of this introduction describes how some of these basic security " +"configurations are performed on a FreeBSD system. The rest of this chapter " +"describes some specific tools which can be used when implementing a security " +"policy on a FreeBSD system." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:23720 +msgid "Preventing Logins" +msgstr "防止登入" + +#. (itstool) path: sect2/para +#: book.translate.xml:23722 +msgid "" +"In securing a system, a good starting point is an audit of accounts. Ensure " +"that <systemitem class=\"username\">root</systemitem> has a strong password " +"and that this password is not shared. Disable any accounts that do not need " +"login access." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23727 +msgid "" +"To deny login access to accounts, two methods exist. The first is to lock " +"the account. This example locks the <systemitem class=\"username\">toor</" +"systemitem> account:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23731 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw lock <replaceable>toor</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23733 +msgid "" +"The second method is to prevent login access by changing the shell to " +"<filename>/sbin/nologin</filename>. Only the superuser can change the shell " +"for other users:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23737 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>chsh -s /usr/sbin/nologin <replaceable>toor</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23739 +msgid "" +"The <filename>/usr/sbin/nologin</filename> shell prevents the system from " +"assigning a shell to the user when they attempt to login." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:23745 +msgid "Permitted Account Escalation" +msgstr "帳號升級授權" + +#. (itstool) path: sect2/para +#: book.translate.xml:23747 +msgid "" +"In some cases, system administration needs to be shared with other users. " +"FreeBSD has two methods to handle this. The first one, which is not " +"recommended, is a shared root password used by members of the <systemitem " +"class=\"groupname\">wheel</systemitem> group. With this method, a user types " +"<command>su</command> and enters the password for <systemitem class=" +"\"groupname\">wheel</systemitem> whenever superuser access is needed. The " +"user should then type <command>exit</command> to leave privileged access " +"after finishing the commands that required administrative access. To add a " +"user to this group, edit <filename>/etc/group</filename> and add the user to " +"the end of the <literal>wheel</literal> entry. The user must be separated by " +"a comma character with no space." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23761 +msgid "" +"The second, and recommended, method to permit privilege escalation is to " +"install the <package>security/sudo</package> package or port. This software " +"provides additional auditing, more fine-grained user control, and can be " +"configured to lock users into running only the specified privileged commands." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23768 +msgid "" +"After installation, use <command>visudo</command> to edit <filename>/usr/" +"local/etc/sudoers</filename>. This example creates a new <systemitem class=" +"\"groupname\">webadmin</systemitem> group, adds the <systemitem class=" +"\"username\">trhodes</systemitem> account to that group, and configures that " +"group access to restart <package>apache24</package>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23775 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pw groupadd webadmin -M trhodes -g 6000</userinput>\n" +"<prompt>#</prompt> <userinput>visudo</userinput>\n" +"%webadmin ALL=(ALL) /usr/sbin/service apache24 *" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:23781 +msgid "Password Hashes" +msgstr "密碼編碼方式" + +#. (itstool) path: sect2/para +#: book.translate.xml:23783 +msgid "" +"Passwords are a necessary evil of technology. When they must be used, they " +"should be complex and a powerful hash mechanism should be used to encrypt " +"the version that is stored in the password database. FreeBSD supports the " +"<acronym>DES</acronym>, <acronym>MD5</acronym>, <acronym>SHA256</acronym>, " +"<acronym>SHA512</acronym>, and Blowfish hash algorithms in its " +"<function>crypt()</function> library. The default of <acronym>SHA512</" +"acronym> should not be changed to a less secure hashing algorithm, but can " +"be changed to the more secure Blowfish algorithm." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:23795 +msgid "" +"Blowfish is not part of <acronym>AES</acronym> and is not considered " +"compliant with any Federal Information Processing Standards (<acronym>FIPS</" +"acronym>). Its use may not be permitted in some environments." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23801 +msgid "" +"To determine which hash algorithm is used to encrypt a user's password, the " +"superuser can view the hash for the user in the FreeBSD password database. " +"Each hash starts with a symbol which indicates the type of hash mechanism " +"used to encrypt the password. If <acronym>DES</acronym> is used, there is no " +"beginning symbol. For <acronym>MD5</acronym>, the symbol is <literal>$</" +"literal>. For <acronym>SHA256</acronym> and <acronym>SHA512</acronym>, the " +"symbol is <literal>$6$</literal>. For Blowfish, the symbol is <literal>$2a$</" +"literal>. In this example, the password for <systemitem class=\"username" +"\">dru</systemitem> is hashed using the default <acronym>SHA512</acronym> " +"algorithm as the hash starts with <literal>$6$</literal>. Note that the " +"encrypted hash, not the password itself, is stored in the password database:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23817 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>grep dru /etc/master.passwd</userinput>\n" +"dru:$6$pzIjSvCAn.PBYQBA$PXpSeWPx3g5kscj3IMiM7tUEUSPmGexxta.8Lt9TGSi2lNQqYGKszsBPuGME0:1001:1001::0:0:dru:/usr/home/dru:/bin/csh" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23820 +msgid "" +"The hash mechanism is set in the user's login class. For this example, the " +"user is in the <literal>default</literal> login class and the hash algorithm " +"is set with this line in <filename>/etc/login.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:23825 +#, no-wrap +msgid " :passwd_format=sha512:\\" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23827 +msgid "" +"To change the algorithm to Blowfish, modify that line to look like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:23830 +#, no-wrap +msgid " :passwd_format=blf:\\" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23832 +msgid "" +"Then run <command>cap_mkdb /etc/login.conf</command> as described in <xref " +"linkend=\"users-limiting\"/>. Note that this change will not affect any " +"existing password hashes. This means that all passwords should be re-hashed " +"by asking users to run <command>passwd</command> in order to change their " +"password." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23839 +msgid "" +"For remote logins, two-factor authentication should be used. An example of " +"two-factor authentication is <quote>something you have</quote>, such as a " +"key, and <quote>something you know</quote>, such as the passphrase for that " +"key. Since <application>OpenSSH</application> is part of the FreeBSD base " +"system, all network logins should be over an encrypted connection and use " +"key-based authentication instead of passwords. For more information, refer " +"to <xref linkend=\"openssh\"/>. Kerberos users may need to make additional " +"changes to implement <application>OpenSSH</application> in their network. " +"These changes are described in <xref linkend=\"kerberos5\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:23853 +msgid "Password Policy Enforcement" +msgstr "強制密碼政策" + +#. (itstool) path: sect2/para +#: book.translate.xml:23855 +msgid "" +"Enforcing a strong password policy for local accounts is a fundamental " +"aspect of system security. In FreeBSD, password length, password strength, " +"and password complexity can be implemented using built-in Pluggable " +"Authentication Modules (<acronym>PAM</acronym>)." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23861 +msgid "" +"This section demonstrates how to configure the minimum and maximum password " +"length and the enforcement of mixed characters using the " +"<filename>pam_passwdqc.so</filename> module. This module is enforced when a " +"user changes their password." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23867 +msgid "" +"To configure this module, become the superuser and uncomment the line " +"containing <literal>pam_passwdqc.so</literal> in <filename>/etc/pam.d/" +"passwd</filename>. Then, edit that line to match the password policy:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:23873 +#, no-wrap +msgid "password requisite pam_passwdqc.so <replaceable>min=disabled,disabled,disabled,12,10 similar=deny retry=3</replaceable> enforce=users" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23875 +msgid "" +"This example sets several requirements for new passwords. The <literal>min</" +"literal> setting controls the minimum password length. It has five values " +"because this module defines five different types of passwords based on their " +"complexity. Complexity is defined by the type of characters that must exist " +"in a password, such as letters, numbers, symbols, and case. The types of " +"passwords are described in <citerefentry><refentrytitle>pam_passwdqc</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. In this example, the " +"first three types of passwords are disabled, meaning that passwords that " +"meet those complexity requirements will not be accepted, regardless of their " +"length. The <literal>12</literal> sets a minimum password policy of at least " +"twelve characters, if the password also contains characters with three types " +"of complexity. The <literal>10</literal> sets the password policy to also " +"allow passwords of at least ten characters, if the password contains " +"characters with four types of complexity." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23892 +msgid "" +"The <literal>similar</literal> setting denies passwords that are similar to " +"the user's previous password. The <literal>retry</literal> setting provides " +"a user with three opportunities to enter a new password." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23897 +msgid "" +"Once this file is saved, a user changing their password will see a message " +"similar to the following:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23900 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>passwd</userinput>\n" +"Changing local password for trhodes\n" +"Old Password:\n" +"\n" +"You can now choose the new password.\n" +"A valid password should be a mix of upper and lower case letters,\n" +"digits and other characters. You can use a 12 character long\n" +"password with characters from at least 3 of these 4 classes, or\n" +"a 10 character long password containing characters from all the\n" +"classes. Characters that form a common pattern are discarded by\n" +"the check.\n" +"Alternatively, if noone else can see your terminal now, you can\n" +"pick this as your password: \"trait-useful&knob\".\n" +"Enter new password:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23915 +msgid "" +"If a password that does not match the policy is entered, it will be rejected " +"with a warning and the user will have an opportunity to try again, up to the " +"configured number of retries." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23920 +msgid "" +"Most password policies require passwords to expire after so many days. To " +"set a password age time in FreeBSD, set <option>passwordtime</option> for " +"the user's login class in <filename>/etc/login.conf</filename>. The " +"<literal>default</literal> login class contains an example:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:23927 +#, no-wrap +msgid "# :passwordtime=90d:\\" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23929 +msgid "" +"So, to set an expiry of 90 days for this login class, remove the comment " +"symbol (<literal>#</literal>), save the edit, and run <command>cap_mkdb /etc/" +"login.conf</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23934 +msgid "" +"To set the expiration on individual users, pass an expiration date or the " +"number of days to expiry and a username to <command>pw</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23938 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw usermod -p <replaceable>30-apr-2015</replaceable> -n <replaceable>trhodes</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23940 +msgid "" +"As seen here, an expiration date is set in the form of day, month, and year. " +"For more information, see <citerefentry><refentrytitle>pw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:23946 +msgid "Detecting Rootkits" +msgstr "偵測 Rootkits" + +#. (itstool) path: sect2/para +#: book.translate.xml:23948 +msgid "" +"A <firstterm>rootkit</firstterm> is any unauthorized software that attempts " +"to gain <systemitem class=\"username\">root</systemitem> access to a system. " +"Once installed, this malicious software will normally open up another avenue " +"of entry for an attacker. Realistically, once a system has been compromised " +"by a rootkit and an investigation has been performed, the system should be " +"reinstalled from scratch. There is tremendous risk that even the most " +"prudent security or systems engineer will miss something an attacker left " +"behind." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23958 +msgid "" +"A rootkit does do one thing usefulfor administrators: once detected, it is a " +"sign that a compromise happened at some point. But, these types of " +"applications tend to be very well hidden. This section demonstrates a tool " +"that can be used to detect rootkits, <package>security/rkhunter</package>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23964 +msgid "" +"After installation of this package or port, the system may be checked using " +"the following command. It will produce a lot of information and will require " +"some manual pressing of <keycap>ENTER</keycap>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:23969 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>rkhunter -c</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23971 +msgid "" +"After the process completes, a status message will be printed to the screen. " +"This message will include the amount of files checked, suspect files, " +"possible rootkits, and more. During the check, some generic security " +"warnings may be produced about hidden files, the <application>OpenSSH</" +"application> protocol selection, and known vulnerable versions of installed " +"software. These can be handled now or after a more detailed analysis has " +"been performed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:23981 +msgid "" +"Every administrator should know what is running on the systems they are " +"responsible for. Third-party tools like <application>rkhunter</application> " +"and <package>sysutils/lsof</package>, and native commands such as " +"<command>netstat</command> and <command>ps</command>, can show a great deal " +"of information on the system. Take notes on what is normal, ask questions " +"when something seems out of place, and be paranoid. While preventing a " +"compromise is ideal, detecting a compromise is a must." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:23993 +msgid "Binary Verification" +msgstr "Binary 檢驗" + +#. (itstool) path: sect2/para +#: book.translate.xml:23995 +msgid "" +"Verification of system files and binaries is important because it provides " +"the system administration and security teams information about system " +"changes. A software application that monitors the system for changes is " +"called an Intrusion Detection System (<acronym>IDS</acronym>)." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24001 +msgid "" +"FreeBSD provides native support for a basic <acronym>IDS</acronym> system. " +"While the nightly security emails will notify an administrator of changes, " +"the information is stored locally and there is a chance that a malicious " +"user could modify this information in order to hide their changes to the " +"system. As such, it is recommended to create a separate set of binary " +"signatures and store them on a read-only, root-owned directory or, " +"preferably, on a removable <acronym>USB</acronym> disk or remote " +"<application>rsync</application> server." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24012 +msgid "" +"The built-in <command>mtree</command> utility can be used to generate a " +"specification of the contents of a directory. A seed, or a numeric constant, " +"is used to generate the specification and is required to check that the " +"specification has not changed. This makes it possible to determine if a file " +"or binary has been modified. Since the seed value is unknown by an attacker, " +"faking or checking the checksum values of files will be difficult to " +"impossible. The following example generates a set of <acronym>SHA256</" +"acronym> hashes, one for each system binary in <filename>/bin</filename>, " +"and saves those values to a hidden file in <systemitem class=\"username" +"\">root</systemitem>'s home directory, <filename>/root/.bin_chksum_mtree</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24025 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mtree -s <replaceable>3483151339707503</replaceable> -c -K cksum,sha256digest -p <replaceable>/bin</replaceable> > <replaceable>/root/.bin_chksum_mtree</replaceable></userinput>\n" +"<prompt>#</prompt> mtree: /bin checksum: 3427012225" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24028 +msgid "" +"The <replaceable>3483151339707503</replaceable> represents the seed. This " +"value should be remembered, but not shared." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24032 +msgid "" +"Viewing <filename>/root/.bin_cksum_mtree</filename> should yield output " +"similar to the following:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24035 +#, no-wrap +msgid "" +"# user: root\n" +"# machine: dreadnaught\n" +"# tree: /bin\n" +"# date: Mon Feb 3 10:19:53 2014\n" +"\n" +"# .\n" +"/set type=file uid=0 gid=0 mode=0555 nlink=1 flags=none\n" +". type=dir mode=0755 nlink=2 size=1024 \\\n" +" time=1380277977.000000000\n" +" \\133 nlink=2 size=11704 time=1380277977.000000000 \\\n" +" cksum=484492447 \\\n" +" sha256digest=6207490fbdb5ed1904441fbfa941279055c3e24d3a4049aeb45094596400662a\n" +" cat size=12096 time=1380277975.000000000 cksum=3909216944 \\\n" +" sha256digest=65ea347b9418760b247ab10244f47a7ca2a569c9836d77f074e7a306900c1e69\n" +" chflags size=8168 time=1380277975.000000000 cksum=3949425175 \\\n" +" sha256digest=c99eb6fc1c92cac335c08be004a0a5b4c24a0c0ef3712017b12c89a978b2dac3\n" +" chio size=18520 time=1380277975.000000000 cksum=2208263309 \\\n" +" sha256digest=ddf7c8cb92a58750a675328345560d8cc7fe14fb3ccd3690c34954cbe69fc964\n" +" chmod size=8640 time=1380277975.000000000 cksum=2214429708 \\\n" +" sha256digest=a435972263bf814ad8df082c0752aa2a7bdd8b74ff01431ccbd52ed1e490bbe7" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24056 +msgid "" +"The machine's hostname, the date and time the specification was created, and " +"the name of the user who created the specification are included in this " +"report. There is a checksum, size, time, and <acronym>SHA</acronym>256 " +"digest for each binary in the directory." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24062 +msgid "" +"To verify that the binary signatures have not changed, compare the current " +"contents of the directory to the previously generated specification, and " +"save the results to a file. This command requires the seed that was used to " +"generate the original specification:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24068 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mtree -s <replaceable>3483151339707503</replaceable> -p <replaceable>/bin</replaceable> < <replaceable>/root/.bin_chksum_mtree</replaceable> >> <replaceable>/root/.bin_chksum_output</replaceable></userinput>\n" +"<prompt>#</prompt> mtree: /bin checksum: 3427012225" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24071 +msgid "" +"This should produce the same checksum for <filename>/bin</filename> that was " +"produced when the specification was created. If no changes have occurred to " +"the binaries in this directory, the <filename>/root/.bin_chksum_output</" +"filename> output file will be empty. To simulate a change, change the date " +"on <filename>/bin/cat</filename> using <command>touch</command> and run the " +"verification command again:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24080 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>touch /bin/cat</userinput>\n" +"<prompt>#</prompt> <userinput>mtree -s <replaceable>3483151339707503</replaceable> -p <replaceable>/bin</replaceable> < <replaceable>/root/.bin_chksum_mtree</replaceable> >> <replaceable>/root/.bin_chksum_output</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>more /root/.bin_chksum_output</userinput>\n" +"cat changed\n" +"\tmodification time expected Fri Sep 27 06:32:55 2013 found Mon Feb 3 10:28:43 2014" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24086 +msgid "" +"It is recommended to create specifications for the directories which contain " +"binaries and configuration files, as well as any directories containing " +"sensitive data. Typically, specifications are created for <filename>/bin</" +"filename>, <filename>/sbin</filename>, <filename>/usr/bin</filename>, " +"<filename>/usr/sbin</filename>, <filename>/usr/local/bin</filename>, " +"<filename>/etc</filename>, and <filename>/usr/local/etc</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24096 +msgid "" +"More advanced <acronym>IDS</acronym> systems exist, such as " +"<package>security/aide</package>. In most cases, <command>mtree</command> " +"provides the functionality administrators need. It is important to keep the " +"seed value and the checksum output hidden from malicious users. More " +"information about <command>mtree</command> can be found in " +"<citerefentry><refentrytitle>mtree</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24106 +msgid "System Tuning for Security" +msgstr "系統安全性調校" + +#. (itstool) path: sect2/para +#: book.translate.xml:24108 +msgid "" +"In FreeBSD, many system features can be tuned using <command>sysctl</" +"command>. A few of the security features which can be tuned to prevent " +"Denial of Service (<acronym>DoS</acronym>) attacks will be covered in this " +"section. More information about using <command>sysctl</command>, including " +"how to temporarily change values and how to make the changes permanent after " +"testing, can be found in <xref linkend=\"configtuning-sysctl\"/>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:24118 +msgid "" +"Any time a setting is changed with <command>sysctl</command>, the chance to " +"cause undesired harm is increased, affecting the availability of the system. " +"All changes should be monitored and, if possible, tried on a testing system " +"before being used on a production system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24126 +msgid "" +"By default, the FreeBSD kernel boots with a security level of <literal>-1</" +"literal>. This is called <quote>insecure mode</quote> because immutable file " +"flags may be turned off and all devices may be read from or written to. The " +"security level will remain at <literal>-1</literal> unless it is altered " +"through <command>sysctl</command> or by a setting in the startup scripts. " +"The security level may be increased during system startup by setting " +"<varname>kern_securelevel_enable</varname> to <literal>YES</literal> in " +"<filename>/etc/rc.conf</filename>, and the value of " +"<varname>kern_securelevel</varname> to the desired security level. See " +"<citerefentry><refentrytitle>security</refentrytitle><manvolnum>7</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>init</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more information " +"on these settings and the available security levels." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:24142 +msgid "" +"Increasing the <varname>securelevel</varname> can break <application>Xorg</" +"application> and cause other issues. Be prepared to do some debugging." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24147 +msgid "" +"The <varname>net.inet.tcp.blackhole</varname> and <varname>net.inet.udp." +"blackhole</varname> settings can be used to drop incoming <acronym>SYN</" +"acronym> packets on closed ports without sending a return <acronym>RST</" +"acronym> response. The default behavior is to return an <acronym>RST</" +"acronym> to show a port is closed. Changing the default provides some level " +"of protection against ports scans, which are used to determine which " +"applications are running on a system. Set <varname>net.inet.tcp.blackhole</" +"varname> to <literal>2</literal> and <varname>net.inet.udp.blackhole</" +"varname> to <literal>1</literal>. Refer to " +"<citerefentry><refentrytitle>blackhole</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> for more information about these settings." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24161 +msgid "" +"The <varname>net.inet.icmp.drop_redirect</varname> and <varname>net.inet.ip." +"redirect</varname> settings help prevent against <firstterm>redirect " +"attacks</firstterm>. A redirect attack is a type of <acronym>DoS</acronym> " +"which sends mass numbers of <acronym>ICMP</acronym> type 5 packets. Since " +"these packets are not required, set <varname>net.inet.icmp.drop_redirect</" +"varname> to <literal>1</literal> and set <varname>net.inet.ip.redirect</" +"varname> to <literal>0</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24172 +msgid "" +"Source routing is a method for detecting and accessing non-routable " +"addresses on the internal network. This should be disabled as non-routable " +"addresses are normally not routable on purpose. To disable this feature, set " +"<varname>net.inet.ip.sourceroute</varname> and <varname>net.inet.ip." +"accept_sourceroute</varname> to <literal>0</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24180 +msgid "" +"When a machine on the network needs to send messages to all hosts on a " +"subnet, an <acronym>ICMP</acronym> echo request message is sent to the " +"broadcast address. However, there is no reason for an external host to " +"perform such an action. To reject all external broadcast requests, set " +"<varname>net.inet.icmp.bmcastecho </varname> to <literal>0</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24188 +msgid "" +"Some additional settings are documented in " +"<citerefentry><refentrytitle>security</refentrytitle><manvolnum>7</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:24194 +msgid "One-time Passwords" +msgstr "一次性密碼" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:24196 +msgid "<primary>one-time passwords</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:24197 +msgid "<primary>security</primary> <secondary>one-time passwords</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24202 +msgid "" +"By default, FreeBSD includes support for One-time Passwords In Everything " +"(<acronym>OPIE</acronym>). <acronym>OPIE</acronym> is designed to prevent " +"replay attacks, in which an attacker discovers a user's password and uses it " +"to access a system. Since a password is only used once in <acronym>OPIE</" +"acronym>, a discovered password is of little use to an attacker. " +"<acronym>OPIE</acronym> uses a secure hash and a challenge/response system " +"to manage passwords. The FreeBSD implementation uses the <acronym>MD5</" +"acronym> hash by default." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24213 +msgid "" +"<acronym>OPIE</acronym> uses three different types of passwords. The first " +"is the usual <trademark class=\"registered\">UNIX</trademark> or Kerberos " +"password. The second is the one-time password which is generated by " +"<command>opiekey</command>. The third type of password is the <quote>secret " +"password</quote> which is used to generate one-time passwords. The secret " +"password has nothing to do with, and should be different from, the " +"<trademark class=\"registered\">UNIX</trademark> password." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24221 +msgid "" +"There are two other pieces of data that are important to <acronym>OPIE</" +"acronym>. One is the <quote>seed</quote> or <quote>key</quote>, consisting " +"of two letters and five digits. The other is the <quote>iteration count</" +"quote>, a number between 1 and 100. <acronym>OPIE</acronym> creates the one-" +"time password by concatenating the seed and the secret password, applying " +"the <acronym>MD5</acronym> hash as many times as specified by the iteration " +"count, and turning the result into six short English words which represent " +"the one-time password. The authentication system keeps track of the last one-" +"time password used, and the user is authenticated if the hash of the user-" +"provided password is equal to the previous password. Because a one-way hash " +"is used, it is impossible to generate future one-time passwords if a " +"successfully used password is captured. The iteration count is decremented " +"after each successful login to keep the user and the login program in sync. " +"When the iteration count gets down to <literal>1</literal>, <acronym>OPIE</" +"acronym> must be reinitialized." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24240 +msgid "" +"There are a few programs involved in this process. A one-time password, or a " +"consecutive list of one-time passwords, is generated by passing an iteration " +"count, a seed, and a secret password to " +"<citerefentry><refentrytitle>opiekey</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>. In addition to initializing <acronym>OPIE</" +"acronym>, <citerefentry><refentrytitle>opiepasswd</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> is used to change " +"passwords, iteration counts, or seeds. The relevant credential files in " +"<filename>/etc/opiekeys</filename> are examined by " +"<citerefentry><refentrytitle>opieinfo</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> which prints out the invoking user's current " +"iteration count and seed." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24250 +msgid "" +"This section describes four different sorts of operations. The first is how " +"to set up one-time-passwords for the first time over a secure connection. " +"The second is how to use <command>opiepasswd</command> over an insecure " +"connection. The third is how to log in over an insecure connection. The " +"fourth is how to generate a number of keys which can be written down or " +"printed out to use at insecure locations." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24259 +msgid "Initializing <acronym>OPIE</acronym>" +msgstr "初始化 <acronym>OPIE</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:24261 +msgid "" +"To initialize <acronym>OPIE</acronym> for the first time, run this command " +"from a secure location:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24264 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>opiepasswd -c</userinput>\n" +"[grimreaper] ~ $ opiepasswd -f -c\n" +"Adding unfurl:\n" +"Only use this method from the console; NEVER from remote. If you are using\n" +"telnet, xterm, or a dial-in, type ^C now or exit with no password.\n" +"Then run opiepasswd without the -c parameter.\n" +"Using MD5 to compute responses.\n" +"Enter new secret pass phrase:\n" +"Again new secret pass phrase:\n" +"\n" +"ID unfurl OTP key is 499 to4268\n" +"MOS MALL GOAT ARM AVID COED" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24277 +msgid "" +"The <option>-c</option> sets console mode which assumes that the command is " +"being run from a secure location, such as a computer under the user's " +"control or a <acronym>SSH</acronym> session to a computer under the user's " +"control." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24283 +msgid "" +"When prompted, enter the secret password which will be used to generate the " +"one-time login keys. This password should be difficult to guess and should " +"be different than the password which is associated with the user's login " +"account. It must be between 10 and 127 characters long. Remember this " +"password." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24290 +msgid "" +"The <literal>ID</literal> line lists the login name (<literal>unfurl</" +"literal>), default iteration count (<literal>499</literal>), and default " +"seed (<literal>to4268</literal>). When logging in, the system will remember " +"these parameters and display them, meaning that they do not have to be " +"memorized. The last line lists the generated one-time password which " +"corresponds to those parameters and the secret password. At the next login, " +"use this one-time password." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24302 +msgid "Insecure Connection Initialization" +msgstr "不安全連線初始化" + +#. (itstool) path: sect2/para +#: book.translate.xml:24304 +msgid "" +"To initialize or change the secret password on an insecure system, a secure " +"connection is needed to some place where <command>opiekey</command> can be " +"run. This might be a shell prompt on a trusted machine. An iteration count " +"is needed, where 100 is probably a good value, and the seed can either be " +"specified or the randomly-generated one used. On the insecure connection, " +"the machine being initialized, use <citerefentry><refentrytitle>opiepasswd</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24313 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>opiepasswd</userinput>\n" +"\n" +"Updating unfurl:\n" +"You need the response from an OTP generator.\n" +"Old secret pass phrase:\n" +"\totp-md5 498 to4268 ext\n" +"\tResponse: GAME GAG WELT OUT DOWN CHAT\n" +"New secret pass phrase:\n" +"\totp-md5 499 to4269\n" +"\tResponse: LINE PAP MILK NELL BUOY TROY\n" +"\n" +"ID mark OTP key is 499 gr4269\n" +"LINE PAP MILK NELL BUOY TROY" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24327 +msgid "" +"To accept the default seed, press <keycap>Return</keycap>. Before entering " +"an access password, move over to the secure connection and give it the same " +"parameters:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24331 book.translate.xml:24379 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>opiekey 498 to4268</userinput>\n" +"Using the MD5 algorithm to compute response.\n" +"Reminder: Do not use opiekey from telnet or dial-in sessions.\n" +"Enter secret pass phrase:\n" +"GAME GAG WELT OUT DOWN CHAT" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24337 +msgid "" +"Switch back over to the insecure connection, and copy the generated one-time " +"password over to the relevant program." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24343 +msgid "Generating a Single One-time Password" +msgstr "產生單組一次性密碼" + +#. (itstool) path: sect2/para +#: book.translate.xml:24345 +msgid "" +"After initializing <acronym>OPIE</acronym> and logging in, a prompt like " +"this will be displayed:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24348 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>telnet example.com</userinput>\n" +"Trying 10.0.0.1...\n" +"Connected to example.com\n" +"Escape character is '^]'.\n" +"\n" +"FreeBSD/i386 (example.com) (ttypa)\n" +"\n" +"login: <userinput><username></userinput>\n" +"otp-md5 498 gr4269 ext\n" +"Password: " +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24359 +msgid "" +"The <acronym>OPIE</acronym> prompts provides a useful feature. If " +"<keycap>Return</keycap> is pressed at the password prompt, the prompt will " +"turn echo on and display what is typed. This can be useful when attempting " +"to type in a password by hand from a printout." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:24365 +msgid "<primary>MS-DOS</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:24366 +msgid "<primary>Windows</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:24367 +msgid "<primary>MacOS</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24369 +msgid "" +"At this point, generate the one-time password to answer this login prompt. " +"This must be done on a trusted system where it is safe to run " +"<citerefentry><refentrytitle>opiekey</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>. There are versions of this command for <trademark " +"class=\"registered\">Windows</trademark>, <trademark class=\"registered" +"\">Mac OS</trademark> and FreeBSD. This command needs the iteration count " +"and the seed as command line options. Use cut-and-paste from the login " +"prompt on the machine being logged in to." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24377 +msgid "On the trusted system:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24385 +msgid "Once the one-time password is generated, continue to log in." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24390 +msgid "Generating Multiple One-time Passwords" +msgstr "產生多組一次性密碼" + +#. (itstool) path: sect2/para +#: book.translate.xml:24392 +msgid "" +"Sometimes there is no access to a trusted machine or secure connection. In " +"this case, it is possible to use <citerefentry><refentrytitle>opiekey</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> to generate a number " +"of one-time passwords beforehand. For example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24397 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>opiekey -n 5 30 zz99999</userinput>\n" +"Using the MD5 algorithm to compute response.\n" +"Reminder: Do not use opiekey from telnet or dial-in sessions.\n" +"Enter secret pass phrase: <userinput><secret password></userinput>\n" +"26: JOAN BORE FOSS DES NAY QUIT\n" +"27: LATE BIAS SLAY FOLK MUCH TRIG\n" +"28: SALT TIN ANTI LOON NEAL USE\n" +"29: RIO ODIN GO BYE FURY TIC\n" +"30: GREW JIVE SAN GIRD BOIL PHI" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24407 +msgid "" +"The <option>-n 5</option> requests five keys in sequence, and <option>30</" +"option> specifies what the last iteration number should be. Note that these " +"are printed out in <emphasis>reverse</emphasis> order of use. The really " +"paranoid might want to write the results down by hand; otherwise, print the " +"list. Each line shows both the iteration count and the one-time password. " +"Scratch off the passwords as they are used." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24418 +msgid "" +"Restricting Use of <trademark class=\"registered\">UNIX</trademark> Passwords" +msgstr "限制使用 <trademark class=\"registered\">UNIX</trademark> 密碼" + +#. (itstool) path: sect2/para +#: book.translate.xml:24420 +msgid "" +"<acronym>OPIE</acronym> can restrict the use of <trademark class=\"registered" +"\">UNIX</trademark> passwords based on the IP address of a login session. " +"The relevant file is <filename>/etc/opieaccess</filename>, which is present " +"by default. Refer to <citerefentry><refentrytitle>opieaccess</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information " +"on this file and which security considerations to be aware of when using it." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24427 +msgid "Here is a sample <filename>opieaccess</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24429 +#, no-wrap +msgid "permit 192.168.0.0 255.255.0.0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24431 +msgid "" +"This line allows users whose IP source address (which is vulnerable to " +"spoofing) matches the specified value and mask, to use <trademark class=" +"\"registered\">UNIX</trademark> passwords at any time." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24435 +msgid "" +"If no rules in <filename>opieaccess</filename> are matched, the default is " +"to deny non-<acronym>OPIE</acronym> logins." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:24443 +msgid "TCP Wrapper" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:24446 book.translate.xml:25291 book.translate.xml:29244 +#: book.translate.xml:41331 book.translate.xml:46040 +msgid "" +"<personname><firstname>Tom</firstname><surname>Rhodes</surname></" +"personname><contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:24451 book.translate.xml:53942 +msgid "<primary>TCP Wrapper</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24453 +msgid "" +"<application>TCP Wrapper</application> is a host-based access control system " +"which extends the abilities of <xref linkend=\"network-inetd\"/>. It can be " +"configured to provide logging support, return messages, and connection " +"restrictions for the server daemons under the control of <application>inetd</" +"application>. Refer to <citerefentry><refentrytitle>tcpd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more information " +"about <application>TCP Wrapper</application> and its features." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24461 +msgid "" +"<application>TCP Wrapper</application> should not be considered a " +"replacement for a properly configured firewall. Instead, <application>TCP " +"Wrapper</application> should be used in conjunction with a firewall and " +"other security enhancements in order to provide another layer of protection " +"in the implementation of a security policy." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24469 +msgid "Initial Configuration" +msgstr "初始設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:24471 +msgid "" +"To enable <application>TCP Wrapper</application> in FreeBSD, add the " +"following lines to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24475 +#, no-wrap +msgid "" +"inetd_enable=\"YES\"\n" +"inetd_flags=\"-Ww\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24478 +msgid "Then, properly configure <filename>/etc/hosts.allow</filename>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:24482 +msgid "" +"Unlike other implementations of <application>TCP Wrapper</application>, the " +"use of <filename>hosts.deny</filename> is deprecated in FreeBSD. All " +"configuration options should be placed in <filename>/etc/hosts.allow</" +"filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24489 +msgid "" +"In the simplest configuration, daemon connection policies are set to either " +"permit or block, depending on the options in <filename>/etc/hosts.allow</" +"filename>. The default configuration in FreeBSD is to allow all connections " +"to the daemons started with <application>inetd</application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24495 +msgid "" +"Basic configuration usually takes the form of <literal>daemon : address : " +"action</literal>, where <literal>daemon</literal> is the daemon which " +"<application>inetd</application> started, <literal>address</literal> is a " +"valid hostname, <acronym>IP</acronym> address, or an IPv6 address enclosed " +"in brackets ([ ]), and <literal>action</literal> is either <literal>allow</" +"literal> or <literal>deny</literal>. <application>TCP Wrapper</application> " +"uses a first rule match semantic, meaning that the configuration file is " +"scanned from the beginning for a matching rule. When a match is found, the " +"rule is applied and the search process stops." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24508 +msgid "" +"For example, to allow <acronym>POP</acronym>3 connections via the " +"<package>mail/qpopper</package> daemon, the following lines should be " +"appended to <filename>hosts.allow</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24513 +#, no-wrap +msgid "" +"# This line is required for POP3 connections:\n" +"qpopper : ALL : allow" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24516 +msgid "Whenever this file is edited, restart <application>inetd</application>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24519 book.translate.xml:34154 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service inetd restart</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24523 book.translate.xml:49297 +msgid "Advanced Configuration" +msgstr "進階設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:24525 +msgid "" +"<application>TCP Wrapper</application> provides advanced options to allow " +"more control over the way connections are handled. In some cases, it may be " +"appropriate to return a comment to certain hosts or daemon connections. In " +"other cases, a log entry should be recorded or an email sent to the " +"administrator. Other situations may require the use of a service for local " +"connections only. This is all possible through the use of configuration " +"options known as wildcards, expansion characters, and external command " +"execution." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24535 +msgid "" +"Suppose that a situation occurs where a connection should be denied yet a " +"reason should be sent to the host who attempted to establish that " +"connection. That action is possible with <option>twist</option>. When a " +"connection attempt is made, <option>twist</option> executes a shell command " +"or script. An example exists in <filename>hosts.allow</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24543 +#, no-wrap +msgid "" +"# The rest of the daemons are protected.\n" +"ALL : ALL \\\n" +"\t: severity auth.info \\\n" +"\t: twist /bin/echo \"You are not welcome to use %d from %h.\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24548 +msgid "" +"In this example, the message <quote>You are not allowed to use " +"<replaceable>daemon name</replaceable> from <replaceable>hostname</" +"replaceable>.</quote> will be returned for any daemon not configured in " +"<filename>hosts.allow</filename>. This is useful for sending a reply back to " +"the connection initiator right after the established connection is dropped. " +"Any message returned <emphasis>must</emphasis> be wrapped in quote (<literal>" +"\"</literal>) characters." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:24559 +msgid "" +"It may be possible to launch a denial of service attack on the server if an " +"attacker floods these daemons with connection requests." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24564 +msgid "" +"Another possibility is to use <option>spawn</option>. Like <option>twist</" +"option>, <option>spawn</option> implicitly denies the connection and may be " +"used to run external shell commands or scripts. Unlike <option>twist</" +"option>, <option>spawn</option> will not send a reply back to the host who " +"established the connection. For example, consider the following " +"configuration:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24572 +#, no-wrap +msgid "" +"# We do not allow connections from example.com:\n" +"ALL : .example.com \\\n" +"\t: spawn (/bin/echo %a from %h attempted to access %d >> \\\n" +"\t /var/log/connections.log) \\\n" +"\t: deny" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24578 +msgid "" +"This will deny all connection attempts from <systemitem class=\"fqdomainname" +"\">*.example.com</systemitem> and log the hostname, <acronym>IP</acronym> " +"address, and the daemon to which access was attempted to <filename>/var/log/" +"connections.log</filename>. This example uses the substitution characters " +"<literal>%a</literal> and <literal>%h</literal>. Refer to " +"<citerefentry><refentrytitle>hosts_access</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for the complete list." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24586 +msgid "" +"To match every instance of a daemon, domain, or <acronym>IP</acronym> " +"address, use <literal>ALL</literal>. Another wildcard is <literal>PARANOID</" +"literal> which may be used to match any host which provides an <acronym>IP</" +"acronym> address that may be forged because the <acronym>IP</acronym> " +"address differs from its resolved hostname. In this example, all connection " +"requests to <application>Sendmail</application> which have an <acronym>IP</" +"acronym> address that varies from its hostname will be denied:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24596 +#, no-wrap +msgid "" +"# Block possibly spoofed requests to sendmail:\n" +"sendmail : PARANOID : deny" +msgstr "" + +#. (itstool) path: caution/para +#: book.translate.xml:24600 +msgid "" +"Using the <literal>PARANOID</literal> wildcard will result in denied " +"connections if the client or server has a broken <acronym>DNS</acronym> " +"setup." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24605 +msgid "" +"To learn more about wildcards and their associated functionality, refer to " +"<citerefentry><refentrytitle>hosts_access</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:24609 +msgid "" +"When adding new configuration lines, make sure that any unneeded entries for " +"that daemon are commented out in <filename>hosts.allow</filename>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:24618 +msgid "<application>Kerberos</application>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:24621 +msgid "" +"<personname> <firstname>Tillman</firstname> <surname>Hodgson</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:24631 +msgid "" +"<personname> <firstname>Mark</firstname> <surname>Murray</surname> </" +"personname> <contrib>Based on a contribution by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24641 +msgid "" +"<application>Kerberos</application> is a network authentication protocol " +"which was originally created by the Massachusetts Institute of Technology " +"(<acronym>MIT</acronym>) as a way to securely provide authentication across " +"a potentially hostile network. The <application>Kerberos</application> " +"protocol uses strong cryptography so that both a client and server can prove " +"their identity without sending any unencrypted secrets over the network. " +"<application>Kerberos</application> can be described as an identity-" +"verifying proxy system and as a trusted third-party authentication system. " +"After a user authenticates with <application>Kerberos</application>, their " +"communications can be encrypted to assure privacy and data integrity." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24655 +msgid "" +"The only function of <application>Kerberos</application> is to provide the " +"secure authentication of users and servers on the network. It does not " +"provide authorization or auditing functions. It is recommended that " +"<application>Kerberos</application> be used with other security methods " +"which provide authorization and audit services." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24662 +msgid "" +"The current version of the protocol is version 5, described in <acronym>RFC</" +"acronym> 4120. Several free implementations of this protocol are available, " +"covering a wide range of operating systems. <acronym>MIT</acronym> continues " +"to develop their <application>Kerberos</application> package. It is commonly " +"used in the <acronym>US</acronym> as a cryptography product, and has " +"historically been subject to <acronym>US</acronym> export regulations. In " +"FreeBSD, <acronym>MIT</acronym> <application>Kerberos</application> is " +"available as the <package>security/krb5</package> package or port. The " +"Heimdal <application>Kerberos</application> implementation was explicitly " +"developed outside of the <acronym>US</acronym> to avoid export regulations. " +"The Heimdal <application>Kerberos</application> distribution is included in " +"the base FreeBSD installation, and another distribution with more " +"configurable options is available as <package>security/heimdal</package> in " +"the Ports Collection." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24681 +msgid "" +"In <application>Kerberos</application> users and services are identified as " +"<quote>principals</quote> which are contained within an administrative " +"grouping, called a <quote>realm</quote>. A typical user principal would be " +"of the form <literal><replaceable>user</replaceable>@<replaceable>REALM</" +"replaceable></literal> (realms are traditionally uppercase)." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24689 +msgid "" +"This section provides a guide on how to set up <application>Kerberos</" +"application> using the Heimdal distribution included in FreeBSD." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:24693 +msgid "" +"For purposes of demonstrating a <application>Kerberos</application> " +"installation, the name spaces will be as follows:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:24699 +msgid "" +"The <acronym>DNS</acronym> domain (zone) will be <systemitem class=" +"\"fqdomainname\">example.org</systemitem>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:24704 +msgid "" +"The <application>Kerberos</application> realm will be <literal>EXAMPLE.ORG</" +"literal>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:24710 +msgid "" +"Use real domain names when setting up <application>Kerberos</application>, " +"even if it will run internally. This avoids <acronym>DNS</acronym> problems " +"and assures inter-operation with other <application>Kerberos</application> " +"realms." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24718 +msgid "Setting up a Heimdal <acronym>KDC</acronym>" +msgstr "設定 Heimdal <acronym>KDC</acronym>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:24720 +msgid "" +"<primary>Kerberos5</primary> <secondary>Key Distribution Center</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24725 +msgid "" +"The Key Distribution Center (<acronym>KDC</acronym>) is the centralized " +"authentication service that <application>Kerberos</application> provides, " +"the <quote>trusted third party</quote> of the system. It is the computer " +"that issues <application>Kerberos</application> tickets, which are used for " +"clients to authenticate to servers. Because the <acronym>KDC</acronym> is " +"considered trusted by all other computers in the <application>Kerberos</" +"application> realm, it has heightened security concerns. Direct access to " +"the KDC should be limited." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24737 +msgid "" +"While running a <acronym>KDC</acronym> requires few computing resources, a " +"dedicated machine acting only as a <acronym>KDC</acronym> is recommended for " +"security reasons." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24742 +msgid "" +"To begin setting up a <acronym>KDC</acronym>, add these lines to <filename>/" +"etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24745 +#, no-wrap +msgid "" +"kdc_enable=\"YES\"\n" +"kadmind_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24748 +msgid "Next, edit <filename>/etc/krb5.conf</filename> as follows:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24751 +#, no-wrap +msgid "" +"[libdefaults]\n" +" default_realm = <replaceable>EXAMPLE.ORG</replaceable>\n" +"[realms]\n" +" <replaceable>EXAMPLE.ORG</replaceable> = {\n" +"\tkdc = <replaceable>kerberos.example.org</replaceable>\n" +"\tadmin_server = <replaceable>kerberos.example.org</replaceable>\n" +" }\n" +"[domain_realm]\n" +" <replaceable>.example.org</replaceable> = <replaceable>EXAMPLE.ORG</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24761 +msgid "" +"In this example, the <acronym>KDC</acronym> will use the fully-qualified " +"hostname <systemitem class=\"fqdomainname\">kerberos.example.org</" +"systemitem>. The hostname of the KDC must be resolvable in the <acronym>DNS</" +"acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24766 +msgid "" +"<application>Kerberos</application> can also use the <acronym>DNS</acronym> " +"to locate KDCs, instead of a <literal>[realms]</literal> section in " +"<filename>/etc/krb5.conf</filename>. For large organizations that have their " +"own <acronym>DNS</acronym> servers, the above example could be trimmed to:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24773 +#, no-wrap +msgid "" +"[libdefaults]\n" +" default_realm = <replaceable>EXAMPLE.ORG</replaceable>\n" +"[domain_realm]\n" +" <replaceable>.example.org</replaceable> = <replaceable>EXAMPLE.ORG</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24778 +msgid "" +"With the following lines being included in the <systemitem class=" +"\"fqdomainname\">example.org</systemitem> zone file:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24782 +#, no-wrap +msgid "" +"_kerberos._udp IN SRV 01 00 88 <replaceable>kerberos.example.org</replaceable>.\n" +"_kerberos._tcp IN SRV 01 00 88 <replaceable>kerberos.example.org</replaceable>.\n" +"_kpasswd._udp IN SRV 01 00 464 <replaceable>kerberos.example.org</replaceable>.\n" +"_kerberos-adm._tcp IN SRV 01 00 749 <replaceable>kerberos.example.org</replaceable>.\n" +"_kerberos IN TXT <replaceable>EXAMPLE.ORG</replaceable>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:24789 +msgid "" +"In order for clients to be able to find the <application>Kerberos</" +"application> services, they <emphasis>must</emphasis> have either a fully " +"configured <filename>/etc/krb5.conf</filename> or a minimally configured " +"<filename>/etc/krb5.conf</filename> <emphasis>and</emphasis> a properly " +"configured <acronym>DNS</acronym> server." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24798 +msgid "" +"Next, create the <application>Kerberos</application> database which contains " +"the keys of all principals (users and hosts) encrypted with a master " +"password. It is not required to remember this password as it will be stored " +"in <filename>/var/heimdal/m-key</filename>; it would be reasonable to use a " +"45-character random password for this purpose. To create the master key, run " +"<command>kstash</command> and enter a password:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24807 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>kstash</userinput>\n" +"Master key: <userinput><replaceable>xxxxxxxxxxxxxxxxxxxxxxx</replaceable></userinput>\n" +"Verifying password - Master key: <userinput><replaceable>xxxxxxxxxxxxxxxxxxxxxxx</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24811 +msgid "" +"Once the master key has been created, the database should be initialized. " +"The <application>Kerberos</application> administrative tool " +"<citerefentry><refentrytitle>kadmin</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> can be used on the KDC in a mode that operates directly on the " +"database, without using the <citerefentry><refentrytitle>kadmind</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> network service, as " +"<command>kadmin -l</command>. This resolves the chicken-and-egg problem of " +"trying to connect to the database before it is created. At the " +"<command>kadmin</command> prompt, use <command>init</command> to create the " +"realm's initial database:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24822 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>kadmin -l</userinput>\n" +"kadmin> <userinput>init <replaceable>EXAMPLE.ORG</replaceable></userinput>\n" +"Realm max ticket life [unlimited]:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24826 +msgid "" +"Lastly, while still in <command>kadmin</command>, create the first principal " +"using <command>add</command>. Stick to the default options for the principal " +"for now, as these can be changed later with <command>modify</command>. Type " +"<literal>?</literal> at the prompt to see the available options." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24833 +#, no-wrap +msgid "" +"kadmin> <userinput>add <replaceable>tillman</replaceable></userinput>\n" +"Max ticket life [unlimited]:\n" +"Max renewable life [unlimited]:\n" +"Attributes []:\n" +"Password: <userinput><replaceable>xxxxxxxx</replaceable></userinput>\n" +"Verifying password - Password: <userinput><replaceable>xxxxxxxx</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24840 +msgid "" +"Next, start the <acronym>KDC</acronym> services by running <command>service " +"kdc start</command> and <command>service kadmind start</command>. While " +"there will not be any kerberized daemons running at this point, it is " +"possible to confirm that the <acronym>KDC</acronym> is functioning by " +"obtaining a ticket for the principal that was just created:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24848 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>kinit <replaceable>tillman</replaceable></userinput>\n" +"tillman@EXAMPLE.ORG's Password:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24851 +msgid "" +"Confirm that a ticket was successfully obtained using <command>klist</" +"command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24854 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>klist</userinput>\n" +"Credentials cache: FILE:/tmp/krb5cc_1001\n" +"\tPrincipal: tillman@EXAMPLE.ORG\n" +"\n" +" Issued Expires Principal\n" +"Aug 27 15:37:58 2013 Aug 28 01:37:58 2013 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24861 +msgid "The temporary ticket can be destroyed when the test is finished:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24864 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>kdestroy</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24868 +msgid "Configuring a Server to Use <application>Kerberos</application>" +msgstr "設定伺服器使用 <application>Kerberos</application>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:24871 +msgid "<primary>Kerberos5</primary> <secondary>enabling services</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24876 +msgid "" +"The first step in configuring a server to use <application>Kerberos</" +"application> authentication is to ensure that it has the correct " +"configuration in <filename>/etc/krb5.conf</filename>. The version from the " +"<acronym>KDC</acronym> can be used as-is, or it can be regenerated on the " +"new system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24883 +msgid "" +"Next, create <filename>/etc/krb5.keytab</filename> on the server. This is " +"the main part of <quote>Kerberizing</quote> a service — it corresponds to " +"generating a secret shared between the service and the <acronym>KDC</" +"acronym>. The secret is a cryptographic key, stored in a <quote>keytab</" +"quote>. The keytab contains the server's host key, which allows it and the " +"<acronym>KDC</acronym> to verify each others' identity. It must be " +"transmitted to the server in a secure fashion, as the security of the server " +"can be broken if the key is made public. Typically, the <filename>keytab</" +"filename> is generated on an administrator's trusted machine using " +"<command>kadmin</command>, then securely transferred to the server, e.g., " +"with <citerefentry><refentrytitle>scp</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>; it can also be created directly on the server if " +"that is consistent with the desired security policy. It is very important " +"that the keytab is transmitted to the server in a secure fashion: if the key " +"is known by some other party, that party can impersonate any user to the " +"server! Using <command>kadmin</command> on the server directly is " +"convenient, because the entry for the host principal in the <acronym>KDC</" +"acronym> database is also created using <command>kadmin</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24906 +msgid "" +"Of course, <command>kadmin</command> is a kerberized service; a " +"<application>Kerberos</application> ticket is needed to authenticate to the " +"network service, but to ensure that the user running <command>kadmin</" +"command> is actually present (and their session has not been hijacked), " +"<command>kadmin</command> will prompt for the password to get a fresh " +"ticket. The principal authenticating to the kadmin service must be permitted " +"to use the <command>kadmin</command> interface, as specified in " +"<filename>kadmind.acl</filename>. See the section titled <quote>Remote " +"administration</quote> in <command>info heimdal</command> for details on " +"designing access control lists. Instead of enabling remote <command>kadmin</" +"command> access, the administrator could securely connect to the " +"<acronym>KDC</acronym> via the local console or " +"<citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, and perform administration locally using <command>kadmin -l</" +"command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24923 +msgid "" +"After installing <filename>/etc/krb5.conf</filename>, use <command>add --" +"random-key</command> in <command>kadmin</command>. This adds the server's " +"host principal to the database, but does not extract a copy of the host " +"principal key to a keytab. To generate the keytab, use <command>ext</" +"command> to extract the server's host principal key to its own keytab:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24931 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>kadmin</userinput>\n" +"kadmin><userinput> add --random-key host/myserver.example.org</userinput>\n" +"Max ticket life [unlimited]:\n" +"Max renewable life [unlimited]:\n" +"Principal expiration time [never]:\n" +"Password expiration time [never]:\n" +"Attributes []:\n" +"kadmin><userinput> ext_keytab <replaceable>host/myserver.example.org</replaceable></userinput>\n" +"kadmin><userinput> exit</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24941 +msgid "" +"Note that <command>ext_keytab</command> stores the extracted key in " +"<filename>/etc/krb5.keytab</filename> by default. This is good when being " +"run on the server being kerberized, but the <command>--keytab " +"<replaceable>path/to/file</replaceable></command> argument should be used " +"when the keytab is being extracted elsewhere:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:24949 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>kadmin</userinput>\n" +"kadmin><userinput> ext_keytab --keytab=/tmp/example.keytab <replaceable>host/myserver.example.org</replaceable></userinput>\n" +"kadmin><userinput> exit</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24953 +msgid "" +"The keytab can then be securely copied to the server using " +"<citerefentry><refentrytitle>scp</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> or a removable media. Be sure to specify a non-default keytab " +"name to avoid inserting unneeded keys into the system's keytab." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24958 +msgid "" +"At this point, the server can read encrypted messages from the <acronym>KDC</" +"acronym> using its shared key, stored in <filename>krb5.keytab</filename>. " +"It is now ready for the <application>Kerberos</application>-using services " +"to be enabled. One of the most common such services is " +"<citerefentry><refentrytitle>sshd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, which supports <application>Kerberos</application> via the " +"<acronym>GSS-API</acronym>. In <filename>/etc/ssh/sshd_config</filename>, " +"add the line:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:24969 +#, no-wrap +msgid "GSSAPIAuthentication yes" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24971 +msgid "" +"After making this change, <citerefentry><refentrytitle>sshd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> must be restared for " +"the new configuration to take effect: <command>service sshd restart</" +"command>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:24977 +msgid "Configuring a Client to Use <application>Kerberos</application>" +msgstr "設定客戶端使用 <application>Kerberos</application>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:24980 +msgid "<primary>Kerberos5</primary> <secondary>configure clients</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24985 +msgid "" +"As it was for the server, the client requires configuration in <filename>/" +"etc/krb5.conf</filename>. Copy the file in place (securely) or re-enter it " +"as needed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:24989 +msgid "" +"Test the client by using <command>kinit</command>, <command>klist</command>, " +"and <command>kdestroy</command> from the client to obtain, show, and then " +"delete a ticket for an existing principal. <application>Kerberos</" +"application> applications should also be able to connect to " +"<application>Kerberos</application> enabled servers. If that does not work " +"but obtaining a ticket does, the problem is likely with the server and not " +"with the client or the <acronym>KDC</acronym>. In the case of kerberized " +"<citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, <acronym>GSS-API</acronym> is disabled by default, so test " +"using <command>ssh -o GSSAPIAuthentication=yes <replaceable>hostname</" +"replaceable></command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25003 +msgid "" +"When testing a Kerberized application, try using a packet sniffer such as " +"<command>tcpdump</command> to confirm that no sensitive information is sent " +"in the clear." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25007 +msgid "" +"Various <application>Kerberos</application> client applications are " +"available. With the advent of a bridge so that applications using " +"<acronym>SASL</acronym> for authentication can use <acronym>GSS-API</" +"acronym> mechanisms as well, large classes of client applications can use " +"<application>Kerberos</application> for authentication, from Jabber clients " +"to <acronym>IMAP</acronym> clients." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:25015 +msgid "<primary><filename>.k5login</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:25019 +msgid "<primary><filename>.k5users</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25023 +msgid "" +"Users within a realm typically have their <application>Kerberos</" +"application> principal mapped to a local user account. Occasionally, one " +"needs to grant access to a local user account to someone who does not have a " +"matching <application>Kerberos</application> principal. For example, " +"<systemitem class=\"username\">tillman@EXAMPLE.ORG</systemitem> may need " +"access to the local user account <systemitem class=\"username" +"\">webdevelopers</systemitem>. Other principals may also need access to that " +"local account." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25032 +msgid "" +"The <filename>.k5login</filename> and <filename>.k5users</filename> files, " +"placed in a user's home directory, can be used to solve this problem. For " +"example, if the following <filename>.k5login</filename> is placed in the " +"home directory of <systemitem class=\"username\">webdevelopers</systemitem>, " +"both principals listed will have access to that account without requiring a " +"shared password:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25040 +#, no-wrap +msgid "" +"tillman@example.org\n" +"jdoe@example.org" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25043 +msgid "" +"Refer to <citerefentry><refentrytitle>ksu</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> for more information about <filename>.k5users</" +"filename>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:25048 +msgid "<acronym>MIT</acronym> Differences" +msgstr "與 <acronym>MIT</acronym> 的差異" + +#. (itstool) path: sect2/para +#: book.translate.xml:25050 +msgid "" +"The major difference between the <acronym>MIT</acronym> and Heimdal " +"implementations is that <command>kadmin</command> has a different, but " +"equivalent, set of commands and uses a different protocol. If the " +"<acronym>KDC</acronym> is <acronym>MIT</acronym>, the Heimdal version of " +"<command>kadmin</command> cannot be used to administer the <acronym>KDC</" +"acronym> remotely, and vice versa." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25058 +msgid "" +"Client applications may also use slightly different command line options to " +"accomplish the same tasks. Following the instructions at <link xlink:href=" +"\"http://web.mit.edu/Kerberos/www/\">http://web.mit.edu/Kerberos/www/</link> " +"is recommended. Be careful of path issues: the <acronym>MIT</acronym> port " +"installs into <filename>/usr/local/</filename> by default, and the FreeBSD " +"system applications run instead of the <acronym>MIT</acronym> versions if " +"<envar>PATH</envar> lists the system directories first." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25068 +msgid "" +"When using MIT Kerberos as a <acronym>KDC</acronym> on FreeBSD, the " +"following edits should also be made to <filename>rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25072 +#, no-wrap +msgid "" +"kerberos5_server=\"/usr/local/sbin/krb5kdc\"\n" +"kadmind5_server=\"/usr/local/sbin/kadmind\"\n" +"kerberos5_server_flags=\"\"\n" +"kerberos5_server_enable=\"YES\"\n" +"kadmind5_server_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:25080 +msgid "<application>Kerberos</application> Tips, Tricks, and Troubleshooting" +msgstr "<application>Kerberos</application> 提示、技巧與疑難排解" + +#. (itstool) path: sect2/para +#: book.translate.xml:25083 +msgid "" +"When configuring and troubleshooting <application>Kerberos</application>, " +"keep the following points in mind:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25089 +msgid "" +"When using either Heimdal or <acronym>MIT</acronym> <application>Kerberos</" +"application> from ports, ensure that the <envar>PATH</envar> lists the " +"port's versions of the client applications before the system versions." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25096 +msgid "" +"If all the computers in the realm do not have synchronized time settings, " +"authentication may fail. <xref linkend=\"network-ntp\"/> describes how to " +"synchronize clocks using <acronym>NTP</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25103 +msgid "" +"If the hostname is changed, the <systemitem class=\"username\">host/</" +"systemitem> principal must be changed and the keytab updated. This also " +"applies to special keytab entries like the <systemitem class=\"username" +"\">HTTP/</systemitem> principal used for Apache's <package>www/" +"mod_auth_kerb</package>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25110 +msgid "" +"All hosts in the realm must be both forward and reverse resolvable in " +"<acronym>DNS</acronym> or, at a minimum, exist in <filename>/etc/hosts</" +"filename>. CNAMEs will work, but the A and PTR records must be correct and " +"in place. The error message for unresolvable hosts is not intuitive: " +"<errorname>Kerberos5 refuses authentication because Read req failed: Key " +"table entry not found</errorname>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25121 +msgid "" +"Some operating systems that act as clients to the <acronym>KDC</acronym> do " +"not set the permissions for <command>ksu</command> to be setuid <systemitem " +"class=\"username\">root</systemitem>. This means that <command>ksu</command> " +"does not work. This is a permissions problem, not a <acronym>KDC</acronym> " +"error." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25130 +msgid "" +"With <acronym>MIT</acronym> <application>Kerberos</application>, to allow a " +"principal to have a ticket life longer than the default lifetime of ten " +"hours, use <command>modify_principal</command> at the " +"<citerefentry><refentrytitle>kadmin</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> prompt to change the <literal>maxlife</literal> of both the " +"principal in question and the <systemitem class=\"username\">krbtgt</" +"systemitem> principal. The principal can then use <command>kinit -l</" +"command> to request a ticket with a longer lifetime." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25144 +msgid "" +"When running a packet sniffer on the <acronym>KDC</acronym> to aid in " +"troubleshooting while running <command>kinit</command> from a workstation, " +"the Ticket Granting Ticket (<acronym>TGT</acronym>) is sent immediately, " +"even before the password is typed. This is because the " +"<application>Kerberos</application> server freely transmits a <acronym>TGT</" +"acronym> to any unauthorized request. However, every <acronym>TGT</acronym> " +"is encrypted in a key derived from the user's password. When a user types " +"their password, it is not sent to the <acronym>KDC</acronym>, it is instead " +"used to decrypt the <acronym>TGT</acronym> that <command>kinit</command> " +"already obtained. If the decryption process results in a valid ticket with a " +"valid time stamp, the user has valid <application>Kerberos</application> " +"credentials. These credentials include a session key for establishing secure " +"communications with the <application>Kerberos</application> server in the " +"future, as well as the actual <acronym>TGT</acronym>, which is encrypted " +"with the <application>Kerberos</application> server's own key. This second " +"layer of encryption allows the <application>Kerberos</application> server to " +"verify the authenticity of each <acronym>TGT</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25171 +msgid "" +"Host principals can have a longer ticket lifetime. If the user principal has " +"a lifetime of a week but the host being connected to has a lifetime of nine " +"hours, the user cache will have an expired host principal and the ticket " +"cache will not work as expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25179 +msgid "" +"When setting up <filename>krb5.dict</filename> to prevent specific bad " +"passwords from being used as described in " +"<citerefentry><refentrytitle>kadmind</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, remember that it only applies to principals that " +"have a password policy assigned to them. The format used in <filename>krb5." +"dict</filename> is one string per line. Creating a symbolic link to " +"<filename>/usr/share/dict/words</filename> might be useful." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:25193 +msgid "Mitigating <application>Kerberos</application> Limitations" +msgstr "減輕 <application>Kerberos</application> 的限制" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:25196 +msgid "" +"<primary>Kerberos5</primary> <secondary>limitations and shortcomings</" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25201 +msgid "" +"Since <application>Kerberos</application> is an all or nothing approach, " +"every service enabled on the network must either be modified to work with " +"<application>Kerberos</application> or be otherwise secured against network " +"attacks. This is to prevent user credentials from being stolen and re-used. " +"An example is when <application>Kerberos</application> is enabled on all " +"remote shells but the non-Kerberized <acronym>POP3</acronym> mail server " +"sends passwords in plain text." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25211 +msgid "" +"The <acronym>KDC</acronym> is a single point of failure. By design, the " +"<acronym>KDC</acronym> must be as secure as its master password database. " +"The <acronym>KDC</acronym> should have absolutely no other services running " +"on it and should be physically secure. The danger is high because " +"<application>Kerberos</application> stores all passwords encrypted with the " +"same master key which is stored as a file on the <acronym>KDC</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25220 +msgid "" +"A compromised master key is not quite as bad as one might fear. The master " +"key is only used to encrypt the <application>Kerberos</application> database " +"and as a seed for the random number generator. As long as access to the " +"<acronym>KDC</acronym> is secure, an attacker cannot do much with the master " +"key." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25227 +msgid "" +"If the <acronym>KDC</acronym> is unavailable, network services are unusable " +"as authentication cannot be performed. This can be alleviated with a single " +"master <acronym>KDC</acronym> and one or more slaves, and with careful " +"implementation of secondary or fall-back authentication using <acronym>PAM</" +"acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25234 +msgid "" +"<application>Kerberos</application> allows users, hosts and services to " +"authenticate between themselves. It does not have a mechanism to " +"authenticate the <acronym>KDC</acronym> to the users, hosts, or services. " +"This means that a trojanned <command>kinit</command> could record all user " +"names and passwords. File system integrity checking tools like " +"<package>security/tripwire</package> can alleviate this." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:25245 +msgid "Resources and Further Information" +msgstr "相關資源與延伸資訊" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:25247 +msgid "<primary>Kerberos5</primary> <secondary>external resources</secondary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25254 +msgid "" +"<link xlink:href=\"http://www.faqs.org/faqs/Kerberos-faq/general/preamble." +"html\"> The <application>Kerberos</application> FAQ</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25260 +msgid "" +"<link xlink:href=\"http://web.mit.edu/Kerberos/www/dialogue.html\">Designing " +"an Authentication System: a Dialog in Four Scenes</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25266 +msgid "" +"<link xlink:href=\"http://www.ietf.org/rfc/rfc4120.txt?number=4120\">RFC " +"4120, The <application>Kerberos</application> Network Authentication Service " +"(V5)</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25272 +msgid "" +"<link xlink:href=\"http://web.mit.edu/Kerberos/www/\"><acronym>MIT</acronym> " +"<application>Kerberos</application> home page</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25278 +msgid "" +"<link xlink:href=\"http://www.pdc.kth.se/heimdal/\">Heimdal " +"<application>Kerberos</application> home page</link>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:25288 +msgid "OpenSSL" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:25296 +msgid "<primary>security</primary> <secondary>OpenSSL</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25301 +msgid "" +"<application>OpenSSL</application> is an open source implementation of the " +"<acronym>SSL</acronym> and <acronym>TLS</acronym> protocols. It provides an " +"encryption transport layer on top of the normal communications layer, " +"allowing it to be intertwined with many network applications and services." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25308 +msgid "" +"The version of <application>OpenSSL</application> included in FreeBSD " +"supports the Secure Sockets Layer v2/v3 (SSLv2/SSLv3) and Transport Layer " +"Security v1 (TLSv1) network security protocols and can be used as a general " +"cryptographic library." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25314 +msgid "" +"<application>OpenSSL</application> is often used to encrypt authentication " +"of mail clients and to secure web based transactions such as credit card " +"payments. Some ports, such as <package>www/apache24</package> and " +"<package>databases/postgresql91-server</package>, include a compile option " +"for building with <application>OpenSSL</application>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25322 +msgid "" +"FreeBSD provides two versions of <application>OpenSSL</application>: one in " +"the base system and one in the Ports Collection. Users can choose which " +"version to use by default for other ports using the following knobs:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25329 +msgid "" +"WITH_OPENSSL_PORT: when set, the port will use <application>OpenSSL</" +"application> from the <package>security/openssl</package> port, even if the " +"version in the base system is up to date or newer." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25336 +msgid "" +"WITH_OPENSSL_BASE: when set, the port will compile against " +"<application>OpenSSL</application> provided by the base system." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25342 +msgid "" +"Another common use of <application>OpenSSL</application> is to provide " +"certificates for use with software applications. Certificates can be used to " +"verify the credentials of a company or individual. If a certificate has not " +"been signed by an external <firstterm>Certificate Authority</firstterm> " +"(<acronym>CA</acronym>), such as <link xlink:href=\"http://www.verisign.com" +"\">http://www.verisign.com</link>, the application that uses the certificate " +"will produce a warning. There is a cost associated with obtaining a signed " +"certificate and using a signed certificate is not mandatory as certificates " +"can be self-signed. However, using an external authority will prevent " +"warnings and can put users at ease." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25355 +msgid "" +"This section demonstrates how to create and use certificates on a FreeBSD " +"system. Refer to <xref linkend=\"ldap-config\"/> for an example of how to " +"create a <acronym>CA</acronym> for signing one's own certificates." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25360 +msgid "" +"For more information about <acronym>SSL</acronym>, read the free <link xlink:" +"href=\"https://www.feistyduck.com/books/openssl-cookbook/\">OpenSSL " +"Cookbook</link>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:25365 +msgid "Generating Certificates" +msgstr "產生憑証" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:25367 +msgid "" +"<primary>OpenSSL</primary> <secondary>certificate generation</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25372 +msgid "" +"To generate a certificate that will be signed by an external <acronym>CA</" +"acronym>, issue the following command and input the information requested at " +"the prompts. This input information will be written to the certificate. At " +"the <literal>Common Name</literal> prompt, input the fully qualified name " +"for the system that will use the certificate. If this name does not match " +"the server, the application verifying the certificate will issue a warning " +"to the user, rendering the verification provided by the certificate as " +"useless." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:25382 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>openssl req -new -nodes -out req.pem -keyout cert.key -sha256 -newkey rsa:2048</userinput>\n" +"Generating a 2048 bit RSA private key\n" +"..................+++\n" +".............................................................+++\n" +"writing new private key to 'cert.key'\n" +"-----\n" +"You are about to be asked to enter information that will be incorporated\n" +"into your certificate request.\n" +"What you are about to enter is what is called a Distinguished Name or a DN.\n" +"There are quite a few fields but you can leave some blank\n" +"For some fields there will be a default value,\n" +"If you enter '.', the field will be left blank.\n" +"-----\n" +"Country Name (2 letter code) [AU]:<userinput><replaceable>US</replaceable></userinput>\n" +"State or Province Name (full name) [Some-State]:<userinput><replaceable>PA</replaceable></userinput>\n" +"Locality Name (eg, city) []:<userinput><replaceable>Pittsburgh</replaceable></userinput>\n" +"Organization Name (eg, company) [Internet Widgits Pty Ltd]:<userinput><replaceable>My Company</replaceable></userinput>\n" +"Organizational Unit Name (eg, section) []:<userinput><replaceable>Systems Administrator</replaceable></userinput>\n" +"Common Name (eg, YOUR name) []:<userinput><replaceable>localhost.example.org</replaceable></userinput>\n" +"Email Address []:<userinput><replaceable>trhodes@FreeBSD.org</replaceable></userinput>\n" +"\n" +"Please enter the following 'extra' attributes\n" +"to be sent with your certificate request\n" +"A challenge password []:\n" +"An optional company name []:<userinput><replaceable>Another Name</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25408 +msgid "" +"Other options, such as the expire time and alternate encryption algorithms, " +"are available when creating a certificate. A complete list of options is " +"described in <citerefentry><refentrytitle>openssl</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25413 +msgid "" +"This command will create two files in the current directory. The certificate " +"request, <filename>req.pem</filename>, can be sent to a <acronym>CA</" +"acronym> who will validate the entered credentials, sign the request, and " +"return the signed certificate. The second file, <filename>cert.key</" +"filename>, is the private key for the certificate and should be stored in a " +"secure location. If this falls in the hands of others, it can be used to " +"impersonate the user or the server." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25424 +msgid "" +"Alternately, if a signature from a <acronym>CA</acronym> is not required, a " +"self-signed certificate can be created. First, generate the <acronym>RSA</" +"acronym> key:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:25428 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>openssl genrsa -rand -genkey -out cert.key 2048</userinput>\n" +"0 semi-random bytes loaded\n" +"Generating RSA private key, 2048 bit long modulus\n" +".............................................+++\n" +".................................................................................................................+++\n" +"e is 65537 (0x10001)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25435 +msgid "" +"Use this key to create a self-signed certificate. Follow the usual prompts " +"for creating a certificate:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:25438 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>openssl req -new -x509 -days 365 -key cert.key -out cert.crt -sha256</userinput>\n" +"You are about to be asked to enter information that will be incorporated\n" +"into your certificate request.\n" +"What you are about to enter is what is called a Distinguished Name or a DN.\n" +"There are quite a few fields but you can leave some blank\n" +"For some fields there will be a default value,\n" +"If you enter '.', the field will be left blank.\n" +"-----\n" +"Country Name (2 letter code) [AU]:<userinput><replaceable>US</replaceable></userinput>\n" +"State or Province Name (full name) [Some-State]:<userinput><replaceable>PA</replaceable></userinput>\n" +"Locality Name (eg, city) []:<userinput><replaceable>Pittsburgh</replaceable></userinput>\n" +"Organization Name (eg, company) [Internet Widgits Pty Ltd]:<userinput><replaceable>My Company</replaceable></userinput>\n" +"Organizational Unit Name (eg, section) []:<userinput><replaceable>Systems Administrator</replaceable></userinput>\n" +"Common Name (e.g. server FQDN or YOUR name) []:<userinput><replaceable>localhost.example.org</replaceable></userinput>\n" +"Email Address []:<userinput><replaceable>trhodes@FreeBSD.org</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25454 +msgid "" +"This will create two new files in the current directory: a private key file " +"<filename>cert.key</filename>, and the certificate itself, <filename>cert." +"crt</filename>. These should be placed in a directory, preferably under " +"<filename>/etc/ssl/</filename>, which is readable only by <systemitem class=" +"\"username\">root</systemitem>. Permissions of <literal>0700</literal> are " +"appropriate for these files and can be set using <command>chmod</command>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:25465 +msgid "Using Certificates" +msgstr "使用憑證" + +#. (itstool) path: sect2/para +#: book.translate.xml:25467 +msgid "" +"One use for a certificate is to encrypt connections to the " +"<application>Sendmail</application> mail server in order to prevent the use " +"of clear text authentication." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:25472 +msgid "" +"Some mail clients will display an error if the user has not installed a " +"local copy of the certificate. Refer to the documentation included with the " +"software for more information on certificate installation." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25478 +msgid "" +"In FreeBSD 10.0-RELEASE and above, it is possible to create a self-signed " +"certificate for <application>Sendmail</application> automatically. To enable " +"this, add the following lines to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25484 +#, no-wrap +msgid "" +"sendmail_enable=\"YES\"\n" +"sendmail_cert_create=\"YES\"\n" +"sendmail_cert_cn=\"<replaceable>localhost.example.org</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25488 +msgid "" +"This will automatically create a self-signed certificate, <filename>/etc/" +"mail/certs/host.cert</filename>, a signing key, <filename>/etc/mail/certs/" +"host.key</filename>, and a <acronym>CA</acronym> certificate, <filename>/etc/" +"mail/certs/cacert.pem</filename>. The certificate will use the " +"<literal>Common Name</literal> specified in <option>sendmail_cert_cn</" +"option>. After saving the edits, restart <application>Sendmail</application>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:25497 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service sendmail restart</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25499 +msgid "" +"If all went well, there will be no error messages in <filename>/var/log/" +"maillog</filename>. For a simple test, connect to the mail server's " +"listening port using <command>telnet</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:25504 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>telnet <replaceable>example.com</replaceable> 25</userinput>\n" +"Trying 192.0.34.166...\n" +"Connected to example.com.\n" +"Escape character is '^]'.\n" +"220 example.com ESMTP Sendmail 8.14.7/8.14.7; Fri, 18 Apr 2014 11:50:32 -0400 (EDT)\n" +"<userinput>ehlo <replaceable>example.com</replaceable></userinput>\n" +"250-example.com Hello example.com [192.0.34.166], pleased to meet you\n" +"250-ENHANCEDSTATUSCODES\n" +"250-PIPELINING\n" +"250-8BITMIME\n" +"250-SIZE\n" +"250-DSN\n" +"250-ETRN\n" +"250-AUTH LOGIN PLAIN\n" +"250-STARTTLS\n" +"250-DELIVERBY\n" +"250 HELP\n" +"<userinput>quit</userinput>\n" +"221 2.0.0 example.com closing connection\n" +"Connection closed by foreign host." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25525 +msgid "" +"If the <literal>STARTTLS</literal> line appears in the output, everything is " +"working correctly." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:25532 +msgid "<acronym>VPN</acronym> over <acronym>IPsec</acronym>" +msgstr "" + +#. (itstool) path: affiliation/address +#: book.translate.xml:25542 +#, no-wrap +msgid "" +"\n" +"\t <email>nik@FreeBSD.org</email>\n" +"\t " +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:25536 +msgid "" +"<personname> <firstname>Nik</firstname> <surname>Clayton</surname> </" +"personname> <affiliation> <_:address-1/> </affiliation> <contrib>Written by " +"</contrib>" +msgstr "" + +#. (itstool) path: affiliation/address +#: book.translate.xml:25557 +#, no-wrap +msgid "" +"\n" +"\t <email>hmp@FreeBSD.org</email>\n" +"\t " +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:25551 +msgid "" +"<personname> <firstname>Hiten M.</firstname> <surname>Pandya</surname> </" +"personname> <affiliation> <_:address-1/> </affiliation> <contrib>Written by " +"</contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:25566 +msgid "<primary><acronym>IPsec</acronym></primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25570 +msgid "" +"Internet Protocol Security (<acronym>IPsec</acronym>) is a set of protocols " +"which sit on top of the Internet Protocol (<acronym>IP</acronym>) layer. It " +"allows two or more hosts to communicate in a secure manner by authenticating " +"and encrypting each <acronym>IP</acronym> packet of a communication session. " +"The FreeBSD <acronym>IPsec</acronym> network stack is based on the <link " +"xlink:href=\"http://www.kame.net/\">http://www.kame.net/</link> " +"implementation and supports both <acronym>IPv4</acronym> and <acronym>IPv6</" +"acronym> sessions." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:25580 +msgid "<primary><acronym>IPsec</acronym></primary> <secondary>ESP</secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:25585 +msgid "<primary><acronym>IPsec</acronym></primary> <secondary>AH</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25590 +msgid "<acronym>IPsec</acronym> is comprised of the following sub-protocols:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25595 +msgid "" +"<emphasis>Encapsulated Security Payload (<acronym>ESP</acronym>)</emphasis>: " +"this protocol protects the <acronym>IP</acronym> packet data from third " +"party interference by encrypting the contents using symmetric cryptography " +"algorithms such as Blowfish and <acronym>3DES</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25604 +msgid "" +"<emphasis>Authentication Header (<acronym>AH</acronym>)</emphasis>): this " +"protocol protects the <acronym>IP</acronym> packet header from third party " +"interference and spoofing by computing a cryptographic checksum and hashing " +"the <acronym>IP </acronym> packet header fields with a secure hashing " +"function. This is then followed by an additional header that contains the " +"hash, to allow the information in the packet to be authenticated." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25616 +msgid "" +"<emphasis>IP Payload Compression Protocol (<acronym>IPComp</acronym></" +"emphasis>): this protocol tries to increase communication performance by " +"compressing the <acronym>IP </acronym> payload in order to reduce the amount " +"of data sent." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25624 +msgid "" +"These protocols can either be used together or separately, depending on the " +"environment." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:25627 +msgid "<primary><acronym>VPN</acronym></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:25631 +msgid "<primary>virtual private network</primary> <see>VPN</see>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25636 +msgid "" +"<acronym>IPsec</acronym> supports two modes of operation. The first mode, " +"<firstterm>Transport Mode</firstterm>, protects communications between two " +"hosts. The second mode, <firstterm>Tunnel Mode</firstterm>, is used to build " +"virtual tunnels, commonly known as Virtual Private Networks (<acronym>VPN</" +"acronym>s). Consult <citerefentry><refentrytitle>ipsec</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> for detailed " +"information on the <acronym>IPsec</acronym> subsystem in FreeBSD." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25645 +msgid "" +"To add <acronym>IPsec</acronym> support to the kernel, add the following " +"options to the custom kernel configuration file and rebuild the kernel using " +"the instructions in <xref linkend=\"kernelconfig\"/>:" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:25649 +msgid "<primary>kernel options</primary> <secondary>IPSEC</secondary>" +msgstr "<primary>核心選項</primary> <secondary>IPSEC</secondary>" + +#. (itstool) path: sect1/screen +#: book.translate.xml:25654 +#, no-wrap +msgid "" +"options IPSEC #IP security\n" +"device crypto" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:25657 +msgid "<primary>kernel options</primary> <secondary>IPSEC_DEBUG</secondary>" +msgstr "<primary>核心選項</primary> <secondary>IPSEC_DEBUG</secondary>" + +#. (itstool) path: sect1/para +#: book.translate.xml:25662 +msgid "" +"If <acronym>IPsec</acronym> debugging support is desired, the following " +"kernel option should also be added:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:25665 +#, no-wrap +msgid "options IPSEC_DEBUG #debug for IP security" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25667 +msgid "" +"This rest of this chapter demonstrates the process of setting up an " +"<acronym>IPsec</acronym> <acronym>VPN</acronym> between a home network and a " +"corporate network. In the example scenario:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25674 +msgid "" +"Both sites are connected to the Internet through a gateway that is running " +"FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25679 +msgid "" +"The gateway on each network has at least one external <acronym>IP</acronym> " +"address. In this example, the corporate <acronym>LAN</acronym>'s external " +"<acronym>IP</acronym> address is <systemitem class=\"ipaddress\">172.16.5.4</" +"systemitem> and the home <acronym>LAN</acronym>'s external <acronym>IP</" +"acronym> address is <systemitem class=\"ipaddress\">192.168.1.12</" +"systemitem>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:25688 +msgid "" +"The internal addresses of the two networks can be either public or private " +"<acronym>IP</acronym> addresses. However, the address space must not " +"collide. For example, both networks cannot use <systemitem class=\"ipaddress" +"\">192.168.1.x</systemitem>. In this example, the corporate <acronym>LAN</" +"acronym>'s internal <acronym>IP</acronym> address is <systemitem class=" +"\"ipaddress\">10.246.38.1</systemitem> and the home <acronym>LAN</acronym>'s " +"internal <acronym>IP</acronym> address is <systemitem class=\"ipaddress" +"\">10.0.0.5</systemitem>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:25701 +msgid "Configuring a <acronym>VPN</acronym> on FreeBSD" +msgstr "在 FreeBSD 上設定 <acronym>VPN</acronym>" + +#. (itstool) path: affiliation/address +#: book.translate.xml:25710 +#, no-wrap +msgid "" +"\n" +"\t\t<email>trhodes@FreeBSD.org</email>\n" +"\t " +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:25704 +msgid "" +"<personname> <firstname>Tom</firstname> <surname>Rhodes</surname> </" +"personname> <affiliation> <_:address-1/> </affiliation> <contrib>Written by " +"</contrib>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25719 +msgid "" +"To begin, <package>security/ipsec-tools</package> must be installed from the " +"Ports Collection. This software provides a number of applications which " +"support the configuration." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25723 +msgid "" +"The next requirement is to create two <citerefentry><refentrytitle>gif</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> pseudo-devices which " +"will be used to tunnel packets and allow both networks to communicate " +"properly. As <systemitem class=\"username\">root</systemitem>, run the " +"following commands, replacing <replaceable>internal</replaceable> and " +"<replaceable>external</replaceable> with the real IP addresses of the " +"internal and external interfaces of the two gateways:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:25731 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig gif0 create</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig gif0 <replaceable>internal1 internal2</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig gif0 tunnel <replaceable>external1 external2</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25735 +msgid "" +"Verify the setup on each gateway, using <command>ifconfig</command>. Here is " +"the output from Gateway 1:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25739 +#, no-wrap +msgid "" +"gif0: flags=8051 mtu 1280\n" +"tunnel inet 172.16.5.4 --> 192.168.1.12\n" +"inet6 fe80::2e0:81ff:fe02:5881%gif0 prefixlen 64 scopeid 0x6\n" +"inet 10.246.38.1 --> 10.0.0.5 netmask 0xffffff00" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25744 +msgid "Here is the output from Gateway 2:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25746 +#, no-wrap +msgid "" +"gif0: flags=8051 mtu 1280\n" +"tunnel inet 192.168.1.12 --> 172.16.5.4\n" +"inet 10.0.0.5 --> 10.246.38.1 netmask 0xffffff00\n" +"inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25751 +msgid "" +"Once complete, both internal <acronym>IP</acronym> addresses should be " +"reachable using <citerefentry><refentrytitle>ping</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25754 +#, no-wrap +msgid "" +"priv-net# ping 10.0.0.5\n" +"PING 10.0.0.5 (10.0.0.5): 56 data bytes\n" +"64 bytes from 10.0.0.5: icmp_seq=0 ttl=64 time=42.786 ms\n" +"64 bytes from 10.0.0.5: icmp_seq=1 ttl=64 time=19.255 ms\n" +"64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=20.440 ms\n" +"64 bytes from 10.0.0.5: icmp_seq=3 ttl=64 time=21.036 ms\n" +"--- 10.0.0.5 ping statistics ---\n" +"4 packets transmitted, 4 packets received, 0% packet loss\n" +"round-trip min/avg/max/stddev = 19.255/25.879/42.786/9.782 ms\n" +"\n" +"corp-net# ping 10.246.38.1\n" +"PING 10.246.38.1 (10.246.38.1): 56 data bytes\n" +"64 bytes from 10.246.38.1: icmp_seq=0 ttl=64 time=28.106 ms\n" +"64 bytes from 10.246.38.1: icmp_seq=1 ttl=64 time=42.917 ms\n" +"64 bytes from 10.246.38.1: icmp_seq=2 ttl=64 time=127.525 ms\n" +"64 bytes from 10.246.38.1: icmp_seq=3 ttl=64 time=119.896 ms\n" +"64 bytes from 10.246.38.1: icmp_seq=4 ttl=64 time=154.524 ms\n" +"--- 10.246.38.1 ping statistics ---\n" +"5 packets transmitted, 5 packets received, 0% packet loss\n" +"round-trip min/avg/max/stddev = 28.106/94.594/154.524/49.814 ms" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25775 +msgid "" +"As expected, both sides have the ability to send and receive <acronym>ICMP</" +"acronym> packets from the privately configured addresses. Next, both " +"gateways must be told how to route packets in order to correctly send " +"traffic from either network. The following commands will achieve this goal:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:25782 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>corp-net# route add <replaceable>10.0.0.0 10.0.0.5 255.255.255.0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>corp-net# route add net <replaceable>10.0.0.0: gateway 10.0.0.5</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>priv-net# route add <replaceable>10.246.38.0 10.246.38.1 255.255.255.0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>priv-net# route add host <replaceable>10.246.38.0: gateway 10.246.38.1</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25787 +msgid "" +"At this point, internal machines should be reachable from each gateway as " +"well as from machines behind the gateways. Again, use " +"<citerefentry><refentrytitle>ping</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to confirm:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25791 +#, no-wrap +msgid "" +"corp-net# ping 10.0.0.8\n" +"PING 10.0.0.8 (10.0.0.8): 56 data bytes\n" +"64 bytes from 10.0.0.8: icmp_seq=0 ttl=63 time=92.391 ms\n" +"64 bytes from 10.0.0.8: icmp_seq=1 ttl=63 time=21.870 ms\n" +"64 bytes from 10.0.0.8: icmp_seq=2 ttl=63 time=198.022 ms\n" +"64 bytes from 10.0.0.8: icmp_seq=3 ttl=63 time=22.241 ms\n" +"64 bytes from 10.0.0.8: icmp_seq=4 ttl=63 time=174.705 ms\n" +"--- 10.0.0.8 ping statistics ---\n" +"5 packets transmitted, 5 packets received, 0% packet loss\n" +"round-trip min/avg/max/stddev = 21.870/101.846/198.022/74.001 ms\n" +"\n" +"priv-net# ping 10.246.38.107\n" +"PING 10.246.38.1 (10.246.38.107): 56 data bytes\n" +"64 bytes from 10.246.38.107: icmp_seq=0 ttl=64 time=53.491 ms\n" +"64 bytes from 10.246.38.107: icmp_seq=1 ttl=64 time=23.395 ms\n" +"64 bytes from 10.246.38.107: icmp_seq=2 ttl=64 time=23.865 ms\n" +"64 bytes from 10.246.38.107: icmp_seq=3 ttl=64 time=21.145 ms\n" +"64 bytes from 10.246.38.107: icmp_seq=4 ttl=64 time=36.708 ms\n" +"--- 10.246.38.107 ping statistics ---\n" +"5 packets transmitted, 5 packets received, 0% packet loss\n" +"round-trip min/avg/max/stddev = 21.145/31.721/53.491/12.179 ms" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25813 +msgid "" +"Setting up the tunnels is the easy part. Configuring a secure link is a more " +"in depth process. The following configuration uses pre-shared (<acronym>PSK</" +"acronym>) <acronym>RSA</acronym> keys. Other than the <acronym>IP</acronym> " +"addresses, the <filename>/usr/local/etc/racoon/racoon.conf</filename> on " +"both gateways will be identical and look similar to:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25821 +#, no-wrap +msgid "" +"path pre_shared_key \"/usr/local/etc/racoon/psk.txt\"; #location of pre-shared key file\n" +"log debug;\t#log verbosity setting: set to 'notify' when testing and debugging is complete\n" +"\n" +"padding\t# options are not to be changed\n" +"{\n" +" maximum_length 20;\n" +" randomize off;\n" +" strict_check off;\n" +" exclusive_tail off;\n" +"}\n" +"\n" +"timer\t# timing options. change as needed\n" +"{\n" +" counter 5;\n" +" interval 20 sec;\n" +" persend 1;\n" +"# natt_keepalive 15 sec;\n" +" phase1 30 sec;\n" +" phase2 15 sec;\n" +"}\n" +"\n" +"listen\t# address [port] that racoon will listen on\n" +"{\n" +" isakmp 172.16.5.4 [500];\n" +" isakmp_natt 172.16.5.4 [4500];\n" +"}\n" +"\n" +"remote 192.168.1.12 [500]\n" +"{\n" +" exchange_mode main,aggressive;\n" +" doi ipsec_doi;\n" +" situation identity_only;\n" +" my_identifier address 172.16.5.4;\n" +" peers_identifier address 192.168.1.12;\n" +" lifetime time 8 hour;\n" +" passive off;\n" +" proposal_check obey;\n" +"# nat_traversal off;\n" +" generate_policy off;\n" +"\n" +" proposal {\n" +" encryption_algorithm blowfish;\n" +" hash_algorithm md5;\n" +" authentication_method pre_shared_key;\n" +" lifetime time 30 sec;\n" +" dh_group 1;\n" +" }\n" +"}\n" +"\n" +"sainfo (address 10.246.38.0/24 any address 10.0.0.0/24 any)\t# address $network/$netmask $type address $network/$netmask $type ( $type being any or esp)\n" +"{\t\t\t\t\t\t\t\t# $network must be the two internal networks you are joining.\n" +" pfs_group 1;\n" +" lifetime time 36000 sec;\n" +" encryption_algorithm blowfish,3des;\n" +" authentication_algorithm hmac_md5,hmac_sha1;\n" +" compression_algorithm deflate;\n" +"}" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25879 +msgid "" +"For descriptions of each available option, refer to the manual page for " +"<filename>racoon.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25882 +msgid "" +"The Security Policy Database (<acronym>SPD</acronym>) needs to be configured " +"so that FreeBSD and <application>racoon</application> are able to encrypt " +"and decrypt network traffic between the hosts." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25887 +msgid "" +"This can be achieved with a shell script, similar to the following, on the " +"corporate gateway. This file will be used during system initialization and " +"should be saved as <filename>/usr/local/etc/racoon/setkey.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25892 +#, no-wrap +msgid "" +"flush;\n" +"spdflush;\n" +"# To the home network\n" +"spdadd 10.246.38.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.5.4-192.168.1.12/use;\n" +"spdadd 10.0.0.0/24 10.246.38.0/24 any -P in ipsec esp/tunnel/192.168.1.12-172.16.5.4/use;" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25898 +msgid "" +"Once in place, <application>racoon</application> may be started on both " +"gateways using the following command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:25901 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>/usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25903 +msgid "The output should be similar to the following:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25905 +#, no-wrap +msgid "" +"corp-net# /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf\n" +"Foreground mode.\n" +"2006-01-30 01:35:47: INFO: begin Identity Protection mode.\n" +"2006-01-30 01:35:48: INFO: received Vendor ID: KAME/racoon\n" +"2006-01-30 01:35:55: INFO: received Vendor ID: KAME/racoon\n" +"2006-01-30 01:36:04: INFO: ISAKMP-SA established 172.16.5.4[500]-192.168.1.12[500] spi:623b9b3bd2492452:7deab82d54ff704a\n" +"2006-01-30 01:36:05: INFO: initiate new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0]\n" +"2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=28496098(0x1b2d0e2)\n" +"2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=47784998(0x2d92426)\n" +"2006-01-30 01:36:13: INFO: respond new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0]\n" +"2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=124397467(0x76a279b)\n" +"2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=175852902(0xa7b4d66)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25918 +msgid "" +"To ensure the tunnel is working properly, switch to another console and use " +"<citerefentry><refentrytitle>tcpdump</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> to view network traffic using the following " +"command. Replace <literal>em0</literal> with the network interface card as " +"required:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:25924 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>tcpdump -i em0 host <replaceable>172.16.5.4 and dst 192.168.1.12</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25926 +msgid "" +"Data similar to the following should appear on the console. If not, there is " +"an issue and debugging the returned data will be required." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25930 +#, no-wrap +msgid "" +"01:47:32.021683 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xa)\n" +"01:47:33.022442 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xb)\n" +"01:47:34.024218 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xc)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25934 +msgid "" +"At this point, both networks should be available and seem to be part of the " +"same network. Most likely both networks are protected by a firewall. To " +"allow traffic to flow between them, rules need to be added to pass packets. " +"For the <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> firewall, add the following lines to the firewall " +"configuration file:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25941 +#, no-wrap +msgid "" +"ipfw add 00201 allow log esp from any to any\n" +"ipfw add 00202 allow log ah from any to any\n" +"ipfw add 00203 allow log ipencap from any to any\n" +"ipfw add 00204 allow log udp from any 500 to any" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:25947 +msgid "" +"The rule numbers may need to be altered depending on the current host " +"configuration." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25951 +msgid "" +"For users of <citerefentry><refentrytitle>pf</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> or <citerefentry><refentrytitle>ipf</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, the following rules " +"should do the trick:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25954 +#, no-wrap +msgid "" +"pass in quick proto esp from any to any\n" +"pass in quick proto ah from any to any\n" +"pass in quick proto ipencap from any to any\n" +"pass in quick proto udp from any port = 500 to any port = 500\n" +"pass in quick on gif0 from any to any\n" +"pass out quick proto esp from any to any\n" +"pass out quick proto ah from any to any\n" +"pass out quick proto ipencap from any to any\n" +"pass out quick proto udp from any port = 500 to any port = 500\n" +"pass out quick on gif0 from any to any" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:25965 +msgid "" +"Finally, to allow the machine to start support for the <acronym>VPN</" +"acronym> during system initialization, add the following lines to <filename>/" +"etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:25969 +#, no-wrap +msgid "" +"ipsec_enable=\"YES\"\n" +"ipsec_program=\"/usr/local/sbin/setkey\"\n" +"ipsec_file=\"/usr/local/etc/racoon/setkey.conf\" # allows setting up spd policies on boot\n" +"racoon_enable=\"yes\"" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:25978 +msgid "OpenSSH" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:25981 +msgid "" +"<personname><firstname>Chern</firstname><surname>Lee</surname></" +"personname><contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:25987 +msgid "<primary>OpenSSH</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:25988 +msgid "<primary>security</primary> <secondary>OpenSSH</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:25993 +msgid "" +"<application>OpenSSH</application> is a set of network connectivity tools " +"used to provide secure access to remote machines. Additionally, <acronym>TCP/" +"IP</acronym> connections can be tunneled or forwarded securely through " +"<acronym>SSH</acronym> connections. <application>OpenSSH</application> " +"encrypts all traffic to effectively eliminate eavesdropping, connection " +"hijacking, and other network-level attacks." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26002 +msgid "" +"<application>OpenSSH</application> is maintained by the OpenBSD project and " +"is installed by default in FreeBSD. It is compatible with both <acronym>SSH</" +"acronym> version 1 and 2 protocols." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26007 +msgid "" +"When data is sent over the network in an unencrypted form, network sniffers " +"anywhere in between the client and server can steal user/password " +"information or data transferred during the session. <application>OpenSSH</" +"application> offers a variety of authentication and encryption methods to " +"prevent this from happening. More information about <application>OpenSSH</" +"application> is available from <link xlink:href=\"http://www.openssh.com/" +"\">http://www.openssh.com/</link>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26015 +msgid "" +"This section provides an overview of the built-in client utilities to " +"securely access other systems and securely transfer files from a FreeBSD " +"system. It then describes how to configure a <acronym>SSH</acronym> server " +"on a FreeBSD system. More information is available in the man pages " +"mentioned in this chapter." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:26023 +msgid "Using the SSH Client Utilities" +msgstr "使用 SSH 客戶端工具" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:26025 +msgid "<primary>OpenSSH</primary> <secondary>client</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26030 +msgid "" +"To log into a <acronym>SSH</acronym> server, use <command>ssh</command> and " +"specify a username that exists on that server and the <acronym>IP</acronym> " +"address or hostname of the server. If this is the first time a connection " +"has been made to the specified server, the user will be prompted to first " +"verify the server's fingerprint:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:26037 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ssh <replaceable>user@example.com</replaceable></userinput>\n" +"The authenticity of host 'example.com (10.0.0.1)' can't be established.\n" +"ECDSA key fingerprint is 25:cc:73:b5:b3:96:75:3d:56:19:49:d2:5c:1f:91:3b.\n" +"Are you sure you want to continue connecting (yes/no)? <userinput>yes</userinput>\n" +"Permanently added 'example.com' (ECDSA) to the list of known hosts.\n" +"Password for user@example.com: <userinput><replaceable>user_password</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26044 +msgid "" +"<acronym>SSH</acronym> utilizes a key fingerprint system to verify the " +"authenticity of the server when the client connects. When the user accepts " +"the key's fingerprint by typing <literal>yes</literal> when connecting for " +"the first time, a copy of the key is saved to <filename>.ssh/known_hosts</" +"filename> in the user's home directory. Future attempts to login are " +"verified against the saved key and <command>ssh</command> will display an " +"alert if the server's key does not match the saved key. If this occurs, the " +"user should first verify why the key has changed before continuing with the " +"connection." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26056 +msgid "" +"By default, recent versions of <application>OpenSSH</application> only " +"accept <acronym>SSH</acronym>v2 connections. By default, the client will use " +"version 2 if possible and will fall back to version 1 if the server does not " +"support version 2. To force <command>ssh</command> to only use the specified " +"protocol, include <option>-1</option> or <option>-2</option>. Additional " +"options are described in <citerefentry><refentrytitle>ssh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:26065 +msgid "<primary>OpenSSH</primary> <secondary>secure copy</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:26069 +msgid "" +"<primary><citerefentry><refentrytitle>scp</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26073 +msgid "" +"Use <citerefentry><refentrytitle>scp</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> to securely copy a file to or from a remote " +"machine. This example copies <filename>COPYRIGHT</filename> on the remote " +"system to a file of the same name in the current directory of the local " +"system:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:26079 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>scp <replaceable>user@example.com:/COPYRIGHT COPYRIGHT</replaceable></userinput>\n" +"Password for user@example.com: <userinput><replaceable>*******</replaceable></userinput>\n" +"COPYRIGHT 100% |*****************************| 4735\n" +"00:00\n" +"<prompt>#</prompt>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26085 +msgid "" +"Since the fingerprint was already verified for this host, the server's key " +"is automatically checked before prompting for the user's password." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26089 +msgid "" +"The arguments passed to <command>scp</command> are similar to <command>cp</" +"command>. The file or files to copy is the first argument and the " +"destination to copy to is the second. Since the file is fetched over the " +"network, one or more of the file arguments takes the form <option>user@host:" +"<path_to_remote_file></option>. Be aware when copying directories " +"recursively that <command>scp</command> uses <option>-r</option>, whereas " +"<command>cp</command> uses <option>-R</option>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26099 +msgid "" +"To open an interactive session for copying files, use <command>sftp</" +"command>. Refer to <citerefentry><refentrytitle>sftp</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> for a list of " +"available commands while in an <command>sftp</command> session." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:26105 +msgid "Key-based Authentication" +msgstr "以金鑰為基礎的認證" + +#. (itstool) path: sect3/para +#: book.translate.xml:26107 +msgid "" +"Instead of using passwords, a client can be configured to connect to the " +"remote machine using keys. To generate <acronym>DSA</acronym> or " +"<acronym>RSA</acronym> authentication keys, use <command>ssh-keygen</" +"command>. To generate a public and private key pair, specify the type of key " +"and follow the prompts. It is recommended to protect the keys with a " +"memorable, but hard to guess passphrase." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:26116 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ssh-keygen -t <replaceable>dsa</replaceable></userinput>\n" +"Generating public/private dsa key pair.\n" +"Enter file in which to save the key (/home/user/.ssh/id_dsa):\n" +"Created directory '/home/user/.ssh'.\n" +"Enter passphrase (empty for no passphrase): <replaceable>type some passphrase here which can contain spaces</replaceable>\n" +"Enter same passphrase again: <replaceable>type some passphrase here which can contain spaces</replaceable>\n" +"Your identification has been saved in /home/user/.ssh/id_dsa.\n" +"Your public key has been saved in /home/user/.ssh/id_dsa.pub.\n" +"The key fingerprint is:\n" +"bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26127 +msgid "" +"Depending upon the specified protocol, the private key is stored in " +"<filename>~/.ssh/id_dsa</filename> (or <filename>~/.ssh/id_rsa</filename>), " +"and the public key is stored in <filename>~/.ssh/id_dsa.pub</filename> (or " +"<filename>~/.ssh/id_rsa.pub</filename>). The <emphasis>public</emphasis> key " +"must be first copied to <filename>~/.ssh/authorized_keys</filename> on the " +"remote machine in order for key-based authentication to work." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:26138 +msgid "" +"Many users believe that keys are secure by design and will use a key without " +"a passphrase. This is <emphasis>dangerous</emphasis> behavior. An " +"administrator can verify that a key pair is protected by a passphrase by " +"viewing the private key manually. If the private key file contains the word " +"<literal>ENCRYPTED</literal>, the key owner is using a passphrase. In " +"addition, to better secure end users, <literal>from</literal> may be placed " +"in the public key file. For example, adding <literal>from=\"192.168.10.5\"</" +"literal> in the front of <literal>ssh-rsa</literal> or <literal>rsa-dsa</" +"literal> prefix will only allow that specific user to login from that " +"<acronym>IP</acronym> address." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26154 +msgid "" +"The various options and files can be different according to the " +"<application>OpenSSH</application> version. To avoid problems, consult " +"<citerefentry><refentrytitle>ssh-keygen</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26158 +msgid "" +"If a passphrase is used, the user will be prompted for the passphrase each " +"time a connection is made to the server. To load <acronym>SSH</acronym> keys " +"into memory, without needing to type the passphrase each time, use " +"<citerefentry><refentrytitle>ssh-agent</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>ssh-add</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26164 +msgid "" +"Authentication is handled by <command>ssh-agent</command>, using the private " +"key(s) that are loaded into it. Then, <command>ssh-agent</command> should be " +"used to launch another application such as a shell or a window manager." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26170 +msgid "" +"To use <command>ssh-agent</command> in a shell, start it with a shell as an " +"argument. Next, add the identity by running <command>ssh-add</command> and " +"providing it the passphrase for the private key. Once these steps have been " +"completed, the user will be able to <command>ssh</command> to any host that " +"has the corresponding public key installed. For example:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:26178 +#, no-wrap +msgid "" +"<prompt>%</prompt> ssh-agent <replaceable>csh</replaceable>\n" +"<prompt>%</prompt> ssh-add\n" +"Enter passphrase for key '/usr/home/user/.ssh/id_dsa': <replaceable>type passphrase here</replaceable>\n" +"Identity added: /usr/home/user/.ssh/id_dsa (/usr/home/user/.ssh/id_dsa)\n" +"<prompt>%</prompt>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26184 +msgid "" +"To use <command>ssh-agent</command> in <application>Xorg</application>, add " +"an entry for it in <filename>~/.xinitrc</filename>. This provides the " +"<command>ssh-agent</command> services to all programs launched in " +"<application>Xorg</application>. An example <filename>~/.xinitrc</filename> " +"might look like this:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:26191 +#, no-wrap +msgid "exec ssh-agent <replaceable>startxfce4</replaceable>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26193 +msgid "" +"This launches <command>ssh-agent</command>, which in turn launches " +"<application>XFCE</application>, every time <application>Xorg</application> " +"starts. Once <application>Xorg</application> has been restarted so that the " +"changes can take effect, run <command>ssh-add</command> to load all of the " +"<acronym>SSH</acronym> keys." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:26202 +msgid "<acronym>SSH</acronym> Tunneling" +msgstr "<acronym>SSH</acronym> 通道" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:26204 +msgid "<primary>OpenSSH</primary> <secondary>tunneling</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26209 +msgid "" +"<application>OpenSSH</application> has the ability to create a tunnel to " +"encapsulate another protocol in an encrypted session." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26213 +msgid "" +"The following command tells <command>ssh</command> to create a tunnel for " +"<application>telnet</application>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:26217 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ssh -2 -N -f -L <replaceable>5023:localhost:23 user@foo.example.com</replaceable></userinput>\n" +"<prompt>%</prompt>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26220 +msgid "This example uses the following options:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:26224 +msgid "<option>-2</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26227 +msgid "" +"Forces <command>ssh</command> to use version 2 to connect to the server." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:26233 +msgid "<option>-N</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26236 +msgid "" +"Indicates no command, or tunnel only. If omitted, <command>ssh</command> " +"initiates a normal session." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26246 +msgid "Forces <command>ssh</command> to run in the background." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:26252 +msgid "<option>-L</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26255 +msgid "" +"Indicates a local tunnel in <replaceable>localport:remotehost:remoteport</" +"replaceable> format." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:26262 +msgid "<option>user@foo.example.com</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26265 +msgid "" +"The login name to use on the specified remote <acronym>SSH</acronym> server." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26271 +msgid "" +"An <acronym>SSH</acronym> tunnel works by creating a listen socket on " +"<systemitem>localhost</systemitem> on the specified <literal>localport</" +"literal>. It then forwards any connections received on <literal>localport</" +"literal> via the <acronym>SSH</acronym> connection to the specified " +"<literal>remotehost:remoteport</literal>. In the example, port " +"<literal>5023</literal> on the client is forwarded to port <literal>23</" +"literal> on the remote machine. Since port 23 is used by " +"<application>telnet</application>, this creates an encrypted " +"<application>telnet</application> session through an <acronym>SSH</acronym> " +"tunnel." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:26283 +msgid "" +"This method can be used to wrap any number of insecure <acronym>TCP</" +"acronym> protocols such as <acronym>SMTP</acronym>, <acronym>POP3</acronym>, " +"and <acronym>FTP</acronym>, as seen in the following examples." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:26290 +msgid "Create a Secure Tunnel for <acronym>SMTP</acronym>" +msgstr "建立供 <acronym>SMTP</acronym> 使用的安全通道" + +#. (itstool) path: example/screen +#: book.translate.xml:26293 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ssh -2 -N -f -L <replaceable>5025:localhost:25 user@mailserver.example.com</replaceable></userinput>\n" +"user@mailserver.example.com's password: <userinput>*****</userinput>\n" +"<prompt>%</prompt> <userinput>telnet localhost 5025</userinput>\n" +"Trying 127.0.0.1...\n" +"Connected to localhost.\n" +"Escape character is '^]'.\n" +"220 mailserver.example.com ESMTP" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:26301 +msgid "" +"This can be used in conjunction with <command>ssh-keygen</command> and " +"additional user accounts to create a more seamless <acronym>SSH</acronym> " +"tunneling environment. Keys can be used in place of typing a password, and " +"the tunnels can be run as a separate user." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:26310 +msgid "Secure Access of a <acronym>POP3</acronym> Server" +msgstr "安全存取 <acronym>POP3</acronym> 伺服器" + +#. (itstool) path: example/para +#: book.translate.xml:26313 +msgid "" +"In this example, there is an <acronym>SSH</acronym> server that accepts " +"connections from the outside. On the same network resides a mail server " +"running a <acronym>POP3</acronym> server. To check email in a secure manner, " +"create an <acronym>SSH</acronym> connection to the <acronym>SSH</acronym> " +"server and tunnel through to the mail server:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:26321 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ssh -2 -N -f -L <replaceable>2110:mail.example.com:110 user@ssh-server.example.com</replaceable></userinput>\n" +"user@ssh-server.example.com's password: <userinput>******</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:26324 +msgid "" +"Once the tunnel is up and running, point the email client to send " +"<acronym>POP3</acronym> requests to <systemitem>localhost</systemitem> on " +"port 2110. This connection will be forwarded securely across the tunnel to " +"<systemitem>mail.example.com</systemitem>." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:26332 +msgid "Bypassing a Firewall" +msgstr "跳過防火牆" + +#. (itstool) path: example/para +#: book.translate.xml:26334 +msgid "" +"Some firewalls filter both incoming and outgoing connections. For example, a " +"firewall might limit access from remote machines to ports 22 and 80 to only " +"allow <acronym>SSH</acronym> and web surfing. This prevents access to any " +"other service which uses a port other than 22 or 80." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:26342 +msgid "" +"The solution is to create an <acronym>SSH</acronym> connection to a machine " +"outside of the network's firewall and use it to tunnel to the desired " +"service:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:26346 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ssh -2 -N -f -L <replaceable>8888:music.example.com:8000 user@unfirewalled-system.example.org</replaceable></userinput>\n" +"user@unfirewalled-system.example.org's password: <userinput>*******</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:26349 +msgid "" +"In this example, a streaming Ogg Vorbis client can now be pointed to " +"<systemitem>localhost</systemitem> port 8888, which will be forwarded over " +"to <systemitem>music.example.com</systemitem> on port 8000, successfully " +"bypassing the firewall." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:26359 +msgid "Enabling the SSH Server" +msgstr "開啟 SSH 伺服器" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:26361 +msgid "<primary>OpenSSH</primary> <secondary>enabling</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26366 +msgid "" +"In addition to providing built-in <acronym>SSH</acronym> client utilities, a " +"FreeBSD system can be configured as an <acronym>SSH</acronym> server, " +"accepting connections from other <acronym>SSH</acronym> clients." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26371 +msgid "" +"To see if <application>sshd</application> is operating, use the " +"<citerefentry><refentrytitle>service</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:26374 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service sshd status</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26376 +msgid "" +"If the service is not running, add the following line to <filename>/etc/rc." +"conf</filename>." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:26379 +#, no-wrap +msgid "sshd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26381 +msgid "" +"This will start <application>sshd</application>, the daemon program for " +"<application>OpenSSH</application>, the next time the system boots. To start " +"it now:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:26385 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service sshd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26387 +msgid "" +"The first time <application>sshd</application> starts on a FreeBSD system, " +"the system's host keys will be automatically created and the fingerprint " +"will be displayed on the console. Provide users with the fingerprint so that " +"they can verify it the first time they connect to the server." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26393 +msgid "" +"Refer to <citerefentry><refentrytitle>sshd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for the list of available options when starting " +"<application>sshd</application> and a more complete discussion about " +"authentication, the login process, and the various configuration files." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26398 +msgid "" +"At this point, the <application>sshd</application> should be available to " +"all users with a username and password on the system." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:26404 +msgid "SSH Server Security" +msgstr "SSH 伺服器安全性" + +#. (itstool) path: sect2/para +#: book.translate.xml:26406 +msgid "" +"While <application>sshd</application> is the most widely used remote " +"administration facility for FreeBSD, brute force and drive by attacks are " +"common to any system exposed to public networks. Several additional " +"parameters are available to prevent the success of these attacks and will be " +"described in this section." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26413 +msgid "" +"It is a good idea to limit which users can log into the <acronym>SSH</" +"acronym> server and from where using the <literal>AllowUsers</literal> " +"keyword in the <application>OpenSSH</application> server configuration file. " +"For example, to only allow <systemitem class=\"username\">root</systemitem> " +"to log in from <systemitem class=\"ipaddress\">192.168.1.32</systemitem>, " +"add this line to <filename>/etc/ssh/sshd_config</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:26421 +#, no-wrap +msgid "AllowUsers root@192.168.1.32" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26423 +msgid "" +"To allow <systemitem class=\"username\">admin</systemitem> to log in from " +"anywhere, list that user without specifying an <acronym>IP</acronym> address:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:26427 +#, no-wrap +msgid "AllowUsers admin" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26429 +msgid "Multiple users should be listed on the same line, like so:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:26432 +#, no-wrap +msgid "AllowUsers root@192.168.1.32 admin" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26434 +msgid "" +"After making changes to <filename>/etc/ssh/sshd_config</filename>, tell " +"<application>sshd</application> to reload its configuration file by running:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:26439 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service sshd reload</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:26442 +msgid "" +"When this keyword is used, it is important to list each user that needs to " +"log into this machine. Any user that is not specified in that line will be " +"locked out. Also, the keywords used in the <application>OpenSSH</" +"application> server configuration file are case-sensitive. If the keyword is " +"not spelled correctly, including its case, it will be ignored. Always test " +"changes to this file to make sure that the edits are working as expected. " +"Refer to <citerefentry><refentrytitle>sshd_config</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> to verify the spelling " +"and use of the available keywords." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26454 +msgid "" +"In addition, users may be forced to use two factor authentication via the " +"use of a public and private key. When required, the user may generate a key " +"pair through the use of <citerefentry><refentrytitle>ssh-keygen</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> and send the " +"administrator the public key. This key file will be placed in the " +"<filename>authorized_keys</filename> as described above in the client " +"section. To force the users to use keys only, the following option may be " +"configured:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:26463 +#, no-wrap +msgid "AuthenticationMethods publickey" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:26466 +msgid "" +"Do not confuse <filename>/etc/ssh/sshd_config</filename> with <filename>/etc/" +"ssh/ssh_config</filename> (note the extra <literal>d</literal> in the first " +"filename). The first file configures the server and the second file " +"configures the client. Refer to <citerefentry><refentrytitle>ssh_config</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for a listing of the " +"available client settings." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:26478 +msgid "Access Control Lists" +msgstr "存取控制清單" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:26481 book.translate.xml:26626 book.translate.xml:26702 +#: book.translate.xml:27022 book.translate.xml:27087 book.translate.xml:27444 +msgid "" +"<personname><firstname>Tom</firstname><surname>Rhodes</surname></" +"personname><contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:26486 +msgid "<primary>ACL</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26490 +msgid "" +"Access Control Lists (<acronym>ACL</acronym>s) extend the standard " +"<trademark class=\"registered\">UNIX</trademark> permission model in a " +"<trademark class=\"registered\">POSIX</trademark>.1e compatible way. This " +"permits an administrator to take advantage of a more fine-grained " +"permissions model." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26495 +msgid "" +"The FreeBSD <filename>GENERIC</filename> kernel provides <acronym>ACL</" +"acronym> support for <acronym>UFS</acronym> file systems. Users who prefer " +"to compile a custom kernel must include the following option in their custom " +"kernel configuration file:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:26501 +#, no-wrap +msgid "options UFS_ACL" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26503 +msgid "" +"If this option is not compiled in, a warning message will be displayed when " +"attempting to mount a file system with <acronym>ACL</acronym> support. " +"<acronym>ACL</acronym>s rely on extended attributes which are natively " +"supported in <acronym>UFS2</acronym>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26509 +msgid "" +"This chapter describes how to enable <acronym>ACL</acronym> support and " +"provides some usage examples." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:26514 +msgid "Enabling <acronym>ACL</acronym> Support" +msgstr "開啟 <acronym>ACL</acronym> 支援" + +#. (itstool) path: sect2/para +#: book.translate.xml:26516 +msgid "" +"<acronym>ACL</acronym>s are enabled by the mount-time administrative flag, " +"<option>acls</option>, which may be added to <filename>/etc/fstab</" +"filename>. The mount-time flag can also be automatically set in a persistent " +"manner using <citerefentry><refentrytitle>tunefs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to modify a superblock " +"<acronym>ACL</acronym>s flag in the file system header. In general, it is " +"preferred to use the superblock flag for several reasons:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26526 +msgid "" +"The superblock flag cannot be changed by a remount using <option>mount -u</" +"option> as it requires a complete <command>umount</command> and fresh " +"<command>mount</command>. This means that <acronym>ACL</acronym>s cannot be " +"enabled on the root file system after boot. It also means that <acronym>ACL</" +"acronym> support on a file system cannot be changed while the system is in " +"use." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26537 +msgid "" +"Setting the superblock flag causes the file system to always be mounted with " +"<acronym>ACL</acronym>s enabled, even if there is not an <filename>fstab</" +"filename> entry or if the devices re-order. This prevents accidental " +"mounting of the file system without <acronym>ACL</acronym> support." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:26547 +msgid "" +"It is desirable to discourage accidental mounting without <acronym>ACL</" +"acronym>s enabled because nasty things can happen if <acronym>ACL</acronym>s " +"are enabled, then disabled, then re-enabled without flushing the extended " +"attributes. In general, once <acronym>ACL</acronym>s are enabled on a file " +"system, they should not be disabled, as the resulting file protections may " +"not be compatible with those intended by the users of the system, and re-" +"enabling <acronym>ACL</acronym>s may re-attach the previous <acronym>ACL</" +"acronym>s to files that have since had their permissions changed, resulting " +"in unpredictable behavior." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26561 +msgid "" +"File systems with <acronym>ACL</acronym>s enabled will show a plus (<literal>" +"+</literal>) sign in their permission settings:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:26565 +#, no-wrap +msgid "" +"drwx------ 2 robert robert 512 Dec 27 11:54 private\n" +"drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1\n" +"drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2\n" +"drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3\n" +"drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26571 +msgid "" +"In this example, <filename>directory1</filename>, <filename>directory2</" +"filename>, and <filename>directory3</filename> are all taking advantage of " +"<acronym>ACL</acronym>s, whereas <filename>public_html</filename> is not." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:26579 +msgid "Using <acronym>ACL</acronym>s" +msgstr "使用 <acronym>ACL</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:26581 +msgid "" +"File system <acronym>ACL</acronym>s can be viewed using <command>getfacl</" +"command>. For instance, to view the <acronym>ACL</acronym> settings on " +"<filename>test</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:26586 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>getfacl test</userinput>\n" +"\t#file:test\n" +"\t#owner:1001\n" +"\t#group:1001\n" +"\tuser::rw-\n" +"\tgroup::r--\n" +"\tother::r--" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26594 +msgid "" +"To change the <acronym>ACL</acronym> settings on this file, use " +"<command>setfacl</command>. To remove all of the currently defined " +"<acronym>ACL</acronym>s from a file or file system, include <option>-k</" +"option>. However, the preferred method is to use <option>-b</option> as it " +"leaves the basic fields required for <acronym>ACL</acronym>s to work." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:26601 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>setfacl -k test</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26603 +msgid "" +"To modify the default <acronym>ACL</acronym> entries, use <option>-m</" +"option>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:26606 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>setfacl -m u:trhodes:rwx,group:web:r--,o::--- test</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26608 +msgid "" +"In this example, there were no pre-defined entries, as they were removed by " +"the previous command. This command restores the default options and assigns " +"the options listed. If a user or group is added which does not exist on the " +"system, an <errorname>Invalid argument</errorname> error will be displayed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26615 +msgid "" +"Refer to <citerefentry><refentrytitle>getfacl</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>setfacl</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> for more information " +"about the options available for these commands." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:26623 +msgid "Monitoring Third Party Security Issues" +msgstr "監視第三方安全性問題" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:26631 +msgid "<primary>pkg</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26635 +msgid "" +"In recent years, the security world has made many improvements to how " +"vulnerability assessment is handled. The threat of system intrusion " +"increases as third party utilities are installed and configured for " +"virtually any operating system available today." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26641 +msgid "" +"Vulnerability assessment is a key factor in security. While FreeBSD releases " +"advisories for the base system, doing so for every third party utility is " +"beyond the FreeBSD Project's capability. There is a way to mitigate third " +"party vulnerabilities and warn administrators of known security issues. A " +"FreeBSD add on utility known as <application>pkg</application> includes " +"options explicitly for this purpose." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26650 +msgid "" +"<application>pkg</application> polls a database for security issues. The " +"database is updated and maintained by the FreeBSD Security Team and ports " +"developers." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26654 +msgid "" +"Please refer to <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/" +"books/handbook/pkgng-intro.html\">instructions</link> for installing " +"<application>pkg</application>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26658 +msgid "" +"Installation provides <citerefentry><refentrytitle>periodic</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> configuration files " +"for maintaining the <application>pkg</application> audit database, and " +"provides a programmatic method of keeping it updated. This functionality is " +"enabled if <literal>daily_status_security_pkgaudit_enable</literal> is set " +"to <literal>YES</literal> in <citerefentry><refentrytitle>periodic.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>. Ensure that daily " +"security run emails, which are sent to <systemitem class=\"username\">root</" +"systemitem>'s email account, are being read." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26668 +msgid "" +"After installation, and to audit third party utilities as part of the Ports " +"Collection at any time, an administrator may choose to update the database " +"and view known vulnerabilities of installed packages by invoking:" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26675 +msgid "" +"<application>pkg</application> displays messages any published " +"vulnerabilities in installed packages:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:26678 +#, no-wrap +msgid "" +"Affected package: cups-base-1.1.22.0_1\n" +"Type of problem: cups-base -- HPGL buffer overflow vulnerability.\n" +"Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html>\n" +"\n" +"1 problem(s) in your installed packages found.\n" +"\n" +"You are advised to update or deinstall the affected package(s) immediately." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26686 +msgid "" +"By pointing a web browser to the displayed <acronym>URL</acronym>, an " +"administrator may obtain more information about the vulnerability. This will " +"include the versions affected, by FreeBSD port version, along with other web " +"sites which may contain security advisories." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26692 +msgid "" +"<application>pkg</application> is a powerful utility and is extremely useful " +"when coupled with <package>ports-mgmt/portmaster</package>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:26699 +msgid "FreeBSD Security Advisories" +msgstr "FreeBSD 安全報告" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:26707 +msgid "<primary>FreeBSD Security Advisories</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26711 +msgid "" +"Like many producers of quality operating systems, the FreeBSD Project has a " +"security team which is responsible for determining the End-of-Life " +"(<acronym>EoL</acronym>) date for each FreeBSD release and to provide " +"security updates for supported releases which have not yet reached their " +"<acronym>EoL</acronym>. More information about the FreeBSD security team and " +"the supported releases is available on the <link xlink:href=" +"\"@@URL_RELPREFIX@@/security\">FreeBSD security page</link>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26721 +msgid "" +"One task of the security team is to respond to reported security " +"vulnerabilities in the FreeBSD operating system. Once a vulnerability is " +"confirmed, the security team verifies the steps necessary to fix the " +"vulnerability and updates the source code with the fix. It then publishes " +"the details as a <quote>Security Advisory</quote>. Security advisories are " +"published on the <link xlink:href=\"@@URL_RELPREFIX@@/security/advisories." +"html\">FreeBSD website</link> and mailed to the <link xlink:href=\"http://" +"lists.FreeBSD.org/mailman/listinfo/freebsd-security-notifications\">freebsd-" +"security-notifications</link>, <link xlink:href=\"http://lists.FreeBSD.org/" +"mailman/listinfo/freebsd-security\">freebsd-security</link>, and <link xlink:" +"href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce\">freebsd-" +"announce</link> mailing lists." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:26732 +msgid "This section describes the format of a FreeBSD security advisory." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:26736 +msgid "Format of a Security Advisory" +msgstr "安全報告的格式" + +#. (itstool) path: sect2/para +#: book.translate.xml:26738 +msgid "Here is an example of a FreeBSD security advisory:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:26740 +#, no-wrap +msgid "" +"=============================================================================\n" +"-----BEGIN PGP SIGNED MESSAGE-----\n" +"Hash: SHA512\n" +"\n" +"=============================================================================\n" +"FreeBSD-SA-14:04.bind Security Advisory\n" +" The FreeBSD Project\n" +"\n" +"Topic: BIND remote denial of service vulnerability\n" +"\n" +"Category: contrib\n" +"Module: bind\n" +"Announced: 2014-01-14\n" +"Credits: ISC\n" +"Affects: FreeBSD 8.x and FreeBSD 9.x\n" +"Corrected: 2014-01-14 19:38:37 UTC (stable/9, 9.2-STABLE)\n" +" 2014-01-14 19:42:28 UTC (releng/9.2, 9.2-RELEASE-p3)\n" +" 2014-01-14 19:42:28 UTC (releng/9.1, 9.1-RELEASE-p10)\n" +" 2014-01-14 19:38:37 UTC (stable/8, 8.4-STABLE)\n" +" 2014-01-14 19:42:28 UTC (releng/8.4, 8.4-RELEASE-p7)\n" +" 2014-01-14 19:42:28 UTC (releng/8.3, 8.3-RELEASE-p14)\n" +"CVE Name: CVE-2014-0591\n" +"\n" +"For general information regarding FreeBSD Security Advisories,\n" +"including descriptions of the fields above, security branches, and the\n" +"following sections, please visit <URL:http://security.FreeBSD.org/>.\n" +"\n" +"I. Background\n" +"\n" +"BIND 9 is an implementation of the Domain Name System (DNS) protocols.\n" +"The named(8) daemon is an Internet Domain Name Server.\n" +"\n" +"II. Problem Description\n" +"\n" +"Because of a defect in handling queries for NSEC3-signed zones, BIND can\n" +"crash with an \"INSIST\" failure in name.c when processing queries possessing\n" +"certain properties. This issue only affects authoritative nameservers with\n" +"at least one NSEC3-signed zone. Recursive-only servers are not at risk.\n" +"\n" +"III. Impact\n" +"\n" +"An attacker who can send a specially crafted query could cause named(8)\n" +"to crash, resulting in a denial of service.\n" +"\n" +"IV. Workaround\n" +"\n" +"No workaround is available, but systems not running authoritative DNS service\n" +"with at least one NSEC3-signed zone using named(8) are not vulnerable.\n" +"\n" +"V. Solution\n" +"\n" +"Perform one of the following:\n" +"\n" +"1) Upgrade your vulnerable system to a supported FreeBSD stable or\n" +"release / security branch (releng) dated after the correction date.\n" +"\n" +"2) To update your vulnerable system via a source code patch:\n" +"\n" +"The following patches have been verified to apply to the applicable\n" +"FreeBSD release branches.\n" +"\n" +"a) Download the relevant patch from the location below, and verify the\n" +"detached PGP signature using your PGP utility.\n" +"\n" +"[FreeBSD 8.3, 8.4, 9.1, 9.2-RELEASE and 8.4-STABLE]\n" +"# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-release.patch\n" +"# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-release.patch.asc\n" +"# gpg --verify bind-release.patch.asc\n" +"\n" +"[FreeBSD 9.2-STABLE]\n" +"# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-stable-9.patch\n" +"# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-stable-9.patch.asc\n" +"# gpg --verify bind-stable-9.patch.asc\n" +"\n" +"b) Execute the following commands as root:\n" +"\n" +"# cd /usr/src\n" +"# patch < /path/to/patch\n" +"\n" +"Recompile the operating system using buildworld and installworld as\n" +"described in <URL:http://www.FreeBSD.org/handbook/makeworld.html>.\n" +"\n" +"Restart the applicable daemons, or reboot the system.\n" +"\n" +"3) To update your vulnerable system via a binary patch:\n" +"\n" +"Systems running a RELEASE version of FreeBSD on the i386 or amd64\n" +"platforms can be updated via the freebsd-update(8) utility:\n" +"\n" +"# freebsd-update fetch\n" +"# freebsd-update install\n" +"\n" +"VI. Correction details\n" +"\n" +"The following list contains the correction revision numbers for each\n" +"affected branch.\n" +"\n" +"Branch/path Revision\n" +"- -------------------------------------------------------------------------\n" +"stable/8/ r260646\n" +"releng/8.3/ r260647\n" +"releng/8.4/ r260647\n" +"stable/9/ r260646\n" +"releng/9.1/ r260647\n" +"releng/9.2/ r260647\n" +"- -------------------------------------------------------------------------\n" +"\n" +"To see which files were modified by a particular revision, run the\n" +"following command, replacing NNNNNN with the revision number, on a\n" +"machine with Subversion installed:\n" +"\n" +"# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base\n" +"\n" +"Or visit the following URL, replacing NNNNNN with the revision number:\n" +"\n" +"<URL:http://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>\n" +"\n" +"VII. References\n" +"\n" +"<URL:https://kb.isc.org/article/AA-01078>\n" +"\n" +"<URL:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0591>\n" +"\n" +"The latest revision of this advisory is available at\n" +"<URL:http://security.FreeBSD.org/advisories/FreeBSD-SA-14:04.bind.asc>\n" +"-----BEGIN PGP SIGNATURE-----\n" +"\n" +"iQIcBAEBCgAGBQJS1ZTYAAoJEO1n7NZdz2rnOvQP/2/68/s9Cu35PmqNtSZVVxVG\n" +"ZSQP5EGWx/lramNf9566iKxOrLRMq/h3XWcC4goVd+gZFrvITJSVOWSa7ntDQ7TO\n" +"XcinfRZ/iyiJbs/Rg2wLHc/t5oVSyeouyccqODYFbOwOlk35JjOTMUG1YcX+Zasg\n" +"ax8RV+7Zt1QSBkMlOz/myBLXUjlTZ3Xg2FXVsfFQW5/g2CjuHpRSFx1bVNX6ysoG\n" +"9DT58EQcYxIS8WfkHRbbXKh9I1nSfZ7/Hky/kTafRdRMrjAgbqFgHkYTYsBZeav5\n" +"fYWKGQRJulYfeZQ90yMTvlpF42DjCC3uJYamJnwDIu8OhS1WRBI8fQfr9DRzmRua\n" +"OK3BK9hUiScDZOJB6OqeVzUTfe7MAA4/UwrDtTYQ+PqAenv1PK8DZqwXyxA9ThHb\n" +"zKO3OwuKOVHJnKvpOcr+eNwo7jbnHlis0oBksj/mrq2P9m2ueF9gzCiq5Ri5Syag\n" +"Wssb1HUoMGwqU0roS8+pRpNC8YgsWpsttvUWSZ8u6Vj/FLeHpiV3mYXPVMaKRhVm\n" +"067BA2uj4Th1JKtGleox+Em0R7OFbCc/9aWC67wiqI6KRyit9pYiF3npph+7D5Eq\n" +"7zPsUdDd+qc+UTiLp3liCRp5w6484wWdhZO6wRtmUgxGjNkxFoNnX8CitzF8AaqO\n" +"UWWemqWuz3lAZuORQ9KX\n" +"=OQzQ\n" +"-----END PGP SIGNATURE-----" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:26882 +msgid "Every security advisory uses the following format:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26886 +msgid "" +"Each security advisory is signed by the <acronym>PGP</acronym> key of the " +"Security Officer. The public key for the Security Officer can be verified at " +"<xref linkend=\"pgpkeys\"/>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26893 +msgid "" +"The name of the security advisory always begins with <literal>FreeBSD-SA-</" +"literal> (for FreeBSD Security Advisory), followed by the year in two digit " +"format (<literal>14:</literal>), followed by the advisory number for that " +"year (<literal>04.</literal>), followed by the name of the affected " +"application or subsystem (<literal>bind</literal>). The advisory shown here " +"is the fourth advisory for 2014 and it affects <application>BIND</" +"application>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26905 +msgid "The <literal>Topic</literal> field summarizes the vulnerability." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26910 +msgid "" +"The <literal>Category</literal> refers to the affected part of the system " +"which may be one of <literal>core</literal>, <literal>contrib</literal>, or " +"<literal>ports</literal>. The <literal>core</literal> category means that " +"the vulnerability affects a core component of the FreeBSD operating system. " +"The <literal>contrib</literal> category means that the vulnerability affects " +"software included with FreeBSD, such as <application>BIND</application>. The " +"<literal>ports</literal> category indicates that the vulnerability affects " +"software available through the Ports Collection." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26925 +msgid "" +"The <literal>Module</literal> field refers to the component location. In " +"this example, the <literal>bind</literal> module is affected; therefore, " +"this vulnerability affects an application installed with the operating " +"system." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26933 +msgid "" +"The <literal>Announced</literal> field reflects the date the security " +"advisory was published. This means that the security team has verified that " +"the problem exists and that a patch has been committed to the FreeBSD source " +"code repository." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26941 +msgid "" +"The <literal>Credits</literal> field gives credit to the individual or " +"organization who noticed the vulnerability and reported it." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26947 +msgid "" +"The <literal>Affects</literal> field explains which releases of FreeBSD are " +"affected by this vulnerability." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26953 +msgid "" +"The <literal>Corrected</literal> field indicates the date, time, time " +"offset, and releases that were corrected. The section in parentheses shows " +"each branch for which the fix has been merged, and the version number of the " +"corresponding release from that branch. The release identifier itself " +"includes the version number and, if appropriate, the patch level. The patch " +"level is the letter <literal>p</literal> followed by a number, indicating " +"the sequence number of the patch, allowing users to track which patches have " +"already been applied to the system." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26967 +msgid "" +"The <literal>CVE Name</literal> field lists the advisory number, if one " +"exists, in the public <link xlink:href=\"http://cve.mitre.org\">cve.mitre." +"org</link> security vulnerabilities database." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26973 +msgid "" +"The <literal>Background</literal> field provides a description of the " +"affected module." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26978 +msgid "" +"The <literal>Problem Description</literal> field explains the vulnerability. " +"This can include information about the flawed code and how the utility could " +"be maliciously used." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26985 +msgid "" +"The <literal>Impact</literal> field describes what type of impact the " +"problem could have on a system." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26990 +msgid "" +"The <literal>Workaround</literal> field indicates if a workaround is " +"available to system administrators who cannot immediately patch the system ." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:26996 +msgid "" +"The <literal>Solution</literal> field provides the instructions for patching " +"the affected system. This is a step by step tested and verified method for " +"getting a system patched and working securely." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:27003 +msgid "" +"The <literal>Correction Details</literal> field displays each affected " +"Subversion branch with the revision number that contains the corrected code." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:27009 +msgid "" +"The <literal>References</literal> field offers sources of additional " +"information regarding the vulnerability." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:27019 +msgid "Process Accounting" +msgstr "程序追蹤" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:27027 +msgid "<primary>Process Accounting</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27031 +msgid "" +"Process accounting is a security method in which an administrator may keep " +"track of system resources used and their allocation among users, provide for " +"system monitoring, and minimally track a user's commands." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27036 +msgid "" +"Process accounting has both positive and negative points. One of the " +"positives is that an intrusion may be narrowed down to the point of entry. A " +"negative is the amount of logs generated by process accounting, and the disk " +"space they may require. This section walks an administrator through the " +"basics of process accounting." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:27044 +msgid "" +"If more fine-grained accounting is needed, refer to <xref linkend=\"audit\"/" +">." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:27049 +msgid "Enabling and Utilizing Process Accounting" +msgstr "開啟並使用程序追蹤" + +#. (itstool) path: sect2/para +#: book.translate.xml:27051 +msgid "" +"Before using process accounting, it must be enabled using the following " +"commands:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:27054 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>touch /var/account/acct</userinput>\n" +"<prompt>#</prompt> <userinput>chmod 600 /var/account/acct</userinput>\n" +"<prompt>#</prompt> <userinput>accton /var/account/acct</userinput>\n" +"<prompt>#</prompt> <userinput>echo 'accounting_enable=\"YES\"' >> /etc/rc.conf</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27059 +msgid "" +"Once enabled, accounting will begin to track information such as " +"<acronym>CPU</acronym> statistics and executed commands. All accounting logs " +"are in a non-human readable format which can be viewed using <command>sa</" +"command>. If issued without any options, <command>sa</command> prints " +"information relating to the number of per-user calls, the total elapsed time " +"in minutes, total <acronym>CPU</acronym> and user time in minutes, and the " +"average number of <acronym>I/O</acronym> operations. Refer to " +"<citerefentry><refentrytitle>sa</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for the list of available options which control the output." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27070 +msgid "" +"To display the commands issued by users, use <command>lastcomm</command>. " +"For example, this command prints out all usage of <command>ls</command> by " +"<systemitem class=\"username\">trhodes</systemitem> on the <literal>ttyp1</" +"literal> terminal:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:27075 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>lastcomm ls trhodes ttyp1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27077 +msgid "" +"Many other useful options exist and are explained in " +"<citerefentry><refentrytitle>lastcomm</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, <citerefentry><refentrytitle>acct</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>, and " +"<citerefentry><refentrytitle>sa</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:27084 +msgid "Resource Limits" +msgstr "限制資源" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:27092 +msgid "<primary>Resource limits</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27096 +msgid "" +"FreeBSD provides several methods for an administrator to limit the amount of " +"system resources an individual may use. Disk quotas limit the amount of disk " +"space available to users. Quotas are discussed in <xref linkend=\"quotas\"/>." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:27101 +msgid "<primary>quotas</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:27104 +msgid "<primary>limiting users</primary> <secondary>quotas</secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:27108 book.translate.xml:33934 +msgid "<primary>disk quotas</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27112 +msgid "" +"Limits to other resources, such as <acronym>CPU</acronym> and memory, can be " +"set using either a flat file or a command to configure a resource limits " +"database. The traditional method defines login classes by editing <filename>/" +"etc/login.conf</filename>. While this method is still supported, any changes " +"require a multi-step process of editing this file, rebuilding the resource " +"database, making necessary changes to <filename>/etc/master.passwd</" +"filename>, and rebuilding the password database. This can become time " +"consuming, depending upon the number of users to configure." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27124 +msgid "" +"Beginning with FreeBSD 9.0-RELEASE, <command>rctl</command> can be used to " +"provide a more fine-grained method for controlling resource limits. This " +"command supports more than user limits as it can also be used to set " +"resource constraints on processes and jails." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27130 +msgid "" +"This section demonstrates both methods for controlling resources, beginning " +"with the traditional method." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:27134 +msgid "Configuring Login Classes" +msgstr "設定登入類別" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27136 +msgid "<primary>limiting users</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27139 +msgid "<primary>accounts</primary> <secondary>limiting</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27143 +msgid "<primary><filename>/etc/login.conf</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27147 +msgid "" +"In the traditional method, login classes and the resource limits to apply to " +"a login class are defined in <filename>/etc/login.conf</filename>. Each user " +"account can be assigned to a login class, where <literal>default</literal> " +"is the default login class. Each login class has a set of login capabilities " +"associated with it. A login capability is a <literal><replaceable>name</" +"replaceable>=<replaceable>value</replaceable></literal> pair, where " +"<replaceable>name</replaceable> is a well-known identifier and " +"<replaceable>value</replaceable> is an arbitrary string which is processed " +"accordingly depending on the <replaceable>name</replaceable>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:27161 +msgid "" +"Whenever <filename>/etc/login.conf</filename> is edited, the <filename>/etc/" +"login.conf.db</filename> must be updated by executing the following command:" +msgstr "" + +#. (itstool) path: note/screen +#. (itstool) path: sect2/screen +#. (itstool) path: sect3/screen +#: book.translate.xml:27165 book.translate.xml:30686 book.translate.xml:43106 +#: book.translate.xml:54402 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cap_mkdb /etc/login.conf</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27168 +msgid "" +"Resource limits differ from the default login capabilities in two ways. " +"First, for every limit, there is a <firstterm>soft</firstterm> and " +"<firstterm>hard</firstterm> limit. A soft limit may be adjusted by the user " +"or application, but may not be set higher than the hard limit. The hard " +"limit may be lowered by the user, but can only be raised by the superuser. " +"Second, most resource limits apply per process to a specific user." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27177 +msgid "" +"<xref linkend=\"resource-limits\"/> lists the most commonly used resource " +"limits. All of the available resource limits and capabilities are described " +"in detail in <citerefentry><refentrytitle>login.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27182 +msgid "<primary>limiting users</primary> <secondary>coredumpsize</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27186 +msgid "<primary>limiting users</primary> <secondary>cputime</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27190 +msgid "<primary>limiting users</primary> <secondary>filesize</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27194 +msgid "<primary>limiting users</primary> <secondary>maxproc</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27198 +msgid "<primary>limiting users</primary> <secondary>memorylocked</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27202 +msgid "<primary>limiting users</primary> <secondary>memoryuse</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27206 +msgid "<primary>limiting users</primary> <secondary>openfiles</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27210 +msgid "<primary>limiting users</primary> <secondary>sbsize</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:27214 +msgid "<primary>limiting users</primary> <secondary>stacksize</secondary>" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:27220 +msgid "Login Class Resource Limits" +msgstr "登入類別限制資源類型" + +#. (itstool) path: row/entry +#: book.translate.xml:27225 +msgid "Resource Limit" +msgstr "限制資源" + +#. (itstool) path: row/entry +#: book.translate.xml:27232 +msgid "coredumpsize" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27233 +msgid "" +"The limit on the size of a core file generated by a program is subordinate " +"to other limits on disk usage, such as <literal>filesize</literal> or disk " +"quotas. This limit is often used as a less severe method of controlling disk " +"space consumption. Since users do not generate core files and often do not " +"delete them, this setting may save them from running out of disk space " +"should a large program crash." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27245 +msgid "cputime" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27246 +msgid "" +"The maximum amount of <acronym>CPU</acronym> time a user's process may " +"consume. Offending processes will be killed by the kernel. This is a limit " +"on <acronym>CPU</acronym> <emphasis>time</emphasis> consumed, not the " +"percentage of the <acronym>CPU</acronym> as displayed in some of the fields " +"generated by <command>top</command> and <command>ps</command>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27257 +msgid "filesize" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27258 +msgid "" +"The maximum size of a file the user may own. Unlike disk quotas (<xref " +"linkend=\"quotas\"/>), this limit is enforced on individual files, not the " +"set of all files a user owns." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27265 +msgid "maxproc" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27266 +msgid "" +"The maximum number of foreground and background processes a user can run. " +"This limit may not be larger than the system limit specified by " +"<varname>kern.maxproc</varname>. Setting this limit too small may hinder a " +"user's productivity as some tasks, such as compiling a large program, start " +"lots of processes." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27276 +msgid "memorylocked" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27277 +msgid "" +"The maximum amount of memory a process may request to be locked into main " +"memory using <citerefentry><refentrytitle>mlock</refentrytitle><manvolnum>2</" +"manvolnum></citerefentry>. Some system-critical programs, such as " +"<citerefentry><refentrytitle>amd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, lock into main memory so that if the system begins to swap, " +"they do not contribute to disk thrashing." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27286 +msgid "memoryuse" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27287 +msgid "" +"The maximum amount of memory a process may consume at any given time. It " +"includes both core memory and swap usage. This is not a catch-all limit for " +"restricting memory consumption, but is a good start." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27295 +msgid "openfiles" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27296 +msgid "" +"The maximum number of files a process may have open. In FreeBSD, files are " +"used to represent sockets and <acronym>IPC</acronym> channels, so be careful " +"not to set this too low. The system-wide limit for this is defined by " +"<varname>kern.maxfiles</varname>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27305 +msgid "sbsize" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27306 +msgid "" +"The limit on the amount of network memory a user may consume. This can be " +"generally used to limit network communications." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27312 +msgid "stacksize" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:27313 +msgid "" +"The maximum size of a process stack. This alone is not sufficient to limit " +"the amount of memory a program may use, so it should be used in conjunction " +"with other limits." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27322 +msgid "There are a few other things to remember when setting resource limits:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:27327 +msgid "" +"Processes started at system startup by <filename>/etc/rc</filename> are " +"assigned to the <literal>daemon</literal> login class." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:27333 +msgid "" +"Although the default <filename>/etc/login.conf</filename> is a good source " +"of reasonable values for most limits, they may not be appropriate for every " +"system. Setting a limit too high may open the system up to abuse, while " +"setting it too low may put a strain on productivity." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:27342 +msgid "" +"<application>Xorg</application> takes a lot of resources and encourages " +"users to run more programs simultaneously." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:27348 +msgid "" +"Many limits apply to individual processes, not the user as a whole. For " +"example, setting <varname>openfiles</varname> to <literal>50</literal> means " +"that each process the user runs may open up to <literal>50</literal> files. " +"The total amount of files a user may open is the value of " +"<literal>openfiles</literal> multiplied by the value of <literal>maxproc</" +"literal>. This also applies to memory consumption." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27359 +msgid "" +"For further information on resource limits and login classes and " +"capabilities in general, refer to <citerefentry><refentrytitle>cap_mkdb</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>getrlimit</refentrytitle><manvolnum>2</" +"manvolnum></citerefentry>, and <citerefentry><refentrytitle>login.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:27366 +msgid "Enabling and Configuring Resource Limits" +msgstr "開啟並設定資源限制" + +#. (itstool) path: sect2/para +#: book.translate.xml:27368 +msgid "" +"As of FreeBSD 10.2, <command>rctl</command> support is built into the " +"kernel. Previous supported releases will need to be recompiled using the " +"instructions in <xref linkend=\"kernelconfig\"/>. Add these lines to either " +"<filename>GENERIC</filename> or a custom kernel configuration file, then " +"rebuild the kernel:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:27374 +#, no-wrap +msgid "" +"options RACCT\n" +"options RCTL" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27377 +msgid "" +"Once the system has rebooted into the new kernel, <command>rctl</command> " +"may be used to set rules for the system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27381 +msgid "" +"Rule syntax is controlled through the use of a subject, subject-id, " +"resource, and action, as seen in this example rule:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:27385 +#, no-wrap +msgid "user:trhodes:maxproc:deny=10/user" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27387 +msgid "" +"In this rule, the subject is <literal>user</literal>, the subject-id is " +"<literal>trhodes</literal>, the resource, <literal>maxproc</literal>, is the " +"maximum number of processes, and the action is <literal>deny</literal>, " +"which blocks any new processes from being created. This means that the user, " +"<literal>trhodes</literal>, will be constrained to no greater than " +"<literal>10</literal> processes. Other possible actions include logging to " +"the console, passing a notification to <citerefentry><refentrytitle>devd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, or sending a sigterm " +"to the process." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27398 +msgid "" +"Some care must be taken when adding rules. Since this user is constrained to " +"<literal>10</literal> processes, this example will prevent the user from " +"performing other tasks after logging in and executing a <command>screen</" +"command> session. Once a resource limit has been hit, an error will be " +"printed, as in this example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:27405 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>man test</userinput>\n" +" /usr/bin/man: Cannot fork: Resource temporarily unavailable\n" +"eval: Cannot fork: Resource temporarily unavailable" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27409 +msgid "" +"As another example, a jail can be prevented from exceeding a memory limit. " +"This rule could be written as:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:27412 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>rctl -a jail:httpd:memoryuse:deny=2G/jail</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27414 +msgid "" +"Rules will persist across reboots if they have been added to <filename>/etc/" +"rctl.conf</filename>. The format is a rule, without the preceding command. " +"For example, the previous rule could be added as:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:27419 +#, no-wrap +msgid "" +"# Block jail from using more than 2G memory:\n" +"jail:httpd:memoryuse:deny=2G/jail" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27422 +msgid "" +"To remove a rule, use <command>rctl</command> to remove it from the list:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:27425 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>rctl -r user:trhodes:maxproc:deny=10/user</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27427 +msgid "" +"A method for removing all rules is documented in " +"<citerefentry><refentrytitle>rctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. However, if removing all rules for a single user is required, " +"this command may be issued:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:27431 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>rctl -r user:trhodes</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27433 +msgid "" +"Many other resources exist which can be used to exert additional control " +"over various <literal>subjects</literal>. See " +"<citerefentry><refentrytitle>rctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to learn about them." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:27441 +msgid "Shared Administration with Sudo" +msgstr "使用 Sudo 分享管理權限" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:27449 +msgid "<primary>Security</primary> <secondary>Sudo</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27454 +msgid "" +"System administrators often need the ability to grant enhanced permissions " +"to users so they may perform privileged tasks. The idea that team members " +"are provided access to a FreeBSD system to perform their specific tasks " +"opens up unique challenges to every administrator. These team members only " +"need a subset of access beyond normal end user levels; however, they almost " +"always tell management they are unable to perform their tasks without " +"superuser access. Thankfully, there is no reason to provide such access to " +"end users because tools exist to manage this exact requirement." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27465 +msgid "" +"Up to this point, the security chapter has covered permitting access to " +"authorized users and attempting to prevent unauthorized access. Another " +"problem arises once authorized users have access to the system resources. In " +"many cases, some users may need access to application startup scripts, or a " +"team of administrators need to maintain the system. Traditionally, the " +"standard users and groups, file permissions, and even the " +"<citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> command would manage this access. And as applications required " +"more access, as more users needed to use system resources, a better solution " +"was required. The most used application is currently <application>Sudo</" +"application>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27477 +msgid "" +"<application>Sudo</application> allows administrators to configure more " +"rigid access to system commands and provide for some advanced logging " +"features. As a tool, it is available from the Ports Collection as <package " +"role=\"port\">security/sudo</package> or by use of the " +"<citerefentry><refentrytitle>pkg</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> utility. To use the <citerefentry><refentrytitle>pkg</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> tool:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27484 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install sudo</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27486 +msgid "" +"After the installation is complete, the installed <command>visudo</command> " +"will open the configuration file with a text editor. Using <command>visudo</" +"command> is highly recommended as it comes with a built in syntax checker to " +"verify there are no errors before the file is saved." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27492 +msgid "" +"The configuration file is made up of several small sections which allow for " +"extensive configuration. In the following example, web application " +"maintainer, user1, needs to start, stop, and restart the web application " +"known as <replaceable>webservice</replaceable>. To grant this user " +"permission to perform these tasks, add this line to the end of <filename>/" +"usr/local/etc/sudoers</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:27501 +#, no-wrap +msgid "user1 ALL=(ALL) /usr/sbin/service webservice *" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27503 +msgid "" +"The user may now start <replaceable>webservice</replaceable> using this " +"command:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27506 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>sudo /usr/sbin/service <replaceable>webservice</replaceable> start</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27508 +msgid "" +"While this configuration allows a single user access to the " +"<application>webservice</application> service; however, in most " +"organizations, there is an entire web team in charge of managing the " +"service. A single line can also give access to an entire group. These steps " +"will create a web group, add a user to this group, and allow all members of " +"the group to manage the service:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27516 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw groupadd -g 6001 -n webteam</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27518 +msgid "" +"Using the same <citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> command, the user is added to the webteam group:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27521 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw groupmod -m user1 -n webteam</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27523 +msgid "" +"Finally, this line in <filename>/usr/local/etc/sudoers</filename> allows any " +"member of the webteam group to manage <replaceable>webservice</replaceable>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:27528 +#, no-wrap +msgid "%webteam ALL=(ALL) /usr/sbin/service webservice *" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27530 +msgid "" +"Unlike <citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, <application>Sudo</application> only requires the " +"end user password. This adds an advantage where users will not need shared " +"passwords, a finding in most security audits and just bad all the way around." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27535 +msgid "" +"Users permitted to run applications with <application>Sudo</application> " +"only enter their own passwords. This is more secure and gives better control " +"than <citerefentry><refentrytitle>su</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, where the <systemitem class=\"username\">root</" +"systemitem> password is entered and the user acquires all <systemitem class=" +"\"username\">root</systemitem> permissions." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:27544 +msgid "" +"Most organizations are moving or have moved toward a two factor " +"authentication model. In these cases, the user may not have a password to " +"enter. <application>Sudo</application> provides for these cases with the " +"<literal>NOPASSWORD</literal> variable. Adding it to the configuration above " +"will allow all members of the <replaceable>webteam</replaceable> group to " +"manage the service without the password requirement:" +msgstr "" + +#. (itstool) path: tip/programlisting +#: book.translate.xml:27553 +#, no-wrap +msgid "%webteam ALL=(ALL) NOPASSWORD: /usr/sbin/service webservice *" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:27557 +msgid "Logging Output" +msgstr "記錄輸出" + +#. (itstool) path: sect2/para +#: book.translate.xml:27559 +msgid "" +"An advantage to implementing <application>Sudo</application> is the ability " +"to enable session logging. Using the built in log mechanisms and the " +"included <application>sudoreplay</application> command, all commands " +"initiated through <application>Sudo</application> are logged for later " +"verification. To enable this feature, add a default log directory entry, " +"this example uses a user variable. Several other log filename conventions " +"exist, consult the manual page for <application>sudoreplay</application> for " +"additional information." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:27571 +#, no-wrap +msgid "Defaults iolog_dir=/var/log/sudo-io/%{user}" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:27574 +msgid "" +"This directory will be created automatically after the logging is " +"configured. It is best to let the system create directory with default " +"permissions just to be safe. In addition, this entry will also log " +"administrators who use the <application>sudoreplay</application> command. To " +"change this behavior, read and uncomment the logging options inside " +"<filename>sudoers</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27583 +msgid "" +"Once this directive has been added to the <filename>sudoers</filename> file, " +"any user configuration can be updated with the request to log access. In the " +"example shown, the updated <replaceable>webteam</replaceable> entry would " +"have the following additional changes:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:27589 +#, no-wrap +msgid "%webteam ALL=(ALL) NOPASSWD: LOG_INPUT: LOG_OUTPUT: /usr/sbin/service webservice *" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27591 +msgid "" +"From this point on, all <replaceable>webteam</replaceable> members altering " +"the status of the <replaceable>webservice</replaceable> application will be " +"logged. The list of previous and current sessions can be displayed with:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:27597 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sudoreplay -l</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27599 +msgid "" +"In the output, to replay a specific session, search for the <literal>TSID=</" +"literal> entry, and pass that to <application>sudoreplay</application> with " +"no other options to replay the session at normal speed. For example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:27604 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sudoreplay user1/00/00/02</userinput>" +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:27607 +msgid "" +"While sessions are logged, any administrator is able to remove sessions and " +"leave only a question of why they had done so. It is worthwhile to add a " +"daily check through an intrusion detection system (<acronym>IDS</acronym>) " +"or similar software so that other administrators are alerted to manual " +"alterations." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:27615 +msgid "" +"The <command>sudoreplay</command> is extremely extendable. Consult the " +"documentation for more information." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:27629 +msgid "Jails" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:27632 +msgid "" +"<personname><firstname>Matteo</firstname><surname>Riondato</surname></" +"personname><contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: chapter/indexterm +#: book.translate.xml:27637 +msgid "<primary>jails</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27642 +msgid "" +"Since system administration is a difficult task, many tools have been " +"developed to make life easier for the administrator. These tools often " +"enhance the way systems are installed, configured, and maintained. One of " +"the tools which can be used to enhance the security of a FreeBSD system is " +"<firstterm>jails</firstterm>. Jails have been available since FreeBSD 4.X " +"and continue to be enhanced in their usefulness, performance, reliability, " +"and security." +msgstr "" +"由於系統管理是一項困難的工作,許多工具開發來讓系統管理者能夠更輕鬆。這些工具" +"通常可以強化系統安裝、設定以及維護的方式。這些工具之可以用來強化 FreeBSD 系統" +"的安全性之一的就是 <firstterm>Jail</firstterm>。Jail 早在 FreeBSD 4.X 便可使" +"用並持續強化它的功能、效率、穩定性以及安全性。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27651 +msgid "" +"Jails build upon the <citerefentry><refentrytitle>chroot</" +"refentrytitle><manvolnum>2</manvolnum></citerefentry> concept, which is used " +"to change the root directory of a set of processes. This creates a safe " +"environment, separate from the rest of the system. Processes created in the " +"chrooted environment can not access files or resources outside of it. For " +"that reason, compromising a service running in a chrooted environment should " +"not allow the attacker to compromise the entire system. However, a chroot " +"has several limitations. It is suited to easy tasks which do not require " +"much flexibility or complex, advanced features. Over time, many ways have " +"been found to escape from a chrooted environment, making it a less than " +"ideal solution for securing services." +msgstr "" +"Jail 建立在 <citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</" +"manvolnum></citerefentry> 概念之上,會更改一系列程序的根目錄。這可以創造一個" +"安全的環境,將程序與系統的其他部份分隔。在 chroot 的環境所建立的程序不能存取" +"該環境以外的檔案或資源。也因此,滲透一個在 chroot 的環境執行的服務並不會讓整" +"個系統被攻擊者滲透。但 chroot 有許多限制,只適合用在簡單的工作,不需要許多彈" +"性或複雜性、進階功能的工作。隨著時間推移,許多可以逃離 chroot 的環境的方法已" +"經被找到,讓這個方法不再是確保服務安全的理想方案。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27664 +msgid "" +"Jails improve on the concept of the traditional chroot environment in " +"several ways. In a traditional chroot environment, processes are only " +"limited in the part of the file system they can access. The rest of the " +"system resources, system users, running processes, and the networking " +"subsystem are shared by the chrooted processes and the processes of the host " +"system. Jails expand this model by virtualizing access to the file system, " +"the set of users, and the networking subsystem. More fine-grained controls " +"are available for tuning the access of a jailed environment. Jails can be " +"considered as a type of operating system-level virtualization." +msgstr "" +"Jail 用許多方式改進了傳統 chroot 環境的概念。在傳統 chroot 環境,程序僅限制在" +"一部份檔案系統可存取的地方。其餘的系統資源、系統使用者、執行的程序以及網路子" +"系統被 chroot 的程序及主機系統的程序所共享。Jail 透過虛擬化存取檔案系統、使用" +"者及網路子系統來擴展這個模型,可使用更多細微的控制參數來調校 Jail 的環境存取" +"方式,Jail 可算是一種作業系統層級的虛擬化。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27676 +msgid "A jail is characterized by four elements:" +msgstr "Jail 的四個要素:" + +#. (itstool) path: listitem/para +#: book.translate.xml:27680 +msgid "" +"A directory subtree: the starting point from which a jail is entered. Once " +"inside the jail, a process is not permitted to escape outside of this " +"subtree." +msgstr "" +"一個子樹狀目錄:進入 Jail 的起點目錄,一但在 Jail 中,程序便沒有權限離開此目" +"錄之外。" + +#. (itstool) path: listitem/para +#: book.translate.xml:27686 +msgid "A hostname: which will be used by the jail." +msgstr "一個主機名稱:將會由 Jail 所使用。" + +#. (itstool) path: listitem/para +#: book.translate.xml:27690 +msgid "" +"An <acronym>IP</acronym> address: which is assigned to the jail. The " +"<acronym>IP</acronym> address of a jail is often an alias address for an " +"existing network interface." +msgstr "" +"一個 <acronym>IP</acronym> 位址:用來分配給 Jail。Jail 的 <acronym>IP</" +"acronym> 位址通常是現有網路介面的別名位址。" + +#. (itstool) path: listitem/para +#: book.translate.xml:27697 +msgid "" +"A command: the path name of an executable to run inside the jail. The path " +"is relative to the root directory of the jail environment." +msgstr "" +"一個指令:要在 Jail 中可執行的執行檔路徑名稱。該路徑是 Jail 環境根目錄的相對" +"路徑。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27703 +msgid "" +"Jails have their own set of users and their own <systemitem class=\"username" +"\">root</systemitem> account which are limited to the jail environment. The " +"<systemitem class=\"username\">root</systemitem> account of a jail is not " +"allowed to perform operations to the system outside of the associated jail " +"environment." +msgstr "" +"Jail 有自己使用者及自己的 <systemitem class=\"username\">root</systemitem> 帳" +"號,皆受到 Jail 環境的限制。Jail 中的 <systemitem class=\"username\">root</" +"systemitem> 帳號不允許對指定 Jail 環境之外的系統執行操作。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27708 +msgid "" +"This chapter provides an overview of the terminology and commands for " +"managing FreeBSD jails. Jails are a powerful tool for both system " +"administrators, and advanced users." +msgstr "" +"本章將提供 FreeBSD Jail 術語及管理指令的概述,Jail 對系統管理者及進階的使用者" +"來二者來說皆是強大的工具。" + +#. (itstool) path: listitem/para +#: book.translate.xml:27716 +msgid "What a jail is and what purpose it may serve in FreeBSD installations." +msgstr "Jail 是什麼及它在 FreeBSD 中提供的目的。" + +#. (itstool) path: listitem/para +#: book.translate.xml:27721 +msgid "How to build, start, and stop a jail." +msgstr "如何建立、啟動及停止 Jail。" + +#. (itstool) path: listitem/para +#: book.translate.xml:27725 +msgid "" +"The basics of jail administration, both from inside and outside the jail." +msgstr "Jail 管理基礎,不論從內部或外部。" + +#. (itstool) path: important/para +#: book.translate.xml:27731 +msgid "" +"Jails are a powerful tool, but they are not a security panacea. While it is " +"not possible for a jailed process to break out on its own, there are several " +"ways in which an unprivileged user outside the jail can cooperate with a " +"privileged user inside the jail to obtain elevated privileges in the host " +"environment." +msgstr "" +"Jail 是強大的工具,但它不是安全性問題的萬靈丹。雖然 Jail 的程序不可能自己獨自" +"打破規則,但有許多方法可以讓在 Jail 之外無權限的使用者與在 Jail 之內有權限的" +"使用者串通來取得主機環境的更高權限。" + +#. (itstool) path: important/para +#: book.translate.xml:27738 +msgid "" +"Most of these attacks can be mitigated by ensuring that the jail root is not " +"accessible to unprivileged users in the host environment. As a general rule, " +"untrusted users with privileged access to a jail should not be given access " +"to the host environment." +msgstr "" +"大多數這類型的攻擊者可以由確保 Jail 根目錄不會被無權限使用者存取來減少。基本" +"上,不受信任的使用者有 Jail 的存取權限並不會讓其可存取主機環境。" + +#. (itstool) path: sect1/title +#: book.translate.xml:27747 +msgid "Terms Related to Jails" +msgstr "Jail 相關術語" + +#. (itstool) path: sect1/para +#: book.translate.xml:27749 +msgid "" +"To facilitate better understanding of parts of the FreeBSD system related to " +"jails, their internals and the way they interact with the rest of FreeBSD, " +"the following terms are used further in this chapter:" +msgstr "" +"為協助更容易理解 FreeBSD 系統有關 Jail 部份, 以及它們與 FreeBSD 其他部分的相" +"互作用關係, 以下列出本章將使用的術語:" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:27756 +msgid "" +"<citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> (command)" +msgstr "" +"<citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> (指令)" + +#. (itstool) path: listitem/para +#: book.translate.xml:27758 +msgid "" +"Utility, which uses <citerefentry><refentrytitle>chroot</" +"refentrytitle><manvolnum>2</manvolnum></citerefentry> FreeBSD system call to " +"change the root directory of a process and all its descendants." +msgstr "" +"工具,用來使用 <citerefentry><refentrytitle>chroot</" +"refentrytitle><manvolnum>2</manvolnum></citerefentry> FreeBSD 系統呼叫 " +"(System call) 來更改程予及其衍伸程序的根目錄。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:27765 +msgid "" +"<citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></" +"citerefentry> (environment)" +msgstr "" +"<citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></" +"citerefentry> (環境)" + +#. (itstool) path: listitem/para +#: book.translate.xml:27767 +msgid "" +"The environment of processes running in a <quote>chroot</quote>. This " +"includes resources such as the part of the file system which is visible, " +"user and group IDs which are available, network interfaces and other IPC " +"mechanisms, etc." +msgstr "" +"指程序在 <quote>chroot</quote> 中執行的環境。包含的資源如:一部份可見的檔案系" +"統、可用的使用者及群組 ID、網路介面及其他 IPC 機制等。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:27776 +msgid "" +"<citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> (command)" +msgstr "" +"<citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> (指令)" + +#. (itstool) path: listitem/para +#: book.translate.xml:27778 +msgid "" +"The system administration utility which allows launching of processes within " +"a jail environment." +msgstr "允許在 Jail 環境下執行程序的系統管理工具。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:27784 +msgid "host (system, process, user, etc.)" +msgstr "主機 (系統、程序、使用者等)" + +#. (itstool) path: listitem/para +#: book.translate.xml:27786 +msgid "" +"The controlling system of a jail environment. The host system has access to " +"all the hardware resources available, and can control processes both outside " +"of and inside a jail environment. One of the important differences of the " +"host system from a jail is that the limitations which apply to superuser " +"processes inside a jail are not enforced for processes of the host system." +msgstr "" +"Jail 環境的控制系統。 主機系統可以存取所有可用的硬體資源,並能控制 Jail 環境" +"內外的程序。主機系統與 Jail 最大的差別在於:在主機系統中的超級使用者程序並不" +"像在 Jail 環境那樣受到限制。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:27798 +msgid "hosted (system, process, user, etc.)" +msgstr "託管 (主機、程序、使用者等)" + +#. (itstool) path: listitem/para +#: book.translate.xml:27800 +msgid "" +"A process, user or other entity, whose access to resources is restricted by " +"a FreeBSD jail." +msgstr "存取資源受到 FreeBSD Jail 限制的託管程序、使用者或其他實體。" + +#. (itstool) path: sect1/title +#: book.translate.xml:27808 +msgid "Creating and Controlling Jails" +msgstr "建立和控制 Jail" + +#. (itstool) path: sect1/para +#: book.translate.xml:27810 +msgid "" +"Some administrators divide jails into the following two types: " +"<quote>complete</quote> jails, which resemble a real FreeBSD system, and " +"<quote>service</quote> jails, dedicated to one application or service, " +"possibly running with privileges. This is only a conceptual division and the " +"process of building a jail is not affected by it. When creating a " +"<quote>complete</quote> jail there are two options for the source of the " +"userland: use prebuilt binaries (such as those supplied on an install media) " +"or build from source." +msgstr "" +"部份管理者將 Jail 分成兩種類型:<quote>完整的</quote> Jail,它像一個真正的 " +"FreeBSD 系統以及 <quote>服務的</quote> Jail,專門用於某個應用程式或服務,可能" +"使用管理權限執行。但這些只是概念上的區分,建立 Jail 的程序並不受這個概念的影" +"響。當要建立一個 <quote>完整的</quote> Jail,Userland 有兩個來源選項:使用預" +"先編譯的 Binary (如安裝媒體上提供的 Binary) 或從原始碼編譯。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27820 +msgid "" +"To install the userland from installation media, first create the root " +"directory for the jail. This can be done by setting the <varname>DESTDIR</" +"varname> variable to the proper location." +msgstr "" +"要從安裝媒體安裝 Userland,需要先建立根目錄供 Jail 使用。這個動作可以透過設" +"定 <varname>DESTDIR</varname> 來到適當的位置來完成。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27825 +msgid "Start a shell and define <varname>DESTDIR</varname>:" +msgstr "啟動 Shell 並定義 <varname>DESTDIR</varname>:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27827 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>sh</userinput>\n" +"<prompt>#</prompt> <userinput>export DESTDIR=<replaceable>/here/is/the/jail</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27830 +msgid "" +"Mount the install media as covered in <citerefentry><refentrytitle>mdconfig</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> when using the install " +"ISO:" +msgstr "" +"當使用安裝 ISO 時,可依 <citerefentry><refentrytitle>mdconfig</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 中的說明掛載安裝媒體:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27833 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount -t cd9660 /dev/`mdconfig -f cdimage.iso` /mnt</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27835 +msgid "" +"Extract the binaries from the tarballs on the install media into the " +"declared destination. Minimally, only the base set needs to be extracted, " +"but a complete install can be performed when preferred." +msgstr "" +"從安裝媒體上的 Tarball 中取出 Binary 並放到宣告的位置,至少需要取出 Base set " +"的部份,若需要也可完整安裝。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27840 +msgid "To install just the base system:" +msgstr "只安裝基礎系統 (Base system):" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27842 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>tar -xf /mnt/usr/freebsd-dist/base.txz -C $DESTDIR</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27844 +msgid "To install everything except the kernel:" +msgstr "安裝全部不含核心:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27846 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>for <replaceable>sets</replaceable> in BASE PORTS; do tar -xf /mnt/FREEBSD_INSTALL/USR/FREEBSD_DIST/$<replaceable>sets</replaceable>.TXZ -C $DESTDIR ; done</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27848 +msgid "" +"The <citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> manual page explains the procedure for building a " +"jail:" +msgstr "" +"依 <citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 操作手冊說明的程序建置 Jail:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27851 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>setenv D <replaceable>/here/is/the/jail</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>mkdir -p $D</userinput> <co xml:id=\"jailpath\"/>\n" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make buildworld</userinput> <co xml:id=\"jailbuildworld\"/>\n" +"<prompt>#</prompt> <userinput>make installworld DESTDIR=$D</userinput> <co xml:id=\"jailinstallworld\"/>\n" +"<prompt>#</prompt> <userinput>make distribution DESTDIR=$D</userinput> <co xml:id=\"jaildistrib\"/>\n" +"<prompt>#</prompt> <userinput>mount -t devfs devfs $D/dev</userinput> <co xml:id=\"jaildevfs\"/>" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:27861 +msgid "" +"Selecting a location for a jail is the best starting point. This is where " +"the jail will physically reside within the file system of the jail's host. A " +"good choice can be <filename>/usr/jail/<replaceable>jailname</replaceable></" +"filename>, where <replaceable>jailname</replaceable> is the hostname " +"identifying the jail. Usually, <filename>/usr/</filename> has enough space " +"for the jail file system, which for <quote>complete</quote> jails is, " +"essentially, a replication of every file present in a default installation " +"of the FreeBSD base system." +msgstr "" +"選擇 Jail 的位置是建置 Jail 最好的起點,這是在 Jail 主機上儲存 Jail 的實體位" +"置。較好的選擇是 <filename>/usr/jail/<replaceable>jailname</replaceable></" +"filename>,其中 <replaceable>jailname</replaceable> 是用來辦識 Jail 的主機名" +"稱。通常在 <filename>/usr/</filename> 會有足夠的空間供 Jail 檔案系統使用,對 " +"<quote>完整的</quote> Jail 來說,便是複製 FreeBSD 基礎系統預設安裝的每一個檔" +"案。" + +#. (itstool) path: callout/para +#: book.translate.xml:27874 +msgid "" +"If you have already rebuilt your userland using <command>make world</" +"command> or <command>make buildworld</command>, you can skip this step and " +"install your existing userland into the new jail." +msgstr "" +"若您已經使用 <command>make world</command> 或 <command>make buildworld</" +"command> 重新編譯您的 Userland,您可以跳過這個步驟並安裝您已存在的 Userland " +"到新的 Jail。" + +#. (itstool) path: callout/para +#: book.translate.xml:27881 +msgid "" +"This command will populate the directory subtree chosen as jail's physical " +"location on the file system with the necessary binaries, libraries, manual " +"pages and so on." +msgstr "" +"這個指令將會在檔案系統中 Jail 所在的實體位置產生樹狀目錄及必要的 Binary、程式" +"庫、操作手冊與相關檔案。" + +#. (itstool) path: para/buildtarget +#: book.translate.xml:27888 +msgid "distribution" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:27888 +msgid "" +"The <_:buildtarget-1/> target for <application>make</application> installs " +"every needed configuration file. In simple words, it installs every " +"installable file of <filename>/usr/src/etc/</filename> to the <filename>/" +"etc</filename> directory of the jail environment: <filename>$D/etc/</" +"filename>." +msgstr "" +"<application>make</application> 的 <_:buildtarget-1/> 目標會安裝所有需要的設" +"定檔。簡單來說,它會安裝所有 <filename>/usr/src/etc/</filename> 中可安裝的檔" +"案到 Jail 環境的 <filename>/etc</filename>目錄:<filename>$D/etc/</" +"filename>。" + +#. (itstool) path: callout/para +#: book.translate.xml:27899 +msgid "" +"Mounting the <citerefentry><refentrytitle>devfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> file system inside a jail is not required. On the " +"other hand, any, or almost any application requires access to at least one " +"device, depending on the purpose of the given application. It is very " +"important to control access to devices from inside a jail, as improper " +"settings could permit an attacker to do nasty things in the jail. Control " +"over <citerefentry><refentrytitle>devfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> is managed through rulesets which are described in " +"the <citerefentry><refentrytitle>devfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>devfs.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> manual pages." +msgstr "" +"在 Jail 中掛載 <citerefentry><refentrytitle>devfs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 檔案系統並非必要的動" +"作。從另一個角度來說,任何或大部份的應用程式會依該程式的目的會需要存取至少一" +"個裝置,在 Jail 中控制存取的裝置非常重要,不恰當的設定可能會讓攻擊者可以在 " +"Jail 中做不軌的事。對 <citerefentry><refentrytitle>devfs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 的控制是透過 Ruleset," +"在 <citerefentry><refentrytitle>devfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 及 <citerefentry><refentrytitle>devfs.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 操作手冊中有詳細說明。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27911 +msgid "" +"Once a jail is installed, it can be started by using the " +"<citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> utility. The <citerefentry><refentrytitle>jail</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> utility takes four " +"mandatory arguments which are described in the <xref linkend=\"jails-synopsis" +"\"/>. Other arguments may be specified too, e.g., to run the jailed process " +"with the credentials of a specific user. The <option><replaceable>command</" +"replaceable></option> argument depends on the type of the jail; for a " +"<emphasis>virtual system</emphasis>, <filename>/etc/rc</filename> is a good " +"choice, since it will replicate the startup sequence of a real FreeBSD " +"system. For a <emphasis>service</emphasis> jail, it depends on the service " +"or application that will run within the jail." +msgstr "" +"Jail 安裝完成之後,便可使用 <citerefentry><refentrytitle>jail</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 工具來啟動。" +"<citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 工具需要四個必要參數,在 <xref linkend=\"jails-synopsis\"/> 有" +"說明。其他參數也可能需要指定,例如要使用特定使用者的身份來執行要 Jail 的程" +"序。<option><replaceable>command</replaceable></option> 參數依 Jail 的類型所" +"需而定,對一個 <emphasis>虛擬系統</emphasis> 來說,<filename>/etc/rc</" +"filename> 是不錯的選擇,因為該檔案可以模仿真實 FreeBSD 的啟動順序。對於 " +"<emphasis>服務的</emphasis> Jail 來說,則看在 Jail 中要執行的服務或應用程式來" +"決定。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27924 +msgid "" +"Jails are often started at boot time and the FreeBSD <filename>rc</filename> " +"mechanism provides an easy way to do this." +msgstr "" +"Jail 通常會需要隨著開機執行,使用 FreeBSD <filename>rc</filename> 機制可讓以" +"簡單的達成這件事。" + +#. (itstool) path: step/para +#: book.translate.xml:27930 +msgid "" +"A list of the jails which are enabled to start at boot time should be added " +"to the <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> file:" +msgstr "" +"要在開機時啟動的 Jail 應加入到 <citerefentry><refentrytitle>rc.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 檔案中:" + +#. (itstool) path: step/programlisting +#: book.translate.xml:27933 +#, no-wrap +msgid "" +"jail_enable=\"YES\" # Set to NO to disable starting of any jails\n" +"jail_list=\"<replaceable>www</replaceable>\" # Space separated list of names of jails" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:27937 +msgid "" +"Jail names in <varname>jail_list</varname> should contain alphanumeric " +"characters only." +msgstr "在 <varname>jail_list</varname> 中的 Jail 名稱只允許使用英數字元。" + +#. (itstool) path: step/para +#: book.translate.xml:27943 +msgid "" +"For each jail listed in <varname>jail_list</varname>, a group of " +"<citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> settings, which describe the particular jail, " +"should be added:" +msgstr "" +"針對每個列在 <varname>jail_list</varname> 中的 Jail 圴需加入一組 " +"<citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> 設定來描述指定的 Jail:" + +#. (itstool) path: step/programlisting +#: book.translate.xml:27947 +#, no-wrap +msgid "" +"jail_<replaceable>www</replaceable>_rootdir=\"/usr/jail/www\" # jail's root directory\n" +"jail_<replaceable>www</replaceable>_hostname=\"<replaceable>www</replaceable>.example.org\" # jail's hostname\n" +"jail_<replaceable>www</replaceable>_ip=\"192.168.0.10\" # jail's IP address\n" +"jail_<replaceable>www</replaceable>_devfs_enable=\"YES\" # mount devfs in the jail" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:27952 +msgid "" +"The default startup of jails configured in <citerefentry><refentrytitle>rc." +"conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, will run the " +"<filename>/etc/rc</filename> script of the jail, which assumes the jail is a " +"complete virtual system. For service jails, the default startup command of " +"the jail should be changed, by setting the " +"<varname>jail_<replaceable>jailname</replaceable>_exec_start</varname> " +"option appropriately." +msgstr "" +"<citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>中會假設 Jail 是完整的虛擬系統,預設會啟動 Jail 的 " +"<filename>/etc/rc</filename> Script。針對服務的 Jail 則需設定適當的 " +"<varname>jail_<replaceable>jailname</replaceable>_exec_start</varname> 選項來" +"修改預設啟動的指令。" + +#. (itstool) path: note/para +#: book.translate.xml:27961 +msgid "" +"For a full list of available options, please see the " +"<citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> manual page." +msgstr "" +"要取得完整可用選項的清單,請參考 <citerefentry><refentrytitle>rc.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 操作手冊。" + +#. (itstool) path: sect1/para +#: book.translate.xml:27967 +msgid "" +"<citerefentry><refentrytitle>service</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> can be used to start or stop a jail by hand, if an " +"entry for it exists in <filename>rc.conf</filename>:" +msgstr "" +"若該 Jail 已經在 <filename>rc.conf</filename> 中設定,可以用 " +"<citerefentry><refentrytitle>service</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 來啟動或停止 Jail:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27971 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service jail start <replaceable>www</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>service jail stop <replaceable>www</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27974 +msgid "" +"Jails can be shut down with <citerefentry><refentrytitle>jexec</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. Use " +"<citerefentry><refentrytitle>jls</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to identify the jail's <varname>JID</varname>, then use " +"<citerefentry><refentrytitle>jexec</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to run the shutdown script in that jail." +msgstr "" +"Jail 可以使用 <citerefentry><refentrytitle>jexec</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 來關機。先使用 " +"<citerefentry><refentrytitle>jls</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 來辦識 Jail 的 <varname>JID</varname>,然後使用 " +"<citerefentry><refentrytitle>jexec</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 在該 Jail 中執行關機 Script。" + +#. (itstool) path: sect1/screen +#: book.translate.xml:27978 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>jls</userinput>\n" +" JID IP Address Hostname Path\n" +" 3 192.168.0.10 www /usr/jail/www\n" +"<prompt>#</prompt> <userinput>jexec <replaceable>3</replaceable> /etc/rc.shutdown</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:27983 +msgid "" +"More information about this can be found in the " +"<citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> manual page." +msgstr "" +"更多有關 Jail 的資訊可在 <citerefentry><refentrytitle>jail</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 操作手冊取得。" + +#. (itstool) path: sect1/title +#: book.translate.xml:27988 +msgid "Fine Tuning and Administration" +msgstr "調校與管理" + +#. (itstool) path: sect1/para +#: book.translate.xml:27990 +msgid "" +"There are several options which can be set for any jail, and various ways of " +"combining a host FreeBSD system with jails, to produce higher level " +"applications. This section presents:" +msgstr "" +"還有許多選項可以對所有 Jail 做設定,以及各種可讓 Jail 與主機 FreeBSD 系統結合" +"的方法來提供更高層級的應用程式使用。 本節將介紹:" + +#. (itstool) path: listitem/para +#: book.translate.xml:27997 +msgid "" +"Some of the options available for tuning the behavior and security " +"restrictions implemented by a jail installation." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28003 +msgid "" +"Some of the high-level applications for jail management, which are available " +"through the FreeBSD Ports Collection, and can be used to implement overall " +"jail-based solutions." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:28011 +msgid "System Tools for Jail Tuning in FreeBSD" +msgstr "在 FreeBSD 中調校 Jail 的系統工具" + +#. (itstool) path: sect2/para +#: book.translate.xml:28013 +msgid "" +"Fine tuning of a jail's configuration is mostly done by setting " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variables. A special subtree of sysctl exists as a basis for " +"organizing all the relevant options: the <varname>security.jail.*</varname> " +"hierarchy of FreeBSD kernel options. Here is a list of the main jail-related " +"sysctls, complete with their default value. Names should be self-" +"explanatory, but for more information about them, please refer to the " +"<citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> manual pages." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28025 +msgid "<varname>security.jail.set_hostname_allowed: 1</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28030 +msgid "<varname>security.jail.socket_unixiproute_only: 1</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28035 +msgid "<varname>security.jail.sysvipc_allowed: 0</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28040 +msgid "<varname>security.jail.enforce_statfs: 2</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28045 +msgid "<varname>security.jail.allow_raw_sockets: 0</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28050 +msgid "<varname>security.jail.chflags_allowed: 0</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28055 +msgid "<varname>security.jail.jailed: 0</varname>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:28059 +msgid "" +"These variables can be used by the system administrator of the " +"<emphasis>host system</emphasis> to add or remove some of the limitations " +"imposed by default on the <systemitem class=\"username\">root</systemitem> " +"user. Note that there are some limitations which cannot be removed. The " +"<systemitem class=\"username\">root</systemitem> user is not allowed to " +"mount or unmount file systems from within a " +"<citerefentry><refentrytitle>jail</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. The <systemitem class=\"username\">root</systemitem> inside a " +"jail may not load or unload <citerefentry><refentrytitle>devfs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> rulesets, set firewall " +"rules, or do many other administrative tasks which require modifications of " +"in-kernel data, such as setting the <varname>securelevel</varname> of the " +"kernel." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:28071 +msgid "" +"The base system of FreeBSD contains a basic set of tools for viewing " +"information about the active jails, and attaching to a jail to run " +"administrative commands. The <citerefentry><refentrytitle>jls</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>jexec</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> commands are part of the base FreeBSD system, and can be used " +"to perform the following simple tasks:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28079 +msgid "" +"Print a list of active jails and their corresponding jail identifier " +"(<acronym>JID</acronym>), <acronym>IP</acronym> address, hostname and path." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28085 +msgid "" +"Attach to a running jail, from its host system, and run a command inside the " +"jail or perform administrative tasks inside the jail itself. This is " +"especially useful when the <systemitem class=\"username\">root</systemitem> " +"user wants to cleanly shut down a jail. The " +"<citerefentry><refentrytitle>jexec</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> utility can also be used to start a shell in a jail to do " +"administration in it; for example:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:28093 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>jexec <replaceable>1</replaceable> tcsh</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:28099 +msgid "High-Level Administrative Tools in the FreeBSD Ports Collection" +msgstr "在 FreeBSD Ports 套件集中的高層級管理工具" + +#. (itstool) path: sect2/para +#: book.translate.xml:28102 +msgid "" +"Among the many third-party utilities for jail administration, one of the " +"most complete and useful is <package>sysutils/ezjail</package>. It is a set " +"of scripts that contribute to <citerefentry><refentrytitle>jail</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> management. Please " +"refer to <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/" +"handbook/jails-ezjail.html\">the handbook section on <application>ezjail</" +"application></link> for more information." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:28112 +msgid "Keeping Jails Patched and up to Date" +msgstr "持續 Jail 的修補與更新" + +#. (itstool) path: sect2/para +#: book.translate.xml:28114 +msgid "" +"Jails should be kept up to date from the host operating system as attempting " +"to patch userland from within the jail may likely fail as the default " +"behavior in FreeBSD is to disallow the use of " +"<citerefentry><refentrytitle>chflags</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> in a jail which prevents the replacement of some " +"files. It is possible to change this behavior but it is recommended to use " +"<citerefentry><refentrytitle>freebsd-update</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> to maintain jails instead. Use <option>-b</option> " +"to specify the path of the jail to be updated." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:28123 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>freebsd-update -b <replaceable>/here/is/the/jail</replaceable> fetch</userinput>\n" +"<prompt>#</prompt> <userinput>freebsd-update -b <replaceable>/here/is/the/jail</replaceable> install</userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:28130 +msgid "Updating Multiple Jails" +msgstr "更新多個 Jail" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:28133 book.translate.xml:34428 book.translate.xml:34763 +msgid "" +"<personname> <firstname>Daniel</firstname> <surname>Gerzo</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:28142 +msgid "" +"<personname> <firstname>Simon</firstname> <surname>L. B. Nielsen</surname> </" +"personname> <contrib>Based upon an idea presented by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:28151 +msgid "" +"<personname> <firstname>Ken</firstname> <surname>Tom</surname> </personname> " +"<contrib>And an article written by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:28161 +msgid "" +"The management of multiple jails can become problematic because every jail " +"has to be rebuilt from scratch whenever it is upgraded. This can be time " +"consuming and tedious if a lot of jails are created and manually updated." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:28166 +msgid "" +"This section demonstrates one method to resolve this issue by safely sharing " +"as much as is possible between jails using read-only " +"<citerefentry><refentrytitle>mount_nullfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> mounts, so that updating is simpler. This makes it " +"more attractive to put single services, such as <acronym>HTTP</acronym>, " +"<acronym>DNS</acronym>, and <acronym>SMTP</acronym>, into individual jails. " +"Additionally, it provides a simple way to add, remove, and upgrade jails." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:28176 +msgid "" +"Simpler solutions exist, such as <application>ezjail</application>, which " +"provides an easier method of administering FreeBSD jails but is less " +"versatile than this setup. <application>ezjail</application> is covered in " +"more detail in <xref linkend=\"jails-ezjail\"/>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:28183 +msgid "The goals of the setup described in this section are:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28187 +msgid "" +"Create a simple and easy to understand jail structure that does not require " +"running a full installworld on each and every jail." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28193 +msgid "Make it easy to add new jails or remove existing ones." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28198 +msgid "Make it easy to update or upgrade existing jails." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28202 +msgid "Make it possible to run a customized FreeBSD branch." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28206 +msgid "" +"Be paranoid about security, reducing as much as possible the possibility of " +"compromise." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28211 +msgid "Save space and inodes, as much as possible." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:28215 +msgid "" +"This design relies on a single, read-only master template which is mounted " +"into each jail and one read-write device per jail. A device can be a " +"separate physical disc, a partition, or a vnode backed memory device. This " +"example uses read-write <application>nullfs</application> mounts." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:28221 +msgid "The file system layout is as follows:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28225 +msgid "The jails are based under the <filename>/home</filename> partition." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28230 +msgid "" +"Each jail will be mounted under the <filename>/home/j</filename> directory." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28235 +msgid "" +"The template for each jail and the read-only partition for all of the jails " +"is <filename>/home/j/mroot</filename>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28241 +msgid "" +"A blank directory will be created for each jail under the <filename>/home/j</" +"filename> directory." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28246 +msgid "" +"Each jail will have a <filename>/s</filename> directory that will be linked " +"to the read-write portion of the system." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28252 +msgid "" +"Each jail will have its own read-write system that is based upon <filename>/" +"home/j/skel</filename>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:28257 +msgid "" +"The read-write portion of each jail will be created in <filename>/home/js</" +"filename>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:28265 +msgid "Creating the Template" +msgstr "建立範本" + +#. (itstool) path: sect2/para +#: book.translate.xml:28267 +msgid "This section describes the steps needed to create the master template." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:28270 +msgid "" +"It is recommended to first update the host FreeBSD system to the latest -" +"RELEASE branch using the instructions in <xref linkend=\"makeworld\"/>. " +"Additionally, this template uses the <package>sysutils/cpdup</package> " +"package or port and <application>portsnap</application> will be used to " +"download the FreeBSD Ports Collection." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28278 +msgid "" +"First, create a directory structure for the read-only file system which will " +"contain the FreeBSD binaries for the jails. Then, change directory to the " +"FreeBSD source tree and install the read-only file system to the jail " +"template:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28284 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mkdir /home/j /home/j/mroot</userinput>\n" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make installworld DESTDIR=/home/j/mroot</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28290 +msgid "" +"Next, prepare a FreeBSD Ports Collection for the jails as well as a FreeBSD " +"source tree, which is required for <application>mergemaster</application>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28294 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /home/j/mroot</userinput>\n" +"<prompt>#</prompt> <userinput>mkdir usr/ports</userinput>\n" +"<prompt>#</prompt> <userinput>portsnap -p /home/j/mroot/usr/ports fetch extract</userinput>\n" +"<prompt>#</prompt> <userinput>cpdup /usr/src /home/j/mroot/usr/src</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28301 +msgid "Create a skeleton for the read-write portion of the system:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28304 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles</userinput>\n" +"<prompt>#</prompt> <userinput>mv etc /home/j/skel</userinput>\n" +"<prompt>#</prompt> <userinput>mv usr/local /home/j/skel/usr-local</userinput>\n" +"<prompt>#</prompt> <userinput>mv tmp /home/j/skel</userinput>\n" +"<prompt>#</prompt> <userinput>mv var /home/j/skel</userinput>\n" +"<prompt>#</prompt> <userinput>mv root /home/j/skel</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28313 +msgid "" +"Use <application>mergemaster</application> to install missing configuration " +"files. Then, remove the extra directories that <application>mergemaster</" +"application> creates:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28318 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i</userinput>\n" +"<prompt>#</prompt> <userinput>cd /home/j/skel</userinput>\n" +"<prompt>#</prompt> <userinput>rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28324 +msgid "" +"Now, symlink the read-write file system to the read-only file system. Ensure " +"that the symlinks are created in the correct <filename>s/</filename> " +"locations as the creation of directories in the wrong locations will cause " +"the installation to fail." +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28330 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /home/j/mroot</userinput>\n" +"<prompt>#</prompt> <userinput>mkdir s</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s s/etc etc</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s s/home home</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s s/root root</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s ../s/usr-local usr/local</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s ../s/usr-X11R6 usr/X11R6</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s ../../s/distfiles usr/ports/distfiles</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s s/tmp tmp</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s s/var var</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28343 +msgid "" +"As a last step, create a generic <filename>/home/j/skel/etc/make.conf</" +"filename> containing this line:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:28347 +#, no-wrap +msgid "WRKDIRPREFIX?= /s/portbuild" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28349 +msgid "" +"This makes it possible to compile FreeBSD ports inside each jail. Remember " +"that the ports directory is part of the read-only system. The custom path " +"for <literal>WRKDIRPREFIX</literal> allows builds to be done in the read-" +"write portion of every jail." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:28359 +msgid "Creating Jails" +msgstr "建立 Jail" + +#. (itstool) path: sect2/para +#: book.translate.xml:28361 +msgid "" +"The jail template can now be used to setup and configure the jails in " +"<filename>/etc/rc.conf</filename>. This example demonstrates the creation of " +"3 jails: <literal>NS</literal>, <literal>MAIL</literal> and <literal>WWW</" +"literal>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28368 +msgid "" +"Add the following lines to <filename>/etc/fstab</filename>, so that the read-" +"only template for the jails and the read-write space will be available in " +"the respective jails:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:28373 +#, no-wrap +msgid "" +"/home/j/mroot /home/j/ns nullfs ro 0 0\n" +"/home/j/mroot /home/j/mail nullfs ro 0 0\n" +"/home/j/mroot /home/j/www nullfs ro 0 0\n" +"/home/js/ns /home/j/ns/s nullfs rw 0 0\n" +"/home/js/mail /home/j/mail/s nullfs rw 0 0\n" +"/home/js/www /home/j/www/s nullfs rw 0 0" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28380 +msgid "" +"To prevent <application>fsck</application> from checking " +"<application>nullfs</application> mounts during boot and <application>dump</" +"application> from backing up the read-only nullfs mounts of the jails, the " +"last two columns are both set to <literal>0</literal>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28389 +msgid "Configure the jails in <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:28392 +#, no-wrap +msgid "" +"jail_enable=\"YES\"\n" +"jail_set_hostname_allow=\"NO\"\n" +"jail_list=\"ns mail www\"\n" +"jail_ns_hostname=\"ns.example.org\"\n" +"jail_ns_ip=\"192.168.3.17\"\n" +"jail_ns_rootdir=\"/usr/home/j/ns\"\n" +"jail_ns_devfs_enable=\"YES\"\n" +"jail_mail_hostname=\"mail.example.org\"\n" +"jail_mail_ip=\"192.168.3.18\"\n" +"jail_mail_rootdir=\"/usr/home/j/mail\"\n" +"jail_mail_devfs_enable=\"YES\"\n" +"jail_www_hostname=\"www.example.org\"\n" +"jail_www_ip=\"62.123.43.14\"\n" +"jail_www_rootdir=\"/usr/home/j/www\"\n" +"jail_www_devfs_enable=\"YES\"" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28408 +msgid "" +"The <varname>jail_<replaceable>name</replaceable>_rootdir</varname> variable " +"is set to <filename>/usr/home</filename> instead of <filename>/home</" +"filename> because the physical path of <filename>/home</filename> on a " +"default FreeBSD installation is <filename>/usr/home</filename>. The " +"<varname>jail_<replaceable>name</replaceable>_rootdir</varname> variable " +"must <emphasis>not</emphasis> be set to a path which includes a symbolic " +"link, otherwise the jails will refuse to start." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28422 +msgid "" +"Create the required mount points for the read-only file system of each jail:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28425 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mkdir /home/j/ns /home/j/mail /home/j/www</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28429 +msgid "" +"Install the read-write template into each jail using <package>sysutils/" +"cpdup</package>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28436 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mkdir /home/js</userinput>\n" +"<prompt>#</prompt> <userinput>cpdup /home/j/skel /home/js/ns</userinput>\n" +"<prompt>#</prompt> <userinput>cpdup /home/j/skel /home/js/mail</userinput>\n" +"<prompt>#</prompt> <userinput>cpdup /home/j/skel /home/js/www</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28443 +msgid "" +"In this phase, the jails are built and prepared to run. First, mount the " +"required file systems for each jail, and then start them:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28447 book.translate.xml:28556 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mount -a</userinput>\n" +"<prompt>#</prompt> <userinput>service jail start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:28452 +msgid "" +"The jails should be running now. To check if they have started correctly, " +"use <command>jls</command>. Its output should be similar to the following:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:28456 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>jls</userinput>\n" +" JID IP Address Hostname Path\n" +" 3 192.168.3.17 ns.example.org /home/j/ns\n" +" 2 192.168.3.18 mail.example.org /home/j/mail\n" +" 1 62.123.43.14 www.example.org /home/j/www" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:28462 +msgid "" +"At this point, it should be possible to log onto each jail, add new users, " +"or configure daemons. The <literal>JID</literal> column indicates the jail " +"identification number of each running jail. Use the following command to " +"perform administrative tasks in the jail whose <acronym>JID</acronym> is " +"<literal>3</literal>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:28469 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>jexec 3 tcsh</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:28473 +msgid "Upgrading" +msgstr "升級" + +#. (itstool) path: sect2/para +#: book.translate.xml:28475 +msgid "" +"The design of this setup provides an easy way to upgrade existing jails " +"while minimizing their downtime. Also, it provides a way to roll back to the " +"older version should a problem occur." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28482 +msgid "" +"The first step is to upgrade the host system. Then, create a new temporary " +"read-only template in <filename>/home/j/mroot2</filename>." +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28486 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mkdir /home/j/mroot2</userinput>\n" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make installworld DESTDIR=/home/j/mroot2</userinput>\n" +"<prompt>#</prompt> <userinput>cd /home/j/mroot2</userinput>\n" +"<prompt>#</prompt> <userinput>cpdup /usr/src usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>mkdir s</userinput>" +msgstr "" + +#. (itstool) path: para/buildtarget +#: book.translate.xml:28493 book.translate.xml:28704 book.translate.xml:45256 +#: book.translate.xml:45260 book.translate.xml:45406 book.translate.xml:45442 +msgid "installworld" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28493 +msgid "" +"The <_:buildtarget-1/> creates a few unnecessary directories, which should " +"be removed:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28497 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>chflags -R 0 var</userinput>\n" +"<prompt>#</prompt> <userinput>rm -R etc var root usr/local tmp</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28502 +msgid "Recreate the read-write symlinks for the master file system:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28505 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ln -s s/etc etc</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s s/root root</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s s/home home</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s ../s/usr-local usr/local</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s ../s/usr-X11R6 usr/X11R6</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s s/tmp tmp</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s s/var var</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28515 +msgid "Next, stop the jails:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28517 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service jail stop</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28521 +msgid "" +"Unmount the original file systems as the read-write systems are attached to " +"the read-only system (<filename>/s</filename>):" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28528 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>umount /home/j/ns/s</userinput>\n" +"<prompt>#</prompt> <userinput>umount /home/j/ns</userinput>\n" +"<prompt>#</prompt> <userinput>umount /home/j/mail/s</userinput>\n" +"<prompt>#</prompt> <userinput>umount /home/j/mail</userinput>\n" +"<prompt>#</prompt> <userinput>umount /home/j/www/s</userinput>\n" +"<prompt>#</prompt> <userinput>umount /home/j/www</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28537 +msgid "" +"Move the old read-only file system and replace it with the new one. This " +"will serve as a backup and archive of the old read-only file system should " +"something go wrong. The naming convention used here corresponds to when a " +"new read-only file system has been created. Move the original FreeBSD Ports " +"Collection over to the new file system to save some space and inodes:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28545 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /home/j</userinput>\n" +"<prompt>#</prompt> <userinput>mv mroot mroot.20060601</userinput>\n" +"<prompt>#</prompt> <userinput>mv mroot2 mroot</userinput>\n" +"<prompt>#</prompt> <userinput>mv mroot.20060601/usr/ports mroot/usr</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28552 +msgid "" +"At this point the new read-only template is ready, so the only remaining " +"task is to remount the file systems and start the jails:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:28561 +msgid "" +"Use <command>jls</command> to check if the jails started correctly. Run " +"<command>mergemaster</command> in each jail to update the configuration " +"files." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:28569 +msgid "Managing Jails with <application>ezjail</application>" +msgstr "使用 <application>ezjail</application> 管理 Jail" + +#. (itstool) path: sect1/para +#: book.translate.xml:28582 +msgid "" +"Creating and managing multiple jails can quickly become tedious and error-" +"prone. Dirk Engling's <application>ezjail</application> automates and " +"greatly simplifies many jail tasks. A <emphasis>basejail</emphasis> is " +"created as a template. Additional jails use " +"<citerefentry><refentrytitle>mount_nullfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> to share many of the basejail directories without " +"using additional disk space. Each additional jail takes only a few megabytes " +"of disk space before applications are installed. Upgrading the copy of the " +"userland in the basejail automatically upgrades all of the other jails." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:28593 +msgid "" +"Additional benefits and features are described in detail on the " +"<application>ezjail</application> web site, <link xlink:href=\"https://" +"erdgeist.org/arts/software/ezjail/\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:28597 +msgid "Installing <application>ezjail</application>" +msgstr "安裝 <application>ezjail</application>" + +#. (itstool) path: sect2/para +#: book.translate.xml:28599 +msgid "" +"Installing <application>ezjail</application> consists of adding a loopback " +"interface for use in jails, installing the port or package, and enabling the " +"service." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28605 +msgid "" +"To keep jail loopback traffic off the host's loopback network interface " +"<literal>lo0</literal>, a second loopback interface is created by adding an " +"entry to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#. (itstool) path: example/programlisting +#: book.translate.xml:28610 book.translate.xml:29099 +#, no-wrap +msgid "cloned_interfaces=\"lo1\"" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28612 +msgid "" +"The second loopback interface <literal>lo1</literal> will be created when " +"the system starts. It can also be created manually without a restart:" +msgstr "" + +#. (itstool) path: step/screen +#. (itstool) path: example/screen +#: book.translate.xml:28616 book.translate.xml:29103 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service netif cloneup</userinput>\n" +"Created clone interfaces: lo1." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28619 +msgid "" +"Jails can be allowed to use aliases of this secondary loopback interface " +"without interfering with the host." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28623 +msgid "" +"Inside a jail, access to the loopback address <systemitem class=\"ipaddress" +"\">127.0.0.1</systemitem> is redirected to the first <acronym>IP</acronym> " +"address assigned to the jail. To make the jail loopback correspond with the " +"new <literal>lo1</literal> interface, that interface must be specified first " +"in the list of interfaces and <acronym>IP</acronym> addresses given when " +"creating a new jail." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28632 +msgid "" +"Give each jail a unique loopback address in the <systemitem class=\"ipaddress" +"\">127.0.0.0</systemitem><systemitem class=\"netmask\">/8</systemitem> " +"netblock." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28637 +msgid "Install <package role=\"port\">sysutils/ezjail</package>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28640 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/sysutils/ezjail</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28645 +msgid "" +"Enable <application>ezjail</application> by adding this line to <filename>/" +"etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:28648 +#, no-wrap +msgid "ezjail_enable=\"YES\"" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28652 +msgid "" +"The service will automatically start on system boot. It can be started " +"immediately for the current session:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28656 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service ezjail start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:28664 +msgid "" +"With <application>ezjail</application> installed, the basejail directory " +"structure can be created and populated. This step is only needed once on the " +"jail host computer." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:28669 +msgid "" +"In both of these examples, <option>-p</option> causes the ports tree to be " +"retrieved with <citerefentry><refentrytitle>portsnap</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> into the basejail. " +"That single copy of the ports directory will be shared by all the jails. " +"Using a separate copy of the ports directory for jails isolates them from " +"the host. The <application>ezjail</application> <acronym>FAQ</acronym> " +"explains in more detail: <link xlink:href=\"http://erdgeist.org/arts/" +"software/ezjail/#FAQ\"/>." +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:28681 +msgid "To Populate the Jail with FreeBSD-RELEASE" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28683 +msgid "" +"For a basejail based on the FreeBSD RELEASE matching that of the host " +"computer, use <command>install</command>. For example, on a host computer " +"running FreeBSD 10-STABLE, the latest RELEASE version of FreeBSD -10 will be " +"installed in the jail):" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28690 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin install -p</userinput>" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:28694 +msgid "To Populate the Jail with <command>installworld</command>" +msgstr "" + +#. (itstool) path: para/buildtarget +#: book.translate.xml:28698 book.translate.xml:45404 +msgid "buildworld" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28697 +msgid "" +"The basejail can be installed from binaries created by <_:buildtarget-1/> on " +"the host with <command>ezjail-admin update</command>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28702 +msgid "" +"In this example, FreeBSD 10-STABLE has been built from source. The jail " +"directories are created. Then <_:buildtarget-1/> is executed, installing the " +"host's <filename>/usr/obj</filename> into the basejail." +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28709 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin update -i -p</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28711 +msgid "" +"The host's <filename>/usr/src</filename> is used by default. A different " +"source directory on the host can be specified with <option>-s</option> and a " +"path, or set with <varname>ezjail_sourcetree</varname> in <filename>/usr/" +"local/etc/ezjail.conf</filename>." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:28722 +msgid "" +"The basejail's ports tree is shared by other jails. However, downloaded " +"distfiles are stored in the jail that downloaded them. By default, these " +"files are stored in <filename>/var/ports/distfiles</filename> within each " +"jail. <filename>/var/ports</filename> inside each jail is also used as a " +"work directory when building ports." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:28731 +msgid "" +"The <acronym>FTP</acronym> protocol is used by default to download packages " +"for the installation of the basejail. Firewall or proxy configurations can " +"prevent or interfere with <acronym>FTP</acronym> transfers. The " +"<acronym>HTTP</acronym> protocol works differently and avoids these " +"problems. It can be chosen by specifying a full <acronym>URL</acronym> for a " +"particular download mirror in <filename>/usr/local/etc/ezjail.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: tip/programlisting +#: book.translate.xml:28740 +#, no-wrap +msgid "ezjail_ftphost=http://<replaceable>ftp.FreeBSD.org</replaceable>" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:28742 +msgid "See <xref linkend=\"mirrors-ftp\"/> for a list of sites." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:28748 +msgid "Creating and Starting a New Jail" +msgstr "建立並啟動新的 Jail" + +#. (itstool) path: sect2/para +#: book.translate.xml:28750 +msgid "" +"New jails are created with <command>ezjail-admin create</command>. In these " +"examples, the <literal>lo1</literal> loopback interface is used as described " +"above." +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:28756 +msgid "Create and Start a New Jail" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28759 +msgid "" +"Create the jail, specifying a name and the loopback and network interfaces " +"to use, along with their <acronym>IP</acronym> addresses. In this example, " +"the jail is named <literal>dnsjail</literal>." +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28764 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin create <replaceable>dnsjail</replaceable> '<replaceable>lo1|127.0.1.1</replaceable>,<replaceable>em0</replaceable>|<replaceable>192.168.1.50</replaceable>'</userinput>" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:28767 +msgid "" +"Most network services run in jails without problems. A few network services, " +"most notably <citerefentry><refentrytitle>ping</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, use <emphasis>raw network sockets</emphasis>. In " +"jails, raw network sockets are disabled by default for security. Services " +"that require them will not work." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:28774 +msgid "" +"Occasionally, a jail genuinely needs raw sockets. For example, network " +"monitoring applications often use <citerefentry><refentrytitle>ping</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to check the " +"availability of other computers. When raw network sockets are actually " +"needed in a jail, they can be enabled by editing the <application>ezjail</" +"application> configuration file for the individual jail, <filename>/usr/" +"local/etc/ezjail/<replaceable>jailname</replaceable></filename>. Modify the " +"<literal>parameters</literal> entry:" +msgstr "" + +#. (itstool) path: tip/programlisting +#: book.translate.xml:28785 +#, no-wrap +msgid "export jail_<replaceable>jailname</replaceable>_parameters=\"allow.raw_sockets=1\"" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:28787 +msgid "" +"Do not enable raw network sockets unless services in the jail actually " +"require them." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28793 +msgid "Start the jail:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28795 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin start <replaceable>dnsjail</replaceable></userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28799 +msgid "Use a console on the jail:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28801 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin console <replaceable>dnsjail</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:28805 +msgid "" +"The jail is operating and additional configuration can be completed. Typical " +"settings added at this point include:" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:28811 +msgid "Set the <systemitem class=\"username\">root</systemitem> Password" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28815 +msgid "" +"Connect to the jail and set the <systemitem class=\"username\">root</" +"systemitem> user's password:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:28819 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ezjail-admin console <replaceable>dnsjail</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>passwd</userinput>\n" +"Changing local password for root\n" +"New Password:\n" +"Retype New Password:" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:28827 +msgid "Time Zone Configuration" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28829 +msgid "" +"The jail's time zone can be set with <citerefentry><refentrytitle>tzsetup</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. To avoid spurious " +"error messages, the <citerefentry><refentrytitle>adjkerntz</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> entry in <filename>/" +"etc/crontab</filename> can be commented or removed. This job attempts to " +"update the computer's hardware clock with time zone changes, but jails are " +"not allowed to access that hardware." +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:28838 +msgid "<acronym>DNS</acronym> Servers" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28840 +msgid "" +"Enter domain name server lines in <filename>/etc/resolv.conf</filename> so " +"<acronym>DNS</acronym> works in the jail." +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:28846 +msgid "Edit <filename>/etc/hosts</filename>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28848 +msgid "" +"Change the address and add the jail name to the <literal>localhost</literal> " +"entries in <filename>/etc/hosts</filename>." +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:28854 +msgid "Configure <filename>/etc/rc.conf</filename>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:28856 +msgid "" +"Enter configuration settings in <filename>/etc/rc.conf</filename>. This is " +"much like configuring a full computer. The host name and <acronym>IP</" +"acronym> address are not set here. Those values are already provided by the " +"jail configuration." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:28865 +msgid "" +"With the jail configured, the applications for which the jail was created " +"can be installed." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:28869 +msgid "" +"Some ports must be built with special options to be used in a jail. For " +"example, both of the network monitoring plugin packages <package role=\"port" +"\">net-mgmt/nagios-plugins</package> and <package role=\"port\">net-mgmt/" +"monitoring-plugins</package> have a <literal>JAIL</literal> option which " +"must be enabled for them to work correctly inside a jail." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:28880 +msgid "Updating Jails" +msgstr "更新 Jail" + +#. (itstool) path: sect3/title +#: book.translate.xml:28883 +msgid "Updating the Operating System" +msgstr "更新作業系統" + +#. (itstool) path: sect3/para +#: book.translate.xml:28885 +msgid "" +"Because the basejail's copy of the userland is shared by the other jails, " +"updating the basejail automatically updates all of the other jails. Either " +"source or binary updates can be used." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:28890 +msgid "" +"To build the world from source on the host, then install it in the basejail, " +"use:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:28893 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin update -b</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:28895 +msgid "" +"If the world has already been compiled on the host, install it in the " +"basejail with:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:28898 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin update -i</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:28900 +msgid "" +"Binary updates use <citerefentry><refentrytitle>freebsd-update</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. These updates have " +"the same limitations as if <citerefentry><refentrytitle>freebsd-update</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> were being run " +"directly. The most important one is that only -RELEASE versions of FreeBSD " +"are available with this method." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:28906 +msgid "" +"Update the basejail to the latest patched release of the version of FreeBSD " +"on the host. For example, updating from RELEASE-p1 to RELEASE-p2." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:28910 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin update -u</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:28912 +msgid "" +"To upgrade the basejail to a new version, first upgrade the host system as " +"described in <xref linkend=\"freebsdupdate-upgrade\"/>. Once the host has " +"been upgraded and rebooted, the basejail can then be upgraded. " +"<citerefentry><refentrytitle>freebsd-update</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> has no way of determining which version is " +"currently installed in the basejail, so the original version must be " +"specified. Use <citerefentry><refentrytitle>file</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> to determine the " +"original version in the basejail:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:28920 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>file /usr/jails/basejail/bin/sh</userinput>\n" +"/usr/jails/basejail/bin/sh: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 9.3, stripped" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:28923 +msgid "" +"Now use this information to perform the upgrade from <literal>9.3-RELEASE</" +"literal> to the current version of the host system:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:28927 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin update -U -s <replaceable>9.3-RELEASE</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:28929 +msgid "" +"After updating the basejail, <citerefentry><refentrytitle>mergemaster</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> must be run to update " +"each jail's configuration files." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:28932 +msgid "" +"How to use <citerefentry><refentrytitle>mergemaster</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> depends on the purpose " +"and trustworthiness of a jail. If a jail's services or users are not " +"trusted, then <citerefentry><refentrytitle>mergemaster</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> should only be run " +"from within that jail:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:28938 +msgid "" +"<citerefentry><refentrytitle>mergemaster</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> on Untrusted Jail" +msgstr "" +"在不信任的 Jail 做 <citerefentry><refentrytitle>mergemaster</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>" + +#. (itstool) path: example/para +#: book.translate.xml:28940 +msgid "" +"Delete the link from the jail's <filename>/usr/src</filename> into the " +"basejail and create a new <filename>/usr/src</filename> in the jail as a " +"mountpoint. Mount the host computer's <filename>/usr/src</filename> read-" +"only on the jail's new <filename>/usr/src</filename> mountpoint:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:28947 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>rm /usr/jails/<replaceable>jailname</replaceable>/usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>mkdir /usr/jails/<replaceable>jailname</replaceable>/usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>mount -t nullfs -o ro /usr/src /usr/jails/<replaceable>jailname</replaceable>/usr/src</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:28951 +msgid "Get a console in the jail:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:28953 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin console <replaceable>jailname</replaceable></userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:28955 +msgid "" +"Inside the jail, run <command>mergemaster</command>. Then exit the jail " +"console:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:28958 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>mergemaster -U</userinput>\n" +"<prompt>#</prompt> <userinput>exit</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:28962 +msgid "Finally, unmount the jail's <filename>/usr/src</filename>:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:28965 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>umount /usr/jails/<replaceable>jailname</replaceable>/usr/src</userinput>" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:28970 +msgid "" +"<citerefentry><refentrytitle>mergemaster</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> on Trusted Jail" +msgstr "" +"在信任的 Jail 做 <citerefentry><refentrytitle>mergemaster</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>" + +#. (itstool) path: example/para +#: book.translate.xml:28972 +msgid "" +"If the users and services in a jail are trusted, " +"<citerefentry><refentrytitle>mergemaster</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> can be run from the host:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:28975 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mergemaster -U -D /usr/jails/<replaceable>jailname</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:28980 +msgid "Updating Ports" +msgstr "更新 Ports" + +#. (itstool) path: sect3/para +#: book.translate.xml:28982 +msgid "" +"The ports tree in the basejail is shared by the other jails. Updating that " +"copy of the ports tree gives the other jails the updated version also." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:28986 +msgid "" +"The basejail ports tree is updated with " +"<citerefentry><refentrytitle>portsnap</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:28989 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin update -P</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:28994 +msgid "Controlling Jails" +msgstr "控制 Jail" + +#. (itstool) path: sect3/title +#: book.translate.xml:28997 +msgid "Stopping and Starting Jails" +msgstr "停止與啟動 Jail" + +#. (itstool) path: sect3/para +#: book.translate.xml:28999 +msgid "" +"<application>ezjail</application> automatically starts jails when the " +"computer is started. Jails can be manually stopped and restarted with " +"<command>stop</command> and <command>start</command>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:29004 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ezjail-admin stop <replaceable>sambajail</replaceable></userinput>\n" +"Stopping jails: sambajail." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:29007 +msgid "" +"By default, jails are started automatically when the host computer starts. " +"Autostarting can be disabled with <command>config</command>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:29011 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin config -r norun <replaceable>seldomjail</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:29013 +msgid "" +"This takes effect the next time the host computer is started. A jail that is " +"already running will not be stopped." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:29017 +msgid "Enabling autostart is very similar:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:29019 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin config -r run <replaceable>oftenjail</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:29023 +msgid "Archiving and Restoring Jails" +msgstr "封存與還原 Jail" + +#. (itstool) path: sect3/para +#: book.translate.xml:29025 +msgid "" +"Use <command>archive</command> to create a <filename>.tar.gz</filename> " +"archive of a jail. The file name is composed from the name of the jail and " +"the current date. Archive files are written to the archive directory, " +"<filename>/usr/jails/ezjail_archives</filename>. A different archive " +"directory can be chosen by setting <varname>ezjail_archivedir</varname> in " +"the configuration file." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:29034 +msgid "" +"The archive file can be copied elsewhere as a backup, or an existing jail " +"can be restored from it with <command>restore</command>. A new jail can be " +"created from the archive, providing a convenient way to clone existing jails." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:29040 +msgid "Stop and archive a jail named <literal>wwwserver</literal>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:29043 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ezjail-admin stop <replaceable>wwwserver</replaceable></userinput>\n" +"Stopping jails: wwwserver.\n" +"<prompt>#</prompt> <userinput>ezjail-admin archive <replaceable>wwwserver</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ls /usr/jails/ezjail-archives/</userinput>\n" +"wwwserver-201407271153.13.tar.gz" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:29049 +msgid "" +"Create a new jail named <literal>wwwserver-clone</literal> from the archive " +"created in the previous step. Use the <filename>em1</filename> interface and " +"assign a new <acronym>IP</acronym> address to avoid conflict with the " +"original:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:29055 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin create -a /usr/jails/ezjail_archives/wwwserver-201407271153.13.tar.gz <replaceable>wwwserver-clone</replaceable> 'lo1|127.0.3.1,em1|192.168.1.51'</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:29060 +msgid "Full Example: <application>BIND</application> in a Jail" +msgstr "完整範例:在 Jail 中安裝 <application>BIND</application>" + +#. (itstool) path: sect2/para +#: book.translate.xml:29063 +msgid "" +"Putting the <application>BIND</application> <acronym>DNS</acronym> server in " +"a jail improves security by isolating it. This example creates a simple " +"caching-only name server." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29070 +msgid "The jail will be called <literal>dns1</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29075 +msgid "" +"The jail will use <acronym>IP</acronym> address <literal>192.168.1.240</" +"literal> on the host's <literal>re0</literal> interface." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29081 +msgid "" +"The upstream <acronym>ISP</acronym>'s DNS servers are at <literal>10.0.0.62</" +"literal> and <literal>10.0.0.61</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29087 +msgid "" +"The basejail has already been created and a ports tree installed as shown in " +"<xref linkend=\"jails-ezjail-initialsetup\"/>." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:29094 +msgid "Running BIND in a Jail" +msgstr "在 Jail 中執行 BIND" + +#. (itstool) path: example/para +#: book.translate.xml:29096 +msgid "" +"Create a cloned loopback interface by adding a line to <filename>/etc/rc." +"conf</filename>:" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29101 +msgid "Immediately create the new loopback interface:" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29106 +msgid "Create the jail:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:29108 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ezjail-admin create dns1 'lo1|127.0.2.1,re0|192.168.1.240'</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29110 +msgid "" +"Start the jail, connect to a console running on it, and perform some basic " +"configuration:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:29113 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ezjail-admin start dns1</userinput>\n" +"<prompt>#</prompt> <userinput>ezjail-admin console dns1</userinput>\n" +"<prompt>#</prompt> <userinput>passwd</userinput>\n" +"Changing local password for root\n" +"New Password:\n" +"Retype New Password:\n" +"<prompt>#</prompt> <userinput>tzsetup</userinput>\n" +"<prompt>#</prompt> <userinput>sed -i .bak -e '/adjkerntz/ s/^/#/' /etc/crontab</userinput>\n" +"<prompt>#</prompt> <userinput>sed -i .bak -e 's/127.0.0.1/127.0.2.1/g; s/localhost.my.domain/dns1.my.domain dns1/' /etc/hosts</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29123 +msgid "" +"Temporarily set the upstream <acronym>DNS</acronym> servers in <filename>/" +"etc/resolv.conf</filename> so ports can be downloaded:" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:29127 +#, no-wrap +msgid "" +"nameserver 10.0.0.62\n" +"nameserver 10.0.0.61" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29130 +msgid "" +"Still using the jail console, install <package role=\"port\">dns/bind99</" +"package>." +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:29133 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make -C /usr/ports/dns/bind99 install clean</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29135 +msgid "" +"Configure the name server by editing <filename>/usr/local/etc/namedb/named." +"conf</filename>." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29138 +msgid "" +"Create an Access Control List (<acronym>ACL</acronym>) of addresses and " +"networks that are permitted to send <acronym>DNS</acronym> queries to this " +"name server. This section is added just before the <literal>options</" +"literal> section already in the file:" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:29144 +#, no-wrap +msgid "" +"...\n" +"// or cause huge amounts of useless Internet traffic.\n" +"\n" +"acl \"trusted\" {\n" +"\t192.168.1.0/24;\n" +"\tlocalhost;\n" +"\tlocalnets;\n" +"};\n" +"\n" +"options {\n" +"..." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29156 +msgid "" +"Use the jail <acronym>IP</acronym> address in the <literal>listen-on</" +"literal> setting to accept <acronym>DNS</acronym> queries from other " +"computers on the network:" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:29161 +#, no-wrap +msgid "\tlisten-on\t{ 192.168.1.240; };" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29163 +msgid "" +"A simple caching-only <acronym>DNS</acronym> name server is created by " +"changing the <literal>forwarders</literal> section. The original file " +"contains:" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:29167 +#, no-wrap +msgid "" +"/*\n" +"\tforwarders {\n" +"\t\t127.0.0.1;\n" +"\t};\n" +"*/" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29173 +msgid "" +"Uncomment the section by removing the <literal>/*</literal> and <literal>*/</" +"literal> lines. Enter the <acronym>IP</acronym> addresses of the upstream " +"<acronym>DNS</acronym> servers. Immediately after the <literal>forwarders</" +"literal> section, add references to the <literal>trusted</literal> " +"<acronym>ACL</acronym> defined earlier:" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:29181 +#, no-wrap +msgid "" +"\tforwarders {\n" +"\t\t10.0.0.62;\n" +"\t\t10.0.0.61;\n" +"\t};\n" +"\n" +"\tallow-query { any; };\n" +"\tallow-recursion { trusted; };\n" +"\tallow-query-cache { trusted; };" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29190 +msgid "Enable the service in <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: example/programlisting +#. (itstool) path: sect3/programlisting +#: book.translate.xml:29193 book.translate.xml:55469 +#, no-wrap +msgid "named_enable=\"YES\"" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29195 +msgid "Start and test the name server:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:29197 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service named start</userinput>\n" +"wrote key file \"/usr/local/etc/namedb/rndc.key\"\n" +"Starting named.\n" +"<prompt>#</prompt> <userinput>/usr/local/bin/dig @192.168.1.240 freebsd.org</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29202 +msgid "A response that includes" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:29204 +#, no-wrap +msgid ";; Got answer;" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29206 +msgid "" +"shows that the new <acronym>DNS</acronym> server is working. A long delay " +"followed by a response including" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:29210 +#, no-wrap +msgid ";; connection timed out; no servers could be reached" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29212 +msgid "" +"shows a problem. Check the configuration settings and make sure any local " +"firewalls allow the new <acronym>DNS</acronym> access to the upstream " +"<acronym>DNS</acronym> servers." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29217 +msgid "" +"The new <acronym>DNS</acronym> server can use itself for local name " +"resolution, just like other local computers. Set the address of the " +"<acronym>DNS</acronym> server in the client computer's <filename>/etc/resolv." +"conf</filename>:" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:29223 +#, no-wrap +msgid "nameserver 192.168.1.240" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:29225 +msgid "" +"A local <acronym>DHCP</acronym> server can be configured to provide this " +"address for a local <acronym>DNS</acronym> server, providing automatic " +"configuration on <acronym>DHCP</acronym> clients." +msgstr "" + +#. (itstool) path: info/title +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:29241 book.translate.xml:65535 +msgid "Mandatory Access Control" +msgstr "強制存取控制 (MAC)" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:29252 +msgid "<primary>MAC</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:29253 +msgid "<primary>Mandatory Access Control</primary> <see>MAC</see>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29258 +msgid "" +"FreeBSD supports security extensions based on the <trademark class=" +"\"registered\">POSIX</trademark>.1e draft. These security mechanisms include " +"file system Access Control Lists (<xref linkend=\"fs-acl\"/>) and Mandatory " +"Access Control (<acronym>MAC</acronym>). <acronym>MAC</acronym> allows " +"access control modules to be loaded in order to implement security policies. " +"Some modules provide protections for a narrow subset of the system, " +"hardening a particular service. Others provide comprehensive labeled " +"security across all subjects and objects. The mandatory part of the " +"definition indicates that enforcement of controls is performed by " +"administrators and the operating system. This is in contrast to the default " +"security mechanism of Discretionary Access Control (<acronym>DAC</acronym>) " +"where enforcement is left to the discretion of users." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29273 +msgid "" +"This chapter focuses on the <acronym>MAC</acronym> framework and the set of " +"pluggable security policy modules FreeBSD provides for enabling various " +"security mechanisms." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29281 +msgid "The terminology associated with the <acronym>MAC</acronym> framework." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29286 +msgid "" +"The capabilities of <acronym>MAC</acronym> security policy modules as well " +"as the difference between a labeled and non-labeled policy." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29292 +msgid "" +"The considerations to take into account before configuring a system to use " +"the <acronym>MAC</acronym> framework." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29297 +msgid "" +"Which <acronym>MAC</acronym> security policy modules are included in FreeBSD " +"and how to configure them." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29302 +msgid "" +"How to implement a more secure environment using the <acronym>MAC</acronym> " +"framework." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29307 +msgid "" +"How to test the <acronym>MAC</acronym> configuration to ensure the framework " +"has been properly implemented." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29321 book.translate.xml:31074 book.translate.xml:46110 +msgid "" +"Have some familiarity with security and how it pertains to FreeBSD (<xref " +"linkend=\"security\"/>)." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:29327 +msgid "" +"Improper <acronym>MAC</acronym> configuration may cause loss of system " +"access, aggravation of users, or inability to access the features provided " +"by <application>Xorg</application>. More importantly, <acronym>MAC</acronym> " +"should not be relied upon to completely secure a system. The <acronym>MAC</" +"acronym> framework only augments an existing security policy. Without sound " +"security practices and regular security checks, the system will never be " +"completely secure." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:29337 +msgid "" +"The examples contained within this chapter are for demonstration purposes " +"and the example settings should <emphasis>not</emphasis> be implemented on a " +"production system. Implementing any security policy takes a good deal of " +"understanding, proper design, and thorough testing." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29344 +msgid "" +"While this chapter covers a broad range of security issues relating to the " +"<acronym>MAC</acronym> framework, the development of new <acronym>MAC</" +"acronym> security policy modules will not be covered. A number of security " +"policy modules included with the <acronym>MAC</acronym> framework have " +"specific characteristics which are provided for both testing and new module " +"development. Refer to <citerefentry><refentrytitle>mac_test</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>mac_stub</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>mac_none</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> for more information " +"on these security policy modules and the various mechanisms they provide." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:29357 book.translate.xml:31099 +msgid "Key Terms" +msgstr "關鍵詞" + +#. (itstool) path: sect1/para +#: book.translate.xml:29359 +msgid "" +"The following key terms are used when referring to the <acronym>MAC</" +"acronym> framework:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29364 +msgid "" +"<emphasis>compartment</emphasis>: a set of programs and data to be " +"partitioned or separated, where users are given explicit access to specific " +"component of a system. A compartment represents a grouping, such as a work " +"group, department, project, or topic. Compartments make it possible to " +"implement a need-to-know-basis security policy." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29374 +msgid "" +"<emphasis>integrity</emphasis>: the level of trust which can be placed on " +"data. As the integrity of the data is elevated, so does the ability to trust " +"that data." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29380 +msgid "" +"<emphasis>level</emphasis>: the increased or decreased setting of a security " +"attribute. As the level increases, its security is considered to elevate as " +"well." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29386 +msgid "" +"<emphasis>label</emphasis>: a security attribute which can be applied to " +"files, directories, or other items in the system. It could be considered a " +"confidentiality stamp. When a label is placed on a file, it describes the " +"security properties of that file and will only permit access by files, " +"users, and resources with a similar security setting. The meaning and " +"interpretation of label values depends on the policy configuration. Some " +"policies treat a label as representing the integrity or secrecy of an object " +"while other policies might use labels to hold rules for access." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29400 +msgid "" +"<emphasis>multilabel</emphasis>: this property is a file system option which " +"can be set in single-user mode using <citerefentry><refentrytitle>tunefs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, during boot using " +"<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry>, or during the creation of a new file system. This option " +"permits an administrator to apply different <acronym>MAC</acronym> labels on " +"different objects. This option only applies to security policy modules which " +"support labeling." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29410 +msgid "" +"<emphasis>single label</emphasis>: a policy where the entire file system " +"uses one label to enforce access control over the flow of data. Whenever " +"<option>multilabel</option> is not set, all files will conform to the same " +"label setting." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29418 +msgid "" +"<emphasis>object</emphasis>: an entity through which information flows under " +"the direction of a <emphasis>subject</emphasis>. This includes directories, " +"files, fields, screens, keyboards, memory, magnetic storage, printers or any " +"other data storage or moving device. An object is a data container or a " +"system resource. Access to an object effectively means access to its data." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29428 +msgid "" +"<emphasis>subject</emphasis>: any active entity that causes information to " +"flow between <emphasis>objects</emphasis> such as a user, user process, or " +"system process. On FreeBSD, this is almost always a thread acting in a " +"process on behalf of a user." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29436 +msgid "" +"<emphasis>policy</emphasis>: a collection of rules which defines how " +"objectives are to be achieved. A policy usually documents how certain items " +"are to be handled. This chapter considers a policy to be a collection of " +"rules which controls the flow of data and information and defines who has " +"access to that data and information." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29445 +msgid "" +"<emphasis>high-watermark</emphasis>: this type of policy permits the raising " +"of security levels for the purpose of accessing higher level information. In " +"most cases, the original level is restored after the process is complete. " +"Currently, the FreeBSD <acronym>MAC</acronym> framework does not include " +"this type of policy." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29454 +msgid "" +"<emphasis>low-watermark</emphasis>: this type of policy permits lowering " +"security levels for the purpose of accessing information which is less " +"secure. In most cases, the original security level of the user is restored " +"after the process is complete. The only security policy module in FreeBSD to " +"use this is <citerefentry><refentrytitle>mac_lomac</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29463 +msgid "" +"<emphasis>sensitivity</emphasis>: usually used when discussing Multilevel " +"Security (<acronym>MLS</acronym>). A sensitivity level describes how " +"important or secret the data should be. As the sensitivity level increases, " +"so does the importance of the secrecy, or confidentiality, of the data." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:29474 +msgid "Understanding MAC Labels" +msgstr "了解 MAC 標籤" + +#. (itstool) path: sect1/para +#: book.translate.xml:29476 +msgid "" +"A <acronym>MAC</acronym> label is a security attribute which may be applied " +"to subjects and objects throughout the system. When setting a label, the " +"administrator must understand its implications in order to prevent " +"unexpected or undesired behavior of the system. The attributes available on " +"an object depend on the loaded policy module, as policy modules interpret " +"their attributes in different ways." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29484 +msgid "" +"The security label on an object is used as a part of a security access " +"control decision by a policy. With some policies, the label contains all of " +"the information necessary to make a decision. In other policies, the labels " +"may be processed as part of a larger rule set." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29490 +msgid "" +"There are two types of label policies: single label and multi label. By " +"default, the system will use single label. The administrator should be aware " +"of the pros and cons of each in order to implement policies which meet the " +"requirements of the system's security model." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29496 +msgid "" +"A single label security policy only permits one label to be used for every " +"subject or object. Since a single label policy enforces one set of access " +"permissions across the entire system, it provides lower administration " +"overhead, but decreases the flexibility of policies which support labeling. " +"However, in many environments, a single label policy may be all that is " +"required." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29504 +msgid "" +"A single label policy is somewhat similar to <acronym>DAC</acronym> as " +"<systemitem class=\"username\">root</systemitem> configures the policies so " +"that users are placed in the appropriate categories and access levels. A " +"notable difference is that many policy modules can also restrict <systemitem " +"class=\"username\">root</systemitem>. Basic control over objects will then " +"be released to the group, but <systemitem class=\"username\">root</" +"systemitem> may revoke or modify the settings at any time." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29513 +msgid "" +"When appropriate, a multi label policy can be set on a <acronym>UFS</" +"acronym> file system by passing <option>multilabel</option> to " +"<citerefentry><refentrytitle>tunefs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. A multi label policy permits each subject or object to have " +"its own independent <acronym>MAC</acronym> label. The decision to use a " +"multi label or single label policy is only required for policies which " +"implement the labeling feature, such as <literal>biba</literal>, " +"<literal>lomac</literal>, and <literal>mls</literal>. Some policies, such as " +"<literal>seeotheruids</literal>, <literal>portacl</literal> and " +"<literal>partition</literal>, do not use labels at all." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29525 +msgid "" +"Using a multi label policy on a partition and establishing a multi label " +"security model can increase administrative overhead as everything in that " +"file system has a label. This includes directories, files, and even device " +"nodes." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29530 +msgid "" +"The following command will set <option>multilabel</option> on the specified " +"<acronym>UFS</acronym> file system. This may only be done in single-user " +"mode and is not a requirement for the swap file system:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:29535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>tunefs -l enable /</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:29538 +msgid "" +"Some users have experienced problems with setting the <option>multilabel</" +"option> flag on the root partition. If this is the case, please review <xref " +"linkend=\"mac-troubleshoot\"/>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29543 +msgid "" +"Since the multi label policy is set on a per-file system basis, a multi " +"label policy may not be needed if the file system layout is well designed. " +"Consider an example security <acronym>MAC</acronym> model for a FreeBSD web " +"server. This machine uses the single label, <literal>biba/high</literal>, " +"for everything in the default file systems. If the web server needs to run " +"at <literal>biba/low</literal> to prevent write up capabilities, it could be " +"installed to a separate <acronym>UFS</acronym> <filename>/usr/local</" +"filename> file system set at <literal>biba/low</literal>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:29555 +msgid "Label Configuration" +msgstr "標籤設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:29557 +msgid "" +"Virtually all aspects of label policy module configuration will be performed " +"using the base system utilities. These commands provide a simple interface " +"for object or subject configuration or the manipulation and verification of " +"the configuration." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29563 +msgid "" +"All configuration may be done using <command>setfmac</command>, which is " +"used to set <acronym>MAC</acronym> labels on system objects, and " +"<command>setpmac</command>, which is used to set the labels on system " +"subjects. For example, to set the <literal>biba</literal> <acronym>MAC</" +"acronym> label to <literal>high</literal> on <filename>test</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:29571 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>setfmac biba/high test</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29573 +msgid "" +"If the configuration is successful, the prompt will be returned without " +"error. A common error is <errorname>Permission denied</errorname> which " +"usually occurs when the label is being set or modified on a restricted " +"object. Other conditions may produce different failures. For instance, the " +"file may not be owned by the user attempting to relabel the object, the " +"object may not exist, or the object may be read-only. A mandatory policy " +"will not allow the process to relabel the file, maybe because of a property " +"of the file, a property of the process, or a property of the proposed new " +"label value. For example, if a user running at low integrity tries to change " +"the label of a high integrity file, or a user running at low integrity tries " +"to change the label of a low integrity file to a high integrity label, these " +"operations will fail." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29589 +msgid "" +"The system administrator may use <command>setpmac</command> to override the " +"policy module's settings by assigning a different label to the invoked " +"process:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:29594 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>setfmac biba/high test</userinput>\n" +"<errorname>Permission denied</errorname>\n" +"<prompt>#</prompt> <userinput>setpmac biba/low setfmac biba/high test</userinput>\n" +"<prompt>#</prompt> <userinput>getfmac test</userinput>\n" +"test: biba/high" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29600 +msgid "" +"For currently running processes, such as <application>sendmail</" +"application>, <command>getpmac</command> is usually used instead. This " +"command takes a process ID (<acronym>PID</acronym>) in place of a command " +"name. If users attempt to manipulate a file not in their access, subject to " +"the rules of the loaded policy modules, the <errorname>Operation not " +"permitted</errorname> error will be displayed." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:29611 +msgid "Predefined Labels" +msgstr "預先定義的標籤" + +#. (itstool) path: sect2/para +#: book.translate.xml:29613 +msgid "" +"A few FreeBSD policy modules which support the labeling feature offer three " +"predefined labels: <literal>low</literal>, <literal>equal</literal>, and " +"<literal>high</literal>, where:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29620 +msgid "" +"<literal>low</literal> is considered the lowest label setting an object or " +"subject may have. Setting this on objects or subjects blocks their access to " +"objects or subjects marked high." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29627 +msgid "" +"<literal>equal</literal> sets the subject or object to be disabled or " +"unaffected and should only be placed on objects considered to be exempt from " +"the policy." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29633 +msgid "" +"<literal>high</literal> grants an object or subject the highest setting " +"available in the Biba and <acronym>MLS</acronym> policy modules." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29639 +msgid "" +"Such policy modules include <citerefentry><refentrytitle>mac_biba</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>mac_mls</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>mac_lomac</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>. Each of the " +"predefined labels establishes a different information flow directive. Refer " +"to the manual page of the module to determine the traits of the generic " +"label configurations." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:29647 +msgid "Numeric Labels" +msgstr "數值標籤" + +#. (itstool) path: sect2/para +#: book.translate.xml:29649 +msgid "" +"The Biba and <acronym>MLS</acronym> policy modules support a numeric label " +"which may be set to indicate the precise level of hierarchical control. This " +"numeric level is used to partition or sort information into different groups " +"of classification, only permitting access to that group or a higher group " +"level. For example:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:29656 +#, no-wrap +msgid "biba/10:2+3+6(5:2+3-20:2+3+4+5+6)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29658 +msgid "" +"may be interpreted as <quote>Biba Policy Label/Grade 10:Compartments 2, 3 " +"and 6: (grade 5 ...</quote>)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29661 +msgid "" +"In this example, the first grade would be considered the effective grade " +"with effective compartments, the second grade is the low grade, and the last " +"one is the high grade. In most configurations, such fine-grained settings " +"are not needed as they are considered to be advanced configurations." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29667 +msgid "" +"System objects only have a current grade and compartment. System subjects " +"reflect the range of available rights in the system, and network interfaces, " +"where they are used for access control." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29672 +msgid "" +"The grade and compartments in a subject and object pair are used to " +"construct a relationship known as <firstterm>dominance</firstterm>, in which " +"a subject dominates an object, the object dominates the subject, neither " +"dominates the other, or both dominate each other. The <quote>both dominate</" +"quote> case occurs when the two labels are equal. Due to the information " +"flow nature of Biba, a user has rights to a set of compartments that might " +"correspond to projects, but objects also have a set of compartments. Users " +"may have to subset their rights using <command>su</command> or " +"<command>setpmac</command> in order to access objects in a compartment from " +"which they are not restricted." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:29687 +msgid "User Labels" +msgstr "使用者標籤" + +#. (itstool) path: sect2/para +#: book.translate.xml:29689 +msgid "" +"Users are required to have labels so that their files and processes properly " +"interact with the security policy defined on the system. This is configured " +"in <filename>/etc/login.conf</filename> using login classes. Every policy " +"module that uses labels will implement the user class setting." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29696 +msgid "" +"To set the user class default label which will be enforced by <acronym>MAC</" +"acronym>, add a <option>label</option> entry. An example <option>label</" +"option> entry containing every policy module is displayed below. Note that " +"in a real configuration, the administrator would never enable every policy " +"module. It is recommended that the rest of this chapter be reviewed before " +"any configuration is implemented." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:29705 +#, no-wrap +msgid "" +"default:\\\n" +"\t:copyright=/etc/COPYRIGHT:\\\n" +"\t:welcome=/etc/motd:\\\n" +"\t:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\\\n" +"\t:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\\\n" +"\t:manpath=/usr/share/man /usr/local/man:\\\n" +"\t:nologin=/usr/sbin/nologin:\\\n" +"\t:cputime=1h30m:\\\n" +"\t:datasize=8M:\\\n" +"\t:vmemoryuse=100M:\\\n" +"\t:stacksize=2M:\\\n" +"\t:memorylocked=4M:\\\n" +"\t:memoryuse=8M:\\\n" +"\t:filesize=8M:\\\n" +"\t:coredumpsize=8M:\\\n" +"\t:openfiles=24:\\\n" +"\t:maxproc=32:\\\n" +"\t:priority=0:\\\n" +"\t:requirehome:\\\n" +"\t:passwordtime=91d:\\\n" +"\t:umask=022:\\\n" +"\t:ignoretime@:\\\n" +"\t:label=partition/13,mls/5,biba/10(5-15),lomac/10[2]:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29729 +msgid "" +"While users can not modify the default value, they may change their label " +"after they login, subject to the constraints of the policy. The example " +"above tells the Biba policy that a process's minimum integrity is " +"<literal>5</literal>, its maximum is <literal>15</literal>, and the default " +"effective label is <literal>10</literal>. The process will run at " +"<literal>10</literal> until it chooses to change label, perhaps due to the " +"user using <command>setpmac</command>, which will be constrained by Biba to " +"the configured range." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29740 +msgid "" +"After any change to <filename>login.conf</filename>, the login class " +"capability database must be rebuilt using <command>cap_mkdb</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29744 +msgid "" +"Many sites have a large number of users requiring several different user " +"classes. In depth planning is required as this can become difficult to " +"manage." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:29750 +msgid "Network Interface Labels" +msgstr "網路介面標籤" + +#. (itstool) path: sect2/para +#: book.translate.xml:29752 +msgid "" +"Labels may be set on network interfaces to help control the flow of data " +"across the network. Policies using network interface labels function in the " +"same way that policies function with respect to objects. Users at high " +"settings in Biba, for example, will not be permitted to access network " +"interfaces with a label of <literal>low</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29759 +msgid "" +"When setting the <acronym>MAC</acronym> label on network interfaces, " +"<option>maclabel</option> may be passed to <command>ifconfig</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:29763 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig bge0 maclabel biba/equal</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29765 +msgid "" +"This example will set the <acronym>MAC</acronym> label of <literal>biba/" +"equal</literal> on the <literal>bge0</literal> interface. When using a " +"setting similar to <literal>biba/high(low-high)</literal>, the entire label " +"should be quoted to prevent an error from being returned." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29772 +msgid "" +"Each policy module which supports labeling has a tunable which may be used " +"to disable the <acronym>MAC</acronym> label on network interfaces. Setting " +"the label to <option>equal</option> will have a similar effect. Review the " +"output of <command>sysctl</command>, the policy manual pages, and the " +"information in the rest of this chapter for more information on those " +"tunables." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:29783 +msgid "Planning the Security Configuration" +msgstr "規劃安全架構" + +#. (itstool) path: sect1/para +#: book.translate.xml:29785 +msgid "" +"Before implementing any <acronym>MAC</acronym> policies, a planning phase is " +"recommended. During the planning stages, an administrator should consider " +"the implementation requirements and goals, such as:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29792 +msgid "" +"How to classify information and resources available on the target systems." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29797 +msgid "" +"Which information or resources to restrict access to along with the type of " +"restrictions that should be applied." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29803 +msgid "" +"Which <acronym>MAC</acronym> modules will be required to achieve this goal." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29808 +msgid "" +"A trial run of the trusted system and its configuration should occur " +"<emphasis>before</emphasis> a <acronym>MAC</acronym> implementation is used " +"on production systems. Since different environments have different needs and " +"requirements, establishing a complete security profile will decrease the " +"need of changes once the system goes live." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29815 +msgid "" +"Consider how the <acronym>MAC</acronym> framework augments the security of " +"the system as a whole. The various security policy modules provided by the " +"<acronym>MAC</acronym> framework could be used to protect the network and " +"file systems or to block users from accessing certain ports and sockets. " +"Perhaps the best use of the policy modules is to load several security " +"policy modules at a time in order to provide a <acronym>MLS</acronym> " +"environment. This approach differs from a hardening policy, which typically " +"hardens elements of a system which are used only for specific purposes. The " +"downside to <acronym>MLS</acronym> is increased administrative overhead." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29828 +msgid "" +"The overhead is minimal when compared to the lasting effect of a framework " +"which provides the ability to pick and choose which policies are required " +"for a specific configuration and which keeps performance overhead down. The " +"reduction of support for unneeded policies can increase the overall " +"performance of the system as well as offer flexibility of choice. A good " +"implementation would consider the overall security requirements and " +"effectively implement the various security policy modules offered by the " +"framework." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29838 +msgid "" +"A system utilizing <acronym>MAC</acronym> guarantees that a user will not be " +"permitted to change security attributes at will. All user utilities, " +"programs, and scripts must work within the constraints of the access rules " +"provided by the selected security policy modules and control of the " +"<acronym>MAC</acronym> access rules is in the hands of the system " +"administrator." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29846 +msgid "" +"It is the duty of the system administrator to carefully select the correct " +"security policy modules. For an environment that needs to limit access " +"control over the network, the <citerefentry><refentrytitle>mac_portacl</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>mac_ifoff</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry>, and <citerefentry><refentrytitle>mac_biba</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> policy modules make " +"good starting points. For an environment where strict confidentiality of " +"file system objects is required, consider the " +"<citerefentry><refentrytitle>mac_bsdextended</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>mac_mls</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> policy modules." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29855 +msgid "" +"Policy decisions could be made based on network configuration. If only " +"certain users should be permitted access to " +"<citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, the <citerefentry><refentrytitle>mac_portacl</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> policy module is a " +"good choice. In the case of file systems, access to objects might be " +"considered confidential to some users, but not to others. As an example, a " +"large development team might be broken off into smaller projects where " +"developers in project A might not be permitted to access objects written by " +"developers in project B. Yet both projects might need to access objects " +"created by developers in project C. Using the different security policy " +"modules provided by the <acronym>MAC</acronym> framework, users could be " +"divided into these groups and then given access to the appropriate objects." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29869 +msgid "" +"Each security policy module has a unique way of dealing with the overall " +"security of a system. Module selection should be based on a well thought out " +"security policy which may require revision and reimplementation. " +"Understanding the different security policy modules offered by the " +"<acronym>MAC</acronym> framework will help administrators choose the best " +"policies for their situations." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29877 +msgid "" +"The rest of this chapter covers the available modules, describes their use " +"and configuration, and in some cases, provides insight on applicable " +"situations." +msgstr "" + +#. (itstool) path: caution/para +#: book.translate.xml:29882 +msgid "" +"Implementing <acronym>MAC</acronym> is much like implementing a firewall " +"since care must be taken to prevent being completely locked out of the " +"system. The ability to revert back to a previous configuration should be " +"considered and the implementation of <acronym>MAC</acronym> over a remote " +"connection should be done with extreme caution." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:29892 +msgid "Available MAC Policies" +msgstr "可用的 MAC 管理政策" + +#. (itstool) path: sect1/para +#: book.translate.xml:29894 +msgid "" +"The default FreeBSD kernel includes <literal>options MAC</literal>. This " +"means that every module included with the <acronym>MAC</acronym> framework " +"can be loaded with <command>kldload</command> as a run-time kernel module. " +"After testing the module, add the module name to <filename>/boot/loader." +"conf</filename> so that it will load during boot. Each module also provides " +"a kernel option for those administrators who choose to compile their own " +"custom kernel." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:29904 +msgid "" +"FreeBSD includes a group of policies that will cover most security " +"requirements. Each policy is summarized below. The last three policies " +"support integer settings in place of the three default labels." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:29910 +msgid "The MAC See Other UIDs Policy" +msgstr "MAC See Other UIDs 政策" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:29912 +msgid "<primary>MAC See Other UIDs Policy</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29915 +msgid "Module name: <filename>mac_seeotheruids.ko</filename>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29918 +msgid "Kernel configuration line: <literal>options MAC_SEEOTHERUIDS</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29921 +msgid "Boot option: <literal>mac_seeotheruids_load=\"YES\"</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29924 +msgid "" +"The <citerefentry><refentrytitle>mac_seeotheruids</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> module extends the " +"<varname>security.bsd.see_other_uids</varname> and <varname>security.bsd." +"see_other_gids</varname> <command>sysctl</command> tunables. This option " +"does not require any labels to be set before configuration and can operate " +"transparently with other modules." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29931 +msgid "" +"After loading the module, the following <command>sysctl</command> tunables " +"may be used to control its features:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29937 +msgid "" +"<varname>security.mac.seeotheruids.enabled</varname> enables the module and " +"implements the default settings which deny users the ability to view " +"processes and sockets owned by other users." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29944 +msgid "" +"<varname>security.mac.seeotheruids.specificgid_enabled</varname> allows " +"specified groups to be exempt from this policy. To exempt specific groups, " +"use the <varname>security.mac.seeotheruids.specificgid=<replaceable>XXX</" +"replaceable></varname> <command>sysctl</command> tunable, replacing " +"<replaceable>XXX</replaceable> with the numeric group ID to be exempted." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:29955 +msgid "" +"<varname>security.mac.seeotheruids.primarygroup_enabled</varname> is used to " +"exempt specific primary groups from this policy. When using this tunable, " +"<varname>security.mac.seeotheruids.specificgid_enabled</varname> may not be " +"set." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:29966 +msgid "The MAC BSD Extended Policy" +msgstr "MAC BSD Extended 政策" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:29968 +msgid "" +"<primary>MAC</primary> <secondary>File System Firewall Policy</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29972 +msgid "Module name: <filename>mac_bsdextended.ko</filename>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29975 +msgid "Kernel configuration line: <literal>options MAC_BSDEXTENDED</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29978 +msgid "Boot option: <literal>mac_bsdextended_load=\"YES\"</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29981 +msgid "" +"The <citerefentry><refentrytitle>mac_bsdextended</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> module enforces a file " +"system firewall. It provides an extension to the standard file system " +"permissions model, permitting an administrator to create a firewall-like " +"ruleset to protect files, utilities, and directories in the file system " +"hierarchy. When access to a file system object is attempted, the list of " +"rules is iterated until either a matching rule is located or the end is " +"reached. This behavior may be changed using <varname>security.mac." +"bsdextended.firstmatch_enabled</varname>. Similar to other firewall modules " +"in FreeBSD, a file containing the access control rules can be created and " +"read by the system at boot time using an <citerefentry><refentrytitle>rc." +"conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> variable." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29994 +msgid "" +"The rule list may be entered using <citerefentry><refentrytitle>ugidfw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> which has a syntax " +"similar to <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. More tools can be written by using the functions " +"in the <citerefentry><refentrytitle>libugidfw</refentrytitle><manvolnum>3</" +"manvolnum></citerefentry> library." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:29999 +msgid "" +"After the <citerefentry><refentrytitle>mac_bsdextended</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> module has been " +"loaded, the following command may be used to list the current rule " +"configuration:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30003 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ugidfw list</userinput>\n" +"0 slots, 0 rules" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30006 +msgid "" +"By default, no rules are defined and everything is completely accessible. To " +"create a rule which blocks all access by users but leaves <systemitem class=" +"\"username\">root</systemitem> unaffected:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30010 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ugidfw add subject not uid root new object not uid root mode n</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30012 +msgid "" +"While this rule is simple to implement, it is a very bad idea as it blocks " +"all users from issuing any commands. A more realistic example blocks " +"<systemitem class=\"username\">user1</systemitem> all access, including " +"directory listings, to <systemitem class=\"username\"><replaceable>user2</" +"replaceable></systemitem>'s home directory:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30018 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ugidfw set 2 subject uid <replaceable>user1</replaceable> object uid <replaceable>user2</replaceable> mode n</userinput>\n" +"<prompt>#</prompt> <userinput>ugidfw set 3 subject uid <replaceable>user1</replaceable> object gid <replaceable>user2</replaceable> mode n</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30021 +msgid "" +"Instead of <systemitem class=\"username\">user1</systemitem>, <option>not " +"uid <replaceable>user2</replaceable></option> could be used in order to " +"enforce the same access restrictions for all users. However, the <systemitem " +"class=\"username\">root</systemitem> user is unaffected by these rules." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:30028 +msgid "" +"Extreme caution should be taken when working with this module as incorrect " +"use could block access to certain parts of the file system." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30035 +msgid "The MAC Interface Silencing Policy" +msgstr "MAC Interface Silencing 政策" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:30037 +msgid "<primary>MAC Interface Silencing Policy</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30040 +msgid "Module name: <filename>mac_ifoff.ko</filename>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30042 +msgid "Kernel configuration line: <literal>options MAC_IFOFF</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30045 +msgid "Boot option: <literal>mac_ifoff_load=\"YES\"</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30048 +msgid "" +"The <citerefentry><refentrytitle>mac_ifoff</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> module is used to disable network interfaces on " +"the fly and to keep network interfaces from being brought up during system " +"boot. It does not use labels and does not depend on any other <acronym>MAC</" +"acronym> modules." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30054 +msgid "" +"Most of this module's control is performed through these <command>sysctl</" +"command> tunables:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30059 +msgid "" +"<varname>security.mac.ifoff.lo_enabled</varname> enables or disables all " +"traffic on the loopback, <citerefentry><refentrytitle>lo</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, interface." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30065 +msgid "" +"<varname>security.mac.ifoff.bpfrecv_enabled</varname> enables or disables " +"all traffic on the Berkeley Packet Filter interface, " +"<citerefentry><refentrytitle>bpf</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30071 +msgid "" +"<varname>security.mac.ifoff.other_enabled</varname> enables or disables " +"traffic on all other interfaces." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30077 +msgid "" +"One of the most common uses of <citerefentry><refentrytitle>mac_ifoff</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> is network monitoring " +"in an environment where network traffic should not be permitted during the " +"boot sequence. Another use would be to write a script which uses an " +"application such as <package>security/aide</package> to automatically block " +"network traffic if it finds new or altered files in protected directories." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30087 +msgid "The MAC Port Access Control List Policy" +msgstr "MAC Port Access Control 政策" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:30089 +msgid "<primary>MAC Port Access Control List Policy</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30092 +msgid "Module name: <filename>mac_portacl.ko</filename>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30094 +msgid "Kernel configuration line: <literal>MAC_PORTACL</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30097 +msgid "Boot option: <literal>mac_portacl_load=\"YES\"</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30100 +msgid "" +"The <citerefentry><refentrytitle>mac_portacl</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> module is used to limit binding to local " +"<acronym>TCP</acronym> and <acronym>UDP</acronym> ports, making it possible " +"to allow non-<systemitem class=\"username\">root</systemitem> users to bind " +"to specified privileged ports below 1024." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30105 +msgid "" +"Once loaded, this module enables the <acronym>MAC</acronym> policy on all " +"sockets. The following tunables are available:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30111 +msgid "" +"<varname>security.mac.portacl.enabled</varname> enables or disables the " +"policy completely." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30116 +msgid "" +"<varname>security.mac.portacl.port_high</varname> sets the highest port " +"number that <citerefentry><refentrytitle>mac_portacl</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> protects." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30122 +msgid "" +"<varname>security.mac.portacl.suser_exempt</varname>, when set to a non-zero " +"value, exempts the <systemitem class=\"username\">root</systemitem> user " +"from this policy." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30128 +msgid "" +"<varname>security.mac.portacl.rules</varname> specifies the policy as a text " +"string of the form <literal>rule[,rule,...]</literal>, with as many rules as " +"needed, and where each rule is of the form <literal>idtype:id:protocol:port</" +"literal>. The <parameter>idtype</parameter> is either <literal>uid</literal> " +"or <literal>gid</literal>. The <parameter>protocol</parameter> parameter can " +"be <literal>tcp</literal> or <literal>udp</literal>. The <parameter>port</" +"parameter> parameter is the port number to allow the specified user or group " +"to bind to. Only numeric values can be used for the user ID, group ID, and " +"port parameters." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30144 +msgid "" +"By default, ports below 1024 can only be used by privileged processes which " +"run as <systemitem class=\"username\">root</systemitem>. For " +"<citerefentry><refentrytitle>mac_portacl</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> to allow non-privileged processes to bind to ports " +"below 1024, set the following tunables as follows:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30150 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>sysctl security.mac.portacl.port_high=1023</userinput>\n" +"<prompt>#</prompt> <userinput>sysctl net.inet.ip.portrange.reservedlow=0</userinput>\n" +"<prompt>#</prompt> <userinput>sysctl net.inet.ip.portrange.reservedhigh=0</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30154 +msgid "" +"To prevent the <systemitem class=\"username\">root</systemitem> user from " +"being affected by this policy, set <varname>security.mac.portacl." +"suser_exempt</varname> to a non-zero value." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30159 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sysctl security.mac.portacl.suser_exempt=1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30161 +msgid "" +"To allow the <systemitem class=\"username\">www</systemitem> user with " +"<acronym>UID</acronym> 80 to bind to port 80 without ever needing " +"<systemitem class=\"username\">root</systemitem> privilege:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30165 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sysctl security.mac.portacl.rules=uid:80:tcp:80</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30167 +msgid "" +"This next example permits the user with the <acronym>UID</acronym> of 1001 " +"to bind to <acronym>TCP</acronym> ports 110 (POP3) and 995 (POP3s):" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30172 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30176 +msgid "The MAC Partition Policy" +msgstr "MAC Partition 政策" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:30178 +msgid "<primary>MAC Process Partition Policy</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30181 +msgid "Module name: <filename>mac_partition.ko</filename>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30183 +msgid "Kernel configuration line: <literal>options MAC_PARTITION</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30186 +msgid "Boot option: <literal>mac_partition_load=\"YES\"</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30189 +msgid "" +"The <citerefentry><refentrytitle>mac_partition</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> policy drops processes into specific " +"<quote>partitions</quote> based on their <acronym>MAC</acronym> label. Most " +"configuration for this policy is done using " +"<citerefentry><refentrytitle>setpmac</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. One <command>sysctl</command> tunable is " +"available for this policy:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30198 +msgid "" +"<varname>security.mac.partition.enabled</varname> enables the enforcement of " +"<acronym>MAC</acronym> process partitions." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30204 +msgid "" +"When this policy is enabled, users will only be permitted to see their " +"processes, and any others within their partition, but will not be permitted " +"to work with utilities outside the scope of this partition. For instance, a " +"user in the <literal>insecure</literal> class will not be permitted to " +"access <command>top</command> as well as many other commands that must spawn " +"a process." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30212 +msgid "" +"This example adds <command>top</command> to the label set on users in the " +"<literal>insecure</literal> class. All processes spawned by users in the " +"<literal>insecure</literal> class will stay in the <literal>partition/13</" +"literal> label." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30218 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>setpmac partition/13 top</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30220 +msgid "This command displays the partition label and the process list:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30223 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ps Zax</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30225 +msgid "" +"This command displays another user's process partition label and that user's " +"currently running processes:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30228 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ps -ZU trhodes</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:30231 +msgid "" +"Users can see processes in <systemitem class=\"username\">root</" +"systemitem>'s label unless the " +"<citerefentry><refentrytitle>mac_seeotheruids</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> policy is loaded." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30237 +msgid "The MAC Multi-Level Security Module" +msgstr "MAC Multi-Level Security 模組" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:30239 +msgid "<primary>MAC Multi-Level Security Policy</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30242 +msgid "Module name: <filename>mac_mls.ko</filename>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30244 +msgid "Kernel configuration line: <literal>options MAC_MLS</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30247 +msgid "Boot option: <literal>mac_mls_load=\"YES\"</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30249 +msgid "" +"The <citerefentry><refentrytitle>mac_mls</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> policy controls access between subjects and " +"objects in the system by enforcing a strict information flow policy." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30253 +msgid "" +"In <acronym>MLS</acronym> environments, a <quote>clearance</quote> level is " +"set in the label of each subject or object, along with compartments. Since " +"these clearance levels can reach numbers greater than several thousand, it " +"would be a daunting task to thoroughly configure every subject or object. To " +"ease this administrative overhead, three labels are included in this policy: " +"<literal>mls/low</literal>, <literal>mls/equal</literal>, and <literal>mls/" +"high</literal>, where:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30265 +msgid "" +"Anything labeled with <literal>mls/low</literal> will have a low clearance " +"level and not be permitted to access information of a higher level. This " +"label also prevents objects of a higher clearance level from writing or " +"passing information to a lower level." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30273 +msgid "" +"<literal>mls/equal</literal> should be placed on objects which should be " +"exempt from the policy." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30278 +msgid "" +"<literal>mls/high</literal> is the highest level of clearance possible. " +"Objects assigned this label will hold dominance over all other objects in " +"the system; however, they will not permit the leaking of information to " +"objects of a lower class." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30286 +msgid "<acronym>MLS</acronym> provides:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30290 +msgid "" +"A hierarchical security level with a set of non-hierarchical categories." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30295 +msgid "" +"Fixed rules of <literal>no read up, no write down</literal>. This means that " +"a subject can have read access to objects on its own level or below, but not " +"above. Similarly, a subject can have write access to objects on its own " +"level or above, but not beneath." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30303 +msgid "Secrecy, or the prevention of inappropriate disclosure of data." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30308 +msgid "" +"A basis for the design of systems that concurrently handle data at multiple " +"sensitivity levels without leaking information between secret and " +"confidential." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30314 +msgid "The following <command>sysctl</command> tunables are available:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30319 +msgid "" +"<varname>security.mac.mls.enabled</varname> is used to enable or disable the " +"<acronym>MLS</acronym> policy." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30325 +msgid "" +"<varname>security.mac.mls.ptys_equal</varname> labels all " +"<citerefentry><refentrytitle>pty</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> devices as <literal>mls/equal</literal> during creation." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30331 +msgid "" +"<varname>security.mac.mls.revocation_enabled</varname> revokes access to " +"objects after their label changes to a label of a lower grade." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30337 +msgid "" +"<varname>security.mac.mls.max_compartments</varname> sets the maximum number " +"of compartment levels allowed on a system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30343 +msgid "" +"To manipulate <acronym>MLS</acronym> labels, use " +"<citerefentry><refentrytitle>setfmac</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. To assign a label to an object:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30346 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>setfmac mls/5 test</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30348 +msgid "" +"To get the <acronym>MLS</acronym> label for the file <filename>test</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30351 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>getfmac test</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30353 +msgid "" +"Another approach is to create a master policy file in <filename>/etc/</" +"filename> which specifies the <acronym>MLS</acronym> policy information and " +"to feed that file to <command>setfmac</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30358 +msgid "" +"When using the <acronym>MLS</acronym> policy module, an administrator plans " +"to control the flow of sensitive information. The default <literal>block " +"read up block write down</literal> sets everything to a low state. " +"Everything is accessible and an administrator slowly augments the " +"confidentiality of the information." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30365 +msgid "" +"Beyond the three basic label options, an administrator may group users and " +"groups as required to block the information flow between them. It might be " +"easier to look at the information in clearance levels using descriptive " +"words, such as classifications of <literal>Confidential</literal>, " +"<literal>Secret</literal>, and <literal>Top Secret</literal>. Some " +"administrators instead create different groups based on project levels. " +"Regardless of the classification method, a well thought out plan must exist " +"before implementing a restrictive policy." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30376 +msgid "" +"Some example situations for the <acronym>MLS</acronym> policy module include " +"an e-commerce web server, a file server holding critical company " +"information, and financial institution environments." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30383 +msgid "The MAC Biba Module" +msgstr "MAC Biba 模組" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:30385 +msgid "<primary>MAC Biba Integrity Policy</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30388 +msgid "Module name: <filename>mac_biba.ko</filename>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30390 +msgid "Kernel configuration line: <literal>options MAC_BIBA</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30393 +msgid "Boot option: <literal>mac_biba_load=\"YES\"</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30395 +msgid "" +"The <citerefentry><refentrytitle>mac_biba</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> module loads the <acronym>MAC</acronym> Biba " +"policy. This policy is similar to the <acronym>MLS</acronym> policy with the " +"exception that the rules for information flow are slightly reversed. This is " +"to prevent the downward flow of sensitive information whereas the " +"<acronym>MLS</acronym> policy prevents the upward flow of sensitive " +"information." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30403 +msgid "" +"In Biba environments, an <quote>integrity</quote> label is set on each " +"subject or object. These labels are made up of hierarchical grades and non-" +"hierarchical components. As a grade ascends, so does its integrity." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30408 +msgid "" +"Supported labels are <literal>biba/low</literal>, <literal>biba/equal</" +"literal>, and <literal>biba/high</literal>, where:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30414 +msgid "" +"<literal>biba/low</literal> is considered the lowest integrity an object or " +"subject may have. Setting this on objects or subjects blocks their write " +"access to objects or subjects marked as <literal>biba/high</literal>, but " +"will not prevent read access." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30422 +msgid "" +"<literal>biba/equal</literal> should only be placed on objects considered to " +"be exempt from the policy." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30427 +msgid "" +"<literal>biba/high</literal> permits writing to objects set at a lower " +"label, but does not permit reading that object. It is recommended that this " +"label be placed on objects that affect the integrity of the entire system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30435 +msgid "Biba provides:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30439 +msgid "" +"Hierarchical integrity levels with a set of non-hierarchical integrity " +"categories." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30444 +msgid "" +"Fixed rules are <literal>no write up, no read down</literal>, the opposite " +"of <acronym>MLS</acronym>. A subject can have write access to objects on its " +"own level or below, but not above. Similarly, a subject can have read access " +"to objects on its own level or above, but not below." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30453 +msgid "Integrity by preventing inappropriate modification of data." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30458 +msgid "Integrity levels instead of <acronym>MLS</acronym> sensitivity levels." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30463 +msgid "The following tunables can be used to manipulate the Biba policy:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30468 +msgid "" +"<varname>security.mac.biba.enabled</varname> is used to enable or disable " +"enforcement of the Biba policy on the target machine." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30474 +msgid "" +"<varname>security.mac.biba.ptys_equal</varname> is used to disable the Biba " +"policy on <citerefentry><refentrytitle>pty</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> devices." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30480 +msgid "" +"<varname>security.mac.biba.revocation_enabled</varname> forces the " +"revocation of access to objects if the label is changed to dominate the " +"subject." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30486 +msgid "" +"To access the Biba policy setting on system objects, use <command>setfmac</" +"command> and <command>getfmac</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30490 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>setfmac biba/low test</userinput>\n" +"<prompt>#</prompt> <userinput>getfmac test</userinput>\n" +"test: biba/low" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30494 +msgid "" +"Integrity, which is different from sensitivity, is used to guarantee that " +"information is not manipulated by untrusted parties. This includes " +"information passed between subjects and objects. It ensures that users will " +"only be able to modify or access information they have been given explicit " +"access to. The <citerefentry><refentrytitle>mac_biba</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> security policy module " +"permits an administrator to configure which files and programs a user may " +"see and invoke while assuring that the programs and files are trusted by the " +"system for that user." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30504 +msgid "" +"During the initial planning phase, an administrator must be prepared to " +"partition users into grades, levels, and areas. The system will default to a " +"high label once this policy module is enabled, and it is up to the " +"administrator to configure the different grades and levels for users. " +"Instead of using clearance levels, a good planning method could include " +"topics. For instance, only allow developers modification access to the " +"source code repository, source code compiler, and other development " +"utilities. Other users would be grouped into other categories such as " +"testers, designers, or end users and would only be permitted read access." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30517 +msgid "" +"A lower integrity subject is unable to write to a higher integrity subject " +"and a higher integrity subject cannot list or read a lower integrity object. " +"Setting a label at the lowest possible grade could make it inaccessible to " +"subjects. Some prospective environments for this security policy module " +"would include a constrained web server, a development and test machine, and " +"a source code repository. A less useful implementation would be a personal " +"workstation, a machine used as a router, or a network firewall." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30529 +msgid "The MAC Low-watermark Module" +msgstr "MAC Low-watermark 模組" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:30531 +msgid "<primary>MAC LOMAC</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30534 +msgid "Module name: <filename>mac_lomac.ko</filename>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30536 +msgid "Kernel configuration line: <literal>options MAC_LOMAC</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30539 +msgid "Boot option: <literal>mac_lomac_load=\"YES\"</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30542 +msgid "" +"Unlike the <acronym>MAC</acronym> Biba policy, the " +"<citerefentry><refentrytitle>mac_lomac</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> policy permits access to lower integrity objects " +"only after decreasing the integrity level to not disrupt any integrity rules." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30547 +msgid "" +"The Low-watermark integrity policy works almost identically to Biba, with " +"the exception of using floating labels to support subject demotion via an " +"auxiliary grade compartment. This secondary compartment takes the form " +"<literal>[auxgrade]</literal>. When assigning a policy with an auxiliary " +"grade, use the syntax <literal>lomac/10[2]</literal>, where <literal>2</" +"literal> is the auxiliary grade." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30556 +msgid "" +"This policy relies on the ubiquitous labeling of all system objects with " +"integrity labels, permitting subjects to read from low integrity objects and " +"then downgrading the label on the subject to prevent future writes to high " +"integrity objects using <literal>[auxgrade]</literal>. The policy may " +"provide greater compatibility and require less initial configuration than " +"Biba." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30564 +msgid "" +"Like the Biba and <acronym>MLS</acronym> policies, <command>setfmac</" +"command> and <command>setpmac</command> are used to place labels on system " +"objects:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30568 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>setfmac /usr/home/trhodes lomac/high[low]</userinput>\n" +"<prompt>#</prompt> <userinput>getfmac /usr/home/trhodes lomac/high[low]</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30571 +msgid "" +"The auxiliary grade <literal>low</literal> is a feature provided only by the " +"<acronym>MAC</acronym> <acronym>LOMAC</acronym> policy." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:30578 +msgid "User Lock Down" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:30580 +msgid "" +"This example considers a relatively small storage system with fewer than " +"fifty users. Users will have login capabilities and are permitted to store " +"data and access resources." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:30585 +msgid "" +"For this scenario, the <citerefentry><refentrytitle>mac_bsdextended</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>mac_seeotheruids</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> policy modules could co-exist and block access to " +"system objects while hiding user processes." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:30589 +msgid "" +"Begin by adding the following line to <filename>/boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:30592 +#, no-wrap +msgid "mac_seeotheruids_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:30594 +msgid "" +"The <citerefentry><refentrytitle>mac_bsdextended</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> security policy module " +"may be activated by adding this line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:30598 +#, no-wrap +msgid "ugidfw_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:30600 +msgid "" +"Default rules stored in <filename>/etc/rc.bsdextended</filename> will be " +"loaded at system initialization. However, the default entries may need " +"modification. Since this machine is expected only to service users, " +"everything may be left commented out except the last two lines in order to " +"force the loading of user owned system objects by default." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:30608 +msgid "" +"Add the required users to this machine and reboot. For testing purposes, try " +"logging in as a different user across two consoles. Run <command>ps aux</" +"command> to see if processes of other users are visible. Verify that running " +"<citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> on another user's home directory fails." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:30614 +msgid "" +"Do not try to test with the <systemitem class=\"username\">root</systemitem> " +"user unless the specific <command>sysctl</command>s have been modified to " +"block super user access." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:30619 +msgid "" +"When a new user is added, their " +"<citerefentry><refentrytitle>mac_bsdextended</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> rule will not be in the ruleset list. To update " +"the ruleset quickly, unload the security policy module and reload it again " +"using <citerefentry><refentrytitle>kldunload</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>kldload</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:30627 +msgid "Nagios in a MAC Jail" +msgstr "在 MAC Jail 中使用 Nagios" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:30629 +msgid "<primary>Nagios in a MAC Jail</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:30633 +msgid "" +"This section demonstrates the steps that are needed to implement the " +"<application>Nagios</application> network monitoring system in a " +"<acronym>MAC</acronym> environment. This is meant as an example which still " +"requires the administrator to test that the implemented policy meets the " +"security requirements of the network before using in a production " +"environment." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:30640 +msgid "" +"This example requires <option>multilabel</option> to be set on each file " +"system. It also assumes that <package>net-mgmt/nagios-plugins</package>, " +"<package>net-mgmt/nagios</package>, and <package>www/apache22</package> are " +"all installed, configured, and working correctly before attempting the " +"integration into the <acronym>MAC</acronym> framework." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30649 +msgid "Create an Insecure User Class" +msgstr "建立不安全的使用者類別" + +#. (itstool) path: sect2/para +#: book.translate.xml:30651 +msgid "" +"Begin the procedure by adding the following user class to <filename>/etc/" +"login.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:30654 +#, no-wrap +msgid "" +"insecure:\\\n" +":copyright=/etc/COPYRIGHT:\\\n" +":welcome=/etc/motd:\\\n" +":setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\\\n" +":path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin\n" +":manpath=/usr/share/man /usr/local/man:\\\n" +":nologin=/usr/sbin/nologin:\\\n" +":cputime=1h30m:\\\n" +":datasize=8M:\\\n" +":vmemoryuse=100M:\\\n" +":stacksize=2M:\\\n" +":memorylocked=4M:\\\n" +":memoryuse=8M:\\\n" +":filesize=8M:\\\n" +":coredumpsize=8M:\\\n" +":openfiles=24:\\\n" +":maxproc=32:\\\n" +":priority=0:\\\n" +":requirehome:\\\n" +":passwordtime=91d:\\\n" +":umask=022:\\\n" +":ignoretime@:\\\n" +":label=biba/10(10-10):" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30678 +msgid "Then, add the following line to the default user class section:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:30681 +#, no-wrap +msgid ":label=biba/high:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30683 +msgid "Save the edits and issue the following command to rebuild the database:" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30690 +msgid "Configure Users" +msgstr "設定使用者" + +#. (itstool) path: sect2/para +#: book.translate.xml:30692 +msgid "" +"Set the <systemitem class=\"username\">root</systemitem> user to the default " +"class using:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30695 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw usermod root -L default</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30697 +msgid "" +"All user accounts that are not <systemitem class=\"username\">root</" +"systemitem> will now require a login class. The login class is required, " +"otherwise users will be refused access to common commands. The following " +"<command>sh</command> script should do the trick:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30702 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \\</userinput>\n" +"\t<userinput>/etc/passwd`; do pw usermod $x -L default; done;</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30705 +msgid "" +"Next, drop the <systemitem class=\"username\">nagios</systemitem> and " +"<systemitem class=\"username\">www</systemitem> accounts into the insecure " +"class:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30708 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pw usermod nagios -L insecure</userinput>\n" +"<prompt>#</prompt> <userinput>pw usermod www -L insecure</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30713 +msgid "Create the Contexts File" +msgstr "建立關聯檔 (Context File)" + +#. (itstool) path: sect2/para +#: book.translate.xml:30715 +msgid "" +"A contexts file should now be created as <filename>/etc/policy.contexts</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:30718 +#, no-wrap +msgid "" +"# This is the default BIBA policy for this system.\n" +"\n" +"# System:\n" +"/var/run(/.*)?\t\t\tbiba/equal\n" +"\n" +"/dev/(/.*)?\t\t\tbiba/equal\n" +"\n" +"/var\t\t\t\tbiba/equal\n" +"/var/spool(/.*)?\t\tbiba/equal\n" +"\n" +"/var/log(/.*)?\t\t\tbiba/equal\n" +"\n" +"/tmp(/.*)?\t\t\tbiba/equal\n" +"/var/tmp(/.*)?\t\t\tbiba/equal\n" +"\n" +"/var/spool/mqueue\t\tbiba/equal\n" +"/var/spool/clientmqueue\t\tbiba/equal\n" +"\n" +"# For Nagios:\n" +"/usr/local/etc/nagios(/.*)?\tbiba/10\n" +"\n" +"/var/spool/nagios(/.*)?\t\tbiba/10\n" +"\n" +"# For apache\n" +"/usr/local/etc/apache(/.*)?\tbiba/10" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30744 +msgid "" +"This policy enforces security by setting restrictions on the flow of " +"information. In this specific configuration, users, including <systemitem " +"class=\"username\">root</systemitem>, should never be allowed to access " +"<application>Nagios</application>. Configuration files and processes that " +"are a part of <application>Nagios</application> will be completely self " +"contained or jailed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30752 +msgid "" +"This file will be read after running <command>setfsmac</command> on every " +"file system. This example sets the policy on the root file system:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30756 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>setfsmac -ef /etc/policy.contexts /</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30758 +msgid "" +"Next, add these edits to the main section of <filename>/etc/mac.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:30761 +#, no-wrap +msgid "" +"default_labels file ?biba\n" +"default_labels ifnet ?biba\n" +"default_labels process ?biba\n" +"default_labels socket ?biba" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30768 +msgid "Loader Configuration" +msgstr "載入程式設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:30770 +msgid "" +"To finish the configuration, add the following lines to <filename>/boot/" +"loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:30773 +#, no-wrap +msgid "" +"mac_biba_load=\"YES\"\n" +"mac_seeotheruids_load=\"YES\"\n" +"security.mac.biba.trust_all_interfaces=1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30777 +msgid "" +"And the following line to the network card configuration stored in " +"<filename>/etc/rc.conf</filename>. If the primary network configuration is " +"done via <acronym>DHCP</acronym>, this may need to be configured manually " +"after every system boot:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:30783 +#, no-wrap +msgid "maclabel biba/equal" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:30787 +msgid "Testing the Configuration" +msgstr "測試設定" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:30789 +msgid "<primary>MAC Configuration Testing</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30793 +msgid "" +"First, ensure that the web server and <application>Nagios</application> will " +"not be started on system initialization and reboot. Ensure that <systemitem " +"class=\"username\">root</systemitem> cannot access any of the files in the " +"<application>Nagios</application> configuration directory. If <systemitem " +"class=\"username\">root</systemitem> can list the contents of <filename>/var/" +"spool/nagios</filename>, something is wrong. Instead, a <quote>permission " +"denied</quote> error should be returned." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30803 +msgid "" +"If all seems well, <application>Nagios</application>, <application>Apache</" +"application>, and <application>Sendmail</application> can now be started:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:30807 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /etc/mail && make stop && \\\n" +"setpmac biba/equal make start && setpmac biba/10\\(10-10\\) apachectl start && \\\n" +"setpmac biba/10\\(10-10\\) /usr/local/etc/rc.d/nagios.sh forcestart</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:30811 +msgid "" +"Double check to ensure that everything is working properly. If not, check " +"the log files for error messages. If needed, use " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to disable the <citerefentry><refentrytitle>mac_biba</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> security policy module " +"and try starting everything again as usual." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:30818 +msgid "" +"The <systemitem class=\"username\">root</systemitem> user can still change " +"the security enforcement and edit its configuration files. The following " +"command will permit the degradation of the security policy to a lower grade " +"for a newly spawned shell:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:30824 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>setpmac biba/10 csh</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:30826 +msgid "" +"To block this from happening, force the user into a range using " +"<citerefentry><refentrytitle>login.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>. If <citerefentry><refentrytitle>setpmac</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> attempts to run a " +"command outside of the compartment's range, an error will be returned and " +"the command will not be executed. In this case, set root to <literal>biba/" +"high(high-high)</literal>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:30837 +msgid "Troubleshooting the MAC Framework" +msgstr "MAC 架構疑難排解" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:30839 +msgid "<primary>MAC Troubleshooting</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:30843 +msgid "" +"This section discusses common configuration errors and how to resolve them." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:30848 +msgid "" +"The <option>multilabel</option> flag does not stay enabled on the root " +"(<filename>/</filename>) partition:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30853 +msgid "The following steps may resolve this transient error:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:30858 +msgid "" +"Edit <filename>/etc/fstab</filename> and set the root partition to " +"<option>ro</option> for read-only." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:30864 +msgid "Reboot into single user mode." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:30868 +msgid "" +"Run <command>tunefs</command> <option>-l enable</option> on <filename>/</" +"filename>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:30873 +msgid "Reboot the system." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:30877 +msgid "" +"Run <command>mount</command> <option>-urw</option> <filename>/</filename> " +"and change the <option>ro</option> back to <option>rw</option> in <filename>/" +"etc/fstab</filename> and reboot the system again." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:30885 +msgid "" +"Double-check the output from <command>mount</command> to ensure that " +"<option>multilabel</option> has been properly set on the root file system." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:30895 +msgid "" +"After establishing a secure environment with <acronym>MAC</acronym>, " +"<application>Xorg</application> no longer starts:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30899 +msgid "" +"This could be caused by the <acronym>MAC</acronym> <literal>partition</" +"literal> policy or by a mislabeling in one of the <acronym>MAC</acronym> " +"labeling policies. To debug, try the following:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:30906 +msgid "" +"Check the error message. If the user is in the <literal>insecure</literal> " +"class, the <literal>partition</literal> policy may be the culprit. Try " +"setting the user's class back to the <literal>default</literal> class and " +"rebuild the database with <command>cap_mkdb</command>. If this does not " +"alleviate the problem, go to step two." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:30916 +msgid "" +"Double-check that the label policies are set correctly for the user, " +"<application>Xorg</application>, and the <filename>/dev</filename> entries." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:30923 +msgid "" +"If neither of these resolve the problem, send the error message and a " +"description of the environment to the <link xlink:href=\"http://lists." +"FreeBSD.org/mailman/listinfo/freebsd-questions\">FreeBSD general questions " +"mailing list</link>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:30932 +msgid "" +"The <errorname>_secure_path: unable to stat .login_conf</errorname> error " +"appears:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30935 +msgid "" +"This error can appear when a user attempts to switch from the <systemitem " +"class=\"username\">root</systemitem> user to another user in the system. " +"This message usually occurs when the user has a higher label setting than " +"that of the user they are attempting to become. For instance, if <systemitem " +"class=\"username\">joe</systemitem> has a default label of <option>biba/low</" +"option> and <systemitem class=\"username\">root</systemitem> has a label of " +"<option>biba/high</option>, <systemitem class=\"username\">root</systemitem> " +"cannot view <systemitem class=\"username\">joe</systemitem>'s home " +"directory. This will happen whether or not <systemitem class=\"username" +"\">root</systemitem> has used <command>su</command> to become <systemitem " +"class=\"username\">joe</systemitem> as the Biba integrity model will not " +"permit <systemitem class=\"username\">root</systemitem> to view objects set " +"at a lower integrity level." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:30952 +msgid "" +"The system no longer recognizes <systemitem class=\"username\">root</" +"systemitem>:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30954 +msgid "" +"When this occurs, <command>whoami</command> returns <literal>0</literal> and " +"<command>su</command> returns <errorname>who are you?</errorname>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30958 +msgid "" +"This can happen if a labeling policy has been disabled by " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> or the policy module was unloaded. If the policy is disabled, " +"the login capabilities database needs to be reconfigured. Double check " +"<filename>/etc/login.conf</filename> to ensure that all <option>label</" +"option> options have been removed and rebuild the database with " +"<command>cap_mkdb</command>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:30967 +msgid "" +"This may also happen if a policy restricts access to <filename>master." +"passwd</filename>. This is usually caused by an administrator altering the " +"file under a label which conflicts with the general policy being used by the " +"system. In these cases, the user information would be read by the system and " +"access would be blocked as the file has inherited the new label. Disable the " +"policy using <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> and everything should " +"return to normal." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:30997 +msgid "Security Event Auditing" +msgstr "安全事件稽查" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:31008 +msgid "" +"<personname> <firstname>Robert</firstname> <surname>Watson</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:31020 +msgid "<primary>AUDIT</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:31021 +msgid "<primary>Security Event Auditing</primary> <see>MAC</see>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31026 +msgid "" +"The FreeBSD operating system includes support for security event auditing. " +"Event auditing supports reliable, fine-grained, and configurable logging of " +"a variety of security-relevant system events, including logins, " +"configuration changes, and file and network access. These log records can be " +"invaluable for live system monitoring, intrusion detection, and postmortem " +"analysis. FreeBSD implements <trademark>Sun</trademark>'s published Basic " +"Security Module (<acronym>BSM</acronym>) Application Programming Interface " +"(<acronym>API</acronym>) and file format, and is interoperable with the " +"<trademark>Solaris</trademark> and <trademark class=\"registered\">Mac OS</" +"trademark> X audit implementations." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31038 +msgid "" +"This chapter focuses on the installation and configuration of event " +"auditing. It explains audit policies and provides an example audit " +"configuration." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31046 +msgid "What event auditing is and how it works." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31050 +msgid "How to configure event auditing on FreeBSD for users and processes." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31055 +msgid "" +"How to review the audit trail using the audit reduction and review tools." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31069 +msgid "" +"Be familiar with the basics of kernel configuration/compilation (<xref " +"linkend=\"kernelconfig\"/>)." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:31080 +msgid "" +"The audit facility has some known limitations. Not all security-relevant " +"system events are auditable and some login mechanisms, such as " +"<application>Xorg</application>-based display managers and third-party " +"daemons, do not properly configure auditing for user login sessions." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:31086 +msgid "" +"The security event auditing facility is able to generate very detailed logs " +"of system activity. On a busy system, trail file data can be very large when " +"configured for high detail, exceeding gigabytes a week in some " +"configurations. Administrators should take into account the disk space " +"requirements associated with high volume audit configurations. For example, " +"it may be desirable to dedicate a file system to <filename>/var/audit</" +"filename> so that other file systems are not affected if the audit file " +"system becomes full." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31101 +msgid "The following terms are related to security event auditing:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31106 +msgid "" +"<emphasis>event</emphasis>: an auditable event is any event that can be " +"logged using the audit subsystem. Examples of security-relevant events " +"include the creation of a file, the building of a network connection, or a " +"user logging in. Events are either <quote>attributable</quote>, meaning that " +"they can be traced to an authenticated user, or <quote>non-attributable</" +"quote>. Examples of non-attributable events are any events that occur before " +"authentication in the login process, such as bad password attempts." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31119 +msgid "" +"<emphasis>class</emphasis>: a named set of related events which are used in " +"selection expressions. Commonly used classes of events include <quote>file " +"creation</quote> (fc), <quote>exec</quote> (ex), and <quote>login_logout</" +"quote> (lo)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31127 +msgid "" +"<emphasis>record</emphasis>: an audit log entry describing a security event. " +"Records contain a record event type, information on the subject (user) " +"performing the action, date and time information, information on any objects " +"or arguments, and a success or failure condition." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31136 +msgid "" +"<emphasis>trail</emphasis>: a log file consisting of a series of audit " +"records describing security events. Trails are in roughly chronological " +"order with respect to the time events completed. Only authorized processes " +"are allowed to commit records to the audit trail." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31144 +msgid "" +"<emphasis>selection expression</emphasis>: a string containing a list of " +"prefixes and audit event class names used to match events." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31150 +msgid "" +"<emphasis>preselection</emphasis>: the process by which the system " +"identifies which events are of interest to the administrator. The " +"preselection configuration uses a series of selection expressions to " +"identify which classes of events to audit for which users, as well as global " +"settings that apply to both authenticated and unauthenticated processes." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31160 +msgid "" +"<emphasis>reduction</emphasis>: the process by which records from existing " +"audit trails are selected for preservation, printing, or analysis. Likewise, " +"the process by which undesired audit records are removed from the audit " +"trail. Using reduction, administrators can implement policies for the " +"preservation of audit data. For example, detailed audit trails might be kept " +"for one month, but after that, trails might be reduced in order to preserve " +"only login information for archival purposes." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:31174 +msgid "Audit Configuration" +msgstr "稽查設定" + +#. (itstool) path: sect1/para +#: book.translate.xml:31176 +msgid "" +"User space support for event auditing is installed as part of the base " +"FreeBSD operating system. Kernel support is available in the " +"<filename>GENERIC</filename> kernel by default, and " +"<citerefentry><refentrytitle>auditd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> can be enabled by adding the following line to <filename>/etc/" +"rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:31183 +#, no-wrap +msgid "auditd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31185 +msgid "Then, start the audit daemon:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31187 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service auditd start</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31189 +msgid "" +"Users who prefer to compile a custom kernel must include the following line " +"in their custom kernel configuration file:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:31192 +#, no-wrap +msgid "options\tAUDIT" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:31195 +msgid "Event Selection Expressions" +msgstr "事件選擇表示法" + +#. (itstool) path: sect2/para +#: book.translate.xml:31197 +msgid "" +"Selection expressions are used in a number of places in the audit " +"configuration to determine which events should be audited. Expressions " +"contain a list of event classes to match. Selection expressions are " +"evaluated from left to right, and two expressions are combined by appending " +"one onto the other." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31204 +msgid "" +"<xref linkend=\"event-selection\"/> summarizes the default audit event " +"classes:" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:31208 +msgid "Default Audit Event Classes" +msgstr "預設稽查事件類別" + +#. (itstool) path: row/entry +#: book.translate.xml:31213 +msgid "Class Name" +msgstr "類別名稱" + +#. (itstool) path: row/entry +#: book.translate.xml:31215 book.translate.xml:31379 +msgid "Action" +msgstr "動作" + +#. (itstool) path: row/entry +#: book.translate.xml:31221 book.translate.xml:31222 +msgid "all" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31223 +msgid "Match all event classes." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31227 +msgid "aa" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31228 +msgid "authentication and authorization" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31233 +msgid "ad" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31234 +msgid "administrative" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31235 +msgid "Administrative actions performed on the system as a whole." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31240 +msgid "ap" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31241 +msgid "application" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31242 +msgid "Application defined action." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31246 +msgid "cl" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31247 +msgid "file close" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31248 +msgid "Audit calls to the <function>close</function> system call." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31253 +msgid "ex" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31254 +msgid "exec" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31255 +msgid "" +"Audit program execution. Auditing of command line arguments and " +"environmental variables is controlled via " +"<citerefentry><refentrytitle>audit_control</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> using the <literal>argv</literal> and " +"<literal>envv</literal> parameters to the <literal>policy</literal> setting." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31264 +msgid "fa" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31265 +msgid "file attribute access" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31266 +msgid "" +"Audit the access of object attributes such as " +"<citerefentry><refentrytitle>stat</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>pathconf</" +"refentrytitle><manvolnum>2</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31271 +msgid "fc" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31272 +msgid "file create" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31273 +msgid "Audit events where a file is created as a result." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31278 +msgid "fd" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31279 +msgid "file delete" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31280 +msgid "Audit events where file deletion occurs." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31284 +msgid "fm" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31285 +msgid "file attribute modify" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31286 +msgid "" +"Audit events where file attribute modification occurs, such as by " +"<citerefentry><refentrytitle>chown</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, <citerefentry><refentrytitle>chflags</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, and " +"<citerefentry><refentrytitle>flock</refentrytitle><manvolnum>2</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31292 +msgid "fr" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31293 +msgid "file read" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31294 +msgid "Audit events in which data is read or files are opened for reading." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31299 +msgid "fw" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31300 +msgid "file write" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31301 +msgid "Audit events in which data is written or files are written or modified." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31306 +msgid "io" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31307 +msgid "ioctl" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31308 +msgid "Audit use of the <function>ioctl</function> system call." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31313 +msgid "ip" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31314 +msgid "ipc" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31315 +msgid "" +"Audit various forms of Inter-Process Communication, including POSIX pipes " +"and System V <acronym>IPC</acronym> operations." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31321 +msgid "lo" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31322 +msgid "login_logout" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31323 +msgid "" +"Audit <citerefentry><refentrytitle>login</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>logout</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> events." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31328 +msgid "na" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31329 +msgid "non attributable" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31330 +msgid "Audit non-attributable events." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31334 +msgid "no" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31335 +msgid "invalid class" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31336 +msgid "Match no audit events." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31340 +msgid "nt" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31341 +msgid "network" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31342 +msgid "" +"Audit events related to network actions such as " +"<citerefentry><refentrytitle>connect</refentrytitle><manvolnum>2</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>accept</" +"refentrytitle><manvolnum>2</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31347 +msgid "ot" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31348 +msgid "other" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31349 +msgid "Audit miscellaneous events." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31353 +msgid "pc" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31354 +msgid "process" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31355 +msgid "" +"Audit process operations such as <citerefentry><refentrytitle>exec</" +"refentrytitle><manvolnum>3</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>exit</refentrytitle><manvolnum>3</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31362 +msgid "" +"These audit event classes may be customized by modifying the " +"<filename>audit_class</filename> and <filename>audit_event</filename> " +"configuration files." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31366 +msgid "" +"Each audit event class may be combined with a prefix indicating whether " +"successful/failed operations are matched, and whether the entry is adding or " +"removing matching for the class and type. <xref linkend=\"event-prefixes\"/> " +"summarizes the available prefixes:" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:31373 +msgid "Prefixes for Audit Event Classes" +msgstr "稽查事件類別字首" + +#. (itstool) path: row/entry +#: book.translate.xml:31378 +msgid "Prefix" +msgstr "字首" + +#. (itstool) path: row/entry +#: book.translate.xml:31386 +msgid "Audit successful events in this class." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31391 +msgid "Audit failed events in this class." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31395 +msgid "^" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31396 +msgid "Audit neither successful nor failed events in this class." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31401 +msgid "^+" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31402 +msgid "Do not audit successful events in this class." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31407 +msgid "^-" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:31408 +msgid "Do not audit failed events in this class." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31414 +msgid "" +"If no prefix is present, both successful and failed instances of the event " +"will be audited." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31417 +msgid "" +"The following example selection string selects both successful and failed " +"login/logout events, but only successful execution events:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:31421 +#, no-wrap +msgid "lo,+ex" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31427 +msgid "" +"The following configuration files for security event auditing are found in " +"<filename>/etc/security</filename>:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31433 +msgid "" +"<filename>audit_class</filename>: contains the definitions of the audit " +"classes." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31438 +msgid "" +"<filename>audit_control</filename>: controls aspects of the audit subsystem, " +"such as default audit classes, minimum disk space to leave on the audit log " +"volume, and maximum audit trail size." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31445 +msgid "" +"<filename>audit_event</filename>: textual names and descriptions of system " +"audit events and a list of which classes each event is in." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31451 +msgid "" +"<filename>audit_user</filename>: user-specific audit requirements to be " +"combined with the global defaults at login." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:31457 +msgid "" +"<filename>audit_warn</filename>: a customizable shell script used by " +"<citerefentry><refentrytitle>auditd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to generate warning messages in exceptional situations, such " +"as when space for audit records is running low or when the audit trail file " +"has been rotated." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:31466 +msgid "" +"Audit configuration files should be edited and maintained carefully, as " +"errors in configuration may result in improper logging of events." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31471 +msgid "" +"In most cases, administrators will only need to modify " +"<filename>audit_control</filename> and <filename>audit_user</filename>. The " +"first file controls system-wide audit properties and policies and the second " +"file may be used to fine-tune auditing by user." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:31478 +msgid "The <filename>audit_control</filename> File" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31480 +msgid "" +"A number of defaults for the audit subsystem are specified in " +"<filename>audit_control</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:31483 +#, no-wrap +msgid "" +"dir:/var/audit\n" +"dist:off\n" +"flags:lo,aa\n" +"minfree:5\n" +"naflags:lo,aa\n" +"policy:cnt,argv\n" +"filesz:2M\n" +"expire-after:10M" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31492 +msgid "" +"The <option>dir</option> entry is used to set one or more directories where " +"audit logs will be stored. If more than one directory entry appears, they " +"will be used in order as they fill. It is common to configure audit so that " +"audit logs are stored on a dedicated file system, in order to prevent " +"interference between the audit subsystem and other subsystems if the file " +"system fills." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31500 +msgid "" +"If the <option>dist</option> field is set to <literal>on</literal> or " +"<literal>yes</literal>, hard links will be created to all trail files in " +"<filename>/var/audit/dist</filename>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31505 +msgid "" +"The <option>flags</option> field sets the system-wide default preselection " +"mask for attributable events. In the example above, successful and failed " +"login/logout events as well as authentication and authorization are audited " +"for all users." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31511 +msgid "" +"The <option>minfree</option> entry defines the minimum percentage of free " +"space for the file system where the audit trail is stored." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31515 +msgid "" +"The <option>naflags</option> entry specifies audit classes to be audited for " +"non-attributed events, such as the login/logout process and authentication " +"and authorization." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31520 +msgid "" +"The <option>policy</option> entry specifies a comma-separated list of policy " +"flags controlling various aspects of audit behavior. The <literal>cnt</" +"literal> indicates that the system should continue running despite an " +"auditing failure (this flag is highly recommended). The other flag, " +"<literal>argv</literal>, causes command line arguments to the " +"<citerefentry><refentrytitle>execve</refentrytitle><manvolnum>2</manvolnum></" +"citerefentry> system call to be audited as part of command execution." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31529 +msgid "" +"The <option>filesz</option> entry specifies the maximum size for an audit " +"trail before automatically terminating and rotating the trail file. A value " +"of <literal>0</literal> disables automatic log rotation. If the requested " +"file size is below the minimum of 512k, it will be ignored and a log message " +"will be generated." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31536 +msgid "" +"The <option>expire-after</option> field specifies when audit log files will " +"expire and be removed." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:31541 +msgid "The <filename>audit_user</filename> File" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31543 +msgid "" +"The administrator can specify further audit requirements for specific users " +"in <filename>audit_user</filename>. Each line configures auditing for a user " +"via two fields: the <literal>alwaysaudit</literal> field specifies a set of " +"events that should always be audited for the user, and the " +"<literal>neveraudit</literal> field specifies a set of events that should " +"never be audited for the user." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:31551 +msgid "" +"The following example entries audit login/logout events and successful " +"command execution for <systemitem class=\"username\">root</systemitem> and " +"file creation and successful command execution for <systemitem class=" +"\"username\">www</systemitem>. If used with the default " +"<filename>audit_control</filename>, the <literal>lo</literal> entry for " +"<systemitem class=\"username\">root</systemitem> is redundant, and login/" +"logout events will also be audited for <systemitem class=\"username\">www</" +"systemitem>." +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:31558 +#, no-wrap +msgid "" +"root:lo,+ex:no\n" +"www:fc,+ex:no" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:31565 +msgid "Working with Audit Trails" +msgstr "查看稽查線索" + +#. (itstool) path: sect1/para +#: book.translate.xml:31567 +msgid "" +"Since audit trails are stored in the <acronym>BSM</acronym> binary format, " +"several built-in tools are available to modify or convert these trails to " +"text. To convert trail files to a simple text format, use <command>praudit</" +"command>. To reduce the audit trail file for analysis, archiving, or " +"printing purposes, use <command>auditreduce</command>. This utility supports " +"a variety of selection parameters, including event type, event class, user, " +"date or time of the event, and the file path or object acted on." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31577 +msgid "" +"For example, to dump the entire contents of a specified audit log in plain " +"text:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31580 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>praudit /var/audit/<replaceable>AUDITFILE</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31582 +msgid "Where <replaceable>AUDITFILE</replaceable> is the audit log to dump." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31585 +msgid "" +"Audit trails consist of a series of audit records made up of tokens, which " +"<command>praudit</command> prints sequentially, one per line. Each token is " +"of a specific type, such as <literal>header</literal> (an audit record " +"header) or <literal>path</literal> (a file path from a name lookup). The " +"following is an example of an <literal>execve</literal> event:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:31593 +#, no-wrap +msgid "" +"header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec\n" +"exec arg,finger,doug\n" +"path,/usr/bin/finger\n" +"attribute,555,root,wheel,90,24918,104944\n" +"subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100\n" +"return,success,0\n" +"trailer,133" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31601 +msgid "" +"This audit represents a successful <literal>execve</literal> call, in which " +"the command <literal>finger doug</literal> has been run. The <literal>exec " +"arg</literal> token contains the processed command line presented by the " +"shell to the kernel. The <literal>path</literal> token holds the path to the " +"executable as looked up by the kernel. The <literal>attribute</literal> " +"token describes the binary and includes the file mode. The <literal>subject</" +"literal> token stores the audit user ID, effective user ID and group ID, " +"real user ID and group ID, process ID, session ID, port ID, and login " +"address. Notice that the audit user ID and real user ID differ as the user " +"<systemitem class=\"username\">robert</systemitem> switched to the " +"<systemitem class=\"username\">root</systemitem> account before running this " +"command, but it is audited using the original authenticated user. The " +"<literal>return</literal> token indicates the successful execution and the " +"<literal>trailer</literal> concludes the record." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31620 +msgid "" +"<acronym>XML</acronym> output format is also supported and can be selected " +"by including <option>-x</option>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31623 +msgid "" +"Since audit logs may be very large, a subset of records can be selected " +"using <command>auditreduce</command>. This example selects all audit records " +"produced for the user <systemitem class=\"username\">trhodes</systemitem> " +"stored in <filename>AUDITFILE</filename>:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31629 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>auditreduce -u <replaceable>trhodes</replaceable> /var/audit/<replaceable>AUDITFILE</replaceable> | praudit</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31631 +msgid "" +"Members of the <systemitem class=\"groupname\">audit</systemitem> group have " +"permission to read audit trails in <filename>/var/audit</filename>. By " +"default, this group is empty, so only the <systemitem class=\"username" +"\">root</systemitem> user can read audit trails. Users may be added to the " +"<systemitem class=\"groupname\">audit</systemitem> group in order to " +"delegate audit review rights. As the ability to track audit log contents " +"provides significant insight into the behavior of users and processes, it is " +"recommended that the delegation of audit review rights be performed with " +"caution." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:31641 +msgid "Live Monitoring Using Audit Pipes" +msgstr "使用 Audit Pipes 即時監視" + +#. (itstool) path: sect2/para +#: book.translate.xml:31643 +msgid "" +"Audit pipes are cloning pseudo-devices which allow applications to tap the " +"live audit record stream. This is primarily of interest to authors of " +"intrusion detection and system monitoring applications. However, the audit " +"pipe device is a convenient way for the administrator to allow live " +"monitoring without running into problems with audit trail file ownership or " +"log rotation interrupting the event stream. To track the live audit event " +"stream:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:31652 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>praudit /dev/auditpipe</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31654 +msgid "" +"By default, audit pipe device nodes are accessible only to the <systemitem " +"class=\"username\">root</systemitem> user. To make them accessible to the " +"members of the <systemitem class=\"groupname\">audit</systemitem> group, add " +"a <literal>devfs</literal> rule to <filename>/etc/devfs.rules</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:31660 +#, no-wrap +msgid "add path 'auditpipe*' mode 0440 group audit" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31662 +msgid "" +"See <citerefentry><refentrytitle>devfs.rules</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for more information on configuring the devfs file " +"system." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:31666 +msgid "" +"It is easy to produce audit event feedback cycles, in which the viewing of " +"each audit event results in the generation of more audit events. For " +"example, if all network <acronym>I/O</acronym> is audited, and " +"<command>praudit</command> is run from an <acronym>SSH</acronym> session, a " +"continuous stream of audit events will be generated at a high rate, as each " +"event being printed will generate another event. For this reason, it is " +"advisable to run <command>praudit</command> on an audit pipe device from " +"sessions without fine-grained <acronym>I/O</acronym> auditing." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:31681 +msgid "Rotating and Compressing Audit Trail Files" +msgstr "循環與壓縮 Audit Trail 檔" + +#. (itstool) path: sect2/para +#: book.translate.xml:31683 +msgid "" +"Audit trails are written to by the kernel and managed by the audit daemon, " +"<citerefentry><refentrytitle>auditd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. Administrators should not attempt to use " +"<citerefentry><refentrytitle>newsyslog.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> or other tools to directly rotate audit logs. " +"Instead, <command>audit</command> should be used to shut down auditing, " +"reconfigure the audit system, and perform log rotation. The following " +"command causes the audit daemon to create a new audit log and signal the " +"kernel to switch to using the new log. The old log will be terminated and " +"renamed, at which point it may then be manipulated by the administrator:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:31695 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>audit -n</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31697 +msgid "" +"If <citerefentry><refentrytitle>auditd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> is not currently running, this command will fail " +"and an error message will be produced." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31700 +msgid "" +"Adding the following line to <filename>/etc/crontab</filename> will schedule " +"this rotation every twelve hours:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:31704 +#, no-wrap +msgid "0 */12 * * * root /usr/sbin/audit -n" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31706 +msgid "" +"The change will take effect once <filename>/etc/crontab</filename> is saved." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31709 +msgid "" +"Automatic rotation of the audit trail file based on file size is possible " +"using <option>filesz</option> in <filename>audit_control</filename> as " +"described in <xref linkend=\"audit-auditcontrol\"/>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31713 +msgid "" +"As audit trail files can become very large, it is often desirable to " +"compress or otherwise archive trails once they have been closed by the audit " +"daemon. The <filename>audit_warn</filename> script can be used to perform " +"customized operations for a variety of audit-related events, including the " +"clean termination of audit trails when they are rotated. For example, the " +"following may be added to <filename>/etc/security/audit_warn</filename> to " +"compress audit trails on close:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:31723 +#, no-wrap +msgid "" +"#\n" +"# Compress audit trail files on close.\n" +"#\n" +"if [ \"$1\" = closefile ]; then\n" +" gzip -9 $2\n" +"fi" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:31730 +msgid "" +"Other archiving activities might include copying trail files to a " +"centralized server, deleting old trail files, or reducing the audit trail to " +"remove unneeded records. This script will be run only when audit trail files " +"are cleanly terminated, so will not be run on trails left unterminated " +"following an improper shutdown." +msgstr "" + +#. (itstool) path: chapter/title +#: book.translate.xml:31749 +msgid "Storage" +msgstr "儲存設備" + +#. (itstool) path: sect1/para +#: book.translate.xml:31754 +msgid "" +"This chapter covers the use of disks and storage media in FreeBSD. This " +"includes <acronym>SCSI</acronym> and <acronym>IDE</acronym> disks, " +"<acronym>CD</acronym> and <acronym>DVD</acronym> media, memory-backed disks, " +"and <acronym>USB</acronym> storage devices." +msgstr "" +"本章涵蓋如何在 FreeBSD 下使用磁碟及儲存媒體,這包含 <acronym>SCSI</acronym> " +"及 <acronym>IDE</acronym> 磁碟、<acronym>CD</acronym> 及 <acronym>DVD</" +"acronym> 媒體、記憶體磁碟及 <acronym>USB</acronym> 儲存裝置。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31764 +msgid "How to add additional hard disks to a FreeBSD system." +msgstr "如何在 FreeBSD 系統加入額外的硬碟。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31769 +msgid "How to grow the size of a disk's partition on FreeBSD." +msgstr "如何在 FreeBSD 擴增磁碟分割區的大小。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31774 +msgid "How to configure FreeBSD to use <acronym>USB</acronym> storage devices." +msgstr "如何設定 FreeBSD 使用 <acronym>USB</acronym> 儲存裝置。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31779 +msgid "" +"How to use <acronym>CD</acronym> and <acronym>DVD</acronym> media on a " +"FreeBSD system." +msgstr "" +"如何在 FreeBSD 系統使用 <acronym>CD</acronym> 及 <acronym>DVD</acronym> 媒" +"體。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31784 +msgid "How to use the backup programs available under FreeBSD." +msgstr "如何使用在 FreeBSD 下可用的備份程式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31789 +msgid "How to set up memory disks." +msgstr "如何設定記憶體磁碟。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31793 +msgid "What file system snapshots are and how to use them efficiently." +msgstr "什麼是檔案系統快照 (Snapshot) 以及如何有效使用。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31798 +msgid "How to use quotas to limit disk space usage." +msgstr "如何使用配額 (Quota) 來限制磁碟空間使用量。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31802 +msgid "How to encrypt disks and swap to secure them against attackers." +msgstr "如何加密磁碟及交換空間來防範攻擊者。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31807 +msgid "How to configure a highly available storage network." +msgstr "如何設定高可用性 (Highly available) 的儲存網路。" + +#. (itstool) path: listitem/para +#: book.translate.xml:31816 +msgid "" +"Know how to <link linkend=\"kernelconfig\">configure and install a new " +"FreeBSD kernel</link>." +msgstr "" +"了解如何 <link linkend=\"kernelconfig\">設定並安裝新的 FreeBSD 核心</link>。" + +#. (itstool) path: info/title +#: book.translate.xml:31824 +msgid "Adding Disks" +msgstr "加入磁碟" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:31827 +msgid "" +"<personname> <firstname>David</firstname> <surname>O'Brien</surname> </" +"personname> <contrib>Originally contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:31837 +msgid "<primary>disks</primary> <secondary>adding</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31842 +msgid "" +"This section describes how to add a new <acronym>SATA</acronym> disk to a " +"machine that currently only has a single drive. First, turn off the computer " +"and install the drive in the computer following the instructions of the " +"computer, controller, and drive manufacturers. Reboot the system and become " +"<systemitem class=\"username\">root</systemitem>." +msgstr "" +"本節將說明如何加入新的 <acronym>SATA</acronym> 磁碟到目前只有一個磁碟的機器" +"上。 首先要關閉電腦並依照電腦、控制器及磁碟製造商的操作指南將磁碟安裝到電腦。" +"重新啟動系統並登入 <systemitem class=\"username\">root</systemitem>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:31850 +msgid "" +"Inspect <filename>/var/run/dmesg.boot</filename> to ensure the new disk was " +"found. In this example, the newly added <acronym>SATA</acronym> drive will " +"appear as <filename>ada1</filename>." +msgstr "" +"查看 <filename>/var/run/dmesg.boot</filename> 來確認已經找到新的磁碟。在本例" +"中,會以 <filename>ada1</filename> 代表新加入的 <acronym>SATA</acronym> 磁" +"碟。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:31856 book.translate.xml:31952 +msgid "<primary><command>gpart</command></primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31860 +msgid "" +"For this example, a single large partition will be created on the new disk. " +"The <link xlink:href=\"http://en.wikipedia.org/wiki/GUID_Partition_Table\"> " +"<acronym>GPT</acronym></link> partitioning scheme will be used in preference " +"to the older and less versatile <acronym>MBR</acronym> scheme." +msgstr "" +"在本例中,會在新的磁碟上建立單一大型分割區,使用 <link xlink:href=\"http://" +"en.wikipedia.org/wiki/GUID_Partition_Table\"> <acronym>GPT</acronym></link> " +"分割區結構而非較舊與通用性較差的 <acronym>MBR</acronym> 結構。" + +#. (itstool) path: note/para +#: book.translate.xml:31867 +msgid "" +"If the disk to be added is not blank, old partition information can be " +"removed with <command>gpart delete</command>. See " +"<citerefentry><refentrytitle>gpart</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for details." +msgstr "" +"若新加入的磁碟不是空白的,可以使用 <command>gpart delete</command> 來移除舊的" +"分割區資訊。請參考 <citerefentry><refentrytitle>gpart</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 取得詳細資訊。" + +#. (itstool) path: sect1/para +#: book.translate.xml:31873 +msgid "" +"The partition scheme is created, and then a single partition is added. To " +"improve performance on newer disks with larger hardware block sizes, the " +"partition is aligned to one megabyte boundaries:" +msgstr "" +"建立完分割區結構後接著加入一個分割區,要在新的磁碟增進效能可使用較大的硬體區" +"塊大小 (Block size),此分割區會對齊 1 MB 的邊界:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31878 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart create -s GPT ada1</userinput>\n" +"<prompt>#</prompt> <userinput>gpart add -t freebsd-ufs -a 1M ada1</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31881 +msgid "" +"Depending on use, several smaller partitions may be desired. See " +"<citerefentry><refentrytitle>gpart</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for options to create partitions smaller than a whole disk." +msgstr "" +"依據使用情況,也可以使用較小的分割區。請參考 " +"<citerefentry><refentrytitle>gpart</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 來取得建立較小分割區的選項。" + +#. (itstool) path: sect1/para +#: book.translate.xml:31885 +msgid "" +"The disk partition information can be viewed with <command>gpart show</" +"command>:" +msgstr "磁碟分割區資訊可以使用 <command>gpart show</command> 檢視:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31888 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>gpart show ada1</userinput>\n" +"=> 34 1465146988 ada1 GPT (699G)\n" +" 34 2014 - free - (1.0M)\n" +" 2048 1465143296 1 freebsd-ufs (699G)\n" +" 1465145344 1678 - free - (839K)" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31894 +msgid "A file system is created in the new partition on the new disk:" +msgstr "在新磁碟的新分割區上建立檔案系統:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31896 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>newfs -U /dev/ada1p1</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31898 +msgid "" +"An empty directory is created as a <emphasis>mountpoint</emphasis>, a " +"location for mounting the new disk in the original disk's file system:" +msgstr "" +"建立一個空的目錄做來做為<emphasis>掛載點 (mountpoint)</emphasis>,一個在原有" +"磁碟的檔案系統上可用來掛載新磁碟的位置:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31902 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mkdir /newdisk</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31904 +msgid "" +"Finally, an entry is added to <filename>/etc/fstab</filename> so the new " +"disk will be mounted automatically at startup:" +msgstr "" +"最後,將磁碟項目加入到 <filename>/etc/fstab</filename>,讓啟動時會自動掛載新" +"的磁碟:" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:31908 +#, no-wrap +msgid "/dev/ada1p1\t/newdisk\tufs\trw\t2\t2" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31910 +msgid "The new disk can be mounted manually, without restarting the system:" +msgstr "新的磁碟也可手動掛載,無須重新啟動系統:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31913 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount /newdisk</userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:31918 +msgid "Resizing and Growing Disks" +msgstr "重設大小與擴增磁碟" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:31921 +msgid "" +"<personname> <firstname>Allan</firstname> <surname>Jude</surname> </" +"personname> <contrib>Originally contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:31931 +msgid "<primary>disks</primary> <secondary>resizing</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31936 +msgid "" +"A disk's capacity can increase without any changes to the data already " +"present. This happens commonly with virtual machines, when the virtual disk " +"turns out to be too small and is enlarged. Sometimes a disk image is written " +"to a <acronym>USB</acronym> memory stick, but does not use the full " +"capacity. Here we describe how to resize or <emphasis>grow</emphasis> disk " +"contents to take advantage of increased capacity." +msgstr "" +"磁碟的容量可以增加且不需要更動任何已存在的資料。這時常會用在虛擬機器,當虛擬" +"磁碟太小且需要增加時。有時磁碟映像檔會被寫入到 <acronym>USB</acronym> 隨身" +"碟,但卻沒有使用全部的容量。此節我們將說明如合重設大小或 <emphasis>擴增</" +"emphasis> 磁碟內容來使用增加的容量。" + +#. (itstool) path: sect1/para +#: book.translate.xml:31945 +msgid "" +"Determine the device name of the disk to be resized by inspecting <filename>/" +"var/run/dmesg.boot</filename>. In this example, there is only one " +"<acronym>SATA</acronym> disk in the system, so the drive will appear as " +"<filename>ada0</filename>." +msgstr "" +"要取得要重設大小的磁碟的代號可以查看 <filename>/var/run/dmesg.boot</" +"filename>。在本例中,在系統上只有一個 <acronym>SATA</acronym> 磁碟,該磁碟會" +"以 <filename>ada0</filename> 表示。" + +#. (itstool) path: sect1/para +#: book.translate.xml:31956 +msgid "List the partitions on the disk to see the current configuration:" +msgstr "列出在磁碟上的分割區來查看目前的設定:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31959 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart show <replaceable>ada0</replaceable></userinput>\n" +"=> 34 83886013 ada0 GPT (48G) [CORRUPT]\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 4194236 3 freebsd-swap (2G)\n" +" 83886046 1 - free - (512B)" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:31967 +msgid "" +"If the disk was formatted with the <link xlink:href=\"http://en.wikipedia." +"org/wiki/GUID_Partition_Table\"> <acronym>GPT</acronym></link> partitioning " +"scheme, it may show as <quote>corrupted</quote> because the <acronym>GPT</" +"acronym> backup partition table is no longer at the end of the drive. Fix " +"the backup partition table with <command>gpart</command>:" +msgstr "" +"若磁碟已使用 <link xlink:href=\"http://en.wikipedia.org/wiki/" +"GUID_Partition_Table\"> <acronym>GPT</acronym></link> 分割區結構格式化,可能" +"會顯示為 <quote>已損壞 (corrupted)</quote> 因為 <acronym>GPT</acronym> 備份分" +"割區已不存在於磁碟結尾。 使用 <command>gpart</command> 來修正備份分割區:" + +#. (itstool) path: note/screen +#: book.translate.xml:31975 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart recover <replaceable>ada0</replaceable></userinput>\n" +"ada0 recovered" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31979 +msgid "" +"Now the additional space on the disk is available for use by a new " +"partition, or an existing partition can be expanded:" +msgstr "" +"現在在磁碟上的額外空間已經可以被新的分割區使用,或者可以拿來擴充既有的分割" +"區:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31983 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart show <replaceable>ada0</replaceable></userinput>\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 4194236 3 freebsd-swap (2G)\n" +" 83886046 18513921 - free - (8.8G)" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:31990 +msgid "" +"Partitions can only be resized into contiguous free space. Here, the last " +"partition on the disk is the swap partition, but the second partition is the " +"one that needs to be resized. Swap partitions only contain temporary data, " +"so it can safely be unmounted, deleted, and then recreated after resizing " +"other partitions." +msgstr "" +"分割區只能重設大小到連續的未使用空間。在這個例子磁碟上最後的分割區為交換 " +"(Swap) 分割區,而第二個分割區才是需要重設大小的分割區。交換分割區中只會有暫存" +"的資料,所以可以安全的解除掛載、刪除,然後在重設其他分割區大小之後再重建。" + +#. (itstool) path: sect1/screen +#: book.translate.xml:31997 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>swapoff <replaceable>/dev/ada0p3</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>gpart delete -i <replaceable>3</replaceable> <replaceable>ada0</replaceable></userinput>\n" +"ada0p3 deleted\n" +"<prompt>#</prompt> <userinput>gpart show <replaceable>ada0</replaceable></userinput>\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 22708157 - free - (10G)" +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:32007 +msgid "" +"There is risk of data loss when modifying the partition table of a mounted " +"file system. It is best to perform the following steps on an unmounted file " +"system while running from a live <acronym>CD-ROM</acronym> or <acronym>USB</" +"acronym> device. However, if absolutely necessary, a mounted file system can " +"be resized after disabling GEOM safety features:" +msgstr "" +"在掛載的檔案系統上修改分割區表可能會造成資料遺失。最好的方式是在未掛載檔案系" +"統的情況下 (使用 Live <acronym>CD-ROM</acronym> 或 <acronym>USB</acronym> 裝" +"置) 執行以下步驟。雖然如此,若仍要這樣做的話,在關閉 GEOM 安全性功能之後可以" +"在掛載的檔案系統上修改分割區表:" + +#. (itstool) path: warning/screen +#: book.translate.xml:32015 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sysctl kern.geom.debugflags=16</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32018 +msgid "" +"Resize the partition, leaving room to recreate a swap partition of the " +"desired size. This only modifies the size of the partition. The file system " +"in the partition will be expanded in a separate step." +msgstr "" +"重設分割區大小,保留要用來重建交換分割區的大小。這個動作只會修改分割區大小," +"分割區中的檔案系統會在另一個步驟擴增。" + +#. (itstool) path: sect1/screen +#: book.translate.xml:32023 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart resize -i <replaceable>2</replaceable> -a 4k -s <replaceable>47G</replaceable> <replaceable>ada0</replaceable></userinput>\n" +"ada0p2 resized\n" +"<prompt>#</prompt> <userinput>gpart show <replaceable>ada0</replaceable></userinput>\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 98566144 2 freebsd-ufs (47G)\n" +" 98566306 3833661 - free - (1.8G)" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32031 +msgid "Recreate the swap partition:" +msgstr "重新建立交換分割區:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:32033 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart add -t freebsd-swap -a 4k <replaceable>ada0</replaceable></userinput>\n" +"ada0p3 added\n" +"<prompt>#</prompt> <userinput>gpart show <replaceable>ada0</replaceable></userinput>\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 98566144 2 freebsd-ufs (47G)\n" +" 98566306 3833661 3 freebsd-swap (1.8G)\n" +"<prompt>#</prompt> <userinput>swapon <replaceable>/dev/ada0p3</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32042 +msgid "" +"Grow the <acronym>UFS</acronym> file system to use the new capacity of the " +"resized partition:" +msgstr "擴增 <acronym>UFS</acronym> 檔案系統來使用重設分割區大小之後的新容量:" + +#. (itstool) path: note/para +#: book.translate.xml:32046 +msgid "" +"Growing a live <acronym>UFS</acronym> file system is only possible in " +"FreeBSD 10.0-RELEASE and later. For earlier versions, the file system must " +"not be mounted." +msgstr "" +"只能在 FreeBSD 10.0-RELEASE 或之後的版本擴增運作中的 <acronym>UFS</acronym> " +"檔案系統,較先前的版本必須將檔案系統解除掛載。" + +#. (itstool) path: sect1/screen +#: book.translate.xml:32051 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>growfs <replaceable>/dev/ada0p2</replaceable></userinput>\n" +"Device is mounted read-write; resizing will result in temporary write suspension for /.\n" +"It's strongly recommended to make a backup before growing the file system.\n" +"OK to grow file system on /dev/ada0p2, mounted on /, from 38GB to 47GB? [Yes/No] <userinput>Yes</userinput>\n" +"super-block backups (for fsck -b #) at:\n" +" 80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752,\n" +" 89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32059 +msgid "" +"Both the partition and the file system on it have now been resized to use " +"the newly-available disk space." +msgstr "現在分割區與檔案系統已透過重設大小來使用新增加的磁碟空間。" + +#. (itstool) path: info/title +#: book.translate.xml:32065 +msgid "<acronym>USB</acronym> Storage Devices" +msgstr "<acronym>USB</acronym> 儲存裝置" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:32078 +msgid "<primary>USB</primary> <secondary>disks</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32083 +msgid "" +"Many external storage solutions, such as hard drives, <acronym>USB</acronym> " +"thumbdrives, and <acronym>CD</acronym> and <acronym>DVD</acronym> burners, " +"use the Universal Serial Bus (<acronym>USB</acronym>). FreeBSD provides " +"support for <acronym>USB</acronym> 1.x, 2.0, and 3.0 devices." +msgstr "" +"許多外部儲存裝置的解決方案,例如硬碟、<acronym>USB</acronym> 隨身碟及\n" +"<acronym>CD</acronym> 與 <acronym>DVD</acronym> 燒錄機皆使用通用序列匯流排 " +"(Universal Serial Bus, <acronym>USB</acronym>),FreeBSD 提供了對 " +"<acronym>USB</acronym> 1.x, 2.0 及 3.0 裝置的支援。" + +#. (itstool) path: note/para +#: book.translate.xml:32090 +msgid "" +"<acronym>USB</acronym> 3.0 support is not compatible with some hardware, " +"including Haswell (Lynx point) chipsets. If FreeBSD boots with a " +"<errorname>failed with error 19</errorname> message, disable xHCI/USB3 in " +"the system <acronym>BIOS</acronym>." +msgstr "" +"部份硬體尚不相容 <acronym>USB</acronym> 3.0,包含 Haswell (Lynx point) 晶片" +"組,若 FreeBSD 開機出現 <errorname>failed with error 19</errorname> 訊息,請" +"在系統 <acronym>BIOS</acronym> 關閉 xHCI/USB3。" + +#. (itstool) path: sect1/para +#: book.translate.xml:32097 +msgid "" +"Support for <acronym>USB</acronym> storage devices is built into the " +"<filename>GENERIC</filename> kernel. For a custom kernel, be sure that the " +"following lines are present in the kernel configuration file:" +msgstr "" +"對 <acronym>USB</acronym> 儲存裝置的支援已內建於 <filename>GENERIC</" +"filename> 核心,若為自訂的核心,請確定在核心設定檔中有下列幾行設定:" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:32102 +#, no-wrap +msgid "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device uhci\t# provides USB 1.x support\n" +"device ohci\t# provides USB 1.x support\n" +"device ehci\t# provides USB 2.0 support\n" +"device xhci\t# provides USB 3.0 support\n" +"device usb\t# USB Bus (required)\n" +"device umass\t# Disks/Mass storage - Requires scbus and da\n" +"device cd\t# needed for CD and DVD burners" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32113 +msgid "" +"FreeBSD uses the <citerefentry><refentrytitle>umass</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver which uses the " +"<acronym>SCSI</acronym> subsystem to access <acronym>USB</acronym> storage " +"devices. Since any <acronym>USB</acronym> device will be seen as a " +"<acronym>SCSI</acronym> device by the system, if the <acronym>USB</acronym> " +"device is a <acronym>CD</acronym> or <acronym>DVD</acronym> burner, do " +"<emphasis>not</emphasis> include <option>device atapicam</option> in a " +"custom kernel configuration file." +msgstr "" +"FreeBSD 使用 <citerefentry><refentrytitle>umass</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> 驅動程式透過 <acronym>SCSI</acronym> 子系統來存取 " +"<acronym>USB</acronym> 儲存裝置,因此任何在系統的 <acronym>USB</acronym> 裝置" +"都會以 <acronym>SCSI</acronym> 裝置呈現,若 <acronym>USB</acronym> 裝置是 " +"<acronym>CD</acronym> 或 <acronym>DVD</acronym> 燒錄機,請<emphasis>不要</" +"emphasis>在自訂核心設定檔中引用 <option>device atapicam</option>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:32123 +msgid "" +"The rest of this section demonstrates how to verify that a <acronym>USB</" +"acronym> storage device is recognized by FreeBSD and how to configure the " +"device so that it can be used." +msgstr "" +"本節後續的部份將示範如何檢查 FreeBSD 能夠辦識 <acronym>USB</acronym> 儲存裝置" +"以及如何設定該裝置。" + +#. (itstool) path: sect2/title +#: book.translate.xml:32128 +msgid "Device Configuration" +msgstr "裝置設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:32130 +msgid "" +"To test the <acronym>USB</acronym> configuration, plug in the <acronym>USB</" +"acronym> device. Use <command>dmesg</command> to confirm that the drive " +"appears in the system message buffer. It should look something like this:" +msgstr "" +"要測試 <acronym>USB</acronym> 設定,請先插入 <acronym>USB</acronym> 裝置,然" +"後使用 <command>dmesg</command> 來確認系統訊息緩衝區中有出現該磁碟機,該訊息" +"如下:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32136 +#, no-wrap +msgid "" +"umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0\n" +"umass0: SCSI over Bulk-Only; quirks = 0x0100\n" +"umass0:4:0:-1: Attached to scbus4\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device\n" +"da0: Serial Number WD-WXE508CAN263\n" +"da0: 40.000MB/s transfers\n" +"da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)\n" +"da0: quirks=0x2<NO_6_BYTE>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32146 +msgid "" +"The brand, device node (<filename>da0</filename>), speed, and size will " +"differ according to the device." +msgstr "" +"不同的裝置會有不同的廠牌、裝置節點 (<filename>da0</filename>)、速度與大小。" + +#. (itstool) path: sect2/para +#: book.translate.xml:32149 +msgid "" +"Since the <acronym>USB</acronym> device is seen as a <acronym>SCSI</acronym> " +"one, <command>camcontrol</command> can be used to list the <acronym>USB</" +"acronym> storage devices attached to the system:" +msgstr "" +"當 <acronym>USB</acronym> 裝置可以做為 <acronym>SCSI</acronym> 檢視時,便可使" +"用 <command>camcontrol</command> 來列出連接到系統的 <acronym>USB</acronym> 儲" +"存裝置:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32154 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>camcontrol devlist</userinput>\n" +"<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32157 +msgid "" +"Alternately, <command>usbconfig</command> can be used to list the device. " +"Refer to <citerefentry vendor=\"current\"><refentrytitle>usbconfig</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more information " +"about this command." +msgstr "" +"或者,可以使用 <command>usbconfig</command> 來列出裝置,請參考 <citerefentry " +"vendor=\"current\"><refentrytitle>usbconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 來取得更多有關此指令的資訊。" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32161 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>usbconfig</userinput>\n" +"ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32164 +msgid "" +"If the device has not been formatted, refer to <xref linkend=\"disks-adding" +"\"/> for instructions on how to format and create partitions on the " +"<acronym>USB</acronym> drive. If the drive comes with a file system, it can " +"be mounted by <systemitem class=\"username\">root</systemitem> using the " +"instructions in <xref linkend=\"mount-unmount\"/>." +msgstr "" +"若該裝置尚未被格式化,請參考 <xref linkend=\"disks-adding\"/> 中有關如何在 " +"<acronym>USB</acronym> 磁碟格式化與建立分割區的說明。若磁碟中有檔案系統,可" +"由 <systemitem class=\"username\">root</systemitem> 依據 <xref linkend=" +"\"mount-unmount\"/> 中的說明掛載磁碟。" + +#. (itstool) path: warning/para +#: book.translate.xml:32171 +msgid "" +"Allowing untrusted users to mount arbitrary media, by enabling <varname>vfs." +"usermount</varname> as described below, should not be considered safe from a " +"security point of view. Most file systems were not built to safeguard " +"against malicious devices." +msgstr "" +"要允許未被信任的使用者掛載任意媒體,可開啟 <varname>vfs.usermount</varname>," +"詳細說明如下。從安全性的角度來看這並不是安全的,大多的檔案系統並不會防範惡意" +"裝置。" + +#. (itstool) path: sect2/para +#: book.translate.xml:32178 +msgid "" +"To make the device mountable as a normal user, one solution is to make all " +"users of the device a member of the <systemitem class=\"groupname" +"\">operator</systemitem> group using <citerefentry><refentrytitle>pw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. Next, ensure that " +"<systemitem class=\"groupname\">operator</systemitem> is able to read and " +"write the device by adding these lines to <filename>/etc/devfs.rules</" +"filename>:" +msgstr "" +"要讓裝置可讓一般使用者掛載,其中一個解決方案便是使用 " +"<citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 讓所有裝置的使用者成為 <systemitem class=\"groupname" +"\">operator</systemitem> 群組的成員。接著,將下列幾行加入 <filename>/etc/" +"devfs.rules</filename> 來確保 <systemitem class=\"groupname\">operator</" +"systemitem> 能夠讀取與寫入裝置:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:32185 +#, no-wrap +msgid "" +"[localrules=5]\n" +"add path 'da*' mode 0660 group operator" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32189 +msgid "" +"If internal <acronym>SCSI</acronym> disks are also installed in the system, " +"change the second line as follows:" +msgstr "" +"若系統也同時安裝了內建 <acronym>SCSI</acronym> 磁碟,請更改第二行如下:" + +#. (itstool) path: note/programlisting +#: book.translate.xml:32193 +#, no-wrap +msgid "add path 'da[<replaceable>3</replaceable>-9]*' mode 0660 group operator" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32195 +msgid "" +"This will exclude the first three <acronym>SCSI</acronym> disks " +"(<filename>da0</filename> to <filename>da2</filename>)from belonging to the " +"<systemitem class=\"groupname\">operator</systemitem> group. Replace " +"<replaceable>3</replaceable> with the number of internal <acronym>SCSI</" +"acronym> disks. Refer to <citerefentry><refentrytitle>devfs.rules</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information " +"about this file." +msgstr "" +"這會從 <systemitem class=\"groupname\">operator</systemitem> 群組中排除前三" +"個 <acronym>SCSI</acronym> 磁碟 (<filename>da0</filename> 到 <filename>da2</" +"filename>),接著取代 <replaceable>3</replaceable> 為內部 <acronym>SCSI</" +"acronym> 磁碟的編號。請參考 <citerefentry><refentrytitle>devfs.rules</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 來取得更多有關此檔案的" +"資訊。" + +#. (itstool) path: sect2/para +#: book.translate.xml:32203 +msgid "Next, enable the ruleset in <filename>/etc/rc.conf</filename>:" +msgstr "接著,在 <filename>/etc/rc.conf</filename> 開啟規則:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:32206 +#, no-wrap +msgid "devfs_system_ruleset=\"localrules\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32208 +msgid "" +"Then, instruct the system to allow regular users to mount file systems by " +"adding the following line to <filename>/etc/sysctl.conf</filename>:" +msgstr "" +"然後,加入以下行到 <filename>/etc/sysctl.conf</filename> 指示系統允許正常使用" +"者掛載檔案系統:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:32212 +#, no-wrap +msgid "vfs.usermount=1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32214 +msgid "" +"Since this only takes effect after the next reboot, use <command>sysctl</" +"command> to set this variable now:" +msgstr "" +"這樣只會在下次重新開機時生效,可使用 <command>sysctl</command> 來立即設定這個" +"變數:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32217 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>sysctl vfs.usermount=1</userinput>\n" +"vfs.usermount: 0 -> 1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32220 +msgid "" +"The final step is to create a directory where the file system is to be " +"mounted. This directory needs to be owned by the user that is to mount the " +"file system. One way to do that is for <systemitem class=\"username\">root</" +"systemitem> to create a subdirectory owned by that user as <filename>/mnt/" +"<replaceable>username</replaceable></filename>. In the following example, " +"replace <replaceable>username</replaceable> with the login name of the user " +"and <replaceable>usergroup</replaceable> with the user's primary group:" +msgstr "" +"最後一個步驟是建立要掛載檔案系統要的目錄,要掛載檔案系統的使用者需要擁有這個" +"目錄。其中一個辦法是讓 <systemitem class=\"username\">root</systemitem> 建立" +"由該使用者擁有的子目錄 <filename>/mnt/<replaceable>username</replaceable></" +"filename>。在下面的例子,將 <replaceable>username</replaceable> 替換為該使用" +"者的登入名稱並將 <replaceable>usergroup</replaceable> 替換為該使用者的主要群" +"組:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32230 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mkdir /mnt/<replaceable>username</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>chown <replaceable>username</replaceable>:<replaceable>usergroup</replaceable> /mnt/<replaceable>username</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32233 +msgid "" +"Suppose a <acronym>USB</acronym> thumbdrive is plugged in, and a device " +"<filename>/dev/da0s1</filename> appears. If the device is formatted with a " +"<acronym>FAT</acronym> file system, the user can mount it using:" +msgstr "" +"假如已經插入 <acronym>USB</acronym> 隨身碟,且已出現 <filename>/dev/da0s1</" +"filename> 裝置。若裝置使用 <acronym>FAT</acronym> 格式的檔案系統,則使用者可" +"使用以下指令掛載該檔案系統:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32238 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/<replaceable>username</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32240 +msgid "" +"Before the device can be unplugged, it <emphasis>must</emphasis> be " +"unmounted first:" +msgstr "在裝置可以被拔除前,<emphasis>必須</emphasis>先解除掛載:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32243 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>umount /mnt/<replaceable>username</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32245 +msgid "" +"After device removal, the system message buffer will show messages similar " +"to the following:" +msgstr "裝置移除之後,系統訊息緩衝區會顯示如下的訊息:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32248 +#, no-wrap +msgid "" +"umass0: at uhub3, port 2, addr 3 (disconnected)\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached\n" +"(da0:umass-sim0:0:0:0): Periph destroyed" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:32255 +msgid "Automounting Removable Media" +msgstr "自動掛載可移除的媒體" + +#. (itstool) path: note/para +#: book.translate.xml:32258 +msgid "" +"<citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> supports automatic mounting of removable media starting with " +"FreeBSD 10.2-RELEASE." +msgstr "" +"自 FreeBSD 10.2-RELEASE 開始 <citerefentry><refentrytitle>autofs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 支援自動掛載可移除的媒" +"體。" + +#. (itstool) path: sect2/para +#: book.translate.xml:32262 +msgid "" +"<acronym>USB</acronym> devices can be automatically mounted by uncommenting " +"this line in <filename>/etc/auto_master</filename>:" +msgstr "" +"可以取消註解在 <filename>/etc/auto_master</filename> 中的下行來自動掛載 " +"<acronym>USB</acronym> 裝置:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32266 +#, no-wrap +msgid "/media\t\t-media\t\t-nosuid" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32268 +msgid "Then add these lines to <filename>/etc/devd.conf</filename>:" +msgstr "然後加入這些行到 <filename>/etc/devd.conf</filename>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32271 +#, no-wrap +msgid "" +"notify 100 {\n" +"\tmatch \"system\" \"GEOM\";\n" +"\tmatch \"subsystem\" \"DEV\";\n" +"\taction \"/usr/sbin/automount -c\";\n" +"};" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32277 +msgid "" +"Reload the configuration if <citerefentry><refentrytitle>autofs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>devd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> are already running:" +msgstr "" +"若 <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> 以及 <citerefentry><refentrytitle>devd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 已經正在執行,則需重新" +"載入設定:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32280 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service automount reload</userinput>\n" +"<prompt>#</prompt> <userinput>service devd restart</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32283 +msgid "" +"<citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> can be set to start at boot by adding this line to <filename>/" +"etc/rc.conf</filename>:" +msgstr "" +"要設定讓 <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> 在開機時啟動可以加入此行到 <filename>/etc/rc.conf</" +"filename>:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:32286 book.translate.xml:53176 +#, no-wrap +msgid "autofs_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32288 +msgid "" +"<citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> requires <citerefentry><refentrytitle>devd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to be enabled, as it " +"is by default." +msgstr "" +"<citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> 需要開啟 <citerefentry><refentrytitle>devd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>,預設已經開啟。" + +#. (itstool) path: sect2/para +#: book.translate.xml:32291 +msgid "Start the services immediately with:" +msgstr "立即啟動服務:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32293 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service automount start</userinput>\n" +"<prompt>#</prompt> <userinput>service automountd start</userinput>\n" +"<prompt>#</prompt> <userinput>service autounmountd start</userinput>\n" +"<prompt>#</prompt> <userinput>service devd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32298 +msgid "" +"Each file system that can be automatically mounted appears as a directory in " +"<filename>/media/</filename>. The directory is named after the file system " +"label. If the label is missing, the directory is named after the device node." +msgstr "" +"可以被自動掛載的檔案系統會在 <filename>/media/</filename> 中以目錄呈現,會以" +"檔案系統的標籤來命名目錄,若標籤遺失,則會以裝置節點命名。" + +#. (itstool) path: sect2/para +#: book.translate.xml:32303 +msgid "" +"The file system is transparently mounted on the first access, and unmounted " +"after a period of inactivity. Automounted drives can also be unmounted " +"manually:" +msgstr "" +"檔案系統會在第一次存取時自動掛載,並在一段時間未使用後自動解除掛載。自動掛載" +"的磁碟也可手動解除掛載:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32307 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>automount -fu</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32309 +msgid "" +"This mechanism is typically used for memory cards and <acronym>USB</acronym> " +"memory sticks. It can be used with any block device, including optical " +"drives or <acronym>iSCSI</acronym> <acronym>LUN</acronym>s." +msgstr "" +"這個機制一般會用在記憶卡與 <acronym>USB</acronym> 隨身碟,也可用在任何 Block " +"裝置,包含光碟機或 <acronym>iSCSI</acronym> <acronym>LUN</acronym>。" + +#. (itstool) path: info/title +#: book.translate.xml:32318 +msgid "Creating and Using <acronym>CD</acronym> Media" +msgstr "建立與使用 <acronym>CD</acronym> 媒體" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:32321 book.translate.xml:45931 +msgid "" +"<personname> <firstname>Mike</firstname> <surname>Meyer</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:32331 +msgid "" +"<primary><acronym>CD-ROM</acronym>s</primary> <secondary>creating</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32336 +msgid "" +"Compact Disc (<acronym>CD</acronym>) media provide a number of features that " +"differentiate them from conventional disks. They are designed so that they " +"can be read continuously without delays to move the head between tracks. " +"While <acronym>CD</acronym> media do have tracks, these refer to a section " +"of data to be read continuously, and not a physical property of the disk. " +"The <acronym>ISO</acronym> 9660 file system was designed to deal with these " +"differences." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:32345 +msgid "<primary><acronym>ISO</acronym> 9660</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:32347 book.translate.xml:32537 +msgid "<primary>file systems</primary> <secondary>ISO 9660</secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:32352 +msgid "" +"<primary><acronym>CD</acronym> burner</primary> <secondary><acronym>ATAPI</" +"acronym></secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32357 +msgid "" +"The FreeBSD Ports Collection provides several utilities for burning and " +"duplicating audio and data <acronym>CD</acronym>s. This chapter demonstrates " +"the use of several command line utilities. For <acronym>CD</acronym> burning " +"software with a graphical utility, consider installing the <package>sysutils/" +"xcdroast</package> or <package>sysutils/k3b</package> packages or ports." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:32367 +msgid "Supported Devices" +msgstr "支援的裝置" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:32380 +msgid "" +"<primary><acronym>CD</acronym> burner</primary> <secondary>ATAPI/CAM driver</" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32385 +msgid "" +"The <filename>GENERIC</filename> kernel provides support for <acronym>SCSI</" +"acronym>, <acronym>USB</acronym>, and <acronym>ATAPI</acronym> <acronym>CD</" +"acronym> readers and burners. If a custom kernel is used, the options that " +"need to be present in the kernel configuration file vary by the type of " +"device." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32392 +msgid "" +"For a <acronym>SCSI</acronym> burner, make sure these options are present:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:32395 +#, no-wrap +msgid "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32400 +msgid "" +"For a <acronym>USB</acronym> burner, make sure these options are present:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:32403 +#, no-wrap +msgid "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" +"device uhci\t# provides USB 1.x support\n" +"device ohci\t# provides USB 1.x support\n" +"device ehci\t# provides USB 2.0 support\n" +"device xhci\t# provides USB 3.0 support\n" +"device usb\t# USB Bus (required)\n" +"device umass\t# Disks/Mass storage - Requires scbus and da" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32414 +msgid "" +"For an <acronym>ATAPI</acronym> burner, make sure these options are present:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:32417 +#, no-wrap +msgid "" +"device ata\t# Legacy ATA/SATA controllers\n" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32423 +msgid "" +"On FreeBSD versions prior to 10.x, this line is also needed in the kernel " +"configuration file if the burner is an <acronym>ATAPI</acronym> device:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:32427 +#, no-wrap +msgid "device atapicam" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32429 +msgid "" +"Alternately, this driver can be loaded at boot time by adding the following " +"line to <filename>/boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:32433 +#, no-wrap +msgid "atapicam_load=\"YES\"" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32435 +msgid "" +"This will require a reboot of the system as this driver can only be loaded " +"at boot time." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32439 +msgid "" +"To verify that FreeBSD recognizes the device, run <command>dmesg</command> " +"and look for an entry for the device. On systems prior to 10.x, the device " +"name in the first line of the output will be <filename>acd0</filename> " +"instead of <filename>cd0</filename>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32445 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>dmesg | grep cd</userinput>\n" +"cd0 at ahcich1 bus 0 scbus1 target 0 lun 0\n" +"cd0: <HL-DT-ST DVDRAM GU70N LT20> Removable CD-ROM SCSI-0 device\n" +"cd0: Serial Number M3OD3S34152\n" +"cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes)\n" +"cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:32454 +msgid "Burning a <acronym>CD</acronym>" +msgstr "燒錄 <acronym>CD</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:32456 +msgid "" +"In FreeBSD, <command>cdrecord</command> can be used to burn <acronym>CD</" +"acronym>s. This command is installed with the <package>sysutils/cdrtools</" +"package> package or port." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32460 +msgid "" +"While <command>cdrecord</command> has many options, basic usage is simple. " +"Specify the name of the <acronym>ISO</acronym> file to burn and, if the " +"system has multiple burner devices, specify the name of the device to use:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32466 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cdrecord <replaceable>dev=device</replaceable> <replaceable>imagefile.iso</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32468 +msgid "" +"To determine the device name of the burner, use <option>-scanbus</option> " +"which might produce results like this:" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:32472 +msgid "" +"<primary><acronym>CD-ROM</acronym>s</primary> <secondary>burning</secondary>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32476 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cdrecord -scanbus</userinput>\n" +"ProDVD-ProBD-Clone 3.00 (amd64-unknown-freebsd10.0) Copyright (C) 1995-2010 Jörg Schilling\n" +"Using libscg version 'schily-0.9'\n" +"scsibus0:\n" +" 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk\n" +" 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk\n" +" 0,2,0 2) *\n" +" 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk\n" +" 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM\n" +" 0,5,0 5) *\n" +" 0,6,0 6) *\n" +" 0,7,0 7) *\n" +"scsibus1:\n" +" 1,0,0 100) *\n" +" 1,1,0 101) *\n" +" 1,2,0 102) *\n" +" 1,3,0 103) *\n" +" 1,4,0 104) *\n" +" 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM\n" +" 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner\n" +" 1,7,0 107) *" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32498 +msgid "" +"Locate the entry for the <acronym>CD</acronym> burner and use the three " +"numbers separated by commas as the value for <option>dev</option>. In this " +"case, the Yamaha burner device is <literal>1,5,0</literal>, so the " +"appropriate input to specify that device is <option>dev=1,5,0</option>. " +"Refer to the manual page for <command>cdrecord</command> for other ways to " +"specify this value and for information on writing audio tracks and " +"controlling the write speed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32507 +msgid "" +"Alternately, run the following command to get the device address of the " +"burner:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32510 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>camcontrol devlist</userinput>\n" +"<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32513 +msgid "" +"Use the numeric values for <literal>scbus</literal>, <literal>target</" +"literal>, and <literal>lun</literal>. For this example, <literal>1,0,0</" +"literal> is the device name to use." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:32520 +msgid "Writing Data to an <acronym>ISO</acronym> File System" +msgstr "寫入資料到一個 <acronym>ISO</acronym> 檔案系統" + +#. (itstool) path: sect2/para +#: book.translate.xml:32523 +msgid "" +"In order to produce a data <acronym>CD</acronym>, the data files that are " +"going to make up the tracks on the <acronym>CD</acronym> must be prepared " +"before they can be burned to the <acronym>CD</acronym>. In FreeBSD, " +"<package>sysutils/cdrtools</package> installs <command>mkisofs</command>, " +"which can be used to produce an <acronym>ISO</acronym> 9660 file system that " +"is an image of a directory tree within a <trademark class=\"registered" +"\">UNIX</trademark> file system. The simplest usage is to specify the name " +"of the <acronym>ISO</acronym> file to create and the path to the files to " +"place into the <acronym>ISO</acronym> 9660 file system:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mkisofs -o <replaceable>imagefile.iso</replaceable> <replaceable>/path/to/tree</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32542 +msgid "" +"This command maps the file names in the specified path to names that fit the " +"limitations of the standard <acronym>ISO</acronym> 9660 file system, and " +"will exclude files that do not meet the standard for <acronym>ISO</acronym> " +"file systems." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:32548 +msgid "<primary>file systems</primary> <secondary>Joliet</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32553 +msgid "" +"A number of options are available to overcome the restrictions imposed by " +"the standard. In particular, <option>-R</option> enables the Rock Ridge " +"extensions common to <trademark class=\"registered\">UNIX</trademark> " +"systems and <option>-J</option> enables Joliet extensions used by <trademark " +"class=\"registered\">Microsoft</trademark> systems." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32559 +msgid "" +"For <acronym>CD</acronym>s that are going to be used only on FreeBSD " +"systems, <option>-U</option> can be used to disable all filename " +"restrictions. When used with <option>-R</option>, it produces a file system " +"image that is identical to the specified FreeBSD tree, even if it violates " +"the <acronym>ISO</acronym> 9660 standard." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:32566 +msgid "" +"<primary><acronym>CD-ROM</acronym>s</primary> <secondary>creating bootable</" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32571 +msgid "" +"The last option of general use is <option>-b</option>. This is used to " +"specify the location of a boot image for use in producing an <quote>El " +"Torito</quote> bootable <acronym>CD</acronym>. This option takes an argument " +"which is the path to a boot image from the top of the tree being written to " +"the <acronym>CD</acronym>. By default, <command>mkisofs</command> creates an " +"<acronym>ISO</acronym> image in <quote>floppy disk emulation</quote> mode, " +"and thus expects the boot image to be exactly 1200, 1440 or 2880 KB in size. " +"Some boot loaders, like the one used by the FreeBSD distribution media, do " +"not use emulation mode. In this case, <option>-no-emul-boot</option> should " +"be used. So, if <filename>/tmp/myboot</filename> holds a bootable FreeBSD " +"system with the boot image in <filename>/tmp/myboot/boot/cdboot</filename>, " +"this command would produce <filename>/tmp/bootable.iso</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32589 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32591 +msgid "" +"The resulting <acronym>ISO</acronym> image can be mounted as a memory disk " +"with:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32594 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mdconfig -a -t vnode -f /tmp/bootable.iso -u 0</userinput>\n" +"<prompt>#</prompt> <userinput>mount -t cd9660 /dev/md0 /mnt</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32597 +msgid "" +"One can then verify that <filename>/mnt</filename> and <filename>/tmp/" +"myboot</filename> are identical." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32600 +msgid "" +"There are many other options available for <command>mkisofs</command> to " +"fine-tune its behavior. Refer to <citerefentry vendor=\"ports" +"\"><refentrytitle>mkisofs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for details." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32605 +msgid "" +"It is possible to copy a data <acronym>CD</acronym> to an image file that is " +"functionally equivalent to the image file created with <command>mkisofs</" +"command>. To do so, use <filename>dd</filename> with the device name as the " +"input file and the name of the <acronym>ISO</acronym> to create as the " +"output file:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:32612 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dd if=/dev/<replaceable>cd0</replaceable> of=<replaceable>file.iso</replaceable> bs=2048</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32614 +msgid "" +"The resulting image file can be burned to <acronym>CD</acronym> as described " +"in <xref linkend=\"cdrecord\"/>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:32620 +msgid "Using Data <acronym>CD</acronym>s" +msgstr "使用資料 <acronym>CD</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:32622 +msgid "" +"Once an <acronym>ISO</acronym> has been burned to a <acronym>CD</acronym>, " +"it can be mounted by specifying the file system type, the name of the device " +"containing the <acronym>CD</acronym>, and an existing mount point:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32627 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount -t cd9660 <replaceable>/dev/cd0</replaceable> <replaceable>/mnt</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32629 +msgid "" +"Since <command>mount</command> assumes that a file system is of type " +"<literal>ufs</literal>, a <errorname>Incorrect super block</errorname> error " +"will occur if <literal>-t cd9660</literal> is not included when mounting a " +"data <acronym>CD</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32635 +msgid "" +"While any data <acronym>CD</acronym> can be mounted this way, disks with " +"certain <acronym>ISO</acronym> 9660 extensions might behave oddly. For " +"example, Joliet disks store all filenames in two-byte Unicode characters. If " +"some non-English characters show up as question marks, specify the local " +"charset with <option>-C</option>. For more information, refer to " +"<citerefentry><refentrytitle>mount_cd9660</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32644 +msgid "" +"In order to do this character conversion with the help of <option>-C</" +"option>, the kernel requires the <filename>cd9660_iconv.ko</filename> module " +"to be loaded. This can be done either by adding this line to " +"<filename>loader.conf</filename>:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:32650 +#, no-wrap +msgid "cd9660_iconv_load=\"YES\"" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32652 +msgid "" +"and then rebooting the machine, or by directly loading the module with " +"<command>kldload</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32656 +msgid "" +"Occasionally, <errorname>Device not configured</errorname> will be displayed " +"when trying to mount a data <acronym>CD</acronym>. This usually means that " +"the <acronym>CD</acronym> drive has not detected a disk in the tray, or that " +"the drive is not visible on the bus. It can take a couple of seconds for a " +"<acronym>CD</acronym> drive to detect media, so be patient." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32665 +msgid "" +"Sometimes, a <acronym>SCSI</acronym> <acronym>CD</acronym> drive may be " +"missed because it did not have enough time to answer the bus reset. To " +"resolve this, a custom kernel can be created which increases the default " +"<acronym>SCSI</acronym> delay. Add the following option to the custom kernel " +"configuration file and rebuild the kernel using the instructions in <xref " +"linkend=\"kernelconfig-building\"/>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:32673 +#, no-wrap +msgid "options SCSI_DELAY=15000" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32675 +msgid "" +"This tells the <acronym>SCSI</acronym> bus to pause 15 seconds during boot, " +"to give the <acronym>CD</acronym> drive every possible chance to answer the " +"bus reset." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32680 +msgid "" +"It is possible to burn a file directly to <acronym>CD</acronym>, without " +"creating an <acronym>ISO</acronym> 9660 file system. This is known as " +"burning a raw data <acronym>CD</acronym> and some people do this for backup " +"purposes." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32686 +msgid "" +"This type of disk can not be mounted as a normal data <acronym>CD</acronym>. " +"In order to retrieve the data burned to such a <acronym>CD</acronym>, the " +"data must be read from the raw device node. For example, this command will " +"extract a compressed tar file located on the second <acronym>CD</acronym> " +"device into the current working directory:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:32694 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>tar xzvf /dev/<replaceable>cd1</replaceable></userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32696 +msgid "" +"In order to mount a data <acronym>CD</acronym>, the data must be written " +"using <command>mkisofs</command>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:32703 +msgid "Duplicating Audio <acronym>CD</acronym>s" +msgstr "複製音樂 <acronym>CD</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:32705 +msgid "" +"To duplicate an audio <acronym>CD</acronym>, extract the audio data from the " +"<acronym>CD</acronym> to a series of files, then write these files to a " +"blank <acronym>CD</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32710 +msgid "" +"<xref linkend=\"using-cdrecord\"/> describes how to duplicate and burn an " +"audio <acronym>CD</acronym>. If the FreeBSD version is less than 10.0 and " +"the device is <acronym>ATAPI</acronym>, the <option>atapicam</option> module " +"must be first loaded using the instructions in <xref linkend=\"atapicam\"/>." +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:32717 +msgid "Duplicating an Audio <acronym>CD</acronym>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:32720 +msgid "" +"The <package>sysutils/cdrtools</package> package or port installs " +"<command>cdda2wav</command>. This command can be used to extract all of the " +"audio tracks, with each track written to a separate <acronym>WAV</acronym> " +"file in the current working directory:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:32726 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>cdda2wav -vall -B -Owav</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:32728 +msgid "" +"A device name does not need to be specified if there is only one " +"<acronym>CD</acronym> device on the system. Refer to the <command>cdda2wav</" +"command> manual page for instructions on how to specify a device and to " +"learn more about the other options available for this command." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:32736 +msgid "" +"Use <command>cdrecord</command> to write the <filename>.wav</filename> files:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:32739 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>cdrecord -v dev=<replaceable>2,0</replaceable> -dao -useinfo *.wav</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:32741 +msgid "" +"Make sure that <replaceable>2,0</replaceable> is set appropriately, as " +"described in <xref linkend=\"cdrecord\"/>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:32750 +msgid "Creating and Using <acronym>DVD</acronym> Media" +msgstr "建立與使用 <acronym>DVD</acronym> 媒體" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:32762 +msgid "" +"<personname> <firstname>Andy</firstname> <surname>Polyakov</surname> </" +"personname> <contrib>With inputs from </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:32772 +msgid "" +"<primary><acronym>DVD</acronym></primary> <secondary>burning</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32777 +msgid "" +"Compared to the <acronym>CD</acronym>, the <acronym>DVD</acronym> is the " +"next generation of optical media storage technology. The <acronym>DVD</" +"acronym> can hold more data than any <acronym>CD</acronym> and is the " +"standard for video publishing." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32783 +msgid "" +"Five physical recordable formats can be defined for a recordable " +"<acronym>DVD</acronym>:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:32788 +msgid "" +"DVD-R: This was the first <acronym>DVD</acronym> recordable format " +"available. The DVD-R standard is defined by the <link xlink:href=\"http://" +"www.dvdforum.com/forum.shtml\"><acronym>DVD</acronym> Forum</link>. This " +"format is write once." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:32795 +msgid "" +"<acronym>DVD-RW</acronym>: This is the rewritable version of the DVD-R " +"standard. A <acronym>DVD-RW</acronym> can be rewritten about 1000 times." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:32802 +msgid "" +"<acronym>DVD-RAM</acronym>: This is a rewritable format which can be seen as " +"a removable hard drive. However, this media is not compatible with most " +"<acronym>DVD-ROM</acronym> drives and DVD-Video players as only a few " +"<acronym>DVD</acronym> writers support the <acronym>DVD-RAM</acronym> " +"format. Refer to <xref linkend=\"creating-dvd-ram\"/> for more information " +"on <acronym>DVD-RAM</acronym> use." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:32812 +msgid "" +"<acronym>DVD+RW</acronym>: This is a rewritable format defined by the <link " +"xlink:href=\"http://www.dvdrw.com/\"><acronym>DVD+RW</acronym> Alliance</" +"link>. A <acronym>DVD+RW</acronym> can be rewritten about 1000 times." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:32819 +msgid "" +"DVD+R: This format is the write once variation of the <acronym>DVD+RW</" +"acronym> format." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:32824 +msgid "" +"A single layer recordable <acronym>DVD</acronym> can hold up to " +"4,700,000,000 bytes which is actually 4.38 GB or 4485 MB as 1 kilobyte is " +"1024 bytes." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32829 +msgid "" +"A distinction must be made between the physical media and the application. " +"For example, a DVD-Video is a specific file layout that can be written on " +"any recordable <acronym>DVD</acronym> physical media such as DVD-R, DVD+R, " +"or <acronym>DVD-RW</acronym>. Before choosing the type of media, ensure that " +"both the burner and the DVD-Video player are compatible with the media under " +"consideration." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:32839 book.translate.xml:57047 +msgid "Configuration" +msgstr "設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:32841 +msgid "" +"To perform <acronym>DVD</acronym> recording, use <citerefentry vendor=\"ports" +"\"><refentrytitle>growisofs</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. This command is part of the <package>sysutils/dvd+rw-tools</" +"package> utilities which support all <acronym>DVD</acronym> media types." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32846 +msgid "" +"These tools use the <acronym>SCSI</acronym> subsystem to access the devices, " +"therefore <link linkend=\"atapicam\">ATAPI/CAM support</link> must be loaded " +"or statically compiled into the kernel. This support is not needed if the " +"burner uses the <acronym>USB</acronym> interface. Refer to <xref linkend=" +"\"usb-disks\"/> for more details on <acronym>USB</acronym> device " +"configuration." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32853 +msgid "" +"DMA access must also be enabled for <acronym>ATAPI</acronym> devices, by " +"adding the following line to <filename>/boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:32857 book.translate.xml:33169 +#, no-wrap +msgid "hw.ata.atapi_dma=\"1\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32859 +msgid "" +"Before attempting to use <application>dvd+rw-tools</application>, consult " +"the <link xlink:href=\"http://fy.chalmers.se/~appro/linux/DVD+RW/hcn.html" +"\">Hardware Compatibility Notes</link>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32864 +msgid "" +"For a graphical user interface, consider using <package>sysutils/k3b</" +"package> which provides a user friendly interface to <citerefentry vendor=" +"\"ports\"><refentrytitle>growisofs</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> and many other burning tools." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:32872 +msgid "Burning Data <acronym>DVD</acronym>s" +msgstr "燒錄資料 <acronym>DVD</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:32874 +msgid "" +"Since <citerefentry vendor=\"ports\"><refentrytitle>growisofs</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> is a front-end to " +"<link linkend=\"mkisofs\">mkisofs</link>, it will invoke <citerefentry " +"vendor=\"ports\"><refentrytitle>mkisofs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> to create the file system layout and perform the " +"write on the <acronym>DVD</acronym>. This means that an image of the data " +"does not need to be created before the burning process." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32880 +msgid "" +"To burn to a DVD+R or a DVD-R the data in <filename>/path/to/data</" +"filename>, use the following command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32884 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>growisofs -dvd-compat -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32886 +msgid "" +"In this example, <option>-J -R</option> is passed to <citerefentry vendor=" +"\"ports\"><refentrytitle>mkisofs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to create an ISO 9660 file system with Joliet and Rock Ridge " +"extensions. Refer to <citerefentry vendor=\"ports\"><refentrytitle>mkisofs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more details." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32891 +msgid "" +"For the initial session recording, <option>-Z</option> is used for both " +"single and multiple sessions. Replace <replaceable>/dev/cd0</replaceable>, " +"with the name of the <acronym>DVD</acronym> device. Using <option>-dvd-" +"compat</option> indicates that the disk will be closed and that the " +"recording will be unappendable. This should also provide better media " +"compatibility with <acronym>DVD-ROM</acronym> drives." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32900 +msgid "" +"To burn a pre-mastered image, such as <replaceable>imagefile.iso</" +"replaceable>, use:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32903 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>growisofs -dvd-compat -Z <replaceable>/dev/cd0</replaceable>=<replaceable>imagefile.iso</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32905 +msgid "" +"The write speed should be detected and automatically set according to the " +"media and the drive being used. To force the write speed, use <option>-" +"speed=</option>. Refer to <citerefentry vendor=\"ports" +"\"><refentrytitle>growisofs</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> for example usage." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32911 +msgid "" +"In order to support working files larger than 4.38GB, an UDF/ISO-9660 hybrid " +"file system must be created by passing <option>-udf -iso-level 3</option> to " +"<citerefentry vendor=\"ports\"><refentrytitle>mkisofs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> and all related " +"programs, such as <citerefentry vendor=\"ports\"><refentrytitle>growisofs</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. This is required only " +"when creating an ISO image file or when writing files directly to a disk. " +"Since a disk created this way must be mounted as an UDF file system with " +"<citerefentry><refentrytitle>mount_udf</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, it will be usable only on an UDF aware operating " +"system. Otherwise it will look as if it contains corrupted files." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32922 +msgid "To create this type of ISO file:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:32924 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>mkisofs -R -J -udf -iso-level 3 -o <replaceable>imagefile.iso</replaceable> <replaceable>/path/to/data</replaceable></userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32926 +msgid "To burn files directly to a disk:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:32928 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>growisofs -dvd-compat -udf -iso-level 3 -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32930 +msgid "" +"When an ISO image already contains large files, no additional options are " +"required for <citerefentry vendor=\"ports\"><refentrytitle>growisofs</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> to burn that image on " +"a disk." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:32934 +msgid "" +"Be sure to use an up-to-date version of <package>sysutils/cdrtools</" +"package>, which contains <citerefentry vendor=\"ports" +"\"><refentrytitle>mkisofs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, as an older version may not contain large files support. If " +"the latest version does not work, install <package>sysutils/cdrtools-devel</" +"package> and read its <citerefentry vendor=\"ports\"><refentrytitle>mkisofs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:32944 +msgid "Burning a <acronym>DVD</acronym>-Video" +msgstr "燒錄 <acronym>DVD</acronym>-Video" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:32946 +msgid "" +"<primary><acronym>DVD</acronym></primary> <secondary>DVD-Video</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32951 +msgid "" +"A DVD-Video is a specific file layout based on the ISO 9660 and micro-UDF (M-" +"UDF) specifications. Since DVD-Video presents a specific data structure " +"hierarchy, a particular program such as <package>multimedia/dvdauthor</" +"package> is needed to author the <acronym>DVD</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32957 +msgid "" +"If an image of the DVD-Video file system already exists, it can be burned in " +"the same way as any other image. If <command>dvdauthor</command> was used to " +"make the <acronym>DVD</acronym> and the result is in <filename>/path/to/" +"video</filename>, the following command should be used to burn the DVD-Video:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32964 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>growisofs -Z <replaceable>/dev/cd0</replaceable> -dvd-video <replaceable>/path/to/video</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32966 +msgid "" +"<option>-dvd-video</option> is passed to <citerefentry vendor=\"ports" +"\"><refentrytitle>mkisofs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to instruct it to create a DVD-Video file system layout. This " +"option implies the <option>-dvd-compat</option> <citerefentry vendor=\"ports" +"\"><refentrytitle>growisofs</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> option." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:32973 +msgid "Using a <acronym>DVD+RW</acronym>" +msgstr "使用 <acronym>DVD+RW</acronym>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:32975 +msgid "" +"<primary><acronym>DVD</acronym></primary> <secondary><acronym>DVD+RW</" +"acronym></secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32980 +msgid "" +"Unlike CD-RW, a virgin <acronym>DVD+RW</acronym> needs to be formatted " +"before first use. It is <emphasis>recommended</emphasis> to let " +"<citerefentry vendor=\"ports\"><refentrytitle>growisofs</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> take care of this " +"automatically whenever appropriate. However, it is possible to use " +"<command>dvd+rw-format</command> to format the <acronym>DVD+RW</acronym>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32987 book.translate.xml:33093 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dvd+rw-format <replaceable>/dev/cd0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32989 +msgid "" +"Only perform this operation once and keep in mind that only virgin " +"<acronym>DVD+RW</acronym> medias need to be formatted. Once formatted, the " +"<acronym>DVD+RW</acronym> can be burned as usual." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:32994 +msgid "" +"To burn a totally new file system and not just append some data onto a " +"<acronym>DVD+RW</acronym>, the media does not need to be blanked first. " +"Instead, write over the previous recording like this:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:32999 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>growisofs -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/newdata</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33001 +msgid "" +"The <acronym>DVD+RW</acronym> format supports appending data to a previous " +"recording. This operation consists of merging a new session to the existing " +"one as it is not considered to be multi-session writing. <citerefentry " +"vendor=\"ports\"><refentrytitle>growisofs</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> will <emphasis>grow</emphasis> the ISO 9660 file " +"system present on the media." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33008 +msgid "" +"For example, to append data to a <acronym>DVD+RW</acronym>, use the " +"following:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33011 book.translate.xml:33115 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>growisofs -M <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/nextdata</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33013 +msgid "" +"The same <citerefentry vendor=\"ports\"><refentrytitle>mkisofs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> options used to burn " +"the initial session should be used during next writes." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:33017 +msgid "" +"Use <option>-dvd-compat</option> for better media compatibility with " +"<acronym>DVD-ROM</acronym> drives. When using <acronym>DVD+RW</acronym>, " +"this option will not prevent the addition of data." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33023 +msgid "To blank the media, use:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33025 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>growisofs -Z <replaceable>/dev/cd0</replaceable>=<replaceable>/dev/zero</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33029 +msgid "Using a <acronym>DVD-RW</acronym>" +msgstr "使用 <acronym>DVD-RW</acronym>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33031 +msgid "" +"<primary><acronym>DVD</acronym></primary> <secondary><acronym>DVD-RW</" +"acronym></secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33036 +msgid "" +"A <acronym>DVD-RW</acronym> accepts two disc formats: incremental sequential " +"and restricted overwrite. By default, <acronym>DVD-RW</acronym> discs are in " +"sequential format." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33041 +msgid "" +"A virgin <acronym>DVD-RW</acronym> can be directly written without being " +"formatted. However, a non-virgin <acronym>DVD-RW</acronym> in sequential " +"format needs to be blanked before writing a new initial session." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33046 +msgid "To blank a <acronym>DVD-RW</acronym> in sequential mode:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33049 book.translate.xml:33097 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dvd+rw-format -blank=full <replaceable>/dev/cd0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:33052 +msgid "" +"A full blanking using <option>-blank=full</option> will take about one hour " +"on a 1x media. A fast blanking can be performed using <option>-blank</" +"option>, if the <acronym>DVD-RW</acronym> will be recorded in Disk-At-Once " +"(DAO) mode. To burn the <acronym>DVD-RW</acronym> in DAO mode, use the " +"command:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:33059 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>growisofs -use-the-force-luke=dao -Z <replaceable>/dev/cd0</replaceable>=<replaceable>imagefile.iso</replaceable></userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:33061 +msgid "" +"Since <citerefentry vendor=\"ports\"><refentrytitle>growisofs</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> automatically attempts " +"to detect fast blanked media and engage DAO write, <option>-use-the-force-" +"luke=dao</option> should not be required." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:33066 +msgid "" +"One should instead use restricted overwrite mode with any <acronym>DVD-RW</" +"acronym> as this format is more flexible than the default of incremental " +"sequential." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33071 +msgid "" +"To write data on a sequential <acronym>DVD-RW</acronym>, use the same " +"instructions as for the other <acronym>DVD</acronym> formats:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33075 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>growisofs -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33077 +msgid "" +"To append some data to a previous recording, use <option>-M</option> with " +"<citerefentry vendor=\"ports\"><refentrytitle>growisofs</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. However, if data is " +"appended on a <acronym>DVD-RW</acronym> in incremental sequential mode, a " +"new session will be created on the disc and the result will be a multi-" +"session disc." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33083 +msgid "" +"A <acronym>DVD-RW</acronym> in restricted overwrite format does not need to " +"be blanked before a new initial session. Instead, overwrite the disc with " +"<option>-Z</option>. It is also possible to grow an existing ISO 9660 file " +"system written on the disc with <option>-M</option>. The result will be a " +"one-session <acronym>DVD</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33090 +msgid "" +"To put a <acronym>DVD-RW</acronym> in restricted overwrite format, the " +"following command must be used:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33095 +msgid "To change back to sequential format, use:" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33101 +msgid "Multi-Session" +msgstr "多階段燒錄 (Multi-Session)" + +#. (itstool) path: sect2/para +#: book.translate.xml:33103 +msgid "" +"Few <acronym>DVD-ROM</acronym> drives support multi-session DVDs and most of " +"the time only read the first session. DVD+R, DVD-R and <acronym>DVD-RW</" +"acronym> in sequential format can accept multiple sessions. The notion of " +"multiple sessions does not exist for the <acronym>DVD+RW</acronym> and the " +"<acronym>DVD-RW</acronym> restricted overwrite formats." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33111 +msgid "" +"Using the following command after an initial non-closed session on a DVD+R, " +"DVD-R, or <acronym>DVD-RW</acronym> in sequential format, will add a new " +"session to the disc:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33117 +msgid "" +"Using this command with a <acronym>DVD+RW</acronym> or a <acronym>DVD-RW</" +"acronym> in restricted overwrite mode will append data while merging the new " +"session to the existing one. The result will be a single-session disc. Use " +"this method to add data after an initial write on these types of media." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:33125 +msgid "" +"Since some space on the media is used between each session to mark the end " +"and start of sessions, one should add sessions with a large amount of data " +"to optimize media space. The number of sessions is limited to 154 for a DVD" +"+R, about 2000 for a DVD-R, and 127 for a DVD+R Double Layer." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33135 book.translate.xml:65535 +msgid "For More Information" +msgstr "取得更多資訊" + +#. (itstool) path: sect2/para +#: book.translate.xml:33137 +msgid "" +"To obtain more information about a <acronym>DVD</acronym>, use <command>dvd" +"+rw-mediainfo <replaceable>/dev/cd0</replaceable></command> while the disc " +"in the specified drive." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33142 +msgid "" +"More information about <application>dvd+rw-tools</application> can be found " +"in <citerefentry vendor=\"ports\"><refentrytitle>growisofs</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, on the <link xlink:" +"href=\"http://fy.chalmers.se/~appro/linux/DVD+RW/\">dvd+rw-tools web site</" +"link>, and in the <link xlink:href=\"http://lists.debian.org/cdwrite/" +"\">cdwrite mailing list</link> archives." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:33149 +msgid "" +"When creating a problem report related to the use of <application>dvd+rw-" +"tools</application>, always include the output of <command>dvd+rw-mediainfo</" +"command>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33156 +msgid "Using a <acronym>DVD-RAM</acronym>" +msgstr "使用 <acronym>DVD-RAM</acronym>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33158 +msgid "" +"<primary><acronym>DVD</acronym></primary> <secondary><acronym>DVD-RAM</" +"acronym></secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33163 +msgid "" +"<acronym>DVD-RAM</acronym> writers can use either a <acronym>SCSI</acronym> " +"or <acronym>ATAPI</acronym> interface. For <acronym>ATAPI</acronym> devices, " +"DMA access has to be enabled by adding the following line to <filename>/boot/" +"loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33171 +msgid "" +"A <acronym>DVD-RAM</acronym> can be seen as a removable hard drive. Like any " +"other hard drive, the <acronym>DVD-RAM</acronym> must be formatted before it " +"can be used. In this example, the whole disk space will be formatted with a " +"standard UFS2 file system:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33177 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>dd if=/dev/zero of=<replaceable>/dev/acd0</replaceable> bs=2k count=1</userinput>\n" +"<prompt>#</prompt> <userinput>bsdlabel -Bw <replaceable>acd0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>newfs <replaceable>/dev/acd0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33181 +msgid "" +"The <acronym>DVD</acronym> device, <filename>acd0</filename>, must be " +"changed according to the configuration." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33185 +msgid "" +"Once the <acronym>DVD-RAM</acronym> has been formatted, it can be mounted as " +"a normal hard drive:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33188 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount <replaceable>/dev/acd0</replaceable> <replaceable>/mnt</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33190 +msgid "" +"Once mounted, the <acronym>DVD-RAM</acronym> will be both readable and " +"writeable." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:33196 +msgid "Creating and Using Floppy Disks" +msgstr "建立與使用軟碟" + +#. (itstool) path: sect1/para +#: book.translate.xml:33220 +msgid "This section explains how to format a 3.5 inch floppy disk in FreeBSD." +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:33224 +msgid "Steps to Format a Floppy" +msgstr "" + +#. (itstool) path: procedure/para +#: book.translate.xml:33226 +msgid "" +"A floppy disk needs to be low-level formatted before it can be used. This is " +"usually done by the vendor, but formatting is a good way to check media " +"integrity. To low-level format the floppy disk on FreeBSD, use " +"<citerefentry><refentrytitle>fdformat</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>. When using this utility, make note of any error " +"messages, as these can help determine if the disk is good or bad." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:33235 +msgid "" +"To format the floppy, insert a new 3.5 inch floppy disk into the first " +"floppy drive and issue:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:33238 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>/usr/sbin/fdformat -f 1440 /dev/fd0</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:33242 +msgid "" +"After low-level formatting the disk, create a disk label as it is needed by " +"the system to determine the size of the disk and its geometry. The supported " +"geometry values are listed in <filename>/etc/disktab</filename>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:33247 +msgid "" +"To write the disk label, use <citerefentry><refentrytitle>bsdlabel</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:33249 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>/sbin/bsdlabel -B -w /dev/fd0 fd1440</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:33253 +msgid "" +"The floppy is now ready to be high-level formatted with a file system. The " +"floppy's file system can be either UFS or FAT, where FAT is generally a " +"better choice for floppies." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:33258 +msgid "To format the floppy with FAT, issue:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:33260 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>/sbin/newfs_msdos /dev/fd0</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33264 +msgid "" +"The disk is now ready for use. To use the floppy, mount it with " +"<citerefentry><refentrytitle>mount_msdosfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. One can also install and use <package>emulators/" +"mtools</package> from the Ports Collection." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:33271 +msgid "Backup Basics" +msgstr "備份基礎概念" + +#. (itstool) path: sect1/para +#: book.translate.xml:33285 +msgid "" +"Implementing a backup plan is essential in order to have the ability to " +"recover from disk failure, accidental file deletion, random file corruption, " +"or complete machine destruction, including destruction of on-site backups." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33290 +msgid "" +"The backup type and schedule will vary, depending upon the importance of the " +"data, the granularity needed for file restores, and the amount of acceptable " +"downtime. Some possible backup techniques include:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33297 +msgid "" +"Archives of the whole system, backed up onto permanent, off-site media. This " +"provides protection against all of the problems listed above, but is slow " +"and inconvenient to restore from, especially for non-privileged users." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33304 +msgid "" +"File system snapshots, which are useful for restoring deleted files or " +"previous versions of files." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33309 +msgid "" +"Copies of whole file systems or disks which are sychronized with another " +"system on the network using a scheduled <package>net/rsync</package>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33315 +msgid "" +"Hardware or software <acronym>RAID</acronym>, which minimizes or avoids " +"downtime when a disk fails." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33320 +msgid "" +"Typically, a mix of backup techniques is used. For example, one could create " +"a schedule to automate a weekly, full system backup that is stored off-site " +"and to supplement this backup with hourly ZFS snapshots. In addition, one " +"could make a manual backup of individual directories or files before making " +"file edits or deletions." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33327 +msgid "" +"This section describes some of the utilities which can be used to create and " +"manage backups on a FreeBSD system." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33331 +msgid "File System Backups" +msgstr "檔案系統備份" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33333 +msgid "" +"<primary>backup software</primary> <secondary>dump / restore</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33337 +msgid "<primary><command>dump</command></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33340 +msgid "<primary><command>restore</command></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33344 +msgid "" +"The traditional <trademark class=\"registered\">UNIX</trademark> programs " +"for backing up a file system are <citerefentry><refentrytitle>dump</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, which creates the " +"backup, and <citerefentry><refentrytitle>restore</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, which restores the " +"backup. These utilities work at the disk block level, below the abstractions " +"of the files, links, and directories that are created by file systems. " +"Unlike other backup software, <command>dump</command> backs up an entire " +"file system and is unable to backup only part of a file system or a " +"directory tree that spans multiple file systems. Instead of writing files " +"and directories, <command>dump</command> writes the raw data blocks that " +"comprise files and directories." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:33357 +msgid "" +"If <command>dump</command> is used on the root directory, it will not back " +"up <filename>/home</filename>, <filename>/usr</filename> or many other " +"directories since these are typically mount points for other file systems or " +"symbolic links into those file systems." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33364 +msgid "" +"When used to restore data, <command>restore</command> stores temporary files " +"in <filename>/tmp/</filename> by default. When using a recovery disk with a " +"small <filename>/tmp</filename>, set <envar>TMPDIR</envar> to a directory " +"with more free space in order for the restore to succeed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33371 +msgid "" +"When using <command>dump</command>, be aware that some quirks remain from " +"its early days in Version 6 of AT&T <trademark class=\"registered" +"\">UNIX</trademark>,circa 1975. The default parameters assume a backup to a " +"9-track tape, rather than to another type of media or to the high-density " +"tapes available today. These defaults must be overridden on the command line." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33378 +msgid "<primary><filename>.rhosts</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33381 +msgid "" +"It is possible to backup a file system across the network to a another " +"system or to a tape drive attached to another computer. While the " +"<citerefentry><refentrytitle>rdump</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>rrestore</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> utilities can be used " +"for this purpose, they are not considered to be secure." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33387 +msgid "" +"Instead, one can use <command>dump</command> and <command>restore</command> " +"in a more secure fashion over an <acronym>SSH</acronym> connection. This " +"example creates a full, compressed backup of <filename>/usr</filename> and " +"sends the backup file to the specified host over a <acronym>SSH</acronym> " +"connection." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:33395 +msgid "Using <command>dump</command> over <application>ssh</application>" +msgstr "在 <application>ssh</application> 使用 <command>dump</command>" + +#. (itstool) path: example/screen +#: book.translate.xml:33398 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>/sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \\\n" +" targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33402 +msgid "" +"This example sets <envar>RSH</envar> in order to write the backup to a tape " +"drive on a remote system over a <acronym>SSH</acronym> connection:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:33407 +msgid "" +"Using <command>dump</command> over <application>ssh</application> with " +"<envar>RSH</envar> Set" +msgstr "" +"在 <application>ssh</application> 使用 <command>dump</command> 透過 " +"<envar>RSH</envar> 設定" + +#. (itstool) path: example/screen +#: book.translate.xml:33411 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33416 +msgid "Directory Backups" +msgstr "目錄備份" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33418 +msgid "" +"<primary>backup software</primary> <secondary><command>tar</command></" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33423 +msgid "" +"Several built-in utilities are available for backing up and restoring " +"specified files and directories as needed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33427 +msgid "" +"A good choice for making a backup of all of the files in a directory is " +"<citerefentry><refentrytitle>tar</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. This utility dates back to Version 6 of AT&T <trademark " +"class=\"registered\">UNIX</trademark> and by default assumes a recursive " +"backup to a local tape device. Switches can be used to instead specify the " +"name of a backup file." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33433 +msgid "<primary><command>tar</command></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33435 +msgid "" +"This example creates a compressed backup of the current directory and saves " +"it to <filename>/tmp/mybackup.tgz</filename>. When creating a backup file, " +"make sure that the backup is not saved to the same directory that is being " +"backed up." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:33442 +msgid "Backing Up the Current Directory with <command>tar</command>" +msgstr "使用 <command>tar</command> 備份目前目錄" + +#. (itstool) path: example/screen +#: book.translate.xml:33445 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>tar czvf <replaceable>/tmp/mybackup.tgz</replaceable> . </userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33448 +msgid "" +"To restore the entire backup, <command>cd</command> into the directory to " +"restore into and specify the name of the backup. Note that this will " +"overwrite any newer versions of files in the restore directory. When in " +"doubt, restore to a temporary directory or specify the name of the file " +"within the backup to restore." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:33456 +msgid "Restoring Up the Current Directory with <command>tar</command>" +msgstr "使用 <command>tar</command> 還原目前目錄" + +#. (itstool) path: example/screen +#: book.translate.xml:33459 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>tar xzvf <replaceable>/tmp/mybackup.tgz</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33462 +msgid "" +"There are dozens of available switches which are described in " +"<citerefentry><refentrytitle>tar</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. This utility also supports the use of exclude patterns to " +"specify which files should not be included when backing up the specified " +"directory or restoring files from a backup." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33468 +msgid "" +"<primary>backup software</primary> <secondary><command>cpio</command></" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33473 +msgid "" +"To create a backup using a specified list of files and directories, " +"<citerefentry><refentrytitle>cpio</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> is a good choice. Unlike <command>tar</command>, " +"<command>cpio</command> does not know how to walk the directory tree and it " +"must be provided the list of files to backup." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33479 +msgid "" +"For example, a list of files can be created using <command>ls</command> or " +"<command>find</command>. This example creates a recursive listing of the " +"current directory which is then piped to <command>cpio</command> in order to " +"create an output backup file named <filename>/tmp/mybackup.cpio</filename>." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:33487 +msgid "" +"Using <command>ls</command> and <command>cpio</command> to Make a Recursive " +"Backup of the Current Directory" +msgstr "" +"使用 <command>ls</command> 與 <command>cpio</command> 來製作目前目錄的遞迴備" +"份" + +#. (itstool) path: example/screen +#: book.translate.xml:33490 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ls -R | cpio -ovF <replaceable>/tmp/mybackup.cpio</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33493 +msgid "" +"<primary>backup software</primary> <secondary><command>pax</command></" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33497 +msgid "<primary><command>pax</command></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#. (itstool) path: para/indexterm +#: book.translate.xml:33498 book.translate.xml:43017 +msgid "<primary>POSIX</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33499 +msgid "<primary>IEEE</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33501 +msgid "" +"A backup utility which tries to bridge the features provided by " +"<command>tar</command> and <command>cpio</command> is " +"<citerefentry><refentrytitle>pax</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. Over the years, the various versions of <command>tar</" +"command> and <command>cpio</command> became slightly incompatible. " +"<trademark class=\"registered\">POSIX</trademark> created <command>pax</" +"command> which attempts to read and write many of the various <command>cpio</" +"command> and <command>tar</command> formats, plus new formats of its own." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33510 +msgid "" +"The <command>pax</command> equivalent to the previous examples would be:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:33514 +msgid "Backing Up the Current Directory with <command>pax</command>" +msgstr "使用 <command>pax</command> 備份目前目錄" + +#. (itstool) path: example/screen +#: book.translate.xml:33517 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pax -wf <replaceable>/tmp/mybackup.pax</replaceable> .</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33522 +msgid "Using Data Tapes for Backups" +msgstr "使用資料磁帶備份" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33524 +msgid "<primary>tape media</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33526 +msgid "" +"While tape technology has continued to evolve, modern backup systems tend to " +"combine off-site backups with local removable media. FreeBSD supports any " +"tape drive that uses <acronym>SCSI</acronym>, such as <acronym>LTO</acronym> " +"or <acronym>DAT</acronym>. There is limited support for <acronym>SATA</" +"acronym> and <acronym>USB</acronym> tape drives." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33534 +msgid "" +"For <acronym>SCSI</acronym> tape devices, FreeBSD uses the " +"<citerefentry><refentrytitle>sa</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> driver and the <filename>/dev/sa0</filename>, <filename>/dev/" +"nsa0</filename>, and <filename>/dev/esa0</filename> devices. The physical " +"device name is <filename>/dev/sa0</filename>. When <filename>/dev/nsa0</" +"filename> is used, the backup application will not rewind the tape after " +"writing a file, which allows writing more than one file to a tape. Using " +"<filename>/dev/esa0</filename> ejects the tape after the device is closed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33545 +msgid "" +"In FreeBSD, <command>mt</command> is used to control operations of the tape " +"drive, such as seeking through files on a tape or writing tape control marks " +"to the tape. For example, the first three files on a tape can be preserved " +"by skipping past them before writing a new file:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33551 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mt -f /dev/nsa0 fsf 3</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33553 +msgid "" +"This utility supports many operations. Refer to " +"<citerefentry><refentrytitle>mt</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> for details." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33556 +msgid "" +"To write a single file to tape using <command>tar</command>, specify the " +"name of the tape device and the file to backup:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33560 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>tar cvf /dev/sa0 <replaceable>file</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33562 +msgid "" +"To recover files from a <command>tar</command> archive on tape into the " +"current directory:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33565 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>tar xvf /dev/sa0</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33567 +msgid "" +"To backup a <acronym>UFS</acronym> file system, use <command>dump</command>. " +"This examples backs up <filename>/usr</filename> without rewinding the tape " +"when finished:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33572 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dump -0aL -b64 -f /dev/nsa0 /usr</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33574 +msgid "" +"To interactively restore files from a <command>dump</command> file on tape " +"into the current directory:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33578 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>restore -i -f /dev/nsa0</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33582 +msgid "Third-Party Backup Utilities" +msgstr "第三方備份工具" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33584 +msgid "<primary>backup software</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33588 +msgid "" +"The FreeBSD Ports Collection provides many third-party utilities which can " +"be used to schedule the creation of backups, simplify tape backup, and make " +"backups easier and more convenient. Many of these applications are client/" +"server based and can be used to automate the backups of a single system or " +"all of the computers in a network." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33595 +msgid "" +"Popular utilities include <application>Amanda</application>, " +"<application>Bacula</application>, <application>rsync</application>, and " +"<application>duplicity</application>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33603 +msgid "Emergency Recovery" +msgstr "緊急還原" + +#. (itstool) path: sect2/para +#: book.translate.xml:33605 +msgid "" +"In addition to regular backups, it is recommended to perform the following " +"steps as part of an emergency preparedness plan." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33609 +msgid "<primary><command>bsdlabel</command></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33612 +msgid "Create a print copy of the output of the following commands:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33617 +msgid "<command>gpart show</command>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33621 +msgid "<command>more /etc/fstab</command>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33625 +msgid "<command>dmesg</command>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33629 +msgid "<primary>livefs <acronym>CD</acronym></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33632 +msgid "" +"Store this printout and a copy of the installation media in a secure " +"location. Should an emergency restore be needed, boot into the installation " +"media and select <literal>Live CD</literal> to access a rescue shell. This " +"rescue mode can be used to view the current state of the system, and if " +"needed, to reformat disks and restore data from backups." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:33641 +msgid "" +"The installation media for FreeBSD/i386 9.3-RELEASE does not include a " +"rescue shell. For this version, instead download and burn a Livefs " +"<acronym>CD</acronym> image from <uri xlink:href=\"ftp://ftp.FreeBSD.org/pub/" +"FreeBSD/releases/i386/ISO-IMAGES/9.3/FreeBSD-9.3-RELEASE-i386-livefs.iso" +"\">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/9.3/" +"FreeBSD-9.3-RELEASE-i386-livefs.iso</uri>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33648 +msgid "" +"Next, test the rescue shell and the backups. Make notes of the procedure. " +"Store these notes with the media, the printouts, and the backups. These " +"notes may prevent the inadvertent destruction of the backups while under the " +"stress of performing an emergency recovery." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33654 +msgid "" +"For an added measure of security, store the latest backup at a remote " +"location which is physically separated from the computers and disk drives by " +"a significant distance." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:33662 +msgid "Memory Disks" +msgstr "記憶體磁碟" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:33665 +msgid "" +"<personname> <firstname>Marc</firstname> <surname>Fonvieille</surname> </" +"personname> <contrib>Reorganized and enhanced by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33675 +msgid "" +"In addition to physical disks, FreeBSD also supports the creation and use of " +"memory disks. One possible use for a memory disk is to access the contents " +"of an <acronym>ISO</acronym> file system without the overhead of first " +"burning it to a <acronym>CD</acronym> or <acronym>DVD</acronym>, then " +"mounting the <acronym>CD/DVD</acronym> media." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33682 +msgid "" +"In FreeBSD, the <citerefentry><refentrytitle>md</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> driver is used to provide support for memory " +"disks. The <filename>GENERIC</filename> kernel includes this driver. When " +"using a custom kernel configuration file, ensure it includes this line:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:33687 +#, no-wrap +msgid "device md" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33690 +msgid "Attaching and Detaching Existing Images" +msgstr "連接與解除連接既有的映象檔" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33692 +msgid "<primary>disks</primary> <secondary>memory</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33697 +msgid "" +"To mount an existing file system image, use <command>mdconfig</command> to " +"specify the name of the <acronym>ISO</acronym> file and a free unit number. " +"Then, refer to that unit number to mount it on an existing mount point. Once " +"mounted, the files in the <acronym>ISO</acronym> will appear in the mount " +"point. This example attaches <replaceable>diskimage.iso</replaceable> to the " +"memory device <filename>/dev/md0</filename> then mounts that memory device " +"on <filename>/mnt</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33707 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mdconfig -f <replaceable>diskimage.iso</replaceable> -u <replaceable>0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/md<replaceable>0</replaceable> <replaceable>/mnt</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33710 +msgid "" +"If a unit number is not specified with <option>-u</option>, " +"<command>mdconfig</command> will automatically allocate an unused memory " +"device and output the name of the allocated unit, such as <filename>md4</" +"filename>. Refer to <citerefentry><refentrytitle>mdconfig</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more details about " +"this command and its options." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33717 +msgid "<primary>disks</primary> <secondary>detaching a memory disk</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33722 +msgid "" +"When a memory disk is no longer in use, its resources should be released " +"back to the system. First, unmount the file system, then use " +"<command>mdconfig</command> to detach the disk from the system and release " +"its resources. To continue this example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33728 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>umount /mnt</userinput>\n" +"<prompt>#</prompt> <userinput>mdconfig -d -u <replaceable>0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33731 +msgid "" +"To determine if any memory disks are still attached to the system, type " +"<command>mdconfig -l</command>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:33736 +msgid "Creating a File- or Memory-Backed Memory Disk" +msgstr "建立以檔案或記憶體為基底的磁碟" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33738 +msgid "<primary>disks</primary> <secondary>memory file system</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33742 +msgid "" +"FreeBSD also supports memory disks where the storage to use is allocated " +"from either a hard disk or an area of memory. The first method is commonly " +"referred to as a file-backed file system and the second method as a memory-" +"backed file system. Both types can be created using <command>mdconfig</" +"command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33749 +msgid "" +"To create a new memory-backed file system, specify a type of <literal>swap</" +"literal> and the size of the memory disk to create. Then, format the memory " +"disk with a file system and mount as usual. This example creates a 5M memory " +"disk on unit <literal>1</literal>. That memory disk is then formatted with " +"the <acronym>UFS</acronym> file system before it is mounted:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33757 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mdconfig -a -t swap -s <replaceable>5</replaceable>m -u <replaceable>1</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>newfs -U md<replaceable>1</replaceable></userinput>\n" +"/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048\n" +" using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.\n" +" with soft updates\n" +"super-block backups (for fsck -b #) at:\n" +" 160, 2752, 5344, 7936\n" +"<prompt>#</prompt> <userinput>mount /dev/md<replaceable>1</replaceable> <replaceable>/mnt</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>df <replaceable>/mnt</replaceable></userinput>\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/md1 4718 4 4338 0% /mnt" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33769 +msgid "" +"To create a new file-backed memory disk, first allocate an area of disk to " +"use. This example creates an empty 5K file named <filename>newimage</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33773 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>dd if=/dev/zero of=<replaceable>newimage</replaceable> bs=1k count=<replaceable>5</replaceable>k</userinput>\n" +"5120+0 records in\n" +"5120+0 records out" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33777 +msgid "" +"Next, attach that file to a memory disk, label the memory disk and format it " +"with the <acronym>UFS</acronym> file system, mount the memory disk, and " +"verify the size of the file-backed disk:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33782 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mdconfig -f <replaceable>newimage</replaceable> -u <replaceable>0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>bsdlabel -w md<replaceable>0</replaceable> auto</userinput>\n" +"<prompt>#</prompt> <userinput>newfs md<replaceable>0</replaceable>a</userinput>\n" +"/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048\n" +" using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.\n" +"super-block backups (for fsck -b #) at:\n" +" 160, 2720, 5280, 7840\n" +"<prompt>#</prompt> <userinput>mount /dev/md<replaceable>0</replaceable>a <replaceable>/mnt</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>df <replaceable>/mnt</replaceable></userinput>\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/md0a 4710 4 4330 0% /mnt" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33794 +msgid "" +"It takes several commands to create a file- or memory-backed file system " +"using <command>mdconfig</command>. FreeBSD also comes with <command>mdmfs</" +"command> which automatically configures a memory disk, formats it with the " +"<acronym>UFS</acronym> file system, and mounts it. For example, after " +"creating <replaceable>newimage</replaceable> with <command>dd</command>, " +"this one command is equivalent to running the <command>bsdlabel</command>, " +"<command>newfs</command>, and <command>mount</command> commands shown above:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33805 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mdmfs -F <replaceable>newimage</replaceable> -s <replaceable>5</replaceable>m md<replaceable>0</replaceable> <replaceable>/mnt</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33807 +msgid "" +"To instead create a new memory-based memory disk with <command>mdmfs</" +"command>, use this one command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33810 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mdmfs -s <replaceable>5</replaceable>m md<replaceable>1</replaceable> <replaceable>/mnt</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33812 +msgid "" +"If the unit number is not specified, <command>mdmfs</command> will " +"automatically select an unused memory device. For more details about " +"<command>mdmfs</command>, refer to <citerefentry><refentrytitle>mdmfs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:33821 +msgid "File System Snapshots" +msgstr "檔案系統快照" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:33834 +msgid "<primary>file systems</primary> <secondary>snapshots</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33839 +msgid "" +"FreeBSD offers a feature in conjunction with <link linkend=\"soft-updates" +"\">Soft Updates</link>: file system snapshots." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33843 +msgid "" +"UFS snapshots allow a user to create images of specified file systems, and " +"treat them as a file. Snapshot files must be created in the file system that " +"the action is performed on, and a user may create no more than 20 snapshots " +"per file system. Active snapshots are recorded in the superblock so they are " +"persistent across unmount and remount operations along with system reboots. " +"When a snapshot is no longer required, it can be removed using " +"<citerefentry><refentrytitle>rm</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. While snapshots may be removed in any order, all the used " +"space may not be acquired because another snapshot will possibly claim some " +"of the released blocks." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33855 +msgid "" +"The un-alterable <option>snapshot</option> file flag is set by " +"<citerefentry><refentrytitle>mksnap_ffs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> after initial creation of a snapshot file. " +"<citerefentry><refentrytitle>unlink</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> makes an exception for snapshot files since it allows them to " +"be removed." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33860 +msgid "" +"Snapshots are created using <citerefentry><refentrytitle>mount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. To place a snapshot " +"of <filename>/var</filename> in the file <filename>/var/snapshot/snap</" +"filename>, use the following command:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:33865 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount -u -o snapshot /var/snapshot/snap /var</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33867 +msgid "" +"Alternatively, use <citerefentry><refentrytitle>mksnap_ffs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to create the snapshot:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:33870 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mksnap_ffs /var /var/snapshot/snap</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33872 +msgid "" +"One can find snapshot files on a file system, such as <filename>/var</" +"filename>, using <citerefentry><refentrytitle>find</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:33876 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>find /var -flags snapshot</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33878 +msgid "Once a snapshot has been created, it has several uses:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33883 +msgid "" +"Some administrators will use a snapshot file for backup purposes, because " +"the snapshot can be transferred to <acronym>CD</acronym>s or tape." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33889 +msgid "" +"The file system integrity checker, <citerefentry><refentrytitle>fsck</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, may be run on the " +"snapshot. Assuming that the file system was clean when it was mounted, this " +"should always provide a clean and unchanging result." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33896 +msgid "" +"Running <citerefentry><refentrytitle>dump</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> on the snapshot will produce a dump file that is " +"consistent with the file system and the timestamp of the snapshot. " +"<citerefentry><refentrytitle>dump</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> can also take a snapshot, create a dump image, and then remove " +"the snapshot in one command by using <option>-L</option>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:33904 +msgid "" +"The snapshot can be mounted as a frozen image of the file system. To " +"<citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> the snapshot <filename>/var/snapshot/snap</filename> run:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:33908 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mdconfig -a -t vnode -o readonly -f /var/snapshot/snap -u 4</userinput>\n" +"<prompt>#</prompt> <userinput>mount -r /dev/md4 /mnt</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33913 +msgid "" +"The frozen <filename>/var</filename> is now available through <filename>/" +"mnt</filename>. Everything will initially be in the same state it was during " +"the snapshot creation time. The only exception is that any earlier snapshots " +"will appear as zero length files. To unmount the snapshot, use:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:33919 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>umount /mnt</userinput>\n" +"<prompt>#</prompt> <userinput>mdconfig -d -u 4</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33922 +msgid "" +"For more information about <option>softupdates</option> and file system " +"snapshots, including technical papers, visit Marshall Kirk McKusick's " +"website at <uri xlink:href=\"http://www.mckusick.com/\">http://www.mckusick." +"com/</uri>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:33928 +msgid "Disk Quotas" +msgstr "磁碟配額" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:33930 +msgid "<primary>accounting</primary> <secondary>disk space</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:33936 +msgid "" +"Disk quotas can be used to limit the amount of disk space or the number of " +"files a user or members of a group may allocate on a per-file system basis. " +"This prevents one user or group of users from consuming all of the available " +"disk space." +msgstr "" +"磁碟配額可以用來限制使用者或群組成員能夠在各別檔案系統上使用的磁碟空間量或檔" +"案數量。這個可避免一個使用者或群組成員耗盡所有磁碟的可用空間。" + +#. (itstool) path: sect1/para +#: book.translate.xml:33941 +msgid "" +"This section describes how to configure disk quotas for the <acronym>UFS</" +"acronym> file system. To configure quotas on the <acronym>ZFS</acronym> file " +"system, refer to <xref linkend=\"zfs-zfs-quota\"/>" +msgstr "" +"本節將說明如何設定 <acronym>UFS</acronym> 檔案系統的磁碟配額。要在 " +"<acronym>ZFS</acronym> 檔案系統上設定配額,請參考 <xref linkend=\"zfs-zfs-" +"quota\"/>" + +#. (itstool) path: sect2/title +#: book.translate.xml:33946 +msgid "Enabling Disk Quotas" +msgstr "開啟磁碟配額" + +#. (itstool) path: sect2/para +#: book.translate.xml:33948 +msgid "To determine if the FreeBSD kernel provides support for disk quotas:" +msgstr "查看 FreeBSD 核心是否支援磁碟配額:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:33951 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>sysctl kern.features.ufs_quota</userinput>\n" +"kern.features.ufs_quota: 1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33954 +msgid "" +"In this example, the <literal>1</literal> indicates quota support. If the " +"value is instead <literal>0</literal>, add the following line to a custom " +"kernel configuration file and rebuild the kernel using the instructions in " +"<xref linkend=\"kernelconfig\"/>:" +msgstr "" +"在本例中,數值 <literal>1</literal> 代表支援磁碟配額,若為 <literal>0</" +"literal>,則需加入下列設定到自訂核心設定檔然後依照 <xref linkend=" +"\"kernelconfig\"/> 的指示重新編譯核心:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:33959 +#, no-wrap +msgid "options QUOTA" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33961 +msgid "Next, enable disk quotas in <filename>/etc/rc.conf</filename>:" +msgstr "接著,在 <filename>/etc/rc.conf</filename> 開啟磁碟配額:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:33964 +#, no-wrap +msgid "quota_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:33966 book.translate.xml:34100 +msgid "<primary>disk quotas</primary> <secondary>checking</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33970 +msgid "" +"Normally on bootup, the quota integrity of each file system is checked by " +"<citerefentry><refentrytitle>quotacheck</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. This program insures that the data in the quota " +"database properly reflects the data on the file system. This is a time " +"consuming process that will significantly affect the time the system takes " +"to boot. To skip this step, add this variable to <filename>/etc/rc.conf</" +"filename>:" +msgstr "" +"正常在開機時,會使用 <citerefentry><refentrytitle>quotacheck</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 檢查每個檔案系統的配額" +"完整性,這個程式會確保在配額資料庫中的資料正確的反映了檔案系統上的資料。這是" +"一個耗費時間的程序,會明顯的影響系統開機的時間,要跳過這個步驟可以加入此變數" +"到 <filename>/etc/rc.conf</filename>:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:33978 +#, no-wrap +msgid "check_quotas=\"NO\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33980 +msgid "" +"Finally, edit <filename>/etc/fstab</filename> to enable disk quotas on a per-" +"file system basis. To enable per-user quotas on a file system, add " +"<option>userquota</option> to the options field in the <filename>/etc/fstab</" +"filename> entry for the file system to enable quotas on. For example:" +msgstr "" +"最後,編輯 <filename>/etc/fstab</filename> 來開啟在各個檔案系統上的磁碟配額。" +"要開啟在檔案系統上對每個使用者的配額要加入 <option>userquota</option> 選項" +"到 <filename>/etc/fstab</filename> 要開啟配額的檔案系統的項目中。例如:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:33986 +#, no-wrap +msgid "/dev/da1s2g /home ufs rw,userquota 1 2" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33988 +msgid "" +"To enable group quotas, use <option>groupquota</option> instead. To enable " +"both user and group quotas, separate the options with a comma:" +msgstr "" +"要開啟群組配額,則使用 <option>groupquota</option>。要同時開啟使用者及群組配" +"額,可使用逗號隔開選項:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:33992 +#, no-wrap +msgid "/dev/da1s2g /home ufs rw,userquota,groupquota 1 2" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:33994 +msgid "" +"By default, quota files are stored in the root directory of the file system " +"as <filename>quota.user</filename> and <filename>quota.group</filename>. " +"Refer to <citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for more information. Specifying an alternate " +"location for the quota files is not recommended." +msgstr "" +"預設配額檔案會儲存在檔案系統的根目錄的 <filename>quota.user</filename> 及 " +"<filename>quota.group</filename>,請參考 <citerefentry><refentrytitle>fstab</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> 來取得更多資訊,較不建" +"議指定其他位置來儲存配額檔案。" + +#. (itstool) path: sect2/para +#: book.translate.xml:34000 +msgid "" +"Once the configuration is complete, reboot the system and <filename>/etc/rc</" +"filename> will automatically run the appropriate commands to create the " +"initial quota files for all of the quotas enabled in <filename>/etc/fstab</" +"filename>." +msgstr "" +"設定完成之後,重新啟動系統,<filename>/etc/rc</filename> 會自動執行適當的指令" +"對所有在 <filename>/etc/fstab</filename> 中開啟配磁的檔案系統建立初始的配額" +"檔。" + +#. (itstool) path: sect2/para +#: book.translate.xml:34006 +msgid "" +"In the normal course of operations, there should be no need to manually run " +"<citerefentry><refentrytitle>quotacheck</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, <citerefentry><refentrytitle>quotaon</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, or " +"<citerefentry><refentrytitle>quotaoff</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. However, one should read these manual pages to be " +"familiar with their operation." +msgstr "" +"在一般的操作中,並不需要手動執行 <citerefentry><refentrytitle>quotacheck</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>quotaon</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 或是 <citerefentry><refentrytitle>quotaoff</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>,雖然如此,仍應閱讀這些" +"指令的操作手冊來熟悉這些指令的操作。" + +#. (itstool) path: sect2/title +#: book.translate.xml:34013 +msgid "Setting Quota Limits" +msgstr "設定配額限制" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:34015 +msgid "<primary>disk quotas</primary> <secondary>limits</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34020 +msgid "To verify that quotas are enabled, run:" +msgstr "要確認配額已經開啟,可執行:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:34023 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>quota -v</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34025 +msgid "" +"There should be a one line summary of disk usage and current quota limits " +"for each file system that quotas are enabled on." +msgstr "每個有開啟配額的檔案系統應該會有一行磁碟用量及目前配額限制的摘要。" + +#. (itstool) path: sect2/para +#: book.translate.xml:34029 +msgid "" +"The system is now ready to be assigned quota limits with <command>edquota</" +"command>." +msgstr "現在系統已準備好可以使用 <command>edquota</command> 分配配額限制。" + +#. (itstool) path: sect2/para +#: book.translate.xml:34032 +msgid "" +"Several options are available to enforce limits on the amount of disk space " +"a user or group may allocate, and how many files they may create. " +"Allocations can be limited based on disk space (block quotas), number of " +"files (inode quotas), or a combination of both. Each limit is further broken " +"down into two categories: hard and soft limits." +msgstr "" +"有數個選項可以強制限制使用者或群組對磁碟空間的使用量以及可以建立多少檔案。可" +"以用磁碟空間 (block 配額),檔案數量 (inode 配額) 或同時使用來分配。每種限制又" +"可進一步細分為兩個類型:硬性 (Hard) 及軟性 (Soft) 限制。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:34039 +msgid "<primary>hard limit</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34040 +msgid "" +"A hard limit may not be exceeded. Once a user reaches a hard limit, no " +"further allocations can be made on that file system by that user. For " +"example, if the user has a hard limit of 500 kbytes on a file system and is " +"currently using 490 kbytes, the user can only allocate an additional 10 " +"kbytes. Attempting to allocate an additional 11 kbytes will fail." +msgstr "" +"硬性限制無法被超額使用。一旦使用者超出了硬性限制,該使用者在該檔案系統將無法" +"再使用任何空間。舉例來說,若一個使用者在一個檔案系統上有 500 KB 的硬性限制," +"且目前已經使用了 490 KB,該使用者只能再使用 10 KB 的空間,若嘗試使用 11 KB " +"的空間將會失敗。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:34048 +msgid "<primary>soft limit</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34049 +msgid "" +"Soft limits can be exceeded for a limited amount of time, known as the grace " +"period, which is one week by default. If a user stays over their limit " +"longer than the grace period, the soft limit turns into a hard limit and no " +"further allocations are allowed. When the user drops back below the soft " +"limit, the grace period is reset." +msgstr "" +"軟性限制在有限的時間內可以被超額使用,即為寬限期 (Grace period),預設為一週。" +"若一個使用者超出限制並超過寬限期,則軟性限制將轉為硬性限制並且將不允許再使用" +"空間。當使用者使用的空間回到低於軟性限制內,寬限期就會被重置。" + +#. (itstool) path: sect2/para +#: book.translate.xml:34056 +msgid "" +"In the following example, the quota for the <systemitem class=\"username" +"\">test</systemitem> account is being edited. When <command>edquota</" +"command> is invoked, the editor specified by <envar>EDITOR</envar> is opened " +"in order to edit the quota limits. The default editor is set to " +"<application>vi</application>." +msgstr "" +"在下面的例子中,會編輯 <systemitem class=\"username\">test</systemitem> 的配" +"額。當執行 <command>edquota</command> 時,將會使用 <envar>EDITOR</envar> 指定" +"的編輯器來編輯配額限制。預設的編輯器為 <application>vi</application>。" + +#. (itstool) path: sect2/screen +#: book.translate.xml:34062 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>edquota -u test</userinput>\n" +"Quotas for user test:\n" +"/usr: kbytes in use: 65, limits (soft = 50, hard = 75)\n" +" inodes in use: 7, limits (soft = 50, hard = 60)\n" +"/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)\n" +" inodes in use: 0, limits (soft = 50, hard = 60)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34069 +msgid "" +"There are normally two lines for each file system that has quotas enabled. " +"One line represents the block limits and the other represents the inode " +"limits. Change the value to modify the quota limit. For example, to raise " +"the block limit on <filename>/usr</filename> to a soft limit of " +"<literal>500</literal> and a hard limit of <literal>600</literal>, change " +"the values in that line as follows:" +msgstr "" +"正常每個開啟配額的檔案系統會有兩行需要設定,一行代表區塊限制 (Block limit) 而" +"另一行代表節點限制 (inode limit),更改行內的值來修改配額限制。舉例來說,要在 " +"<filename>/usr</filename> 提高區塊的軟性限制到 <literal>500</literal> 以及硬" +"性限制到 <literal>600</literal>,可更改行內的值如下:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:34078 +#, no-wrap +msgid "/usr: kbytes in use: 65, limits (soft = 500, hard = 600)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34080 +msgid "The new quota limits take affect upon exiting the editor." +msgstr "新的配額限制將在離開編輯器後生效。" + +#. (itstool) path: sect2/para +#: book.translate.xml:34083 +msgid "" +"Sometimes it is desirable to set quota limits on a range of users. This can " +"be done by first assigning the desired quota limit to a user. Then, use " +"<option>-p</option> to duplicate that quota to a specified range of user IDs " +"(<acronym>UID</acronym>s). The following command will duplicate those quota " +"limits for <acronym>UID</acronym>s <literal>10,000</literal> through " +"<literal>19,999</literal>:" +msgstr "" +"有時會想要針對一群使用者設定配額限,這時可以透過指定想要的配額給第一個使用" +"者,若然後使用 <option>-p</option> 來複製配額到指定範圍的使用者 ID " +"(<acronym>UID</acronym>)。以下指定將複製配額限制給 <acronym>UID</acronym> " +"<literal>10,000</literal> 到 <literal>19,999</literal> 的使用者:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:34092 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>edquota -p test 10000-19999</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34094 +msgid "" +"For more information, refer to <citerefentry><refentrytitle>edquota</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" +"要取得更多資訊,請參考 <citerefentry><refentrytitle>edquota</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>。" + +#. (itstool) path: sect2/title +#: book.translate.xml:34098 +msgid "Checking Quota Limits and Disk Usage" +msgstr "檢查配額限制與磁碟使用狀況" + +#. (itstool) path: sect2/para +#: book.translate.xml:34105 +msgid "" +"To check individual user or group quotas and disk usage, use " +"<citerefentry><refentrytitle>quota</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>. A user may only examine their own quota and the quota of a " +"group they are a member of. Only the superuser may view all user and group " +"quotas. To get a summary of all quotas and disk usage for file systems with " +"quotas enabled, use <citerefentry><refentrytitle>repquota</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" +"要檢查各別使用者或群組的配額與磁碟用量可使用 " +"<citerefentry><refentrytitle>quota</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>。使用者僅可查看自己的配額以及所屬群組的配額,只有使超級使用者可" +"以檢視所有使用者及群組的配額。要取得某個有開啟配額的檔案系統的所有配額及磁碟" +"用量摘要,可使用 <citerefentry><refentrytitle>repquota</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:34112 +msgid "" +"Normally, file systems that the user is not using any disk space on will not " +"show in the output of <command>quota</command>, even if the user has a quota " +"limit assigned for that file system. Use <option>-v</option> to display " +"those file systems. The following is sample output from <command>quota -v</" +"command> for a user that has quota limits on two file systems." +msgstr "" +"正常情況,使用者未使用任何磁碟空間的檔案系統並不會顯示在 <command>quota</" +"command> 的輸出結果中,即使該使用者有在該檔案系統設定配額限制,使用 <option>-" +"v</option> 可以顯示這些檔案系統。以下是使用使用 <command>quota -v</command> " +"查詢某個使用者在兩個檔案系統上的配額限制的範例輸出。" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:34120 +#, no-wrap +msgid "" +"Disk quotas for user test (uid 1002):\n" +" Filesystem usage quota limit grace files quota limit grace\n" +" /usr 65* 50 75 5days 7 50 60\n" +" /usr/var 0 50 75 0 50 60" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:34125 +msgid "<primary>grace period</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34127 +msgid "" +"In this example, the user is currently 15 kbytes over the soft limit of 50 " +"kbytes on <filename>/usr</filename> and has 5 days of grace period left. The " +"asterisk <literal>*</literal> indicates that the user is currently over the " +"quota limit." +msgstr "" +"在這個例子當中,使用者在 <filename>/usr</filename> 的軟性限制 50 KB 已經超出" +"了 15 KB 並已經過了 5 天寬限期。星號 <literal>*</literal> 代表該使用者目前已" +"超出配額限制。" + +#. (itstool) path: sect2/title +#: book.translate.xml:34135 +msgid "Quotas over NFS" +msgstr "NFS 上的配額" + +#. (itstool) path: sect2/indexterm +#. (itstool) path: sect1/indexterm +#: book.translate.xml:34137 book.translate.xml:52691 +msgid "<primary>NFS</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34139 +msgid "" +"Quotas are enforced by the quota subsystem on the <acronym>NFS</acronym> " +"server. The <citerefentry><refentrytitle>rpc.rquotad</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> daemon makes quota " +"information available to <command>quota</command> on <acronym>NFS</acronym> " +"clients, allowing users on those machines to see their quota statistics." +msgstr "" +"在 <acronym>NFS</acronym> 伺服器上,配額會由配額子系統強制執行," +"<citerefentry><refentrytitle>rpc.rquotad</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> Daemon 會提供配額資訊給 <acronym>NFS</acronym> 客戶" +"端的 <command>quota</command>,讓在那些主機的使用者可以查看它們的配額統計資" +"訊。" + +#. (itstool) path: sect2/para +#: book.translate.xml:34145 +msgid "" +"On the <acronym>NFS</acronym> server, enable <command>rpc.rquotad</command> " +"by removing the <literal>#</literal> from this line in <filename>/etc/inetd." +"conf</filename>:" +msgstr "" +"在 <acronym>NFS</acronym> 伺服器上將 <filename>/etc/inetd.conf</filename> 中 " +"<command>rpc.rquotad</command> 行前的 <literal>#</literal> 移除來開啟:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:34150 +#, no-wrap +msgid "rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34152 +msgid "Then, restart <command>inetd</command>:" +msgstr "然後重新啟動 <command>inetd</command>:" + +#. (itstool) path: info/title +#: book.translate.xml:34160 +msgid "Encrypting Disk Partitions" +msgstr "磁碟分割區加密" + +#. (itstool) path: affiliation/address +#: book.translate.xml:34170 +#, no-wrap +msgid "" +"\n" +"\t <email>shamrock@cypherpunks.to</email>\n" +"\t " +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:34163 +msgid "" +"<personname> <firstname>Lucky</firstname> <surname>Green</surname> </" +"personname> <contrib>Contributed by </contrib> <affiliation> <_:address-1/> " +"</affiliation>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:34178 +msgid "<primary>disks</primary> <secondary>encrypting</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:34183 +msgid "" +"FreeBSD offers excellent online protections against unauthorized data " +"access. File permissions and <link linkend=\"mac\">Mandatory Access Control</" +"link> (MAC) help prevent unauthorized users from accessing data while the " +"operating system is active and the computer is powered up. However, the " +"permissions enforced by the operating system are irrelevant if an attacker " +"has physical access to a computer and can move the computer's hard drive to " +"another system to copy and analyze the data." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:34192 +msgid "" +"Regardless of how an attacker may have come into possession of a hard drive " +"or powered-down computer, the <acronym>GEOM</acronym>-based cryptographic " +"subsystems built into FreeBSD are able to protect the data on the computer's " +"file systems against even highly-motivated attackers with significant " +"resources. Unlike encryption methods that encrypt individual files, the " +"built-in <command>gbde</command> and <command>geli</command> utilities can " +"be used to transparently encrypt entire file systems. No cleartext ever " +"touches the hard drive's platter." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:34203 +msgid "" +"This chapter demonstrates how to create an encrypted file system on FreeBSD. " +"It first demonstrates the process using <command>gbde</command> and then " +"demonstrates the same example using <command>geli</command>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:34209 +msgid "Disk Encryption with <application>gbde</application>" +msgstr "使用 <application>gbde</application> 做磁碟加密" + +#. (itstool) path: sect2/para +#: book.translate.xml:34212 +msgid "" +"The objective of the <citerefentry><refentrytitle>gbde</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> facility is to provide " +"a formidable challenge for an attacker to gain access to the contents of a " +"<emphasis>cold</emphasis> storage device. However, if the computer is " +"compromised while up and running and the storage device is actively " +"attached, or the attacker has access to a valid passphrase, it offers no " +"protection to the contents of the storage device. Thus, it is important to " +"provide physical security while the system is running and to protect the " +"passphrase used by the encryption mechanism." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34223 +msgid "" +"This facility provides several barriers to protect the data stored in each " +"disk sector. It encrypts the contents of a disk sector using 128-bit " +"<acronym>AES</acronym> in <acronym>CBC</acronym> mode. Each sector on the " +"disk is encrypted with a different <acronym>AES</acronym> key. For more " +"information on the cryptographic design, including how the sector keys are " +"derived from the user-supplied passphrase, refer to " +"<citerefentry><refentrytitle>gbde</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34232 +msgid "" +"FreeBSD provides a kernel module for <application>gbde</application> which " +"can be loaded with this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:34236 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload geom_bde</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34238 +msgid "" +"If using a custom kernel configuration file, ensure it contains this line:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34241 +msgid "<literal>options GEOM_BDE</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34243 +msgid "" +"The following example demonstrates adding a new hard drive to a system that " +"will hold a single encrypted partition that will be mounted as <filename>/" +"private</filename>." +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:34248 +msgid "Encrypting a Partition with <application>gbde</application>" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34252 +msgid "Add the New Hard Drive" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34254 +msgid "" +"Install the new drive to the system as explained in <xref linkend=\"disks-" +"adding\"/>. For the purposes of this example, a new hard drive partition has " +"been added as <filename>/dev/ad4s1c</filename> and <filename>/dev/" +"ad0s1<replaceable>*</replaceable></filename> represents the existing " +"standard FreeBSD partitions." +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34261 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ls /dev/ad*</userinput>\n" +"/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1\n" +"/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c\n" +"/dev/ad0s1a /dev/ad0s1d /dev/ad4" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34268 +msgid "Create a Directory to Hold <command>gbde</command> Lock Files" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34271 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mkdir /etc/gbde</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34273 +msgid "" +"The <application>gbde</application> lock file contains information that " +"<application>gbde</application> requires to access encrypted partitions. " +"Without access to the lock file, <application>gbde</application> will not be " +"able to decrypt the data contained in the encrypted partition without " +"significant manual intervention which is not supported by the software. Each " +"encrypted partition uses a separate lock file." +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34284 +msgid "Initialize the <command>gbde</command> Partition" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34287 +msgid "" +"A <application>gbde</application> partition must be initialized before it " +"can be used. This initialization needs to be performed only once. This " +"command will open the default editor, in order to set various configuration " +"options in a template. For use with the <acronym>UFS</acronym> file system, " +"set the sector_size to 2048:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34295 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock</userinput># $FreeBSD$\n" +"#\n" +"# Sector size is the smallest unit of data which can be read or written.\n" +"# Making it too small decreases performance and decreases available space.\n" +"# Making it too large may prevent filesystems from working. 512 is the\n" +"# minimum and always safe. For UFS, use the fragment size\n" +"#\n" +"sector_size\t=\t2048\n" +"[...]" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34305 +msgid "" +"Once the edit is saved, the user will be asked twice to type the passphrase " +"used to secure the data. The passphrase must be the same both times. The " +"ability of <application>gbde</application> to protect data depends entirely " +"on the quality of the passphrase. For tips on how to select a secure " +"passphrase that is easy to remember, see <link xlink:href=\"http://world.std." +"com/~reinhold/diceware.html\">http://world.std.com/~reinhold/diceware.htm</" +"link>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34313 +msgid "" +"This initialization creates a lock file for the <application>gbde</" +"application> partition. In this example, it is stored as <filename>/etc/gbde/" +"ad4s1c.lock</filename>. Lock files must end in <quote>.lock</quote> in order " +"to be correctly detected by the <filename>/etc/rc.d/gbde</filename> start up " +"script." +msgstr "" + +#. (itstool) path: caution/para +#: book.translate.xml:34322 +msgid "" +"Lock files <emphasis>must</emphasis> be backed up together with the contents " +"of any encrypted partitions. Without the lock file, the legitimate owner " +"will be unable to access the data on the encrypted partition." +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34331 +msgid "Attach the Encrypted Partition to the Kernel" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34334 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34336 +msgid "" +"This command will prompt to input the passphrase that was selected during " +"the initialization of the encrypted partition. The new encrypted device will " +"appear in <filename>/dev</filename> as <filename>/dev/device_name.bde</" +"filename>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34342 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ls /dev/ad*</userinput>\n" +"/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1\n" +"/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c\n" +"/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34349 +msgid "Create a File System on the Encrypted Device" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34352 +msgid "" +"Once the encrypted device has been attached to the kernel, a file system can " +"be created on the device. This example creates a <acronym>UFS</acronym> file " +"system with soft updates enabled. Be sure to specify the partition which has " +"a <filename><replaceable>*</replaceable>.bde</filename> extension:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34360 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>newfs -U /dev/ad4s1c.bde</userinput>" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34364 +msgid "Mount the Encrypted Partition" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34366 +msgid "Create a mount point and mount the encrypted file system:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34369 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mkdir /private</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/ad4s1c.bde /private</userinput>" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34374 +msgid "Verify That the Encrypted File System is Available" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34377 +msgid "The encrypted file system should now be visible and available for use:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34380 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>df -H</userinput>\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 1037M 72M 883M 8% /\n" +"/devfs 1.0K 1.0K 0B 100% /dev\n" +"/dev/ad0s1f 8.1G 55K 7.5G 0% /home\n" +"/dev/ad0s1e 1037M 1.1M 953M 0% /tmp\n" +"/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr\n" +"/dev/ad4s1c.bde 150G 4.1K 138G 0% /private" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34391 +msgid "" +"After each boot, any encrypted file systems must be manually re-attached to " +"the kernel, checked for errors, and mounted, before the file systems can be " +"used. To configure these steps, add the following lines to <filename>/etc/rc." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:34397 +#, no-wrap +msgid "" +"gbde_autoattach_all=\"YES\"\n" +"gbde_devices=\"<replaceable>ad4s1c</replaceable>\"\n" +"gbde_lockdir=\"/etc/gbde\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34401 +msgid "" +"This requires that the passphrase be entered at the console at boot time. " +"After typing the correct passphrase, the encrypted partition will be mounted " +"automatically. Additional <application>gbde</application> boot options are " +"available and listed in <citerefentry><refentrytitle>rc.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:34411 +msgid "" +"<application>sysinstall</application> is incompatible with " +"<application>gbde</application>-encrypted devices. All <filename>*.bde</" +"filename> devices must be detached from the kernel before starting " +"<application>sysinstall</application> or it will crash during its initial " +"probing for devices. To detach the encrypted device used in the example, use " +"the following command:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:34419 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>gbde detach /dev/<replaceable>ad4s1c</replaceable></userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:34425 +msgid "Disk Encryption with <command>geli</command>" +msgstr "使用 <command>geli</command> 做磁碟加密" + +#. (itstool) path: sect2/para +#: book.translate.xml:34438 +msgid "" +"An alternative cryptographic <acronym>GEOM</acronym> class is available " +"using <command>geli</command>. This control utility adds some features and " +"uses a different scheme for doing cryptographic work. It provides the " +"following features:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34446 +msgid "" +"Utilizes the <citerefentry><refentrytitle>crypto</" +"refentrytitle><manvolnum>9</manvolnum></citerefentry> framework and " +"automatically uses cryptographic hardware when it is available." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34452 +msgid "" +"Supports multiple cryptographic algorithms such as <acronym>AES</acronym>, " +"Blowfish, and <acronym>3DES</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34458 +msgid "" +"Allows the root partition to be encrypted. The passphrase used to access the " +"encrypted root partition will be requested during system boot." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34464 +msgid "Allows the use of two independent keys." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34468 +msgid "It is fast as it performs simple sector-to-sector encryption." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34473 +msgid "" +"Allows backup and restore of master keys. If a user destroys their keys, it " +"is still possible to get access to the data by restoring keys from the " +"backup." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34479 +msgid "" +"Allows a disk to attach with a random, one-time key which is useful for swap " +"partitions and temporary file systems." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34485 +msgid "" +"More features and usage examples can be found in " +"<citerefentry><refentrytitle>geli</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34488 +msgid "" +"The following example describes how to generate a key file which will be " +"used as part of the master key for the encrypted provider mounted under " +"<filename>/private</filename>. The key file will provide some random data " +"used to encrypt the master key. The master key will also be protected by a " +"passphrase. The provider's sector size will be 4kB. The example describes " +"how to attach to the <command>geli</command> provider, create a file system " +"on it, mount it, work with it, and finally, how to detach it." +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:34499 +msgid "Encrypting a Partition with <command>geli</command>" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34503 +msgid "Load <command>geli</command> Support" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34505 +msgid "" +"Support for <command>geli</command> is available as a loadable kernel " +"module. To configure the system to automatically load the module at boot " +"time, add the following line to <filename>/boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:34511 +#, no-wrap +msgid "geom_eli_load=\"YES\"" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34513 +msgid "To load the kernel module now:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34515 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload geom_eli</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34517 +msgid "" +"For a custom kernel, ensure the kernel configuration file contains these " +"lines:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:34520 +#, no-wrap +msgid "" +"options GEOM_ELI\n" +"device crypto" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34525 +msgid "Generate the Master Key" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34527 +msgid "" +"The following commands generate a master key (<filename>/root/da2.key</" +"filename>) that is protected with a passphrase. The data source for the key " +"file is <filename>/dev/random</filename> and the sector size of the provider " +"(<filename>/dev/da2.eli</filename>) is 4kB as a bigger sector size provides " +"better performance:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34534 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>dd if=/dev/random of=/root/da2.key bs=64 count=1</userinput>\n" +"<prompt>#</prompt> <userinput>geli init -s 4096 -K /root/da2.key /dev/da2</userinput>\n" +"Enter new passphrase:\n" +"Reenter new passphrase:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34539 +msgid "" +"It is not mandatory to use both a passphrase and a key file as either method " +"of securing the master key can be used in isolation." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34543 +msgid "" +"If the key file is given as <quote>-</quote>, standard input will be used. " +"For example, this command generates three key files:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34547 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2</userinput>" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34551 +msgid "Attach the Provider with the Generated Key" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34553 +msgid "" +"To attach the provider, specify the key file, the name of the disk, and the " +"passphrase:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34556 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>geli attach -k /root/da2.key /dev/da2</userinput>\n" +"Enter passphrase:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34559 +msgid "This creates a new device with an <filename>.eli</filename> extension:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34562 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ls /dev/da2*</userinput>\n" +"/dev/da2 /dev/da2.eli" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:34567 +msgid "Create the New File System" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34569 +msgid "" +"Next, format the device with the <acronym>UFS</acronym> file system and " +"mount it on an existing mount point:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34573 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>dd if=/dev/random of=/dev/da2.eli bs=1m</userinput>\n" +"<prompt>#</prompt> <userinput>newfs /dev/da2.eli</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/da2.eli <replaceable>/private</replaceable></userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:34577 +msgid "The encrypted file system should now be available for use:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:34580 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>df -H</userinput>\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 248M 89M 139M 38% /\n" +"/devfs 1.0K 1.0K 0B 100% /dev\n" +"/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr\n" +"/dev/ad0s1d 989M 1.5M 909M 0% /tmp\n" +"/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var\n" +"/dev/da2.eli 150G 4.1K 138G 0% /private" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34591 +msgid "" +"Once the work on the encrypted partition is done, and the <filename>/" +"private</filename> partition is no longer needed, it is prudent to put the " +"device into cold storage by unmounting and detaching the <command>geli</" +"command> encrypted partition from the kernel:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:34597 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>umount /private</userinput>\n" +"<prompt>#</prompt> <userinput>geli detach da2.eli</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34600 +msgid "" +"A <filename>rc.d</filename> script is provided to simplify the mounting of " +"<command>geli</command>-encrypted devices at boot time. For this example, " +"add these lines to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:34605 +#, no-wrap +msgid "" +"geli_devices=\"<replaceable>da2</replaceable>\"\n" +"geli_da2_flags=\"-k /root/<replaceable>da2.key</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34608 +msgid "" +"This configures <filename>/dev/da2</filename> as a <command>geli</command> " +"provider with a master key of <filename>/root/da2.key</filename>. The system " +"will automatically detach the provider from the kernel before the system " +"shuts down. During the startup process, the script will prompt for the " +"passphrase before attaching the provider. Other kernel messages might be " +"shown before and after the password prompt. If the boot process seems to " +"stall, look carefully for the password prompt among the other messages. Once " +"the correct passphrase is entered, the provider is attached. The file system " +"is then mounted, typically by an entry in <filename>/etc/fstab</filename>. " +"Refer to <xref linkend=\"mount-unmount\"/> for instructions on how to " +"configure a file system to mount at boot time." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:34626 +msgid "Encrypting Swap" +msgstr "交換空間加密" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:34629 +msgid "" +"<personname> <firstname>Christian</firstname> <surname>Brueffer</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:34639 +msgid "<primary>swap</primary> <secondary>encrypting</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:34644 +msgid "" +"Like the encryption of disk partitions, encryption of swap space is used to " +"protect sensitive information. Consider an application that deals with " +"passwords. As long as these passwords stay in physical memory, they are not " +"written to disk and will be cleared after a reboot. However, if FreeBSD " +"starts swapping out memory pages to free space, the passwords may be written " +"to the disk unencrypted. Encrypting swap space can be a solution for this " +"scenario." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:34653 +msgid "" +"This section demonstrates how to configure an encrypted swap partition using " +"<citerefentry><refentrytitle>gbde</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> or <citerefentry><refentrytitle>geli</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> encryption. It assumes " +"that <filename>/dev/ada0s1b</filename> is the swap partition." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:34659 +msgid "Configuring Encrypted Swap" +msgstr "設定已加密的交換空間" + +#. (itstool) path: sect2/para +#: book.translate.xml:34661 +msgid "" +"Swap partitions are not encrypted by default and should be cleared of any " +"sensitive data before continuing. To overwrite the current swap partition " +"with random garbage, execute the following command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:34666 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dd if=/dev/random of=/dev/<replaceable>ada0s1b</replaceable> bs=1m</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34668 +msgid "" +"To encrypt the swap partition using <citerefentry><refentrytitle>gbde</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, add the <literal>." +"bde</literal> suffix to the swap line in <filename>/etc/fstab</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:34672 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.bde\tnone\t\tswap\tsw\t\t0\t0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34675 +msgid "" +"To instead encrypt the swap partition using " +"<citerefentry><refentrytitle>geli</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, use the <literal>.eli</literal> suffix:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:34679 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw\t\t0\t0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34682 +msgid "" +"By default, <citerefentry><refentrytitle>geli</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> uses the <acronym>AES</acronym> algorithm with a " +"key length of 128 bits. Normally the default settings will suffice. If " +"desired, these defaults can be altered in the options field in <filename>/" +"etc/fstab</filename>. The possible flags are:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:34691 +msgid "aalgo" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34693 +msgid "" +"Data integrity verification algorithm used to ensure that the encrypted data " +"has not been tampered with. See <citerefentry><refentrytitle>geli</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for a list of " +"supported algorithms." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:34700 +msgid "ealgo" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34702 +msgid "" +"Encryption algorithm used to protect the data. See " +"<citerefentry><refentrytitle>geli</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for a list of supported algorithms." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:34708 +msgid "keylen" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34710 +msgid "" +"The length of the key used for the encryption algorithm. See " +"<citerefentry><refentrytitle>geli</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for the key lengths that are supported by each encryption " +"algorithm." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:34717 +msgid "sectorsize" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34719 +msgid "" +"The size of the blocks data is broken into before it is encrypted. Larger " +"sector sizes increase performance at the cost of higher storage overhead. " +"The recommended size is 4096 bytes." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34727 +msgid "" +"This example configures an encryped swap partition using the Blowfish " +"algorithm with a key length of 128 bits and a sectorsize of 4 kilobytes:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:34731 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\t\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw,ealgo=blowfish,keylen=128,sectorsize=4096\t0\t0" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:34737 +msgid "Encrypted Swap Verification" +msgstr "加密的交換空間檢驗" + +#. (itstool) path: sect2/para +#: book.translate.xml:34739 +msgid "" +"Once the system has rebooted, proper operation of the encrypted swap can be " +"verified using <command>swapinfo</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34743 +msgid "" +"If <citerefentry><refentrytitle>gbde</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> is being used:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:34745 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>swapinfo</userinput>\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.bde 542720 0 542720 0%" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34749 +msgid "" +"If <citerefentry><refentrytitle>geli</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> is being used:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:34751 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>swapinfo</userinput>\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.eli 542720 0 542720 0%" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:34759 +msgid "Highly Available Storage (<acronym>HAST</acronym>)" +msgstr "高可用存儲空間 (<acronym>HAST</acronym>)" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:34773 +msgid "" +"<personname> <firstname>Freddie</firstname> <surname>Cash</surname> </" +"personname> <contrib>With inputs from </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:34781 +msgid "" +"<personname> <firstname>Pawel Jakub</firstname> <surname>Dawidek</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:34788 +msgid "" +"<personname> <firstname>Michael W.</firstname> <surname>Lucas</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:34795 +msgid "" +"<personname> <firstname>Viktor</firstname> <surname>Petersson</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:34804 +msgid "<primary>HAST</primary> <secondary>high availability</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:34809 +msgid "" +"High availability is one of the main requirements in serious business " +"applications and highly-available storage is a key component in such " +"environments. In FreeBSD, the Highly Available STorage (<acronym>HAST</" +"acronym>) framework allows transparent storage of the same data across " +"several physically separated machines connected by a <acronym>TCP/IP</" +"acronym> network. <acronym>HAST</acronym> can be understood as a network-" +"based RAID1 (mirror), and is similar to the DRBD® storage system used in the " +"GNU/<trademark class=\"registered\">Linux</trademark> platform. In " +"combination with other high-availability features of FreeBSD like " +"<acronym>CARP</acronym>, <acronym>HAST</acronym> makes it possible to build " +"a highly-available storage cluster that is resistant to hardware failures." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:34823 +msgid "The following are the main features of <acronym>HAST</acronym>:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34828 +msgid "Can be used to mask <acronym>I/O</acronym> errors on local hard drives." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34833 +msgid "" +"File system agnostic as it works with any file system supported by FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34838 +msgid "" +"Efficient and quick resynchronization as only the blocks that were modified " +"during the downtime of a node are synchronized." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34851 +msgid "" +"Can be used in an already deployed environment to add additional redundancy." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34856 +msgid "" +"Together with <acronym>CARP</acronym>, <application>Heartbeat</application>, " +"or other tools, it can be used to build a robust and durable storage system." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:34862 +msgid "After reading this section, you will know:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34866 +msgid "" +"What <acronym>HAST</acronym> is, how it works, and which features it " +"provides." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34871 +msgid "How to set up and use <acronym>HAST</acronym> on FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34876 +msgid "" +"How to integrate <acronym>CARP</acronym> and " +"<citerefentry><refentrytitle>devd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to build a robust storage system." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:34881 +msgid "Before reading this section, you should:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34889 +msgid "" +"Know how to configure network interfaces and other core FreeBSD subsystems " +"(<xref linkend=\"config-tuning\"/>)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34894 +msgid "" +"Have a good understanding of FreeBSD networking (<xref linkend=\"network-" +"communication\"/>)." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:34899 +msgid "" +"The <acronym>HAST</acronym> project was sponsored by The FreeBSD Foundation " +"with support from <link xlink:href=\"http://www.omc.net/\">http://www.omc." +"net/</link> and <link xlink:href=\"http://www.transip.nl/\">http://www." +"transip.nl/</link>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:34904 +msgid "HAST Operation" +msgstr "HAST 運作模式" + +#. (itstool) path: sect2/para +#: book.translate.xml:34906 +msgid "" +"<acronym>HAST</acronym> provides synchronous block-level replication between " +"two physical machines: the <emphasis>primary</emphasis>, also known as the " +"<emphasis>master</emphasis> node, and the <emphasis>secondary</emphasis>, or " +"<emphasis>slave</emphasis> node. These two machines together are referred to " +"as a cluster." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34914 +msgid "" +"Since <acronym>HAST</acronym> works in a primary-secondary configuration, it " +"allows only one of the cluster nodes to be active at any given time. The " +"primary node, also called <emphasis>active</emphasis>, is the one which will " +"handle all the <acronym>I/O</acronym> requests to <acronym>HAST</acronym>-" +"managed devices. The secondary node is automatically synchronized from the " +"primary node." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34922 +msgid "" +"The physical components of the <acronym>HAST</acronym> system are the local " +"disk on primary node, and the disk on the remote, secondary node." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34926 +msgid "" +"<acronym>HAST</acronym> operates synchronously on a block level, making it " +"transparent to file systems and applications. <acronym>HAST</acronym> " +"provides regular GEOM providers in <filename>/dev/hast/</filename> for use " +"by other tools or applications. There is no difference between using " +"<acronym>HAST</acronym>-provided devices and raw disks or partitions." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34934 +msgid "" +"Each write, delete, or flush operation is sent to both the local disk and to " +"the remote disk over <acronym>TCP/IP</acronym>. Each read operation is " +"served from the local disk, unless the local disk is not up-to-date or an " +"<acronym>I/O</acronym> error occurs. In such cases, the read operation is " +"sent to the secondary node." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34941 +msgid "" +"<acronym>HAST</acronym> tries to provide fast failure recovery. For this " +"reason, it is important to reduce synchronization time after a node's " +"outage. To provide fast synchronization, <acronym>HAST</acronym> manages an " +"on-disk bitmap of dirty extents and only synchronizes those during a regular " +"synchronization, with an exception of the initial sync." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:34949 +msgid "" +"There are many ways to handle synchronization. <acronym>HAST</acronym> " +"implements several replication modes to handle different synchronization " +"methods:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34955 +msgid "" +"<emphasis>memsync</emphasis>: This mode reports a write operation as " +"completed when the local write operation is finished and when the remote " +"node acknowledges data arrival, but before actually storing the data. The " +"data on the remote node will be stored directly after sending the " +"acknowledgement. This mode is intended to reduce latency, but still provides " +"good reliability. This mode is the default." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34966 +msgid "" +"<emphasis>fullsync</emphasis>: This mode reports a write operation as " +"completed when both the local write and the remote write complete. This is " +"the safest and the slowest replication mode." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34973 +msgid "" +"<emphasis>async</emphasis>: This mode reports a write operation as completed " +"when the local write completes. This is the fastest and the most dangerous " +"replication mode. It should only be used when replicating to a distant node " +"where latency is too high for other modes." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:34984 +msgid "HAST Configuration" +msgstr "HAST 設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:34986 +msgid "The <acronym>HAST</acronym> framework consists of several components:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34991 +msgid "" +"The <citerefentry><refentrytitle>hastd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> daemon which provides data synchronization. When " +"this daemon is started, it will automatically load <varname>geom_gate.ko</" +"varname>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:34997 +msgid "" +"The userland management utility, <citerefentry><refentrytitle>hastctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35002 +msgid "" +"The <citerefentry><refentrytitle>hast.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> configuration file. This file must exist before " +"starting <application>hastd</application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35008 +msgid "" +"Users who prefer to statically build <literal>GEOM_GATE</literal> support " +"into the kernel should add this line to the custom kernel configuration " +"file, then rebuild the kernel using the instructions in <xref linkend=" +"\"kernelconfig\"/>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:35013 +#, no-wrap +msgid "options\tGEOM_GATE" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35015 +msgid "" +"The following example describes how to configure two nodes in master-slave/" +"primary-secondary operation using <acronym>HAST</acronym> to replicate the " +"data between the two. The nodes will be called <literal>hasta</literal>, " +"with an <acronym>IP</acronym> address of <literal>172.16.0.1</literal>, and " +"<literal>hastb</literal>, with an <acronym>IP</acronym> address of " +"<literal>172.16.0.2</literal>. Both nodes will have a dedicated hard drive " +"<filename>/dev/ad6</filename> of the same size for <acronym>HAST</acronym> " +"operation. The <acronym>HAST</acronym> pool, sometimes referred to as a " +"resource or the <acronym>GEOM</acronym> provider in <filename>/dev/hast/</" +"filename>, will be called <literal>test</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35029 +msgid "" +"Configuration of <acronym>HAST</acronym> is done using <filename>/etc/hast." +"conf</filename>. This file should be identical on both nodes. The simplest " +"configuration is:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:35034 +#, no-wrap +msgid "" +"resource <replaceable>test</replaceable> {\n" +"\ton <replaceable>hasta</replaceable> {\n" +"\t\tlocal <replaceable>/dev/ad6</replaceable>\n" +"\t\tremote <replaceable>172.16.0.2</replaceable>\n" +"\t}\n" +"\ton <replaceable>hastb</replaceable> {\n" +"\t\tlocal <replaceable>/dev/ad6</replaceable>\n" +"\t\tremote <replaceable>172.16.0.1</replaceable>\n" +"\t}\n" +"}" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35045 +msgid "" +"For more advanced configuration, refer to <citerefentry><refentrytitle>hast." +"conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:35049 +msgid "" +"It is also possible to use host names in the <literal>remote</literal> " +"statements if the hosts are resolvable and defined either in <filename>/etc/" +"hosts</filename> or in the local <acronym>DNS</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35056 +msgid "" +"Once the configuration exists on both nodes, the <acronym>HAST</acronym> " +"pool can be created. Run these commands on both nodes to place the initial " +"metadata onto the local disk and to start " +"<citerefentry><refentrytitle>hastd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35061 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>hastctl create <replaceable>test</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>service hastd onestart</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:35065 +msgid "" +"It is <emphasis>not</emphasis> possible to use <acronym>GEOM</acronym> " +"providers with an existing file system or to convert an existing storage to " +"a <acronym>HAST</acronym>-managed pool. This procedure needs to store some " +"metadata on the provider and there will not be enough required space " +"available on an existing provider." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35074 +msgid "" +"A HAST node's <literal>primary</literal> or <literal>secondary</literal> " +"role is selected by an administrator, or software like " +"<application>Heartbeat</application>, using " +"<citerefentry><refentrytitle>hastctl</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. On the primary node, <literal>hasta</literal>, " +"issue this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35081 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>hastctl role primary <replaceable>test</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35083 +msgid "Run this command on the secondary node, <literal>hastb</literal>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35086 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>hastctl role secondary <replaceable>test</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35088 +msgid "Verify the result by running <command>hastctl</command> on each node:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35091 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>hastctl status <replaceable>test</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35093 +msgid "" +"Check the <literal>status</literal> line in the output. If it says " +"<literal>degraded</literal>, something is wrong with the configuration file. " +"It should say <literal>complete</literal> on each node, meaning that the " +"synchronization between the nodes has started. The synchronization completes " +"when <command>hastctl status</command> reports 0 bytes of <literal>dirty</" +"literal> extents." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35102 +msgid "" +"The next step is to create a file system on the <acronym>GEOM</acronym> " +"provider and mount it. This must be done on the <literal>primary</literal> " +"node. Creating the file system can take a few minutes, depending on the size " +"of the hard drive. This example creates a <acronym>UFS</acronym> file system " +"on <filename>/dev/hast/test</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35109 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>newfs -U /dev/hast/<replaceable>test</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>mkdir /hast/<replaceable>test</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/hast/<replaceable>test</replaceable> <replaceable>/hast/test</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35113 +msgid "" +"Once the <acronym>HAST</acronym> framework is configured properly, the final " +"step is to make sure that <acronym>HAST</acronym> is started automatically " +"during system boot. Add this line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:35119 +#, no-wrap +msgid "hastd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:35122 +msgid "Failover Configuration" +msgstr "容錯移轉設定" + +#. (itstool) path: sect3/para +#: book.translate.xml:35124 +msgid "" +"The goal of this example is to build a robust storage system which is " +"resistant to the failure of any given node. If the primary node fails, the " +"secondary node is there to take over seamlessly, check and mount the file " +"system, and continue to work without missing a single bit of data." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35131 +msgid "" +"To accomplish this task, the Common Address Redundancy Protocol " +"(<acronym>CARP</acronym>) is used to provide for automatic failover at the " +"<acronym>IP</acronym> layer. <acronym>CARP</acronym> allows multiple hosts " +"on the same network segment to share an <acronym>IP</acronym> address. Set " +"up <acronym>CARP</acronym> on both nodes of the cluster according to the " +"documentation available in <xref linkend=\"carp\"/>. In this example, each " +"node will have its own management <acronym>IP</acronym> address and a shared " +"<acronym>IP</acronym> address of <replaceable>172.16.0.254</replaceable>. " +"The primary <acronym>HAST</acronym> node of the cluster must be the master " +"<acronym>CARP</acronym> node." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35144 +msgid "" +"The <acronym>HAST</acronym> pool created in the previous section is now " +"ready to be exported to the other hosts on the network. This can be " +"accomplished by exporting it through <acronym>NFS</acronym> or " +"<application>Samba</application>, using the shared <acronym>IP</acronym> " +"address <replaceable>172.16.0.254</replaceable>. The only problem which " +"remains unresolved is an automatic failover should the primary node fail." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35154 +msgid "" +"In the event of <acronym>CARP</acronym> interfaces going up or down, the " +"FreeBSD operating system generates a <citerefentry><refentrytitle>devd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> event, making it " +"possible to watch for state changes on the <acronym>CARP</acronym> " +"interfaces. A state change on the <acronym>CARP</acronym> interface is an " +"indication that one of the nodes failed or came back online. These state " +"change events make it possible to run a script which will automatically " +"handle the HAST failover." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35163 +msgid "" +"To catch state changes on the <acronym>CARP</acronym> interfaces, add this " +"configuration to <filename>/etc/devd.conf</filename> on each node:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:35167 +#, no-wrap +msgid "" +"notify 30 {\n" +"\tmatch \"system\" \"IFNET\";\n" +"\tmatch \"subsystem\" \"carp0\";\n" +"\tmatch \"type\" \"LINK_UP\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch master\";\n" +"};\n" +"\n" +"notify 30 {\n" +"\tmatch \"system\" \"IFNET\";\n" +"\tmatch \"subsystem\" \"carp0\";\n" +"\tmatch \"type\" \"LINK_DOWN\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch slave\";\n" +"};" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:35182 +msgid "" +"If the systems are running FreeBSD 10 or higher, replace <filename>carp0</" +"filename> with the name of the <acronym>CARP</acronym>-configured interface." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35187 +msgid "" +"Restart <citerefentry><refentrytitle>devd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> on both nodes to put the new configuration into " +"effect:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:35190 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service devd restart</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35192 +msgid "" +"When the specified interface state changes by going up or down , the system " +"generates a notification, allowing the <citerefentry><refentrytitle>devd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> subsystem to run the " +"specified automatic failover script, <filename>/usr/local/sbin/carp-hast-" +"switch</filename>. For further clarification about this configuration, refer " +"to <citerefentry><refentrytitle>devd.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35200 +msgid "Here is an example of an automated failover script:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:35203 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"\n" +"# Original script by Freddie Cash <fjwcash@gmail.com>\n" +"# Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org>\n" +"# and Viktor Petersson <vpetersson@wireload.net>\n" +"\n" +"# The names of the HAST resources, as listed in /etc/hast.conf\n" +"resources=\"<replaceable>test</replaceable>\"\n" +"\n" +"# delay in mounting HAST resource after becoming master\n" +"# make your best guess\n" +"delay=3\n" +"\n" +"# logging\n" +"log=\"local0.debug\"\n" +"name=\"carp-hast\"\n" +"\n" +"# end of user configurable stuff\n" +"\n" +"case \"$1\" in\n" +"\tmaster)\n" +"\t\tlogger -p $log -t $name \"Switching to primary provider for ${resources}.\"\n" +"\t\tsleep ${delay}\n" +"\n" +"\t\t# Wait for any \"hastd secondary\" processes to stop\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\twhile $( pgrep -lf \"hastd: ${disk} \\(secondary\\)\" > /dev/null 2>&1 ); do\n" +"\t\t\t\tsleep 1\n" +"\t\t\tdone\n" +"\n" +"\t\t\t# Switch role for each disk\n" +"\t\t\thastctl role primary ${disk}\n" +"\t\t\tif [ $? -ne 0 ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"Unable to change role to primary for resource ${disk}.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\tdone\n" +"\n" +"\t\t# Wait for the /dev/hast/* devices to appear\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tfor I in $( jot 60 ); do\n" +"\t\t\t\t[ -c \"/dev/hast/${disk}\" ] && break\n" +"\t\t\t\tsleep 0.5\n" +"\t\t\tdone\n" +"\n" +"\t\t\tif [ ! -c \"/dev/hast/${disk}\" ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"GEOM provider /dev/hast/${disk} did not appear.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\tdone\n" +"\n" +"\t\tlogger -p $log -t $name \"Role for HAST resources ${resources} switched to primary.\"\n" +"\n" +"\n" +"\t\tlogger -p $log -t $name \"Mounting disks.\"\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tmkdir -p /hast/${disk}\n" +"\t\t\tfsck -p -y -t ufs /dev/hast/${disk}\n" +"\t\t\tmount /dev/hast/${disk} /hast/${disk}\n" +"\t\tdone\n" +"\n" +"\t;;\n" +"\n" +"\tslave)\n" +"\t\tlogger -p $log -t $name \"Switching to secondary provider for ${resources}.\"\n" +"\n" +"\t\t# Switch roles for the HAST resources\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tif ! mount | grep -q \"^/dev/hast/${disk} on \"\n" +"\t\t\tthen\n" +"\t\t\telse\n" +"\t\t\t\tumount -f /hast/${disk}\n" +"\t\t\tfi\n" +"\t\t\tsleep $delay\n" +"\t\t\thastctl role secondary ${disk} 2>&1\n" +"\t\t\tif [ $? -ne 0 ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"Unable to switch role to secondary for resource ${disk}.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\t\tlogger -p $log -t $name \"Role switched to secondary for resource ${disk}.\"\n" +"\t\tdone\n" +"\t;;\n" +"esac" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35287 +msgid "" +"In a nutshell, the script takes these actions when a node becomes master:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35292 +msgid "Promotes the <acronym>HAST</acronym> pool to primary on the other node." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35297 +msgid "Checks the file system under the <acronym>HAST</acronym> pool." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35302 +msgid "Mounts the pool." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35306 +msgid "When a node becomes secondary:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35310 +msgid "Unmounts the <acronym>HAST</acronym> pool." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35314 +msgid "Degrades the <acronym>HAST</acronym> pool to secondary." +msgstr "" + +#. (itstool) path: caution/para +#: book.translate.xml:35320 +msgid "" +"This is just an example script which serves as a proof of concept. It does " +"not handle all the possible scenarios and can be extended or altered in any " +"way, for example, to start or stop required services." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:35327 +msgid "" +"For this example, a standard <acronym>UFS</acronym> file system was used. To " +"reduce the time needed for recovery, a journal-enabled <acronym>UFS</" +"acronym> or <acronym>ZFS</acronym> file system can be used instead." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35334 +msgid "" +"More detailed information with additional examples can be found at <link " +"xlink:href=\"http://wiki.FreeBSD.org/HAST\">http://wiki.FreeBSD.org/HAST</" +"link>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35342 +msgid "" +"<acronym>HAST</acronym> should generally work without issues. However, as " +"with any other software product, there may be times when it does not work as " +"supposed. The sources of the problems may be different, but the rule of " +"thumb is to ensure that the time is synchronized between the nodes of the " +"cluster." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35349 +msgid "" +"When troubleshooting <acronym>HAST</acronym>, the debugging level of " +"<citerefentry><refentrytitle>hastd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> should be increased by starting <command>hastd</command> with " +"<literal>-d</literal>. This argument may be specified multiple times to " +"further increase the debugging level. Consider also using <literal>-F</" +"literal>, which starts <command>hastd</command> in the foreground." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:35358 +msgid "Recovering from the Split-brain Condition" +msgstr "自 Split-brain 情況復原" + +#. (itstool) path: sect3/para +#: book.translate.xml:35360 +msgid "" +"<firstterm>Split-brain</firstterm> occurs when the nodes of the cluster are " +"unable to communicate with each other, and both are configured as primary. " +"This is a dangerous condition because it allows both nodes to make " +"incompatible changes to the data. This problem must be corrected manually by " +"the system administrator." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:35367 +msgid "" +"The administrator must either decide which node has more important changes, " +"or perform the merge manually. Then, let <acronym>HAST</acronym> perform " +"full synchronization of the node which has the broken data. To do this, " +"issue these commands on the node which needs to be resynchronized:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:35374 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>hastctl role init <replaceable>test</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>hastctl create <replaceable>test</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>hastctl role secondary <replaceable>test</replaceable></userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:35391 +msgid "GEOM: Modular Disk Transformation Framework" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:35407 book.translate.xml:35491 book.translate.xml:35632 +#: book.translate.xml:36265 book.translate.xml:36413 book.translate.xml:36778 +#: book.translate.xml:36982 +msgid "<primary><acronym>GEOM</acronym></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:35410 +msgid "" +"<primary><acronym>GEOM</acronym> Disk Framework</primary> " +"<see><acronym>GEOM</acronym></see>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:35415 +msgid "" +"In FreeBSD, the <acronym>GEOM</acronym> framework permits access and control " +"to classes, such as Master Boot Records and <acronym>BSD</acronym> labels, " +"through the use of providers, or the disk devices in <filename>/dev</" +"filename>. By supporting various software <acronym>RAID</acronym> " +"configurations, <acronym>GEOM</acronym> transparently provides access to the " +"operating system and operating system utilities." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:35423 +msgid "" +"This chapter covers the use of disks under the <acronym>GEOM</acronym> " +"framework in FreeBSD. This includes the major <acronym>RAID</acronym> " +"control utilities which use the framework for configuration. This chapter is " +"not a definitive guide to <acronym>RAID</acronym> configurations and only " +"<acronym>GEOM</acronym>-supported <acronym>RAID</acronym> classifications " +"are discussed." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35435 +msgid "" +"What type of <acronym>RAID</acronym> support is available through " +"<acronym>GEOM</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35440 +msgid "" +"How to use the base utilities to configure, maintain, and manipulate the " +"various <acronym>RAID</acronym> levels." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35446 +msgid "" +"How to mirror, stripe, encrypt, and remotely connect disk devices through " +"<acronym>GEOM</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35451 +msgid "" +"How to troubleshoot disks attached to the <acronym>GEOM</acronym> framework." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35460 +msgid "Understand how FreeBSD treats disk devices (<xref linkend=\"disks\"/>)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:35464 +msgid "" +"Know how to configure and install a new kernel (<xref linkend=\"kernelconfig" +"\"/>)." +msgstr "了解如何設定並安裝新的核心 (<xref linkend=\"kernelconfig\"/>)。" + +#. (itstool) path: info/title +#: book.translate.xml:35471 +msgid "RAID0 - Striping" +msgstr "RAID0 - 分散 (Striping)" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:35482 book.translate.xml:36256 book.translate.xml:62212 +msgid "" +"<personname> <firstname>Murray</firstname> <surname>Stokely</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:35494 +msgid "<primary>Striping</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:35498 +msgid "" +"Striping combines several disk drives into a single volume. Striping can be " +"performed through the use of hardware <acronym>RAID</acronym> controllers. " +"The <acronym>GEOM</acronym> disk subsystem provides software support for " +"disk striping, also known as <acronym>RAID0</acronym>, without the need for " +"a <acronym>RAID</acronym> disk controller." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:35506 +msgid "" +"In <acronym>RAID0</acronym>, data is split into blocks that are written " +"across all the drives in the array. As seen in the following illustration, " +"instead of having to wait on the system to write 256k to one disk, " +"<acronym>RAID0</acronym> can simultaneously write 64k to each of the four " +"disks in the array, offering superior <acronym>I/O</acronym> performance. " +"This performance can be enhanced further by using multiple disk controllers." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:35517 +msgctxt "_" +msgid "external ref='geom/striping' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect1/mediaobject +#: book.translate.xml:35515 +msgid "" +"<imageobject> <imagedata fileref=\"geom/striping\" align=\"center\"/> </" +"imageobject> <textobject> <phrase>Disk Striping Illustration</phrase> </" +"textobject>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:35525 +msgid "" +"Each disk in a <acronym>RAID0</acronym> stripe must be of the same size, " +"since <acronym>I/O</acronym> requests are interleaved to read or write to " +"multiple disks in parallel." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:35531 +msgid "" +"<acronym>RAID0</acronym> does <emphasis>not</emphasis> provide any " +"redundancy. This means that if one disk in the array fails, all of the data " +"on the disks is lost. If the data is important, implement a backup strategy " +"that regularly saves backups to a remote system or device." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:35538 +msgid "" +"The process for creating a software, <acronym>GEOM</acronym>-based " +"<acronym>RAID0</acronym> on a FreeBSD system using commodity disks is as " +"follows. Once the stripe is created, refer to " +"<citerefentry><refentrytitle>gstripe</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for more information on how to control an existing " +"stripe." +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:35545 +msgid "Creating a Stripe of Unformatted <acronym>ATA</acronym> Disks" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:35549 +msgid "Load the <filename>geom_stripe.ko</filename> module:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:35552 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload geom_stripe</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:35556 +msgid "" +"Ensure that a suitable mount point exists. If this volume will become a root " +"partition, then temporarily use another mount point such as <filename>/mnt</" +"filename>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:35563 +msgid "" +"Determine the device names for the disks which will be striped, and create " +"the new stripe device. For example, to stripe two unused and unpartitioned " +"<acronym>ATA</acronym> disks with device names of <filename>/dev/ad2</" +"filename> and <filename>/dev/ad3</filename>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:35570 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput>\n" +"Metadata value stored on /dev/ad2.\n" +"Metadata value stored on /dev/ad3.\n" +"Done." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:35577 +msgid "" +"Write a standard label, also known as a partition table, on the new volume " +"and install the default bootstrap code:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:35581 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>bsdlabel -wB /dev/stripe/st0</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:35585 +msgid "" +"This process should create two other devices in <filename>/dev/stripe</" +"filename> in addition to <filename>st0</filename>. Those include " +"<filename>st0a</filename> and <filename>st0c</filename>. At this point, a " +"<acronym>UFS</acronym> file system can be created on <filename>st0a</" +"filename> using <command>newfs</command>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:35593 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>newfs -U /dev/stripe/st0a</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:35595 +msgid "" +"Many numbers will glide across the screen, and after a few seconds, the " +"process will be complete. The volume has been created and is ready to be " +"mounted." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:35601 +msgid "To manually mount the created disk stripe:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:35603 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount /dev/stripe/st0a /mnt</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:35607 +msgid "" +"To mount this striped file system automatically during the boot process, " +"place the volume information in <filename>/etc/fstab</filename>. In this " +"example, a permanent mount point, named <filename>stripe</filename>, is " +"created:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:35613 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mkdir /stripe</userinput>\n" +"<prompt>#</prompt> <userinput>echo \"/dev/stripe/st0a /stripe ufs rw 2 2\" \\</userinput>\n" +"<userinput>>> /etc/fstab</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:35619 +msgid "" +"The <filename>geom_stripe.ko</filename> module must also be automatically " +"loaded during system initialization, by adding a line to <filename>/boot/" +"loader.conf</filename>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:35624 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>echo 'geom_stripe_load=\"YES\"' >> /boot/loader.conf</userinput>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:35630 +msgid "RAID1 - Mirroring" +msgstr "RAID1 - 鏡射 (Mirroring)" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:35635 +msgid "<primary>Disk Mirroring</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:35638 +msgid "<primary>RAID1</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:35642 +msgid "" +"<acronym>RAID1</acronym>, or <emphasis>mirroring</emphasis>, is the " +"technique of writing the same data to more than one disk drive. Mirrors are " +"usually used to guard against data loss due to drive failure. Each drive in " +"a mirror contains an identical copy of the data. When an individual drive " +"fails, the mirror continues to work, providing data from the drives that are " +"still functioning. The computer keeps running, and the administrator has " +"time to replace the failed drive without user interruption." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:35652 +msgid "" +"Two common situations are illustrated in these examples. The first creates a " +"mirror out of two new drives and uses it as a replacement for an existing " +"single drive. The second example creates a mirror on a single new drive, " +"copies the old drive's data to it, then inserts the old drive into the " +"mirror. While this procedure is slightly more complicated, it only requires " +"one new drive." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:35660 +msgid "" +"Traditionally, the two drives in a mirror are identical in model and " +"capacity, but <citerefentry><refentrytitle>gmirror</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> does not require that. " +"Mirrors created with dissimilar drives will have a capacity equal to that of " +"the smallest drive in the mirror. Extra space on larger drives will be " +"unused. Drives inserted into the mirror later must have at least as much " +"capacity as the smallest drive already in the mirror." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:35669 +msgid "" +"The mirroring procedures shown here are non-destructive, but as with any " +"major disk operation, make a full backup first." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:35675 +msgid "" +"While <citerefentry><refentrytitle>dump</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> is used in these procedures to copy file systems, " +"it does not work on file systems with soft updates journaling. See " +"<citerefentry><refentrytitle>tunefs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for information on detecting and disabling soft updates " +"journaling." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:35682 +msgid "Metadata Issues" +msgstr "Metadata 問題" + +#. (itstool) path: sect2/para +#: book.translate.xml:35684 +msgid "" +"Many disk systems store metadata at the end of each disk. Old metadata " +"should be erased before reusing the disk for a mirror. Most problems are " +"caused by two particular types of leftover metadata: <acronym>GPT</acronym> " +"partition tables and old metadata from a previous mirror." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35690 +msgid "" +"<acronym>GPT</acronym> metadata can be erased with " +"<citerefentry><refentrytitle>gpart</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. This example erases both primary and backup <acronym>GPT</" +"acronym> partition tables from disk <filename>ada8</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35695 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>gpart destroy -F ada8</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35697 +msgid "" +"A disk can be removed from an active mirror and the metadata erased in one " +"step using <citerefentry><refentrytitle>gmirror</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. Here, the example disk <filename>ada8</filename> " +"is removed from the active mirror <filename>gm4</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35702 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>gmirror remove gm4 ada8</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35704 +msgid "" +"If the mirror is not running, but old mirror metadata is still on the disk, " +"use <command>gmirror clear</command> to remove it:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35708 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>gmirror clear ada8</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35710 +msgid "" +"<citerefentry><refentrytitle>gmirror</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> stores one block of metadata at the end of the " +"disk. Because <acronym>GPT</acronym> partition schemes also store metadata " +"at the end of the disk, mirroring entire <acronym>GPT</acronym> disks with " +"<citerefentry><refentrytitle>gmirror</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> is not recommended. <acronym>MBR</acronym> " +"partitioning is used here because it only stores a partition table at the " +"start of the disk and does not conflict with the mirror metadata." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:35720 +msgid "Creating a Mirror with Two New Disks" +msgstr "使用兩個新磁碟建立鏡射" + +#. (itstool) path: sect2/para +#: book.translate.xml:35722 +msgid "" +"In this example, FreeBSD has already been installed on a single disk, " +"<filename>ada0</filename>. Two new disks, <filename>ada1</filename> and " +"<filename>ada2</filename>, have been connected to the system. A new mirror " +"will be created on these two disks and used to replace the old single disk." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35729 +msgid "" +"The <filename>geom_mirror.ko</filename> kernel module must either be built " +"into the kernel or loaded at boot- or run-time. Manually load the kernel " +"module now:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35733 book.translate.xml:35860 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>gmirror load</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35735 +msgid "Create the mirror with the two new drives:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35737 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>gmirror label -v gm0 /dev/ada1 /dev/ada2</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35739 +msgid "" +"<filename>gm0</filename> is a user-chosen device name assigned to the new " +"mirror. After the mirror has been started, this device name appears in " +"<filename>/dev/mirror/</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35744 +msgid "" +"<acronym>MBR</acronym> and <application>bsdlabel</application> partition " +"tables can now be created on the mirror with " +"<citerefentry><refentrytitle>gpart</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. This example uses a traditional file system layout, with " +"partitions for <filename>/</filename>, swap, <filename>/var</filename>, " +"<filename>/tmp</filename>, and <filename>/usr</filename>. A single " +"<filename>/</filename> and a swap partition will also work." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35753 +msgid "" +"Partitions on the mirror do not have to be the same size as those on the " +"existing disk, but they must be large enough to hold all the data already " +"present on <filename>ada0</filename>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35758 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart create -s MBR mirror/gm0</userinput>\n" +"<prompt>#</prompt> <userinput>gpart add -t freebsd -a 4k mirror/gm0</userinput>\n" +"<prompt>#</prompt> <userinput>gpart show mirror/gm0</userinput>\n" +"=> 63 156301423 mirror/gm0 MBR (74G)\n" +" 63 63 - free - (31k)\n" +" 126 156301299 1 freebsd (74G)\n" +" 156301425 61 - free - (30k)" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35766 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart create -s BSD mirror/gm0s1</userinput>\n" +"<prompt>#</prompt> <userinput>gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1</userinput>\n" +"<prompt>#</prompt> <userinput>gpart add -t freebsd-swap -a 4k -s 4g mirror/gm0s1</userinput>\n" +"<prompt>#</prompt> <userinput>gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1</userinput>\n" +"<prompt>#</prompt> <userinput>gpart add -t freebsd-ufs -a 4k -s 1g mirror/gm0s1</userinput>\n" +"<prompt>#</prompt> <userinput>gpart add -t freebsd-ufs -a 4k mirror/gm0s1</userinput>\n" +"<prompt>#</prompt> <userinput>gpart show mirror/gm0s1</userinput>\n" +"=> 0 156301299 mirror/gm0s1 BSD (74G)\n" +" 0 2 - free - (1.0k)\n" +" 2 4194304 1 freebsd-ufs (2.0G)\n" +" 4194306 8388608 2 freebsd-swap (4.0G)\n" +" 12582914 4194304 4 freebsd-ufs (2.0G)\n" +" 16777218 2097152 5 freebsd-ufs (1.0G)\n" +" 18874370 137426928 6 freebsd-ufs (65G)\n" +" 156301298 1 - free - (512B)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35782 book.translate.xml:36004 +msgid "" +"Make the mirror bootable by installing bootcode in the <acronym>MBR</" +"acronym> and bsdlabel and setting the active slice:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35786 book.translate.xml:36008 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>\n" +"<prompt>#</prompt> <userinput>gpart set -a active -i 1 mirror/gm0</userinput>\n" +"<prompt>#</prompt> <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35790 +msgid "Format the file systems on the new mirror, enabling soft-updates." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35793 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>newfs -U /dev/mirror/gm0s1a</userinput>\n" +"<prompt>#</prompt> <userinput>newfs -U /dev/mirror/gm0s1d</userinput>\n" +"<prompt>#</prompt> <userinput>newfs -U /dev/mirror/gm0s1e</userinput>\n" +"<prompt>#</prompt> <userinput>newfs -U /dev/mirror/gm0s1f</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35798 +msgid "" +"File systems from the original <filename>ada0</filename> disk can now be " +"copied onto the mirror with <citerefentry><refentrytitle>dump</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>restore</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35802 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>\n" +"<prompt>#</prompt> <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/mirror/gm0s1d /mnt/var</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/mirror/gm0s1e /mnt/tmp</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/mirror/gm0s1f /mnt/usr</userinput>\n" +"<prompt>#</prompt> <userinput>dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)</userinput>\n" +"<prompt>#</prompt> <userinput>dump -C16 -b64 -0aL -f - /tmp | (cd /mnt/tmp && restore -rf -)</userinput>\n" +"<prompt>#</prompt> <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35811 +msgid "" +"Edit <filename>/mnt/etc/fstab</filename> to point to the new mirror file " +"systems:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:35814 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\tDump\tPass#\n" +"/dev/mirror/gm0s1a\t/\t\tufs\trw\t1\t1\n" +"/dev/mirror/gm0s1b\tnone\t\tswap\tsw\t0\t0\n" +"/dev/mirror/gm0s1d\t/var\t\tufs\trw\t2\t2\n" +"/dev/mirror/gm0s1e\t/tmp\t\tufs\trw\t2\t2\n" +"/dev/mirror/gm0s1f\t/usr\t\tufs\trw\t2\t2" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35821 +msgid "" +"If the <filename>geom_mirror.ko</filename> kernel module has not been built " +"into the kernel, <filename>/mnt/boot/loader.conf</filename> is edited to " +"load the module at boot:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:35826 book.translate.xml:36035 book.translate.xml:36155 +#, no-wrap +msgid "geom_mirror_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35828 +msgid "" +"Reboot the system to test the new mirror and verify that all data has been " +"copied. The <acronym>BIOS</acronym> will see the mirror as two individual " +"drives rather than a mirror. Because the drives are identical, it does not " +"matter which is selected to boot." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35834 +msgid "" +"See <xref linkend=\"gmirror-troubleshooting\"/> if there are problems " +"booting. Powering down and disconnecting the original <filename>ada0</" +"filename> disk will allow it to be kept as an offline backup." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35839 +msgid "In use, the mirror will behave just like the original single drive." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:35844 +msgid "Creating a Mirror with an Existing Drive" +msgstr "使用既有磁碟建立鏡射" + +#. (itstool) path: sect2/para +#: book.translate.xml:35846 +msgid "" +"In this example, FreeBSD has already been installed on a single disk, " +"<filename>ada0</filename>. A new disk, <filename>ada1</filename>, has been " +"connected to the system. A one-disk mirror will be created on the new disk, " +"the existing system copied onto it, and then the old disk will be inserted " +"into the mirror. This slightly complex procedure is required because " +"<command>gmirror</command> needs to put a 512-byte block of metadata at the " +"end of each disk, and the existing <filename>ada0</filename> has usually had " +"all of its space already allocated." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35857 +msgid "Load the <filename>geom_mirror.ko</filename> kernel module:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35862 +msgid "" +"Check the media size of the original disk with <command>diskinfo</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35865 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>diskinfo -v ada0 | head -n3</userinput>\n" +"/dev/ada0\n" +"\t512 # sectorsize\n" +"\t1000204821504 # mediasize in bytes (931G)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35870 +msgid "" +"Create a mirror on the new disk. To make certain that the mirror capacity is " +"not any larger than the original <filename>ada0</filename> drive, " +"<citerefentry><refentrytitle>gnop</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> is used to create a fake drive of the exact same size. This " +"drive does not store any data, but is used only to limit the size of the " +"mirror. When <citerefentry><refentrytitle>gmirror</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> creates the mirror, it " +"will restrict the capacity to the size of <filename>gzero.nop</filename>, " +"even if the new <filename>ada1</filename> drive has more space. Note that " +"the <replaceable>1000204821504</replaceable> in the second line is equal to " +"<filename>ada0</filename>'s media size as shown by <command>diskinfo</" +"command> above." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35883 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>geom zero load</userinput>\n" +"<prompt>#</prompt> <userinput>gnop create -s 1000204821504 gzero</userinput>\n" +"<prompt>#</prompt> <userinput>gmirror label -v gm0 gzero.nop ada1</userinput>\n" +"<prompt>#</prompt> <userinput>gmirror forget gm0</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35888 +msgid "" +"Since <filename>gzero.nop</filename> does not store any data, the mirror " +"does not see it as connected. The mirror is told to <quote>forget</quote> " +"unconnected components, removing references to <filename>gzero.nop</" +"filename>. The result is a mirror device containing only a single disk, " +"<filename>ada1</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35895 +msgid "" +"After creating <filename>gm0</filename>, view the partition table on " +"<filename>ada0</filename>. This output is from a 1 TB drive. If there is " +"some unallocated space at the end of the drive, the contents may be copied " +"directly from <filename>ada0</filename> to the new mirror." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35901 +msgid "" +"However, if the output shows that all of the space on the disk is allocated, " +"as in the following listing, there is no space available for the 512-byte " +"mirror metadata at the end of the disk." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35906 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart show ada0</userinput>\n" +"=> 63 1953525105 ada0 MBR (931G)\n" +" 63 1953525105 1 freebsd [active] (931G)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35910 +msgid "" +"In this case, the partition table must be edited to reduce the capacity by " +"one sector on <filename>mirror/gm0</filename>. The procedure will be " +"explained later." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35914 +msgid "" +"In either case, partition tables on the primary disk should be first copied " +"using <command>gpart backup</command> and <command>gpart restore</command>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35918 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart backup ada0 > table.ada0</userinput>\n" +"<prompt>#</prompt> <userinput>gpart backup ada0s1 > table.ada0s1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35921 +msgid "" +"These commands create two files, <filename>table.ada0</filename> and " +"<filename>table.ada0s1</filename>. This example is from a 1 TB drive:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35926 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cat table.ada0</userinput>\n" +"MBR 4\n" +"1 freebsd 63 1953525105 [active]" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35930 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cat table.ada0s1</userinput>\n" +"BSD 8\n" +"1 freebsd-ufs 0 4194304\n" +"2 freebsd-swap 4194304 33554432\n" +"4 freebsd-ufs 37748736 50331648\n" +"5 freebsd-ufs 88080384 41943040\n" +"6 freebsd-ufs 130023424 838860800\n" +"7 freebsd-ufs 968884224 984640881" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35939 +msgid "" +"If no free space is shown at the end of the disk, the size of both the slice " +"and the last partition must be reduced by one sector. Edit the two files, " +"reducing the size of both the slice and last partition by one. These are the " +"last numbers in each listing." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35945 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cat table.ada0</userinput>\n" +"MBR 4\n" +"1 freebsd 63 <emphasis>1953525104</emphasis> [active]" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35949 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cat table.ada0s1</userinput>\n" +"BSD 8\n" +"1 freebsd-ufs 0 4194304\n" +"2 freebsd-swap 4194304 33554432\n" +"4 freebsd-ufs 37748736 50331648\n" +"5 freebsd-ufs 88080384 41943040\n" +"6 freebsd-ufs 130023424 838860800\n" +"7 freebsd-ufs 968884224 <emphasis>984640880</emphasis>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35958 +msgid "" +"If at least one sector was unallocated at the end of the disk, these two " +"files can be used without modification." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35961 +msgid "Now restore the partition table into <filename>mirror/gm0</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35964 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart restore mirror/gm0 < table.ada0</userinput>\n" +"<prompt>#</prompt> <userinput>gpart restore mirror/gm0s1 < table.ada0s1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35967 +msgid "" +"Check the partition table with <command>gpart show</command>. This example " +"has <filename>gm0s1a</filename> for <filename>/</filename>, " +"<filename>gm0s1d</filename> for <filename>/var</filename>, <filename>gm0s1e</" +"filename> for <filename>/usr</filename>, <filename>gm0s1f</filename> for " +"<filename>/data1</filename>, and <filename>gm0s1g</filename> for <filename>/" +"data2</filename>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35976 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart show mirror/gm0</userinput>\n" +"=> 63 1953525104 mirror/gm0 MBR (931G)\n" +" 63 1953525042 1 freebsd [active] (931G)\n" +" 1953525105 62 - free - (31k)\n" +"\n" +"<prompt>#</prompt> <userinput>gpart show mirror/gm0s1</userinput>\n" +"=> 0 1953525042 mirror/gm0s1 BSD (931G)\n" +" 0 2097152 1 freebsd-ufs (1.0G)\n" +" 2097152 16777216 2 freebsd-swap (8.0G)\n" +" 18874368 41943040 4 freebsd-ufs (20G)\n" +" 60817408 20971520 5 freebsd-ufs (10G)\n" +" 81788928 629145600 6 freebsd-ufs (300G)\n" +" 710934528 1242590514 7 freebsd-ufs (592G)\n" +" 1953525042 63 - free - (31k)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35991 +msgid "" +"Both the slice and the last partition must have at least one free block at " +"the end of the disk." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:35994 +msgid "" +"Create file systems on these new partitions. The number of partitions will " +"vary to match the original disk, <filename>ada0</filename>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:35998 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>newfs -U /dev/mirror/gm0s1a</userinput>\n" +"<prompt>#</prompt> <userinput>newfs -U /dev/mirror/gm0s1d</userinput>\n" +"<prompt>#</prompt> <userinput>newfs -U /dev/mirror/gm0s1e</userinput>\n" +"<prompt>#</prompt> <userinput>newfs -U /dev/mirror/gm0s1f</userinput>\n" +"<prompt>#</prompt> <userinput>newfs -U /dev/mirror/gm0s1g</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36012 +msgid "" +"Adjust <filename>/etc/fstab</filename> to use the new partitions on the " +"mirror. Back up this file first by copying it to <filename>/etc/fstab.orig</" +"filename>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36016 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cp /etc/fstab /etc/fstab.orig</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36018 +msgid "" +"Edit <filename>/etc/fstab</filename>, replacing <filename>/dev/ada0</" +"filename> with <filename>mirror/gm0</filename>." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:36022 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\tDump\tPass#\n" +"/dev/mirror/gm0s1a\t/\t\tufs\trw\t1\t1\n" +"/dev/mirror/gm0s1b\tnone\t\tswap\tsw\t0\t0\n" +"/dev/mirror/gm0s1d\t/var\t\tufs\trw\t2\t2\n" +"/dev/mirror/gm0s1e\t/usr\t\tufs\trw\t2\t2\n" +"/dev/mirror/gm0s1f\t/data1\t\tufs\trw\t2\t2\n" +"/dev/mirror/gm0s1g\t/data2\t\tufs\trw\t2\t2" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36030 +msgid "" +"If the <filename>geom_mirror.ko</filename> kernel module has not been built " +"into the kernel, edit <filename>/boot/loader.conf</filename> to load it at " +"boot:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36037 +msgid "" +"File systems from the original disk can now be copied onto the mirror with " +"<citerefentry><refentrytitle>dump</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>restore</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. Each file system " +"dumped with <command>dump -L</command> will create a snapshot first, which " +"can take some time." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36042 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>\n" +"<prompt>#</prompt> <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/mirror/gm0s1d /mnt/var</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/mirror/gm0s1e /mnt/usr</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/mirror/gm0s1f /mnt/data1</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/mirror/gm0s1g /mnt/data2</userinput>\n" +"<prompt>#</prompt> <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)</userinput>\n" +"<prompt>#</prompt> <userinput>dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)</userinput>\n" +"<prompt>#</prompt> <userinput>dump -C16 -b64 -0aL -f - /data1 | (cd /mnt/data1 && restore -rf -)</userinput>\n" +"<prompt>#</prompt> <userinput>dump -C16 -b64 -0aL -f - /data2 | (cd /mnt/data2 && restore -rf -)</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36053 +msgid "" +"Restart the system, booting from <filename>ada1</filename>. If everything is " +"working, the system will boot from <filename>mirror/gm0</filename>, which " +"now contains the same data as <filename>ada0</filename> had previously. See " +"<xref linkend=\"gmirror-troubleshooting\"/> if there are problems booting." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36060 +msgid "" +"At this point, the mirror still consists of only the single <filename>ada1</" +"filename> disk." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36063 +msgid "" +"After booting from <filename>mirror/gm0</filename> successfully, the final " +"step is inserting <filename>ada0</filename> into the mirror." +msgstr "" + +#. (itstool) path: important/para +#: book.translate.xml:36068 +msgid "" +"When <filename>ada0</filename> is inserted into the mirror, its former " +"contents will be overwritten by data from the mirror. Make certain that " +"<filename>mirror/gm0</filename> has the same contents as <filename>ada0</" +"filename> before adding <filename>ada0</filename> to the mirror. If the " +"contents previously copied by <citerefentry><refentrytitle>dump</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>restore</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> are not identical to what was on <filename>ada0</" +"filename>, revert <filename>/etc/fstab</filename> to mount the file systems " +"on <filename>ada0</filename>, reboot, and start the whole procedure again." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36081 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gmirror insert gm0 ada0</userinput>\n" +"GEOM_MIRROR: Device gm0: rebuilding provider ada0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36084 +msgid "" +"Synchronization between the two disks will start immediately. Use " +"<command>gmirror status</command> to view the progress." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36088 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gmirror status</userinput>\n" +" Name Status Components\n" +"mirror/gm0 DEGRADED ada1 (ACTIVE)\n" +" ada0 (SYNCHRONIZING, 64%)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36093 +msgid "After a while, synchronization will finish." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36095 +#, no-wrap +msgid "" +"GEOM_MIRROR: Device gm0: rebuilding provider ada0 finished.\n" +"<prompt>#</prompt> <userinput>gmirror status</userinput>\n" +" Name Status Components\n" +"mirror/gm0 COMPLETE ada1 (ACTIVE)\n" +" ada0 (ACTIVE)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36101 +msgid "" +"<filename>mirror/gm0</filename> now consists of the two disks " +"<filename>ada0</filename> and <filename>ada1</filename>, and the contents " +"are automatically synchronized with each other. In use, <filename>mirror/" +"gm0</filename> will behave just like the original single drive." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36112 +msgid "" +"If the system no longer boots, <acronym>BIOS</acronym> settings may have to " +"be changed to boot from one of the new mirrored drives. Either mirror drive " +"can be used for booting, as they contain identical data." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36117 +msgid "" +"If the boot stops with this message, something is wrong with the mirror " +"device:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36120 +#, no-wrap +msgid "" +"Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.\n" +"\n" +"Loader variables:\n" +" vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a\n" +" vfs.root.mountfrom.options=rw\n" +"\n" +"Manual root filesystem specification:\n" +" <fstype>:<device> [options]\n" +" Mount <device> using filesystem <fstype>\n" +" and with the specified (optional) option list.\n" +"\n" +" eg. ufs:/dev/da0s1a\n" +" zfs:tank\n" +" cd9660:/dev/acd0 ro\n" +" (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)\n" +"\n" +" ? List valid disk boot devices\n" +" . Yield 1 second (for background tasks)\n" +" <empty line> Abort manual input\n" +"\n" +"mountroot>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36142 +msgid "" +"Forgetting to load the <filename>geom_mirror.ko</filename> module in " +"<filename>/boot/loader.conf</filename> can cause this problem. To fix it, " +"boot from a FreeBSD installation media and choose <literal>Shell</literal> " +"at the first prompt. Then load the mirror module and mount the mirror device:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36149 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gmirror load</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36152 +msgid "" +"Edit <filename>/mnt/boot/loader.conf</filename>, adding a line to load the " +"mirror module:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36157 +msgid "Save the file and reboot." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36159 +msgid "" +"Other problems that cause <errorname>error 19</errorname> require more " +"effort to fix. Although the system should boot from <filename>ada0</" +"filename>, another prompt to select a shell will appear if <filename>/etc/" +"fstab</filename> is incorrect. Enter <literal>ufs:/dev/ada0s1a</literal> at " +"the boot loader prompt and press <keycap>Enter</keycap>. Undo the edits in " +"<filename>/etc/fstab</filename> then mount the file systems from the " +"original disk (<filename>ada0</filename>) instead of the mirror. Reboot the " +"system and try the procedure again." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36170 +#, no-wrap +msgid "" +"Enter full pathname of shell or RETURN for /bin/sh:\n" +"<prompt>#</prompt> <userinput>cp /etc/fstab.orig /etc/fstab</userinput>\n" +"<prompt>#</prompt> <userinput>reboot</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36176 +msgid "Recovering from Disk Failure" +msgstr "自磁碟故障復原" + +#. (itstool) path: sect2/para +#: book.translate.xml:36178 +msgid "" +"The benefit of disk mirroring is that an individual disk can fail without " +"causing the mirror to lose any data. In the above example, if " +"<filename>ada0</filename> fails, the mirror will continue to work, providing " +"data from the remaining working drive, <filename>ada1</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36184 +msgid "" +"To replace the failed drive, shut down the system and physically replace the " +"failed drive with a new drive of equal or greater capacity. Manufacturers " +"use somewhat arbitrary values when rating drives in gigabytes, and the only " +"way to really be sure is to compare the total count of sectors shown by " +"<command>diskinfo -v</command>. A drive with larger capacity than the mirror " +"will work, although the extra space on the new drive will not be used." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36193 +msgid "" +"After the computer is powered back up, the mirror will be running in a " +"<quote>degraded</quote> mode with only one drive. The mirror is told to " +"forget drives that are not currently connected:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36198 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>gmirror forget gm0</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36200 +msgid "" +"Any old metadata should be cleared from the replacement disk using the " +"instructions in <xref linkend=\"geom-mirror-metadata\"/>. Then the " +"replacement disk, <filename>ada4</filename> for this example, is inserted " +"into the mirror:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36206 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>gmirror insert gm0 /dev/ada4</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36208 +msgid "" +"Resynchronization begins when the new drive is inserted into the mirror. " +"This process of copying mirror data to a new drive can take a while. " +"Performance of the mirror will be greatly reduced during the copy, so " +"inserting new drives is best done when there is low demand on the computer." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36214 +msgid "" +"Progress can be monitored with <command>gmirror status</command>, which " +"shows drives that are being synchronized and the percentage of completion. " +"During resynchronization, the status will be <computeroutput>DEGRADED</" +"computeroutput>, changing to <computeroutput>COMPLETE</computeroutput> when " +"the process is finished." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:36227 +msgid "<acronym>RAID</acronym>3 - Byte-level Striping with Dedicated Parity" +msgstr "<acronym>RAID</acronym>3 - 位元級分散儲存與獨立奇偶校驗" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:36231 +msgid "" +"<personname> <firstname>Mark</firstname> <surname>Gladman</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:36239 +msgid "" +"<personname> <firstname>Daniel</firstname> <surname>Gerzo</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:36248 +msgid "" +"<personname> <firstname>Tom</firstname> <surname>Rhodes</surname> </" +"personname> <contrib>Based on documentation by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:36268 +msgid "<primary>RAID3</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36272 +msgid "" +"<acronym>RAID</acronym>3 is a method used to combine several disk drives " +"into a single volume with a dedicated parity disk. In a <acronym>RAID</" +"acronym>3 system, data is split up into a number of bytes that are written " +"across all the drives in the array except for one disk which acts as a " +"dedicated parity disk. This means that disk reads from a <acronym>RAID</" +"acronym>3 implementation access all disks in the array. Performance can be " +"enhanced by using multiple disk controllers. The <acronym>RAID</acronym>3 " +"array provides a fault tolerance of 1 drive, while providing a capacity of 1 " +"- 1/n times the total capacity of all drives in the array, where n is the " +"number of hard drives in the array. Such a configuration is mostly suitable " +"for storing data of larger sizes such as multimedia files." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36287 +msgid "" +"At least 3 physical hard drives are required to build a <acronym>RAID</" +"acronym>3 array. Each disk must be of the same size, since <acronym>I/O</" +"acronym> requests are interleaved to read or write to multiple disks in " +"parallel. Also, due to the nature of <acronym>RAID</acronym>3, the number of " +"drives must be equal to 3, 5, 9, 17, and so on, or 2^n + 1." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36294 +msgid "" +"This section demonstrates how to create a software <acronym>RAID</acronym>3 " +"on a FreeBSD system." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:36298 +msgid "" +"While it is theoretically possible to boot from a <acronym>RAID</acronym>3 " +"array on FreeBSD, that configuration is uncommon and is not advised." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36304 +msgid "Creating a Dedicated <acronym>RAID</acronym>3 Array" +msgstr "建立 Dedicated <acronym>RAID</acronym>3 陣列" + +#. (itstool) path: sect2/para +#: book.translate.xml:36307 +msgid "" +"In FreeBSD, support for <acronym>RAID</acronym>3 is implemented by the " +"<citerefentry><refentrytitle>graid3</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> <acronym>GEOM</acronym> class. Creating a dedicated " +"<acronym>RAID</acronym>3 array on FreeBSD requires the following steps." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36314 +msgid "" +"First, load the <filename>geom_raid3.ko</filename> kernel module by issuing " +"one of the following commands:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:36318 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>graid3 load</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36320 +msgid "or:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:36322 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload geom_raid3</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36326 +msgid "" +"Ensure that a suitable mount point exists. This command creates a new " +"directory to use as the mount point:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:36330 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mkdir <replaceable>/multimedia</replaceable></userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36334 +msgid "" +"Determine the device names for the disks which will be added to the array, " +"and create the new <acronym>RAID</acronym>3 device. The final device listed " +"will act as the dedicated parity disk. This example uses three unpartitioned " +"<acronym>ATA</acronym> drives: <filename><replaceable>ada1</replaceable></" +"filename> and <filename><replaceable>ada2</replaceable></filename> for data, " +"and <filename><replaceable>ada3</replaceable></filename> for parity." +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:36345 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>graid3 label -v gr0 /dev/ada1 /dev/ada2 /dev/ada3</userinput>\n" +"Metadata value stored on /dev/ada1.\n" +"Metadata value stored on /dev/ada2.\n" +"Metadata value stored on /dev/ada3.\n" +"Done." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36353 +msgid "" +"Partition the newly created <filename>gr0</filename> device and put a " +"<acronym>UFS</acronym> file system on it:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:36357 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gpart create -s GPT /dev/raid3/gr0</userinput>\n" +"<prompt>#</prompt> <userinput>gpart add -t freebsd-ufs /dev/raid3/gr0</userinput>\n" +"<prompt>#</prompt> <userinput>newfs -j /dev/raid3/gr0p1</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36361 +msgid "" +"Many numbers will glide across the screen, and after a bit of time, the " +"process will be complete. The volume has been created and is ready to be " +"mounted:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:36365 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount /dev/raid3/gr0p1 /multimedia/</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36367 +msgid "The <acronym>RAID</acronym>3 array is now ready to use." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36372 +msgid "" +"Additional configuration is needed to retain this setup across system " +"reboots." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36377 +msgid "" +"The <filename>geom_raid3.ko</filename> module must be loaded before the " +"array can be mounted. To automatically load the kernel module during system " +"initialization, add the following line to <filename>/boot/loader.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:36383 +#, no-wrap +msgid "geom_raid3_load=\"YES\"" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36387 +msgid "" +"The following volume information must be added to <filename>/etc/fstab</" +"filename> in order to automatically mount the array's file system during the " +"system boot process:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:36392 +#, no-wrap +msgid "/dev/raid3/gr0p1\t/multimedia\tufs\trw\t2\t2" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:36400 +msgid "Software <acronym>RAID</acronym> Devices" +msgstr "軟體 <acronym>RAID</acronym> 裝置" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:36403 +msgid "" +"<personname> <firstname>Warren</firstname> <surname>Block</surname> </" +"personname> <contrib>Originally contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:36416 +msgid "" +"<primary>Software RAID Devices</primary> <secondary>Hardware-assisted RAID</" +"secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36421 +msgid "" +"Some motherboards and expansion cards add some simple hardware, usually just " +"a <acronym>ROM</acronym>, that allows the computer to boot from a " +"<acronym>RAID</acronym> array. After booting, access to the <acronym>RAID</" +"acronym> array is handled by software running on the computer's main " +"processor. This <quote>hardware-assisted software <acronym>RAID</acronym></" +"quote> gives <acronym>RAID</acronym> arrays that are not dependent on any " +"particular operating system, and which are functional even before an " +"operating system is loaded." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36432 +msgid "" +"Several levels of <acronym>RAID</acronym> are supported, depending on the " +"hardware in use. See <citerefentry><refentrytitle>graid</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for a complete list." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36436 +msgid "" +"<citerefentry><refentrytitle>graid</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> requires the <filename>geom_raid.ko</filename> kernel module, " +"which is included in the <filename>GENERIC</filename> kernel starting with " +"FreeBSD 9.1. If needed, it can be loaded manually with <command>graid load</" +"command>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36443 +msgid "Creating an Array" +msgstr "建立陣列" + +#. (itstool) path: sect2/para +#: book.translate.xml:36445 +msgid "" +"Software <acronym>RAID</acronym> devices often have a menu that can be " +"entered by pressing special keys when the computer is booting. The menu can " +"be used to create and delete <acronym>RAID</acronym> arrays. " +"<citerefentry><refentrytitle>graid</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> can also create arrays directly from the command line." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36451 +msgid "" +"<command>graid label</command> is used to create a new array. The " +"motherboard used for this example has an Intel software <acronym>RAID</" +"acronym> chipset, so the Intel metadata format is specified. The new array " +"is given a label of <filename>gm0</filename>, it is a mirror " +"(<acronym>RAID1</acronym>), and uses drives <filename>ada0</filename> and " +"<filename>ada1</filename>." +msgstr "" + +#. (itstool) path: caution/para +#: book.translate.xml:36461 +msgid "" +"Some space on the drives will be overwritten when they are made into a new " +"array. Back up existing data first!" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36466 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>graid label Intel gm0 RAID1 ada0 ada1</userinput>\n" +"GEOM_RAID: Intel-a29ea104: Array Intel-a29ea104 created.\n" +"GEOM_RAID: Intel-a29ea104: Disk ada0 state changed from NONE to ACTIVE.\n" +"GEOM_RAID: Intel-a29ea104: Subdisk gm0:0-ada0 state changed from NONE to ACTIVE.\n" +"GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE.\n" +"GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NONE to ACTIVE.\n" +"GEOM_RAID: Intel-a29ea104: Array started.\n" +"GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from STARTING to OPTIMAL.\n" +"Intel-a29ea104 created\n" +"GEOM_RAID: Intel-a29ea104: Provider raid/r0 for volume gm0 created." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36477 +msgid "A status check shows the new mirror is ready for use:" +msgstr "" + +#. (itstool) path: sect2/screen +#. (itstool) path: step/screen +#: book.translate.xml:36480 book.translate.xml:36686 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>graid status</userinput>\n" +" Name Status Components\n" +"raid/r0 OPTIMAL ada0 (ACTIVE (ACTIVE))\n" +" ada1 (ACTIVE (ACTIVE))" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36485 +msgid "" +"The array device appears in <filename>/dev/raid/</filename>. The first array " +"is called <filename>r0</filename>. Additional arrays, if present, will be " +"<filename>r1</filename>, <filename>r2</filename>, and so on." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36491 +msgid "" +"The <acronym>BIOS</acronym> menu on some of these devices can create arrays " +"with special characters in their names. To avoid problems with those special " +"characters, arrays are given simple numbered names like <filename>r0</" +"filename>. To show the actual labels, like <filename>gm0</filename> in the " +"example above, use <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36498 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sysctl kern.geom.raid.name_format=1</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36502 +msgid "Multiple Volumes" +msgstr "多磁碟區" + +#. (itstool) path: sect2/para +#: book.translate.xml:36504 +msgid "" +"Some software <acronym>RAID</acronym> devices support more than one " +"<emphasis>volume</emphasis> on an array. Volumes work like partitions, " +"allowing space on the physical drives to be split and used in different " +"ways. For example, Intel software <acronym>RAID</acronym> devices support " +"two volumes. This example creates a 40 G mirror for safely storing the " +"operating system, followed by a 20 G <acronym>RAID0</acronym> (stripe) " +"volume for fast temporary storage:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36514 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>graid label -S 40G Intel gm0 RAID1 ada0 ada1</userinput>\n" +"<prompt>#</prompt> <userinput>graid add -S 20G gm0 RAID0</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36517 +msgid "" +"Volumes appear as additional <filename>r<replaceable>X</replaceable></" +"filename> entries in <filename>/dev/raid/</filename>. An array with two " +"volumes will show <filename>r0</filename> and <filename>r1</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36523 +msgid "" +"See <citerefentry><refentrytitle>graid</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for the number of volumes supported by different " +"software <acronym>RAID</acronym> devices." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36528 +msgid "Converting a Single Drive to a Mirror" +msgstr "轉換單一磁碟為鏡射" + +#. (itstool) path: sect2/para +#: book.translate.xml:36530 +msgid "" +"Under certain specific conditions, it is possible to convert an existing " +"single drive to a <citerefentry><refentrytitle>graid</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> array without " +"reformatting. To avoid data loss during the conversion, the existing drive " +"must meet these minimum requirements:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:36538 +msgid "" +"The drive must be partitioned with the <acronym>MBR</acronym> partitioning " +"scheme. <acronym>GPT</acronym> or other partitioning schemes with metadata " +"at the end of the drive will be overwritten and corrupted by the " +"<citerefentry><refentrytitle>graid</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> metadata." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:36546 +msgid "" +"There must be enough unpartitioned and unused space at the end of the drive " +"to hold the <citerefentry><refentrytitle>graid</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> metadata. This metadata varies in size, but the " +"largest occupies 64 M, so at least that much free space is recommended." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36554 +msgid "" +"If the drive meets these requirements, start by making a full backup. Then " +"create a single-drive mirror with that drive:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36558 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>graid label Intel gm0 RAID1 ada0 NONE</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36560 +msgid "" +"<citerefentry><refentrytitle>graid</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> metadata was written to the end of the drive in the unused " +"space. A second drive can now be inserted into the mirror:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36564 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>graid insert raid/r0 ada1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36566 +msgid "" +"Data from the original drive will immediately begin to be copied to the " +"second drive. The mirror will operate in degraded status until the copy is " +"complete." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36572 +msgid "Inserting New Drives into the Array" +msgstr "插入新磁碟到陣列" + +#. (itstool) path: sect2/para +#: book.translate.xml:36574 +msgid "" +"Drives can be inserted into an array as replacements for drives that have " +"failed or are missing. If there are no failed or missing drives, the new " +"drive becomes a spare. For example, inserting a new drive into a working two-" +"drive mirror results in a two-drive mirror with one spare drive, not a three-" +"drive mirror." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36581 +msgid "" +"In the example mirror array, data immediately begins to be copied to the " +"newly-inserted drive. Any existing information on the new drive will be " +"overwritten." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36585 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>graid insert raid/r0 ada1</userinput>\n" +"GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE.\n" +"GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NONE to NEW.\n" +"GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NEW to REBUILD.\n" +"GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 rebuild start at 0." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36593 +msgid "Removing Drives from the Array" +msgstr "從陣列移除磁碟" + +#. (itstool) path: sect2/para +#: book.translate.xml:36595 +msgid "" +"Individual drives can be permanently removed from a from an array and their " +"metadata erased:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36598 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>graid remove raid/r0 ada1</userinput>\n" +"GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from ACTIVE to OFFLINE.\n" +"GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-[unknown] state changed from ACTIVE to NONE.\n" +"GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from OPTIMAL to DEGRADED." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36605 +msgid "Stopping the Array" +msgstr "停止陣列" + +#. (itstool) path: sect2/para +#: book.translate.xml:36607 +msgid "" +"An array can be stopped without removing metadata from the drives. The array " +"will be restarted when the system is booted." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36611 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>graid stop raid/r0</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36615 +msgid "Checking Array Status" +msgstr "檢查陣列狀態" + +#. (itstool) path: sect2/para +#: book.translate.xml:36617 +msgid "" +"Array status can be checked at any time. After a drive was added to the " +"mirror in the example above, data is being copied from the original drive to " +"the new drive:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36621 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>graid status</userinput>\n" +" Name Status Components\n" +"raid/r0 DEGRADED ada0 (ACTIVE (ACTIVE))\n" +" ada1 (ACTIVE (REBUILD 28%))" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36626 +msgid "" +"Some types of arrays, like <literal>RAID0</literal> or <literal>CONCAT</" +"literal>, may not be shown in the status report if disks have failed. To see " +"these partially-failed arrays, add <option>-ga</option>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36631 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>graid status -ga</userinput>\n" +" Name Status Components\n" +"Intel-e2d07d9a BROKEN ada6 (ACTIVE (ACTIVE))" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36637 +msgid "Deleting Arrays" +msgstr "刪除陣列" + +#. (itstool) path: sect2/para +#: book.translate.xml:36639 +msgid "" +"Arrays are destroyed by deleting all of the volumes from them. When the last " +"volume present is deleted, the array is stopped and metadata is removed from " +"the drives:" +msgstr "" + +#. (itstool) path: sect2/screen +#. (itstool) path: step/screen +#: book.translate.xml:36643 book.translate.xml:36693 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>graid delete raid/r0</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36647 +msgid "Deleting Unexpected Arrays" +msgstr "刪除預期之外的陣列" + +#. (itstool) path: sect2/para +#: book.translate.xml:36649 +msgid "" +"Drives may unexpectedly contain <citerefentry><refentrytitle>graid</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> metadata, either from " +"previous use or manufacturer testing. <citerefentry><refentrytitle>graid</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> will detect these " +"drives and create an array, interfering with access to the individual drive. " +"To remove the unwanted metadata:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36657 +msgid "" +"Boot the system. At the boot menu, select <literal>2</literal> for the " +"loader prompt. Enter:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:36660 +#, no-wrap +msgid "" +"OK <userinput>set kern.geom.raid.enable=0</userinput>\n" +"OK <userinput>boot</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36663 +msgid "" +"The system will boot with <citerefentry><refentrytitle>graid</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> disabled." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36668 +msgid "Back up all data on the affected drive." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36672 +msgid "" +"As a workaround, <citerefentry><refentrytitle>graid</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> array detection can be " +"disabled by adding" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:36675 +#, no-wrap +msgid "kern.geom.raid.enable=0" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36677 +msgid "to <filename>/boot/loader.conf</filename>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36679 +msgid "" +"To permanently remove the <citerefentry><refentrytitle>graid</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> metadata from the " +"affected drive, boot a FreeBSD installation <acronym>CD-ROM</acronym> or " +"memory stick, and select <literal>Shell</literal>. Use <command>status</" +"command> to find the name of the array, typically <literal>raid/r0</literal>:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36691 +msgid "Delete the volume by name:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36695 +msgid "" +"If there is more than one volume shown, repeat the process for each volume. " +"After the last array has been deleted, the volume will be destroyed." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:36699 +msgid "" +"Reboot and verify data, restoring from backup if necessary. After the " +"metadata has been removed, the <literal>kern.geom.raid.enable=0</literal> " +"entry in <filename>/boot/loader.conf</filename> can also be removed." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:36710 +msgid "<acronym>GEOM</acronym> Gate Network" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36712 +msgid "" +"<acronym>GEOM</acronym> provides a simple mechanism for providing remote " +"access to devices such as disks, <acronym>CD</acronym>s, and file systems " +"through the use of the <acronym>GEOM</acronym> Gate network daemon, " +"<application>ggated</application>. The system with the device runs the " +"server daemon which handles requests made by clients using " +"<application>ggatec</application>. The devices should not contain any " +"sensitive data as the connection between the client and the server is not " +"encrypted." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36722 +msgid "" +"Similar to <acronym>NFS</acronym>, which is discussed in <xref linkend=" +"\"network-nfs\"/>, <application>ggated</application> is configured using an " +"exports file. This file specifies which systems are permitted to access the " +"exported resources and what level of access they are offered. For example, " +"to give the client <systemitem class=\"ipaddress\">192.168.1.5</systemitem> " +"read and write access to the fourth slice on the first <acronym>SCSI</" +"acronym> disk, create <filename>/etc/gg.exports</filename> with this line:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:36732 +#, no-wrap +msgid "192.168.1.5 RW /dev/da0s4d" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36734 +msgid "" +"Before exporting the device, ensure it is not currently mounted. Then, start " +"<application>ggated</application>:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:36737 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ggated</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36739 +msgid "" +"Several options are available for specifying an alternate listening port or " +"changing the default location of the exports file. Refer to " +"<citerefentry><refentrytitle>ggated</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for details." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36743 +msgid "" +"To access the exported device on the client machine, first use " +"<command>ggatec</command> to specify the <acronym>IP</acronym> address of " +"the server and the device name of the exported device. If successful, this " +"command will display a <literal>ggate</literal> device name to mount. Mount " +"that specified device name on a free mount point. This example connects to " +"the <filename>/dev/da0s4d</filename> partition on <literal>192.168.1.1</" +"literal>, then mounts <filename>/dev/ggate0</filename> on <filename>/mnt</" +"filename>:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:36754 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ggatec create -o rw 192.168.1.1 /dev/da0s4d</userinput>\n" +"ggate0\n" +"<prompt>#</prompt> <userinput>mount /dev/ggate0 /mnt</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36758 +msgid "" +"The device on the server may now be accessed through <filename>/mnt</" +"filename> on the client. For more details about <command>ggatec</command> " +"and a few usage examples, refer to <citerefentry><refentrytitle>ggatec</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:36764 +msgid "" +"The mount will fail if the device is currently mounted on either the server " +"or any other client on the network. If simultaneous access is needed to " +"network resources, use <acronym>NFS</acronym> instead." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36770 +msgid "" +"When the device is no longer needed, unmount it with <command>umount</" +"command> so that the resource is available to other clients." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:36776 +msgid "Labeling Disk Devices" +msgstr "磁碟裝置標籤" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:36781 +msgid "<primary>Disk Labels</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36785 +msgid "" +"During system initialization, the FreeBSD kernel creates device nodes as " +"devices are found. This method of probing for devices raises some issues. " +"For instance, what if a new disk device is added via <acronym>USB</acronym>? " +"It is likely that a flash device may be handed the device name of " +"<filename>da0</filename> and the original <filename>da0</filename> shifted " +"to <filename>da1</filename>. This will cause issues mounting file systems if " +"they are listed in <filename>/etc/fstab</filename> which may also prevent " +"the system from booting." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36797 +msgid "" +"One solution is to chain <acronym>SCSI</acronym> devices in order so a new " +"device added to the <acronym>SCSI</acronym> card will be issued unused " +"device numbers. But what about <acronym>USB</acronym> devices which may " +"replace the primary <acronym>SCSI</acronym> disk? This happens because " +"<acronym>USB</acronym> devices are usually probed before the <acronym>SCSI</" +"acronym> card. One solution is to only insert these devices after the system " +"has been booted. Another method is to use only a single <acronym>ATA</" +"acronym> drive and never list the <acronym>SCSI</acronym> devices in " +"<filename>/etc/fstab</filename>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36809 +msgid "" +"A better solution is to use <command>glabel</command> to label the disk " +"devices and use the labels in <filename>/etc/fstab</filename>. Because " +"<command>glabel</command> stores the label in the last sector of a given " +"provider, the label will remain persistent across reboots. By using this " +"label as a device, the file system may always be mounted regardless of what " +"device node it is accessed through." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:36819 +msgid "" +"<command>glabel</command> can create both transient and permanent labels. " +"Only permanent labels are consistent across reboots. Refer to " +"<citerefentry><refentrytitle>glabel</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for more information on the differences between labels." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:36826 +msgid "Label Types and Examples" +msgstr "標籤類型與範例" + +#. (itstool) path: sect2/para +#: book.translate.xml:36828 +msgid "" +"Permanent labels can be a generic or a file system label. Permanent file " +"system labels can be created with <citerefentry><refentrytitle>tunefs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> or " +"<citerefentry><refentrytitle>newfs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. These types of labels are created in a sub-directory of " +"<filename>/dev</filename>, and will be named according to the file system " +"type. For example, <acronym>UFS</acronym>2 file system labels will be " +"created in <filename>/dev/ufs</filename>. Generic permanent labels can be " +"created with <command>glabel label</command>. These are not file system " +"specific and will be created in <filename>/dev/label</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36839 +msgid "" +"Temporary labels are destroyed at the next reboot. These labels are created " +"in <filename>/dev/label</filename> and are suited to experimentation. A " +"temporary label can be created using <command>glabel create</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36847 +msgid "" +"To create a permanent label for a <acronym>UFS</acronym>2 file system " +"without destroying any data, issue the following command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36851 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>tunefs -L <replaceable>home</replaceable> <replaceable>/dev/da3</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36853 +msgid "" +"A label should now exist in <filename>/dev/ufs</filename> which may be added " +"to <filename>/etc/fstab</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:36856 +#, no-wrap +msgid "/dev/ufs/home\t\t/home ufs rw 2 2" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:36859 +msgid "" +"The file system must not be mounted while attempting to run <command>tunefs</" +"command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36863 +msgid "Now the file system may be mounted:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36865 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount /home</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36867 +msgid "" +"From this point on, so long as the <filename>geom_label.ko</filename> kernel " +"module is loaded at boot with <filename>/boot/loader.conf</filename> or the " +"<literal>GEOM_LABEL</literal> kernel option is present, the device node may " +"change without any ill effect on the system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36874 +msgid "" +"File systems may also be created with a default label by using the <option>-" +"L</option> flag with <command>newfs</command>. Refer to " +"<citerefentry><refentrytitle>newfs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for more information." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36879 +msgid "The following command can be used to destroy the label:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36882 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>glabel destroy home</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36884 +msgid "The following example shows how to label the partitions of a boot disk." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:36888 +msgid "Labeling Partitions on the Boot Disk" +msgstr "在開機磁碟標記分割區標籤" + +#. (itstool) path: example/para +#: book.translate.xml:36890 +msgid "" +"By permanently labeling the partitions on the boot disk, the system should " +"be able to continue to boot normally, even if the disk is moved to another " +"controller or transferred to a different system. For this example, it is " +"assumed that a single <acronym>ATA</acronym> disk is used, which is " +"currently recognized by the system as <filename>ad0</filename>. It is also " +"assumed that the standard FreeBSD partition scheme is used, with <filename>/" +"</filename>, <filename>/var</filename>, <filename>/usr</filename> and " +"<filename>/tmp</filename>, as well as a swap partition." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:36904 +msgid "" +"Reboot the system, and at the <citerefentry><refentrytitle>loader</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> prompt, press " +"<keycap>4</keycap> to boot into single user mode. Then enter the following " +"commands:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:36908 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>glabel label rootfs /dev/ad0s1a</userinput>\n" +"GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs\n" +"<prompt>#</prompt> <userinput>glabel label var /dev/ad0s1d</userinput>\n" +"GEOM_LABEL: Label for provider /dev/ad0s1d is label/var\n" +"<prompt>#</prompt> <userinput>glabel label usr /dev/ad0s1f</userinput>\n" +"GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr\n" +"<prompt>#</prompt> <userinput>glabel label tmp /dev/ad0s1e</userinput>\n" +"GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp\n" +"<prompt>#</prompt> <userinput>glabel label swap /dev/ad0s1b</userinput>\n" +"GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap\n" +"<prompt>#</prompt> <userinput>exit</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:36920 +msgid "" +"The system will continue with multi-user boot. After the boot completes, " +"edit <filename>/etc/fstab</filename> and replace the conventional device " +"names, with their respective labels. The final <filename>/etc/fstab</" +"filename> will look like this:" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:36926 +#, no-wrap +msgid "" +"# Device Mountpoint FStype Options Dump Pass#\n" +"/dev/label/swap none swap sw 0 0\n" +"/dev/label/rootfs / ufs rw 1 1\n" +"/dev/label/tmp /tmp ufs rw 2 2\n" +"/dev/label/usr /usr ufs rw 2 2\n" +"/dev/label/var /var ufs rw 2 2" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:36933 +msgid "" +"The system can now be rebooted. If everything went well, it will come up " +"normally and <command>mount</command> will show:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:36937 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mount</userinput>\n" +"/dev/label/rootfs on / (ufs, local)\n" +"devfs on /dev (devfs, local)\n" +"/dev/label/tmp on /tmp (ufs, local, soft-updates)\n" +"/dev/label/usr on /usr (ufs, local, soft-updates)\n" +"/dev/label/var on /var (ufs, local, soft-updates)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36945 +msgid "" +"The <citerefentry><refentrytitle>glabel</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> class supports a label type for <acronym>UFS</" +"acronym> file systems, based on the unique file system id, <literal>ufsid</" +"literal>. These labels may be found in <filename>/dev/ufsid</filename> and " +"are created automatically during system startup. It is possible to use " +"<literal>ufsid</literal> labels to mount partitions using <filename>/etc/" +"fstab</filename>. Use <command>glabel status</command> to receive a list of " +"file systems and their corresponding <literal>ufsid</literal> labels:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:36956 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>glabel status</userinput>\n" +" Name Status Components\n" +"ufsid/486b6fc38d330916 N/A ad4s1d\n" +"ufsid/486b6fc16926168e N/A ad4s1f" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36961 +msgid "" +"In the above example, <filename>ad4s1d</filename> represents <filename>/var</" +"filename>, while <filename>ad4s1f</filename> represents <filename>/usr</" +"filename>. Using the <literal>ufsid</literal> values shown, these partitions " +"may now be mounted with the following entries in <filename>/etc/fstab</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:36969 +#, no-wrap +msgid "" +"/dev/ufsid/486b6fc38d330916 /var ufs rw 2 2\n" +"/dev/ufsid/486b6fc16926168e /usr ufs rw 2 2" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:36972 +msgid "" +"Any partitions with <literal>ufsid</literal> labels can be mounted in this " +"way, eliminating the need to manually create permanent labels, while still " +"enjoying the benefits of device name independent mounting." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:36980 +msgid "UFS Journaling Through <acronym>GEOM</acronym>" +msgstr "UFS Journaling 透過 <acronym>GEOM</acronym>" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:36985 +msgid "<primary>Journaling</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36989 +msgid "" +"Support for journals on <acronym>UFS</acronym> file systems is available on " +"FreeBSD. The implementation is provided through the <acronym>GEOM</acronym> " +"subsystem and is configured using <command>gjournal</command>. Unlike other " +"file system journaling implementations, the <command>gjournal</command> " +"method is block based and not implemented as part of the file system. It is " +"a <acronym>GEOM</acronym> extension." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:36998 +msgid "" +"Journaling stores a log of file system transactions, such as changes that " +"make up a complete disk write operation, before meta-data and file writes " +"are committed to the disk. This transaction log can later be replayed to " +"redo file system transactions, preventing file system inconsistencies." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:37004 +msgid "" +"This method provides another mechanism to protect against data loss and " +"inconsistencies of the file system. Unlike Soft Updates, which tracks and " +"enforces meta-data updates, and snapshots, which create an image of the file " +"system, a log is stored in disk space specifically for this task. For better " +"performance, the journal may be stored on another disk. In this " +"configuration, the journal provider or storage device should be listed after " +"the device to enable journaling on." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:37013 +msgid "" +"The <filename>GENERIC</filename> kernel provides support for " +"<command>gjournal</command>. To automatically load the " +"<filename>geom_journal.ko</filename> kernel module at boot time, add the " +"following line to <filename>/boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:37019 +#, no-wrap +msgid "geom_journal_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:37021 +msgid "" +"If a custom kernel is used, ensure the following line is in the kernel " +"configuration file:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:37024 +#, no-wrap +msgid "options\tGEOM_JOURNAL" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:37026 +msgid "" +"Once the module is loaded, a journal can be created on a new file system " +"using the following steps. In this example, <filename>da4</filename> is a " +"new <acronym>SCSI</acronym> disk:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:37031 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>gjournal load</userinput>\n" +"<prompt>#</prompt> <userinput>gjournal label /dev/<replaceable>da4</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:37034 +msgid "" +"This will load the module and create a <filename>/dev/da4.journal</filename> " +"device node on <filename>/dev/da4</filename>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:37038 +msgid "" +"A <acronym>UFS</acronym> file system may now be created on the journaled " +"device, then mounted on an existing mount point:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:37042 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>newfs -O 2 -J /dev/<replaceable>da4</replaceable>.journal</userinput>\n" +"<prompt>#</prompt> <userinput>mount /dev/<replaceable>da4</replaceable>.journal <replaceable>/mnt</replaceable></userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:37046 +msgid "" +"In the case of several slices, a journal will be created for each individual " +"slice. For instance, if <filename>ad4s1</filename> and <filename>ad4s2</" +"filename> are both slices, then <command>gjournal</command> will create " +"<filename>ad4s1.journal</filename> and <filename>ad4s2.journal</filename>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:37054 +msgid "" +"Journaling may also be enabled on current file systems by using " +"<command>tunefs</command>. However, <emphasis>always</emphasis> make a " +"backup before attempting to alter an existing file system. In most cases, " +"<command>gjournal</command> will fail if it is unable to create the journal, " +"but this does not protect against data loss incurred as a result of misusing " +"<command>tunefs</command>. Refer to <citerefentry><refentrytitle>gjournal</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>tunefs</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for more information about these commands." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:37064 +msgid "" +"It is possible to journal the boot disk of a FreeBSD system. Refer to the " +"article <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/" +"gjournal-desktop\">Implementing UFS Journaling on a Desktop PC</link> for " +"detailed instructions." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:37080 +msgid "The Z File System (<acronym>ZFS</acronym>)" +msgstr "Z 檔案系統 (<acronym>ZFS</acronym>)" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:37090 +msgid "" +"<personname> <firstname>Allan</firstname> <surname>Jude</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:37097 +msgid "" +"<personname> <firstname>Benedict</firstname> <surname>Reuschling</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:37104 +msgid "" +"<personname> <firstname>Warren</firstname> <surname>Block</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: chapter/para +#: book.translate.xml:37114 +msgid "" +"The <emphasis>Z File System</emphasis>, or <acronym>ZFS</acronym>, is an " +"advanced file system designed to overcome many of the major problems found " +"in previous designs." +msgstr "" + +#. (itstool) path: chapter/para +#: book.translate.xml:37119 +msgid "" +"Originally developed at <trademark>Sun</trademark>, ongoing open source " +"<acronym>ZFS</acronym> development has moved to the <link xlink:href=" +"\"http://open-zfs.org\">OpenZFS Project</link>." +msgstr "" + +#. (itstool) path: chapter/para +#: book.translate.xml:37122 +msgid "<acronym>ZFS</acronym> has three major design goals:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:37126 +msgid "" +"Data integrity: All data includes a <link linkend=\"zfs-term-checksum" +"\">checksum</link> of the data. When data is written, the checksum is " +"calculated and written along with it. When that data is later read back, the " +"checksum is calculated again. If the checksums do not match, a data error " +"has been detected. <acronym>ZFS</acronym> will attempt to automatically " +"correct errors when data redundancy is available." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:37137 +msgid "" +"Pooled storage: physical storage devices are added to a pool, and storage " +"space is allocated from that shared pool. Space is available to all file " +"systems, and can be increased by adding new storage devices to the pool." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:37144 +msgid "" +"Performance: multiple caching mechanisms provide increased performance. " +"<link linkend=\"zfs-term-arc\">ARC</link> is an advanced memory-based read " +"cache. A second level of disk-based read cache can be added with <link " +"linkend=\"zfs-term-l2arc\">L2ARC</link>, and disk-based synchronous write " +"cache is available with <link linkend=\"zfs-term-zil\">ZIL</link>." +msgstr "" + +#. (itstool) path: chapter/para +#: book.translate.xml:37154 +msgid "" +"A complete list of features and terminology is shown in <xref linkend=\"zfs-" +"term\"/>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:37158 +msgid "What Makes <acronym>ZFS</acronym> Different" +msgstr "什麼使 <acronym>ZFS</acronym> 與眾不同" + +#. (itstool) path: sect1/para +#: book.translate.xml:37160 +msgid "" +"<acronym>ZFS</acronym> is significantly different from any previous file " +"system because it is more than just a file system. Combining the " +"traditionally separate roles of volume manager and file system provides " +"<acronym>ZFS</acronym> with unique advantages. The file system is now aware " +"of the underlying structure of the disks. Traditional file systems could " +"only be created on a single disk at a time. If there were two disks then two " +"separate file systems would have to be created. In a traditional hardware " +"<acronym>RAID</acronym> configuration, this problem was avoided by " +"presenting the operating system with a single logical disk made up of the " +"space provided by a number of physical disks, on top of which the operating " +"system placed a file system. Even in the case of software <acronym>RAID</" +"acronym> solutions like those provided by <acronym>GEOM</acronym>, the " +"<acronym>UFS</acronym> file system living on top of the <acronym>RAID</" +"acronym> transform believed that it was dealing with a single device. " +"<acronym>ZFS</acronym>'s combination of the volume manager and the file " +"system solves this and allows the creation of many file systems all sharing " +"a pool of available storage. One of the biggest advantages to <acronym>ZFS</" +"acronym>'s awareness of the physical layout of the disks is that existing " +"file systems can be grown automatically when additional disks are added to " +"the pool. This new space is then made available to all of the file systems. " +"<acronym>ZFS</acronym> also has a number of different properties that can be " +"applied to each file system, giving many advantages to creating a number of " +"different file systems and datasets rather than a single monolithic file " +"system." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:37191 +msgid "Quick Start Guide" +msgstr "快速入門指南" + +#. (itstool) path: sect1/para +#: book.translate.xml:37193 +msgid "" +"There is a startup mechanism that allows FreeBSD to mount <acronym>ZFS</" +"acronym> pools during system initialization. To enable it, add this line to " +"<filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:37198 +#, no-wrap +msgid "zfs_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:37200 +msgid "Then start the service:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:37202 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service zfs start</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:37204 +msgid "" +"The examples in this section assume three <acronym>SCSI</acronym> disks with " +"the device names <filename><replaceable>da0</replaceable></filename>, " +"<filename><replaceable>da1</replaceable></filename>, and " +"<filename><replaceable>da2</replaceable></filename>. Users of <acronym>SATA</" +"acronym> hardware should instead use <filename><replaceable>ada</" +"replaceable></filename> device names." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:37214 +msgid "Single Disk Pool" +msgstr "單磁碟儲存池" + +#. (itstool) path: sect2/para +#: book.translate.xml:37216 +msgid "To create a simple, non-redundant pool using a single disk device:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37219 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zpool create <replaceable>example</replaceable> <replaceable>/dev/da0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37221 +msgid "To view the new pool, review the output of <command>df</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37224 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>df</userinput>\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 2026030 235230 1628718 13% /\n" +"devfs 1 1 0 100% /dev\n" +"/dev/ad0s1d 54098308 1032846 48737598 2% /usr\n" +"example 17547136 0 17547136 0% /example" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37231 +msgid "" +"This output shows that the <literal>example</literal> pool has been created " +"and mounted. It is now accessible as a file system. Files can be created on " +"it and users can browse it:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37236 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /example</userinput>\n" +"<prompt>#</prompt> <userinput>ls</userinput>\n" +"<prompt>#</prompt> <userinput>touch testfile</userinput>\n" +"<prompt>#</prompt> <userinput>ls -al</userinput>\n" +"total 4\n" +"drwxr-xr-x 2 root wheel 3 Aug 29 23:15 .\n" +"drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..\n" +"-rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfile" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37245 +msgid "" +"However, this pool is not taking advantage of any <acronym>ZFS</acronym> " +"features. To create a dataset on this pool with compression enabled:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37249 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs create example/compressed</userinput>\n" +"<prompt>#</prompt> <userinput>zfs set compression=gzip example/compressed</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37252 +msgid "" +"The <literal>example/compressed</literal> dataset is now a <acronym>ZFS</" +"acronym> compressed file system. Try copying some large files to <filename>/" +"example/compressed</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37257 +msgid "Compression can be disabled with:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37259 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set compression=off example/compressed</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37261 +msgid "" +"To unmount a file system, use <command>zfs umount</command> and then verify " +"with <command>df</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37265 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs umount example/compressed</userinput>\n" +"<prompt>#</prompt> <userinput>df</userinput>\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 2026030 235232 1628716 13% /\n" +"devfs 1 1 0 100% /dev\n" +"/dev/ad0s1d 54098308 1032864 48737580 2% /usr\n" +"example 17547008 0 17547008 0% /example" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37273 +msgid "" +"To re-mount the file system to make it accessible again, use <command>zfs " +"mount</command> and verify with <command>df</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37277 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs mount example/compressed</userinput>\n" +"<prompt>#</prompt> <userinput>df</userinput>\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 2026030 235234 1628714 13% /\n" +"devfs 1 1 0 100% /dev\n" +"/dev/ad0s1d 54098308 1032864 48737580 2% /usr\n" +"example 17547008 0 17547008 0% /example\n" +"example/compressed 17547008 0 17547008 0% /example/compressed" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37286 +msgid "" +"The pool and file system may also be observed by viewing the output from " +"<command>mount</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37289 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mount</userinput>\n" +"/dev/ad0s1a on / (ufs, local)\n" +"devfs on /dev (devfs, local)\n" +"/dev/ad0s1d on /usr (ufs, local, soft-updates)\n" +"example on /example (zfs, local)\n" +"example/compressed on /example/compressed (zfs, local)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37296 +msgid "" +"After creation, <acronym>ZFS</acronym> datasets can be used like any file " +"systems. However, many other features are available which can be set on a " +"per-dataset basis. In the example below, a new file system called " +"<literal>data</literal> is created. Important files will be stored here, so " +"it is configured to keep two copies of each data block:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37304 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs create example/data</userinput>\n" +"<prompt>#</prompt> <userinput>zfs set copies=2 example/data</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37307 +msgid "" +"It is now possible to see the data and space utilization by issuing " +"<command>df</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37310 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>df</userinput>\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 2026030 235234 1628714 13% /\n" +"devfs 1 1 0 100% /dev\n" +"/dev/ad0s1d 54098308 1032864 48737580 2% /usr\n" +"example 17547008 0 17547008 0% /example\n" +"example/compressed 17547008 0 17547008 0% /example/compressed\n" +"example/data 17547008 0 17547008 0% /example/data" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37319 +msgid "" +"Notice that each file system on the pool has the same amount of available " +"space. This is the reason for using <command>df</command> in these examples, " +"to show that the file systems use only the amount of space they need and all " +"draw from the same pool. <acronym>ZFS</acronym> eliminates concepts such as " +"volumes and partitions, and allows multiple file systems to occupy the same " +"pool." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37327 +msgid "" +"To destroy the file systems and then destroy the pool as it is no longer " +"needed:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37330 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs destroy example/compressed</userinput>\n" +"<prompt>#</prompt> <userinput>zfs destroy example/data</userinput>\n" +"<prompt>#</prompt> <userinput>zpool destroy example</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:37336 +msgid "RAID-Z" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37338 +msgid "" +"Disks fail. One method of avoiding data loss from disk failure is to " +"implement <acronym>RAID</acronym>. <acronym>ZFS</acronym> supports this " +"feature in its pool design. <acronym>RAID-Z</acronym> pools require three or " +"more disks but provide more usable space than mirrored pools." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37345 +msgid "" +"This example creates a <acronym>RAID-Z</acronym> pool, specifying the disks " +"to add to the pool:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37348 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zpool create storage raidz da0 da1 da2</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:37351 +msgid "" +"<trademark>Sun</trademark> recommends that the number of devices used in a " +"<acronym>RAID</acronym>-Z configuration be between three and nine. For " +"environments requiring a single pool consisting of 10 disks or more, " +"consider breaking it up into smaller <acronym>RAID-Z</acronym> groups. If " +"only two disks are available and redundancy is a requirement, consider using " +"a <acronym>ZFS</acronym> mirror. Refer to " +"<citerefentry><refentrytitle>zpool</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for more details." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37361 +msgid "" +"The previous example created the <literal>storage</literal> zpool. This " +"example makes a new file system called <literal>home</literal> in that pool:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37366 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs create storage/home</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37368 +msgid "" +"Compression and keeping extra copies of directories and files can be enabled:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37371 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs set copies=2 storage/home</userinput>\n" +"<prompt>#</prompt> <userinput>zfs set compression=gzip storage/home</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37374 +msgid "" +"To make this the new home directory for users, copy the user data to this " +"directory and create the appropriate symbolic links:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37378 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cp -rp /home/* /storage/home</userinput>\n" +"<prompt>#</prompt> <userinput>rm -rf /home /usr/home</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s /storage/home /home</userinput>\n" +"<prompt>#</prompt> <userinput>ln -s /storage/home /usr/home</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37383 +msgid "" +"Users data is now stored on the freshly-created <filename>/storage/home</" +"filename>. Test by adding a new user and logging in as that user." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37387 +msgid "Try creating a file system snapshot which can be rolled back later:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37390 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs snapshot storage/home@08-30-08</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37392 +msgid "" +"Snapshots can only be made of a full file system, not a single directory or " +"file." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37395 +msgid "" +"The <literal>@</literal> character is a delimiter between the file system " +"name or the volume name. If an important directory has been accidentally " +"deleted, the file system can be backed up, then rolled back to an earlier " +"snapshot when the directory still existed:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37401 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs rollback storage/home@08-30-08</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37403 +msgid "" +"To list all available snapshots, run <command>ls</command> in the file " +"system's <filename>.zfs/snapshot</filename> directory. For example, to see " +"the previously taken snapshot:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37408 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ls /storage/home/.zfs/snapshot</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37410 +msgid "" +"It is possible to write a script to perform regular snapshots on user data. " +"However, over time, snapshots can consume a great deal of disk space. The " +"previous snapshot can be removed using the command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37415 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs destroy storage/home@08-30-08</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37417 +msgid "" +"After testing, <filename>/storage/home</filename> can be made the real " +"<filename>/home</filename> using this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37421 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set mountpoint=/home storage/home</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37423 +msgid "" +"Run <command>df</command> and <command>mount</command> to confirm that the " +"system now treats the file system as the real <filename>/home</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37427 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mount</userinput>\n" +"/dev/ad0s1a on / (ufs, local)\n" +"devfs on /dev (devfs, local)\n" +"/dev/ad0s1d on /usr (ufs, local, soft-updates)\n" +"storage on /storage (zfs, local)\n" +"storage/home on /home (zfs, local)\n" +"<prompt>#</prompt> <userinput>df</userinput>\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 2026030 235240 1628708 13% /\n" +"devfs 1 1 0 100% /dev\n" +"/dev/ad0s1d 54098308 1032826 48737618 2% /usr\n" +"storage 26320512 0 26320512 0% /storage\n" +"storage/home 26320512 0 26320512 0% /home" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37441 +msgid "" +"This completes the <acronym>RAID-Z</acronym> configuration. Daily status " +"updates about the file systems created can be generated as part of the " +"nightly <citerefentry><refentrytitle>periodic</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> runs. Add this line to <filename>/etc/periodic." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:37447 +#, no-wrap +msgid "daily_status_zfs_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:37451 +msgid "Recovering <acronym>RAID-Z</acronym>" +msgstr "復原 <acronym>RAID-Z</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:37453 +msgid "" +"Every software <acronym>RAID</acronym> has a method of monitoring its " +"<literal>state</literal>. The status of <acronym>RAID-Z</acronym> devices " +"may be viewed with this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37458 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zpool status -x</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37460 +msgid "" +"If all pools are <link linkend=\"zfs-term-online\">Online</link> and " +"everything is normal, the message shows:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37464 +#, no-wrap +msgid "all pools are healthy" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37466 +msgid "" +"If there is an issue, perhaps a disk is in the <link linkend=\"zfs-term-" +"offline\">Offline</link> state, the pool state will look similar to:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37470 +#, no-wrap +msgid "" +" pool: storage\n" +" state: DEGRADED\n" +"status: One or more devices has been taken offline by the administrator.\n" +"\tSufficient replicas exist for the pool to continue functioning in a\n" +"\tdegraded state.\n" +"action: Online the device using 'zpool online' or replace the device with\n" +"\t'zpool replace'.\n" +" scrub: none requested\n" +"config:\n" +"\n" +"\tNAME STATE READ WRITE CKSUM\n" +"\tstorage DEGRADED 0 0 0\n" +"\t raidz1 DEGRADED 0 0 0\n" +"\t da0 ONLINE 0 0 0\n" +"\t da1 OFFLINE 0 0 0\n" +"\t da2 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37489 +msgid "" +"This indicates that the device was previously taken offline by the " +"administrator with this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37492 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zpool offline storage da1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37494 +msgid "" +"Now the system can be powered down to replace <filename>da1</filename>. When " +"the system is back online, the failed disk can replaced in the pool:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37498 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zpool replace storage da1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37500 +msgid "" +"From here, the status may be checked again, this time without <option>-x</" +"option> so that all pools are shown:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37504 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status storage</userinput>\n" +" pool: storage\n" +" state: ONLINE\n" +" scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008\n" +"config:\n" +"\n" +"\tNAME STATE READ WRITE CKSUM\n" +"\tstorage ONLINE 0 0 0\n" +"\t raidz1 ONLINE 0 0 0\n" +"\t da0 ONLINE 0 0 0\n" +"\t da1 ONLINE 0 0 0\n" +"\t da2 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37519 +msgid "In this example, everything is normal." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:37523 +msgid "Data Verification" +msgstr "資料檢驗" + +#. (itstool) path: sect2/para +#: book.translate.xml:37525 +msgid "" +"<acronym>ZFS</acronym> uses checksums to verify the integrity of stored " +"data. These are enabled automatically upon creation of file systems." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:37530 +msgid "" +"Checksums can be disabled, but it is <emphasis>not</emphasis> recommended! " +"Checksums take very little storage space and provide data integrity. Many " +"<acronym>ZFS</acronym> features will not work properly with checksums " +"disabled. There is no noticeable performance gain from disabling these " +"checksums." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37538 +msgid "" +"Checksum verification is known as <emphasis>scrubbing</emphasis>. Verify the " +"data integrity of the <literal>storage</literal> pool with this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37542 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zpool scrub storage</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37544 +msgid "" +"The duration of a scrub depends on the amount of data stored. Larger amounts " +"of data will take proportionally longer to verify. Scrubs are very " +"<acronym>I/O</acronym> intensive, and only one scrub is allowed to run at a " +"time. After the scrub completes, the status can be viewed with " +"<command>status</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37551 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status storage</userinput>\n" +" pool: storage\n" +" state: ONLINE\n" +" scrub: scrub completed with 0 errors on Sat Jan 26 19:57:37 2013\n" +"config:\n" +"\n" +"\tNAME STATE READ WRITE CKSUM\n" +"\tstorage ONLINE 0 0 0\n" +"\t raidz1 ONLINE 0 0 0\n" +"\t da0 ONLINE 0 0 0\n" +"\t da1 ONLINE 0 0 0\n" +"\t da2 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37566 +msgid "" +"The completion date of the last scrub operation is displayed to help track " +"when another scrub is required. Routine scrubs help protect data from silent " +"corruption and ensure the integrity of the pool." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37571 +msgid "" +"Refer to <citerefentry><refentrytitle>zfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>zpool</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for other " +"<acronym>ZFS</acronym> options." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:37577 +msgid "<command>zpool</command> Administration" +msgstr "<command>zpool</command> 管理" + +#. (itstool) path: sect1/para +#: book.translate.xml:37579 +msgid "" +"<acronym>ZFS</acronym> administration is divided between two main utilities. " +"The <command>zpool</command> utility controls the operation of the pool and " +"deals with adding, removing, replacing, and managing disks. The <link " +"linkend=\"zfs-zfs\"><command>zfs</command></link> utility deals with " +"creating, destroying, and managing datasets, both <link linkend=\"zfs-term-" +"filesystem\">file systems</link> and <link linkend=\"zfs-term-volume" +"\">volumes</link>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:37589 +msgid "Creating and Destroying Storage Pools" +msgstr "建立與摧毀儲存池" + +#. (itstool) path: sect2/para +#: book.translate.xml:37591 +msgid "" +"Creating a <acronym>ZFS</acronym> storage pool (<emphasis>zpool</emphasis>) " +"involves making a number of decisions that are relatively permanent because " +"the structure of the pool cannot be changed after the pool has been created. " +"The most important decision is what types of vdevs into which to group the " +"physical disks. See the list of <link linkend=\"zfs-term-vdev\">vdev types</" +"link> for details about the possible options. After the pool has been " +"created, most vdev types do not allow additional disks to be added to the " +"vdev. The exceptions are mirrors, which allow additional disks to be added " +"to the vdev, and stripes, which can be upgraded to mirrors by attaching an " +"additional disk to the vdev. Although additional vdevs can be added to " +"expand a pool, the layout of the pool cannot be changed after pool creation. " +"Instead, the data must be backed up and the pool destroyed and recreated." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37608 +msgid "Create a simple mirror pool:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37610 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool create <replaceable>mypool</replaceable> mirror <replaceable>/dev/ada1</replaceable> <replaceable>/dev/ada2</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: none requested\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada1 ONLINE 0 0 0\n" +" ada2 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37625 +msgid "" +"Multiple vdevs can be created at once. Specify multiple groups of disks " +"separated by the vdev type keyword, <literal>mirror</literal> in this " +"example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37629 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool create <replaceable>mypool</replaceable> mirror <replaceable>/dev/ada1</replaceable> <replaceable>/dev/ada2</replaceable> mirror <replaceable>/dev/ada3</replaceable> <replaceable>/dev/ada4</replaceable></userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: none requested\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada1 ONLINE 0 0 0\n" +" ada2 ONLINE 0 0 0\n" +" mirror-1 ONLINE 0 0 0\n" +" ada3 ONLINE 0 0 0\n" +" ada4 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37646 +msgid "" +"Pools can also be constructed using partitions rather than whole disks. " +"Putting <acronym>ZFS</acronym> in a separate partition allows the same disk " +"to have other partitions for other purposes. In particular, partitions with " +"bootcode and file systems needed for booting can be added. This allows " +"booting from disks that are also members of a pool. There is no performance " +"penalty on FreeBSD when using a partition rather than a whole disk. Using " +"partitions also allows the administrator to <emphasis>under-provision</" +"emphasis> the disks, using less than the full capacity. If a future " +"replacement disk of the same nominal size as the original actually has a " +"slightly smaller capacity, the smaller partition will still fit, and the " +"replacement disk can still be used." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37661 +msgid "" +"Create a <link linkend=\"zfs-term-vdev-raidz\">RAID-Z2</link> pool using " +"partitions:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37665 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool create <replaceable>mypool</replaceable> raidz2 <replaceable>/dev/ada0p3</replaceable> <replaceable>/dev/ada1p3</replaceable> <replaceable>/dev/ada2p3</replaceable> <replaceable>/dev/ada3p3</replaceable> <replaceable>/dev/ada4p3</replaceable> <replaceable>/dev/ada5p3</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: none requested\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" raidz2-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0\n" +" ada2p3 ONLINE 0 0 0\n" +" ada3p3 ONLINE 0 0 0\n" +" ada4p3 ONLINE 0 0 0\n" +" ada5p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37684 +msgid "" +"A pool that is no longer needed can be destroyed so that the disks can be " +"reused. Destroying a pool involves first unmounting all of the datasets in " +"that pool. If the datasets are in use, the unmount operation will fail and " +"the pool will not be destroyed. The destruction of the pool can be forced " +"with <option>-f</option>, but this can cause undefined behavior in " +"applications which had open files on those datasets." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:37695 +msgid "Adding and Removing Devices" +msgstr "加入與移除裝置" + +#. (itstool) path: sect2/para +#: book.translate.xml:37697 +msgid "" +"There are two cases for adding disks to a zpool: attaching a disk to an " +"existing vdev with <command>zpool attach</command>, or adding vdevs to the " +"pool with <command>zpool add</command>. Only some <link linkend=\"zfs-term-" +"vdev\">vdev types</link> allow disks to be added to the vdev after creation." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37704 +msgid "" +"A pool created with a single disk lacks redundancy. Corruption can be " +"detected but not repaired, because there is no other copy of the data. The " +"<link linkend=\"zfs-term-copies\">copies</link> property may be able to " +"recover from a small failure such as a bad sector, but does not provide the " +"same level of protection as mirroring or <acronym>RAID-Z</acronym>. Starting " +"with a pool consisting of a single disk vdev, <command>zpool attach</" +"command> can be used to add an additional disk to the vdev, creating a " +"mirror. <command>zpool attach</command> can also be used to add additional " +"disks to a mirror group, increasing redundancy and read performance. If the " +"disks being used for the pool are partitioned, replicate the layout of the " +"first disk on to the second, <command>gpart backup</command> and " +"<command>gpart restore</command> can be used to make this process easier." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37722 +msgid "" +"Upgrade the single disk (stripe) vdev <replaceable>ada0p3</replaceable> to a " +"mirror by attaching <replaceable>ada1p3</replaceable>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37726 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: none requested\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool attach <replaceable>mypool</replaceable> <replaceable>ada0p3</replaceable> <replaceable>ada1p3</replaceable></userinput>\n" +"Make sure to wait until resilver is done before rebooting.\n" +"\n" +"If you boot from pool 'mypool', you may need to update\n" +"boot code on newly attached disk 'ada1p3'.\n" +"\n" +"Assuming you use GPT partitioning and 'da0' is your new boot disk\n" +"you may use the following command:\n" +"\n" +" gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0\n" +"<prompt>#</prompt> <userinput>gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 <replaceable>ada1</replaceable></userinput>\n" +"bootcode written to ada1\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +"status: One or more devices is currently being resilvered. The pool will\n" +" continue to function, possibly in a degraded state.\n" +"action: Wait for the resilver to complete.\n" +" scan: resilver in progress since Fri May 30 08:19:19 2014\n" +" 527M scanned out of 781M at 47.9M/s, 0h0m to go\n" +" 527M resilvered, 67.53% done\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0 (resilvering)\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: resilvered 781M in 0h0m with 0 errors on Fri May 30 08:15:58 2014\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37781 +msgid "" +"When adding disks to the existing vdev is not an option, as for " +"<acronym>RAID-Z</acronym>, an alternative method is to add another vdev to " +"the pool. Additional vdevs provide higher performance, distributing writes " +"across the vdevs. Each vdev is responsible for providing its own redundancy. " +"It is possible, but discouraged, to mix vdev types, like <literal>mirror</" +"literal> and <literal>RAID-Z</literal>. Adding a non-redundant vdev to a " +"pool containing mirror or <acronym>RAID-Z</acronym> vdevs risks the data on " +"the entire pool. Writes are distributed, so the failure of the non-redundant " +"disk will result in the loss of a fraction of every block that has been " +"written to the pool." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37794 +msgid "" +"Data is striped across each of the vdevs. For example, with two mirror " +"vdevs, this is effectively a <acronym>RAID</acronym> 10 that stripes writes " +"across two sets of mirrors. Space is allocated so that each vdev reaches " +"100% full at the same time. There is a performance penalty if the vdevs have " +"different amounts of free space, as a disproportionate amount of the data is " +"written to the less full vdev." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37803 +msgid "" +"When attaching additional devices to a boot pool, remember to update the " +"bootcode." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37806 +msgid "" +"Attach a second mirror group (<filename>ada2p3</filename> and " +"<filename>ada3p3</filename>) to the existing mirror:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37810 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: resilvered 781M in 0h0m with 0 errors on Fri May 30 08:19:35 2014\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool add <replaceable>mypool</replaceable> mirror <replaceable>ada2p3</replaceable> <replaceable>ada3p3</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 <replaceable>ada2</replaceable></userinput>\n" +"bootcode written to ada2\n" +"<prompt>#</prompt> <userinput>gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 <replaceable>ada3</replaceable></userinput>\n" +"bootcode written to ada3\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: scrub repaired 0 in 0h0m with 0 errors on Fri May 30 08:29:51 2014\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0\n" +" mirror-1 ONLINE 0 0 0\n" +" ada2p3 ONLINE 0 0 0\n" +" ada3p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37845 +msgid "" +"Currently, vdevs cannot be removed from a pool, and disks can only be " +"removed from a mirror if there is enough remaining redundancy. If only one " +"disk in a mirror group remains, it ceases to be a mirror and reverts to " +"being a stripe, risking the entire pool if that remaining disk fails." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37851 +msgid "Remove a disk from a three-way mirror group:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37853 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: scrub repaired 0 in 0h0m with 0 errors on Fri May 30 08:29:51 2014\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0\n" +" ada2p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool detach <replaceable>mypool</replaceable> <replaceable>ada2p3</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: scrub repaired 0 in 0h0m with 0 errors on Fri May 30 08:29:51 2014\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:37884 +msgid "Checking the Status of a Pool" +msgstr "檢查儲存池狀態" + +#. (itstool) path: sect2/para +#: book.translate.xml:37886 +msgid "" +"Pool status is important. If a drive goes offline or a read, write, or " +"checksum error is detected, the corresponding error count increases. The " +"<command>status</command> output shows the configuration and status of each " +"device in the pool and the status of the entire pool. Actions that need to " +"be taken and details about the last <link linkend=\"zfs-zpool-scrub" +"\"><command>scrub</command></link> are also shown." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37894 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: scrub repaired 0 in 2h25m with 0 errors on Sat Sep 14 04:25:50 2013\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" raidz2-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0\n" +" ada2p3 ONLINE 0 0 0\n" +" ada3p3 ONLINE 0 0 0\n" +" ada4p3 ONLINE 0 0 0\n" +" ada5p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:37914 +msgid "Clearing Errors" +msgstr "清除錯誤" + +#. (itstool) path: sect2/para +#: book.translate.xml:37916 +msgid "" +"When an error is detected, the read, write, or checksum counts are " +"incremented. The error message can be cleared and the counts reset with " +"<command>zpool clear <replaceable>mypool</replaceable></command>. Clearing " +"the error state can be important for automated scripts that alert the " +"administrator when the pool encounters an error. Further errors may not be " +"reported if the old errors are not cleared." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:37927 +msgid "Replacing a Functioning Device" +msgstr "替換運作中的裝置" + +#. (itstool) path: sect2/para +#: book.translate.xml:37929 +msgid "" +"There are a number of situations where it may be desirable to replace one " +"disk with a different disk. When replacing a working disk, the process keeps " +"the old disk online during the replacement. The pool never enters a <link " +"linkend=\"zfs-term-degraded\">degraded</link> state, reducing the risk of " +"data loss. <command>zpool replace</command> copies all of the data from the " +"old disk to the new one. After the operation completes, the old disk is " +"disconnected from the vdev. If the new disk is larger than the old disk, it " +"may be possible to grow the zpool, using the new space. See <link linkend=" +"\"zfs-zpool-online\">Growing a Pool</link>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:37941 +msgid "Replace a functioning device in the pool:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:37943 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: none requested\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool replace <replaceable>mypool</replaceable> <replaceable>ada1p3</replaceable> <replaceable>ada2p3</replaceable></userinput>\n" +"Make sure to wait until resilver is done before rebooting.\n" +"\n" +"If you boot from pool 'zroot', you may need to update\n" +"boot code on newly attached disk 'ada2p3'.\n" +"\n" +"Assuming you use GPT partitioning and 'da0' is your new boot disk\n" +"you may use the following command:\n" +"\n" +" gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0\n" +"<prompt>#</prompt> <userinput>gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 <replaceable>ada2</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +"status: One or more devices is currently being resilvered. The pool will\n" +" continue to function, possibly in a degraded state.\n" +"action: Wait for the resilver to complete.\n" +" scan: resilver in progress since Mon Jun 2 14:21:35 2014\n" +" 604M scanned out of 781M at 46.5M/s, 0h0m to go\n" +" 604M resilvered, 77.39% done\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" replacing-1 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0\n" +" ada2p3 ONLINE 0 0 0 (resilvering)\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: resilvered 781M in 0h0m with 0 errors on Mon Jun 2 14:21:52 2014\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada2p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38003 +msgid "Dealing with Failed Devices" +msgstr "處理故障裝置" + +#. (itstool) path: sect2/para +#: book.translate.xml:38005 +msgid "" +"When a disk in a pool fails, the vdev to which the disk belongs enters the " +"<link linkend=\"zfs-term-degraded\">degraded</link> state. All of the data " +"is still available, but performance may be reduced because missing data must " +"be calculated from the available redundancy. To restore the vdev to a fully " +"functional state, the failed physical device must be replaced. <acronym>ZFS</" +"acronym> is then instructed to begin the <link linkend=\"zfs-term-resilver" +"\">resilver</link> operation. Data that was on the failed device is " +"recalculated from available redundancy and written to the replacement " +"device. After completion, the vdev returns to <link linkend=\"zfs-term-online" +"\">online</link> status." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38019 +msgid "" +"If the vdev does not have any redundancy, or if multiple devices have failed " +"and there is not enough redundancy to compensate, the pool enters the <link " +"linkend=\"zfs-term-faulted\">faulted</link> state. If a sufficient number of " +"devices cannot be reconnected to the pool, the pool becomes inoperative and " +"data must be restored from backups." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38027 +msgid "" +"When replacing a failed disk, the name of the failed disk is replaced with " +"the <acronym>GUID</acronym> of the device. A new device name parameter for " +"<command>zpool replace</command> is not required if the replacement device " +"has the same device name." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38033 +msgid "Replace a failed disk using <command>zpool replace</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38036 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: DEGRADED\n" +"status: One or more devices could not be opened. Sufficient replicas exist for\n" +" the pool to continue functioning in a degraded state.\n" +"action: Attach the missing device and online it using 'zpool online'.\n" +" see: http://illumos.org/msg/ZFS-8000-2Q\n" +" scan: none requested\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool DEGRADED 0 0 0\n" +" mirror-0 DEGRADED 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" 316502962686821739 UNAVAIL 0 0 0 was /dev/ada1p3\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool replace <replaceable>mypool</replaceable> <replaceable>316502962686821739</replaceable> <replaceable>ada2p3</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: DEGRADED\n" +"status: One or more devices is currently being resilvered. The pool will\n" +" continue to function, possibly in a degraded state.\n" +"action: Wait for the resilver to complete.\n" +" scan: resilver in progress since Mon Jun 2 14:52:21 2014\n" +" 641M scanned out of 781M at 49.3M/s, 0h0m to go\n" +" 640M resilvered, 82.04% done\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool DEGRADED 0 0 0\n" +" mirror-0 DEGRADED 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" replacing-1 UNAVAIL 0 0 0\n" +" 15732067398082357289 UNAVAIL 0 0 0 was /dev/ada1p3/old\n" +" ada2p3 ONLINE 0 0 0 (resilvering)\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: resilvered 781M in 0h0m with 0 errors on Mon Jun 2 14:52:38 2014\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada2p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38090 +msgid "Scrubbing a Pool" +msgstr "清潔儲存池" + +#. (itstool) path: sect2/para +#: book.translate.xml:38092 +msgid "" +"It is recommended that pools be <link linkend=\"zfs-term-scrub\">scrubbed</" +"link> regularly, ideally at least once every month. The <command>scrub</" +"command> operation is very disk-intensive and will reduce performance while " +"running. Avoid high-demand periods when scheduling <command>scrub</command> " +"or use <link linkend=\"zfs-advanced-tuning-scrub_delay\"><varname>vfs.zfs." +"scrub_delay</varname></link> to adjust the relative priority of the " +"<command>scrub</command> to prevent it interfering with other workloads." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38102 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool scrub <replaceable>mypool</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +" scan: scrub in progress since Wed Feb 19 20:52:54 2014\n" +" 116G scanned out of 8.60T at 649M/s, 3h48m to go\n" +" 0 repaired, 1.32% done\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" raidz2-0 ONLINE 0 0 0\n" +" ada0p3 ONLINE 0 0 0\n" +" ada1p3 ONLINE 0 0 0\n" +" ada2p3 ONLINE 0 0 0\n" +" ada3p3 ONLINE 0 0 0\n" +" ada4p3 ONLINE 0 0 0\n" +" ada5p3 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38123 +msgid "" +"In the event that a scrub operation needs to be cancelled, issue " +"<command>zpool scrub -s <replaceable>mypool</replaceable></command>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38129 +msgid "Self-Healing" +msgstr "自我修復" + +#. (itstool) path: sect2/para +#: book.translate.xml:38131 +msgid "" +"The checksums stored with data blocks enable the file system to " +"<emphasis>self-heal</emphasis>. This feature will automatically repair data " +"whose checksum does not match the one recorded on another device that is " +"part of the storage pool. For example, a mirror with two disks where one " +"drive is starting to malfunction and cannot properly store the data any " +"more. This is even worse when the data has not been accessed for a long " +"time, as with long term archive storage. Traditional file systems need to " +"run algorithms that check and repair the data like " +"<citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. These commands take time, and in severe cases, an " +"administrator has to manually decide which repair operation must be " +"performed. When <acronym>ZFS</acronym> detects a data block with a checksum " +"that does not match, it tries to read the data from the mirror disk. If that " +"disk can provide the correct data, it will not only give that data to the " +"application requesting it, but also correct the wrong data on the disk that " +"had the bad checksum. This happens without any interaction from a system " +"administrator during normal pool operation." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38151 +msgid "" +"The next example demonstrates this self-healing behavior. A mirrored pool of " +"disks <filename>/dev/ada0</filename> and <filename>/dev/ada1</filename> is " +"created." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38155 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool create <replaceable>healer</replaceable> mirror <replaceable>/dev/ada0</replaceable> <replaceable>/dev/ada1</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zpool status <replaceable>healer</replaceable></userinput>\n" +" pool: healer\n" +" state: ONLINE\n" +" scan: none requested\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" healer ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0 ONLINE 0 0 0\n" +" ada1 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool list</userinput>\n" +"NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT\n" +"healer 960M 92.5K 960M 0% 1.00x ONLINE -" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38173 +msgid "" +"Some important data that to be protected from data errors using the self-" +"healing feature is copied to the pool. A checksum of the pool is created for " +"later comparison." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38177 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cp /some/important/data /healer</userinput>\n" +"<prompt>#</prompt> <userinput>zfs list</userinput>\n" +"NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT\n" +"healer 960M 67.7M 892M 7% 1.00x ONLINE -\n" +"<prompt>#</prompt> <userinput>sha1 /healer > checksum.txt</userinput>\n" +"<prompt>#</prompt> <userinput>cat checksum.txt</userinput>\n" +"SHA1 (/healer) = 2753eff56d77d9a536ece6694bf0a82740344d1f" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38185 +msgid "" +"Data corruption is simulated by writing random data to the beginning of one " +"of the disks in the mirror. To prevent <acronym>ZFS</acronym> from healing " +"the data as soon as it is detected, the pool is exported before the " +"corruption and imported again afterwards." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:38192 +msgid "" +"This is a dangerous operation that can destroy vital data. It is shown here " +"for demonstrational purposes only and should not be attempted during normal " +"operation of a storage pool. Nor should this intentional corruption example " +"be run on any disk with a different file system on it. Do not use any other " +"disk device names other than the ones that are part of the pool. Make " +"certain that proper backups of the pool are created before running the " +"command!" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38203 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool export <replaceable>healer</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>dd if=/dev/random of=/dev/ada1 bs=1m count=200</userinput>\n" +"200+0 records in\n" +"200+0 records out\n" +"209715200 bytes transferred in 62.992162 secs (3329227 bytes/sec)\n" +"<prompt>#</prompt> <userinput>zpool import healer</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38210 +msgid "" +"The pool status shows that one device has experienced an error. Note that " +"applications reading data from the pool did not receive any incorrect data. " +"<acronym>ZFS</acronym> provided data from the <filename>ada0</filename> " +"device with the correct checksums. The device with the wrong checksum can be " +"found easily as the <literal>CKSUM</literal> column contains a nonzero value." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38218 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status <replaceable>healer</replaceable></userinput>\n" +" pool: healer\n" +" state: ONLINE\n" +" status: One or more devices has experienced an unrecoverable error. An\n" +" attempt was made to correct the error. Applications are unaffected.\n" +" action: Determine if the device needs to be replaced, and clear the errors\n" +" using 'zpool clear' or replace the device with 'zpool replace'.\n" +" see: http://www.sun.com/msg/ZFS-8000-9P\n" +" scan: none requested\n" +" config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" healer ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0 ONLINE 0 0 0\n" +" ada1 ONLINE 0 0 1\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38237 +msgid "" +"The error was detected and handled by using the redundancy present in the " +"unaffected <filename>ada0</filename> mirror disk. A checksum comparison with " +"the original one will reveal whether the pool is consistent again." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38242 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>sha1 /healer >> checksum.txt</userinput>\n" +"<prompt>#</prompt> <userinput>cat checksum.txt</userinput>\n" +"SHA1 (/healer) = 2753eff56d77d9a536ece6694bf0a82740344d1f\n" +"SHA1 (/healer) = 2753eff56d77d9a536ece6694bf0a82740344d1f" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38247 +msgid "" +"The two checksums that were generated before and after the intentional " +"tampering with the pool data still match. This shows how <acronym>ZFS</" +"acronym> is capable of detecting and correcting any errors automatically " +"when the checksums differ. Note that this is only possible when there is " +"enough redundancy present in the pool. A pool consisting of a single device " +"has no self-healing capabilities. That is also the reason why checksums are " +"so important in <acronym>ZFS</acronym> and should not be disabled for any " +"reason. No <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> or similar file system consistency check program " +"is required to detect and correct this and the pool was still available " +"during the time there was a problem. A scrub operation is now required to " +"overwrite the corrupted data on <filename>ada1</filename>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38262 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool scrub <replaceable>healer</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zpool status <replaceable>healer</replaceable></userinput>\n" +" pool: healer\n" +" state: ONLINE\n" +"status: One or more devices has experienced an unrecoverable error. An\n" +" attempt was made to correct the error. Applications are unaffected.\n" +"action: Determine if the device needs to be replaced, and clear the errors\n" +" using 'zpool clear' or replace the device with 'zpool replace'.\n" +" see: http://www.sun.com/msg/ZFS-8000-9P\n" +" scan: scrub in progress since Mon Dec 10 12:23:30 2012\n" +" 10.4M scanned out of 67.0M at 267K/s, 0h3m to go\n" +" 9.63M repaired, 15.56% done\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" healer ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0 ONLINE 0 0 0\n" +" ada1 ONLINE 0 0 627 (repairing)\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38284 +msgid "" +"The scrub operation reads data from <filename>ada0</filename> and rewrites " +"any data with an incorrect checksum on <filename>ada1</filename>. This is " +"indicated by the <literal>(repairing)</literal> output from <command>zpool " +"status</command>. After the operation is complete, the pool status changes " +"to:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38291 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status <replaceable>healer</replaceable></userinput>\n" +" pool: healer\n" +" state: ONLINE\n" +"status: One or more devices has experienced an unrecoverable error. An\n" +" attempt was made to correct the error. Applications are unaffected.\n" +"action: Determine if the device needs to be replaced, and clear the errors\n" +" using 'zpool clear' or replace the device with 'zpool replace'.\n" +" see: http://www.sun.com/msg/ZFS-8000-9P\n" +" scan: scrub repaired 66.5M in 0h2m with 0 errors on Mon Dec 10 12:26:25 2012\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" healer ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0 ONLINE 0 0 0\n" +" ada1 ONLINE 0 0 2.72K\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38310 +msgid "" +"After the scrub operation completes and all the data has been synchronized " +"from <filename>ada0</filename> to <filename>ada1</filename>, the error " +"messages can be <link linkend=\"zfs-zpool-clear\">cleared</link> from the " +"pool status by running <command>zpool clear</command>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38316 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool clear <replaceable>healer</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zpool status <replaceable>healer</replaceable></userinput>\n" +" pool: healer\n" +" state: ONLINE\n" +" scan: scrub repaired 66.5M in 0h2m with 0 errors on Mon Dec 10 12:26:25 2012\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" healer ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +" ada0 ONLINE 0 0 0\n" +" ada1 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38331 +msgid "" +"The pool is now back to a fully working state and all the errors have been " +"cleared." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38336 +msgid "Growing a Pool" +msgstr "擴增儲存池" + +#. (itstool) path: sect2/para +#: book.translate.xml:38338 +msgid "" +"The usable size of a redundant pool is limited by the capacity of the " +"smallest device in each vdev. The smallest device can be replaced with a " +"larger device. After completing a <link linkend=\"zfs-zpool-replace" +"\">replace</link> or <link linkend=\"zfs-term-resilver\">resilver</link> " +"operation, the pool can grow to use the capacity of the new device. For " +"example, consider a mirror of a 1 TB drive and a 2 TB drive. The usable " +"space is 1 TB. When the 1 TB drive is replaced with another 2 TB drive, the " +"resilvering process copies the existing data onto the new drive. Because " +"both of the devices now have 2 TB capacity, the mirror's available space can " +"be grown to 2 TB." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38352 +msgid "" +"Expansion is triggered by using <command>zpool online -e</command> on each " +"device. After expansion of all devices, the additional space becomes " +"available to the pool." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38359 +msgid "Importing and Exporting Pools" +msgstr "匯入與匯出儲存池" + +#. (itstool) path: sect2/para +#: book.translate.xml:38361 +msgid "" +"Pools are <emphasis>exported</emphasis> before moving them to another " +"system. All datasets are unmounted, and each device is marked as exported " +"but still locked so it cannot be used by other disk subsystems. This allows " +"pools to be <emphasis>imported</emphasis> on other machines, other operating " +"systems that support <acronym>ZFS</acronym>, and even different hardware " +"architectures (with some caveats, see <citerefentry><refentrytitle>zpool</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>). When a dataset has " +"open files, <command> zpool export -f</command> can be used to force the " +"export of a pool. Use this with caution. The datasets are forcibly " +"unmounted, potentially resulting in unexpected behavior by the applications " +"which had open files on those datasets." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38375 +msgid "Export a pool that is not in use:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38377 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zpool export mypool</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38379 +msgid "" +"Importing a pool automatically mounts the datasets. This may not be the " +"desired behavior, and can be prevented with <command>zpool import -N</" +"command>. <command>zpool import -o</command> sets temporary properties for " +"this import only. <command>zpool import altroot=</command> allows importing " +"a pool with a base mount point instead of the root of the file system. If " +"the pool was last used on a different system and was not properly exported, " +"an import might have to be forced with <command>zpool import -f</command>. " +"<command>zpool import -a</command> imports all pools that do not appear to " +"be in use by another system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38392 +msgid "List all available pools for import:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38394 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool import</userinput>\n" +" pool: mypool\n" +" id: 9930174748043525076\n" +" state: ONLINE\n" +" action: The pool can be imported using its name or numeric identifier.\n" +" config:\n" +"\n" +" mypool ONLINE\n" +" ada2p3 ONLINE" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38404 +msgid "Import the pool with an alternative root directory:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38406 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool import -o altroot=<replaceable>/mnt</replaceable> <replaceable>mypool</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs list</userinput>\n" +"zfs list\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool 110K 47.0G 31K /mnt/mypool" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38414 +msgid "Upgrading a Storage Pool" +msgstr "升級儲存儲存池" + +#. (itstool) path: sect2/para +#: book.translate.xml:38416 +msgid "" +"After upgrading FreeBSD, or if a pool has been imported from a system using " +"an older version of <acronym>ZFS</acronym>, the pool can be manually " +"upgraded to the latest version of <acronym>ZFS</acronym> to support newer " +"features. Consider whether the pool may ever need to be imported on an older " +"system before upgrading. Upgrading is a one-way process. Older pools can be " +"upgraded, but pools with newer features cannot be downgraded." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38425 +msgid "Upgrade a v28 pool to support <literal>Feature Flags</literal>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38428 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +"status: The pool is formatted using a legacy on-disk format. The pool can\n" +" still be used, but some features are unavailable.\n" +"action: Upgrade the pool using 'zpool upgrade'. Once this is done, the\n" +" pool will no longer be accessible on software that does not support feat\n" +" flags.\n" +" scan: none requested\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +"\t ada0 ONLINE 0 0 0\n" +"\t ada1 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool upgrade</userinput>\n" +"This system supports ZFS pool feature flags.\n" +"\n" +"The following pools are formatted with legacy version numbers and can\n" +"be upgraded to use feature flags. After being upgraded, these pools\n" +"will no longer be accessible by software that does not support feature\n" +"flags.\n" +"\n" +"VER POOL\n" +"--- ------------\n" +"28 mypool\n" +"\n" +"Use 'zpool upgrade -v' for a list of available legacy versions.\n" +"Every feature flags pool has all supported features enabled.\n" +"<prompt>#</prompt> <userinput>zpool upgrade mypool</userinput>\n" +"This system supports ZFS pool feature flags.\n" +"\n" +"Successfully upgraded 'mypool' from version 28 to feature flags.\n" +"Enabled the following features on 'mypool':\n" +" async_destroy\n" +" empty_bpobj\n" +" lz4_compress\n" +" multi_vdev_crash_dump" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38470 +msgid "" +"The newer features of <acronym>ZFS</acronym> will not be available until " +"<command>zpool upgrade</command> has completed. <command>zpool upgrade -v</" +"command> can be used to see what new features will be provided by upgrading, " +"as well as which features are already supported." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38476 +msgid "Upgrade a pool to support additional feature flags:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38478 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool status</userinput>\n" +" pool: mypool\n" +" state: ONLINE\n" +"status: Some supported features are not enabled on the pool. The pool can\n" +" still be used, but some features are unavailable.\n" +"action: Enable all features using 'zpool upgrade'. Once this is done,\n" +" the pool may no longer be accessible by software that does not support\n" +" the features. See zpool-features(7) for details.\n" +" scan: none requested\n" +"config:\n" +"\n" +" NAME STATE READ WRITE CKSUM\n" +" mypool ONLINE 0 0 0\n" +" mirror-0 ONLINE 0 0 0\n" +"\t ada0 ONLINE 0 0 0\n" +"\t ada1 ONLINE 0 0 0\n" +"\n" +"errors: No known data errors\n" +"<prompt>#</prompt> <userinput>zpool upgrade</userinput>\n" +"This system supports ZFS pool feature flags.\n" +"\n" +"All pools are formatted using feature flags.\n" +"\n" +"\n" +"Some supported features are not enabled on the following pools. Once a\n" +"feature is enabled the pool may become incompatible with software\n" +"that does not support the feature. See zpool-features(7) for details.\n" +"\n" +"POOL FEATURE\n" +"---------------\n" +"zstore\n" +" multi_vdev_crash_dump\n" +" spacemap_histogram\n" +" enabled_txg\n" +" hole_birth\n" +" extensible_dataset\n" +" bookmarks\n" +" filesystem_limits\n" +"<prompt>#</prompt> <userinput>zpool upgrade mypool</userinput>\n" +"This system supports ZFS pool feature flags.\n" +"\n" +"Enabled the following features on 'mypool':\n" +" spacemap_histogram\n" +" enabled_txg\n" +" hole_birth\n" +" extensible_dataset\n" +" bookmarks\n" +" filesystem_limits" +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:38528 +msgid "" +"The boot code on systems that boot from a pool must be updated to support " +"the new pool version. Use <command>gpart bootcode</command> on the partition " +"that contains the boot code. See <citerefentry><refentrytitle>gpart</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38537 +msgid "Displaying Recorded Pool History" +msgstr "顯示已記錄的儲存池歷史日誌" + +#. (itstool) path: sect2/para +#: book.translate.xml:38539 +msgid "" +"Commands that modify the pool are recorded. Recorded actions include the " +"creation of datasets, changing properties, or replacement of a disk. This " +"history is useful for reviewing how a pool was created and which user " +"performed a specific action and when. History is not kept in a log file, but " +"is part of the pool itself. The command to review this history is aptly " +"named <command>zpool history</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38548 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool history</userinput>\n" +"History for 'tank':\n" +"2013-02-26.23:02:35 zpool create tank mirror /dev/ada0 /dev/ada1\n" +"2013-02-27.18:50:58 zfs set atime=off tank\n" +"2013-02-27.18:51:09 zfs set checksum=fletcher4 tank\n" +"2013-02-27.18:51:18 zfs create tank/backup" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38555 +msgid "" +"The output shows <command>zpool</command> and <command>zfs</command> " +"commands that were executed on the pool along with a timestamp. Only " +"commands that alter the pool in some way are recorded. Commands like " +"<command>zfs list</command> are not included. When no pool name is " +"specified, the history of all pools is displayed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38563 +msgid "" +"<command>zpool history</command> can show even more information when the " +"options <option>-i</option> or <option>-l</option> are provided. <option>-i</" +"option> displays user-initiated events as well as internally logged " +"<acronym>ZFS</acronym> events." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38569 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool history -i</userinput>\n" +"History for 'tank':\n" +"2013-02-26.23:02:35 [internal pool create txg:5] pool spa 28; zfs spa 28; zpl 5;uts 9.1-RELEASE 901000 amd64\n" +"2013-02-27.18:50:53 [internal property set txg:50] atime=0 dataset = 21\n" +"2013-02-27.18:50:58 zfs set atime=off tank\n" +"2013-02-27.18:51:04 [internal property set txg:53] checksum=7 dataset = 21\n" +"2013-02-27.18:51:09 zfs set checksum=fletcher4 tank\n" +"2013-02-27.18:51:13 [internal create txg:55] dataset = 39\n" +"2013-02-27.18:51:18 zfs create tank/backup" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38579 +msgid "" +"More details can be shown by adding <option>-l</option>. History records are " +"shown in a long format, including information like the name of the user who " +"issued the command and the hostname on which the change was made." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38584 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool history -l</userinput>\n" +"History for 'tank':\n" +"2013-02-26.23:02:35 zpool create tank mirror /dev/ada0 /dev/ada1 [user 0 (root) on :global]\n" +"2013-02-27.18:50:58 zfs set atime=off tank [user 0 (root) on myzfsbox:global]\n" +"2013-02-27.18:51:09 zfs set checksum=fletcher4 tank [user 0 (root) on myzfsbox:global]\n" +"2013-02-27.18:51:18 zfs create tank/backup [user 0 (root) on myzfsbox:global]" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38591 +msgid "" +"The output shows that the <systemitem class=\"username\">root</systemitem> " +"user created the mirrored pool with disks <filename>/dev/ada0</filename> and " +"<filename>/dev/ada1</filename>. The hostname <systemitem class=\"systemname" +"\">myzfsbox</systemitem> is also shown in the commands after the pool's " +"creation. The hostname display becomes important when the pool is exported " +"from one system and imported on another. The commands that are issued on the " +"other system can clearly be distinguished by the hostname that is recorded " +"for each command." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38603 +msgid "" +"Both options to <command>zpool history</command> can be combined to give the " +"most detailed information possible for any given pool. Pool history provides " +"valuable information when tracking down the actions that were performed or " +"when more detailed output is needed for debugging." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38611 +msgid "Performance Monitoring" +msgstr "監視效能" + +#. (itstool) path: sect2/para +#: book.translate.xml:38613 +msgid "" +"A built-in monitoring system can display pool <acronym>I/O</acronym> " +"statistics in real time. It shows the amount of free and used space on the " +"pool, how many read and write operations are being performed per second, and " +"how much <acronym>I/O</acronym> bandwidth is currently being utilized. By " +"default, all pools in the system are monitored and displayed. A pool name " +"can be provided to limit monitoring to just that pool. A basic example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38622 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool iostat</userinput>\n" +" capacity operations bandwidth\n" +"pool alloc free read write read write\n" +"---------- ----- ----- ----- ----- ----- -----\n" +"data 288G 1.53T 2 11 11.3K 57.1K" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38628 +msgid "" +"To continuously monitor <acronym>I/O</acronym> activity, a number can be " +"specified as the last parameter, indicating a interval in seconds to wait " +"between updates. The next statistic line is printed after each interval. " +"Press <keycombo action=\"simul\"> <keycap>Ctrl</keycap> <keycap>C</keycap> </" +"keycombo> to stop this continuous monitoring. Alternatively, give a second " +"number on the command line after the interval to specify the total number of " +"statistics to display." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38640 +msgid "" +"Even more detailed <acronym>I/O</acronym> statistics can be displayed with " +"<option>-v</option>. Each device in the pool is shown with a statistics " +"line. This is useful in seeing how many read and write operations are being " +"performed on each device, and can help determine if any individual device is " +"slowing down the pool. This example shows a mirrored pool with two devices:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38648 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool iostat -v </userinput>\n" +" capacity operations bandwidth\n" +"pool alloc free read write read write\n" +"----------------------- ----- ----- ----- ----- ----- -----\n" +"data 288G 1.53T 2 12 9.23K 61.5K\n" +" mirror 288G 1.53T 2 12 9.23K 61.5K\n" +" ada1 - - 0 4 5.61K 61.7K\n" +" ada2 - - 1 4 5.04K 61.7K\n" +"----------------------- ----- ----- ----- ----- ----- -----" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38660 +msgid "Splitting a Storage Pool" +msgstr "分割儲存儲存池" + +#. (itstool) path: sect2/para +#: book.translate.xml:38662 +msgid "" +"A pool consisting of one or more mirror vdevs can be split into two pools. " +"Unless otherwise specified, the last member of each mirror is detached and " +"used to create a new pool containing the same data. The operation should " +"first be attempted with <option>-n</option>. The details of the proposed " +"operation are displayed without it actually being performed. This helps " +"confirm that the operation will do what the user intends." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:38674 +msgid "<command>zfs</command> Administration" +msgstr "<command>zfs</command> 管理" + +#. (itstool) path: sect1/para +#: book.translate.xml:38676 +msgid "" +"The <command>zfs</command> utility is responsible for creating, destroying, " +"and managing all <acronym>ZFS</acronym> datasets that exist within a pool. " +"The pool is managed using <link linkend=\"zfs-zpool\"><command>zpool</" +"command></link>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38682 +msgid "Creating and Destroying Datasets" +msgstr "建立與摧毀資料集" + +#. (itstool) path: sect2/para +#: book.translate.xml:38684 +msgid "" +"Unlike traditional disks and volume managers, space in <acronym>ZFS</" +"acronym> is <emphasis>not</emphasis> preallocated. With traditional file " +"systems, after all of the space is partitioned and assigned, there is no way " +"to add an additional file system without adding a new disk. With " +"<acronym>ZFS</acronym>, new file systems can be created at any time. Each " +"<link linkend=\"zfs-term-dataset\"><emphasis>dataset</emphasis></link> has " +"properties including features like compression, deduplication, caching, and " +"quotas, as well as other useful properties like readonly, case sensitivity, " +"network file sharing, and a mount point. Datasets can be nested inside each " +"other, and child datasets will inherit properties from their parents. Each " +"dataset can be administered, <link linkend=\"zfs-zfs-allow\">delegated</" +"link>, <link linkend=\"zfs-zfs-send\">replicated</link>, <link linkend=\"zfs-" +"zfs-snapshot\">snapshotted</link>, <link linkend=\"zfs-zfs-jail\">jailed</" +"link>, and destroyed as a unit. There are many advantages to creating a " +"separate dataset for each different type or set of files. The only drawbacks " +"to having an extremely large number of datasets is that some commands like " +"<command>zfs list</command> will be slower, and the mounting of hundreds or " +"even thousands of datasets can slow the FreeBSD boot process." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38708 +msgid "" +"Create a new dataset and enable <link linkend=\"zfs-term-compression-" +"lz4\">LZ4 compression</link> on it:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38711 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs list</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool 781M 93.2G 144K none\n" +"mypool/ROOT 777M 93.2G 144K none\n" +"mypool/ROOT/default 777M 93.2G 777M /\n" +"mypool/tmp 176K 93.2G 176K /tmp\n" +"mypool/usr 616K 93.2G 144K /usr\n" +"mypool/usr/home 184K 93.2G 184K /usr/home\n" +"mypool/usr/ports 144K 93.2G 144K /usr/ports\n" +"mypool/usr/src 144K 93.2G 144K /usr/src\n" +"mypool/var 1.20M 93.2G 608K /var\n" +"mypool/var/crash 148K 93.2G 148K /var/crash\n" +"mypool/var/log 178K 93.2G 178K /var/log\n" +"mypool/var/mail 144K 93.2G 144K /var/mail\n" +"mypool/var/tmp 152K 93.2G 152K /var/tmp\n" +"<prompt>#</prompt> <userinput>zfs create -o compress=lz4 <replaceable>mypool/usr/mydataset</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs list</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool 781M 93.2G 144K none\n" +"mypool/ROOT 777M 93.2G 144K none\n" +"mypool/ROOT/default 777M 93.2G 777M /\n" +"mypool/tmp 176K 93.2G 176K /tmp\n" +"mypool/usr 704K 93.2G 144K /usr\n" +"mypool/usr/home 184K 93.2G 184K /usr/home\n" +"mypool/usr/mydataset 87.5K 93.2G 87.5K /usr/mydataset\n" +"mypool/usr/ports 144K 93.2G 144K /usr/ports\n" +"mypool/usr/src 144K 93.2G 144K /usr/src\n" +"mypool/var 1.20M 93.2G 610K /var\n" +"mypool/var/crash 148K 93.2G 148K /var/crash\n" +"mypool/var/log 178K 93.2G 178K /var/log\n" +"mypool/var/mail 144K 93.2G 144K /var/mail\n" +"mypool/var/tmp 152K 93.2G 152K /var/tmp" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38744 +msgid "" +"Destroying a dataset is much quicker than deleting all of the files that " +"reside on the dataset, as it does not involve scanning all of the files and " +"updating all of the corresponding metadata." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38749 +msgid "Destroy the previously-created dataset:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38751 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs list</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool 880M 93.1G 144K none\n" +"mypool/ROOT 777M 93.1G 144K none\n" +"mypool/ROOT/default 777M 93.1G 777M /\n" +"mypool/tmp 176K 93.1G 176K /tmp\n" +"mypool/usr 101M 93.1G 144K /usr\n" +"mypool/usr/home 184K 93.1G 184K /usr/home\n" +"mypool/usr/mydataset 100M 93.1G 100M /usr/mydataset\n" +"mypool/usr/ports 144K 93.1G 144K /usr/ports\n" +"mypool/usr/src 144K 93.1G 144K /usr/src\n" +"mypool/var 1.20M 93.1G 610K /var\n" +"mypool/var/crash 148K 93.1G 148K /var/crash\n" +"mypool/var/log 178K 93.1G 178K /var/log\n" +"mypool/var/mail 144K 93.1G 144K /var/mail\n" +"mypool/var/tmp 152K 93.1G 152K /var/tmp\n" +"<prompt>#</prompt> <userinput>zfs destroy <replaceable>mypool/usr/mydataset</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs list</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool 781M 93.2G 144K none\n" +"mypool/ROOT 777M 93.2G 144K none\n" +"mypool/ROOT/default 777M 93.2G 777M /\n" +"mypool/tmp 176K 93.2G 176K /tmp\n" +"mypool/usr 616K 93.2G 144K /usr\n" +"mypool/usr/home 184K 93.2G 184K /usr/home\n" +"mypool/usr/ports 144K 93.2G 144K /usr/ports\n" +"mypool/usr/src 144K 93.2G 144K /usr/src\n" +"mypool/var 1.21M 93.2G 612K /var\n" +"mypool/var/crash 148K 93.2G 148K /var/crash\n" +"mypool/var/log 178K 93.2G 178K /var/log\n" +"mypool/var/mail 144K 93.2G 144K /var/mail\n" +"mypool/var/tmp 152K 93.2G 152K /var/tmp" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38784 +msgid "" +"In modern versions of <acronym>ZFS</acronym>, <command>zfs destroy</command> " +"is asynchronous, and the free space might take several minutes to appear in " +"the pool. Use <command>zpool get freeing <replaceable>poolname</" +"replaceable></command> to see the <literal>freeing</literal> property, " +"indicating how many datasets are having their blocks freed in the " +"background. If there are child datasets, like <link linkend=\"zfs-term-" +"snapshot\">snapshots</link> or other datasets, then the parent cannot be " +"destroyed. To destroy a dataset and all of its children, use <option>-r</" +"option> to recursively destroy the dataset and all of its children. Use " +"<option>-n</option> <option>-v</option> to list datasets and snapshots that " +"would be destroyed by this operation, but do not actually destroy anything. " +"Space that would be reclaimed by destruction of snapshots is also shown." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38803 +msgid "Creating and Destroying Volumes" +msgstr "建立與摧毀磁碟區" + +#. (itstool) path: sect2/para +#: book.translate.xml:38805 +msgid "" +"A volume is a special type of dataset. Rather than being mounted as a file " +"system, it is exposed as a block device under <filename>/dev/zvol/" +"<replaceable>poolname</replaceable>/<replaceable>dataset</replaceable></" +"filename>. This allows the volume to be used for other file systems, to back " +"the disks of a virtual machine, or to be exported using protocols like " +"<acronym>iSCSI</acronym> or <acronym>HAST</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38814 +msgid "" +"A volume can be formatted with any file system, or used without a file " +"system to store raw data. To the user, a volume appears to be a regular " +"disk. Putting ordinary file systems on these <emphasis>zvols</emphasis> " +"provides features that ordinary disks or file systems do not normally have. " +"For example, using the compression property on a 250 MB volume allows " +"creation of a compressed <acronym>FAT</acronym> file system." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38823 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs create -V 250m -o compression=on tank/fat32</userinput>\n" +"<prompt>#</prompt> <userinput>zfs list tank</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"tank 258M 670M 31K /tank\n" +"<prompt>#</prompt> <userinput>newfs_msdos -F32 /dev/zvol/tank/fat32</userinput>\n" +"<prompt>#</prompt> <userinput>mount -t msdosfs /dev/zvol/tank/fat32 /mnt</userinput>\n" +"<prompt>#</prompt> <userinput>df -h /mnt | grep fat32</userinput>\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/zvol/tank/fat32 249M 24k 249M 0% /mnt\n" +"<prompt>#</prompt> <userinput>mount | grep fat32</userinput>\n" +"/dev/zvol/tank/fat32 on /mnt (msdosfs, local)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38835 +msgid "" +"Destroying a volume is much the same as destroying a regular file system " +"dataset. The operation is nearly instantaneous, but it may take several " +"minutes for the free space to be reclaimed in the background." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38842 +msgid "Renaming a Dataset" +msgstr "重新命名資料集" + +#. (itstool) path: sect2/para +#: book.translate.xml:38844 +msgid "" +"The name of a dataset can be changed with <command>zfs rename</command>. The " +"parent of a dataset can also be changed with this command. Renaming a " +"dataset to be under a different parent dataset will change the value of " +"those properties that are inherited from the parent dataset. When a dataset " +"is renamed, it is unmounted and then remounted in the new location (which is " +"inherited from the new parent dataset). This behavior can be prevented with " +"<option>-u</option>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38854 +msgid "Rename a dataset and move it to be under a different parent dataset:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38857 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs list</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool 780M 93.2G 144K none\n" +"mypool/ROOT 777M 93.2G 144K none\n" +"mypool/ROOT/default 777M 93.2G 777M /\n" +"mypool/tmp 176K 93.2G 176K /tmp\n" +"mypool/usr 704K 93.2G 144K /usr\n" +"mypool/usr/home 184K 93.2G 184K /usr/home\n" +"mypool/usr/mydataset 87.5K 93.2G 87.5K /usr/mydataset\n" +"mypool/usr/ports 144K 93.2G 144K /usr/ports\n" +"mypool/usr/src 144K 93.2G 144K /usr/src\n" +"mypool/var 1.21M 93.2G 614K /var\n" +"mypool/var/crash 148K 93.2G 148K /var/crash\n" +"mypool/var/log 178K 93.2G 178K /var/log\n" +"mypool/var/mail 144K 93.2G 144K /var/mail\n" +"mypool/var/tmp 152K 93.2G 152K /var/tmp\n" +"<prompt>#</prompt> <userinput>zfs rename <replaceable>mypool/usr/mydataset</replaceable> <replaceable>mypool/var/newname</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs list</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool 780M 93.2G 144K none\n" +"mypool/ROOT 777M 93.2G 144K none\n" +"mypool/ROOT/default 777M 93.2G 777M /\n" +"mypool/tmp 176K 93.2G 176K /tmp\n" +"mypool/usr 616K 93.2G 144K /usr\n" +"mypool/usr/home 184K 93.2G 184K /usr/home\n" +"mypool/usr/ports 144K 93.2G 144K /usr/ports\n" +"mypool/usr/src 144K 93.2G 144K /usr/src\n" +"mypool/var 1.29M 93.2G 614K /var\n" +"mypool/var/crash 148K 93.2G 148K /var/crash\n" +"mypool/var/log 178K 93.2G 178K /var/log\n" +"mypool/var/mail 144K 93.2G 144K /var/mail\n" +"mypool/var/newname 87.5K 93.2G 87.5K /var/newname\n" +"mypool/var/tmp 152K 93.2G 152K /var/tmp" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38891 +msgid "" +"Snapshots can also be renamed like this. Due to the nature of snapshots, " +"they cannot be renamed into a different parent dataset. To rename a " +"recursive snapshot, specify <option>-r</option>, and all snapshots with the " +"same name in child datasets with also be renamed." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38897 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs list -t snapshot</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool/var/newname@first_snapshot 0 - 87.5K -\n" +"<prompt>#</prompt> <userinput>zfs rename <replaceable>mypool/var/newname@first_snapshot</replaceable> <replaceable>new_snapshot_name</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs list -t snapshot</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool/var/newname@new_snapshot_name 0 - 87.5K -" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38907 +msgid "Setting Dataset Properties" +msgstr "設定資料集屬性" + +#. (itstool) path: sect2/para +#: book.translate.xml:38909 +msgid "" +"Each <acronym>ZFS</acronym> dataset has a number of properties that control " +"its behavior. Most properties are automatically inherited from the parent " +"dataset, but can be overridden locally. Set a property on a dataset with " +"<command>zfs set <replaceable>property</replaceable>=<replaceable>value</" +"replaceable> <replaceable>dataset</replaceable></command>. Most properties " +"have a limited set of valid values, <command>zfs get</command> will display " +"each possible property and valid values. Most properties can be reverted to " +"their inherited values using <command>zfs inherit</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38921 +msgid "" +"User-defined properties can also be set. They become part of the dataset " +"configuration and can be used to provide additional information about the " +"dataset or its contents. To distinguish these custom properties from the " +"ones supplied as part of <acronym>ZFS</acronym>, a colon (<literal>:</" +"literal>) is used to create a custom namespace for the property." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38928 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs set <replaceable>custom</replaceable>:<replaceable>costcenter</replaceable>=<replaceable>1234</replaceable> <replaceable>tank</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs get <replaceable>custom</replaceable>:<replaceable>costcenter</replaceable> <replaceable>tank</replaceable></userinput>\n" +"NAME PROPERTY VALUE SOURCE\n" +"tank custom:costcenter 1234 local" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38933 +msgid "" +"To remove a custom property, use <command>zfs inherit</command> with " +"<option>-r</option>. If the custom property is not defined in any of the " +"parent datasets, it will be removed completely (although the changes are " +"still recorded in the pool's history)." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:38939 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs inherit -r <replaceable>custom</replaceable>:<replaceable>costcenter</replaceable> <replaceable>tank</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs get <replaceable>custom</replaceable>:<replaceable>costcenter</replaceable> <replaceable>tank</replaceable></userinput>\n" +"NAME PROPERTY VALUE SOURCE\n" +"tank custom:costcenter - -\n" +"<prompt>#</prompt> <userinput>zfs get all <replaceable>tank</replaceable> | grep <replaceable>custom</replaceable>:<replaceable>costcenter</replaceable></userinput>\n" +"<prompt>#</prompt>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:38948 +msgid "Managing Snapshots" +msgstr "管理快照 (Snapshot)" + +#. (itstool) path: sect2/para +#: book.translate.xml:38950 +msgid "" +"<link linkend=\"zfs-term-snapshot\">Snapshots</link> are one of the most " +"powerful features of <acronym>ZFS</acronym>. A snapshot provides a read-" +"only, point-in-time copy of the dataset. With Copy-On-Write (<acronym>COW</" +"acronym>), snapshots can be created quickly by preserving the older version " +"of the data on disk. If no snapshots exist, space is reclaimed for future " +"use when data is rewritten or deleted. Snapshots preserve disk space by " +"recording only the differences between the current dataset and a previous " +"version. Snapshots are allowed only on whole datasets, not on individual " +"files or directories. When a snapshot is created from a dataset, everything " +"contained in it is duplicated. This includes the file system properties, " +"files, directories, permissions, and so on. Snapshots use no additional " +"space when they are first created, only consuming space as the blocks they " +"reference are changed. Recursive snapshots taken with <option>-r</option> " +"create a snapshot with the same name on the dataset and all of its children, " +"providing a consistent moment-in-time snapshot of all of the file systems. " +"This can be important when an application has files on multiple datasets " +"that are related or dependent upon each other. Without snapshots, a backup " +"would have copies of the files from different points in time." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:38974 +msgid "" +"Snapshots in <acronym>ZFS</acronym> provide a variety of features that even " +"other file systems with snapshot functionality lack. A typical example of " +"snapshot use is to have a quick way of backing up the current state of the " +"file system when a risky action like a software installation or a system " +"upgrade is performed. If the action fails, the snapshot can be rolled back " +"and the system has the same state as when the snapshot was created. If the " +"upgrade was successful, the snapshot can be deleted to free up space. " +"Without snapshots, a failed upgrade often requires a restore from backup, " +"which is tedious, time consuming, and may require downtime during which the " +"system cannot be used. Snapshots can be rolled back quickly, even while the " +"system is running in normal operation, with little or no downtime. The time " +"savings are enormous with multi-terabyte storage systems and the time " +"required to copy the data from backup. Snapshots are not a replacement for a " +"complete backup of a pool, but can be used as a quick and easy way to store " +"a copy of the dataset at a specific point in time." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:38995 +msgid "Creating Snapshots" +msgstr "建立快照" + +#. (itstool) path: sect3/para +#: book.translate.xml:38997 +msgid "" +"Snapshots are created with <command>zfs snapshot <replaceable>dataset</" +"replaceable>@<replaceable>snapshotname</replaceable></command>. Adding " +"<option>-r</option> creates a snapshot recursively, with the same name on " +"all child datasets." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39002 +msgid "Create a recursive snapshot of the entire pool:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39004 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs list -t all</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool 780M 93.2G 144K none\n" +"mypool/ROOT 777M 93.2G 144K none\n" +"mypool/ROOT/default 777M 93.2G 777M /\n" +"mypool/tmp 176K 93.2G 176K /tmp\n" +"mypool/usr 616K 93.2G 144K /usr\n" +"mypool/usr/home 184K 93.2G 184K /usr/home\n" +"mypool/usr/ports 144K 93.2G 144K /usr/ports\n" +"mypool/usr/src 144K 93.2G 144K /usr/src\n" +"mypool/var 1.29M 93.2G 616K /var\n" +"mypool/var/crash 148K 93.2G 148K /var/crash\n" +"mypool/var/log 178K 93.2G 178K /var/log\n" +"mypool/var/mail 144K 93.2G 144K /var/mail\n" +"mypool/var/newname 87.5K 93.2G 87.5K /var/newname\n" +"mypool/var/newname@new_snapshot_name 0 - 87.5K -\n" +"mypool/var/tmp 152K 93.2G 152K /var/tmp\n" +"<prompt>#</prompt> <userinput>zfs snapshot -r <replaceable>mypool@my_recursive_snapshot</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs list -t snapshot</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool@my_recursive_snapshot 0 - 144K -\n" +"mypool/ROOT@my_recursive_snapshot 0 - 144K -\n" +"mypool/ROOT/default@my_recursive_snapshot 0 - 777M -\n" +"mypool/tmp@my_recursive_snapshot 0 - 176K -\n" +"mypool/usr@my_recursive_snapshot 0 - 144K -\n" +"mypool/usr/home@my_recursive_snapshot 0 - 184K -\n" +"mypool/usr/ports@my_recursive_snapshot 0 - 144K -\n" +"mypool/usr/src@my_recursive_snapshot 0 - 144K -\n" +"mypool/var@my_recursive_snapshot 0 - 616K -\n" +"mypool/var/crash@my_recursive_snapshot 0 - 148K -\n" +"mypool/var/log@my_recursive_snapshot 0 - 178K -\n" +"mypool/var/mail@my_recursive_snapshot 0 - 144K -\n" +"mypool/var/newname@new_snapshot_name 0 - 87.5K -\n" +"mypool/var/newname@my_recursive_snapshot 0 - 87.5K -\n" +"mypool/var/tmp@my_recursive_snapshot 0 - 152K -" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39040 +msgid "" +"Snapshots are not shown by a normal <command>zfs list</command> operation. " +"To list snapshots, <option>-t snapshot</option> is appended to <command>zfs " +"list</command>. <option>-t all</option> displays both file systems and " +"snapshots." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39046 +msgid "" +"Snapshots are not mounted directly, so path is shown in the " +"<literal>MOUNTPOINT</literal> column. There is no mention of available disk " +"space in the <literal>AVAIL</literal> column, as snapshots cannot be written " +"to after they are created. Compare the snapshot to the original dataset from " +"which it was created:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39053 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs list -rt all <replaceable>mypool/usr/home</replaceable></userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool/usr/home 184K 93.2G 184K /usr/home\n" +"mypool/usr/home@my_recursive_snapshot 0 - 184K -" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39058 +msgid "" +"Displaying both the dataset and the snapshot together reveals how snapshots " +"work in <link linkend=\"zfs-term-cow\">COW</link> fashion. They save only " +"the changes (<emphasis>delta</emphasis>) that were made and not the complete " +"file system contents all over again. This means that snapshots take little " +"space when few changes are made. Space usage can be made even more apparent " +"by copying a file to the dataset, then making a second snapshot:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39068 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cp <replaceable>/etc/passwd</replaceable> <replaceable>/var/tmp</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs snapshot <replaceable>mypool/var/tmp</replaceable>@<replaceable>after_cp</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs list -rt all <replaceable>mypool/var/tmp</replaceable></userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool/var/tmp 206K 93.2G 118K /var/tmp\n" +"mypool/var/tmp@my_recursive_snapshot 88K - 152K -\n" +"mypool/var/tmp@after_cp 0 - 118K -" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39076 +msgid "" +"The second snapshot contains only the changes to the dataset after the copy " +"operation. This yields enormous space savings. Notice that the size of the " +"snapshot <replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable> " +"also changed in the <literal>USED</literal> column to indicate the changes " +"between itself and the snapshot taken afterwards." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:39086 +msgid "Comparing Snapshots" +msgstr "比對快照" + +#. (itstool) path: sect3/para +#: book.translate.xml:39088 +msgid "" +"ZFS provides a built-in command to compare the differences in content " +"between two snapshots. This is helpful when many snapshots were taken over " +"time and the user wants to see how the file system has changed over time. " +"For example, <command>zfs diff</command> lets a user find the latest " +"snapshot that still contains a file that was accidentally deleted. Doing " +"this for the two snapshots that were created in the previous section yields " +"this output:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39098 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs list -rt all <replaceable>mypool/var/tmp</replaceable></userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool/var/tmp 206K 93.2G 118K /var/tmp\n" +"mypool/var/tmp@my_recursive_snapshot 88K - 152K -\n" +"mypool/var/tmp@after_cp 0 - 118K -\n" +"<prompt>#</prompt> <userinput>zfs diff <replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable></userinput>\n" +"M /var/tmp/\n" +"+ /var/tmp/passwd" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39107 +msgid "" +"The command lists the changes between the specified snapshot (in this case " +"<literal><replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable></" +"literal>) and the live file system. The first column shows the type of " +"change:" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:39118 +msgid "The path or file was added." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:39123 +msgid "The path or file was deleted." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossdiv/title +#: book.translate.xml:39127 book.translate.xml:65535 +msgid "M" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:39128 +msgid "The path or file was modified." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossdiv/title +#: book.translate.xml:39132 book.translate.xml:65535 +msgid "R" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:39133 +msgid "The path or file was renamed." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39139 +msgid "" +"Comparing the output with the table, it becomes clear that " +"<filename><replaceable>passwd</replaceable></filename> was added after the " +"snapshot <literal><replaceable>mypool/var/tmp@my_recursive_snapshot</" +"replaceable></literal> was created. This also resulted in a modification to " +"the parent directory mounted at <literal><replaceable>/var/tmp</" +"replaceable></literal>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39147 +msgid "" +"Comparing two snapshots is helpful when using the <acronym>ZFS</acronym> " +"replication feature to transfer a dataset to a different host for backup " +"purposes." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39151 +msgid "" +"Compare two snapshots by providing the full dataset name and snapshot name " +"of both datasets:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39154 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cp /var/tmp/passwd /var/tmp/passwd.copy</userinput>\n" +"<prompt>#</prompt> <userinput>zfs snapshot <replaceable>mypool/var/tmp@diff_snapshot</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs diff <replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable> <replaceable>mypool/var/tmp@diff_snapshot</replaceable></userinput>\n" +"M /var/tmp/\n" +"+ /var/tmp/passwd\n" +"+ /var/tmp/passwd.copy\n" +"<prompt>#</prompt> <userinput>zfs diff <replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable> <replaceable>mypool/var/tmp@after_cp</replaceable></userinput>\n" +"M /var/tmp/\n" +"+ /var/tmp/passwd" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39164 +msgid "" +"A backup administrator can compare two snapshots received from the sending " +"host and determine the actual changes in the dataset. See the <link linkend=" +"\"zfs-zfs-send\">Replication</link> section for more information." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:39172 +msgid "Snapshot Rollback" +msgstr "使用快照還原" + +#. (itstool) path: sect3/para +#: book.translate.xml:39174 +msgid "" +"When at least one snapshot is available, it can be rolled back to at any " +"time. Most of the time this is the case when the current state of the " +"dataset is no longer required and an older version is preferred. Scenarios " +"such as local development tests have gone wrong, botched system updates " +"hampering the system's overall functionality, or the requirement to restore " +"accidentally deleted files or directories are all too common occurrences. " +"Luckily, rolling back a snapshot is just as easy as typing <command>zfs " +"rollback <replaceable>snapshotname</replaceable></command>. Depending on how " +"many changes are involved, the operation will finish in a certain amount of " +"time. During that time, the dataset always remains in a consistent state, " +"much like a database that conforms to ACID principles is performing a " +"rollback. This is happening while the dataset is live and accessible without " +"requiring a downtime. Once the snapshot has been rolled back, the dataset " +"has the same state as it had when the snapshot was originally taken. All " +"other data in that dataset that was not part of the snapshot is discarded. " +"Taking a snapshot of the current state of the dataset before rolling back to " +"a previous one is a good idea when some data is required later. This way, " +"the user can roll back and forth between snapshots without losing data that " +"is still valuable." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39200 +msgid "" +"In the first example, a snapshot is rolled back because of a careless " +"<command>rm</command> operation that removes too much data than was intended." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39204 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs list -rt all <replaceable>mypool/var/tmp</replaceable></userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool/var/tmp 262K 93.2G 120K /var/tmp\n" +"mypool/var/tmp@my_recursive_snapshot 88K - 152K -\n" +"mypool/var/tmp@after_cp 53.5K - 118K -\n" +"mypool/var/tmp@diff_snapshot 0 - 120K -\n" +"<prompt>%</prompt> <userinput>ls /var/tmp</userinput>\n" +"passwd passwd.copy\n" +"<prompt>%</prompt> <userinput>rm /var/tmp/passwd*</userinput>\n" +"<prompt>%</prompt> <userinput>ls /var/tmp</userinput>\n" +"vi.recover\n" +"<prompt>%</prompt>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39217 +msgid "" +"At this point, the user realized that too many files were deleted and wants " +"them back. <acronym>ZFS</acronym> provides an easy way to get them back " +"using rollbacks, but only when snapshots of important data are performed on " +"a regular basis. To get the files back and start over from the last " +"snapshot, issue the command:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39224 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs rollback <replaceable>mypool/var/tmp@diff_snapshot</replaceable></userinput>\n" +"<prompt>%</prompt> <userinput>ls /var/tmp</userinput>\n" +"passwd passwd.copy vi.recover" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39228 +msgid "" +"The rollback operation restored the dataset to the state of the last " +"snapshot. It is also possible to roll back to a snapshot that was taken much " +"earlier and has other snapshots that were created after it. When trying to " +"do this, <acronym>ZFS</acronym> will issue this warning:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39234 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs list -rt snapshot <replaceable>mypool/var/tmp</replaceable></userinput>\n" +"AME USED AVAIL REFER MOUNTPOINT\n" +"mypool/var/tmp@my_recursive_snapshot 88K - 152K -\n" +"mypool/var/tmp@after_cp 53.5K - 118K -\n" +"mypool/var/tmp@diff_snapshot 0 - 120K -\n" +"<prompt>#</prompt> <userinput>zfs rollback <replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable></userinput>\n" +"cannot rollback to 'mypool/var/tmp@my_recursive_snapshot': more recent snapshots exist\n" +"use '-r' to force deletion of the following snapshots:\n" +"mypool/var/tmp@after_cp\n" +"mypool/var/tmp@diff_snapshot" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39245 +msgid "" +"This warning means that snapshots exist between the current state of the " +"dataset and the snapshot to which the user wants to roll back. To complete " +"the rollback, these snapshots must be deleted. <acronym>ZFS</acronym> cannot " +"track all the changes between different states of the dataset, because " +"snapshots are read-only. <acronym>ZFS</acronym> will not delete the affected " +"snapshots unless the user specifies <option>-r</option> to indicate that " +"this is the desired action. If that is the intention, and the consequences " +"of losing all intermediate snapshots is understood, the command can be " +"issued:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39257 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs rollback -r <replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs list -rt snapshot <replaceable>mypool/var/tmp</replaceable></userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool/var/tmp@my_recursive_snapshot 8K - 152K -\n" +"<prompt>%</prompt> <userinput>ls /var/tmp</userinput>\n" +"vi.recover" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39264 +msgid "" +"The output from <command>zfs list -t snapshot</command> confirms that the " +"intermediate snapshots were removed as a result of <command>zfs rollback -r</" +"command>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:39271 +msgid "Restoring Individual Files from Snapshots" +msgstr "自快照還原單一檔案" + +#. (itstool) path: sect3/para +#: book.translate.xml:39273 +msgid "" +"Snapshots are mounted in a hidden directory under the parent dataset: " +"<filename>.zfs/snapshots/<replaceable>snapshotname</replaceable></filename>. " +"By default, these directories will not be displayed even when a standard " +"<command>ls -a</command> is issued. Although the directory is not displayed, " +"it is there nevertheless and can be accessed like any normal directory. The " +"property named <literal>snapdir</literal> controls whether these hidden " +"directories show up in a directory listing. Setting the property to " +"<literal>visible</literal> allows them to appear in the output of " +"<command>ls</command> and other commands that deal with directory contents." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39286 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs get snapdir <replaceable>mypool/var/tmp</replaceable></userinput>\n" +"NAME PROPERTY VALUE SOURCE\n" +"mypool/var/tmp snapdir hidden default\n" +"<prompt>%</prompt> <userinput>ls -a /var/tmp</userinput>\n" +". .. passwd vi.recover\n" +"<prompt>#</prompt> <userinput>zfs set snapdir=visible <replaceable>mypool/var/tmp</replaceable></userinput>\n" +"<prompt>%</prompt> <userinput>ls -a /var/tmp</userinput>\n" +". .. .zfs passwd vi.recover" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39295 +msgid "" +"Individual files can easily be restored to a previous state by copying them " +"from the snapshot back to the parent dataset. The directory structure below " +"<filename>.zfs/snapshot</filename> has a directory named exactly like the " +"snapshots taken earlier to make it easier to identify them. In the next " +"example, it is assumed that a file is to be restored from the hidden " +"<filename>.zfs</filename> directory by copying it from the snapshot that " +"contained the latest version of the file:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39306 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>rm /var/tmp/passwd</userinput>\n" +"<prompt>%</prompt> <userinput>ls -a /var/tmp</userinput>\n" +". .. .zfs vi.recover\n" +"<prompt>#</prompt> <userinput>ls /var/tmp/.zfs/snapshot</userinput>\n" +"after_cp my_recursive_snapshot\n" +"<prompt>#</prompt> <userinput>ls /var/tmp/.zfs/snapshot/<replaceable>after_cp</replaceable></userinput>\n" +"passwd vi.recover\n" +"<prompt>#</prompt> <userinput>cp /var/tmp/.zfs/snapshot/<replaceable>after_cp/passwd</replaceable> <replaceable>/var/tmp</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39315 +msgid "" +"When <command>ls .zfs/snapshot</command> was issued, the <literal>snapdir</" +"literal> property might have been set to hidden, but it would still be " +"possible to list the contents of that directory. It is up to the " +"administrator to decide whether these directories will be displayed. It is " +"possible to display these for certain datasets and prevent it for others. " +"Copying files or directories from this hidden <filename>.zfs/snapshot</" +"filename> is simple enough. Trying it the other way around results in this " +"error:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39325 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cp <replaceable>/etc/rc.conf</replaceable> /var/tmp/.zfs/snapshot/<replaceable>after_cp/</replaceable></userinput>\n" +"cp: /var/tmp/.zfs/snapshot/after_cp/rc.conf: Read-only file system" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39328 +msgid "" +"The error reminds the user that snapshots are read-only and cannot be " +"changed after creation. Files cannot be copied into or removed from snapshot " +"directories because that would change the state of the dataset they " +"represent." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39334 +msgid "" +"Snapshots consume space based on how much the parent file system has changed " +"since the time of the snapshot. The <literal>written</literal> property of a " +"snapshot tracks how much space is being used by the snapshot." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39339 +msgid "" +"Snapshots are destroyed and the space reclaimed with <command>zfs destroy " +"<replaceable>dataset</replaceable>@<replaceable>snapshot</replaceable></" +"command>. Adding <option>-r</option> recursively removes all snapshots with " +"the same name under the parent dataset. Adding <option>-n -v</option> to the " +"command displays a list of the snapshots that would be deleted and an " +"estimate of how much space would be reclaimed without performing the actual " +"destroy operation." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:39352 +msgid "Managing Clones" +msgstr "管理複本 (Clone)" + +#. (itstool) path: sect2/para +#: book.translate.xml:39354 +msgid "" +"A clone is a copy of a snapshot that is treated more like a regular dataset. " +"Unlike a snapshot, a clone is not read only, is mounted, and can have its " +"own properties. Once a clone has been created using <command>zfs clone</" +"command>, the snapshot it was created from cannot be destroyed. The child/" +"parent relationship between the clone and the snapshot can be reversed using " +"<command>zfs promote</command>. After a clone has been promoted, the " +"snapshot becomes a child of the clone, rather than of the original parent " +"dataset. This will change how the space is accounted, but not actually " +"change the amount of space consumed. The clone can be mounted at any point " +"within the <acronym>ZFS</acronym> file system hierarchy, not just below the " +"original location of the snapshot." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39368 +msgid "To demonstrate the clone feature, this example dataset is used:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39371 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs list -rt all <replaceable>camino/home/joe</replaceable></userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"camino/home/joe 108K 1.3G 87K /usr/home/joe\n" +"camino/home/joe@plans 21K - 85.5K -\n" +"camino/home/joe@backup 0K - 87K -" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39377 +msgid "" +"A typical use for clones is to experiment with a specific dataset while " +"keeping the snapshot around to fall back to in case something goes wrong. " +"Since snapshots cannot be changed, a read/write clone of a snapshot is " +"created. After the desired result is achieved in the clone, the clone can be " +"promoted to a dataset and the old file system removed. This is not strictly " +"necessary, as the clone and dataset can coexist without problems." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39386 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs clone <replaceable>camino/home/joe</replaceable>@<replaceable>backup</replaceable> <replaceable>camino/home/joenew</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ls /usr/home/joe*</userinput>\n" +"/usr/home/joe:\n" +"backup.txz plans.txt\n" +"\n" +"/usr/home/joenew:\n" +"backup.txz plans.txt\n" +"<prompt>#</prompt> <userinput>df -h /usr/home</userinput>\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"usr/home/joe 1.3G 31k 1.3G 0% /usr/home/joe\n" +"usr/home/joenew 1.3G 31k 1.3G 0% /usr/home/joenew" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39398 +msgid "" +"After a clone is created it is an exact copy of the state the dataset was in " +"when the snapshot was taken. The clone can now be changed independently from " +"its originating dataset. The only connection between the two is the " +"snapshot. <acronym>ZFS</acronym> records this connection in the property " +"<literal>origin</literal>. Once the dependency between the snapshot and the " +"clone has been removed by promoting the clone using <command>zfs promote</" +"command>, the <literal>origin</literal> of the clone is removed as it is now " +"an independent dataset. This example demonstrates it:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39409 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs get origin <replaceable>camino/home/joenew</replaceable></userinput>\n" +"NAME PROPERTY VALUE SOURCE\n" +"camino/home/joenew origin camino/home/joe@backup -\n" +"<prompt>#</prompt> <userinput>zfs promote <replaceable>camino/home/joenew</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs get origin <replaceable>camino/home/joenew</replaceable></userinput>\n" +"NAME PROPERTY VALUE SOURCE\n" +"camino/home/joenew origin - -" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39417 +msgid "" +"After making some changes like copying <filename>loader.conf</filename> to " +"the promoted clone, for example, the old directory becomes obsolete in this " +"case. Instead, the promoted clone can replace it. This can be achieved by " +"two consecutive commands: <command>zfs destroy</command> on the old dataset " +"and <command>zfs rename</command> on the clone to name it like the old " +"dataset (it could also get an entirely different name)." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39426 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cp <replaceable>/boot/defaults/loader.conf</replaceable> <replaceable>/usr/home/joenew</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs destroy -f <replaceable>camino/home/joe</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs rename <replaceable>camino/home/joenew</replaceable> <replaceable>camino/home/joe</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ls /usr/home/joe</userinput>\n" +"backup.txz loader.conf plans.txt\n" +"<prompt>#</prompt> <userinput>df -h <replaceable>/usr/home</replaceable></userinput>\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"usr/home/joe 1.3G 128k 1.3G 0% /usr/home/joe" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39435 +msgid "" +"The cloned snapshot is now handled like an ordinary dataset. It contains all " +"the data from the original snapshot plus the files that were added to it " +"like <filename>loader.conf</filename>. Clones can be used in different " +"scenarios to provide useful features to ZFS users. For example, jails could " +"be provided as snapshots containing different sets of installed " +"applications. Users can clone these snapshots and add their own applications " +"as they see fit. Once they are satisfied with the changes, the clones can be " +"promoted to full datasets and provided to end users to work with like they " +"would with a real dataset. This saves time and administrative overhead when " +"providing these jails." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:39450 +msgid "Replication" +msgstr "備援" + +#. (itstool) path: sect2/para +#: book.translate.xml:39452 +msgid "" +"Keeping data on a single pool in one location exposes it to risks like theft " +"and natural or human disasters. Making regular backups of the entire pool is " +"vital. <acronym>ZFS</acronym> provides a built-in serialization feature that " +"can send a stream representation of the data to standard output. Using this " +"technique, it is possible to not only store the data on another pool " +"connected to the local system, but also to send it over a network to another " +"system. Snapshots are the basis for this replication (see the section on " +"<link linkend=\"zfs-zfs-snapshot\"><acronym>ZFS</acronym> snapshots</link>). " +"The commands used for replicating data are <command>zfs send</command> and " +"<command>zfs receive</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39466 +msgid "" +"These examples demonstrate <acronym>ZFS</acronym> replication with these two " +"pools:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39469 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool list</userinput>\n" +"NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT\n" +"backup 960M 77K 896M 0% 1.00x ONLINE -\n" +"mypool 984M 43.7M 940M 4% 1.00x ONLINE -" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39474 +msgid "" +"The pool named <replaceable>mypool</replaceable> is the primary pool where " +"data is written to and read from on a regular basis. A second pool, " +"<replaceable>backup</replaceable> is used as a standby in case the primary " +"pool becomes unavailable. Note that this fail-over is not done automatically " +"by <acronym>ZFS</acronym>, but must be manually done by a system " +"administrator when needed. A snapshot is used to provide a consistent " +"version of the file system to be replicated. Once a snapshot of " +"<replaceable>mypool</replaceable> has been created, it can be copied to the " +"<replaceable>backup</replaceable> pool. Only snapshots can be replicated. " +"Changes made since the most recent snapshot will not be included." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39488 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs snapshot <replaceable>mypool</replaceable>@<replaceable>backup1</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs list -t snapshot</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool@backup1 0 - 43.6M -" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39493 +msgid "" +"Now that a snapshot exists, <command>zfs send</command> can be used to " +"create a stream representing the contents of the snapshot. This stream can " +"be stored as a file or received by another pool. The stream is written to " +"standard output, but must be redirected to a file or pipe or an error is " +"produced:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39500 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs send <replaceable>mypool</replaceable>@<replaceable>backup1</replaceable></userinput>\n" +"Error: Stream can not be written to a terminal.\n" +"You must redirect standard output." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39504 +msgid "" +"To back up a dataset with <command>zfs send</command>, redirect to a file " +"located on the mounted backup pool. Ensure that the pool has enough free " +"space to accommodate the size of the snapshot being sent, which means all of " +"the data contained in the snapshot, not just the changes from the previous " +"snapshot." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39511 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs send <replaceable>mypool</replaceable>@<replaceable>backup1</replaceable> > <replaceable>/backup/backup1</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zpool list</userinput>\n" +"NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT\n" +"backup 960M 63.7M 896M 6% 1.00x ONLINE -\n" +"mypool 984M 43.7M 940M 4% 1.00x ONLINE -" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39517 +msgid "" +"The <command>zfs send</command> transferred all the data in the snapshot " +"called <replaceable>backup1</replaceable> to the pool named " +"<replaceable>backup</replaceable>. Creating and sending these snapshots can " +"be done automatically with a <citerefentry><refentrytitle>cron</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> job." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39523 +msgid "" +"Instead of storing the backups as archive files, <acronym>ZFS</acronym> can " +"receive them as a live file system, allowing the backed up data to be " +"accessed directly. To get to the actual data contained in those streams, " +"<command>zfs receive</command> is used to transform the streams back into " +"files and directories. The example below combines <command>zfs send</" +"command> and <command>zfs receive</command> using a pipe to copy the data " +"from one pool to another. The data can be used directly on the receiving " +"pool after the transfer is complete. A dataset can only be replicated to an " +"empty dataset." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39535 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs snapshot <replaceable>mypool</replaceable>@<replaceable>replica1</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs send -v <replaceable>mypool</replaceable>@<replaceable>replica1</replaceable> | zfs receive <replaceable>backup/mypool</replaceable></userinput>\n" +"send from @ to mypool@replica1 estimated size is 50.1M\n" +"total estimated size is 50.1M\n" +"TIME SENT SNAPSHOT\n" +"\n" +"<prompt>#</prompt> <userinput>zpool list</userinput>\n" +"NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT\n" +"backup 960M 63.7M 896M 6% 1.00x ONLINE -\n" +"mypool 984M 43.7M 940M 4% 1.00x ONLINE -" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:39547 +msgid "Incremental Backups" +msgstr "漸進式備份" + +#. (itstool) path: sect3/para +#: book.translate.xml:39549 +msgid "" +"<command>zfs send</command> can also determine the difference between two " +"snapshots and send only the differences between the two. This saves disk " +"space and transfer time. For example:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39554 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs snapshot <replaceable>mypool</replaceable>@<replaceable>replica2</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs list -t snapshot</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"mypool@replica1 5.72M - 43.6M -\n" +"mypool@replica2 0 - 44.1M -\n" +"<prompt>#</prompt> <userinput>zpool list</userinput>\n" +"NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT\n" +"backup 960M 61.7M 898M 6% 1.00x ONLINE -\n" +"mypool 960M 50.2M 910M 5% 1.00x ONLINE -" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39564 +msgid "" +"A second snapshot called <replaceable>replica2</replaceable> was created. " +"This second snapshot contains only the changes that were made to the file " +"system between now and the previous snapshot, <replaceable>replica1</" +"replaceable>. Using <command>zfs send -i</command> and indicating the pair " +"of snapshots generates an incremental replica stream containing only the " +"data that has changed. This can only succeed if the initial snapshot already " +"exists on the receiving side." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39575 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs send -v -i <replaceable>mypool</replaceable>@<replaceable>replica1</replaceable> <replaceable>mypool</replaceable>@<replaceable>replica2</replaceable> | zfs receive <replaceable>/backup/mypool</replaceable></userinput>\n" +"send from @replica1 to mypool@replica2 estimated size is 5.02M\n" +"total estimated size is 5.02M\n" +"TIME SENT SNAPSHOT\n" +"\n" +"<prompt>#</prompt> <userinput>zpool list</userinput>\n" +"NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT\n" +"backup 960M 80.8M 879M 8% 1.00x ONLINE -\n" +"mypool 960M 50.2M 910M 5% 1.00x ONLINE -\n" +"\n" +"<prompt>#</prompt> <userinput>zfs list</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"backup 55.4M 240G 152K /backup\n" +"backup/mypool 55.3M 240G 55.2M /backup/mypool\n" +"mypool 55.6M 11.6G 55.0M /mypool\n" +"\n" +"<prompt>#</prompt> <userinput>zfs list -t snapshot</userinput>\n" +"NAME USED AVAIL REFER MOUNTPOINT\n" +"backup/mypool@replica1 104K - 50.2M -\n" +"backup/mypool@replica2 0 - 55.2M -\n" +"mypool@replica1 29.9K - 50.0M -\n" +"mypool@replica2 0 - 55.0M -" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39598 +msgid "" +"The incremental stream was successfully transferred. Only the data that had " +"changed was replicated, rather than the entirety of <replaceable>replica1</" +"replaceable>. Only the differences were sent, which took much less time to " +"transfer and saved disk space by not copying the complete pool each time. " +"This is useful when having to rely on slow networks or when costs per " +"transferred byte must be considered." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39607 +msgid "" +"A new file system, <replaceable>backup/mypool</replaceable>, is available " +"with all of the files and data from the pool <replaceable>mypool</" +"replaceable>. If <option>-P</option> is specified, the properties of the " +"dataset will be copied, including compression settings, quotas, and mount " +"points. When <option>-R</option> is specified, all child datasets of the " +"indicated dataset will be copied, along with all of their properties. " +"Sending and receiving can be automated so that regular backups are created " +"on the second pool." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:39620 +msgid "Sending Encrypted Backups over <application>SSH</application>" +msgstr "透過 <application>SSH</application> 傳送已加密的備份" + +#. (itstool) path: sect3/para +#: book.translate.xml:39623 +msgid "" +"Sending streams over the network is a good way to keep a remote backup, but " +"it does come with a drawback. Data sent over the network link is not " +"encrypted, allowing anyone to intercept and transform the streams back into " +"data without the knowledge of the sending user. This is undesirable, " +"especially when sending the streams over the internet to a remote host. " +"<application>SSH</application> can be used to securely encrypt data send " +"over a network connection. Since <acronym>ZFS</acronym> only requires the " +"stream to be redirected from standard output, it is relatively easy to pipe " +"it through <application>SSH</application>. To keep the contents of the file " +"system encrypted in transit and on the remote system, consider using <link " +"xlink:href=\"http://wiki.freebsd.org/PEFS\">PEFS</link>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39637 +msgid "" +"A few settings and security precautions must be completed first. Only the " +"necessary steps required for the <command>zfs send</command> operation are " +"shown here. For more information on <application>SSH</application>, see " +"<xref linkend=\"openssh\"/>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39643 +msgid "This configuration is required:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:39647 +msgid "" +"Passwordless <application>SSH</application> access between sending and " +"receiving host using <application>SSH</application> keys" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:39653 +msgid "" +"Normally, the privileges of the <systemitem class=\"username\">root</" +"systemitem> user are needed to send and receive streams. This requires " +"logging in to the receiving system as <systemitem class=\"username\">root</" +"systemitem>. However, logging in as <systemitem class=\"username\">root</" +"systemitem> is disabled by default for security reasons. The <link linkend=" +"\"zfs-zfs-allow\">ZFS Delegation</link> system can be used to allow a non-" +"<systemitem class=\"username\">root</systemitem> user on each system to " +"perform the respective send and receive operations." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:39669 +msgid "On the sending system:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:39671 +#, no-wrap +msgid "<prompt>#</prompt> <command>zfs allow -u someuser send,snapshot <replaceable>mypool</replaceable></command>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:39675 +msgid "" +"To mount the pool, the unprivileged user must own the directory, and regular " +"users must be allowed to mount file systems. On the receiving system:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:39679 +#, no-wrap +msgid "" +"<prompt>#</prompt> sysctl vfs.usermount=1\n" +"vfs.usermount: 0 -> 1\n" +"<prompt>#</prompt> echo vfs.usermount=1 >> /etc/sysctl.conf\n" +"<prompt>#</prompt> <userinput>zfs create <replaceable>recvpool/backup</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>zfs allow -u <replaceable>someuser</replaceable> create,mount,receive <replaceable>recvpool/backup</replaceable></userinput>\n" +"<prompt>#</prompt> chown <replaceable>someuser</replaceable> <replaceable>/recvpool/backup</replaceable>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39688 +msgid "" +"The unprivileged user now has the ability to receive and mount datasets, and " +"the <replaceable>home</replaceable> dataset can be replicated to the remote " +"system:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:39692 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>zfs snapshot -r <replaceable>mypool/home</replaceable>@<replaceable>monday</replaceable></userinput>\n" +"<prompt>%</prompt> <userinput>zfs send -R <replaceable>mypool/home</replaceable>@<replaceable>monday</replaceable> | ssh <replaceable>someuser@backuphost</replaceable> zfs recv -dvu <replaceable>recvpool/backup</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:39695 +msgid "" +"A recursive snapshot called <replaceable>monday</replaceable> is made of the " +"file system dataset <replaceable>home</replaceable> that resides on the pool " +"<replaceable>mypool</replaceable>. Then it is sent with <command>zfs send -" +"R</command> to include the dataset, all child datasets, snaphots, clones, " +"and settings in the stream. The output is piped to the waiting <command>zfs " +"receive</command> on the remote host <replaceable>backuphost</replaceable> " +"through <application>SSH</application>. Using a fully qualified domain name " +"or IP address is recommended. The receiving machine writes the data to the " +"<replaceable>backup</replaceable> dataset on the <replaceable>recvpool</" +"replaceable> pool. Adding <option>-d</option> to <command>zfs recv</command> " +"overwrites the name of the pool on the receiving side with the name of the " +"snapshot. <option>-u</option> causes the file systems to not be mounted on " +"the receiving side. When <option>-v</option> is included, more detail about " +"the transfer is shown, including elapsed time and the amount of data " +"transferred." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:39720 +msgid "Dataset, User, and Group Quotas" +msgstr "資料集、使用者以及群組配額" + +#. (itstool) path: sect2/para +#: book.translate.xml:39722 +msgid "" +"<link linkend=\"zfs-term-quota\">Dataset quotas</link> are used to restrict " +"the amount of space that can be consumed by a particular dataset. <link " +"linkend=\"zfs-term-refquota\">Reference Quotas</link> work in very much the " +"same way, but only count the space used by the dataset itself, excluding " +"snapshots and child datasets. Similarly, <link linkend=\"zfs-term-userquota" +"\">user</link> and <link linkend=\"zfs-term-groupquota\">group</link> quotas " +"can be used to prevent users or groups from using all of the space in the " +"pool or dataset." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39734 +msgid "" +"To enforce a dataset quota of 10 GB for <filename>storage/home/bob</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39737 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set quota=10G storage/home/bob</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39739 +msgid "" +"To enforce a reference quota of 10 GB for <filename>storage/home/bob</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39742 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set refquota=10G storage/home/bob</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39744 +msgid "To remove a quota of 10 GB for <filename>storage/home/bob</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39747 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set quota=none storage/home/bob</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39749 +msgid "" +"The general format is <literal>userquota@<replaceable>user</" +"replaceable>=<replaceable>size</replaceable></literal>, and the user's name " +"must be in one of these formats:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:39755 +msgid "" +"<acronym>POSIX</acronym> compatible name such as <replaceable>joe</" +"replaceable>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:39760 +msgid "" +"<acronym>POSIX</acronym> numeric ID such as <replaceable>789</replaceable>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:39765 +msgid "" +"<acronym>SID</acronym> name such as <replaceable>joe.bloggs@example.com</" +"replaceable>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:39771 +msgid "" +"<acronym>SID</acronym> numeric ID such as <replaceable>S-1-123-456-789</" +"replaceable>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39777 +msgid "" +"For example, to enforce a user quota of 50 GB for the user named " +"<replaceable>joe</replaceable>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39780 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set userquota@joe=50G</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39782 +msgid "To remove any quota:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39784 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set userquota@joe=none</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:39787 +msgid "" +"User quota properties are not displayed by <command>zfs get all</command>. " +"Non-<systemitem class=\"username\">root</systemitem> users can only see " +"their own quotas unless they have been granted the <literal>userquota</" +"literal> privilege. Users with this privilege are able to view and set " +"everyone's quota." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39795 +msgid "" +"The general format for setting a group quota is: " +"<literal>groupquota@<replaceable>group</replaceable>=<replaceable>size</" +"replaceable></literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39798 +msgid "" +"To set the quota for the group <replaceable>firstgroup</replaceable> to " +"50 GB, use:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39802 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set groupquota@firstgroup=50G</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39804 +msgid "" +"To remove the quota for the group <replaceable>firstgroup</replaceable>, or " +"to make sure that one is not set, instead use:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39808 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set groupquota@firstgroup=none</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39810 +msgid "" +"As with the user quota property, non-<systemitem class=\"username\">root</" +"systemitem> users can only see the quotas associated with the groups to " +"which they belong. However, <systemitem class=\"username\">root</systemitem> " +"or a user with the <literal>groupquota</literal> privilege can view and set " +"all quotas for all groups." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39818 +msgid "" +"To display the amount of space used by each user on a file system or " +"snapshot along with any quotas, use <command>zfs userspace</command>. For " +"group information, use <command>zfs groupspace</command>. For more " +"information about supported options or how to display only specific options, " +"refer to <citerefentry><refentrytitle>zfs</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39825 +msgid "" +"Users with sufficient privileges, and <systemitem class=\"username\">root</" +"systemitem>, can list the quota for <filename>storage/home/bob</filename> " +"using:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39829 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs get quota storage/home/bob</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:39833 +msgid "Reservations" +msgstr "保留空間" + +#. (itstool) path: sect2/para +#: book.translate.xml:39835 +msgid "" +"<link linkend=\"zfs-term-reservation\">Reservations</link> guarantee a " +"minimum amount of space will always be available on a dataset. The reserved " +"space will not be available to any other dataset. This feature can be " +"especially useful to ensure that free space is available for an important " +"dataset or log files." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39842 +msgid "" +"The general format of the <literal>reservation</literal> property is " +"<literal>reservation=<replaceable>size</replaceable></literal>, so to set a " +"reservation of 10 GB on <filename>storage/home/bob</filename>, use:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39848 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set reservation=10G storage/home/bob</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39850 +msgid "To clear any reservation:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39852 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set reservation=none storage/home/bob</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39854 +msgid "" +"The same principle can be applied to the <literal>refreservation</literal> " +"property for setting a <link linkend=\"zfs-term-refreservation\">Reference " +"Reservation</link>, with the general format " +"<literal>refreservation=<replaceable>size</replaceable></literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39860 +msgid "" +"This command shows any reservations or refreservations that exist on " +"<filename>storage/home/bob</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39863 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs get reservation storage/home/bob</userinput>\n" +"<prompt>#</prompt> <userinput>zfs get refreservation storage/home/bob</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-compression +#: book.translate.xml:39868 book.translate.xml:40987 +msgid "Compression" +msgstr "壓縮 (Compression)" + +#. (itstool) path: sect2/para +#: book.translate.xml:39870 +msgid "" +"<acronym>ZFS</acronym> provides transparent compression. Compressing data at " +"the block level as it is written not only saves space, but can also increase " +"disk throughput. If data is compressed by 25%, but the compressed data is " +"written to the disk at the same rate as the uncompressed version, resulting " +"in an effective write speed of 125%. Compression can also be a great " +"alternative to <link linkend=\"zfs-zfs-deduplication\">Deduplication</link> " +"because it does not require additional memory." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39880 +msgid "" +"<acronym>ZFS</acronym> offers several different compression algorithms, each " +"with different trade-offs. With the introduction of <acronym>LZ4</acronym> " +"compression in <acronym>ZFS</acronym> v5000, it is possible to enable " +"compression for the entire pool without the large performance trade-off of " +"other algorithms. The biggest advantage to <acronym>LZ4</acronym> is the " +"<emphasis>early abort</emphasis> feature. If <acronym>LZ4</acronym> does not " +"achieve at least 12.5% compression in the first part of the data, the block " +"is written uncompressed to avoid wasting CPU cycles trying to compress data " +"that is either already compressed or uncompressible. For details about the " +"different compression algorithms available in <acronym>ZFS</acronym>, see " +"the <link linkend=\"zfs-term-compression\">Compression</link> entry in the " +"terminology section." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39896 +msgid "" +"The administrator can monitor the effectiveness of compression using a " +"number of dataset properties." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39899 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs get used,compressratio,compression,logicalused <replaceable>mypool/compressed_dataset</replaceable></userinput>\n" +"NAME PROPERTY VALUE SOURCE\n" +"mypool/compressed_dataset used 449G -\n" +"mypool/compressed_dataset compressratio 1.11x -\n" +"mypool/compressed_dataset compression lz4 local\n" +"mypool/compressed_dataset logicalused 496G -" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39906 +msgid "" +"The dataset is currently using 449 GB of space (the used property). Without " +"compression, it would have taken 496 GB of space (the " +"<literal>logicallyused</literal> property). This results in the 1.11:1 " +"compression ratio." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39912 +msgid "" +"Compression can have an unexpected side effect when combined with <link " +"linkend=\"zfs-term-userquota\">User Quotas</link>. User quotas restrict how " +"much space a user can consume on a dataset, but the measurements are based " +"on how much space is used <emphasis>after compression</emphasis>. So if a " +"user has a quota of 10 GB, and writes 10 GB of compressible data, they will " +"still be able to store additional data. If they later update a file, say a " +"database, with more or less compressible data, the amount of space available " +"to them will change. This can result in the odd situation where a user did " +"not increase the actual amount of data (the <literal>logicalused</literal> " +"property), but the change in compression caused them to reach their quota " +"limit." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39927 +msgid "" +"Compression can have a similar unexpected interaction with backups. Quotas " +"are often used to limit how much data can be stored to ensure there is " +"sufficient backup space available. However since quotas do not consider " +"compression, more data may be written than would fit with uncompressed " +"backups." +msgstr "" + +#. (itstool) path: sect2/title +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-deduplication +#: book.translate.xml:39936 book.translate.xml:41080 +msgid "Deduplication" +msgstr "去重複 (Deduplication)" + +#. (itstool) path: sect2/para +#: book.translate.xml:39938 +msgid "" +"When enabled, <link linkend=\"zfs-term-deduplication\">deduplication</link> " +"uses the checksum of each block to detect duplicate blocks. When a new block " +"is a duplicate of an existing block, <acronym>ZFS</acronym> writes an " +"additional reference to the existing data instead of the whole duplicate " +"block. Tremendous space savings are possible if the data contains many " +"duplicated files or repeated information. Be warned: deduplication requires " +"an extremely large amount of memory, and most of the space savings can be " +"had without the extra cost by enabling compression instead." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39950 +msgid "" +"To activate deduplication, set the <literal>dedup</literal> property on the " +"target pool:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39953 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs set dedup=on <replaceable>pool</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39955 +msgid "" +"Only new data being written to the pool will be deduplicated. Data that has " +"already been written to the pool will not be deduplicated merely by " +"activating this option. A pool with a freshly activated deduplication " +"property will look like this example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39961 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool list</userinput>\n" +"NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT\n" +"pool 2.84G 2.19M 2.83G 0% 1.00x ONLINE -" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39965 +msgid "" +"The <literal>DEDUP</literal> column shows the actual rate of deduplication " +"for the pool. A value of <literal>1.00x</literal> shows that data has not " +"been deduplicated yet. In the next example, the ports tree is copied three " +"times into different directories on the deduplicated pool created above." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39972 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool list</userinput>\n" +"for d in dir1 dir2 dir3; do\n" +"for> mkdir $d && cp -R /usr/ports $d &\n" +"for> done" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39977 +msgid "Redundant data is detected and deduplicated:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39979 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zpool list</userinput>\n" +"NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT\n" +"pool 2.84G 20.9M 2.82G 0% 3.00x ONLINE -" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39983 +msgid "" +"The <literal>DEDUP</literal> column shows a factor of <literal>3.00x</" +"literal>. Multiple copies of the ports tree data was detected and " +"deduplicated, using only a third of the space. The potential for space " +"savings can be enormous, but comes at the cost of having enough memory to " +"keep track of the deduplicated blocks." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:39990 +msgid "" +"Deduplication is not always beneficial, especially when the data on a pool " +"is not redundant. <acronym>ZFS</acronym> can show potential space savings by " +"simulating deduplication on an existing pool:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:39995 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zdb -S <replaceable>pool</replaceable></userinput>\n" +"Simulated DDT histogram:\n" +"\n" +"bucket allocated referenced\n" +"______ ______________________________ ______________________________\n" +"refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE\n" +"------ ------ ----- ----- ----- ------ ----- ----- -----\n" +" 1 2.58M 289G 264G 264G 2.58M 289G 264G 264G\n" +" 2 206K 12.6G 10.4G 10.4G 430K 26.4G 21.6G 21.6G\n" +" 4 37.6K 692M 276M 276M 170K 3.04G 1.26G 1.26G\n" +" 8 2.18K 45.2M 19.4M 19.4M 20.0K 425M 176M 176M\n" +" 16 174 2.83M 1.20M 1.20M 3.33K 48.4M 20.4M 20.4M\n" +" 32 40 2.17M 222K 222K 1.70K 97.2M 9.91M 9.91M\n" +" 64 9 56K 10.5K 10.5K 865 4.96M 948K 948K\n" +" 128 2 9.50K 2K 2K 419 2.11M 438K 438K\n" +" 256 5 61.5K 12K 12K 1.90K 23.0M 4.47M 4.47M\n" +" 1K 2 1K 1K 1K 2.98K 1.49M 1.49M 1.49M\n" +" Total 2.82M 303G 275G 275G 3.20M 319G 287G 287G\n" +"\n" +"dedup = 1.05, compress = 1.11, copies = 1.00, dedup * compress / copies = 1.16" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:40016 +msgid "" +"After <command>zdb -S</command> finishes analyzing the pool, it shows the " +"space reduction ratio that would be achieved by activating deduplication. In " +"this case, <literal>1.16</literal> is a very poor space saving ratio that is " +"mostly provided by compression. Activating deduplication on this pool would " +"not save any significant amount of space, and is not worth the amount of " +"memory required to enable deduplication. Using the formula <emphasis>ratio = " +"dedup * compress / copies</emphasis>, system administrators can plan the " +"storage allocation, deciding whether the workload will contain enough " +"duplicate blocks to justify the memory requirements. If the data is " +"reasonably compressible, the space savings may be very good. Enabling " +"compression first is recommended, and compression can also provide greatly " +"increased performance. Only enable deduplication in cases where the " +"additional savings will be considerable and there is sufficient memory for " +"the <link linkend=\"zfs-term-deduplication\"><acronym>DDT</acronym></link>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:40036 +msgid "<acronym>ZFS</acronym> and Jails" +msgstr "<acronym>ZFS</acronym> 與 Jail" + +#. (itstool) path: sect2/para +#: book.translate.xml:40038 +msgid "" +"<command>zfs jail</command> and the corresponding <literal>jailed</literal> " +"property are used to delegate a <acronym>ZFS</acronym> dataset to a <link " +"linkend=\"jails\">Jail</link>. <command>zfs jail <replaceable>jailid</" +"replaceable></command> attaches a dataset to the specified jail, and " +"<command>zfs unjail</command> detaches it. For the dataset to be controlled " +"from within a jail, the <literal>jailed</literal> property must be set. Once " +"a dataset is jailed, it can no longer be mounted on the host because it may " +"have mount points that would compromise the security of the host." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:40054 +msgid "Delegated Administration" +msgstr "委託管理" + +#. (itstool) path: sect1/para +#: book.translate.xml:40056 +msgid "" +"A comprehensive permission delegation system allows unprivileged users to " +"perform <acronym>ZFS</acronym> administration functions. For example, if " +"each user's home directory is a dataset, users can be given permission to " +"create and destroy snapshots of their home directories. A backup user can be " +"given permission to use replication features. A usage statistics script can " +"be allowed to run with access only to the space utilization data for all " +"users. It is even possible to delegate the ability to delegate permissions. " +"Permission delegation is possible for each subcommand and most properties." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:40069 +msgid "Delegating Dataset Creation" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:40071 +msgid "" +"<command>zfs allow <replaceable>someuser</replaceable> create " +"<replaceable>mydataset</replaceable></command> gives the specified user " +"permission to create child datasets under the selected parent dataset. There " +"is a caveat: creating a new dataset involves mounting it. That requires " +"setting the FreeBSD <literal>vfs.usermount</literal> " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to <literal>1</literal> to allow non-root users to mount a " +"file system. There is another restriction aimed at preventing abuse: non-" +"<systemitem class=\"username\">root</systemitem> users must own the " +"mountpoint where the file system is to be mounted." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:40086 +msgid "Delegating Permission Delegation" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:40088 +msgid "" +"<command>zfs allow <replaceable>someuser</replaceable> allow " +"<replaceable>mydataset</replaceable></command> gives the specified user the " +"ability to assign any permission they have on the target dataset, or its " +"children, to other users. If a user has the <literal>snapshot</literal> " +"permission and the <literal>allow</literal> permission, that user can then " +"grant the <literal>snapshot</literal> permission to other users." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:40104 +msgid "Tuning" +msgstr "調校" + +#. (itstool) path: sect2/para +#: book.translate.xml:40106 +msgid "" +"There are a number of tunables that can be adjusted to make <acronym>ZFS</" +"acronym> perform best for different workloads." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-arc_max +#: book.translate.xml:40112 +msgid "" +"<emphasis><varname>vfs.zfs.arc_max</varname></emphasis> - Maximum size of " +"the <link linkend=\"zfs-term-arc\"><acronym>ARC</acronym></link>. The " +"default is all <acronym>RAM</acronym> less 1 GB, or one half of " +"<acronym>RAM</acronym>, whichever is more. However, a lower value should be " +"used if the system will be running any other daemons or processes that may " +"require memory. This value can only be adjusted at boot time, and is set in " +"<filename>/boot/loader.conf</filename>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-arc_meta_limit +#: book.translate.xml:40123 +msgid "" +"<emphasis><varname>vfs.zfs.arc_meta_limit</varname></emphasis> - Limit the " +"portion of the <link linkend=\"zfs-term-arc\"><acronym>ARC</acronym></link> " +"that can be used to store metadata. The default is one fourth of " +"<varname>vfs.zfs.arc_max</varname>. Increasing this value will improve " +"performance if the workload involves operations on a large number of files " +"and directories, or frequent metadata operations, at the cost of less file " +"data fitting in the <link linkend=\"zfs-term-arc\"><acronym>ARC</acronym></" +"link>. This value can only be adjusted at boot time, and is set in " +"<filename>/boot/loader.conf</filename>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-arc_min +#: book.translate.xml:40137 +msgid "" +"<emphasis><varname>vfs.zfs.arc_min</varname></emphasis> - Minimum size of " +"the <link linkend=\"zfs-term-arc\"><acronym>ARC</acronym></link>. The " +"default is one half of <varname>vfs.zfs.arc_meta_limit</varname>. Adjust " +"this value to prevent other applications from pressuring out the entire " +"<link linkend=\"zfs-term-arc\"><acronym>ARC</acronym></link>. This value can " +"only be adjusted at boot time, and is set in <filename>/boot/loader.conf</" +"filename>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-vdev-cache-size +#: book.translate.xml:40148 +msgid "" +"<emphasis><varname>vfs.zfs.vdev.cache.size</varname></emphasis> - A " +"preallocated amount of memory reserved as a cache for each device in the " +"pool. The total amount of memory used will be this value multiplied by the " +"number of devices. This value can only be adjusted at boot time, and is set " +"in <filename>/boot/loader.conf</filename>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-min-auto-ashift +#: book.translate.xml:40157 +msgid "" +"<emphasis><varname>vfs.zfs.min_auto_ashift</varname></emphasis> - Minimum " +"<varname>ashift</varname> (sector size) that will be used automatically at " +"pool creation time. The value is a power of two. The default value of " +"<literal>9</literal> represents <literal>2^9 = 512</literal>, a sector size " +"of 512 bytes. To avoid <emphasis>write amplification</emphasis> and get the " +"best performance, set this value to the largest sector size used by a device " +"in the pool." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40167 +msgid "" +"Many drives have 4 KB sectors. Using the default <varname>ashift</varname> " +"of <literal>9</literal> with these drives results in write amplification on " +"these devices. Data that could be contained in a single 4 KB write must " +"instead be written in eight 512-byte writes. <acronym>ZFS</acronym> tries to " +"read the native sector size from all devices when creating a pool, but many " +"drives with 4 KB sectors report that their sectors are 512 bytes for " +"compatibility. Setting <varname>vfs.zfs.min_auto_ashift</varname> to " +"<literal>12</literal> (<literal>2^12 = 4096</literal>) before creating a " +"pool forces <acronym>ZFS</acronym> to use 4 KB blocks for best performance " +"on these drives." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40182 +msgid "" +"Forcing 4 KB blocks is also useful on pools where disk upgrades are planned. " +"Future disks are likely to use 4 KB sectors, and <varname>ashift</varname> " +"values cannot be changed after a pool is created." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40187 +msgid "" +"In some specific cases, the smaller 512-byte block size might be preferable. " +"When used with 512-byte disks for databases, or as storage for virtual " +"machines, less data is transferred during small random reads. This can " +"provide better performance, especially when using a smaller <acronym>ZFS</" +"acronym> record size." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-prefetch_disable +#: book.translate.xml:40196 +msgid "" +"<emphasis><varname>vfs.zfs.prefetch_disable</varname></emphasis> - Disable " +"prefetch. A value of <literal>0</literal> is enabled and <literal>1</" +"literal> is disabled. The default is <literal>0</literal>, unless the system " +"has less than 4 GB of <acronym>RAM</acronym>. Prefetch works by reading " +"larger blocks than were requested into the <link linkend=\"zfs-term-arc" +"\"><acronym>ARC</acronym></link> in hopes that the data will be needed soon. " +"If the workload has a large number of random reads, disabling prefetch may " +"actually improve performance by reducing unnecessary reads. This value can " +"be adjusted at any time with <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-vdev-trim_on_init +#: book.translate.xml:40211 +msgid "" +"<emphasis><varname>vfs.zfs.vdev.trim_on_init</varname></emphasis> - Control " +"whether new devices added to the pool have the <literal>TRIM</literal> " +"command run on them. This ensures the best performance and longevity for " +"<acronym>SSD</acronym>s, but takes extra time. If the device has already " +"been secure erased, disabling this setting will make the addition of the new " +"device faster. This value can be adjusted at any time with " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-vdev-max_pending +#: book.translate.xml:40223 +msgid "" +"<emphasis><varname>vfs.zfs.vdev.max_pending</varname></emphasis> - Limit the " +"number of pending I/O requests per device. A higher value will keep the " +"device command queue full and may give higher throughput. A lower value will " +"reduce latency. This value can be adjusted at any time with " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-top_maxinflight +#: book.translate.xml:40232 +msgid "" +"<emphasis><varname>vfs.zfs.top_maxinflight</varname></emphasis> - Maxmimum " +"number of outstanding I/Os per top-level <link linkend=\"zfs-term-vdev" +"\">vdev</link>. Limits the depth of the command queue to prevent high " +"latency. The limit is per top-level vdev, meaning the limit applies to each " +"<link linkend=\"zfs-term-vdev-mirror\">mirror</link>, <link linkend=\"zfs-" +"term-vdev-raidz\">RAID-Z</link>, or other vdev independently. This value can " +"be adjusted at any time with <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-l2arc_write_max +#: book.translate.xml:40244 +msgid "" +"<emphasis><varname>vfs.zfs.l2arc_write_max</varname></emphasis> - Limit the " +"amount of data written to the <link linkend=\"zfs-term-l2arc" +"\"><acronym>L2ARC</acronym></link> per second. This tunable is designed to " +"extend the longevity of <acronym>SSD</acronym>s by limiting the amount of " +"data written to the device. This value can be adjusted at any time with " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-l2arc_write_boost +#: book.translate.xml:40253 +msgid "" +"<emphasis><varname>vfs.zfs.l2arc_write_boost</varname></emphasis> - The " +"value of this tunable is added to <link linkend=\"zfs-advanced-tuning-" +"l2arc_write_max\"><varname>vfs.zfs.l2arc_write_max</varname></link> and " +"increases the write speed to the <acronym>SSD</acronym> until the first " +"block is evicted from the <link linkend=\"zfs-term-l2arc\"><acronym>L2ARC</" +"acronym></link>. This <quote>Turbo Warmup Phase</quote> is designed to " +"reduce the performance loss from an empty <link linkend=\"zfs-term-l2arc" +"\"><acronym>L2ARC</acronym></link> after a reboot. This value can be " +"adjusted at any time with <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-scrub_delay +#: book.translate.xml:40265 +msgid "" +"<emphasis><varname>vfs.zfs.scrub_delay</varname></emphasis> - Number of " +"ticks to delay between each I/O during a <link linkend=\"zfs-term-scrub" +"\"><command>scrub</command></link>. To ensure that a <command>scrub</" +"command> does not interfere with the normal operation of the pool, if any " +"other <acronym>I/O</acronym> is happening the <command>scrub</command> will " +"delay between each command. This value controls the limit on the total " +"<acronym>IOPS</acronym> (I/Os Per Second) generated by the <command>scrub</" +"command>. The granularity of the setting is determined by the value of " +"<varname>kern.hz</varname> which defaults to 1000 ticks per second. This " +"setting may be changed, resulting in a different effective <acronym>IOPS</" +"acronym> limit. The default value is <literal>4</literal>, resulting in a " +"limit of: 1000 ticks/sec / 4 = 250 <acronym>IOPS</acronym>. Using a value of " +"<replaceable>20</replaceable> would give a limit of: 1000 ticks/sec / 20 = " +"50 <acronym>IOPS</acronym>. The speed of <command>scrub</command> is only " +"limited when there has been recent activity on the pool, as determined by " +"<link linkend=\"zfs-advanced-tuning-scan_idle\"><varname>vfs.zfs.scan_idle</" +"varname></link>. This value can be adjusted at any time with " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-resilver_delay +#: book.translate.xml:40292 +msgid "" +"<emphasis><varname>vfs.zfs.resilver_delay</varname></emphasis> - Number of " +"milliseconds of delay inserted between each I/O during a <link linkend=\"zfs-" +"term-resilver\">resilver</link>. To ensure that a resilver does not " +"interfere with the normal operation of the pool, if any other I/O is " +"happening the resilver will delay between each command. This value controls " +"the limit of total <acronym>IOPS</acronym> (I/Os Per Second) generated by " +"the resilver. The granularity of the setting is determined by the value of " +"<varname>kern.hz</varname> which defaults to 1000 ticks per second. This " +"setting may be changed, resulting in a different effective <acronym>IOPS</" +"acronym> limit. The default value is 2, resulting in a limit of: 1000 ticks/" +"sec / 2 = 500 <acronym>IOPS</acronym>. Returning the pool to an <link " +"linkend=\"zfs-term-online\">Online</link> state may be more important if " +"another device failing could <link linkend=\"zfs-term-faulted\">Fault</link> " +"the pool, causing data loss. A value of 0 will give the resilver operation " +"the same priority as other operations, speeding the healing process. The " +"speed of resilver is only limited when there has been other recent activity " +"on the pool, as determined by <link linkend=\"zfs-advanced-tuning-scan_idle" +"\"><varname>vfs.zfs.scan_idle</varname></link>. This value can be adjusted " +"at any time with <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-scan_idle +#: book.translate.xml:40321 +msgid "" +"<emphasis><varname>vfs.zfs.scan_idle</varname></emphasis> - Number of " +"milliseconds since the last operation before the pool is considered idle. " +"When the pool is idle the rate limiting for <link linkend=\"zfs-term-scrub" +"\"><command>scrub</command></link> and <link linkend=\"zfs-term-resilver" +"\">resilver</link> are disabled. This value can be adjusted at any time with " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-advanced-tuning-txg-timeout +#: book.translate.xml:40332 +msgid "" +"<emphasis><varname>vfs.zfs.txg.timeout</varname></emphasis> - Maximum number " +"of seconds between <link linkend=\"zfs-term-txg\">transaction group</link>s. " +"The current transaction group will be written to the pool and a fresh " +"transaction group started if this amount of time has elapsed since the " +"previous transaction group. A transaction group my be triggered earlier if " +"enough data is written. The default value is 5 seconds. A larger value may " +"improve read performance by delaying asynchronous writes, but this may cause " +"uneven performance when the transaction group is written. This value can be " +"adjusted at any time with <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:40369 +msgid "<acronym>ZFS</acronym> on i386" +msgstr "i386 上的 <acronym>ZFS</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:40371 +msgid "" +"Some of the features provided by <acronym>ZFS</acronym> are memory " +"intensive, and may require tuning for maximum efficiency on systems with " +"limited <acronym>RAM</acronym>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:40377 +msgid "Memory" +msgstr "記憶體" + +#. (itstool) path: sect3/para +#: book.translate.xml:40379 +msgid "" +"As a bare minimum, the total system memory should be at least one gigabyte. " +"The amount of recommended <acronym>RAM</acronym> depends upon the size of " +"the pool and which <acronym>ZFS</acronym> features are used. A general rule " +"of thumb is 1 GB of RAM for every 1 TB of storage. If the deduplication " +"feature is used, a general rule of thumb is 5 GB of RAM per TB of storage to " +"be deduplicated. While some users successfully use <acronym>ZFS</acronym> " +"with less <acronym>RAM</acronym>, systems under heavy load may panic due to " +"memory exhaustion. Further tuning may be required for systems with less than " +"the recommended RAM requirements." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:40394 book.translate.xml:62393 +msgid "Kernel Configuration" +msgstr "核心設定" + +#. (itstool) path: sect3/para +#: book.translate.xml:40396 +msgid "" +"Due to the address space limitations of the <trademark>i386</trademark> " +"platform, <acronym>ZFS</acronym> users on the <trademark>i386</trademark> " +"architecture must add this option to a custom kernel configuration file, " +"rebuild the kernel, and reboot:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:40402 +#, no-wrap +msgid "options KVA_PAGES=512" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:40404 +msgid "" +"This expands the kernel address space, allowing the <varname>vm.kvm_size</" +"varname> tunable to be pushed beyond the currently imposed limit of 1 GB, or " +"the limit of 2 GB for <acronym>PAE</acronym>. To find the most suitable " +"value for this option, divide the desired address space in megabytes by " +"four. In this example, it is <literal>512</literal> for 2 GB." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:40414 +msgid "Loader Tunables" +msgstr "載入程式可調參數" + +#. (itstool) path: sect3/para +#: book.translate.xml:40416 +msgid "" +"The <filename>kmem</filename> address space can be increased on all FreeBSD " +"architectures. On a test system with 1 GB of physical memory, success was " +"achieved with these options added to <filename>/boot/loader.conf</filename>, " +"and the system restarted:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:40423 +#, no-wrap +msgid "" +"vm.kmem_size=\"330M\"\n" +"vm.kmem_size_max=\"330M\"\n" +"vfs.zfs.arc_max=\"40M\"\n" +"vfs.zfs.vdev.cache.size=\"5M\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:40428 +msgid "" +"For a more detailed list of recommendations for <acronym>ZFS</acronym>-" +"related tuning, see <link xlink:href=\"http://wiki.freebsd.org/ZFSTuningGuide" +"\"/>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:40435 +msgid "Additional Resources" +msgstr "其他資源" + +#. (itstool) path: listitem/para +#: book.translate.xml:40439 +msgid "" +"<link xlink:href=\"https://wiki.freebsd.org/ZFS\">FreeBSD Wiki - " +"<acronym>ZFS</acronym></link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40444 +msgid "" +"<link xlink:href=\"https://wiki.freebsd.org/ZFSTuningGuide\">FreeBSD Wiki - " +"<acronym>ZFS</acronym> Tuning</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40449 +msgid "" +"<link xlink:href=\"http://wiki.illumos.org/display/illumos/ZFS\">Illumos " +"Wiki - <acronym>ZFS</acronym></link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40454 +msgid "" +"<link xlink:href=\"http://docs.oracle.com/cd/E19253-01/819-5461/index.html" +"\">Oracle Solaris <acronym>ZFS</acronym> Administration Guide</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40460 +msgid "" +"<link xlink:href=\"http://www.solarisinternals.com/wiki/index.php/" +"ZFS_Evil_Tuning_Guide\"><acronym>ZFS</acronym> Evil Tuning Guide</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40465 +msgid "" +"<link xlink:href=\"http://www.solarisinternals.com/wiki/index.php/" +"ZFS_Best_Practices_Guide\"><acronym>ZFS</acronym> Best Practices Guide</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40470 +msgid "" +"<link xlink:href=\"https://calomel.org/zfs_raid_speed_capacity.html" +"\">Calomel Blog - <acronym>ZFS</acronym> Raidz Performance, Capacity and " +"Integrity</link>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:40478 +msgid "<acronym>ZFS</acronym> Features and Terminology" +msgstr "<acronym>ZFS</acronym> 特色與術語" + +#. (itstool) path: sect1/para +#: book.translate.xml:40480 +msgid "" +"<acronym>ZFS</acronym> is a fundamentally different file system because it " +"is more than just a file system. <acronym>ZFS</acronym> combines the roles " +"of file system and volume manager, enabling additional storage devices to be " +"added to a live system and having the new space available on all of the " +"existing file systems in that pool immediately. By combining the " +"traditionally separate roles, <acronym>ZFS</acronym> is able to overcome " +"previous limitations that prevented <acronym>RAID</acronym> groups being " +"able to grow. Each top level device in a pool is called a <emphasis>vdev</" +"emphasis>, which can be a simple disk or a <acronym>RAID</acronym> " +"transformation such as a mirror or <acronym>RAID-Z</acronym> array. " +"<acronym>ZFS</acronym> file systems (called <emphasis>datasets</emphasis>) " +"each have access to the combined free space of the entire pool. As blocks " +"are allocated from the pool, the space available to each file system " +"decreases. This approach avoids the common pitfall with extensive " +"partitioning where free space becomes fragmented across the partitions." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-pool +#: book.translate.xml:40504 +msgid "pool" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:40518 +msgid "" +"FreeBSD 9.0 and 9.1 include support for <acronym>ZFS</acronym> version 28. " +"Later versions use <acronym>ZFS</acronym> version 5000 with feature flags. " +"The new feature flags system allows greater cross-compatibility with other " +"implementations of <acronym>ZFS</acronym>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40506 +msgid "" +"A storage <emphasis>pool</emphasis> is the most basic building block of " +"<acronym>ZFS</acronym>. A pool is made up of one or more vdevs, the " +"underlying devices that store the data. A pool is then used to create one or " +"more file systems (datasets) or block devices (volumes). These datasets and " +"volumes share the pool of remaining free space. Each pool is uniquely " +"identified by a name and a <acronym>GUID</acronym>. The features available " +"are determined by the <acronym>ZFS</acronym> version number on the pool. <_:" +"note-1/>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-vdev +#: book.translate.xml:40529 +msgid "vdev Types" +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-term-vdev-disk +#: book.translate.xml:40540 +msgid "" +"<emphasis>Disk</emphasis> - The most basic type of vdev is a standard block " +"device. This can be an entire disk (such as <filename><replaceable>/dev/" +"ada0</replaceable></filename> or <filename><replaceable>/dev/da0</" +"replaceable></filename>) or a partition (<filename><replaceable>/dev/ada0p3</" +"replaceable></filename>). On FreeBSD, there is no performance penalty for " +"using a partition rather than the entire disk. This differs from " +"recommendations made by the Solaris documentation." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-term-vdev-file +#: book.translate.xml:40555 +msgid "" +"<emphasis>File</emphasis> - In addition to disks, <acronym>ZFS</acronym> " +"pools can be backed by regular files, this is especially useful for testing " +"and experimentation. Use the full path to the file as the device path in " +"<command>zpool create</command>. All vdevs must be at least 128 MB in size." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-term-vdev-mirror +#: book.translate.xml:40565 +msgid "" +"<emphasis>Mirror</emphasis> - When creating a mirror, specify the " +"<literal>mirror</literal> keyword followed by the list of member devices for " +"the mirror. A mirror consists of two or more devices, all data will be " +"written to all member devices. A mirror vdev will only hold as much data as " +"its smallest member. A mirror vdev can withstand the failure of all but one " +"of its members without losing any data." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:40576 +msgid "" +"A regular single disk vdev can be upgraded to a mirror vdev at any time with " +"<command>zpool <link linkend=\"zfs-zpool-attach\">attach</link></command>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-term-vdev-raidz +#: book.translate.xml:40584 +msgid "" +"<emphasis><acronym>RAID-Z</acronym></emphasis> - <acronym>ZFS</acronym> " +"implements <acronym>RAID-Z</acronym>, a variation on standard " +"<acronym>RAID-5</acronym> that offers better distribution of parity and " +"eliminates the <quote><acronym>RAID-5</acronym> write hole</quote> in which " +"the data and parity information become inconsistent after an unexpected " +"restart. <acronym>ZFS</acronym> supports three levels of <acronym>RAID-Z</" +"acronym> which provide varying levels of redundancy in exchange for " +"decreasing levels of usable storage. The types are named <acronym>RAID-Z1</" +"acronym> through <acronym>RAID-Z3</acronym> based on the number of parity " +"devices in the array and the number of disks which can fail while the pool " +"remains operational." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40602 +msgid "" +"In a <acronym>RAID-Z1</acronym> configuration with four disks, each 1 TB, " +"usable storage is 3 TB and the pool will still be able to operate in " +"degraded mode with one faulted disk. If an additional disk goes offline " +"before the faulted disk is replaced and resilvered, all data in the pool can " +"be lost." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40610 +msgid "" +"In a <acronym>RAID-Z3</acronym> configuration with eight disks of 1 TB, the " +"volume will provide 5 TB of usable space and still be able to operate with " +"three faulted disks. <trademark>Sun</trademark> recommends no more than nine " +"disks in a single vdev. If the configuration has more disks, it is " +"recommended to divide them into separate vdevs and the pool data will be " +"striped across them." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40619 +msgid "" +"A configuration of two <acronym>RAID-Z2</acronym> vdevs consisting of 8 " +"disks each would create something similar to a <acronym>RAID-60</acronym> " +"array. A <acronym>RAID-Z</acronym> group's storage capacity is approximately " +"the size of the smallest disk multiplied by the number of non-parity disks. " +"Four 1 TB disks in <acronym>RAID-Z1</acronym> has an effective size of " +"approximately 3 TB, and an array of eight 1 TB disks in <acronym>RAID-Z3</" +"acronym> will yield 5 TB of usable space." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-term-vdev-spare +#: book.translate.xml:40634 +msgid "" +"<emphasis>Spare</emphasis> - <acronym>ZFS</acronym> has a special pseudo-" +"vdev type for keeping track of available hot spares. Note that installed hot " +"spares are not deployed automatically; they must manually be configured to " +"replace the failed device using <command>zfs replace</command>." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-term-vdev-log +#: book.translate.xml:40644 +msgid "" +"<emphasis>Log</emphasis> - <acronym>ZFS</acronym> Log Devices, also known as " +"<acronym>ZFS</acronym> Intent Log (<link linkend=\"zfs-term-zil" +"\"><acronym>ZIL</acronym></link>) move the intent log from the regular pool " +"devices to a dedicated device, typically an <acronym>SSD</acronym>. Having a " +"dedicated log device can significantly improve the performance of " +"applications with a high volume of synchronous writes, especially databases. " +"Log devices can be mirrored, but <acronym>RAID-Z</acronym> is not supported. " +"If multiple log devices are used, writes will be load balanced across them." +msgstr "" + +#. (itstool) path: listitem/para +#. (itstool) id: book.translate.xml#zfs-term-vdev-cache +#: book.translate.xml:40659 +msgid "" +"<emphasis>Cache</emphasis> - Adding a cache vdev to a pool will add the " +"storage of the cache to the <link linkend=\"zfs-term-l2arc\"><acronym>L2ARC</" +"acronym></link>. Cache devices cannot be mirrored. Since a cache device only " +"stores additional copies of existing data, there is no risk of data loss." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40531 +msgid "" +"A pool is made up of one or more vdevs, which themselves can be a single " +"disk or a group of disks, in the case of a <acronym>RAID</acronym> " +"transform. When multiple vdevs are used, <acronym>ZFS</acronym> spreads data " +"across the vdevs to increase performance and maximize usable space. <_:" +"itemizedlist-1/>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-txg +#: book.translate.xml:40670 +msgid "Transaction Group (<acronym>TXG</acronym>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40684 +msgid "" +"<emphasis>Open</emphasis> - When a new transaction group is created, it is " +"in the open state, and accepts new writes. There is always a transaction " +"group in the open state, however the transaction group may refuse new writes " +"if it has reached a limit. Once the open transaction group has reached a " +"limit, or the <link linkend=\"zfs-advanced-tuning-txg-timeout\"><varname>vfs." +"zfs.txg.timeout</varname></link> has been reached, the transaction group " +"advances to the next state." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40696 +msgid "" +"<emphasis>Quiescing</emphasis> - A short state that allows any pending " +"operations to finish while not blocking the creation of a new open " +"transaction group. Once all of the transactions in the group have completed, " +"the transaction group advances to the final state." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40705 +msgid "" +"<emphasis>Syncing</emphasis> - All of the data in the transaction group is " +"written to stable storage. This process will in turn modify other data, such " +"as metadata and space maps, that will also need to be written to stable " +"storage. The process of syncing involves multiple passes. The first, all of " +"the changed data blocks, is the biggest, followed by the metadata, which may " +"take multiple passes to complete. Since allocating space for the data blocks " +"generates new metadata, the syncing state cannot finish until a pass " +"completes that does not allocate any additional space. The syncing state is " +"also where <emphasis>synctasks</emphasis> are completed. Synctasks are " +"administrative operations, such as creating or destroying snapshots and " +"datasets, that modify the uberblock are completed. Once the sync state is " +"complete, the transaction group in the quiescing state is advanced to the " +"syncing state." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40673 +msgid "" +"Transaction Groups are the way changed blocks are grouped together and " +"eventually written to the pool. Transaction groups are the atomic unit that " +"<acronym>ZFS</acronym> uses to assert consistency. Each transaction group is " +"assigned a unique 64-bit consecutive identifier. There can be up to three " +"active transaction groups at a time, one in each of these three states: <_:" +"itemizedlist-1/> All administrative functions, such as <link linkend=\"zfs-" +"term-snapshot\"><command>snapshot</command></link> are written as part of " +"the transaction group. When a synctask is created, it is added to the " +"currently open transaction group, and that group is advanced as quickly as " +"possible to the syncing state to reduce the latency of administrative " +"commands." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-arc +#: book.translate.xml:40737 +msgid "Adaptive Replacement Cache (<acronym>ARC</acronym>)" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40740 +msgid "" +"<acronym>ZFS</acronym> uses an Adaptive Replacement Cache (<acronym>ARC</" +"acronym>), rather than a more traditional Least Recently Used (<acronym>LRU</" +"acronym>) cache. An <acronym>LRU</acronym> cache is a simple list of items " +"in the cache, sorted by when each object was most recently used. New items " +"are added to the top of the list. When the cache is full, items from the " +"bottom of the list are evicted to make room for more active objects. An " +"<acronym>ARC</acronym> consists of four lists; the Most Recently Used " +"(<acronym>MRU</acronym>) and Most Frequently Used (<acronym>MFU</acronym>) " +"objects, plus a ghost list for each. These ghost lists track recently " +"evicted objects to prevent them from being added back to the cache. This " +"increases the cache hit ratio by avoiding objects that have a history of " +"only being used occasionally. Another advantage of using both an " +"<acronym>MRU</acronym> and <acronym>MFU</acronym> is that scanning an entire " +"file system would normally evict all data from an <acronym>MRU</acronym> or " +"<acronym>LRU</acronym> cache in favor of this freshly accessed content. With " +"<acronym>ZFS</acronym>, there is also an <acronym>MFU</acronym> that only " +"tracks the most frequently used objects, and the cache of the most commonly " +"accessed blocks remains." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-l2arc +#: book.translate.xml:40768 +msgid "<acronym>L2ARC</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40770 +msgid "" +"<acronym>L2ARC</acronym> is the second level of the <acronym>ZFS</acronym> " +"caching system. The primary <acronym>ARC</acronym> is stored in " +"<acronym>RAM</acronym>. Since the amount of available <acronym>RAM</acronym> " +"is often limited, <acronym>ZFS</acronym> can also use <link linkend=\"zfs-" +"term-vdev-cache\">cache vdevs</link>. Solid State Disks (<acronym>SSD</" +"acronym>s) are often used as these cache devices due to their higher speed " +"and lower latency compared to traditional spinning disks. <acronym>L2ARC</" +"acronym> is entirely optional, but having one will significantly increase " +"read speeds for files that are cached on the <acronym>SSD</acronym> instead " +"of having to be read from the regular disks. <acronym>L2ARC</acronym> can " +"also speed up <link linkend=\"zfs-term-deduplication\">deduplication</link> " +"because a <acronym>DDT</acronym> that does not fit in <acronym>RAM</acronym> " +"but does fit in the <acronym>L2ARC</acronym> will be much faster than a " +"<acronym>DDT</acronym> that must be read from disk. The rate at which data " +"is added to the cache devices is limited to prevent prematurely wearing out " +"<acronym>SSD</acronym>s with too many writes. Until the cache is full (the " +"first block has been evicted to make room), writing to the <acronym>L2ARC</" +"acronym> is limited to the sum of the write limit and the boost limit, and " +"afterwards limited to the write limit. A pair of " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> values control these rate limits. <link linkend=\"zfs-advanced-" +"tuning-l2arc_write_max\"><varname>vfs.zfs.l2arc_write_max</varname></link> " +"controls how many bytes are written to the cache per second, while <link " +"linkend=\"zfs-advanced-tuning-l2arc_write_boost\"><varname>vfs.zfs." +"l2arc_write_boost</varname></link> adds to this limit during the " +"<quote>Turbo Warmup Phase</quote> (Write Boost)." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-zil +#: book.translate.xml:40805 +msgid "<acronym>ZIL</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40807 +msgid "" +"<acronym>ZIL</acronym> accelerates synchronous transactions by using storage " +"devices like <acronym>SSD</acronym>s that are faster than those used in the " +"main storage pool. When an application requests a synchronous write (a " +"guarantee that the data has been safely stored to disk rather than merely " +"cached to be written later), the data is written to the faster <acronym>ZIL</" +"acronym> storage, then later flushed out to the regular disks. This greatly " +"reduces latency and improves performance. Only synchronous workloads like " +"databases will benefit from a <acronym>ZIL</acronym>. Regular asynchronous " +"writes such as copying files will not use the <acronym>ZIL</acronym> at all." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-cow +#: book.translate.xml:40823 +msgid "Copy-On-Write" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40825 +msgid "" +"Unlike a traditional file system, when data is overwritten on <acronym>ZFS</" +"acronym>, the new data is written to a different block rather than " +"overwriting the old data in place. Only when this write is complete is the " +"metadata then updated to point to the new location. In the event of a shorn " +"write (a system crash or power loss in the middle of writing a file), the " +"entire original contents of the file are still available and the incomplete " +"write is discarded. This also means that <acronym>ZFS</acronym> does not " +"require a <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> after an unexpected shutdown." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-dataset +#: book.translate.xml:40839 +msgid "Dataset" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40841 +msgid "" +"<emphasis>Dataset</emphasis> is the generic term for a <acronym>ZFS</" +"acronym> file system, volume, snapshot or clone. Each dataset has a unique " +"name in the format <replaceable>poolname/path@snapshot</replaceable>. The " +"root of the pool is technically a dataset as well. Child datasets are named " +"hierarchically like directories. For example, <replaceable>mypool/home</" +"replaceable>, the home dataset, is a child of <replaceable>mypool</" +"replaceable> and inherits properties from it. This can be expanded further " +"by creating <replaceable>mypool/home/user</replaceable>. This grandchild " +"dataset will inherit properties from the parent and grandparent. Properties " +"on a child can be set to override the defaults inherited from the parents " +"and grandparents. Administration of datasets and their children can be <link " +"linkend=\"zfs-zfs-allow\">delegated</link>." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-filesystem +#: book.translate.xml:40863 +msgid "File system" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40865 +msgid "" +"A <acronym>ZFS</acronym> dataset is most often used as a file system. Like " +"most other file systems, a <acronym>ZFS</acronym> file system is mounted " +"somewhere in the systems directory hierarchy and contains files and " +"directories of its own with permissions, flags, and other metadata." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-volume +#: book.translate.xml:40874 +msgid "Volume" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40876 +msgid "" +"In additional to regular file system datasets, <acronym>ZFS</acronym> can " +"also create volumes, which are block devices. Volumes have many of the same " +"features, including copy-on-write, snapshots, clones, and checksumming. " +"Volumes can be useful for running other file system formats on top of " +"<acronym>ZFS</acronym>, such as <acronym>UFS</acronym> virtualization, or " +"exporting <acronym>iSCSI</acronym> extents." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-snapshot +#: book.translate.xml:40888 +msgid "Snapshot" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40890 +msgid "" +"The <link linkend=\"zfs-term-cow\">copy-on-write</link> (<acronym>COW</" +"acronym>) design of <acronym>ZFS</acronym> allows for nearly instantaneous, " +"consistent snapshots with arbitrary names. After taking a snapshot of a " +"dataset, or a recursive snapshot of a parent dataset that will include all " +"child datasets, new data is written to new blocks, but the old blocks are " +"not reclaimed as free space. The snapshot contains the original version of " +"the file system, and the live file system contains any changes made since " +"the snapshot was taken. No additional space is used. As new data is written " +"to the live file system, new blocks are allocated to store this data. The " +"apparent size of the snapshot will grow as the blocks are no longer used in " +"the live file system, but only in the snapshot. These snapshots can be " +"mounted read only to allow for the recovery of previous versions of files. " +"It is also possible to <link linkend=\"zfs-zfs-snapshot\">rollback</link> a " +"live file system to a specific snapshot, undoing any changes that took place " +"after the snapshot was taken. Each block in the pool has a reference counter " +"which keeps track of how many snapshots, clones, datasets, or volumes make " +"use of that block. As files and snapshots are deleted, the reference count " +"is decremented. When a block is no longer referenced, it is reclaimed as " +"free space. Snapshots can also be marked with a <link linkend=\"zfs-zfs-" +"snapshot\">hold</link>. When a snapshot is held, any attempt to destroy it " +"will return an <literal>EBUSY</literal> error. Each snapshot can have " +"multiple holds, each with a unique name. The <link linkend=\"zfs-zfs-snapshot" +"\">release</link> command removes the hold so the snapshot can deleted. " +"Snapshots can be taken on volumes, but they can only be cloned or rolled " +"back, not mounted independently." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-clone +#: book.translate.xml:40929 +msgid "Clone" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40931 +msgid "" +"Snapshots can also be cloned. A clone is a writable version of a snapshot, " +"allowing the file system to be forked as a new dataset. As with a snapshot, " +"a clone initially consumes no additional space. As new data is written to a " +"clone and new blocks are allocated, the apparent size of the clone grows. " +"When blocks are overwritten in the cloned file system or volume, the " +"reference count on the previous block is decremented. The snapshot upon " +"which a clone is based cannot be deleted because the clone depends on it. " +"The snapshot is the parent, and the clone is the child. Clones can be " +"<emphasis>promoted</emphasis>, reversing this dependency and making the " +"clone the parent and the previous parent the child. This operation requires " +"no additional space. Because the amount of space used by the parent and " +"child is reversed, existing quotas and reservations might be affected." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-checksum +#: book.translate.xml:40951 +msgid "Checksum" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40967 +msgid "<literal>fletcher2</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40971 +msgid "<literal>fletcher4</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40975 +msgid "<literal>sha256</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40953 +msgid "" +"Every block that is allocated is also checksummed. The checksum algorithm " +"used is a per-dataset property, see <link linkend=\"zfs-zfs-set" +"\"><command>set</command></link>. The checksum of each block is " +"transparently validated as it is read, allowing <acronym>ZFS</acronym> to " +"detect silent corruption. If the data that is read does not match the " +"expected checksum, <acronym>ZFS</acronym> will attempt to recover the data " +"from any available redundancy, like mirrors or <acronym>RAID-Z</acronym>). " +"Validation of all checksums can be triggered with <link linkend=\"zfs-term-" +"scrub\"><command>scrub</command></link>. Checksum algorithms include: <_:" +"itemizedlist-1/> The <literal>fletcher</literal> algorithms are faster, but " +"<literal>sha256</literal> is a strong cryptographic hash and has a much " +"lower chance of collisions at the cost of some performance. Checksums can be " +"disabled, but it is not recommended." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:40999 +msgid "" +"<emphasis><acronym>LZ4</acronym></emphasis> - Added in <acronym>ZFS</" +"acronym> pool version 5000 (feature flags), <acronym>LZ4</acronym> is now " +"the recommended compression algorithm. <acronym>LZ4</acronym> compresses " +"approximately 50% faster than <acronym>LZJB</acronym> when operating on " +"compressible data, and is over three times faster when operating on " +"uncompressible data. <acronym>LZ4</acronym> also decompresses approximately " +"80% faster than <acronym>LZJB</acronym>. On modern <acronym>CPU</acronym>s, " +"<acronym>LZ4</acronym> can often compress at over 500 MB/s, and decompress " +"at over 1.5 GB/s (per single CPU core)." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:41016 +msgid "<acronym>LZ4</acronym> compression is only available after FreeBSD 9.2." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:41022 +msgid "" +"<emphasis><acronym>LZJB</acronym></emphasis> - The default compression " +"algorithm. Created by Jeff Bonwick (one of the original creators of " +"<acronym>ZFS</acronym>). <acronym>LZJB</acronym> offers good compression " +"with less <acronym>CPU</acronym> overhead compared to <acronym>GZIP</" +"acronym>. In the future, the default compression algorithm will likely " +"change to <acronym>LZ4</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:41034 +msgid "" +"<emphasis><acronym>GZIP</acronym></emphasis> - A popular stream compression " +"algorithm available in <acronym>ZFS</acronym>. One of the main advantages of " +"using <acronym>GZIP</acronym> is its configurable level of compression. When " +"setting the <literal>compress</literal> property, the administrator can " +"choose the level of compression, ranging from <literal>gzip1</literal>, the " +"lowest level of compression, to <literal>gzip9</literal>, the highest level " +"of compression. This gives the administrator control over how much " +"<acronym>CPU</acronym> time to trade for saved disk space." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:41050 +msgid "" +"<emphasis><acronym>ZLE</acronym></emphasis> - Zero Length Encoding is a " +"special compression algorithm that only compresses continuous runs of zeros. " +"This compression algorithm is only useful when the dataset contains large " +"blocks of zeros." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:40989 +msgid "" +"Each dataset has a compression property, which defaults to off. This " +"property can be set to one of a number of compression algorithms. This will " +"cause all new data that is written to the dataset to be compressed. Beyond a " +"reduction in space used, read and write throughput often increases because " +"fewer blocks are read or written. <_:itemizedlist-1/>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-copies +#: book.translate.xml:41061 +msgid "Copies" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41063 +msgid "" +"When set to a value greater than 1, the <literal>copies</literal> property " +"instructs <acronym>ZFS</acronym> to maintain multiple copies of each block " +"in the <link linkend=\"zfs-term-filesystem\">File System</link> or <link " +"linkend=\"zfs-term-volume\">Volume</link>. Setting this property on " +"important datasets provides additional redundancy from which to recover a " +"block that does not match its checksum. In pools without redundancy, the " +"copies feature is the only form of redundancy. The copies feature can " +"recover from a single bad sector or other forms of minor corruption, but it " +"does not protect the pool from the loss of an entire disk." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41082 +msgid "" +"Checksums make it possible to detect duplicate blocks of data as they are " +"written. With deduplication, the reference count of an existing, identical " +"block is increased, saving storage space. To detect duplicate blocks, a " +"deduplication table (<acronym>DDT</acronym>) is kept in memory. The table " +"contains a list of unique checksums, the location of those blocks, and a " +"reference count. When new data is written, the checksum is calculated and " +"compared to the list. If a match is found, the existing block is used. The " +"<acronym>SHA256</acronym> checksum algorithm is used with deduplication to " +"provide a secure cryptographic hash. Deduplication is tunable. If " +"<literal>dedup</literal> is <literal>on</literal>, then a matching checksum " +"is assumed to mean that the data is identical. If <literal>dedup</literal> " +"is set to <literal>verify</literal>, then the data in the two blocks will be " +"checked byte-for-byte to ensure it is actually identical. If the data is not " +"identical, the hash collision will be noted and the two blocks will be " +"stored separately. Because <acronym>DDT</acronym> must store the hash of " +"each unique block, it consumes a very large amount of memory. A general rule " +"of thumb is 5-6 GB of ram per 1 TB of deduplicated data). In situations " +"where it is not practical to have enough <acronym>RAM</acronym> to keep the " +"entire <acronym>DDT</acronym> in memory, performance will suffer greatly as " +"the <acronym>DDT</acronym> must be read from disk before each new block is " +"written. Deduplication can use <acronym>L2ARC</acronym> to store the " +"<acronym>DDT</acronym>, providing a middle ground between fast system memory " +"and slower disks. Consider using compression instead, which often provides " +"nearly as much space savings without the additional memory requirement." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-scrub +#: book.translate.xml:41120 +msgid "Scrub" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41122 +msgid "" +"Instead of a consistency check like <citerefentry><refentrytitle>fsck</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, <acronym>ZFS</" +"acronym> has <command>scrub</command>. <command>scrub</command> reads all " +"data blocks stored on the pool and verifies their checksums against the " +"known good checksums stored in the metadata. A periodic check of all the " +"data stored on the pool ensures the recovery of any corrupted blocks before " +"they are needed. A scrub is not required after an unclean shutdown, but is " +"recommended at least once every three months. The checksum of each block is " +"verified as blocks are read during normal use, but a scrub makes certain " +"that even infrequently used blocks are checked for silent corruption. Data " +"security is improved, especially in archival storage situations. The " +"relative priority of <command>scrub</command> can be adjusted with <link " +"linkend=\"zfs-advanced-tuning-scrub_delay\"><varname>vfs.zfs.scrub_delay</" +"varname></link> to prevent the scrub from degrading the performance of other " +"workloads on the pool." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-quota +#: book.translate.xml:41142 +msgid "Dataset Quota" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:41151 +msgid "" +"<acronym>ZFS</acronym> supports different types of quotas: the dataset " +"quota, the <link linkend=\"zfs-term-refquota\">reference quota " +"(<acronym>refquota</acronym>)</link>, the <link linkend=\"zfs-term-userquota" +"\">user quota</link>, and the <link linkend=\"zfs-term-groupquota\">group " +"quota</link>." +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:41159 +msgid "" +"Quotas limit the amount of space that a dataset and all of its descendants, " +"including snapshots of the dataset, child datasets, and the snapshots of " +"those datasets, can consume." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:41165 +msgid "" +"Quotas cannot be set on volumes, as the <literal>volsize</literal> property " +"acts as an implicit quota." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41144 +msgid "" +"<acronym>ZFS</acronym> provides very fast and accurate dataset, user, and " +"group space accounting in addition to quotas and space reservations. This " +"gives the administrator fine grained control over how space is allocated and " +"allows space to be reserved for critical file systems. <_:para-1/> <_:para-2/" +"> <_:note-3/>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-refquota +#: book.translate.xml:41172 +msgid "Reference Quota" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41175 +msgid "" +"A reference quota limits the amount of space a dataset can consume by " +"enforcing a hard limit. However, this hard limit includes only space that " +"the dataset references and does not include space used by descendants, such " +"as file systems or snapshots." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-userquota +#: book.translate.xml:41183 +msgid "User Quota" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41186 +msgid "" +"User quotas are useful to limit the amount of space that can be used by the " +"specified user." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-groupquota +#: book.translate.xml:41191 +msgid "Group Quota" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41194 +msgid "" +"The group quota limits the amount of space that a specified group can " +"consume." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-reservation +#: book.translate.xml:41199 +msgid "Dataset Reservation" +msgstr "" + +#. (itstool) path: entry/para +#: book.translate.xml:41217 +msgid "" +"Reservations of any sort are useful in many situations, such as planning and " +"testing the suitability of disk space allocation in a new system, or " +"ensuring that enough space is available on file systems for audio logs or " +"system recovery procedures and files." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41202 +msgid "" +"The <literal>reservation</literal> property makes it possible to guarantee a " +"minimum amount of space for a specific dataset and its descendants. If a " +"10 GB reservation is set on <filename>storage/home/bob</filename>, and " +"another dataset tries to use all of the free space, at least 10 GB of space " +"is reserved for this dataset. If a snapshot is taken of <filename>storage/" +"home/bob</filename>, the space used by that snapshot is counted against the " +"reservation. The <link linkend=\"zfs-term-refreservation" +"\"><literal>refreservation</literal></link> property works in a similar way, " +"but it <emphasis>excludes</emphasis> descendants like snapshots. <_:para-1/>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-refreservation +#: book.translate.xml:41227 +msgid "Reference Reservation" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41230 +msgid "" +"The <literal>refreservation</literal> property makes it possible to " +"guarantee a minimum amount of space for the use of a specific dataset " +"<emphasis>excluding</emphasis> its descendants. This means that if a 10 GB " +"reservation is set on <filename>storage/home/bob</filename>, and another " +"dataset tries to use all of the free space, at least 10 GB of space is " +"reserved for this dataset. In contrast to a regular <link linkend=\"zfs-term-" +"reservation\">reservation</link>, space used by snapshots and descendant " +"datasets is not counted against the reservation. For example, if a snapshot " +"is taken of <filename>storage/home/bob</filename>, enough disk space must " +"exist outside of the <literal>refreservation</literal> amount for the " +"operation to succeed. Descendants of the main data set are not counted in " +"the <literal>refreservation</literal> amount and so do not encroach on the " +"space set." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-resilver +#: book.translate.xml:41252 +msgid "Resilver" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41254 +msgid "" +"When a disk fails and is replaced, the new disk must be filled with the data " +"that was lost. The process of using the parity information distributed " +"across the remaining drives to calculate and write the missing data to the " +"new drive is called <emphasis>resilvering</emphasis>." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-online +#: book.translate.xml:41263 +msgid "Online" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41265 +msgid "" +"A pool or vdev in the <literal>Online</literal> state has all of its member " +"devices connected and fully operational. Individual devices in the " +"<literal>Online</literal> state are functioning normally." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-offline +#: book.translate.xml:41273 +msgid "Offline" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41275 +msgid "" +"Individual devices can be put in an <literal>Offline</literal> state by the " +"administrator if there is sufficient redundancy to avoid putting the pool or " +"vdev into a <link linkend=\"zfs-term-faulted\">Faulted</link> state. An " +"administrator may choose to offline a disk in preparation for replacing it, " +"or to make it easier to identify." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-degraded +#: book.translate.xml:41286 +msgid "Degraded" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41288 +msgid "" +"A pool or vdev in the <literal>Degraded</literal> state has one or more " +"disks that have been disconnected or have failed. The pool is still usable, " +"but if additional devices fail, the pool could become unrecoverable. " +"Reconnecting the missing devices or replacing the failed disks will return " +"the pool to an <link linkend=\"zfs-term-online\">Online</link> state after " +"the reconnected or new device has completed the <link linkend=\"zfs-term-" +"resilver\">Resilver</link> process." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) id: book.translate.xml#zfs-term-faulted +#: book.translate.xml:41301 +msgid "Faulted" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:41303 +msgid "" +"A pool or vdev in the <literal>Faulted</literal> state is no longer " +"operational. The data on it can no longer be accessed. A pool or vdev enters " +"the <literal>Faulted</literal> state when the number of missing or failed " +"devices exceeds the level of redundancy in the vdev. If missing devices can " +"be reconnected, the pool will return to a <link linkend=\"zfs-term-online" +"\">Online</link> state. If there is insufficient redundancy to compensate " +"for the number of failed disks, then the contents of the pool are lost and " +"must be restored from backups." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:41328 +msgid "Other File Systems" +msgstr "其他檔案系統" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:41339 +msgid "<primary>File Systems</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:41340 +msgid "<primary>File Systems Support</primary> <see>File Systems</see>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:41345 +msgid "" +"File systems are an integral part of any operating system. They allow users " +"to upload and store files, provide access to data, and make hard drives " +"useful. Different operating systems differ in their native file system. " +"Traditionally, the native FreeBSD file system has been the Unix File System " +"<acronym>UFS</acronym> which has been modernized as <acronym>UFS2</acronym>. " +"Since FreeBSD 7.0, the Z File System (<acronym>ZFS</acronym>) is also " +"available as a native file system. See <xref linkend=\"zfs\"/> for more " +"information." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:41355 +msgid "" +"In addition to its native file systems, FreeBSD supports a multitude of " +"other file systems so that data from other operating systems can be accessed " +"locally, such as data stored on locally attached <acronym>USB</acronym> " +"storage devices, flash drives, and hard disks. This includes support for the " +"<trademark class=\"registered\">Linux</trademark> Extended File System " +"(<acronym>EXT</acronym>) and the Reiser file system." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:41363 +msgid "" +"There are different levels of FreeBSD support for the various file systems. " +"Some require a kernel module to be loaded and others may require a toolset " +"to be installed. Some non-native file system support is full read-write " +"while others are read-only." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:41373 +msgid "The difference between native and supported file systems." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:41378 +msgid "Which file systems are supported by FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:41382 +msgid "" +"How to enable, configure, access, and make use of non-native file systems." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:41391 +msgid "" +"Understand <trademark class=\"registered\">UNIX</trademark> and <link " +"linkend=\"basics\">FreeBSD basics</link>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:41396 +msgid "" +"Be familiar with the basics of <link linkend=\"kernelconfig\">kernel " +"configuration and compilation</link>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:41401 +msgid "" +"Feel comfortable <link linkend=\"ports\">installing software</link> in " +"FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:41406 +msgid "" +"Have some familiarity with <link linkend=\"disks\">disks</link>, storage, " +"and device names in FreeBSD." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:41413 +msgid "<trademark class=\"registered\">Linux</trademark> File Systems" +msgstr "<trademark class=\"registered\">Linux</trademark> 檔案系統" + +#. (itstool) path: sect1/para +#: book.translate.xml:41415 +msgid "" +"FreeBSD provides built-in support for several <trademark class=\"registered" +"\">Linux</trademark> file systems. This section demonstrates how to load " +"support for and how to mount the supported <trademark class=\"registered" +"\">Linux</trademark> file systems." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:41420 +msgid "<acronym>ext2</acronym>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41422 +msgid "" +"Kernel support for ext2 file systems has been available since FreeBSD 2.2. " +"In FreeBSD 8.x and earlier, the code is licensed under the <acronym>GPL</" +"acronym>. Since FreeBSD 9.0, the code has been rewritten and is now " +"<acronym>BSD</acronym> licensed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41429 +msgid "" +"The <citerefentry><refentrytitle>ext2fs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> driver allows the FreeBSD kernel to both read and " +"write to ext2 file systems." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:41433 +msgid "" +"This driver can also be used to access ext3 and ext4 file systems. However, " +"ext3 journaling and extended attributes are not supported. Support for ext4 " +"is read-only." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41439 +msgid "To access an ext file system, first load the kernel loadable module:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:41442 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload ext2fs</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41444 +msgid "" +"Then, mount the ext volume by specifying its FreeBSD partition name and an " +"existing mount point. This example mounts <filename>/dev/ad1s1</filename> on " +"<filename>/mnt</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:41449 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount -t ext2fs <replaceable>/dev/ad1s1</replaceable> <replaceable>/mnt</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:41453 +msgid "ReiserFS" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41455 +msgid "" +"FreeBSD provides read-only support for The Reiser file system, ReiserFS." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41458 +msgid "" +"To load the <citerefentry><refentrytitle>reiserfs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> driver:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:41460 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload reiserfs</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41462 +msgid "" +"Then, to mount a ReiserFS volume located on <filename>/dev/ad1s1</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:41465 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount -t reiserfs <replaceable>/dev/ad1s1</replaceable> <replaceable>/mnt</replaceable></userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:41520 +msgid "Virtualization" +msgstr "虛擬化" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:41523 book.translate.xml:56593 +msgid "" +"<personname> <firstname>Murray</firstname> <surname>Stokely</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:41533 +msgid "" +"<personname> <firstname>Allan</firstname> <surname>Jude</surname> </" +"personname> <contrib>bhyve section by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:41546 +msgid "" +"Virtualization software allows multiple operating systems to run " +"simultaneously on the same computer. Such software systems for <acronym>PC</" +"acronym>s often involve a host operating system which runs the " +"virtualization software and supports any number of guest operating systems." +msgstr "" +"虛擬化軟體可以讓同一台機器得以同時執行多種作業系統。在 <acronym>PC</acronym> " +"上的這類軟體系統通常涉及的角色有執行虛擬化軟體的主端 (Host) 作業系統以及數個" +"安裝在其中的客端 (Guest) 作業系統。" + +#. (itstool) path: listitem/para +#: book.translate.xml:41556 +msgid "" +"The difference between a host operating system and a guest operating system." +msgstr "主端作業系統及客端作業系統的差別。" + +#. (itstool) path: listitem/para +#: book.translate.xml:41561 +msgid "" +"How to install FreeBSD on an <trademark class=\"registered\">Intel</" +"trademark>-based <trademark class=\"registered\">Apple</trademark> " +"<trademark class=\"registered\">Mac</trademark> computer." +msgstr "" +"如何在 <trademark class=\"registered\">Intel</trademark>-based <trademark " +"class=\"registered\">Apple</trademark> <trademark class=\"registered\">Mac</" +"trademark> 電腦安裝 FreeBSD 。" + +#. (itstool) path: listitem/para +#: book.translate.xml:41566 +msgid "" +"How to install FreeBSD on <trademark class=\"registered\">Microsoft</" +"trademark> <trademark class=\"registered\">Windows</trademark> with " +"<application>Virtual PC</application>." +msgstr "" +"如何在 <trademark class=\"registered\">Microsoft</trademark> <trademark " +"class=\"registered\">Windows</trademark> 使用 <application>Virtual PC</" +"application> 安裝 FreeBSD。" + +#. (itstool) path: listitem/para +#: book.translate.xml:41571 +msgid "How to install FreeBSD as a guest in <application>bhyve</application>." +msgstr "如何以 FreeBSD 作為客端安裝在 <application>bhyve</application>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:41576 +msgid "How to tune a FreeBSD system for best performance under virtualization." +msgstr "如何調校 FreeBSD 系統來取得虛擬化的最佳效能。" + +#. (itstool) path: listitem/para +#: book.translate.xml:41586 +msgid "" +"Understand the <link linkend=\"basics\">basics of <trademark class=" +"\"registered\">UNIX</trademark> and FreeBSD</link>." +msgstr "" +"了解<link linkend=\"basics\"><trademark class=\"registered\">UNIX</" +"trademark> 與 FreeBSD 的基礎</link>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:41591 +msgid "Know how to <link linkend=\"bsdinstall\">install FreeBSD</link>." +msgstr "知道如何<link linkend=\"bsdinstall\">安裝 FreeBSD</link>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:41596 +msgid "" +"Know how to <link linkend=\"advanced-networking\">set up a network " +"connection</link>." +msgstr "知道如何<link linkend=\"advanced-networking\">設定網路連線</link>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:41601 +msgid "" +"Know how to <link linkend=\"ports\">install additional third-party software</" +"link>." +msgstr "知道如何<link linkend=\"ports\">安裝其他第三方軟體</link>。" + +#. (itstool) path: sect1/title +#: book.translate.xml:41608 +msgid "" +"FreeBSD as a Guest on <application>Parallels</application> for <trademark " +"class=\"registered\">Mac OS</trademark> X" +msgstr "" +"在 <trademark class=\"registered\">Mac OS</trademark> X 的 " +"<application>Parallels</application> 安裝 FreeBSD 為客端" + +#. (itstool) path: sect1/para +#: book.translate.xml:41611 +msgid "" +"<application>Parallels Desktop</application> for <trademark class=" +"\"registered\">Mac</trademark> is a commercial software product available " +"for <trademark class=\"registered\">Intel</trademark> based <trademark class=" +"\"registered\">Apple</trademark> <trademark class=\"registered\">Mac</" +"trademark> computers running <trademark class=\"registered\">Mac OS</" +"trademark> 10.4.6 or higher. FreeBSD is a fully supported guest operating " +"system. Once <application>Parallels</application> has been installed on " +"<trademark class=\"registered\">Mac OS</trademark> X, the user must " +"configure a virtual machine and then install the desired guest operating " +"system." +msgstr "" +"<trademark class=\"registered\">Mac</trademark> 的 <application>Parallels " +"Desktop</application> 是一套商業軟體可在 <trademark class=\"registered" +"\">Intel</trademark> 為基礎的 <trademark class=\"registered\">Apple</" +"trademark> <trademark class=\"registered\">Mac</trademark> 的 <trademark " +"class=\"registered\">Mac OS</trademark> 10.4.6 或更新版本上執行。 該軟體完全" +"支援使用 FreeBSD 作為客端作業系統。 在 <trademark class=\"registered" +"\">Mac OS</trademark> X 裝好 <application>Parallels</application> 後,使用者" +"必先完成虛擬機器的設定後才可安裝想使用的客端作業系統。" + +#. (itstool) path: sect2/title +#: book.translate.xml:41620 +msgid "" +"Installing FreeBSD on Parallels/<trademark class=\"registered\">Mac OS</" +"trademark> X" +msgstr "" +"在 Parallels/<trademark class=\"registered\">Mac OS</trademark> X 安裝 " +"FreeBSD" + +#. (itstool) path: sect2/para +#: book.translate.xml:41622 +msgid "" +"The first step in installing FreeBSD on <application>Parallels</application> " +"is to create a new virtual machine for installing FreeBSD. Select " +"<guimenuitem>FreeBSD</guimenuitem> as the <guimenu>Guest OS Type</guimenu> " +"when prompted:" +msgstr "" +"在 <application>Parallels</application> 上安裝 FreeBSD 的第一步是建立供安裝 " +"FreeBSD 使用的新虛擬機器。提示出現後請選擇 <guimenu>Guest OS Type</guimenu> " +"為 <guimenuitem>FreeBSD</guimenuitem>:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41630 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd1' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41634 +msgid "" +"Choose a reasonable amount of disk and memory depending on the plans for " +"this virtual FreeBSD instance. 4GB of disk space and 512MB of RAM work well " +"for most uses of FreeBSD under <application>Parallels</application>:" +msgstr "" +"根據您對此虛擬 FreeBSD 作業系統的規畫選擇合理的磁碟及記憶體空間,對大多數在 " +"<application>Parallels</application> 下的 FreeBSD 使用來講 4GB 的磁碟空間與 " +"512MB 的 RAM 便足夠:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41641 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd2' md5='__failed__'" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41647 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd3' md5='__failed__'" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41653 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd4' md5='__failed__'" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41659 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd5' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41663 +msgid "Select the type of networking and a network interface:" +msgstr "選擇網路類型以及網路介面:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41668 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd6' md5='__failed__'" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41674 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd7' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41678 book.translate.xml:41862 +msgid "Save and finish the configuration:" +msgstr "儲存並完成設定:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41682 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd8' md5='__failed__'" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41688 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd9' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41692 +msgid "" +"After the FreeBSD virtual machine has been created, FreeBSD can be installed " +"on it. This is best done with an official FreeBSD <acronym>CD</acronym>/" +"<acronym>DVD</acronym> or with an <acronym>ISO</acronym> image downloaded " +"from an official <acronym>FTP</acronym> site. Copy the appropriate " +"<acronym>ISO</acronym> image to the local <trademark class=\"registered" +"\">Mac</trademark> filesystem or insert a <acronym>CD</acronym>/" +"<acronym>DVD</acronym> in the <trademark class=\"registered\">Mac</" +"trademark>'s <acronym>CD-ROM</acronym> drive. Click on the disc icon in the " +"bottom right corner of the FreeBSD <application>Parallels</application> " +"window. This will bring up a window that can be used to associate the " +"<acronym>CD-ROM</acronym> drive in the virtual machine with the " +"<acronym>ISO</acronym> file on disk or with the real <acronym>CD-ROM</" +"acronym> drive." +msgstr "" +"在 FreeBSD 虛擬機器新增後,就可以繼續以其安裝 FreeBSD。 安裝方面,比較好的作" +"法是使用官方的 FreeBSD <acronym>CD</acronym>/<acronym>DVD</acronym> 或者是自" +"官方 <acronym>FTP</acronym> 站下載的 <acronym>ISO</acronym> 映像檔。 複製適合" +"的 <acronym>ISO</acronym> 映像檔到 <trademark class=\"registered\">Mac</" +"trademark> 檔案系統本地端或放入 <acronym>CD</acronym>/<acronym>DVD</acronym> " +"到 <trademark class=\"registered\">Mac</trademark> 的 <acronym>CD-ROM</" +"acronym> 磁碟機。在 FreeBSD <application>Parallels</application> 視窗的右下角" +"點選磁碟圖示後會出現一個視窗,可用來建立虛擬機器內的 <acronym>CD-ROM</" +"acronym> 磁碟機與磁碟上 <acronym>ISO</acronym> 檔案或實際 <acronym>CD-ROM</" +"acronym> 磁碟機的關聯。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41709 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd11' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41713 +msgid "" +"Once this association with the <acronym>CD-ROM</acronym> source has been " +"made, reboot the FreeBSD virtual machine by clicking the reboot icon. " +"<application>Parallels</application> will reboot with a special " +"<acronym>BIOS</acronym> that first checks if there is a <acronym>CD-ROM</" +"acronym>." +msgstr "" +"建立與 <acronym>CD-ROM</acronym> 來源的關聯後,點選重新開機圖示重新開啟 " +"FreeBSD 虛擬機器。<application>Parallels</application> 會重新開機進入一個特殊" +"的 <acronym>BIOS</acronym> 畫面並檢查是否有 <acronym>CD-ROM</acronym>。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41722 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd10' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41726 +msgid "" +"In this case it will find the FreeBSD installation media and begin a normal " +"FreeBSD installation. Perform the installation, but do not attempt to " +"configure <application>Xorg</application> at this time." +msgstr "" +"在此處會找到 FreeBSD 安裝媒體並開始正常的 FreeBSD 安裝程序。完成安裝,但不要" +"在此時嘗試設定 <application>Xorg</application>。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41733 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd12' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41737 +msgid "" +"When the installation is finished, reboot into the newly installed FreeBSD " +"virtual machine." +msgstr "當安裝完成後,重新開機將會進入新安裝的 FreeBSD 虛擬機器。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41742 +msgctxt "_" +msgid "external ref='virtualization/parallels-freebsd13' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:41748 +msgid "Configuring FreeBSD on <application>Parallels</application>" +msgstr "在 <application>Parallels</application> 設定 FreeBSD" + +#. (itstool) path: sect2/para +#: book.translate.xml:41751 +msgid "" +"After FreeBSD has been successfully installed on <trademark class=" +"\"registered\">Mac OS</trademark> X with <application>Parallels</" +"application>, there are a number of configuration steps that can be taken to " +"optimize the system for virtualized operation." +msgstr "" +"在成功將 FreeBSD 安裝到 <trademark class=\"registered\">Mac OS</trademark> X " +"的 <application>Parallels</application> 後,有數個設定步驟要完成來最佳化系統" +"在虛擬機器上的運作。" + +#. (itstool) path: step/title +#: book.translate.xml:41758 book.translate.xml:41963 book.translate.xml:42167 +msgid "Set Boot Loader Variables" +msgstr "設定 Boot Loader 變數" + +#. (itstool) path: step/para +#: book.translate.xml:41760 +msgid "" +"The most important step is to reduce the <option>kern.hz</option> tunable to " +"reduce the CPU utilization of FreeBSD under the <application>Parallels</" +"application> environment. This is accomplished by adding the following line " +"to <filename>/boot/loader.conf</filename>:" +msgstr "" +"最重要的一個步驟是減少 <option>kern.hz</option> 參數來減少 FreeBSD 在 " +"<application>Parallels</application> 環境下對 CPU 的使用率。加入以下行到 " +"<filename>/boot/loader.conf</filename> 來完成這個動作:" + +#. (itstool) path: step/programlisting +#: book.translate.xml:41767 book.translate.xml:41972 book.translate.xml:42176 +#, no-wrap +msgid "kern.hz=100" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:41769 +msgid "" +"Without this setting, an idle FreeBSD <application>Parallels</application> " +"guest will use roughly 15% of the CPU of a single processor <trademark class=" +"\"registered\">iMac</trademark>. After this change the usage will be closer " +"to 5%." +msgstr "" +"若沒有完成此設定,閒置的 FreeBSD <application>Parallels</application> 客端將" +"會消耗掉單一處理器的 <trademark class=\"registered\">iMac</trademark> 將近 " +"15% 的 CPU。完成此更改後使用率會減至接近 5%。" + +#. (itstool) path: step/title +#: book.translate.xml:41776 book.translate.xml:41982 book.translate.xml:42185 +msgid "Create a New Kernel Configuration File" +msgstr "建立新核心設定檔" + +#. (itstool) path: step/para +#: book.translate.xml:41778 +msgid "" +"All of the SCSI, FireWire, and USB device drivers can be removed from a " +"custom kernel configuration file. <application>Parallels</application> " +"provides a virtual network adapter used by the " +"<citerefentry><refentrytitle>ed</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> driver, so all network devices except for " +"<citerefentry><refentrytitle>ed</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>miibus</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> can be removed from " +"the kernel." +msgstr "" +"所有的 SCSI, FireWire 及 USB 裝置可以從自訂的核心設定檔中移除。" +"<application>Parallels</application> 提供的虛擬網路卡使用 " +"<citerefentry><refentrytitle>ed</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> 驅動程式,所以除了 <citerefentry><refentrytitle>ed</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> 以及 " +"<citerefentry><refentrytitle>miibus</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> 外的所有網路裝置可以自核心中移除。" + +#. (itstool) path: step/title +#: book.translate.xml:41787 book.translate.xml:41993 book.translate.xml:42196 +msgid "Configure Networking" +msgstr "設定網路" + +#. (itstool) path: step/para +#: book.translate.xml:41789 +msgid "" +"The most basic networking setup uses DHCP to connect the virtual machine to " +"the same local area network as the host <trademark class=\"registered\">Mac</" +"trademark>. This can be accomplished by adding <literal>ifconfig_ed0=\"DHCP" +"\"</literal> to <filename>/etc/rc.conf</filename>. More advanced networking " +"setups are described in <xref linkend=\"advanced-networking\"/>." +msgstr "" +"最基本的網路設定是使用 DHCP 來讓虛擬機器連線到與主端 <trademark class=" +"\"registered\">Mac</trademark> 相同的區域網路,這可以透過加入 " +"<literal>ifconfig_ed0=\"DHCP\"</literal> 到 <filename>/etc/rc.conf</" +"filename> 來完成。更進階的網路設定在 <xref linkend=\"advanced-networking\"/> " +"中描述。" + +#. (itstool) path: sect1/title +#: book.translate.xml:41802 +msgid "" +"FreeBSD as a Guest on <application>Virtual PC</application> for <trademark " +"class=\"registered\">Windows</trademark>" +msgstr "" +"在 <trademark class=\"registered\">Windows</trademark> 的 " +"<application>Virtual PC</application> 安裝 FreeBSD 為客端" + +#. (itstool) path: sect1/para +#: book.translate.xml:41805 +msgid "" +"<application>Virtual PC</application> for <trademark class=\"registered" +"\">Windows</trademark> is a <trademark class=\"registered\">Microsoft</" +"trademark> software product available for free download. See this website " +"for the <link xlink:href=\"http://www.microsoft.com/windows/downloads/" +"virtualpc/sysreq.mspx\">system requirements</link>. Once " +"<application>Virtual PC</application> has been installed on <trademark class=" +"\"registered\">Microsoft</trademark> <trademark class=\"registered" +"\">Windows</trademark>, the user can configure a virtual machine and then " +"install the desired guest operating system." +msgstr "" +"給 <trademark class=\"registered\">Windows</trademark> 使用的 " +"<application>Virtual PC</application> 是一套可免費下載的 <trademark class=" +"\"registered\">Microsoft</trademark> 軟體產品,請參考此網站取得<link xlink:" +"href=\"http://www.microsoft.com/windows/downloads/virtualpc/sysreq.mspx\">系" +"統需求</link>。<application>Virtual PC</application> 在 <trademark class=" +"\"registered\">Microsoft</trademark> <trademark class=\"registered" +"\">Windows</trademark> 上安裝完成之後,使用者可以設定一台虛擬機器然後安裝想要" +"的客端作業系統。" + +#. (itstool) path: sect2/title +#: book.translate.xml:41814 +msgid "Installing FreeBSD on <application>Virtual PC</application>" +msgstr "在 <application>Virtual PC</application> 安裝 FreeBSD " + +#. (itstool) path: sect2/para +#: book.translate.xml:41817 +msgid "" +"The first step in installing FreeBSD on <application>Virtual PC</" +"application> is to create a new virtual machine for installing FreeBSD. " +"Select <guimenuitem>Create a virtual machine</guimenuitem> when prompted:" +msgstr "" +"安裝 FreeBSD 到 <application>Virtual PC</application> 的第一個步驟是建立新的" +"虛擬機器來安裝 FreeBSD。當提示畫面出現時,請選擇 <guimenuitem>Create a " +"virtual machine</guimenuitem>:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41825 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd1' md5='__failed__'" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41831 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd2' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41835 +msgid "" +"Select <guimenuitem>Other</guimenuitem> as the <guimenuitem>Operating " +"system</guimenuitem> when prompted:" +msgstr "" +"當提示畫面出現時,選擇 <guimenuitem>Operating system</guimenuitem> 為 " +"<guimenuitem>Other</guimenuitem>:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41841 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd3' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41845 +msgid "" +"Then, choose a reasonable amount of disk and memory depending on the plans " +"for this virtual FreeBSD instance. 4GB of disk space and 512MB of RAM work " +"well for most uses of FreeBSD under <application>Virtual PC</application>:" +msgstr "" +"然後,根據您對此虛擬 FreeBSD 作業系統的規畫選擇合理的磁碟及記憶體空間,對大多" +"數在 <application>Virtual PC</application> 下的 FreeBSD 使用來講 4GB 的磁碟空" +"間與 512MB 的 RAM 便足夠:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41852 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd4' md5='__failed__'" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41858 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd5' md5='__failed__'" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41866 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd6' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41870 +msgid "" +"Select the FreeBSD virtual machine and click <guimenu>Settings</guimenu>, " +"then set the type of networking and a network interface:" +msgstr "" +"選擇 FreeBSD 虛擬機器然後點選 <guimenu>Settings</guimenu>,接著設定網路類型及" +"網路介面卡:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41876 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd7' md5='__failed__'" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41882 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd8' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41886 +msgid "" +"After the FreeBSD virtual machine has been created, FreeBSD can be installed " +"on it. This is best done with an official FreeBSD <acronym>CD</acronym>/" +"<acronym>DVD</acronym> or with an <acronym>ISO</acronym> image downloaded " +"from an official <acronym>FTP</acronym> site. Copy the appropriate " +"<acronym>ISO</acronym> image to the local <trademark class=\"registered" +"\">Windows</trademark> filesystem or insert a <acronym>CD</acronym>/" +"<acronym>DVD</acronym> in the <acronym>CD</acronym> drive, then double click " +"on the FreeBSD virtual machine to boot. Then, click <guimenu>CD</guimenu> " +"and choose <guimenu>Capture ISO Image...</guimenu> on the " +"<application>Virtual PC</application> window. This will bring up a window " +"where the <acronym>CD-ROM</acronym> drive in the virtual machine can be " +"associated with an <acronym>ISO</acronym> file on disk or with the real " +"<acronym>CD-ROM</acronym> drive." +msgstr "" +"FreeBSD 虛擬機器建立完成之後,便可安裝 FreeBSD 到該虛擬機器。安裝最好使用官" +"方 FreeBSD <acronym>CD</acronym>/<acronym>DVD</acronym> 或使用自官方 " +"<acronym>FTP</acronym> 站下載的 <acronym>ISO</acronym> 映像檔。複製適當的 " +"<acronym>ISO</acronym> 映像檔到本地 <trademark class=\"registered\">Windows</" +"trademark> 檔案系統或插入 <acronym>CD</acronym>/<acronym>DVD</acronym> 到 " +"<acronym>CD</acronym> 磁碟機,然後雙擊點選 FreeBSD 虛擬機器來開機。接著,點" +"選 <guimenu>CD</guimenu> 並在 <application>Virtual PC</application> 視窗選擇 " +"<guimenu>Capture ISO Image...</guimenu>,這將會顯示一個視窗可以建立虛擬機器中" +"的 <acronym>CD-ROM</acronym> 與 <acronym>ISO</acronym> 檔或磁碟或實體 " +"<acronym>CD-ROM</acronym> 磁碟機之間的關聯。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41904 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd9' md5='__failed__'" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41910 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd10' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41914 +msgid "" +"Once this association with the <acronym>CD-ROM</acronym> source has been " +"made, reboot the FreeBSD virtual machine by clicking <guimenu>Action</" +"guimenu> and <guimenu>Reset</guimenu>. <application>Virtual PC</application> " +"will reboot with a special <acronym>BIOS</acronym> that first checks for a " +"<acronym>CD-ROM</acronym>." +msgstr "" +"建立與 <acronym>CD-ROM</acronym> 來源的關聯後,點選 <guimenu>Action</" +"guimenu> 及 <guimenu>Reset</guimenu> 重新開機 FreeBSD 虛擬機器。" +"<application>Virtual PC</application> 會重新開始並進入特殊的 <acronym>BIOS</" +"acronym> 來做 <acronym>CD-ROM</acronym> 的第一次檢查。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41924 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd11' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41928 +msgid "" +"In this case it will find the FreeBSD installation media and begin a normal " +"FreeBSD installation. Continue with the installation, but do not attempt to " +"configure <application>Xorg</application> at this time." +msgstr "" +"在這個情況下會找到 FreeBSD 安裝媒體然後開始正常的 FreeBSD 安裝。接著繼續安" +"裝,但此時請不要嘗試設定 <application>Xorg</application>。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41935 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd12' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:41939 +msgid "" +"When the installation is finished, remember to eject the <acronym>CD</" +"acronym>/<acronym>DVD</acronym> or release the <acronym>ISO</acronym> image. " +"Finally, reboot into the newly installed FreeBSD virtual machine." +msgstr "" +"當安裝完成之後,記得退出 <acronym>CD</acronym>/<acronym>DVD</acronym> 或釋放 " +"<acronym>ISO</acronym> 映像檔。最後,重新開機進入新安裝的 FreeBSD 虛擬機器。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:41946 +msgctxt "_" +msgid "external ref='virtualization/virtualpc-freebsd13' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:41952 +msgid "Configuring FreeBSD on <application>Virtual PC</application>" +msgstr "在 <application>Virtual PC</application> 設定 FreeBSD" + +#. (itstool) path: sect2/para +#: book.translate.xml:41955 +msgid "" +"After FreeBSD has been successfully installed on <trademark class=" +"\"registered\">Microsoft</trademark> <trademark class=\"registered" +"\">Windows</trademark> with <application>Virtual PC</application>, there are " +"a number of configuration steps that can be taken to optimize the system for " +"virtualized operation." +msgstr "" +"在成功將 FreeBSD 安裝到 <trademark class=\"registered\">Microsoft</" +"trademark> <trademark class=\"registered\">Windows</trademark> 的 " +"<application>Virtual PC</application> 後,有數個設定步驟要完成來最佳化系統在" +"虛擬機器上的運作。" + +#. (itstool) path: step/para +#: book.translate.xml:41965 +msgid "" +"The most important step is to reduce the <option>kern.hz</option> tunable to " +"reduce the CPU utilization of FreeBSD under the <application>Virtual PC</" +"application> environment. This is accomplished by adding the following line " +"to <filename>/boot/loader.conf</filename>:" +msgstr "" +"最重要的一個步驟是減少 <option>kern.hz</option>,來減少 FreeBSD 在 " +"<application>Virtual PC</application> 環境下 CPU 的使用量。這可以透過加入下列" +"幾行到 <filename>/boot/loader.conf</filename> 來完成:" + +#. (itstool) path: step/para +#: book.translate.xml:41974 +msgid "" +"Without this setting, an idle FreeBSD <application>Virtual PC</application> " +"guest OS will use roughly 40% of the CPU of a single processor computer. " +"After this change, the usage will be closer to 3%." +msgstr "" +"若沒有完成此設定,閒置的 FreeBSD <application>Virtual PC</application> 客端 " +"OS 會消耗掉單一處理器的電腦 40% 的 CPU。完成此更改後使用率會減至接近 3%。" + +#. (itstool) path: step/para +#: book.translate.xml:41984 +msgid "" +"All of the SCSI, FireWire, and USB device drivers can be removed from a " +"custom kernel configuration file. <application>Virtual PC</application> " +"provides a virtual network adapter used by the " +"<citerefentry><refentrytitle>de</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> driver, so all network devices except for " +"<citerefentry><refentrytitle>de</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>miibus</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> can be removed from " +"the kernel." +msgstr "" +"所有的 SCSI, FireWire 及 USB 裝置可以從自訂的核心設定檔中移除。" +"<application>Virtual PC</application> 提供的虛擬網路卡使用 " +"<citerefentry><refentrytitle>de</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> 驅動程式,所以除了 <citerefentry><refentrytitle>de</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> 以及 " +"<citerefentry><refentrytitle>miibus</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> 外的所有網路裝置可以自核心中移除。" + +#. (itstool) path: step/para +#: book.translate.xml:41995 +msgid "" +"The most basic networking setup uses DHCP to connect the virtual machine to " +"the same local area network as the <trademark class=\"registered" +"\">Microsoft</trademark> <trademark class=\"registered\">Windows</trademark> " +"host. This can be accomplished by adding <literal>ifconfig_de0=\"DHCP\"</" +"literal> to <filename>/etc/rc.conf</filename>. More advanced networking " +"setups are described in <xref linkend=\"advanced-networking\"/>." +msgstr "" +"最基本的網路設定是使用 DHCP 來讓虛擬機器連線到與主端 <trademark class=" +"\"registered\">Microsoft</trademark> <trademark class=\"registered" +"\">Windows</trademark> 相同的區域網路,這可以透過加入 <literal>ifconfig_de0=" +"\"DHCP\"</literal> 到 <filename>/etc/rc.conf</filename> 來完成。更進階的網路" +"設定在 <xref linkend=\"advanced-networking\"/> 中描述。" + +#. (itstool) path: sect1/title +#: book.translate.xml:42008 +msgid "" +"FreeBSD as a Guest on <application>VMware Fusion</application> for " +"<trademark class=\"registered\">Mac OS</trademark>" +msgstr "" +"在 <trademark class=\"registered\">Mac OS</trademark> 的 <application>VMware " +"Fusion</application> 安裝 FreeBSD 為客端" + +#. (itstool) path: sect1/para +#: book.translate.xml:42011 +msgid "" +"<application>VMware Fusion</application> for <trademark class=\"registered" +"\">Mac</trademark> is a commercial software product available for <trademark " +"class=\"registered\">Intel</trademark> based <trademark class=\"registered" +"\">Apple</trademark> <trademark class=\"registered\">Mac</trademark> " +"computers running <trademark class=\"registered\">Mac OS</trademark> 10.4.9 " +"or higher. FreeBSD is a fully supported guest operating system. Once " +"<application>VMware Fusion</application> has been installed on <trademark " +"class=\"registered\">Mac OS</trademark> X, the user can configure a virtual " +"machine and then install the desired guest operating system." +msgstr "" +"<application>VMware Fusion</application> 是一套商業軟體可在 <trademark class=" +"\"registered\">Intel</trademark> 為基礎的 <trademark class=\"registered" +"\">Apple</trademark> <trademark class=\"registered\">Mac</trademark> 的 " +"<trademark class=\"registered\">Mac OS</trademark> 10.4.9 或更新版本上執行。 " +"該軟體完全支援使用 FreeBSD 作為客端作業系統。 在 <trademark class=" +"\"registered\">Mac OS</trademark> X 裝好 <application>VMware Fusion</" +"application> 後,使用者必先完成虛擬機器的設定後才可安裝想使用的客端作業系統。" + +#. (itstool) path: sect2/title +#: book.translate.xml:42020 +msgid "Installing FreeBSD on <application>VMware Fusion</application>" +msgstr "在 <application>VMware Fusion</application> 安裝 FreeBSD" + +#. (itstool) path: sect2/para +#: book.translate.xml:42023 +msgid "" +"The first step is to start <application>VMware Fusion</application> which " +"will load the Virtual Machine Library. Click <guimenuitem>New</guimenuitem> " +"to create the virtual machine:" +msgstr "" +"第一個步驟是啟動 <application>VMware Fusion</application> 載入 Virtual " +"Machine Library,點選 <guimenuitem>New</guimenuitem> 建立虛擬機器:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42030 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd01' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42034 +msgid "" +"This will load the New Virtual Machine Assistant. Click " +"<guimenuitem>Continue</guimenuitem> to proceed:" +msgstr "" +"這個動做會載入 New Virtual Machine Assistant,點選 <guimenuitem>Continue</" +"guimenuitem> 繼續:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42039 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd02' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42043 +msgid "" +"Select <guimenuitem>Other</guimenuitem> as the <guimenuitem>Operating " +"System</guimenuitem> and either <guimenuitem>FreeBSD</guimenuitem> or " +"<guimenuitem>FreeBSD 64-bit</guimenuitem>, as the <guimenu>Version</guimenu> " +"when prompted:" +msgstr "" +"選擇 <guimenuitem>Operating System</guimenuitem> 為 <guimenuitem>Other</" +"guimenuitem> 以及在 <guimenu>Version</guimenu> 提示出現時選擇 " +"<guimenuitem>FreeBSD</guimenuitem> 或 <guimenuitem>FreeBSD 64-bit</" +"guimenuitem>:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42051 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd03' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42055 +msgid "" +"Choose the name of the virtual machine and the directory where it should be " +"saved:" +msgstr "選擇虛擬機器要使用的名稱以及要儲存目錄位置:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42060 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd04' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42064 +msgid "Choose the size of the Virtual Hard Disk for the virtual machine:" +msgstr "選擇虛擬機器的 Virtual Hard Disk 大小:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42069 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd05' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42073 +msgid "" +"Choose the method to install the virtual machine, either from an " +"<acronym>ISO</acronym> image or from a <acronym>CD</acronym>/<acronym>DVD</" +"acronym>:" +msgstr "" +"選擇安裝虛擬機器的方式,可從 <acronym>ISO</acronym> 映像檔或從 <acronym>CD</" +"acronym>/<acronym>DVD</acronym>:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42079 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd06' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42083 +msgid "" +"Click <guimenuitem>Finish</guimenuitem> and the virtual machine will boot:" +msgstr "點選 <guimenuitem>Finish</guimenuitem> 接著虛擬機器會開機:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42088 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd07' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42092 +msgid "Install FreeBSD as usual:" +msgstr "照往常方式安裝 FreeBSD:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42096 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd08' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42100 +msgid "" +"Once the install is complete, the settings of the virtual machine can be " +"modified, such as memory usage:" +msgstr "安裝完成後,可以修改虛擬機器的設定,例如記憶體使用量:" + +#. (itstool) path: note/para +#: book.translate.xml:42104 +msgid "" +"The System Hardware settings of the virtual machine cannot be modified while " +"the virtual machine is running." +msgstr "虛擬機器的 System Hardware 設定無法在虛擬機器執行時修改。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42111 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd09' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42115 +msgid "The number of CPUs the virtual machine will have access to:" +msgstr "虛擬機器要使用的 CPU 數量:" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42120 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd10' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42124 +msgid "" +"The status of the <acronym>CD-ROM</acronym> device. Normally the " +"<acronym>CD</acronym>/<acronym>DVD</acronym>/<acronym>ISO</acronym> is " +"disconnected from the virtual machine when it is no longer needed." +msgstr "" +"<acronym>CD-ROM</acronym> 裝置的狀態,正常情況 <acronym>CD</acronym>/" +"<acronym>DVD</acronym>/<acronym>ISO</acronym> 在不需要時會中斷與虛擬機器的連" +"線。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42132 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd11' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42136 +msgid "" +"The last thing to change is how the virtual machine will connect to the " +"network. To allow connections to the virtual machine from other machines " +"besides the host, choose <guimenuitem>Connect directly to the physical " +"network (Bridged)</guimenuitem>. Otherwise, <guimenuitem>Share the host's " +"internet connection (NAT)</guimenuitem> is preferred so that the virtual " +"machine can have access to the Internet, but the network cannot access the " +"virtual machine." +msgstr "" +"最後一件事是更改虛擬機器連線到網路的方式,要允許除了主端以外的機器連線到虛擬" +"機器,請選擇 <guimenuitem>Connect directly to the physical network " +"(Bridged)</guimenuitem>。否則會偏好使用 <guimenuitem>Share the host's " +"internet connection (NAT)</guimenuitem> 來讓虛擬機器可以存取網際網路,但外部" +"網路無法連線到虛擬機器。" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:42148 +msgctxt "_" +msgid "external ref='virtualization/vmware-freebsd12' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42152 +msgid "" +"After modifying the settings, boot the newly installed FreeBSD virtual " +"machine." +msgstr "在修改設定之後,開機進入新安裝的 FreeBSD 虛擬機器。" + +#. (itstool) path: sect2/title +#: book.translate.xml:42157 +msgid "Configuring FreeBSD on <application>VMware Fusion</application>" +msgstr "在 <application>VMware Fusion</application> 設定 FreeBSD" + +#. (itstool) path: sect2/para +#: book.translate.xml:42160 +msgid "" +"After FreeBSD has been successfully installed on <trademark class=" +"\"registered\">Mac OS</trademark> X with <application>VMware Fusion</" +"application>, there are a number of configuration steps that can be taken to " +"optimize the system for virtualized operation." +msgstr "" +"在成功將 FreeBSD 安裝到 <trademark class=\"registered\">Mac OS</trademark> X " +"的 <application>VMware Fusion</application> 後,有數個設定步驟要完成來最佳化" +"系統在虛擬機器上的運作。" + +#. (itstool) path: step/para +#: book.translate.xml:42169 +msgid "" +"The most important step is to reduce the <option>kern.hz</option> tunable to " +"reduce the CPU utilization of FreeBSD under the <application>VMware Fusion</" +"application> environment. This is accomplished by adding the following line " +"to <filename>/boot/loader.conf</filename>:" +msgstr "" +"最重要的一個步驟是減少 <option>kern.hz</option>,來減少 FreeBSD 在 " +"<application>VMware Fusion</application> 環境下 CPU 的使用量。這可以透過加入" +"下列幾行到 <filename>/boot/loader.conf</filename> 來完成:" + +#. (itstool) path: step/para +#: book.translate.xml:42178 +msgid "" +"Without this setting, an idle FreeBSD <application>VMware Fusion</" +"application> guest will use roughly 15% of the CPU of a single processor " +"<trademark class=\"registered\">iMac</trademark>. After this change, the " +"usage will be closer to 5%." +msgstr "" +"若沒有完成此設定,閒置的 FreeBSD <application>VMware Fusion</application> 客" +"端將會消耗掉單一處理器的 <trademark class=\"registered\">iMac</trademark> 將" +"近 15% 的 CPU。完成此更改後使用率會減至接近 5%。" + +#. (itstool) path: step/para +#: book.translate.xml:42187 +msgid "" +"All of the FireWire, and USB device drivers can be removed from a custom " +"kernel configuration file. <application>VMware Fusion</application> provides " +"a virtual network adapter used by the <citerefentry><refentrytitle>em</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver, so all network " +"devices except for <citerefentry><refentrytitle>em</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> can be removed from " +"the kernel." +msgstr "" +"所有的 SCSI, FireWire 及 USB 裝置可以從自訂的核心設定檔中移除。" +"<application>VMware Fusion</application> 提供的虛擬網路卡使用 " +"<citerefentry><refentrytitle>em</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> 驅動程式,所以除了 <citerefentry><refentrytitle>em</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> 外的所有網路裝置可以自" +"核心中移除。" + +#. (itstool) path: step/para +#: book.translate.xml:42198 +msgid "" +"The most basic networking setup uses DHCP to connect the virtual machine to " +"the same local area network as the host <trademark class=\"registered\">Mac</" +"trademark>. This can be accomplished by adding <literal>ifconfig_em0=\"DHCP" +"\"</literal> to <filename>/etc/rc.conf</filename>. More advanced networking " +"setups are described in <xref linkend=\"advanced-networking\"/>." +msgstr "" +"最基本的網路設定是使用 DHCP 來讓虛擬機器連線到與主端 <trademark class=" +"\"registered\">Mac</trademark> 相同的區域網路,這可以透過加入 " +"<literal>ifconfig_em0=\"DHCP\"</literal> 到 <filename>/etc/rc.conf</" +"filename> 來完成。更進階的網路設定在 <xref linkend=\"advanced-networking\"/> " +"中描述。" + +#. (itstool) path: sect1/title +#: book.translate.xml:42211 +msgid "<trademark>VirtualBox</trademark> Guest Additions on a FreeBSD Guest" +msgstr "安裝 <trademark>VirtualBox</trademark> Guest Additions 於 FreeBSD 客端" + +#. (itstool) path: sect1/para +#: book.translate.xml:42213 +msgid "" +"FreeBSD works well as a guest in <application><trademark>VirtualBox</" +"trademark></application>. The virtualization software is available for most " +"common operating systems, including FreeBSD itself." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42218 +msgid "" +"The <application><trademark>VirtualBox</trademark></application> guest " +"additions provide support for:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:42223 +msgid "Clipboard sharing." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:42227 +msgid "Mouse pointer integration." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:42231 +msgid "Host time synchronization." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:42235 +msgid "Window scaling." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:42239 +msgid "Seamless mode." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:42244 +msgid "These commands are run in the FreeBSD guest." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42247 +msgid "" +"First, install the <package>emulators/virtualbox-ose-additions</package> " +"package or port in the FreeBSD guest. This will install the port:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:42251 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cd /usr/ports/emulators/virtualbox-ose-additions && make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42253 +msgid "Add these lines to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:42255 +#, no-wrap +msgid "" +"vboxguest_enable=\"YES\"\n" +"vboxservice_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42258 +msgid "" +"If <citerefentry><refentrytitle>ntpd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> or <citerefentry><refentrytitle>ntpdate</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> is used, disable host " +"time synchronization:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:42261 +#, no-wrap +msgid "vboxservice_flags=\"--disable-timesync\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42263 +msgid "" +"<application>Xorg</application> will automatically recognize the " +"<literal>vboxvideo</literal> driver. It can also be manually entered in " +"<filename>/etc/X11/xorg.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:42268 +#, no-wrap +msgid "" +"Section \"Device\"\n" +"\tIdentifier \"Card0\"\n" +"\tDriver \"vboxvideo\"\n" +"\tVendorName \"InnoTek Systemberatung GmbH\"\n" +"\tBoardName \"VirtualBox Graphics Adapter\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42275 +msgid "" +"To use the <literal>vboxmouse</literal> driver, adjust the mouse section in " +"<filename>/etc/X11/xorg.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:42278 +#, no-wrap +msgid "" +"Section \"InputDevice\"\n" +"\tIdentifier \"Mouse0\"\n" +"\tDriver \"vboxmouse\"\n" +"EndSection" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42283 +msgid "" +"<acronym>HAL</acronym> users should create the following <filename>/usr/" +"local/etc/hal/fdi/policy/90-vboxguest.fdi</filename> or copy it from " +"<filename>/usr/local/share/hal/fdi/policy/10osvendor/90-vboxguest.fdi</" +"filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:42288 +#, no-wrap +msgid "" +"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +"<!--\n" +"# Sun VirtualBox\n" +"# Hal driver description for the vboxmouse driver\n" +"# $Id: chapter.xml,v 1.33 2012-03-17 04:53:52 eadler Exp $\n" +"\n" +"\tCopyright (C) 2008-2009 Sun Microsystems, Inc.\n" +"\n" +"\tThis file is part of VirtualBox Open Source Edition (OSE, as\n" +"\tavailable from http://www.virtualbox.org. This file is free software;\n" +"\tyou can redistribute it and/or modify it under the terms of the GNU\n" +"\tGeneral Public License (GPL) as published by the Free Software\n" +"\tFoundation, in version 2 as it comes in the \"COPYING\" file of the\n" +"\tVirtualBox OSE distribution. VirtualBox OSE is distributed in the\n" +"\thope that it will be useful, but WITHOUT ANY WARRANTY of any kind.\n" +"\n" +"\tPlease contact Sun Microsystems, Inc., 4150 Network Circle, Santa\n" +"\tClara, CA 95054 USA or visit http://www.sun.com if you need\n" +"\tadditional information or have any questions.\n" +"-->\n" +"<deviceinfo version=\"0.2\">\n" +" <device>\n" +" <match key=\"info.subsystem\" string=\"pci\">\n" +" <match key=\"info.product\" string=\"VirtualBox guest Service\">\n" +" <append key=\"info.capabilities\" type=\"strlist\">input</append>\n" +"\t<append key=\"info.capabilities\" type=\"strlist\">input.mouse</append>\n" +" <merge key=\"input.x11_driver\" type=\"string\">vboxmouse</merge>\n" +"\t<merge key=\"input.device\" type=\"string\">/dev/vboxguest</merge>\n" +" </match>\n" +" </match>\n" +" </device>\n" +"</deviceinfo>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:42323 +msgid "FreeBSD as a Host with <application>VirtualBox</application>" +msgstr "以 FreeBSD 作為主端安裝 <application>VirtualBox</application> " + +#. (itstool) path: sect1/para +#: book.translate.xml:42326 +msgid "" +"<application><trademark>VirtualBox</trademark></application> is an actively " +"developed, complete virtualization package, that is available for most " +"operating systems including <trademark class=\"registered\">Windows</" +"trademark>, <trademark class=\"registered\">Mac OS</trademark>, <trademark " +"class=\"registered\">Linux</trademark> and FreeBSD. It is equally capable of " +"running <trademark class=\"registered\">Windows</trademark> or <trademark " +"class=\"registered\">UNIX</trademark>-like guests. It is released as open " +"source software, but with closed-source components available in a separate " +"extension pack. These components include support for USB 2.0 devices. More " +"information may be found on the <link xlink:href=\"http://www.virtualbox.org/" +"wiki/Downloads\"><quote>Downloads</quote> page of the " +"<application><trademark>VirtualBox</trademark></application> wiki</link>. " +"Currently, these extensions are not available for FreeBSD." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:42339 +msgid "Installing <trademark>VirtualBox</trademark>" +msgstr "安裝 <trademark>VirtualBox</trademark>" + +#. (itstool) path: sect2/para +#: book.translate.xml:42341 +msgid "" +"<application><trademark>VirtualBox</trademark></application> is available as " +"a FreeBSD package or port in <package>emulators/virtualbox-ose</package>. " +"The port can be installed using these commands:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42346 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/emulators/virtualbox-ose</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42349 +msgid "" +"One useful option in the port's configuration menu is the " +"<literal>GuestAdditions</literal> suite of programs. These provide a number " +"of useful features in guest operating systems, like mouse pointer " +"integration (allowing the mouse to be shared between host and guest without " +"the need to press a special keyboard shortcut to switch) and faster video " +"rendering, especially in <trademark class=\"registered\">Windows</trademark> " +"guests. The guest additions are available in the <guimenu>Devices</guimenu> " +"menu, after the installation of the guest is finished." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42359 +msgid "" +"A few configuration changes are needed before " +"<application><trademark>VirtualBox</trademark></application> is started for " +"the first time. The port installs a kernel module in <filename>/boot/" +"modules</filename> which must be loaded into the running kernel:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42365 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload vboxdrv</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42367 +msgid "" +"To ensure the module is always loaded after a reboot, add this line to " +"<filename>/boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:42371 +#, no-wrap +msgid "vboxdrv_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42373 +msgid "" +"To use the kernel modules that allow bridged or host-only networking, add " +"this line to <filename>/etc/rc.conf</filename> and reboot the computer:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:42378 +#, no-wrap +msgid "vboxnet_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42380 +msgid "" +"The <systemitem class=\"groupname\">vboxusers</systemitem> group is created " +"during installation of <application><trademark>VirtualBox</trademark></" +"application>. All users that need access to " +"<application><trademark>VirtualBox</trademark></application> will have to be " +"added as members of this group. <command>pw</command> can be used to add new " +"members:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42387 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw groupmod vboxusers -m <replaceable>yourusername</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42389 +msgid "" +"The default permissions for <filename>/dev/vboxnetctl</filename> are " +"restrictive and need to be changed for bridged networking:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42393 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>chown root:vboxusers /dev/vboxnetctl</userinput>\n" +"<prompt>#</prompt> <userinput>chmod 0660 /dev/vboxnetctl</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42396 +msgid "" +"To make this permissions change permanent, add these lines to <filename>/etc/" +"devfs.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:42399 +#, no-wrap +msgid "" +"own vboxnetctl root:vboxusers\n" +"perm vboxnetctl 0660" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42402 +msgid "" +"To launch <application><trademark>VirtualBox</trademark></application>, type " +"from a <application>Xorg</application> session:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42405 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>VirtualBox</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42407 +msgid "" +"For more information on configuring and using " +"<application><trademark>VirtualBox</trademark></application>, refer to the " +"<link xlink:href=\"http://www.virtualbox.org\">official website</link>. For " +"FreeBSD-specific information and troubleshooting instructions, refer to the " +"<link xlink:href=\"http://wiki.FreeBSD.org/VirtualBox\">relevant page in the " +"FreeBSD wiki</link>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:42416 +msgid "<trademark>VirtualBox</trademark> USB Support" +msgstr "<trademark>VirtualBox</trademark> USB 支援" + +#. (itstool) path: sect2/para +#: book.translate.xml:42418 +msgid "" +"In order to be able to read and write to USB devices, users need to be " +"members of <systemitem class=\"groupname\">operator</systemitem>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42422 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw groupmod operator -m <replaceable>jerry</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42424 +msgid "" +"Then, add the following to <filename>/etc/devfs.rules</filename>, or create " +"this file if it does not exist yet:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:42428 +#, no-wrap +msgid "" +"[system=10]\n" +"add path 'usb/*' mode 0660 group operator" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42431 +msgid "" +"To load these new rules, add the following to <filename>/etc/rc.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:42434 +#, no-wrap +msgid "devfs_system_ruleset=\"system\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42436 +msgid "Then, restart devfs:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42438 book.translate.xml:42488 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service devfs restart</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42440 +msgid "" +"USB can now be enabled in the guest operating system. USB devices should be " +"visible in the <trademark>VirtualBox</trademark> preferences." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:42446 +msgid "" +"<trademark>VirtualBox</trademark> Host <acronym>DVD</acronym>/<acronym>CD</" +"acronym> Access" +msgstr "" +"<trademark>VirtualBox</trademark> Host <acronym>DVD</acronym>/<acronym>CD</" +"acronym> 存取" + +#. (itstool) path: sect2/para +#: book.translate.xml:42449 +msgid "" +"Access to the host <acronym>DVD</acronym>/<acronym>CD</acronym> drives from " +"guests is achieved through the sharing of the physical drives. Within " +"<trademark>VirtualBox</trademark>, this is set up from the Storage window in " +"the Settings of the virtual machine. If needed, create an empty " +"<acronym>IDE</acronym> <acronym>CD</acronym>/<acronym>DVD</acronym> device " +"first. Then choose the Host Drive from the popup menu for the virtual " +"<acronym>CD</acronym>/<acronym>DVD</acronym> drive selection. A checkbox " +"labeled <literal>Passthrough</literal> will appear. This allows the virtual " +"machine to use the hardware directly. For example, audio <acronym>CD</" +"acronym>s or the burner will only function if this option is selected." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42463 +msgid "" +"<acronym>HAL</acronym> needs to run for <application><trademark>VirtualBox</" +"trademark></application> <acronym>DVD</acronym>/<acronym>CD</acronym> " +"functions to work, so enable it in <filename>/etc/rc.conf</filename> and " +"start it if it is not already running:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:42469 +#, no-wrap +msgid "hald_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42471 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service hald start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42473 +msgid "" +"In order for users to be able to use <application><trademark>VirtualBox</" +"trademark></application> <acronym>DVD</acronym>/<acronym>CD</acronym> " +"functions, they need access to <filename>/dev/xpt0</filename>, <filename>/" +"dev/cd<replaceable>N</replaceable></filename>, and <filename>/dev/" +"pass<replaceable>N</replaceable></filename>. This is usually achieved by " +"making the user a member of <systemitem class=\"groupname\">operator</" +"systemitem>. Permissions to these devices have to be corrected by adding " +"these lines to <filename>/etc/devfs.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:42484 +#, no-wrap +msgid "" +"perm cd* 0660\n" +"perm xpt0 0660\n" +"perm pass* 0660" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:42493 +msgid "FreeBSD as a Host with <application>bhyve</application>" +msgstr "以 FreeBSD 作為主端安裝 <application>bhyve</application> " + +#. (itstool) path: sect1/para +#: book.translate.xml:42496 +msgid "" +"The <application>bhyve</application> <acronym>BSD</acronym>-licensed " +"hypervisor became part of the base system with FreeBSD 10.0-RELEASE. This " +"hypervisor supports a number of guests, including FreeBSD, OpenBSD, and many " +"<trademark class=\"registered\">Linux</trademark> distributions. Currently, " +"<application>bhyve</application> only supports a serial console and does not " +"emulate a graphical console. Virtualization offload features of newer " +"<acronym>CPU</acronym>s are used to avoid the legacy methods of translating " +"instructions and manually managing memory mappings." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42507 +msgid "" +"The <application>bhyve</application> design requires a processor that " +"supports <trademark class=\"registered\">Intel</trademark> Extended Page " +"Tables (<acronym>EPT</acronym>) or <trademark class=\"registered\">AMD</" +"trademark> Rapid Virtualization Indexing (<acronym>RVI</acronym>) or Nested " +"Page Tables (<acronym>NPT</acronym>). Hosting <trademark class=\"registered" +"\">Linux</trademark> guests or FreeBSD guests with more than one " +"<acronym>vCPU</acronym> requires <acronym>VMX</acronym> unrestricted mode " +"support (<acronym>UG</acronym>). Most newer processors, specifically the " +"<trademark class=\"registered\">Intel</trademark> <trademark>Core</" +"trademark> i3/i5/i7 and <trademark class=\"registered\">Intel</" +"trademark> <trademark>Xeon</trademark> E3/E5/E7, support these features. " +"<acronym>UG</acronym> support was introduced with Intel's Westmere micro-" +"architecture. For a complete list of <trademark class=\"registered\">Intel</" +"trademark> processors that support <acronym>EPT</acronym>, refer to <link " +"xlink:href=\"http://ark.intel.com/search/advanced?s=t&" +"ExtendedPageTables=true\"/>. <acronym>RVI</acronym> is found on the third " +"generation and later of the <trademark>AMD Opteron</trademark> (Barcelona) " +"processors. The easiest way to tell if a processor supports " +"<application>bhyve</application> is to run <command>dmesg</command> or look " +"in <filename>/var/run/dmesg.boot</filename> for the <literal>POPCNT</" +"literal> processor feature flag on the <literal>Features2</literal> line for " +"<trademark class=\"registered\">AMD</trademark> processors or <literal>EPT</" +"literal> and <literal>UG</literal> on the <literal>VT-x</literal> line for " +"<trademark class=\"registered\">Intel</trademark> processors." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:42532 +msgid "Preparing the Host" +msgstr "準備主端" + +#. (itstool) path: sect2/para +#: book.translate.xml:42534 +msgid "" +"The first step to creating a virtual machine in <application>bhyve</" +"application> is configuring the host system. First, load the " +"<application>bhyve</application> kernel module:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42539 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload vmm</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42541 +msgid "" +"Then, create a <filename>tap</filename> interface for the network device in " +"the virtual machine to attach to. In order for the network device to " +"participate in the network, also create a bridge interface containing the " +"<filename>tap</filename> interface and the physical interface as members. In " +"this example, the physical interface is <replaceable>igb0</replaceable>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42549 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>tap0</replaceable> create</userinput>\n" +"<prompt>#</prompt> <userinput>sysctl net.link.tap.up_on_open=1</userinput>\n" +"net.link.tap.up_on_open: 0 -> 1\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>bridge0</replaceable> create</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>bridge0</replaceable> addm <replaceable>igb0</replaceable> addm <replaceable>tap0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>bridge0</replaceable> up</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:42558 +msgid "Creating a FreeBSD Guest" +msgstr "建立 FreeBSD 客端" + +#. (itstool) path: sect2/para +#: book.translate.xml:42560 +msgid "" +"Create a file to use as the virtual disk for the guest machine. Specify the " +"size and name of the virtual disk:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42564 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>truncate -s <replaceable>16G</replaceable> <replaceable>guest.img</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42566 +msgid "Download an installation image of FreeBSD to install:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42568 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>fetch <replaceable>ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.2/FreeBSD-10.2-RELEASE-amd64-bootonly.iso</replaceable></userinput>\n" +"FreeBSD-10.2-RELEASE-amd64-bootonly.iso 100% of 230 MB 570 kBps 06m17s" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42571 +msgid "" +"FreeBSD comes with an example script for running a virtual machine in " +"<application>bhyve</application>. The script will start the virtual machine " +"and run it in a loop, so it will automatically restart if it crashes. The " +"script takes a number of options to control the configuration of the " +"machine: <option>-c</option> controls the number of virtual CPUs, <option>-" +"m</option> limits the amount of memory available to the guest, <option>-t</" +"option> defines which <filename>tap</filename> device to use, <option>-d</" +"option> indicates which disk image to use, <option>-i</option> tells " +"<application>bhyve</application> to boot from the <acronym>CD</acronym> " +"image instead of the disk, and <option>-I</option> defines which " +"<acronym>CD</acronym> image to use. The last parameter is the name of the " +"virtual machine, used to track the running machines. This example starts the " +"virtual machine in installation mode:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42588 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sh /usr/share/examples/bhyve/vmrun.sh -c <replaceable>4</replaceable> -m <replaceable>1024M</replaceable> -t <replaceable>tap0</replaceable> -d <replaceable>guest.img</replaceable> -i -I <replaceable>FreeBSD-10.0-RELEASE-amd64-bootonly.iso</replaceable> <replaceable>guestname</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42590 +msgid "" +"The virtual machine will boot and start the installer. After installing a " +"system in the virtual machine, when the system asks about dropping in to a " +"shell at the end of the installation, choose <guibutton>Yes</guibutton>. A " +"small change needs to be made to make the system start with a serial " +"console. Edit <filename>/etc/ttys</filename> and replace the existing " +"<literal>ttyu0</literal> line with:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:42598 +#, no-wrap +msgid "ttyu0 \"/usr/libexec/getty 3wire\" xterm on secure" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:42600 +msgid "" +"Beginning with FreeBSD 9.3-RELEASE and 10.1-RELEASE the console is " +"configured automatically." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42604 +msgid "" +"Reboot the virtual machine. While rebooting the virtual machine causes " +"<application>bhyve</application> to exit, the <filename>vmrun.sh</filename> " +"script runs <command>bhyve</command> in a loop and will automatically " +"restart it. When this happens, choose the reboot option from the boot loader " +"menu in order to escape the loop. Now the guest can be started from the " +"virtual disk:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42612 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sh /usr/share/examples/bhyve/vmrun.sh -c <replaceable>4</replaceable> -m <replaceable>1024M</replaceable> -t <replaceable>tap0</replaceable> -d <replaceable>guest.img</replaceable> <replaceable>guestname</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:42616 +msgid "Creating a <trademark class=\"registered\">Linux</trademark> Guest" +msgstr "建立 <trademark class=\"registered\">Linux</trademark> 客端" + +#. (itstool) path: sect2/para +#: book.translate.xml:42618 +msgid "" +"In order to boot operating systems other than FreeBSD, the <package>sysutils/" +"grub2-bhyve</package> port must be first installed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42622 +msgid "Next, create a file to use as the virtual disk for the guest machine:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42625 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>truncate -s <replaceable>16G</replaceable> <replaceable>linux.img</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42627 +msgid "" +"Starting a virtual machine with <application>bhyve</application> is a two " +"step process. First a kernel must be loaded, then the guest can be started. " +"The <trademark class=\"registered\">Linux</trademark> kernel is loaded with " +"<package>sysutils/grub2-bhyve</package>. Create a <filename>device.map</" +"filename> that <application>grub</application> will use to map the virtual " +"devices to the files on the host system:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:42636 +#, no-wrap +msgid "" +"(hd0) ./linux.img\n" +"(cd0) ./somelinux.iso" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42639 +msgid "" +"Use <package>sysutils/grub2-bhyve</package> to load the <trademark class=" +"\"registered\">Linux</trademark> kernel from the <acronym>ISO</acronym> " +"image:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42642 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>grub-bhyve -m device.map -r cd0 -M <replaceable>1024M</replaceable> <replaceable>linuxguest</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42644 +msgid "" +"This will start grub. If the installation <acronym>CD</acronym> contains a " +"<filename>grub.cfg</filename>, a menu will be displayed. If not, the " +"<literal>vmlinuz</literal> and <literal>initrd</literal> files must be " +"located and loaded manually:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42651 +#, no-wrap +msgid "" +"grub> <userinput>ls</userinput>\n" +"(hd0) (cd0) (cd0,msdos1) (host)\n" +"grub> <userinput>ls (cd0)/isolinux</userinput>\n" +"boot.cat boot.msg grub.conf initrd.img isolinux.bin isolinux.cfg memtest\n" +"splash.jpg TRANS.TBL vesamenu.c32 vmlinuz\n" +"grub> <userinput>linux (cd0)/isolinux/vmlinuz</userinput>\n" +"grub> <userinput>initrd (cd0)/isolinux/initrd.img</userinput>\n" +"grub> <userinput>boot</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42660 +msgid "" +"Now that the <trademark class=\"registered\">Linux</trademark> kernel is " +"loaded, the guest can be started:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42663 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,<replaceable>tap1</replaceable> -s 3:0,virtio-blk,<replaceable>./linux.img</replaceable> \\\n" +" -s 4:0,ahci-cd,<replaceable>./somelinux.iso</replaceable> -l com1,stdio -c <replaceable>4</replaceable> -m <replaceable>1024M</replaceable> <replaceable>linuxguest</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42666 +msgid "" +"The system will boot and start the installer. After installing a system in " +"the virtual machine, reboot the virtual machine. This will cause " +"<application>bhyve</application> to exit. The instance of the virtual " +"machine needs to be destroyed before it can be started again:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42672 book.translate.xml:42700 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>bhyvectl --destroy --vm=<replaceable>linuxguest</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42674 +msgid "" +"Now the guest can be started directly from the virtual disk. Load the kernel:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42677 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>grub-bhyve -m device.map -r hd0,msdos1 -M <replaceable>1024M</replaceable> <replaceable>linuxguest</replaceable></userinput>\n" +"grub> <userinput>ls</userinput>\n" +"(hd0) (hd0,msdos2) (hd0,msdos1) (cd0) (cd0,msdos1) (host)\n" +"(lvm/VolGroup-lv_swap) (lvm/VolGroup-lv_root)\n" +"grub> <userinput>ls (hd0,msdos1)/</userinput>\n" +"lost+found/ grub/ efi/ System.map-2.6.32-431.el6.x86_64 config-2.6.32-431.el6.x\n" +"86_64 symvers-2.6.32-431.el6.x86_64.gz vmlinuz-2.6.32-431.el6.x86_64\n" +"initramfs-2.6.32-431.el6.x86_64.img\n" +"grub> <userinput>linux (hd0,msdos1)/vmlinuz-2.6.32-431.el6.x86_64 root=/dev/mapper/VolGroup-lv_root</userinput>\n" +"grub> <userinput>initrd (hd0,msdos1)/initramfs-2.6.32-431.el6.x86_64.img</userinput>\n" +"grub> <userinput>boot</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42689 +msgid "Boot the virtual machine:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42691 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,<replaceable>tap1</replaceable> \\\n" +" -s 3:0,virtio-blk,<replaceable>./linux.img</replaceable> -l com1,stdio -c <replaceable>4</replaceable> -m <replaceable>1024M</replaceable> <replaceable>linuxguest</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42694 +msgid "" +"<trademark class=\"registered\">Linux</trademark> will now boot in the " +"virtual machine and eventually present you with the login prompt. Login and " +"use the virtual machine. When you are finished, reboot the virtual machine " +"to exit <application>bhyve</application>. Destroy the virtual machine " +"instance:" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:42704 +msgid "" +"Using <acronym>ZFS</acronym> with <application>bhyve</application> Guests" +msgstr "在 <application>bhyve</application> Guests 使用 <acronym>ZFS</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:42707 +msgid "" +"If <acronym>ZFS</acronym> is available on the host machine, using " +"<acronym>ZFS</acronym> volumes instead of disk image files can provide " +"significant performance benefits for the guest <acronym>VMs</acronym>. A " +"<acronym>ZFS</acronym> volume can be created by:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42713 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>zfs create -V<replaceable>16G</replaceable> -o volmode=dev <replaceable>zroot/linuxdisk0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42715 +msgid "" +"When starting the <acronym>VM</acronym>, specify the <acronym>ZFS</acronym> " +"volume as the disk drive:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42718 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,<replaceable>tap1</replaceable> -s3:0,virtio-blk,<replaceable>/dev/zvol/zroot/linuxdisk0</replaceable> \\\n" +" -l com1,<replaceable>stdio</replaceable> -c <replaceable>4</replaceable> -m <replaceable>1024M</replaceable> <replaceable>linuxguest</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:42723 +msgid "Virtual Machine Consoles" +msgstr "虛擬機器 Console" + +#. (itstool) path: sect2/para +#: book.translate.xml:42725 +msgid "" +"It is advantageous to wrap the <application>bhyve</application> console in a " +"session management tool such as <package>sysutils/tmux</package> or " +"<package>sysutils/screen</package> in order to detach and reattach to the " +"console. It is also possible to have the console of <application>bhyve</" +"application> be a null modem device that can be accessed with <command>cu</" +"command>. To do this, load the <filename>nmdm</filename> kernel module and " +"replace <option>-l com1,stdio</option> with <option>-l com1,/dev/nmdm0A</" +"option>. The <filename>/dev/nmdm</filename> devices are created " +"automatically as needed, where each is a pair, corresponding to the two ends " +"of the null modem cable (<filename>/dev/nmdm0A</filename> and <filename>/dev/" +"nmdm0B</filename>). See <citerefentry><refentrytitle>nmdm</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42742 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>kldload nmdm</userinput>\n" +"<prompt>#</prompt> <userinput>bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,<replaceable>tap1</replaceable> -s 3:0,virtio-blk,<replaceable>./linux.img</replaceable> \\\n" +" -l com1,<replaceable>/dev/nmdm0A</replaceable> -c <replaceable>4</replaceable> -m <replaceable>1024M</replaceable> <replaceable>linuxguest</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>cu -l <replaceable>/dev/nmdm0B</replaceable></userinput>\n" +"Connected\n" +"\n" +"Ubuntu 13.10 handbook ttyS0\n" +"\n" +"handbook login:" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:42754 +msgid "Managing Virtual Machines" +msgstr "管理虛擬機器" + +#. (itstool) path: sect2/para +#: book.translate.xml:42756 +msgid "" +"A device node is created in <filename role=\"directory\">/dev/vmm</filename> " +"for each virtual machine. This allows the administrator to easily see a list " +"of the running virtual machines:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42760 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ls -al /dev/vmm</userinput>\n" +"total 1\n" +"dr-xr-xr-x 2 root wheel 512 Mar 17 12:19 ./\n" +"dr-xr-xr-x 14 root wheel 512 Mar 17 06:38 ../\n" +"crw------- 1 root wheel 0x1a2 Mar 17 12:20 guestname\n" +"crw------- 1 root wheel 0x19f Mar 17 12:19 linuxguest\n" +"crw------- 1 root wheel 0x1a1 Mar 17 12:19 otherguest" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:42768 +msgid "" +"A specified virtual machine can be destroyed using <command>bhyvectl</" +"command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:42771 +#, no-wrap +msgid "<prompt>#</prompt> bhyvectl --destroy --vm=<replaceable>guestname</replaceable>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:42775 +msgid "Persistent Configuration" +msgstr "Persistent 設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:42777 +msgid "" +"In order to configure the system to start <application>bhyve</application> " +"guests at boot time, the following configurations must be made in the " +"specified files:" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:42784 +msgid "<filename>/etc/sysctl.conf</filename>" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:42786 +#, no-wrap +msgid "net.link.tap.up_on_open=1" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:42790 +msgid "<filename>/boot/loader.conf</filename>" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:42792 +#, no-wrap +msgid "" +"vmm_load=\"YES\"\n" +"nmdm_load=\"YES\"\n" +"if_bridge_load=\"YES\"\n" +"if_tap_load=\"YES\"" +msgstr "" + +#. (itstool) path: step/title +#: book.translate.xml:42799 +msgid "<filename>/etc/rc.conf</filename>" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:42801 +#, no-wrap +msgid "" +"cloned_interfaces=\"<replaceable>bridge0</replaceable> <replaceable>tap0</replaceable>\"\n" +"ifconfig_bridge0=\"addm <replaceable>igb0</replaceable> addm <replaceable>tap0</replaceable>\"" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:42829 +msgid "" +"Localization - <acronym>i18n</acronym>/<acronym>L10n</acronym> Usage and " +"Setup" +msgstr "在地化 - <acronym>i18n</acronym>/<acronym>L10n</acronym> 使用與安裝" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:42834 +msgid "" +"<personname><firstname>Andrey</firstname><surname>Chernov</surname></" +"personname><contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:42838 +msgid "" +"<personname><firstname>Michael C.</firstname><surname>Wu</surname></" +"personname><contrib>Rewritten by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42848 +msgid "" +"FreeBSD is a distributed project with users and contributors located all " +"over the world. As such, FreeBSD supports localization into many languages, " +"allowing users to view, input, or process data in non-English languages. One " +"can choose from most of the major languages, including, but not limited to: " +"Chinese, German, Japanese, Korean, French, Russian, and Vietnamese." +msgstr "" +"FreeBSD 計劃的使用者及貢獻者分佈在世界各地,也因此 FreeBSD 支援多語系,讓使用" +"者可以使用非英文語言來檢視、輸入或處理資料。使用者可以選擇大多數主要語言,包" +"含但不限於以下語言:中文、德文、日文、韓文、法文、俄文及越南文。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:42856 +msgid "<primary>internationalization</primary> <see>localization</see>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:42860 +msgid "<primary>localization</primary>" +msgstr "<primary>在地化</primary>" + +#. (itstool) path: sect1/para +#: book.translate.xml:42862 +msgid "" +"The term internationalization has been shortened to <acronym>i18n</acronym>, " +"which represents the number of letters between the first and the last " +"letters of <literal>internationalization</literal>. <acronym>L10n</acronym> " +"uses the same naming scheme, but from <literal>localization</literal>. The " +"<acronym>i18n</acronym>/<acronym>L10n</acronym> methods, protocols, and " +"applications allow users to use languages of their choice." +msgstr "" +"<literal>國際化</literal> (Internationalization) 一詞可以縮寫為 " +"<acronym>i18n</acronym>,即 第一個字母到最後一個字母間的字母數量。" +"<acronym>L10n</acronym> 也使用同樣的命名規則,但源自 <literal>在地化</" +"literal> (Localization)。 <acronym>i18n</acronym>/<acronym>L10n</acronym> 的" +"方法、協定及應用程式讓使用者可以自己選擇使用的語言。" + +#. (itstool) path: sect1/para +#: book.translate.xml:42872 +msgid "" +"This chapter discusses the internationalization and localization features of " +"FreeBSD. After reading this chapter, you will know:" +msgstr "本章會討論 FreeBSD 的國際化及在地化功能。在閱讀本章之後,您會了解:" + +#. (itstool) path: listitem/para +#: book.translate.xml:42878 +msgid "How locale names are constructed." +msgstr "語系名稱如何組成。" + +#. (itstool) path: listitem/para +#: book.translate.xml:42882 +msgid "How to set the locale for a login shell." +msgstr "如何設定登入 Shell 的語系。" + +#. (itstool) path: listitem/para +#: book.translate.xml:42886 +msgid "How to configure the console for non-English languages." +msgstr "如何設定 Console 給非英文語言的使用者。" + +#. (itstool) path: listitem/para +#: book.translate.xml:42891 +msgid "" +"How to configure <application>Xorg</application> for different languages." +msgstr "如果設定 <application>Xorg</application> 使用不同語言。" + +#. (itstool) path: listitem/para +#: book.translate.xml:42896 +msgid "How to find <acronym>i18n</acronym>-compliant applications." +msgstr "如何找到支援 <acronym>i18n</acronym> 的應用程式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:42901 +msgid "Where to find more information for configuring specific languages." +msgstr "那裡可以找到更多設定特定語言的資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:42909 +msgid "" +"Know how to <link linkend=\"ports\">install additional third-party " +"applications</link>." +msgstr "了解如何 <link linkend=\"ports\">安裝其他第三方應用程式</link>。" + +#. (itstool) path: sect1/title +#: book.translate.xml:42916 +msgid "Using Localization" +msgstr "使用語系" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:42918 book.translate.xml:43035 +msgid "<primary>locale</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42920 +msgid "" +"Localization settings are based on three components: the language code, " +"country code, and encoding. Locale names are constructed from these parts as " +"follows:" +msgstr "" +"語系設定值由三個元件所組成:語言代號、城市代號及編碼。語系名稱組成的方式如" +"下:" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:42924 +#, no-wrap +msgid "<replaceable>LanguageCode</replaceable>_<replaceable>CountryCode</replaceable>.<replaceable>Encoding</replaceable>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:42926 +msgid "<primary>language codes</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:42927 +msgid "<primary>country codes</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42929 +msgid "" +"The <replaceable>LanguageCode</replaceable> and <replaceable>CountryCode</" +"replaceable> are used to determine the country and the specific language " +"variation. <xref linkend=\"locale-lang-country\"/> provides some examples of " +"<replaceable>LanguageCode</replaceable>_<replaceable>CountryCode</" +"replaceable>:" +msgstr "" +"<replaceable>LanguageCode</replaceable> 與 <replaceable>CountryCode</" +"replaceable> 用來表示城市及特定語言。<xref linkend=\"locale-lang-country\"/> " +"提供了幾個 <replaceable>LanguageCode</replaceable>_<replaceable>CountryCode</" +"replaceable> 的範例:" + +#. (itstool) path: table/title +#: book.translate.xml:42935 +msgid "Common Language and Country Codes" +msgstr "常用語言及城市代碼" + +#. (itstool) path: row/entry +#: book.translate.xml:42940 +msgid "LanguageCode_Country Code" +msgstr "語言代號_城市代號" + +#. (itstool) path: row/entry +#: book.translate.xml:42947 +msgid "en_US" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:42948 +msgid "English, United States" +msgstr "英文,美國" + +#. (itstool) path: row/entry +#: book.translate.xml:42952 +msgid "ru_RU" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:42953 +msgid "Russian, Russia" +msgstr "俄文,俄國" + +#. (itstool) path: row/entry +#: book.translate.xml:42957 +msgid "zh_TW" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:42958 +msgid "Traditional Chinese, Taiwan" +msgstr "繁體中文,台灣" + +#. (itstool) path: sect1/para +#: book.translate.xml:42964 +msgid "A complete listing of available locales can be found by typing:" +msgstr "完整可用的語系清單可用以下指令查詢:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:42967 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>locale -a | more</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42969 +msgid "To determine the current locale setting:" +msgstr "查詢目前使用的語系設定:" + +#. (itstool) path: sect1/screen +#: book.translate.xml:42971 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>locale</userinput>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:42973 +msgid "<primary>encodings</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:42974 +msgid "<primary>ASCII</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:42976 +msgid "" +"Language specific character sets, such as ISO8859-1, ISO8859-15, KOI8-R, and " +"CP437, are described in <citerefentry><refentrytitle>multibyte</" +"refentrytitle><manvolnum>3</manvolnum></citerefentry>. The active list of " +"character sets can be found at the <link xlink:href=\"http://www.iana.org/" +"assignments/character-sets\">IANA Registry</link>." +msgstr "" +"語言特定的字元集如 ISO8859-1, ISO8859-15, KOI8-R 及 CP437 在 " +"<citerefentry><refentrytitle>multibyte</refentrytitle><manvolnum>3</" +"manvolnum></citerefentry> 有詳細說明。可用的字元集可在 <link xlink:href=" +"\"http://www.iana.org/assignments/character-sets\">IANA Registry</link> 查" +"詢。" + +#. (itstool) path: sect1/para +#: book.translate.xml:42982 +msgid "" +"Some languages, such as Chinese or Japanese, cannot be represented using " +"<acronym>ASCII</acronym> characters and require an extended language " +"encoding using either wide or multibyte characters. Examples of wide or " +"multibyte encodings include EUC and Big5. Older applications may mistake " +"these encodings for control characters while newer applications usually " +"recognize these characters. Depending on the implementation, users may be " +"required to compile an application with wide or multibyte character support, " +"or to configure it correctly." +msgstr "" +"某些語言,如中文或日文,無法使用 <acronym>ASCII</acronym> 字元表示,會需要使" +"用寬 (Wide) 字元或多位元組 (Multibyte) 字元來擴充的語言編碼。EUC 與 Big5 即是" +"使用寬子元或多位元組字元的例子。舊的應用程式會誤判這些字元為控制字元,新的應" +"用程式則通常可以辨識這些字元,依實作的需要,使用者可能需要開啟寬字元或多位元" +"組字元支援或者使用正確的字元設定來編譯應用程式。" + +#. (itstool) path: note/para +#: book.translate.xml:42994 +msgid "FreeBSD uses Xorg-compatible locale encodings." +msgstr "FreeBSD 使用 Xorg 相容的語系編碼。" + +#. (itstool) path: sect1/para +#: book.translate.xml:42997 +msgid "" +"The rest of this section describes the various methods for configuring the " +"locale on a FreeBSD system. The next section will discuss the considerations " +"for finding and compiling applications with <acronym>i18n</acronym> support." +msgstr "" +"本節剩餘的部份將說明各種在 FreeBSD 系統上設定語系的方法。下一節將會探討如何尋" +"找以及編譯使用 <acronym>i18n</acronym> 支援的應用程式。" + +#. (itstool) path: sect2/title +#: book.translate.xml:43003 +msgid "Setting Locale for Login Shell" +msgstr "設定登入 Shell 的語系" + +#. (itstool) path: sect2/para +#: book.translate.xml:43005 +msgid "" +"Locale settings are configured either in a user's <filename>~/.login_conf</" +"filename> or in the startup file of the user's shell: <filename>~/.profile</" +"filename>, <filename>~/.bashrc</filename>, or <filename>~/.cshrc</filename>." +msgstr "" +"語系設定可在使用者的 <filename>~/.login_conf</filename> 或使用者的 Shell 的啟" +"動檔設定:<filename>~/.profile</filename>, <filename>~/.bashrc</filename> 或 " +"<filename>~/.cshrc</filename>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:43012 +msgid "Two environment variables should be set:" +msgstr "有兩個環境變數需要設定:" + +#. (itstool) path: listitem/para +#: book.translate.xml:43017 +msgid "<envar>LANG</envar>, which sets the locale<_:indexterm-1/>" +msgstr "<envar>LANG</envar> 用來設定語系<_:indexterm-1/>" + +#. (itstool) path: listitem/indexterm +#: book.translate.xml:43022 +msgid "<primary>MIME</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:43024 +msgid "" +"<envar>MM_CHARSET</envar>, which sets the <acronym>MIME</acronym> character " +"set used by applications" +msgstr "" +"<envar>MM_CHARSET</envar> 用來設定應用程式所使用的 <acronym>MIME</acronym> 字" +"元集" + +#. (itstool) path: sect2/para +#: book.translate.xml:43030 +msgid "" +"In addition to the user's shell configuration, these variables should also " +"be set for specific application configuration and <application>Xorg</" +"application> configuration." +msgstr "" +"除了使用者的 Shell 設定外,這些變數也應針對特定應用程式設定以及 " +"<application>Xorg</application> 設定。" + +#. (itstool) path: sect2/indexterm +#. (itstool) path: sect4/indexterm +#: book.translate.xml:43036 book.translate.xml:43129 +msgid "<primary>login class</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43038 +msgid "" +"Two methods are available for making the needed variable assignments: the " +"<link linkend=\"login-class\">login class</link> method, which is the " +"recommended method, and the <link linkend=\"startup-file\">startup file</" +"link> method. The next two sections demonstrate how to use both methods." +msgstr "" +"兩種可以完成所需變數設定的方法有:<link linkend=\"login-class\">登入類別 " +"(Login class)</link> 法 (較建議) 及 <link linkend=\"startup-file\">啟動檔 " +"(Startup file) </link> 法。以下兩節將示範如何使用這兩個方法。" + +#. (itstool) path: sect3/title +#: book.translate.xml:43046 +msgid "Login Classes Method" +msgstr "登入類別 (Login Class) 法" + +#. (itstool) path: sect3/para +#: book.translate.xml:43048 +msgid "" +"This first method is the recommended method as it assigns the required " +"environment variables for locale name and <acronym>MIME</acronym> character " +"sets for every possible shell. This setup can either be performed by each " +"user or it can be configured for all users by the superuser." +msgstr "" +"第一種方式,同時也是建議使用的方法,它可以對任何可能的 Shell 設定需要的語系" +"及 MIME 字元集變數。此設定也可由每位使用者自行設定或者由超級管理者為所有使用" +"者設定。" + +#. (itstool) path: sect3/para +#: book.translate.xml:43055 +msgid "" +"This minimal example sets both variables for Latin-1 encoding in the " +"<filename>.login_conf</filename> of an individual user's home directory:" +msgstr "" +"以下精簡範例示範在一個使用者的家目錄中的 <filename>.login_conf</filename> 設" +"定 Latin-1 編碼使用的兩個環境變數:" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:43059 +#, no-wrap +msgid "" +"me:\\\n" +"\t:charset=ISO-8859-1:\\\n" +"\t:lang=de_DE.ISO8859-1:" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:43063 +msgid "" +"<primary>Traditional Chinese</primary> <secondary>BIG-5 encoding</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:43066 +msgid "" +"Here is an example of a user's <filename>~/.login_conf</filename> that sets " +"the variables for Traditional Chinese in BIG-5 encoding. More variables are " +"needed because some applications do not correctly respect locale variables " +"for Chinese, Japanese, and Korean:" +msgstr "" +"以下使用者的 <filename>~/.login_conf</filename> 範例設定了繁體中文於 BIG-5 編" +"碼使用到的環境變數。有一部份應用程式無法正確處理中文、日文及韓文的語系變數," +"因此需要額外多做一些設定:" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:43073 +#, no-wrap +msgid "" +"#Users who do not wish to use monetary units or time formats\n" +"#of Taiwan can manually change each variable\n" +"me:\\\n" +"\t:lang=zh_TW.Big5:\\\n" +"\t:setenv=LC_ALL=zh_TW.Big5,LC_COLLATE=zh_TW.Big5,LC_CTYPE=zh_TW.Big5,LC_MESSAGES=zh_TW.Big5,LC_MONETARY=zh_TW.Big5,LC_NUMERIC=zh_TW.Big5,LC_TIME=zh_TW.Big5:\\\n" +"\t:charset=big5:\\\n" +"\t:xmodifiers=\"@im=gcin\": #Set gcin as the XIM Input Server" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:43081 +msgid "" +"Alternately, the superuser can configure all users of the system for " +"localization. The following variables in <filename>/etc/login.conf</" +"filename> are used to set the locale and <acronym>MIME</acronym> character " +"set:" +msgstr "" +"或者,超級使用者可以設定所有系統使用者的語系。以下在 <filename>/etc/login." +"conf</filename> 中的變數可用來設定語系及 <acronym>MIME</acronym> 字元集:" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:43086 +#, no-wrap +msgid "" +"<replaceable>language_name</replaceable>|<replaceable>Account Type Description</replaceable>:\\\n" +"\t:charset=<replaceable>MIME_charset</replaceable>:\\\n" +"\t:lang=<replaceable>locale_name</replaceable>:\\\n" +"\t:tc=default:" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:43091 +msgid "So, the previous Latin-1 example would look like this:" +msgstr "若套用之前的 Latin-1 編碼範例如下:" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:43094 +#, no-wrap +msgid "" +"german|German Users Accounts:\\\n" +"\t:charset=ISO-8859-1:\\\n" +"\t:lang=de_DE.ISO8859-1:\\\n" +"\t:tc=default:" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:43099 +msgid "" +"See <citerefentry><refentrytitle>login.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for more details about these variables." +msgstr "" +"請參考 <citerefentry><refentrytitle>login.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> 以取得更多有關這些變數的詳細資訊。" + +#. (itstool) path: sect3/para +#: book.translate.xml:43102 +msgid "" +"Whenever <filename>/etc/login.conf</filename> is edited, remember to execute " +"the following command to update the capability database:" +msgstr "" +"每次編輯 <filename>/etc/login.conf</filename> 之後,請記得要執行以下指令來更" +"新登入類別的能力資料庫(Capability database):" + +#. (itstool) path: sect4/title +#: book.translate.xml:43109 +msgid "Utilities Which Change Login Classes" +msgstr "變更登入類別的工具" + +#. (itstool) path: sect4/indexterm +#: book.translate.xml:43111 +msgid "<primary><command>vipw</command></primary>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:43115 +msgid "" +"In addition to manually editing <filename>/etc/login.conf</filename>, " +"several utilities are available for setting the locale for newly created " +"users." +msgstr "" +"除了手動編輯 <filename>/etc/login.conf</filename> 之外,尚有需多工具可用來為" +"新建立的使用者設定語系。" + +#. (itstool) path: sect4/para +#: book.translate.xml:43120 +msgid "" +"When using <command>vipw</command> to add new users, specify the " +"<replaceable>language</replaceable> to set the locale:" +msgstr "" +"當使用 <command>vipw</command> 來新增使用者時,可指定 <replaceable>language</" +"replaceable> 來設定語系:" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:43124 +#, no-wrap +msgid "user:password:1111:11:<replaceable>language</replaceable>:0:0:User Name:/home/user:/bin/sh" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:43131 +msgid "" +"When using <command>adduser</command> to add new users, the default language " +"can be pre-configured for all new users or specified for an individual user." +msgstr "" +"當使用 <command>adduser</command> 來新增使用者時,可對所有使用者或指定的使用" +"者事先設定預設的語言。" + +#. (itstool) path: sect4/para +#: book.translate.xml:43135 +msgid "" +"If all new users use the same language, set " +"<literal>defaultclass=<replaceable>language</replaceable></literal> in " +"<filename>/etc/adduser.conf</filename>." +msgstr "" +"若所有新的使用者都使用同樣的語言,可在 <filename>/etc/adduser.conf</" +"filename> 設定 <literal>defaultclass=<replaceable>language</replaceable></" +"literal>。" + +#. (itstool) path: sect4/para +#: book.translate.xml:43139 +msgid "" +"To override this setting when creating a user, either input the required " +"locale at this prompt:" +msgstr "要在建立使用者時覆蓋預設的設定,可在出現此提示時輸入需要的語系:" + +#. (itstool) path: sect4/screen +#: book.translate.xml:43142 +#, no-wrap +msgid "<prompt>Enter login class: default []:</prompt>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:43144 +msgid "or specify the locale to set when invoking <command>adduser</command>:" +msgstr "或執行 <command>adduser</command> 時指定語系:" + +#. (itstool) path: sect4/screen +#: book.translate.xml:43147 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>adduser -class <replaceable>language</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:43153 +msgid "" +"If <command>pw</command> is used to add new users, specify the locale as " +"follows:" +msgstr "若使用 <command>pw</command> 來新增使用者,則可指定語系如下:" + +#. (itstool) path: sect4/screen +#: book.translate.xml:43156 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pw useradd <replaceable>user_name</replaceable> -L <replaceable>language</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:43161 +msgid "Shell Startup File Method" +msgstr "Shell 啟動檔 (Startup File) 法" + +#. (itstool) path: sect3/para +#: book.translate.xml:43163 +msgid "" +"This second method is not recommended as each shell that is used requires " +"manual configuration, where each shell has a different configuration file " +"and differing syntax. As an example, to set the German language for the " +"<command>sh</command> shell, these lines could be added to <filename>~/." +"profile</filename> to set the shell for that user only. These lines could " +"also be added to <filename>/etc/profile</filename> or <filename>/usr/share/" +"skel/dot.profile</filename> to set that shell for all users:" +msgstr "" +"第二種方法,較不建議使用,因每一種使用到的 Shell 都需要手動設定,而每一種 " +"Shell 都有不同的設定檔以及語法。例如將一位使用者的 <command>sh</command> " +"shell 設定為德語,需要將下列行加到 <filename>~/.profile</filename>,若要設定" +"給使用該 Shell 的所有使用者則必須將下列行加到 <filename>/etc/profile</" +"filename> 或 <filename>/usr/share/skel/dot.profile</filename>:" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:43174 +#, no-wrap +msgid "" +"<envar>LANG</envar>=de_DE.ISO8859-1; export <envar>LANG</envar>\n" +"<envar>MM_CHARSET</envar>=ISO-8859-1; export <envar>MM_CHARSET</envar>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:43177 +msgid "" +"However, the name of the configuration file and the syntax used differs for " +"the <command>csh</command> shell. These are the equivalent settings for " +"<filename>~/.csh.login</filename>, <filename>/etc/csh.login</filename>, or " +"<filename>/usr/share/skel/dot.login</filename>:" +msgstr "" +"然而,在 <command>csh</command> shell 所使用的設定檔名稱及語法不同。同樣的設" +"定需加入下列行至 <filename>~/.csh.login</filename>, <filename>/etc/csh." +"login</filename> 或 <filename>/usr/share/skel/dot.login</filename>:" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:43184 +#, no-wrap +msgid "" +"setenv <envar>LANG</envar> de_DE.ISO8859-1\n" +"setenv <envar>MM_CHARSET</envar> ISO-8859-1" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:43187 +msgid "" +"To complicate matters, the syntax needed to configure <application>Xorg</" +"application> in <filename>~/.xinitrc</filename> also depends upon the shell. " +"The first example is for the <command>sh</command> shell and the second is " +"for the <command>csh</command> shell:" +msgstr "" +"更複雜一點的情況,<application>Xorg</application> 的 <filename>~/.xinitrc</" +"filename> 語系設定會依使用的 Shell 而有所不同。第一個例子是針對 <command>sh</" +"command> shell 而第二個則是針對 <command>csh</command> shell:" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:43194 +#, no-wrap +msgid "<envar>LANG</envar>=de_DE.ISO8859-1; export <envar>LANG</envar>" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:43196 +#, no-wrap +msgid "setenv <envar>LANG</envar> de_DE.ISO8859-1" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:43201 +msgid "Console Setup" +msgstr "Console 設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:43203 +msgid "" +"Several localized fonts are available for the console. To see a listing of " +"available fonts, type <command>ls /usr/share/syscons/fonts</command>. To " +"configure the console font, specify the <replaceable>font_name</" +"replaceable>, without the <filename>.fnt</filename> suffix, in <filename>/" +"etc/rc.conf</filename>:" +msgstr "" +"已有許多語系的字型可在 Console 使用,要查看可用的字型清單,可輸入 " +"<command>ls /usr/share/syscons/fonts</command>。要設定 Console 的字型,可在 " +"<filename>/etc/rc.conf</filename> 指定去掉 <filename>.fnt</filename> 字尾的字" +"型名稱 <replaceable>font_name</replaceable>:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:43211 +#, no-wrap +msgid "" +"font8x16=<replaceable>font_name</replaceable>\n" +"font8x14=<replaceable>font_name</replaceable>\n" +"font8x8=<replaceable>font_name</replaceable>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43215 +msgid "<primary>keymap</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43216 +msgid "<primary>screenmap</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43217 +msgid "" +"The keymap and screenmap can be set by adding the following to <filename>/" +"etc/rc.conf</filename>:" +msgstr "" +"鍵盤對應表 (Keymap) 及螢幕對應表 (Screenmap) 用可加入下行到 <filename>/etc/" +"rc.conf</filename> 來設定:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:43220 +#, no-wrap +msgid "" +"scrnmap=<replaceable>screenmap_name</replaceable>\n" +"keymap=<replaceable>keymap_name</replaceable>\n" +"keychange=\"<replaceable>fkey_number sequence</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43224 +msgid "" +"To see the list of available screenmaps, type <command>ls /usr/share/syscons/" +"scrnmaps</command>. Do not include the <filename>.scm</filename> suffix when " +"specifying <replaceable>screenmap_name</replaceable>. A screenmap with a " +"corresponding mapped font is usually needed as a workaround for expanding " +"bit 8 to bit 9 on a VGA adapter's font character matrix so that letters are " +"moved out of the pseudographics area if the screen font uses a bit 8 column." +msgstr "" +"要查看可用的螢幕對應表,可輸入 <command>ls /usr/share/syscons/scrnmaps</" +"command>。在設定螢幕對應表 <replaceable>screenmap_name</replaceable> 時請去" +"掉 <filename>.scm</filename> 字尾。在 VGA Adapter 的字型字元矩陣擴充位元 8 到" +"位元 9 時會需要使用螢幕對應表與相關的字型對應來解決,因此若螢幕字型使用位元 " +"8 的欄位,字母會移出虛擬繪圖區 (Pseudographics area)。" + +#. (itstool) path: sect2/para +#: book.translate.xml:43233 +msgid "" +"To see the list of available keymaps, type <command>ls /usr/share/syscons/" +"keymaps</command>. When specifying the <replaceable>keymap_name</" +"replaceable>, do not include the <filename>.kbd</filename> suffix. To test " +"keymaps without rebooting, use <citerefentry><refentrytitle>kbdmap</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>." +msgstr "" +"要查看可用的鍵盤對應表,可輸入 <command>ls /usr/share/syscons/keymaps</" +"command>。在設定鍵盤對應表 <replaceable>keymap_name</replaceable> 時請去掉 " +"<filename>.kbd</filename> 字尾。若要不重開機測試鍵盤對應用可使用 " +"<citerefentry><refentrytitle>kbdmap</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:43240 +msgid "" +"The <literal>keychange</literal> entry is usually needed to program function " +"keys to match the selected terminal type because function key sequences " +"cannot be defined in the keymap." +msgstr "" +"<literal>keychange</literal> 項目用在當功能鍵序列無法定義在鍵盤對應表時,可設" +"定對應選擇終對機類型的功能鍵。" + +#. (itstool) path: sect2/para +#: book.translate.xml:43245 +msgid "" +"Next, set the correct console terminal type in <filename>/etc/ttys</" +"filename> for all virtual terminal entries. <xref linkend=\"locale-charset\"/" +"> summarizes the available terminal types.:" +msgstr "" +"接下來,在 <filename>/etc/ttys</filename> 為所有虛擬終端機項目設定正確的 " +"Console 終端機類型。<xref linkend=\"locale-charset\"/> 摘要了可用的終端機類" +"型:" + +#. (itstool) path: table/title +#: book.translate.xml:43251 +msgid "Defined Terminal Types for Character Sets" +msgstr "已定義供特定字元集使用的終端機類型" + +#. (itstool) path: row/entry +#: book.translate.xml:43256 +msgid "Character Set" +msgstr "字元集" + +#. (itstool) path: row/entry +#: book.translate.xml:43257 +msgid "Terminal Type" +msgstr "終端機類型" + +#. (itstool) path: row/entry +#: book.translate.xml:43263 +msgid "ISO8859-1 or ISO8859-15" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43264 +msgid "<literal>cons25l1</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43268 +msgid "ISO8859-2" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43269 +msgid "<literal>cons25l2</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43273 +msgid "ISO8859-7" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43274 +msgid "<literal>cons25l7</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43278 +msgid "KOI8-R" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43279 +msgid "<literal>cons25r</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43283 +msgid "KOI8-U" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43284 +msgid "<literal>cons25u</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43288 +msgid "CP437 (VGA default)" +msgstr "CP437 (VGA 預設值)" + +#. (itstool) path: row/entry +#: book.translate.xml:43289 +msgid "<literal>cons25</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43293 +msgid "US-ASCII" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43294 +msgid "<literal>cons25w</literal>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43300 +msgid "<primary><application>moused</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43304 +msgid "" +"For languages with wide or multibyte characters, install a console for that " +"language from the FreeBSD Ports Collection. The available ports are " +"summarized in <xref linkend=\"locale-console\"/>. Once installed, refer to " +"the port's <filename>pkg-message</filename> or man pages for configuration " +"and usage instructions." +msgstr "" +"對於使用寬字元或多位元組字元的語言,需從 Ports 套件集安裝支援該語言的 " +"Console。 可用的 Ports 摘要在 <xref linkend=\"locale-console\"/>。安裝完成之" +"後,請參考 Port 的 <filename>pkg-message</filename> 或操作手冊來取得設定及使" +"用說明。" + +#. (itstool) path: table/title +#: book.translate.xml:43311 +msgid "Available Console from Ports Collection" +msgstr "Ports 套件集中可用的 Console" + +#. (itstool) path: row/entry +#: book.translate.xml:43316 book.translate.xml:43395 +msgid "Language" +msgstr "語言" + +#. (itstool) path: row/entry +#: book.translate.xml:43317 +msgid "Port Location" +msgstr "Port 位置" + +#. (itstool) path: row/entry +#: book.translate.xml:43323 +msgid "Traditional Chinese (BIG-5)" +msgstr "繁體中文 (BIG-5)" + +#. (itstool) path: row/entry +#: book.translate.xml:43324 +msgid "<package>chinese/big5con</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43328 book.translate.xml:43333 +msgid "Chinese/Japanese/Korean" +msgstr "中文/日文/韓文" + +#. (itstool) path: row/entry +#: book.translate.xml:43329 +msgid "<package>chinese/cce</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43334 +msgid "<package>chinese/zhcon</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43338 book.translate.xml:43343 book.translate.xml:43348 +#: book.translate.xml:43438 book.translate.xml:43443 book.translate.xml:43448 +#: book.translate.xml:43453 book.translate.xml:43458 book.translate.xml:43463 +#: book.translate.xml:43468 book.translate.xml:43473 book.translate.xml:43478 +#: book.translate.xml:43483 book.translate.xml:43488 book.translate.xml:43493 +#: book.translate.xml:43498 book.translate.xml:43503 book.translate.xml:43508 +#: book.translate.xml:43513 book.translate.xml:43518 book.translate.xml:43523 +msgid "Japanese" +msgstr "日文" + +#. (itstool) path: row/entry +#: book.translate.xml:43339 +msgid "<package>chinese/kon2</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43344 +msgid "<package>japanese/kon2-14dot</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43349 +msgid "<package>japanese/kon2-16dot</package>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43355 +msgid "" +"If <application>moused</application> is enabled in <filename>/etc/rc.conf</" +"filename>, additional configuration may be required. By default, the mouse " +"cursor of the <citerefentry><refentrytitle>syscons</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver occupies the " +"<literal>0xd0</literal>-<literal>0xd3</literal> range in the character set. " +"If the language uses this range, move the cursor's range by adding the " +"following line to <filename>/etc/rc.conf</filename>:" +msgstr "" +"若在 <filename>/etc/rc.conf</filename> 有開啟 <application>moused</" +"application>,可能會需要額外的設定。預設 " +"<citerefentry><refentrytitle>syscons</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> 驅動程式的滑鼠游標會佔用字元集 <literal>0xd0</" +"literal>-<literal>0xd3</literal> 的範圍,若語言有使用到此範圍,可加入以下行" +"到 <filename>/etc/rc.conf</filename> 來移動游標的範圍:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:43364 +#, no-wrap +msgid "mousechar_start=3" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:43368 +msgid "Xorg Setup" +msgstr "Xorg 設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:43370 +msgid "" +"<xref linkend=\"x11\"/> describes how to install and configure " +"<application>Xorg</application>. When configuring <application>Xorg</" +"application> for localization, additional fonts and input methods are " +"available from the FreeBSD Ports Collection. Application specific " +"<acronym>i18n</acronym> settings such as fonts and menus can be tuned in " +"<filename>~/.Xresources</filename> and should allow users to view their " +"selected language in graphical application menus." +msgstr "" +"<xref linkend=\"x11\"/> 會說明如何安裝並設定 <application>Xorg</" +"application>。當要設定 <application>Xorg</application> 在地化時,可從 " +"FreeBSD Ports 套件集中取得其他可用的字型及輸入法。應用程式特定的 " +"<acronym>i18n</acronym> 設定像是字型與選單,可以在 <filename>~/.Xresources</" +"filename> 中調校且可允許使用者在圖型化應用程式選單檢視其所選擇的語言。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43380 +msgid "<primary>X Input Method (XIM)</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43382 +msgid "" +"The X Input Method (<acronym>XIM</acronym>) protocol is an " +"<application>Xorg</application> standard for inputting non-English " +"characters. <xref linkend=\"locale-xim\"/> summarizes the input method " +"applications which are available in the FreeBSD Ports Collection. Additional " +"Fcitx and Uim applications are also available." +msgstr "" +"X 輸入法 (X Input Method, <acronym>XIM</acronym>) 協定是 <application>Xorg</" +"application> 針對輸入非英語字元的標準。<xref linkend=\"locale-xim\"/> 摘要了" +"在 FreeBSD 套件集中可用的輸入法應用程式。也可使用其他如 Fcitx 及 Uim 應用程" +"式。" + +#. (itstool) path: table/title +#: book.translate.xml:43390 +msgid "Available Input Methods" +msgstr "可用的輸入法" + +#. (itstool) path: row/entry +#: book.translate.xml:43396 +msgid "Input Method" +msgstr "輸入法" + +#. (itstool) path: row/entry +#: book.translate.xml:43403 book.translate.xml:43408 book.translate.xml:43413 +#: book.translate.xml:43418 book.translate.xml:43423 book.translate.xml:43428 +#: book.translate.xml:43433 +msgid "Chinese" +msgstr "中文" + +#. (itstool) path: row/entry +#: book.translate.xml:43404 +msgid "<package>chinese/gcin</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43409 +msgid "<package>chinese/ibus-chewing</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43414 +msgid "<package>chinese/ibus-pinyin</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43419 +msgid "<package>chinese/oxim</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43424 +msgid "<package>chinese/scim-fcitx</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43429 +msgid "<package>chinese/scim-pinyin</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43434 +msgid "<package>chinese/scim-tables</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43439 +msgid "<package>japanese/ibus-anthy</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43444 +msgid "<package>japanese/ibus-mozc</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43449 +msgid "<package>japanese/ibus-skk</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43454 +msgid "<package>japanese/im-ja</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43459 +msgid "<package>japanese/kinput2</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43464 +msgid "<package>japanese/scim-anthy</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43469 +msgid "<package>japanese/scim-canna</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43474 +msgid "<package>japanese/scim-honoka</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43479 +msgid "<package>japanese/scim-honoka-plugin-romkan</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43484 +msgid "<package>japanese/scim-honoka-plugin-wnn</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43489 +msgid "<package>japanese/scim-prime</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43494 +msgid "<package>japanese/scim-skk</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43499 +msgid "<package>japanese/scim-tables</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43504 +msgid "<package>japanese/scim-tomoe</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43509 +msgid "<package>japanese/scim-uim</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43514 +msgid "<package>japanese/skkinput</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43519 +msgid "<package>japanese/skkinput3</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43524 +msgid "<package>japanese/uim-anthy</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43528 book.translate.xml:43533 book.translate.xml:43538 +#: book.translate.xml:43543 book.translate.xml:43548 +msgid "Korean" +msgstr "韓文" + +#. (itstool) path: row/entry +#: book.translate.xml:43529 +msgid "<package>korean/ibus-hangul</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43534 +msgid "<package>korean/imhangul</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43539 +msgid "<package>korean/nabi</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43544 +msgid "<package>korean/scim-hangul</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43549 +msgid "<package>korean/scim-tables</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43553 book.translate.xml:43558 +msgid "Vietnamese" +msgstr "越南文" + +#. (itstool) path: row/entry +#: book.translate.xml:43554 +msgid "<package>vietnamese/xvnkb</package>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:43559 +msgid "<package>vietnamese/x-unikey</package>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:43603 +msgid "Finding <acronym>i18n</acronym> Applications" +msgstr "尋找 <acronym>i18n</acronym> 應用程式" + +#. (itstool) path: sect1/para +#: book.translate.xml:43605 +msgid "" +"<acronym>i18n</acronym> applications are programmed using <acronym>i18n</" +"acronym> kits under libraries. These allow developers to write a simple file " +"and translate displayed menus and texts to each language." +msgstr "" +"<acronym>i18n</acronym> 應用程式會使用 <acronym>i18n</acronym> 工具包做為程式" +"庫開發。這讓開發人員可以寫一個簡單的檔案並翻譯顯示的選單及文字至各種語言。" + +#. (itstool) path: sect1/para +#: book.translate.xml:43610 +msgid "" +"The <link xlink:href=\"@@URL_RELPREFIX@@/ports/index.html\">FreeBSD Ports " +"Collection</link> contains many applications with built-in support for wide " +"or multibyte characters for several languages. Such applications include " +"<literal>i18n</literal> in their names for easy identification. However, " +"they do not always support the language needed." +msgstr "" +"<link xlink:href=\"@@URL_RELPREFIX@@/ports/index.html\">FreeBSD Ports 套件集" +"</link>中含有許多內建支援寬字元或多位元組字元的應用程式可支援各種語言。該類型" +"的應用程式在名稱上會註明 <literal>i18n</literal> 以易於辨識。雖然如此,但不一" +"定支援您所需要的語言。" + +#. (itstool) path: sect1/para +#: book.translate.xml:43617 +msgid "" +"Some applications can be compiled with the specific charset. This is usually " +"done in the port's <filename>Makefile</filename> or by passing a value to " +"<application>configure</application>. Refer to the <acronym>i18n</acronym> " +"documentation in the respective FreeBSD port's source for more information " +"on how to determine the needed <application>configure</application> value or " +"the port's <filename>Makefile</filename> to determine which compile options " +"to use when building the port." +msgstr "" +"有一部份應用程式可以使用指定的字元集來編譯。通常會在 Port 的 " +"<filename>Makefile</filename> 中設定,或者傳送參數給 <application>configure</" +"application>。請參考各 FreeBSD Ports 原始碼中的 <acronym>i18n</acronym> 說明" +"文件以取得更多有關需要的設定值資訊或 Port 的 <filename>Makefile</filename> 來" +"了解在編譯時有那些可以使用的編譯選項。" + +#. (itstool) path: sect1/title +#: book.translate.xml:43629 +msgid "Locale Configuration for Specific Languages" +msgstr "特定語言的語系設定" + +#. (itstool) path: sect1/para +#: book.translate.xml:43631 +msgid "" +"This section provides configuration examples for localizing a FreeBSD system " +"for the Russian language. It then provides some additional resources for " +"localizing other languages." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:43637 +msgid "Russian Language (KOI8-R Encoding)" +msgstr "俄語 (KOI8-R 編碼)" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:43640 +msgid "" +"<personname><firstname>Andrey</firstname><surname>Chernov</surname></" +"personname><contrib>Originally contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43645 +msgid "<primary>localization</primary> <secondary>Russian</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43650 +msgid "" +"This section shows the specific settings needed to localize a FreeBSD system " +"for the Russian language. Refer to <link linkend=\"using-localization" +"\">Using Localization</link> for a more complete description of each type of " +"setting." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43656 +msgid "" +"To set this locale for the login shell, add the following lines to each " +"user's <filename>~/.login_conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:43660 +#, no-wrap +msgid "" +"me:My Account:\\\n" +"\t:charset=KOI8-R:\\\n" +"\t:lang=ru_RU.KOI8-R:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43664 +msgid "" +"To configure the console, add the following lines to <filename>/etc/rc.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:43667 +#, no-wrap +msgid "" +"keymap=\"ru.koi8-r\"\n" +"scrnmap=\"koi8-r2cp866\"\n" +"font8x16=\"cp866b-8x16\"\n" +"font8x14=\"cp866-8x14\"\n" +"font8x8=\"cp866-8x8\"\n" +"mousechar_start=3" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43674 +msgid "" +"For each <literal>ttyv</literal> entry in <filename>/etc/ttys</filename>, " +"use <literal>cons25r</literal> as the terminal type." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43678 +msgid "<primary>printers</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43679 +msgid "" +"To configure printing, a special output filter is needed to convert from " +"KOI8-R to CP866 since most printers with Russian characters come with " +"hardware code page CP866. FreeBSD includes a default filter for this " +"purpose, <filename>/usr/libexec/lpr/ru/koi2alt</filename>. To use this " +"filter, add this entry to <filename>/etc/printcap</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:43687 +#, no-wrap +msgid "" +"lp|Russian local line printer:\\\n" +"\t:sh:of=/usr/libexec/lpr/ru/koi2alt:\\\n" +"\t:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43691 +msgid "" +"Refer to <citerefentry><refentrytitle>printcap</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for a more detailed explanation." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43694 +msgid "" +"To configure support for Russian filenames in mounted <trademark class=" +"\"registered\">MS-DOS</trademark> file systems, include <option>-L</option> " +"and the locale name when adding an entry to <filename>/etc/fstab</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:43699 +#, no-wrap +msgid "/dev/ad0s2 /dos/c msdos rw,-Lru_RU.KOI8-R 0 0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43701 +msgid "" +"Refer to <citerefentry><refentrytitle>mount_msdosfs</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more details." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43703 +msgid "" +"To configure Russian fonts for <application>Xorg</application>, install the " +"<package>x11-fonts/xorg-fonts-cyrillic</package> package. Then, check the " +"<literal>\"Files\"</literal> section in <filename>/etc/X11/xorg.conf</" +"filename>. The following line must be added <emphasis>before</emphasis> any " +"other <literal>FontPath</literal> entries:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:43711 +#, no-wrap +msgid "FontPath \"/usr/local/lib/X11/fonts/cyrillic\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43713 +msgid "Additional Cyrillic fonts are available in the Ports Collection." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43716 +msgid "" +"To activate a Russian keyboard, add the following to the <literal>\"Keyboard" +"\"</literal> section of <filename>/etc/xorg.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:43720 +#, no-wrap +msgid "" +"Option \"XkbLayout\" \"us,ru\"\n" +"Option \"XkbOptions\" \"grp:toggle\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43723 +msgid "" +"Make sure that <literal>XkbDisable</literal> is commented out in that file." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43726 +msgid "" +"For <literal>grp:toggle</literal> use <keycap>Right Alt</keycap>, for " +"<literal>grp:ctrl_shift_toggle</literal> use <keycombo action=\"simul" +"\"><keycap>Ctrl</keycap><keycap>Shift</keycap></keycombo>. For <literal>grp:" +"caps_toggle</literal> use <keycap>CapsLock</keycap>. The old " +"<keycap>CapsLock</keycap> function is still available in LAT mode only using " +"<keycombo action=\"simul\"><keycap>Shift</keycap><keycap>CapsLock</keycap></" +"keycombo>. <literal>grp:caps_toggle</literal> does not work in " +"<application>Xorg</application> for some unknown reason." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43737 +msgid "" +"If the keyboard has <quote><trademark class=\"registered\">Windows</" +"trademark></quote> keys, and some non-alphabetical keys are mapped " +"incorrectly, add the following line to <filename>/etc/xorg.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:43741 +#, no-wrap +msgid "Option \"XkbVariant\" \",winkeys\"" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:43744 +msgid "" +"The Russian XKB keyboard may not work with non-localized applications. " +"Minimally localized applications should call a <function>XtSetLanguageProc " +"(NULL, NULL, NULL);</function> function early in the program." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:43751 +msgid "" +"See <uri xlink:href=\"http://koi8.pp.ru/xwin.html\">http://koi8.pp.ru/xwin." +"html</uri> for more instructions on localizing <application>Xorg</" +"application> applications. For more general information about KOI8-R " +"encoding, refer to <uri xlink:href=\"http://koi8.pp.ru/\">http://koi8.pp.ru/" +"</uri>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:43758 +msgid "Additional Language-Specific Resources" +msgstr "其他特定語言資源" + +#. (itstool) path: sect2/para +#: book.translate.xml:43760 +msgid "" +"This section lists some additional resources for configuring other locales." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43763 +msgid "" +"<primary>localization</primary> <secondary>Traditional Chinese</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43767 +msgid "<primary>localization</primary> <secondary>German</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43771 +msgid "<primary>localization</primary> <secondary>Greek</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43775 +msgid "<primary>localization</primary> <secondary>Japanese</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43779 +msgid "<primary>localization</primary> <secondary>Korean</secondary>" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:43786 +msgid "Traditional Chinese for Taiwan" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:43789 +msgid "" +"The FreeBSD-Taiwan Project has a Chinese HOWTO for FreeBSD at <uri xlink:" +"href=\"http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/\">http://netlab." +"cse.yzu.edu.tw/~statue/freebsd/zh-tut/</uri>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:43795 +msgid "German Language Localization for All ISO 8859-1 Languages" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:43799 +msgid "" +"A tutorial on using umlauts on FreeBSD is available in German at <uri xlink:" +"href=\"http://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html" +"\">http://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html</" +"uri>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:43806 +msgid "Greek Language Localization" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:43809 +msgid "" +"A complete article on Greek support in FreeBSD is available <link xlink:href=" +"\"@@URL_RELPREFIX@@/doc/el_GR.ISO8859-7/articles/greek-language-support/" +"index.html\">here</link>, in Greek only, as part of the official FreeBSD " +"Greek documentation." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:43817 +msgid "Japanese and Korean Language Localization" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:43820 +msgid "" +"For Japanese, refer to <uri xlink:href=\"http://www.jp.FreeBSD.org/\">http://" +"www.jp.FreeBSD.org/</uri>, and for Korean, refer to <uri xlink:href=\"http://" +"www.kr.FreeBSD.org/\">http://www.kr.FreeBSD.org/</uri>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:43826 +msgid "Non-English FreeBSD Documentation" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:43829 +msgid "" +"Some FreeBSD contributors have translated parts of the FreeBSD documentation " +"to other languages. They are available through links on the <link xlink:href=" +"\"@@URL_RELPREFIX@@/index.html\">FreeBSD web site</link> or in <filename>/" +"usr/share/doc</filename>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:43850 +msgid "Updating and Upgrading FreeBSD" +msgstr "更新與升級 FreeBSD" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:43853 +msgid "" +"<personname> <firstname>Jim</firstname> <surname>Mock</surname> </" +"personname> <contrib>Restructured, reorganized, and parts updated by </" +"contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:43865 +msgid "" +"<personname> <firstname>Jordan</firstname> <surname>Hubbard</surname> </" +"personname> <contrib>Original work by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:43873 +msgid "" +"<personname> <firstname>Poul-Henning</firstname> <surname>Kamp</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:43880 +msgid "" +"<personname> <firstname>John</firstname> <surname>Polstra</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:43887 +msgid "" +"<personname> <firstname>Nik</firstname> <surname>Clayton</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:43899 +msgid "" +"FreeBSD is under constant development between releases. Some people prefer " +"to use the officially released versions, while others prefer to keep in sync " +"with the latest developments. However, even official releases are often " +"updated with security and other critical fixes. Regardless of the version " +"used, FreeBSD provides all the necessary tools to keep the system updated, " +"and allows for easy upgrades between versions. This chapter describes how to " +"track the development system and the basic tools for keeping a FreeBSD " +"system up-to-date." +msgstr "" +"FreeBSD 在每次的發佈之間持續在開發。有些人喜歡官方發佈的版本,有些人則喜歡持" +"續同步使用最新的開發版本。雖然如此,即使是官方發佈的版本仍時常會有安全性與其" +"他緊急修復的更新。無論使用哪種版本,FreeBSD 都提供所有必要的工具來讓系統保持" +"最新版,而且可以輕易升級不同版本。本章將說明如何追蹤開發版本的系統及保持 " +"FreeBSD 系統維持新版的基本工具。" + +#. (itstool) path: listitem/para +#: book.translate.xml:43913 +msgid "" +"How to keep a FreeBSD system up-to-date with <application>freebsd-update</" +"application> or <application>Subversion</application>." +msgstr "" +"如何使用 <application>freebsd-update</application>, <application>Subversion</" +"application> 來讓 FreeBSD 系統保持新版。" + +#. (itstool) path: listitem/para +#: book.translate.xml:43919 +msgid "" +"How to compare the state of an installed system against a known pristine " +"copy." +msgstr "如何比對已安裝系統與已知原始複本間的狀態。" + +#. (itstool) path: listitem/para +#: book.translate.xml:43924 +msgid "" +"How to keep the installed documentation up-to-date with " +"<application>Subversion</application> or documentation ports." +msgstr "" +"如何使用 <application>Subversion</application> 或說明文件 Ports 來維持已安裝" +"的文件為新版。" + +#. (itstool) path: listitem/para +#: book.translate.xml:43930 +msgid "" +"The difference between the two development branches: FreeBSD-STABLE and " +"FreeBSD-CURRENT." +msgstr "兩種開發分支間的差異:FreeBSD-STABLE 與 FreeBSD-CURRENT。" + +#. (itstool) path: listitem/para +#: book.translate.xml:43935 +msgid "How to rebuild and reinstall the entire base system." +msgstr "如何重新編譯及重新安裝整個基礎系統 (Base system)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:43944 +msgid "" +"Properly set up the network connection (<xref linkend=\"advanced-networking" +"\"/>)." +msgstr "正確的設定網路連線 (<xref linkend=\"advanced-networking\"/>)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:43949 book.translate.xml:50390 book.translate.xml:61688 +msgid "" +"Know how to install additional third-party software (<xref linkend=\"ports\"/" +">)." +msgstr "了解如何安裝其他第三方軟體 (<xref linkend=\"ports\"/>)。" + +#. (itstool) path: note/para +#: book.translate.xml:43955 +msgid "" +"Throughout this chapter, <command>svn</command> is used to obtain and update " +"FreeBSD sources. To use it, first install the <package>devel/subversion</" +"package> port or package." +msgstr "" +"本章會經常使用 <command>svn</command> 來取得與更新 FreeBSD 原始碼。要使用該指" +"令請先安裝 <package>devel/subversion</package> Port 或套件。" + +#. (itstool) path: info/title +#: book.translate.xml:43964 +msgid "FreeBSD Update" +msgstr "FreeBSD 更新" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:43977 +msgid "" +"<personname> <firstname>Colin</firstname> <surname>Percival</surname> </" +"personname> <contrib>Based on notes provided by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:43987 book.translate.xml:44494 book.translate.xml:44630 +msgid "<primary>Updating and Upgrading</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:43990 +msgid "<primary>freebsd-update</primary> <see>updating-upgrading</see>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:43995 +msgid "" +"Applying security patches in a timely manner and upgrading to a newer " +"release of an operating system are important aspects of ongoing system " +"administration. FreeBSD includes a utility called <command>freebsd-update</" +"command> which can be used to perform both these tasks." +msgstr "" +"即時套用安全性更新與升級作業系統到新的發行版本對管理一個持續運作的系統是重要" +"的。FreeBSD 內含可以執行這兩項任務的工具程式,叫做 <command>freebsd-update</" +"command>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:44001 +msgid "" +"This utility supports binary security and errata updates to FreeBSD, without " +"the need to manually compile and install the patch or a new kernel. Binary " +"updates are available for all architectures and releases currently supported " +"by the security team. The list of supported releases and their estimated end-" +"of-life dates are listed at <uri xlink:href=\"http://www.FreeBSD.org/" +"security/\">http://www.FreeBSD.org/security/</uri>." +msgstr "" +"這個工具程式支援使用 Binary 對 FreeBSD 做安全性與和錯誤更新,不需要手動編譯和" +"安裝修補 (Patch) 或新核心。目前由安全性團隊提供支援的 Binary 更新可用於所有的" +"架構和發行版。支援的發行版清單及各自的支援期限列於 <uri xlink:href=\"http://" +"www.FreeBSD.org/security/\">http://www.FreeBSD.org/security/</uri>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:44008 +msgid "" +"This utility also supports operating system upgrades to minor point releases " +"as well as upgrades to another release branch. Before upgrading to a new " +"release, review its release announcement as it contains important " +"information pertinent to the release. Release announcements are available " +"from <uri xlink:href=\"http://www.FreeBSD.org/releases/\">http://www.FreeBSD." +"org/releases/</uri>." +msgstr "" +"這個工具程式也支援升級作業系統到次要的發行版本以及升級到另一個發行版分支。在" +"升級到新的發行版本前,需先查看該版本的發行公告,因為發行公告中包含了該發行版" +"本的相關重要資訊。發行公告可自 <uri xlink:href=\"http://www.FreeBSD.org/" +"releases/\">http://www.FreeBSD.org/releases/</uri> 取得。" + +#. (itstool) path: note/para +#: book.translate.xml:44015 +msgid "" +"If a <command>crontab</command> utilizing the features of " +"<citerefentry><refentrytitle>freebsd-update</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> exists, it must be disabled before upgrading the " +"operating system." +msgstr "" +"如果有使用 <command>crontab</command> 來執行 " +"<citerefentry><refentrytitle>freebsd-update</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>,則必須在升級作業系統前先關閉。" + +#. (itstool) path: sect1/para +#: book.translate.xml:44020 +msgid "" +"This section describes the configuration file used by <command>freebsd-" +"update</command>, demonstrates how to apply a security patch and how to " +"upgrade to a minor or major operating system release, and discusses some of " +"the considerations when upgrading the operating system." +msgstr "" +"本節將說明 <command>freebsd-update</command> 使用的設定檔, 示範如何套用安全" +"性修補及如何升級到主要或次要的作業系統發行版,並討論升級作業系統的需要考量的" +"事項。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44029 +msgid "" +"The default configuration file for <command>freebsd-update</command> works " +"as-is. Some users may wish to tweak the default configuration in <filename>/" +"etc/freebsd-update.conf</filename>, allowing better control of the process. " +"The comments in this file explain the available options, but the following " +"may require a bit more explanation:" +msgstr "" +"<command>freebsd-update</command> 預設的設定檔不需變更即可運作。 部份使用者可" +"能會想要調校位於 <filename>/etc/freebsd-update.conf</filename> 的預設設定檔來" +"對程序有更好的控制。該設定檔中的註解均有說明可用的選項,但以下幾個項目可能需" +"要進一步的說明:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:44037 +#, no-wrap +msgid "" +"# Components of the base system which should be kept updated.\n" +"Components world kernel" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44040 +msgid "" +"This parameter controls which parts of FreeBSD will be kept up-to-date. The " +"default is to update the entire base system and the kernel. Individual " +"components can instead be specified, such as <literal>src/base</literal> or " +"<literal>src/sys</literal>. However, the best option is to leave this at the " +"default as changing it to include specific items requires every needed item " +"to be listed. Over time, this could have disastrous consequences as source " +"code and binaries may become out of sync." +msgstr "" +"這個參數控制 FreeBSD 要保持最新版本的部份。 預設是更新整個基礎系統 (Base " +"system) 和核心。 可指定個別元件,例如:<literal>src/base</literal> 或 " +"<literal>src/sys</literal>。 雖然如此,最好的選項是維持預設值,因為更改指定特" +"定項目時需列出每一個需要的項目。時間一久可能會因為原始碼和 Binary 檔案沒有更" +"新而造成慘重的後果。" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:44050 +#, no-wrap +msgid "" +"# Paths which start with anything matching an entry in an IgnorePaths\n" +"# statement will be ignored.\n" +"IgnorePaths /boot/kernel/linker.hints" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44054 +msgid "" +"To leave specified directories, such as <filename>/bin</filename> or " +"<filename>/sbin</filename>, untouched during the update process, add their " +"paths to this statement. This option may be used to prevent <command>freebsd-" +"update</command> from overwriting local modifications." +msgstr "" +"要保持特定的目錄在更新過程不被更動,例如 <filename>/bin</filename> 或 " +"<filename>/sbin</filename>,可以將他們的路徑加到此敘述中。 這個選項可以防止 " +"<command>freebsd-update</command> 覆蓋本地的修改。" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:44061 +#, no-wrap +msgid "" +"# Paths which start with anything matching an entry in an UpdateIfUnmodified\n" +"# statement will only be updated if the contents of the file have not been\n" +"# modified by the user (unless changes are merged; see below).\n" +"UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44066 +msgid "" +"This option will only update unmodified configuration files in the specified " +"directories. Any changes made by the user will prevent the automatic " +"updating of these files. There is another option, " +"<literal>KeepModifiedMetadata</literal>, which will instruct " +"<command>freebsd-update</command> to save the changes during the merge." +msgstr "" +"這個選項只會更新特定目錄中未修改的設定檔。任何使用者修改的檔案都不會自動更" +"新。 有另一個選項 <literal>KeepModifiedMetadata</literal> 可讓 " +"<command>freebsd-update</command> 在合併時儲存使用者做的變更。" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:44074 +#, no-wrap +msgid "" +"# When upgrading to a new FreeBSD release, files which match MergeChanges\n" +"# will have any local changes merged into the version from the new release.\n" +"MergeChanges /etc/ /var/named/etc/ /boot/device.hints" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44078 +msgid "" +"List of directories with configuration files that <command>freebsd-update</" +"command> should attempt to merge. The file merge process is a series of " +"<citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> patches similar to <citerefentry><refentrytitle>mergemaster</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, but with fewer " +"options. Merges are either accepted, open an editor, or cause " +"<command>freebsd-update</command> to abort. When in doubt, backup <filename>/" +"etc</filename> and just accept the merges. See <xref linkend=\"mergemaster\"/" +"> for more information about <command>mergemaster</command>." +msgstr "" +"列出 <command>freebsd-update</command> 應嘗試合併的設定檔目錄。 檔案合併程序" +"是指一系列類似 <citerefentry><refentrytitle>mergemaster</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> 做的 " +"<citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 修補動作, 但是選項比較少。 合併的動作包含接受、開啟編輯器,或" +"讓 <command>freebsd-update</command> 中止。 如果有疑慮,請先備份 <filename>/" +"etc</filename>,然後再接受合併。 更多關於 <command>mergemaster</command> 的資" +"訊, 參見 <xref linkend=\"mergemaster\"/>。" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:44088 +#, no-wrap +msgid "" +"# Directory in which to store downloaded updates and temporary\n" +"# files used by FreeBSD Update.\n" +"# WorkDir /var/db/freebsd-update" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44092 +msgid "" +"This directory is where all patches and temporary files are placed. In cases " +"where the user is doing a version upgrade, this location should have at " +"least a gigabyte of disk space available." +msgstr "" +"這個目錄是所有修補檔和暫存檔的存放處。當使用者進行版本升級時,這個位置應該要" +"有至少 1GB 的可用磁碟空間。" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:44097 +#, no-wrap +msgid "" +"# When upgrading between releases, should the list of Components be\n" +"# read strictly (StrictComponents yes) or merely as a list of components\n" +"# which *might* be installed of which FreeBSD Update should figure out\n" +"# which actually are installed and upgrade those (StrictComponents no)?\n" +"# StrictComponents no" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44103 +msgid "" +"When this option is set to <literal>yes</literal>, <command>freebsd-update</" +"command> will assume that the <literal>Components</literal> list is complete " +"and will not attempt to make changes outside of the list. Effectively, " +"<command>freebsd-update</command> will attempt to update every file which " +"belongs to the <literal>Components</literal> list." +msgstr "" +"當這個選項設定為 <literal>yes</literal> 時,<command>freebsd-update</" +"command> 將會假設 <literal>Components</literal> 清單已完成,將不會對清單之外" +"的項目做變更。 實際上 <command>freebsd-update</command> 會將嘗試更新每一個屬" +"於 <literal>Components</literal> 清單中的檔案。" + +#. (itstool) path: sect2/title +#: book.translate.xml:44113 +msgid "Applying Security Patches" +msgstr "套用安全性修補" + +#. (itstool) path: sect2/para +#: book.translate.xml:44115 +msgid "" +"The process of applying FreeBSD security patches has been simplified, " +"allowing an administrator to keep a system fully patched using " +"<command>freebsd-update</command>. More information about FreeBSD security " +"advisories can be found in <xref linkend=\"security-advisories\"/>." +msgstr "" +"套用 FreeBSD 安全性修補的過程已經被簡化,讓系統管理員可使用 <command>freebsd-" +"update</command> 來保持系統更新。更多有關 FreeBSD 安全性報告的資訊可以參考 " +"<xref linkend=\"security-advisories\"/>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44121 +msgid "" +"FreeBSD security patches may be downloaded and installed using the following " +"commands. The first command will determine if any outstanding patches are " +"available, and if so, will list the files that will be modifed if the " +"patches are applied. The second command will apply the patches." +msgstr "" +"FreeBSD 安全性修補可以使用以下指令下載並安裝。 第一個指令會偵測是否有可用的修" +"補,如果有,將列出若執行修補後會變更的檔案清單。第二個指令將會套用修補。" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44127 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>freebsd-update fetch</userinput>\n" +"<prompt>#</prompt> <userinput>freebsd-update install</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44130 +msgid "" +"If the update applies any kernel patches, the system will need a reboot in " +"order to boot into the patched kernel. If the patch was applied to any " +"running binaries, the affected applications should be restarted so that the " +"patched version of the binary is used." +msgstr "" +"如果更新套用了任何核心修補,系統將會需要重新開機以使用修補過的核心。如果修補" +"套用在任何執行中的 Binary,受影響的應用程式應重新啟動來使用修補過的 Binary 版" +"本。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44136 +msgid "" +"The system can be configured to automatically check for updates once every " +"day by adding this entry to <filename>/etc/crontab</filename>:" +msgstr "" +"加入以下項目至 <filename>/etc/crontab</filename> 可設定系統每天自動檢查更新一" +"次:" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:44140 +#, no-wrap +msgid "@daily root freebsd-update cron" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44142 +msgid "" +"If patches exist, they will automatically be downloaded but will not be " +"applied. The <systemitem class=\"username\">root</systemitem> user will be " +"sent an email so that the patches may be reviewed and manually installed " +"with <command>freebsd-update install</command>." +msgstr "" +"如果有新的修補,該程式會會自動下載,但不會執行。<systemitem class=\"username" +"\">root</systemitem> 使用者會收到電子郵件通知複查該修補並手動執行 " +"<command>freebsd-update install</command> 安裝。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44148 +msgid "" +"If anything goes wrong, <command>freebsd-update</command> has the ability to " +"roll back the last set of changes with the following command:" +msgstr "" +"如果有發生任何錯誤,<command>freebsd-update</command> 可以使用以下指令還原最" +"後所做的變更:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44152 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>freebsd-update rollback</userinput>\n" +"Uninstalling updates... done." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44155 +msgid "" +"Again, the system should be restarted if the kernel or any kernel modules " +"were modified and any affected binaries should be restarted." +msgstr "" +"再次強調,若核心或任何核心模組有做過修改應重新啟動系統,以及任何受影響的 " +"Binary 應重新執行。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44159 +msgid "" +"Only the <filename>GENERIC</filename> kernel can be automatically updated by " +"<command>freebsd-update</command>. If a custom kernel is installed, it will " +"have to be rebuilt and reinstalled after <command>freebsd-update</command> " +"finishes installing the updates. However, <command>freebsd-update</command> " +"will detect and update the <filename>GENERIC</filename> kernel if <filename>/" +"boot/GENERIC</filename> exists, even if it is not the current running kernel " +"of the system." +msgstr "" +"只有 <filename>GENERIC</filename> 核心可使用 <command>freebsd-update</" +"command> 自動更新。 如果有安裝自訂的核心,在 <command>freebsd-update</" +"command> 完成安裝更新後,需要重新編譯和重新安裝。 雖然如此,如果 <filename>/" +"boot/GENERIC</filename> 存在,<command>freebsd-update</command> 仍會偵測並更" +"新 <filename>GENERIC</filename> 核心,即使該核心並非目前系統正在執行的核心。" + +#. (itstool) path: note/para +#: book.translate.xml:44170 +msgid "" +"Always keep a copy of the <filename>GENERIC</filename> kernel in <filename>/" +"boot/GENERIC</filename>. It will be helpful in diagnosing a variety of " +"problems and in performing version upgrades. Refer to <xref linkend=" +"\"freebsd-update-custom-kernel-9x\"/> for instructions on how to get a copy " +"of the <filename>GENERIC</filename> kernel." +msgstr "" +"隨時在 <filename>/boot/GENERIC</filename> 保留一份 <filename>GENERIC</" +"filename> 核心的複本將有助於診斷各種問題及執行版本升級。請參考 <xref linkend=" +"\"freebsd-update-custom-kernel-9x\"/> 來了解有關如何取得 <filename>GENERIC</" +"filename> 核心的複本說明。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44178 +msgid "" +"Unless the default configuration in <filename>/etc/freebsd-update.conf</" +"filename> has been changed, <command>freebsd-update</command> will install " +"the updated kernel sources along with the rest of the updates. Rebuilding " +"and reinstalling a new custom kernel can then be performed in the usual way." +msgstr "" +"除非在 <filename>/etc/freebsd-update.conf</filename> 的預設設定檔被修改,否" +"則 <command>freebsd-update</command> 將會安裝更新後的核心原始碼和其餘的更新," +"可依平常的方式執行重新編譯與重新安裝核心。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44185 +msgid "" +"The updates distributed by <command>freebsd-update</command> do not always " +"involve the kernel. It is not necessary to rebuild a custom kernel if the " +"kernel sources have not been modified by <command>freebsd-update install</" +"command>. However, <command>freebsd-update</command> will always update " +"<filename>/usr/src/sys/conf/newvers.sh</filename>. The current patch level, " +"as indicated by the <literal>-p</literal> number reported by <command>uname -" +"r</command>, is obtained from this file. Rebuilding a custom kernel, even if " +"nothing else changed, allows <command>uname</command> to accurately report " +"the current patch level of the system. This is particularly helpful when " +"maintaining multiple systems, as it allows for a quick assessment of the " +"updates installed in each one." +msgstr "" +"以 <command>freebsd-update</command> 發行的更新並非總是會更新核心。若核心的原" +"始碼沒有被 <command>freebsd-update install</command> 修改則不需要重新編譯自訂" +"的核心。雖然如此 <command>freebsd-update</command> 總是會更新 <filename>/usr/" +"src/sys/conf/newvers.sh</filename>,目前修補的版本如 <command>uname -r</" +"command> 執行結果中的 <literal>-p</literal> 數字,便是由該檔取得。即使沒有做" +"任何其他變更,重新編譯自訂核心可讓 <command>uname</command> 準確的回報系統目" +"前的修補版本。當維護多個系統時這會特別有用,因其可讓你快速評估每個系統安裝的" +"更新。" + +#. (itstool) path: sect2/title +#: book.translate.xml:44203 +msgid "Performing Major and Minor Version Upgrades" +msgstr "執行主要及次要版號升級" + +#. (itstool) path: sect2/para +#: book.translate.xml:44205 +msgid "" +"Upgrades from one minor version of FreeBSD to another, like from FreeBSD 9.0 " +"to FreeBSD 9.1, are called <firstterm>minor version</firstterm> upgrades. " +"<firstterm>Major version</firstterm> upgrades occur when FreeBSD is upgraded " +"from one major version to another, like from FreeBSD 9.X to FreeBSD 10.X. " +"Both types of upgrades can be performed by providing <command>freebsd-" +"update</command> with a release version target." +msgstr "" +"從 FreeBSD 的次要版本升級到另一個版本,例如從 FreeBSD 9.0 到 FreeBSD 9.1, 叫" +"作 <firstterm>次要版本</firstterm>更新。 <firstterm>主要版本</firstterm>更新" +"發生在當 FreeBSD 從一個主要版本升級到主要版本升級到另一個主要版本時,例如從 " +"FreeBSD 9.X 到 FreeBSD 10.X。 兩種更新都可以透過提供 <command>freebsd-" +"update</command> 目標的發行版本來執行。" + +#. (itstool) path: note/para +#: book.translate.xml:44215 +msgid "" +"If the system is running a custom kernel, make sure that a copy of the " +"<filename>GENERIC</filename> kernel exists in <filename>/boot/GENERIC</" +"filename> before starting the upgrade. Refer to <xref linkend=\"freebsd-" +"update-custom-kernel-9x\"/> for instructions on how to get a copy of the " +"<filename>GENERIC</filename> kernel." +msgstr "" +"如果系統正在執行自訂的核心,請在開始升級前,確定有保留一份 " +"<filename>GENERIC</filename> 核心的複本在 <filename>/boot/GENERIC</" +"filename>。 請參考 <xref linkend=\"freebsd-update-custom-kernel-9x\"/> 關於如" +"何取得 <filename>GENERIC</filename> 核心複本的說明。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44223 +msgid "" +"The following command, when run on a FreeBSD 9.0 system, will upgrade it to " +"FreeBSD 9.1:" +msgstr "在 FreeBSD 9.0 系統執行以下指令,將會把系統升級至 FreeBSD 9.1:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44226 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>freebsd-update -r 9.1-RELEASE upgrade</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44228 +msgid "" +"After the command has been received, <command>freebsd-update</command> will " +"evaluate the configuration file and current system in an attempt to gather " +"the information necessary to perform the upgrade. A screen listing will " +"display which components have and have not been detected. For example:" +msgstr "" +"收到這個指令後,<command>freebsd-update</command> 會開始評估設定檔和目前的系" +"統來收集升級所需的資訊。 螢幕會顯示偵測到或沒偵測到的元件清單。例如:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44235 +#, no-wrap +msgid "" +"Looking up update.FreeBSD.org mirrors... 1 mirrors found.\n" +"Fetching metadata signature for 9.0-RELEASE from update1.FreeBSD.org... done.\n" +"Fetching metadata index... done.\n" +"Inspecting system... done.\n" +"\n" +"The following components of FreeBSD seem to be installed:\n" +"kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games\n" +"src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue\n" +"src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin\n" +"world/base world/info world/lib32 world/manpages\n" +"\n" +"The following components of FreeBSD do not seem to be installed:\n" +"kernel/generic world/catpages world/dict world/doc world/games\n" +"world/proflibs\n" +"\n" +"Does this look reasonable (y/n)? <userinput>y</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44252 +msgid "" +"At this point, <command>freebsd-update</command> will attempt to download " +"all files required for the upgrade. In some cases, the user may be prompted " +"with questions regarding what to install or how to proceed." +msgstr "" +"此時,<command>freebsd-update</command> 將會嘗試下載所有升級需要的檔案。 在某" +"些情況,會詢問使用者一些關於要安裝什麼或要如何繼續。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44257 +msgid "" +"When using a custom kernel, the above step will produce a warning similar to " +"the following:" +msgstr "當使用自訂核心,上述的步驟將會產生如下的警告:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44260 +#, no-wrap +msgid "" +"WARNING: This system is running a \"<replaceable>MYKERNEL</replaceable>\" kernel, which is not a\n" +"kernel configuration distributed as part of FreeBSD 9.0-RELEASE.\n" +"This kernel will not be updated: you MUST update the kernel manually\n" +"before running \"/usr/sbin/freebsd-update install\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44265 +msgid "" +"This warning may be safely ignored at this point. The updated " +"<filename>GENERIC</filename> kernel will be used as an intermediate step in " +"the upgrade process." +msgstr "" +"這時的警告可以安全地忽略,升級過程將會使用更新過的 <filename>GENERIC</" +"filename> 核心來進行。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44269 +msgid "" +"Once all the patches have been downloaded to the local system, they will be " +"applied. This process may take a while, depending on the speed and workload " +"of the machine. Configuration files will then be merged. The merging process " +"requires some user intervention as a file may be merged or an editor may " +"appear on screen for a manual merge. The results of every successful merge " +"will be shown to the user as the process continues. A failed or ignored " +"merge will cause the process to abort. Users may wish to make a backup of " +"<filename>/etc</filename> and manually merge important files, such as " +"<filename>master.passwd</filename> or <filename>group</filename> at a later " +"time." +msgstr "" +"所有的修補都下載到本地系統之後, 將會開始套用更新。這個過程可能會花點時間,取" +"決於機器的速度和工作量。設定檔將會被合併。 合併的過程中當檔案被合併或是手動合" +"併畫面上出現編輯器時需要使用者操作。 每一個成功合併的結果將會顯示給使用者並繼" +"續程序,失敗或忽略合併將會使程序中斷。使用者可能想要備份 <filename>/etc</" +"filename> 並稍後手動合併重要的檔案,例如:<filename>master.passwd</filename> " +"或 <filename>group</filename>。" + +#. (itstool) path: note/para +#: book.translate.xml:44283 +msgid "" +"The system is not being altered yet as all patching and merging is happening " +"in another directory. Once all patches have been applied successfully, all " +"configuration files have been merged and it seems the process will go " +"smoothly, the changes can be committed to disk by the user using the " +"following command:" +msgstr "" +"所有的修補與合併動作會在另一個目錄進行,並不會直接修改。當成功套用所有修補," +"所有設定檔已合併且過程順利,使用者可使用以下指令將變更安裝到磁碟:" + +#. (itstool) path: note/screen +#. (itstool) path: sect2/screen +#. (itstool) path: sect3/screen +#: book.translate.xml:44290 book.translate.xml:44327 book.translate.xml:44421 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>freebsd-update install</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44293 +msgid "" +"The kernel and kernel modules will be patched first. If the system is " +"running with a custom kernel, use <citerefentry><refentrytitle>nextboot</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to set the kernel for " +"the next boot to the updated <filename>/boot/GENERIC</filename>:" +msgstr "" +"核心與核心模組會先修補,若系統正在執行自訂的核心,使用 " +"<citerefentry><refentrytitle>nextboot</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 來設定下次開機使用更新過的 <filename>/boot/" +"GENERIC</filename>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44298 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>nextboot -k GENERIC</userinput>" +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:44301 +msgid "" +"Before rebooting with the <filename>GENERIC</filename> kernel, make sure it " +"contains all the drivers required for the system to boot properly and " +"connect to the network, if the machine being updated is accessed remotely. " +"In particular, if the running custom kernel contains built-in functionality " +"usually provided by kernel modules, make sure to temporarily load these " +"modules into the <filename>GENERIC</filename> kernel using the <filename>/" +"boot/loader.conf</filename> facility. It is recommended to disable non-" +"essential services as well as any disk and network mounts until the upgrade " +"process is complete." +msgstr "" +"若機器在遠端進行更新,請在使用 <filename>GENERIC</filename> 核心重新開機前," +"請確定該核心含有所有系統所需的驅動程式以正常開機並連線至網路。特別是在執行的" +"自訂核心有使用到由核心模組提供內建功能,請確定將這些模組已暫時使用 " +"<filename>/boot/loader.conf</filename> 設定檔載入到 <filename>GENERIC</" +"filename> 核心。建議關閉非必須的服務和磁碟與網路掛載直到升級程序完成。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44315 +msgid "The machine should now be restarted with the updated kernel:" +msgstr "機器現在應使用更新過的核心重新開機:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44318 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>shutdown -r now</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44320 +msgid "" +"Once the system has come back online, restart <command>freebsd-update</" +"command> using the following command. Since the state of the process has " +"been saved, <command>freebsd-update</command> will not start from the " +"beginning, but will instead move on to the next phase and remove all old " +"shared libraries and object files." +msgstr "" +"一旦系統重新上線,使用以下指令繼續 <command>freebsd-update</command>。 由於程" +"序的狀態已被儲存,<command>freebsd-update</command> 不會重頭開始,但會進行下" +"一個階段並移除所有舊的共用程式庫和目標檔。" + +#. (itstool) path: note/para +#: book.translate.xml:44330 +msgid "" +"Depending upon whether any library version numbers were bumped, there may " +"only be two install phases instead of three." +msgstr "取決於是否有任何程式庫版本編號衝突,也可能只有兩個而不是三個安裝階段。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44335 +msgid "" +"The upgrade is now complete. If this was a major version upgrade, reinstall " +"all ports and packages as described in <xref linkend=\"freebsdupdate-" +"portsrebuild\"/>." +msgstr "" +"升級程序現在完成了。如果所做的是主要的版本升級,則需依 <xref linkend=" +"\"freebsdupdate-portsrebuild\"/> 的說明重新安裝所有的 Ports 和套件。" + +#. (itstool) path: sect3/title +#: book.translate.xml:44340 +msgid "Custom Kernels with FreeBSD 9.X and Later" +msgstr "在 FreeBSD 9.X 及之後版本自訂核心" + +#. (itstool) path: sect3/para +#: book.translate.xml:44342 +msgid "" +"Before using <command>freebsd-update</command>, ensure that a copy of the " +"<filename>GENERIC</filename> kernel exists in <filename>/boot/GENERIC</" +"filename>. If a custom kernel has only been built once, the kernel in " +"<filename>/boot/kernel.old</filename> is the <literal>GENERIC</literal> " +"kernel. Simply rename this directory to <filename>/boot/kernel</filename>." +msgstr "" +"在使用 <command>freebsd-update</command> 前,請確定已有 <filename>GENERIC</" +"filename> 核心的複本於 <filename>/boot/GENERIC</filename>。若只編譯過一次自訂" +"核心,那麼 <filename>/boot/kernel.old</filename> 就是 <literal>GENERIC</" +"literal> 核心,只需要將該目錄重新命名為 <filename>/boot/kernel</filename>。" + +#. (itstool) path: sect3/para +#: book.translate.xml:44350 +msgid "" +"If a custom kernel has been built more than once or if it is unknown how " +"many times the custom kernel has been built, obtain a copy of the " +"<literal>GENERIC</literal> kernel that matches the current version of the " +"operating system. If physical access to the system is available, a copy of " +"the <literal>GENERIC</literal> kernel can be installed from the installation " +"media:" +msgstr "" +"若有編譯自訂核心過超過一次,或已經不曉得編譯自訂核心的次數,則需取得與目前作" +"業系統版本相符的 <literal>GENERIC</literal> 核心複本。若可直接操作實體系統," +"則可以從安裝媒體取得 <literal>GENERIC</literal> 核心複本:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:44358 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mount /cdrom</userinput>\n" +"<prompt>#</prompt> <userinput>cd /cdrom/usr/freebsd-dist</userinput>\n" +"<prompt>#</prompt> <userinput>tar -C/ -xvf kernel.txz boot/kernel/kernel</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:44362 +msgid "" +"Alternately, the <literal>GENERIC</literal> kernel may be rebuilt and " +"installed from source:" +msgstr "或者,可以從原始碼重新編譯 <literal>GENERIC</literal> 核心:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:44365 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:44368 +msgid "" +"For this kernel to be identified as the <literal>GENERIC</literal> kernel by " +"<command>freebsd-update</command>, the <filename>GENERIC</filename> " +"configuration file must not have been modified in any way. It is also " +"suggested that the kernel is built without any other special options." +msgstr "" +"這個核心要被 <command>freebsd-update</command> 認做 <literal>GENERIC</" +"literal> 核心,<filename>GENERIC</filename> 設定檔必須不能做任何修改,也建議" +"在編譯核心時不要使用其他特殊選項。" + +#. (itstool) path: sect3/para +#: book.translate.xml:44376 +msgid "" +"Rebooting into the <filename>GENERIC</filename> kernel is not required as " +"<command>freebsd-update</command> only needs <filename>/boot/GENERIC</" +"filename> to exist." +msgstr "" +"<command>freebsd-update</command> 僅需要 <filename>/boot/GENERIC</filename> " +"存在便可,因此不須重新開機進入 <filename>GENERIC</filename>。" + +#. (itstool) path: sect3/title +#: book.translate.xml:44382 +msgid "Upgrading Packages After a Major Version Upgrade" +msgstr "主要版號升級後的套件升級" + +#. (itstool) path: sect3/para +#: book.translate.xml:44385 +msgid "" +"Generally, installed applications will continue to work without problems " +"after minor version upgrades. Major versions use different Application " +"Binary Interfaces (<acronym>ABI</acronym>s), which will break most third-" +"party applications. After a major version upgrade, all installed packages " +"and ports need to be upgraded. Packages can be upgraded using <command>pkg " +"upgrade</command>. To upgrade installed ports, use a utility such as " +"<package>ports-mgmt/portmaster</package>." +msgstr "" +"一般來說,已安裝的應用程式在次要版本升級仍可沒問題的正常執行。但主要版本升級" +"會採用不同的應用程式 Binary 介面 (Application Binary Interfaces, " +"<acronym>ABI</acronym>s),會導致大部份第三方應用程式無法正常執行。 因此在主要" +"版本升級後,需要升及所有已安裝的套件和 Ports,套件可以使用 <command>pkg " +"upgrade</command> 來升級,而 Ports 則需使用 <package>ports-mgmt/portmaster</" +"package> 工具。" + +#. (itstool) path: sect3/para +#: book.translate.xml:44396 +msgid "" +"A forced upgrade of all installed packages will replace the packages with " +"fresh versions from the repository even if the version number has not " +"increased. This is required because of the ABI version change when upgrading " +"between major versions of FreeBSD. The forced upgrade can be accomplished by " +"performing:" +msgstr "" +"強制升級所有已安裝的套件會使用檔案庫中新版本的套件來取得目前套件,即使該版號" +"沒有增加。由於在升級 FreeBSD 主要版本時會變更 ABI 版本,因此這是必要動作。強" +"制升級可以執行以下指令來完成:" + +#. (itstool) path: sect3/screen +#: book.translate.xml:44403 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg-static upgrade -f</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:44405 +msgid "" +"A rebuild of all installed applications can be accomplished with this " +"command:" +msgstr "重新編譯所有已安裝的應用程式可以執行以下指令來完成:" + +#. (itstool) path: sect3/para +#: book.translate.xml:44410 +msgid "" +"This command will display the configuration screens for each application " +"that has configurable options and wait for the user to interact with those " +"screens. To prevent this behavior, and use only the default options, include " +"<option>-G</option> in the above command." +msgstr "" +"這個指令會在安裝每個應用程式有可設定選項時顯示設定畫面,並會等待使用者操作該" +"畫面,要避免這種情況並使用預設的設定選項,可在上述指令加上 <option>-G</" +"option> 參數。" + +#. (itstool) path: sect3/para +#: book.translate.xml:44416 +msgid "" +"Once the software upgrades are complete, finish the upgrade process with a " +"final call to <command>freebsd-update</command> in order to tie up all the " +"loose ends in the upgrade process:" +msgstr "" +"完成軟體升級後,最後需執行 <command>freebsd-update</command> 來完成最後的升級" +"動作:" + +#. (itstool) path: sect3/para +#: book.translate.xml:44423 +msgid "" +"If the <filename>GENERIC</filename> kernel was temporarily used, this is the " +"time to build and install a new custom kernel using the instructions in " +"<xref linkend=\"kernelconfig\"/>." +msgstr "" +"若有使用臨時 <filename>GENERIC</filename> 核心,便應在此時依據 <xref linkend=" +"\"kernelconfig\"/> 的說明編譯並安裝新的自訂核心。" + +#. (itstool) path: sect3/para +#: book.translate.xml:44427 +msgid "" +"Reboot the machine into the new FreeBSD version. The upgrade process is now " +"complete." +msgstr "重新開機使用新的 FreeBSD 版本後,升級程序便正式完成。" + +#. (itstool) path: sect2/title +#: book.translate.xml:44433 +msgid "System State Comparison" +msgstr "比對系統狀態" + +#. (itstool) path: sect2/para +#: book.translate.xml:44435 +msgid "" +"The state of the installed FreeBSD version against a known good copy can be " +"tested using <command>freebsd-update IDS</command>. This command evaluates " +"the current version of system utilities, libraries, and configuration files " +"and can be used as a built-in Intrusion Detection System (<acronym>IDS</" +"acronym>)." +msgstr "" +"已安裝的 FreeBSD 版本狀態可以使用 <command>freebsd-update IDS</command> 與另" +"一個已知良好的複本來做比對測試。 這個指令會評估目前版本的系統工具,程式庫和設" +"定檔,可做為內建的入侵偵測系統來使用 (Intrusion Detection System, " +"<acronym>IDS</acronym>)。" + +#. (itstool) path: warning/para +#: book.translate.xml:44443 +msgid "" +"This command is not a replacement for a real <acronym>IDS</acronym> such as " +"<package>security/snort</package>. As <command>freebsd-update</command> " +"stores data on disk, the possibility of tampering is evident. While this " +"possibility may be reduced using <varname>kern.securelevel</varname> and by " +"storing the <command>freebsd-update</command> data on a read-only file " +"system when not in use, a better solution would be to compare the system " +"against a secure disk, such as a <acronym>DVD</acronym> or securely stored " +"external <acronym>USB</acronym> disk device. An alternative method for " +"providing <acronym>IDS</acronym> functionality using a built-in utility is " +"described in <xref linkend=\"security-ids\"/>" +msgstr "" +"這個指令並非用來取代真正的 <acronym>IDS</acronym>,如 <package>security/" +"snort</package>。由於 <command>freebsd-update</command> 儲存在磁碟上,被竄改" +"的可能性是顯而易見的,雖然這個可能性會因使用 <varname>kern.securelevel</" +"varname> 以及將 <command>freebsd-update</command> 在不使用時以唯讀儲存而降" +"低,最好的解決方案是能夠與安全的磁碟,如 <acronym>DVD</acronym> 或儲存在外部" +"的 <acronym>USB</acronym> 磁碟裝置比對系統。替代的方式是使用內建工具的 " +"<acronym>IDS</acronym> 功能,在 <xref linkend=\"security-ids\"/> 有詳細說明。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44458 +msgid "" +"To begin the comparison, specify the output file to save the results to:" +msgstr "要開始比對,需指定輸出的檔案來儲存結果:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44461 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>freebsd-update IDS >> outfile.ids</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44463 +msgid "" +"The system will now be inspected and a lengthy listing of files, along with " +"the <acronym>SHA256</acronym> hash values for both the known value in the " +"release and the current installation, will be sent to the specified output " +"file." +msgstr "" +"系統將會開始檢查並且會產生相當長的檔案清單,內容包含發行版本已知的與目前安裝" +"版本的 <acronym>SHA256</acronym> 雜湊值會儲存到指定的輸出檔。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44469 +msgid "" +"The entries in the listing are extremely long, but the output format may be " +"easily parsed. For instance, to obtain a list of all files which differ from " +"those in the release, issue the following command:" +msgstr "" +"清單中的項目會相當的多,但輸出的格式可以很簡單的用來分析。例如,要取得與發行" +"版本不同的檔案清單,可使用以下指令:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44474 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cat outfile.ids | awk '{ print $1 }' | more</userinput>\n" +"/etc/master.passwd\n" +"/etc/motd\n" +"/etc/passwd\n" +"/etc/pf.conf" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44480 +msgid "" +"This sample output has been truncated as many more files exist. Some files " +"have natural modifications. For example, <filename>/etc/passwd</filename> " +"will be modified if users have been added to the system. Kernel modules may " +"differ as <command>freebsd-update</command> may have updated them. To " +"exclude specific files or directories, add them to the " +"<literal>IDSIgnorePaths</literal> option in <filename>/etc/freebsd-update." +"conf</filename>." +msgstr "" +"實際的檔案會更多,此範例的輸出已精簡。部份檔案可能本來就會被修改。例如 " +"<filename>/etc/passwd</filename> 在新增使用者到系統時會被修改,核心模組也有可" +"能因使用 <command>freebsd-update</command> 更新而有所不同。要排除特定的檔案或" +"目錄可將這些檔案或目錄加入到 <filename>/etc/freebsd-update.conf</filename> 中" +"的 <literal>IDSIgnorePaths</literal> 選項。" + +#. (itstool) path: sect1/title +#: book.translate.xml:44492 +msgid "Updating the Documentation Set" +msgstr "更新文件集" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:44496 +msgid "<primary>Documentation</primary> <see>Updating and Upgrading</see>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:44501 +msgid "" +"Documentation is an integral part of the FreeBSD operating system. While an " +"up-to-date version of the FreeBSD documentation is always available on the " +"FreeBSD web site (<link xlink:href=\"@@URL_RELPREFIX@@/doc/\">http://www." +"freebsd.org/doc/</link>), it can be handy to have an up-to-date, local copy " +"of the FreeBSD website, handbooks, <acronym>FAQ</acronym>, and articles." +msgstr "" +"文件是 FreeBSD 作業系統不可或缺的一部份。在最新版本的 FreeBSD 文件可在 " +"FreeBSD 網站 (<link xlink:href=\"@@URL_RELPREFIX@@/doc/\">http://www.freebsd." +"org/doc/</link>) 取得的同時,也可很簡單的取得 FreeBSD 網站、使用手冊、" +"<acronym>FAQ</acronym> 及文章的本地複本。" + +#. (itstool) path: sect1/para +#: book.translate.xml:44507 +msgid "" +"This section describes how to use either source or the FreeBSD Ports " +"Collection to keep a local copy of the FreeBSD documentation up-to-date." +msgstr "" +"本節將說明如何使用原始碼與 FreeBSD Ports 套件集來取得最新版本 FreeBSD 文件本" +"地複本。" + +#. (itstool) path: sect1/para +#: book.translate.xml:44511 +msgid "" +"For information on editing and submitting corrections to the documentation, " +"refer to the FreeBSD Documentation Project Primer for New Contributors " +"(<link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/fdp-primer" +"\">http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/</link>)." +msgstr "" +"要取得編輯與提出修正文件相關的資訊請參考 FreeBSD 文件計畫入門書 (<link xlink:" +"href=\"@@URL_RELPREFIX@@/doc/zh_TW.UTF-8/books/fdp-primer\">http://www." +"freebsd.org/doc/zh_TW.UTF-8/books/fdp-primer/</link>)。" + +#. (itstool) path: sect2/title +#: book.translate.xml:44516 +msgid "Updating Documentation from Source" +msgstr "自原始碼更新說明文件" + +#. (itstool) path: sect2/para +#: book.translate.xml:44518 +msgid "" +"Rebuilding the FreeBSD documentation from source requires a collection of " +"tools which are not part of the FreeBSD base system. The required tools, " +"including <application>svn</application>, can be installed from the " +"<package>textproc/docproj</package> package or port developed by the FreeBSD " +"Documentation Project." +msgstr "" +"從原始碼重新編譯 FreeBSD 文件需要一些不屬於 FreeBSD 基礎系統的工具。需要的工" +"具包括 <application>svn</application> 可透過由 FreeBSD 文件計劃所開發的 " +"<package>textproc/docproj</package> 套件或 Port 安裝。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44525 +msgid "" +"Once installed, use <application>svn</application> to fetch a clean copy of " +"the documentation source:" +msgstr "" +"安裝完成之後,可使用 <application>svn</application> 來取得乾淨的文件原始碼複" +"本:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44528 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>svn checkout https://svn.FreeBSD.org/doc/head /usr/doc</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44530 +msgid "" +"The initial download of the documentation sources may take a while. Let it " +"run until it completes." +msgstr "第一次下載文件原始碼需要一些時間,請耐心等候執行完畢。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44533 +msgid "Future updates of the documentation sources may be fetched by running:" +msgstr "往後更新文件原始碼可執行:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44536 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>svn update /usr/doc</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44538 +msgid "" +"Once an up-to-date snapshot of the documentation sources has been fetched to " +"<filename>/usr/doc</filename>, everything is ready for an update of the " +"installed documentation." +msgstr "" +"下載最新的文件原始碼到 <filename>/usr/doc</filename> 之後,便完成要更新已安裝" +"文件的準備動作。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44542 +msgid "A full update of all available languages may be performed by typing:" +msgstr "完整更新所有可用的語言可以執行:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44545 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/doc</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44548 +msgid "" +"If an update of only a specific language is desired, <command>make</command> " +"can be invoked in a language-specific subdirectory of <filename>/usr/doc</" +"filename>:" +msgstr "" +"若只想要更新特定語言,可對 <filename>/usr/doc</filename> 中特定語言的子目錄執" +"行 <command>make</command>:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44553 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/doc/en_US.ISO8859-1</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44556 +msgid "" +"An alternative way of updating the documentation is to run this command from " +"<filename>/usr/doc</filename> or the desired language-specific subdirectory:" +msgstr "" +"另一個更新文件的方式是在 <filename>/usr/doc</filename> 或特定的語言子目錄下執" +"行此指令:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44560 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make update</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44562 +msgid "" +"The output formats that will be installed may be specified by setting " +"<varname>FORMATS</varname>:" +msgstr "要指定安裝的輸出格式可使用 <varname>FORMATS</varname> 來設定:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44565 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/doc</userinput>\n" +"<prompt>#</prompt> <userinput>make FORMATS='html html-split' install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44568 +msgid "" +"Several options are available to ease the process of updating only parts of " +"the documentation, or the build of specific translations. These options can " +"be set either as system-wide options in <filename>/etc/make.conf</filename>, " +"or as command-line options passed to <command>make</command>." +msgstr "" +"有數個選項可更新部份文件或只編譯特定翻譯來簡化更新程序。這些選項可在 " +"<filename>/etc/make.conf</filename> 設為系統全域的預設選項,或是透過指令傳送" +"給 <command>make</command>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44575 +msgid "The options include:" +msgstr "選項有:" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:44579 +msgid "<varname>DOC_LANG</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:44582 +msgid "" +"The list of languages and encodings to build and install, such as " +"<literal>en_US.ISO8859-1</literal> for English documentation." +msgstr "" +"要編譯與安裝的語言及編碼清單,例如 <literal>en_US.ISO8859-1</literal> 代表英" +"語文件。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:44589 +msgid "<varname>FORMATS</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:44592 +msgid "" +"A single format or a list of output formats to be built. Currently, " +"<literal>html</literal>, <literal>html-split</literal>, <literal>txt</" +"literal>, <literal>ps</literal>, and <literal>pdf</literal> are supported." +msgstr "" +"要編譯的輸出格式清單,目前支援 <literal>html</literal>, <literal>html-split</" +"literal>, <literal>txt</literal>, <literal>ps</literal> 以及 <literal>pdf</" +"literal>。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:44601 +msgid "<varname>DOCDIR</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:44604 +msgid "" +"Where to install the documentation. It defaults to <filename>/usr/share/doc</" +"filename>." +msgstr "要安裝文件的位置,預設為 <filename>/usr/share/doc</filename>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44610 +msgid "" +"For more <command>make</command> variables supported as system-wide options " +"in FreeBSD, refer to <citerefentry><refentrytitle>make.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" +"要取得更多可做為 FreeBSD 系統全域選項的 <command>make</command> 變數,請參考 " +"<citerefentry><refentrytitle>make.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>。" + +#. (itstool) path: info/title +#: book.translate.xml:44617 +msgid "Updating Documentation from Ports" +msgstr "自 Ports 更新說明文件" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:44620 +msgid "" +"<personname> <firstname>Marc</firstname> <surname>Fonvieille</surname> </" +"personname> <contrib>Based on the work of </contrib>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:44634 +msgid "" +"<primary>documentation package</primary> <see>Updating and Upgrading</see>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44639 +msgid "" +"The previous section presented a method for updating the FreeBSD " +"documentation from sources. This section describes an alternative method " +"which uses the Ports Collection and makes it possible to:" +msgstr "" +"前一節介紹了由原始碼更新 FreeBSD 文件的方法,本節將說明使用 Ports 套件集的替" +"代方法,可由以下方式達成:" + +#. (itstool) path: listitem/para +#: book.translate.xml:44646 +msgid "" +"Install pre-built packages of the documentation, without having to locally " +"build anything or install the documentation toolchain." +msgstr "安裝事先編譯好的文件套件,無須在本地編譯任何東西或安裝文件工具集。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44652 +msgid "" +"Build the documentation sources through the ports framework, making the " +"checkout and build steps a bit easier." +msgstr "使用 Ports 框架來編譯文件原始碼,可讓取得與編譯文件的步驟更簡單。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44658 +msgid "" +"This method of updating the FreeBSD documentation is supported by a set of " +"documentation ports and packages which are updated by the Documentation " +"Engineering Team <email>doceng@FreeBSD.org</email> on a monthly basis. These " +"are listed in the FreeBSD Ports Collection, under the docs category (<link " +"xlink:href=\"http://www.freshports.org/docs/\">http://www.freshports.org/" +"docs/</link>)." +msgstr "" +"這個更新 FreeBSD 文件的方法,會使用到一系列由文件工程團隊 " +"<email>doceng@FreeBSD.org</email> 每月更新的文件 Ports 與套件。這些套件列於 " +"FreeBSD Ports 套件集的 docs 分類下 (<link xlink:href=\"http://www.freshports." +"org/docs/\">http://www.freshports.org/docs/</link>)。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44664 +msgid "Organization of the documentation ports is as follows:" +msgstr "文件 Ports 的組織方式如下:" + +#. (itstool) path: listitem/para +#: book.translate.xml:44669 +msgid "" +"The <package>misc/freebsd-doc-en</package> package or port installs all of " +"the English documentation." +msgstr "" +"<package>misc/freebsd-doc-en</package> 套件或 Port 會安裝所有英語的文件。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44674 +msgid "" +"The <package>misc/freebsd-doc-all</package> meta-package or port installs " +"all documentation in all available languages." +msgstr "" +"<package>misc/freebsd-doc-all</package> 套件或 Port 會安裝所有可用語言的文" +"件。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44680 +msgid "" +"There is a package and port for each translation, such as <package>misc/" +"freebsd-doc-hu</package> for the Hungarian documentation." +msgstr "" +"每個翻譯語言都有套件與 Port,如 <package>misc/freebsd-doc-hu</package> 為匈牙" +"利語文件。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44686 +msgid "" +"When binary packages are used, the FreeBSD documentation will be installed " +"in all available formats for the given language. For example, the following " +"command will install the latest package of the Hungarian documentation:" +msgstr "" +"當使用 Binary 套件時,會安裝指定語言 FreeBSD 文件的所有可用格式。例如以下指令" +"會安裝最新的匈牙利語文件套件:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44691 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install hu-freebsd-doc</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:44694 +msgid "" +"Packages use a format that differs from the corresponding port's name: " +"<literal><replaceable>lang</replaceable>-freebsd-doc</literal>, where " +"<replaceable>lang</replaceable> is the short format of the language code, " +"such as <literal>hu</literal> for Hungarian, or <literal>zh_cn</literal> for " +"Simplified Chinese." +msgstr "" +"套件使用的名稱格式與 Ports 的名稱不同:<literal><replaceable>lang</" +"replaceable>-freebsd-doc</literal>,其中 <replaceable>lang</replaceable> 是語" +"言代碼的縮寫,例如 <literal>hu</literal> 代表匈牙利語,<literal>zh_cn</" +"literal> 代表簡體中文。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44703 +msgid "" +"To specify the format of the documentation, build the port instead of " +"installing the package. For example, to build and install the English " +"documentation:" +msgstr "" +"要指定文件的格式,需以編譯 Port 來代替安裝套件。例如要編譯並安裝英語文件:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44707 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/misc/freebsd-doc-en</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44710 +msgid "" +"The port provides a configuration menu where the format to build and install " +"can be specified. By default, split <acronym>HTML</acronym>, similar to the " +"format used on <uri xlink:href=\"http://www.FreeBSD.org\">http://www.FreeBSD." +"org</uri>, and <acronym>PDF</acronym> are selected." +msgstr "" +"Ports 提供設定選單來指定要編譯與安裝的格式,預設為分頁的 <acronym>HTML</" +"acronym> (類似 <uri xlink:href=\"http://www.FreeBSD.org\">http://www." +"FreeBSD.org</uri> 使用的格式) 以及 <acronym>PDF</acronym>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44715 +msgid "" +"Alternately, several <command>make</command> options can be specified when " +"building a documentation port, including:" +msgstr "" +"此外,編譯文件 Ports 時也可指定數個 <command>make</command> 選項,包括:" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:44721 +msgid "<varname>WITH_HTML</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:44724 +msgid "" +"Builds the HTML format with a single HTML file per document. The formatted " +"documentation is saved to a file called <filename>article.html</filename>, " +"or <filename>book.html</filename>." +msgstr "" +"編譯一份文件使用一個 HTML 檔的 HTML 格式。格式化後的文件會儲存至名稱為 " +"<filename>article.html</filename> 或 <filename>book.html</filename> 的檔案。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:44732 +msgid "<varname>WITH_PDF</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:44735 +msgid "" +"The formatted documentation is saved to a file called <filename>article.pdf</" +"filename> or <filename>book.pdf</filename>." +msgstr "" +"格式化的文件會儲存至名稱為 <filename>article.pdf</filename> 或 " +"<filename>book.pdf</filename> 的檔案。" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:44742 +msgid "<varname>DOCBASE</varname>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:44745 +msgid "" +"Specifies where to install the documentation. It defaults to <filename>/usr/" +"local/share/doc/freebsd</filename>." +msgstr "" +"指定要安裝文件的位置,預設為 <filename>/usr/local/share/doc/freebsd</" +"filename>。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44752 +msgid "" +"This example uses variables to install the Hungarian documentation as a " +"<acronym>PDF</acronym> in the specified directory:" +msgstr "" +"以下範例使用變數來安裝 <acronym>PDF</acronym> 的匈牙利語文件到特定目錄:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44756 +#, no-wrap +msgid "" +"<prompt>#</prompt> cd /usr/ports/misc/freebsd-doc-hu\n" +"<prompt>#</prompt> make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:44759 +msgid "" +"Documentation packages or ports can be updated using the instructions in " +"<xref linkend=\"ports\"/>. For example, the following command updates the " +"installed Hungarian documentation using <package>ports-mgmt/portmaster</" +"package> by using packages only:" +msgstr "" +"文件套件或 Ports 可以依 <xref linkend=\"ports\"/> 的說明更新。例如以下指令會" +"使用 <package>ports-mgmt/portmaster</package> 更新已安裝的匈牙利語文件:" + +#. (itstool) path: sect2/screen +#: book.translate.xml:44765 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>portmaster -PP hu-freebsd-doc</userinput>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:44770 +msgid "Tracking a Development Branch" +msgstr "追蹤開發分支" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:44772 +msgid "<primary>-CURRENT</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:44773 +msgid "<primary>-STABLE</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:44775 +msgid "" +"FreeBSD has two development branches: FreeBSD-CURRENT and FreeBSD-STABLE." +msgstr "FreeBSD 有兩個開發分支:FreeBSD-CURRENT 及 FreeBSD-STABLE。" + +#. (itstool) path: sect1/para +#: book.translate.xml:44778 +msgid "" +"This section provides an explanation of each branch and its intended " +"audience, as well as how to keep a system up-to-date with each respective " +"branch." +msgstr "" +"本節將說明每個分支及其的特定使用者,也會說明如何在各別分支維持系統為最新版。" + +#. (itstool) path: sect2/title +#: book.translate.xml:44783 +msgid "Using FreeBSD-CURRENT" +msgstr "使用 FreeBSD-CURRENT" + +#. (itstool) path: sect2/para +#: book.translate.xml:44785 +msgid "" +"FreeBSD-CURRENT is the <quote>bleeding edge</quote> of FreeBSD development " +"and FreeBSD-CURRENT users are expected to have a high degree of technical " +"skill. Less technical users who wish to track a development branch should " +"track FreeBSD-STABLE instead." +msgstr "" +"FreeBSD-CURRENT 是 FreeBSD 開發的 <quote>最前線</quote>,FreeBSD-CURRENT 的使" +"用者需具備較強的技術能力。技術能力較弱的使用者應改追蹤 FreeBSD-STABLE 開發分" +"支。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44791 +msgid "" +"FreeBSD-CURRENT is the very latest source code for FreeBSD and includes " +"works in progress, experimental changes, and transitional mechanisms that " +"might or might not be present in the next official release. While many " +"FreeBSD developers compile the FreeBSD-CURRENT source code daily, there are " +"short periods of time when the source may not be buildable. These problems " +"are resolved as quickly as possible, but whether or not FreeBSD-CURRENT " +"brings disaster or new functionality can be a matter of when the source code " +"was synced." +msgstr "" +"FreeBSD-CURRENT 是 FreeBSD 最新的原始碼,其中包括正在進行的開發工作、實驗性的" +"變更以及不一定會在下一個官方發行版出現的過渡機制。 雖然 FreeBSD 開發者每天編" +"譯 FreeBSD-CURRENT 原始碼,但仍可能有短暫時間原始碼是無法編譯的。雖然這些問題" +"會儘快被解決,但是無論 FreeBSD-CURRENT 帶來災難或是新功能,同步原始碼時都要考" +"量這個問題。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44801 +msgid "FreeBSD-CURRENT is made available for three primary interest groups:" +msgstr "FreeBSD-CURRENT 主要給下以三種族群:" + +#. (itstool) path: listitem/para +#: book.translate.xml:44806 +msgid "" +"Members of the FreeBSD community who are actively working on some part of " +"the source tree." +msgstr "致力於開發某一部份原始碼樹的 FreeBSD 社群成員。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44811 +msgid "" +"Members of the FreeBSD community who are active testers. They are willing to " +"spend time solving problems, making topical suggestions on changes and the " +"general direction of FreeBSD, and submitting patches." +msgstr "" +"FreeBSD 社群成員中活耀的測試人員。 他們願意花時間解決問題,對 FreeBSD 的變更" +"及大方向提出專業建議並送交修補。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44818 +msgid "" +"Users who wish to keep an eye on things, use the current source for " +"reference purposes, or make the occasional comment or code contribution." +msgstr "" +"隨時關注的使用者,使用目前原始碼做為參考用途,或是偶爾提供意見或貢獻原始碼。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44824 +msgid "" +"FreeBSD-CURRENT should <emphasis>not</emphasis> be considered a fast-track " +"to getting new features before the next release as pre-release features are " +"not yet fully tested and most likely contain bugs. It is not a quick way of " +"getting bug fixes as any given commit is just as likely to introduce new " +"bugs as to fix existing ones. FreeBSD-CURRENT is not in any way " +"<quote>officially supported</quote>." +msgstr "" +"<emphasis>不應</emphasis>將 FreeBSD-CURRENT 當做下一個發行版前取得新功能的快" +"速途徑,因為尚未發行的功能並未被完整測試,很可能有問題。這也不是一個快速取得" +"問題修正的方式,因為任何已知的問題修正有可能產生新的問題。 使用 FreeBSD-" +"CURRENT 不在 <quote>官方支援</quote> 的範圍內。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:44832 +msgid "<primary>-CURRENT</primary> <secondary>using</secondary>" +msgstr "<primary>-CURRENT</primary> <secondary>使用</secondary>" + +#. (itstool) path: sect2/para +#: book.translate.xml:44837 +msgid "To track FreeBSD-CURRENT:" +msgstr "若要追蹤 FreeBSD-CURRENT:" + +#. (itstool) path: listitem/para +#: book.translate.xml:44841 +msgid "" +"Join the <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/" +"freebsd-current\">freebsd-current</link> and the <link xlink:href=\"http://" +"lists.FreeBSD.org/mailman/listinfo/svn-src-head\">svn-src-head</link> lists. " +"This is <emphasis>essential</emphasis> in order to see the comments that " +"people are making about the current state of the system and to receive " +"important bulletins about the current state of FreeBSD-CURRENT." +msgstr "" +"加入 <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"current\">freebsd-current</link> 和 <link xlink:href=\"http://lists.FreeBSD." +"org/mailman/listinfo/svn-src-head\">svn-src-head</link> 郵遞論壇。這是 " +"<emphasis>重要</emphasis> 的,是為了要了解目前人們對於系統目前狀態的評論並接" +"收有關 FreeBSD-CURRENT 目前狀態的重要公告。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44848 +msgid "" +"The <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-head" +"\">svn-src-head</link> list records the commit log entry for each change as " +"it is made, along with any pertinent information on possible side effects." +msgstr "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-head" +"\">svn-src-head</link> 郵遞論壇會記錄每一次修改的提交項目,以及可能產生的副作" +"用的相關資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44852 +msgid "" +"To join these lists, go to <link xlink:href=\"http://lists.FreeBSD.org/" +"mailman/listinfo\">http://lists.FreeBSD.org/mailman/listinfo</link>, click " +"on the list to subscribe to, and follow the instructions. In order to track " +"changes to the whole source tree, not just the changes to FreeBSD-CURRENT, " +"subscribe to the <link xlink:href=\"http://lists.FreeBSD.org/mailman/" +"listinfo/svn-src-all\">svn-src-all</link> list." +msgstr "" +"要加入這兩個郵遞論壇,請前往 <link xlink:href=\"http://lists.FreeBSD.org/" +"mailman/listinfo\">http://lists.FreeBSD.org/mailman/listinfo</link> 點選要訂" +"閱的郵遞論壇,並依照網頁指示的步驟操作。要追蹤整個原始碼樹,不單只有 FreeBSD-" +"CURRENT 的變更,可訂閱 <link xlink:href=\"http://lists.FreeBSD.org/mailman/" +"listinfo/svn-src-all\">svn-src-all</link> 郵遞論壇。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44860 +msgid "" +"Synchronize with the FreeBSD-CURRENT sources. Typically, <link linkend=\"svn" +"\">svn</link> is used to check out the -CURRENT code from the <literal>head</" +"literal> branch of one of the Subversion mirror sites listed in <xref " +"linkend=\"svn-mirrors\"/>." +msgstr "" +"同步 FreeBSD-CURRENT 原始碼。 通常會使用 <link linkend=\"svn\">svn</link> 自" +"列於 <xref linkend=\"svn-mirrors\"/> 中的其中一個 Subversion 鏡像站的 " +"<literal>head</literal> 分支中取出 -CURRENT 的程式碼。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44868 +msgid "" +"Due to the size of the repository, some users choose to only synchronize the " +"sections of source that interest them or which they are contributing patches " +"to. However, users that plan to compile the operating system from source " +"must download <emphasis>all</emphasis> of FreeBSD-CURRENT, not just selected " +"portions." +msgstr "" +"考量到檔案庫的大小,部份使用者選擇只同步他們有興趣或貢獻修補的部份原始碼。然" +"而, 計劃要從原始碼編譯整個作業系統的使用者須下載 <emphasis>全部</emphasis> " +"的 FreeBSD-CURRENT,不可只有選擇的部份。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:44876 +msgid "<primary>-CURRENT</primary> <secondary>compiling</secondary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:44875 +msgid "" +"Before compiling FreeBSD-CURRENT <_:indexterm-1/>, read <filename>/usr/src/" +"Makefile</filename> very carefully and follow the instructions in <xref " +"linkend=\"makeworld\"/>. Read the <link xlink:href=\"http://lists.FreeBSD." +"org/mailman/listinfo/freebsd-current\">FreeBSD-CURRENT mailing list</link> " +"and <filename>/usr/src/UPDATING</filename> to stay up-to-date on other " +"bootstrapping procedures that sometimes become necessary on the road to the " +"next release." +msgstr "" +"編譯 FreeBSD-CURRENT <_:indexterm-1/> 前,請仔細地閱讀 <filename>/usr/src/" +"Makefile</filename> 並依照 <xref linkend=\"makeworld\"/> 的指示操作。 閱讀 " +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-current" +"\">FreeBSD-CURRENT 郵遞論壇</link> 以及 <filename>/usr/src/UPDATING</" +"filename> 來了解升級的相關資訊,有時會含有升級下一個發行版的必要資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44890 +msgid "" +"Be active! FreeBSD-CURRENT users are encouraged to submit their suggestions " +"for enhancements or bug fixes. Suggestions with accompanying code are always " +"welcome." +msgstr "" +"積極!很鼓勵 FreeBSD-CURRENT 使用者發表他們對加強哪些功能或是修復哪些錯誤的建" +"議。 如果您在建議時能附上相關程式碼的話, 那真是太棒了!" + +#. (itstool) path: sect2/title +#: book.translate.xml:44899 +msgid "Using FreeBSD-STABLE" +msgstr "使用 FreeBSD-STABLE" + +#. (itstool) path: sect2/para +#: book.translate.xml:44901 +msgid "" +"FreeBSD-STABLE is the development branch from which major releases are made. " +"Changes go into this branch at a slower pace and with the general assumption " +"that they have first been tested in FreeBSD-CURRENT. This is " +"<emphasis>still</emphasis> a development branch and, at any given time, the " +"sources for FreeBSD-STABLE may or may not be suitable for general use. It is " +"simply another engineering development track, not a resource for end-users. " +"Users who do not have the resources to perform testing should instead run " +"the most recent release of FreeBSD." +msgstr "" +"主要發行版便是使用 FreeBSD-STABLE 這個開發分支所產生。變更進入這個分支的速度" +"比較慢,並假設這些變更已經先在 FreeBSD-CURRENT 測試過。但這 <emphasis>仍然</" +"emphasis> 是一個開發分支,而且 FreeBSD-STABLE 的原始碼在任何時候都有可能不適" +"合一般的使用。它只是另一個開發分支,並非專門提供給終端使用者使用。若沒有替代" +"資源可供測試的使用者應該改使用最新的 FreeBSD 發行版。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44912 +msgid "" +"Those interested in tracking or contributing to the FreeBSD development " +"process, especially as it relates to the next release of FreeBSD, should " +"consider following FreeBSD-STABLE." +msgstr "" +"有興趣追蹤或對 FreeBSD 開發流程貢獻的人,尤其是對 FreeBSD 接下來的發行版相關" +"內容有興趣的人,應該考慮追蹤 FreeBSD-STABLE。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44916 +msgid "" +"While the FreeBSD-STABLE branch should compile and run at all times, this " +"cannot be guaranteed. Since more people run FreeBSD-STABLE than FreeBSD-" +"CURRENT, it is inevitable that bugs and corner cases will sometimes be found " +"in FreeBSD-STABLE that were not apparent in FreeBSD-CURRENT. For this " +"reason, one should not blindly track FreeBSD-STABLE. It is particularly " +"important <emphasis>not</emphasis> to update any production servers to " +"FreeBSD-STABLE without thoroughly testing the code in a development or " +"testing environment." +msgstr "" +"儘管 FreeBSD-STABLE 分支應該在任何時候均能正確編譯、執行,但是並不保証不會有" +"問題。因為使用 FreeBSD-STABLE 的人比 FreeBSD-CURRENT 多,有時無可避免地會在 " +"FreeBSD-STABLE 發現在 FreeBSD-CURRENT 並非顯而易見的錯誤和極端的狀況。也因" +"此,我們並不建議盲目追蹤 FreeBSD-STABLE。 特別重要的是 <emphasis>不要</" +"emphasis> 在尚未使用開發或測試環境對程式碼做完整的測試之前,升級任何上線的伺" +"服器為 FreeBSD-STABLE。" + +#. (itstool) path: sect2/para +#: book.translate.xml:44926 +msgid "To track FreeBSD-STABLE:" +msgstr "若要追蹤 FreeBSD-STABLE:" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:44928 +msgid "<primary>-STABLE</primary> <secondary>using</secondary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:44934 +msgid "" +"Join the <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/" +"freebsd-stable\">freebsd-stable</link> list in order to stay informed of " +"build dependencies that may appear in FreeBSD-STABLE or any other issues " +"requiring special attention. Developers will also make announcements in this " +"mailing list when they are contemplating some controversial fix or update, " +"giving the users a chance to respond if they have any issues to raise " +"concerning the proposed change." +msgstr "" +"加入 <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"stable\">freebsd-stable</link> 郵遞論壇來隨時瞭解 FreeBSD-STABLE 編譯的相依關" +"係或是任何其他需特別注意的議題。開發者在評估一些有爭議的修正或更新時,也會先" +"在這裡發信公告,讓使用者有機會可以對提案的更改提出問題。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44943 +msgid "" +"Join the relevant <application>svn</application> list for the branch being " +"tracked. For example, users tracking the 9-STABLE branch should join the " +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-" +"stable-9\">svn-src-stable-9</link> list. This list records the commit log " +"entry for each change as it is made, along with any pertinent information on " +"possible side effects." +msgstr "" +"加入 <application>svn</application>相關郵遞論壇來追蹤該分支的修訂。 例如,要" +"追蹤 9-STABLE 分支的使用者應該加入 <link xlink:href=\"http://lists.FreeBSD." +"org/mailman/listinfo/svn-src-stable-9\">svn-src-stable-9</link> 郵遞論壇。這" +"個郵遞論壇會記錄每一次修改的提交項目,以及可能產生的副作用的相關資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44951 +msgid "" +"To join these lists, go to <link xlink:href=\"http://lists.FreeBSD.org/" +"mailman/listinfo\">http://lists.FreeBSD.org/mailman/listinfo</link>, click " +"on the list to subscribe to, and follow the instructions. In order to track " +"changes for the whole source tree, subscribe to <link xlink:href=\"http://" +"lists.FreeBSD.org/mailman/listinfo/svn-src-all\">svn-src-all</link>." +msgstr "" +"要加入這兩個郵遞論壇,請前往 <link xlink:href=\"http://lists.FreeBSD.org/" +"mailman/listinfo\">http://lists.FreeBSD.org/mailman/listinfo</link> 點選要訂" +"閱的郵遞論壇,並依照網頁指示的步驟操作。要追蹤整個原始碼樹,不單只有 FreeBSD-" +"CURRENT 的變更,可訂閱 <link xlink:href=\"http://lists.FreeBSD.org/mailman/" +"listinfo/svn-src-all\">svn-src-all</link> 郵遞論壇。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44958 +msgid "" +"To install a new FreeBSD-STABLE system, install the most recent FreeBSD-" +"STABLE release from the <link linkend=\"mirrors\">FreeBSD mirror sites</" +"link> or use a monthly snapshot built from FreeBSD-STABLE. Refer to <link " +"xlink:href=\"@@URL_RELPREFIX@@/snapshots/\">www.freebsd.org/snapshots</link> " +"for more information about snapshots." +msgstr "" +"要安裝新的 FreeBSD-STABLE 系統, 可從 <link linkend=\"mirrors\">FreeBSD 鏡像" +"站</link> 或從 FreeBSD-STABLE 每個月的快照 (Snapshot) 來安裝最新的 FreeBSD-" +"STABLE 發行版。請參考 <link xlink:href=\"@@URL_RELPREFIX@@/snapshots/\">www." +"freebsd.org/snapshots</link> 來取得更多有關快照的資訊。" + +#. (itstool) path: listitem/para +#: book.translate.xml:44963 +msgid "" +"To compile or upgrade to an existing FreeBSD system to FreeBSD-STABLE, use " +"<link linkend=\"svn\">svn</link> <_:indexterm-1/> to check out the source " +"for the desired branch. Branch names, such as <literal>stable/9</literal>, " +"are listed at <link xlink:href=\"@@URL_RELPREFIX@@/releng/\">www.freebsd.org/" +"releng</link>." +msgstr "" +"要編譯或升級已經安裝的 FreeBSD 系統至 FreeBSD-STABLE,可使用 <link linkend=" +"\"svn\">svn</link> <_:indexterm-1/> 來取得欲安裝分支的原始碼。分支的名稱列在 " +"<link xlink:href=\"@@URL_RELPREFIX@@/releng/\">www.freebsd.org/releng</" +"link>,例如 <literal>stable/9</literal>。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:44974 +msgid "<primary>-STABLE</primary> <secondary>compiling</secondary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:44973 +msgid "" +"Before compiling or upgrading to FreeBSD-STABLE <_:indexterm-1/>, read " +"<filename>/usr/src/Makefile</filename> carefully and follow the instructions " +"in <xref linkend=\"makeworld\"/>. Read <link xlink:href=\"http://lists." +"FreeBSD.org/mailman/listinfo/freebsd-stable\">FreeBSD-STABLE mailing list</" +"link> and <filename>/usr/src/UPDATING</filename> to keep up-to-date on other " +"bootstrapping procedures that sometimes become necessary on the road to the " +"next release." +msgstr "" +"在編譯或升級到 FreeBSD-STABLE <_:indexterm-1/> 之前 , 請仔細閱讀 <filename>/" +"usr/src/Makefile</filename> 並依照 <xref linkend=\"makeworld\"/> 的指示操作。" +"閱讀 <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"stable\">FreeBSD-STABLE 郵遞論壇</link> 以及 <filename>/usr/src/UPDATING</" +"filename> 來了解升級的相關資訊,有時會含有升級下一個發行版的必要資訊。" + +#. (itstool) path: sect1/title +#: book.translate.xml:44988 +msgid "Synchronizing Source" +msgstr "同步原始碼" + +#. (itstool) path: sect1/para +#: book.translate.xml:44990 +msgid "" +"There are various methods for staying up-to-date with the FreeBSD sources. " +"This section describes the primary service, <application>Subversion</" +"application>." +msgstr "" +"有多許方法可以更新 FreeBSD 的原始碼,本節將說明主要的方法 " +"<application>Subversion</application>。" + +#. (itstool) path: warning/para +#: book.translate.xml:44995 +msgid "" +"While it is possible to update only parts of the source tree, the only " +"supported update procedure is to update the entire tree and recompile all " +"the programs that run in user space, such as those in <filename>/bin</" +"filename> and <filename>/sbin</filename>, and kernel sources. Updating only " +"part of the source tree, only the kernel, or only the userland programs will " +"often result in problems ranging from compile errors to kernel panics or " +"data corruption." +msgstr "" +"雖然有可能只更新部份原始碼樹,但是正式支援的更新步驟是更新整個樹並重新編譯所" +"有在使用者空間 (User space) 中的程式,例如在 <filename>/bin</filename> 和 " +"<filename>/sbin</filename> 中的程式及核心原始碼。只更新部份的原始碼樹,例如:" +"只更新核心或使用者空間的程式的做法經常會導致編譯錯誤、核心錯誤或資料損毀的問" +"題。" + +#. (itstool) path: sect1/para +#: book.translate.xml:45009 +msgid "" +"<application>Subversion</application> uses the <emphasis>pull</emphasis> " +"model of updating sources. The user, or a <command>cron</command> script, " +"invokes the <command>svn</command> program which updates the local version " +"of the source. <application>Subversion</application> is the preferred method " +"for updating local source trees as updates are up-to-the-minute and the user " +"controls when updates are downloaded. It is easy to restrict updates to " +"specific files or directories and the requested updates are generated on the " +"fly by the server. How to synchronize source using <application>Subversion</" +"application> is described in <xref linkend=\"svn\"/>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:45021 +msgid "" +"If a user inadvertently wipes out portions of the local archive, " +"<application>Subversion</application> will detect and rebuild the damaged " +"portions during an update." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:45027 +msgid "Rebuilding World" +msgstr "重新編譯 World" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:45029 +msgid "<primary>Rebuilding <quote>world</quote></primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:45032 +msgid "" +"Once the local source tree is synchronized against a particular version of " +"FreeBSD such as FreeBSD-STABLE or FreeBSD-CURRENT, the source tree can be " +"used to rebuild the system. This process is known as rebuilding world." +msgstr "" +"當本地的原始碼樹已與特定版本的 FreeBSD 如 FreeBSD-STABLE 或 FreeBSD-CURRENT " +"同步以後,便可使用原始碼樹來重新編譯系統。這個程序即為重新編譯 World。" + +#. (itstool) path: sect1/para +#: book.translate.xml:45037 +msgid "" +"<emphasis>Before</emphasis> rebuilding world, be sure to perform the " +"following tasks:" +msgstr "在重新編譯 World <emphasis>之前</emphasis>,請確定已完成以下工作:" + +#. (itstool) path: procedure/title +#: book.translate.xml:45041 +msgid "Perform These Tasks <emphasis>Before</emphasis> Building World" +msgstr "編譯 World <emphasis>之前</emphasis> 要完成的工作" + +#. (itstool) path: step/para +#: book.translate.xml:45045 +msgid "" +"Backup all important data to another system or removable media, verify the " +"integrity of the backup, and have a bootable installation media at hand. It " +"cannot be stressed enough how important it is to make a backup of the system " +"<emphasis>before</emphasis> rebuilding the system. While rebuilding world is " +"an easy task, there will inevitably be times when mistakes in the source " +"tree render the system unbootable. You will probably never have to use the " +"backup, but it is better to be safe than sorry!" +msgstr "" +"備份所有重要的資料到另一個系統或可卸除的媒體,檢查備份的完整性並在手中保留一" +"份可開機的安裝媒體。如何強調都不足夠說明在重新編譯系統 <emphasis>之前</" +"emphasis> 備份系統的重要性。即便重新編譯 World 已變成簡單的一件事,也難免會有" +"原始碼樹失誤導致系統無法開機的時候。您可能永遠都用不上備份,但最好確保安全而" +"非後悔。" + +#. (itstool) path: step/indexterm +#: book.translate.xml:45057 +msgid "<primary>mailing list</primary>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45058 +msgid "" +"Review the recent <link xlink:href=\"http://lists.FreeBSD.org/mailman/" +"listinfo/freebsd-stable\">freebsd-stable</link> or <link xlink:href=\"http://" +"lists.FreeBSD.org/mailman/listinfo/freebsd-current\">freebsd-current</link> " +"entries, depending upon the branch being tracked. Be aware of any known " +"problems and which systems are affected. If a known issue affects the " +"version of synchronized code, wait for an <quote>all clear</quote> " +"announcement to be posted stating that the problem has been solved. " +"Resynchronize the sources to ensure that the local version of source has the " +"needed fix." +msgstr "" +"回顧最近 <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/" +"freebsd-stable\">freebsd-stable</link> 或 <link xlink:href=\"http://lists." +"FreeBSD.org/mailman/listinfo/freebsd-current\">freebsd-current</link> 中的項" +"目,依您所追蹤的分支決定。注意任何已知的問題以及會被影響的系統。若已知的問題" +"影響您已同步的原始碼版本,請等候表明問題已被解決的 <quote>全部解決 (all " +"clear)</quote> 公告發佈,然後重新同步原始碼並確認本地的原始碼版本已含有所需的" +"修正。" + +#. (itstool) path: step/para +#: book.translate.xml:45069 +msgid "" +"Read <filename>/usr/src/UPDATING</filename> for any extra steps necessary " +"for that version of the source. This file contains important information " +"about potential problems and may specify the order to run certain commands. " +"Many upgrades require specific additional steps such as renaming or deleting " +"specific files prior to installing the new world. These will be listed at " +"the end of this file where the currently recommended upgrade sequence is " +"explicitly spelled out. If <filename>UPDATING</filename> contradicts any " +"steps in this chapter, the instructions in <filename>UPDATING</filename> " +"take precedence and should be followed." +msgstr "" +"閱讀 <filename>/usr/src/UPDATING</filename> 了解該版本的原始碼是否有必要的額" +"外步驟要完成。 這個檔案中會包含有關潛藏問題的重要資訊,並且可能會要求執行某些" +"指令。大多升級需要完成指定的額外步驟,例如:在安裝新 World 前重新命名或刪除指" +"定檔案,這些步驟會列在檔案最後,明確說明目前建議的升級順序。若 " +"<filename>UPDATING</filename> 中有與本章相矛盾的步驟,請以 " +"<filename>UPDATING</filename> 為準並應遵循其內容。" + +#. (itstool) path: warning/title +#: book.translate.xml:45085 +msgid "Do Not Use <command>make world</command>" +msgstr "不要使用 <command>make world</command>" + +#. (itstool) path: warning/para +#: book.translate.xml:45087 +msgid "" +"Some older documentation recommends using <command>make world</command>. " +"However, that command skips some important steps and should only be used by " +"experts. For almost all circumstances <command>make world</command> is the " +"wrong thing to do, and the procedure described here should be used instead." +msgstr "" +"部份舊版的文件建議使用 <command>make world</command>。然而該指令跳過了部份重" +"要的步驟,應僅供專家使用。大多數的情況使用 <command>make world</command> 都是" +"錯的,並應使用此處說明的程序。" + +#. (itstool) path: sect2/title +#: book.translate.xml:45096 +msgid "Overview of Process" +msgstr "流程概述" + +#. (itstool) path: sect2/para +#: book.translate.xml:45098 +msgid "" +"The build world process assumes an upgrade from an older FreeBSD version " +"using the source of a newer version that was obtained using the instructions " +"in <xref linkend=\"synching\"/>." +msgstr "" +"編譯 World 流程會假設您是依照 <xref linkend=\"synching\"/> 指示取得最近版本的" +"原始碼來升級舊版的 FreeBSD。" + +#. (itstool) path: sect2/para +#: book.translate.xml:45102 +msgid "" +"In FreeBSD, the term <quote>world</quote> includes the kernel, core system " +"binaries, libraries, programming files, and built-in compiler. The order in " +"which these components are built and installed is important." +msgstr "" +"在 FreeBSD,<quote>world</quote> 一詞包含了核心,核心系統 Binary,程式庫,原" +"始碼以及內建的編譯器。這些元件編譯與安裝的順序非常重要。" + +#. (itstool) path: sect2/para +#: book.translate.xml:45107 +msgid "" +"For example, the old compiler might have a bug and not be able to compile " +"the new kernel. Since the new kernel should be built with the new compiler, " +"the new compiler must be built, but not necessarily installed, before the " +"new kernel is built." +msgstr "" +"舉例來說,舊的編譯器可能有問題而無法編譯新的核心。新的核心需使用新的編譯器來" +"編譯,因此新的編譯器必需先編譯,但在新核心編譯前並不一定要安裝。" + +#. (itstool) path: sect2/para +#: book.translate.xml:45113 +msgid "" +"The new world might rely on new kernel features, so the new kernel must be " +"installed before the new world is installed. The old world might not run " +"correctly on the new kernel, so the new world must be installed immediately " +"upon installing the new kernel." +msgstr "" +"新的 World 可能需要使用新的核心功能,所以必須在新的 World 安裝之前先安裝新的" +"核心。舊的 World 也可能在新的核心上無法正常執行,所以必須在新的核心安裝完之" +"後\n" +"馬上安裝新的 World。" + +#. (itstool) path: sect2/para +#: book.translate.xml:45119 +msgid "" +"Some configuration changes must be made before the new world is installed, " +"but others might break the old world. Hence, two different configuration " +"upgrade steps are used. For the most part, the update process only replaces " +"or adds files and existing old files are not deleted. Since this can cause " +"problems, <filename>/usr/src/UPDATING</filename> will indicate if any files " +"need to be manually deleted and at which step to do so." +msgstr "" +"有一部份設定必須在新的 World 安裝前變更,但其他的部份在之前變更則可能會破壞舊" +"的 World。因此會使用到兩種不同的設定升級步驟。大部份情況,更新程序只會取代或" +"新增檔案,不會刪除已存在的舊檔案。當這可能會造成問題時 <filename>/usr/src/" +"UPDATING</filename> 便會說明需要手動刪除的檔案以及操作的步驟。" + +#. (itstool) path: sect2/para +#: book.translate.xml:45128 +msgid "" +"These concerns have led to the recommended upgrade sequence described in the " +"following procedure." +msgstr "這些問題會影響接下來的建議升級順序。" + +#. (itstool) path: note/para +#: book.translate.xml:45132 +msgid "" +"It is a good idea to save the output from running <command>make</command> to " +"a file. If something goes wrong, a copy of the error message can be posted " +"to one of the FreeBSD mailing lists." +msgstr "" +"將執行 <command>make</command> 的輸出儲存到檔案是不錯的辦法,若發生錯誤時,便" +"可複製錯誤訊息張貼到 FreeBSD 郵遞論壇。" + +#. (itstool) path: note/para +#: book.translate.xml:45137 +msgid "" +"The easiest way to do this is to use <command>script</command> with a " +"parameter that specifies the name of the file to save all output to. Do not " +"save the output to <filename>/tmp</filename> as this directory may be " +"cleared at next reboot. A better place to save the file is <filename>/var/" +"tmp</filename>. Run this command immediately before rebuilding the world, " +"and then type <userinput>exit</userinput> when the process has finished:" +msgstr "" +"最簡單的方式是使用 <command>script</command> 並透過參數指定要儲存所有輸出的檔" +"案名稱。請不要儲存輸出到 <filename>/tmp</filename>,因這個目錄可能在下次重新" +"開機後被清除。儲存檔案最好的地方是 <filename>/var/tmp</filename>。在重新編譯 " +"World 之前執行這個指令,並在流程完成後輸入 <userinput>exit</userinput>:" + +#. (itstool) path: note/screen +#: book.translate.xml:45147 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>script <replaceable>/var/tmp/mw.out</replaceable></userinput>\n" +"Script started, output file is /var/tmp/mw.out" +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:45152 +msgid "Overview of Build World Process" +msgstr "編譯 World 流程概述" + +#. (itstool) path: procedure/para +#: book.translate.xml:45154 +msgid "" +"The commands used in the build world process should be run in the order " +"specified here. This section summarizes the function of each command." +msgstr "" +"編譯 World 流程中使用的指令應依此處指定的順序執行。本節將摘要各指令的功能。" + +#. (itstool) path: step/para +#: book.translate.xml:45159 +msgid "" +"If the build world process has previously been run on this system, a copy of " +"the previous build may still exist in <filename>/usr/obj</filename>. To " +"speed up the new build world process, and possibly save some dependency " +"headaches, remove this directory if it already exists:" +msgstr "" +"若編譯 World 流程先前已在系統執行過,先前編譯的結果可能遺留在 <filename>/usr/" +"obj</filename>。要加速新的編譯 World 流程及節省處理相依問題的時間,若此目錄存" +"在,請移除此目錄:" + +#. (itstool) path: step/screen +#: book.translate.xml:45166 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>chflags -R noschg /usr/obj/*</userinput>\n" +"<prompt>#</prompt> <userinput>rm -rf /usr/obj</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45171 +msgid "" +"Compile the new compiler and a few related tools, then use the new compiler " +"to compile the rest of the new world. The result is saved to <filename>/usr/" +"obj</filename>." +msgstr "" +"編譯新的編譯器及一些相關工具,然後使用新的編譯器編譯新的 World。編譯的結果會" +"儲存到 <filename>/usr/obj</filename>。" + +#. (itstool) path: step/screen +#: book.translate.xml:45175 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make buildworld</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45180 +msgid "" +"Use the new compiler residing in <filename>/usr/obj</filename> to build the " +"new kernel, in order to protect against compiler-kernel mismatches. This is " +"necessary, as certain memory structures may have changed, and programs like " +"<command>ps</command> and <command>top</command> will fail to work if the " +"kernel and source code versions are not the same." +msgstr "" +"使用在 <filename>/usr/obj</filename> 中的新編譯器來編譯新的核心,來確保不會發" +"生編譯器與核心不相容的問題。因某些記憶體結構可能有修改,這個步驟是必要的,若" +"核心與原始碼的版本不同,<command>ps</command> 及 <command>top</command> 這類" +"的程式會無法運作。" + +#. (itstool) path: step/screen +#: book.translate.xml:45188 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make buildkernel</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45192 +msgid "" +"Install the new kernel and kernel modules, making it possible to boot with " +"the newly updated kernel. If <varname>kern.securelevel</varname> has been " +"raised above <literal>1</literal> <emphasis>and</emphasis> <literal>noschg</" +"literal> or similar flags have been set on the kernel binary, drop the " +"system into single-user mode first. Otherwise, this command can be run from " +"multi-user mode without problems. See <citerefentry><refentrytitle>init</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for details about " +"<varname>kern.securelevel</varname> and " +"<citerefentry><refentrytitle>chflags</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> for details about the various file flags." +msgstr "" +"安裝新的核心與新的核心模組,讓開機時可以使用新的核心。這個指令可在多使用者模" +"式執行,除非 <varname>kern.securelevel</varname> 設定在 <literal>1</literal> " +"以上 <emphasis>且</emphasis> 在核心 Binary 有設定 <literal>noschg</literal> " +"或類似的旗標 (Flag),請先讓系統進入單使用者模式。請參考 " +"<citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> 取得有關 <varname>kern.securelevel</varname> 的詳細資訊以及 " +"<citerefentry><refentrytitle>chflags</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> 取得有關各種檔案旗標的詳細資訊。" + +#. (itstool) path: step/screen +#: book.translate.xml:45204 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make installkernel</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45208 +msgid "" +"Drop the system into single-user mode in order to minimize problems from " +"updating any binaries that are already running. It also minimizes any " +"problems from running the old world on a new kernel." +msgstr "" +"讓系統進入單使用者模組來減少升級任何已在執行中的 Binary 所產生的問題,同樣也" +"可減少在新核心上執行舊 World 的問題。" + +#. (itstool) path: step/screen +#: book.translate.xml:45213 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>shutdown now</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45215 +msgid "" +"Once in single-user mode, run these commands if the system is formatted with " +"UFS:" +msgstr "進入單使用者模式後,若系統磁碟格式為 UFS 請執行以下指令:" + +#. (itstool) path: step/screen +#: book.translate.xml:45218 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mount -u /</userinput>\n" +"<prompt>#</prompt> <userinput>mount -a -t ufs</userinput>\n" +"<prompt>#</prompt> <userinput>swapon -a</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45222 +msgid "" +"If the system is instead formatted with ZFS, run these two commands. This " +"example assumes a zpool name of <literal>zroot</literal>:" +msgstr "" +"若系統磁碟格式為 ZFS,則需執行以下兩個指令。此範例假設 zpool 名稱為 " +"<literal>zroot</literal>:" + +#. (itstool) path: step/screen +#: book.translate.xml:45226 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>zfs set readonly=off zroot</userinput>\n" +"<prompt>#</prompt> <userinput>zfs mount -a</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45231 +msgid "" +"Optional: If a keyboard mapping other than the default US English is " +"desired, it can be changed with <citerefentry><refentrytitle>kbdmap</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>:" +msgstr "" +"選用:若想要使用 US 英文以外的鍵盤對應表,可以使用 " +"<citerefentry><refentrytitle>kbdmap</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 來變更:" + +#. (itstool) path: step/screen +#: book.translate.xml:45235 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kbdmap</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45239 +msgid "" +"Then, for either file system, if the <acronym>CMOS</acronym> clock is set to " +"local time (this is true if the output of <citerefentry><refentrytitle>date</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> does not show the " +"correct time and zone), run:" +msgstr "" +"接著,不論那一種檔案系統,若 <acronym>CMOS</acronym> 時鐘設定為本地時間 (若 " +"<citerefentry><refentrytitle>date</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> 顯示不正確的時間與時區),請執行:" + +#. (itstool) path: step/screen +#: book.translate.xml:45244 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>adjkerntz -i</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45248 +msgid "" +"Remaking the world will not update certain directories, such as <filename>/" +"etc</filename>, <filename>/var</filename> and <filename>/usr</filename>, " +"with new or changed configuration files. The next step is to perform some " +"initial configuration file updates to <filename>/etc</filename> in " +"preparation for the new world. The following command compares only those " +"files that are essential for the success of <_:buildtarget-1/>. For " +"instance, this step may add new groups, system accounts, or startup scripts " +"which have been added to FreeBSD since the last update. This is necessary so " +"that the <_:buildtarget-2/> step will be able to use any new system " +"accounts, groups, and scripts. Refer to <xref linkend=\"mergemaster\"/> for " +"more detailed instructions about this command:" +msgstr "" +"重新編譯 World 不會直接更新某些目錄中的設定檔,如 <filename>/etc</filename>, " +"<filename>/var</filename> 以及 <filename>/usr</filename>。接下來的步驟是更新" +"一部份的設定檔到 <filename>/etc</filename> 來準備安裝新的 World。以下指令只會" +"比對影響 <_:buildtarget-1/> 是否成功執行的必要檔案。例如,這個步驟會可能會加" +"入新版 FreeBSD 的新群組、系統帳號或啟動 Script。為了讓 <_:buildtarget-2/> 步" +"驟可以使用任何新的系統帳號、群組與 Script,這是個必要的步驟。請參考 <xref " +"linkend=\"mergemaster\"/> 來取得更多有關此指令的詳細操作說明:" + +#. (itstool) path: step/screen +#: book.translate.xml:45265 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mergemaster -p</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45269 +msgid "" +"Install the new world and system binaries from <filename>/usr/obj</filename>." +msgstr "從 <filename>/usr/obj</filename> 安裝新 World 與系統 Binary。" + +#. (itstool) path: step/screen +#: book.translate.xml:45272 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make installworld</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45277 +msgid "Update any remaining configuration files." +msgstr "更新任何剩下的設定檔。" + +#. (itstool) path: step/screen +#: book.translate.xml:45279 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mergemaster -iF</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45283 +msgid "" +"Delete any obsolete files. This is important as they may cause problems if " +"left on the disk." +msgstr "刪除任何過時的檔案。這很重要,因為若檔案遺留在磁碟上可能會造成問題。" + +#. (itstool) path: step/screen +#. (itstool) path: sect2/screen +#: book.translate.xml:45286 book.translate.xml:45673 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make delete-old</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45290 +msgid "" +"A full reboot is now needed to load the new kernel and new world with the " +"new configuration files." +msgstr "現在需要完整重新啟動來載入新的核心、新的 World 與新的設定檔。" + +#. (itstool) path: step/screen +#: book.translate.xml:45293 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>reboot</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:45297 +msgid "" +"Make sure that all installed ports have first been rebuilt before old " +"libraries are removed using the instructions in <xref linkend=\"ports-" +"upgrading\"/>. When finished, remove any obsolete libraries to avoid " +"conflicts with newer ones. For a more detailed description of this step, " +"refer to <xref linkend=\"make-delete-old\"/>." +msgstr "" +"確認所有已安裝的 Ports 在舊的程式庫移除前已依照 <xref linkend=\"ports-" +"upgrading\"/> 的說明重新編譯。當重新編譯完成後,移除過時的程式庫來避免與新的" +"程式庫發生衝突。有關此步驟更詳細的說明請參考 <xref linkend=\"make-delete-old" +"\"/>。" + +#. (itstool) path: step/screen +#. (itstool) path: sect2/screen +#: book.translate.xml:45304 book.translate.xml:45722 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make delete-old-libs</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45310 +msgid "" +"If the system can have a window of down-time, consider compiling the system " +"in single-user mode instead of compiling the system in multi-user mode, and " +"then dropping into single-user mode for the installation. Reinstalling the " +"system touches a lot of important system files, all the standard system " +"binaries, libraries, and include files. Changing these on a running system, " +"particularly one with active users, is asking for trouble." +msgstr "" +"若系統允許停機一小段時間,請考慮以單使用者模式編譯系統來替代在多使用者模組編" +"譯系統,然後進入單使用者模式來完成安裝。重新安裝系統會觸及到很多重要的系統檔" +"案,所有的標準系統 Binary、程式庫以及引用檔。在執行中的系統更換這些檔案,特別" +"是有使用者在使用時,是自找麻煩。" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:45323 +msgid "<primary><filename>make.conf</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45327 +msgid "This build world process uses several configuration files." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45330 +msgid "" +"The <filename>Makefile</filename> located in <filename>/usr/src</filename> " +"describes how the programs that comprise FreeBSD should be built and the " +"order in which they should be built." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45335 +msgid "" +"The options available to <command>make</command> are described in " +"<citerefentry><refentrytitle>make.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> and some common examples are included in " +"<filename>/usr/share/examples/etc/make.conf</filename>. Any options which " +"are added to <filename>/etc/make.conf</filename> will control the how " +"<command>make</command> runs and builds programs. These options take effect " +"every time <command>make</command> is used, including compiling applications " +"from the Ports Collection, compiling custom C programs, or building the " +"FreeBSD operating system. Changes to some settings can have far-reaching and " +"potentially surprising effects. Read the comments in both locations and keep " +"in mind that the defaults have been chosen for a combination of performance " +"and safety." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:45350 +msgid "<primary><filename>src.conf</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45354 +msgid "" +"How the operating system is built from source code is controlled by " +"<filename>/etc/src.conf</filename>. Unlike <filename>/etc/make.conf</" +"filename>, the contents of <filename>/etc/src.conf</filename> only take " +"effect when the FreeBSD operating system itself is being built. Descriptions " +"of the many options available for this file are shown in " +"<citerefentry><refentrytitle>src.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>. Be cautious about disabling seemingly unneeded " +"kernel modules and build options. Sometimes there are unexpected or subtle " +"interactions." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:45366 +msgid "Variables and Targets" +msgstr "變數與目標" + +#. (itstool) path: sect2/para +#: book.translate.xml:45368 +msgid "The general format for using <command>make</command> is as follows:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:45371 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make -<replaceable>x</replaceable> -D<replaceable>VARIABLE</replaceable> <replaceable>target</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45373 +msgid "" +"In this example, <option>-<replaceable>x</replaceable></option> is an option " +"passed to <command>make</command>. Refer to " +"<citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> for examples of the available options." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45378 +msgid "" +"To pass a variable, specify the variable name with <option>-" +"D<replaceable>VARIABLE</replaceable></option>. The behavior of the " +"<filename>Makefile</filename> is controlled by variables. These can either " +"be set in <filename>/etc/make.conf</filename> or they can be specified when " +"using <command>make</command>. For example, this variable specifies that " +"profiled libraries should not be built:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:45387 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make -DNO_PROFILE <replaceable>target</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45389 +msgid "" +"It corresponds with this setting in <filename>/etc/make.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:45392 +#, no-wrap +msgid "NO_PROFILE= true # Avoid compiling profiled libraries" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45394 +msgid "" +"The <replaceable>target</replaceable> tells <command>make</command> what to " +"do and the <filename>Makefile</filename> defines the available targets. Some " +"targets are used by the build process to break out the steps necessary to " +"rebuild the system into a number of sub-steps." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45401 +msgid "" +"Having separate options is useful for two reasons. First, it allows for a " +"build that does not affect any components of a running system. Because of " +"this, <_:buildtarget-1/> can be safely run on a machine running in multi-" +"user mode. It is still recommended that <_:buildtarget-2/> be run in part in " +"single-user mode, though." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45409 +msgid "" +"Secondly, it allows <acronym>NFS</acronym> mounts to be used to upgrade " +"multiple machines on a network, as described in <xref linkend=\"small-lan\"/" +">." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45413 +msgid "" +"It is possible to specify <option>-j</option> which will cause " +"<command>make</command> to spawn several simultaneous processes. Since much " +"of the compiling process is <acronym>I/O</acronym>-bound rather than " +"<acronym>CPU</acronym>-bound, this is useful on both single <acronym>CPU</" +"acronym> and multi-<acronym>CPU</acronym> machines." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45421 +msgid "" +"On a single-<acronym>CPU</acronym> machine, run the following command to " +"have up to 4 processes running at any one time. Empirical evidence posted to " +"the mailing lists shows this generally gives the best performance benefit." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:45426 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make -j4 buildworld</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45428 +msgid "" +"On a multi-<acronym>CPU</acronym> machine, try values between <literal>6</" +"literal> and <literal>10</literal> to see how they speed things up." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:45432 +msgid "" +"<primary>rebuilding <quote>world</quote></primary> <secondary>timings</" +"secondary>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:45438 +msgid "" +"If any variables were specified to <command>make buildworld</command>, " +"specify the same variables to <command>make installworld</command>. However, " +"<option>-j</option> must <emphasis>never</emphasis> be used with <_:" +"buildtarget-1/>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:45444 +msgid "For example, if this command was used:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:45446 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make -DNO_PROFILE buildworld</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:45448 +msgid "Install the results with:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:45450 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make -DNO_PROFILE installworld</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:45452 +msgid "" +"Otherwise, the second command will try to install profiled libraries that " +"were not built during the <command>make buildworld</command> phase." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:45460 +msgid "Merging Configuration Files" +msgstr "合併設定檔" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:45473 +msgid "<primary> <command>mergemaster</command> </primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45479 +msgid "" +"FreeBSD provides the <citerefentry><refentrytitle>mergemaster</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> Bourne script to aid " +"in determining the differences between the configuration files in <filename>/" +"etc</filename>, and the configuration files in <filename>/usr/src/etc</" +"filename>. This is the recommended solution for keeping the system " +"configuration files up to date with those located in the source tree." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45486 +msgid "" +"Before using <command>mergemaster</command>, it is recommended to first copy " +"the existing <filename>/etc</filename> somewhere safe. Include <option>-R</" +"option> which does a recursive copy and <option>-p</option> which preserves " +"times and the ownerships on files:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:45493 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cp -Rp /etc /etc.old</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45495 +msgid "" +"When run, <command>mergemaster</command> builds a temporary root " +"environment, from <filename>/</filename> down, and populates it with various " +"system configuration files. Those files are then compared to the ones " +"currently installed in the system. Files that differ will be shown in " +"<citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> format, with the <option>+</option> sign representing added or " +"modified lines, and <option>-</option> representing lines that will be " +"either removed completely or replaced with a new file. Refer to " +"<citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> for more information about how file differences are shown." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45506 +msgid "" +"Next, <command>mergemaster</command> will display each file that differs, " +"and present options to: delete the new file, referred to as the temporary " +"file, install the temporary file in its unmodified state, merge the " +"temporary file with the currently installed file, or view the results again." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45513 +msgid "" +"Choosing to delete the temporary file will tell <command>mergemaster</" +"command> to keep the current file unchanged and to delete the new version. " +"This option is not recommended. To get help at any time, type <keycap>?</" +"keycap> at the <command>mergemaster</command> prompt. If the user chooses to " +"skip a file, it will be presented again after all other files have been " +"dealt with." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45522 +msgid "" +"Choosing to install the unmodified temporary file will replace the current " +"file with the new one. For most unmodified files, this is the best option." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45526 +msgid "" +"Choosing to merge the file will present a text editor, and the contents of " +"both files. The files can be merged by reviewing both files side by side on " +"the screen, and choosing parts from both to create a finished product. When " +"the files are compared side by side, <keycap>l</keycap> selects the left " +"contents and <keycap>r</keycap> selects contents from the right. The final " +"output will be a file consisting of both parts, which can then be installed. " +"This option is customarily used for files where settings have been modified " +"by the user." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45537 +msgid "Choosing to view the results again will redisplay the file differences." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45540 +msgid "" +"After <command>mergemaster</command> is done with the system files, it will " +"prompt for other options. It may prompt to rebuild the password file and " +"will finish up with an option to remove left-over temporary files." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:45629 +msgid "Deleting Obsolete Files and Libraries" +msgstr "刪除過時的檔案及程式庫" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:45632 +msgid "" +"<personname> <firstname>Anton</firstname> <surname>Shterenlikht</surname> </" +"personname> <contrib>Based on notes provided by </contrib>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:45642 +msgid "<primary>Deleting obsolete files and directories</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45646 +msgid "" +"As a part of the FreeBSD development lifecycle, files and their contents " +"occasionally become obsolete. This may be because functionality is " +"implemented elsewhere, the version number of the library has changed, or it " +"was removed from the system entirely. These obsoleted files, libraries, and " +"directories should be removed when updating the system. This ensures that " +"the system is not cluttered with old files which take up unnecessary space " +"on the storage and backup media. Additionally, if the old library has a " +"security or stability issue, the system should be updated to the newer " +"library to keep it safe and to prevent crashes caused by the old library. " +"Files, directories, and libraries which are considered obsolete are listed " +"in <filename>/usr/src/ObsoleteFiles.inc</filename>. The following " +"instructions should be used to remove obsolete files during the system " +"upgrade process." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45663 +msgid "" +"After the <command>make installworld</command> and the subsequent " +"<command>mergemaster</command> have finished successfully, check for " +"obsolete files and libraries:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:45667 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make check-old</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45670 +msgid "" +"If any obsolete files are found, they can be deleted using the following " +"command:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45675 +msgid "" +"A prompt is displayed before deleting each obsolete file. To skip the prompt " +"and let the system remove these files automatically, use " +"<varname>BATCH_DELETE_OLD_FILES</varname>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:45680 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45682 +msgid "" +"The same goal can be achieved by piping these commands through <command>yes</" +"command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:45685 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>yes|make delete-old</userinput>" +msgstr "" + +#. (itstool) path: warning/title +#: book.translate.xml:45688 +msgid "Warning" +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:45690 +msgid "" +"Deleting obsolete files will break applications that still depend on those " +"obsolete files. This is especially true for old libraries. In most cases, " +"the programs, ports, or libraries that used the old library need to be " +"recompiled before <command>make delete-old-libs</command> is executed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45698 +msgid "" +"Utilities for checking shared library dependencies include <package>sysutils/" +"libchk</package> and <package>sysutils/bsdadminscripts</package>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45702 +msgid "" +"Obsolete shared libraries can conflict with newer libraries, causing " +"messages like these:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:45705 +#, no-wrap +msgid "" +"/usr/bin/ld: warning: libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5\n" +"/usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so, may conflict with librpcsvc.so.5" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45708 +msgid "To solve these problems, determine which port installed the library:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:45711 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pkg which /usr/local/lib/libtiff.so</userinput>\n" +" /usr/local/lib/libtiff.so was installed by package tiff-3.9.4\n" +"<prompt>#</prompt> <userinput>pkg which /usr/local/lib/libXext.so</userinput>\n" +" /usr/local/lib/libXext.so was installed by package libXext-1.1.1,1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45716 +msgid "" +"Then deinstall, rebuild, and reinstall the port. To automate this process, " +"<package>ports-mgmt/portmaster</package> can be used. After all ports are " +"rebuilt and no longer use the old libraries, delete the old libraries using " +"the following command:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:45724 +msgid "" +"If something goes wrong, it is easy to rebuild a particular piece of the " +"system. For example, if <filename>/etc/magic</filename> was accidentally " +"deleted as part of the upgrade or merge of <filename>/etc</filename>, " +"<command>file</command> will stop working. To fix this, run:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:45731 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src/usr.bin/file</userinput>\n" +"<prompt>#</prompt> <userinput>make all install</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:45736 +msgid "Common Questions" +msgstr "常見問題" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:45740 +msgid "Do I need to re-make the world for every change?" +msgstr "每個變更是否都需要重新編譯 World?" + +#. (itstool) path: listitem/para +#: book.translate.xml:45744 +msgid "" +"It depends upon the nature of the change. For example, if <application>svn</" +"application> only shows the following files as being updated:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:45748 +#, no-wrap +msgid "" +"<filename>src/games/cribbage/instr.c</filename>\n" +"<filename>src/games/sail/pl_main.c</filename>\n" +"<filename>src/release/sysinstall/config.c</filename>\n" +"<filename>src/release/sysinstall/media.c</filename>\n" +"<filename>src/share/mk/bsd.port.mk</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45754 +msgid "" +"it probably is not worth rebuilding the entire world. Instead, go into the " +"appropriate sub-directories and run <command>make all install</command>. But " +"if something major changes, such as <filename>src/lib/libc/stdlib</" +"filename>, consider rebuilding world." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45761 +msgid "" +"Some users rebuild world every fortnight and let changes accumulate over " +"that fortnight. Others only re-make those things that have changed and are " +"careful to spot all the dependencies. It all depends on how often a user " +"wants to upgrade and whether they are tracking FreeBSD-STABLE or FreeBSD-" +"CURRENT." +msgstr "" + +#. (itstool) path: term/indexterm +#: book.translate.xml:45772 +msgid "<primary>signal 11</primary>" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:45771 +msgid "" +"What would cause a compile to fail with lots of signal 11<_:indexterm-1/> " +"(or other signal number) errors?" +msgstr "什麼會造成有很多信號 11<_:indexterm-1/> (或其他信號) 錯誤的編譯失敗?" + +#. (itstool) path: listitem/para +#: book.translate.xml:45778 +msgid "" +"This normally indicates a hardware problem. Building world is an effective " +"way to stress test hardware, especially memory. A sure indicator of a " +"hardware issue is when <application>make</application> is restarted and it " +"dies at a different point in the process." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45785 +msgid "" +"To resolve this error, swap out the components in the machine, starting with " +"RAM, to determine which component is failing." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:45792 +msgid "Can <filename>/usr/obj</filename> be removed when finished?" +msgstr "完成編譯後是可否移除 <filename>/usr/obj</filename>?" + +#. (itstool) path: listitem/para +#: book.translate.xml:45796 +msgid "" +"This directory contains all the object files that were produced during the " +"compilation phase. Normally, one of the first steps in the <command>make " +"buildworld</command> process is to remove this directory and start afresh. " +"Keeping <filename>/usr/obj</filename> around when finished makes little " +"sense, and its removal frees up a approximately 2GB of disk space." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:45808 +msgid "Can interrupted builds be resumed?" +msgstr "是否能繼續中斷的編譯?" + +#. (itstool) path: listitem/para +#: book.translate.xml:45811 +msgid "" +"This depends on how far into the process the problem occurs. In general, " +"<command>make buildworld</command> builds new copies of essential tools and " +"the system libraries. These tools and libraries are then installed, used to " +"rebuild themselves, and are installed again. The rest of the system is then " +"rebuilt with the new system tools." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45820 +msgid "" +"During the last stage, it is fairly safe to run these commands as they will " +"not undo the work of the previous <command>make buildworld</command>:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:45824 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make -DNO_CLEAN all</userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45827 +msgid "If this message appears:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:45829 +#, no-wrap +msgid "" +"--------------------------------------------------------------\n" +"Building everything..\n" +"--------------------------------------------------------------" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45833 +msgid "" +"in the <command>make buildworld</command> output, it is probably fairly safe " +"to do so." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45836 +msgid "" +"If that message is not displayed, it is always better to be safe than sorry " +"and to restart the build from scratch." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:45843 +msgid "Is it possible to speed up making the world?" +msgstr "有可能加速編譯 World 的速度嗎?" + +#. (itstool) path: listitem/para +#: book.translate.xml:45846 +msgid "" +"Several actions can speed up the build world process. For example, the " +"entire process can be run from single-user mode. However, this will prevent " +"users from having access to the system until the process is complete." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45852 +msgid "" +"Careful file system design or the use of ZFS datasets can make a difference. " +"Consider putting <filename>/usr/src</filename> and <filename>/usr/obj</" +"filename> on separate file systems. If possible, place the file systems on " +"separate disks on separate disk controllers. When mounting <filename>/usr/" +"src</filename>, use <option>noatime</option> which prevents the file system " +"from recording the file access time. If <filename>/usr/src</filename> is not " +"on its own file system, consider remounting <filename>/usr</filename> with " +"<option>noatime</option>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45864 +msgid "" +"The file system holding <filename>/usr/obj</filename> can be mounted or " +"remounted with <option>async</option> so that disk writes happen " +"asynchronously. The write completes immediately, and the data is written to " +"the disk a few seconds later. This allows writes to be clustered together, " +"and can provide a dramatic performance boost." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:45873 +msgid "" +"Keep in mind that this option makes the file system more fragile. With this " +"option, there is an increased chance that, should power fail, the file " +"system will be in an unrecoverable state when the machine restarts." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:45879 +msgid "" +"If <filename>/usr/obj</filename> is the only directory on this file system, " +"this is not a problem. If you have other, valuable data on the same file " +"system, ensure that there are verified backups before enabling this option." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45886 +msgid "" +"Turn off profiling by setting <quote>NO_PROFILE=true</quote> in <filename>/" +"etc/make.conf</filename>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45890 +msgid "" +"Pass <option>-j<replaceable>n</replaceable></option> to " +"<citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> to run multiple processes in parallel. This usually helps on " +"both single- and multi-processor machines." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:45898 +msgid "What if something goes wrong?" +msgstr "若發生錯誤時該怎麼辦?" + +#. (itstool) path: listitem/para +#: book.translate.xml:45901 +msgid "" +"First, make absolutely sure that the environment has no extraneous cruft " +"from earlier builds:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:45904 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>chflags -R noschg /usr/obj/usr</userinput>\n" +"<prompt>#</prompt> <userinput>rm -rf /usr/obj/usr</userinput>\n" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make cleandir</userinput>\n" +"<prompt>#</prompt> <userinput>make cleandir</userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45910 +msgid "Yes, <command>make cleandir</command> really should be run twice." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45913 +msgid "" +"Then, restart the whole process, starting with <command>make buildworld</" +"command>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:45916 +msgid "" +"If problems persist, send the error and the output of <command>uname -a</" +"command> to <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/" +"freebsd-questions\">FreeBSD general questions mailing list</link>. Be " +"prepared to answer other questions about the setup!" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:45928 +msgid "Tracking for Multiple Machines" +msgstr "多部機器追蹤" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:45941 +msgid "" +"<primary>NFS</primary> <secondary>installing multiple machines</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:45946 +msgid "" +"When multiple machines need to track the same source tree, it is a waste of " +"disk space, network bandwidth, and <acronym>CPU</acronym> cycles to have " +"each system download the sources and rebuild everything. The solution is to " +"have one machine do most of the work, while the rest of the machines mount " +"that work via <acronym>NFS</acronym>. This section outlines a method of " +"doing so. For more information about using <acronym>NFS</acronym>, refer to " +"<xref linkend=\"network-nfs\"/>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:45955 +msgid "" +"First, identify a set of machines which will run the same set of binaries, " +"known as a <firstterm>build set</firstterm>. Each machine can have a custom " +"kernel, but will run the same userland binaries. From that set, choose a " +"machine to be the <firstterm>build machine</firstterm> that the world and " +"kernel are built on. Ideally, this is a fast machine that has sufficient " +"spare <acronym>CPU</acronym> to run <command>make buildworld</command> and " +"<command>make buildkernel</command>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:45965 +msgid "" +"Select a machine to be the <firstterm>test machine</firstterm>, which will " +"test software updates before they are put into production. This " +"<emphasis>must</emphasis> be a machine that can afford to be down for an " +"extended period of time. It can be the build machine, but need not be." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:45971 +msgid "" +"All the machines in this build set need to mount <filename>/usr/obj</" +"filename> and <filename>/usr/src</filename> from the build machine via " +"<acronym>NFS</acronym>. For multiple build sets, <filename>/usr/src</" +"filename> should be on one build machine, and <acronym>NFS</acronym> mounted " +"on the rest." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:45977 +msgid "" +"Ensure that <filename>/etc/make.conf</filename> and <filename>/etc/src.conf</" +"filename> on all the machines in the build set agree with the build machine. " +"That means that the build machine must build all the parts of the base " +"system that any machine in the build set is going to install. Also, each " +"build machine should have its kernel name set with <varname>KERNCONF</" +"varname> in <filename>/etc/make.conf</filename>, and the build machine " +"should list them all in its <varname>KERNCONF</varname>, listing its own " +"kernel first. The build machine must have the kernel configuration files for " +"each machine in its <filename>/usr/src/sys/<replaceable>arch</replaceable>/" +"conf</filename>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:45989 +msgid "" +"On the build machine, build the kernel and world as described in <xref " +"linkend=\"makeworld\"/>, but do not install anything on the build machine. " +"Instead, install the built kernel on the test machine. On the test machine, " +"mount <filename>/usr/src</filename> and <filename>/usr/obj</filename> via " +"<acronym>NFS</acronym>. Then, run <command>shutdown now</command> to go to " +"single-user mode in order to install the new kernel and world and run " +"<command>mergemaster</command> as usual. When done, reboot to return to " +"normal multi-user operations." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46000 +msgid "" +"After verifying that everything on the test machine is working properly, use " +"the same procedure to install the new software on each of the other machines " +"in the build set." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46004 +msgid "" +"The same methodology can be used for the ports tree. The first step is to " +"share <filename>/usr/ports</filename> via <acronym>NFS</acronym> to all the " +"machines in the build set. To configure <filename>/etc/make.conf</filename> " +"to share distfiles, set <varname>DISTDIR</varname> to a common shared " +"directory that is writable by whichever user <systemitem class=\"username" +"\">root</systemitem> is mapped to by the <acronym>NFS</acronym> mount. Each " +"machine should set <varname>WRKDIRPREFIX</varname> to a local build " +"directory, if ports are to be built locally. Alternately, if the build " +"system is to build and distribute packages to the machines in the build set, " +"set <varname>PACKAGES</varname> on the build system to a directory similar " +"to <varname>DISTDIR</varname>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:46037 +msgid "DTrace" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:46048 +msgid "<primary>DTrace</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:46049 +msgid "<primary>DTrace support</primary> <see>DTrace</see>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46054 +msgid "" +"DTrace, also known as Dynamic Tracing, was developed by <trademark>Sun</" +"trademark> as a tool for locating performance bottlenecks in production and " +"pre-production systems. In addition to diagnosing performance problems, " +"DTrace can be used to help investigate and debug unexpected behavior in both " +"the FreeBSD kernel and in userland programs." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46061 +msgid "" +"DTrace is a remarkable profiling tool, with an impressive array of features " +"for diagnosing system issues. It may also be used to run pre-written scripts " +"to take advantage of its capabilities. Users can author their own utilities " +"using the DTrace D Language, allowing them to customize their profiling " +"based on specific needs." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46068 +msgid "" +"The FreeBSD implementation provides full support for kernel DTrace and " +"experimental support for userland DTrace. Userland DTrace allows users to " +"perform function boundary tracing for userland programs using the " +"<literal>pid</literal> provider, and to insert static probes into userland " +"programs for later tracing. Some ports, such as <package>databases/postgres-" +"server</package> and <package>lang/php56</package> have a DTrace option to " +"enable static probes. FreeBSD 10.0-RELEASE has reasonably good userland " +"DTrace support, but it is not considered production ready. In particular, it " +"is possible to crash traced programs." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46080 +msgid "" +"The official guide to DTrace is maintained by the Illumos project at <uri " +"xlink:href=\"http://dtrace.org/guide\">DTrace Guide</uri>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:46088 +msgid "What DTrace is and what features it provides." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:46092 +msgid "" +"Differences between the <trademark>Solaris</trademark> DTrace implementation " +"and the one provided by FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:46097 +msgid "How to enable and use DTrace on FreeBSD." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:46117 +msgid "Implementation Differences" +msgstr "實作差異" + +#. (itstool) path: sect1/para +#: book.translate.xml:46119 +msgid "" +"While the DTrace in FreeBSD is similar to that found in <trademark>Solaris</" +"trademark>, differences do exist. The primary difference is that in FreeBSD, " +"DTrace is implemented as a set of kernel modules and DTrace can not be used " +"until the modules are loaded. To load all of the necessary modules:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:46125 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload dtraceall</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46127 +msgid "" +"Beginning with FreeBSD 10.0-RELEASE, the modules are automatically loaded " +"when <command>dtrace</command> is run." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46131 +msgid "" +"FreeBSD uses the <literal>DDB_CTF</literal> kernel option to enable support " +"for loading <acronym>CTF</acronym> data from kernel modules and the kernel " +"itself. <acronym>CTF</acronym> is the <trademark>Solaris</trademark> Compact " +"C Type Format which encapsulates a reduced form of debugging information " +"similar to <acronym>DWARF</acronym> and the venerable stabs. <acronym>CTF</" +"acronym> data is added to binaries by the <command>ctfconvert</command> and " +"<command>ctfmerge</command> build tools. The <command>ctfconvert</command> " +"utility parses <acronym>DWARF</acronym> <acronym>ELF</acronym> debug " +"sections created by the compiler and <command>ctfmerge</command> merges " +"<acronym>CTF</acronym> <acronym>ELF</acronym> sections from objects into " +"either executables or shared libraries." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46145 +msgid "" +"Some different providers exist for FreeBSD than for <trademark>Solaris</" +"trademark>. Most notable is the <literal>dtmalloc</literal> provider, which " +"allows tracing <function>malloc()</function> by type in the FreeBSD kernel. " +"Some of the providers found in <trademark>Solaris</trademark>, such as " +"<literal>cpc</literal> and <literal>mib</literal>, are not present in " +"FreeBSD. These may appear in future versions of FreeBSD. Moreover, some of " +"the providers available in both operating systems are not compatible, in the " +"sense that their probes have different argument types. Thus, <acronym>D</" +"acronym> scripts written on <trademark>Solaris</trademark> may or may not " +"work unmodified on FreeBSD, and vice versa." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46157 +msgid "" +"Due to security differences, only <systemitem class=\"username\">root</" +"systemitem> may use DTrace on FreeBSD. <trademark>Solaris</trademark> has a " +"few low level security checks which do not yet exist in FreeBSD. As such, " +"the <filename>/dev/dtrace/dtrace</filename> is strictly limited to " +"<systemitem class=\"username\">root</systemitem>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46163 +msgid "" +"DTrace falls under the Common Development and Distribution License " +"(<acronym>CDDL</acronym>) license. To view this license on FreeBSD, see " +"<filename>/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE</filename> " +"or view it online at <uri xlink:href=\"http://opensource.org/licenses/" +"CDDL-1.0\">http://opensource.org/licenses/CDDL-1.0</uri>. While a FreeBSD " +"kernel with DTrace support is <acronym>BSD</acronym> licensed, the " +"<acronym>CDDL</acronym> is used when the modules are distributed in binary " +"form or the binaries are loaded." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:46175 +msgid "Enabling DTrace Support" +msgstr "開啟 DTrace 支援" + +#. (itstool) path: sect1/para +#: book.translate.xml:46177 +msgid "" +"In FreeBSD 9.2 and 10.0, DTrace support is built into the <filename>GENERIC</" +"filename> kernel. Users of earlier versions of FreeBSD or who prefer to " +"statically compile in DTrace support should add the following lines to a " +"custom kernel configuration file and recompile the kernel using the " +"instructions in <xref linkend=\"kernelconfig\"/>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:46183 +#, no-wrap +msgid "" +"options KDTRACE_HOOKS\n" +"options DDB_CTF\n" +"makeoptions\tDEBUG=-g\n" +"makeoptions\tWITH_CTF=1" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46188 +msgid "Users of the AMD64 architecture should also add this line:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:46191 +#, no-wrap +msgid "options KDTRACE_FRAME" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46193 +msgid "" +"This option provides support for <acronym>FBT</acronym>. While DTrace will " +"work without this option, there will be limited support for function " +"boundary tracing." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46197 +msgid "" +"Once the FreeBSD system has rebooted into the new kernel, or the DTrace " +"kernel modules have been loaded using <command>kldload dtraceall</command>, " +"the system will need support for the Korn shell as the DTrace Toolkit has " +"several utilities written in <command>ksh</command>. Make sure that the " +"<package>shells/ksh93</package> package or port is installed. It is also " +"possible to run these tools under <package>shells/pdksh</package> or " +"<package>shells/mksh</package>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46207 +msgid "" +"Finally, install the current DTrace Toolkit, a collection of ready-made " +"scripts for collecting system information. There are scripts to check open " +"files, memory, <acronym>CPU</acronym> usage, and a lot more. FreeBSD 10 " +"installs a few of these scripts into <filename>/usr/share/dtrace</filename>. " +"On other FreeBSD versions, or to install the full DTrace Toolkit, use the " +"<package>sysutils/DTraceToolkit</package> package or port." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:46220 +msgid "" +"The scripts found in <filename>/usr/share/dtrace</filename> have been " +"specifically ported to FreeBSD. Not all of the scripts found in the DTrace " +"Toolkit will work as-is on FreeBSD and some scripts may require some effort " +"in order for them to work on FreeBSD." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46227 +msgid "" +"The DTrace Toolkit includes many scripts in the special language of DTrace. " +"This language is called the D language and it is very similar to C++. An in " +"depth discussion of the language is beyond the scope of this document. It is " +"extensively discussed at <uri xlink:href=\"http://wikis.oracle.com/display/" +"DTrace/Documentation\">http://wikis.oracle.com/display/DTrace/Documentation</" +"uri>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:46235 +msgid "Using DTrace" +msgstr "使用 DTrace" + +#. (itstool) path: sect1/para +#: book.translate.xml:46237 +msgid "" +"DTrace scripts consist of a list of one or more <firstterm>probes</" +"firstterm>, or instrumentation points, where each probe is associated with " +"an action. Whenever the condition for a probe is met, the associated action " +"is executed. For example, an action may occur when a file is opened, a " +"process is started, or a line of code is executed. The action might be to " +"log some information or to modify context variables. The reading and writing " +"of context variables allows probes to share information and to cooperatively " +"analyze the correlation of different events." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46248 +msgid "" +"To view all probes, the administrator can execute the following command:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:46251 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dtrace -l | more</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46253 +msgid "" +"Each probe has an <literal>ID</literal>, a <literal>PROVIDER</literal> " +"(dtrace or fbt), a <literal>MODULE</literal>, and a <literal>FUNCTION NAME</" +"literal>. Refer to <citerefentry><refentrytitle>dtrace</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> for more information " +"about this command." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46259 +msgid "" +"The examples in this section provide an overview of how to use two of the " +"fully supported scripts from the DTrace Toolkit: the <filename>hotkernel</" +"filename> and <filename>procsystime</filename> scripts." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46265 +msgid "" +"The <filename>hotkernel</filename> script is designed to identify which " +"function is using the most kernel time. It will produce output similar to " +"the following:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:46269 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/share/dtrace/toolkit</userinput>\n" +"<prompt>#</prompt> <userinput>./hotkernel</userinput>\n" +"Sampling... Hit Ctrl-C to end." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46273 +msgid "" +"As instructed, use the <keycombo action=\"simul\"><keycap>Ctrl</" +"keycap><keycap>C</keycap> </keycombo> key combination to stop the process. " +"Upon termination, the script will display a list of kernel functions and " +"timing information, sorting the output in increasing order of time:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:46280 +#, no-wrap +msgid "" +"kernel`_thread_lock_flags 2 0.0%\n" +"0xc1097063 2 0.0%\n" +"kernel`sched_userret 2 0.0%\n" +"kernel`kern_select 2 0.0%\n" +"kernel`generic_copyin 3 0.0%\n" +"kernel`_mtx_assert 3 0.0%\n" +"kernel`vm_fault 3 0.0%\n" +"kernel`sopoll_generic 3 0.0%\n" +"kernel`fixup_filename 4 0.0%\n" +"kernel`_isitmyx 4 0.0%\n" +"kernel`find_instance 4 0.0%\n" +"kernel`_mtx_unlock_flags 5 0.0%\n" +"kernel`syscall 5 0.0%\n" +"kernel`DELAY 5 0.0%\n" +"0xc108a253 6 0.0%\n" +"kernel`witness_lock 7 0.0%\n" +"kernel`read_aux_data_no_wait 7 0.0%\n" +"kernel`Xint0x80_syscall 7 0.0%\n" +"kernel`witness_checkorder 7 0.0%\n" +"kernel`sse2_pagezero 8 0.0%\n" +"kernel`strncmp 9 0.0%\n" +"kernel`spinlock_exit 10 0.0%\n" +"kernel`_mtx_lock_flags 11 0.0%\n" +"kernel`witness_unlock 15 0.0%\n" +"kernel`sched_idletd 137 0.3%\n" +"0xc10981a5 42139 99.3%" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46311 +msgid "" +"This script will also work with kernel modules. To use this feature, run the " +"script with <option>-m</option>:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:46314 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>./hotkernel -m</userinput>\n" +"Sampling... Hit Ctrl-C to end.\n" +"^C\n" +"MODULE COUNT PCNT\n" +"0xc107882e 1 0.0%\n" +"0xc10e6aa4 1 0.0%\n" +"0xc1076983 1 0.0%\n" +"0xc109708a 1 0.0%\n" +"0xc1075a5d 1 0.0%\n" +"0xc1077325 1 0.0%\n" +"0xc108a245 1 0.0%\n" +"0xc107730d 1 0.0%\n" +"0xc1097063 2 0.0%\n" +"0xc108a253 73 0.0%\n" +"kernel 874 0.4%\n" +"0xc10981a5 213781 99.6%" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46335 +msgid "" +"The <filename>procsystime</filename> script captures and prints the system " +"call time usage for a given process <acronym>ID</acronym> (<acronym>PID</" +"acronym>) or process name. In the following example, a new instance of " +"<filename>/bin/csh</filename> was spawned. Then, <filename>procsystime</" +"filename> was executed and remained waiting while a few commands were typed " +"on the other incarnation of <command>csh</command>. These are the results of " +"this test:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:46345 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>./procsystime -n csh</userinput>\n" +"Tracing... Hit Ctrl-C to end...\n" +"^C\n" +"\n" +"Elapsed Times for processes csh,\n" +"\n" +" SYSCALL TIME (ns)\n" +" getpid 6131\n" +" sigreturn 8121\n" +" close 19127\n" +" fcntl 19959\n" +" dup 26955\n" +" setpgid 28070\n" +" stat 31899\n" +" setitimer 40938\n" +" wait4 62717\n" +" sigaction 67372\n" +" sigprocmask 119091\n" +" gettimeofday 183710\n" +" write 263242\n" +" execve 492547\n" +" ioctl 770073\n" +" vfork 3258923\n" +" sigsuspend 6985124\n" +" read 3988049784" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46371 +msgid "" +"As shown, the <function>read()</function> system call used the most time in " +"nanoseconds while the <function>getpid()</function> system call used the " +"least amount of time." +msgstr "" + +#. (itstool) path: part/title +#: book.translate.xml:46381 +msgid "Network Communication" +msgstr "網路通訊" + +#. (itstool) path: partintro/para +#: book.translate.xml:46384 +msgid "" +"FreeBSD is one of the most widely deployed operating systems for high " +"performance network servers. The chapters in this part cover:" +msgstr "" +"FreeBSD 是一種廣泛的被使用在高效能的網路伺服器中的作業系統,這些章節包含了:" + +#. (itstool) path: listitem/para +#: book.translate.xml:46390 +msgid "Serial communication" +msgstr "序列通訊" + +#. (itstool) path: listitem/para +#: book.translate.xml:46394 +msgid "<acronym>PPP</acronym> and <acronym>PPP</acronym> over Ethernet" +msgstr "<acronym>PPP</acronym> 和在乙太網路使用 <acronym>PPP</acronym>" + +#. (itstool) path: listitem/para +#. (itstool) path: info/title +#: book.translate.xml:46399 book.translate.xml:50289 +msgid "Electronic Mail" +msgstr "電子郵件" + +#. (itstool) path: listitem/para +#: book.translate.xml:46403 +msgid "Running Network Servers" +msgstr "執行網路伺服器" + +#. (itstool) path: listitem/para +#. (itstool) path: info/title +#: book.translate.xml:46407 book.translate.xml:57909 +msgid "Firewalls" +msgstr "防火牆" + +#. (itstool) path: listitem/para +#: book.translate.xml:46411 +msgid "Other Advanced Networking Topics" +msgstr "其他的進階網路主題" + +#. (itstool) path: partintro/para +#: book.translate.xml:46415 +msgid "" +"These chapters are designed to be read when the information is needed. They " +"do not need to be read in any particular order, nor is it necessary to read " +"all of them before using FreeBSD in a network environment." +msgstr "" +"這些章節是讓您在需要查資料的時候翻閱用的。 您不需要依照特定的順序來讀,也不需" +"要將這些章節全部讀過之後才將 FreeBSD 用在網路環境下。" + +#. (itstool) path: chapter/title +#: book.translate.xml:46428 +msgid "Serial Communications" +msgstr "序列通訊" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:46433 +msgid "<primary>serial communications</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46435 +msgid "" +"<trademark class=\"registered\">UNIX</trademark> has always had support for " +"serial communications as the very first <trademark class=\"registered" +"\">UNIX</trademark> machines relied on serial lines for user input and " +"output. Things have changed a lot from the days when the average terminal " +"consisted of a 10-character-per-second serial printer and a keyboard. This " +"chapter covers some of the ways serial communications can be used on FreeBSD." +msgstr "" +"<trademark class=\"registered\">UNIX</trademark> 從最早的第一台 <trademark " +"class=\"registered\">UNIX</trademark> 仰賴序列線路來讓使用者輸入與輸出以來一" +"直都支援序列通訊,雖與每秒 10 個字元的序列印表機及鍵盤組成的終端機時代比起已" +"改變很多。本章將說明幾種可在 FreeBSD 使用的序列通訊方式。" + +#. (itstool) path: listitem/para +#: book.translate.xml:46446 +msgid "How to connect terminals to a FreeBSD system." +msgstr "如何連線終端機到 FreeBSD 系統。" + +#. (itstool) path: listitem/para +#: book.translate.xml:46449 +msgid "How to use a modem to dial out to remote hosts." +msgstr "如何使用數據機撥號給遠端主機。" + +#. (itstool) path: listitem/para +#: book.translate.xml:46452 +msgid "How to allow remote users to login to a FreeBSD system with a modem." +msgstr "如何允許遠端使用者透過數據機來登入 FreeBSD 系統。" + +#. (itstool) path: listitem/para +#: book.translate.xml:46456 +msgid "How to boot a FreeBSD system from a serial console." +msgstr "如何從序列 Console 啟動 FreeBSD 系統。" + +#. (itstool) path: listitem/para +#: book.translate.xml:46464 +msgid "" +"Know how to <link linkend=\"kernelconfig\"> configure and install a custom " +"kernel</link>." +msgstr "了解如何 <link linkend=\"kernelconfig\">設定並安裝自訂核心</link>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:46468 +msgid "" +"Understand <link linkend=\"basics\"> FreeBSD permissions and processes</" +"link>." +msgstr "了解 <link linkend=\"basics\"> FreeBSD 的權限與程序</link>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:46472 +msgid "" +"Have access to the technical manual for the serial hardware to be used with " +"FreeBSD." +msgstr "能夠取得要在 FreeBSD 使用的序列硬體的技術手冊。" + +#. (itstool) path: sect1/title +#: book.translate.xml:46479 +msgid "Serial Terminology and Hardware" +msgstr "序列術語與硬體" + +#. (itstool) path: sect1/para +#: book.translate.xml:46481 +msgid "The following terms are often used in serial communications:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:46485 +msgid "<acronym>bps</acronym>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:46488 +msgid "<primary>bits-per-second</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:46487 +msgid "" +"Bits per Second<_:indexterm-1/> (<acronym>bps</acronym>) is the rate at " +"which data is transmitted." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:46495 +msgid "<acronym>DTE</acronym>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:46498 +msgid "<primary>DTE</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:46497 +msgid "" +"Data Terminal Equipment<_:indexterm-1/> (<acronym>DTE</acronym>) is one of " +"two endpoints in a serial communication. An example would be a computer." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:46506 +msgid "<acronym>DCE</acronym>" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:46509 +msgid "<primary>DCE</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:46508 +msgid "" +"Data Communications Equipment<_:indexterm-1/> (<acronym>DTE</acronym>) is " +"the other endpoint in a serial communication. Typically, it is a modem or " +"serial terminal." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:46517 +msgid "<acronym>RS-232</acronym>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:46519 +msgid "" +"The original standard which defined hardware serial communications. It has " +"since been renamed to <acronym>TIA-232</acronym>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46526 +msgid "" +"When referring to communication data rates, this section does not use the " +"term <firstterm>baud</firstterm>. Baud refers to the number of electrical " +"state transitions made in a period of time, while <acronym>bps</acronym> is " +"the correct term to use." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:46532 +msgid "" +"To connect a serial terminal to a FreeBSD system, a serial port on the " +"computer and the proper cable to connect to the serial device are needed. " +"Users who are already familiar with serial hardware and cabling can safely " +"skip this section." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:46538 +msgid "Serial Cables and Ports" +msgstr "序列線與埠" + +#. (itstool) path: sect2/para +#: book.translate.xml:46540 +msgid "" +"There are several different kinds of serial cables. The two most common " +"types are null-modem cables and standard <acronym>RS-232</acronym> cables. " +"The documentation for the hardware should describe the type of cable " +"required." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:46545 +msgid "" +"These two types of cables differ in how the wires are connected to the " +"connector. Each wire represents a signal, with the defined signals " +"summarized in <xref linkend=\"serialcomms-signal-names\"/>. A standard " +"serial cable passes all of the <acronym>RS-232C</acronym> signals straight " +"through. For example, the <quote>Transmitted Data</quote> pin on one end of " +"the cable goes to the <quote>Transmitted Data</quote> pin on the other end. " +"This is the type of cable used to connect a modem to the FreeBSD system, and " +"is also appropriate for some terminals." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:46555 +msgid "" +"A null-modem cable switches the <quote>Transmitted Data</quote> pin of the " +"connector on one end with the <quote>Received Data</quote> pin on the other " +"end. The connector can be either a <acronym>DB-25</acronym> or a " +"<acronym>DB-9</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:46561 +msgid "" +"A null-modem cable can be constructed using the pin connections summarized " +"in <xref linkend=\"nullmodem-db25\"/>, <xref linkend=\"nullmodem-db9\"/>, " +"and <xref linkend=\"nullmodem-db9-25\"/>. While the standard calls for a " +"straight-through pin 1 to pin 1 <quote>Protective Ground</quote> line, it is " +"often omitted. Some terminals work using only pins 2, 3, and 7, while others " +"require different configurations. When in doubt, refer to the documentation " +"for the hardware." +msgstr "" + +#. (itstool) path: sect2/indexterm +#. (itstool) path: step/indexterm +#: book.translate.xml:46570 book.translate.xml:48247 +msgid "<primary>null-modem cable</primary>" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:46575 +msgid "<acronym>RS-232C</acronym> Signal Names" +msgstr "<acronym>RS-232C</acronym> 信號名稱" + +#. (itstool) path: row/entry +#: book.translate.xml:46580 +msgid "Acronyms" +msgstr "縮寫" + +#. (itstool) path: row/entry +#: book.translate.xml:46581 +msgid "Names" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46587 +msgid "<acronym>RD</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:46588 book.translate.xml:65535 +msgid "Received Data" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46592 +msgid "<acronym>TD</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:46593 book.translate.xml:65535 +msgid "Transmitted Data" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46597 +msgid "<acronym>DTR</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:46598 book.translate.xml:65535 +msgid "Data Terminal Ready" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46602 +msgid "<acronym>DSR</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:46603 book.translate.xml:65535 +msgid "Data Set Ready" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46607 +msgid "<acronym>DCD</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46608 +msgid "Data Carrier Detect" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46612 +msgid "<acronym>SG</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:46613 book.translate.xml:65535 +msgid "Signal Ground" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46617 +msgid "<acronym>RTS</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46618 +msgid "Request to Send" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46622 +msgid "<acronym>CTS</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46623 +msgid "Clear to Send" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:46630 +msgid "DB-25 to DB-25 Null-Modem Cable" +msgstr "DB-25 對 DB-25 Null-Modem 線" + +#. (itstool) path: row/entry +#: book.translate.xml:46635 book.translate.xml:46639 book.translate.xml:46725 +#: book.translate.xml:46729 book.translate.xml:46815 book.translate.xml:46819 +msgid "Signal" +msgstr "信號" + +#. (itstool) path: row/entry +#: book.translate.xml:46636 book.translate.xml:46638 book.translate.xml:46726 +#: book.translate.xml:46728 book.translate.xml:46816 book.translate.xml:46818 +msgid "Pin #" +msgstr "針腳 #" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:46645 book.translate.xml:46649 book.translate.xml:46767 +#: book.translate.xml:46771 book.translate.xml:46857 book.translate.xml:46861 +#: book.translate.xml:65535 +msgid "SG" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46647 book.translate.xml:46655 book.translate.xml:46663 +#: book.translate.xml:46671 book.translate.xml:46679 book.translate.xml:46687 +#: book.translate.xml:46695 book.translate.xml:46703 book.translate.xml:46711 +#: book.translate.xml:46737 book.translate.xml:46745 book.translate.xml:46753 +#: book.translate.xml:46761 book.translate.xml:46769 book.translate.xml:46777 +#: book.translate.xml:46785 book.translate.xml:46793 book.translate.xml:46801 +#: book.translate.xml:46827 book.translate.xml:46835 book.translate.xml:46843 +#: book.translate.xml:46851 book.translate.xml:46859 book.translate.xml:46867 +#: book.translate.xml:46875 book.translate.xml:46883 book.translate.xml:46891 +msgid "connects to" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:46653 book.translate.xml:46665 book.translate.xml:46739 +#: book.translate.xml:46743 book.translate.xml:46829 book.translate.xml:46833 +#: book.translate.xml:65535 +msgid "TD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:46657 book.translate.xml:46661 book.translate.xml:46735 +#: book.translate.xml:46747 book.translate.xml:46825 book.translate.xml:46837 +#: book.translate.xml:65535 +msgid "RD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:46669 book.translate.xml:46681 book.translate.xml:46791 +#: book.translate.xml:46803 book.translate.xml:46881 book.translate.xml:46893 +#: book.translate.xml:65535 +msgid "RTS" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:46673 book.translate.xml:46677 book.translate.xml:46795 +#: book.translate.xml:46799 book.translate.xml:46885 book.translate.xml:46889 +#: book.translate.xml:65535 +msgid "CTS" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:46685 book.translate.xml:46693 book.translate.xml:46705 +#: book.translate.xml:46713 book.translate.xml:46751 book.translate.xml:46759 +#: book.translate.xml:46779 book.translate.xml:46787 book.translate.xml:46841 +#: book.translate.xml:46849 book.translate.xml:46869 book.translate.xml:46877 +#: book.translate.xml:65535 +msgid "DTR" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46686 book.translate.xml:46694 book.translate.xml:46704 +#: book.translate.xml:46712 book.translate.xml:46868 book.translate.xml:46876 +msgid "20" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:46689 book.translate.xml:46701 book.translate.xml:46755 +#: book.translate.xml:46775 book.translate.xml:46845 book.translate.xml:46865 +#: book.translate.xml:65535 +msgid "DSR" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46696 book.translate.xml:46710 book.translate.xml:46794 +#: book.translate.xml:46800 book.translate.xml:46852 book.translate.xml:46890 +msgid "8" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:46697 book.translate.xml:46709 book.translate.xml:46763 +#: book.translate.xml:46783 book.translate.xml:46853 book.translate.xml:46873 +msgid "DCD" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:46720 +msgid "DB-9 to DB-9 Null-Modem Cable" +msgstr "DB-9 對 DB-9 Null-Modem 線" + +#. (itstool) path: table/title +#: book.translate.xml:46810 +msgid "DB-9 to DB-25 Null-Modem Cable" +msgstr "DB-9 對 DB-25 Null-Modem 線" + +#. (itstool) path: note/para +#: book.translate.xml:46900 +msgid "" +"When one pin at one end connects to a pair of pins at the other end, it is " +"usually implemented with one short wire between the pair of pins in their " +"connector and a long wire to the other single pin." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:46906 +msgid "" +"Serial ports are the devices through which data is transferred between the " +"FreeBSD host computer and the terminal. Several kinds of serial ports exist. " +"Before purchasing or constructing a cable, make sure it will fit the ports " +"on the terminal and on the FreeBSD system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:46912 +msgid "" +"Most terminals have <acronym>DB-25</acronym> ports. Personal computers may " +"have <acronym>DB-25</acronym> or <acronym>DB-9</acronym> ports. A multiport " +"serial card may have <acronym>RJ-12</acronym> or <acronym>RJ-45/</acronym> " +"ports. See the documentation that accompanied the hardware for " +"specifications on the kind of port or visually verify the type of port." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:46920 +msgid "" +"In FreeBSD, each serial port is accessed through an entry in <filename>/dev</" +"filename>. There are two different kinds of entries:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:46926 +msgid "" +"Call-in ports are named <filename>/dev/ttyu<replaceable>N</replaceable></" +"filename> where <replaceable>N</replaceable> is the port number, starting " +"from zero. If a terminal is connected to the first serial port " +"(<filename>COM1</filename>), use <filename>/dev/ttyu0</filename> to refer to " +"the terminal. If the terminal is on the second serial port (<filename>COM2</" +"filename>), use <filename>/dev/ttyu1</filename>, and so forth. Generally, " +"the call-in port is used for terminals. Call-in ports require that the " +"serial line assert the <quote>Data Carrier Detect</quote> signal to work " +"correctly." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:46941 +msgid "" +"Call-out ports are named <filename>/dev/cuau<replaceable>N</replaceable></" +"filename> on FreeBSD versions 10.x and higher and <filename>/dev/" +"cuad<replaceable>N</replaceable></filename> on FreeBSD versions 9.x and " +"lower. Call-out ports are usually not used for terminals, but are used for " +"modems. The call-out port can be used if the serial cable or the terminal " +"does not support the <quote>Data Carrier Detect</quote> signal." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:46953 +msgid "" +"FreeBSD also provides initialization devices (<filename>/dev/" +"ttyu<replaceable>N</replaceable>.init</filename> and <filename>/dev/" +"cuau<replaceable>N</replaceable>.init</filename> or <filename>/dev/" +"cuad<replaceable>N</replaceable>.init</filename>) and locking devices " +"(<filename>/dev/ttyu<replaceable>N</replaceable>.lock</filename> and " +"<filename>/dev/cuau<replaceable>N</replaceable>.lock</filename> or " +"<filename>/dev/cuad<replaceable>N</replaceable>.lock</filename>). The " +"initialization devices are used to initialize communications port parameters " +"each time a port is opened, such as <literal>crtscts</literal> for modems " +"which use <literal>RTS/CTS</literal> signaling for flow control. The locking " +"devices are used to lock flags on ports to prevent users or programs " +"changing certain parameters. Refer to <citerefentry><refentrytitle>termios</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>, and <citerefentry><refentrytitle>stty</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> for information on " +"terminal settings, locking and initializing devices, and setting terminal " +"options, respectively." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:46977 +msgid "Serial Port Configuration" +msgstr "序列埠設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:46979 +msgid "" +"By default, FreeBSD supports four serial ports which are commonly known as " +"<filename>COM1</filename>, <filename>COM2</filename>, <filename>COM3</" +"filename>, and <filename>COM4</filename>. FreeBSD also supports dumb multi-" +"port serial interface cards, such as the BocaBoard 1008 and 2016, as well as " +"more intelligent multi-port cards such as those made by Digiboard. However, " +"the default kernel only looks for the standard <filename>COM</filename> " +"ports." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:46988 +msgid "" +"To see if the system recognizes the serial ports, look for system boot " +"messages that start with <literal>uart</literal>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:46992 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>grep uart /var/run/dmesg.boot</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:46994 +msgid "" +"If the system does not recognize all of the needed serial ports, additional " +"entries can be added to <filename>/boot/device.hints</filename>. This file " +"already contains <literal>hint.uart.0.*</literal> entries for " +"<filename>COM1</filename> and <literal>hint.uart.1.*</literal> entries for " +"<filename>COM2</filename>. When adding a port entry for <filename>COM3</" +"filename> use <literal>0x3E8</literal>, and for <filename>COM4</filename> " +"use <literal>0x2E8</literal>. Common <acronym>IRQ</acronym> addresses are " +"<literal>5</literal> for <filename>COM3</filename> and <literal>9</literal> " +"for <filename>COM4</filename>." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:47007 +msgid "<primary><filename>ttyu</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:47008 +msgid "<primary><filename>cuau</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47010 +msgid "" +"To determine the default set of terminal <acronym>I/O</acronym> settings " +"used by the port, specify its device name. This example determines the " +"settings for the call-in port on <filename>COM2</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:47015 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>stty -a -f /dev/<replaceable>ttyu1</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47017 +msgid "" +"System-wide initialization of serial devices is controlled by <filename>/etc/" +"rc.d/serial</filename>. This file affects the default settings of serial " +"devices. To change the settings for a device, use <command>stty</command>. " +"By default, the changed settings are in effect until the device is closed " +"and when the device is reopened, it goes back to the default set. To " +"permanently change the default set, open and adjust the settings of the " +"initialization device. For example, to turn on <option>CLOCAL</option> mode, " +"8 bit communication, and <option>XON/XOFF</option> flow control for " +"<filename>ttyu5</filename>, type:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:47029 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>stty -f /dev/ttyu5.init clocal cs8 ixon ixoff</userinput>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:47031 book.translate.xml:47616 +msgid "" +"<primary>rc files</primary> <secondary><filename>rc.serial</filename></" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47036 +msgid "" +"To prevent certain settings from being changed by an application, make " +"adjustments to the locking device. For example, to lock the speed of " +"<filename>ttyu5</filename> to 57600 bps, type:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:47041 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>stty -f /dev/ttyu5.lock 57600</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47043 +msgid "" +"Now, any application that opens <filename>ttyu5</filename> and tries to " +"change the speed of the port will be stuck with 57600 bps." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:47051 +msgid "Terminals" +msgstr "終端機" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:47054 +msgid "" +"<personname> <firstname>Sean</firstname> <surname>Kelly</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47066 +msgid "" +"Terminals provide a convenient and low-cost way to access a FreeBSD system " +"when not at the computer's console or on a connected network. This section " +"describes how to use terminals with FreeBSD." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47071 +msgid "" +"The original <trademark class=\"registered\">UNIX</trademark> systems did " +"not have consoles. Instead, users logged in and ran programs through " +"terminals that were connected to the computer's serial ports." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47075 +msgid "" +"The ability to establish a login session on a serial port still exists in " +"nearly every <trademark class=\"registered\">UNIX</trademark>-like operating " +"system today, including FreeBSD. By using a terminal attached to an unused " +"serial port, a user can log in and run any text program that can normally be " +"run on the console or in an <command>xterm</command> window." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47082 +msgid "" +"Many terminals can be attached to a FreeBSD system. An older spare computer " +"can be used as a terminal wired into a more powerful computer running " +"FreeBSD. This can turn what might otherwise be a single-user computer into a " +"powerful multiple-user system." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47088 +msgid "FreeBSD supports three types of terminals:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:47092 +msgid "Dumb terminals" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47094 +msgid "" +"Dumb terminals are specialized hardware that connect to computers over " +"serial lines. They are called <quote>dumb</quote> because they have only " +"enough computational power to display, send, and receive text. No programs " +"can be run on these devices. Instead, dumb terminals connect to a computer " +"that runs the needed programs." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47102 +msgid "" +"There are hundreds of kinds of dumb terminals made by many manufacturers, " +"and just about any kind will work with FreeBSD. Some high-end terminals can " +"even display graphics, but only certain software packages can take advantage " +"of these advanced features." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47108 +msgid "" +"Dumb terminals are popular in work environments where workers do not need " +"access to graphical applications." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:47115 +msgid "Computers Acting as Terminals" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47117 +msgid "" +"Since a dumb terminal has just enough ability to display, send, and receive " +"text, any spare computer can be a dumb terminal. All that is needed is the " +"proper cable and some <firstterm>terminal emulation</firstterm> software to " +"run on the computer." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47123 +msgid "" +"This configuration can be useful. For example, if one user is busy working " +"at the FreeBSD system's console, another user can do some text-only work at " +"the same time from a less powerful personal computer hooked up as a terminal " +"to the FreeBSD system." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47129 +msgid "" +"There are at least two utilities in the base-system of FreeBSD that can be " +"used to work through a serial connection: <citerefentry><refentrytitle>cu</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>tip</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47133 +msgid "" +"For example, to connect from a client system that runs FreeBSD to the serial " +"connection of another system:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:47136 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cu -l <replaceable>serial-port-device</replaceable></userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47138 +msgid "" +"Replace <replaceable>serial-port-device</replaceable> with the device name " +"of the connected serial port. These device files are called <filename>/dev/" +"cuau<replaceable>N</replaceable></filename> on FreeBSD versions 10.x and " +"higher and <filename>/dev/cuad<replaceable>N</replaceable></filename> on " +"FreeBSD versions 9.x and lower. In either case, <replaceable>N</replaceable> " +"is the serial port number, starting from zero. This means that " +"<filename>COM1</filename> is <filename>/dev/cuau0</filename> or <filename>/" +"dev/cuad0</filename> in FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47151 +msgid "" +"Additional programs are available through the Ports Collection, such as " +"<package>comms/minicom</package>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:47158 +msgid "X Terminals" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47160 +msgid "" +"X terminals are the most sophisticated kind of terminal available. Instead " +"of connecting to a serial port, they usually connect to a network like " +"Ethernet. Instead of being relegated to text-only applications, they can " +"display any <application>Xorg</application> application." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47167 +msgid "" +"This chapter does not cover the setup, configuration, or use of X terminals." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:47174 +msgid "Terminal Configuration" +msgstr "終端機設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:47176 +msgid "" +"This section describes how to configure a FreeBSD system to enable a login " +"session on a serial terminal. It assumes that the system recognizes the " +"serial port to which the terminal is connected and that the terminal is " +"connected with the correct cable." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47182 +msgid "" +"In FreeBSD, <command>init</command> reads <filename>/etc/ttys</filename> and " +"starts a <command>getty</command> process on the available terminals. The " +"<command>getty</command> process is responsible for reading a login name and " +"starting the <command>login</command> program. The ports on the FreeBSD " +"system which allow logins are listed in <filename>/etc/ttys</filename>. For " +"example, the first virtual console, <filename>ttyv0</filename>, has an entry " +"in this file, allowing logins on the console. This file also contains " +"entries for the other virtual consoles, serial ports, and pseudo-ttys. For a " +"hardwired terminal, the serial port's <filename>/dev</filename> entry is " +"listed without the <literal>/dev</literal> part. For example, <filename>/dev/" +"ttyv0</filename> is listed as <literal>ttyv0</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47198 +msgid "" +"The default <filename>/etc/ttys</filename> configures support for the first " +"four serial ports, <filename>ttyu0</filename> through <filename>ttyu3</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47203 +#, no-wrap +msgid "" +"ttyu0 \"/usr/libexec/getty std.9600\" dialup off secure\n" +"ttyu1 \"/usr/libexec/getty std.9600\" dialup off secure\n" +"ttyu2 \"/usr/libexec/getty std.9600\" dialup off secure\n" +"ttyu3 \"/usr/libexec/getty std.9600\" dialup off secure" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47208 +msgid "" +"When attaching a terminal to one of those ports, modify the default entry to " +"set the required speed and terminal type, to turn the device <literal>on</" +"literal> and, if needed, to change the port's <literal>secure</literal> " +"setting. If the terminal is connected to another port, add an entry for the " +"port." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47215 +msgid "" +"<xref linkend=\"ex-etc-ttys\"/> configures two terminals in <filename>/etc/" +"ttys</filename>. The first entry configures a Wyse-50 connected to " +"<filename>COM2</filename>. The second entry configures an old computer " +"running <application>Procomm</application> terminal software emulating a " +"VT-100 terminal. The computer is connected to the sixth serial port on a " +"multi-port serial card." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:47224 +msgid "Configuring Terminal Entries" +msgstr "設定終端機項目" + +#. (itstool) path: example/programlisting +#: book.translate.xml:47226 +#, no-wrap +msgid "" +"ttyu1<co xml:id=\"co-ttys-line1col1\"/> \"/usr/libexec/getty std.38400\"<co xml:id=\"co-ttys-line1col2\"/> wy50<co xml:id=\"co-ttys-line1col3\"/> on<co xml:id=\"co-ttys-line1col4\"/> insecure<co xml:id=\"co-ttys-line1col5\"/>\n" +"ttyu5 \"/usr/libexec/getty std.19200\" vt100 on insecure" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:47231 +msgid "The first field specifies the device name of the serial terminal." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:47236 +msgid "" +"The second field tells <command>getty</command> to initialize and open the " +"line, set the line speed, prompt for a user name, and then execute the " +"<command>login</command> program. The optional <firstterm>getty type</" +"firstterm> configures characteristics on the terminal line, like " +"<acronym>bps</acronym> rate and parity. The available getty types are listed " +"in <filename>/etc/gettytab</filename>. In almost all cases, the getty types " +"that start with <literal>std</literal> will work for hardwired terminals as " +"these entries ignore parity. There is a <literal>std</literal> entry for " +"each <acronym>bps</acronym> rate from 110 to 115200. Refer to " +"<citerefentry><refentrytitle>gettytab</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:47252 +msgid "" +"When setting the getty type, make sure to match the communications settings " +"used by the terminal. For this example, the Wyse-50 uses no parity and " +"connects at 38400 bps. The computer uses no parity and connects at 19200 bps." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:47260 +msgid "" +"The third field is the type of terminal. For dial-up ports, " +"<literal>unknown</literal> or <literal>dialup</literal> is typically used " +"since users may dial up with practically any type of terminal or software. " +"Since the terminal type does not change for hardwired terminals, a real " +"terminal type from <filename>/etc/termcap</filename> can be specified. For " +"this example, the Wyse-50 uses the real terminal type while the computer " +"running <application>Procomm</application> is set to emulate a VT-100." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:47274 +msgid "" +"The fourth field specifies if the port should be enabled. To enable logins " +"on this port, this field must be set to <literal>on</literal>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:47280 +msgid "" +"The final field is used to specify whether the port is secure. Marking a " +"port as <literal>secure</literal> means that it is trusted enough to allow " +"<systemitem class=\"username\">root</systemitem> to login from that port. " +"Insecure ports do not allow <systemitem class=\"username\">root</systemitem> " +"logins. On an insecure port, users must login from unprivileged accounts and " +"then use <command>su</command> or a similar mechanism to gain superuser " +"privileges, as described in <xref linkend=\"users-superuser\"/>. For " +"security reasons, it is recommended to change this setting to " +"<literal>insecure</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47294 +msgid "" +"After making any changes to <filename>/etc/ttys</filename>, send a SIGHUP " +"(hangup) signal to the <command>init</command> process to force it to re-" +"read its configuration file:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:47299 book.translate.xml:47614 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kill -HUP 1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47301 +msgid "" +"Since <command>init</command> is always the first process run on a system, " +"it always has a process <acronym>ID</acronym> of <literal>1</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47305 +msgid "" +"If everything is set up correctly, all cables are in place, and the " +"terminals are powered up, a <command>getty</command> process should now be " +"running on each terminal and login prompts should be available on each " +"terminal." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:47313 +msgid "Troubleshooting the Connection" +msgstr "連線疑難排解" + +#. (itstool) path: sect2/para +#: book.translate.xml:47315 +msgid "" +"Even with the most meticulous attention to detail, something could still go " +"wrong while setting up a terminal. Here is a list of common symptoms and " +"some suggested fixes." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47320 +msgid "" +"If no login prompt appears, make sure the terminal is plugged in and powered " +"up. If it is a personal computer acting as a terminal, make sure it is " +"running terminal emulation software on the correct serial port." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47325 +msgid "" +"Make sure the cable is connected firmly to both the terminal and the FreeBSD " +"computer. Make sure it is the right kind of cable." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47329 +msgid "" +"Make sure the terminal and FreeBSD agree on the <acronym>bps</acronym> rate " +"and parity settings. For a video display terminal, make sure the contrast " +"and brightness controls are turned up. If it is a printing terminal, make " +"sure paper and ink are in good supply." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47335 +msgid "" +"Use <command>ps</command> to make sure that a <command>getty</command> " +"process is running and serving the terminal. For example, the following " +"listing shows that a <command>getty</command> is running on the second " +"serial port, <filename>ttyu1</filename>, and is using the " +"<literal>std.38400</literal> entry in <filename>/etc/gettytab</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:47343 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ps -axww|grep ttyu</userinput>\n" +"22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyu1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47346 +msgid "" +"If no <command>getty</command> process is running, make sure the port is " +"enabled in <filename>/etc/ttys</filename>. Remember to run <command>kill -" +"HUP 1</command> after modifying <filename>/etc/ttys</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47351 +msgid "" +"If the <command>getty</command> process is running but the terminal still " +"does not display a login prompt, or if it displays a prompt but will not " +"accept typed input, the terminal or cable may not support hardware " +"handshaking. Try changing the entry in <filename>/etc/ttys</filename> from " +"<literal>std.38400</literal> to <literal>3wire.38400</literal>, then run " +"<command>kill -HUP 1</command> after modifying <filename>/etc/ttys</" +"filename>. The <literal>3wire</literal> entry is similar to <literal>std</" +"literal>, but ignores hardware handshaking. The baud rate may need to be " +"reduced or software flow control enabled when using <literal>3wire</literal> " +"to prevent buffer overflows." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47365 +msgid "" +"If garbage appears instead of a login prompt, make sure the terminal and " +"FreeBSD agree on the <acronym>bps</acronym> rate and parity settings. Check " +"the <command>getty</command> processes to make sure the correct " +"<replaceable>getty</replaceable> type is in use. If not, edit <filename>/etc/" +"ttys</filename> and run <command>kill -HUP 1</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47373 +msgid "" +"If characters appear doubled and the password appears when typed, switch the " +"terminal, or the terminal emulation software, from <quote>half duplex</" +"quote> or <quote>local echo</quote> to <quote>full duplex.</quote>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:47382 +msgid "Dial-in Service" +msgstr "撥入服務" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:47385 +msgid "" +"<personname> <firstname>Guy</firstname> <surname>Helmer</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:47395 +msgid "" +"<personname> <firstname>Sean</firstname> <surname>Kelly</surname> </" +"personname> <contrib>Additions by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:47405 +msgid "<primary>dial-in service</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47407 +msgid "" +"Configuring a FreeBSD system for dial-in service is similar to configuring " +"terminals, except that modems are used instead of terminal devices. FreeBSD " +"supports both external and internal modems." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47412 +msgid "" +"External modems are more convenient because they often can be configured via " +"parameters stored in non-volatile <acronym>RAM</acronym> and they usually " +"provide lighted indicators that display the state of important " +"<acronym>RS-232</acronym> signals, indicating whether the modem is operating " +"properly." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47419 +msgid "" +"Internal modems usually lack non-volatile <acronym>RAM</acronym>, so their " +"configuration may be limited to setting <acronym>DIP</acronym> switches. If " +"the internal modem has any signal indicator lights, they are difficult to " +"view when the system's cover is in place." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:47425 +msgid "<primary>modem</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47427 +msgid "" +"When using an external modem, a proper cable is needed. A standard " +"<acronym>RS-232C</acronym> serial cable should suffice." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47431 +msgid "" +"FreeBSD needs the <acronym>RTS</acronym> and <acronym>CTS</acronym> signals " +"for flow control at speeds above 2400 bps, the <acronym>CD</acronym> signal " +"to detect when a call has been answered or the line has been hung up, and " +"the <acronym>DTR</acronym> signal to reset the modem after a session is " +"complete. Some cables are wired without all of the needed signals, so if a " +"login session does not go away when the line hangs up, there may be a " +"problem with the cable. Refer to <xref linkend=\"term-cables-null\"/> for " +"more information about these signals." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47441 +msgid "" +"Like other <trademark class=\"registered\">UNIX</trademark>-like operating " +"systems, FreeBSD uses the hardware signals to find out when a call has been " +"answered or a line has been hung up and to hangup and reset the modem after " +"a call. FreeBSD avoids sending commands to the modem or watching for status " +"reports from the modem." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47447 +msgid "" +"FreeBSD supports the <acronym>NS8250</acronym>, <acronym>NS16450</acronym>, " +"<acronym>NS16550</acronym>, and <acronym>NS16550A</acronym>-based " +"<acronym>RS-232C</acronym> (<acronym>CCITT</acronym> V.24) communications " +"interfaces. The 8250 and 16450 devices have single-character buffers. The " +"16550 device provides a 16-character buffer, which allows for better system " +"performance. Bugs in plain 16550 devices prevent the use of the 16-character " +"buffer, so use 16550A devices if possible. Because single-character-buffer " +"devices require more work by the operating system than the 16-character-" +"buffer devices, 16550A-based serial interface cards are preferred. If the " +"system has many active serial ports or will have a heavy load, 16550A-based " +"cards are better for low-error-rate communications." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47462 +msgid "" +"The rest of this section demonstrates how to configure a modem to receive " +"incoming connections, how to communicate with the modem, and offers some " +"troubleshooting tips." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:47467 +msgid "Modem Configuration" +msgstr "數據機設定" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:47469 +msgid "<primary>getty</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47470 +msgid "" +"As with terminals, <command>init</command> spawns a <command>getty</command> " +"process for each configured serial port used for dial-in connections. When a " +"user dials the modem's line and the modems connect, the <quote>Carrier " +"Detect</quote> signal is reported by the modem. The kernel notices that the " +"carrier has been detected and instructs <command>getty</command> to open the " +"port and display a <prompt>login:</prompt> prompt at the specified initial " +"line speed. In a typical configuration, if garbage characters are received, " +"usually due to the modem's connection speed being different than the " +"configured speed, <command>getty</command> tries adjusting the line speeds " +"until it receives reasonable characters. After the user enters their login " +"name, <command>getty</command> executes <command>login</command>, which " +"completes the login process by asking for the user's password and then " +"starting the user's shell." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:47487 +msgid "<primary><command>/usr/bin/login</command></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47491 +msgid "" +"There are two schools of thought regarding dial-up modems. One configuration " +"method is to set the modems and systems so that no matter at what speed a " +"remote user dials in, the dial-in <acronym>RS-232</acronym> interface runs " +"at a locked speed. The benefit of this configuration is that the remote user " +"always sees a system login prompt immediately. The downside is that the " +"system does not know what a user's true data rate is, so full-screen " +"programs like <application>Emacs</application> will not adjust their screen-" +"painting methods to make their response better for slower connections." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47503 +msgid "" +"The second method is to configure the <acronym>RS-232</acronym> interface to " +"vary its speed based on the remote user's connection speed. Because " +"<command>getty</command> does not understand any particular modem's " +"connection speed reporting, it gives a <prompt>login:</prompt> message at an " +"initial speed and watches the characters that come back in response. If the " +"user sees junk, they should press <keycap>Enter</keycap> until they see a " +"recognizable prompt. If the data rates do not match, <command>getty</" +"command> sees anything the user types as junk, tries the next speed, and " +"gives the <prompt>login:</prompt> prompt again. This procedure normally only " +"takes a keystroke or two before the user sees a good prompt. This login " +"sequence does not look as clean as the locked-speed method, but a user on a " +"low-speed connection should receive better interactive response from full-" +"screen programs." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47521 +msgid "" +"When locking a modem's data communications rate at a particular speed, no " +"changes to <filename>/etc/gettytab</filename> should be needed. However, for " +"a matching-speed configuration, additional entries may be required in order " +"to define the speeds to use for the modem. This example configures a " +"14.4 Kbps modem with a top interface speed of 19.2 Kbps using 8-bit, no " +"parity connections. It configures <command>getty</command> to start the " +"communications rate for a V.32bis connection at 19.2 Kbps, then cycles " +"through 9600 bps, 2400 bps, 1200 bps, 300 bps, and back to 19.2 Kbps. " +"Communications rate cycling is implemented with the <literal>nx=</literal> " +"(next table) capability. Each line uses a <literal>tc=</literal> (table " +"continuation) entry to pick up the rest of the settings for a particular " +"data rate." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47538 +#, no-wrap +msgid "" +"#\n" +"# Additions for a V.32bis Modem\n" +"#\n" +"um|V300|High Speed Modem at 300,8-bit:\\\n" +" :nx=V19200:tc=std.300:\n" +"un|V1200|High Speed Modem at 1200,8-bit:\\\n" +" :nx=V300:tc=std.1200:\n" +"uo|V2400|High Speed Modem at 2400,8-bit:\\\n" +" :nx=V1200:tc=std.2400:\n" +"up|V9600|High Speed Modem at 9600,8-bit:\\\n" +" :nx=V2400:tc=std.9600:\n" +"uq|V19200|High Speed Modem at 19200,8-bit:\\\n" +" :nx=V9600:tc=std.19200:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47552 +msgid "" +"For a 28.8 Kbps modem, or to take advantage of compression on a 14.4 Kbps " +"modem, use a higher communications rate, as seen in this example:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47556 +#, no-wrap +msgid "" +"#\n" +"# Additions for a V.32bis or V.34 Modem\n" +"# Starting at 57.6 Kbps\n" +"#\n" +"vm|VH300|Very High Speed Modem at 300,8-bit:\\\n" +" :nx=VH57600:tc=std.300:\n" +"vn|VH1200|Very High Speed Modem at 1200,8-bit:\\\n" +" :nx=VH300:tc=std.1200:\n" +"vo|VH2400|Very High Speed Modem at 2400,8-bit:\\\n" +" :nx=VH1200:tc=std.2400:\n" +"vp|VH9600|Very High Speed Modem at 9600,8-bit:\\\n" +" :nx=VH2400:tc=std.9600:\n" +"vq|VH57600|Very High Speed Modem at 57600,8-bit:\\\n" +" :nx=VH9600:tc=std.57600:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47571 +msgid "" +"For a slow <acronym>CPU</acronym> or a heavily loaded system without 16550A-" +"based serial ports, this configuration may produce <errorname>sio</" +"errorname> <quote>silo</quote> errors at 57.6 Kbps." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:47576 +msgid "<primary><filename>/etc/ttys</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47580 +msgid "" +"The configuration of <filename>/etc/ttys</filename> is similar to <xref " +"linkend=\"ex-etc-ttys\"/>, but a different argument is passed to " +"<command>getty</command> and <literal>dialup</literal> is used for the " +"terminal type. Replace <replaceable>xxx</replaceable> with the process " +"<command>init</command> will run on the device:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47587 +#, no-wrap +msgid "ttyu0 \"/usr/libexec/getty <replaceable>xxx</replaceable>\" dialup on" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47589 +msgid "" +"The <literal>dialup</literal> terminal type can be changed. For example, " +"setting <literal>vt102</literal> as the default terminal type allows users " +"to use <acronym>VT102</acronym> emulation on their remote systems." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47595 +msgid "" +"For a locked-speed configuration, specify the speed with a valid type listed " +"in <filename>/etc/gettytab</filename>. This example is for a modem whose " +"port speed is locked at 19.2 Kbps:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47600 +#, no-wrap +msgid "ttyu0 \"/usr/libexec/getty std.<replaceable>19200</replaceable>\" dialup on" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47602 +msgid "" +"In a matching-speed configuration, the entry needs to reference the " +"appropriate beginning <quote>auto-baud</quote> entry in <filename>/etc/" +"gettytab</filename>. To continue the example for a matching-speed modem that " +"starts at 19.2 Kbps, use this entry:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47608 +#, no-wrap +msgid "ttyu0 \"/usr/libexec/getty V19200\" dialup on" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47610 +msgid "" +"After editing <filename>/etc/ttys</filename>, wait until the modem is " +"properly configured and connected before signaling <command>init</command>:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47621 +msgid "" +"High-speed modems, like <acronym>V.32</acronym>, <acronym>V.32bis</acronym>, " +"and <acronym>V.34</acronym> modems, use hardware (<literal>RTS/CTS</" +"literal>) flow control. Use <command>stty</command> to set the hardware flow " +"control flag for the modem port. This example sets the <varname>crtscts</" +"varname> flag on <filename>COM2</filename>'s dial-in and dial-out " +"initialization devices:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:47629 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>stty -f /dev/ttyu1.init crtscts</userinput>\n" +"<prompt>#</prompt> <userinput>stty -f /dev/cuau1.init crtscts</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47784 +msgid "" +"This section provides a few tips for troubleshooting a dial-up modem that " +"will not connect to a FreeBSD system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47787 +msgid "" +"Hook up the modem to the FreeBSD system and boot the system. If the modem " +"has status indication lights, watch to see whether the modem's <acronym>DTR</" +"acronym> indicator lights when the <prompt>login:</prompt> prompt appears on " +"the system's console. If it lights up, that should mean that FreeBSD has " +"started a <command>getty</command> process on the appropriate communications " +"port and is waiting for the modem to accept a call." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47796 +msgid "" +"If the <acronym>DTR</acronym> indicator does not light, login to the FreeBSD " +"system through the console and type <command>ps ax</command> to see if " +"FreeBSD is running a <command>getty</command> process on the correct port:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:47801 +#, no-wrap +msgid " 114 ?? I 0:00.10 /usr/libexec/getty V19200 <replaceable>ttyu0</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47803 +msgid "" +"If the second column contains a <literal>d0</literal> instead of a " +"<literal>??</literal> and the modem has not accepted a call yet, this means " +"that <command>getty</command> has completed its open on the communications " +"port. This could indicate a problem with the cabling or a misconfigured " +"modem because <command>getty</command> should not be able to open the " +"communications port until the carrier detect signal has been asserted by the " +"modem." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47812 +msgid "" +"If no <command>getty</command> processes are waiting to open the port, " +"double-check that the entry for the port is correct in <filename>/etc/ttys</" +"filename>. Also, check <filename>/var/log/messages</filename> to see if " +"there are any log messages from <command>init</command> or <command>getty</" +"command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47819 +msgid "" +"Next, try dialing into the system. Be sure to use 8 bits, no parity, and 1 " +"stop bit on the remote system. If a prompt does not appear right away, or " +"the prompt shows garbage, try pressing <keycap>Enter</keycap> about once per " +"second. If there is still no <prompt>login:</prompt> prompt, try sending a " +"<command>BREAK</command>. When using a high-speed modem, try dialing again " +"after locking the dialing modem's interface speed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47828 +msgid "" +"If there is still no <prompt>login:</prompt> prompt, check <filename>/etc/" +"gettytab</filename> again and double-check that:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47834 +msgid "" +"The initial capability name specified in the entry in <filename>/etc/ttys</" +"filename> matches the name of a capability in <filename>/etc/gettytab</" +"filename>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47840 +msgid "" +"Each <literal>nx=</literal> entry matches another <filename>gettytab</" +"filename> capability name." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:47845 +msgid "" +"Each <literal>tc=</literal> entry matches another <filename>gettytab</" +"filename> capability name." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47850 +msgid "" +"If the modem on the FreeBSD system will not answer, make sure that the modem " +"is configured to answer the phone when <acronym>DTR</acronym> is asserted. " +"If the modem seems to be configured correctly, verify that the <acronym>DTR</" +"acronym> line is asserted by checking the modem's indicator lights." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47857 +msgid "" +"If it still does not work, try sending an email to the <link xlink:href=" +"\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions\">FreeBSD " +"general questions mailing list</link> describing the modem and the problem." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:47864 +msgid "Dial-out Service" +msgstr "撥出服務" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:47866 +msgid "<primary>dial-out service</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47868 +msgid "" +"The following are tips for getting the host to connect over the modem to " +"another computer. This is appropriate for establishing a terminal session " +"with a remote host." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:47872 +msgid "" +"This kind of connection can be helpful to get a file on the Internet if " +"there are problems using PPP. If PPP is not working, use the terminal " +"session to FTP the needed file. Then use zmodem to transfer it to the " +"machine." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:47878 +msgid "Using a Stock Hayes Modem" +msgstr "使用 Stock Hayes 數據機" + +#. (itstool) path: sect2/para +#: book.translate.xml:47880 +msgid "" +"A generic Hayes dialer is built into <command>tip</command>. Use " +"<literal>at=hayes</literal> in <filename>/etc/remote</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47884 +msgid "" +"The Hayes driver is not smart enough to recognize some of the advanced " +"features of newer modems messages like <literal>BUSY</literal>, <literal>NO " +"DIALTONE</literal>, or <literal>CONNECT 115200</literal>. Turn those " +"messages off when using <command>tip</command> with <command>ATX0&W</" +"command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47891 +msgid "" +"The dial timeout for <command>tip</command> is 60 seconds. The modem should " +"use something less, or else <command>tip</command> will think there is a " +"communication problem. Try <command>ATS7=45&W</command>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:47898 +msgid "Using <literal>AT</literal> Commands" +msgstr "使用 <literal>AT</literal> 指令" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:47900 +msgid "<primary><filename>/etc/remote</filename></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47903 +msgid "" +"Create a <quote>direct</quote> entry in <filename>/etc/remote</filename>. " +"For example, if the modem is hooked up to the first serial port, <filename>/" +"dev/cuau0</filename>, use the following line:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47909 +#, no-wrap +msgid "cuau0:dv=/dev/cuau0:br#19200:pa=none" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47911 +msgid "" +"Use the highest <acronym>bps</acronym> rate the modem supports in the " +"<literal>br</literal> capability. Then, type <command>tip cuau0</command> to " +"connect to the modem." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47915 +msgid "" +"Or, use <command>cu</command> as <systemitem class=\"username\">root</" +"systemitem> with the following command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:47918 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47920 +msgid "" +"<replaceable>line</replaceable> is the serial port, such as <filename>/dev/" +"cuau0</filename>, and <replaceable>speed</replaceable> is the speed, such as " +"<literal>57600</literal>. When finished entering the AT commands, type " +"<command>~.</command> to exit." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:47928 +msgid "The <literal>@</literal> Sign Does Not Work" +msgstr "<literal>@</literal> 符號無法運作" + +#. (itstool) path: sect2/para +#: book.translate.xml:47930 +msgid "" +"The <literal>@</literal> sign in the phone number capability tells " +"<command>tip</command> to look in <filename>/etc/phones</filename> for a " +"phone number. But, the <literal>@</literal> sign is also a special character " +"in capability files like <filename>/etc/remote</filename>, so it needs to be " +"escaped with a backslash:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47937 +#, no-wrap +msgid "pn=\\@" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:47941 +msgid "Dialing from the Command Line" +msgstr "從指令列撥號" + +#. (itstool) path: sect2/para +#: book.translate.xml:47943 +msgid "" +"Put a <quote>generic</quote> entry in <filename>/etc/remote</filename>. For " +"example:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47946 +#, no-wrap +msgid "" +"tip115200|Dial any phone number at 115200 bps:\\\n" +" :dv=/dev/cuau0:br#115200:at=hayes:pa=none:du:\n" +"tip57600|Dial any phone number at 57600 bps:\\\n" +" :dv=/dev/cuau0:br#57600:at=hayes:pa=none:du:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47951 +msgid "This should now work:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:47953 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>tip -115200 5551234</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47955 +msgid "" +"Users who prefer <command>cu</command> over <command>tip</command>, can use " +"a generic <literal>cu</literal> entry:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47959 +#, no-wrap +msgid "" +"cu115200|Use cu to dial any number at 115200bps:\\\n" +" :dv=/dev/cuau1:br#57600:at=hayes:pa=none:du:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:47962 +msgid "and type:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:47964 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cu 5551234 -s 115200</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:47968 +msgid "Setting the <acronym>bps</acronym> Rate" +msgstr "設定 <acronym>bps</acronym> 率" + +#. (itstool) path: sect2/para +#: book.translate.xml:47970 +msgid "" +"Put in an entry for <literal>tip1200</literal> or <literal>cu1200</literal>, " +"but go ahead and use whatever <acronym>bps</acronym> rate is appropriate " +"with the <literal>br</literal> capability. <command>tip</command> thinks a " +"good default is 1200 bps which is why it looks for a <literal>tip1200</" +"literal> entry. 1200 bps does not have to be used, though." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:47980 +msgid "Accessing a Number of Hosts Through a Terminal Server" +msgstr "透過終端伺服器存取多個主機" + +#. (itstool) path: sect2/para +#: book.translate.xml:47983 +msgid "" +"Rather than waiting until connected and typing <command>CONNECT " +"<replaceable>host</replaceable></command> each time, use <command>tip</" +"command>'s <literal>cm</literal> capability. For example, these entries in " +"<filename>/etc/remote</filename> will let you type <command>tip pain</" +"command> or <command>tip muffin</command> to connect to the hosts " +"<systemitem>pain</systemitem> or <systemitem>muffin</systemitem>, and " +"<command>tip deep13</command> to connect to the terminal server." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:47993 +#, no-wrap +msgid "" +"pain|pain.deep13.com|Forrester's machine:\\\n" +" :cm=CONNECT pain\\n:tc=deep13:\n" +"muffin|muffin.deep13.com|Frank's machine:\\\n" +" :cm=CONNECT muffin\\n:tc=deep13:\n" +"deep13:Gizmonics Institute terminal server:\\\n" +" :dv=/dev/cuau2:br#38400:at=hayes:du:pa=none:pn=5551234:" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:48003 +msgid "Using More Than One Line with <command>tip</command>" +msgstr "在 <command>tip</command> 使用超過一行" + +#. (itstool) path: sect2/para +#: book.translate.xml:48006 +msgid "" +"This is often a problem where a university has several modem lines and " +"several thousand students trying to use them." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48010 +msgid "" +"Make an entry in <filename>/etc/remote</filename> and use <literal>@</" +"literal> for the <literal>pn</literal> capability:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:48014 +#, no-wrap +msgid "" +"big-university:\\\n" +" :pn=\\@:tc=dialout\n" +"dialout:\\\n" +" :dv=/dev/cuau3:br#9600:at=courier:du:pa=none:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48019 +msgid "Then, list the phone numbers in <filename>/etc/phones</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:48022 +#, no-wrap +msgid "" +"big-university 5551111\n" +"big-university 5551112\n" +"big-university 5551113\n" +"big-university 5551114" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48027 +msgid "" +"<command>tip</command> will try each number in the listed order, then give " +"up. To keep retrying, run <command>tip</command> in a <literal>while</" +"literal> loop." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:48034 +msgid "Using the Force Character" +msgstr "使用強制字元" + +#. (itstool) path: sect2/para +#: book.translate.xml:48036 +msgid "" +"<keycombo action=\"simul\"> <keycap>Ctrl</keycap> <keycap>P</keycap> </" +"keycombo> is the default <quote>force</quote> character, used to tell " +"<command>tip</command> that the next character is literal data. The force " +"character can be set to any other character with the <command>~s</command> " +"escape, which means <quote>set a variable.</quote>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48045 +msgid "" +"Type <command>~sforce=<replaceable>single-char</replaceable></command> " +"followed by a newline. <replaceable>single-char</replaceable> is any single " +"character. If <replaceable>single-char</replaceable> is left out, then the " +"force character is the null character, which is accessed by typing <keycombo " +"action=\"simul\"> <keycap>Ctrl</keycap><keycap>2</keycap> </keycombo> or " +"<keycombo action=\"simul\"> <keycap>Ctrl</keycap><keycap>Space</keycap> </" +"keycombo>. A pretty good value for <replaceable>single-char</replaceable> is " +"<keycombo action=\"simul\"> <keycap>Shift</keycap> <keycap>Ctrl</keycap> " +"<keycap>6</keycap> </keycombo>, which is only used on some terminal servers." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48066 +msgid "" +"To change the force character, specify the following in <filename>~/.tiprc</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:48069 +#, no-wrap +msgid "force=<replaceable>single-char</replaceable>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:48073 +msgid "Upper Case Characters" +msgstr "大寫字元" + +#. (itstool) path: sect2/para +#: book.translate.xml:48075 +msgid "" +"This happens when <keycombo action=\"simul\"> <keycap>Ctrl</keycap> " +"<keycap>A</keycap> </keycombo> is pressed, which is <command>tip</command>'s " +"<quote>raise character</quote>, specially designed for people with broken " +"caps-lock keys. Use <command>~s</command> to set <literal>raisechar</" +"literal> to something reasonable. It can be set to be the same as the force " +"character, if neither feature is used." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48086 +msgid "" +"Here is a sample <filename>~/.tiprc</filename> for <application>Emacs</" +"application> users who need to type <keycombo action=\"simul\"> " +"<keycap>Ctrl</keycap> <keycap>2</keycap> </keycombo> and <keycombo action=" +"\"simul\"> <keycap>Ctrl</keycap> <keycap>A</keycap> </keycombo>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:48096 +#, no-wrap +msgid "" +"force=^^\n" +"raisechar=^^" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48099 +msgid "" +"The <literal>^^</literal> is <keycombo action=\"simul\"> <keycap>Shift</" +"keycap><keycap>Ctrl</keycap><keycap>6</keycap> </keycombo>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:48107 +msgid "File Transfers with <command>tip</command>" +msgstr "使用 <command>tip</command> 傳輸檔案" + +#. (itstool) path: sect2/para +#: book.translate.xml:48109 +msgid "" +"When talking to another <trademark class=\"registered\">UNIX</trademark>-" +"like operating system, files can be sent and received using <command>~p</" +"command> (put) and <command>~t</command> (take). These commands run " +"<command>cat</command> and <command>echo</command> on the remote system to " +"accept and send files. The syntax is:" +msgstr "" + +#. (itstool) path: sect2/cmdsynopsis +#: book.translate.xml:48115 +msgid "" +"<command>~p</command> <arg choice=\"plain\">local-file</arg> <arg choice=" +"\"opt\">remote-file</arg>" +msgstr "" + +#. (itstool) path: sect2/cmdsynopsis +#: book.translate.xml:48121 +msgid "" +"<command>~t</command> <arg choice=\"plain\">remote-file</arg> <arg choice=" +"\"opt\">local-file</arg>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48127 +msgid "" +"There is no error checking, so another protocol, like zmodem, should " +"probably be used." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:48132 +msgid "Using <application>zmodem</application> with <command>tip</command>?" +msgstr "在 <application>zmodem</application> 使用 <command>tip</command>?" + +#. (itstool) path: sect2/para +#: book.translate.xml:48135 +msgid "" +"To receive files, start the sending program on the remote end. Then, type " +"<command>~C rz</command> to begin receiving them locally." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48139 +msgid "" +"To send files, start the receiving program on the remote end. Then, type " +"<command>~C sz <replaceable>files</replaceable></command> to send them to " +"the remote system." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:48148 +msgid "Setting Up the Serial Console" +msgstr "設定序列 Console" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:48151 +msgid "" +"<personname> <firstname>Kazutaka</firstname> <surname>YOKOTA</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:48161 +msgid "" +"<personname> <firstname>Bill</firstname> <surname>Paul</surname> </" +"personname> <contrib>Based on a document by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:48171 +msgid "<primary>serial console</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:48173 +msgid "" +"FreeBSD has the ability to boot a system with a dumb terminal on a serial " +"port as a console. This configuration is useful for system administrators " +"who wish to install FreeBSD on machines that have no keyboard or monitor " +"attached, and developers who want to debug the kernel or device drivers." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:48180 +msgid "" +"As described in <xref linkend=\"boot\"/>, FreeBSD employs a three stage " +"bootstrap. The first two stages are in the boot block code which is stored " +"at the beginning of the FreeBSD slice on the boot disk. The boot block then " +"loads and runs the boot loader as the third stage code." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:48186 +msgid "" +"In order to set up booting from a serial console, the boot block code, the " +"boot loader code, and the kernel need to be configured." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:48191 +msgid "Quick Serial Console Configuration" +msgstr "快速序列 Console 設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:48193 +msgid "" +"This section provides a fast overview of setting up the serial console. This " +"procedure can be used when the dumb terminal is connected to <filename>COM1</" +"filename>." +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:48198 +msgid "Configuring a Serial Console on <filename>COM1</filename>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48202 +msgid "" +"Connect the serial cable to <filename>COM1</filename> and the controlling " +"terminal." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48208 +msgid "" +"To configure boot messages to display on the serial console, issue the " +"following command as the superuser:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:48212 +#, no-wrap +msgid "<prompt>#</prompt> echo 'console=\"comconsole\"' >> /boot/loader.conf" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48216 +msgid "" +"Edit <filename>/etc/ttys</filename> and change <literal>off</literal> to " +"<literal>on</literal> and <literal>dialup</literal> to <literal>vt100</" +"literal> for the <filename>ttyu0</filename> entry. Otherwise, a password " +"will not be required to connect via the serial console, resulting in a " +"potential security hole." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48225 +msgid "Reboot the system to see if the changes took effect." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48231 +msgid "" +"If a different configuration is required, see the next section for a more in-" +"depth configuration explanation." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:48236 +msgid "In-Depth Serial Console Configuration" +msgstr "深入序列 Console 設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:48238 +msgid "" +"This section provides a more detailed explanation of the steps needed to " +"setup a serial console in FreeBSD." +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:48242 +msgid "Configuring a Serial Console" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48245 +msgid "Prepare a serial cable." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48249 +msgid "" +"Use either a null-modem cable or a standard serial cable and a null-modem " +"adapter. See <xref linkend=\"term-cables-null\"/> for a discussion on serial " +"cables." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48255 +msgid "Unplug the keyboard." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48257 +msgid "" +"Many systems probe for the keyboard during the Power-On Self-Test " +"(<acronym>POST</acronym>) and will generate an error if the keyboard is not " +"detected. Some machines will refuse to boot until the keyboard is plugged in." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48263 +msgid "" +"If the computer complains about the error, but boots anyway, no further " +"configuration is needed." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48266 +msgid "" +"If the computer refuses to boot without a keyboard attached, configure the " +"<acronym>BIOS</acronym> so that it ignores this error. Consult the " +"motherboard's manual for details on how to do this." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:48272 +msgid "" +"Try setting the keyboard to <quote>Not installed</quote> in the " +"<acronym>BIOS</acronym>. This setting tells the <acronym>BIOS</acronym> not " +"to probe for a keyboard at power-on so it should not complain if the " +"keyboard is absent. If that option is not present in the <acronym>BIOS</" +"acronym>, look for an <quote>Halt on Error</quote> option instead. Setting " +"this to <quote>All but Keyboard</quote> or to <quote>No Errors</quote> will " +"have the same effect." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48283 +msgid "" +"If the system has a <trademark class=\"registered\">PS/2</trademark> mouse, " +"unplug it as well. <trademark class=\"registered\">PS/2</trademark> mice " +"share some hardware with the keyboard and leaving the mouse plugged in can " +"fool the keyboard probe into thinking the keyboard is still there." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:48289 +msgid "" +"While most systems will boot without a keyboard, quite a few will not boot " +"without a graphics adapter. Some systems can be configured to boot with no " +"graphics adapter by changing the <quote>graphics adapter</quote> setting in " +"the <acronym>BIOS</acronym> configuration to <quote>Not installed</quote>. " +"Other systems do not support this option and will refuse to boot if there is " +"no display hardware in the system. With these machines, leave some kind of " +"graphics card plugged in, even if it is just a junky mono board. A monitor " +"does not need to be attached." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48304 +msgid "" +"Plug a dumb terminal, an old computer with a modem program, or the serial " +"port on another <trademark class=\"registered\">UNIX</trademark> box into " +"the serial port." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48310 +msgid "" +"Add the appropriate <literal>hint.sio.*</literal> entries to <filename>/boot/" +"device.hints</filename> for the serial port. Some multi-port cards also " +"require kernel configuration options. Refer to " +"<citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> for the required options and device hints for each supported " +"serial port." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48319 +msgid "" +"Create <filename>boot.config</filename> in the root directory of the " +"<literal>a</literal> partition on the boot drive." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48323 +msgid "" +"This file instructs the boot block code how to boot the system. In order to " +"activate the serial console, one or more of the following options are " +"needed. When using multiple options, include them all on the same line:" +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: row/entry +#: book.translate.xml:48331 book.translate.xml:48440 +msgid "<option>-h</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48334 +msgid "" +"Toggles between the internal and serial consoles. Use this to switch console " +"devices. For instance, to boot from the internal (video) console, use " +"<option>-h</option> to direct the boot loader and the kernel to use the " +"serial port as its console device. Alternatively, to boot from the serial " +"port, use <option>-h</option> to tell the boot loader and the kernel to use " +"the video display as the console instead." +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: row/entry +#: book.translate.xml:48347 book.translate.xml:48445 +msgid "<option>-D</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48350 +msgid "" +"Toggles between the single and dual console configurations. In the single " +"configuration, the console will be either the internal console (video " +"display) or the serial port, depending on the state of <option>-h</option>. " +"In the dual console configuration, both the video display and the serial " +"port will become the console at the same time, regardless of the state of " +"<option>-h</option>. However, the dual console configuration takes effect " +"only while the boot block is running. Once the boot loader gets control, the " +"console specified by <option>-h</option> becomes the only console." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48368 +msgid "<option>-P</option>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48371 +msgid "" +"Makes the boot block probe the keyboard. If no keyboard is found, the " +"<option>-D</option> and <option>-h</option> options are automatically set." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:48377 +msgid "" +"Due to space constraints in the current version of the boot blocks, <option>-" +"P</option> is capable of detecting extended keyboards only. Keyboards with " +"less than 101 keys and without F11 and F12 keys may not be detected. " +"Keyboards on some laptops may not be properly found because of this " +"limitation. If this is the case, do not use <option>-P</option>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48390 +msgid "" +"Use either <option>-P</option> to select the console automatically or " +"<option>-h</option> to activate the serial console. Refer to " +"<citerefentry><refentrytitle>boot</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>boot.config</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for more details." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48395 +msgid "" +"The options, except for <option>-P</option>, are passed to the boot loader. " +"The boot loader will determine whether the internal video or the serial port " +"should become the console by examining the state of <option>-h</option>. " +"This means that if <option>-D</option> is specified but <option>-h</option> " +"is not specified in <filename>/boot.config</filename>, the serial port can " +"be used as the console only during the boot block as the boot loader will " +"use the internal video display as the console." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48408 +msgid "Boot the machine." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48410 +msgid "" +"When FreeBSD starts, the boot blocks echo the contents of <filename>/boot." +"config</filename> to the console. For example:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:48414 +#, no-wrap +msgid "" +"/boot.config: -P\n" +"Keyboard: no" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48417 +msgid "" +"The second line appears only if <option>-P</option> is in <filename>/boot." +"config</filename> and indicates the presence or absence of the keyboard. " +"These messages go to either the serial or internal console, or both, " +"depending on the option in <filename>/boot.config</filename>:" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:48428 +msgid "Options" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:48429 +msgid "Message goes to" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:48435 +msgid "none" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:48436 book.translate.xml:48456 +msgid "internal console" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:48441 book.translate.xml:48461 +msgid "serial console" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:48446 book.translate.xml:48451 +msgid "serial and internal consoles" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:48450 +msgid "<option>-Dh</option>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:48455 +msgid "<option>-P</option>, keyboard present" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:48460 +msgid "<option>-P</option>, keyboard absent" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48467 +msgid "" +"After the message, there will be a small pause before the boot blocks " +"continue loading the boot loader and before any further messages are printed " +"to the console. Under normal circumstances, there is no need to interrupt " +"the boot blocks, but one can do so in order to make sure things are set up " +"correctly." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48474 +msgid "" +"Press any key, other than <keycap>Enter</keycap>, at the console to " +"interrupt the boot process. The boot blocks will then prompt for further " +"action:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48482 +msgid "" +"Verify that the above message appears on either the serial or internal " +"console, or both, according to the options in <filename>/boot.config</" +"filename>. If the message appears in the correct console, press " +"<keycap>Enter</keycap> to continue the boot process." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:48489 +msgid "" +"If there is no prompt on the serial terminal, something is wrong with the " +"settings. Enter <option>-h</option> then <keycap>Enter</keycap> or " +"<keycap>Return</keycap> to tell the boot block (and then the boot loader and " +"the kernel) to choose the serial port for the console. Once the system is " +"up, go back and check what went wrong." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48499 +msgid "" +"During the third stage of the boot process, one can still switch between the " +"internal console and the serial console by setting appropriate environment " +"variables in the boot loader. See <citerefentry><refentrytitle>loader</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:48506 +msgid "" +"This line in <filename>/boot/loader.conf</filename> or <filename>/boot/" +"loader.conf.local</filename> configures the boot loader and the kernel to " +"send their boot messages to the serial console, regardless of the options in " +"<filename>/boot.config</filename>:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:48512 +#, no-wrap +msgid "console=\"comconsole\"" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:48514 +msgid "" +"That line should be the first line of <filename>/boot/loader.conf</filename> " +"so that boot messages are displayed on the serial console as early as " +"possible." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:48519 +msgid "" +"If that line does not exist, or if it is set to <literal>console=\"vidconsole" +"\"</literal>, the boot loader and the kernel will use whichever console is " +"indicated by <option>-h</option> in the boot block. See " +"<citerefentry><refentrytitle>loader.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:48525 +msgid "" +"At the moment, the boot loader has no option equivalent to <option>-P</" +"option> in the boot block, and there is no provision to automatically select " +"the internal console and the serial console based on the presence of the " +"keyboard." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:48533 +msgid "" +"While it is not required, it is possible to provide a <command>login</" +"command> prompt over the serial line. To configure this, edit the entry for " +"the serial port in <filename>/etc/ttys</filename> using the instructions in " +"<xref linkend=\"term-config\"/>. If the speed of the serial port has been " +"changed, change <literal>std.9600</literal> to match the new setting." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:48544 +msgid "Setting a Faster Serial Port Speed" +msgstr "設定使用更快的序列埠速度" + +#. (itstool) path: sect2/para +#: book.translate.xml:48546 +msgid "" +"By default, the serial port settings are 9600 baud, 8 bits, no parity, and 1 " +"stop bit. To change the default console speed, use one of the following " +"options:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48552 +msgid "" +"Edit <filename>/etc/make.conf</filename> and set " +"<varname>BOOT_COMCONSOLE_SPEED</varname> to the new console speed. Then, " +"recompile and install the boot blocks and the boot loader:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:48557 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /sys/boot</userinput>\n" +"<prompt>#</prompt> <userinput>make clean</userinput>\n" +"<prompt>#</prompt> <userinput>make</userinput>\n" +"<prompt>#</prompt> <userinput>make install</userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48562 +msgid "" +"If the serial console is configured in some other way than by booting with " +"<option>-h</option>, or if the serial console used by the kernel is " +"different from the one used by the boot blocks, add the following option, " +"with the desired speed, to a custom kernel configuration file and compile a " +"new kernel:" +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:48569 +#, no-wrap +msgid "options CONSPEED=<replaceable>19200</replaceable>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48573 +msgid "" +"Add the <option>-S<replaceable>19200</replaceable></option> boot option to " +"<filename>/boot.config</filename>, replacing <replaceable>19200</" +"replaceable> with the speed to use." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48581 +msgid "" +"Add the following options to <filename>/boot/loader.conf</filename>. Replace " +"<replaceable>115200</replaceable> with the speed to use." +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:48586 +#, no-wrap +msgid "" +"boot_multicons=\"YES\"\n" +"boot_serial=\"YES\"\n" +"comconsole_speed=\"<replaceable>115200</replaceable>\"\n" +"console=\"comconsole,vidconsole\"" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:48595 +msgid "Entering the DDB Debugger from the Serial Line" +msgstr "從序列線路 (Serial Line) 進入 DDB 除錯程式" + +#. (itstool) path: sect2/para +#: book.translate.xml:48597 +msgid "" +"To configure the ability to drop into the kernel debugger from the serial " +"console, add the following options to a custom kernel configuration file and " +"compile the kernel using the instructions in <xref linkend=\"kernelconfig\"/" +">. Note that while this is useful for remote diagnostics, it is also " +"dangerous if a spurious BREAK is generated on the serial port. Refer to " +"<citerefentry><refentrytitle>ddb</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>ddb</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more information " +"about the kernel debugger." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:48606 +#, no-wrap +msgid "" +"options BREAK_TO_DEBUGGER\n" +"options DDB" +msgstr "" + +#. (itstool) path: chapter/title +#: book.translate.xml:48631 +msgid "<acronym>PPP</acronym>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) id: book.translate.xml#ppp-ppp +#: book.translate.xml:48636 book.translate.xml:48663 +msgid "<primary><acronym>PPP</acronym></primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:48640 +msgid "" +"FreeBSD supports the Point-to-Point (<acronym>PPP</acronym>) protocol which " +"can be used to establish a network or Internet connection using a dial-up " +"modem. This chapter describes how to configure modem-based communication " +"services in FreeBSD." +msgstr "" +"FreeBSD 支援點對點 (Point-to-Point, <acronym>PPP</acronym>) 通訊協定,可透過" +"撥號數據機用來建立網路或網際網路連線。本章將說明如何設定在 FreeBSD 中以數據機" +"為基礎的通訊服務。" + +#. (itstool) path: listitem/para +#: book.translate.xml:48649 +msgid "" +"How to configure, use, and troubleshoot a <acronym>PPP</acronym> connection." +msgstr "如何設定、使用 <acronym>PPP</acronym> 連線及排除問題。" + +#. (itstool) path: listitem/para +#: book.translate.xml:48653 +msgid "" +"How to set up <acronym>PPP</acronym> over Ethernet (<acronym>PPPoE</" +"acronym>)." +msgstr "" +"如何設定在乙太網路 (Ethernet) 上的 <acronym>PPP</acronym> (<acronym>PPPoE</" +"acronym>)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:48657 +msgid "" +"How to set up <acronym>PPP</acronym> over <acronym>ATM</acronym> " +"(<acronym>PPPoA</acronym>)." +msgstr "" +"如何設定在 <acronym>ATM</acronym> 上的 <acronym>PPP</acronym> " +"(<acronym>PPPoA</acronym>)。" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:48666 book.translate.xml:49927 +msgid "" +"<primary><acronym>PPP</acronym></primary> <secondary>over Ethernet</" +"secondary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48675 book.translate.xml:61679 +msgid "Be familiar with basic network terminology." +msgstr "熟悉基本網路術語。" + +#. (itstool) path: listitem/para +#: book.translate.xml:48678 +msgid "" +"Understand the basics and purpose of a dial-up connection and <acronym>PPP</" +"acronym>." +msgstr "了解撥號連線及 <acronym>PPP</acronym> 的基礎及目的。" + +#. (itstool) path: sect1/title +#: book.translate.xml:48719 +msgid "Configuring <acronym>PPP</acronym>" +msgstr "設定 <acronym>PPP</acronym>" + +#. (itstool) path: sect1/para +#: book.translate.xml:48721 +msgid "" +"FreeBSD provides built-in support for managing dial-up <acronym>PPP</" +"acronym> connections using <citerefentry><refentrytitle>ppp</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. The default FreeBSD " +"kernel provides support for <filename>tun</filename> which is used to " +"interact with a modem hardware. Configuration is performed by editing at " +"least one configuration file, and configuration files containing examples " +"are provided. Finally, <command>ppp</command> is used to start and manage " +"connections." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:48730 +msgid "" +"In order to use a <acronym>PPP</acronym> connection, the following items are " +"needed:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48735 +msgid "" +"A dial-up account with an Internet Service Provider (<acronym>ISP</acronym>)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48740 +msgid "A dial-up modem." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48744 +msgid "The dial-up number for the <acronym>ISP</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48749 +msgid "The login name and password assigned by the <acronym>ISP</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48754 +msgid "" +"The <acronym>IP</acronym> address of one or more <acronym>DNS</acronym> " +"servers. Normally, the <acronym>ISP</acronym> provides these addresses. If " +"it did not, FreeBSD can be configured to use <acronym>DNS</acronym> " +"negotiation." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:48762 +msgid "" +"If any of the required information is missing, contact the <acronym>ISP</" +"acronym>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:48765 +msgid "" +"The following information may be supplied by the <acronym>ISP</acronym>, but " +"is not necessary:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48770 +msgid "" +"The <acronym>IP</acronym> address of the default gateway. If this " +"information is unknown, the <acronym>ISP</acronym> will automatically " +"provide the correct value during connection setup. When configuring " +"<acronym>PPP</acronym> on FreeBSD, this address is referred to as " +"<literal>HISADDR</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48779 +msgid "" +"The subnet mask. If the <acronym>ISP</acronym> has not provided one, " +"<systemitem class=\"netmask\">255.255.255.255</systemitem> will be used in " +"the <citerefentry><refentrytitle>ppp</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> configuration file." +msgstr "" + +#. (itstool) path: listitem/indexterm +#. (itstool) id: book.translate.xml#ppp-static-ip +#: book.translate.xml:48785 +msgid "<primary>static <acronym>IP</acronym> address</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48789 +msgid "" +"If the <acronym>ISP</acronym> has assigned a static <acronym>IP</acronym> " +"address and hostname, it should be input into the configuration file. " +"Otherwise, this information will be automatically provided during connection " +"setup." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:48797 +msgid "" +"The rest of this section demonstrates how to configure FreeBSD for common " +"<acronym>PPP</acronym> connection scenarios. The required configuration file " +"is <filename>/etc/ppp/ppp.conf</filename> and additional files and examples " +"are available in <filename>/usr/share/examples/ppp/</filename>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:48805 +msgid "" +"Throughout this section, many of the file examples display line numbers. " +"These line numbers have been added to make it easier to follow the " +"discussion and are not meant to be placed in the actual file." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:48810 +msgid "" +"When editing a configuration file, proper indentation is important. Lines " +"that end in a <literal>:</literal> start in the first column (beginning of " +"the line) while all other lines should be indented as shown using spaces or " +"tabs." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:48817 book.translate.xml:51178 +msgid "Basic Configuration" +msgstr "基礎設定" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:48819 +msgid "" +"<primary>PPP</primary> <secondary>with static <acronym>IP</acronym> " +"addresses</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:48825 +msgid "" +"In order to configure a <acronym>PPP</acronym> connection, first edit " +"<filename>/etc/ppp/ppp.conf</filename> with the dial-in information for the " +"<acronym>ISP</acronym>. This file is described as follows:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:48830 +#, no-wrap +msgid "" +"1 default:\n" +"2 set log Phase Chat LCP IPCP CCP tun command\n" +"3 ident user-ppp VERSION\n" +"4 set device /dev/cuau0\n" +"5 set speed 115200\n" +"6 set dial \"ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 5 \\\n" +"7 \\\"\\\" AT OK-AT-OK ATE1Q0 OK \\\\dATDT\\\\T TIMEOUT 40 CONNECT\"\n" +"8 set timeout 180\n" +"9 enable dns\n" +"10\n" +"11 provider:\n" +"12 set phone \"(123) 456 7890\"\n" +"13 set authname foo\n" +"14 set authkey bar\n" +"15 set timeout 300\n" +"16 set ifaddr <replaceable>x.x.x.x</replaceable>/0 <replaceable>y.y.y.y</replaceable>/0 255.255.255.255 0.0.0.0\n" +"17 add default HISADDR" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48850 +msgid "Line 1:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48853 +msgid "" +"Identifies the <literal>default</literal> entry. Commands in this entry " +"(lines 2 through 9) are executed automatically when <command>ppp</command> " +"is run." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48861 +msgid "Line 2:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48864 +msgid "" +"Enables verbose logging parameters for testing the connection. Once the " +"configuration is working satisfactorily, this line should be reduced to:" +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:48869 +#, no-wrap +msgid "set log phase tun" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48875 +msgid "Line 3:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48878 +msgid "" +"Displays the version of <citerefentry><refentrytitle>ppp</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to the <acronym>PPP</" +"acronym> software running on the other side of the connection." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48885 +msgid "Line 4:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48888 +msgid "" +"Identifies the device to which the modem is connected, where <filename>COM1</" +"filename> is <filename>/dev/cuau0</filename> and <filename>COM2</filename> " +"is <filename>/dev/cuau1</filename>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48897 +msgid "Line 5:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48900 +msgid "" +"Sets the connection speed. If <literal>115200</literal> does not work on an " +"older modem, try <literal>38400</literal> instead." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48907 +msgid "Lines 6 & 7:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48910 +msgid "" +"The dial string written as an expect-send syntax. Refer to " +"<citerefentry><refentrytitle>chat</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for more information." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48914 +msgid "" +"Note that this command continues onto the next line for readability. Any " +"command in <filename>ppp.conf</filename> may do this if the last character " +"on the line is <literal>\\</literal>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48923 +msgid "Line 8:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48926 +msgid "Sets the idle timeout for the link in seconds." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48932 +msgid "Line 9:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48935 +msgid "" +"Instructs the peer to confirm the <acronym>DNS</acronym> settings. If the " +"local network is running its own <acronym>DNS</acronym> server, this line " +"should be commented out, by adding a <literal>#</literal> at the beginning " +"of the line, or removed." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48945 +msgid "Line 10:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48948 +msgid "" +"A blank line for readability. Blank lines are ignored by " +"<citerefentry><refentrytitle>ppp</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48954 +msgid "Line 11:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48957 +msgid "" +"Identifies an entry called <literal>provider</literal>. This could be " +"changed to the name of the <acronym>ISP</acronym> so that <option>load " +"<replaceable>ISP</replaceable></option> can be used to start the connection." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48967 +msgid "Line 12:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48970 +msgid "" +"Use the phone number for the <acronym>ISP</acronym>. Multiple phone numbers " +"may be specified using the colon (<literal>:</literal>) or pipe character " +"(<literal>|</literal>) as a separator. To rotate through the numbers, use a " +"colon. To always attempt to dial the first number first and only use the " +"other numbers if the first number fails, use the pipe character. Always " +"enclose the entire set of phone numbers between quotation marks (<literal>" +"\"</literal>) to prevent dialing failures." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48985 +msgid "Lines 13 & 14:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48988 +msgid "Use the user name and password for the <acronym>ISP</acronym>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:48994 book.translate.xml:49399 +msgid "Line 15:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:48997 +msgid "" +"Sets the default idle timeout in seconds for the connection. In this " +"example, the connection will be closed automatically after 300 seconds of " +"inactivity. To prevent a timeout, set this value to zero." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:49006 +msgid "Line 16:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:49008 +msgid "" +"Sets the interface addresses. The values used depend upon whether a static " +"<acronym>IP</acronym> address has been obtained from the <acronym>ISP</" +"acronym> or if it instead negotiates a dynamic <acronym>IP</acronym> address " +"during connection." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:49015 +msgid "" +"If the <acronym>ISP</acronym> has allocated a static <acronym>IP</acronym> " +"address and default gateway, replace <replaceable>x.x.x.x</replaceable> with " +"the static <acronym>IP</acronym> address and replace <replaceable>y.y.y.y</" +"replaceable> with the <acronym>IP</acronym> address of the default gateway. " +"If the <acronym>ISP</acronym> has only provided a static <acronym>IP</" +"acronym> address without a gateway address, replace <replaceable>y.y.y.y</" +"replaceable> with <systemitem class=\"netmask\">10.0.0.2/0</systemitem>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:49026 +msgid "" +"If the <acronym>IP</acronym> address changes whenever a connection is made, " +"change this line to the following value. This tells " +"<citerefentry><refentrytitle>ppp</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to use the <acronym>IP</acronym> Configuration Protocol " +"(<acronym>IPCP</acronym>) to negotiate a dynamic <acronym>IP</acronym> " +"address:" +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:49033 +#, no-wrap +msgid "set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:49039 +msgid "Line 17:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:49042 +msgid "" +"Keep this line as-is as it adds a default route to the gateway. The " +"<literal>HISADDR</literal> will automatically be replaced with the gateway " +"address specified on line 16. It is important that this line appears after " +"line 16." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49051 +msgid "" +"Depending upon whether <citerefentry><refentrytitle>ppp</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> is started manually or " +"automatically, a <filename>/etc/ppp/ppp.linkup</filename> may also need to " +"be created which contains the following lines. This file is required when " +"running <command>ppp</command> in <option>-auto</option> mode. This file is " +"used after the connection has been established. At this point, the " +"<acronym>IP</acronym> address will have been assigned and it is now be " +"possible to add the routing table entries. When creating this file, make " +"sure that <replaceable>provider</replaceable> matches the value demonstrated " +"in line 11 of <filename>ppp.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49065 +#, no-wrap +msgid "" +"provider:\n" +" add default HISADDR" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49068 +msgid "" +"This file is also needed when the default gateway address is <quote>guessed</" +"quote> in a static <acronym>IP</acronym> address configuration. In this " +"case, remove line 17 from <filename>ppp.conf</filename> and create " +"<filename>/etc/ppp/ppp.linkup</filename> with the above two lines. More " +"examples for this file can be found in <filename>/usr/share/examples/ppp/</" +"filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49076 +msgid "" +"By default, <command>ppp</command> must be run as <systemitem class=" +"\"username\">root</systemitem>. To change this default, add the account of " +"the user who should run <command>ppp</command> to the <systemitem class=" +"\"groupname\">network</systemitem> group in <filename>/etc/group</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49082 +msgid "" +"Then, give the user access to one or more entries in <filename>/etc/ppp/ppp." +"conf</filename> with <command>allow</command>. For example, to give " +"<systemitem class=\"username\">fred</systemitem> and <systemitem class=" +"\"username\">mary</systemitem> permission to only the <literal>provider:</" +"literal> entry, add this line to the <literal>provider:</literal> section:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49091 +#, no-wrap +msgid "allow users <replaceable>fred mary</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49093 +msgid "" +"To give the specified users access to all entries, put that line in the " +"<literal>default</literal> section instead." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:49303 +msgid "<primary>NetBIOS</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:49307 +msgid "" +"<primary><acronym>PPP</acronym></primary> <secondary>Microsoft extensions</" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49312 +msgid "" +"It is possible to configure PPP to supply DNS and NetBIOS nameserver " +"addresses on demand." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49315 +msgid "" +"To enable these extensions with <acronym>PPP</acronym> version 1.x, the " +"following lines might be added to the relevant section of <filename>/etc/ppp/" +"ppp.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49320 +#, no-wrap +msgid "" +"enable msext\n" +"set ns 203.14.100.1 203.14.100.2\n" +"set nbns 203.14.100.5" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49324 +msgid "And for <acronym>PPP</acronym> version 2 and above:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49327 +#, no-wrap +msgid "" +"accept dns\n" +"set dns 203.14.100.1 203.14.100.2\n" +"set nbns 203.14.100.5" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49331 +msgid "" +"This will tell the clients the primary and secondary name server addresses, " +"and a NetBIOS nameserver host." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49335 +msgid "" +"In version 2 and above, if the <literal>set dns</literal> line is omitted, " +"<acronym>PPP</acronym> will use the values found in <filename>/etc/resolv." +"conf</filename>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:49341 +msgid "PAP and CHAP Authentication" +msgstr "PAP 與 CHAP 認證" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:49343 +msgid "<primary>PAP</primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:49344 +msgid "<primary>CHAP</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:49345 +msgid "" +"Some <acronym>ISP</acronym>s set their system up so that the authentication " +"part of the connection is done using either of the PAP or CHAP " +"authentication mechanisms. If this is the case, the <acronym>ISP</acronym> " +"will not give a <prompt>login:</prompt> prompt at connection, but will start " +"talking <acronym>PPP</acronym> immediately." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:49353 +msgid "" +"PAP is less secure than CHAP, but security is not normally an issue here as " +"passwords, although being sent as plain text with PAP, are being transmitted " +"down a serial line only. There is not much room for crackers to " +"<quote>eavesdrop</quote>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:49359 +msgid "The following alterations must be made:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:49362 +#, no-wrap +msgid "" +"13 set authname <replaceable>MyUserName</replaceable>\n" +"14 set authkey <replaceable>MyPassword</replaceable>\n" +"15 set login" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:49368 +msgid "Line 13:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:49371 +msgid "" +"This line specifies the PAP/CHAP user name. Insert the correct value for " +"<replaceable>MyUserName</replaceable>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:49378 +msgid "Line 14:" +msgstr "" + +#. (itstool) path: para/indexterm +#: book.translate.xml:49381 +msgid "<primary>password</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:49380 +msgid "" +"This line specifies the PAP/CHAP password<_:indexterm-1/>. Insert the " +"correct value for <replaceable>MyPassword</replaceable>. You may want to add " +"an additional line, such as:" +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:49386 +#, no-wrap +msgid "16 accept PAP" +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:49390 +#, no-wrap +msgid "16 accept CHAP" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:49392 +msgid "" +"to make it obvious that this is the intention, but PAP and CHAP are both " +"accepted by default." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:49402 +msgid "" +"The <acronym>ISP</acronym> will not normally require a login to the server " +"when using PAP or CHAP. Therefore, disable the <quote>set login</quote> " +"string." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:49412 +msgid "Using <acronym>PPP</acronym> Network Address Translation Capability" +msgstr "使用 <acronym>PPP</acronym> 網路位址轉譯功能" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:49415 +msgid "<primary><acronym>PPP</acronym></primary><secondary>NAT</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:49419 +msgid "" +"PPP has ability to use internal NAT without kernel diverting capabilities. " +"This functionality may be enabled by the following line in <filename>/etc/" +"ppp/ppp.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:49424 +#, no-wrap +msgid "nat enable yes" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:49426 +msgid "" +"Alternatively, NAT may be enabled by command-line option <literal>-nat</" +"literal>. There is also <filename>/etc/rc.conf</filename> knob named " +"<literal>ppp_nat</literal>, which is enabled by default." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:49432 +msgid "" +"When using this feature, it may be useful to include the following " +"<filename>/etc/ppp/ppp.conf</filename> options to enable incoming " +"connections forwarding:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:49436 +#, no-wrap +msgid "" +"nat port tcp 10.0.0.2:ftp ftp\n" +"nat port tcp 10.0.0.2:http http" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:49439 +msgid "or do not trust the outside at all" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:49441 +#, no-wrap +msgid "nat deny_incoming yes" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:49446 +msgid "Final System Configuration" +msgstr "最終系統設定" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:49448 +msgid "" +"<primary><acronym>PPP</acronym></primary><secondary>configuration</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49452 +msgid "" +"While <command>ppp</command> is now configured, some edits still need to be " +"made to <filename>/etc/rc.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49456 +msgid "" +"Working from the top down in this file, make sure the <literal>hostname=</" +"literal> line is set:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49459 +#, no-wrap +msgid "hostname=\"foo.example.com\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49461 +msgid "" +"If the <acronym>ISP</acronym> has supplied a static <acronym>IP</acronym> " +"address and name, use this name as the host name." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49465 +msgid "" +"Look for the <literal>network_interfaces</literal> variable. To configure " +"the system to dial the <acronym>ISP</acronym> on demand, make sure the " +"<filename>tun0</filename> device is added to the list, otherwise remove it." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49471 +#, no-wrap +msgid "" +"network_interfaces=\"lo0 tun0\"\n" +"ifconfig_tun0=" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:49475 +msgid "" +"The <literal>ifconfig_tun0</literal> variable should be empty, and a file " +"called <filename>/etc/start_if.tun0</filename> should be created. This file " +"should contain the line:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:49480 +#, no-wrap +msgid "ppp -auto mysystem" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:49482 +msgid "" +"This script is executed at network configuration time, starting the ppp " +"daemon in automatic mode. If this machine acts as a gateway, consider " +"including <option>-alias</option>. Refer to the manual page for further " +"details." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49489 +msgid "" +"Make sure that the router program is set to <literal>NO</literal> with the " +"following line in <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49493 +#, no-wrap +msgid "router_enable=\"NO\"" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:49495 +msgid "<primary><application>routed</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49499 +msgid "" +"It is important that the <command>routed</command> daemon is not started, as " +"<command>routed</command> tends to delete the default routing table entries " +"created by <command>ppp</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49504 +msgid "" +"It is probably a good idea to ensure that the <literal>sendmail_flags</" +"literal> line does not include the <option>-q</option> option, otherwise " +"<command>sendmail</command> will attempt to do a network lookup every now " +"and then, possibly causing your machine to dial out. You may try:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49511 +#, no-wrap +msgid "sendmail_flags=\"-bd\"" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:49513 +msgid "<primary><application>sendmail</application></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49516 +msgid "" +"The downside is that <command>sendmail</command> is forced to re-examine the " +"mail queue whenever the ppp link. To automate this, include <command>!bg</" +"command> in <filename>ppp.linkup</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49521 +#, no-wrap +msgid "" +"1 provider:\n" +"2 delete ALL\n" +"3 add 0 0 HISADDR\n" +"4 !bg sendmail -bd -q30m" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:49526 book.translate.xml:51203 +msgid "<primary>SMTP</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49530 +msgid "" +"An alternative is to set up a <quote>dfilter</quote> to block SMTP traffic. " +"Refer to the sample files for further details." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:49536 +msgid "Using <command>ppp</command>" +msgstr "使用 <command>ppp</command>" + +#. (itstool) path: sect2/para +#: book.translate.xml:49538 +msgid "" +"All that is left is to reboot the machine. After rebooting, either type:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49541 book.translate.xml:49734 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ppp</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49543 +msgid "" +"and then <command>dial provider</command> to start the <acronym>PPP</" +"acronym> session, or, to configure <command>ppp</command> to establish " +"sessions automatically when there is outbound traffic and <filename>start_if." +"tun0</filename> does not exist, type:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49550 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ppp -auto provider</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49552 +msgid "" +"It is possible to talk to the <command>ppp</command> program while it is " +"running in the background, but only if a suitable diagnostic port has been " +"set up. To do this, add the following line to the configuration:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49557 +#, no-wrap +msgid "set server /var/run/ppp-tun<replaceable>%d</replaceable> DiagnosticPassword 0177" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49559 +msgid "" +"This will tell PPP to listen to the specified <trademark class=\"registered" +"\">UNIX</trademark> domain socket, asking clients for the specified password " +"before allowing access. The <literal>%d</literal> in the name is replaced " +"with the <filename>tun</filename> device number that is in use." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49566 +msgid "" +"Once a socket has been set up, the <citerefentry><refentrytitle>pppctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> program may be used in " +"scripts that wish to manipulate the running program." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:49572 +msgid "Configuring Dial-in Services" +msgstr "設定撥入服務" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:49574 +msgid "<primary><command>mgetty</command></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:49578 +msgid "<primary>AutoPPP</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:49582 +msgid "<primary>LCP</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49585 +msgid "" +"<xref linkend=\"dialup\"/> provides a good description on enabling dial-up " +"services using <citerefentry><refentrytitle>getty</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49588 +msgid "" +"An alternative to <command>getty</command> is <package>comms/mgetty+sendfax</" +"package> port), a smarter version of <command>getty</command> designed with " +"dial-up lines in mind." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49593 +msgid "" +"The advantages of using <command>mgetty</command> is that it actively " +"<emphasis>talks</emphasis> to modems, meaning if port is turned off in " +"<filename>/etc/ttys</filename> then the modem will not answer the phone." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49599 +msgid "" +"Later versions of <command>mgetty</command> (from 0.99beta onwards) also " +"support the automatic detection of <acronym>PPP</acronym> streams, allowing " +"clients scriptless access to the server." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49604 +msgid "" +"Refer to <link xlink:href=\"http://mgetty.greenie.net/doc/mgetty_toc.html" +"\">http://mgetty.greenie.net/doc/mgetty_toc.html</link> for more information " +"on <command>mgetty</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49607 +msgid "" +"By default the <package>comms/mgetty+sendfax</package> port comes with the " +"<literal>AUTO_PPP</literal> option enabled allowing <command>mgetty</" +"command> to detect the LCP phase of <acronym>PPP</acronym> connections and " +"automatically spawn off a ppp shell. However, since the default login/" +"password sequence does not occur it is necessary to authenticate users using " +"either PAP or CHAP." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49616 +msgid "" +"This section assumes the user has successfully compiled, and installed the " +"<package>comms/mgetty+sendfax</package> port on his system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49621 +msgid "" +"Ensure that <filename>/usr/local/etc/mgetty+sendfax/login.config</filename> " +"has the following:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49625 +#, no-wrap +msgid "/AutoPPP/ - - /etc/ppp/ppp-pap-dialup" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49627 +msgid "" +"This tells <command>mgetty</command> to run <filename>ppp-pap-dialup</" +"filename> for detected <acronym>PPP</acronym> connections." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49631 +msgid "" +"Create an executable file called <filename>/etc/ppp/ppp-pap-dialup</" +"filename> containing the following:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49635 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"exec /usr/sbin/ppp -direct pap$IDENT" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49638 +msgid "" +"For each dial-up line enabled in <filename>/etc/ttys</filename>, create a " +"corresponding entry in <filename>/etc/ppp/ppp.conf</filename>. This will " +"happily co-exist with the definitions we created above." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49644 +#, no-wrap +msgid "" +"pap:\n" +" enable pap\n" +" set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40\n" +" enable proxy" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49649 +msgid "" +"Each user logging in with this method will need to have a username/password " +"in <filename>/etc/ppp/ppp.secret</filename>, or alternatively add the " +"following option to authenticate users via PAP from <filename>/etc/passwd</" +"filename>." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49656 +#, no-wrap +msgid "enable passwdauth" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49658 +msgid "" +"To assign some users a static <acronym>IP</acronym> number, specify the " +"number as the third argument in <filename>/etc/ppp/ppp.secret</filename>. " +"See <filename>/usr/share/examples/ppp/ppp.secret.sample</filename> for " +"examples." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:49678 +msgid "Troubleshooting <acronym>PPP</acronym> Connections" +msgstr "<acronym>PPP</acronym> 連線疑難排解" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:49680 +msgid "" +"<primary><acronym>PPP</acronym></primary> <secondary>troubleshooting</" +"secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:49685 +msgid "" +"This section covers a few issues which may arise when using <acronym>PPP</" +"acronym> over a modem connection. Some <acronym>ISP</acronym>s present the " +"<literal>ssword</literal> prompt while others present <literal>password</" +"literal>. If the <command>ppp</command> script is not written accordingly, " +"the login attempt will fail. The most common way to debug <command>ppp</" +"command> connections is by connecting manually as described in this section." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:49696 +msgid "Check the Device Nodes" +msgstr "檢查裝置節點" + +#. (itstool) path: sect2/para +#: book.translate.xml:49698 +msgid "" +"When using a custom kernel, make sure to include the following line in the " +"kernel configuration file:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49701 +#, no-wrap +msgid "device uart" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49703 +msgid "" +"The <filename>uart</filename> device is already included in the " +"<literal>GENERIC</literal> kernel, so no additional steps are necessary in " +"this case. Just check the <command>dmesg</command> output for the modem " +"device with:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49709 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dmesg | grep uart</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49711 +msgid "" +"This should display some pertinent output about the <filename>uart</" +"filename> devices. These are the COM ports we need. If the modem acts like a " +"standard serial port, it should be listed on <filename>uart1</filename>, or " +"<filename>COM2</filename>. If so, a kernel rebuild is not required. When " +"matching up, if the modem is on <filename>uart1</filename>, the modem device " +"would be <filename>/dev/cuau1</filename>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:49722 +msgid "Connecting Manually" +msgstr "手動連線" + +#. (itstool) path: sect2/para +#: book.translate.xml:49724 +msgid "" +"Connecting to the Internet by manually controlling <command>ppp</command> is " +"quick, easy, and a great way to debug a connection or just get information " +"on how the <acronym>ISP</acronym> treats <command>ppp</command> client " +"connections. Lets start <application>PPP</application> from the command " +"line. Note that in all of our examples we will use <emphasis>example</" +"emphasis> as the hostname of the machine running <application>PPP</" +"application>. To start <command>ppp</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49736 +#, no-wrap +msgid "ppp ON example> <userinput>set device /dev/cuau1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49738 +msgid "" +"This second command sets the modem device to <filename>cuau1</filename>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49741 +#, no-wrap +msgid "ppp ON example> <userinput>set speed 115200</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49743 +msgid "This sets the connection speed to 115,200 <acronym>kbps</acronym>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49746 +#, no-wrap +msgid "ppp ON example> <userinput>enable dns</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49748 +msgid "" +"This tells <command>ppp</command> to configure the resolver and add the " +"nameserver lines to <filename>/etc/resolv.conf</filename>. If <command>ppp</" +"command> cannot determine the hostname, it can manually be set later." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49754 +#, no-wrap +msgid "ppp ON example> <userinput>term</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49756 +msgid "" +"This switches to <quote>terminal</quote> mode in order to manually control " +"the modem." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49759 +#, no-wrap +msgid "" +"deflink: Entering terminal mode on <filename class=\"devicefile\">/dev/cuau1</filename>\n" +"type '~h' for help" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49762 +#, no-wrap +msgid "" +"<userinput>at</userinput>\n" +"OK\n" +"<userinput>atdt<replaceable>123456789</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49766 +msgid "" +"Use <command>at</command> to initialize the modem, then use <command>atdt</" +"command> and the number for the <acronym>ISP</acronym> to begin the dial in " +"process." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49770 +#, no-wrap +msgid "CONNECT" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49772 +msgid "" +"Confirmation of the connection, if we are going to have any connection " +"problems, unrelated to hardware, here is where we will attempt to resolve " +"them." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49776 +#, no-wrap +msgid "ISP Login:<userinput>myusername</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49778 +msgid "" +"At this prompt, return the prompt with the username that was provided by the " +"<acronym>ISP</acronym>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49781 +#, no-wrap +msgid "ISP Pass:<userinput>mypassword</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49783 +msgid "" +"At this prompt, reply with the password that was provided by the " +"<acronym>ISP</acronym>. Just like logging into FreeBSD, the password will " +"not echo." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49787 +#, no-wrap +msgid "Shell or PPP:<userinput>ppp</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49789 +msgid "" +"Depending on the <acronym>ISP</acronym>, this prompt might not appear. If it " +"does, it is asking whether to use a shell on the provider or to start " +"<command>ppp</command>. In this example, <command>ppp</command> was selected " +"in order to establish an Internet connection." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49796 +#, no-wrap +msgid "Ppp ON example>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49798 +msgid "" +"Notice that in this example the first <option>p</option> has been " +"capitalized. This shows that we have successfully connected to the " +"<acronym>ISP</acronym>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49802 +#, no-wrap +msgid "PPp ON example>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49804 +msgid "" +"We have successfully authenticated with our <acronym>ISP</acronym> and are " +"waiting for the assigned <acronym>IP</acronym> address." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49808 +#, no-wrap +msgid "PPP ON example>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49810 +msgid "" +"We have made an agreement on an <acronym>IP</acronym> address and " +"successfully completed our connection." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49813 +#, no-wrap +msgid "PPP ON example><userinput>add default HISADDR</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49815 +msgid "" +"Here we add our default route, we need to do this before we can talk to the " +"outside world as currently the only established connection is with the peer. " +"If this fails due to existing routes, put a bang character <literal>!</" +"literal> in front of the <option>add</option>. Alternatively, set this " +"before making the actual connection and it will negotiate a new route " +"accordingly." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49824 +msgid "" +"If everything went good we should now have an active connection to the " +"Internet, which could be thrown into the background using <keycombo action=" +"\"simul\"><keycap>CTRL</keycap> <keycap>z</keycap></keycombo> If " +"<command>PPP</command> returns to <command>ppp</command> then the connection " +"has bee lost. This is good to know because it shows the connection status. " +"Capital P's represent a connection to the <acronym>ISP</acronym> and " +"lowercase p's show that the connection has been lost." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:49836 +msgid "Debugging" +msgstr "除錯" + +#. (itstool) path: sect2/para +#: book.translate.xml:49838 +msgid "" +"If a connection cannot be established, turn hardware flow <acronym>CTS/RTS</" +"acronym> to off using <option>set ctsrts off</option>. This is mainly the " +"case when connected to some <application>PPP</application>-capable terminal " +"servers, where <application>PPP</application> hangs when it tries to write " +"data to the communication link, and waits for a Clear To Send (<acronym>CTS</" +"acronym>) signal which may never come. When using this option, include " +"<option>set accmap</option> as it may be required to defeat hardware " +"dependent on passing certain characters from end to end, most of the time " +"XON/XOFF. Refer to <citerefentry><refentrytitle>ppp</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for more information " +"on this option and how it is used." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49851 +msgid "" +"An older modem may need <option>set parity even</option>. Parity is set at " +"none be default, but is used for error checking with a large increase in " +"traffic, on older modems." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49856 +msgid "" +"<application>PPP</application> may not return to the command mode, which is " +"usually a negotiation error where the <acronym>ISP</acronym> is waiting for " +"negotiating to begin. At this point, using <command>~p</command> will force " +"ppp to start sending the configuration information." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49862 +msgid "" +"If a login prompt never appears, <acronym>PAP</acronym> or <acronym>CHAP</" +"acronym> authentication is most likely required. To use <acronym>PAP</" +"acronym> or <acronym>CHAP</acronym>, add the following options to " +"<application>PPP</application> before going into terminal mode:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49869 +#, no-wrap +msgid "ppp ON example> <userinput>set authname <replaceable>myusername</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49871 +msgid "" +"Where <replaceable>myusername</replaceable> should be replaced with the " +"username that was assigned by the <acronym>ISP</acronym>." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:49875 +#, no-wrap +msgid "ppp ON example> <userinput>set authkey <replaceable>mypassword</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49877 +msgid "" +"Where <replaceable>mypassword</replaceable> should be replaced with the " +"password that was assigned by the <acronym>ISP</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49881 +msgid "" +"If a connection is established, but cannot seem to find any domain name, try " +"to <citerefentry><refentrytitle>ping</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> an <acronym>IP</acronym> address. If there is 100 " +"percent (100%) packet loss, it is likely that a default route was not " +"assigned. Double check that <option>add default HISADDR</option> was set " +"during the connection. If a connection can be made to a remote <acronym>IP</" +"acronym> address, it is possible that a resolver address has not been added " +"to <filename>/etc/resolv.conf</filename>. This file should look like:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49892 +#, no-wrap +msgid "" +"domain <replaceable>example.com</replaceable>\n" +"nameserver <replaceable>x.x.x.x</replaceable>\n" +"nameserver <replaceable>y.y.y.y</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49896 +msgid "" +"Where <replaceable>x.x.x.x</replaceable> and <replaceable>y.y.y.y</" +"replaceable> should be replaced with the <acronym>IP</acronym> address of " +"the <acronym>ISP</acronym>'s DNS servers." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49901 +msgid "" +"To configure <citerefentry><refentrytitle>syslog</" +"refentrytitle><manvolnum>3</manvolnum></citerefentry> to provide logging for " +"the <application>PPP</application> connection, make sure this line exists in " +"<filename>/etc/syslog.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49905 +#, no-wrap +msgid "" +"!ppp\n" +"*.* /var/log/ppp.log" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:49925 +msgid "Using <acronym>PPP</acronym> over Ethernet (PPPoE)" +msgstr "在乙太網路使用 <acronym>PPP</acronym> (PPPoE)" + +#. (itstool) path: sect1/para +#: book.translate.xml:49932 +msgid "" +"This section describes how to set up <acronym>PPP</acronym> over Ethernet " +"(<acronym>PPPoE</acronym>)." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:49935 +msgid "Here is an example of a working <filename>ppp.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:49938 +#, no-wrap +msgid "" +"default:\n" +" set log Phase tun command # you can add more detailed logging if you wish\n" +" set ifaddr 10.0.0.1/0 10.0.0.2/0\n" +"\n" +"name_of_service_provider:\n" +" set device PPPoE:<replaceable>xl1</replaceable> # replace xl1 with your Ethernet device\n" +" set authname YOURLOGINNAME\n" +" set authkey YOURPASSWORD\n" +" set dial\n" +" set login\n" +" add default HISADDR" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:49950 +msgid "As <systemitem class=\"username\">root</systemitem>, run:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:49953 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ppp -ddial name_of_service_provider</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#. (itstool) path: sect5/para +#: book.translate.xml:49955 book.translate.xml:63269 +msgid "Add the following to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:49958 +#, no-wrap +msgid "" +"ppp_enable=\"YES\"\n" +"ppp_mode=\"ddial\"\n" +"ppp_nat=\"YES\"\t# if you want to enable nat for your local network, otherwise NO\n" +"ppp_profile=\"name_of_service_provider\"" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:49964 +msgid "Using a PPPoE Service Tag" +msgstr "使用 PPPoE 服務標籤" + +#. (itstool) path: sect2/para +#: book.translate.xml:49966 +msgid "" +"Sometimes it will be necessary to use a service tag to establish the " +"connection. Service tags are used to distinguish between different PPPoE " +"servers attached to a given network." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49971 +msgid "" +"Any required service tag information should be in the documentation provided " +"by the <acronym>ISP</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49974 +msgid "" +"As a last resort, one could try installing the <package>net/rr-pppoe</" +"package> package or port. Bear in mind however, this may de-program your " +"modem and render it useless, so think twice before doing it. Simply install " +"the program shipped with the modem. Then, access the <guimenu>System</" +"guimenu> menu from the program. The name of the profile should be listed " +"there. It is usually <emphasis>ISP</emphasis>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49983 +msgid "" +"The profile name (service tag) will be used in the PPPoE configuration entry " +"in <filename>ppp.conf</filename> as the provider part for <command>set " +"device</command>. Refer to <citerefentry><refentrytitle>ppp</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for full details. It " +"should look like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:49989 +#, no-wrap +msgid "set device PPPoE:<replaceable>xl1</replaceable>:<replaceable>ISP</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49991 +msgid "" +"Do not forget to change <replaceable>xl1</replaceable> to the proper device " +"for the Ethernet card." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49994 +msgid "Do not forget to change <replaceable>ISP</replaceable> to the profile." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:49997 +msgid "" +"For additional information, refer to <link xlink:href=\"http://renaud." +"waldura.com/doc/freebsd/pppoe/\">Cheaper Broadband with FreeBSD on DSL</" +"link> by Renaud Waldura." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:50003 +msgid "" +"PPPoE with a <trademark class=\"registered\">3Com</trademark> <trademark " +"class=\"registered\">HomeConnect</trademark> ADSL Modem Dual Link" +msgstr "" +"在 <trademark class=\"registered\">3Com</trademark> <trademark class=" +"\"registered\">HomeConnect</trademark> ADSL Modem Dual Link 使用 PPPoE" + +#. (itstool) path: sect2/para +#: book.translate.xml:50007 +msgid "" +"This modem does not follow the PPPoE specification defined in <link xlink:" +"href=\"http://www.faqs.org/rfcs/rfc2516.html\">RFC 2516</link>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50011 +msgid "" +"In order to make FreeBSD capable of communicating with this device, a sysctl " +"must be set. This can be done automatically at boot time by updating " +"<filename>/etc/sysctl.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:50016 +#, no-wrap +msgid "net.graph.nonstandard_pppoe=1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50018 +msgid "or can be done immediately with the command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:50020 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sysctl net.graph.nonstandard_pppoe=1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50022 +msgid "" +"Unfortunately, because this is a system-wide setting, it is not possible to " +"talk to a normal PPPoE client or server and a <trademark class=\"registered" +"\">3Com</trademark> <trademark class=\"registered\">HomeConnect</trademark> " +"ADSL Modem at the same time." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:50030 +msgid "" +"Using <application>PPP</application> over <acronym>ATM</acronym> (PPPoA)" +msgstr "在 ATM 使用 <application>PPP</application> (PPPoA)" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50033 +msgid "" +"<primary><acronym>PPP</acronym></primary> <secondary>over <acronym>ATM</" +"acronym></secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50038 +msgid "<primary>PPPoA</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:50042 +msgid "" +"The following describes how to set up PPP over <acronym>ATM</acronym> " +"(PPPoA). PPPoA is a popular choice among European DSL providers." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:50099 +msgid "Using mpd" +msgstr "使用 mpd" + +#. (itstool) path: sect2/para +#: book.translate.xml:50101 +msgid "" +"The <application>mpd</application> application can be used to connect to a " +"variety of services, in particular PPTP services. It can be installed using " +"the <package>net/mpd5</package> package or port. Many ADSL modems require " +"that a PPTP tunnel is created between the modem and computer." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50108 +msgid "" +"Once installed, configure <application>mpd</application> to suit the " +"provider's settings. The port places a set of sample configuration files " +"which are well documented in <filename>/usr/local/etc/mpd/</filename>. A " +"complete guide to configure <application>mpd</application> is available in " +"HTML format in <filename>/usr/ports/share/doc/mpd/</filename>. Here is a " +"sample configuration for connecting to an ADSL service with " +"<application>mpd</application>. The configuration is spread over two files, " +"first the <filename>mpd.conf</filename>:" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:50120 +msgid "" +"This example <filename>mpd.conf</filename> only works with <application>mpd</" +"application> 4.x." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:50124 +#, no-wrap +msgid "" +"default:\n" +" load adsl\n" +"\n" +"adsl:\n" +" new -i ng0 adsl adsl\n" +" set bundle authname <replaceable>username</replaceable> <co xml:id=\"co-mpd-ex-user\"/>\n" +" set bundle password <replaceable>password</replaceable> <co xml:id=\"co-mpd-ex-pass\"/>\n" +" set bundle disable multilink\n" +"\n" +" set link no pap acfcomp protocomp\n" +" set link disable chap\n" +" set link accept chap\n" +" set link keep-alive 30 10\n" +"\n" +" set ipcp no vjcomp\n" +" set ipcp ranges 0.0.0.0/0 0.0.0.0/0\n" +"\n" +" set iface route default\n" +" set iface disable on-demand\n" +" set iface enable proxy-arp\n" +" set iface idle 0\n" +"\n" +" open" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:50150 +msgid "The username used to authenticate with your <acronym>ISP</acronym>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:50154 +msgid "The password used to authenticate with your <acronym>ISP</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50159 +msgid "" +"Information about the link, or links, to establish is found in <filename>mpd." +"links</filename>. An example <filename>mpd.links</filename> to accompany the " +"above example is given beneath:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:50164 +#, no-wrap +msgid "" +"adsl:\n" +" set link type pptp\n" +" set pptp mode active\n" +" set pptp enable originate outcall\n" +" set pptp self <replaceable>10.0.0.1</replaceable> <co xml:id=\"co-mpd-ex-self\"/>\n" +" set pptp peer <replaceable>10.0.0.138</replaceable> <co xml:id=\"co-mpd-ex-peer\"/>" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:50173 +msgid "" +"The <acronym>IP</acronym> address of FreeBSD computer running " +"<application>mpd</application>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:50177 +msgid "" +"The <acronym>IP</acronym> address of the ADSL modem. The Alcatel " +"<trademark>SpeedTouch</trademark> Home defaults to <systemitem class=" +"\"ipaddress\">10.0.0.138</systemitem>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50182 +msgid "" +"It is possible to initialize the connection easily by issuing the following " +"command as <systemitem class=\"username\">root</systemitem>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:50186 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mpd -b <replaceable>adsl</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50188 +msgid "To view the status of the connection:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:50190 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ifconfig <replaceable>ng0</replaceable></userinput>\n" +"ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500\n" +" inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50194 +msgid "" +"Using <application>mpd</application> is the recommended way to connect to an " +"ADSL service with FreeBSD." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:50199 +msgid "Using pptpclient" +msgstr "使用 pptpclient" + +#. (itstool) path: sect2/para +#: book.translate.xml:50201 +msgid "" +"It is also possible to use FreeBSD to connect to other PPPoA services using " +"<package>net/pptpclient</package>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50204 +msgid "" +"To use <package>net/pptpclient</package> to connect to a DSL service, " +"install the port or package, then edit <filename>/etc/ppp/ppp.conf</" +"filename>. An example section of <filename>ppp.conf</filename> is given " +"below. For further information on <filename>ppp.conf</filename> options " +"consult <citerefentry><refentrytitle>ppp</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:50211 +#, no-wrap +msgid "" +"adsl:\n" +" set log phase chat lcp ipcp ccp tun command\n" +" set timeout 0\n" +" enable dns\n" +" set authname <replaceable>username</replaceable> <co xml:id=\"co-pptp-ex-user\"/>\n" +" set authkey <replaceable>password</replaceable> <co xml:id=\"co-pptp-ex-pass\"/>\n" +" set ifaddr 0 0\n" +" add default HISADDR" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:50222 +msgid "The username for the DSL provider." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:50226 +msgid "The password for your account." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:50231 +msgid "" +"Since the account's password is added to <filename>ppp.conf</filename>in " +"plain text form, make sure nobody can read the contents of this file:" +msgstr "" + +#. (itstool) path: warning/screen +#: book.translate.xml:50235 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>chown root:wheel /etc/ppp/ppp.conf</userinput>\n" +"<prompt>#</prompt> <userinput>chmod 600 /etc/ppp/ppp.conf</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50240 +msgid "" +"This will open a tunnel for a <acronym>PPP</acronym> session to the DSL " +"router. Ethernet DSL modems have a preconfigured LAN <acronym>IP</acronym> " +"address to connect to. In the case of the Alcatel <trademark>SpeedTouch</" +"trademark> Home, this address is <systemitem class=\"ipaddress\">10.0.0.138</" +"systemitem>. The router's documentation should list the address the device " +"uses. To open the tunnel and start a <acronym>PPP</acronym> session:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:50249 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pptp <replaceable>address</replaceable> <replaceable>adsl</replaceable></userinput>" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:50252 +msgid "" +"If an ampersand (<quote>&</quote>) is added to the end of this command, " +"<application>pptp</application> will return the prompt." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50258 +msgid "" +"A <filename>tun</filename> virtual tunnel device will be created for " +"interaction between the <application>pptp</application> and " +"<application>ppp</application> processes. Once the prompt is returned, or " +"the <application>pptp</application> process has confirmed a connection, " +"examine the tunnel:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:50266 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ifconfig <replaceable>tun0</replaceable></userinput>\n" +"tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500\n" +" inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00\n" +"\tOpened by PID 918" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50271 +msgid "" +"If the connection fails, check the configuration of the router, which is " +"usually accessible using a web browser. Also, examine the output of " +"<command>pptp</command> and the contents of the log file, <filename>/var/log/" +"ppp.log</filename> for clues." +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:50292 +msgid "" +"<personname><firstname>Bill</firstname><surname>Lloyd</surname></" +"personname><contrib>Original work by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:50296 +msgid "" +"<personname><firstname>Jim</firstname><surname>Mock</surname></" +"personname><contrib>Rewritten by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:50306 +msgid "" +"<quote>Electronic Mail</quote>, better known as email, is one of the most " +"widely used forms of communication today. This chapter provides a basic " +"introduction to running a mail server on FreeBSD, as well as an introduction " +"to sending and receiving email using FreeBSD. For more complete coverage of " +"this subject, refer to the books listed in <xref linkend=\"bibliography\"/>." +msgstr "" +"<quote>電子郵件</quote> 或稱 email,是現今使用最廣泛的溝通方式之一。本章主要" +"介紹如何在 FreeBSD 上執行郵件伺服器,以及如何使用 FreeBSD 收發信件,若欲瞭解" +"細節請參閱 <xref linkend=\"bibliography\"/> 內的參考書籍。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50317 +msgid "" +"Which software components are involved in sending and receiving electronic " +"mail." +msgstr "哪些軟體元件與收發電子郵件有關。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50322 +msgid "" +"Where basic <application>Sendmail</application> configuration files are " +"located in FreeBSD." +msgstr "FreeBSD 內的 <application>Sendmail</application> 設定檔在哪。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50327 +msgid "The difference between remote and local mailboxes." +msgstr "遠端信箱 (Mailbox) 與本機信箱的差異。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50332 +msgid "How to block spammers from illegally using a mail server as a relay." +msgstr "如何阻擋垃圾郵件寄件者 (Spammer) 非法使用郵件伺服器作為中繼站。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50337 +msgid "" +"How to install and configure an alternate Mail Transfer Agent, replacing " +"<application>Sendmail</application>." +msgstr "" +"如何安裝與設定其他的郵件傳輸代理程式 (Mail Transfer Agent) 來取代 " +"<application>Sendmail</application>。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50343 +msgid "How to troubleshoot common mail server problems." +msgstr "如何排除常見的郵件伺服器問題。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50347 +msgid "How to set up the system to send mail only." +msgstr "如何設定系統只能寄送郵件。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50351 +msgid "How to use mail with a dialup connection." +msgstr "如何在撥號連線上使用郵件。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50355 +msgid "How to configure SMTP authentication for added security." +msgstr "如何設定 SMTP 認証來增加安全性。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50360 +msgid "" +"How to install and use a Mail User Agent, such as <application>mutt</" +"application>, to send and receive email." +msgstr "" +"如何安裝並使用郵件使用者代理程式 (Mail User Agent) 如 <application>mutt</" +"application> 來寄發與接收電子郵件。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50366 +msgid "" +"How to download mail from a remote <acronym>POP</acronym> or <acronym>IMAP</" +"acronym> server." +msgstr "" +"如何從遠端的 <acronym>POP</acronym> 或 <acronym>IMAP</acronym> 伺服器下載郵" +"件。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50372 +msgid "How to automatically apply filters and rules to incoming email." +msgstr "如何自動套用過濾器及規則在收到的電子郵件上。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50381 +msgid "" +"Properly set up a network connection (<xref linkend=\"advanced-networking\"/" +">)." +msgstr "正確的設定網路連線 (<xref linkend=\"advanced-networking\"/>)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:50385 +msgid "" +"Properly set up the <acronym>DNS</acronym> information for a mail host " +"(<xref linkend=\"network-servers\"/>)." +msgstr "" +"正確的設定郵件主機的 <acronym>DNS</acronym> 資訊 (<xref linkend=\"network-" +"servers\"/>)。" + +#. (itstool) path: sect1/title +#: book.translate.xml:50397 +msgid "Mail Components" +msgstr "郵件組成" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50399 +msgid "<primary>POP</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50400 +msgid "<primary>IMAP</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50402 +msgid "" +"<primary>mail server daemons</primary> <secondary><application>Sendmail</" +"application></secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50406 +msgid "" +"<primary>mail server daemons</primary> <secondary><application>Postfix</" +"application></secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50410 +msgid "" +"<primary>mail server daemons</primary> <secondary><application>qmail</" +"application></secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50414 +msgid "" +"<primary>mail server daemons</primary> <secondary><application>Exim</" +"application></secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50418 +msgid "<primary>email</primary> <secondary>receiving</secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: para/indexterm +#. (itstool) path: sect4/indexterm +#: book.translate.xml:50422 book.translate.xml:51094 book.translate.xml:51213 +#: book.translate.xml:56046 +msgid "<primary>MX record</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50423 +msgid "<primary>mail host</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:50425 +msgid "" +"There are five major parts involved in an email exchange: the Mail User " +"Agent (<acronym>MUA</acronym>), the Mail Transfer Agent (<acronym>MTA</" +"acronym>), a mail host, a remote or local mailbox, and <acronym>DNS</" +"acronym>. This section provides an overview of these components." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:50433 +msgid "Mail User Agent (<acronym>MUA</acronym>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50435 +msgid "" +"The Mail User Agent (<acronym>MUA</acronym>) is an application which is used " +"to compose, send, and receive emails. This application can be a command line " +"program, such as the built-in <command>mail</command> utility or a third-" +"party application from the Ports Collection, such as <application>mutt</" +"application>, <application>alpine</application>, or <application>elm</" +"application>. Dozens of graphical programs are also available in the Ports " +"Collection, including <application>Claws Mail</application>, " +"<application>Evolution</application>, and <application>Thunderbird</" +"application>. Some organizations provide a web mail program which can be " +"accessed through a web browser. More information about installing and using " +"a <acronym>MUA</acronym> on FreeBSD can be found in <xref linkend=\"mail-" +"agents\"/>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:50455 +msgid "Mail Transfer Agent (<acronym>MTA</acronym>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50457 +msgid "" +"The Mail Transfer Agent (<acronym>MTA</acronym>) is responsible for " +"receiving incoming mail and delivering outgoing mail. FreeBSD ships with " +"<application>Sendmail</application> as the default <acronym>MTA</acronym>, " +"but it also supports numerous other mail server daemons, including " +"<application>Exim</application>, <application>Postfix</application>, and " +"<application>qmail</application>. <application>Sendmail</application> " +"configuration is described in <xref linkend=\"sendmail\"/>. If another " +"<acronym>MTA</acronym> is installed using the Ports Collection, refer to its " +"post-installation message for FreeBSD-specific configuration details and the " +"application's website for more general configuration instructions." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:50477 +msgid "Mail Host and Mailboxes" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50479 +msgid "" +"The mail host is a server that is responsible for delivering and receiving " +"mail for a host or a network. The mail host collects all mail sent to the " +"domain and stores it either in the default <filename>mbox</filename> or the " +"alternative Maildir format, depending on the configuration. Once mail has " +"been stored, it may either be read locally using a <acronym>MUA</acronym> or " +"remotely accessed and collected using protocols such as <acronym>POP</" +"acronym> or <acronym>IMAP</acronym>. If mail is read locally, a " +"<acronym>POP</acronym> or <acronym>IMAP</acronym> server does not need to be " +"installed." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50492 +msgid "" +"To access mailboxes remotely, a <acronym>POP</acronym> or <acronym>IMAP</" +"acronym> server is required as these protocols allow users to connect to " +"their mailboxes from remote locations. <acronym>IMAP</acronym> offers " +"several advantages over <acronym>POP</acronym>. These include the ability to " +"store a copy of messages on a remote server after they are downloaded and " +"concurrent updates. <acronym>IMAP</acronym> can be useful over low-speed " +"links as it allows users to fetch the structure of messages without " +"downloading them. It can also perform tasks such as searching on the server " +"in order to minimize data transfer between clients and servers." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50505 +msgid "" +"Several <acronym>POP</acronym> and <acronym>IMAP</acronym> servers are " +"available in the Ports Collection. These include <package>mail/qpopper</" +"package>, <package>mail/imap-uw</package>, <package>mail/courier-imap</" +"package>, and <package>mail/dovecot2</package>." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:50514 +msgid "" +"It should be noted that both <acronym>POP</acronym> and <acronym>IMAP</" +"acronym> transmit information, including username and password credentials, " +"in clear-text. To secure the transmission of information across these " +"protocols, consider tunneling sessions over " +"<citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> (<xref linkend=\"security-ssh-tunneling\"/>) or using " +"<acronym>SSL</acronym> (<xref linkend=\"openssl\"/>)." +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: sect1/title +#: book.translate.xml:50526 book.translate.xml:55130 +msgid "Domain Name System (<acronym>DNS</acronym>)" +msgstr "網域名稱系統 (<acronym>DNS</acronym>)" + +#. (itstool) path: listitem/para +#: book.translate.xml:50528 +msgid "" +"The Domain Name System (<acronym>DNS</acronym>) and its daemon " +"<command>named</command> play a large role in the delivery of email. In " +"order to deliver mail from one site to another, the <acronym>MTA</acronym> " +"will look up the remote site in <acronym>DNS</acronym> to determine which " +"host will receive mail for the destination. This process also occurs when " +"mail is sent from a remote host to the <acronym>MTA</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50537 +msgid "" +"In addition to mapping hostnames to <acronym>IP</acronym> addresses, " +"<acronym>DNS</acronym> is responsible for storing information specific to " +"mail delivery, known as Mail eXchanger <acronym>MX</acronym> records. The " +"<acronym>MX</acronym> record specifies which hosts will receive mail for a " +"particular domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50545 +msgid "" +"To view the <acronym>MX</acronym> records for a domain, specify the type of " +"record. Refer to <citerefentry><refentrytitle>host</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, for more details " +"about this command:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:50549 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>host -t mx FreeBSD.org</userinput>\n" +"FreeBSD.org mail is handled by 10 mx1.FreeBSD.org" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50552 +msgid "" +"Refer to <xref linkend=\"network-dns\"/> for more information about " +"<acronym>DNS</acronym> and its configuration." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:50562 +msgid "<application>Sendmail</application> Configuration Files" +msgstr "<application>Sendmail</application> 設定檔" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:50566 +msgid "" +"<personname> <firstname>Christopher</firstname> <surname>Shumway</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50576 +msgid "<primary><application>Sendmail</application></primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:50580 +msgid "" +"<application>Sendmail</application> is the default <acronym>MTA</acronym> " +"installed with FreeBSD. It accepts mail from <acronym>MUA</acronym>s and " +"delivers it to the appropriate mail host, as defined by its configuration. " +"<application>Sendmail</application> can also accept network connections and " +"deliver mail to local mailboxes or to another program." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:50588 +msgid "" +"The configuration files for <application>Sendmail</application> are located " +"in <filename>/etc/mail</filename>. This section describes these files in " +"more detail." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50593 +msgid "<primary><filename>/etc/mail/access</filename></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50596 +msgid "<primary><filename>/etc/mail/aliases</filename></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50599 +msgid "<primary><filename>/etc/mail/local-host-names</filename></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50602 +msgid "<primary><filename>/etc/mail/mailer.conf</filename></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50605 +msgid "<primary><filename>/etc/mail/mailertable</filename></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50608 +msgid "<primary><filename>/etc/mail/sendmail.cf</filename></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50611 +msgid "<primary><filename>/etc/mail/virtusertable</filename></primary>" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:50617 +msgid "<filename>/etc/mail/access</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50619 +msgid "" +"This access database file defines which hosts or <acronym>IP</acronym> " +"addresses have access to the local mail server and what kind of access they " +"have. Hosts listed as <option>OK</option>, which is the default option, are " +"allowed to send mail to this host as long as the mail's final destination is " +"the local machine. Hosts listed as <option>REJECT</option> are rejected for " +"all mail connections. Hosts listed as <option>RELAY</option> are allowed to " +"send mail for any destination using this mail server. Hosts listed as " +"<option>ERROR</option> will have their mail returned with the specified mail " +"error. If a host is listed as <option>SKIP</option>, <application>Sendmail</" +"application> will abort the current search for this entry without accepting " +"or rejecting the mail. Hosts listed as <option>QUARANTINE</option> will have " +"their messages held and will receive the specified text as the reason for " +"the hold." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50637 +msgid "" +"Examples of using these options for both <acronym>IPv4</acronym> and " +"<acronym>IPv6</acronym> addresses can be found in the FreeBSD sample " +"configuration, <filename>/etc/mail/access.sample</filename>:" +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:50642 +#, no-wrap +msgid "" +"# $FreeBSD$\n" +"#\n" +"# Mail relay access control list. Default is to reject mail unless the\n" +"# destination is local, or listed in /etc/mail/local-host-names\n" +"#\n" +"## Examples (commented out for safety)\n" +"#From:cyberspammer.com ERROR:\"550 We don't accept mail from spammers\"\n" +"#From:okay.cyberspammer.com OK\n" +"#Connect:sendmail.org RELAY\n" +"#To:sendmail.org RELAY\n" +"#Connect:128.32 RELAY\n" +"#Connect:128.32.2 SKIP\n" +"#Connect:IPv6:1:2:3:4:5:6:7 RELAY\n" +"#Connect:suspicious.example.com QUARANTINE:Mail from suspicious host\n" +"#Connect:[127.0.0.3] OK\n" +"#Connect:[IPv6:1:2:3:4:5:6:7:8] OK" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50659 +msgid "" +"To configure the access database, use the format shown in the sample to make " +"entries in <filename>/etc/mail/access</filename>, but do not put a comment " +"symbol (<literal>#</literal>) in front of the entries. Create an entry for " +"each host or network whose access should be configured. Mail senders that " +"match the left side of the table are affected by the action on the right " +"side of the table." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50668 +msgid "" +"Whenever this file is updated, update its database and restart " +"<application>Sendmail</application>:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:50671 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>makemap hash /etc/mail/access < /etc/mail/access</userinput>\n" +"<prompt>#</prompt> <userinput>service sendmail restart</userinput>" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:50677 +msgid "<filename>/etc/mail/aliases</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50679 +msgid "" +"This database file contains a list of virtual mailboxes that are expanded to " +"users, files, programs, or other aliases. Here are a few entries to " +"illustrate the file format:" +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:50684 +#, no-wrap +msgid "" +"root: localuser\n" +"ftp-bugs: joe,eric,paul\n" +"bit.bucket: /dev/null\n" +"procmail: \"|/usr/local/bin/procmail\"" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50689 +msgid "" +"The mailbox name on the left side of the colon is expanded to the target(s) " +"on the right. The first entry expands the <systemitem class=\"username" +"\">root</systemitem> mailbox to the <systemitem class=\"username" +"\">localuser</systemitem> mailbox, which is then looked up in the <filename>/" +"etc/mail/aliases</filename> database. If no match is found, the message is " +"delivered to <systemitem class=\"username\">localuser</systemitem>. The " +"second entry shows a mail list. Mail to <systemitem class=\"username\">ftp-" +"bugs</systemitem> is expanded to the three local mailboxes <systemitem class=" +"\"username\">joe</systemitem>, <systemitem class=\"username\">eric</" +"systemitem>, and <systemitem class=\"username\">paul</systemitem>. A remote " +"mailbox could be specified as <replaceable>user@example.com</replaceable>. " +"The third entry shows how to write mail to a file, in this case <filename>/" +"dev/null</filename>. The last entry demonstrates how to send mail to a " +"program, <filename>/usr/local/bin/procmail</filename>, through a <trademark " +"class=\"registered\">UNIX</trademark> pipe. Refer to " +"<citerefentry><refentrytitle>aliases</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for more information about the format of this file." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50707 +msgid "" +"Whenever this file is updated, run <command>newaliases</command> to update " +"and initialize the aliases database." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:50741 +msgid "<filename>/etc/mail/sendmail.cf</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50743 +msgid "" +"This is the master configuration file for <application>Sendmail</" +"application>. It controls the overall behavior of <application>Sendmail</" +"application>, including everything from rewriting email addresses to " +"printing rejection messages to remote mail servers. Accordingly, this " +"configuration file is quite complex. Fortunately, this file rarely needs to " +"be changed for standard mail servers." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50752 +msgid "" +"The master <application>Sendmail</application> configuration file can be " +"built from <citerefentry><refentrytitle>m4</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> macros that define the features and behavior of " +"<application>Sendmail</application>. Refer to <filename>/usr/src/contrib/" +"sendmail/cf/README</filename> for some of the details." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50759 +msgid "" +"Whenever changes to this file are made, <application>Sendmail</application> " +"needs to be restarted for the changes to take effect." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:50766 +msgid "<filename>/etc/mail/virtusertable</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50768 +msgid "" +"This database file maps mail addresses for virtual domains and users to real " +"mailboxes. These mailboxes can be local, remote, aliases defined in " +"<filename>/etc/mail/aliases</filename>, or files. This allows multiple " +"virtual domains to be hosted on one machine." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50775 +msgid "" +"FreeBSD provides a sample configuration file in <filename>/etc/mail/" +"virtusertable.sample</filename> to further demonstrate its format. The " +"following example demonstrates how to create custom entries using that " +"format:" +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:50781 +#, no-wrap +msgid "" +"root@example.com root\n" +"postmaster@example.com postmaster@noc.example.net\n" +"@example.com joe" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50785 +msgid "" +"This file is processed in a first match order. When an email address matches " +"the address on the left, it is mapped to the local mailbox listed on the " +"right. The format of the first entry in this example maps a specific email " +"address to a local mailbox, whereas the format of the second entry maps a " +"specific email address to a remote mailbox. Finally, any email address from " +"<literal>example.com</literal> which has not matched any of the previous " +"entries will match the last mapping and be sent to the local mailbox " +"<literal>joe</literal>. When creating custom entries, use this format and " +"add them to <filename>/etc/mail/virtusertable</filename>. Whenever this file " +"is edited, update its database and restart <application>Sendmail</" +"application>:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:50800 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable</userinput>\n" +"<prompt>#</prompt> <userinput>service sendmail restart</userinput>" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:50806 +msgid "<filename>/etc/mail/relay-domains</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50808 +msgid "" +"In a default FreeBSD installation, <application>Sendmail</application> is " +"configured to only send mail from the host it is running on. For example, if " +"a <acronym>POP</acronym> server is available, users will be able to check " +"mail from remote locations but they will not be able to send outgoing emails " +"from outside locations. Typically, a few moments after the attempt, an email " +"will be sent from <literal>MAILER-DAEMON</literal> with a <errorname>5.7 " +"Relaying Denied</errorname> message." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50819 +msgid "" +"The most straightforward solution is to add the <acronym>ISP</acronym>'s " +"<acronym>FQDN</acronym> to <filename>/etc/mail/relay-domains</filename>. If " +"multiple addresses are needed, add them one per line:" +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:50825 +#, no-wrap +msgid "" +"your.isp.example.com\n" +"other.isp.example.net\n" +"users-isp.example.org\n" +"www.example.org" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50830 +msgid "" +"After creating or editing this file, restart <application>Sendmail</" +"application> with <command>service sendmail restart</command>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:50834 +msgid "" +"Now any mail sent through the system by any host in this list, provided the " +"user has an account on the system, will succeed. This allows users to send " +"mail from the system remotely without opening the system up to relaying " +"<acronym>SPAM</acronym> from the Internet." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:50846 +msgid "Changing the Mail Transfer Agent" +msgstr "更改郵件傳輸代理程式" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:50849 +msgid "" +"<personname> <firstname>Andrew</firstname> <surname>Boothman</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:50859 +msgid "" +"<personname> <firstname>Gregory</firstname> <surname>Neil Shapiro</surname> " +"</personname> <contrib>Information taken from emails written by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:50869 +msgid "<primary>email</primary> <secondary>change mta</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:50874 +msgid "" +"FreeBSD comes with <application>Sendmail</application> already installed as " +"the <acronym>MTA</acronym> which is in charge of outgoing and incoming mail. " +"However, the system administrator can change the system's <acronym>MTA</" +"acronym>. A wide choice of alternative <acronym>MTA</acronym>s is available " +"from the <literal>mail</literal> category of the FreeBSD Ports Collection." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:50882 +msgid "" +"Once a new <acronym>MTA</acronym> is installed, configure and test the new " +"software before replacing <application>Sendmail</application>. Refer to the " +"documentation of the new <acronym>MTA</acronym> for information on how to " +"configure the software." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:50888 +msgid "" +"Once the new <acronym>MTA</acronym> is working, use the instructions in this " +"section to disable <application>Sendmail</application> and configure FreeBSD " +"to use the replacement <acronym>MTA</acronym>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:50894 +msgid "Disable <application>Sendmail</application>" +msgstr "關閉 <application>Sendmail</application>" + +#. (itstool) path: warning/para +#: book.translate.xml:50897 +msgid "" +"If <application>Sendmail</application>'s outgoing mail service is disabled, " +"it is important that it is replaced with an alternative mail delivery " +"system. Otherwise, system functions such as " +"<citerefentry><refentrytitle>periodic</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> will be unable to deliver their results by email. " +"Many parts of the system expect a functional <acronym>MTA</acronym>. If " +"applications continue to use <application>Sendmail</application>'s binaries " +"to try to send email after they are disabled, mail could go into an inactive " +"<application>Sendmail</application> queue and never be delivered." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50909 +msgid "" +"In order to completely disable <application>Sendmail</application>, add or " +"edit the following lines in <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:50913 +#, no-wrap +msgid "" +"sendmail_enable=\"NO\"\n" +"sendmail_submit_enable=\"NO\"\n" +"sendmail_outbound_enable=\"NO\"\n" +"sendmail_msp_queue_enable=\"NO\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50918 +msgid "" +"To only disable <application>Sendmail</application>'s incoming mail service, " +"use only this entry in <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:50922 +#, no-wrap +msgid "sendmail_enable=\"NO\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50924 +msgid "" +"More information on <application>Sendmail</application>'s startup options is " +"available in <citerefentry><refentrytitle>rc.sendmail</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:50929 +msgid "Replace the Default <acronym>MTA</acronym>" +msgstr "替換預設的 <acronym>MTA</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:50931 +msgid "" +"When a new <acronym>MTA</acronym> is installed using the Ports Collection, " +"its startup script is also installed and startup instructions are mentioned " +"in its package message. Before starting the new <acronym>MTA</acronym>, stop " +"the running <application>Sendmail</application> processes. This example " +"stops all of these services, then starts the <application>Postfix</" +"application> service:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:50939 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service sendmail stop</userinput>\n" +"<prompt>#</prompt> <userinput>service postfix start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50942 +msgid "" +"To start the replacement <acronym>MTA</acronym> at system boot, add its " +"configuration line to <filename>/etc/rc.conf</filename>. This entry enables " +"the Postfix <acronym>MTA</acronym>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:50947 +#, no-wrap +msgid "postfix_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50949 +msgid "" +"Some extra configuration is needed as <application>Sendmail</application> is " +"so ubiquitous that some software assumes it is already installed and " +"configured. Check <filename>/etc/periodic.conf</filename> and make sure that " +"these values are set to <literal>NO</literal>. If this file does not exist, " +"create it with these entries:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:50956 +#, no-wrap +msgid "" +"daily_clean_hoststat_enable=\"NO\"\n" +"daily_status_mail_rejects_enable=\"NO\"\n" +"daily_status_include_submit_mailq=\"NO\"\n" +"daily_submit_queuerun=\"NO\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50961 +msgid "" +"Some alternative <acronym>MTA</acronym>s provide their own compatible " +"implementations of the <application>Sendmail</application> command-line " +"interface in order to facilitate using them as drop-in replacements for " +"<application>Sendmail</application>. However, some <acronym>MUA</acronym>s " +"may try to execute standard <application>Sendmail</application> binaries " +"instead of the new <acronym>MTA</acronym>'s binaries. FreeBSD uses " +"<filename>/etc/mail/mailer.conf</filename> to map the expected " +"<application>Sendmail</application> binaries to the location of the new " +"binaries. More information about this mapping can be found in " +"<citerefentry><refentrytitle>mailwrapper</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50974 +msgid "The default <filename>/etc/mail/mailer.conf</filename> looks like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:50977 +#, no-wrap +msgid "" +"# $FreeBSD$\n" +"#\n" +"# Execute the \"real\" sendmail program, named /usr/libexec/sendmail/sendmail\n" +"#\n" +"sendmail /usr/libexec/sendmail/sendmail\n" +"send-mail /usr/libexec/sendmail/sendmail\n" +"mailq /usr/libexec/sendmail/sendmail\n" +"newaliases /usr/libexec/sendmail/sendmail\n" +"hoststat /usr/libexec/sendmail/sendmail\n" +"purgestat /usr/libexec/sendmail/sendmail" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50988 +msgid "" +"When any of the commands listed on the left are run, the system actually " +"executes the associated command shown on the right. This system makes it " +"easy to change what binaries are executed when these default binaries are " +"invoked." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:50993 +msgid "" +"Some <acronym>MTA</acronym>s, when installed using the Ports Collection, " +"will prompt to update this file for the new binaries. For example, " +"<application>Postfix</application> will update the file like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:50998 +#, no-wrap +msgid "" +"#\n" +"# Execute the Postfix sendmail program, named /usr/local/sbin/sendmail\n" +"#\n" +"sendmail /usr/local/sbin/sendmail\n" +"send-mail /usr/local/sbin/sendmail\n" +"mailq /usr/local/sbin/sendmail\n" +"newaliases /usr/local/sbin/sendmail" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51006 +msgid "" +"If the installation of the <acronym>MTA</acronym> does not automatically " +"update <filename>/etc/mail/mailer.conf</filename>, edit this file in a text " +"editor so that it points to the new binaries. This example points to the " +"binaries installed by <package>mail/ssmtp</package>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:51013 +#, no-wrap +msgid "" +"sendmail /usr/local/sbin/ssmtp\n" +"send-mail /usr/local/sbin/ssmtp\n" +"mailq /usr/libexec/sendmail/sendmail\n" +"newaliases /usr/libexec/sendmail/sendmail\n" +"hoststat /usr/libexec/sendmail/sendmail\n" +"purgestat /usr/libexec/sendmail/sendmail" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51020 +msgid "" +"Once everything is configured, it is recommended to reboot the system. " +"Rebooting provides the opportunity to ensure that the system is correctly " +"configured to start the new <acronym>MTA</acronym> automatically on boot." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:51030 +msgid "<primary>email</primary> <secondary>troubleshooting</secondary>" +msgstr "" + +#. (itstool) path: question/para +#: book.translate.xml:51038 +msgid "Why do I have to use the FQDN for hosts on my site?" +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51043 +msgid "" +"The host may actually be in a different domain. For example, in order for a " +"host in <systemitem class=\"fqdomainname\">foo.bar.edu</systemitem> to reach " +"a host called <systemitem>mumble</systemitem> in the <systemitem class=" +"\"fqdomainname\">bar.edu</systemitem> domain, refer to it by the Fully-" +"Qualified Domain Name <acronym>FQDN</acronym>, <systemitem class=" +"\"fqdomainname\">mumble.bar.edu</systemitem>, instead of just " +"<systemitem>mumble</systemitem>." +msgstr "" + +#. (itstool) path: para/indexterm +#. (itstool) path: sect1/indexterm +#: book.translate.xml:51052 book.translate.xml:55144 +msgid "<primary>BIND</primary>" +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51051 +msgid "" +"This is because the version of <application>BIND</application><_:indexterm-1/" +"> which ships with FreeBSD no longer provides default abbreviations for non-" +"FQDNs other than the local domain. An unqualified host such as " +"<systemitem>mumble</systemitem> must either be found as <systemitem class=" +"\"fqdomainname\">mumble.foo.bar.edu</systemitem>, or it will be searched for " +"in the root domain." +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51060 +msgid "" +"In older versions of <application>BIND</application>, the search continued " +"across <systemitem class=\"fqdomainname\">mumble.bar.edu</systemitem>, and " +"<systemitem class=\"fqdomainname\">mumble.edu</systemitem>. RFC 1535 details " +"why this is considered bad practice or even a security hole." +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51066 +msgid "As a good workaround, place the line:" +msgstr "" + +#. (itstool) path: answer/programlisting +#: book.translate.xml:51068 +#, no-wrap +msgid "search foo.bar.edu bar.edu" +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51070 +msgid "instead of the previous:" +msgstr "" + +#. (itstool) path: answer/programlisting +#: book.translate.xml:51072 +#, no-wrap +msgid "domain foo.bar.edu" +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51074 +msgid "" +"into <filename>/etc/resolv.conf</filename>. However, make sure that the " +"search order does not go beyond the <quote>boundary between local and public " +"administration</quote>, as RFC 1535 calls it." +msgstr "" + +#. (itstool) path: question/para +#: book.translate.xml:51083 +msgid "How can I run a mail server on a dial-up PPP host?" +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51088 +msgid "" +"Connect to a FreeBSD mail gateway on the LAN. The PPP connection is non-" +"dedicated." +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51091 +msgid "" +"One way to do this is to get a full-time Internet server to provide " +"secondary <acronym>MX</acronym> <_:indexterm-1/> services for the domain. In " +"this example, the domain is <systemitem class=\"fqdomainname\">example.com</" +"systemitem> and the ISP has configured <systemitem class=\"fqdomainname" +"\">example.net</systemitem> to provide secondary <acronym>MX</acronym> " +"services to the domain:" +msgstr "" + +#. (itstool) path: answer/programlisting +#: book.translate.xml:51102 +#, no-wrap +msgid "" +"example.com. MX 10 example.com.\n" +" MX 20 example.net." +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51105 +msgid "" +"Only one host should be specified as the final recipient. For " +"<application>Sendmail</application>, add <literal>Cw example.com</literal> " +"in <filename>/etc/mail/sendmail.cf</filename> on <systemitem class=" +"\"fqdomainname\">example.com</systemitem>." +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51110 +msgid "" +"When the sending <acronym>MTA</acronym> attempts to deliver mail, it will " +"try to connect to the system, <systemitem class=\"fqdomainname\">example." +"com</systemitem>, over the PPP link. This will time out if the destination " +"is offline. The <acronym>MTA</acronym> will automatically deliver it to the " +"secondary <acronym>MX</acronym> site at the Internet Service Provider " +"(<acronym>ISP</acronym>), <systemitem class=\"fqdomainname\">example.net</" +"systemitem>. The secondary <acronym>MX</acronym> site will periodically try " +"to connect to the primary <acronym>MX</acronym> host, <systemitem class=" +"\"fqdomainname\">example.com</systemitem>." +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51122 +msgid "Use something like this as a login script:" +msgstr "" + +#. (itstool) path: answer/programlisting +#: book.translate.xml:51124 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"# Put me in /usr/local/bin/pppmyisp\n" +"( sleep 60 ; /usr/sbin/sendmail -q ) &\n" +"/usr/sbin/ppp -direct pppmyisp" +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51129 +msgid "" +"When creating a separate login script for users, instead use " +"<command>sendmail -qRexample.com</command> in the script above. This will " +"force all mail in the queue for <systemitem class=\"fqdomainname\">example." +"com</systemitem> to be processed immediately." +msgstr "" + +#. (itstool) path: answer/para +#: book.translate.xml:51136 +msgid "" +"A further refinement of the situation can be seen from this example from the " +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-isp" +"\">FreeBSD Internet service provider's mailing list</link>:" +msgstr "" + +#. (itstool) path: answer/programlisting +#: book.translate.xml:51139 +#, no-wrap +msgid "" +"> we provide the secondary MX for a customer. The customer connects to\n" +"> our services several times a day automatically to get the mails to\n" +"> his primary MX (We do not call his site when a mail for his domains\n" +"> arrived). Our sendmail sends the mailqueue every 30 minutes. At the\n" +"> moment he has to stay 30 minutes online to be sure that all mail is\n" +"> gone to the primary MX.\n" +">\n" +"> Is there a command that would initiate sendmail to send all the mails\n" +"> now? The user has not root-privileges on our machine of course.\n" +"\n" +"In the <quote>privacy flags</quote> section of sendmail.cf, there is a\n" +"definition Opgoaway,restrictqrun\n" +"\n" +"Remove restrictqrun to allow non-root users to start the queue processing.\n" +"You might also like to rearrange the MXs. We are the 1st MX for our\n" +"customers like this, and we have defined:\n" +"\n" +"# If we are the best MX for a host, try directly instead of generating\n" +"# local config error.\n" +"OwTrue\n" +"\n" +"That way a remote site will deliver straight to you, without trying\n" +"the customer connection. You then send to your customer. Only works for\n" +"<quote>hosts</quote>, so you need to get your customer to name their mail\n" +"machine <quote>customer.com</quote> as well as\n" +"<quote>hostname.customer.com</quote> in the DNS. Just put an A record in\n" +"the DNS for <quote>customer.com</quote>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51174 +msgid "" +"This section covers more involved topics such as mail configuration and " +"setting up mail for an entire domain." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:51180 +msgid "<primary>email</primary> <secondary>configuration</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51185 +msgid "" +"Out of the box, one can send email to external hosts as long as <filename>/" +"etc/resolv.conf</filename> is configured or the network has access to a " +"configured <acronym>DNS</acronym> server. To have email delivered to the " +"<acronym>MTA</acronym> on the FreeBSD host, do one of the following:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51193 +msgid "Run a <acronym>DNS</acronym> server for the domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51198 +msgid "" +"Get mail delivered directly to the <acronym>FQDN</acronym> for the machine." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51204 +msgid "" +"In order to have mail delivered directly to a host, it must have a permanent " +"static IP address, not a dynamic IP address. If the system is behind a " +"firewall, it must be configured to allow SMTP traffic. To receive mail " +"directly at a host, one of these two must be configured:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51212 +msgid "" +"Make sure that the lowest-numbered <acronym>MX</acronym><_:indexterm-1/> " +"record in <acronym>DNS</acronym> points to the host's static IP address." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51220 +msgid "" +"Make sure there is no <acronym>MX</acronym> entry in the <acronym>DNS</" +"acronym> for the host." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51225 +msgid "" +"Either of the above will allow mail to be received directly at the host." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51228 +msgid "Try this:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:51230 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>hostname</userinput>\n" +"example.FreeBSD.org\n" +"<prompt>#</prompt> <userinput>host example.FreeBSD.org</userinput>\n" +"example.FreeBSD.org has address 204.216.27.XX" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51235 +msgid "" +"In this example, mail sent directly to <email role=\"nolink" +"\">yourlogin@example.FreeBSD.org</email> should work without problems, " +"assuming <application>Sendmail</application> is running correctly on " +"<systemitem class=\"fqdomainname\">example.FreeBSD.org</systemitem>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51241 +msgid "For this example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:51243 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>host example.FreeBSD.org</userinput>\n" +"example.FreeBSD.org has address 204.216.27.XX\n" +"example.FreeBSD.org mail is handled (pri=10) by nevdull.FreeBSD.org" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51247 +msgid "" +"All mail sent to <systemitem class=\"fqdomainname\">example.FreeBSD.org</" +"systemitem> will be collected on <systemitem>hub</systemitem> under the same " +"username instead of being sent directly to your host." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51251 +msgid "" +"The above information is handled by the <acronym>DNS</acronym> server. The " +"<acronym>DNS</acronym> record that carries mail routing information is the " +"<acronym>MX</acronym> entry. If no <acronym>MX</acronym> record exists, mail " +"will be delivered directly to the host by way of its IP address." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51258 +msgid "" +"The <acronym>MX</acronym> entry for <systemitem class=\"fqdomainname" +"\">freefall.FreeBSD.org</systemitem> at one time looked like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:51261 +#, no-wrap +msgid "" +"freefall\t\tMX\t30\tmail.crl.net\n" +"freefall\t\tMX\t40\tagora.rdrop.com\n" +"freefall\t\tMX\t10\tfreefall.FreeBSD.org\n" +"freefall\t\tMX\t20\twho.cdrom.com" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51266 +msgid "" +"<systemitem>freefall</systemitem> had many <acronym>MX</acronym> entries. " +"The lowest <acronym>MX</acronym> number is the host that receives mail " +"directly, if available. If it is not accessible for some reason, the next " +"lower-numbered host will accept messages temporarily, and pass it along when " +"a lower-numbered host becomes available." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51274 +msgid "" +"Alternate <acronym>MX</acronym> sites should have separate Internet " +"connections in order to be most useful. Your <acronym>ISP</acronym> can " +"provide this service." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:51280 +msgid "Mail for a Domain" +msgstr "網域中的郵件" + +#. (itstool) path: sect2/para +#: book.translate.xml:51282 +msgid "" +"When configuring a <acronym>MTA</acronym> for a network, any mail sent to " +"hosts in its domain should be diverted to the <acronym>MTA</acronym> so that " +"users can receive their mail on the master mail server." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51288 +msgid "" +"To make life easiest, a user account with the same <emphasis>username</" +"emphasis> should exist on both the <acronym>MTA</acronym> and the system " +"with the <acronym>MUA</acronym>. Use <citerefentry><refentrytitle>adduser</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to create the user " +"accounts." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51294 +msgid "" +"The <acronym>MTA</acronym> must be the designated mail exchanger for each " +"workstation on the network. This is done in the<acronym>DNS</acronym> " +"configuration with an <acronym>MX</acronym> record:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:51299 +#, no-wrap +msgid "" +"example.FreeBSD.org\tA\t204.216.27.XX\t\t; Workstation\n" +"\t\t\tMX\t10 nevdull.FreeBSD.org\t; Mailhost" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51302 +msgid "" +"This will redirect mail for the workstation to the <acronym>MTA</acronym> no " +"matter where the A record points. The mail is sent to the <acronym>MX</" +"acronym> host." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51306 +msgid "" +"This must be configured on a <acronym>DNS</acronym> server. If the network " +"does not run its own <acronym>DNS</acronym> server, talk to the " +"<acronym>ISP</acronym> or <acronym>DNS</acronym> provider." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51312 +msgid "" +"The following is an example of virtual email hosting. Consider a customer " +"with the domain <systemitem class=\"fqdomainname\">customer1.org</" +"systemitem>, where all the mail for <systemitem class=\"fqdomainname" +"\">customer1.org</systemitem> should be sent to <systemitem class=" +"\"fqdomainname\">mail.myhost.com</systemitem>. The <acronym>DNS</acronym> " +"entry should look like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:51318 +#, no-wrap +msgid "customer1.org\t\tMX\t10\tmail.myhost.com" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51320 +msgid "" +"An <literal>A</literal>> record is <emphasis>not</emphasis> needed for " +"<systemitem class=\"fqdomainname\">customer1.org</systemitem> in order to " +"only handle email for that domain. However, running <command>ping</command> " +"against <systemitem class=\"fqdomainname\">customer1.org</systemitem> will " +"not work unless an <literal>A</literal> record exists for it." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51327 +msgid "" +"Tell the <acronym>MTA</acronym> which domains and/or hostnames it should " +"accept mail for. Either of the following will work for " +"<application>Sendmail</application>:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51333 +msgid "" +"Add the hosts to <filename>/etc/mail/local-host-names</filename> when using " +"the <literal>FEATURE(use_cw_file)</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51339 +msgid "" +"Add a <literal>Cwyour.host.com</literal> line to <filename>/etc/sendmail.cf</" +"filename>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:51348 +msgid "Setting Up to Send Only" +msgstr "寄件設定" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:51351 +msgid "" +"<personname> <firstname>Bill</firstname> <surname>Moran</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51361 +msgid "" +"There are many instances where one may only want to send mail through a " +"relay. Some examples are:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51366 +msgid "" +"The computer is a desktop machine that needs to use programs such as " +"<citerefentry><refentrytitle>send-pr</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, using the <acronym>ISP</acronym>'s mail relay." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51372 +msgid "" +"The computer is a server that does not handle mail locally, but needs to " +"pass off all mail to a relay for processing." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51378 +msgid "" +"While any <acronym>MTA</acronym> is capable of filling this particular " +"niche, it can be difficult to properly configure a full-featured " +"<acronym>MTA</acronym> just to handle offloading mail. Programs such as " +"<application>Sendmail</application> and <application>Postfix</application> " +"are overkill for this use." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51385 +msgid "" +"Additionally, a typical Internet access service agreement may forbid one " +"from running a <quote>mail server</quote>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51388 +msgid "" +"The easiest way to fulfill those needs is to install the <package>mail/" +"ssmtp</package> port:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:51391 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/mail/ssmtp</userinput>\n" +"<prompt>#</prompt> <userinput>make install replace clean</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51394 +msgid "" +"Once installed, <package>mail/ssmtp</package> can be configured with " +"<filename>/usr/local/etc/ssmtp/ssmtp.conf</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:51398 +#, no-wrap +msgid "" +"root=yourrealemail@example.com\n" +"mailhub=mail.example.com\n" +"rewriteDomain=example.com\n" +"hostname=_HOSTNAME_" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51403 +msgid "" +"Use the real email address for <systemitem class=\"username\">root</" +"systemitem>. Enter the <acronym>ISP</acronym>'s outgoing mail relay in place " +"of <systemitem class=\"fqdomainname\">mail.example.com</systemitem>. Some " +"<acronym>ISP</acronym>s call this the <quote>outgoing mail server</quote> or " +"<quote>SMTP server</quote>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51409 +msgid "" +"Make sure to disable <application>Sendmail</application>, including the " +"outgoing mail service. See <xref linkend=\"mail-disable-sendmail\"/> for " +"details." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51412 +msgid "" +"<package>mail/ssmtp</package> has some other options available. Refer to the " +"examples in <filename>/usr/local/etc/ssmtp</filename> or the manual page of " +"<application>ssmtp</application> for more information." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51417 +msgid "" +"Setting up <application>ssmtp</application> in this manner allows any " +"software on the computer that needs to send mail to function properly, while " +"not violating the <acronym>ISP</acronym>'s usage policy or allowing the " +"computer to be hijacked for spamming." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:51425 +msgid "Using Mail with a Dialup Connection" +msgstr "在撥號連線使用郵件" + +#. (itstool) path: sect1/para +#: book.translate.xml:51427 +msgid "" +"When using a static IP address, one should not need to adjust the default " +"configuration. Set the hostname to the assigned Internet name and " +"<application>Sendmail</application> will do the rest." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51432 +msgid "" +"When using a dynamically assigned IP address and a dialup PPP connection to " +"the Internet, one usually has a mailbox on the <acronym>ISP</acronym>'s mail " +"server. In this example, the <acronym>ISP</acronym>'s domain is <systemitem " +"class=\"fqdomainname\">example.net</systemitem>, the user name is " +"<systemitem class=\"username\">user</systemitem>, the hostname is " +"<systemitem class=\"fqdomainname\">bsd.home</systemitem>, and the " +"<acronym>ISP</acronym> has allowed <systemitem class=\"fqdomainname\">relay." +"example.net</systemitem> as a mail relay." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51441 +msgid "" +"In order to retrieve mail from the <acronym>ISP</acronym>'s mailbox, install " +"a retrieval agent from the Ports Collection. <package>mail/fetchmail</" +"package> is a good choice as it supports many different protocols. Usually, " +"the <acronym>ISP</acronym> will provide <acronym>POP</acronym>. When using " +"user <acronym>PPP</acronym>, email can be automatically fetched when an " +"Internet connection is established with the following entry in <filename>/" +"etc/ppp/ppp.linkup</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:51451 +#, no-wrap +msgid "" +"MYADDR:\n" +"!bg su user -c fetchmail" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51454 +msgid "" +"When using <application>Sendmail</application> to deliver mail to non-local " +"accounts, configure <application>Sendmail</application> to process the mail " +"queue as soon as the Internet connection is established. To do this, add " +"this line after the above <command>fetchmail</command> entry in <filename>/" +"etc/ppp/ppp.linkup</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:51461 +#, no-wrap +msgid " !bg su user -c \"sendmail -q\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51463 +msgid "" +"In this example, there is an account for <systemitem class=\"username" +"\">user</systemitem> on <systemitem class=\"fqdomainname\">bsd.home</" +"systemitem>. In the home directory of <systemitem class=\"username\">user</" +"systemitem> on <systemitem class=\"fqdomainname\">bsd.home</systemitem>, " +"create a <filename>.fetchmailrc</filename> which contains this line:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:51470 +#, no-wrap +msgid "poll example.net protocol pop3 fetchall pass MySecret" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51472 +msgid "" +"This file should not be readable by anyone except <systemitem class=" +"\"username\">user</systemitem> as it contains the password " +"<literal>MySecret</literal>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51476 +msgid "" +"In order to send mail with the correct <literal>from:</literal> header, " +"configure <application>Sendmail</application> to use <email>user@example." +"net</email> rather than <email role=\"nolink\">user@bsd.home</email> and to " +"send all mail via <systemitem class=\"fqdomainname\">relay.example.net</" +"systemitem>, allowing quicker mail transmission." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51483 +msgid "The following <filename>.mc</filename> should suffice:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:51486 +#, no-wrap +msgid "" +"VERSIONID(`bsd.home.mc version 1.0')\n" +"OSTYPE(bsd4.4)dnl\n" +"FEATURE(nouucp)dnl\n" +"MAILER(local)dnl\n" +"MAILER(smtp)dnl\n" +"Cwlocalhost\n" +"Cwbsd.home\n" +"MASQUERADE_AS(`example.net')dnl\n" +"FEATURE(allmasquerade)dnl\n" +"FEATURE(masquerade_envelope)dnl\n" +"FEATURE(nocanonify)dnl\n" +"FEATURE(nodns)dnl\n" +"define(`SMART_HOST', `relay.example.net')\n" +"Dmbsd.home\n" +"define(`confDOMAIN_NAME',`bsd.home')dnl\n" +"define(`confDELIVERY_MODE',`deferred')dnl" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51503 +msgid "" +"Refer to the previous section for details of how to convert this file into " +"the <filename>sendmail.cf</filename> format. Do not forget to restart " +"<application>Sendmail</application> after updating <filename>sendmail.cf</" +"filename>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:51511 +msgid "SMTP Authentication" +msgstr "SMTP 認證" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:51514 +msgid "" +"<personname> <firstname>James</firstname> <surname>Gorham</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51524 +msgid "" +"Configuring <acronym>SMTP</acronym> authentication on the <acronym>MTA</" +"acronym> provides a number of benefits. <acronym>SMTP</acronym> " +"authentication adds a layer of security to <application>Sendmail</" +"application>, and provides mobile users who switch hosts the ability to use " +"the same <acronym>MTA</acronym> without the need to reconfigure their mail " +"client's settings each time." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51534 +msgid "" +"Install <package>security/cyrus-sasl2</package> from the Ports Collection. " +"This port supports a number of compile-time options. For the SMTP " +"authentication method demonstrated in this example, make sure that " +"<option>LOGIN</option> is not disabled." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51543 +msgid "" +"After installing <package>security/cyrus-sasl2</package>, edit <filename>/" +"usr/local/lib/sasl2/Sendmail.conf</filename>, or create it if it does not " +"exist, and add the following line:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:51549 +#, no-wrap +msgid "pwcheck_method: saslauthd" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51553 +msgid "" +"Next, install <package>security/cyrus-sasl2-saslauthd</package> and add the " +"following line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:51558 +#, no-wrap +msgid "saslauthd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51560 +msgid "Finally, start the saslauthd daemon:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:51562 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service saslauthd start</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51564 +msgid "" +"This daemon serves as a broker for <application>Sendmail</application> to " +"authenticate against the FreeBSD <citerefentry><refentrytitle>passwd</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> database. This saves " +"the trouble of creating a new set of usernames and passwords for each user " +"that needs to use <acronym>SMTP</acronym> authentication, and keeps the " +"login and mail password the same." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51573 +msgid "" +"Next, edit <filename>/etc/make.conf</filename> and add the following lines:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:51576 +#, no-wrap +msgid "" +"SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL\n" +"SENDMAIL_LDFLAGS=-L/usr/local/lib\n" +"SENDMAIL_LDADD=-lsasl2" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51580 +msgid "" +"These lines provide <application>Sendmail</application> the proper " +"configuration options for linking to <package>cyrus-sasl2</package> at " +"compile time. Make sure that <package>cyrus-sasl2</package> has been " +"installed before recompiling <application>Sendmail</application>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51589 +msgid "" +"Recompile <application>Sendmail</application> by executing the following " +"commands:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:51592 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src/lib/libsmutil</userinput>\n" +"<prompt>#</prompt> <userinput>make cleandir && make obj && make</userinput>\n" +"<prompt>#</prompt> <userinput>cd /usr/src/lib/libsm</userinput>\n" +"<prompt>#</prompt> <userinput>make cleandir && make obj && make</userinput>\n" +"<prompt>#</prompt> <userinput>cd /usr/src/usr.sbin/sendmail</userinput>\n" +"<prompt>#</prompt> <userinput>make cleandir && make obj && make && make install</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51599 +msgid "" +"This compile should not have any problems if <filename>/usr/src</filename> " +"has not changed extensively and the shared libraries it needs are available." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51605 +msgid "" +"After <application>Sendmail</application> has been compiled and reinstalled, " +"edit <filename>/etc/mail/freebsd.mc</filename> or the local <filename>.mc</" +"filename>. Many administrators choose to use the output from " +"<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> as the name of <filename>.mc</filename> for " +"uniqueness. Add these lines:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:51613 +#, no-wrap +msgid "" +"dnl set SASL options\n" +"TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl\n" +"define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51617 +msgid "" +"These options configure the different methods available to " +"<application>Sendmail</application> for authenticating users. To use a " +"method other than <application>pwcheck</application>, refer to the " +"<application>Sendmail</application> documentation." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:51625 +msgid "" +"Finally, run <citerefentry><refentrytitle>make</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> while in <filename>/etc/mail</filename>. That will " +"run the new <filename>.mc</filename> and create a <filename>.cf</filename> " +"named either <filename>freebsd.cf</filename> or the name used for the local " +"<filename>.mc</filename>. Then, run <command>make install restart</command>, " +"which will copy the file to <filename>sendmail.cf</filename>, and properly " +"restart <application>Sendmail</application>. For more information about this " +"process, refer to <filename>/etc/mail/Makefile</filename>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51639 +msgid "" +"To test the configuration, use a <acronym>MUA</acronym> to send a test " +"message. For further investigation, set the <option>LogLevel</option> of " +"<application>Sendmail</application> to <literal>13</literal> and watch " +"<filename>/var/log/maillog</filename> for any errors." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51645 +msgid "" +"For more information, refer to <link xlink:href=\"http://www.sendmail.org/" +"~ca/email/auth.html\"> <acronym>SMTP</acronym> authentication</link>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:51651 +msgid "Mail User Agents" +msgstr "郵件使用者代理程式" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:51654 book.translate.xml:52011 book.translate.xml:52111 +msgid "" +"<personname> <firstname>Marc</firstname> <surname>Silver</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:51664 +msgid "<primary>Mail User Agents</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:51668 +msgid "" +"A <acronym>MUA</acronym> is an application that is used to send and receive " +"email. As email <quote>evolves</quote> and becomes more complex, " +"<acronym>MUA</acronym>s are becoming increasingly powerful and provide users " +"increased functionality and flexibility. The <literal>mail</literal> " +"category of the FreeBSD Ports Collection contains numerous <acronym>MUA</" +"acronym>s. These include graphical email clients such as " +"<application>Evolution</application> or <application>Balsa</application> and " +"console based clients such as <application>mutt</application> or " +"<application>alpine</application>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:51681 +msgid "<command>mail</command>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51683 +msgid "" +"<citerefentry><refentrytitle>mail</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> is the default <acronym>MUA</acronym> installed with FreeBSD. " +"It is a console based <acronym>MUA</acronym> that offers the basic " +"functionality required to send and receive text-based email. It provides " +"limited attachment support and can only access local mailboxes." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51690 +msgid "" +"Although <command>mail</command> does not natively support interaction with " +"<acronym>POP</acronym> or <acronym>IMAP</acronym> servers, these mailboxes " +"may be downloaded to a local <filename>mbox</filename> using an application " +"such as <application>fetchmail</application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51697 +msgid "In order to send and receive email, run <command>mail</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:51700 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>mail</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51702 +msgid "" +"The contents of the user's mailbox in <filename>/var/mail</filename> are " +"automatically read by <command>mail</command>. Should the mailbox be empty, " +"the utility exits with a message indicating that no mail could be found. If " +"mail exists, the application interface starts, and a list of messages will " +"be displayed. Messages are automatically numbered, as can be seen in the " +"following example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:51711 +#, no-wrap +msgid "" +"Mail version 8.1 6/6/93. Type ? for help.\n" +"\"/var/mail/marcs\": 3 messages 3 new\n" +">N 1 root@localhost Mon Mar 8 14:05 14/510 \"test\"\n" +" N 2 root@localhost Mon Mar 8 14:05 14/509 \"user account\"\n" +" N 3 root@localhost Mon Mar 8 14:05 14/509 \"sample\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51717 +msgid "" +"Messages can now be read by typing <keycap>t</keycap> followed by the " +"message number. This example reads the first email:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:51721 +#, no-wrap +msgid "" +"& <userinput>t 1</userinput>\n" +"Message 1:\n" +"From root@localhost Mon Mar 8 14:05:52 2004\n" +"X-Original-To: marcs@localhost\n" +"Delivered-To: marcs@localhost\n" +"To: marcs@localhost\n" +"Subject: test\n" +"Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)\n" +"From: root@localhost (Charlie Root)\n" +"\n" +"This is a test message, please reply if you receive it." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51733 +msgid "" +"As seen in this example, the message will be displayed with full headers. To " +"display the list of messages again, press <keycap>h</keycap>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51737 +msgid "" +"If the email requires a reply, press either <keycap>R</keycap> or <keycap>r</" +"keycap> <command>mail</command> keys. <keycap>R</keycap> instructs " +"<command>mail</command> to reply only to the sender of the email, while " +"<keycap>r</keycap> replies to all other recipients of the message. These " +"commands can be suffixed with the mail number of the message to reply to. " +"After typing the response, the end of the message should be marked by a " +"single <keycap>.</keycap> on its own line. An example can be seen below:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:51748 +#, no-wrap +msgid "" +"& <userinput>R 1</userinput>\n" +"To: root@localhost\n" +"Subject: Re: test\n" +"\n" +"<userinput>Thank you, I did get your email.\n" +".</userinput>\n" +"EOT" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51756 +msgid "" +"In order to send a new email, press <keycap>m</keycap>, followed by the " +"recipient email address. Multiple recipients may be specified by separating " +"each address with the <keycap>,</keycap> delimiter. The subject of the " +"message may then be entered, followed by the message contents. The end of " +"the message should be specified by putting a single <keycap>.</keycap> on " +"its own line." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:51764 +#, no-wrap +msgid "" +"& <userinput>mail root@localhost</userinput>\n" +"Subject: <userinput>I mastered mail\n" +"\n" +"Now I can send and receive email using mail ... :)\n" +".</userinput>\n" +"EOT" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51771 +msgid "" +"While using <command>mail</command>, press <keycap>?</keycap> to display " +"help at any time. Refer to <citerefentry><refentrytitle>mail</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> for more help on how " +"to use <command>mail</command>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:51777 +msgid "" +"<citerefentry><refentrytitle>mail</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> was not designed to handle attachments and thus deals with " +"them poorly. Newer <acronym>MUA</acronym>s handle attachments in a more " +"intelligent way. Users who prefer to use <command>mail</command> may find " +"the <package>converters/mpack</package> port to be of considerable use." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:51787 +msgid "<application>mutt</application>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51789 +msgid "" +"<application>mutt</application> is a powerful <acronym>MUA</acronym>, with " +"many features, including:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51794 +msgid "The ability to thread messages." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51798 +msgid "PGP support for digital signing and encryption of email." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51803 +msgid "MIME support." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51807 +msgid "Maildir support." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:51811 +msgid "Highly customizable." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51815 +msgid "" +"Refer to <uri xlink:href=\"http://www.mutt.org\">http://www.mutt.org</uri> " +"for more information on <application>mutt</application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51819 +msgid "" +"<application>mutt</application> may be installed using the <package>mail/" +"mutt</package> port. After the port has been installed, <application>mutt</" +"application> can be started by issuing the following command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:51824 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>mutt</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51826 +msgid "" +"<application>mutt</application> will automatically read and display the " +"contents of the user mailbox in <filename>/var/mail</filename>. If no mails " +"are found, <application>mutt</application> will wait for commands from the " +"user. The example below shows <application>mutt</application> displaying a " +"list of messages:" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:51836 +msgctxt "_" +msgid "external ref='mail/mutt1' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51840 +msgid "" +"To read an email, select it using the cursor keys and press <keycap>Enter</" +"keycap>. An example of <application>mutt</application> displaying email can " +"be seen below:" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:51847 +msgctxt "_" +msgid "external ref='mail/mutt2' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51851 +msgid "" +"Similar to <citerefentry><refentrytitle>mail</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, <application>mutt</application> can be used to " +"reply only to the sender of the message as well as to all recipients. To " +"reply only to the sender of the email, press <keycap>r</keycap>. To send a " +"group reply to the original sender as well as all the message recipients, " +"press <keycap>g</keycap>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:51859 +msgid "" +"By default, <application>mutt</application> uses the " +"<citerefentry><refentrytitle>vi</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> editor for creating and replying to emails. Each user can " +"customize this by creating or editing the <filename>.muttrc</filename> in " +"their home directory and setting the <literal>editor</literal> variable or " +"by setting the <envar>EDITOR</envar> environment variable. Refer to <uri " +"xlink:href=\"http://www.mutt.org/\">http://www.mutt.org/</uri> for more " +"information about configuring <application>mutt</application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51870 +msgid "" +"To compose a new mail message, press <keycap>m</keycap>. After a valid " +"subject has been given, <application>mutt</application> will start " +"<citerefentry><refentrytitle>vi</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> so the email can be written. Once the contents of the email " +"are complete, save and quit from <command>vi</command>. <application>mutt</" +"application> will resume, displaying a summary screen of the mail that is to " +"be delivered. In order to send the mail, press <keycap>y</keycap>. An " +"example of the summary screen can be seen below:" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:51882 +msgctxt "_" +msgid "external ref='mail/mutt3' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51886 +msgid "" +"<application>mutt</application> contains extensive help which can be " +"accessed from most of the menus by pressing <keycap>?</keycap>. The top line " +"also displays the keyboard shortcuts where appropriate." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:51894 +msgid "<application>alpine</application>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51896 +msgid "" +"<application>alpine</application> is aimed at a beginner user, but also " +"includes some advanced features." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:51900 +msgid "" +"<application>alpine</application> has had several remote vulnerabilities " +"discovered in the past, which allowed remote attackers to execute arbitrary " +"code as users on the local system, by the action of sending a specially-" +"prepared email. While <emphasis>known</emphasis> problems have been fixed, " +"<application>alpine</application> code is written in an insecure style and " +"the FreeBSD Security Officer believes there are likely to be other " +"undiscovered vulnerabilities. Users install <application>alpine</" +"application> at their own risk." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51912 +msgid "" +"The current version of <application>alpine</application> may be installed " +"using the <package>mail/alpine</package> port. Once the port has installed, " +"<application>alpine</application> can be started by issuing the following " +"command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:51918 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>alpine</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51920 +msgid "" +"The first time <application>alpine</application> runs, it displays a " +"greeting page with a brief introduction, as well as a request from the " +"<application>alpine</application> development team to send an anonymous " +"email message allowing them to judge how many users are using their client. " +"To send this anonymous message, press <keycap>Enter</keycap>. Alternatively, " +"press <keycap>E</keycap> to exit the greeting without sending an anonymous " +"message. An example of the greeting page is shown below:" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:51933 +msgctxt "_" +msgid "external ref='mail/pine1' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51937 +msgid "" +"The main menu is then presented, which can be navigated using the cursor " +"keys. This main menu provides shortcuts for the composing new mails, " +"browsing mail directories, and administering address book entries. Below the " +"main menu, relevant keyboard shortcuts to perform functions specific to the " +"task at hand are shown." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51944 +msgid "" +"The default directory opened by <application>alpine</application> is " +"<filename>inbox</filename>. To view the message index, press <keycap>I</" +"keycap>, or select the <guimenuitem>MESSAGE INDEX</guimenuitem> option shown " +"below:" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:51953 +msgctxt "_" +msgid "external ref='mail/pine2' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51957 +msgid "" +"The message index shows messages in the current directory and can be " +"navigated by using the cursor keys. Highlighted messages can be read by " +"pressing <keycap>Enter</keycap>." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:51964 +msgctxt "_" +msgid "external ref='mail/pine3' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51968 +msgid "" +"In the screenshot below, a sample message is displayed by " +"<application>alpine</application>. Contextual keyboard shortcuts are " +"displayed at the bottom of the screen. An example of one of a shortcut is " +"<keycap>r</keycap>, which tells the <acronym>MUA</acronym> to reply to the " +"current message being displayed." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:51977 +msgctxt "_" +msgid "external ref='mail/pine4' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51981 +msgid "" +"Replying to an email in <application>alpine</application> is done using the " +"<application>pico</application> editor, which is installed by default with " +"<application>alpine</application>. <application>pico</application> makes it " +"easy to navigate the message and is easier for novice users to use than " +"<citerefentry><refentrytitle>vi</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> or <citerefentry><refentrytitle>mail</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. Once the reply is " +"complete, the message can be sent by pressing <keycombo action=\"simul" +"\"><keycap>Ctrl</keycap><keycap>X</keycap> </keycombo>. <application>alpine</" +"application> will ask for confirmation before sending the message." +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:51994 +msgctxt "_" +msgid "external ref='mail/pine5' md5='__failed__'" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:51998 +msgid "" +"<application>alpine</application> can be customized using the " +"<guimenuitem>SETUP</guimenuitem> option from the main menu. Consult <uri " +"xlink:href=\"http://www.washington.edu/alpine/\">http://www.washington.edu/" +"alpine/</uri> for more information." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:52008 +msgid "Using <application>fetchmail</application>" +msgstr "使用 <application>fetchmail</application>" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:52021 +msgid "<primary>fetchmail</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52025 +msgid "" +"<application>fetchmail</application> is a full-featured <acronym>IMAP</" +"acronym> and <acronym>POP</acronym> client. It allows users to automatically " +"download mail from remote <acronym>IMAP</acronym> and <acronym>POP</acronym> " +"servers and save it into local mailboxes where it can be accessed more " +"easily. <application>fetchmail</application> can be installed using the " +"<package>mail/fetchmail</package> port, and offers various features, " +"including:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52036 +msgid "" +"Support for the <acronym>POP3</acronym>, <acronym>APOP</acronym>, " +"<acronym>KPOP</acronym>, <acronym>IMAP</acronym>, <acronym>ETRN</acronym> " +"and <acronym>ODMR</acronym> protocols." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52043 +msgid "" +"Ability to forward mail using <acronym>SMTP</acronym>, which allows " +"filtering, forwarding, and aliasing to function normally." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52049 +msgid "May be run in daemon mode to check periodically for new messages." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52054 +msgid "" +"Can retrieve multiple mailboxes and forward them, based on configuration, to " +"different local users." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52059 +msgid "" +"This section explains some of the basic features of <application>fetchmail</" +"application>. This utility requires a <filename>.fetchmailrc</filename> " +"configuration in the user's home directory in order to run correctly. This " +"file includes server information as well as login credentials. Due to the " +"sensitive nature of the contents of this file, it is advisable to make it " +"readable only by the user, with the following command:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:52068 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>chmod 600 .fetchmailrc</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52070 +msgid "" +"The following <filename>.fetchmailrc</filename> serves as an example for " +"downloading a single user mailbox using <acronym>POP</acronym>. It tells " +"<application>fetchmail</application> to connect to <systemitem class=" +"\"fqdomainname\">example.com</systemitem> using a username of <systemitem " +"class=\"username\">joesoap</systemitem> and a password of <literal>XXX</" +"literal>. This example assumes that the user <systemitem class=\"username" +"\">joesoap</systemitem> exists on the local system." +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:52080 +#, no-wrap +msgid "poll example.com protocol pop3 username \"joesoap\" password \"XXX\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52082 +msgid "" +"The next example connects to multiple <acronym>POP</acronym> and " +"<acronym>IMAP</acronym> servers and redirects to different local usernames " +"where applicable:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:52086 +#, no-wrap +msgid "" +"poll example.com proto pop3:\n" +"user \"joesoap\", with password \"XXX\", is \"jsoap\" here;\n" +"user \"andrea\", with password \"XXXX\";\n" +"poll example2.net proto imap:\n" +"user \"john\", with password \"XXXXX\", is \"myth\" here;" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52092 +msgid "" +"<application>fetchmail</application> can be run in daemon mode by running it " +"with <option>-d</option>, followed by the interval (in seconds) that " +"<application>fetchmail</application> should poll servers listed in " +"<filename>.fetchmailrc</filename>. The following example configures " +"<application>fetchmail</application> to poll every 600 seconds:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:52100 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>fetchmail -d 600</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52102 +msgid "" +"More information on <application>fetchmail</application> can be found at " +"<uri xlink:href=\"http://www.fetchmail.info/\">http://www.fetchmail.info/</" +"uri>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:52108 +msgid "Using <application>procmail</application>" +msgstr "使用 <application>procmail</application>" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:52121 +msgid "<primary>procmail</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52125 +msgid "" +"<application>procmail</application> is a powerful application used to filter " +"incoming mail. It allows users to define <quote>rules</quote> which can be " +"matched to incoming mails to perform specific functions or to reroute mail " +"to alternative mailboxes or email addresses. <application>procmail</" +"application> can be installed using the <package>mail/procmail</package> " +"port. Once installed, it can be directly integrated into most <acronym>MTA</" +"acronym>s. Consult the <acronym>MTA</acronym> documentation for more " +"information. Alternatively, <application>procmail</application> can be " +"integrated by adding the following line to a <filename>.forward</filename> " +"in the home directory of the user:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:52139 +#, no-wrap +msgid "\"|exec /usr/local/bin/procmail || exit 75\"" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52141 +msgid "" +"The following section displays some basic <application>procmail</" +"application> rules, as well as brief descriptions of what they do. Rules " +"must be inserted into a <filename>.procmailrc</filename>, which must reside " +"in the user's home directory." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52147 +msgid "" +"The majority of these rules can be found in <citerefentry vendor=\"ports" +"\"><refentrytitle>procmailex</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52150 +msgid "" +"To forward all mail from <email>user@example.com</email> to an external " +"address of <email role=\"nolink\">goodmail@example2.com</email>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:52153 +#, no-wrap +msgid "" +":0\n" +"* ^From.*user@example.com\n" +"! goodmail@example2.com" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52157 +msgid "" +"To forward all mails shorter than 1000 bytes to an external address of " +"<email role=\"nolink\">goodmail@example2.com</email>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:52160 +#, no-wrap +msgid "" +":0\n" +"* < 1000\n" +"! goodmail@example2.com" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52164 +msgid "" +"To send all mail sent to <email>alternate@example.com</email> to a mailbox " +"called <filename>alternate</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:52168 +#, no-wrap +msgid "" +":0\n" +"* ^TOalternate@example.com\n" +"alternate" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52172 +msgid "" +"To send all mail with a subject of <quote>Spam</quote> to <filename>/dev/" +"null</filename>:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:52175 +#, no-wrap +msgid "" +":0\n" +"^Subject:.*Spam\n" +"/dev/null" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52179 +msgid "" +"A useful recipe that parses incoming <systemitem class=\"fqdomainname" +"\">FreeBSD.org</systemitem> mailing lists and places each list in its own " +"mailbox:" +msgstr "" + +#. (itstool) path: sect1/programlisting +#: book.translate.xml:52182 +#, no-wrap +msgid "" +":0\n" +"* ^Sender:.owner-freebsd-\\/[^@]+@FreeBSD.ORG\n" +"{\n" +"\tLISTNAME=${MATCH}\n" +"\t:0\n" +"\t* LISTNAME??^\\/[^@]+\n" +"\tFreeBSD-${MATCH}\n" +"}" +msgstr "" + +#. (itstool) path: chapter/title +#: book.translate.xml:52212 +msgid "Network Servers" +msgstr "網路伺服器" + +#. (itstool) path: sect1/para +#: book.translate.xml:52217 +msgid "" +"This chapter covers some of the more frequently used network services on " +"<trademark class=\"registered\">UNIX</trademark> systems. This includes " +"installing, configuring, testing, and maintaining many different types of " +"network services. Example configuration files are included throughout this " +"chapter for reference." +msgstr "" +"本章節涵蓋一些在 <trademark class=\"registered\">UNIX</trademark> 系統常用的" +"網路服務,包含安裝、設定、測試及維護各種不同類型的網路服務。本章會提供範例設" +"定檔以供參考。" + +#. (itstool) path: sect1/para +#: book.translate.xml:52223 +msgid "By the end of this chapter, readers will know:" +msgstr "讀完本章,您將了解:" + +#. (itstool) path: listitem/para +#: book.translate.xml:52227 +msgid "How to manage the <application>inetd</application> daemon." +msgstr "如何管理 <application>inetd</application> Daemon。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52232 +msgid "How to set up the Network File System (<acronym>NFS</acronym>)." +msgstr "如何設定網路檔案系統 (Network File System, <acronym>NFS</acronym>)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52237 +msgid "" +"How to set up the Network Information Server (<acronym>NIS</acronym>) for " +"centralizing and sharing user accounts." +msgstr "" +"如何設定網路資訊伺服器 (Network Information Server, <acronym>NIS</acronym>) " +"來集中管理及共用使用者帳號。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52243 +msgid "" +"How to set FreeBSD up to act as an <acronym>LDAP</acronym> server or client" +msgstr "如何設定 FreeBSD 成為 <acronym>LDAP</acronym> 伺服器或客戶端。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52248 +msgid "How to set up automatic network settings using <acronym>DHCP</acronym>." +msgstr "如何設定使用 <acronym>DHCP</acronym> 自動網路設定。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52253 +msgid "How to set up a Domain Name Server (<acronym>DNS</acronym>)." +msgstr "如何設定網域名稱伺服器 (Domain Name Server, <acronym>DNS</acronym>)。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52258 +msgid "" +"How to set up the <application>Apache</application> <acronym>HTTP</acronym> " +"Server." +msgstr "" +"如何設定 <application>Apache</application> <acronym>HTTP</acronym> 伺服器。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52263 +msgid "How to set up a File Transfer Protocol (<acronym>FTP</acronym>) server." +msgstr "" +"如何設定檔案傳輸協定 (File Transfer Protocol, <acronym>FTP</acronym>) 伺服" +"器。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52268 +msgid "" +"How to set up a file and print server for <trademark class=\"registered" +"\">Windows</trademark> clients using <application>Samba</application>." +msgstr "" +"如何設定 <application>Samba</application> 檔案與列印伺服器供 <trademark " +"class=\"registered\">Windows</trademark> 客戶端使用。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52273 +msgid "" +"How to synchronize the time and date, and set up a time server using the " +"Network Time Protocol (<acronym>NTP</acronym>)." +msgstr "" +"如何同步時間與日期,並使用網路時間協定 (Network Time Protocol, <acronym>NTP</" +"acronym>) 設定時間伺服器。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52279 +msgid "How to set up <acronym>iSCSI</acronym>." +msgstr "如何設定 <acronym>iSCSI</acronym>。" + +#. (itstool) path: sect1/para +#: book.translate.xml:52283 +msgid "This chapter assumes a basic knowledge of:" +msgstr "本章假設您有以下基礎知識:" + +#. (itstool) path: listitem/para +#: book.translate.xml:52287 +msgid "<filename>/etc/rc</filename> scripts." +msgstr "<filename>/etc/rc</filename> Script。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52291 +msgid "Network terminology." +msgstr "網路術語。" + +#. (itstool) path: listitem/para +#: book.translate.xml:52295 +msgid "" +"Installation of additional third-party software (<xref linkend=\"ports\"/>)." +msgstr "安裝其他第三方軟體 (<xref linkend=\"ports\"/>)。" + +#. (itstool) path: sect1/title +#: book.translate.xml:52302 +msgid "The <application>inetd</application> Super-Server" +msgstr "<application>inetd</application> 超級伺服器" + +#. (itstool) path: sect1/para +#: book.translate.xml:52323 +msgid "" +"The <citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> daemon is sometimes referred to as a Super-Server " +"because it manages connections for many services. Instead of starting " +"multiple applications, only the <application>inetd</application> service " +"needs to be started. When a connection is received for a service that is " +"managed by <application>inetd</application>, it determines which program the " +"connection is destined for, spawns a process for that program, and delegates " +"the program a socket. Using <application>inetd</application> for services " +"that are not heavily used can reduce system load, when compared to running " +"each daemon individually in stand-alone mode." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52335 +msgid "" +"Primarily, <application>inetd</application> is used to spawn other daemons, " +"but several trivial protocols are handled internally, such as " +"<application>chargen</application>, <application>auth</application>, " +"<application>time</application>, <application>echo</application>, " +"<application>discard</application>, and <application>daytime</application>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52344 +msgid "" +"This section covers the basics of configuring <application>inetd</" +"application>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:52348 +msgid "Configuration File" +msgstr "設定檔" + +#. (itstool) path: sect2/para +#: book.translate.xml:52350 +msgid "" +"Configuration of <application>inetd</application> is done by editing " +"<filename>/etc/inetd.conf</filename>. Each line of this configuration file " +"represents an application which can be started by <application>inetd</" +"application>. By default, every line starts with a comment (<literal>#</" +"literal>), meaning that <application>inetd</application> is not listening " +"for any applications. To configure <application>inetd</application> to " +"listen for an application's connections, remove the <literal>#</literal> at " +"the beginning of the line for that application." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52362 +msgid "" +"After saving your edits, configure <application>inetd</application> to start " +"at system boot by editing <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#. (itstool) path: step/programlisting +#: book.translate.xml:52366 book.translate.xml:65491 +#, no-wrap +msgid "inetd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52368 +msgid "" +"To start <application>inetd</application> now, so that it listens for the " +"service you configured, type:" +msgstr "" + +#. (itstool) path: sect2/screen +#. (itstool) path: step/screen +#: book.translate.xml:52371 book.translate.xml:65513 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service inetd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52373 +msgid "" +"Once <application>inetd</application> is started, it needs to be notified " +"whenever a modification is made to <filename>/etc/inetd.conf</filename>:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:52378 +msgid "Reloading the <application>inetd</application> Configuration File" +msgstr "重新庫入 <application>inetd</application> 設定檔" + +#. (itstool) path: example/screen +#: book.translate.xml:52381 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service inetd reload</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52384 +msgid "" +"Typically, the default entry for an application does not need to be edited " +"beyond removing the <literal>#</literal>. In some situations, it may be " +"appropriate to edit the default entry." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52389 +msgid "" +"As an example, this is the default entry for " +"<citerefentry><refentrytitle>ftpd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> over IPv4:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52392 +#, no-wrap +msgid "ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52394 +msgid "The seven columns in an entry are as follows:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52396 +#, no-wrap +msgid "" +"service-name\n" +"socket-type\n" +"protocol\n" +"{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]\n" +"user[:group][/login-class]\n" +"server-program\n" +"server-program-arguments" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52404 book.translate.xml:65535 +msgid "where:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52408 +msgid "service-name" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52411 +msgid "" +"The service name of the daemon to start. It must correspond to a service " +"listed in <filename>/etc/services</filename>. This determines which port " +"<application>inetd</application> listens on for incoming connections to that " +"service. When using a custom service, it must first be added to <filename>/" +"etc/services</filename>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52422 +msgid "socket-type" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52425 +msgid "" +"Either <literal>stream</literal>, <literal>dgram</literal>, <literal>raw</" +"literal>, or <literal>seqpacket</literal>. Use <literal>stream</literal> for " +"TCP connections and <literal>dgram</literal> for <acronym>UDP</acronym> " +"services." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52435 +msgid "protocol" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52438 +msgid "Use one of the following protocol names:" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52444 +msgid "Protocol Name" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52445 +msgid "Explanation" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52451 +msgid "tcp or tcp4" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52452 +msgid "TCP IPv4" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52456 +msgid "udp or udp4" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52457 +msgid "<acronym>UDP</acronym> IPv4" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52461 +msgid "tcp6" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52462 +msgid "TCP IPv6" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52466 +msgid "udp6" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52467 +msgid "<acronym>UDP</acronym> IPv6" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52471 +msgid "tcp46" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52472 +msgid "Both TCP IPv4 and IPv6" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52476 +msgid "udp46" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52477 +msgid "Both <acronym>UDP</acronym> IPv4 and IPv6" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52487 +msgid "" +"{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-" +"ip]]]" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52490 +msgid "" +"In this field, <option>wait</option> or <option>nowait</option> must be " +"specified. <option>max-child</option>, <option>max-connections-per-ip-per-" +"minute</option> and <option>max-child-per-ip</option> are optional." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52496 +msgid "" +"<option>wait|nowait</option> indicates whether or not the service is able to " +"handle its own socket. <option>dgram</option> socket types must use " +"<option>wait</option> while <option>stream</option> daemons, which are " +"usually multi-threaded, should use <option>nowait</option>. <option>wait</" +"option> usually hands off multiple sockets to a single daemon, while " +"<option>nowait</option> spawns a child daemon for each new socket." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52506 +msgid "" +"The maximum number of child daemons <application>inetd</application> may " +"spawn is set by <option>max-child</option>. For example, to limit ten " +"instances of the daemon, place a <literal>/10</literal> after " +"<option>nowait</option>. Specifying <literal>/0</literal> allows an " +"unlimited number of children." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52514 +msgid "" +"<option>max-connections-per-ip-per-minute</option> limits the number of " +"connections from any particular <acronym>IP</acronym> address per minute. " +"Once the limit is reached, further connections from this IP address will be " +"dropped until the end of the minute. For example, a value of <literal>/10</" +"literal> would limit any particular <acronym>IP</acronym> address to ten " +"connection attempts per minute. <option>max-child-per-ip</option> limits the " +"number of child processes that can be started on behalf on any single " +"<acronym>IP</acronym> address at any moment. These options can limit " +"excessive resource consumption and help to prevent Denial of Service attacks." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52528 +msgid "" +"An example can be seen in the default settings for " +"<citerefentry><refentrytitle>fingerd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: listitem/programlisting +#: book.translate.xml:52531 +#, no-wrap +msgid "finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -k -s" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52536 +msgid "user" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52539 +msgid "" +"The username the daemon will run as. Daemons typically run as <systemitem " +"class=\"username\">root</systemitem>, <systemitem class=\"username\">daemon</" +"systemitem>, or <systemitem class=\"username\">nobody</systemitem>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52548 +msgid "server-program" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52551 +msgid "" +"The full path to the daemon. If the daemon is a service provided by " +"<application>inetd</application> internally, use <option>internal</option>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52558 +msgid "server-program-arguments" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52561 +msgid "" +"Used to specify any command arguments to be passed to the daemon on " +"invocation. If the daemon is an internal service, use <option>internal</" +"option>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:52571 +msgid "Command-Line Options" +msgstr "指令列選項" + +#. (itstool) path: sect2/para +#: book.translate.xml:52573 +msgid "" +"Like most server daemons, <application>inetd</application> has a number of " +"options that can be used to modify its behavior. By default, " +"<application>inetd</application> is started with <literal>-wW -C 60</" +"literal>. These options enable TCP wrappers for all services, including " +"internal services, and prevent any <acronym>IP</acronym> address from " +"requesting any service more than 60 times per minute." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52581 +msgid "" +"To change the default options which are passed to <application>inetd</" +"application>, add an entry for <literal>inetd_flags</literal> in <filename>/" +"etc/rc.conf</filename>. If <application>inetd</application> is already " +"running, restart it with <command>service inetd restart</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52588 +msgid "The available rate limiting options are:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52592 +msgid "-c maximum" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52595 +msgid "" +"Specify the default maximum number of simultaneous invocations of each " +"service, where the default is unlimited. May be overridden on a per-service " +"basis by using <option>max-child</option> in <filename>/etc/inetd.conf</" +"filename>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52604 +msgid "-C rate" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52607 +msgid "" +"Specify the default maximum number of times a service can be invoked from a " +"single <acronym>IP</acronym> address per minute. May be overridden on a per-" +"service basis by using <option>max-connections-per-ip-per-minute</option> in " +"<filename>/etc/inetd.conf</filename>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52617 +msgid "-R rate" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52620 +msgid "" +"Specify the maximum number of times a service can be invoked in one minute, " +"where the default is <literal>256</literal>. A rate of <literal>0</literal> " +"allows an unlimited number." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:52628 +msgid "-s maximum" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52631 +msgid "" +"Specify the maximum number of times a service can be invoked from a single " +"<acronym>IP</acronym> address at any one time, where the default is " +"unlimited. May be overridden on a per-service basis by using <option>max-" +"child-per-ip</option> in <filename>/etc/inetd.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52641 +msgid "" +"Additional options are available. Refer to " +"<citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for the full list of options." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52648 +msgid "" +"Many of the daemons which can be managed by <application>inetd</application> " +"are not security-conscious. Some daemons, such as <application>fingerd</" +"application>, can provide information that may be useful to an attacker. " +"Only enable the services which are needed and monitor the system for " +"excessive connection attempts. <literal>max-connections-per-ip-per-minute</" +"literal>, <literal>max-child</literal> and <literal>max-child-per-ip</" +"literal> can be used to limit such attacks." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52659 +msgid "" +"By default, TCP wrappers is enabled. Consult " +"<citerefentry><refentrytitle>hosts_access</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for more information on placing TCP restrictions " +"on various <application>inetd</application> invoked daemons." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:52668 +msgid "Network File System (NFS)" +msgstr "網路檔案系統 (NFS)" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:52671 +msgid "" +"<personname> <firstname>Tom</firstname> <surname>Rhodes</surname> </" +"personname> <contrib>Reorganized and enhanced by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:52681 +msgid "" +"<personname> <firstname>Bill</firstname> <surname>Swingle</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52692 +msgid "" +"FreeBSD supports the Network File System (<acronym>NFS</acronym>), which " +"allows a server to share directories and files with clients over a network. " +"With <acronym>NFS</acronym>, users and programs can access files on remote " +"systems as if they were stored locally." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52698 +msgid "" +"<acronym>NFS</acronym> has many practical uses. Some of the more common uses " +"include:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52703 +msgid "" +"Data that would otherwise be duplicated on each client can be kept in a " +"single location and accessed by clients on the network." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52709 +msgid "" +"Several clients may need access to the <filename>/usr/ports/distfiles</" +"filename> directory. Sharing that directory allows for quick access to the " +"source files without having to download them to each client." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52717 +msgid "" +"On large networks, it is often more convenient to configure a central " +"<acronym>NFS</acronym> server on which all user home directories are stored. " +"Users can log into a client anywhere on the network and have access to their " +"home directories." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52725 +msgid "" +"Administration of <acronym>NFS</acronym> exports is simplified. For example, " +"there is only one file system where security or backup policies must be set." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:52731 +msgid "" +"Removable media storage devices can be used by other machines on the " +"network. This reduces the number of devices throughout the network and " +"provides a centralized location to manage their security. It is often more " +"convenient to install software on multiple machines from a centralized " +"installation media." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52740 +msgid "" +"<acronym>NFS</acronym> consists of a server and one or more clients. The " +"client remotely accesses the data that is stored on the server machine. In " +"order for this to function properly, a few processes have to be configured " +"and running." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52745 +msgid "These daemons must be running on the server:" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:52746 +msgid "<primary>NFS</primary> <secondary>server</secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:52750 +msgid "<primary>file server</primary> <secondary>UNIX clients</secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: sect2/indexterm +#: book.translate.xml:52755 book.translate.xml:53263 +msgid "<primary><application>rpcbind</application></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:52758 +msgid "<primary><application>mountd</application></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:52761 +msgid "<primary><application>nfsd</application></primary>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52772 +msgid "Daemon" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52779 +msgid "<application>nfsd</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52780 +msgid "" +"The <acronym>NFS</acronym> daemon which services requests from <acronym>NFS</" +"acronym> clients." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52785 +msgid "<application>mountd</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52786 +msgid "" +"The <acronym>NFS</acronym> mount daemon which carries out requests received " +"from <application>nfsd</application>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52792 +msgid "<application>rpcbind</application>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:52793 +msgid "" +"This daemon allows <acronym>NFS</acronym> clients to discover which port the " +"<acronym>NFS</acronym> server is using." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:52801 +msgid "" +"Running <citerefentry><refentrytitle>nfsiod</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> on the client can improve performance, but is not " +"required." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:52805 +msgid "Configuring the Server" +msgstr "設定伺服哭" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:52807 +msgid "<primary>NFS</primary> <secondary>configuration</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52812 +msgid "" +"The file systems which the <acronym>NFS</acronym> server will share are " +"specified in <filename>/etc/exports</filename>. Each line in this file " +"specifies a file system to be exported, which clients have access to that " +"file system, and any access options. When adding entries to this file, each " +"exported file system, its properties, and allowed hosts must occur on a " +"single line. If no clients are listed in the entry, then any client on the " +"network can mount that file system." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:52821 +msgid "<primary>NFS</primary> <secondary>export examples</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52826 +msgid "" +"The following <filename>/etc/exports</filename> entries demonstrate how to " +"export file systems. The examples can be modified to match the file systems " +"and client names on the reader's network. There are many options that can be " +"used in this file, but only a few will be mentioned here. See " +"<citerefentry><refentrytitle>exports</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for the full list of options." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52833 +msgid "" +"This example shows how to export <filename>/cdrom</filename> to three hosts " +"named <replaceable>alpha</replaceable>, <replaceable>bravo</replaceable>, " +"and <replaceable>charlie</replaceable>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52839 +#, no-wrap +msgid "/cdrom -ro <replaceable>alpha</replaceable> <replaceable>bravo</replaceable> <replaceable>charlie</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52841 +msgid "" +"The <literal>-ro</literal> flag makes the file system read-only, preventing " +"clients from making any changes to the exported file system. This example " +"assumes that the host names are either in <acronym>DNS</acronym> or in " +"<filename>/etc/hosts</filename>. Refer to " +"<citerefentry><refentrytitle>hosts</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> if the network does not have a <acronym>DNS</acronym> server." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52849 +msgid "" +"The next example exports <filename>/home</filename> to three clients by " +"<acronym>IP</acronym> address. This can be useful for networks without " +"<acronym>DNS</acronym> or <filename>/etc/hosts</filename> entries. The " +"<literal>-alldirs</literal> flag allows subdirectories to be mount points. " +"In other words, it will not automatically mount the subdirectories, but will " +"permit the client to mount the directories that are required as needed." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52858 +#, no-wrap +msgid "/usr/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52860 +msgid "" +"This next example exports <filename>/a</filename> so that two clients from " +"different domains may access that file system. The <option>-maproot=root</" +"option> allows <systemitem class=\"username\">root</systemitem> on the " +"remote system to write data on the exported file system as <systemitem class=" +"\"username\">root</systemitem>. If <literal>-maproot=root</literal> is not " +"specified, the client's <systemitem class=\"username\">root</systemitem> " +"user will be mapped to the server's <systemitem class=\"username\">nobody</" +"systemitem> account and will be subject to the access limitations defined " +"for <systemitem class=\"username\">nobody</systemitem>." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52869 +#, no-wrap +msgid "/a -maproot=root host.example.com box.example.org" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52871 +msgid "" +"A client can only be specified once per file system. For example, if " +"<filename>/usr</filename> is a single file system, these entries would be " +"invalid as both entries specify the same host:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52876 +#, no-wrap +msgid "" +"# Invalid when /usr is one file system\n" +"/usr/src client\n" +"/usr/ports client" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52880 +msgid "The correct format for this situation is to use one entry:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52883 +#, no-wrap +msgid "/usr/src /usr/ports client" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52885 +msgid "" +"The following is an example of a valid export list, where <filename>/usr</" +"filename> and <filename>/exports</filename> are local file systems:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52889 +#, no-wrap +msgid "" +"# Export src and ports to client01 and client02, but only\n" +"# client01 has root privileges on it\n" +"/usr/src /usr/ports -maproot=root client01\n" +"/usr/src /usr/ports client02\n" +"# The client machines have root and can mount anywhere\n" +"# on /exports. Anyone in the world can mount /exports/obj read-only\n" +"/exports -alldirs -maproot=root client01 client02\n" +"/exports/obj -ro" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52898 +msgid "" +"To enable the processes required by the <acronym>NFS</acronym> server at " +"boot time, add these options to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52902 +#, no-wrap +msgid "" +"rpcbind_enable=\"YES\"\n" +"nfs_server_enable=\"YES\"\n" +"mountd_flags=\"-r\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52906 +msgid "The server can be started now by running this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#. (itstool) path: step/screen +#: book.translate.xml:52909 book.translate.xml:65484 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service nfsd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52911 +msgid "" +"Whenever the <acronym>NFS</acronym> server is started, <application>mountd</" +"application> also starts automatically. However, <application>mountd</" +"application> only reads <filename>/etc/exports</filename> when it is " +"started. To make subsequent <filename>/etc/exports</filename> edits take " +"effect immediately, force <application>mountd</application> to reread it:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:52919 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service mountd reload</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:52923 +msgid "Configuring the Client" +msgstr "設定客戶端" + +#. (itstool) path: sect2/para +#: book.translate.xml:52925 +msgid "" +"To enable <acronym>NFS</acronym> clients, set this option in each client's " +"<filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52928 +#, no-wrap +msgid "nfs_client_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52930 +msgid "Then, run this command on each <acronym>NFS</acronym> client:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:52933 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service nfsclient start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52935 +msgid "" +"The client now has everything it needs to mount a remote file system. In " +"these examples, the server's name is <systemitem>server</systemitem> and the " +"client's name is <systemitem>client</systemitem>. To mount <filename>/home</" +"filename> on <systemitem>server</systemitem> to the <filename>/mnt</" +"filename> mount point on <systemitem>client</systemitem>:" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:52944 +msgid "<primary>NFS</primary> <secondary>mounting</secondary>" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:52948 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount server:/home /mnt</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52950 +msgid "" +"The files and directories in <filename>/home</filename> will now be " +"available on <systemitem>client</systemitem>, in the <filename>/mnt</" +"filename> directory." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52955 +msgid "" +"To mount a remote file system each time the client boots, add it to " +"<filename>/etc/fstab</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52958 +#, no-wrap +msgid "server:/home\t/mnt\tnfs\trw\t0\t0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52960 +msgid "" +"Refer to <citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for a description of all available options." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:52965 +msgid "Locking" +msgstr "鎖定" + +#. (itstool) path: sect2/para +#: book.translate.xml:52967 +msgid "" +"Some applications require file locking to operate correctly. To enable " +"locking, add these lines to <filename>/etc/rc.conf</filename> on both the " +"client and server:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:52972 +#, no-wrap +msgid "" +"rpc_lockd_enable=\"YES\"\n" +"rpc_statd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52975 +msgid "Then start the applications:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:52977 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service lockd start</userinput>\n" +"<prompt>#</prompt> <userinput>service statd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:52980 +msgid "" +"If locking is not required on the server, the <acronym>NFS</acronym> client " +"can be configured to lock locally by including <option>-L</option> when " +"running <application>mount</application>. Refer to " +"<citerefentry><refentrytitle>mount_nfs</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for further details." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:52989 +msgid "" +"Automating Mounts with <citerefentry><refentrytitle>amd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>" +msgstr "" +"使用 <citerefentry><refentrytitle>amd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> 自動掛載" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:52992 +msgid "" +"<personname> <firstname>Wylie</firstname> <surname>Stilwell</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:53002 +msgid "" +"<personname> <firstname>Chern</firstname> <surname>Lee</surname> </" +"personname> <contrib>Rewritten by </contrib>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:53012 +msgid "<primary>amd</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:53013 +msgid "<primary>automatic mounter daemon</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53017 +msgid "" +"The automatic mounter daemon, <application>amd</application>, automatically " +"mounts a remote file system whenever a file or directory within that file " +"system is accessed. File systems that are inactive for a period of time will " +"be automatically unmounted by <application>amd</application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53024 +msgid "" +"This daemon provides an alternative to modifying <filename>/etc/fstab</" +"filename> to list every client. It operates by attaching itself as an " +"<acronym>NFS</acronym> server to the <filename>/host</filename> and " +"<filename>/net</filename> directories. When a file is accessed within one of " +"these directories, <application>amd</application> looks up the corresponding " +"remote mount and automatically mounts it. <filename>/net</filename> is used " +"to mount an exported file system from an <acronym>IP</acronym> address while " +"<filename>/host</filename> is used to mount an export from a remote " +"hostname. For instance, an attempt to access a file within <filename>/host/" +"foobar/usr</filename> would tell <application>amd</application> to mount the " +"<filename>/usr</filename> export on the host <systemitem>foobar</systemitem>." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:53042 +msgid "Mounting an Export with <application>amd</application>" +msgstr "使用 <application>amd</application> 掛載 Export" + +#. (itstool) path: example/para +#: book.translate.xml:53045 +msgid "" +"In this example, <command>showmount -e</command> shows the exported file " +"systems that can be mounted from the <acronym>NFS</acronym> server, " +"<systemitem>foobar</systemitem>:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:53050 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>showmount -e foobar</userinput>\n" +"Exports list on foobar:\n" +"/usr 10.10.10.0\n" +"/a 10.10.10.0\n" +"<prompt>%</prompt> <userinput>cd /host/foobar/usr</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53057 +msgid "" +"The output from <command>showmount</command> shows <filename>/usr</filename> " +"as an export. When changing directories to <filename>/host/foobar/usr</" +"filename>, <application>amd</application> intercepts the request and " +"attempts to resolve the hostname <systemitem>foobar</systemitem>. If " +"successful, <application>amd</application> automatically mounts the desired " +"export." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53066 +msgid "" +"To enable <application>amd</application> at boot time, add this line to " +"<filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:53069 +#, no-wrap +msgid "amd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53071 +msgid "To start <application>amd</application> now:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:53073 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service amd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53075 +msgid "" +"Custom flags can be passed to <application>amd</application> from the " +"<varname>amd_flags</varname> environment variable. By default, " +"<varname>amd_flags</varname> is set to:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:53080 +#, no-wrap +msgid "amd_flags=\"-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53082 +msgid "" +"The default options with which exports are mounted are defined in <filename>/" +"etc/amd.map</filename>. Some of the more advanced features of " +"<application>amd</application> are defined in <filename>/etc/amd.conf</" +"filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53087 +msgid "" +"Consult <citerefentry><refentrytitle>amd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>amd.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:53092 +msgid "" +"Automating Mounts with <citerefentry><refentrytitle>autofs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>" +msgstr "" +"使用 <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> 自動掛載" + +#. (itstool) path: note/para +#: book.translate.xml:53095 +msgid "" +"The <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> automount facility is supported starting with " +"FreeBSD 10.1-RELEASE. To use the automounter functionality in older versions " +"of FreeBSD, use <citerefentry><refentrytitle>amd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> instead. This chapter " +"only describes the <citerefentry><refentrytitle>autofs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> automounter." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:53103 +msgid "<primary>autofs</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:53104 +msgid "<primary>automounter subsystem</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53108 +msgid "" +"The <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> facility is a common name for several components " +"that, together, allow for automatic mounting of remote and local filesystems " +"whenever a file or directory within that file system is accessed. It " +"consists of the kernel component, <citerefentry><refentrytitle>autofs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>, and several userspace " +"applications: <citerefentry><refentrytitle>automount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>automountd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>autounmountd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. It serves as an " +"alternative for <citerefentry><refentrytitle>amd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> from previous FreeBSD " +"releases. Amd is still provided for backward compatibility purposes, as the " +"two use different map format; the one used by autofs is the same as with " +"other SVR4 automounters, such as the ones in Solaris, MacOS X, and Linux." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53121 +msgid "" +"The <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> virtual filesystem is mounted on specified " +"mountpoints by <citerefentry><refentrytitle>automount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, usually invoked " +"during boot." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53125 +msgid "" +"Whenever a process attempts to access file within the " +"<citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> mountpoint, the kernel will notify " +"<citerefentry><refentrytitle>automountd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> daemon and pause the triggering process. The " +"<citerefentry><refentrytitle>automountd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> daemon will handle kernel requests by finding the " +"proper map and mounting the filesystem according to it, then signal the " +"kernel to release blocked process. The " +"<citerefentry><refentrytitle>autounmountd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> daemon automatically unmounts automounted " +"filesystems after some time, unless they are still being used." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53135 +msgid "" +"The primary autofs configuration file is <filename>/etc/auto_master</" +"filename>. It assigns individual maps to top-level mounts. For an " +"explanation of <filename>auto_master</filename> and the map syntax, refer to " +"<citerefentry><refentrytitle>auto_master</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53141 +msgid "" +"There is a special automounter map mounted on <filename>/net</filename>. " +"When a file is accessed within this directory, " +"<citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> looks up the corresponding remote mount and automatically " +"mounts it. For instance, an attempt to access a file within <filename>/net/" +"foobar/usr</filename> would tell <citerefentry><refentrytitle>automountd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to mount the " +"<filename>/usr</filename> export from the host <systemitem class=" +"\"fqdomainname\">foobar</systemitem>." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:53151 +msgid "" +"Mounting an Export with <citerefentry><refentrytitle>autofs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>" +msgstr "" +"使用 <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> 掛載 Export" + +#. (itstool) path: example/para +#: book.translate.xml:53153 +msgid "" +"In this example, <command>showmount -e</command> shows the exported file " +"systems that can be mounted from the <acronym>NFS</acronym> server, " +"<systemitem class=\"fqdomainname\">foobar</systemitem>:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:53158 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>showmount -e foobar</userinput>\n" +"Exports list on foobar:\n" +"/usr 10.10.10.0\n" +"/a 10.10.10.0\n" +"<prompt>%</prompt> <userinput>cd /net/foobar/usr</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53165 +msgid "" +"The output from <command>showmount</command> shows <filename>/usr</filename> " +"as an export. When changing directories to <filename>/host/foobar/usr</" +"filename>, <citerefentry><refentrytitle>automountd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> intercepts the request " +"and attempts to resolve the hostname <systemitem class=\"fqdomainname" +"\">foobar</systemitem>. If successful, " +"<citerefentry><refentrytitle>automountd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> automatically mounts the source export." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53173 +msgid "" +"To enable <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> at boot time, add this line to <filename>/etc/rc." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53178 +msgid "" +"Then <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> can be started by running:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:53180 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service automount start</userinput>\n" +"<prompt>#</prompt> <userinput>service automountd start</userinput>\n" +"<prompt>#</prompt> <userinput>service autounmountd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53184 +msgid "" +"The <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> map format is the same as in other operating " +"systems, it might be desirable to consult information from other operating " +"systems, such as the <link xlink:href=\"http://images.apple.com/business/" +"docs/Autofs.pdf\">Mac OS X document</link>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53189 +msgid "" +"Consult the <citerefentry><refentrytitle>automount</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>automountd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, <citerefentry><refentrytitle>autounmountd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, and " +"<citerefentry><refentrytitle>auto_master</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> manual pages for more information." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:53218 +msgid "Network Information System (<acronym>NIS</acronym>)" +msgstr "網路資訊系統 (<acronym>NIS</acronym>)" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:53221 +msgid "<primary>NIS</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:53223 +msgid "<primary>HP-UX</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:53224 +msgid "<primary>AIX</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:53225 +msgid "<primary>Linux</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:53226 +msgid "<primary>NetBSD</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:53227 +msgid "<primary>OpenBSD</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:53228 +msgid "<primary>yellow pages</primary> <see>NIS</see>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:53233 +msgid "" +"Network Information System (<acronym>NIS</acronym>) is designed to " +"centralize administration of <trademark class=\"registered\">UNIX</" +"trademark>-like systems such as <trademark>Solaris</trademark>, HP-UX, " +"<trademark class=\"registered\">AIX</trademark>, Linux, NetBSD, OpenBSD, and " +"FreeBSD. <acronym>NIS</acronym> was originally known as Yellow Pages but the " +"name was changed due to trademark issues. This is the reason why " +"<acronym>NIS</acronym> commands begin with <literal>yp</literal>." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:53241 +msgid "<primary>NIS</primary> <secondary>domains</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:53246 +msgid "" +"<acronym>NIS</acronym> is a Remote Procedure Call (<acronym>RPC</acronym>)-" +"based client/server system that allows a group of machines within an " +"<acronym>NIS</acronym> domain to share a common set of configuration files. " +"This permits a system administrator to set up <acronym>NIS</acronym> client " +"systems with only minimal configuration data and to add, remove, or modify " +"configuration data from a single location." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:53254 +msgid "FreeBSD uses version 2 of the <acronym>NIS</acronym> protocol." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:53258 +msgid "<acronym>NIS</acronym> Terms and Processes" +msgstr "<acronym>NIS</acronym> 術語與程序" + +#. (itstool) path: sect2/para +#: book.translate.xml:53260 +msgid "" +"Table 28.1 summarizes the terms and important processes used by " +"<acronym>NIS</acronym>:" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:53266 +msgid "<primary><application>portmap</application></primary>" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:53271 +msgid "<acronym>NIS</acronym> Terminology" +msgstr "<acronym>NIS</acronym> 術語" + +#. (itstool) path: row/entry +#: book.translate.xml:53279 book.translate.xml:55174 +msgid "Term" +msgstr "術語" + +#. (itstool) path: row/entry +#: book.translate.xml:53286 +msgid "<acronym>NIS</acronym> domain name" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53288 +msgid "" +"<acronym>NIS</acronym> servers and clients share an <acronym>NIS</acronym> " +"domain name. Typically, this name does not have anything to do with " +"<acronym>DNS</acronym>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53295 +msgid "" +"<citerefentry><refentrytitle>rpcbind</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53297 +msgid "" +"This service enables <acronym>RPC</acronym> and must be running in order to " +"run an <acronym>NIS</acronym> server or act as an <acronym>NIS</acronym> " +"client." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53304 +msgid "" +"<citerefentry><refentrytitle>ypbind</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53305 +msgid "" +"This service binds an <acronym>NIS</acronym> client to its <acronym>NIS</" +"acronym> server. It will take the <acronym>NIS</acronym> domain name and use " +"<acronym>RPC</acronym> to connect to the server. It is the core of client/" +"server communication in an <acronym>NIS</acronym> environment. If this " +"service is not running on a client machine, it will not be able to access " +"the <acronym>NIS</acronym> server." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53317 +msgid "" +"<citerefentry><refentrytitle>ypserv</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53318 +msgid "" +"This is the process for the <acronym>NIS</acronym> server. If this service " +"stops running, the server will no longer be able to respond to <acronym>NIS</" +"acronym> requests so hopefully, there is a slave server to take over. Some " +"non-FreeBSD clients will not try to reconnect using a slave server and the " +"<application>ypbind</application> process may need to be restarted on these " +"clients." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53330 +msgid "" +"<citerefentry><refentrytitle>rpc.yppasswdd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53331 +msgid "" +"This process only runs on <acronym>NIS</acronym> master servers. This daemon " +"allows <acronym>NIS</acronym> clients to change their <acronym>NIS</acronym> " +"passwords. If this daemon is not running, users will have to login to the " +"<acronym>NIS</acronym> master server and change their passwords there." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:53347 +msgid "Machine Types" +msgstr "主機類型" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:53349 +msgid "<primary>NIS</primary> <secondary>master server</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:53352 book.translate.xml:53709 +msgid "<primary>NIS</primary> <secondary>slave server</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:53355 +msgid "<primary>NIS</primary> <secondary>client</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53359 +msgid "" +"There are three types of hosts in an <acronym>NIS</acronym> environment:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:53364 +msgid "<acronym>NIS</acronym> master server" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:53366 +msgid "" +"This server acts as a central repository for host configuration information " +"and maintains the authoritative copy of the files used by all of the " +"<acronym>NIS</acronym> clients. The <filename>passwd</filename>, " +"<filename>group</filename>, and other various files used by <acronym>NIS</" +"acronym> clients are stored on the master server. While it is possible for " +"one machine to be an <acronym>NIS</acronym> master server for more than one " +"<acronym>NIS</acronym> domain, this type of configuration will not be " +"covered in this chapter as it assumes a relatively small-scale <acronym>NIS</" +"acronym> environment." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:53381 +msgid "<acronym>NIS</acronym> slave servers" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:53383 +msgid "" +"<acronym>NIS</acronym> slave servers maintain copies of the <acronym>NIS</" +"acronym> master's data files in order to provide redundancy. Slave servers " +"also help to balance the load of the master server as <acronym>NIS</acronym> " +"clients always attach to the <acronym>NIS</acronym> server which responds " +"first." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:53393 +msgid "<acronym>NIS</acronym> clients" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:53395 +msgid "" +"<acronym>NIS</acronym> clients authenticate against the <acronym>NIS</" +"acronym> server during log on." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53401 +msgid "" +"Information in many files can be shared using <acronym>NIS</acronym>. The " +"<filename>master.passwd</filename>, <filename>group</filename>, and " +"<filename>hosts</filename> files are commonly shared via <acronym>NIS</" +"acronym>. Whenever a process on a client needs information that would " +"normally be found in these files locally, it makes a query to the " +"<acronym>NIS</acronym> server that it is bound to instead." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:53413 +msgid "Planning Considerations" +msgstr "規劃注意事項" + +#. (itstool) path: sect2/para +#: book.translate.xml:53415 +msgid "" +"This section describes a sample <acronym>NIS</acronym> environment which " +"consists of 15 FreeBSD machines with no centralized point of administration. " +"Each machine has its own <filename>/etc/passwd</filename> and <filename>/etc/" +"master.passwd</filename>. These files are kept in sync with each other only " +"through manual intervention. Currently, when a user is added to the lab, the " +"process must be repeated on all 15 machines." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53424 +msgid "The configuration of the lab will be as follows:" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53430 +msgid "Machine name" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53432 +msgid "Machine role" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53438 +msgid "<systemitem>ellington</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53439 +msgid "<systemitem class=\"ipaddress\">10.0.0.2</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53440 +msgid "<acronym>NIS</acronym> master" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53444 +msgid "<systemitem>coltrane</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53445 +msgid "<systemitem class=\"ipaddress\">10.0.0.3</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53446 +msgid "<acronym>NIS</acronym> slave" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53450 +msgid "<systemitem>basie</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53451 +msgid "<systemitem class=\"ipaddress\">10.0.0.4</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53452 +msgid "Faculty workstation" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53456 +msgid "<systemitem>bird</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53457 +msgid "<systemitem class=\"ipaddress\">10.0.0.5</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53458 +msgid "Client machine" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53462 +msgid "<systemitem>cli[1-11]</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53463 +msgid "<systemitem class=\"ipaddress\">10.0.0.[6-17]</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:53465 +msgid "Other client machines" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53471 +msgid "" +"If this is the first time an <acronym>NIS</acronym> scheme is being " +"developed, it should be thoroughly planned ahead of time. Regardless of " +"network size, several decisions need to be made as part of the planning " +"process." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:53477 +msgid "Choosing a <acronym>NIS</acronym> Domain Name" +msgstr "選擇 <acronym>NIS</acronym> 網域名稱" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:53479 +msgid "<primary>NIS</primary> <secondary>domain name</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:53483 +msgid "" +"When a client broadcasts its requests for info, it includes the name of the " +"<acronym>NIS</acronym> domain that it is part of. This is how multiple " +"servers on one network can tell which server should answer which request. " +"Think of the <acronym>NIS</acronym> domain name as the name for a group of " +"hosts." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:53490 +msgid "" +"Some organizations choose to use their Internet domain name for their " +"<acronym>NIS</acronym> domain name. This is not recommended as it can cause " +"confusion when trying to debug network problems. The <acronym>NIS</acronym> " +"domain name should be unique within the network and it is helpful if it " +"describes the group of machines it represents. For example, the Art " +"department at Acme Inc. might be in the <quote>acme-art</quote> " +"<acronym>NIS</acronym> domain. This example will use the domain name " +"<literal>test-domain</literal>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:53501 +msgid "" +"However, some non-FreeBSD operating systems require the <acronym>NIS</" +"acronym> domain name to be the same as the Internet domain name. If one or " +"more machines on the network have this restriction, the Internet domain name " +"<emphasis>must</emphasis> be used as the <acronym>NIS</acronym> domain name." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:53510 +msgid "Physical Server Requirements" +msgstr "實體伺服器需求" + +#. (itstool) path: sect3/para +#: book.translate.xml:53512 +msgid "" +"There are several things to keep in mind when choosing a machine to use as a " +"<acronym>NIS</acronym> server. Since <acronym>NIS</acronym> clients depend " +"upon the availability of the server, choose a machine that is not rebooted " +"frequently. The <acronym>NIS</acronym> server should ideally be a stand " +"alone machine whose sole purpose is to be an <acronym>NIS</acronym> server. " +"If the network is not heavily used, it is acceptable to put the " +"<acronym>NIS</acronym> server on a machine running other services. However, " +"if the <acronym>NIS</acronym> server becomes unavailable, it will adversely " +"affect all <acronym>NIS</acronym> clients." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:53528 +msgid "Configuring the <acronym>NIS</acronym> Master Server" +msgstr "設定 <acronym>NIS</acronym> Master 伺服器" + +#. (itstool) path: sect2/para +#: book.translate.xml:53531 +msgid "" +"The canonical copies of all <acronym>NIS</acronym> files are stored on the " +"master server. The databases used to store the information are called " +"<acronym>NIS</acronym> maps. In FreeBSD, these maps are stored in <filename>/" +"var/yp/[domainname]</filename> where <filename>[domainname]</filename> is " +"the name of the <acronym>NIS</acronym> domain. Since multiple domains are " +"supported, it is possible to have several directories, one for each domain. " +"Each domain will have its own independent set of maps." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53542 +msgid "" +"<acronym>NIS</acronym> master and slave servers handle all <acronym>NIS</" +"acronym> requests through <citerefentry><refentrytitle>ypserv</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. This daemon is " +"responsible for receiving incoming requests from <acronym>NIS</acronym> " +"clients, translating the requested domain and map name to a path to the " +"corresponding database file, and transmitting data from the database back to " +"the client." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:53550 +msgid "<primary>NIS</primary> <secondary>server configuration</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53553 +msgid "" +"Setting up a master <acronym>NIS</acronym> server can be relatively straight " +"forward, depending on environmental needs. Since FreeBSD provides built-in " +"<acronym>NIS</acronym> support, it only needs to be enabled by adding the " +"following lines to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:53559 +#, no-wrap +msgid "" +"nisdomainname=\"test-domain\"\t<co xml:id=\"network-nis-co-domainname\"/>\n" +"nis_server_enable=\"YES\"\t\t<co xml:id=\"network-nis-co-server\"/>\n" +"nis_yppasswdd_enable=\"YES\"\t<co xml:id=\"network-nis-co-yppasswdd\"/>" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:53565 +msgid "" +"This line sets the <acronym>NIS</acronym> domain name to <literal>test-" +"domain</literal>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:53570 +msgid "" +"This automates the start up of the <acronym>NIS</acronym> server processes " +"when the system boots." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:53576 +msgid "" +"This enables the <citerefentry><refentrytitle>rpc.yppasswdd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> daemon so that users " +"can change their <acronym>NIS</acronym> password from a client machine." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53582 +msgid "" +"Care must be taken in a multi-server domain where the server machines are " +"also <acronym>NIS</acronym> clients. It is generally a good idea to force " +"the servers to bind to themselves rather than allowing them to broadcast " +"bind requests and possibly become bound to each other. Strange failure modes " +"can result if one server goes down and others are dependent upon it. " +"Eventually, all the clients will time out and attempt to bind to other " +"servers, but the delay involved can be considerable and the failure mode is " +"still present since the servers might bind to each other all over again." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53594 +msgid "" +"A server that is also a client can be forced to bind to a particular server " +"by adding these additional lines to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:53598 +#, no-wrap +msgid "" +"nis_client_enable=\"YES\" # run client stuff as well\n" +"nis_client_flags=\"-S <replaceable>NIS domain</replaceable>,<replaceable>server</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53601 +msgid "" +"After saving the edits, type <command>/etc/netstart</command> to restart the " +"network and apply the values defined in <filename>/etc/rc.conf</filename>. " +"Before initializing the <acronym>NIS</acronym> maps, start " +"<citerefentry><refentrytitle>ypserv</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:53607 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service ypserv start</userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:53610 +msgid "Initializing the <acronym>NIS</acronym> Maps" +msgstr "初始化 <acronym>NIS</acronym> 對應表" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:53612 +msgid "<primary>NIS</primary> <secondary>maps</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:53616 +msgid "" +"<acronym>NIS</acronym> maps are generated from the configuration files in " +"<filename>/etc</filename> on the <acronym>NIS</acronym> master, with one " +"exception: <filename>/etc/master.passwd</filename>. This is to prevent the " +"propagation of passwords to all the servers in the <acronym>NIS</acronym> " +"domain. Therefore, before the <acronym>NIS</acronym> maps are initialized, " +"configure the primary password files:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:53625 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cp /etc/master.passwd /var/yp/master.passwd</userinput>\n" +"<prompt>#</prompt> <userinput>cd /var/yp</userinput>\n" +"<prompt>#</prompt> <userinput>vi master.passwd</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:53629 +msgid "" +"It is advisable to remove all entries for system accounts as well as any " +"user accounts that do not need to be propagated to the <acronym>NIS</" +"acronym> clients, such as the <systemitem class=\"username\">root</" +"systemitem> and any other administrative accounts." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:53636 +msgid "" +"Ensure that the <filename>/var/yp/master.passwd</filename> is neither group " +"or world readable by setting its permissions to <literal>600</literal>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:53642 +msgid "" +"After completing this task, initialize the <acronym>NIS</acronym> maps. " +"FreeBSD includes the <citerefentry><refentrytitle>ypinit</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> script to do this. " +"When generating maps for the master server, include <option>-m</option> and " +"specify the <acronym>NIS</acronym> domain name:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:53648 +#, no-wrap +msgid "" +"ellington<prompt>#</prompt> <userinput>ypinit -m test-domain</userinput>\n" +"Server Type: MASTER Domain: test-domain\n" +"Creating an YP server will require that you answer a few questions.\n" +"Questions will all be asked at the beginning of the procedure.\n" +"Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput>\n" +"Ok, please remember to go back and redo manually whatever fails.\n" +"If not, something might not work.\n" +"At this point, we have to construct a list of this domains YP servers.\n" +"rod.darktech.org is already known as master server.\n" +"Please continue to add any slave servers, one per line. When you are\n" +"done with the list, type a <control D>.\n" +"master server : ellington\n" +"next host to add: <userinput>coltrane</userinput>\n" +"next host to add: <userinput>^D</userinput>\n" +"The current list of NIS servers looks like this:\n" +"ellington\n" +"coltrane\n" +"Is this correct? [y/n: y] <userinput>y</userinput>\n" +"\n" +"[..output from map generation..]\n" +"\n" +"NIS Map update completed.\n" +"ellington has been setup as an YP master server without any errors." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:53672 +msgid "" +"This will create <filename>/var/yp/Makefile</filename> from <filename>/var/" +"yp/Makefile.dist</filename>. By default, this file assumes that the " +"environment has a single <acronym>NIS</acronym> server with only FreeBSD " +"clients. Since <literal>test-domain</literal> has a slave server, edit this " +"line in <filename>/var/yp/Makefile</filename> so that it begins with a " +"comment (<literal>#</literal>):" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:53681 +#, no-wrap +msgid "NOPUSH = \"True\"" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:53685 +msgid "Adding New Users" +msgstr "新增使用者" + +#. (itstool) path: sect3/para +#: book.translate.xml:53687 +msgid "" +"Every time a new user is created, the user account must be added to the " +"master <acronym>NIS</acronym> server and the <acronym>NIS</acronym> maps " +"rebuilt. Until this occurs, the new user will not be able to login anywhere " +"except on the <acronym>NIS</acronym> master. For example, to add the new " +"user <systemitem class=\"username\">jsmith</systemitem> to the <literal>test-" +"domain</literal> domain, run these commands on the master server:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:53696 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>pw useradd jsmith</userinput>\n" +"<prompt>#</prompt> <userinput>cd /var/yp</userinput>\n" +"<prompt>#</prompt> <userinput>make test-domain</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:53700 +msgid "" +"The user could also be added using <command>adduser jsmith</command> instead " +"of <command>pw useradd smith</command>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:53707 +msgid "Setting up a <acronym>NIS</acronym> Slave Server" +msgstr "設定 <acronym>NIS</acronym> Slave 伺服器" + +#. (itstool) path: sect2/para +#: book.translate.xml:53713 +msgid "" +"To set up an <acronym>NIS</acronym> slave server, log on to the slave server " +"and edit <filename>/etc/rc.conf</filename> as for the master server. Do not " +"generate any <acronym>NIS</acronym> maps, as these already exist on the " +"master server. When running <command>ypinit</command> on the slave server, " +"use <option>-s</option> (for slave) instead of <option>-m</option> (for " +"master). This option requires the name of the <acronym>NIS</acronym> master " +"in addition to the domain name, as seen in this example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:53723 +#, no-wrap +msgid "" +"coltrane<prompt>#</prompt> <userinput>ypinit -s ellington test-domain</userinput>\n" +"\n" +"Server Type: SLAVE Domain: test-domain Master: ellington\n" +"\n" +"Creating an YP server will require that you answer a few questions.\n" +"Questions will all be asked at the beginning of the procedure.\n" +"\n" +"Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput>\n" +"\n" +"Ok, please remember to go back and redo manually whatever fails.\n" +"If not, something might not work.\n" +"There will be no further questions. The remainder of the procedure\n" +"should take a few minutes, to copy the databases from ellington.\n" +"Transferring netgroup...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring netgroup.byuser...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring netgroup.byhost...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring master.passwd.byuid...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring passwd.byuid...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring passwd.byname...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring group.bygid...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring group.byname...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring services.byname...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring rpc.bynumber...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring rpc.byname...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring protocols.byname...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring master.passwd.byname...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring networks.byname...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring networks.byaddr...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring netid.byname...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring hosts.byaddr...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring protocols.bynumber...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring ypservers...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"Transferring hosts.byname...\n" +"ypxfr: Exiting: Map successfully transferred\n" +"\n" +"coltrane has been setup as an YP slave server without any errors.\n" +"Remember to update map ypservers on ellington." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53780 +msgid "" +"This will generate a directory on the slave server called <filename>/var/yp/" +"test-domain</filename> which contains copies of the <acronym>NIS</acronym> " +"master server's maps. Adding these <filename>/etc/crontab</filename> entries " +"on each slave server will force the slaves to sync their maps with the maps " +"on the master server:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:53787 +#, no-wrap +msgid "" +"20 * * * * root /usr/libexec/ypxfr passwd.byname\n" +"21 * * * * root /usr/libexec/ypxfr passwd.byuid" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53790 +msgid "" +"These entries are not mandatory because the master server automatically " +"attempts to push any map changes to its slaves. However, since clients may " +"depend upon the slave server to provide correct password information, it is " +"recommended to force frequent password map updates. This is especially " +"important on busy networks where map updates might not always complete." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53798 +msgid "" +"To finish the configuration, run <command>/etc/netstart</command> on the " +"slave server in order to start the <acronym>NIS</acronym> services." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:53804 +msgid "Setting Up an <acronym>NIS</acronym> Client" +msgstr "設定 <acronym>NIS</acronym> 客戶端" + +#. (itstool) path: sect2/para +#: book.translate.xml:53806 +msgid "" +"An <acronym>NIS</acronym> client binds to an <acronym>NIS</acronym> server " +"using <citerefentry><refentrytitle>ypbind</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. This daemon broadcasts RPC requests on the local " +"network. These requests specify the domain name configured on the client. If " +"an <acronym>NIS</acronym> server in the same domain receives one of the " +"broadcasts, it will respond to <application>ypbind</application>, which will " +"record the server's address. If there are several servers available, the " +"client will use the address of the first server to respond and will direct " +"all of its <acronym>NIS</acronym> requests to that server. The client will " +"automatically <application>ping</application> the server on a regular basis " +"to make sure it is still available. If it fails to receive a reply within a " +"reasonable amount of time, <application>ypbind</application> will mark the " +"domain as unbound and begin broadcasting again in the hopes of locating " +"another server." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:53824 +msgid "<primary>NIS</primary> <secondary>client configuration</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53828 +msgid "To configure a FreeBSD machine to be an <acronym>NIS</acronym> client:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:53833 +msgid "" +"Edit <filename>/etc/rc.conf</filename> and add the following lines in order " +"to set the <acronym>NIS</acronym> domain name and start " +"<citerefentry><refentrytitle>ypbind</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> during network startup:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:53838 +#, no-wrap +msgid "" +"nisdomainname=\"test-domain\"\n" +"nis_client_enable=\"YES\"" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:53843 +msgid "" +"To import all possible password entries from the <acronym>NIS</acronym> " +"server, use <command>vipw</command> to remove all user accounts except one " +"from <filename>/etc/master.passwd</filename>. When removing the accounts, " +"keep in mind that at least one local account should remain and this account " +"should be a member of <systemitem class=\"groupname\">wheel</systemitem>. If " +"there is a problem with <acronym>NIS</acronym>, this local account can be " +"used to log in remotely, become the superuser, and fix the problem. Before " +"saving the edits, add the following line to the end of the file:" +msgstr "" + +#. (itstool) path: step/programlisting +#. (itstool) path: sect2/programlisting +#: book.translate.xml:53855 book.translate.xml:54228 +#, no-wrap +msgid "+:::::::::" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:53857 +msgid "" +"This line configures the client to provide anyone with a valid account in " +"the <acronym>NIS</acronym> server's password maps an account on the client. " +"There are many ways to configure the <acronym>NIS</acronym> client by " +"modifying this line. One method is described in <xref linkend=\"network-" +"netgroups\"/>. For more detailed reading, refer to the book " +"<literal>Managing NFS and NIS</literal>, published by O'Reilly Media." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:53868 +msgid "" +"To import all possible group entries from the <acronym>NIS</acronym> server, " +"add this line to <filename>/etc/group</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:53872 +#, no-wrap +msgid "+:*::" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53876 +msgid "" +"To start the <acronym>NIS</acronym> client immediately, execute the " +"following commands as the superuser:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:53879 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>/etc/netstart</userinput>\n" +"<prompt>#</prompt> <userinput>service ypbind start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53882 +msgid "" +"After completing these steps, running <command>ypcat passwd</command> on the " +"client should show the server's <filename>passwd</filename> map." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:53888 +msgid "<acronym>NIS</acronym> Security" +msgstr "<acronym>NIS</acronym> 安全性" + +#. (itstool) path: sect2/para +#: book.translate.xml:53890 +msgid "" +"Since <acronym>RPC</acronym> is a broadcast-based service, any system " +"running <application>ypbind</application> within the same domain can " +"retrieve the contents of the <acronym>NIS</acronym> maps. To prevent " +"unauthorized transactions, <citerefentry><refentrytitle>ypserv</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> supports a feature " +"called <quote>securenets</quote> which can be used to restrict access to a " +"given set of hosts. By default, this information is stored in <filename>/var/" +"yp/securenets</filename>, unless <citerefentry><refentrytitle>ypserv</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> is started with " +"<option>-p</option> and an alternate path. This file contains entries that " +"consist of a network specification and a network mask separated by white " +"space. Lines starting with <literal>#</literal> are considered to be " +"comments. A sample <filename>securenets</filename> might look like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:53905 +#, no-wrap +msgid "" +"# allow connections from local host -- mandatory\n" +"127.0.0.1 255.255.255.255\n" +"# allow connections from any host\n" +"# on the 192.168.128.0 network\n" +"192.168.128.0 255.255.255.0\n" +"# allow connections from any host\n" +"# between 10.0.0.0 to 10.0.15.255\n" +"# this includes the machines in the testlab\n" +"10.0.0.0 255.255.240.0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53915 +msgid "" +"If <citerefentry><refentrytitle>ypserv</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> receives a request from an address that matches " +"one of these rules, it will process the request normally. If the address " +"fails to match a rule, the request will be ignored and a warning message " +"will be logged. If the <filename>securenets</filename> does not exist, " +"<command>ypserv</command> will allow connections from any host." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53923 +msgid "" +"<xref linkend=\"tcpwrappers\"/> is an alternate mechanism for providing " +"access control instead of <filename>securenets</filename>. While either " +"access control mechanism adds some security, they are both vulnerable to " +"<quote><acronym>IP</acronym> spoofing</quote> attacks. All <acronym>NIS</" +"acronym>-related traffic should be blocked at the firewall." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53931 +msgid "" +"Servers using <filename>securenets</filename> may fail to serve legitimate " +"<acronym>NIS</acronym> clients with archaic TCP/IP implementations. Some of " +"these implementations set all host bits to zero when doing broadcasts or " +"fail to observe the subnet mask when calculating the broadcast address. " +"While some of these problems can be fixed by changing the client " +"configuration, other problems may force the retirement of these client " +"systems or the abandonment of <filename>securenets</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:53943 +msgid "" +"The use of <application>TCP Wrapper</application> increases the latency of " +"the <acronym>NIS</acronym> server. The additional delay may be long enough " +"to cause timeouts in client programs, especially in busy networks with slow " +"<acronym>NIS</acronym> servers. If one or more clients suffer from latency, " +"convert those clients into <acronym>NIS</acronym> slave servers and force " +"them to bind to themselves." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:53953 +msgid "Barring Some Users" +msgstr "阻擋部份使用者" + +#. (itstool) path: sect3/para +#: book.translate.xml:53955 +msgid "" +"In this example, the <systemitem>basie</systemitem> system is a faculty " +"workstation within the <acronym>NIS</acronym> domain. The <filename>passwd</" +"filename> map on the master <acronym>NIS</acronym> server contains accounts " +"for both faculty and students. This section demonstrates how to allow " +"faculty logins on this system while refusing student logins." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:53964 +msgid "" +"To prevent specified users from logging on to a system, even if they are " +"present in the <acronym>NIS</acronym> database, use <command>vipw</command> " +"to add <literal>-<replaceable>username</replaceable></literal> with the " +"correct number of colons towards the end of <filename>/etc/master.passwd</" +"filename> on the client, where <replaceable>username</replaceable> is the " +"username of a user to bar from logging in. The line with the blocked user " +"must be before the <literal>+</literal> line that allows <acronym>NIS</" +"acronym> users. In this example, <systemitem class=\"username\">bill</" +"systemitem> is barred from logging on to <systemitem>basie</systemitem>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:53977 +#, no-wrap +msgid "" +"basie<prompt>#</prompt> <userinput>cat /etc/master.passwd</userinput>\n" +"root:[password]:0:0::0:0:The super-user:/root:/bin/csh\n" +"toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh\n" +"daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin\n" +"operator:*:2:5::0:0:System &:/:/sbin/nologin\n" +"bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin\n" +"tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin\n" +"kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin\n" +"games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin\n" +"news:*:8:8::0:0:News Subsystem:/:/sbin/nologin\n" +"man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin\n" +"bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin\n" +"uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico\n" +"xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin\n" +"pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin\n" +"nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin\n" +"-bill:::::::::\n" +"+:::::::::\n" +"\n" +"basie<prompt>#</prompt>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:54013 +msgid "Using Netgroups" +msgstr "使用 Netgroups" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:54015 book.translate.xml:54181 +msgid "<primary>netgroups</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54017 +msgid "" +"Barring specified users from logging on to individual systems becomes " +"unscaleable on larger networks and quickly loses the main benefit of " +"<acronym>NIS</acronym>: <emphasis>centralized</emphasis> administration." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54022 +msgid "" +"Netgroups were developed to handle large, complex networks with hundreds of " +"users and machines. Their use is comparable to <trademark class=\"registered" +"\">UNIX</trademark> groups, where the main difference is the lack of a " +"numeric ID and the ability to define a netgroup by including both user " +"accounts and other netgroups." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54028 +msgid "" +"To expand on the example used in this chapter, the <acronym>NIS</acronym> " +"domain will be extended to add the users and systems shown in Tables 28.2 " +"and 28.3:" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:54033 +msgid "Additional Users" +msgstr "其他使用者" + +#. (itstool) path: row/entry +#: book.translate.xml:54038 +msgid "User Name(s)" +msgstr "使用者名稱" + +#. (itstool) path: row/entry +#: book.translate.xml:54045 +msgid "" +"<systemitem class=\"username\">alpha</systemitem>, <systemitem class=" +"\"username\">beta</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54047 +msgid "IT department employees" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54051 +msgid "" +"<systemitem class=\"username\">charlie</systemitem>, <systemitem class=" +"\"username\">delta</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54052 +msgid "IT department apprentices" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54056 +msgid "" +"<systemitem class=\"username\">echo</systemitem>, <systemitem class=" +"\"username\">foxtrott</systemitem>, <systemitem class=\"username\">golf</" +"systemitem>, ..." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54060 +msgid "employees" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54064 +msgid "" +"<systemitem class=\"username\">able</systemitem>, <systemitem class=" +"\"username\">baker</systemitem>, ..." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54067 +msgid "interns" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:54074 +msgid "Additional Systems" +msgstr "其他系統" + +#. (itstool) path: row/entry +#: book.translate.xml:54079 +msgid "Machine Name(s)" +msgstr "機器名稱" + +#. (itstool) path: row/entry +#: book.translate.xml:54088 +msgid "" +"<systemitem>war</systemitem>, <systemitem>death</systemitem>, " +"<systemitem>famine</systemitem>, <systemitem>pollution</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54092 +msgid "Only IT employees are allowed to log onto these servers." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54098 +msgid "" +"<systemitem>pride</systemitem>, <systemitem>greed</systemitem>, " +"<systemitem>envy</systemitem>, <systemitem>wrath</systemitem>, " +"<systemitem>lust</systemitem>, <systemitem>sloth</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54104 +msgid "" +"All members of the IT department are allowed to login onto these servers." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54109 +msgid "" +"<systemitem>one</systemitem>, <systemitem>two</systemitem>, " +"<systemitem>three</systemitem>, <systemitem>four</systemitem>, ..." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54114 +msgid "Ordinary workstations used by employees." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54119 +msgid "<systemitem>trashcan</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:54120 +msgid "" +"A very old machine without any critical data. Even interns are allowed to " +"use this system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54127 +msgid "" +"When using netgroups to configure this scenario, each user is assigned to " +"one or more netgroups and logins are then allowed or forbidden for all " +"members of the netgroup. When adding a new machine, login restrictions must " +"be defined for all netgroups. When a new user is added, the account must be " +"added to one or more netgroups. If the <acronym>NIS</acronym> setup is " +"planned carefully, only one central configuration file needs modification to " +"grant or deny access to machines." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54137 +msgid "" +"The first step is the initialization of the <acronym>NIS</acronym> " +"<literal>netgroup</literal> map. In FreeBSD, this map is not created by " +"default. On the <acronym>NIS</acronym> master server, use an editor to " +"create a map named <filename>/var/yp/netgroup</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54143 +msgid "" +"This example creates four netgroups to represent IT employees, IT " +"apprentices, employees, and interns:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54146 +#, no-wrap +msgid "" +"IT_EMP (,alpha,test-domain) (,beta,test-domain)\n" +"IT_APP (,charlie,test-domain) (,delta,test-domain)\n" +"USERS (,echo,test-domain) (,foxtrott,test-domain) \\\n" +" (,golf,test-domain)\n" +"INTERNS (,able,test-domain) (,baker,test-domain)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54152 +msgid "" +"Each entry configures a netgroup. The first column in an entry is the name " +"of the netgroup. Each set of brackets represents either a group of one or " +"more users or the name of another netgroup. When specifying a user, the " +"three comma-delimited fields inside each group represent:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54160 +msgid "" +"The name of the host(s) where the other fields representing the user are " +"valid. If a hostname is not specified, the entry is valid on all hosts." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54166 +msgid "The name of the account that belongs to this netgroup." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54171 +msgid "" +"The <acronym>NIS</acronym> domain for the account. Accounts may be imported " +"from other <acronym>NIS</acronym> domains into a netgroup." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54177 +msgid "" +"If a group contains multiple users, separate each user with whitespace. " +"Additionally, each field may contain wildcards. See " +"<citerefentry><refentrytitle>netgroup</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for details." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54182 +msgid "" +"Netgroup names longer than 8 characters should not be used. The names are " +"case sensitive and using capital letters for netgroup names is an easy way " +"to distinguish between user, machine and netgroup names." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54187 +msgid "" +"Some non-FreeBSD <acronym>NIS</acronym> clients cannot handle netgroups " +"containing more than 15 entries. This limit may be circumvented by creating " +"several sub-netgroups with 15 users or fewer and a real netgroup consisting " +"of the sub-netgroups, as seen in this example:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54193 +#, no-wrap +msgid "" +"BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]\n" +"BIGGRP2 (,joe16,domain) (,joe17,domain) [...]\n" +"BIGGRP3 (,joe31,domain) (,joe32,domain)\n" +"BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54198 +msgid "" +"Repeat this process if more than 225 (15 times 15) users exist within a " +"single netgroup." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54201 +msgid "To activate and distribute the new <acronym>NIS</acronym> map:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54204 +#, no-wrap +msgid "" +"ellington<prompt>#</prompt> <userinput>cd /var/yp</userinput>\n" +"ellington<prompt>#</prompt> <userinput>make</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54207 +msgid "" +"This will generate the three <acronym>NIS</acronym> maps <filename>netgroup</" +"filename>, <filename>netgroup.byhost</filename> and <filename>netgroup." +"byuser</filename>. Use the map key option of " +"<citerefentry><refentrytitle>ypcat</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> to check if the new <acronym>NIS</acronym> maps are available:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54214 +#, no-wrap +msgid "" +"ellington<prompt>%</prompt> <userinput>ypcat -k netgroup</userinput>\n" +"ellington<prompt>%</prompt> <userinput>ypcat -k netgroup.byhost</userinput>\n" +"ellington<prompt>%</prompt> <userinput>ypcat -k netgroup.byuser</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54218 +msgid "" +"The output of the first command should resemble the contents of <filename>/" +"var/yp/netgroup</filename>. The second command only produces output if host-" +"specific netgroups were created. The third command is used to get the list " +"of netgroups for a user." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54224 +msgid "" +"To configure a client, use <citerefentry><refentrytitle>vipw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to specify the name of " +"the netgroup. For example, on the server named <systemitem>war</systemitem>, " +"replace this line:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54230 +msgid "with" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54232 +#, no-wrap +msgid "+@IT_EMP:::::::::" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54234 +msgid "" +"This specifies that only the users defined in the netgroup <literal>IT_EMP</" +"literal> will be imported into this system's password database and only " +"those users are allowed to login to this system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54239 +msgid "" +"This configuration also applies to the <literal>~</literal> function of the " +"shell and all routines which convert between user names and numerical user " +"IDs. In other words, <command>cd ~<replaceable>user</replaceable></command> " +"will not work, <command>ls -l</command> will show the numerical ID instead " +"of the username, and <command>find . -user joe -print</command> will fail " +"with the message <errorname>No such user</errorname>. To fix this, import " +"all user entries without allowing them to login into the servers. This can " +"be achieved by adding an extra line:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54251 +#, no-wrap +msgid "+:::::::::/sbin/nologin" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54253 +msgid "" +"This line configures the client to import all entries but to replace the " +"shell in those entries with <filename>/sbin/nologin</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54258 +msgid "" +"Make sure that extra line is placed <emphasis>after</emphasis> <literal>" +"+@IT_EMP:::::::::</literal>. Otherwise, all user accounts imported from " +"<acronym>NIS</acronym> will have <filename>/sbin/nologin</filename> as their " +"login shell and no one will be able to login to the system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54265 +msgid "" +"To configure the less important servers, replace the old <literal>+:::::::::" +"</literal> on the servers with these lines:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54269 +#, no-wrap +msgid "" +"+@IT_EMP:::::::::\n" +"+@IT_APP:::::::::\n" +"+:::::::::/sbin/nologin" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54273 +msgid "The corresponding lines for the workstations would be:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54276 +#, no-wrap +msgid "" +"+@IT_EMP:::::::::\n" +"+@USERS:::::::::\n" +"+:::::::::/sbin/nologin" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54280 +msgid "" +"NIS supports the creation of netgroups from other netgroups which can be " +"useful if the policy regarding user access changes. One possibility is the " +"creation of role-based netgroups. For example, one might create a netgroup " +"called <literal>BIGSRV</literal> to define the login restrictions for the " +"important servers, another netgroup called <literal>SMALLSRV</literal> for " +"the less important servers, and a third netgroup called <literal>USERBOX</" +"literal> for the workstations. Each of these netgroups contains the " +"netgroups that are allowed to login onto these machines. The new entries for " +"the <acronym>NIS</acronym> <literal>netgroup</literal> map would look like " +"this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54293 +#, no-wrap +msgid "" +"BIGSRV IT_EMP IT_APP\n" +"SMALLSRV IT_EMP IT_APP ITINTERN\n" +"USERBOX IT_EMP ITINTERN USERS" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54297 +msgid "" +"This method of defining login restrictions works reasonably well when it is " +"possible to define groups of machines with identical restrictions. " +"Unfortunately, this is the exception and not the rule. Most of the time, the " +"ability to define login restrictions on a per-machine basis is required." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54304 +msgid "" +"Machine-specific netgroup definitions are another possibility to deal with " +"the policy changes. In this scenario, the <filename>/etc/master.passwd</" +"filename> of each system contains two lines starting with <quote>+</quote>. " +"The first line adds a netgroup with the accounts allowed to login onto this " +"machine and the second line adds all other accounts with <filename>/sbin/" +"nologin</filename> as shell. It is recommended to use the <quote>ALL-CAPS</" +"quote> version of the hostname as the name of the netgroup:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54314 +#, no-wrap +msgid "" +"+@<replaceable>BOXNAME</replaceable>:::::::::\n" +"+:::::::::/sbin/nologin" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54317 +msgid "" +"Once this task is completed on all the machines, there is no longer a need " +"to modify the local versions of <filename>/etc/master.passwd</filename> ever " +"again. All further changes can be handled by modifying the <acronym>NIS</" +"acronym> map. Here is an example of a possible <literal>netgroup</literal> " +"map for this scenario:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54324 +#, no-wrap +msgid "" +"# Define groups of users first\n" +"IT_EMP (,alpha,test-domain) (,beta,test-domain)\n" +"IT_APP (,charlie,test-domain) (,delta,test-domain)\n" +"DEPT1 (,echo,test-domain) (,foxtrott,test-domain)\n" +"DEPT2 (,golf,test-domain) (,hotel,test-domain)\n" +"DEPT3 (,india,test-domain) (,juliet,test-domain)\n" +"ITINTERN (,kilo,test-domain) (,lima,test-domain)\n" +"D_INTERNS (,able,test-domain) (,baker,test-domain)\n" +"#\n" +"# Now, define some groups based on roles\n" +"USERS DEPT1 DEPT2 DEPT3\n" +"BIGSRV IT_EMP IT_APP\n" +"SMALLSRV IT_EMP IT_APP ITINTERN\n" +"USERBOX IT_EMP ITINTERN USERS\n" +"#\n" +"# And a groups for a special tasks\n" +"# Allow echo and golf to access our anti-virus-machine\n" +"SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)\n" +"#\n" +"# machine-based netgroups\n" +"# Our main servers\n" +"WAR BIGSRV\n" +"FAMINE BIGSRV\n" +"# User india needs access to this server\n" +"POLLUTION BIGSRV (,india,test-domain)\n" +"#\n" +"# This one is really important and needs more access restrictions\n" +"DEATH IT_EMP\n" +"#\n" +"# The anti-virus-machine mentioned above\n" +"ONE SECURITY\n" +"#\n" +"# Restrict a machine to a single user\n" +"TWO (,hotel,test-domain)\n" +"# [...more groups to follow]" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54360 +msgid "" +"It may not always be advisable to use machine-based netgroups. When " +"deploying a couple of dozen or hundreds of systems, role-based netgroups " +"instead of machine-based netgroups may be used to keep the size of the " +"<acronym>NIS</acronym> map within reasonable limits." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:54369 +msgid "Password Formats" +msgstr "密碼格式" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:54371 +msgid "<primary>NIS</primary> <secondary>password formats</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54375 +msgid "" +"<acronym>NIS</acronym> requires that all hosts within an <acronym>NIS</" +"acronym> domain use the same format for encrypting passwords. If users have " +"trouble authenticating on an <acronym>NIS</acronym> client, it may be due to " +"a differing password format. In a heterogeneous network, the format must be " +"supported by all operating systems, where <acronym>DES</acronym> is the " +"lowest common standard." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54383 +msgid "" +"To check which format a server or client is using, look at this section of " +"<filename>/etc/login.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54387 +#, no-wrap +msgid "" +"default:\\\n" +"\t:passwd_format=des:\\\n" +"\t:copyright=/etc/COPYRIGHT:\\\n" +"\t[Further entries elided]" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54392 +msgid "" +"In this example, the system is using the <acronym>DES</acronym> format. " +"Other possible values are <literal>blf</literal> for Blowfish and " +"<literal>md5</literal> for MD5 encrypted passwords." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54397 +msgid "" +"If the format on a host needs to be edited to match the one being used in " +"the <acronym>NIS</acronym> domain, the login capability database must be " +"rebuilt after saving the change:" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:54405 +msgid "" +"The format of passwords for existing user accounts will not be updated until " +"each user changes their password <emphasis>after</emphasis> the login " +"capability database is rebuilt." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:54415 +msgid "Lightweight Directory Access Protocol (<acronym>LDAP</acronym>)" +msgstr "輕量級目錄存取協定 (<acronym>LDAP</acronym>)" + +#. (itstool) path: sect1/indexterm +#. (itstool) path: listitem/indexterm +#: book.translate.xml:54429 book.translate.xml:57313 +msgid "<primary>LDAP</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:54431 +msgid "" +"The Lightweight Directory Access Protocol (<acronym>LDAP</acronym>) is an " +"application layer protocol used to access, modify, and authenticate objects " +"using a distributed directory information service. Think of it as a phone or " +"record book which stores several levels of hierarchical, homogeneous " +"information. It is used in Active Directory and <application>OpenLDAP</" +"application> networks and allows users to access to several levels of " +"internal information utilizing a single account. For example, email " +"authentication, pulling employee contact information, and internal website " +"authentication might all make use of a single user account in the " +"<acronym>LDAP</acronym> server's record base." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:54444 +msgid "" +"This section provides a quick start guide for configuring an <acronym>LDAP</" +"acronym> server on a FreeBSD system. It assumes that the administrator " +"already has a design plan which includes the type of information to store, " +"what that information will be used for, which users should have access to " +"that information, and how to secure this information from unauthorized " +"access." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:54453 +msgid "<acronym>LDAP</acronym> Terminology and Structure" +msgstr "<acronym>LDAP</acronym> 術語與結構" + +#. (itstool) path: sect2/para +#: book.translate.xml:54455 +msgid "" +"<acronym>LDAP</acronym> uses several terms which should be understood before " +"starting the configuration. All directory entries consist of a group of " +"<firstterm>attributes</firstterm>. Each of these attribute sets contains a " +"unique identifier known as a <firstterm>Distinguished Name</firstterm> " +"(<acronym>DN</acronym>) which is normally built from several other " +"attributes such as the common or <firstterm>Relative Distinguished Name</" +"firstterm> (<acronym>RDN</acronym>). Similar to how directories have " +"absolute and relative paths, consider a <acronym>DN</acronym> as an absolute " +"path and the <acronym>RDN</acronym> as the relative path." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54469 +msgid "" +"An example <acronym>LDAP</acronym> entry looks like the following. This " +"example searches for the entry for the specified user account (<literal>uid</" +"literal>), organizational unit (<literal>ou</literal>), and organization " +"(<literal>o</literal>):" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54475 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ldapsearch -xb \"uid=<replaceable>trhodes</replaceable>,ou=<replaceable>users</replaceable>,o=<replaceable>example.com</replaceable>\"</userinput>\n" +"# extended LDIF\n" +"#\n" +"# LDAPv3\n" +"# base <uid=trhodes,ou=users,o=example.com> with scope subtree\n" +"# filter: (objectclass=*)\n" +"# requesting: ALL\n" +"#\n" +"\n" +"# trhodes, users, example.com\n" +"dn: uid=trhodes,ou=users,o=example.com\n" +"mail: trhodes@example.com\n" +"cn: Tom Rhodes\n" +"uid: trhodes\n" +"telephoneNumber: (123) 456-7890\n" +"\n" +"# search result\n" +"search: 2\n" +"result: 0 Success\n" +"\n" +"# numResponses: 2\n" +"# numEntries: 1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54498 +msgid "" +"This example entry shows the values for the <literal>dn</literal>, " +"<literal>mail</literal>, <literal>cn</literal>, <literal>uid</literal>, and " +"<literal>telephoneNumber</literal> attributes. The <acronym>cn</acronym> " +"attribute is the <acronym>RDN</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54505 +msgid "" +"More information about <acronym>LDAP</acronym> and its terminology can be " +"found at <uri xlink:href=\"http://www.openldap.org/doc/admin24/intro.html" +"\">http://www.openldap.org/doc/admin24/intro.html</uri>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:54510 +msgid "Configuring an <acronym>LDAP</acronym> Server" +msgstr "設定 <acronym>LDAP</acronym> 伺服器" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:54512 +msgid "<primary>LDAP Server</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54514 +msgid "" +"FreeBSD does not provide a built-in <acronym>LDAP</acronym> server. Begin " +"the configuration by installing the <package role=\"port\">net/openldap24-" +"server</package> package or port. Since the port has many configurable " +"options, it is recommended that the default options are reviewed to see if " +"the package is sufficient, and to instead compile the port if any options " +"should be changed. In most cases, the defaults are fine. However, if SQL " +"support is needed, this option must be enabled and the port compiled using " +"the instructions in <xref linkend=\"ports-using\"/>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54524 +msgid "" +"Next, create the directories to hold the data and to store the certificates:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54527 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>mkdir /var/db/openldap-data</userinput>\n" +"<prompt>#</prompt> <userinput>mkdir /usr/local/etc/openldap/private</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54530 +msgid "Copy over the database configuration file:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54532 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cp /usr/local/etc/openldap/DB_CONFIG.example /var/db/openldap-data/DB_CONFIG</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54534 +msgid "" +"The next phase is to configure the certificate authority. The following " +"commands must be executed from <filename>/usr/local/etc/openldap/private</" +"filename>. This is important as the file permissions need to be restrictive " +"and users should not have access to these files. To create the certificate " +"authority, start with this command and follow the prompts:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54542 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>openssl req -days <replaceable>365</replaceable> -nodes -new -x509 -keyout ca.key -out ../ca.crt</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54544 +msgid "" +"The entries for the prompts may be generic <emphasis>except</emphasis> for " +"the <literal>Common Name</literal>. This entry must be <emphasis>different</" +"emphasis> than the system hostname. If this will be a self signed " +"certificate, prefix the hostname with <literal>CA</literal> for certificate " +"authority." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54551 +msgid "" +"The next task is to create a certificate signing request and a private key. " +"Input this command and follow the prompts:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54555 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>openssl req -days <replaceable>365</replaceable> -nodes -new -keyout server.key -out server.csr</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54557 +msgid "" +"During the certificate generation process, be sure to correctly set the " +"<literal>Common Name</literal> attribute. Once complete, sign the key:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54561 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>openssl x509 -req -days <replaceable>365</replaceable> -in server.csr -out ../server.crt -CA ../ca.crt -CAkey ca.key -CAcreateserial</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54563 +msgid "" +"The final part of the certificate generation process is to generate and sign " +"the client certificates:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54566 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>openssl req -days <replaceable>365</replaceable> -nodes -new -keyout client.key -out client.csr</userinput>\n" +"<prompt>#</prompt> <userinput>openssl x509 -req -days 3650 -in client.csr -out ../client.crt -CA ../ca.crt -CAkey ca.key</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54569 +msgid "" +"Remember to use the same <literal>Common Name</literal> attribute when " +"prompted. When finished, ensure that a total of eight (8) new files have " +"been generated through the proceeding commands. If so, the next step is to " +"edit <filename>/usr/local/etc/openldap/slapd.conf</filename> and add the " +"following options:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54576 +#, no-wrap +msgid "" +"TLSCipherSuite HIGH:MEDIUM:+SSLv3\n" +"TLSCertificateFile /usr/local/etc/openldap/server.crt\n" +"TLSCertificateKeyFile /usr/local/etc/openldap/private/server.key\n" +"TLSCACertificateFile /usr/local/etc/openldap/ca.crt" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54581 +msgid "" +"Then, edit <filename>/usr/local/etc/openldap/ldap.conf</filename> and add " +"the following lines:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54585 +#, no-wrap +msgid "" +"TLS_CACERT /usr/local/etc/openldap/ca.crt\n" +"TLS_CIPHER_SUITE HIGH:MEDIUM:+SSLv3" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54588 +msgid "" +"While editing this file, uncomment the following entries and set them to the " +"desired values: <option>BASE</option>, <option>URI</option>, " +"<option>SIZELIMIT</option> and <option>TIMELIMIT</option>. Set the " +"<option>URI</option> to contain <option>ldap://</option> and <option>ldaps://" +"</option>. Then, add two entries pointing to the certificate authority. When " +"finished, the entries should look similar to the following:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54597 +#, no-wrap +msgid "" +"BASE dc=example,dc=com\n" +"URI ldap:// ldaps://\n" +"\n" +"SIZELIMIT 12\n" +"TIMELIMIT 15\n" +"\n" +"TLS_CACERT /usr/local/etc/openldap/ca.crt\n" +"TLS_CIPHER_SUITE HIGH:MEDIUM:+SSLv3" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54606 +msgid "The default password for the server should then be changed:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54609 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>slappasswd -h \"{SHA}\" >> /usr/local/etc/openldap/slapd.conf</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54611 +msgid "" +"This command will prompt for the password and, if the process does not fail, " +"a password hash will be added to the end of <filename>slapd.conf</filename>. " +"Several hashing formats are supported. Refer to the manual page for " +"<command>slappasswd</command> for more information." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54617 +msgid "" +"Next, edit <filename>/usr/local/etc/openldap/slapd.conf</filename> and add " +"the following lines:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54621 +#, no-wrap +msgid "" +"password-hash {sha}\n" +"allow bind_v2" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54624 +msgid "" +"The <option>suffix</option> in this file must be updated to match the " +"<option>BASE</option> used in <filename>/usr/local/etc/openldap/ldap.conf</" +"filename> and <option>rootdn</option> should also be set. A recommended " +"value for <option>rootdn</option> is something like <option>cn=Manager</" +"option>. Before saving this file, place the <option>rootpw</option> in front " +"of the password output from <command>slappasswd</command> and delete the old " +"<option>rootpw</option>. The end result should look similar to this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54635 +#, no-wrap +msgid "" +"TLSCipherSuite HIGH:MEDIUM:+SSLv3\n" +"TLSCertificateFile /usr/local/etc/openldap/server.crt\n" +"TLSCertificateKeyFile /usr/local/etc/openldap/private/server.key\n" +"TLSCACertificateFile /usr/local/etc/openldap/ca.crt\n" +"rootpw {SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54641 +msgid "" +"Finally, enable the <application>OpenLDAP</application> service in " +"<filename>/etc/rc.conf</filename> and set the <acronym>URI</acronym>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54645 +#, no-wrap +msgid "" +"slapd_enable=\"YES\"\n" +"slapd_flags=\"-4 -h ldaps:///\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54648 +msgid "At this point the server can be started and tested:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54650 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service slapd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54652 +msgid "" +"If everything is configured correctly, a search of the directory should show " +"a successful connection with a single response as in this example:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54656 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ldapsearch -Z</userinput>\n" +"# extended LDIF\n" +"#\n" +"# LDAPv3\n" +"# base <dc=example,dc=com> (default) with scope subtree\n" +"# filter: (objectclass=*)\n" +"# requesting: ALL\n" +"#\n" +"\n" +"# search result\n" +"search: 3\n" +"result: 32 No such object\n" +"\n" +"# numResponses: 1" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:54672 +msgid "" +"If the command fails and the configuration looks correct, stop the " +"<command>slapd</command> service and restart it with debugging options:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:54676 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service slapd stop</userinput>\n" +"<prompt>#</prompt> <userinput>/usr/local/libexec/slapd -d -1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54680 +msgid "" +"Once the service is responding, the directory can be populated using " +"<command>ldapadd</command>. In this example, a file containing this list of " +"users is first created. Each user should use the following format:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54685 +#, no-wrap +msgid "" +"dn: dc=<replaceable>example</replaceable>,dc=<replaceable>com</replaceable>\n" +"objectclass: dcObject\n" +"objectclass: organization\n" +"o: <replaceable>Example</replaceable>\n" +"dc: <replaceable>Example</replaceable>\n" +"\n" +"dn: cn=<replaceable>Manager</replaceable>,dc=<replaceable>example</replaceable>,dc=<replaceable>com</replaceable>\n" +"objectclass: organizationalRole\n" +"cn: <replaceable>Manager</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54695 +msgid "" +"To import this file, specify the file name. The following command will " +"prompt for the password specified earlier and the output should look " +"something like this:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54699 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ldapadd -Z -D \"cn=<replaceable>Manager</replaceable>,dc=<replaceable>example</replaceable>,dc=<replaceable>com</replaceable>\" -W -f <replaceable>import.ldif</replaceable></userinput>\n" +"Enter LDAP Password:\n" +"adding new entry \"dc=example,dc=com\"\n" +"\n" +"adding new entry \"cn=Manager,dc=example,dc=com\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54705 +msgid "" +"Verify the data was added by issuing a search on the server using " +"<command>ldapsearch</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:54708 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>ldapsearch -Z</userinput>\n" +"# extended LDIF\n" +"#\n" +"# LDAPv3\n" +"# base <dc=example,dc=com> (default) with scope subtree\n" +"# filter: (objectclass=*)\n" +"# requesting: ALL\n" +"#\n" +"\n" +"# example.com\n" +"dn: dc=example,dc=com\n" +"objectClass: dcObject\n" +"objectClass: organization\n" +"o: Example\n" +"dc: Example\n" +"\n" +"# Manager, example.com\n" +"dn: cn=Manager,dc=example,dc=com\n" +"objectClass: organizationalRole\n" +"cn: Manager\n" +"\n" +"# search result\n" +"search: 3\n" +"result: 0 Success\n" +"\n" +"# numResponses: 3\n" +"# numEntries: 2" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54736 +msgid "" +"At this point, the server should be configured and functioning properly." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:54753 +msgid "Dynamic Host Configuration Protocol (<acronym>DHCP</acronym>)" +msgstr "動態主機設定協定 (<acronym>DHCP</acronym>)" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:54756 +msgid "" +"<primary>Dynamic Host Configuration Protocol</primary> <see><acronym>DHCP</" +"acronym></see>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:54760 +msgid "<primary>Internet Systems Consortium (ISC)</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:54764 +msgid "" +"The Dynamic Host Configuration Protocol (<acronym>DHCP</acronym>) allows a " +"system to connect to a network in order to be assigned the necessary " +"addressing information for communication on that network. FreeBSD includes " +"the OpenBSD version of <command>dhclient</command> which is used by the " +"client to obtain the addressing information. FreeBSD does not install a " +"<acronym>DHCP</acronym> server, but several servers are available in the " +"FreeBSD Ports Collection. The <acronym>DHCP</acronym> protocol is fully " +"described in <link xlink:href=\"http://www.freesoft.org/CIE/RFC/2131/\">RFC " +"2131</link>. Informational resources are also available at <link xlink:href=" +"\"http://www.isc.org/downloads/dhcp/\">isc.org/downloads/dhcp/</link>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:54776 +msgid "" +"This section describes how to use the built-in <acronym>DHCP</acronym> " +"client. It then describes how to install and configure a <acronym>DHCP</" +"acronym> server." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:54781 +msgid "" +"In FreeBSD, the <citerefentry><refentrytitle>bpf</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> device is needed by " +"both the <acronym>DHCP</acronym> server and <acronym>DHCP</acronym> client. " +"This device is included in the <filename>GENERIC</filename> kernel that is " +"installed with FreeBSD. Users who prefer to create a custom kernel need to " +"keep this device if <acronym>DHCP</acronym> is used." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:54788 +msgid "" +"It should be noted that <filename>bpf</filename> also allows privileged " +"users to run network packet sniffers on that system." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:54794 +msgid "Configuring a <acronym>DHCP</acronym> Client" +msgstr "設定 <acronym>DHCP</acronym> 客戶端" + +#. (itstool) path: sect2/para +#: book.translate.xml:54796 +msgid "" +"<acronym>DHCP</acronym> client support is included in the FreeBSD installer, " +"making it easy to configure a newly installed system to automatically " +"receive its networking addressing information from an existing " +"<acronym>DHCP</acronym> server. Refer to <xref linkend=\"bsdinstall-post\"/> " +"for examples of network configuration." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:54803 +msgid "<primary><acronym>UDP</acronym></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54804 +msgid "" +"When <command>dhclient</command> is executed on the client machine, it " +"begins broadcasting requests for configuration information. By default, " +"these requests use <acronym>UDP</acronym> port 68. The server replies on " +"<acronym>UDP</acronym> port 67, giving the client an <acronym>IP</acronym> " +"address and other relevant network information such as a subnet mask, " +"default gateway, and <acronym>DNS</acronym> server addresses. This " +"information is in the form of a <acronym>DHCP</acronym> <quote>lease</quote> " +"and is valid for a configurable time. This allows stale <acronym>IP</" +"acronym> addresses for clients no longer connected to the network to " +"automatically be reused. <acronym>DHCP</acronym> clients can obtain a great " +"deal of information from the server. An exhaustive list may be found in " +"<citerefentry><refentrytitle>dhcp-options</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54820 +msgid "" +"By default, when a FreeBSD system boots, its <acronym>DHCP</acronym> client " +"runs in the background, or <firstterm>asynchronously</firstterm>. Other " +"startup scripts continue to run while the <acronym>DHCP</acronym> process " +"completes, which speeds up system startup." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54826 +msgid "" +"Background <acronym>DHCP</acronym> works well when the <acronym>DHCP</" +"acronym> server responds quickly to the client's requests. However, " +"<acronym>DHCP</acronym> may take a long time to complete on some systems. If " +"network services attempt to run before <acronym>DHCP</acronym> has assigned " +"the network addressing information, they will fail. Using <acronym>DHCP</" +"acronym> in <firstterm>synchronous</firstterm> mode prevents this problem as " +"it pauses startup until the <acronym>DHCP</acronym> configuration has " +"completed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54836 +msgid "" +"This line in <filename>/etc/rc.conf</filename> is used to configure " +"background or asynchronous mode:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54839 +#, no-wrap +msgid "ifconfig_<replaceable>fxp0</replaceable>=\"DHCP\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54841 +msgid "" +"This line may already exist if the system was configured to use " +"<acronym>DHCP</acronym> during installation. Replace the <replaceable>fxp0</" +"replaceable> shown in these examples with the name of the interface to be " +"dynamically configured, as described in <xref linkend=\"config-network-setup" +"\"/>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54847 +msgid "" +"To instead configure the system to use synchronous mode, and to pause during " +"startup while <acronym>DHCP</acronym> completes, use " +"<quote><literal>SYNCDHCP</literal></quote>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54852 +#, no-wrap +msgid "ifconfig_<replaceable>fxp0</replaceable>=\"SYNCDHCP\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54854 +msgid "" +"Additional client options are available. Search for <literal>dhclient</" +"literal> in <citerefentry><refentrytitle>rc.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for details." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:54858 book.translate.xml:55062 +msgid "" +"<primary><acronym>DHCP</acronym></primary> <secondary>configuration files</" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54863 +msgid "The <acronym>DHCP</acronym> client uses the following files:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54868 +msgid "<filename>/etc/dhclient.conf</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54870 +msgid "" +"The configuration file used by <command>dhclient</command>. Typically, this " +"file contains only comments as the defaults are suitable for most clients. " +"This configuration file is described in " +"<citerefentry><refentrytitle>dhclient.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54878 +msgid "<filename>/sbin/dhclient</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54880 +msgid "" +"More information about the command itself can be found in " +"<citerefentry><refentrytitle>dhclient</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54885 +msgid "<filename>/sbin/dhclient-script</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54887 +msgid "" +"The FreeBSD-specific <acronym>DHCP</acronym> client configuration script. It " +"is described in <citerefentry><refentrytitle>dhclient-script</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, but should not need " +"any user modification to function properly." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54895 +msgid "" +"<filename>/var/db/dhclient.leases.<replaceable>interface</replaceable></" +"filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:54897 +msgid "" +"The <acronym>DHCP</acronym> client keeps a database of valid leases in this " +"file, which is written as a log and is described in " +"<citerefentry><refentrytitle>dhclient.leases</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:54905 +msgid "Installing and Configuring a <acronym>DHCP</acronym> Server" +msgstr "安裝並設定 <acronym>DHCP</acronym> 伺服器" + +#. (itstool) path: sect2/para +#: book.translate.xml:54908 +msgid "" +"This section demonstrates how to configure a FreeBSD system to act as a " +"<acronym>DHCP</acronym> server using the Internet Systems Consortium " +"(<acronym>ISC</acronym>) implementation of the <acronym>DHCP</acronym> " +"server. This implementation and its documentation can be installed using the " +"<package>net/isc-dhcp43-server</package> package or port." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:54916 +msgid "" +"<primary><acronym>DHCP</acronym></primary> <secondary>server</secondary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:54921 +msgid "" +"<primary><acronym>DHCP</acronym></primary> <secondary>installation</" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54926 +msgid "" +"The installation of <package>net/isc-dhcp43-server</package> installs a " +"sample configuration file. Copy <filename>/usr/local/etc/dhcpd.conf.example</" +"filename> to <filename>/usr/local/etc/dhcpd.conf</filename> and make any " +"edits to this new file." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:54933 +msgid "" +"<primary><acronym>DHCP</acronym></primary> <secondary>dhcpd.conf</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:54937 +msgid "" +"The configuration file is comprised of declarations for subnets and hosts " +"which define the information that is provided to <acronym>DHCP</acronym> " +"clients. For example, these lines configure the following:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:54942 +#, no-wrap +msgid "" +"option domain-name \"example.org\";<co xml:id=\"domain-name\"/>\n" +"option domain-name-servers ns1.example.org;<co xml:id=\"domain-name-servers\"/>\n" +"option subnet-mask 255.255.255.0;<co xml:id=\"subnet-mask\"/>\n" +"\n" +"default-lease-time 600;<co xml:id=\"default-lease-time\"/>\n" +"max-lease-time 72400;<co xml:id=\"max-lease-time\"/>\n" +"ddns-update-style none;<co xml:id=\"ddns-update-style\"/>\n" +"\n" +"subnet 10.254.239.0 netmask 255.255.255.224 {\n" +" range 10.254.239.10 10.254.239.20;<co xml:id=\"range\"/>\n" +" option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;<co xml:id=\"routers\"/>\n" +"}\n" +"\n" +"host fantasia {\n" +" hardware ethernet 08:00:07:26:c0:a5;<co xml:id=\"hardware\"/>\n" +" fixed-address fantasia.fugue.com;<co xml:id=\"fixed-address\"/>\n" +"}" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:54962 +msgid "" +"This option specifies the default search domain that will be provided to " +"clients. Refer to <citerefentry><refentrytitle>resolv.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:54968 +msgid "" +"This option specifies a comma separated list of <acronym>DNS</acronym> " +"servers that the client should use. They can be listed by their Fully " +"Qualified Domain Names (<acronym>FQDN</acronym>), as seen in the example, or " +"by their <acronym>IP</acronym> addresses." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:54976 +msgid "The subnet mask that will be provided to clients." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:54981 +msgid "" +"The default lease expiry time in seconds. A client can be configured to " +"override this value." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:54986 +msgid "" +"The maximum allowed length of time, in seconds, for a lease. Should a client " +"request a longer lease, a lease will still be issued, but it will only be " +"valid for <literal>max-lease-time</literal>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:54993 +msgid "" +"The default of <option>none</option> disables dynamic DNS updates. Changing " +"this to <option>interim</option> configures the <acronym>DHCP</acronym> " +"server to update a <acronym>DNS</acronym> server whenever it hands out a " +"lease so that the <acronym>DNS</acronym> server knows which <acronym>IP</" +"acronym> addresses are associated with which computers in the network. Do " +"not change the default setting unless the <acronym>DNS</acronym> server has " +"been configured to support dynamic <acronym>DNS</acronym>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:55006 +msgid "" +"This line creates a pool of available <acronym>IP</acronym> addresses which " +"are reserved for allocation to <acronym>DHCP</acronym> clients. The range of " +"addresses must be valid for the network or subnet specified in the previous " +"line." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:55014 +msgid "" +"Declares the default gateway that is valid for the network or subnet " +"specified before the opening <literal>{</literal> bracket." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:55020 +msgid "" +"Specifies the hardware <acronym>MAC</acronym> address of a client so that " +"the <acronym>DHCP</acronym> server can recognize the client when it makes a " +"request." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:55026 +msgid "" +"Specifies that this host should always be given the same <acronym>IP</" +"acronym> address. Using the hostname is correct, since the <acronym>DHCP</" +"acronym> server will resolve the hostname before returning the lease " +"information." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55034 +msgid "" +"This configuration file supports many more options. Refer to dhcpd.conf(5), " +"installed with the server, for details and examples." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55038 +msgid "" +"Once the configuration of <filename>dhcpd.conf</filename> is complete, " +"enable the <acronym>DHCP</acronym> server in <filename>/etc/rc.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:55042 +#, no-wrap +msgid "" +"dhcpd_enable=\"YES\"\n" +"dhcpd_ifaces=\"dc0\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55045 +msgid "" +"Replace the <literal>dc0</literal> with the interface (or interfaces, " +"separated by whitespace) that the <acronym>DHCP</acronym> server should " +"listen on for <acronym>DHCP</acronym> client requests." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55050 +msgid "Start the server by issuing the following command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:55052 book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service isc-dhcpd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55054 +msgid "" +"Any future changes to the configuration of the server will require the " +"<application>dhcpd</application> service to be stopped and then started " +"using <citerefentry><refentrytitle>service</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55058 +msgid "" +"The <acronym>DHCP</acronym> server uses the following files. Note that the " +"manual pages are installed with the server software." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55068 +msgid "<filename>/usr/local/sbin/dhcpd</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55070 +msgid "" +"More information about the <application>dhcpd</application> server can be " +"found in dhcpd(8)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55076 +msgid "<filename>/usr/local/etc/dhcpd.conf</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55078 +msgid "" +"The server configuration file needs to contain all the information that " +"should be provided to clients, along with information regarding the " +"operation of the server. This configuration file is described in dhcpd." +"conf(5)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55085 +msgid "<filename>/var/db/dhcpd.leases</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55087 +msgid "" +"The <acronym>DHCP</acronym> server keeps a database of leases it has issued " +"in this file, which is written as a log. Refer to dhcpd.leases(5), which " +"gives a slightly longer description." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55094 +msgid "<filename>/usr/local/sbin/dhcrelay</filename>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55096 +msgid "" +"This daemon is used in advanced environments where one <acronym>DHCP</" +"acronym> server forwards a request from a client to another <acronym>DHCP</" +"acronym> server on a separate network. If this functionality is required, " +"install the <package>net/isc-dhcp43-relay</package> package or port. The " +"installation includes dhcrelay(8) which provides more detail." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:55134 +msgid "" +"Domain Name System (<acronym>DNS</acronym>) is the protocol through which " +"domain names are mapped to <acronym>IP</acronym> addresses, and vice versa. " +"<acronym>DNS</acronym> is coordinated across the Internet through a somewhat " +"complex system of authoritative root, Top Level Domain (<acronym>TLD</" +"acronym>), and other smaller-scale name servers, which host and cache " +"individual domain information. It is not necessary to run a name server to " +"perform <acronym>DNS</acronym> lookups on a system." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:55146 +msgid "" +"In FreeBSD 10, the Berkeley Internet Name Domain (<acronym>BIND</acronym>) " +"has been removed from the base system and replaced with Unbound. Unbound as " +"configured in the FreeBSD Base is a local caching resolver. <acronym>BIND</" +"acronym> is still available from The Ports Collection as <package role=\"port" +"\">dns/bind99</package> or <package role=\"port\">dns/bind98</package>. In " +"FreeBSD 9 and lower, <acronym>BIND</acronym> is included in FreeBSD Base. " +"The FreeBSD version provides enhanced security features, a new file system " +"layout, and automated <citerefentry><refentrytitle>chroot</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> configuration. " +"<acronym>BIND</acronym> is maintained by the <link xlink:href=\"https://www." +"isc.org/\">Internet Systems Consortium</link>." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:55157 +msgid "<primary>resolver</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:55158 +msgid "<primary>reverse <acronym>DNS</acronym></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:55160 +msgid "<primary>root zone</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:55162 +msgid "" +"The following table describes some of the terms associated with " +"<acronym>DNS</acronym>:" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:55166 +msgid "<acronym>DNS</acronym> Terminology" +msgstr "<acronym>DNS</acronym> 術語" + +#. (itstool) path: row/entry +#: book.translate.xml:55175 +msgid "Definition" +msgstr "定義" + +#. (itstool) path: row/entry +#: book.translate.xml:55181 +msgid "Forward <acronym>DNS</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55182 +msgid "Mapping of hostnames to <acronym>IP</acronym> addresses." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55187 +msgid "Origin" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55188 +msgid "Refers to the domain covered in a particular zone file." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55193 +msgid "<application>named</application>, BIND" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55194 +msgid "Common names for the BIND name server package within FreeBSD." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55199 +msgid "Resolver" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55200 +msgid "" +"A system process through which a machine queries a name server for zone " +"information." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55205 +msgid "Reverse <acronym>DNS</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55206 +msgid "Mapping of <acronym>IP</acronym> addresses to hostnames." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55211 +msgid "Root zone" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55213 +msgid "" +"The beginning of the Internet zone hierarchy. All zones fall under the root " +"zone, similar to how all files in a file system fall under the root " +"directory." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55219 +msgid "Zone" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55220 +msgid "" +"An individual domain, subdomain, or portion of the <acronym>DNS</acronym> " +"administered by the same authority." +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:55228 +msgid "<primary>zones</primary> <secondary>examples</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:55233 +msgid "Examples of zones:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55237 +msgid "" +"<systemitem>.</systemitem> is how the root zone is usually referred to in " +"documentation." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55242 +msgid "" +"<systemitem>org.</systemitem> is a Top Level Domain (<acronym>TLD</acronym>) " +"under the root zone." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55247 +msgid "" +"<systemitem class=\"fqdomainname\">example.org.</systemitem> is a zone under " +"the <systemitem>org.</systemitem> <acronym>TLD</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55253 +msgid "" +"<systemitem>1.168.192.in-addr.arpa</systemitem> is a zone referencing all " +"<acronym>IP</acronym> addresses which fall under the <systemitem class=" +"\"ipaddress\">192.168.1.*</systemitem> <acronym>IP</acronym> address space." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:55260 +msgid "" +"As one can see, the more specific part of a hostname appears to its left. " +"For example, <systemitem class=\"fqdomainname\">example.org.</systemitem> is " +"more specific than <systemitem>org.</systemitem>, as <systemitem>org.</" +"systemitem> is more specific than the root zone. The layout of each part of " +"a hostname is much like a file system: the <filename>/dev</filename> " +"directory falls within the root, and so on." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:55269 +msgid "Reasons to Run a Name Server" +msgstr "要執行名稱伺服器的原因" + +#. (itstool) path: sect2/para +#: book.translate.xml:55271 +msgid "" +"Name servers generally come in two forms: authoritative name servers, and " +"caching (also known as resolving) name servers." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55275 +msgid "An authoritative name server is needed when:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55279 +msgid "" +"One wants to serve <acronym>DNS</acronym> information to the world, replying " +"authoritatively to queries." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55284 +msgid "" +"A domain, such as <systemitem class=\"fqdomainname\">example.org</" +"systemitem>, is registered and <acronym>IP</acronym> addresses need to be " +"assigned to hostnames under it." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55290 +msgid "" +"An <acronym>IP</acronym> address block requires reverse <acronym>DNS</" +"acronym> entries (<acronym>IP</acronym> to hostname)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55296 +msgid "A backup or second name server, called a slave, will reply to queries." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55301 +msgid "A caching name server is needed when:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55305 +msgid "" +"A local <acronym>DNS</acronym> server may cache and respond more quickly " +"than querying an outside name server." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55311 +msgid "" +"When one queries for <systemitem class=\"fqdomainname\">www.FreeBSD.org</" +"systemitem>, the resolver usually queries the uplink <acronym>ISP</" +"acronym>'s name server, and retrieves the reply. With a local, caching " +"<acronym>DNS</acronym> server, the query only has to be made once to the " +"outside world by the caching <acronym>DNS</acronym> server. Additional " +"queries will not have to go outside the local network, since the information " +"is cached locally." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:55322 +msgid "<acronym>DNS</acronym> Server Configuration in FreeBSD 10.0 and Later" +msgstr "<acronym>DNS</acronym> 伺服器設定於 FreeBSD 10.0 及之後版本" + +#. (itstool) path: sect2/para +#: book.translate.xml:55325 +msgid "" +"In FreeBSD 10.0, <application>BIND</application> has been replaced with " +"<application>Unbound</application>. <application>Unbound</application> is a " +"validating caching resolver only. If an authoritative server is needed, many " +"are available from the Ports Collection." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55331 +msgid "" +"<application>Unbound</application> is provided in the FreeBSD base system. " +"By default, it will provide <acronym>DNS</acronym> resolution to the local " +"machine only. While the base system package can be configured to provide " +"resolution services beyond the local machine, it is recommended that such " +"requirements be addressed by installing <application>Unbound</application> " +"from the FreeBSD Ports Collection." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55340 +msgid "" +"To enable <application>Unbound</application>, add the following to " +"<filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:55343 +#, no-wrap +msgid "local_unbound_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55345 +msgid "" +"Any existing nameservers in <filename>/etc/resolv.conf</filename> will be " +"configured as forwarders in the new <application>Unbound</application> " +"configuration." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:55351 +msgid "" +"If any of the listed nameservers do not support <acronym>DNSSEC</acronym>, " +"local <acronym>DNS</acronym> resolution will fail. Be sure to test each " +"nameserver and remove any that fail the test. The following command will " +"show the trust tree or a failure for a nameserver running on <systemitem " +"class=\"ipaddress\">192.168.1.1</systemitem>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:55359 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>drill -S FreeBSD.org @<replaceable>192.168.1.1</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55361 +msgid "" +"Once each nameserver is confirmed to support <acronym>DNSSEC</acronym>, " +"start <application>Unbound</application>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:55365 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service local_unbound onestart</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55367 +msgid "" +"This will take care of updating <filename>/etc/resolv.conf</filename> so " +"that queries for <acronym>DNSSEC</acronym> secured domains will now work. " +"For example, run the following to validate the FreeBSD.org <acronym>DNSSEC</" +"acronym> trust tree:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:55373 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>drill -S FreeBSD.org</userinput>\n" +";; Number of trusted keys: 1\n" +";; Chasing: freebsd.org. A\n" +"\n" +"DNSSEC Trust tree:\n" +"freebsd.org. (A)\n" +"|---freebsd.org. (DNSKEY keytag: 36786 alg: 8 flags: 256)\n" +" |---freebsd.org. (DNSKEY keytag: 32659 alg: 8 flags: 257)\n" +" |---freebsd.org. (DS keytag: 32659 digest type: 2)\n" +" |---org. (DNSKEY keytag: 49587 alg: 7 flags: 256)\n" +" |---org. (DNSKEY keytag: 9795 alg: 7 flags: 257)\n" +" |---org. (DNSKEY keytag: 21366 alg: 7 flags: 257)\n" +" |---org. (DS keytag: 21366 digest type: 1)\n" +" | |---. (DNSKEY keytag: 40926 alg: 8 flags: 256)\n" +" | |---. (DNSKEY keytag: 19036 alg: 8 flags: 257)\n" +" |---org. (DS keytag: 21366 digest type: 2)\n" +" |---. (DNSKEY keytag: 40926 alg: 8 flags: 256)\n" +" |---. (DNSKEY keytag: 19036 alg: 8 flags: 257)\n" +";; Chase successful" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:55395 +msgid "DNS Server Configuration in FreeBSD 9.<replaceable>X</replaceable>" +msgstr "DNS 伺服器設定於 FreeBSD 9.<replaceable>X</replaceable>" + +#. (itstool) path: sect2/para +#: book.translate.xml:55398 +msgid "In FreeBSD, the BIND daemon is called <application>named</application>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55412 +msgid "" +"<citerefentry><refentrytitle>named</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55413 +msgid "The BIND daemon." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55417 +msgid "" +"<citerefentry><refentrytitle>rndc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55418 +msgid "Name server control utility." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55423 +msgid "Directory where BIND zone information resides." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: sect4/title +#: book.translate.xml:55428 book.translate.xml:55496 +msgid "<filename>/etc/namedb/named.conf</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:55429 +msgid "Configuration file of the daemon." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:55435 +msgid "" +"Depending on how a given zone is configured on the server, the files related " +"to that zone can be found in the <filename>master</filename>, " +"<filename>slave</filename>, or <filename>dynamic</filename> subdirectories " +"of the <filename>/etc/namedb</filename> directory. These files contain the " +"<acronym>DNS</acronym> information that will be given out by the name server " +"in response to queries." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:55446 +msgid "Starting BIND" +msgstr "啟動 BIND" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:55448 +msgid "<primary>BIND</primary> <secondary>starting</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:55453 +msgid "" +"Since BIND is installed by default, configuring it is relatively simple." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:55456 +msgid "" +"The default <application>named</application> configuration is that of a " +"basic resolving name server, running in a " +"<citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> environment, and restricted to listening on the local IPv4 " +"loopback address (127.0.0.1). To start the server one time with this " +"configuration, use the following command:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:55463 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service named onestart</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:55465 +msgid "" +"To ensure the <application>named</application> daemon is started at boot " +"each time, put the following line into the <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:55471 +msgid "" +"There are many configuration options for <filename>/etc/namedb/named.conf</" +"filename> that are beyond the scope of this document. Other startup options " +"for <application>named</application> on FreeBSD can be found in the " +"<literal>named_<replaceable>*</replaceable></literal> flags in <filename>/" +"etc/defaults/rc.conf</filename> and in <citerefentry><refentrytitle>rc.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>. The <xref linkend=" +"\"configtuning-rcd\"/> section is also a good read." +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:55484 +msgid "<primary>BIND</primary> <secondary>configuration files</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:55489 +msgid "" +"Configuration files for <application>named</application> currently reside in " +"<filename>/etc/namedb</filename> directory and will need modification before " +"use unless all that is needed is a simple resolver. This is where most of " +"the configuration will be performed." +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:55498 +#, no-wrap +msgid "" +"// $FreeBSD$\n" +"//\n" +"// Refer to the named.conf(5) and named(8) man pages, and the documentation\n" +"// in /usr/share/doc/bind9 for more details.\n" +"//\n" +"// If you are going to set up an authoritative server, make sure you\n" +"// understand the hairy details of how DNS works. Even with\n" +"// simple mistakes, you can break connectivity for affected parties,\n" +"// or cause huge amounts of useless Internet traffic.\n" +"\n" +"options {\n" +"\t// All file and path names are relative to the chroot directory,\n" +"\t// if any, and should be fully qualified.\n" +"\tdirectory\t\"/etc/namedb/working\";\n" +"\tpid-file\t\"/var/run/named/pid\";\n" +"\tdump-file\t\"/var/dump/named_dump.db\";\n" +"\tstatistics-file\t\"/var/stats/named.stats\";\n" +"\n" +"// If named is being used only as a local resolver, this is a safe default.\n" +"// For named to be accessible to the network, comment this option, specify\n" +"// the proper IP address, or delete this option.\n" +"\tlisten-on\t{ 127.0.0.1; };\n" +"\n" +"// If you have IPv6 enabled on this system, uncomment this option for\n" +"// use as a local resolver. To give access to the network, specify\n" +"// an IPv6 address, or the keyword \"any\".\n" +"//\tlisten-on-v6\t{ ::1; };\n" +"\n" +"// These zones are already covered by the empty zones listed below.\n" +"// If you remove the related empty zones below, comment these lines out.\n" +"\tdisable-empty-zone \"255.255.255.255.IN-ADDR.ARPA\";\n" +"\tdisable-empty-zone \"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.0.IP6.ARPA\";\n" +"\tdisable-empty-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\";\n" +"\n" +"// If you've got a DNS server around at your upstream provider, enter\n" +"// its IP address here, and enable the line below. This will make you\n" +"// benefit from its cache, thus reduce overall DNS traffic in the Internet.\n" +"/*\n" +"\tforwarders {\n" +"\t\t127.0.0.1;\n" +"\t};\n" +"*/\n" +"\n" +"// If the 'forwarders' clause is not empty the default is to 'forward first'\n" +"// which will fall back to sending a query from your local server if the name\n" +"// servers in 'forwarders' do not have the answer. Alternatively you can\n" +"// force your name server to never initiate queries of its own by enabling the\n" +"// following line:\n" +"//\tforward only;\n" +"\n" +"// If you wish to have forwarding configured automatically based on\n" +"// the entries in /etc/resolv.conf, uncomment the following line and\n" +"// set named_auto_forward=yes in /etc/rc.conf. You can also enable\n" +"// named_auto_forward_only (the effect of which is described above).\n" +"//\tinclude \"/etc/namedb/auto_forward.conf\";" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:55554 +msgid "" +"Just as the comment says, to benefit from an uplink's cache, " +"<literal>forwarders</literal> can be enabled here. Under normal " +"circumstances, a name server will recursively query the Internet looking at " +"certain name servers until it finds the answer it is looking for. Having " +"this enabled will have it query the uplink's name server (or name server " +"provided) first, taking advantage of its cache. If the uplink name server in " +"question is a heavily trafficked, fast name server, enabling this may be " +"worthwhile." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:55566 +msgid "" +"<systemitem class=\"ipaddress\">127.0.0.1</systemitem> will <emphasis>not</" +"emphasis> work here. Change this <acronym>IP</acronym> address to a name " +"server at the uplink." +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:55572 +#, no-wrap +msgid "" +"\t/*\n" +"\t Modern versions of BIND use a random <acronym>UDP</acronym> port for each outgoing\n" +"\t query by default in order to dramatically reduce the possibility\n" +"\t of cache poisoning. All users are strongly encouraged to utilize\n" +"\t this feature, and to configure their firewalls to accommodate it.\n" +"\n" +"\t AS A LAST RESORT in order to get around a restrictive firewall\n" +"\t policy you can try enabling the option below. Use of this option\n" +"\t will significantly reduce your ability to withstand cache poisoning\n" +"\t attacks, and should be avoided if at all possible.\n" +"\n" +"\t Replace NNNNN in the example with a number between 49160 and 65530.\n" +"\t*/\n" +"\t// query-source address * port NNNNN;\n" +"};\n" +"\n" +"// If you enable a local name server, don't forget to enter 127.0.0.1\n" +"// first in your /etc/resolv.conf so this server will be queried.\n" +"// Also, make sure to enable it in /etc/rc.conf.\n" +"\n" +"// The traditional root hints mechanism. Use this, OR the slave zones below.\n" +"zone \".\" { type hint; file \"/etc/namedb/named.root\"; };\n" +"\n" +"/*\tSlaving the following zones from the root name servers has some\n" +"\tsignificant advantages:\n" +"\t1. Faster local resolution for your users\n" +"\t2. No spurious traffic will be sent from your network to the roots\n" +"\t3. Greater resilience to any potential root server failure/DDoS\n" +"\n" +"\tOn the other hand, this method requires more monitoring than the\n" +"\thints file to be sure that an unexpected failure mode has not\n" +"\tincapacitated your server. Name servers that are serving a lot\n" +"\tof clients will benefit more from this approach than individual\n" +"\thosts. Use with caution.\n" +"\n" +"\tTo use this mechanism, uncomment the entries below, and comment\n" +"\tthe hint zone above.\n" +"\n" +"\tAs documented at http://dns.icann.org/services/axfr/ these zones:\n" +"\t\".\" (the root), ARPA, IN-ADDR.ARPA, IP6.ARPA, and ROOT-SERVERS.NET\n" +"\tare available for AXFR from these servers on IPv4 and IPv6:\n" +"\txfr.lax.dns.icann.org, xfr.cjr.dns.icann.org\n" +"*/\n" +"/*\n" +"zone \".\" {\n" +"\ttype slave;\n" +"\tfile \"/etc/namedb/slave/root.slave\";\n" +"\tmasters {\n" +"\t\t192.5.5.241;\t// F.ROOT-SERVERS.NET.\n" +"\t};\n" +"\tnotify no;\n" +"};\n" +"zone \"arpa\" {\n" +"\ttype slave;\n" +"\tfile \"/etc/namedb/slave/arpa.slave\";\n" +"\tmasters {\n" +"\t\t192.5.5.241;\t// F.ROOT-SERVERS.NET.\n" +"\t};\n" +"\tnotify no;\n" +"};\n" +"*/\n" +"\n" +"/*\tServing the following zones locally will prevent any queries\n" +"\tfor these zones leaving your network and going to the root\n" +"\tname servers. This has two significant advantages:\n" +"\t1. Faster local resolution for your users\n" +"\t2. No spurious traffic will be sent from your network to the roots\n" +"*/\n" +"// RFCs 1912 and 5735 (and BCP 32 for localhost)\n" +"zone \"localhost\"\t{ type master; file \"/etc/namedb/master/localhost-forward.db\"; };\n" +"zone \"127.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/localhost-reverse.db\"; };\n" +"zone \"255.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// RFC 1912-style zone for IPv6 localhost address\n" +"zone \"0.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/localhost-reverse.db\"; };\n" +"\n" +"// \"This\" Network (RFCs 1912 and 5735)\n" +"zone \"0.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// Private Use Networks (RFCs 1918 and 5735)\n" +"zone \"10.in-addr.arpa\"\t { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"16.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"17.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"18.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"19.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"20.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"21.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"22.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"23.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"24.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"25.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"26.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"27.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"28.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"29.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"30.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"31.172.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"168.192.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// Link-local/APIPA (RFCs 3927 and 5735)\n" +"zone \"254.169.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// IETF protocol assignments (RFCs 5735 and 5736)\n" +"zone \"0.0.192.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// TEST-NET-[1-3] for Documentation (RFCs 5735 and 5737)\n" +"zone \"2.0.192.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"100.51.198.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"113.0.203.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// IPv6 Range for Documentation (RFC 3849)\n" +"zone \"8.b.d.0.1.0.0.2.ip6.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// Domain Names for Documentation and Testing (BCP 32)\n" +"zone \"test\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"example\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"invalid\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"example.com\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"example.net\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"example.org\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// Router Benchmark Testing (RFCs 2544 and 5735)\n" +"zone \"18.198.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"19.198.in-addr.arpa\" { type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// IANA Reserved - Old Class E Space (RFC 5735)\n" +"zone \"240.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"241.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"242.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"243.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"244.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"245.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"246.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"247.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"248.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"249.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"250.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"251.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"252.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"253.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"254.in-addr.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// IPv6 Unassigned Addresses (RFC 4291)\n" +"zone \"1.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"3.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"4.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"5.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"6.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"7.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"8.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"9.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"a.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"b.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"c.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"d.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"e.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"0.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"1.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"2.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"3.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"4.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"5.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"6.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"7.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"8.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"9.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"a.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"b.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"0.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"1.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"2.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"3.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"4.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"5.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"6.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"7.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// IPv6 ULA (RFC 4193)\n" +"zone \"c.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"d.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// IPv6 Link Local (RFC 4291)\n" +"zone \"8.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"9.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"a.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"b.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// IPv6 Deprecated Site-Local Addresses (RFC 3879)\n" +"zone \"c.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"d.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"e.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"zone \"f.e.f.ip6.arpa\"\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// IP6.INT is Deprecated (RFC 4159)\n" +"zone \"ip6.int\"\t\t{ type master; file \"/etc/namedb/master/empty.db\"; };\n" +"\n" +"// NB: Do not use the IP addresses below, they are faked, and only\n" +"// serve demonstration/documentation purposes!\n" +"//\n" +"// Example slave zone config entries. It can be convenient to become\n" +"// a slave at least for the zone your own domain is in. Ask\n" +"// your network administrator for the IP address of the responsible\n" +"// master name server.\n" +"//\n" +"// Do not forget to include the reverse lookup zone!\n" +"// This is named after the first bytes of the IP address, in reverse\n" +"// order, with \".IN-ADDR.ARPA\" appended, or \".IP6.ARPA\" for IPv6.\n" +"//\n" +"// Before starting to set up a master zone, make sure you fully\n" +"// understand how DNS and BIND work. There are sometimes\n" +"// non-obvious pitfalls. Setting up a slave zone is usually simpler.\n" +"//\n" +"// NB: Don't blindly enable the examples below. :-) Use actual names\n" +"// and addresses instead.\n" +"\n" +"/* An example dynamic zone\n" +"key \"exampleorgkey\" {\n" +"\talgorithm hmac-md5;\n" +"\tsecret \"sf87HJqjkqh8ac87a02lla==\";\n" +"};\n" +"zone \"example.org\" {\n" +"\ttype master;\n" +"\tallow-update {\n" +"\t\tkey \"exampleorgkey\";\n" +"\t};\n" +"\tfile \"/etc/namedb/dynamic/example.org\";\n" +"};\n" +"*/\n" +"\n" +"/* Example of a slave reverse zone\n" +"zone \"1.168.192.in-addr.arpa\" {\n" +"\ttype slave;\n" +"\tfile \"/etc/namedb/slave/1.168.192.in-addr.arpa\";\n" +"\tmasters {\n" +"\t\t192.168.1.1;\n" +"\t};\n" +"};\n" +"*/" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:55811 +msgid "" +"In <filename>named.conf</filename>, these are examples of slave entries for " +"a forward and reverse zone." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:55814 +msgid "" +"For each new zone served, a new zone entry must be added to <filename>named." +"conf</filename>." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:55817 +msgid "" +"For example, the simplest zone entry for <systemitem class=\"fqdomainname" +"\">example.org</systemitem> can look like:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:55821 +#, no-wrap +msgid "" +"zone \"example.org\" {\n" +"\ttype master;\n" +"\tfile \"master/example.org\";\n" +"};" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:55826 +msgid "" +"The zone is a master, as indicated by the <option>type</option> statement, " +"holding its zone information in <filename>/etc/namedb/master/example.org</" +"filename> indicated by the <option>file</option> statement." +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:55832 +#, no-wrap +msgid "" +"zone \"example.org\" {\n" +"\ttype slave;\n" +"\tfile \"slave/example.org\";\n" +"};" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:55837 +msgid "" +"In the slave case, the zone information is transferred from the master name " +"server for the particular zone, and saved in the file specified. If and when " +"the master server dies or is unreachable, the slave name server will have " +"the transferred zone information and will be able to serve it." +msgstr "" + +#. (itstool) path: sect4/title +#: book.translate.xml:55846 +msgid "Zone Files" +msgstr "" + +#. (itstool) path: sect4/indexterm +#: book.translate.xml:55848 +msgid "<primary>BIND</primary> <secondary>zone files</secondary>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:55853 +msgid "" +"An example master zone file for <systemitem class=\"fqdomainname\">example." +"org</systemitem> (existing within <filename>/etc/namedb/master/example.org</" +"filename>) is as follows:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:55859 +#, no-wrap +msgid "" +"$TTL 3600 ; 1 hour default TTL\n" +"example.org. IN SOA ns1.example.org. admin.example.org. (\n" +" 2006051501 ; Serial\n" +" 10800 ; Refresh\n" +" 3600 ; Retry\n" +" 604800 ; Expire\n" +" 300 ; Negative Response TTL\n" +" )\n" +"\n" +"; DNS Servers\n" +" IN NS ns1.example.org.\n" +" IN NS ns2.example.org.\n" +"\n" +"; MX Records\n" +" IN MX 10 mx.example.org.\n" +" IN MX 20 mail.example.org.\n" +"\n" +" IN A 192.168.1.1\n" +"\n" +"; Machine Names\n" +"localhost IN A 127.0.0.1\n" +"ns1 IN A 192.168.1.2\n" +"ns2 IN A 192.168.1.3\n" +"mx IN A 192.168.1.4\n" +"mail IN A 192.168.1.5\n" +"\n" +"; Aliases\n" +"www IN CNAME example.org." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:55888 +msgid "" +"Note that every hostname ending in a <quote>.</quote> is an exact hostname, " +"whereas everything without a trailing <quote>.</quote> is relative to the " +"origin. For example, <literal>ns1</literal> is translated into <literal>ns1." +"<replaceable>example.org.</replaceable></literal>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:55894 +msgid "The format of a zone file follows:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:55896 +#, no-wrap +msgid "recordname IN recordtype value" +msgstr "" + +#. (itstool) path: sect4/indexterm +#: book.translate.xml:55898 +msgid "" +"<primary><acronym>DNS</acronym></primary> <secondary>records</secondary>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:55903 +msgid "The most commonly used <acronym>DNS</acronym> records:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:55908 +msgid "SOA" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55911 +msgid "start of zone authority" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:55916 +msgid "NS" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55919 +msgid "an authoritative name server" +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: glossdiv/title +#: book.translate.xml:55924 book.translate.xml:65535 +msgid "A" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55927 +msgid "a host address" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:55932 +msgid "CNAME" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55935 +msgid "the canonical name for an alias" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:55940 +msgid "MX" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55943 +msgid "mail exchanger" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:55948 +msgid "PTR" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55951 +msgid "a domain name pointer (used in reverse <acronym>DNS</acronym>)" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:55957 +#, no-wrap +msgid "" +"example.org. IN SOA ns1.example.org. admin.example.org. (\n" +" 2006051501 ; Serial\n" +" 10800 ; Refresh after 3 hours\n" +" 3600 ; Retry after 1 hour\n" +" 604800 ; Expire after 1 week\n" +" 300 ) ; Negative Response TTL" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:55966 +msgid "<systemitem class=\"fqdomainname\">example.org.</systemitem>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55969 +msgid "the domain name, also the origin for this zone file." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:55975 +msgid "<systemitem class=\"fqdomainname\">ns1.example.org.</systemitem>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55978 +msgid "the primary/authoritative name server for this zone." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:55984 +msgid "<literal>admin.example.org.</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55987 +msgid "" +"the responsible person for this zone, email address with <quote>@</quote> " +"replaced. (<email>admin@example.org</email> becomes <literal>admin.example." +"org</literal>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:55995 +msgid "<literal>2006051501</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:55998 +msgid "" +"the serial number of the file. This must be incremented each time the zone " +"file is modified. Nowadays, many admins prefer a <literal>yyyymmddrr</" +"literal> format for the serial number. <literal>2006051501</literal> would " +"mean last modified 05/15/2006, the latter <literal>01</literal> being the " +"first time the zone file has been modified this day. The serial number is " +"important as it alerts slave name servers for a zone when it is updated." +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56012 +#, no-wrap +msgid " IN NS ns1.example.org." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56014 +msgid "" +"This is an NS entry. Every name server that is going to reply " +"authoritatively for the zone must have one of these entries." +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56018 +#, no-wrap +msgid "" +"localhost IN A 127.0.0.1\n" +"ns1 IN A 192.168.1.2\n" +"ns2 IN A 192.168.1.3\n" +"mx IN A 192.168.1.4\n" +"mail IN A 192.168.1.5" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56024 +msgid "" +"The A record indicates machine names. As seen above, <systemitem class=" +"\"fqdomainname\">ns1.example.org</systemitem> would resolve to <systemitem " +"class=\"ipaddress\">192.168.1.2</systemitem>." +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56028 +#, no-wrap +msgid " IN A 192.168.1.1" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56030 +msgid "" +"This line assigns <acronym>IP</acronym> address <systemitem class=\"ipaddress" +"\">192.168.1.1</systemitem> to the current origin, in this case <systemitem " +"class=\"fqdomainname\">example.org</systemitem>." +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56034 +#, no-wrap +msgid "www IN CNAME @" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56036 +msgid "" +"The canonical name record is usually used for giving aliases to a machine. " +"In the example, <systemitem>www</systemitem> is aliased to the " +"<quote>master</quote> machine whose name happens to be the same as the " +"domain name <systemitem class=\"fqdomainname\">example.org</systemitem> " +"(<systemitem class=\"ipaddress\">192.168.1.1</systemitem>). CNAMEs can never " +"be used together with another kind of record for the same hostname." +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56050 +#, no-wrap +msgid " IN MX 10 mail.example.org." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56052 +msgid "" +"The MX record indicates which mail servers are responsible for handling " +"incoming mail for the zone. <systemitem class=\"fqdomainname\">mail.example." +"org</systemitem> is the hostname of a mail server, and 10 is the priority of " +"that mail server." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56058 +msgid "" +"One can have several mail servers, with priorities of 10, 20 and so on. A " +"mail server attempting to deliver to <systemitem class=\"fqdomainname" +"\">example.org</systemitem> would first try the highest priority MX (the " +"record with the lowest priority number), then the second highest, etc, until " +"the mail can be properly delivered." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56065 +msgid "" +"For in-addr.arpa zone files (reverse <acronym>DNS</acronym>), the same " +"format is used, except with PTR entries instead of A or CNAME." +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56069 +#, no-wrap +msgid "" +"$TTL 3600\n" +"\n" +"1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (\n" +" 2006051501 ; Serial\n" +" 10800 ; Refresh\n" +" 3600 ; Retry\n" +" 604800 ; Expire\n" +" 300 ) ; Negative Response TTL\n" +"\n" +" IN NS ns1.example.org.\n" +" IN NS ns2.example.org.\n" +"\n" +"1 IN PTR example.org.\n" +"2 IN PTR ns1.example.org.\n" +"3 IN PTR ns2.example.org.\n" +"4 IN PTR mx.example.org.\n" +"5 IN PTR mail.example.org." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56087 +msgid "" +"This file gives the proper <acronym>IP</acronym> address to hostname " +"mappings for the above fictitious domain." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56091 +msgid "" +"It is worth noting that all names on the right side of a PTR record need to " +"be fully qualified (i.e., end in a <quote>.</quote>)." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:56098 +msgid "Caching Name Server" +msgstr "快取名稱伺服器" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:56100 +msgid "<primary>BIND</primary> <secondary>caching name server</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56105 +msgid "" +"A caching name server is a name server whose primary role is to resolve " +"recursive queries. It simply asks queries of its own, and remembers the " +"answers for later use." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:56112 +msgid "<acronym role=\"Domain Name Security Extensions\">DNSSEC</acronym>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:56114 +msgid "" +"<primary>BIND</primary> <secondary><acronym>DNS</acronym> security " +"extensions</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56120 +msgid "" +"Domain Name System Security Extensions, or <acronym role=\"Domain Name " +"Security Extensions\">DNSSEC</acronym> for short, is a suite of " +"specifications to protect resolving name servers from forged <acronym>DNS</" +"acronym> data, such as spoofed <acronym>DNS</acronym> records. By using " +"digital signatures, a resolver can verify the integrity of the record. Note " +"that <acronym role=\"Domain Name Security Extensions\">DNSSEC</acronym> only " +"provides integrity via digitally signing the Resource Records (<acronym role=" +"\"Resource Record\">RR</acronym>s). It provides neither confidentiality nor " +"protection against false end-user assumptions. This means that it cannot " +"protect against people going to <systemitem class=\"fqdomainname\">example." +"net</systemitem> instead of <systemitem class=\"fqdomainname\">example.com</" +"systemitem>. The only thing <acronym>DNSSEC</acronym> does is authenticate " +"that the data has not been compromised in transit. The security of " +"<acronym>DNS</acronym> is an important step in securing the Internet in " +"general. For more in-depth details of how <acronym>DNSSEC</acronym> works, " +"the relevant <acronym>RFC</acronym>s are a good place to start. See the list " +"in <xref linkend=\"dns-read\"/>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56142 +msgid "" +"The following sections will demonstrate how to enable <acronym>DNSSEC</" +"acronym> for an authoritative <acronym>DNS</acronym> server and a recursive " +"(or caching) <acronym>DNS</acronym> server running <acronym>BIND</acronym> " +"9. While all versions of <acronym>BIND</acronym> 9 support <acronym>DNSSEC</" +"acronym>, it is necessary to have at least version 9.6.2 in order to be able " +"to use the signed root zone when validating <acronym>DNS</acronym> queries. " +"This is because earlier versions lack the required algorithms to enable " +"validation using the root zone key. It is strongly recommended to use the " +"latest version of <acronym>BIND</acronym> 9.7 or later to take advantage of " +"automatic key updating for the root key, as well as other features to " +"automatically keep zones signed and signatures up to date. Where " +"configurations differ between 9.6.2 and 9.7 and later, differences will be " +"pointed out." +msgstr "" + +#. (itstool) path: sect4/title +#: book.translate.xml:56161 +msgid "Recursive <acronym>DNS</acronym> Server Configuration" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56164 +msgid "" +"Enabling <acronym>DNSSEC</acronym> validation of queries performed by a " +"recursive <acronym>DNS</acronym> server requires a few changes to " +"<filename>named.conf</filename>. Before making these changes the root zone " +"key, or trust anchor, must be acquired. Currently the root zone key is not " +"available in a file format <acronym>BIND</acronym> understands, so it has to " +"be manually converted into the proper format. The key itself can be obtained " +"by querying the root zone for it using <application>dig</application>. By " +"running" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:56176 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>dig +multi +noall +answer DNSKEY . > root.dnskey</userinput>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56178 +msgid "" +"the key will end up in <filename>root.dnskey</filename>. The contents should " +"look something like this:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56182 +#, no-wrap +msgid "" +". 93910 IN DNSKEY 257 3 8 (\n" +"\tAwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQ\n" +"\tbSEW0O8gcCjFFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh\n" +"\t/RStIoO8g0NfnfL2MTJRkxoXbfDaUeVPQuYEhg37NZWA\n" +"\tJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaDX6RS6CXp\n" +"\toY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3\n" +"\tLQpzW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGO\n" +"\tYl7OyQdXfZ57relSQageu+ipAdTTJ25AsRTAoub8ONGc\n" +"\tLmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0=\n" +"\t) ; key id = 19036\n" +". 93910 IN DNSKEY 256 3 8 (\n" +"\tAwEAAcaGQEA+OJmOzfzVfoYN249JId7gx+OZMbxy69Hf\n" +"\tUyuGBbRN0+HuTOpBxxBCkNOL+EJB9qJxt+0FEY6ZUVjE\n" +"\tg58sRr4ZQ6Iu6b1xTBKgc193zUARk4mmQ/PPGxn7Cn5V\n" +"\tEGJ/1h6dNaiXuRHwR+7oWh7DnzkIJChcTqlFrXDW3tjt\n" +") ; key id = 34525" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56199 +msgid "" +"Do not be alarmed if the obtained keys differ from this example. They might " +"have changed since these instructions were last updated. This output " +"actually contains two keys. The first key in the listing, with the value 257 " +"after the DNSKEY record type, is the one needed. This value indicates that " +"this is a Secure Entry Point (<acronym role=\"Secure Entry Point\">SEP</" +"acronym>), commonly known as a Key Signing Key (<acronym role=\"Key Signing " +"Key\">KSK</acronym>). The second key, with value 256, is a subordinate key, " +"commonly called a Zone Signing Key (<acronym role=\"Zone Signing Key\">ZSK</" +"acronym>). More on the different key types later in <xref linkend=\"dns-" +"dnssec-auth\"/>." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56214 +msgid "" +"Now the key must be verified and formatted so that <acronym>BIND</acronym> " +"can use it. To verify the key, generate a <acronym role=\"Delegation Signer" +"\">DS</acronym> <acronym role=\"Resource Record\">RR</acronym> set. Create a " +"file containing these <acronym role=\"Resource Record\">RR</acronym>s with" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:56221 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>dnssec-dsfromkey -f root.dnskey . > root.ds</userinput>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56223 +msgid "" +"These records use SHA-1 and SHA-256 respectively, and should look similar to " +"the following example, where the longer is using SHA-256." +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56227 +#, no-wrap +msgid "" +". IN DS 19036 8 1\n" +"\tB256BD09DC8DD59F0E0F0D8541B8328DD986DF6E\n" +". IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56231 +msgid "" +"The SHA-256 <acronym>RR</acronym> can now be compared to the digest in <link " +"xlink:href=\"https://data.iana.org/root-anchors/root-anchors.xml\">https://" +"data.iana.org/root-anchors/root-anchors.xml</link>. To be absolutely sure " +"that the key has not been tampered with the data in the <acronym>XML</" +"acronym> file can be verified using the <acronym>PGP</acronym> signature in " +"<link xlink:href=\"https://data.iana.org/root-anchors/root-anchors.asc" +"\">https://data.iana.org/root-anchors/root-anchors.asc</link>." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56238 +msgid "" +"Next, the key must be formatted properly. This differs a little between " +"<acronym>BIND</acronym> versions 9.6.2 and 9.7 and later. In version 9.7 " +"support was added to automatically track changes to the key and update it as " +"necessary. This is done using <literal>managed-keys</literal> as seen in the " +"example below. When using the older version, the key is added using a " +"<literal>trusted-keys</literal> statement and updates must be done manually. " +"For <acronym>BIND</acronym> 9.6.2 the format should look like:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56250 +#, no-wrap +msgid "" +"trusted-keys {\n" +"\t\".\" 257 3 8\n" +"\t\"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF\n" +"\tFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX\n" +"\tbfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD\n" +"\tX6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz\n" +"\tW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS\n" +"\tQageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq\n" +"\tQxA+Uk1ihz0=\";\n" +"};" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56261 +msgid "For 9.7 the format will instead be:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56263 +#, no-wrap +msgid "" +"managed-keys {\n" +"\t\".\" initial-key 257 3 8\n" +"\t\"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF\n" +"\tFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX\n" +"\tbfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD\n" +"\tX6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz\n" +"\tW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS\n" +"\tQageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq\n" +"\tQxA+Uk1ihz0=\";\n" +"};" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56274 +msgid "" +"The root key can now be added to <filename>named.conf</filename> either " +"directly or by including a file containing the key. After these steps, " +"configure <acronym>BIND</acronym> to do <acronym>DNSSEC</acronym> validation " +"on queries by editing <filename>named.conf</filename> and adding the " +"following to the <literal>options</literal> directive:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56282 +#, no-wrap +msgid "" +"dnssec-enable yes;\n" +"dnssec-validation yes;" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56285 +msgid "" +"To verify that it is actually working use <application>dig</application> to " +"make a query for a signed zone using the resolver just configured. A " +"successful reply will contain the <literal>AD</literal> flag to indicate the " +"data was authenticated. Running a query such as" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:56292 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>dig @<replaceable>resolver</replaceable> +dnssec se ds </userinput>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56294 +msgid "" +"should return the <acronym>DS</acronym> <acronym>RR</acronym> for the " +"<literal>.se</literal> zone. In the <literal>flags:</literal> section the " +"<literal>AD</literal> flag should be set, as seen in:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56300 +#, no-wrap +msgid "" +"...\n" +";; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1\n" +"..." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56304 +msgid "" +"The resolver is now capable of authenticating <acronym>DNS</acronym> queries." +msgstr "" + +#. (itstool) path: sect4/title +#: book.translate.xml:56309 +msgid "Authoritative <acronym>DNS</acronym> Server Configuration" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56312 +msgid "" +"In order to get an authoritative name server to serve a <acronym>DNSSEC</" +"acronym> signed zone a little more work is required. A zone is signed using " +"cryptographic keys which must be generated. It is possible to use only one " +"key for this. The preferred method however is to have a strong well-" +"protected Key Signing Key (<acronym role=\"Key Signing Key\">KSK</acronym>) " +"that is not rotated very often and a Zone Signing Key (<acronym role=\"Zone " +"Signing Key\">ZSK</acronym>) that is rotated more frequently. Information on " +"recommended operational practices can be found in <link xlink:href=\"http://" +"tools.ietf.org/rfc/rfc4641.txt\"><acronym>RFC</acronym> 4641: " +"<acronym>DNSSEC</acronym> Operational Practices</link>. Practices regarding " +"the root zone can be found in <link xlink:href=\"http://www.root-dnssec.org/" +"wp-content/uploads/2010/06/icann-dps-00.txt\"><acronym>DNSSEC</acronym> " +"Practice Statement for the Root Zone <acronym>KSK</acronym> operator</link> " +"and <link xlink:href=\"http://www.root-dnssec.org/wp-content/uploads/2010/06/" +"vrsn-dps-00.txt\"><acronym>DNSSEC</acronym> Practice Statement for the Root " +"Zone <acronym>ZSK</acronym> operator</link>. The <acronym role=\"Key Signing " +"Key\">KSK</acronym> is used to build a chain of authority to the data in " +"need of validation and as such is also called a Secure Entry Point (<acronym " +"role=\"Secure Entry Point\">SEP</acronym>) key. A message digest of this " +"key, called a Delegation Signer (<acronym role=\"Delegation Signer\">DS</" +"acronym>) record, must be published in the parent zone to establish the " +"trust chain. How this is accomplished depends on the parent zone owner. The " +"<acronym role=\"Zone Signing Key\">ZSK</acronym> is used to sign the zone, " +"and only needs to be published there." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56343 +msgid "" +"To enable <acronym>DNSSEC</acronym> for the <systemitem class=\"fqdomainname" +"\">example.com</systemitem> zone depicted in previous examples, the first " +"step is to use <application>dnssec-keygen</application> to generate the " +"<acronym>KSK</acronym> and <acronym>ZSK</acronym> key pair. This key pair " +"can utilize different cryptographic algorithms. It is recommended to use RSA/" +"SHA256 for the keys and 2048 bits key length should be enough. To generate " +"the <acronym>KSK</acronym> for <systemitem class=\"fqdomainname\">example." +"com</systemitem>, run" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:56355 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE example.com</userinput>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56357 +msgid "and to generate the <acronym>ZSK</acronym>, run" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:56359 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com</userinput>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56361 +msgid "" +"<application>dnssec-keygen</application> outputs two files, the public and " +"the private keys in files named similar to <filename>Kexample.com.+005+nnnnn." +"key</filename> (public) and <filename>Kexample.com.+005+nnnnn.private</" +"filename> (private). The <literal>nnnnn</literal> part of the file name is a " +"five digit key ID. Keep track of which key ID belongs to which key. This is " +"especially important when having more than one key in a zone. It is also " +"possible to rename the keys. For each <acronym>KSK</acronym> file do:" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:56373 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>mv Kexample.com.+005+nnnnn.key Kexample.com.+005+nnnnn.KSK.key</userinput>\n" +"<prompt>%</prompt> <userinput>mv Kexample.com.+005+nnnnn.private Kexample.com.+005+nnnnn.KSK.private</userinput>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56376 +msgid "" +"For the <acronym>ZSK</acronym> files, substitute <literal>KSK</literal> for " +"<literal>ZSK</literal> as necessary. The files can now be included in the " +"zone file, using the <literal>$include</literal> statement. It should look " +"something like this:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56382 +#, no-wrap +msgid "" +"$include Kexample.com.+005+nnnnn.KSK.key ; KSK\n" +"$include Kexample.com.+005+nnnnn.ZSK.key ; ZSK" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56385 +msgid "" +"Finally, sign the zone and tell <acronym>BIND</acronym> to use the signed " +"zone file. To sign a zone <application>dnssec-signzone</application> is " +"used. The command to sign the zone <systemitem class=\"fqdomainname" +"\">example.com</systemitem>, located in <filename>example.com.db</filename> " +"would look similar to" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:56393 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>dnssec-signzone -o\n" +"\texample.com -k Kexample.com.+005+nnnnn.KSK example.com.db\n" +"\tKexample.com.+005+nnnnn.ZSK.key</userinput>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56397 +msgid "" +"The key supplied to the <option>-k</option> argument is the <acronym>KSK</" +"acronym> and the other key file is the <acronym>ZSK</acronym> that should be " +"used in the signing. It is possible to supply more than one <acronym>KSK</" +"acronym> and <acronym>ZSK</acronym>, which will result in the zone being " +"signed with all supplied keys. This can be needed to supply zone data signed " +"using more than one algorithm. The output of <application>dnssec-signzone</" +"application> is a zone file with all <acronym>RR</acronym>s signed. This " +"output will end up in a file with the extension <literal>.signed</literal>, " +"such as <filename>example.com.db.signed</filename>. The <acronym role=" +"\"Delegation Signer\">DS</acronym> records will also be written to a " +"separate file <filename>dsset-example.com</filename>. To use this signed " +"zone just modify the zone directive in <filename>named.conf</filename> to " +"use <filename>example.com.db.signed</filename>. By default, the signatures " +"are only valid 30 days, meaning that the zone needs to be resigned in about " +"15 days to be sure that resolvers are not caching records with stale " +"signatures. It is possible to make a script and a cron job to do this. See " +"relevant manuals for details." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56422 +msgid "" +"Be sure to keep private keys confidential, as with all cryptographic keys. " +"When changing a key it is best to include the new key into the zone, while " +"still signing with the old one, and then move over to using the new key to " +"sign. After these steps are done the old key can be removed from the zone. " +"Failure to do this might render the <acronym>DNS</acronym> data unavailable " +"for a time, until the new key has propagated through the <acronym>DNS</" +"acronym> hierarchy. For more information on key rollovers and other " +"<acronym>DNSSEC</acronym> operational issues, see <link xlink:href=\"http://" +"www.ietf.org/rfc/rfc4641.txt\"><acronym>RFC</acronym> 4641: <acronym>DNSSEC</" +"acronym> Operational practices</link>." +msgstr "" + +#. (itstool) path: sect4/title +#: book.translate.xml:56438 +msgid "Automation Using <acronym>BIND</acronym> 9.7 or Later" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56441 +msgid "" +"Beginning with <acronym>BIND</acronym> version 9.7 a new feature called " +"<emphasis>Smart Signing</emphasis> was introduced. This feature aims to make " +"the key management and signing process simpler by automating parts of the " +"task. By putting the keys into a directory called a <emphasis>key " +"repository</emphasis>, and using the new option <literal>auto-dnssec</" +"literal>, it is possible to create a dynamic zone which will be resigned as " +"needed. To update this zone use <application>nsupdate</application> with the " +"new option <option>-l</option>. <application>rndc</application> has also " +"grown the ability to sign zones with keys in the key repository, using the " +"option <option>sign</option>. To tell <acronym>BIND</acronym> to use this " +"automatic signing and zone updating for <systemitem class=\"fqdomainname" +"\">example.com</systemitem>, add the following to <filename>named.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:56458 +#, no-wrap +msgid "" +"zone example.com {\n" +"\ttype master;\n" +"\tkey-directory \"/etc/named/keys\";\n" +"\tupdate-policy local;\n" +"\tauto-dnssec maintain;\n" +"\tfile \"/etc/named/dynamic/example.com.zone\";\n" +"};" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:56466 +msgid "" +"After making these changes, generate keys for the zone as explained in <xref " +"linkend=\"dns-dnssec-auth\"/>, put those keys in the key repository given as " +"the argument to the <literal>key-directory</literal> in the zone " +"configuration and the zone will be signed automatically. Updates to a zone " +"configured this way must be done using <application>nsupdate</application>, " +"which will take care of re-signing the zone with the new data added. For " +"further details, see <xref linkend=\"dns-read\"/> and the <acronym>BIND</" +"acronym> documentation." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56482 +msgid "" +"Although BIND is the most common implementation of <acronym>DNS</acronym>, " +"there is always the issue of security. Possible and exploitable security " +"holes are sometimes found." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56487 +msgid "" +"While FreeBSD automatically drops <application>named</application> into a " +"<citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> environment; there are several other security mechanisms in " +"place which could help to lure off possible <acronym>DNS</acronym> service " +"attacks." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56493 +msgid "" +"It is always good idea to read <link xlink:href=\"http://www.cert.org/" +"\">CERT</link>'s security advisories and to subscribe to the <link xlink:" +"href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-security-" +"notifications\">FreeBSD security notifications mailing list</link> to stay " +"up to date with the current Internet and FreeBSD security issues." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:56500 +msgid "" +"If a problem arises, keeping sources up to date and having a fresh build of " +"<application>named</application> may help." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:56507 +msgid "Further Reading" +msgstr "延伸閱讀" + +#. (itstool) path: sect3/para +#: book.translate.xml:56509 +msgid "" +"BIND/<application>named</application> manual pages: " +"<citerefentry><refentrytitle>rndc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> <citerefentry><refentrytitle>named</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> " +"<citerefentry><refentrytitle>named.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> <citerefentry><refentrytitle>nsupdate</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> " +"<citerefentry><refentrytitle>dnssec-signzone</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> <citerefentry><refentrytitle>dnssec-keygen</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56516 +msgid "" +"<link xlink:href=\"https://www.isc.org/software/bind\">Official ISC BIND " +"Page</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56521 +msgid "" +"<link xlink:href=\"https://www.isc.org/software/guild\">Official ISC BIND " +"Forum</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56526 +msgid "" +"<link xlink:href=\"http://www.oreilly.com/catalog/dns5/\">O'Reilly " +"<acronym>DNS</acronym> and BIND 5th Edition</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56532 +msgid "" +"<link xlink:href=\"http://www.root-dnssec.org/documentation/\">Root " +"<acronym>DNSSEC</acronym></link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56537 +msgid "" +"<link xlink:href=\"http://data.iana.org/root-anchors/draft-icann-dnssec-" +"trust-anchor.html\"><acronym>DNSSEC</acronym> Trust Anchor Publication for " +"the Root Zone</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56543 +msgid "" +"<link xlink:href=\"http://tools.ietf.org/html/rfc1034\">RFC1034 - Domain " +"Names - Concepts and Facilities</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56548 +msgid "" +"<link xlink:href=\"http://tools.ietf.org/html/rfc1035\">RFC1035 - Domain " +"Names - Implementation and Specification</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56554 +msgid "" +"<link xlink:href=\"http://tools.ietf.org/html/rfc4033\">RFC4033 - " +"<acronym>DNS</acronym> Security Introduction and Requirements</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56560 +msgid "" +"<link xlink:href=\"http://tools.ietf.org/html/rfc4034\">RFC4034 - Resource " +"Records for the <acronym>DNS</acronym> Security Extensions</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56566 +msgid "" +"<link xlink:href=\"http://tools.ietf.org/html/rfc4035\">RFC4035 - Protocol " +"Modifications for the <acronym>DNS</acronym> Security Extensions</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56573 +msgid "" +"<link xlink:href=\"http://tools.ietf.org/html/rfc4641\">RFC4641 - DNSSEC " +"Operational Practices</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56578 +msgid "" +"<link xlink:href=\"http://tools.ietf.org/html/rfc5011\">RFC 5011 - Automated " +"Updates of <acronym>DNS</acronym> Security (<acronym>DNSSEC</acronym> Trust " +"Anchors</link>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:56590 +msgid "Apache HTTP Server" +msgstr "Apache HTTP 伺服器" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:56603 +msgid "<primary>web servers</primary> <secondary>setting up</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:56607 +msgid "" +"The open source <application>Apache HTTP Server</application> is the most " +"widely used web server. FreeBSD does not install this web server by default, " +"but it can be installed from the <package>www/apache24</package> package or " +"port." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:56613 +msgid "" +"This section summarizes how to configure and start version 2.<replaceable>x</" +"replaceable> of the <application>Apache HTTP Server</application> on " +"FreeBSD. For more detailed information about <application>Apache</" +"application> 2.X and its configuration directives, refer to <link xlink:href=" +"\"http://httpd.apache.org/\">httpd.apache.org</link>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:56620 +msgid "Configuring and Starting Apache" +msgstr "設定並啟動 Apache" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:56622 +msgid "<primary>Apache</primary> <secondary>configuration file</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56625 +msgid "" +"In FreeBSD, the main <application>Apache HTTP Server</application> " +"configuration file is installed as <filename>/usr/local/etc/" +"apache2<replaceable>x</replaceable>/httpd.conf</filename>, where " +"<replaceable>x</replaceable> represents the version number. This " +"<acronym>ASCII</acronym> text file begins comment lines with a <literal>#</" +"literal>. The most frequently modified directives are:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:56635 +msgid "<literal>ServerRoot \"/usr/local\"</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56638 +msgid "" +"Specifies the default directory hierarchy for the <application>Apache</" +"application> installation. Binaries are stored in the <filename>bin</" +"filename> and <filename>sbin</filename> subdirectories of the server root " +"and configuration files are stored in the <filename>etc/" +"apache2<replaceable>x</replaceable></filename> subdirectory." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:56648 +msgid "<literal>ServerAdmin you@example.com</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56651 +msgid "" +"Change this to the email address to receive problems with the server. This " +"address also appears on some server-generated pages, such as error documents." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:56658 +msgid "<literal>ServerName www.example.com:80</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56662 +msgid "" +"Allows an administrator to set a hostname which is sent back to clients for " +"the server. For example, <systemitem>www</systemitem> can be used instead of " +"the actual hostname. If the system does not have a registered <acronym>DNS</" +"acronym> name, enter its <acronym>IP</acronym> address instead. If the " +"server will listen on an alternate report, change <literal>80</literal> to " +"the alternate port number." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:56675 +msgid "" +"<literal>DocumentRoot \"/usr/local/www/apache2<replaceable>x</replaceable>/" +"data\"</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:56679 +msgid "" +"The directory where documents will be served from. By default, all requests " +"are taken from this directory, but symbolic links and aliases may be used to " +"point to other locations." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56687 +msgid "" +"It is always a good idea to make a backup copy of the default " +"<application>Apache</application> configuration file before making changes. " +"When the configuration of <application>Apache</application> is complete, " +"save the file and verify the configuration using <command>apachectl</" +"command>. Running <command>apachectl configtest</command> should return " +"<literal>Syntax OK</literal>." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:56696 +msgid "<primary>Apache</primary> <secondary>starting or stopping</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56699 +msgid "" +"To launch <application>Apache</application> at system startup, add the " +"following line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:56703 +#, no-wrap +msgid "apache<replaceable>24</replaceable>_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56705 +msgid "" +"If <application>Apache</application> should be started with non-default " +"options, the following line may be added to <filename>/etc/rc.conf</" +"filename> to specify the needed flags:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:56710 +#, no-wrap +msgid "apache<replaceable>24</replaceable>_flags=\"\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56712 +msgid "" +"If <application>apachectl</application> does not report configuration " +"errors, start <command>httpd</command> now:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:56716 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service apache<replaceable>24</replaceable> start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56718 +msgid "" +"The <command>httpd</command> service can be tested by entering " +"<literal>http://<replaceable>localhost</replaceable></literal> in a web " +"browser, replacing <replaceable>localhost</replaceable> with the fully-" +"qualified domain name of the machine running <command>httpd</command>. The " +"default web page that is displayed is <filename>/usr/local/www/" +"apache<replaceable>24</replaceable>/data/index.html</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56727 +msgid "" +"The <application>Apache</application> configuration can be tested for errors " +"after making subsequent configuration changes while <command>httpd</command> " +"is running using the following command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:56732 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service apache<replaceable>24</replaceable> configtest</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:56735 +msgid "" +"It is important to note that <literal>configtest</literal> is not an " +"<citerefentry><refentrytitle>rc</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> standard, and should not be expected to work for all startup " +"scripts." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:56743 +msgid "Virtual Hosting" +msgstr "虛擬主機" + +#. (itstool) path: sect2/para +#: book.translate.xml:56745 +msgid "" +"Virtual hosting allows multiple websites to run on one <application>Apache</" +"application> server. The virtual hosts can be <firstterm>IP-based</" +"firstterm> or <firstterm>name-based</firstterm>. <acronym>IP</acronym>-based " +"virtual hosting uses a different <acronym>IP</acronym> address for each " +"website. Name-based virtual hosting uses the clients HTTP/1.1 headers to " +"figure out the hostname, which allows the websites to share the same " +"<acronym>IP</acronym> address." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56755 +msgid "" +"To setup <application>Apache</application> to use name-based virtual " +"hosting, add a <literal>VirtualHost</literal> block for each website. For " +"example, for the webserver named <systemitem class=\"fqdomainname\">www." +"domain.tld</systemitem> with a virtual domain of <systemitem class=" +"\"fqdomainname\">www.someotherdomain.tld</systemitem>, add the following " +"entries to <filename>httpd.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:56763 +#, no-wrap +msgid "" +"<VirtualHost *>\n" +" ServerName <replaceable>www.domain.tld</replaceable>\n" +" DocumentRoot <replaceable>/www/domain.tld</replaceable>\n" +"</VirtualHost>\n" +"\n" +"<VirtualHost *>\n" +" ServerName <replaceable>www.someotherdomain.tld</replaceable>\n" +" DocumentRoot <replaceable>/www/someotherdomain.tld</replaceable>\n" +"</VirtualHost>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56773 +msgid "" +"For each virtual host, replace the values for <literal>ServerName</literal> " +"and <literal>DocumentRoot</literal> with the values to be used." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56778 +msgid "" +"For more information about setting up virtual hosts, consult the official " +"<application>Apache</application> documentation at: <uri xlink:href=\"http://" +"httpd.apache.org/docs/vhosts/\">http://httpd.apache.org/docs/vhosts/</uri>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:56784 +msgid "Apache Modules" +msgstr "Apache 模組" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:56786 +msgid "<primary>Apache</primary> <secondary>modules</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56789 +msgid "" +"<application>Apache</application> uses modules to augment the functionality " +"provided by the basic server. Refer to <uri xlink:href=\"http://httpd.apache." +"org/docs/current/mod/\">http://httpd.apache.org/docs/current/mod/</uri> for " +"a complete listing of and the configuration details for the available " +"modules." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56794 +msgid "" +"In FreeBSD, some modules can be compiled with the <package>www/apache24</" +"package> port. Type <command>make config</command> within <filename>/usr/" +"ports/www/apache24</filename> to see which modules are available and which " +"are enabled by default. If the module is not compiled with the port, the " +"FreeBSD Ports Collection provides an easy way to install many modules. This " +"section describes three of the most commonly used modules." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:56805 +msgid "<filename>mod_ssl</filename>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:56807 +msgid "<primary>web servers</primary> <secondary>secure</secondary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:56811 +msgid "<primary>SSL</primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:56812 +msgid "<primary>cryptography</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56814 +msgid "" +"The <filename>mod_ssl</filename> module uses the <application>OpenSSL</" +"application> library to provide strong cryptography via the Secure Sockets " +"Layer (<acronym>SSLv3</acronym>) and Transport Layer Security " +"(<acronym>TLSv1</acronym>) protocols. This module provides everything " +"necessary to request a signed certificate from a trusted certificate signing " +"authority to run a secure web server on FreeBSD." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56823 +msgid "" +"In FreeBSD, <filename>mod_ssl</filename> module is enabled by default in " +"both the package and the port. The available configuration directives are " +"explained at <uri xlink:href=\"http://httpd.apache.org/docs/current/mod/" +"mod_ssl.html\">http://httpd.apache.org/docs/current/mod/mod_ssl.html</uri>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:56829 +msgid "<filename>mod_perl</filename>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:56831 +msgid "<primary>mod_perl</primary> <secondary>Perl</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56836 +msgid "" +"The <filename>mod_perl</filename> module makes it possible to write " +"<application>Apache</application> modules in <application>Perl</" +"application>. In addition, the persistent interpreter embedded in the server " +"avoids the overhead of starting an external interpreter and the penalty of " +"<application>Perl</application> start-up time." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56844 +msgid "" +"The <filename>mod_perl</filename> can be installed using the <package>www/" +"mod_perl2</package> package or port. Documentation for using this module can " +"be found at <uri xlink:href=\"http://perl.apache.org/docs/2.0/index.html" +"\">http://perl.apache.org/docs/2.0/index.html</uri>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:56851 +msgid "<filename>mod_php</filename>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:56864 +msgid "<primary>mod_php</primary> <secondary>PHP</secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56869 +msgid "" +"<firstterm>PHP: Hypertext Preprocessor</firstterm> (<acronym>PHP</acronym>) " +"is a general-purpose scripting language that is especially suited for web " +"development. Capable of being embedded into <acronym>HTML</acronym>, its " +"syntax draws upon <application>C</application>, <trademark>Java</trademark>, " +"and <application>Perl</application> with the intention of allowing web " +"developers to write dynamically generated webpages quickly." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56878 +msgid "" +"To gain support for <acronym>PHP</acronym>5 for the <application>Apache</" +"application> web server, install the <package>www/mod_php56</package> " +"package or port. This will install and configure the modules required to " +"support dynamic <acronym>PHP</acronym> applications. The installation will " +"automatically add this line to <filename>/usr/local/etc/" +"apache2<replaceable>4</replaceable>/httpd.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:56886 +#, no-wrap +msgid "LoadModule php5_module libexec/apache24/libphp5.so" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56901 +msgid "" +"Then, perform a graceful restart to load the <acronym>PHP</acronym> module:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:56904 book.translate.xml:56923 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>apachectl graceful</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56906 +msgid "" +"The <acronym>PHP</acronym> support provided by <package>www/mod_php56</" +"package> is limited. Additional support can be installed using the " +"<package>lang/php56-extensions</package> port which provides a menu driven " +"interface to the available <acronym>PHP</acronym> extensions." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56913 +msgid "" +"Alternatively, individual extensions can be installed using the appropriate " +"port. For instance, to add <acronym>PHP</acronym> support for the " +"<application>MySQL</application> database server, install <package>databases/" +"php56-mysql</package>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56919 +msgid "" +"After installing an extension, the <application>Apache</application> server " +"must be reloaded to pick up the new configuration changes:" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:56928 +msgid "Dynamic Websites" +msgstr "動態網站" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:56930 +msgid "<primary>web servers</primary> <secondary>dynamic</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:56935 +msgid "" +"In addition to <application>mod_perl</application> and <application>mod_php</" +"application>, other languages are available for creating dynamic web " +"content. These include <application>Django</application> and " +"<application>Ruby on Rails</application>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:56942 +msgid "Django" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:56944 +msgid "<primary>Python</primary>" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:56945 +msgid "<primary>Django</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56947 +msgid "" +"<application>Django</application> is a BSD-licensed framework designed to " +"allow developers to write high performance, elegant web applications " +"quickly. It provides an object-relational mapper so that data types are " +"developed as <application>Python</application> objects. A rich dynamic " +"database-access <acronym>API</acronym> is provided for those objects without " +"the developer ever having to write <acronym>SQL</acronym>. It also provides " +"an extensible template system so that the logic of the application is " +"separated from the <acronym>HTML</acronym> presentation." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56959 +msgid "" +"Django depends on <filename>mod_python</filename>, and an <acronym>SQL</" +"acronym> database engine. In FreeBSD, the <package>www/py-django</package> " +"port automatically installs <filename>mod_python</filename> and supports the " +"<application>PostgreSQL</application>, <application>MySQL</application>, or " +"<application>SQLite</application> databases, with the default being " +"<application>SQLite</application>. To change the database engine, type " +"<command>make config</command> within <filename>/usr/ports/www/py-django</" +"filename>, then install the port." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56971 +msgid "" +"Once <application>Django</application> is installed, the application will " +"need a project directory along with the <application>Apache</application> " +"configuration in order to use the embedded <application>Python</application> " +"interpreter. This interpreter is used to call the application for specific " +"<acronym>URL</acronym>s on the site." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56979 +msgid "" +"To configure <application>Apache</application> to pass requests for certain " +"<acronym>URL</acronym>s to the web application, add the following to " +"<filename>httpd.conf</filename>, specifying the full path to the project " +"directory:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:56985 +#, no-wrap +msgid "" +"<Location \"/\">\n" +" SetHandler python-program\n" +" PythonPath \"['<replaceable>/dir/to/the/django/packages/</replaceable>'] + sys.path\"\n" +" PythonHandler django.core.handlers.modpython\n" +" SetEnv DJANGO_SETTINGS_MODULE mysite.settings\n" +" PythonAutoReload On\n" +" PythonDebug On\n" +"</Location>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:56994 +msgid "" +"Refer to <uri xlink:href=\"https://docs.djangoproject.com/en/1.6/\">https://" +"docs.djangoproject.com/en/1.6/</uri> for more information on how to use " +"<application>Django</application>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:57000 +msgid "Ruby on Rails" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:57002 +msgid "<primary>Ruby on Rails</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57004 +msgid "" +"<application>Ruby on Rails</application> is another open source web " +"framework that provides a full development stack. It is optimized to make " +"web developers more productive and capable of writing powerful applications " +"quickly. On FreeBSD, it can be installed using the <package>www/rubygem-" +"rails</package> package or port." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57011 +msgid "" +"Refer to <uri xlink:href=\"http://rubyonrails.org/documentation\">http://" +"rubyonrails.org/documentation</uri> for more information on how to use " +"<application>Ruby on Rails</application>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:57030 +msgid "File Transfer Protocol (<acronym>FTP</acronym>)" +msgstr "檔案傳輸協定 (<acronym>FTP</acronym>)" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:57032 +msgid "<primary><acronym>FTP</acronym> servers</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57035 +msgid "" +"The File Transfer Protocol (<acronym>FTP</acronym>) provides users with a " +"simple way to transfer files to and from an <acronym>FTP</acronym> server. " +"FreeBSD includes <acronym>FTP</acronym> server software, <application>ftpd</" +"application>, in the base system." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57041 +msgid "" +"FreeBSD provides several configuration files for controlling access to the " +"<acronym>FTP</acronym> server. This section summarizes these files. Refer to " +"<citerefentry><refentrytitle>ftpd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for more details about the built-in <acronym>FTP</acronym> " +"server." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57049 +msgid "" +"The most important configuration step is deciding which accounts will be " +"allowed access to the <acronym>FTP</acronym> server. A FreeBSD system has a " +"number of system accounts which should not be allowed <acronym>FTP</acronym> " +"access. The list of users disallowed any <acronym>FTP</acronym> access can " +"be found in <filename>/etc/ftpusers</filename>. By default, it includes " +"system accounts. Additional users that should not be allowed access to " +"<acronym>FTP</acronym> can be added." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57058 +msgid "" +"In some cases it may be desirable to restrict the access of some users " +"without preventing them completely from using <acronym>FTP</acronym>. This " +"can be accomplished be creating <filename>/etc/ftpchroot</filename> as " +"described in <citerefentry><refentrytitle>ftpchroot</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>. This file lists users " +"and groups subject to <acronym>FTP</acronym> access restrictions." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:57065 book.translate.xml:57123 +msgid "" +"<primary><acronym>FTP</acronym></primary> <secondary>anonymous</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57070 +msgid "" +"To enable anonymous <acronym>FTP</acronym> access to the server, create a " +"user named <systemitem class=\"username\">ftp</systemitem> on the FreeBSD " +"system. Users will then be able to log on to the <acronym>FTP</acronym> " +"server with a username of <systemitem class=\"username\">ftp</systemitem> or " +"<systemitem class=\"username\">anonymous</systemitem>. When prompted for the " +"password, any input will be accepted, but by convention, an email address " +"should be used as the password. The <acronym>FTP</acronym> server will call " +"<citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></" +"citerefentry> when an anonymous user logs in, to restrict access to only the " +"home directory of the <systemitem class=\"username\">ftp</systemitem> user." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57081 +msgid "" +"There are two text files that can be created to specify welcome messages to " +"be displayed to <acronym>FTP</acronym> clients. The contents of <filename>/" +"etc/ftpwelcome</filename> will be displayed to users before they reach the " +"login prompt. After a successful login, the contents of <filename>/etc/" +"ftpmotd</filename> will be displayed. Note that the path to this file is " +"relative to the login environment, so the contents of <filename>~ftp/etc/" +"ftpmotd</filename> would be displayed for anonymous users." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57093 +msgid "" +"Once the <acronym>FTP</acronym> server has been configured, set the " +"appropriate variable in <filename>/etc/rc.conf</filename> to start the " +"service during boot:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57098 +#, no-wrap +msgid "ftpd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57100 +msgid "To start the service now:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:57102 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service ftpd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57104 +msgid "Test the connection to the <acronym>FTP</acronym> server by typing:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:57107 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>ftp localhost</userinput>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:57110 +msgid "" +"<primary>log files</primary> <secondary><acronym>FTP</acronym></secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57113 +msgid "" +"The <application>ftpd</application> daemon uses " +"<citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></" +"citerefentry> to log messages. By default, the system log daemon will write " +"messages related to <acronym>FTP</acronym> in <filename>/var/log/xferlog</" +"filename>. The location of the <acronym>FTP</acronym> log can be modified by " +"changing the following line in <filename>/etc/syslog.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57121 +#, no-wrap +msgid "ftp.info /var/log/xferlog" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:57129 +msgid "" +"Be aware of the potential problems involved with running an anonymous " +"<acronym>FTP</acronym> server. In particular, think twice about allowing " +"anonymous users to upload files. It may turn out that the <acronym>FTP</" +"acronym> site becomes a forum for the trade of unlicensed commercial " +"software or worse. If anonymous <acronym>FTP</acronym> uploads are required, " +"then verify the permissions so that these files can not be read by other " +"anonymous users until they have been reviewed by an administrator." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:57154 +msgid "" +"File and Print Services for <trademark class=\"registered\">Microsoft</" +"trademark> <trademark class=\"registered\">Windows</trademark> Clients " +"(Samba)" +msgstr "" +"<trademark class=\"registered\">Microsoft</trademark> <trademark class=" +"\"registered\">Windows</trademark> 用戶端檔案與列印服務 (Samba)" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:57157 +msgid "<primary>Samba server</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:57158 +msgid "<primary>Microsoft Windows</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:57159 +msgid "<primary>file server</primary> <secondary>Windows clients</secondary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:57163 +msgid "<primary>print server</primary> <secondary>Windows clients</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57168 +msgid "" +"<application>Samba</application> is a popular open source software package " +"that provides file and print services using the <acronym>SMB/CIFS</acronym> " +"protocol. This protocol is built into <trademark class=\"registered" +"\">Microsoft</trademark> <trademark class=\"registered\">Windows</trademark> " +"systems. It can be added to non-<trademark class=\"registered\">Microsoft</" +"trademark> <trademark class=\"registered\">Windows</trademark> systems by " +"installing the <application>Samba</application> client libraries. The " +"protocol allows clients to access shared data and printers. These shares can " +"be mapped as a local disk drive and shared printers can be used as if they " +"were local printers." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57178 +msgid "" +"On FreeBSD, the <application>Samba</application> client libraries can be " +"installed using the <package>net/samba-smbclient</package> port or package. " +"The client provides the ability for a FreeBSD system to access <acronym>SMB/" +"CIFS</acronym> shares in a <trademark class=\"registered\">Microsoft</" +"trademark> <trademark class=\"registered\">Windows</trademark> network." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57185 +msgid "" +"A FreeBSD system can also be configured to act as a <application>Samba</" +"application> server by installing the <package>net/samba43</package> port or " +"package. This allows the administrator to create <acronym>SMB</acronym>/" +"<acronym>CIFS</acronym>shares on the FreeBSD system which can be accessed by " +"clients running <trademark class=\"registered\">Microsoft</" +"trademark> <trademark class=\"registered\">Windows</trademark> or the " +"<application>Samba</application> client libraries." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:57194 +msgid "Server Configuration" +msgstr "伺服器設定" + +#. (itstool) path: sect2/para +#: book.translate.xml:57196 +msgid "" +"<application>Samba</application> is configured in <filename>/usr/local/etc/" +"smb4.conf</filename>. This file must be created before <application>Samba</" +"application> can be used." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57201 +msgid "" +"A simple <filename>smb4.conf</filename> to share directories and printers " +"with <trademark class=\"registered\">Windows</trademark> clients in a " +"workgroup is shown here. For more complex setups involving LDAP or Active " +"Directory, it is easier to use <citerefentry><refentrytitle>samba-tool</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to create the initial " +"<filename>smb4.conf</filename>." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57208 +#, no-wrap +msgid "" +"[global]\n" +"workgroup = WORKGROUP\n" +"server string = Samba Server Version %v\n" +"netbios name = ExampleMachine\n" +"wins support = Yes\n" +"security = user\n" +"passdb backend = tdbsam\n" +"\n" +"# Example: share /usr/src accessible only to 'developer' user\n" +"[src]\n" +"path = /usr/src\n" +"valid users = developer\n" +"writable = yes\n" +"browsable = yes\n" +"read only = no\n" +"guest ok = no\n" +"public = no\n" +"create mask = 0666\n" +"directory mask = 0755" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:57229 +msgid "Global Settings" +msgstr "全域設定" + +#. (itstool) path: sect3/para +#: book.translate.xml:57231 +msgid "" +"Settings that describe the network are added in <filename>/usr/local/etc/" +"smb4.conf</filename>:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:57236 +msgid "<literal>workgroup</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:57239 +msgid "The name of the workgroup to be served." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:57244 +msgid "<literal>netbios name</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:57247 +msgid "" +"The NetBIOS name by which a <application>Samba</application> server is " +"known. By default, it is the same as the first component of the host's " +"<acronym>DNS</acronym> name." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:57255 +msgid "<literal>server string</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:57258 +msgid "" +"The string that will be displayed in the output of <command>net view</" +"command> and some other networking tools that seek to display descriptive " +"text about the server." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:57266 +msgid "<literal>wins support</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:57269 +msgid "" +"Whether <application>Samba</application> will act as a <acronym>WINS</" +"acronym> server. Do not enable support for <acronym>WINS</acronym> on more " +"than one server on the network." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:57279 +msgid "Security Settings" +msgstr "安全性設定" + +#. (itstool) path: sect3/para +#: book.translate.xml:57281 +msgid "" +"The most important settings in <filename>/usr/local/etc/smb4.conf</filename> " +"are the security model and the backend password format. These directives " +"control the options:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:57288 +msgid "<literal>security</literal>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:57291 +msgid "" +"The most common settings are <literal>security = share</literal> and " +"<literal>security = user</literal>. If the clients use usernames that are " +"the same as their usernames on the FreeBSD machine, user level security " +"should be used. This is the default security policy and it requires clients " +"to first log on before they can access shared resources." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:57300 +msgid "" +"In share level security, clients do not need to log onto the server with a " +"valid username and password before attempting to connect to a shared " +"resource. This was the default security model for older versions of " +"<application>Samba</application>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:57309 +msgid "<literal>passdb backend</literal>" +msgstr "" + +#. (itstool) path: listitem/indexterm +#: book.translate.xml:57312 +msgid "<primary>NIS+</primary>" +msgstr "" + +#. (itstool) path: listitem/indexterm +#: book.translate.xml:57314 +msgid "<primary>SQL database</primary>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:57316 +msgid "" +"<application>Samba</application> has several different backend " +"authentication models. Clients may be authenticated with LDAP, NIS+, an SQL " +"database, or a modified password file. The recommended authentication " +"method, <literal>tdbsam</literal>, is ideal for simple networks and is " +"covered here. For larger or more complex networks, <literal>ldapsam</" +"literal> is recommended. <literal>smbpasswd</literal> was the former default " +"and is now obsolete." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:57333 +msgid "<application>Samba</application> Users" +msgstr "<application>Samba</application> 使用者" + +#. (itstool) path: sect3/para +#: book.translate.xml:57335 +msgid "" +"FreeBSD user accounts must be mapped to the <literal>SambaSAMAccount</" +"literal> database for <trademark class=\"registered\">Windows</trademark> " +"clients to access the share. Map existing FreeBSD user accounts using " +"<citerefentry><refentrytitle>pdbedit</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:57341 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pdbedit -a <replaceable>username</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57343 +msgid "" +"This section has only mentioned the most commonly used settings. Refer to " +"the <link xlink:href=\"http://www.samba.org/samba/docs/man/Samba-HOWTO-" +"Collection/\">Official Samba HOWTO</link> for additional information about " +"the available configuration options." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:57351 +msgid "Starting <application>Samba</application>" +msgstr "啟動 <application>Samba</application>" + +#. (itstool) path: sect2/para +#: book.translate.xml:57353 +msgid "" +"To enable <application>Samba</application> at boot time, add the following " +"line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57357 +#, no-wrap +msgid "samba_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57359 +msgid "To start <application>Samba</application> now:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:57361 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service samba start</userinput>\n" +"Starting SAMBA: removing stale tdbs :\n" +"Starting nmbd.\n" +"Starting smbd." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57366 +msgid "" +"<application>Samba</application> consists of three separate daemons. Both " +"the <application>nmbd</application> and <application>smbd</application> " +"daemons are started by <varname>samba_enable</varname>. If winbind name " +"resolution is also required, set:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57372 +#, no-wrap +msgid "winbindd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57374 +msgid "<application>Samba</application> can be stopped at any time by typing:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:57377 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service samba stop</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57379 +msgid "" +"<application>Samba</application> is a complex software suite with " +"functionality that allows broad integration with <trademark class=" +"\"registered\">Microsoft</trademark> <trademark class=\"registered" +"\">Windows</trademark> networks. For more information about functionality " +"beyond the basic configuration described here, refer to <uri xlink:href=" +"\"http://www.samba.org\">http://www.samba.org</uri>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:57399 +msgid "Clock Synchronization with NTP" +msgstr "NTP 時間校對" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:57401 +msgid "<primary>NTP</primary> <secondary>ntpd</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57405 +msgid "" +"Over time, a computer's clock is prone to drift. This is problematic as many " +"network services require the computers on a network to share the same " +"accurate time. Accurate time is also needed to ensure that file timestamps " +"stay consistent. The Network Time Protocol (<acronym>NTP</acronym>) is one " +"way to provide clock accuracy in a network." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57412 +msgid "" +"FreeBSD includes <citerefentry><refentrytitle>ntpd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> which can be " +"configured to query other <acronym>NTP</acronym> servers in order to " +"synchronize the clock on that machine or to provide time services to other " +"computers in the network. The servers which are queried can be local to the " +"network or provided by an <acronym>ISP</acronym>. In addition, an <link " +"xlink:href=\"http://support.ntp.org/bin/view/Servers/WebHome\">online list " +"of publicly accessible <acronym>NTP</acronym> servers</link> is available. " +"When choosing a public <acronym>NTP</acronym> server, select one that is " +"geographically close and review its usage policy." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57423 +msgid "" +"Choosing several <acronym>NTP</acronym> servers is recommended in case one " +"of the servers becomes unreachable or its clock proves unreliable. As " +"<application>ntpd</application> receives responses, it favors reliable " +"servers over the less reliable ones." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57429 +msgid "" +"This section describes how to configure <application>ntpd</application> on " +"FreeBSD. Further documentation can be found in <filename>/usr/share/doc/ntp/" +"</filename> in HTML format." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:57435 +msgid "<acronym>NTP</acronym> Configuration" +msgstr "<acronym>NTP</acronym> 設定" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:57437 +msgid "<primary>NTP</primary> <secondary>ntp.conf</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57441 +msgid "" +"On FreeBSD, the built-in <application>ntpd</application> can be used to " +"synchronize a system's clock. To enable <application>ntpd</application> at " +"boot time, add <literal>ntpd_enable=\"YES\"</literal> to <filename>/etc/rc." +"conf</filename>. Additional variables can be specified in <filename>/etc/rc." +"conf</filename>. Refer to <citerefentry><refentrytitle>rc.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>ntpd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for details." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57450 +msgid "" +"This application reads <filename>/etc/ntp.conf</filename> to determine which " +"<acronym>NTP</acronym> servers to query. Here is a simple example of an " +"<filename>/etc/ntp.conf</filename>:" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:57456 +msgid "Sample <filename>/etc/ntp.conf</filename>" +msgstr "<filename>/etc/ntp.conf</filename> 範例" + +#. (itstool) path: example/programlisting +#: book.translate.xml:57458 +#, no-wrap +msgid "" +"server ntplocal.example.com prefer\n" +"server timeserver.example.org\n" +"server ntp2a.example.net\n" +"\n" +"driftfile /var/db/ntp.drift" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57465 +msgid "" +"The format of this file is described in <citerefentry><refentrytitle>ntp." +"conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. The " +"<literal>server</literal> option specifies which servers to query, with one " +"server listed on each line. If a server entry includes <literal>prefer</" +"literal>, that server is preferred over other servers. A response from a " +"preferred server will be discarded if it differs significantly from other " +"servers' responses; otherwise it will be used. The <literal>prefer</literal> " +"argument should only be used for <acronym>NTP</acronym> servers that are " +"known to be highly accurate, such as those with special time monitoring " +"hardware." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57477 +msgid "" +"The <literal>driftfile</literal> entry specifies which file is used to store " +"the system clock's frequency offset. <application>ntpd</application> uses " +"this to automatically compensate for the clock's natural drift, allowing it " +"to maintain a reasonably correct setting even if it is cut off from all " +"external time sources for a period of time. This file also stores " +"information about previous responses from <acronym>NTP</acronym> servers. " +"Since this file contains internal information for <acronym>NTP</acronym>, it " +"should not be modified." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57488 +msgid "" +"By default, an <acronym>NTP</acronym> server is accessible to any network " +"host. The <literal>restrict</literal> option in <filename>/etc/ntp.conf</" +"filename> can be used to control which systems can access the server. For " +"example, to deny all machines from accessing the <acronym>NTP</acronym> " +"server, add the following line to <filename>/etc/ntp.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57496 +#, no-wrap +msgid "restrict default ignore" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:57499 +msgid "" +"This will also prevent access from other <acronym>NTP</acronym> servers. If " +"there is a need to synchronize with an external <acronym>NTP</acronym> " +"server, allow only that specific server. Refer to " +"<citerefentry><refentrytitle>ntp.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57506 +msgid "" +"To allow machines within the network to synchronize their clocks with the " +"server, but ensure they are not allowed to configure the server or be used " +"as peers to synchronize against, instead use:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57511 +#, no-wrap +msgid "restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57513 +msgid "" +"where <systemitem class=\"ipaddress\">192.168.1.0</systemitem> is the local " +"network address and <systemitem class=\"netmask\">255.255.255.0</systemitem> " +"is the network's subnet mask." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57517 +msgid "" +"Multiple <literal>restrict</literal> entries are supported. For more " +"details, refer to the <literal>Access Control Support</literal> subsection " +"of <citerefentry><refentrytitle>ntp.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57522 +msgid "" +"Once <literal>ntpd_enable=\"YES\"</literal> has been added to <filename>/etc/" +"rc.conf</filename>, <application>ntpd</application> can be started now " +"without rebooting the system by typing:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:57527 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service ntpd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:57531 +msgid "Using <acronym>NTP</acronym> with a <acronym>PPP</acronym> Connection" +msgstr "在 <acronym>PPP</acronym> 連線使用 <acronym>NTP</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:57534 +msgid "" +"<application>ntpd</application> does not need a permanent connection to the " +"Internet to function properly. However, if a <acronym>PPP</acronym> " +"connection is configured to dial out on demand, <acronym>NTP</acronym> " +"traffic should be prevented from triggering a dial out or keeping the " +"connection alive. This can be configured with <literal>filter</literal> " +"directives in <filename>/etc/ppp/ppp.conf</filename>. For example:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57543 +#, no-wrap +msgid "" +" set filter dial 0 deny udp src eq 123\n" +" # Prevent NTP traffic from initiating dial out\n" +" set filter dial 1 permit 0 0\n" +" set filter alive 0 deny udp src eq 123\n" +" # Prevent incoming NTP traffic from keeping the connection open\n" +" set filter alive 1 deny udp dst eq 123\n" +" # Prevent outgoing NTP traffic from keeping the connection open\n" +" set filter alive 2 permit 0/0 0/0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57552 +msgid "" +"For more details, refer to the <literal>PACKET FILTERING</literal> section " +"in <citerefentry><refentrytitle>ppp</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and the examples in <filename>/usr/share/examples/ppp/</" +"filename>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:57558 +msgid "" +"Some Internet access providers block low-numbered ports, preventing NTP from " +"functioning since replies never reach the machine." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:57577 +msgid "<acronym>iSCSI</acronym> Initiator and Target Configuration" +msgstr "<acronym>iSCSI</acronym> Initiator 與 Target 設定" + +#. (itstool) path: sect1/para +#: book.translate.xml:57580 +msgid "" +"<acronym>iSCSI</acronym> is a way to share storage over a network. Unlike " +"<acronym>NFS</acronym>, which works at the file system level, " +"<acronym>iSCSI</acronym> works at the block device level." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57585 +msgid "" +"In <acronym>iSCSI</acronym> terminology, the system that shares the storage " +"is known as the <emphasis>target</emphasis>. The storage can be a physical " +"disk, or an area representing multiple disks or a portion of a physical " +"disk. For example, if the disk(s) are formatted with <acronym>ZFS</acronym>, " +"a zvol can be created to use as the <acronym>iSCSI</acronym> storage." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57593 +msgid "" +"The clients which access the <acronym>iSCSI</acronym> storage are called " +"<emphasis>initiators</emphasis>. To initiators, the storage available " +"through <acronym>iSCSI</acronym> appears as a raw, unformatted disk known as " +"a <acronym>LUN</acronym>. Device nodes for the disk appear in <filename>/dev/" +"</filename> and the device must be separately formatted and mounted." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57601 +msgid "" +"Beginning with 10.0-RELEASE, FreeBSD provides a native, kernel-based " +"<acronym>iSCSI</acronym> target and initiator. This section describes how to " +"configure a FreeBSD system as a target or an initiator." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:57607 +msgid "Configuring an <acronym>iSCSI</acronym> Target" +msgstr "設定 <acronym>iSCSI</acronym> Target" + +#. (itstool) path: note/para +#: book.translate.xml:57610 +msgid "" +"The native <acronym>iSCSI</acronym> target is supported starting with " +"FreeBSD 10.0-RELEASE. To use <acronym>iSCSI</acronym> in older versions of " +"FreeBSD, install a userspace target from the Ports Collection, such as " +"<package>net/istgt</package>. This chapter only describes the native target." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57618 +msgid "" +"To configure an <acronym>iSCSI</acronym> target, create the <filename>/etc/" +"ctl.conf</filename> configuration file, add a line to <filename>/etc/rc." +"conf</filename> to make sure the <citerefentry><refentrytitle>ctld</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> daemon is " +"automatically started at boot, and then start the daemon." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57624 +msgid "" +"The following is an example of a simple <filename>/etc/ctl.conf</filename> " +"configuration file. Refer to <citerefentry><refentrytitle>ctl.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for a more complete " +"description of this file's available options." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57629 +#, no-wrap +msgid "" +"portal-group pg0 {\n" +"\tdiscovery-auth-group no-authentication\n" +"\tlisten 0.0.0.0\n" +"\tlisten [::]\n" +"}\n" +"\n" +"target iqn.2012-06.com.example:target0 {\n" +"\tauth-group no-authentication\n" +"\tportal-group pg0\n" +"\n" +"\tlun 0 {\n" +"\t\tpath /data/target0-0\n" +"\t\tsize 4G\n" +"\t}\n" +"}" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57645 +msgid "" +"The first entry defines the <literal>pg0</literal> portal group. Portal " +"groups define which network addresses the <citerefentry><refentrytitle>ctld</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> daemon will listen on. " +"The <literal>discovery-auth-group no-authentication</literal> entry " +"indicates that any initiator is allowed to perform <acronym>iSCSI</acronym> " +"target discovery without authentication. Lines three and four configure " +"<citerefentry><refentrytitle>ctld</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to listen on all <acronym>IPv4</acronym> (<literal>listen " +"0.0.0.0</literal>) and <acronym>IPv6</acronym> (<literal>listen [::]</" +"literal>) addresses on the default port of 3260." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57657 +msgid "" +"It is not necessary to define a portal group as there is a built-in portal " +"group called <literal>default</literal>. In this case, the difference " +"between <literal>default</literal> and <literal>pg0</literal> is that with " +"<literal>default</literal>, target discovery is always denied, while with " +"<literal>pg0</literal>, it is always allowed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57665 +msgid "" +"The second entry defines a single target. Target has two possible meanings: " +"a machine serving <acronym>iSCSI</acronym> or a named group of " +"<acronym>LUNs</acronym>. This example uses the latter meaning, where " +"<literal>iqn.2012-06.com.example:target0</literal> is the target name. This " +"target name is suitable for testing purposes. For actual use, change " +"<literal>com.example</literal> to the real domain name, reversed. The " +"<literal>2012-06</literal> represents the year and month of acquiring " +"control of that domain name, and <literal>target0</literal> can be any " +"value. Any number of targets can be defined in this configuration file." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57678 +msgid "" +"The <literal>auth-group no-authentication</literal> line allows all " +"initiators to connect to the specified target and <literal>portal-group pg0</" +"literal> makes the target reachable through the <literal>pg0</literal> " +"portal group." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57683 +msgid "" +"The next section defines the <acronym>LUN</acronym>. To the initiator, each " +"<acronym>LUN</acronym> will be visible as a separate disk device. Multiple " +"<acronym>LUNs</acronym> can be defined for each target. Each <acronym>LUN</" +"acronym> is identified by a number, where <acronym>LUN</acronym> 0 is " +"mandatory. The <literal>path /data/target0-0</literal> line defines the full " +"path to a file or zvol backing the <acronym>LUN</acronym>. That path must " +"exist before starting <citerefentry><refentrytitle>ctld</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. The second line is " +"optional and specifies the size of the <acronym>LUN</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57694 +msgid "" +"Next, to make sure the <citerefentry><refentrytitle>ctld</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> daemon is started at " +"boot, add this line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57698 +#, no-wrap +msgid "ctld_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57700 +msgid "" +"To start <citerefentry><refentrytitle>ctld</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> now, run this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:57702 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service ctld start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57704 +msgid "" +"As the <citerefentry><refentrytitle>ctld</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> daemon is started, it reads <filename>/etc/ctl." +"conf</filename>. If this file is edited after the daemon starts, use this " +"command so that the changes take effect immediately:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:57709 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service ctld reload</userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#. (itstool) path: sect5/title +#: book.translate.xml:57712 book.translate.xml:62669 +msgid "Authentication" +msgstr "認證" + +#. (itstool) path: sect3/para +#: book.translate.xml:57714 +msgid "" +"The previous example is inherently insecure as it uses no authentication, " +"granting anyone full access to all targets. To require a username and " +"password to access targets, modify the configuration as follows:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:57719 +#, no-wrap +msgid "" +"auth-group ag0 {\n" +"\tchap username1 secretsecret\n" +"\tchap username2 anothersecret\n" +"}\n" +"\n" +"portal-group pg0 {\n" +"\tdiscovery-auth-group no-authentication\n" +"\tlisten 0.0.0.0\n" +"\tlisten [::]\n" +"}\n" +"\n" +"target iqn.2012-06.com.example:target0 {\n" +"\tauth-group ag0\n" +"\tportal-group pg0\n" +"\tlun 0 {\n" +"\t\tpath /data/target0-0\n" +"\t\tsize 4G\n" +"\t}\n" +"}" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57739 +msgid "" +"The <literal>auth-group</literal> section defines username and password " +"pairs. An initiator trying to connect to <literal>iqn.2012-06.com.example:" +"target0</literal> must first specify a defined username and secret. However, " +"target discovery is still permitted without authentication. To require " +"target discovery authentication, set <literal>discovery-auth-group</literal> " +"to a defined <literal>auth-group</literal> name instead of <literal>no-" +"authentication</literal>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57749 +msgid "" +"It is common to define a single exported target for every initiator. As a " +"shorthand for the syntax above, the username and password can be specified " +"directly in the target entry:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:57754 +#, no-wrap +msgid "" +"target iqn.2012-06.com.example:target0 {\n" +"\tportal-group pg0\n" +"\tchap username1 secretsecret\n" +"\n" +"\tlun 0 {\n" +"\t\tpath /data/target0-0\n" +"\t\tsize 4G\n" +"\t}\n" +"}" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:57767 +msgid "Configuring an <acronym>iSCSI</acronym> Initiator" +msgstr "設定 <acronym>iSCSI</acronym> Initiator" + +#. (itstool) path: note/para +#: book.translate.xml:57770 +msgid "" +"The <acronym>iSCSI</acronym> initiator described in this section is " +"supported starting with FreeBSD 10.0-RELEASE. To use the <acronym>iSCSI</" +"acronym> initiator available in older versions, refer to " +"<citerefentry><refentrytitle>iscontrol</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57776 +msgid "" +"The <acronym>iSCSI</acronym> initiator requires that the " +"<citerefentry><refentrytitle>iscsid</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> daemon is running. This daemon does not use a configuration " +"file. To start it automatically at boot, add this line to <filename>/etc/rc." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:57781 +#, no-wrap +msgid "iscsid_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57783 +msgid "" +"To start <citerefentry><refentrytitle>iscsid</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> now, run this command:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:57785 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service iscsid start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:57787 +msgid "" +"Connecting to a target can be done with or without an <filename>/etc/iscsi." +"conf</filename> configuration file. This section demonstrates both types of " +"connections." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:57792 +msgid "Connecting to a Target Without a Configuration File" +msgstr "不使用設定檔連線到 Target " + +#. (itstool) path: sect3/para +#: book.translate.xml:57795 +msgid "" +"To connect an initiator to a single target, specify the <acronym>IP</" +"acronym> address of the portal and the name of the target:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:57799 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>iscsictl -A -p <replaceable>10.10.10.10</replaceable> -t <replaceable>iqn.2012-06.com.example:target0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57801 +msgid "" +"To verify if the connection succeeded, run <command>iscsictl</command> " +"without any arguments. The output should look similar to this:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:57805 +#, no-wrap +msgid "" +"Target name Target portal State\n" +"iqn.2012-06.com.example:target0 10.10.10.10 Connected: da0" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57808 +msgid "" +"In this example, the <acronym>iSCSI</acronym> session was successfully " +"established, with <filename>/dev/da0</filename> representing the attached " +"<acronym>LUN</acronym>. If the <literal>iqn.2012-06.com.example:target0</" +"literal> target exports more than one <acronym>LUN</acronym>, multiple " +"device nodes will be shown in that section of the output:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:57817 +#, no-wrap +msgid "Connected: da0 da1 da2." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57819 +msgid "" +"Any errors will be reported in the output, as well as the system logs. For " +"example, this message usually means that the " +"<citerefentry><refentrytitle>iscsid</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> daemon is not running:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:57823 +#, no-wrap +msgid "" +"Target name Target portal State\n" +"iqn.2012-06.com.example:target0 10.10.10.10 Waiting for iscsid(8)" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57826 +msgid "" +"The following message suggests a networking problem, such as a wrong " +"<acronym>IP</acronym> address or port:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:57830 +#, no-wrap +msgid "" +"Target name Target portal State\n" +"iqn.2012-06.com.example:target0 10.10.10.11 Connection refused" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57833 +msgid "This message means that the specified target name is wrong:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:57836 +#, no-wrap +msgid "" +"Target name Target portal State\n" +"iqn.2012-06.com.example:target0 10.10.10.10 Not found" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57839 +msgid "This message means that the target requires authentication:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:57842 +#, no-wrap +msgid "" +"Target name Target portal State\n" +"iqn.2012-06.com.example:target0 10.10.10.10 Authentication failed" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57845 +msgid "" +"To specify a <acronym>CHAP</acronym> username and secret, use this syntax:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:57848 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>iscsictl -A -p <replaceable>10.10.10.10</replaceable> -t <replaceable>iqn.2012-06.com.example:target0</replaceable> -u <replaceable>user</replaceable> -s <replaceable>secretsecret</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:57852 +msgid "Connecting to a Target with a Configuration File" +msgstr "使用設定檔連線到 Target " + +#. (itstool) path: sect3/para +#: book.translate.xml:57855 +msgid "" +"To connect using a configuration file, create <filename>/etc/iscsi.conf</" +"filename> with contents like this:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:57859 +#, no-wrap +msgid "" +"t0 {\n" +"\tTargetAddress = 10.10.10.10\n" +"\tTargetName = iqn.2012-06.com.example:target0\n" +"\tAuthMethod = CHAP\n" +"\tchapIName = user\n" +"\tchapSecret = secretsecret\n" +"}" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57867 +msgid "" +"The <literal>t0</literal> specifies a nickname for the configuration file " +"section. It will be used by the initiator to specify which configuration to " +"use. The other lines specify the parameters to use during connection. The " +"<literal>TargetAddress</literal> and <literal>TargetName</literal> are " +"mandatory, whereas the other options are optional. In this example, the " +"<acronym>CHAP</acronym> username and secret are shown." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57877 +msgid "To connect to the defined target, specify the nickname:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:57880 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>iscsictl -An <replaceable>t0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57882 +msgid "" +"Alternately, to connect to all targets defined in the configuration file, " +"use:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:57885 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>iscsictl -Aa</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:57887 +msgid "" +"To make the initiator automatically connect to all targets in <filename>/etc/" +"iscsi.conf</filename>, add the following to <filename>/etc/rc.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:57891 +#, no-wrap +msgid "" +"iscsictl_enable=\"YES\"\n" +"iscsictl_flags=\"-Aa\"" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:57922 +msgid "" +"<personname> <firstname>Brad</firstname> <surname>Davis</surname> </" +"personname> <contrib>Converted to SGML and updated by </contrib>" +msgstr "" + +#. (itstool) path: chapter/indexterm +#: book.translate.xml:57934 +msgid "<primary>security</primary> <secondary>firewalls</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57943 +msgid "" +"Firewalls make it possible to filter the incoming and outgoing traffic that " +"flows through a system. A firewall can use one or more sets of <quote>rules</" +"quote> to inspect network packets as they come in or go out of network " +"connections and either allows the traffic through or blocks it. The rules of " +"a firewall can inspect one or more characteristics of the packets such as " +"the protocol type, source or destination host address, and source or " +"destination port." +msgstr "" +"防火牆能夠過濾透過系統進出的流量,防火牆可使用一組或多組 <quote>規則 " +"(Rules)</quote> 來檢查網路連線中進出的網路封包(Network packets),並且能允許或" +"阻擋其通過。 而防火牆規則可以檢查封包中一個或數個特徵,例如通訊協定類型、來源" +"或目的主機位址,以及來源及目地的連接埠 (Port)。" + +#. (itstool) path: sect1/para +#: book.translate.xml:57952 +msgid "" +"Firewalls can enhance the security of a host or a network. They can be used " +"to do one or more of the following:" +msgstr "防火牆可以加強主機或網路的安全性,它可以用來完成下列事情:" + +#. (itstool) path: listitem/para +#: book.translate.xml:57957 +msgid "" +"Protect and insulate the applications, services, and machines of an internal " +"network from unwanted traffic from the public Internet." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:57963 +msgid "" +"Limit or disable access from hosts of the internal network to services of " +"the public Internet." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:57968 +msgid "" +"Support network address translation (<acronym>NAT</acronym>), which allows " +"an internal network to use private <acronym>IP</acronym> addresses and share " +"a single connection to the public Internet using either a single " +"<acronym>IP</acronym> address or a shared pool of automatically assigned " +"public addresses." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57977 +msgid "" +"FreeBSD has three firewalls built into the base system: <application>PF</" +"application>, <application>IPFW</application>, and <application>IPFILTER</" +"application>, also known as <application>IPF</application>. FreeBSD also " +"provides two traffic shapers for controlling bandwidth usage: " +"<citerefentry><refentrytitle>altq</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>dummynet</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>. <application>ALTQ</" +"application> has traditionally been closely tied with <application>PF</" +"application> and <application>dummynet</application> with <application>IPFW</" +"application>. Each firewall uses rules to control the access of packets to " +"and from a FreeBSD system, although they go about it in different ways and " +"each has a different rule syntax." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:57991 +msgid "" +"FreeBSD provides multiple firewalls in order to meet the different " +"requirements and preferences for a wide variety of users. Each user should " +"evaluate which firewall best meets their needs." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58000 +msgid "How to define packet filtering rules." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58004 +msgid "The differences between the firewalls built into FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58009 +msgid "How to use and configure the <application>PF</application> firewall." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58014 +msgid "How to use and configure the <application>IPFW</application> firewall." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58019 +msgid "" +"How to use and configure the <application>IPFILTER</application> firewall." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:58033 +msgid "" +"Since all firewalls are based on inspecting the values of selected packet " +"control fields, the creator of the firewall ruleset must have an " +"understanding of how <acronym>TCP/IP</acronym> works, what the different " +"values in the packet control fields are, and how these values are used in a " +"normal session conversation. For a good introduction, refer to <link xlink:" +"href=\"http://www.ipprimer.com/overview.cfm\">Daryl's TCP/IP Primer</link>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:58045 +msgid "Firewall Concepts" +msgstr "防火牆概念" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:58047 +msgid "<primary>firewall</primary> <secondary>rulesets</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58053 +msgid "" +"A ruleset contains a group of rules which pass or block packets based on the " +"values contained in the packet. The bi-directional exchange of packets " +"between hosts comprises a session conversation. The firewall ruleset " +"processes both the packets arriving from the public Internet, as well as the " +"packets produced by the system as a response to them. Each <acronym>TCP/IP</" +"acronym> service is predefined by its protocol and listening port. Packets " +"destined for a specific service originate from the source address using an " +"unprivileged port and target the specific service port on the destination " +"address. All the above parameters can be used as selection criteria to " +"create rules which will pass or block services." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58066 +msgid "" +"To lookup unknown port numbers, refer to <filename>/etc/services</filename>. " +"Alternatively, visit <uri xlink:href=\"http://en.wikipedia.org/wiki/" +"List_of_TCP_and_UDP_port_numbers\">http://en.wikipedia.org/wiki/" +"List_of_TCP_and_UDP_port_numbers</uri> and do a port number lookup to find " +"the purpose of a particular port number." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58071 +msgid "" +"Check out this link for port numbers used by Trojans <uri xlink:href=" +"\"http://www.sans.org/security-resources/idfaq/oddports.php\">http://www." +"sans.org/security-resources/idfaq/oddports.php</uri>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58073 +msgid "" +"FTP has two modes: active mode and passive mode. The difference is in how " +"the data channel is acquired. Passive mode is more secure as the data " +"channel is acquired by the ordinal ftp session requester. For a good " +"explanation of FTP and the different modes, see <uri xlink:href=\"http://www." +"slacksite.com/other/ftp.html\">http://www.slacksite.com/other/ftp.html</uri>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58079 +msgid "" +"A firewall ruleset can be either <quote>exclusive</quote> or " +"<quote>inclusive</quote>. An exclusive firewall allows all traffic through " +"except for the traffic matching the ruleset. An inclusive firewall does the " +"reverse as it only allows traffic matching the rules through and blocks " +"everything else." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58086 +msgid "" +"An inclusive firewall offers better control of the outgoing traffic, making " +"it a better choice for systems that offer services to the public Internet. " +"It also controls the type of traffic originating from the public Internet " +"that can gain access to a private network. All traffic that does not match " +"the rules is blocked and logged. Inclusive firewalls are generally safer " +"than exclusive firewalls because they significantly reduce the risk of " +"allowing unwanted traffic." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:58097 +msgid "" +"Unless noted otherwise, all configuration and example rulesets in this " +"chapter create inclusive firewall rulesets." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58102 +msgid "" +"Security can be tightened further using a <quote>stateful firewall</quote>. " +"This type of firewall keeps track of open connections and only allows " +"traffic which either matches an existing connection or opens a new, allowed " +"connection." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58107 +msgid "" +"Stateful filtering treats traffic as a bi-directional exchange of packets " +"comprising a session. When state is specified on a matching rule the " +"firewall dynamically generates internal rules for each anticipated packet " +"being exchanged during the session. It has sufficient matching capabilities " +"to determine if a packet is valid for a session. Any packets that do not " +"properly fit the session template are automatically rejected." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58116 +msgid "When the session completes, it is removed from the dynamic state table." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58119 +msgid "" +"Stateful filtering allows one to focus on blocking/passing new sessions. If " +"the new session is passed, all its subsequent packets are allowed " +"automatically and any impostor packets are automatically rejected. If a new " +"session is blocked, none of its subsequent packets are allowed. Stateful " +"filtering provides advanced matching abilities capable of defending against " +"the flood of different attack methods employed by attackers." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58127 +msgid "" +"<acronym>NAT</acronym> stands for <emphasis>Network Address Translation</" +"emphasis>. <acronym>NAT</acronym> function enables the private LAN behind " +"the firewall to share a single ISP-assigned IP address, even if that address " +"is dynamically assigned. NAT allows each computer in the LAN to have " +"Internet access, without having to pay the ISP for multiple Internet " +"accounts or IP addresses." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58135 +msgid "" +"<acronym>NAT</acronym> will automatically translate the private LAN IP " +"address for each system on the LAN to the single public IP address as " +"packets exit the firewall bound for the public Internet. It also performs " +"the reverse translation for returning packets." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58141 +msgid "" +"According to RFC 1918, the following IP address ranges are reserved for " +"private networks which will never be routed directly to the public Internet, " +"and therefore are available for use with NAT:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58148 +msgid "<literal>10.0.0.0/8</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58152 +msgid "<literal>172.16.0.0/12</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58156 +msgid "<literal>192.168.0.0/16</literal>." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:58161 +msgid "" +"When working with the firewall rules, be <emphasis>very careful</emphasis>. " +"Some configurations <emphasis>can lock the administrator out</emphasis> of " +"the server. To be on the safe side, consider performing the initial firewall " +"configuration from the local console rather than doing it remotely over " +"<application>ssh</application>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:58172 +msgid "PF" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:58175 +msgid "" +"<personname> <firstname>John</firstname> <surname>Ferrell</surname> </" +"personname> <contrib>Revised and updated by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:58185 +msgid "<primary>firewall</primary> <secondary>PF</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58191 +msgid "" +"Since FreeBSD 5.3, a ported version of OpenBSD's <application>PF</" +"application> firewall has been included as an integrated part of the base " +"system. <application>PF</application> is a complete, full-featured firewall " +"that has optional support for <application>ALTQ</application> (Alternate " +"Queuing), which provides Quality of Service (<acronym>QoS</acronym>)." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58199 +msgid "" +"The OpenBSD Project maintains the definitive reference for <application>PF</" +"application> in the <link xlink:href=\"http://www.openbsd.org/faq/pf/\">PF " +"FAQ</link>. Peter Hansteen maintains a thorough <application>PF</" +"application> tutorial at <link xlink:href=\"http://home.nuug.no/~peter/pf/" +"\">http://home.nuug.no/~peter/pf/</link>." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:58205 +msgid "" +"When reading the <link xlink:href=\"http://www.openbsd.org/faq/pf/\">PF FAQ</" +"link>, keep in mind that FreeBSD uses the same version of <application>PF</" +"application> as OpenBSD 4.5." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58210 +msgid "" +"The <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-pf" +"\">FreeBSD packet filter mailing list</link> is a good place to ask " +"questions about configuring and running the <application>PF</application> " +"firewall. Check the mailing list archives before asking a question as it may " +"have already been answered." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58215 +msgid "" +"More information about porting <application>PF</application> to FreeBSD can " +"be found at <uri xlink:href=\"http://pf4freebsd.love2party.net/\">http://" +"pf4freebsd.love2party.net/</uri>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:58218 +msgid "" +"This section of the Handbook focuses on <application>PF</application> as it " +"pertains to FreeBSD. It demonstrates how to enable <application>PF</" +"application> and <application>ALTQ</application>. It then provides several " +"examples for creating rulesets on a FreeBSD system." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:58225 +msgid "Enabling <application>PF</application>" +msgstr "開啟 <application>PF</application>" + +#. (itstool) path: sect2/para +#: book.translate.xml:58227 +msgid "" +"In order to use <application>PF</application>, its kernel module must be " +"first loaded. This section describes the entries that can be added to " +"<filename>/etc/rc.conf</filename> in order to enable <application>PF</" +"application>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58232 +msgid "" +"Start by adding the following line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:58235 +#, no-wrap +msgid "pf_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58237 +msgid "" +"Additional options, described in <citerefentry><refentrytitle>pfctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, can be passed to " +"<application>PF</application> when it is started. Add this entry to " +"<filename>/etc/rc.conf</filename> and specify any required flags between the " +"two quotes (<literal>\"\"</literal>):" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:58243 +#, no-wrap +msgid "pf_flags=\"\" # additional flags for pfctl startup" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58245 +msgid "" +"<application>PF</application> will not start if it cannot find its ruleset " +"configuration file. The default ruleset is already created and is named " +"<filename>/etc/pf.conf</filename>. If a custom ruleset has been saved " +"somewhere else, add a line to <filename>/etc/rc.conf</filename> which " +"specifies the full path to the file:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:58253 +#, no-wrap +msgid "pf_rules=\"<replaceable>/path/to/pf.conf</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58255 +msgid "" +"Logging support for <application>PF</application> is provided by " +"<citerefentry><refentrytitle>pflog</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>. To enable logging support, add this line to <filename>/etc/rc." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:58259 +#, no-wrap +msgid "pflog_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58261 +msgid "" +"The following lines can also be added in order to change the default " +"location of the log file or to specify any additional flags to pass to " +"<citerefentry><refentrytitle>pflog</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> when it is started:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:58266 +#, no-wrap +msgid "" +"pflog_logfile=\"/var/log/pflog\" # where pflogd should store the logfile\n" +"pflog_flags=\"\" # additional flags for pflogd startup" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58269 +msgid "" +"Finally, if there is a <acronym>LAN</acronym> behind the firewall and " +"packets need to be forwarded for the computers on the <acronym>LAN</" +"acronym>, or <acronym>NAT</acronym> is required, add the following option:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:58274 +#, no-wrap +msgid "gateway_enable=\"YES\" # Enable as LAN gateway" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58276 +msgid "" +"After saving the needed edits, <application>PF</application> can be started " +"with logging support by typing:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:58280 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service pf start</userinput>\n" +"<prompt>#</prompt> <userinput>service pflog start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58334 +msgid "" +"By default, <application>PF</application> reads its configuration rules from " +"<filename>/etc/pf.conf</filename> and modifies, drops, or passes packets " +"according to the rules or definitions specified in this file. The FreeBSD " +"installation includes several sample files located in <filename>/usr/share/" +"examples/pf/</filename>. Refer to the <link xlink:href=\"http://www.openbsd." +"org/faq/pf/\">PF FAQ</link> for complete coverage of <application>PF</" +"application> rulesets." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58344 +msgid "" +"To control <application>PF</application>, use <command>pfctl</command>. " +"<xref linkend=\"pfctl\"/> summarizes some useful options to this command. " +"Refer to <citerefentry><refentrytitle>pfctl</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for a description of all available options:" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:58350 +msgid "Useful <command>pfctl</command> Options" +msgstr "有用的 <command>pfctl</command> 選項" + +#. (itstool) path: row/entry +#: book.translate.xml:58356 book.translate.xml:61883 book.translate.xml:65535 +msgid "Purpose" +msgstr "用途" + +#. (itstool) path: row/entry +#: book.translate.xml:58362 +msgid "<command>pfctl -e</command>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:58364 +msgid "Enable <application>PF</application>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:58368 +msgid "<command>pfctl -d</command>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:58370 +msgid "Disable <application>PF</application>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:58374 +msgid "<command>pfctl -F all -f /etc/pf.conf</command>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:58376 +msgid "" +"Flush all <acronym>NAT</acronym>, filter, state, and table rules and reload " +"<filename>/etc/pf.conf</filename>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:58382 +msgid "<command>pfctl -s [ rules | nat | states ]</command>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:58384 +msgid "" +"Report on the filter rules, <acronym>NAT</acronym> rules, or state table." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:58390 +msgid "<command>pfctl -vnf /etc/pf.conf</command>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:58392 +msgid "" +"Check <filename>/etc/pf.conf</filename> for errors, but do not load ruleset." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:58400 +msgid "" +"<package>security/sudo</package> is useful for running commands like " +"<command>pfctl</command> that require elevated privileges. It can be " +"installed from the Ports Collection." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58406 +msgid "" +"To keep an eye on the traffic that passes through the <application>PF</" +"application> firewall, consider installing the <package>sysutils/pftop</" +"package> package or port. Once installed, <application>pftop</application> " +"can be run to view a running snapshot of traffic in a format which is " +"similar to <citerefentry><refentrytitle>top</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:58415 +msgid "Enabling <application>ALTQ</application>" +msgstr "開啟 <application>ALTQ</application>" + +#. (itstool) path: sect2/para +#: book.translate.xml:58417 +msgid "" +"On FreeBSD, <application>ALTQ</application> can be used with " +"<application>PF</application> to provide Quality of Service (<acronym>QOS</" +"acronym>). Once <application>ALTQ</application> is enabled, queues can be " +"defined in the ruleset which determine the processing priority of outbound " +"packets." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58424 +msgid "" +"Before enabling <application>ALTQ</application>, refer to " +"<citerefentry><refentrytitle>altq</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> to determine if the drivers for the network cards installed on " +"the system support it." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58428 +msgid "" +"<application>ALTQ</application> is not available as a loadable kernel " +"module. If the system's interfaces support <application>ALTQ</application>, " +"create a custom kernel using the instructions in <xref linkend=\"kernelconfig" +"\"/>. The following kernel options are available. The first is needed to " +"enable <application>ALTQ</application>. At least one of the other options is " +"necessary to specify the queueing scheduler algorithm:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:58437 +#, no-wrap +msgid "" +"options ALTQ\n" +"options ALTQ_CBQ # Class Based Queuing (CBQ)\n" +"options ALTQ_RED # Random Early Detection (RED)\n" +"options ALTQ_RIO # RED In/Out\n" +"options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)\n" +"options ALTQ_PRIQ # Priority Queuing (PRIQ)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58444 +msgid "The following scheduler algorithms are available:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:58448 +msgid "CBQ" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58450 +msgid "" +"Class Based Queuing (<acronym>CBQ</acronym>) is used to divide a " +"connection's bandwidth into different classes or queues to prioritize " +"traffic based on filter rules." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:58458 +msgid "RED" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58460 +msgid "" +"Random Early Detection (<acronym>RED</acronym>) is used to avoid network " +"congestion by measuring the length of the queue and comparing it to the " +"minimum and maximum thresholds for the queue. When the queue is over the " +"maximum, all new packets are randomly dropped." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:58469 +msgid "RIO" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58471 +msgid "" +"In Random Early Detection In and Out (<acronym>RIO</acronym>) mode, " +"<acronym>RED</acronym> maintains multiple average queue lengths and multiple " +"threshold values, one for each <acronym>QOS</acronym> level." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:58480 +msgid "HFSC" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58482 +msgid "" +"Hierarchical Fair Service Curve Packet Scheduler (<acronym>HFSC</acronym>) " +"is described in <uri xlink:href=\"http://www-2.cs.cmu.edu/~hzhang/HFSC/main." +"html\">http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html</uri>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:58488 +msgid "PRIQ" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58490 +msgid "" +"Priority Queuing (<acronym>PRIQ</acronym>) always passes traffic that is in " +"a higher queue first." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58496 +msgid "" +"More information about the scheduling algorithms and example rulesets are " +"available at <uri xlink:href=\"http://www.openbsd.org/faq/pf/queueing.html" +"\">http://www.openbsd.org/faq/pf/queueing.html</uri>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:58502 +msgid "<application>PF</application> Rulesets" +msgstr "<application>PF</application> 規則集" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:58505 +msgid "" +"<personname> <firstname>Peter</firstname> <surname>Hansteen</surname> " +"<othername>N. M.</othername> </personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58516 +msgid "" +"This section demonstrates how to create a customized ruleset. It starts with " +"the simplest of rulesets and builds upon its concepts using several examples " +"to demonstrate real-world usage of <application>PF</application>'s many " +"features." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58522 +msgid "" +"The simplest possible ruleset is for a single machine that does not run any " +"services and which needs access to one network, which may be the Internet. " +"To create this minimal ruleset, edit <filename>/etc/pf.conf</filename> so it " +"looks like this:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:58528 +#, no-wrap +msgid "" +"block in all\n" +"pass out all keep state" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58531 +msgid "" +"The first rule denies all incoming traffic by default. The second rule " +"allows connections created by this system to pass out, while retaining state " +"information on those connections. This state information allows return " +"traffic for those connections to pass back and should only be used on " +"machines that can be trusted. The ruleset can be loaded with:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:58539 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pfctl -e ; pfctl -f /etc/pf.conf</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58541 +msgid "" +"In addition to keeping state, <application>PF</application> provides " +"<firstterm>lists</firstterm> and <firstterm>macros</firstterm> which can be " +"defined for use when creating rules. Macros can include lists and need to be " +"defined before use. As an example, insert these lines at the very top of the " +"ruleset:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:58549 +#, no-wrap +msgid "" +"tcp_services = \"{ ssh, smtp, domain, www, pop3, auth, pop3s }\"\n" +"udp_services = \"{ domain }\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58552 +msgid "" +"<application>PF</application> understands port names as well as port " +"numbers, as long as the names are listed in <filename>/etc/services</" +"filename>. This example creates two macros. The first is a list of seven " +"<acronym>TCP</acronym> port names and the second is one <acronym>UDP</" +"acronym> port name. Once defined, macros can be used in rules. In this " +"example, all traffic is blocked except for the connections initiated by this " +"system for the seven specified <acronym>TCP</acronym> services and the one " +"specified <acronym>UDP</acronym> service:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:58563 +#, no-wrap +msgid "" +"tcp_services = \"{ ssh, smtp, domain, www, pop3, auth, pop3s }\"\n" +"udp_services = \"{ domain }\"\n" +"block all\n" +"pass out proto tcp to any port $tcp_services keep state\n" +"pass proto udp to any port $udp_services keep state" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58569 +msgid "" +"Even though <acronym>UDP</acronym> is considered to be a stateless protocol, " +"<application>PF</application> is able to track some state information. For " +"example, when a <acronym>UDP</acronym> request is passed which asks a name " +"server about a domain name, <application>PF</application> will watch for the " +"response in order to pass it back." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58576 +msgid "" +"Whenever an edit is made to a ruleset, the new rules must be loaded so they " +"can be used:" +msgstr "" + +#. (itstool) path: sect2/screen +#. (itstool) path: sect3/screen +#: book.translate.xml:58579 book.translate.xml:58826 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pfctl -f /etc/pf.conf</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58581 +msgid "" +"If there are no syntax errors, <command>pfctl</command> will not output any " +"messages during the rule load. Rules can also be tested before attempting to " +"load them:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:58585 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pfctl -nf /etc/pf.conf</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:58587 +msgid "" +"Including <option>-n</option> causes the rules to be interpreted only, but " +"not loaded. This provides an opportunity to correct any errors. At all " +"times, the last valid ruleset loaded will be enforced until either " +"<application>PF</application> is disabled or a new ruleset is loaded." +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:58595 +msgid "" +"Adding <option>-v</option> to a <command>pfctl</command> ruleset verify or " +"load will display the fully parsed rules exactly the way they will be " +"loaded. This is extremely useful when debugging rules." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:58602 +msgid "A Simple Gateway with NAT" +msgstr "使用 NAT 的簡單閘道器" + +#. (itstool) path: sect3/para +#: book.translate.xml:58604 +msgid "" +"This section demonstrates how to configure a FreeBSD system running " +"<application>PF</application> to act as a gateway for at least one other " +"machine. The gateway needs at least two network interfaces, each connected " +"to a separate network. In this example, <filename>xl1</filename> is " +"connected to the Internet and <filename>xl0</filename> is connected to the " +"internal network." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58612 +msgid "" +"First, enable the gateway in order to let the machine forward the network " +"traffic it receives on one interface to another interface. This " +"<application>sysctl</application> setting will forward <acronym>IPv4</" +"acronym> packets:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:58617 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sysctl net.inet.ip.forwarding=1</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58619 +msgid "To forward <acronym>IPv6</acronym> traffic, use:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:58621 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sysctl net.inet6.ip6.forwarding=1</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58623 +msgid "" +"To enable these settings at system boot, add the following to <filename>/etc/" +"rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58626 +#, no-wrap +msgid "" +"gateway_enable=\"YES\"\t\t#for ipv4\n" +"ipv6_gateway_enable=\"YES\"\t#for ipv6" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58629 +msgid "" +"Verify with <command>ifconfig</command> that both of the interfaces are up " +"and running." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58632 +msgid "" +"Next, create the <application>PF</application> rules to allow the gateway to " +"pass traffic. While the following rule allows stateful traffic to pass from " +"the Internet to hosts on the network, the <literal>to</literal> keyword does " +"not guarantee passage all the way from source to destination:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58639 +#, no-wrap +msgid "pass in on xl1 from xl1:network to xl0:network port $ports keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58641 +msgid "" +"That rule only lets the traffic pass in to the gateway on the internal " +"interface. To let the packets go further, a matching rule is needed:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58645 +#, no-wrap +msgid "pass out on xl0 from xl1:network to xl0:network port $ports keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58647 +msgid "" +"While these two rules will work, rules this specific are rarely needed. For " +"a busy network admin, a readable ruleset is a safer ruleset. The remainder " +"of this section demonstrates how to keep the rules as simple as possible for " +"readability. For example, those two rules could be replaced with one rule:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58654 +#, no-wrap +msgid "pass from xl1:network to any port $ports keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58656 +msgid "" +"The <literal>interface:network</literal> notation can be replaced with a " +"macro to make the ruleset even more readable. For example, a <literal>" +"$localnet</literal> macro could be defined as the network directly attached " +"to the internal interface (<literal>$xl1:network</literal>). Alternatively, " +"the definition of <literal>$localnet</literal> could be changed to an " +"<emphasis>IP address/netmask</emphasis> notation to denote a network, such " +"as <literal>192.168.100.1/24</literal> for a subnet of private addresses." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58667 +msgid "" +"If required, <literal>$localnet</literal> could even be defined as a list of " +"networks. Whatever the specific needs, a sensible <literal>$localnet</" +"literal> definition could be used in a typical pass rule as follows:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58672 +#, no-wrap +msgid "pass from $localnet to any port $ports keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58674 +msgid "" +"The following sample ruleset allows all traffic initiated by machines on the " +"internal network. It first defines two macros to represent the external and " +"internal 3COM interfaces of the gateway." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:58680 +msgid "" +"For dialup users, the external interface will use <filename>tun0</filename>. " +"For an <acronym>ADSL</acronym> connection, specifically those using " +"<acronym>PPP</acronym> over Ethernet (<acronym>PPPoE</acronym>), the correct " +"external interface is <filename>tun0</filename>, not the physical Ethernet " +"interface." +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58689 +#, no-wrap +msgid "" +"ext_if = \"xl0\"\t# macro for external interface - use tun0 for PPPoE\n" +"int_if = \"xl1\"\t# macro for internal interface\n" +"localnet = $int_if:network\n" +"# ext_if IP address could be dynamic, hence ($ext_if)\n" +"nat on $ext_if from $localnet to any -> ($ext_if)\n" +"block all\n" +"pass from { lo0, $localnet } to any keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58697 +msgid "" +"This ruleset introduces the <literal>nat</literal> rule which is used to " +"handle the network address translation from the non-routable addresses " +"inside the internal network to the <acronym>IP</acronym> address assigned to " +"the external interface. The parentheses surrounding the last part of the nat " +"rule <literal>($ext_if)</literal> is included when the <acronym>IP</acronym> " +"address of the external interface is dynamically assigned. It ensures that " +"network traffic runs without serious interruptions even if the external " +"<acronym>IP</acronym> address changes." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58708 +msgid "" +"Note that this ruleset probably allows more traffic to pass out of the " +"network than is needed. One reasonable setup could create this macro:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58712 +#, no-wrap +msgid "" +"client_out = \"{ ftp-data, ftp, ssh, domain, pop3, auth, nntp, http, \\\n" +" https, cvspserver, 2628, 5999, 8000, 8080 }\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58715 +msgid "to use in the main pass rule:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58717 +#, no-wrap +msgid "" +"pass inet proto tcp from $localnet to any port $client_out \\\n" +" flags S/SA keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58720 +msgid "" +"A few other pass rules may be needed. This one enables <acronym>SSH</" +"acronym> on the external interface::" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58723 +#, no-wrap +msgid "pass in inet proto tcp to $ext_if port ssh" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58725 +msgid "" +"This macro definition and rule allows <acronym>DNS</acronym> and " +"<acronym>NTP</acronym> for internal clients:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58729 +#, no-wrap +msgid "" +"udp_services = \"{ domain, ntp }\"\n" +"pass quick inet proto { tcp, udp } to any port $udp_services keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58732 +msgid "" +"Note the <literal>quick</literal> keyword in this rule. Since the ruleset " +"consists of several rules, it is important to understand the relationships " +"between the rules in a ruleset. Rules are evaluated from top to bottom, in " +"the sequence they are written. For each packet or connection evaluated by " +"<application>PF</application>, <emphasis>the last matching rule</emphasis> " +"in the ruleset is the one which is applied. However, when a packet matches a " +"rule which contains the <literal>quick</literal> keyword, the rule " +"processing stops and the packet is treated according to that rule. This is " +"very useful when an exception to the general rules is needed." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:58747 +msgid "Creating an <acronym>FTP</acronym> Proxy" +msgstr "建立 <acronym>FTP</acronym> Proxy" + +#. (itstool) path: sect3/para +#: book.translate.xml:58749 +msgid "" +"Configuring working <acronym>FTP</acronym> rules can be problematic due to " +"the nature of the <acronym>FTP</acronym> protocol. <acronym>FTP</acronym> " +"pre-dates firewalls by several decades and is insecure in its design. The " +"most common points against using <acronym>FTP</acronym> include:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58758 +msgid "Passwords are transferred in the clear." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58762 +msgid "" +"The protocol demands the use of at least two <acronym>TCP</acronym> " +"connections (control and data) on separate ports." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:58768 +msgid "" +"When a session is established, data is communicated using randomly selected " +"ports." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58773 +msgid "" +"All of these points present security challenges, even before considering any " +"potential security weaknesses in client or server software. More secure " +"alternatives for file transfer exist, such as " +"<citerefentry><refentrytitle>sftp</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> or <citerefentry><refentrytitle>scp</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>, which both feature " +"authentication and data transfer over encrypted connections.." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58780 +msgid "" +"For those situations when <acronym>FTP</acronym> is required, " +"<application>PF</application> provides redirection of <acronym>FTP</acronym> " +"traffic to a small proxy program called <citerefentry><refentrytitle>ftp-" +"proxy</refentrytitle><manvolnum>8</manvolnum></citerefentry>, which is " +"included in the base system of FreeBSD. The role of the proxy is to " +"dynamically insert and delete rules in the ruleset, using a set of anchors, " +"in order to correctly handle <acronym>FTP</acronym> traffic." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58789 +msgid "" +"To enable the <acronym>FTP</acronym> proxy, add this line to <filename>/etc/" +"rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58792 +#, no-wrap +msgid "ftpproxy_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58794 +msgid "" +"Then start the proxy by running <command>service ftp-proxy start</command>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58797 +msgid "" +"For a basic configuration, three elements need to be added to <filename>/etc/" +"pf.conf</filename>. First, the anchors which the proxy will use to insert " +"the rules it generates for the <acronym>FTP</acronym> sessions:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58802 +#, no-wrap +msgid "" +"nat-anchor \"ftp-proxy/*\"\n" +"rdr-anchor \"ftp-proxy/*\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58805 +msgid "" +"Second, a pass rule is needed to allow <acronym>FTP</acronym> traffic in to " +"the proxy." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58808 +msgid "" +"Third, redirection and <acronym>NAT</acronym> rules need to be defined " +"before the filtering rules. Insert this <literal>rdr</literal> rule " +"immediately after the <literal>nat</literal> rule:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58813 +#, no-wrap +msgid "rdr pass on $int_if proto tcp from any to any port ftp -> 127.0.0.1 port 8021" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58815 +msgid "Finally, allow the redirected traffic to pass:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58817 +#, no-wrap +msgid "pass out proto tcp from $proxy to any port ftp" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58819 +msgid "" +"where <literal>$proxy</literal> expands to the address the proxy daemon is " +"bound to." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58822 +msgid "" +"Save <filename>/etc/pf.conf</filename>, load the new rules, and verify from " +"a client that <acronym>FTP</acronym> connections are working:" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58828 +msgid "" +"This example covers a basic setup where the clients in the local network " +"need to contact <acronym>FTP</acronym> servers elsewhere. This basic " +"configuration should work well with most combinations of <acronym>FTP</" +"acronym> clients and servers. As shown in <citerefentry><refentrytitle>ftp-" +"proxy</refentrytitle><manvolnum>8</manvolnum></citerefentry>, the proxy's " +"behavior can be changed in various ways by adding options to the " +"<literal>ftpproxy_flags=</literal> line. Some clients or servers may have " +"specific quirks that must be compensated for in the configuration, or there " +"may be a need to integrate the proxy in specific ways such as assigning " +"<acronym>FTP</acronym> traffic to a specific queue." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58841 +msgid "" +"For ways to run an <acronym>FTP</acronym> server protected by " +"<application>PF</application> and <citerefentry><refentrytitle>ftp-proxy</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, configure a separate " +"<command>ftp-proxy</command> in reverse mode, using <option>-R</option>, on " +"a separate port with its own redirecting pass rule." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:58850 +msgid "Managing <acronym>ICMP</acronym>" +msgstr "管理 <acronym>ICMP</acronym>" + +#. (itstool) path: sect3/para +#: book.translate.xml:58852 +msgid "" +"Many of the tools used for debugging or troubleshooting a <acronym>TCP/IP</" +"acronym> network rely on the Internet Control Message Protocol " +"(<acronym>ICMP</acronym>), which was designed specifically with debugging in " +"mind." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58857 +msgid "" +"The <acronym>ICMP</acronym> protocol sends and receives <emphasis>control " +"messages</emphasis> between hosts and gateways, mainly to provide feedback " +"to a sender about any unusual or difficult conditions enroute to the target " +"host. Routers use <acronym>ICMP</acronym> to negotiate packet sizes and " +"other transmission parameters in a process often referred to as " +"<emphasis>path <acronym>MTU</acronym> discovery</emphasis>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58866 +msgid "" +"From a firewall perspective, some <acronym>ICMP</acronym> control messages " +"are vulnerable to known attack vectors. Also, letting all diagnostic traffic " +"pass unconditionally makes debugging easier, but it also makes it easier for " +"others to extract information about the network. For these reasons, the " +"following rule may not be optimal:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58874 +#, no-wrap +msgid "pass inet proto icmp from any to any" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58876 +msgid "" +"One solution is to let all <acronym>ICMP</acronym> traffic from the local " +"network through while stopping all probes from outside the network:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58880 +#, no-wrap +msgid "" +"pass inet proto icmp from $localnet to any keep state\n" +"pass inet proto icmp from any to $ext_if keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58883 +msgid "" +"Additional options are available which demonstrate some of <application>PF</" +"application>'s flexibility. For example, rather than allowing all " +"<acronym>ICMP</acronym> messages, one can specify the messages used by " +"<citerefentry><refentrytitle>ping</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and <citerefentry><refentrytitle>traceroute</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. Start by defining a " +"macro for that type of message:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58890 +#, no-wrap +msgid "icmp_types = \"echoreq\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58892 +msgid "and a rule which uses the macro:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#. (itstool) path: sect4/programlisting +#: book.translate.xml:58894 book.translate.xml:58954 +#, no-wrap +msgid "pass inet proto icmp all icmp-type $icmp_types keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58896 +msgid "" +"If other types of <acronym>ICMP</acronym> packets are needed, expand " +"<literal>icmp_types</literal> to a list of those packet types. Type " +"<command>more /usr/src/contrib/pf/pfctl/pfctl_parser.c</command> to see the " +"list of <acronym>ICMP</acronym> message types supported by <application>PF</" +"application>. Refer to <link xlink:href=\"http://www.iana.org/assignments/" +"icmp-parameters/icmp-parameters.xhtml\">http://www.iana.org/assignments/icmp-" +"parameters/icmp-parameters.xhtml</link> for an explanation of each message " +"type." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58904 +msgid "" +"Since Unix <command>traceroute</command> uses <acronym>UDP</acronym> by " +"default, another rule is needed to allow Unix <command>traceroute</command>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58908 +#, no-wrap +msgid "" +"# allow out the default range for traceroute(8):\n" +"pass out on $ext_if inet proto udp from any to any port 33433 >< 33626 keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58911 +msgid "" +"Since <command>TRACERT.EXE</command> on Microsoft Windows systems uses " +"<acronym>ICMP</acronym> echo request messages, only the first rule is needed " +"to allow network traces from those systems. Unix <command>traceroute</" +"command> can be instructed to use other protocols as well, and will use " +"<acronym>ICMP</acronym> echo request messages if <option>-I</option> is " +"used. Check the <citerefentry><refentrytitle>traceroute</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> man page for details." +msgstr "" + +#. (itstool) path: sect4/title +#: book.translate.xml:58921 +msgid "Path <acronym>MTU</acronym> Discovery" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:58923 +msgid "" +"Internet protocols are designed to be device independent, and one " +"consequence of device independence is that the optimal packet size for a " +"given connection cannot always be predicted reliably. The main constraint on " +"packet size is the <firstterm>Maximum Transmission Unit</firstterm> " +"(<acronym>MTU</acronym>) which sets the upper limit on the packet size for " +"an interface. Type <command>ifconfig</command> to view the <acronym>MTU</" +"acronym>s for a system's network interfaces." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:58934 +msgid "" +"<acronym>TCP/IP</acronym> uses a process known as path <acronym>MTU</" +"acronym> discovery to determine the right packet size for a connection. This " +"process sends packets of varying sizes with the <quote>Do not fragment</" +"quote> flag set, expecting an <acronym>ICMP</acronym> return packet of " +"<quote>type 3, code 4</quote> when the upper limit has been reached. Type 3 " +"means <quote>destination unreachable</quote>, and code 4 is short for " +"<quote>fragmentation needed, but the do-not-fragment flag is set</quote>. To " +"allow path MTU discovery in order to support connections to other " +"<acronym>MTU</acronym>s, add the <literal>destination unreachable</literal> " +"type to the <literal>icmp_types</literal> macro:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:58948 +#, no-wrap +msgid "icmp_types = \"{ echoreq, unreach }\"" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:58950 +msgid "" +"Since the pass rule already uses that macro, it does not need to be modified " +"in order to support the new <acronym>ICMP</acronym> type:" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:58956 +msgid "" +"<application>PF</application> allows filtering on all variations of " +"<acronym>ICMP</acronym> types and codes. The list of possible types and " +"codes are documented in <citerefentry><refentrytitle>icmp</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>icmp6</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:58964 +msgid "Using Tables" +msgstr "使用 Tables" + +#. (itstool) path: sect3/para +#: book.translate.xml:58966 +msgid "" +"Some types of data are relevant to filtering and redirection at a given " +"time, but their definition is too long to be included in the ruleset file. " +"<application>PF</application> supports the use of tables, which are defined " +"lists that can be manipulated without needing to reload the entire ruleset, " +"and which can provide fast lookups. Table names are always enclosed within " +"<literal>< ></literal>, like this:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58975 +#, no-wrap +msgid "table <clients> { 192.168.2.0/24, !192.168.2.5 }" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58977 +msgid "" +"In this example, the <literal>192.168.2.0/24</literal> network is part of " +"the table, except for the address <literal>192.168.2.5</literal>, which is " +"excluded using the <literal>!</literal> operator. It is also possible to " +"load tables from files where each item is on a separate line, as seen in " +"this example <filename>/etc/clients</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58985 +#, no-wrap +msgid "" +"192.168.2.0/24\n" +"!192.168.2.5" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58988 +msgid "To refer to the file, define the table like this:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58990 +#, no-wrap +msgid "table <clients> persist file \"/etc/clients\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58992 +msgid "Once the table is defined, it can be referenced by a rule:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:58995 +#, no-wrap +msgid "pass inet proto tcp from <clients> to any port $client_out flags S/SA keep state" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:58997 +msgid "" +"A table's contents can be manipulated live, using <command>pfctl</command>. " +"This example adds another network to the table:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:59001 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pfctl -t clients -T add 192.168.1.0/16</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59003 +msgid "" +"Note that any changes made this way will take affect now, making them ideal " +"for testing, but will not survive a power failure or reboot. To make the " +"changes permanent, modify the definition of the table in the ruleset or edit " +"the file that the table refers to. One can maintain the on-disk copy of the " +"table using a <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> job which dumps the table's contents to disk at " +"regular intervals, using a command such as <command>pfctl -t clients -T show " +">/etc/clients</command>. Alternatively, <filename>/etc/clients</filename> " +"can be updated with the in-memory table contents:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:59015 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pfctl -t clients -T replace -f /etc/clients</userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:59019 +msgid "Using Overload Tables to Protect <acronym>SSH</acronym>" +msgstr "使用 Overload Tables 保護 <acronym>SSH</acronym>" + +#. (itstool) path: sect3/para +#: book.translate.xml:59022 +msgid "" +"Those who run <acronym>SSH</acronym> on an external interface have probably " +"seen something like this in the authentication logs:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:59026 +#, no-wrap +msgid "" +"Sep 26 03:12:34 skapet sshd[25771]: Failed password for root from 200.72.41.31 port 40992 ssh2\n" +"Sep 26 03:12:34 skapet sshd[5279]: Failed password for root from 200.72.41.31 port 40992 ssh2\n" +"Sep 26 03:12:35 skapet sshd[5279]: Received disconnect from 200.72.41.31: 11: Bye Bye\n" +"Sep 26 03:12:44 skapet sshd[29635]: Invalid user admin from 200.72.41.31\n" +"Sep 26 03:12:44 skapet sshd[24703]: input_userauth_request: invalid user admin\n" +"Sep 26 03:12:44 skapet sshd[24703]: Failed password for invalid user admin from 200.72.41.31 port 41484 ssh2" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59033 +msgid "" +"This is indicative of a brute force attack where somebody or some program is " +"trying to discover the user name and password which will let them into the " +"system." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59037 +msgid "" +"If external <acronym>SSH</acronym> access is needed for legitimate users, " +"changing the default port used by <acronym>SSH</acronym> can offer some " +"protection. However, <application>PF</application> provides a more elegant " +"solution. Pass rules can contain limits on what connecting hosts can do and " +"violators can be banished to a table of addresses which are denied some or " +"all access. It is even possible to drop all existing connections from " +"machines which overreach the limits." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59047 +msgid "" +"To configure this, create this table in the tables section of the ruleset:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:59050 +#, no-wrap +msgid "table <bruteforce> persist" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59052 +msgid "" +"Then, somewhere early in the ruleset, add rules to block brute access while " +"allowing legitimate access:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:59055 +#, no-wrap +msgid "" +"block quick from <bruteforce>\n" +"pass inet proto tcp from any to $localnet port $tcp_services \\\n" +" flags S/SA keep state \\\n" +" (max-src-conn <replaceable>100</replaceable>, max-src-conn-rate <replaceable>15/5</replaceable>, \\\n" +" overload <bruteforce> flush global)" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59061 +msgid "" +"The part in parentheses defines the limits and the numbers should be changed " +"to meet local requirements. It can be read as follows:" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59065 +msgid "" +"<literal>max-src-conn</literal> is the number of simultaneous connections " +"allowed from one host." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59068 +msgid "" +"<literal>max-src-conn-rate</literal> is the rate of new connections allowed " +"from any single host (<replaceable>15</replaceable>) per number of seconds " +"(<replaceable>5</replaceable>)." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59073 +msgid "" +"<literal>overload <bruteforce></literal> means that any host which " +"exceeds these limits gets its address added to the <literal>bruteforce</" +"literal> table. The ruleset blocks all traffic from addresses in the " +"<literal>bruteforce</literal> table." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59079 +msgid "" +"Finally, <literal>flush global</literal> says that when a host reaches the " +"limit, that all (<literal>global</literal>) of that host's connections will " +"be terminated (<literal>flush</literal>)." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:59085 +msgid "" +"These rules will <emphasis>not</emphasis> block slow bruteforcers, as " +"described in <link xlink:href=\"http://home.nuug.no/~peter/hailmary2013/" +"\">http://home.nuug.no/~peter/hailmary2013/</link>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59089 +msgid "" +"This example ruleset is intended mainly as an illustration. For example, if " +"a generous number of connections in general are wanted, but the desire is to " +"be more restrictive when it comes to <application>ssh</application>, " +"supplement the rule above with something like the one below, early on in the " +"rule set:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:59097 +#, no-wrap +msgid "" +"pass quick proto { tcp, udp } from any to any port ssh \\\n" +" flags S/SA keep state \\\n" +" (max-src-conn 15, max-src-conn-rate 5/3, \\\n" +" overload <bruteforce> flush global)" +msgstr "" + +#. (itstool) path: note/title +#: book.translate.xml:59103 +msgid "It May Not be Necessary to Block All Overloaders" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:59106 +msgid "" +"It is worth noting that the overload mechanism is a general technique which " +"does not apply exclusively to <acronym>SSH</acronym>, and it is not always " +"optimal to entirely block all traffic from offenders." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:59111 +msgid "" +"For example, an overload rule could be used to protect a mail service or a " +"web service, and the overload table could be used in a rule to assign " +"offenders to a queue with a minimal bandwidth allocation or to redirect to a " +"specific web page." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59118 +msgid "" +"Over time, tables will be filled by overload rules and their size will grow " +"incrementally, taking up more memory. Sometimes an <acronym>IP</acronym> " +"address that is blocked is a dynamically assigned one, which has since been " +"assigned to a host who has a legitimate reason to communicate with hosts in " +"the local network." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59125 +msgid "" +"For situations like these, <application>pfctl</application> provides the " +"ability to expire table entries. For example, this command will remove " +"<literal><bruteforce></literal> table entries which have not been " +"referenced for <literal>86400</literal> seconds:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:59132 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pfctl -t bruteforce -T expire 86400</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59134 +msgid "" +"Similar functionality is provided by <package>security/expiretable</" +"package>, which removes table entries which have not been accessed for a " +"specified period of time." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59139 +msgid "" +"Once installed, <application>expiretable</application> can be run to remove " +"<literal><bruteforce></literal> table entries older than a specified " +"age. This example removes all entries older than 24 hours:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:59144 +#, no-wrap +msgid "/usr/local/sbin/expiretable -v -d -t 24h bruteforce" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:59148 +msgid "Protecting Against <acronym>SPAM</acronym>" +msgstr "<acronym>SPAM</acronym> 防護" + +#. (itstool) path: sect3/para +#: book.translate.xml:59150 +msgid "" +"Not to be confused with the <application>spamd</application> daemon which " +"comes bundled with <application>spamassassin</application>, <package>mail/" +"spamd</package> can be configured with <application>PF</application> to " +"provide an outer defense against <acronym>SPAM</acronym>. This " +"<application>spamd</application> hooks into the <application>PF</" +"application> configuration using a set of redirections." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59160 +msgid "" +"Spammers tend to send a large number of messages, and <acronym>SPAM</" +"acronym> is mainly sent from a few spammer friendly networks and a large " +"number of hijacked machines, both of which are reported to " +"<firstterm>blacklists</firstterm> fairly quickly." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59166 +msgid "" +"When an <acronym>SMTP</acronym> connection from an address in a blacklist is " +"received, <application>spamd</application> presents its banner and " +"immediately switches to a mode where it answers <acronym>SMTP</acronym> " +"traffic one byte at a time. This technique, which is intended to waste as " +"much time as possible on the spammer's end, is called <firstterm>tarpitting</" +"firstterm>. The specific implementation which uses one byte <acronym>SMTP</" +"acronym> replies is often referred to as <firstterm>stuttering</firstterm>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59178 +msgid "" +"This example demonstrates the basic procedure for setting up " +"<application>spamd</application> with automatically updated blacklists. " +"Refer to the man pages which are installed with <package>mail/spamd</" +"package> for more information." +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:59185 +msgid "Configuring <application>spamd</application>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59188 +msgid "" +"Install the <package>mail/spamd</package> package or port. In order to use " +"<application>spamd</application>'s greylisting features, " +"<citerefentry><refentrytitle>fdescfs</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> must be mounted at <filename>/dev/fd</filename>. " +"Add the following line to <filename>/etc/fstab</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:59195 +#, no-wrap +msgid " fdescfs /dev/fd fdescfs rw 0 0" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59197 +msgid "Then, mount the filesystem:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:59199 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount fdescfs</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59203 +msgid "Next, edit the <application>PF</application> ruleset to include:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:59206 +#, no-wrap +msgid "" +"table <spamd> persist\n" +"table <spamd-white> persist\n" +"rdr pass on $ext_if inet proto tcp from <spamd> to \\\n" +" { $ext_if, $localnet } port smtp -> 127.0.0.1 port 8025\n" +"rdr pass on $ext_if inet proto tcp from !<spamd-white> to \\\n" +" { $ext_if, $localnet } port smtp -> 127.0.0.1 port 8025" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59213 +msgid "" +"The two tables <literal><spamd></literal> and <literal><spamd-" +"white></literal> are essential. <acronym>SMTP</acronym> traffic from an " +"address listed in<literal> <spamd></literal> but not in <literal><" +"spamd-white></literal> is redirected to the <application>spamd</" +"application> daemon listening at port 8025." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59223 +msgid "" +"The next step is to configure <application>spamd</application> in <filename>/" +"usr/local/etc/spamd.conf</filename> and to add some <filename>rc.conf</" +"filename> parameters." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59228 +msgid "" +"The installation of <package>mail/spamd</package> includes a sample " +"configuration file (<filename>/usr/local/etc/spamd.conf.sample</filename>) " +"and a man page for <filename>spamd.conf</filename>. Refer to these for " +"additional configuration options beyond those shown in this example." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59235 +msgid "" +"One of the first lines in the configuration file that does not begin with a " +"<literal>#</literal> comment sign contains the block which defines the " +"<literal>all</literal> list, which specifies the lists to use:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:59241 +#, no-wrap +msgid "" +"all:\\\n" +" :traplist:whitelist:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59244 +msgid "" +"This entry adds the desired blacklists, separated by colons (<literal>:</" +"literal>). To use a whitelist to subtract addresses from a blacklist, add " +"the name of the whitelist <emphasis>immediately</emphasis> after the name of " +"that blacklist. For example: <literal>:blacklist:whitelist:</literal>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59251 +msgid "This is followed by the specified blacklist's definition:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:59254 +#, no-wrap +msgid "" +"traplist:\\\n" +" :black:\\\n" +" :msg=\"SPAM. Your address %A has sent spam within the last 24 hours\":\\\n" +" :method=http:\\\n" +" :file=www.openbsd.org/spamd/traplist.gz" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59260 +msgid "" +"where the first line is the name of the blacklist and the second line " +"specifies the list type. The <literal>msg</literal> field contains the " +"message to display to blacklisted senders during the <acronym>SMTP</acronym> " +"dialogue. The <literal>method</literal> field specifies how " +"<application>spamd-setup</application> fetches the list data; supported " +"methods are <literal>http</literal>, <literal>ftp</literal>, from a " +"<literal>file</literal> in a mounted file system, and via <literal>exec</" +"literal> of an external program. Finally, the <literal>file</literal> field " +"specifies the name of the file <application>spamd</application> expects to " +"receive." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59275 +msgid "" +"The definition of the specified whitelist is similar, but omits the " +"<literal>msg</literal> field since a message is not needed:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:59279 +#, no-wrap +msgid "" +"whitelist:\\\n" +" :white:\\\n" +" :method=file:\\\n" +" :file=/var/mail/whitelist.txt" +msgstr "" + +#. (itstool) path: tip/title +#: book.translate.xml:59285 +msgid "Choose Data Sources with Care" +msgstr "" + +#. (itstool) path: tip/para +#: book.translate.xml:59287 +msgid "" +"Using all the blacklists in the sample <filename>spamd.conf</filename> will " +"blacklist large blocks of the Internet. Administrators need to edit the file " +"to create an optimal configuration which uses applicable data sources and, " +"when necessary, uses custom lists." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59295 +msgid "" +"Next, add this entry to <filename>/etc/rc.conf</filename>. Additional flags " +"are described in the man page specified by the comment:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:59300 +#, no-wrap +msgid "spamd_flags=\"-v\" # use \"\" and see spamd-setup(8) for flags" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59302 +msgid "" +"When finished, reload the ruleset, start <application>spamd</application> by " +"typing <command>service start obspamd</command>, and complete the " +"configuration using <command>spamd-setup</command>. Finally, create a " +"<citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> job which calls <command>spamd-setup</command> to update the " +"tables at reasonable intervals." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59312 +msgid "" +"On a typical gateway in front of a mail server, hosts will soon start " +"getting trapped within a few seconds to several minutes." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59316 +msgid "" +"<application>PF</application> also supports <firstterm>greylisting</" +"firstterm>, which temporarily rejects messages from unknown hosts with " +"<replaceable>45n</replaceable> codes. Messages from greylisted hosts which " +"try again within a reasonable time are let through. Traffic from senders " +"which are set up to behave within the limits set by RFC 1123 and RFC 2821 " +"are immediately let through." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59325 +msgid "" +"More information about greylisting as a technique can be found at the <link " +"xlink:href=\"http://www.greylisting.org/\">greylisting.org</link> web site. " +"The most amazing thing about greylisting, apart from its simplicity, is that " +"it still works. Spammers and malware writers have been very slow to adapt in " +"order to bypass this technique." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59332 +msgid "The basic procedure for configuring greylisting is as follows:" +msgstr "" + +#. (itstool) path: procedure/title +#: book.translate.xml:59336 +msgid "Configuring Greylisting" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59339 +msgid "" +"Make sure that <citerefentry><refentrytitle>fdescfs</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> is mounted as " +"described in Step 1 of the previous Procedure." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59344 +msgid "" +"To run <application>spamd</application> in greylisting mode, add this line " +"to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:59348 +#, no-wrap +msgid "spamd_grey=\"YES\" # use spamd greylisting if YES" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59350 +msgid "" +"Refer to the <application>spamd</application> man page for descriptions of " +"additional related parameters." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:59356 +msgid "To complete the greylisting setup:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:59358 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service restart obspamd</userinput>\n" +"<prompt>#</prompt> <userinput>service start spamlogd</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59363 +msgid "" +"Behind the scenes, the <application>spamdb</application> database tool and " +"the <application>spamlogd</application> whitelist updater perform essential " +"functions for the greylisting feature. <application>spamdb</application> is " +"the administrator's main interface to managing the black, grey, and white " +"lists via the contents of the <filename>/var/db/spamdb</filename> database." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:59373 +msgid "Network Hygiene" +msgstr "網路保健" + +#. (itstool) path: sect3/para +#: book.translate.xml:59375 +msgid "" +"This section describes how <literal>block-policy</literal>, <literal>scrub</" +"literal>, and <literal>antispoof</literal> can be used to make the ruleset " +"behave sanely." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59380 +msgid "" +"The <literal>block-policy</literal> is an option which can be set in the " +"<literal>options</literal> part of the ruleset, which precedes the " +"redirection and filtering rules. This option determines which feedback, if " +"any, <application>PF</application> sends to hosts that are blocked by a " +"rule. The option has two possible values: <literal>drop</literal> drops " +"blocked packets with no feedback, and <literal>return</literal> returns a " +"status code such as <computeroutput>Connection refused</computeroutput>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59391 +msgid "" +"If not set, the default policy is <literal>drop</literal>. To change the " +"<literal>block-policy</literal>, specify the desired value:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:59396 +#, no-wrap +msgid "set block-policy return" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59398 +msgid "" +"In <application>PF</application>, <literal>scrub</literal> is a keyword " +"which enables network packet normalization. This process reassembles " +"fragmented packets and drops TCP packets that have invalid flag " +"combinations. Enabling <literal>scrub</literal> provides a measure of " +"protection against certain kinds of attacks based on incorrect handling of " +"packet fragments. A number of options are available, but the simplest form " +"is suitable for most configurations:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:59408 +#, no-wrap +msgid "scrub in all" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59410 +msgid "" +"Some services, such as <acronym>NFS</acronym>, require specific fragment " +"handling options. Refer to <link xlink:href=\"http://www.openbsd.gr/faq/pf/" +"scrub.html\">http://www.openbsd.gr/faq/pf/scrub.html</link> for more " +"information." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59414 +msgid "" +"This example reassembles fragments, clears the <quote>do not fragment</" +"quote> bit, and sets the maximum segment size to 1440 bytes:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:59418 +#, no-wrap +msgid "scrub in all fragment reassemble no-df max-mss 1440" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59420 +msgid "" +"The <literal>antispoof</literal> mechanism protects against activity from " +"spoofed or forged <acronym>IP</acronym> addresses, mainly by blocking " +"packets appearing on interfaces and in directions which are logically not " +"possible." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59426 +msgid "" +"These rules weed out spoofed traffic coming in from the rest of the world as " +"well as any spoofed packets which originate in the local network:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:59430 +#, no-wrap +msgid "" +"antispoof for $ext_if\n" +"antispoof for $int_if" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:59435 +msgid "Handling Non-Routable Addresses" +msgstr "處理不可路由 (Non-Routable) 的位址" + +#. (itstool) path: sect3/para +#: book.translate.xml:59437 +msgid "" +"Even with a properly configured gateway to handle network address " +"translation, one may have to compensate for other people's " +"misconfigurations. A common misconfiguration is to let traffic with non-" +"routable addresses out to the Internet. Since traffic from non-routeable " +"addresses can play a part in several <acronym>DoS</acronym> attack " +"techniques, consider explicitly blocking traffic from non-routeable " +"addresses from entering the network through the external interface." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:59447 +msgid "" +"In this example, a macro containing non-routable addresses is defined, then " +"used in blocking rules. Traffic to and from these addresses is quietly " +"dropped on the gateway's external interface." +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:59453 +#, no-wrap +msgid "" +"martians = \"{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, \\\n" +"\t 10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, \\\n" +"\t 0.0.0.0/8, 240.0.0.0/4 }\"\n" +"\n" +"block drop in quick on $ext_if from $martians to any\n" +"block drop out quick on $ext_if from any to $martians" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:59464 +msgid "<application>IPFW</application>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:59466 +msgid "<primary>firewall</primary> <secondary>IPFW</secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:59472 +msgid "" +"<application>IPFW</application> is a stateful firewall written for FreeBSD " +"which supports both <acronym>IPv4</acronym> and <acronym>IPv6</acronym>. It " +"is comprised of several components: the kernel firewall filter rule " +"processor and its integrated packet accounting facility, the logging " +"facility, <acronym>NAT</acronym>, the <citerefentry><refentrytitle>dummynet</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> traffic shaper, a " +"forward facility, a bridge facility, and an ipstealth facility." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:59481 +msgid "" +"FreeBSD provides a sample ruleset in <filename>/etc/rc.firewall</filename> " +"which defines several firewall types for common scenarios to assist novice " +"users in generating an appropriate ruleset. <application>IPFW</application> " +"provides a powerful syntax which advanced users can use to craft customized " +"rulesets that meet the security requirements of a given environment." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:59489 +msgid "" +"This section describes how to enable <application>IPFW</application>, " +"provides an overview of its rule syntax, and demonstrates several rulesets " +"for common configuration scenarios." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:59495 +msgid "Enabling <application>IPFW</application>" +msgstr "開啟 <application>IPFW</application>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:59497 +msgid "" +"<primary><application>IPFW</application></primary> <secondary>enabling</" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59503 +msgid "" +"<application>IPFW</application> is included in the basic FreeBSD install as " +"a kernel loadable module, meaning that a custom kernel is not needed in " +"order to enable <application>IPFW</application>." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:59508 +msgid "<primary>kernel options</primary> <secondary>IPFIREWALL</secondary>" +msgstr "<primary>核心選項</primary> <secondary>IPFIREWALL</secondary>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:59514 +msgid "" +"<primary>kernel options</primary> <secondary>IPFIREWALL_VERBOSE</secondary>" +msgstr "<primary>核心選項</primary> <secondary>IPFIREWALL_VERBOSE</secondary>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:59520 +msgid "" +"<primary>kernel options</primary> <secondary>IPFIREWALL_VERBOSE_LIMIT</" +"secondary>" +msgstr "" +"<primary>核心選項</primary> <secondary>IPFIREWALL_VERBOSE_LIMIT</secondary>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:59526 +msgid "" +"<primary><application>IPFW</application></primary> <secondary>kernel " +"options</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59532 +msgid "" +"For those users who wish to statically compile <application>IPFW</" +"application> support into a custom kernel, refer to the instructions in " +"<xref linkend=\"kernelconfig\"/>. The following options are available for " +"the custom kernel configuration file:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59538 +#, no-wrap +msgid "" +"options IPFIREWALL\t\t\t# enables IPFW\n" +"options IPFIREWALL_VERBOSE\t\t# enables logging for rules with log keyword\n" +"options IPFIREWALL_VERBOSE_LIMIT=5\t# limits number of logged packets per-entry\n" +"options IPFIREWALL_DEFAULT_TO_ACCEPT # sets default policy to pass what is not explicitly denied\n" +"options IPDIVERT\t\t\t# enables NAT" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59544 +msgid "" +"To configure the system to enable <application>IPFW</application> at boot " +"time, add the following entry to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59548 +#, no-wrap +msgid "firewall_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59550 +msgid "" +"To use one of the default firewall types provided by FreeBSD, add another " +"line which specifies the type:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59553 +#, no-wrap +msgid "firewall_type=\"open\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59555 +msgid "The available types are:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59559 +msgid "<literal>open</literal>: passes all traffic." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59562 +msgid "<literal>client</literal>: protects only this machine." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59566 +msgid "<literal>simple</literal>: protects the whole network." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59570 +msgid "" +"<literal>closed</literal>: entirely disables IP traffic except for the " +"loopback interface." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59574 +msgid "" +"<literal>workstation</literal>: protects only this machine using stateful " +"rules." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59578 +msgid "<literal>UNKNOWN</literal>: disables the loading of firewall rules." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59582 +msgid "" +"<filename><replaceable>filename</replaceable></filename>: full path of the " +"file containing the firewall ruleset." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59588 +msgid "" +"If <literal>firewall_type</literal> is set to either <literal>client</" +"literal> or <literal>simple</literal>, modify the default rules found in " +"<filename>/etc/rc.firewall</filename> to fit the configuration of the system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59594 +msgid "" +"Note that the <literal>filename</literal> type is used to load a custom " +"ruleset." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59597 +msgid "" +"An alternate way to load a custom ruleset is to set the " +"<literal>firewall_script</literal> variable to the absolute path of an " +"<emphasis>executable script</emphasis> that includes <application>IPFW</" +"application> commands. The examples used in this section assume that the " +"<literal>firewall_script</literal> is set to <filename>/etc/ipfw.rules</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59605 +#, no-wrap +msgid "firewall_script=\"/etc/ipfw.rules\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59607 +msgid "To enable logging, include this line:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59609 +#, no-wrap +msgid "firewall_logging=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59611 +msgid "" +"There is no <filename>/etc/rc.conf</filename> variable to set logging " +"limits. To limit the number of times a rule is logged per connection " +"attempt, specify the number using this line in <filename>/etc/sysctl.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59616 +#, no-wrap +msgid "net.inet.ip.fw.verbose_limit=<replaceable>5</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59618 +msgid "" +"After saving the needed edits, start the firewall. To enable logging limits " +"now, also set the <command>sysctl</command> value specified above:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:59622 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service ipfw start</userinput>\n" +"<prompt>#</prompt> <userinput>sysctl net.inet.ip.fw.verbose_limit=<replaceable>5</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:59627 +msgid "<application>IPFW</application> Rule Syntax" +msgstr "<application>IPFW</application> 規則語法" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:59629 +msgid "" +"<primary><application>IPFW</application></primary> <secondary>rule " +"processing order</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59635 +msgid "" +"When a packet enters the <application>IPFW</application> firewall, it is " +"compared against the first rule in the ruleset and progresses one rule at a " +"time, moving from top to bottom in sequence. When the packet matches the " +"selection parameters of a rule, the rule's action is executed and the search " +"of the ruleset terminates for that packet. This is referred to as " +"<quote>first match wins</quote>. If the packet does not match any of the " +"rules, it gets caught by the mandatory <application>IPFW</application> " +"default rule number 65535, which denies all packets and silently discards " +"them. However, if the packet matches a rule that contains the " +"<literal>count</literal>, <literal>skipto</literal>, or <literal>tee</" +"literal> keywords, the search continues. Refer to " +"<citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for details on how these keywords affect rule processing." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:59651 +msgid "" +"<primary><application>IPFW</application></primary> <secondary>rule syntax</" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59657 +msgid "" +"When creating an <application>IPFW</application> rule, keywords must be " +"written in the following order. Some keywords are mandatory while other " +"keywords are optional. The words shown in uppercase represent a variable and " +"the words shown in lowercase must precede the variable that follows it. The " +"<literal>#</literal> symbol is used to mark the start of a comment and may " +"appear at the end of a rule or on its own line. Blank lines are ignored." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59667 +msgid "" +"<replaceable>CMD RULE_NUMBER set SET_NUMBER ACTION log LOG_AMOUNT PROTO from " +"SRC SRC_PORT to DST DST_PORT OPTIONS</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59671 +msgid "" +"This section provides an overview of these keywords and their options. It is " +"not an exhaustive list of every possible option. Refer to " +"<citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for a complete description of the rule syntax that can be used " +"when creating <application>IPFW</application> rules." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59679 +msgid "CMD" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59681 +msgid "Every rule must start with <parameter>ipfw add</parameter>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59687 +msgid "RULE_NUMBER" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59689 +msgid "" +"Each rule is associated with a number from <literal>1</literal> to " +"<literal>65534</literal>. The number is used to indicate the order of rule " +"processing. Multiple rules can have the same number, in which case they are " +"applied according to the order in which they have been added." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59700 +msgid "SET_NUMBER" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59702 +msgid "" +"Each rule is associated with a set number from <literal>0</literal> to " +"<literal>31</literal>. Sets can be individually disabled or enabled, making " +"it possible to quickly add or delete a set of rules. If a SET_NUMBER is not " +"specified, the rule will be added to set <literal>0</literal>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59712 book.translate.xml:60690 +msgid "ACTION" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59714 +msgid "" +"A rule can be associated with one of the following actions. The specified " +"action will be executed when the packet matches the selection criterion of " +"the rule." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59719 +msgid "" +"<parameter>allow | accept | pass | permit</parameter>: these keywords are " +"equivalent and allow packets that match the rule." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59723 +msgid "" +"<parameter>check-state</parameter>: checks the packet against the dynamic " +"state table. If a match is found, execute the action associated with the " +"rule which generated this dynamic rule, otherwise move to the next rule. A " +"<literal>check-state</literal> rule does not have selection criterion. If no " +"<literal>check-state</literal> rule is present in the ruleset, the dynamic " +"rules table is checked at the first <literal>keep-state</literal> or " +"<literal>limit</literal> rule." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59734 +msgid "" +"<parameter>count</parameter>: updates counters for all packets that match " +"the rule. The search continues with the next rule." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59738 +msgid "" +"<parameter>deny | drop</parameter>: either word silently discards packets " +"that match this rule." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59741 +msgid "" +"Additional actions are available. Refer to " +"<citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> for details." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59747 +msgid "LOG_AMOUNT" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59749 +msgid "" +"When a packet matches a rule with the <literal>log</literal> keyword, a " +"message will be logged to <citerefentry><refentrytitle>syslogd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> with a facility name " +"of <literal>SECURITY</literal>. Logging only occurs if the number of packets " +"logged for that particular rule does not exceed a specified LOG_AMOUNT. If " +"no LOG_AMOUNT is specified, the limit is taken from the value of " +"<varname>net.inet.ip.fw.verbose_limit</varname>. A value of zero removes the " +"logging limit. Once the limit is reached, logging can be re-enabled by " +"clearing the logging counter or the packet counter for that rule, using " +"<command>ipfw resetlog</command>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:59764 +msgid "" +"Logging is done after all other packet matching conditions have been met, " +"and before performing the final action on the packet. The administrator " +"decides which rules to enable logging on." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59773 +msgid "PROTO" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59775 +msgid "" +"This optional value can be used to specify any protocol name or number found " +"in <filename>/etc/protocols</filename>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59782 +msgid "SRC" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59784 +msgid "" +"The <literal>from</literal> keyword must be followed by the source address " +"or a keyword that represents the source address. An address can be " +"represented by <literal>any</literal>, <literal>me</literal> (any address " +"configured on an interface on this system), <literal>me6</literal>, (any " +"<acronym>IPv6</acronym> address configured on an interface on this system), " +"or <literal>table</literal> followed by the number of a lookup table which " +"contains a list of addresses. When specifying an <acronym>IP</acronym> " +"address, it can be optionally followed by its <acronym>CIDR</acronym> mask " +"or subnet mask. For example, <literal>1.2.3.4/25</literal> or " +"<literal>1.2.3.4:255.255.255.128</literal>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59802 book.translate.xml:60826 +msgid "SRC_PORT" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59804 +msgid "" +"An optional source port can be specified using the port number or name from " +"<filename>/etc/services</filename>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59811 +msgid "DST" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59813 +msgid "" +"The <literal>to</literal> keyword must be followed by the destination " +"address or a keyword that represents the destination address. The same " +"keywords and addresses described in the SRC section can be used to describe " +"the destination." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59822 book.translate.xml:60863 +msgid "DST_PORT" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59824 +msgid "" +"An optional destination port can be specified using the port number or name " +"from <filename>/etc/services</filename>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:59831 book.translate.xml:60742 +msgid "OPTIONS" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59833 +msgid "" +"Several keywords can follow the source and destination. As the name " +"suggests, OPTIONS are optional. Commonly used options include <literal>in</" +"literal> or <literal>out</literal>, which specify the direction of packet " +"flow, <literal>icmptypes</literal> followed by the type of <acronym>ICMP</" +"acronym> message, and <literal>keep-state</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59842 +msgid "" +"When a <parameter>keep-state</parameter> rule is matched, the firewall will " +"create a dynamic rule which matches bidirectional traffic between the source " +"and destination addresses and ports using the same protocol." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59848 +msgid "" +"The dynamic rules facility is vulnerable to resource depletion from a SYN-" +"flood attack which would open a huge number of dynamic rules. To counter " +"this type of attack with <application>IPFW</application>, use " +"<literal>limit</literal>. This option limits the number of simultaneous " +"sessions by checking the open dynamic rules, counting the number of times " +"this rule and <acronym>IP</acronym> address combination occurred. If this " +"count is greater than the value specified by <literal>limit</literal>, the " +"packet is discarded." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:59860 +msgid "" +"Dozens of OPTIONS are available. Refer to <citerefentry><refentrytitle>ipfw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for a description of " +"each available option." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:59869 book.translate.xml:60942 +msgid "Example Ruleset" +msgstr "範例規則集" + +#. (itstool) path: sect2/para +#: book.translate.xml:59871 +msgid "" +"This section demonstrates how to create an example stateful firewall ruleset " +"script named <filename>/etc/ipfw.rules</filename>. In this example, all " +"connection rules use <literal>in</literal> or <literal>out</literal> to " +"clarify the direction. They also use <literal>via</literal> " +"<replaceable>interface-name</replaceable> to specify the interface the " +"packet is traveling over." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:59881 +msgid "" +"When first creating or testing a firewall ruleset, consider temporarily " +"setting this tunable:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:59884 +#, no-wrap +msgid "net.inet.ip.fw.default_to_accept=\"1\"" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:59886 +msgid "" +"This sets the default policy of <citerefentry><refentrytitle>ipfw</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to be more permissive " +"than the default <literal>deny ip from any to any</literal>, making it " +"slightly more difficult to get locked out of the system right after a reboot." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59892 +msgid "" +"The firewall script begins by indicating that it is a Bourne shell script " +"and flushes any existing rules. It then creates the <literal>cmd</literal> " +"variable so that <literal>ipfw add</literal> does not have to be typed at " +"the beginning of every rule. It also defines the <literal>pif</literal> " +"variable which represents the name of the interface that is attached to the " +"Internet." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59900 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"# Flush out the list before we begin.\n" +"ipfw -q -f flush\n" +"\n" +"# Set rules command prefix\n" +"cmd=\"ipfw -q add\"\n" +"pif=\"dc0\" # interface name of NIC attached to Internet" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59908 +msgid "" +"The first two rules allow all traffic on the trusted internal interface and " +"on the loopback interface:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59911 +#, no-wrap +msgid "" +"# Change xl0 to LAN NIC interface name\n" +"$cmd 00005 allow all from any to any via xl0\n" +"\n" +"# No restrictions on Loopback Interface\n" +"$cmd 00010 allow all from any to any via lo0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59917 +msgid "" +"The next rule allows the packet through if it matches an existing entry in " +"the dynamic rules table:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59920 +#, no-wrap +msgid "$cmd 00101 check-state" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59922 +msgid "" +"The next set of rules defines which stateful connections internal systems " +"can create to hosts on the Internet:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59925 +#, no-wrap +msgid "" +"# Allow access to public DNS\n" +"# Replace x.x.x.x with the IP address of a public DNS server\n" +"# and repeat for each DNS server in /etc/resolv.conf\n" +"$cmd 00110 allow tcp from any to x.x.x.x 53 out via $pif setup keep-state\n" +"$cmd 00111 allow udp from any to x.x.x.x 53 out via $pif keep-state\n" +"\n" +"# Allow access to ISP's DHCP server for cable/DSL configurations.\n" +"# Use the first rule and check log for IP address.\n" +"# Then, uncomment the second rule, input the IP address, and delete the first rule\n" +"$cmd 00120 allow log udp from any to any 67 out via $pif keep-state\n" +"#$cmd 00120 allow udp from any to x.x.x.x 67 out via $pif keep-state\n" +"\n" +"# Allow outbound HTTP and HTTPS connections\n" +"$cmd 00200 allow tcp from any to any 80 out via $pif setup keep-state\n" +"$cmd 00220 allow tcp from any to any 443 out via $pif setup keep-state\n" +"\n" +"# Allow outbound email connections\n" +"$cmd 00230 allow tcp from any to any 25 out via $pif setup keep-state\n" +"$cmd 00231 allow tcp from any to any 110 out via $pif setup keep-state\n" +"\n" +"# Allow outbound ping\n" +"$cmd 00250 allow icmp from any to any out via $pif keep-state\n" +"\n" +"# Allow outbound NTP\n" +"$cmd 00260 allow tcp from any to any 37 out via $pif setup keep-state\n" +"\n" +"# Allow outbound SSH\n" +"$cmd 00280 allow tcp from any to any 22 out via $pif setup keep-state\n" +"\n" +"# deny and log all other outbound connections\n" +"$cmd 00299 deny log all from any to any out via $pif" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:59957 +msgid "" +"The next set of rules controls connections from Internet hosts to the " +"internal network. It starts by denying packets typically associated with " +"attacks and then explicitly allows specific types of connections. All the " +"authorized services that originate from the Internet use <literal>limit</" +"literal> to prevent flooding." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:59964 +#, no-wrap +msgid "" +"# Deny all inbound traffic from non-routable reserved address spaces\n" +"$cmd 00300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918 private IP\n" +"$cmd 00301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918 private IP\n" +"$cmd 00302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918 private IP\n" +"$cmd 00303 deny all from 127.0.0.0/8 to any in via $pif #loopback\n" +"$cmd 00304 deny all from 0.0.0.0/8 to any in via $pif #loopback\n" +"$cmd 00305 deny all from 169.254.0.0/16 to any in via $pif #DHCP auto-config\n" +"$cmd 00306 deny all from 192.0.2.0/24 to any in via $pif #reserved for docs\n" +"$cmd 00307 deny all from 204.152.64.0/23 to any in via $pif #Sun cluster interconnect\n" +"$cmd 00308 deny all from 224.0.0.0/3 to any in via $pif #Class D & E multicast\n" +"\n" +"# Deny public pings\n" +"$cmd 00310 deny icmp from any to any in via $pif\n" +"\n" +"# Deny ident\n" +"$cmd 00315 deny tcp from any to any 113 in via $pif\n" +"\n" +"# Deny all Netbios services.\n" +"$cmd 00320 deny tcp from any to any 137 in via $pif\n" +"$cmd 00321 deny tcp from any to any 138 in via $pif\n" +"$cmd 00322 deny tcp from any to any 139 in via $pif\n" +"$cmd 00323 deny tcp from any to any 81 in via $pif\n" +"\n" +"# Deny fragments\n" +"$cmd 00330 deny all from any to any frag in via $pif\n" +"\n" +"# Deny ACK packets that did not match the dynamic rule table\n" +"$cmd 00332 deny tcp from any to any established in via $pif\n" +"\n" +"# Allow traffic from ISP's DHCP server.\n" +"# Replace x.x.x.x with the same IP address used in rule 00120.\n" +"#$cmd 00360 allow udp from any to x.x.x.x 67 in via $pif keep-state\n" +"\n" +"# Allow HTTP connections to internal web server\n" +"$cmd 00400 allow tcp from any to me 80 in via $pif setup limit src-addr 2\n" +"\n" +"# Allow inbound SSH connections\n" +"$cmd 00410 allow tcp from any to me 22 in via $pif setup limit src-addr 2\n" +"\n" +"# Reject and log all other incoming connections\n" +"$cmd 00499 deny log all from any to any in via $pif" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60006 +msgid "" +"The last rule logs all packets that do not match any of the rules in the " +"ruleset:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60009 +#, no-wrap +msgid "" +"# Everything else is denied and logged\n" +"$cmd 00999 deny log all from any to any" +msgstr "" + +#. (itstool) path: info/title +#. (itstool) path: sect2/title +#: book.translate.xml:60015 book.translate.xml:61096 +msgid "Configuring <acronym>NAT</acronym>" +msgstr "設定 <acronym>NAT</acronym>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:60027 +msgid "" +"<primary>NAT</primary> <secondary>and <application>IPFW</application></" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60033 +msgid "" +"FreeBSD's built-in <acronym>NAT</acronym> daemon, " +"<citerefentry><refentrytitle>natd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, works in conjunction with <application>IPFW</application> to " +"provide network address translation. This can be used to provide an Internet " +"Connection Sharing solution so that several internal computers can connect " +"to the Internet using a single <acronym>IP</acronym> address." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60041 +msgid "" +"To do this, the FreeBSD machine connected to the Internet must act as a " +"gateway. This system must have two <acronym>NIC</acronym>s, where one is " +"connected to the Internet and the other is connected to the internal " +"<acronym>LAN</acronym>. Each machine connected to the <acronym>LAN</acronym> " +"should be assigned an <acronym>IP</acronym> address in the private network " +"space, as defined by <link xlink:href=\"ftp://ftp.isi.edu/in-notes/rfc1918." +"txt\">RFC 1918</link>, and have the default gateway set to the " +"<citerefentry><refentrytitle>natd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> system's internal <acronym>IP</acronym> address." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60053 +msgid "" +"Some additional configuration is needed in order to activate the " +"<acronym>NAT</acronym> function of <application>IPFW</application>. If the " +"system has a custom kernel, the kernel configuration file needs to include " +"<literal>option IPDIVERT</literal> along with the other <literal>IPFIREWALL</" +"literal> options described in <xref linkend=\"firewalls-ipfw-enable\"/>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60060 +msgid "" +"To enable <acronym>NAT</acronym> support at boot time, the following must be " +"in <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60063 +#, no-wrap +msgid "" +"gateway_enable=\"YES\"\t\t# enables the gateway\n" +"natd_enable=\"YES\"\t\t# enables <acronym>NAT</acronym>\n" +"natd_interface=\"rl0\"\t\t# specify interface name of NIC attached to Internet\n" +"natd_flags=\"-dynamic -m\"\t# -m = preserve port numbers; additional options are listed in <citerefentry><refentrytitle>natd</refentrytitle><manvolnum>8</manvolnum></citerefentry>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:60069 +msgid "" +"It is also possible to specify a configuration file which contains the " +"options to pass to <citerefentry><refentrytitle>natd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:60072 +#, no-wrap +msgid "natd_flags=\"-f /etc/natd.conf\"" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:60074 +msgid "" +"The specified file must contain a list of configuration options, one per " +"line. For example:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:60077 +#, no-wrap +msgid "" +"redirect_port tcp 192.168.0.2:6667 6667\n" +"redirect_port tcp 192.168.0.3:80 80" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:60080 +msgid "" +"For more information about this configuration file, consult " +"<citerefentry><refentrytitle>natd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60084 +msgid "" +"Next, add the <acronym>NAT</acronym> rules to the firewall ruleset. When the " +"rulest contains stateful rules, the positioning of the <acronym>NAT</" +"acronym> rules is critical and the <literal>skipto</literal> action is used. " +"The <literal>skipto</literal> action requires a rule number so that it knows " +"which rule to jump to." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60091 +msgid "" +"The following example builds upon the firewall ruleset shown in the previous " +"section. It adds some additional entries and modifies some existing rules in " +"order to configure the firewall for <acronym>NAT</acronym>. It starts by " +"adding some additional variables which represent the rule number to skip to, " +"the <literal>keep-state</literal> option, and a list of <acronym>TCP</" +"acronym> ports which will be used to reduce the number of rules:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60100 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"ipfw -q -f flush\n" +"cmd=\"ipfw -q add\"\n" +"skip=\"skipto 500\"\n" +"pif=dc0\n" +"ks=\"keep-state\"\n" +"good_tcpo=\"22,25,37,53,80,443,110\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60108 +msgid "" +"The inbound <acronym>NAT</acronym> rule is inserted <emphasis>after</" +"emphasis> the two rules which allow all traffic on the trusted internal " +"interface and on the loopback interface and <emphasis>before</emphasis> the " +"<literal>check-state</literal> rule. It is important that the rule number " +"selected for this <acronym>NAT</acronym> rule, in this example <literal>100</" +"literal>, is higher than the first two rules and lower than the " +"<literal>check-state</literal> rule:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60118 +#, no-wrap +msgid "" +"$cmd 005 allow all from any to any via xl0 # exclude LAN traffic\n" +"$cmd 010 allow all from any to any via lo0 # exclude loopback traffic\n" +"$cmd 100 divert natd ip from any to any in via $pif # NAT any inbound packets\n" +"# Allow the packet through if it has an existing entry in the dynamic rules table\n" +"$cmd 101 check-state" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60124 +msgid "" +"The outbound rules are modified to replace the <literal>allow</literal> " +"action with the <literal>$skip</literal> variable, indicating that rule " +"processing will continue at rule <literal>500</literal>. The seven " +"<literal>tcp</literal> rules have been replaced by rule <literal>125</" +"literal> as the <literal>$good_tcpo</literal> variable contains the seven " +"allowed outbound ports." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60133 +#, no-wrap +msgid "" +"# Authorized outbound packets\n" +"$cmd 120 $skip udp from any to x.x.x.x 53 out via $pif $ks\n" +"$cmd 121 $skip udp from any to x.x.x.x 67 out via $pif $ks\n" +"$cmd 125 $skip tcp from any to any $good_tcpo out via $pif setup $ks\n" +"$cmd 130 $skip icmp from any to any out via $pif $ks" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60139 +msgid "" +"The inbound rules remain the same, except for the very last rule which " +"removes the <literal> via $pif</literal> in order to catch both inbound and " +"outbound rules. The <acronym>NAT</acronym> rule must follow this last " +"outbound rule, must have a higher number than that last rule, and the rule " +"number must be referenced by the <literal>skipto</literal> action. In this " +"ruleset, rule number <literal>500</literal> diverts all packets which match " +"the outbound rules to <citerefentry><refentrytitle>natd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for <acronym>NAT</" +"acronym> processing. The next rule allows any packet which has undergone " +"<acronym>NAT</acronym> processing to pass." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60152 +#, no-wrap +msgid "" +"$cmd 499 deny log all from any to any\n" +"$cmd 500 divert natd ip from any to any out via $pif # skipto location for outbound stateful rules\n" +"$cmd 510 allow ip from any to any" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60156 +msgid "" +"In this example, rules <literal>100</literal>, <literal>101</literal>, " +"<literal>125</literal>, <literal>500</literal>, and <literal>510</literal> " +"control the address translation of the outbound and inbound packets so that " +"the entries in the dynamic state table always register the private " +"<acronym>LAN</acronym> <acronym>IP</acronym> address." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60164 +msgid "" +"Consider an internal web browser which initializes a new outbound " +"<acronym>HTTP</acronym> session over port 80. When the first outbound packet " +"enters the firewall, it does not match rule <literal>100</literal> because " +"it is headed out rather than in. It passes rule <literal>101</literal> " +"because this is the first packet and it has not been posted to the dynamic " +"state table yet. The packet finally matches rule <literal>125</literal> as " +"it is outbound on an allowed port and has a source <acronym>IP</acronym> " +"address from the internal <acronym>LAN</acronym>. On matching this rule, two " +"actions take place. First, the <literal>keep-state</literal> action adds an " +"entry to the dynamic state table and the specified action, <literal>skipto " +"rule 500</literal>, is executed. Next, the packet undergoes <acronym>NAT</" +"acronym> and is sent out to the Internet. This packet makes its way to the " +"destination web server, where a response packet is generated and sent back. " +"This new packet enters the top of the ruleset. It matches rule <literal>100</" +"literal> and has its destination <acronym>IP</acronym> address mapped back " +"to the original internal address. It then is processed by the <literal>check-" +"state</literal> rule, is found in the table as an existing session, and is " +"released to the <acronym>LAN</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60188 +msgid "" +"On the inbound side, the ruleset has to deny bad packets and allow only " +"authorized services. A packet which matches an inbound rule is posted to the " +"dynamic state table and the packet is released to the <acronym>LAN</" +"acronym>. The packet generated as a response is recognized by the " +"<literal>check-state</literal> rule as belonging to an existing session. It " +"is then sent to rule <literal>500</literal> to undergo <acronym>NAT</" +"acronym> before being released to the outbound interface." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:60200 +msgid "Port Redirection" +msgstr "Port 重新導向" + +#. (itstool) path: sect3/para +#: book.translate.xml:60202 +msgid "" +"The drawback with <citerefentry><refentrytitle>natd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> is that the " +"<acronym>LAN</acronym> clients are not accessible from the Internet. Clients " +"on the <acronym>LAN</acronym> can make outgoing connections to the world but " +"cannot receive incoming ones. This presents a problem if trying to run " +"Internet services on one of the <acronym>LAN</acronym> client machines. A " +"simple way around this is to redirect selected Internet ports on the " +"<citerefentry><refentrytitle>natd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> machine to a <acronym>LAN</acronym> client." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60212 +msgid "" +"For example, an <acronym>IRC</acronym> server runs on client <systemitem>A</" +"systemitem> and a web server runs on client <systemitem>B</systemitem>. For " +"this to work properly, connections received on ports 6667 (<acronym>IRC</" +"acronym>) and 80 (<acronym>HTTP</acronym>) must be redirected to the " +"respective machines." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60219 +msgid "The syntax for <option>-redirect_port</option> is as follows:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:60222 +#, no-wrap +msgid "" +" -redirect_port proto targetIP:targetPORT[-targetPORT]\n" +" [aliasIP:]aliasPORT[-aliasPORT]\n" +" [remoteIP[:remotePORT[-remotePORT]]]" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60226 +msgid "In the above example, the argument should be:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:60228 +#, no-wrap +msgid "" +" -redirect_port tcp 192.168.0.2:6667 6667\n" +" -redirect_port tcp 192.168.0.3:80 80" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60231 +msgid "" +"This redirects the proper <acronym>TCP</acronym> ports to the <acronym>LAN</" +"acronym> client machines." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60234 +msgid "" +"Port ranges over individual ports can be indicated with <option>-" +"redirect_port</option>. For example, <replaceable>tcp 192.168.0.2:2000-3000 " +"2000-3000</replaceable> would redirect all connections received on ports " +"2000 to 3000 to ports 2000 to 3000 on client <systemitem>A</systemitem>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60241 +msgid "" +"These options can be used when directly running " +"<citerefentry><refentrytitle>natd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, placed within the <literal>natd_flags=\"\"</literal> option " +"in <filename>/etc/rc.conf</filename>, or passed via a configuration file." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60247 +msgid "" +"For further configuration options, consult " +"<citerefentry><refentrytitle>natd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:60252 +msgid "Address Redirection" +msgstr "位址重新導向" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:60254 +msgid "<primary>address redirection</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60258 +msgid "" +"Address redirection is useful if more than one <acronym>IP</acronym> address " +"is available. Each <acronym>LAN</acronym> client can be assigned its own " +"external <acronym>IP</acronym> address by <citerefentry><refentrytitle>natd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, which will then " +"rewrite outgoing packets from the <acronym>LAN</acronym> clients with the " +"proper external <acronym>IP</acronym> address and redirects all traffic " +"incoming on that particular <acronym>IP</acronym> address back to the " +"specific <acronym>LAN</acronym> client. This is also known as static " +"<acronym>NAT</acronym>. For example, if <acronym>IP</acronym> addresses " +"<systemitem class=\"ipaddress\">128.1.1.1</systemitem>, <systemitem class=" +"\"ipaddress\">128.1.1.2</systemitem>, and <systemitem class=\"ipaddress" +"\">128.1.1.3</systemitem> are available, <systemitem class=\"ipaddress" +"\">128.1.1.1</systemitem> can be used as the " +"<citerefentry><refentrytitle>natd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> machine's external <acronym>IP</acronym> address, while " +"<systemitem class=\"ipaddress\">128.1.1.2</systemitem> and <systemitem class=" +"\"ipaddress\">128.1.1.3</systemitem> are forwarded back to <acronym>LAN</" +"acronym> clients <systemitem>A</systemitem> and <systemitem>B</systemitem>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60276 +msgid "The <option>-redirect_address</option> syntax is as follows:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:60279 +#, no-wrap +msgid "-redirect_address localIP publicIP" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:60286 +msgid "localIP" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:60287 +msgid "" +"The internal <acronym>IP</acronym> address of the <acronym>LAN</acronym> " +"client." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:60292 +msgid "publicIP" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:60293 +msgid "" +"The external <acronym>IP</acronym> address corresponding to the " +"<acronym>LAN</acronym> client." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60301 +msgid "In the example, this argument would read:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:60303 +#, no-wrap +msgid "" +"-redirect_address 192.168.0.2 128.1.1.2\n" +"-redirect_address 192.168.0.3 128.1.1.3" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60306 +msgid "" +"Like <option>-redirect_port</option>, these arguments are placed within the " +"<literal>natd_flags=\"\"</literal> option of <filename>/etc/rc.conf</" +"filename>, or passed via a configuration file. With address redirection, " +"there is no need for port redirection since all data received on a " +"particular <acronym>IP</acronym> address is redirected." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60314 +msgid "" +"The external <acronym>IP</acronym> addresses on the " +"<citerefentry><refentrytitle>natd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> machine must be active and aliased to the external interface. " +"Refer to <citerefentry><refentrytitle>rc.conf</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry> for details." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:60322 +msgid "The <application>IPFW</application> Command" +msgstr "<application>IPFW</application> 指令" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:60324 +msgid "<primary><command>ipfw</command></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60326 +msgid "" +"<command>ipfw</command> can be used to make manual, single rule additions or " +"deletions to the active firewall while it is running. The problem with using " +"this method is that all the changes are lost when the system reboots. It is " +"recommended to instead write all the rules in a file and to use that file to " +"load the rules at boot time and to replace the currently running firewall " +"rules whenever that file changes." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60335 +msgid "" +"<command>ipfw</command> is a useful way to display the running firewall " +"rules to the console screen. The <application>IPFW</application> accounting " +"facility dynamically creates a counter for each rule that counts each packet " +"that matches the rule. During the process of testing a rule, listing the " +"rule with its counter is one way to determine if the rule is functioning as " +"expected." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60343 +msgid "To list all the running rules in sequence:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:60345 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipfw list</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60347 +msgid "" +"To list all the running rules with a time stamp of when the last time the " +"rule was matched:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:60350 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipfw -t list</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60352 +msgid "" +"The next example lists accounting information and the packet count for " +"matched rules along with the rules themselves. The first column is the rule " +"number, followed by the number of matched packets and bytes, followed by the " +"rule itself." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:60358 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipfw -a list</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60360 +msgid "To list dynamic rules in addition to static rules:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:60362 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipfw -d list</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60364 +msgid "To also show the expired dynamic rules:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:60366 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipfw -d -e list</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60368 +msgid "To zero the counters:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:60370 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipfw zero</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60372 +msgid "" +"To zero the counters for just the rule with number <replaceable>NUM</" +"replaceable>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:60375 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipfw zero <replaceable>NUM</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:60378 +msgid "Logging Firewall Messages" +msgstr "記錄防火牆訊息" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:60380 +msgid "" +"<primary><application>IPFW</application></primary> <secondary>logging</" +"secondary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60386 +msgid "" +"Even with the logging facility enabled, <application>IPFW</application> will " +"not generate any rule logging on its own. The firewall administrator decides " +"which rules in the ruleset will be logged, and adds the <literal>log</" +"literal> keyword to those rules. Normally only deny rules are logged. It is " +"customary to duplicate the <quote>ipfw default deny everything</quote> rule " +"with the <literal>log</literal> keyword included as the last rule in the " +"ruleset. This way, it is possible to see all the packets that did not match " +"any of the rules in the ruleset." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60398 +msgid "" +"Logging is a two edged sword. If one is not careful, an over abundance of " +"log data or a DoS attack can fill the disk with log files. Log messages are " +"not only written to <application>syslogd</application>, but also are " +"displayed on the root console screen and soon become annoying." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60404 +msgid "" +"The <literal>IPFIREWALL_VERBOSE_LIMIT=5</literal> kernel option limits the " +"number of consecutive messages sent to <citerefentry><refentrytitle>syslogd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, concerning the packet " +"matching of a given rule. When this option is enabled in the kernel, the " +"number of consecutive messages concerning a particular rule is capped at the " +"number specified. There is nothing to be gained from 200 identical log " +"messages. With this option set to five, five consecutive messages concerning " +"a particular rule would be logged to <application>syslogd</application> and " +"the remainder identical consecutive messages would be counted and posted to " +"<application>syslogd</application> with a phrase like the following:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:60418 +#, no-wrap +msgid "last message repeated 45 times" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60420 +msgid "" +"All logged packets messages are written by default to <filename>/var/log/" +"security</filename>, which is defined in <filename>/etc/syslog.conf</" +"filename>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:60426 +msgid "Building a Rule Script" +msgstr "建立規則 Script" + +#. (itstool) path: sect3/para +#: book.translate.xml:60428 +msgid "" +"Most experienced <application>IPFW</application> users create a file " +"containing the rules and code them in a manner compatible with running them " +"as a script. The major benefit of doing this is the firewall rules can be " +"refreshed in mass without the need of rebooting the system to activate them. " +"This method is convenient in testing new rules as the procedure can be " +"executed as many times as needed. Being a script, symbolic substitution can " +"be used for frequently used values to be substituted into multiple rules." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60438 +msgid "" +"This example script is compatible with the syntax used by the " +"<citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, <citerefentry><refentrytitle>csh</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, and <citerefentry><refentrytitle>tcsh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> shells. Symbolic " +"substitution fields are prefixed with a dollar sign ($). Symbolic fields do " +"not have the $ prefix. The value to populate the symbolic field must be " +"enclosed in double quotes (\"\")." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60445 +msgid "Start the rules file like this:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:60447 +#, no-wrap +msgid "" +"############### start of example ipfw rules script #############\n" +"#\n" +"ipfw -q -f flush # Delete all rules\n" +"# Set defaults\n" +"oif=\"tun0\" # out interface\n" +"odns=\"192.0.2.11\" # ISP's DNS server IP address\n" +"cmd=\"ipfw -q add \" # build rule prefix\n" +"ks=\"keep-state\" # just too lazy to key this each time\n" +"$cmd 00500 check-state\n" +"$cmd 00502 deny all from any to any frag\n" +"$cmd 00501 deny tcp from any to any established\n" +"$cmd 00600 allow tcp from any to any 80 out via $oif setup $ks\n" +"$cmd 00610 allow tcp from any to $odns 53 out via $oif setup $ks\n" +"$cmd 00611 allow udp from any to $odns 53 out via $oif $ks\n" +"################### End of example ipfw rules script ############" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60463 +msgid "" +"The rules are not important as the focus of this example is how the symbolic " +"substitution fields are populated." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60467 +msgid "" +"If the above example was in <filename>/etc/ipfw.rules</filename>, the rules " +"could be reloaded by the following command:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:60471 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sh /etc/ipfw.rules</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60473 +msgid "" +"<filename>/etc/ipfw.rules</filename> can be located anywhere and the file " +"can have any name." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:60476 +msgid "The same thing could be accomplished by running these commands by hand:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:60479 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ipfw -q -f flush</userinput>\n" +"<prompt>#</prompt> <userinput>ipfw -q add check-state</userinput>\n" +"<prompt>#</prompt> <userinput>ipfw -q add deny all from any to any frag</userinput>\n" +"<prompt>#</prompt> <userinput>ipfw -q add deny tcp from any to any established</userinput>\n" +"<prompt>#</prompt> <userinput>ipfw -q add allow tcp from any to any 80 out via tun0 setup keep-state</userinput>\n" +"<prompt>#</prompt> <userinput>ipfw -q add allow tcp from any to 192.0.2.11 53 out via tun0 setup keep-state</userinput>\n" +"<prompt>#</prompt> <userinput>ipfw -q add 00611 allow udp from any to 192.0.2.11 53 out via tun0 keep-state</userinput>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:60491 +msgid "IPFILTER (IPF)" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:60493 +msgid "" +"<primary>firewall</primary> <secondary><application>IPFILTER</application></" +"secondary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:60499 +msgid "" +"<application>IPFILTER</application>, also known as <application>IPF</" +"application>, is a cross-platform, open source firewall which has been " +"ported to several operating systems, including FreeBSD, NetBSD, OpenBSD, and " +"<trademark>Solaris</trademark>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:60504 +msgid "" +"<application>IPFILTER</application> is a kernel-side firewall and " +"<acronym>NAT</acronym> mechanism that can be controlled and monitored by " +"userland programs. Firewall rules can be set or deleted using " +"<application>ipf</application>, <acronym>NAT</acronym> rules can be set or " +"deleted using <application>ipnat</application>, run-time statistics for the " +"kernel parts of <application>IPFILTER</application> can be printed using " +"<application>ipfstat</application>, and <application>ipmon</application> can " +"be used to log <application>IPFILTER</application> actions to the system log " +"files." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:60516 +msgid "" +"<application>IPF</application> was originally written using a rule " +"processing logic of <quote>the last matching rule wins</quote> and only used " +"stateless rules. Since then, <application>IPF</application> has been " +"enhanced to include the <literal>quick</literal> and <literal>keep state</" +"literal> options." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:60523 +msgid "" +"The <application>IPF</application> FAQ is at <uri xlink:href=\"http://www." +"phildev.net/ipf/index.html\">http://www.phildev.net/ipf/index.html</uri>. A " +"searchable archive of the IPFilter mailing list is available at <uri xlink:" +"href=\"http://marc.info/?l=ipfilter\">http://marc.info/?l=ipfilter</uri>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:60527 +msgid "" +"This section of the Handbook focuses on <application>IPF</application> as it " +"pertains to FreeBSD. It provides examples of rules that contain the " +"<literal>quick</literal> and <literal>keep state</literal> options." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:60534 +msgid "Enabling <application>IPF</application>" +msgstr "開啟 <application>IPF</application>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:60536 +msgid "" +"<primary><application>IPFILTER</application></primary> <secondary>enabling</" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60542 +msgid "" +"<application>IPF</application> is included in the basic FreeBSD install as a " +"kernel loadable module, meaning that a custom kernel is not needed in order " +"to enable <application>IPF</application>." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:60547 +msgid "" +"<primary>kernel options</primary> <secondary><application>IPFILTER</" +"application></secondary>" +msgstr "" +"<primary>核心選項</primary> <secondary><application>IPFILTER</application></" +"secondary>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:60553 +msgid "<primary>kernel options</primary> <secondary>IPFILTER_LOG</secondary>" +msgstr "<primary>核心選項</primary> <secondary>IPFILTER_LOG</secondary>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:60559 +msgid "" +"<primary>kernel options</primary> <secondary>IPFILTER_DEFAULT_BLOCK</" +"secondary>" +msgstr "" +"<primary>核心選項</primary> <secondary>IPFILTER_DEFAULT_BLOCK</secondary>" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:60565 +msgid "" +"<primary><application>IPFILTER</application></primary> <secondary>kernel " +"options</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60571 +msgid "" +"For users who prefer to statically compile <application>IPF</application> " +"support into a custom kernel, refer to the instructions in <xref linkend=" +"\"kernelconfig\"/>. The following kernel options are available:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60576 +#, no-wrap +msgid "" +"options IPFILTER\n" +"options IPFILTER_LOG\n" +"options IPFILTER_LOOKUP\n" +"options IPFILTER_DEFAULT_BLOCK" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60581 +msgid "" +"where <literal>options IPFILTER</literal> enables support for " +"<application>IPFILTER</application>, <literal>options IPFILTER_LOG</literal> " +"enables <application>IPF</application> logging using the <filename>ipl</" +"filename> packet logging pseudo-device for every rule that has the " +"<literal>log</literal> keyword, <literal>IPFILTER_LOOKUP</literal> enables " +"<acronym>IP</acronym> pools in order to speed up <acronym>IP</acronym> " +"lookups, and <literal>options IPFILTER_DEFAULT_BLOCK</literal> changes the " +"default behavior so that any packet not matching a firewall <literal>pass</" +"literal> rule gets blocked." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60594 +msgid "" +"To configure the system to enable <application>IPF</application> at boot " +"time, add the following entries to <filename>/etc/rc.conf</filename>. These " +"entries will also enable logging and <literal>default pass all</literal>. To " +"change the default policy to <literal>block all</literal> without compiling " +"a custom kernel, remember to add a <literal>block all</literal> rule at the " +"end of the ruleset." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60603 +#, no-wrap +msgid "" +"ipfilter_enable=\"YES\" # Start ipf firewall\n" +"ipfilter_rules=\"/etc/ipf.rules\" # loads rules definition text file\n" +"ipmon_enable=\"YES\" # Start IP monitor log\n" +"ipmon_flags=\"-Ds\" # D = start as daemon\n" +" # s = log to syslog\n" +" # v = log tcp window, ack, seq\n" +" # n = map IP & port to names" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60611 +msgid "" +"If <acronym>NAT</acronym> functionality is needed, also add these lines:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60614 +#, no-wrap +msgid "" +"gateway_enable=\"YES\" # Enable as LAN gateway\n" +"ipnat_enable=\"YES\" # Start ipnat function\n" +"ipnat_rules=\"/etc/ipnat.rules\" # rules definition file for ipnat" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60618 +msgid "Then, to start <application>IPF</application> now:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60620 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service ipfilter start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60622 +msgid "" +"To load the firewall rules, specify the name of the ruleset file using " +"<command>ipf</command>. The following command can be used to replace the " +"currently running firewall rules:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:60627 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipf -Fa -f /etc/ipf.rules</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60629 +msgid "" +"where <option>-Fa</option> flushes all the internal rules tables and " +"<option>-f</option> specifies the file containing the rules to load." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60633 +msgid "" +"This provides the ability to make changes to a custom ruleset and update the " +"running firewall with a fresh copy of the rules without having to reboot the " +"system. This method is convenient for testing new rules as the procedure can " +"be executed as many times as needed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60639 +msgid "" +"Refer to <citerefentry><refentrytitle>ipf</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for details on the other flags available with this " +"command." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:60644 +msgid "<application>IPF</application> Rule Syntax" +msgstr "<application>IPF</application> 規則語法" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:60646 +msgid "" +"<primary><application>IPFILTER</application></primary> <secondary>rule " +"syntax</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60652 +msgid "" +"This section describes the <application>IPF</application> rule syntax used " +"to create stateful rules. When creating rules, keep in mind that unless the " +"<literal>quick</literal> keyword appears in a rule, every rule is read in " +"order, with the <emphasis>last matching rule</emphasis> being the one that " +"is applied. This means that even if the first rule to match a packet is a " +"<literal>pass</literal>, if there is a later matching rule that is a " +"<literal>block</literal>, the packet will be dropped. Sample rulesets can be " +"found in <filename>/usr/share/examples/ipfilter</filename>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60663 +msgid "" +"When creating rules, a <literal>#</literal> character is used to mark the " +"start of a comment and may appear at the end of a rule, to explain that " +"rule's function, or on its own line. Any blank lines are ignored." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60668 +msgid "" +"The keywords which are used in rules must be written in a specific order, " +"from left to right. Some keywords are mandatory while others are optional. " +"Some keywords have sub-options which may be keywords themselves and also " +"include more sub-options. The keyword order is as follows, where the words " +"shown in uppercase represent a variable and the words shown in lowercase " +"must precede the variable that follows it:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60677 +msgid "" +"<replaceable>ACTION DIRECTION OPTIONS proto PROTO_TYPE from SRC_ADDR " +"SRC_PORT to DST_ADDR DST_PORT TCP_FLAG|ICMP_TYPE keep state STATE</" +"replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60681 +msgid "" +"This section describes each of these keywords and their options. It is not " +"an exhaustive list of every possible option. Refer to " +"<citerefentry><refentrytitle>ipf</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> for a complete description of the rule syntax that can be used " +"when creating <application>IPF</application> rules and examples for using " +"each keyword." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60692 +msgid "" +"The action keyword indicates what to do with the packet if it matches that " +"rule. Every rule <emphasis>must</emphasis> have an action. The following " +"actions are recognized:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60697 +msgid "<literal>block</literal>: drops the packet." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60699 +msgid "<literal>pass</literal>: allows the packet." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60701 +msgid "<literal>log</literal>: generates a log record." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60704 +msgid "" +"<literal>count</literal>: counts the number of packets and bytes which can " +"provide an indication of how often a rule is used." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60708 +msgid "" +"<literal>auth</literal>: queues the packet for further processing by another " +"program." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60711 +msgid "" +"<literal>call</literal>: provides access to functions built into " +"<application>IPF</application> that allow more complex actions." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60715 +msgid "" +"<literal>decapsulate</literal>: removes any headers in order to process the " +"contents of the packet." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:60721 +msgid "DIRECTION" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60723 +msgid "" +"Next, each rule must explicitly state the direction of traffic using one of " +"these keywords:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60726 +msgid "<literal>in</literal>: the rule is applied against an inbound packet." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60729 +msgid "<literal>out</literal>: the rule is applied against an outbound packet." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60732 +msgid "<literal>all</literal>: the rule applies to either direction." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60735 +msgid "" +"If the system has multiple interfaces, the interface can be specified along " +"with the direction. An example would be <literal>in on fxp0</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60744 +msgid "" +"Options are optional. However, if multiple options are specified, they must " +"be used in the order shown here." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60748 +msgid "" +"<literal>log</literal>: when performing the specified ACTION, the contents " +"of the packet's headers will be written to the " +"<citerefentry><refentrytitle>ipl</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> packet log pseudo-device." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60753 +msgid "" +"<literal>quick</literal>: if a packet matches this rule, the ACTION " +"specified by the rule occurs and no further processing of any following " +"rules will occur for this packet." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60758 +msgid "" +"<literal>on</literal>: must be followed by the interface name as displayed " +"by <citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. The rule will only match if the packet is going " +"through the specified interface in the specified direction." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60763 +msgid "" +"When using the <literal>log</literal> keyword, the following qualifiers may " +"be used in this order:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60767 +msgid "" +"<literal>body</literal>: indicates that the first 128 bytes of the packet " +"contents will be logged after the headers." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60771 +msgid "" +"<literal>first</literal>: if the <literal>log</literal> keyword is being " +"used in conjunction with a <literal>keep state</literal> option, this option " +"is recommended so that only the triggering packet is logged and not every " +"packet which matches the stateful connection." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60778 +msgid "" +"Additional options are available to specify error return messages. Refer to " +"<citerefentry><refentrytitle>ipf</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> for more details." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:60786 +msgid "PROTO_TYPE" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60788 +msgid "" +"The protocol type is optional. However, it is mandatory if the rule needs to " +"specify a SRC_PORT or a DST_PORT as it defines the type of protocol. When " +"specifying the type of protocol, use the <literal>proto</literal> keyword " +"followed by either a protocol number or name from <filename>/etc/protocols</" +"filename>. Example protocol names include <literal>tcp</literal>, " +"<literal>udp</literal>, or <literal>icmp</literal>. If PROTO_TYPE is " +"specified but no SRC_PORT or DST_PORT is specified, all port numbers for " +"that protocol will match that rule." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:60804 +msgid "SRC_ADDR" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60806 +msgid "" +"The <literal>from</literal> keyword is mandatory and is followed by a " +"keyword which represents the source of the packet. The source can be a " +"hostname, an <acronym>IP</acronym> address followed by the <acronym>CIDR</" +"acronym> mask, an address pool, or the keyword <literal>all</literal>. Refer " +"to <citerefentry><refentrytitle>ipf</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> for examples." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60814 +msgid "" +"There is no way to match ranges of <acronym>IP</acronym> addresses which do " +"not express themselves easily using the dotted numeric form / mask-length " +"notation. The <package>net-mgmt/ipcalc</package> package or port may be used " +"to ease the calculation of the <acronym>CIDR</acronym> mask. Additional " +"information is available at the utility's web page: <uri xlink:href=\"http://" +"jodies.de/ipcalc\">http://jodies.de/ipcalc</uri>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60828 +msgid "" +"The port number of the source is optional. However, if it is used, it " +"requires PROTO_TYPE to be first defined in the rule. The port number must " +"also be preceded by the <literal>proto</literal> keyword." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60833 +msgid "" +"A number of different comparison operators are supported: <literal>=</" +"literal> (equal to), <literal>!=</literal> (not equal to), <literal><</" +"literal> (less than), <literal>></literal> (greater than), <literal><" +"=</literal> (less than or equal to), and <literal>>=</literal> (greater " +"than or equal to)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60842 +msgid "" +"To specify port ranges, place the two port numbers between <literal><>" +"</literal> (less than and greater than ), <literal>><</literal> " +"(greater than and less than ), or <literal>:</literal> (greater than or " +"equal to and less than or equal to)." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:60851 +msgid "DST_ADDR" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60853 +msgid "" +"The <literal>to</literal> keyword is mandatory and is followed by a keyword " +"which represents the destination of the packet. Similar to SRC_ADDR, it can " +"be a hostname, an <acronym>IP</acronym> address followed by the " +"<acronym>CIDR</acronym> mask, an address pool, or the keyword <literal>all</" +"literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60865 +msgid "" +"Similar to SRC_PORT, the port number of the destination is optional. " +"However, if it is used, it requires PROTO_TYPE to be first defined in the " +"rule. The port number must also be preceded by the <literal>proto</literal> " +"keyword." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:60874 +msgid "TCP_FLAG|ICMP_TYPE" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60876 +msgid "" +"If <literal>tcp</literal> is specifed as the PROTO_TYPE, flags can be " +"specified as letters, where each letter represents one of the possible " +"<acronym>TCP</acronym> flags used to determine the state of a connection. " +"Possible values are: <literal>S</literal> (SYN), <literal>A</literal> (ACK), " +"<literal>P</literal> (PSH), <literal>F</literal> (FIN), <literal>U</literal> " +"(URG), <literal>R</literal> (RST), <literal>C</literal> (CWN), and " +"<literal>E</literal> (ECN)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60890 +msgid "" +"If <literal>icmp</literal> is specifed as the PROTO_TYPE, the <acronym>ICMP</" +"acronym> type to match can be specified. Refer to " +"<citerefentry><refentrytitle>ipf</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> for the allowable types." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:60898 +msgid "STATE" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60900 +msgid "" +"If a <literal>pass</literal> rule contains <literal>keep state</literal>, " +"<application>IPF</application> will add an entry to its dynamic state table " +"and allow subsequent packets that match the connection. <application>IPF</" +"application> can track state for <acronym>TCP</acronym>, <acronym>UDP</" +"acronym>, and <acronym>ICMP</acronym> sessions. Any packet that " +"<application>IPF</application> can be certain is part of an active session, " +"even if it is a different protocol, will be allowed." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60912 +msgid "" +"In <application>IPF</application>, packets destined to go out through the " +"interface connected to the public Internet are first checked against the " +"dynamic state table. If the packet matches the next expected packet " +"comprising an active session conversation, it exits the firewall and the " +"state of the session conversation flow is updated in the dynamic state " +"table. Packets that do not belong to an already active session are checked " +"against the outbound ruleset. Packets coming in from the interface connected " +"to the public Internet are first checked against the dynamic state table. If " +"the packet matches the next expected packet comprising an active session, it " +"exits the firewall and the state of the session conversation flow is updated " +"in the dynamic state table. Packets that do not belong to an already active " +"session are checked against the inbound ruleset." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:60930 +msgid "" +"Several keywords can be added after <literal>keep state</literal>. If used, " +"these keywords set various options that control stateful filtering, such as " +"setting connection limits or connection age. Refer to " +"<citerefentry><refentrytitle>ipf</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry> for the list of available options and their descriptions." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60944 +msgid "" +"This section demonstrates how to create an example ruleset which only allows " +"services matching <literal>pass</literal> rules and blocks all others." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60948 +msgid "" +"FreeBSD uses the loopback interface (<filename>lo0</filename>) and the " +"<acronym>IP</acronym> address <systemitem class=\"ipaddress\">127.0.0.1</" +"systemitem> for internal communication. The firewall ruleset must contain " +"rules to allow free movement of these internally used packets:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60955 +#, no-wrap +msgid "" +"# no restrictions on loopback interface\n" +"pass in quick on lo0 all\n" +"pass out quick on lo0 all" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60959 +msgid "" +"The public interface connected to the Internet is used to authorize and " +"control access of all outbound and inbound connections. If one or more " +"interfaces are cabled to private networks, those internal interfaces may " +"require rules to allow packets originating from the <acronym>LAN</acronym> " +"to flow between the internal networks or to the interface attached to the " +"Internet. The ruleset should be organized into three major sections: any " +"trusted internal interfaces, outbound connections through the public " +"interface, and inbound connections through the public interface." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60970 +msgid "" +"These two rules allow all traffic to pass through a trusted <acronym>LAN</" +"acronym> interface named <filename>xl0</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60974 +#, no-wrap +msgid "" +"# no restrictions on inside LAN interface for private network\n" +"pass out quick on xl0 all\n" +"pass in quick on xl0 all" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60978 +msgid "" +"The rules for the public interface's outbound and inbound sections should " +"have the most frequently matched rules placed before less commonly matched " +"rules, with the last rule in the section blocking and logging all packets " +"for that interface and direction." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:60984 +msgid "" +"This set of rules defines the outbound section of the public interface named " +"<filename>dc0</filename>. These rules keep state and identify the specific " +"services that internal systems are authorized for public Internet access. " +"All the rules use <literal>quick</literal> and specify the appropriate port " +"numbers and, where applicable, destination addresses." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:60992 +#, no-wrap +msgid "" +"# interface facing Internet (outbound)\n" +"# Matches session start requests originating from or behind the\n" +"# firewall, destined for the Internet.\n" +"\n" +"# Allow outbound access to public DNS servers.\n" +"# Replace x.x.x. with address listed in /etc/resolv.conf.\n" +"# Repeat for each DNS server.\n" +"pass out quick on dc0 proto tcp from any to x.x.x. port = 53 flags S keep state\n" +"pass out quick on dc0 proto udp from any to xxx port = 53 keep state\n" +"\n" +"# Allow access to ISP's specified DHCP server for cable or DSL networks.\n" +"# Use the first rule, then check log for the IP address of DHCP server.\n" +"# Then, uncomment the second rule, replace z.z.z.z with the IP address,\n" +"# and comment out the first rule\n" +"pass out log quick on dc0 proto udp from any to any port = 67 keep state\n" +"#pass out quick on dc0 proto udp from any to z.z.z.z port = 67 keep state\n" +"\n" +"# Allow HTTP and HTTPS\n" +"pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state\n" +"pass out quick on dc0 proto tcp from any to any port = 443 flags S keep state\n" +"\n" +"# Allow email\n" +"pass out quick on dc0 proto tcp from any to any port = 110 flags S keep state\n" +"pass out quick on dc0 proto tcp from any to any port = 25 flags S keep state\n" +"\n" +"# Allow NTP\n" +"pass out quick on dc0 proto tcp from any to any port = 37 flags S keep state\n" +"\n" +"# Allow FTP\n" +"pass out quick on dc0 proto tcp from any to any port = 21 flags S keep state\n" +"\n" +"# Allow SSH\n" +"pass out quick on dc0 proto tcp from any to any port = 22 flags S keep state\n" +"\n" +"# Allow ping\n" +"pass out quick on dc0 proto icmp from any to any icmp-type 8 keep state\n" +"\n" +"# Block and log everything else\n" +"block out log first quick on dc0 all" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61032 +msgid "" +"This example of the rules in the inbound section of the public interface " +"blocks all undesirable packets first. This reduces the number of packets " +"that are logged by the last rule." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61037 +#, no-wrap +msgid "" +"# interface facing Internet (inbound)\n" +"# Block all inbound traffic from non-routable or reserved address spaces\n" +"block in quick on dc0 from 192.168.0.0/16 to any #RFC 1918 private IP\n" +"block in quick on dc0 from 172.16.0.0/12 to any #RFC 1918 private IP\n" +"block in quick on dc0 from 10.0.0.0/8 to any #RFC 1918 private IP\n" +"block in quick on dc0 from 127.0.0.0/8 to any #loopback\n" +"block in quick on dc0 from 0.0.0.0/8 to any #loopback\n" +"block in quick on dc0 from 169.254.0.0/16 to any #DHCP auto-config\n" +"block in quick on dc0 from 192.0.2.0/24 to any #reserved for docs\n" +"block in quick on dc0 from 204.152.64.0/23 to any #Sun cluster interconnect\n" +"block in quick on dc0 from 224.0.0.0/3 to any #Class D & E multicast\n" +"\n" +"# Block fragments and too short tcp packets\n" +"block in quick on dc0 all with frags\n" +"block in quick on dc0 proto tcp all with short\n" +"\n" +"# block source routed packets\n" +"block in quick on dc0 all with opt lsrr\n" +"block in quick on dc0 all with opt ssrr\n" +"\n" +"# Block OS fingerprint attempts and log first occurrence\n" +"block in log first quick on dc0 proto tcp from any to any flags FUP\n" +"\n" +"# Block anything with special options\n" +"block in quick on dc0 all with ipopts\n" +"\n" +"# Block public pings and ident\n" +"block in quick on dc0 proto icmp all icmp-type 8\n" +"block in quick on dc0 proto tcp from any to any port = 113\n" +"\n" +"# Block incoming Netbios services\n" +"block in log first quick on dc0 proto tcp/udp from any to any port = 137\n" +"block in log first quick on dc0 proto tcp/udp from any to any port = 138\n" +"block in log first quick on dc0 proto tcp/udp from any to any port = 139\n" +"block in log first quick on dc0 proto tcp/udp from any to any port = 81" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61073 +msgid "" +"Any time there are logged messages on a rule with the <literal>log first</" +"literal> option, run <command>ipfstat -hio</command> to evaluate how many " +"times the rule has been matched. A large number of matches may indicate that " +"the system is under attack." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61079 +msgid "" +"The rest of the rules in the inbound section define which connections are " +"allowed to be initiated from the Internet. The last rule denies all " +"connections which were not explicitly allowed by previous rules in this " +"section." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61084 +#, no-wrap +msgid "" +"# Allow traffic in from ISP's DHCP server. Replace z.z.z.z with\n" +"# the same IP address used in the outbound section.\n" +"pass in quick on dc0 proto udp from z.z.z.z to any port = 68 keep state\n" +"\n" +"# Allow public connections to specified internal web server\n" +"pass in quick on dc0 proto tcp from any to x.x.x.x port = 80 flags S keep state\n" +"\n" +"# Block and log only first occurrence of all remaining traffic.\n" +"block in log first quick on dc0 all" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:61100 +msgid "<primary>IP masquerading</primary> <see>NAT</see>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:61106 +msgid "<primary>network address translation</primary> <see>NAT</see>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:61112 +msgid "<primary><command>ipnat</command></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61114 +msgid "" +"To enable <acronym>NAT</acronym>, add these statements to <filename>/etc/rc." +"conf</filename> and specify the name of the file containing the " +"<acronym>NAT</acronym> rules:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61118 +#, no-wrap +msgid "" +"gateway_enable=\"YES\"\n" +"ipnat_enable=\"YES\"\n" +"ipnat_rules=\"/etc/ipnat.rules\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61122 +msgid "" +"<acronym>NAT</acronym> rules are flexible and can accomplish many different " +"things to fit the needs of both commercial and home users. The rule syntax " +"presented here has been simplified to demonstrate common usage. For a " +"complete rule syntax description, refer to " +"<citerefentry><refentrytitle>ipnat</refentrytitle><manvolnum>5</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61128 +msgid "" +"The basic syntax for a <acronym>NAT</acronym> rule is as follows, where " +"<literal>map</literal> starts the rule and <replaceable>IF</replaceable> " +"should be replaced with the name of the external interface:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61133 +#, no-wrap +msgid "map <replaceable>IF</replaceable> <replaceable>LAN_IP_RANGE</replaceable> -> <replaceable>PUBLIC_ADDRESS</replaceable>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61135 +msgid "" +"The <replaceable>LAN_IP_RANGE</replaceable> is the range of <acronym>IP</" +"acronym> addresses used by internal clients. Usually, it is a private " +"address range such as <systemitem class=\"ipaddress\">192.168.1.0/24</" +"systemitem>. The <replaceable>PUBLIC_ADDRESS</replaceable> can either be the " +"static external <acronym>IP</acronym> address or the keyword <literal>0/32</" +"literal> which represents the <acronym>IP</acronym> address assigned to " +"<replaceable>IF</replaceable>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61144 +msgid "" +"In <application>IPF</application>, when a packet arrives at the firewall " +"from the <acronym>LAN</acronym> with a public destination, it first passes " +"through the outbound rules of the firewall ruleset. Then, the packet is " +"passed to the <acronym>NAT</acronym> ruleset which is read from the top " +"down, where the first matching rule wins. <application>IPF</application> " +"tests each <acronym>NAT</acronym> rule against the packet's interface name " +"and source <acronym>IP</acronym> address. When a packet's interface name " +"matches a <acronym>NAT</acronym> rule, the packet's source <acronym>IP</" +"acronym> address in the private <acronym>LAN</acronym> is checked to see if " +"it falls within the <acronym>IP</acronym> address range specified in " +"<replaceable>LAN_IP_RANGE</replaceable>. On a match, the packet has its " +"source <acronym>IP</acronym> address rewritten with the public <acronym>IP</" +"acronym> address specified by <replaceable>PUBLIC_ADDRESS</replaceable>. " +"<application>IPF</application> posts an entry in its internal <acronym>NAT</" +"acronym> table so that when the packet returns from the Internet, it can be " +"mapped back to its original private <acronym>IP</acronym> address before " +"being passed to the firewall rules for further processing." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61167 +msgid "" +"For networks that have large numbers of internal systems or multiple " +"subnets, the process of funneling every private <acronym>IP</acronym> " +"address into a single public <acronym>IP</acronym> address becomes a " +"resource problem. Two methods are available to relieve this issue." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61173 +msgid "" +"The first method is to assign a range of ports to use as source ports. By " +"adding the <literal>portmap</literal> keyword, <acronym>NAT</acronym> can be " +"directed to only use source ports in the specified range:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61178 +#, no-wrap +msgid "map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp 20000:60000" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61180 +msgid "" +"Alternately, use the <literal>auto</literal> keyword which tells " +"<acronym>NAT</acronym> to determine the ports that are available for use:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61184 +#, no-wrap +msgid "map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp auto" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61186 +msgid "" +"The second method is to use a pool of public addresses. This is useful when " +"there are too many <acronym>LAN</acronym> addresses to fit into a single " +"public address and a block of public <acronym>IP</acronym> addresses is " +"available. These public addresses can be used as a pool from which " +"<acronym>NAT</acronym> selects an <acronym>IP</acronym> address as a " +"packet's address is mapped on its way out." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61195 +msgid "" +"The range of public <acronym>IP</acronym> addresses can be specified using a " +"netmask or <acronym>CIDR</acronym> notation. These two rules are equivalent:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61199 +#, no-wrap +msgid "" +"map dc0 192.168.1.0/24 -> 204.134.75.0/255.255.255.0\n" +"map dc0 192.168.1.0/24 -> 204.134.75.0/24" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61202 +msgid "" +"A common practice is to have a publically accessible web server or mail " +"server segregated to an internal network segment. The traffic from these " +"servers still has to undergo <acronym>NAT</acronym>, but port redirection is " +"needed to direct inbound traffic to the correct server. For example, to map " +"a web server using the internal address <systemitem class=\"ipaddress" +"\">10.0.10.25</systemitem> to its public <acronym>IP</acronym> address of " +"<systemitem class=\"ipaddress\">20.20.20.5</systemitem>, use this rule:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61211 +#, no-wrap +msgid "rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61213 +msgid "" +"If it is the only web server, this rule would also work as it redirects all " +"external <acronym>HTTP</acronym> requests to <literal>10.0.10.25</literal>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61217 +#, no-wrap +msgid "rdr dc0 0.0.0.0/0 port 80 -> 10.0.10.25 port 80" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61219 +msgid "" +"<application>IPF</application> has a built in <acronym>FTP</acronym> proxy " +"which can be used with <acronym>NAT</acronym>. It monitors all outbound " +"traffic for active or passive <acronym>FTP</acronym> connection requests and " +"dynamically creates temporary filter rules containing the port number used " +"by the <acronym>FTP</acronym> data channel. This eliminates the need to open " +"large ranges of high order ports for <acronym>FTP</acronym> connections." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61228 +msgid "" +"In this example, the first rule calls the proxy for outbound <acronym>FTP</" +"acronym> traffic from the internal <acronym>LAN</acronym>. The second rule " +"passes the <acronym>FTP</acronym> traffic from the firewall to the Internet, " +"and the third rule handles all non-<acronym>FTP</acronym> traffic from the " +"internal <acronym>LAN</acronym>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61236 +#, no-wrap +msgid "" +"map dc0 10.0.10.0/29 -> 0/32 proxy port 21 ftp/tcp\n" +"map dc0 0.0.0.0/0 -> 0/32 proxy port 21 ftp/tcp\n" +"map dc0 10.0.10.0/29 -> 0/32" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61240 +msgid "" +"The <acronym>FTP</acronym> <literal>map</literal> rules go before the " +"<acronym>NAT</acronym> rule so that when a packet matches an <acronym>FTP</" +"acronym> rule, the <acronym>FTP</acronym> proxy creates temporary filter " +"rules to let the <acronym>FTP</acronym> session packets pass and undergo " +"<acronym>NAT</acronym>. All LAN packets that are not <acronym>FTP</acronym> " +"will not match the <acronym>FTP</acronym> rules but will undergo " +"<acronym>NAT</acronym> if they match the third rule." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61250 +msgid "" +"Without the <acronym>FTP</acronym> proxy, the following firewall rules would " +"instead be needed. Note that without the proxy, all ports above " +"<literal>1024</literal> need to be allowed:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61255 +#, no-wrap +msgid "" +"# Allow out LAN PC client FTP to public Internet\n" +"# Active and passive modes\n" +"pass out quick on rl0 proto tcp from any to any port = 21 flags S keep state\n" +"\n" +"# Allow out passive mode data channel high order port numbers\n" +"pass out quick on rl0 proto tcp from any to any port > 1024 flags S keep state\n" +"\n" +"# Active mode let data channel in from FTP server\n" +"pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61265 +msgid "" +"Whenever the file containing the <acronym>NAT</acronym> rules is edited, run " +"<command>ipnat</command> with <option>-CF</option> to delete the current " +"<acronym>NAT</acronym> rules and flush the contents of the dynamic " +"translation table. Include <option>-f</option> and specify the name of the " +"<acronym>NAT</acronym> ruleset to load:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61273 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipnat -CF -f /etc/ipnat.rules</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61275 +msgid "To display the <acronym>NAT</acronym> statistics:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61277 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipnat -s</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61279 +msgid "To list the <acronym>NAT</acronym> table's current mappings:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61282 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipnat -l</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61284 +msgid "" +"To turn verbose mode on and display information relating to rule processing " +"and active rules and table entries:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61287 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ipnat -v</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:61403 +msgid "Viewing <application>IPF</application> Statistics" +msgstr "檢視 <application>IPF</application> 統計資訊" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:61405 +msgid "<primary><command>ipfstat</command></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:61407 +msgid "" +"<primary><application>IPFILTER</application></primary> " +"<secondary>statistics</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61413 +msgid "" +"<application>IPF</application> includes " +"<citerefentry><refentrytitle>ipfstat</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> which can be used to retrieve and display " +"statistics which are gathered as packets match rules as they go through the " +"firewall. Statistics are accumulated since the firewall was last started or " +"since the last time they were reset to zero using <command>ipf -Z</command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61422 +msgid "The default <command>ipfstat</command> output looks like this:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61425 +#, no-wrap +msgid "" +"input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0\n" +" output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0\n" +" input packets logged: blocked 99286 passed 0\n" +" output packets logged: blocked 0 passed 0\n" +" packets logged: input 0 output 0\n" +" log failures: input 3898 output 0\n" +" fragment state(in): kept 0 lost 0\n" +" fragment state(out): kept 0 lost 0\n" +" packet state(in): kept 169364 lost 0\n" +" packet state(out): kept 431395 lost 0\n" +" ICMP replies: 0 TCP RSTs sent: 0\n" +" Result cache hits(in): 1215208 (out): 1098963\n" +" IN Pullups succeeded: 2 failed: 0\n" +" OUT Pullups succeeded: 0 failed: 0\n" +" Fastroute successes: 0 failures: 0\n" +" TCP cksum fails(in): 0 (out): 0\n" +" Packet log flags set: (0)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61443 +msgid "" +"Several options are available. When supplied with either <option>-i</option> " +"for inbound or <option>-o</option> for outbound, the command will retrieve " +"and display the appropriate list of filter rules currently installed and in " +"use by the kernel. To also see the rule numbers, include <option>-n</" +"option>. For example, <command>ipfstat -on</command> displays the outbound " +"rules table with rule numbers:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61452 +#, no-wrap +msgid "" +"@1 pass out on xl0 from any to any\n" +"@2 block out on dc0 from any to any\n" +"@3 pass out quick on dc0 proto tcp/udp from any to any keep state" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61456 +msgid "" +"Include <option>-h</option> to prefix each rule with a count of how many " +"times the rule was matched. For example, <command>ipfstat -oh</command> " +"displays the outbound internal rules table, prefixing each rule with its " +"usage count:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61461 +#, no-wrap +msgid "" +"2451423 pass out on xl0 from any to any\n" +"354727 block out on dc0 from any to any\n" +"430918 pass out quick on dc0 proto tcp/udp from any to any keep state" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61465 +msgid "" +"To display the state table in a format similar to " +"<citerefentry><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry>, use <command>ipfstat -t</command>. When the firewall is under " +"attack, this option provides the ability to identify and see the attacking " +"packets. The optional sub-flags give the ability to select the destination " +"or source <acronym>IP</acronym>, port, or protocol to be monitored in real " +"time. Refer to <citerefentry><refentrytitle>ipfstat</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> for details." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:61475 +msgid "<application>IPF</application> Logging" +msgstr "<application>IPF</application> 日誌" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:61477 +msgid "<primary><command>ipmon</command></primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:61479 +msgid "" +"<primary><application>IPFILTER</application></primary> <secondary>logging</" +"secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61485 +msgid "" +"<application>IPF</application> provides <command>ipmon</command>, which can " +"be used to write the firewall's logging information in a human readable " +"format. It requires that <literal>options IPFILTER_LOG</literal> be first " +"added to a custom kernel using the instructions in <xref linkend=" +"\"kernelconfig\"/>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61491 +msgid "" +"This command is typically run in daemon mode in order to provide a " +"continuous system log file so that logging of past events may be reviewed. " +"Since FreeBSD has a built in <citerefentry><refentrytitle>syslogd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> facility to " +"automatically rotate system logs, the default <filename>rc.conf</filename> " +"<literal>ipmon_flags</literal> statement uses <option>-Ds</option>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61499 +#, no-wrap +msgid "" +"ipmon_flags=\"-Ds\" # D = start as daemon\n" +" # s = log to syslog\n" +" # v = log tcp window, ack, seq\n" +" # n = map IP & port to names" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61504 +msgid "" +"Logging provides the ability to review, after the fact, information such as " +"which packets were dropped, what addresses they came from, and where they " +"were going. This information is useful in tracking down attackers." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61509 +msgid "" +"Once the logging facility is enabled in <filename>rc.conf</filename> and " +"started with <command>service ipmon start</command>, <application>IPF</" +"application> will only log the rules which contain the <literal>log</" +"literal> keyword. The firewall administrator decides which rules in the " +"ruleset should be logged and normally only deny rules are logged. It is " +"customary to include the <literal>log</literal> keyword in the last rule in " +"the ruleset. This makes it possible to see all the packets that did not " +"match any of the rules in the ruleset." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61520 +msgid "" +"By default, <command>ipmon -Ds</command> mode uses <literal>local0</literal> " +"as the logging facility. The following logging levels can be used to further " +"segregate the logged data:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61525 +#, no-wrap +msgid "" +"LOG_INFO - packets logged using the \"log\" keyword as the action rather than pass or block.\n" +"LOG_NOTICE - packets logged which are also passed\n" +"LOG_WARNING - packets logged which are also blocked\n" +"LOG_ERR - packets which have been logged and which can be considered short due to an incomplete header" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61530 +msgid "" +"In order to setup <application>IPF</application> to log all data to " +"<filename>/var/log/ipfilter.log</filename>, first create the empty file:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61534 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>touch /var/log/ipfilter.log</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61536 +msgid "" +"Then, to write all logged messages to the specified file, add the following " +"statement to <filename>/etc/syslog.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61540 +#, no-wrap +msgid "local0.* /var/log/ipfilter.log" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61542 +msgid "" +"To activate the changes and instruct <citerefentry><refentrytitle>syslogd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to read the modified " +"<filename>/etc/syslog.conf</filename>, run <command>service syslogd reload</" +"command>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61546 +msgid "" +"Do not forget to edit <filename>/etc/newsyslog.conf</filename> to rotate the " +"new log file." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61550 +msgid "" +"Messages generated by <command>ipmon</command> consist of data fields " +"separated by white space. Fields common to all messages are:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61556 +msgid "The date of packet receipt." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61560 +msgid "" +"The time of packet receipt. This is in the form HH:MM:SS.F, for hours, " +"minutes, seconds, and fractions of a second." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61566 +msgid "The name of the interface that processed the packet." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61571 +msgid "" +"The group and rule number of the rule in the format <literal>@0:17</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61576 +msgid "" +"The action: <literal>p</literal> for passed, <literal>b</literal> for " +"blocked, <literal>S</literal> for a short packet, <literal>n</literal> did " +"not match any rules, and <literal>L</literal> for a log rule." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61583 +msgid "" +"The addresses written as three fields: the source address and port separated " +"by a comma, the -> symbol, and the destination address and port. For " +"example: <literal>209.53.17.22,80 -> 198.73.220.17,1722</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61591 +msgid "" +"<literal>PR</literal> followed by the protocol name or number: for example, " +"<literal>PR tcp</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61596 +msgid "" +"<literal>len</literal> followed by the header length and total length of the " +"packet: for example, <literal>len 20 40</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61602 +msgid "" +"If the packet is a <acronym>TCP</acronym> packet, there will be an " +"additional field starting with a hyphen followed by letters corresponding to " +"any flags that were set. Refer to <citerefentry><refentrytitle>ipf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry> for a list of letters " +"and their flags." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61607 +msgid "" +"If the packet is an <acronym>ICMP</acronym> packet, there will be two fields " +"at the end: the first always being <quote>icmp</quote> and the next being " +"the <acronym>ICMP</acronym> message and sub-message type, separated by a " +"slash. For example: <literal>icmp 3/3</literal> for a port unreachable " +"message." +msgstr "" + +#. (itstool) path: chapter/title +#: book.translate.xml:61625 +msgid "Advanced Networking" +msgstr "進階網路設定" + +#. (itstool) path: sect1/para +#: book.translate.xml:61630 +msgid "This chapter covers a number of advanced networking topics." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61637 +msgid "The basics of gateways and routes." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61641 +msgid "How to set up USB tethering." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61645 +msgid "" +"How to set up <trademark class=\"registered\">IEEE</trademark> 802.11 and " +"<trademark class=\"registered\">Bluetooth</trademark> devices." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61650 +msgid "How to make FreeBSD act as a bridge." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61654 +msgid "How to set up network <acronym>PXE</acronym> booting." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61659 +msgid "How to set up <acronym>IPv6</acronym> on a FreeBSD machine." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61664 +msgid "" +"How to enable and utilize the features of the Common Address Redundancy " +"Protocol (<acronym>CARP</acronym>) in FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61674 +msgid "Understand the basics of the <filename>/etc/rc</filename> scripts." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61683 +msgid "" +"Know how to configure and install a new FreeBSD kernel (<xref linkend=" +"\"kernelconfig\"/>)." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:61697 +msgid "Gateways and Routes" +msgstr "通訊閘與路由" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:61700 +msgid "" +"<personname> <firstname>Coranth</firstname> <surname>Gryphon</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:61710 +msgid "<primary>routing</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:61713 +msgid "<primary>gateway</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:61716 +msgid "<primary>subnet</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:61720 +msgid "" +"<firstterm>Routing</firstterm> is the mechanism that allows a system to find " +"the network path to another system. A <firstterm>route</firstterm> is a " +"defined pair of addresses which represent the <quote>destination</quote> and " +"a <quote>gateway</quote>. The route indicates that when trying to get to the " +"specified destination, send the packets through the specified gateway. There " +"are three types of destinations: individual hosts, subnets, and " +"<quote>default</quote>. The <quote>default route</quote> is used if no other " +"routes apply. There are also three types of gateways: individual hosts, " +"interfaces, also called links, and Ethernet hardware (<acronym>MAC</" +"acronym>) addresses. Known routes are stored in a routing table." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:61734 +msgid "" +"This section provides an overview of routing basics. It then demonstrates " +"how to configure a FreeBSD system as a router and offers some " +"troubleshooting tips." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:61739 +msgid "Routing Basics" +msgstr "路由基礎概念" + +#. (itstool) path: sect2/para +#: book.translate.xml:61741 +msgid "" +"To view the routing table of a FreeBSD system, use " +"<citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61744 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>netstat -r</userinput>\n" +"Routing tables\n" +"\n" +"Internet:\n" +"Destination Gateway Flags Refs Use Netif Expire\n" +"default outside-gw UGS 37 418 em0\n" +"localhost localhost UH 0 181 lo0\n" +"test0 0:e0:b5:36:cf:4f UHLW 5 63288 re0 77\n" +"10.20.30.255 link#1 UHLW 1 2421\n" +"example.com link#1 UC 0 0\n" +"host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0\n" +"host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>\n" +"host2.example.com link#1 UC 0 0\n" +"224 link#1 UC 0 0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61759 +msgid "The entries in this example are as follows:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:61763 +msgid "default" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61765 +msgid "" +"The first route in this table specifies the <literal>default</literal> " +"route. When the local system needs to make a connection to a remote host, it " +"checks the routing table to determine if a known path exists. If the remote " +"host matches an entry in the table, the system checks to see if it can " +"connect using the interface specified in that entry." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61773 +msgid "" +"If the destination does not match an entry, or if all known paths fail, the " +"system uses the entry for the default route. For hosts on a local area " +"network, the <literal>Gateway</literal> field in the default route is set to " +"the system which has a direct connection to the Internet. When reading this " +"entry, verify that the <literal>Flags</literal> column indicates that the " +"gateway is usable (<literal>UG</literal>)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61782 +msgid "" +"The default route for a machine which itself is functioning as the gateway " +"to the outside world will be the gateway machine at the Internet Service " +"Provider (<acronym>ISP</acronym>)." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:61790 +msgid "localhost" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61792 +msgid "" +"The second route is the <literal>localhost</literal> route. The interface " +"specified in the <literal>Netif</literal> column for <literal>localhost</" +"literal> is <filename>lo0</filename>, also known as the loopback device. " +"This indicates that all traffic for this destination should be internal, " +"rather than sending it out over the network." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:61804 +msgid "MAC address" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61806 +msgid "" +"The addresses beginning with <systemitem class=\"etheraddress\">0:e0:</" +"systemitem> are <acronym>MAC</acronym> addresses. FreeBSD will automatically " +"identify any hosts, <systemitem>test0</systemitem> in the example, on the " +"local Ethernet and add a route for that host over the Ethernet interface, " +"<filename>re0</filename>. This type of route has a timeout, seen in the " +"<literal>Expire</literal> column, which is used if the host does not respond " +"in a specific amount of time. When this happens, the route to this host will " +"be automatically deleted. These hosts are identified using the Routing " +"Information Protocol (<acronym>RIP</acronym>), which calculates routes to " +"local hosts based upon a shortest path determination." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:61825 +msgid "subnet" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61827 +msgid "" +"FreeBSD will automatically add subnet routes for the local subnet. In this " +"example, <systemitem class=\"ipaddress\">10.20.30.255</systemitem> is the " +"broadcast address for the subnet <systemitem class=\"ipaddress\">10.20.30</" +"systemitem> and <systemitem class=\"fqdomainname\">example.com</systemitem> " +"is the domain name associated with that subnet. The designation " +"<literal>link#1</literal> refers to the first Ethernet card in the machine." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61835 +msgid "" +"Local network hosts and local subnets have their routes automatically " +"configured by a daemon called <citerefentry><refentrytitle>routed</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. If it is not running, " +"only routes which are statically defined by the administrator will exist." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:61844 +msgid "host" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61846 +msgid "" +"The <literal>host1</literal> line refers to the host by its Ethernet " +"address. Since it is the sending host, FreeBSD knows to use the loopback " +"interface (<filename>lo0</filename>) rather than the Ethernet interface." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61852 +msgid "" +"The two <literal>host2</literal> lines represent aliases which were created " +"using <citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. The <literal>=></literal> symbol after the " +"<filename>lo0</filename> interface says that an alias has been set in " +"addition to the loopback address. Such routes only show up on the host that " +"supports the alias and all other hosts on the local network will have a " +"<literal>link#1</literal> line for such routes." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:61864 +msgid "224" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:61866 +msgid "" +"The final line (destination subnet <systemitem class=\"ipaddress\">224</" +"systemitem>) deals with multicasting." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61872 +msgid "" +"Various attributes of each route can be seen in the <literal>Flags</literal> " +"column. <xref linkend=\"routeflags\"/> summarizes some of these flags and " +"their meanings:" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:61877 +msgid "Commonly Seen Routing Table Flags" +msgstr "常見路由表標記" + +#. (itstool) path: row/entry +#. (itstool) path: glossdiv/title +#: book.translate.xml:61889 book.translate.xml:65535 +msgid "U" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:61890 +msgid "The route is active (up)." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossdiv/title +#: book.translate.xml:61894 book.translate.xml:65535 +msgid "H" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:61895 +msgid "The route destination is a single host." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossdiv/title +#: book.translate.xml:61899 book.translate.xml:65535 +msgid "G" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:61900 +msgid "" +"Send anything for this destination on to this gateway, which will figure out " +"from there where to send it." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossdiv/title +#: book.translate.xml:61906 book.translate.xml:65535 +msgid "S" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:61907 +msgid "This route was statically configured." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossdiv/title +#: book.translate.xml:61911 book.translate.xml:65535 +msgid "C" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:61912 +msgid "" +"Clones a new route based upon this route for machines to connect to. This " +"type of route is normally used for local networks." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:61918 +msgid "W" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:61919 +msgid "" +"The route was auto-configured based upon a local area network (clone) route." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: glossdiv/title +#: book.translate.xml:61924 book.translate.xml:65535 +msgid "L" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:61925 +msgid "Route involves references to Ethernet (link) hardware." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61932 +msgid "" +"On a FreeBSD system, the default route can defined in <filename>/etc/rc." +"conf</filename> by specifying the <acronym>IP</acronym> address of the " +"default gateway:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61936 +#, no-wrap +msgid "defaultrouter=\"10.20.30.1\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61938 +msgid "" +"It is also possible to manually add the route using <command>route</command>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:61941 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>route add default 10.20.30.1</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61943 +msgid "" +"Note that manually added routes will not survive a reboot. For more " +"information on manual manipulation of network routing tables, refer to " +"<citerefentry><refentrytitle>route</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:61950 +msgid "Configuring a Router with Static Routes" +msgstr "設定路由器使用靜態路由" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:61953 +msgid "" +"<personname> <firstname>Al</firstname> <surname>Hoang</surname> </" +"personname> <contrib>Contributed by </contrib>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:61964 +msgid "<primary>dual homed hosts</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61968 +msgid "" +"A FreeBSD system can be configured as the default gateway, or router, for a " +"network if it is a dual-homed system. A dual-homed system is a host which " +"resides on at least two different networks. Typically, each network is " +"connected to a separate network interface, though <acronym>IP</acronym> " +"aliasing can be used to bind multiple addresses, each on a different subnet, " +"to one physical interface." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61980 +msgid "" +"In order for the system to forward packets between interfaces, FreeBSD must " +"be configured as a router. Internet standards and good engineering practice " +"prevent the FreeBSD Project from enabling this feature by default, but it " +"can be configured to start at boot by adding this line to <filename>/etc/rc." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:61987 +#, no-wrap +msgid "gateway_enable=\"YES\" # Set to YES if this host will be a gateway" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:61989 +msgid "" +"To enable routing now, set the <citerefentry><refentrytitle>sysctl</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> variable <varname>net." +"inet.ip.forwarding</varname> to <literal>1</literal>. To stop routing, reset " +"this variable to <literal>0</literal>." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:61994 +msgid "<primary>BGP</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:61997 +msgid "<primary>RIP</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:62000 +msgid "<primary>OSPF</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62004 +msgid "" +"The routing table of a router needs additional routes so it knows how to " +"reach other networks. Routes can be either added manually using static " +"routes or routes can be automatically learned using a routing protocol. " +"Static routes are appropriate for small networks and this section describes " +"how to add a static routing entry for a small network." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:62012 +msgid "" +"For large networks, static routes quickly become unscalable. FreeBSD comes " +"with the standard <acronym>BSD</acronym> routing daemon " +"<citerefentry><refentrytitle>routed</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, which provides the routing protocols <acronym>RIP</acronym>, " +"versions 1 and 2, and <acronym>IRDP</acronym>. Support for the <acronym>BGP</" +"acronym> and <acronym>OSPF</acronym> routing protocols can be installed " +"using the <package>net/zebra</package> package or port." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62022 +msgid "Consider the following network:" +msgstr "" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:62026 +msgctxt "_" +msgid "external ref='advanced-networking/static-routes' md5='__failed__'" +msgstr "" + +#. (itstool) path: textobject/literallayout +#: book.translate.xml:62030 +#, no-wrap +msgid "" +"\n" +" INTERNET\n" +" | (10.0.0.1/24) Default Router to Internet\n" +" |\n" +" |Interface xl0\n" +" |10.0.0.10/24\n" +" +------+\n" +" | | RouterA\n" +" | | (FreeBSD gateway)\n" +" +------+\n" +" | Interface xl1\n" +" | 192.168.1.1/24\n" +" |\n" +" +--------------------------------+\n" +" Internal Net 1 | 192.168.1.2/24\n" +" |\n" +" +------+\n" +" | | RouterB\n" +" | |\n" +" +------+\n" +" | 192.168.2.1/24\n" +" |\n" +" Internal Net 2" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62056 +msgid "" +"In this scenario, <systemitem>RouterA</systemitem> is a FreeBSD machine that " +"is acting as a router to the rest of the Internet. It has a default route " +"set to <systemitem class=\"ipaddress\">10.0.0.1</systemitem> which allows it " +"to connect with the outside world. <systemitem>RouterB</systemitem> is " +"already configured to use <systemitem class=\"ipaddress\">192.168.1.1</" +"systemitem> as its default gateway." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62064 +msgid "" +"Before adding any static routes, the routing table on <systemitem>RouterA</" +"systemitem> looks like this:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:62067 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>netstat -nr</userinput>\n" +"Routing tables\n" +"\n" +"Internet:\n" +"Destination Gateway Flags Refs Use Netif Expire\n" +"default 10.0.0.1 UGS 0 49378 xl0\n" +"127.0.0.1 127.0.0.1 UH 0 6 lo0\n" +"10.0.0.0/24 link#1 UC 0 0 xl0\n" +"192.168.1.0/24 link#2 UC 0 0 xl1" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62077 +msgid "" +"With the current routing table, <systemitem>RouterA</systemitem> does not " +"have a route to the <systemitem class=\"ipaddress\">192.168.2.0/24</" +"systemitem> network. The following command adds the <literal>Internal Net 2</" +"literal> network to <systemitem>RouterA</systemitem>'s routing table using " +"<systemitem class=\"ipaddress\">192.168.1.2</systemitem> as the next hop:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:62085 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>route add -net 192.168.2.0/24 192.168.1.2</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62087 +msgid "" +"Now, <systemitem>RouterA</systemitem> can reach any host on the <systemitem " +"class=\"ipaddress\">192.168.2.0/24</systemitem> network. However, the " +"routing information will not persist if the FreeBSD system reboots. If a " +"static route needs to be persistent, add it to <filename>/etc/rc.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:62093 +#, no-wrap +msgid "" +"# Add Internal Net 2 as a persistent static route\n" +"static_routes=\"internalnet2\"\n" +"route_internalnet2=\"-net 192.168.2.0/24 192.168.1.2\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62097 +msgid "" +"The <literal>static_routes</literal> configuration variable is a list of " +"strings separated by a space, where each string references a route name. The " +"variable <literal>route_<replaceable>internalnet2</replaceable></literal> " +"contains the static route for that route name." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62103 +msgid "" +"Using more than one string in <literal>static_routes</literal> creates " +"multiple static routes. The following shows an example of adding static " +"routes for the <systemitem class=\"ipaddress\">192.168.0.0/24</systemitem> " +"and <systemitem class=\"ipaddress\">192.168.1.0/24</systemitem> networks:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:62110 +#, no-wrap +msgid "" +"static_routes=\"net1 net2\"\n" +"route_net1=\"-net 192.168.0.0/24 192.168.0.1\"\n" +"route_net2=\"-net 192.168.1.0/24 192.168.1.1\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62118 +msgid "" +"When an address space is assigned to a network, the service provider " +"configures their routing tables so that all traffic for the network will be " +"sent to the link for the site. But how do external sites know to send their " +"packets to the network's <acronym>ISP</acronym>?" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62124 +msgid "" +"There is a system that keeps track of all assigned address spaces and " +"defines their point of connection to the Internet backbone, or the main " +"trunk lines that carry Internet traffic across the country and around the " +"world. Each backbone machine has a copy of a master set of tables, which " +"direct traffic for a particular network to a specific backbone carrier, and " +"from there down the chain of service providers until it reaches a particular " +"network." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62133 +msgid "" +"It is the task of the service provider to advertise to the backbone sites " +"that they are the point of connection, and thus the path inward, for a site. " +"This is known as route propagation." +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:62138 +msgid "" +"<primary><citerefentry><refentrytitle>traceroute</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry></primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62142 +msgid "" +"Sometimes, there is a problem with route propagation and some sites are " +"unable to connect. Perhaps the most useful command for trying to figure out " +"where routing is breaking down is <command>traceroute</command>. It is " +"useful when <command>ping</command> fails." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62148 +msgid "" +"When using <command>traceroute</command>, include the address of the remote " +"host to connect to. The output will show the gateway hosts along the path of " +"the attempt, eventually either reaching the target host, or terminating " +"because of a lack of connection. For more information, refer to " +"<citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:62157 +msgid "Multicast Considerations" +msgstr "群播 (Multicast) 注意事項" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:62159 +msgid "<primary>multicast routing</primary>" +msgstr "" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:62162 +msgid "<primary>kernel options</primary> <secondary>MROUTING</secondary>" +msgstr "<primary>核心選項</primary> <secondary>MROUTING</secondary>" + +#. (itstool) path: sect2/para +#: book.translate.xml:62167 +msgid "" +"FreeBSD natively supports both multicast applications and multicast routing. " +"Multicast applications do not require any special configuration in order to " +"run on FreeBSD. Support for multicast routing requires that the following " +"option be compiled into a custom kernel:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:62173 +#, no-wrap +msgid "options MROUTING" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62175 +msgid "" +"The multicast routing daemon, <application>mrouted</application> can be " +"installed using the <package>net/mrouted</package> package or port. This " +"daemon implements the <acronym>DVMRP</acronym> multicast routing protocol " +"and is configured by editing <filename>/usr/local/etc/mrouted.conf</" +"filename> in order to set up the tunnels and <acronym>DVMRP</acronym>. The " +"installation of <application>mrouted</application> also installs " +"<application>map-mbone</application> and <application>mrinfo</application>, " +"as well as their associated man pages. Refer to these for configuration " +"examples." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:62188 +msgid "" +"<acronym>DVMRP</acronym> has largely been replaced by the <acronym>PIM</" +"acronym> protocol in many multicast installations. Refer to " +"<citerefentry><refentrytitle>pim</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> for more information." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:62198 +msgid "Wireless Networking" +msgstr "無線網路" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:62201 +msgid "<personname> <othername>Loader</othername> </personname>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:62206 +msgid "" +"<personname> <firstname>Marc</firstname> <surname>Fonvieille</surname> </" +"personname>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:62221 +msgid "<primary>wireless networking</primary>" +msgstr "<primary>無線網路</primary>" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:62224 +msgid "<primary>802.11</primary> <see>wireless networking</see>" +msgstr "<primary>802.11</primary> <see>無線網路</see>" + +#. (itstool) path: sect2/title +#: book.translate.xml:62230 +msgid "Wireless Networking Basics" +msgstr "無線網路基礎" + +#. (itstool) path: sect2/para +#: book.translate.xml:62232 +msgid "" +"Most wireless networks are based on the <trademark class=\"registered" +"\">IEEE</trademark> 802.11 standards. A basic wireless network consists of " +"multiple stations communicating with radios that broadcast in either the " +"2.4GHz or 5GHz band, though this varies according to the locale and is also " +"changing to enable communication in the 2.3GHz and 4.9GHz ranges." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62239 +msgid "" +"802.11 networks are organized in two ways. In <emphasis>infrastructure mode</" +"emphasis>, one station acts as a master with all the other stations " +"associating to it, the network is known as a <acronym>BSS</acronym>, and the " +"master station is termed an access point (<acronym>AP</acronym>). In a " +"<acronym>BSS</acronym>, all communication passes through the <acronym>AP</" +"acronym>; even when one station wants to communicate with another wireless " +"station, messages must go through the <acronym>AP</acronym>. In the second " +"form of network, there is no master and stations communicate directly. This " +"form of network is termed an <acronym>IBSS</acronym> and is commonly known " +"as an <emphasis>ad-hoc network</emphasis>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62254 +msgid "" +"802.11 networks were first deployed in the 2.4GHz band using protocols " +"defined by the <trademark class=\"registered\">IEEE</trademark> 802.11 and " +"802.11b standard. These specifications include the operating frequencies and " +"the <acronym>MAC</acronym> layer characteristics, including framing and " +"transmission rates, as communication can occur at various rates. Later, the " +"802.11a standard defined operation in the 5GHz band, including different " +"signaling mechanisms and higher transmission rates. Still later, the 802.11g " +"standard defined the use of 802.11a signaling and transmission mechanisms in " +"the 2.4GHz band in such a way as to be backwards compatible with 802.11b " +"networks." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62267 +msgid "" +"Separate from the underlying transmission techniques, 802.11 networks have a " +"variety of security mechanisms. The original 802.11 specifications defined a " +"simple security protocol called <acronym>WEP</acronym>. This protocol uses a " +"fixed pre-shared key and the RC4 cryptographic cipher to encode data " +"transmitted on a network. Stations must all agree on the fixed key in order " +"to communicate. This scheme was shown to be easily broken and is now rarely " +"used except to discourage transient users from joining networks. Current " +"security practice is given by the <trademark class=\"registered\">IEEE</" +"trademark> 802.11i specification that defines new cryptographic ciphers and " +"an additional protocol to authenticate stations to an access point and " +"exchange keys for data communication. Cryptographic keys are periodically " +"refreshed and there are mechanisms for detecting and countering intrusion " +"attempts. Another security protocol specification commonly used in wireless " +"networks is termed <acronym>WPA</acronym>, which was a precursor to 802.11i. " +"<acronym>WPA</acronym> specifies a subset of the requirements found in " +"802.11i and is designed for implementation on legacy hardware. Specifically, " +"<acronym>WPA</acronym> requires only the <acronym>TKIP</acronym> cipher that " +"is derived from the original <acronym>WEP</acronym> cipher. 802.11i permits " +"use of <acronym>TKIP</acronym> but also requires support for a stronger " +"cipher, AES-CCM, for encrypting data. The <acronym>AES</acronym> cipher was " +"not required in <acronym>WPA</acronym> because it was deemed too " +"computationally costly to be implemented on legacy hardware." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62297 +msgid "" +"The other standard to be aware of is 802.11e. It defines protocols for " +"deploying multimedia applications, such as streaming video and voice over IP " +"(<acronym>VoIP</acronym>), in an 802.11 network. Like 802.11i, 802.11e also " +"has a precursor specification termed <acronym>WME</acronym> (later renamed " +"<acronym>WMM</acronym>) that has been defined by an industry group as a " +"subset of 802.11e that can be deployed now to enable multimedia applications " +"while waiting for the final ratification of 802.11e. The most important " +"thing to know about 802.11e and <acronym>WME</acronym>/<acronym>WMM</" +"acronym> is that it enables prioritized traffic over a wireless network " +"through Quality of Service (<acronym>QoS</acronym>) protocols and enhanced " +"media access protocols. Proper implementation of these protocols enables " +"high speed bursting of data and prioritized traffic flow." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62314 +msgid "" +"FreeBSD supports networks that operate using 802.11a, 802.11b, and 802.11g. " +"The <acronym>WPA</acronym> and 802.11i security protocols are likewise " +"supported (in conjunction with any of 11a, 11b, and 11g) and <acronym>QoS</" +"acronym> and traffic prioritization required by the <acronym>WME</acronym>/" +"<acronym>WMM</acronym> protocols are supported for a limited set of wireless " +"devices." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:62326 +msgid "" +"Connecting a computer to an existing wireless network is a very common " +"situation. This procedure shows the steps required." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:62332 +msgid "" +"Obtain the <acronym>SSID</acronym> (Service Set Identifier) and " +"<acronym>PSK</acronym> (Pre-Shared Key) for the wireless network from the " +"network administrator." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:62339 +msgid "" +"Identify the wireless adapter. The FreeBSD <filename>GENERIC</filename> " +"kernel includes drivers for many common wireless adapters. If the wireless " +"adapter is one of those models, it will be shown in the output from " +"<citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:62345 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>ifconfig | grep -B3 -i wireless</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:62347 +msgid "" +"If a wireless adapter is not listed, an additional kernel module might be " +"required, or it might be a model not supported by FreeBSD." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:62353 +msgid "" +"This example shows the Atheros <literal>ath0</literal> wireless adapter." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:62358 +msgid "" +"Add an entry for this network to <filename>/etc/wpa_supplicant.conf</" +"filename>. If the file does not exist, create it. Replace " +"<replaceable>myssid</replaceable> and <replaceable>mypsk</replaceable> with " +"the <acronym>SSID</acronym> and <acronym>PSK</acronym> provided by the " +"network administrator." +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:62366 +#, no-wrap +msgid "" +"network={\n" +"\tssid=\"<replaceable>myssid</replaceable>\"\n" +"\tpsk=\"<replaceable>mypsk</replaceable>\"\n" +"}" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:62373 +msgid "" +"Add entries to <filename>/etc/rc.conf</filename> to configure the network on " +"startup:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:62376 +#, no-wrap +msgid "" +"wlans_<replaceable>ath0</replaceable>=\"wlan0\"\n" +"ifconfig_wlan0=\"WPA SYNCDHCP\"" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:62381 +msgid "" +"Restart the computer, or restart the network service to connect to the " +"network:" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:62390 +msgid "Basic Setup" +msgstr "基礎設定" + +#. (itstool) path: sect3/para +#: book.translate.xml:62395 +msgid "" +"To use wireless networking, a wireless networking card is needed and the " +"kernel needs to be configured with the appropriate wireless networking " +"support. The kernel is separated into multiple modules so that only the " +"required support needs to be configured." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:62401 +msgid "" +"The most commonly used wireless devices are those that use parts made by " +"Atheros. These devices are supported by <citerefentry><refentrytitle>ath</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> and require the " +"following line to be added to <filename>/boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:62407 +#, no-wrap +msgid "if_ath_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:62409 +msgid "" +"The Atheros driver is split up into three separate pieces: the driver " +"(<citerefentry><refentrytitle>ath</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>), the hardware support layer that handles chip-specific " +"functions (<citerefentry><refentrytitle>ath_hal</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry>), and an algorithm for selecting the rate for " +"transmitting frames. When this support is loaded as kernel modules, any " +"dependencies are automatically handled. To load support for a different type " +"of wireless device, specify the module for that device. This example is for " +"devices based on the Intersil Prism parts (<citerefentry><refentrytitle>wi</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>) driver:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:62420 +#, no-wrap +msgid "if_wi_load=\"YES\"" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:62423 +msgid "" +"The examples in this section use an <citerefentry><refentrytitle>ath</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> device and the device " +"name in the examples must be changed according to the configuration. A list " +"of available wireless drivers and supported adapters can be found in the " +"FreeBSD Hardware Notes, available on the <link xlink:href=\"http://www." +"FreeBSD.org/releases/index.html\">Release Information</link> page of the " +"FreeBSD website. If a native FreeBSD driver for the wireless device does not " +"exist, it may be possible to use the <trademark class=\"registered" +"\">Windows</trademark> driver with the help of the <link linkend=\"config-" +"network-ndis\">NDIS</link> driver wrapper." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:62436 +msgid "" +"In addition, the modules that implement cryptographic support for the " +"security protocols to use must be loaded. These are intended to be " +"dynamically loaded on demand by the <citerefentry><refentrytitle>wlan</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> module, but for now " +"they must be manually configured. The following modules are available: " +"<citerefentry><refentrytitle>wlan_wep</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry>, <citerefentry><refentrytitle>wlan_ccmp</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, and " +"<citerefentry><refentrytitle>wlan_tkip</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry>. The <citerefentry><refentrytitle>wlan_ccmp</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>wlan_tkip</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> drivers are only needed when using the " +"<acronym>WPA</acronym> or 802.11i security protocols. If the network does " +"not use encryption, <citerefentry><refentrytitle>wlan_wep</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> support is not needed. " +"To load these modules at boot time, add the following lines to <filename>/" +"boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:62449 +#, no-wrap +msgid "" +"wlan_wep_load=\"YES\"\n" +"wlan_ccmp_load=\"YES\"\n" +"wlan_tkip_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:62453 +msgid "" +"Once this information has been added to <filename>/boot/loader.conf</" +"filename>, reboot the FreeBSD box. Alternately, load the modules by hand " +"using <citerefentry><refentrytitle>kldload</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:62459 +msgid "" +"For users who do not want to use modules, it is possible to compile these " +"drivers into the kernel by adding the following lines to a custom kernel " +"configuration file:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:62464 +#, no-wrap +msgid "" +"device wlan # 802.11 support\n" +"device wlan_wep # 802.11 WEP support\n" +"device wlan_ccmp # 802.11 CCMP support\n" +"device wlan_tkip # 802.11 TKIP support\n" +"device wlan_amrr # AMRR transmit rate control algorithm\n" +"device ath # Atheros pci/cardbus NIC's\n" +"device ath_hal # pci/cardbus chip support\n" +"options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors\n" +"device ath_rate_sample # SampleRate tx rate control for ath" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:62474 +msgid "" +"With this information in the kernel configuration file, recompile the kernel " +"and reboot the FreeBSD machine." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:62479 +msgid "" +"Information about the wireless device should appear in the boot messages, " +"like this:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:62482 +#, no-wrap +msgid "" +"ath0: <Atheros 5212> mem 0x88000000-0x8800ffff irq 11 at device 0.0 on cardbus1\n" +"ath0: [ITHREAD]\n" +"ath0: AR2413 mac 7.9 RF2413 phy 4.5" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:62489 +msgid "Infrastructure Mode" +msgstr "主從式 (Infrastructure)" + +#. (itstool) path: sect2/para +#: book.translate.xml:62491 +msgid "" +"Infrastructure (<acronym>BSS</acronym>) mode is the mode that is typically " +"used. In this mode, a number of wireless access points are connected to a " +"wired network. Each wireless network has its own name, called the " +"<acronym>SSID</acronym>. Wireless clients connect to the wireless access " +"points." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:62499 +msgid "FreeBSD Clients" +msgstr "FreeBSD 客戶端" + +#. (itstool) path: sect4/title +#: book.translate.xml:62502 +msgid "How to Find Access Points" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:62504 +msgid "" +"To scan for available networks, use <citerefentry><refentrytitle>ifconfig</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. This request may take " +"a few moments to complete as it requires the system to switch to each " +"available wireless frequency and probe for available access points. Only the " +"superuser can initiate a scan:" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:62510 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>ath0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> up scan</userinput>\n" +"SSID/MESH ID BSSID CHAN RATE S:N INT CAPS\n" +"dlinkap 00:13:46:49:41:76 11 54M -90:96 100 EPS WPA WME\n" +"freebsdap 00:11:95:c3:0d:ac 1 54M -83:96 100 EPS WPA" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:62517 +msgid "" +"The interface must be <option>up</option> before it can scan. Subsequent " +"scan requests do not require the interface to be marked as up again." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:62522 +msgid "" +"The output of a scan request lists each <acronym>BSS</acronym>/" +"<acronym>IBSS</acronym> network found. Besides listing the name of the " +"network, the <literal>SSID</literal>, the output also shows the " +"<literal>BSSID</literal>, which is the <acronym>MAC</acronym> address of the " +"access point. The <literal>CAPS</literal> field identifies the type of each " +"network and the capabilities of the stations operating there:" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:62533 +msgid "Station Capability Codes" +msgstr "站台功能代號" + +#. (itstool) path: row/entry +#: book.translate.xml:62538 +msgid "Capability Code" +msgstr "功能代號" + +#. (itstool) path: row/entry +#: book.translate.xml:62545 +msgid "<literal>E</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:62546 +msgid "" +"Extended Service Set (<acronym>ESS</acronym>). Indicates that the station is " +"part of an infrastructure network rather than an <acronym>IBSS</acronym>/ad-" +"hoc network." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:62554 +msgid "<literal>I</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:62555 +msgid "" +"<acronym>IBSS</acronym>/ad-hoc network. Indicates that the station is part " +"of an ad-hoc network rather than an <acronym>ESS</acronym> network." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:62562 +msgid "<literal>P</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:62563 +msgid "" +"Privacy. Encryption is required for all data frames exchanged within the " +"<acronym>BSS</acronym> using cryptographic means such as <acronym>WEP</" +"acronym>, <acronym>TKIP</acronym> or <acronym>AES</acronym>-<acronym>CCMP</" +"acronym>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:62572 +msgid "<literal>S</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:62573 +msgid "" +"Short Preamble. Indicates that the network is using short preambles, defined " +"in 802.11b High Rate/DSSS PHY, and utilizes a 56 bit sync field rather than " +"the 128 bit field used in long preamble mode." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:62581 +msgid "<literal>s</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:62582 +msgid "" +"Short slot time. Indicates that the 802.11g network is using a short slot " +"time because there are no legacy (802.11b) stations present." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:62590 +msgid "One can also display the current list of known networks with:" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:62593 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> list scan</userinput>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:62595 +msgid "" +"This information may be updated automatically by the adapter or manually " +"with a <option>scan</option> request. Old data is automatically removed from " +"the cache, so over time this list may shrink unless more scans are done." +msgstr "" + +#. (itstool) path: sect4/title +#. (itstool) path: sect3/title +#: book.translate.xml:62603 book.translate.xml:63431 +msgid "Basic Settings" +msgstr "基礎設定" + +#. (itstool) path: sect4/para +#: book.translate.xml:62605 +msgid "" +"This section provides a simple example of how to make the wireless network " +"adapter work in FreeBSD without encryption. Once familiar with these " +"concepts, it is strongly recommend to use <link linkend=\"network-wireless-" +"wpa\">WPA</link> to set up the wireless network." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:62611 +msgid "" +"There are three basic steps to configure a wireless network: select an " +"access point, authenticate the station, and configure an <acronym>IP</" +"acronym> address. The following sections discuss each step." +msgstr "" + +#. (itstool) path: sect5/title +#: book.translate.xml:62617 +msgid "Selecting an Access Point" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62619 +msgid "" +"Most of the time, it is sufficient to let the system choose an access point " +"using the builtin heuristics. This is the default behavior when an interface " +"is marked as up or it is listed in <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect5/programlisting +#: book.translate.xml:62625 book.translate.xml:62725 +#, no-wrap +msgid "" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"DHCP\"" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62628 +msgid "" +"If there are multiple access points, a specific one can be selected by its " +"<acronym>SSID</acronym>:" +msgstr "" + +#. (itstool) path: sect5/programlisting +#: book.translate.xml:62632 +#, no-wrap +msgid "" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"ssid <replaceable>your_ssid_here</replaceable> DHCP\"" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62635 +msgid "" +"In an environment where there are multiple access points with the same " +"<acronym>SSID</acronym>, which is often done to simplify roaming, it may be " +"necessary to associate to one specific device. In this case, the " +"<acronym>BSSID</acronym> of the access point can be specified, with or " +"without the <acronym>SSID</acronym>:" +msgstr "" + +#. (itstool) path: sect5/programlisting +#: book.translate.xml:62643 +#, no-wrap +msgid "" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"ssid <replaceable>your_ssid_here</replaceable> bssid <replaceable>xx:xx:xx:xx:xx:xx</replaceable> DHCP\"" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62646 +msgid "" +"There are other ways to constrain the choice of an access point, such as " +"limiting the set of frequencies the system will scan on. This may be useful " +"for a multi-band wireless card as scanning all the possible channels can be " +"time-consuming. To limit operation to a specific band, use the <option>mode</" +"option> parameter:" +msgstr "" + +#. (itstool) path: sect5/programlisting +#: book.translate.xml:62654 +#, no-wrap +msgid "" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"mode <replaceable>11g</replaceable> ssid <replaceable>your_ssid_here</replaceable> DHCP\"" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62657 +msgid "" +"This example will force the card to operate in 802.11g, which is defined " +"only for 2.4GHz frequencies so any 5GHz channels will not be considered. " +"This can also be achieved with the <option>channel</option> parameter, which " +"locks operation to one specific frequency, and the <option>chanlist</option> " +"parameter, to specify a list of channels for scanning. More information " +"about these parameters can be found in " +"<citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62671 +msgid "" +"Once an access point is selected, the station needs to authenticate before " +"it can pass data. Authentication can happen in several ways. The most common " +"scheme, open authentication, allows any station to join the network and " +"communicate. This is the authentication to use for test purposes the first " +"time a wireless network is setup. Other schemes require cryptographic " +"handshakes to be completed before data traffic can flow, either using pre-" +"shared keys or secrets, or more complex schemes that involve backend " +"services such as <acronym>RADIUS</acronym>. Open authentication is the " +"default setting. The next most common setup is <acronym>WPA-PSK</acronym>, " +"also known as <acronym>WPA</acronym> Personal, which is described in <xref " +"linkend=\"network-wireless-wpa-wpa-psk\"/>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:62688 +msgid "" +"If using an <trademark class=\"registered\">Apple</trademark> <trademark " +"class=\"registered\">AirPort</trademark> Extreme base station for an access " +"point, shared-key authentication together with a <acronym>WEP</acronym> key " +"needs to be configured. This can be configured in <filename>/etc/rc.conf</" +"filename> or by using <citerefentry><refentrytitle>wpa_supplicant</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. For a single " +"<trademark class=\"registered\">AirPort</trademark> base station, access can " +"be configured with:" +msgstr "" + +#. (itstool) path: note/programlisting +#: book.translate.xml:62696 +#, no-wrap +msgid "" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"authmode shared wepmode on weptxkey <replaceable>1</replaceable> wepkey <replaceable>01234567</replaceable> DHCP\"" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:62699 +msgid "" +"In general, shared key authentication should be avoided because it uses the " +"<acronym>WEP</acronym> key material in a highly-constrained manner, making " +"it even easier to crack the key. If <acronym>WEP</acronym> must be used for " +"compatibility with legacy devices, it is better to use <acronym>WEP</" +"acronym> with <literal>open</literal> authentication. More information " +"regarding <acronym>WEP</acronym> can be found in <xref linkend=\"network-" +"wireless-wep\"/>." +msgstr "" + +#. (itstool) path: sect5/title +#: book.translate.xml:62712 +msgid "Getting an <acronym>IP</acronym> Address with <acronym>DHCP</acronym>" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62715 +msgid "" +"Once an access point is selected and the authentication parameters are set, " +"an <acronym>IP</acronym> address must be obtained in order to communicate. " +"Most of the time, the <acronym>IP</acronym> address is obtained via " +"<acronym>DHCP</acronym>. To achieve that, edit <filename>/etc/rc.conf</" +"filename> and add <literal>DHCP</literal> to the configuration for the " +"device:" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62728 +msgid "The wireless interface is now ready to bring up:" +msgstr "" + +#. (itstool) path: sect5/screen +#: book.translate.xml:62731 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service netif start</userinput>" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62733 +msgid "" +"Once the interface is running, use <citerefentry><refentrytitle>ifconfig</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to see the status of " +"the interface <filename>ath0</filename>:" +msgstr "" + +#. (itstool) path: sect5/screen +#: book.translate.xml:62737 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable></userinput>\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500\n" +" ether 00:11:95:d5:43:62\n" +" inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255\n" +" media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g\n" +" status: associated\n" +" ssid dlinkap channel 11 (2462 Mhz 11g) bssid 00:13:46:49:41:76\n" +" country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7\n" +" scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7\n" +" roam:rate 5 protmode CTS wme burst" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62748 +msgid "" +"The <literal>status: associated</literal> line means that it is connected to " +"the wireless network. The <literal>bssid 00:13:46:49:41:76</literal> is the " +"<acronym>MAC</acronym> address of the access point and <literal>authmode " +"OPEN</literal> indicates that the communication is not encrypted." +msgstr "" + +#. (itstool) path: sect5/title +#: book.translate.xml:62757 +msgid "Static <acronym>IP</acronym> Address" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62759 +msgid "" +"If an <acronym>IP</acronym> address cannot be obtained from a <acronym>DHCP</" +"acronym> server, set a fixed <acronym>IP</acronym> address. Replace the " +"<literal>DHCP</literal> keyword shown above with the address information. Be " +"sure to retain any other parameters for selecting the access point:" +msgstr "" + +#. (itstool) path: sect5/programlisting +#: book.translate.xml:62766 +#, no-wrap +msgid "" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"inet <replaceable>192.168.1.100</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>your_ssid_here</replaceable>\"" +msgstr "" + +#. (itstool) path: sect4/title +#: book.translate.xml:62772 +msgid "<acronym>WPA</acronym>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:62774 +msgid "" +"Wi-Fi Protected Access (<acronym>WPA</acronym>) is a security protocol used " +"together with 802.11 networks to address the lack of proper authentication " +"and the weakness of <acronym>WEP</acronym>. WPA leverages the 802.1X " +"authentication protocol and uses one of several ciphers instead of " +"<acronym>WEP</acronym> for data integrity. The only cipher required by " +"<acronym>WPA</acronym> is the Temporary Key Integrity Protocol " +"(<acronym>TKIP</acronym>). <acronym>TKIP</acronym> is a cipher that extends " +"the basic RC4 cipher used by <acronym>WEP</acronym> by adding integrity " +"checking, tamper detection, and measures for responding to detected " +"intrusions. <acronym>TKIP</acronym> is designed to work on legacy hardware " +"with only software modification. It represents a compromise that improves " +"security but is still not entirely immune to attack. <acronym>WPA</acronym> " +"also specifies the <acronym>AES-CCMP</acronym> cipher as an alternative to " +"<acronym>TKIP</acronym>, and that is preferred when possible. For this " +"specification, the term <acronym>WPA2</acronym> or <acronym>RSN</acronym> is " +"commonly used." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:62797 +msgid "" +"<acronym>WPA</acronym> defines authentication and encryption protocols. " +"Authentication is most commonly done using one of two techniques: by 802.1X " +"and a backend authentication service such as <acronym>RADIUS</acronym>, or " +"by a minimal handshake between the station and the access point using a pre-" +"shared secret. The former is commonly termed <acronym>WPA</acronym> " +"Enterprise and the latter is known as <acronym>WPA</acronym> Personal. Since " +"most people will not set up a <acronym>RADIUS</acronym> backend server for " +"their wireless network, <acronym>WPA-PSK</acronym> is by far the most " +"commonly encountered configuration for <acronym>WPA</acronym>." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:62811 +msgid "" +"The control of the wireless connection and the key negotiation or " +"authentication with a server is done using " +"<citerefentry><refentrytitle>wpa_supplicant</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. This program requires a configuration file, " +"<filename>/etc/wpa_supplicant.conf</filename>, to run. More information " +"regarding this file can be found in " +"<citerefentry><refentrytitle>wpa_supplicant.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect5/title +#: book.translate.xml:62820 +msgid "<acronym>WPA-PSK</acronym>" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62822 +msgid "" +"<acronym>WPA-PSK</acronym>, also known as <acronym>WPA</acronym> Personal, " +"is based on a pre-shared key (<acronym>PSK</acronym>) which is generated " +"from a given password and used as the master key in the wireless network. " +"This means every wireless user will share the same key. <acronym>WPA-PSK</" +"acronym> is intended for small networks where the use of an authentication " +"server is not possible or desired." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:62833 +msgid "" +"Always use strong passwords that are sufficiently long and made from a rich " +"alphabet so that they will not be easily guessed or attacked." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62838 +msgid "" +"The first step is the configuration of <filename>/etc/wpa_supplicant.conf</" +"filename> with the <acronym>SSID</acronym> and the pre-shared key of the " +"network:" +msgstr "" + +#. (itstool) path: sect5/programlisting +#: book.translate.xml:62843 +#, no-wrap +msgid "" +"network={\n" +" ssid=\"freebsdap\"\n" +" psk=\"freebsdmall\"\n" +"}" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62848 +msgid "" +"Then, in <filename>/etc/rc.conf</filename>, indicate that the wireless " +"device configuration will be done with <acronym>WPA</acronym> and the " +"<acronym>IP</acronym> address will be obtained with <acronym>DHCP</acronym>:" +msgstr "" + +#. (itstool) path: sect5/programlisting +#: book.translate.xml:62854 book.translate.xml:63054 book.translate.xml:63148 +#: book.translate.xml:63272 +#, no-wrap +msgid "" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"WPA DHCP\"" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62857 book.translate.xml:63275 +msgid "Then, bring up the interface:" +msgstr "" + +#. (itstool) path: sect5/screen +#: book.translate.xml:62859 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service netif start</userinput>\n" +"Starting wpa_supplicant.\n" +"DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5\n" +"DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6\n" +"DHCPOFFER from 192.168.0.1\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67\n" +"DHCPACK from 192.168.0.1\n" +"bound to 192.168.0.254 -- renewal in 300 seconds.\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500\n" +" ether 00:11:95:d5:43:62\n" +" inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255\n" +" media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g\n" +" status: associated\n" +" ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +" country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF\n" +" AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan\n" +" bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS\n" +" wme burst roaming MANUAL" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62878 +msgid "" +"Or, try to configure the interface manually using the information in " +"<filename>/etc/wpa_supplicant.conf</filename>:" +msgstr "" + +#. (itstool) path: sect5/screen +#: book.translate.xml:62882 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>wpa_supplicant -i <replaceable>wlan0</replaceable> -c /etc/wpa_supplicant.conf</userinput>\n" +"Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz)\n" +"Associated with 00:11:95:c3:0d:ac\n" +"WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=CCMP GTK=CCMP]\n" +"CTRL-EVENT-CONNECTED - Connection to 00:11:95:c3:0d:ac completed (auth) [id=0 id_str=]" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62888 +msgid "" +"The next operation is to launch <citerefentry><refentrytitle>dhclient</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to get the " +"<acronym>IP</acronym> address from the <acronym>DHCP</acronym> server:" +msgstr "" + +#. (itstool) path: sect5/screen +#: book.translate.xml:62892 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>dhclient <replaceable>wlan0</replaceable></userinput>\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67\n" +"DHCPACK from 192.168.0.1\n" +"bound to 192.168.0.254 -- renewal in 300 seconds.\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable></userinput>\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500\n" +" ether 00:11:95:d5:43:62\n" +" inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255\n" +" media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g\n" +" status: associated\n" +" ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +" country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF\n" +" AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan\n" +" bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS\n" +" wme burst roaming MANUAL" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:62909 +msgid "" +"If <filename>/etc/rc.conf</filename> has an <literal>ifconfig_wlan0=\"DHCP" +"\"</literal> entry, <citerefentry><refentrytitle>dhclient</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> will be launched " +"automatically after <citerefentry><refentrytitle>wpa_supplicant</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> associates with the " +"access point." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62916 +msgid "" +"If <acronym>DHCP</acronym> is not possible or desired, set a static " +"<acronym>IP</acronym> address after " +"<citerefentry><refentrytitle>wpa_supplicant</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> has authenticated the station:" +msgstr "" + +#. (itstool) path: sect5/screen +#: book.translate.xml:62921 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> inet <replaceable>192.168.0.100</replaceable> netmask <replaceable>255.255.255.0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable></userinput>\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500\n" +" ether 00:11:95:d5:43:62\n" +" inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255\n" +" media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g\n" +" status: associated\n" +" ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +" country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF\n" +" AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan\n" +" bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS\n" +" wme burst roaming MANUAL" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62934 +msgid "" +"When <acronym>DHCP</acronym> is not used, the default gateway and the " +"nameserver also have to be manually set:" +msgstr "" + +#. (itstool) path: sect5/screen +#: book.translate.xml:62938 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>route add default <replaceable>your_default_router</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>echo \"nameserver <replaceable>your_DNS_server</replaceable>\" >> /etc/resolv.conf</userinput>" +msgstr "" + +#. (itstool) path: sect5/title +#: book.translate.xml:62943 +msgid "<acronym>WPA</acronym> with <acronym>EAP-TLS</acronym>" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62946 +msgid "" +"The second way to use <acronym>WPA</acronym> is with an 802.1X backend " +"authentication server. In this case, <acronym>WPA</acronym> is called " +"<acronym>WPA</acronym> Enterprise to differentiate it from the less secure " +"<acronym>WPA</acronym> Personal. Authentication in <acronym>WPA</acronym> " +"Enterprise is based on the Extensible Authentication Protocol (<acronym>EAP</" +"acronym>)." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62955 +msgid "" +"<acronym>EAP</acronym> does not come with an encryption method. Instead, " +"<acronym>EAP</acronym> is embedded inside an encrypted tunnel. There are " +"many <acronym>EAP</acronym> authentication methods, but <acronym>EAP-TLS</" +"acronym>, <acronym>EAP-TTLS</acronym>, and <acronym>EAP-PEAP</acronym> are " +"the most common." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62963 +msgid "" +"EAP with Transport Layer Security (<acronym>EAP-TLS</acronym>) is a well-" +"supported wireless authentication protocol since it was the first " +"<acronym>EAP</acronym> method to be certified by the <link xlink:href=" +"\"http://www.wi-fi.org/\">Wi-Fi Alliance</link>. <acronym>EAP-TLS</acronym> " +"requires three certificates to run: the certificate of the Certificate " +"Authority (<acronym>CA</acronym>) installed on all machines, the server " +"certificate for the authentication server, and one client certificate for " +"each wireless client. In this <acronym>EAP</acronym> method, both the " +"authentication server and wireless client authenticate each other by " +"presenting their respective certificates, and then verify that these " +"certificates were signed by the organization's <acronym>CA</acronym>." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:62980 +msgid "" +"As previously, the configuration is done via <filename>/etc/wpa_supplicant." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect5/programlisting +#: book.translate.xml:62983 +#, no-wrap +msgid "" +"network={\n" +" ssid=\"freebsdap\" <co xml:id=\"co-tls-ssid\"/>\n" +" proto=RSN <co xml:id=\"co-tls-proto\"/>\n" +" key_mgmt=WPA-EAP <co xml:id=\"co-tls-kmgmt\"/>\n" +" eap=TLS <co xml:id=\"co-tls-eap\"/>\n" +" identity=\"loader\" <co xml:id=\"co-tls-id\"/>\n" +" ca_cert=\"/etc/certs/cacert.pem\" <co xml:id=\"co-tls-cacert\"/>\n" +" client_cert=\"/etc/certs/clientcert.pem\" <co xml:id=\"co-tls-clientcert\"/>\n" +" private_key=\"/etc/certs/clientkey.pem\" <co xml:id=\"co-tls-pkey\"/>\n" +" private_key_passwd=\"freebsdmallclient\" <co xml:id=\"co-tls-pwd\"/>\n" +"}" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:62997 +msgid "This field indicates the network name (<acronym>SSID</acronym>)." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63002 +msgid "" +"This example uses the <acronym>RSN</acronym> <trademark class=\"registered" +"\">IEEE</trademark> 802.11i protocol, also known as <acronym>WPA2</acronym>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63008 +msgid "" +"The <literal>key_mgmt</literal> line refers to the key management protocol " +"to use. In this example, it is <acronym>WPA</acronym> using <acronym>EAP</" +"acronym> authentication." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63015 +msgid "" +"This field indicates the <acronym>EAP</acronym> method for the connection." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63020 +msgid "" +"The <literal>identity</literal> field contains the identity string for " +"<acronym>EAP</acronym>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63026 book.translate.xml:63129 book.translate.xml:63242 +msgid "" +"The <literal>ca_cert</literal> field indicates the pathname of the " +"<acronym>CA</acronym> certificate file. This file is needed to verify the " +"server certificate." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63033 +msgid "" +"The <literal>client_cert</literal> line gives the pathname to the client " +"certificate file. This certificate is unique to each wireless client of the " +"network." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63040 +msgid "" +"The <literal>private_key</literal> field is the pathname to the client " +"certificate private key file." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63046 +msgid "" +"The <literal>private_key_passwd</literal> field contains the passphrase for " +"the private key." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:63051 +msgid "Then, add the following lines to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:63057 book.translate.xml:63151 +msgid "The next step is to bring up the interface:" +msgstr "" + +#. (itstool) path: sect5/screen +#: book.translate.xml:63059 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service netif start</userinput>\n" +"Starting wpa_supplicant.\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15\n" +"DHCPACK from 192.168.0.20\n" +"bound to 192.168.0.254 -- renewal in 300 seconds.\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500\n" +" ether 00:11:95:d5:43:62\n" +" inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255\n" +" media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g\n" +" status: associated\n" +" ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +" country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF\n" +" AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan\n" +" bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS\n" +" wme burst roaming MANUAL" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:63076 +msgid "" +"It is also possible to bring up the interface manually using " +"<citerefentry><refentrytitle>wpa_supplicant</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>ifconfig</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect5/title +#: book.translate.xml:63082 +msgid "<acronym>WPA</acronym> with <acronym>EAP-TTLS</acronym>" +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:63085 +msgid "" +"With <acronym>EAP-TLS</acronym>, both the authentication server and the " +"client need a certificate. With <acronym>EAP-TTLS</acronym>, a client " +"certificate is optional. This method is similar to a web server which " +"creates a secure <acronym>SSL</acronym> tunnel even if visitors do not have " +"client-side certificates. <acronym>EAP-TTLS</acronym> uses an encrypted " +"<acronym>TLS</acronym> tunnel for safe transport of the authentication data." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:63095 +msgid "" +"The required configuration can be added to <filename>/etc/wpa_supplicant." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect5/programlisting +#: book.translate.xml:63098 +#, no-wrap +msgid "" +"network={\n" +" ssid=\"freebsdap\"\n" +" proto=RSN\n" +" key_mgmt=WPA-EAP\n" +" eap=TTLS <co xml:id=\"co-ttls-eap\"/>\n" +" identity=\"test\" <co xml:id=\"co-ttls-id\"/>\n" +" password=\"test\" <co xml:id=\"co-ttls-passwd\"/>\n" +" ca_cert=\"/etc/certs/cacert.pem\" <co xml:id=\"co-ttls-cacert\"/>\n" +" phase2=\"auth=MD5\" <co xml:id=\"co-ttls-pha2\"/>\n" +"}" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63111 book.translate.xml:63224 +msgid "" +"This field specifies the <acronym>EAP</acronym> method for the connection." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63116 book.translate.xml:63229 +msgid "" +"The <literal>identity</literal> field contains the identity string for " +"<acronym>EAP</acronym> authentication inside the encrypted <acronym>TLS</" +"acronym> tunnel." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63123 book.translate.xml:63236 +msgid "" +"The <literal>password</literal> field contains the passphrase for the " +"<acronym>EAP</acronym> authentication." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63136 +msgid "" +"This field specifies the authentication method used in the encrypted " +"<acronym>TLS</acronym> tunnel. In this example, <acronym>EAP</acronym> with " +"MD5-Challenge is used. The <quote>inner authentication</quote> phase is " +"often called <quote>phase2</quote>." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:63145 +msgid "Next, add the following lines to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect5/screen +#: book.translate.xml:63153 book.translate.xml:63277 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service netif start</userinput>\n" +"Starting wpa_supplicant.\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21\n" +"DHCPACK from 192.168.0.20\n" +"bound to 192.168.0.254 -- renewal in 300 seconds.\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500\n" +" ether 00:11:95:d5:43:62\n" +" inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255\n" +" media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g\n" +" status: associated\n" +" ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +" country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF\n" +" AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan\n" +" bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS\n" +" wme burst roaming MANUAL" +msgstr "" + +#. (itstool) path: sect5/title +#: book.translate.xml:63173 +msgid "<acronym>WPA</acronym> with <acronym>EAP-PEAP</acronym>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:63177 +msgid "" +"<acronym>PEAPv0/EAP-MSCHAPv2</acronym> is the most common <acronym>PEAP</" +"acronym> method. In this chapter, the term <acronym>PEAP</acronym> is used " +"to refer to that method." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:63183 +msgid "" +"Protected EAP (<acronym>PEAP</acronym>) is designed as an alternative to " +"<acronym>EAP-TTLS</acronym> and is the most used <acronym>EAP</acronym> " +"standard after <acronym>EAP-TLS</acronym>. In a network with mixed operating " +"systems, <acronym>PEAP</acronym> should be the most supported standard after " +"<acronym>EAP-TLS</acronym>." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:63191 +msgid "" +"<acronym>PEAP</acronym> is similar to <acronym>EAP-TTLS</acronym> as it uses " +"a server-side certificate to authenticate clients by creating an encrypted " +"<acronym>TLS</acronym> tunnel between the client and the authentication " +"server, which protects the ensuing exchange of authentication information. " +"<acronym>PEAP</acronym> authentication differs from <acronym>EAP-TTLS</" +"acronym> as it broadcasts the username in the clear and only the password is " +"sent in the encrypted <acronym>TLS</acronym> tunnel. <acronym>EAP-TTLS</" +"acronym> will use the <acronym>TLS</acronym> tunnel for both the username " +"and password." +msgstr "" + +#. (itstool) path: sect5/para +#: book.translate.xml:63205 +msgid "" +"Add the following lines to <filename>/etc/wpa_supplicant.conf</filename> to " +"configure the <acronym>EAP-PEAP</acronym> related settings:" +msgstr "" + +#. (itstool) path: sect5/programlisting +#: book.translate.xml:63210 +#, no-wrap +msgid "" +"network={\n" +" ssid=\"freebsdap\"\n" +" proto=RSN\n" +" key_mgmt=WPA-EAP\n" +" eap=PEAP <co xml:id=\"co-peap-eap\"/>\n" +" identity=\"test\" <co xml:id=\"co-peap-id\"/>\n" +" password=\"test\" <co xml:id=\"co-peap-passwd\"/>\n" +" ca_cert=\"/etc/certs/cacert.pem\" <co xml:id=\"co-peap-cacert\"/>\n" +" phase1=\"peaplabel=0\" <co xml:id=\"co-peap-pha1\"/>\n" +" phase2=\"auth=MSCHAPV2\" <co xml:id=\"co-peap-pha2\"/>\n" +"}" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63249 +msgid "" +"This field contains the parameters for the first phase of authentication, " +"the <acronym>TLS</acronym> tunnel. According to the authentication server " +"used, specify a specific label for authentication. Most of the time, the " +"label will be <quote>client <acronym>EAP</acronym> encryption</quote> which " +"is set by using <literal>peaplabel=0</literal>. More information can be " +"found in <citerefentry><refentrytitle>wpa_supplicant.conf</" +"refentrytitle><manvolnum>5</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63261 +msgid "" +"This field specifies the authentication protocol used in the encrypted " +"<acronym>TLS</acronym> tunnel. In the case of <acronym>PEAP</acronym>, it is " +"<literal>auth=MSCHAPV2</literal>." +msgstr "" + +#. (itstool) path: sect4/title +#: book.translate.xml:63298 +msgid "<acronym>WEP</acronym>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:63300 +msgid "" +"Wired Equivalent Privacy (<acronym>WEP</acronym>) is part of the original " +"802.11 standard. There is no authentication mechanism, only a weak form of " +"access control which is easily cracked." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:63305 +msgid "" +"<acronym>WEP</acronym> can be set up using " +"<citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:63308 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>ath0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> inet <replaceable>192.168.1.100</replaceable> netmask <replaceable>255.255.255.0</replaceable> \\\n" +"\t ssid <replaceable>my_net</replaceable> wepmode on weptxkey <replaceable>3</replaceable> wepkey <replaceable>3:0x3456789012</replaceable></userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63315 +msgid "" +"The <literal>weptxkey</literal> specifies which <acronym>WEP</acronym> key " +"will be used in the transmission. This example uses the third key. This must " +"match the setting on the access point. When unsure which key is used by the " +"access point, try <literal>1</literal> (the first key) for this value." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63325 +msgid "" +"The <literal>wepkey</literal> selects one of the <acronym>WEP</acronym> " +"keys. It should be in the format <replaceable>index:key</replaceable>. Key " +"<literal>1</literal> is used by default; the index only needs to be set when " +"using a key other than the first key." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:63333 +msgid "" +"Replace the <literal>0x3456789012</literal> with the key configured for use " +"on the access point." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:63340 +msgid "" +"Refer to <citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for further information." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:63343 +msgid "" +"The <citerefentry><refentrytitle>wpa_supplicant</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> facility can be used to configure a wireless " +"interface with <acronym>WEP</acronym>. The example above can be set up by " +"adding the following lines to <filename>/etc/wpa_supplicant.conf</filename>:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:63349 +#, no-wrap +msgid "" +"network={\n" +" ssid=\"my_net\"\n" +" key_mgmt=NONE\n" +" wep_key3=3456789012\n" +" wep_tx_keyidx=3\n" +"}" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:63356 +msgid "Then:" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:63358 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>wpa_supplicant -i <replaceable>wlan0</replaceable> -c /etc/wpa_supplicant.conf</userinput>\n" +"Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz)\n" +"Associated with 00:13:46:49:41:76" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:63366 +msgid "Ad-hoc Mode" +msgstr "對等式 (Ad-hoc)" + +#. (itstool) path: sect2/para +#: book.translate.xml:63368 +msgid "" +"<acronym>IBSS</acronym> mode, also called ad-hoc mode, is designed for point " +"to point connections. For example, to establish an ad-hoc network between " +"the machines <systemitem>A</systemitem> and <systemitem>B</systemitem>, " +"choose two <acronym>IP</acronym> addresses and a <acronym>SSID</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63375 +msgid "On <systemitem>A</systemitem>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:63377 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>ath0</replaceable> wlanmode adhoc</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> inet <replaceable>192.168.0.1</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>freebsdap</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable></userinput>\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:c3:0d:ac\n" +"\t inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>\n" +"\t status: running\n" +"\t ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60\n" +"\t protmode CTS wme burst" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63389 +msgid "" +"The <literal>adhoc</literal> parameter indicates that the interface is " +"running in <acronym>IBSS</acronym> mode." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63392 +msgid "" +"<systemitem>B</systemitem> should now be able to detect <systemitem>A</" +"systemitem>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:63395 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>ath0</replaceable> wlanmode adhoc</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> up scan</userinput>\n" +" SSID/MESH ID BSSID CHAN RATE S:N INT CAPS\n" +" freebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WME" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63400 +msgid "" +"The <literal>I</literal> in the output confirms that <systemitem>A</" +"systemitem> is in ad-hoc mode. Now, configure <systemitem>B</systemitem> " +"with a different <acronym>IP</acronym> address:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:63405 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> inet <replaceable>192.168.0.2</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>freebsdap</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable></userinput>\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:d5:43:62\n" +"\t inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>\n" +"\t status: running\n" +"\t ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60\n" +"\t protmode CTS wme burst" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63416 +msgid "" +"Both <systemitem>A</systemitem> and <systemitem>B</systemitem> are now ready " +"to exchange information." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:63422 +msgid "FreeBSD Host Access Points" +msgstr "FreeBSD 主機存取點" + +#. (itstool) path: sect2/para +#: book.translate.xml:63424 +msgid "" +"FreeBSD can act as an Access Point (<acronym>AP</acronym>) which eliminates " +"the need to buy a hardware <acronym>AP</acronym> or run an ad-hoc network. " +"This can be particularly useful when a FreeBSD machine is acting as a " +"gateway to another network such as the Internet." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63433 +msgid "" +"Before configuring a FreeBSD machine as an <acronym>AP</acronym>, the kernel " +"must be configured with the appropriate networking support for the wireless " +"card as well as the security protocols being used. For more details, see " +"<xref linkend=\"network-wireless-basic\"/>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:63440 +msgid "" +"The <acronym>NDIS</acronym> driver wrapper for <trademark class=\"registered" +"\">Windows</trademark> drivers does not currently support <acronym>AP</" +"acronym> operation. Only native FreeBSD wireless drivers support " +"<acronym>AP</acronym> mode." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63447 +msgid "" +"Once wireless networking support is loaded, check if the wireless device " +"supports the host-based access point mode, also known as hostap mode:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:63451 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>ath0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> list caps</userinput>\n" +"drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>\n" +"cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63456 +msgid "" +"This output displays the card's capabilities. The <literal>HOSTAP</literal> " +"word confirms that this wireless card can act as an <acronym>AP</acronym>. " +"Various supported ciphers are also listed: <acronym>WEP</acronym>, " +"<acronym>TKIP</acronym>, and <acronym>AES</acronym>. This information " +"indicates which security protocols can be used on the <acronym>AP</acronym>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63464 +msgid "" +"The wireless device can only be put into hostap mode during the creation of " +"the network pseudo-device, so a previously created device must be destroyed " +"first:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:63468 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> destroy</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63470 +msgid "" +"then regenerated with the correct option before setting the other parameters:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:63473 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>ath0</replaceable> wlanmode hostap</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> inet <replaceable>192.168.0.1</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>freebsdap</replaceable> mode 11g channel 1</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63476 +msgid "" +"Use <citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> again to see the status of the <filename>wlan0</" +"filename> interface:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:63479 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable></userinput>\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:c3:0d:ac\n" +"\t inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>\n" +"\t status: running\n" +"\t ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60\n" +"\t protmode CTS wme burst dtimperiod 1 -dfs" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63489 +msgid "" +"The <literal>hostap</literal> parameter indicates the interface is running " +"in the host-based access point mode." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63493 +msgid "" +"The interface configuration can be done automatically at boot time by adding " +"the following lines to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:63497 +#, no-wrap +msgid "" +"wlans_ath0=\"wlan0\"\n" +"create_args_wlan0=\"wlanmode hostap\"\n" +"ifconfig_wlan0=\"inet <replaceable>192.168.0.1</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>freebsdap</replaceable> mode 11g channel <replaceable>1</replaceable>\"" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:63503 +msgid "Host-based Access Point Without Authentication or Encryption" +msgstr "無認證或加密的 Host-based 存取點" + +#. (itstool) path: sect3/para +#: book.translate.xml:63506 +msgid "" +"Although it is not recommended to run an <acronym>AP</acronym> without any " +"authentication or encryption, this is a simple way to check if the " +"<acronym>AP</acronym> is working. This configuration is also important for " +"debugging client issues." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63512 +msgid "" +"Once the <acronym>AP</acronym> is configured, initiate a scan from another " +"wireless machine to find the <acronym>AP</acronym>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:63516 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>ath0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> up scan</userinput>\n" +"SSID/MESH ID BSSID CHAN RATE S:N INT CAPS\n" +"freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WME" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63521 +msgid "" +"The client machine found the <acronym>AP</acronym> and can be associated " +"with it:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:63524 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> inet <replaceable>192.168.0.2</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>freebsdap</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable></userinput>\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:d5:43:62\n" +"\t inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g\n" +"\t status: associated\n" +"\t ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7\n" +"\t scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7\n" +"\t roam:rate 5 protmode CTS wme burst" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:63538 +msgid "<acronym>WPA2</acronym> Host-based Access Point" +msgstr "<acronym>WPA2</acronym> Host-based 存取點" + +#. (itstool) path: sect3/para +#: book.translate.xml:63540 +msgid "" +"This section focuses on setting up a FreeBSD access point using the " +"<acronym>WPA2</acronym> security protocol. More details regarding " +"<acronym>WPA</acronym> and the configuration of <acronym>WPA</acronym>-based " +"wireless clients can be found in <xref linkend=\"network-wireless-wpa\"/>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63547 +msgid "" +"The <citerefentry><refentrytitle>hostapd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> daemon is used to deal with client authentication " +"and key management on the <acronym>WPA2</acronym>-enabled <acronym>AP</" +"acronym>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63552 +msgid "" +"The following configuration operations are performed on the FreeBSD machine " +"acting as the <acronym>AP</acronym>. Once the <acronym>AP</acronym> is " +"correctly working, <citerefentry><refentrytitle>hostapd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> can be automatically " +"started at boot with this line in <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:63559 +#, no-wrap +msgid "hostapd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63561 +msgid "" +"Before trying to configure <citerefentry><refentrytitle>hostapd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, first configure the " +"basic settings introduced in <xref linkend=\"network-wireless-ap-basic\"/>." +msgstr "" + +#. (itstool) path: sect4/title +#: book.translate.xml:63565 +msgid "<acronym>WPA2-PSK</acronym>" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:63567 +msgid "" +"<acronym>WPA2-PSK</acronym> is intended for small networks where the use of " +"a backend authentication server is not possible or desired." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:63571 +msgid "The configuration is done in <filename>/etc/hostapd.conf</filename>:" +msgstr "" + +#. (itstool) path: sect4/programlisting +#: book.translate.xml:63574 +#, no-wrap +msgid "" +"interface=wlan0 <co xml:id=\"co-ap-wpapsk-iface\"/>\n" +"debug=1 <co xml:id=\"co-ap-wpapsk-dbug\"/>\n" +"ctrl_interface=/var/run/hostapd <co xml:id=\"co-ap-wpapsk-ciface\"/>\n" +"ctrl_interface_group=wheel <co xml:id=\"co-ap-wpapsk-cifacegrp\"/>\n" +"ssid=freebsdap <co xml:id=\"co-ap-wpapsk-ssid\"/>\n" +"wpa=2 <co xml:id=\"co-ap-wpapsk-wpa\"/>\n" +"wpa_passphrase=freebsdmall <co xml:id=\"co-ap-wpapsk-pass\"/>\n" +"wpa_key_mgmt=WPA-PSK <co xml:id=\"co-ap-wpapsk-kmgmt\"/>\n" +"wpa_pairwise=CCMP <co xml:id=\"co-ap-wpapsk-pwise\"/>" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63586 +msgid "Wireless interface used for the access point." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63591 +msgid "" +"Level of verbosity used during the execution of " +"<citerefentry><refentrytitle>hostapd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. A value of <literal>1</literal> represents the " +"minimal level." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63598 +msgid "" +"Pathname of the directory used by <citerefentry><refentrytitle>hostapd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to store domain socket " +"files for communication with external programs such as " +"<citerefentry><refentrytitle>hostapd_cli</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. The default value is used in this example." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63605 +msgid "The group allowed to access the control interface files." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63610 +msgid "" +"The wireless network name, or <acronym>SSID</acronym>, that will appear in " +"wireless scans." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63616 +msgid "" +"Enable <acronym>WPA</acronym> and specify which <acronym>WPA</acronym> " +"authentication protocol will be required. A value of <literal>2</literal> " +"configures the <acronym>AP</acronym> for <acronym>WPA2</acronym> and is " +"recommended. Set to <literal>1</literal> only if the obsolete <acronym>WPA</" +"acronym> is required." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63627 +msgid "ASCII passphrase for <acronym>WPA</acronym> authentication." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:63631 +msgid "" +"Always use strong passwords that are at least 8 characters long and made " +"from a rich alphabet so that they will not be easily guessed or attacked." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63639 +msgid "" +"The key management protocol to use. This example sets <acronym>WPA-PSK</" +"acronym>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:63645 +msgid "" +"Encryption algorithms accepted by the access point. In this example, only " +"the <acronym>CCMP</acronym> (<acronym>AES</acronym>) cipher is accepted. " +"<acronym>CCMP</acronym> is an alternative to <acronym>TKIP</acronym> and is " +"strongly preferred when possible. <acronym>TKIP</acronym> should be allowed " +"only when there are stations incapable of using <acronym>CCMP</acronym>." +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:63658 +msgid "" +"The next step is to start <citerefentry><refentrytitle>hostapd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:63660 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service hostapd forcestart</userinput>" +msgstr "" + +#. (itstool) path: sect4/screen +#: book.translate.xml:63662 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable></userinput>\n" +"wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\tether 04:f0:21:16:8e:10\n" +"\tinet6 fe80::6f0:21ff:fe16:8e10%wlan0 prefixlen 64 scopeid 0x9\n" +"\tnd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>\n" +"\tmedia: IEEE 802.11 Wireless Ethernet autoselect mode 11na <hostap>\n" +"\tstatus: running\n" +"\tssid No5ignal channel 36 (5180 MHz 11a ht/40+) bssid 04:f0:21:16:8e:10\n" +"\tcountry US ecm authmode WPA2/802.11i privacy MIXED deftxkey 2\n" +"\tAES-CCM 2:128-bit AES-CCM 3:128-bit txpower 17 mcastrate 6 mgmtrate 6\n" +"\tscanvalid 60 ampdulimit 64k ampdudensity 8 shortgi wme burst\n" +"\tdtimperiod 1 -dfs\n" +"\tgroups: wlan" +msgstr "" + +#. (itstool) path: sect4/para +#: book.translate.xml:63676 +msgid "" +"Once the <acronym>AP</acronym> is running, the clients can associate with " +"it. See <xref linkend=\"network-wireless-wpa\"/> for more details. It is " +"possible to see the stations associated with the <acronym>AP</acronym> using " +"<command>ifconfig <replaceable>wlan0</replaceable> list sta</command>." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:63686 +msgid "<acronym>WEP</acronym> Host-based Access Point" +msgstr "<acronym>WEP</acronym> Host-based 存取點" + +#. (itstool) path: sect3/para +#: book.translate.xml:63688 +msgid "" +"It is not recommended to use <acronym>WEP</acronym> for setting up an " +"<acronym>AP</acronym> since there is no authentication mechanism and the " +"encryption is easily cracked. Some legacy wireless cards only support " +"<acronym>WEP</acronym> and these cards will only support an <acronym>AP</" +"acronym> without authentication or encryption." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63696 +msgid "" +"The wireless device can now be put into hostap mode and configured with the " +"correct <acronym>SSID</acronym> and <acronym>IP</acronym> address:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:63700 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>ath0</replaceable> wlanmode hostap</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> inet <replaceable>192.168.0.1</replaceable> netmask <replaceable>255.255.255.0</replaceable> \\\n" +"\tssid <replaceable>freebsdap</replaceable> wepmode on weptxkey <replaceable>3</replaceable> wepkey <replaceable>3:0x3456789012</replaceable> mode 11g</userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63706 +msgid "" +"The <literal>weptxkey</literal> indicates which <acronym>WEP</acronym> key " +"will be used in the transmission. This example uses the third key as key " +"numbering starts with <literal>1</literal>. This parameter must be specified " +"in order to encrypt the data." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63715 +msgid "" +"The <literal>wepkey</literal> sets the selected <acronym>WEP</acronym> key. " +"It should be in the format <replaceable>index:key</replaceable>. If the " +"index is not given, key <literal>1</literal> is set. The index needs to be " +"set when using keys other than the first key." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63724 +msgid "" +"Use <citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> to see the status of the <filename>wlan0</" +"filename> interface:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:63727 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable></userinput>\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:c3:0d:ac\n" +"\t inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>\n" +"\t status: running\n" +"\t ssid freebsdap channel 4 (2427 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit\n" +"\t txpower 21.5 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfs" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63737 +msgid "" +"From another wireless machine, it is now possible to initiate a scan to find " +"the <acronym>AP</acronym>:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:63740 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>ath0</replaceable></userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> up scan</userinput>\n" +"SSID BSSID CHAN RATE S:N INT CAPS\n" +"freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:63745 +msgid "" +"In this example, the client machine found the <acronym>AP</acronym> and can " +"associate with it using the correct parameters. See <xref linkend=\"network-" +"wireless-wep\"/> for more details." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:63752 +msgid "Using Both Wired and Wireless Connections" +msgstr "同時使用有線及無線連線" + +#. (itstool) path: sect2/para +#: book.translate.xml:63754 +msgid "" +"A wired connection provides better performance and reliability, while a " +"wireless connection provides flexibility and mobility. Laptop users " +"typically want to roam seamlessly between the two types of connections." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63759 +msgid "" +"On FreeBSD, it is possible to combine two or even more network interfaces " +"together in a <quote>failover</quote> fashion. This type of configuration " +"uses the most preferred and available connection from a group of network " +"interfaces, and the operating system switches automatically when the link " +"state changes." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63766 +msgid "" +"Link aggregation and failover is covered in <xref linkend=\"network-" +"aggregation\"/> and an example for using both wired and wireless connections " +"is provided at <xref linkend=\"networking-lagg-wired-and-wireless\"/>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63773 +msgid "" +"This section describes a number of steps to help troubleshoot common " +"wireless networking problems." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63779 +msgid "" +"If the access point is not listed when scanning, check that the " +"configuration has not limited the wireless device to a limited set of " +"channels." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63785 +msgid "" +"If the device cannot associate with an access point, verify that the " +"configuration matches the settings on the access point. This includes the " +"authentication scheme and any security protocols. Simplify the configuration " +"as much as possible. If using a security protocol such as <acronym>WPA</" +"acronym> or <acronym>WEP</acronym>, configure the access point for open " +"authentication and no security to see if traffic will pass." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63794 +msgid "" +"Debugging support is provided by " +"<citerefentry><refentrytitle>wpa_supplicant</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. Try running this utility manually with <option>-" +"dd</option> and look at the system logs." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63801 +msgid "" +"Once the system can associate with the access point, diagnose the network " +"configuration using tools like <citerefentry><refentrytitle>ping</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63807 +msgid "" +"There are many lower-level debugging tools. Debugging messages can be " +"enabled in the 802.11 protocol support layer using " +"<citerefentry><refentrytitle>wlandebug</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. For example, to enable console messages related " +"to scanning for access points and the 802.11 protocol handshakes required to " +"arrange communication:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:63814 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>wlandebug -i <replaceable>ath0</replaceable> +scan+auth+debug+assoc</userinput>\n" +" net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63817 +msgid "" +"Many useful statistics are maintained by the 802.11 layer and " +"<command>wlanstats</command>, found in <filename>/usr/src/tools/tools/" +"net80211</filename>, will dump this information. These statistics should " +"display all errors identified by the 802.11 layer. However, some errors are " +"identified in the device drivers that lie below the 802.11 layer so they may " +"not show up. To diagnose device-specific problems, refer to the drivers' " +"documentation." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63828 +msgid "" +"If the above information does not help to clarify the problem, submit a " +"problem report and include output from the above tools." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:63836 +msgid "USB Tethering" +msgstr "USB 網路共享" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:63839 +msgid "<primary>tether</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:63843 +msgid "" +"Many cellphones provide the option to share their data connection over USB " +"(often called \"tethering\"). This feature uses either the <acronym>RNDIS</" +"acronym>, <acronym>CDC</acronym> or a custom <trademark class=\"registered" +"\">Apple</trademark> <trademark class=\"registered\">iPhone</trademark>/" +"<trademark class=\"registered\">iPad</trademark> protocol." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63851 +msgid "" +"<trademark>Android</trademark> devices generally use the " +"<citerefentry><refentrytitle>urndis</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> driver." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63856 +msgid "" +"<trademark class=\"registered\">Apple</trademark> devices use the " +"<citerefentry><refentrytitle>ipheth</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> driver." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:63860 +msgid "" +"Older devices will often use the <citerefentry><refentrytitle>cdce</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> driver." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:63865 +msgid "Before attaching a device, load the appropriate driver into the kernel:" +msgstr "" + +#. (itstool) path: sect1/screen +#: book.translate.xml:63868 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>kldload if_urndis\n" +"<prompt>#</prompt> kldload if_cdce\n" +"<prompt>#</prompt> kldload if_ipheth</userinput>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:63872 +msgid "" +"Once the device is attached <literal>ue</literal><replaceable>0</" +"replaceable> will be available for use like a normal network device. Be sure " +"that the <quote>USB tethering</quote> option is enabled on the device." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:63881 +msgid "Bluetooth" +msgstr "藍牙" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:63884 +msgid "" +"<personname> <firstname>Pav</firstname> <surname>Lucistnik</surname> </" +"personname> <contrib>Written by </contrib> <email>pav@FreeBSD.org</email>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:63895 +msgid "<primary>Bluetooth</primary>" +msgstr "<primary>藍牙</primary>" + +#. (itstool) path: sect1/para +#: book.translate.xml:63899 +msgid "" +"Bluetooth is a wireless technology for creating personal networks operating " +"in the 2.4 GHz unlicensed band, with a range of 10 meters. Networks are " +"usually formed ad-hoc from portable devices such as cellular phones, " +"handhelds, and laptops. Unlike Wi-Fi wireless technology, Bluetooth offers " +"higher level service profiles, such as <acronym>FTP</acronym>-like file " +"servers, file pushing, voice transport, serial line emulation, and more." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:63908 +msgid "" +"This section describes the use of a <acronym>USB</acronym> Bluetooth dongle " +"on a FreeBSD system. It then describes the various Bluetooth protocols and " +"utilities." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:63913 +msgid "Loading Bluetooth Support" +msgstr "載入藍牙支援" + +#. (itstool) path: sect2/para +#: book.translate.xml:63915 +msgid "" +"The Bluetooth stack in FreeBSD is implemented using the " +"<citerefentry><refentrytitle>netgraph</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> framework. A broad variety of Bluetooth " +"<acronym>USB</acronym> dongles is supported by " +"<citerefentry><refentrytitle>ng_ubt</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>. Broadcom BCM2033 based Bluetooth devices are supported by the " +"<citerefentry><refentrytitle>ubtbcmfw</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> and <citerefentry><refentrytitle>ng_ubt</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> drivers. The 3Com " +"Bluetooth PC Card 3CRWB60-A is supported by the " +"<citerefentry><refentrytitle>ng_bt3c</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> driver. Serial and UART based Bluetooth devices " +"are supported by <citerefentry><refentrytitle>sio</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, " +"<citerefentry><refentrytitle>ng_h4</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>, and <citerefentry><refentrytitle>hcseriald</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63925 +msgid "" +"Before attaching a device, determine which of the above drivers it uses, " +"then load the driver. For example, if the device uses the " +"<citerefentry><refentrytitle>ng_ubt</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> driver:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:63929 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload ng_ubt</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63931 +msgid "" +"If the Bluetooth device will be attached to the system during system " +"startup, the system can be configured to load the module at boot time by " +"adding the driver to <filename>/boot/loader.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:63936 +#, no-wrap +msgid "ng_ubt_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63938 +msgid "" +"Once the driver is loaded, plug in the <acronym>USB</acronym> dongle. If the " +"driver load was successful, output similar to the following should appear on " +"the console and in <filename>/var/log/messages</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:63944 +#, no-wrap +msgid "" +"ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2\n" +"ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2\n" +"ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,\n" +" wMaxPacketSize=49, nframes=6, buffer size=294" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63949 +msgid "" +"To start and stop the Bluetooth stack, use its startup script. It is a good " +"idea to stop the stack before unplugging the device. When starting the " +"stack, the output should be similar to the following:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:63954 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>service bluetooth start ubt0</userinput>\n" +"BD_ADDR: 00:02:72:00:d4:1a\n" +"Features: 0xff 0xff 0xf 00 00 00 00 00\n" +"<3-Slot> <5-Slot> <Encryption> <Slot offset>\n" +"<Timing accuracy> <Switch> <Hold mode> <Sniff mode>\n" +"<Park mode> <RSSI> <Channel quality> <SCO link>\n" +"<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>\n" +"<Paging scheme> <Power control> <Transparent SCO data>\n" +"Max. ACL packet size: 192 bytes\n" +"Number of ACL packets: 8\n" +"Max. SCO packet size: 64 bytes\n" +"Number of SCO packets: 8" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:63969 +msgid "Finding Other Bluetooth Devices" +msgstr "尋找其他藍牙裝置" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:63971 +msgid "<primary>HCI</primary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63975 +msgid "" +"The Host Controller Interface (<acronym>HCI</acronym>) provides a uniform " +"method for accessing Bluetooth baseband capabilities. In FreeBSD, a netgraph " +"<acronym>HCI</acronym> node is created for each Bluetooth device. For more " +"details, refer to <citerefentry><refentrytitle>ng_hci</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:63981 +msgid "" +"One of the most common tasks is discovery of Bluetooth devices within " +"<acronym>RF</acronym> proximity. This operation is called <emphasis>inquiry</" +"emphasis>. Inquiry and other <acronym>HCI</acronym> related operations are " +"done using <citerefentry><refentrytitle>hccontrol</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>. The example below " +"shows how to find out which Bluetooth devices are in range. The list of " +"devices should be displayed in a few seconds. Note that a remote device will " +"only answer the inquiry if it is set to <emphasis>discoverable</emphasis> " +"mode." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:63991 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>hccontrol -n ubt0hci inquiry</userinput>\n" +"Inquiry result, num_responses=1\n" +"Inquiry result #0\n" +" BD_ADDR: 00:80:37:29:19:a4\n" +" Page Scan Rep. Mode: 0x1\n" +" Page Scan Period Mode: 00\n" +" Page Scan Mode: 00\n" +" Class: 52:02:04\n" +" Clock offset: 0x78ef\n" +"Inquiry complete. Status: No error [00]" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64002 +msgid "" +"The <literal>BD_ADDR</literal> is the unique address of a Bluetooth device, " +"similar to the <acronym>MAC</acronym> address of a network card. This " +"address is needed for further communication with a device and it is possible " +"to assign a human readable name to a BD_ADDR. Information regarding the " +"known Bluetooth hosts is contained in <filename>/etc/bluetooth/hosts</" +"filename>. The following example shows how to obtain the human readable name " +"that was assigned to the remote device:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64012 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4</userinput>\n" +"BD_ADDR: 00:80:37:29:19:a4\n" +"Name: Pav's T39" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64016 +msgid "" +"If an inquiry is performed on a remote Bluetooth device, it will find the " +"computer as <quote>your.host.name (ubt0)</quote>. The name assigned to the " +"local device can be changed at any time." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64021 +msgid "" +"The Bluetooth system provides a point-to-point connection between two " +"Bluetooth units, or a point-to-multipoint connection which is shared among " +"several Bluetooth devices. The following example shows how to obtain the " +"list of active baseband connections for the local device:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64027 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>hccontrol -n ubt0hci read_connection_list</userinput>\n" +"Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State\n" +"00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64031 +msgid "" +"A <emphasis>connection handle</emphasis> is useful when termination of the " +"baseband connection is required, though it is normally not required to do " +"this by hand. The stack will automatically terminate inactive baseband " +"connections." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64037 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>hccontrol -n ubt0hci disconnect 41</userinput>\n" +"Connection handle: 41\n" +"Reason: Connection terminated by local host [0x16]" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64041 +msgid "" +"Type <command>hccontrol help</command> for a complete listing of available " +"<acronym>HCI</acronym> commands. Most of the <acronym>HCI</acronym> commands " +"do not require superuser privileges." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:64048 +msgid "Device Pairing" +msgstr "裝置配對" + +#. (itstool) path: sect2/para +#: book.translate.xml:64050 +msgid "" +"By default, Bluetooth communication is not authenticated, and any device can " +"talk to any other device. A Bluetooth device, such as a cellular phone, may " +"choose to require authentication to provide a particular service. Bluetooth " +"authentication is normally done with a <emphasis><acronym>PIN</acronym> " +"code</emphasis>, an ASCII string up to 16 characters in length. The user is " +"required to enter the same <acronym>PIN</acronym> code on both devices. Once " +"the user has entered the <acronym>PIN</acronym> code, both devices will " +"generate a <emphasis>link key</emphasis>. After that, the link key can be " +"stored either in the devices or in a persistent storage. Next time, both " +"devices will use the previously generated link key. This procedure is called " +"<emphasis>pairing</emphasis>. Note that if the link key is lost by either " +"device, the pairing must be repeated." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64067 +msgid "" +"The <citerefentry><refentrytitle>hcsecd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> daemon is responsible for handling Bluetooth " +"authentication requests. The default configuration file is <filename>/etc/" +"bluetooth/hcsecd.conf</filename>. An example section for a cellular phone " +"with the <acronym>PIN</acronym> code set to <literal>1234</literal> is shown " +"below:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:64074 +#, no-wrap +msgid "" +"device {\n" +" bdaddr 00:80:37:29:19:a4;\n" +" name \"Pav's T39\";\n" +" key nokey;\n" +" pin \"1234\";\n" +" }" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64081 +msgid "" +"The only limitation on <acronym>PIN</acronym> codes is length. Some devices, " +"such as Bluetooth headsets, may have a fixed <acronym>PIN</acronym> code " +"built in. The <option>-d</option> switch forces " +"<citerefentry><refentrytitle>hcsecd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to stay in the foreground, so it is easy to see what is " +"happening. Set the remote device to receive pairing and initiate the " +"Bluetooth connection to the remote device. The remote device should indicate " +"that pairing was accepted and request the <acronym>PIN</acronym> code. Enter " +"the same <acronym>PIN</acronym> code listed in <filename>hcsecd.conf</" +"filename>. Now the computer and the remote device are paired. Alternatively, " +"pairing can be initiated on the remote device." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64095 +msgid "" +"The following line can be added to <filename>/etc/rc.conf</filename> to " +"configure <citerefentry><refentrytitle>hcsecd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> to start automatically on system start:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:64099 +#, no-wrap +msgid "hcsecd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64101 +msgid "" +"The following is a sample of the <citerefentry><refentrytitle>hcsecd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> daemon output:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:64104 +#, no-wrap +msgid "" +"hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4\n" +"hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist\n" +"hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4\n" +"hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4\n" +"hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists\n" +"hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:64113 +msgid "Network Access with <acronym>PPP</acronym> Profiles" +msgstr "使用 <acronym>PPP</acronym> Profile 存取網路 " + +#. (itstool) path: sect2/para +#: book.translate.xml:64116 +msgid "" +"A Dial-Up Networking (<acronym>DUN</acronym>) profile can be used to " +"configure a cellular phone as a wireless modem for connecting to a dial-up " +"Internet access server. It can also be used to configure a computer to " +"receive data calls from a cellular phone." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64122 +msgid "" +"Network access with a <acronym>PPP</acronym> profile can be used to provide " +"<acronym>LAN</acronym> access for a single Bluetooth device or multiple " +"Bluetooth devices. It can also provide <acronym>PC</acronym> to <acronym>PC</" +"acronym> connection using <acronym>PPP</acronym> networking over serial " +"cable emulation." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64129 +msgid "" +"In FreeBSD, these profiles are implemented with " +"<citerefentry><refentrytitle>ppp</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> and the <citerefentry><refentrytitle>rfcomm_pppd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> wrapper which converts " +"a Bluetooth connection into something <acronym>PPP</acronym> can use. Before " +"a profile can be used, a new <acronym>PPP</acronym> label must be created in " +"<filename>/etc/ppp/ppp.conf</filename>. Consult " +"<citerefentry><refentrytitle>rfcomm_pppd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for examples." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64137 +msgid "" +"In this example, <citerefentry><refentrytitle>rfcomm_pppd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> is used to open a " +"connection to a remote device with a <literal>BD_ADDR</literal> of " +"<literal>00:80:37:29:19:a4</literal> on a <acronym>DUN</acronym> " +"<acronym>RFCOMM</acronym> channel:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64144 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64146 +msgid "" +"The actual channel number will be obtained from the remote device using the " +"<acronym>SDP</acronym> protocol. It is possible to specify the " +"<acronym>RFCOMM</acronym> channel by hand, and in this case " +"<citerefentry><refentrytitle>rfcomm_pppd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> will not perform the <acronym>SDP</acronym> query. " +"Use <citerefentry><refentrytitle>sdpcontrol</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> to find out the <acronym>RFCOMM</acronym> channel " +"on the remote device." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64154 +msgid "" +"In order to provide network access with the <acronym>PPP</acronym> " +"<acronym>LAN</acronym> service, <citerefentry><refentrytitle>sdpd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> must be running and a " +"new entry for <acronym>LAN</acronym> clients must be created in <filename>/" +"etc/ppp/ppp.conf</filename>. Consult " +"<citerefentry><refentrytitle>rfcomm_pppd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for examples. Finally, start the <acronym>RFCOMM</" +"acronym> <acronym>PPP</acronym> server on a valid <acronym>RFCOMM</acronym> " +"channel number. The <acronym>RFCOMM</acronym> <acronym>PPP</acronym> server " +"will automatically register the Bluetooth <acronym>LAN</acronym> service " +"with the local <acronym>SDP</acronym> daemon. The example below shows how to " +"start the <acronym>RFCOMM</acronym> <acronym>PPP</acronym> server." +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64168 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>rfcomm_pppd -s -C 7 -l rfcomm-server</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:64172 +msgid "Bluetooth Protocols" +msgstr "藍牙通訊協定" + +#. (itstool) path: sect2/para +#: book.translate.xml:64174 +msgid "" +"This section provides an overview of the various Bluetooth protocols, their " +"function, and associated utilities." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:64178 +msgid "Logical Link Control and Adaptation Protocol (<acronym>L2CAP</acronym>)" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:64181 +msgid "<primary>L2CAP</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64185 +msgid "" +"The Logical Link Control and Adaptation Protocol (<acronym>L2CAP</acronym>) " +"provides connection-oriented and connectionless data services to upper layer " +"protocols. <acronym>L2CAP</acronym> permits higher level protocols and " +"applications to transmit and receive <acronym>L2CAP</acronym> data packets " +"up to 64 kilobytes in length." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64193 +msgid "" +"<acronym>L2CAP</acronym> is based around the concept of <emphasis>channels</" +"emphasis>. A channel is a logical connection on top of a baseband " +"connection, where each channel is bound to a single protocol in a many-to-" +"one fashion. Multiple channels can be bound to the same protocol, but a " +"channel cannot be bound to multiple protocols. Each <acronym>L2CAP</acronym> " +"packet received on a channel is directed to the appropriate higher level " +"protocol. Multiple channels can share the same baseband connection." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64204 +msgid "" +"In FreeBSD, a netgraph <acronym>L2CAP</acronym> node is created for each " +"Bluetooth device. This node is normally connected to the downstream " +"Bluetooth <acronym>HCI</acronym> node and upstream Bluetooth socket nodes. " +"The default name for the <acronym>L2CAP</acronym> node is " +"<quote>devicel2cap</quote>. For more details refer to " +"<citerefentry><refentrytitle>ng_l2cap</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64212 +msgid "" +"A useful command is <citerefentry><refentrytitle>l2ping</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry>, which can be used to " +"ping other devices. Some Bluetooth implementations might not return all of " +"the data sent to them, so <literal>0 bytes</literal> in the following " +"example is normal." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64217 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>l2ping -a 00:80:37:29:19:a4</userinput>\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64223 +msgid "" +"The <citerefentry><refentrytitle>l2control</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> utility is used to perform various operations on " +"<acronym>L2CAP</acronym> nodes. This example shows how to obtain the list of " +"logical connections (channels) and the list of baseband connections for the " +"local device:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64229 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>l2control -a 00:02:72:00:d4:1a read_channel_list</userinput>\n" +"L2CAP channels:\n" +"Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State\n" +"00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN\n" +"<prompt>%</prompt> <userinput>l2control -a 00:02:72:00:d4:1a read_connection_list</userinput>\n" +"L2CAP connections:\n" +"Remote BD_ADDR Handle Flags Pending State\n" +"00:07:e0:00:0b:ca 41 O 0 OPEN" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64238 +msgid "" +"Another diagnostic tool is <citerefentry><refentrytitle>btsockstat</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry>. It is similar to " +"<citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>, but for Bluetooth network-related data " +"structures. The example below shows the same logical connection as " +"<citerefentry><refentrytitle>l2control</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> above." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64244 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>btsockstat</userinput>\n" +"Active L2CAP sockets\n" +"PCB Recv-Q Send-Q Local address/PSM Foreign address CID State\n" +"c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN\n" +"Active RFCOMM sessions\n" +"L2PCB PCB Flag MTU Out-Q DLCs State\n" +"c2afe900 c2b53380 1 127 0 Yes OPEN\n" +"Active RFCOMM sockets\n" +"PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State\n" +"c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:64257 +msgid "Radio Frequency Communication (<acronym>RFCOMM</acronym>)" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64260 +msgid "" +"The <acronym>RFCOMM</acronym> protocol provides emulation of serial ports " +"over the <acronym>L2CAP</acronym> protocol. <acronym>RFCOMM</acronym> is a " +"simple transport protocol, with additional provisions for emulating the 9 " +"circuits of RS-232 (EIATIA-232-E) serial ports. It supports up to 60 " +"simultaneous connections (<acronym>RFCOMM</acronym> channels) between two " +"Bluetooth devices." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64269 +msgid "" +"For the purposes of <acronym>RFCOMM</acronym>, a complete communication path " +"involves two applications running on the communication endpoints with a " +"communication segment between them. <acronym>RFCOMM</acronym> is intended to " +"cover applications that make use of the serial ports of the devices in which " +"they reside. The communication segment is a direct connect Bluetooth link " +"from one device to another." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64278 +msgid "" +"<acronym>RFCOMM</acronym> is only concerned with the connection between the " +"devices in the direct connect case, or between the device and a modem in the " +"network case. <acronym>RFCOMM</acronym> can support other configurations, " +"such as modules that communicate via Bluetooth wireless technology on one " +"side and provide a wired interface on the other side." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64286 +msgid "" +"In FreeBSD, <acronym>RFCOMM</acronym> is implemented at the Bluetooth " +"sockets layer." +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:64291 +msgid "Service Discovery Protocol (<acronym>SDP</acronym>)" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:64294 +msgid "<primary>SDP</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64298 +msgid "" +"The Service Discovery Protocol (<acronym>SDP</acronym>) provides the means " +"for client applications to discover the existence of services provided by " +"server applications as well as the attributes of those services. The " +"attributes of a service include the type or class of service offered and the " +"mechanism or protocol information needed to utilize the service." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64306 +msgid "" +"<acronym>SDP</acronym> involves communication between a <acronym>SDP</" +"acronym> server and a <acronym>SDP</acronym> client. The server maintains a " +"list of service records that describe the characteristics of services " +"associated with the server. Each service record contains information about a " +"single service. A client may retrieve information from a service record " +"maintained by the <acronym>SDP</acronym> server by issuing a <acronym>SDP</" +"acronym> request. If the client, or an application associated with the " +"client, decides to use a service, it must open a separate connection to the " +"service provider in order to utilize the service. <acronym>SDP</acronym> " +"provides a mechanism for discovering services and their attributes, but it " +"does not provide a mechanism for utilizing those services." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64321 +msgid "" +"Normally, a <acronym>SDP</acronym> client searches for services based on " +"some desired characteristics of the services. However, there are times when " +"it is desirable to discover which types of services are described by an " +"<acronym>SDP</acronym> server's service records without any prior " +"information about the services. This process of looking for any offered " +"services is called <emphasis>browsing</emphasis>." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64330 +msgid "" +"The Bluetooth <acronym>SDP</acronym> server, " +"<citerefentry><refentrytitle>sdpd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>, and command line client, " +"<citerefentry><refentrytitle>sdpcontrol</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, are included in the standard FreeBSD " +"installation. The following example shows how to perform a <acronym>SDP</" +"acronym> browse query." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64336 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>sdpcontrol -a 00:01:03:fc:6e:ec browse</userinput>\n" +"Record Handle: 00000000\n" +"Service Class ID List:\n" +" Service Discovery Server (0x1000)\n" +"Protocol Descriptor List:\n" +" L2CAP (0x0100)\n" +" Protocol specific parameter #1: u/int/uuid16 1\n" +" Protocol specific parameter #2: u/int/uuid16 1\n" +"\n" +"Record Handle: 0x00000001\n" +"Service Class ID List:\n" +" Browse Group Descriptor (0x1001)\n" +"\n" +"Record Handle: 0x00000002\n" +"Service Class ID List:\n" +" LAN Access Using PPP (0x1102)\n" +"Protocol Descriptor List:\n" +" L2CAP (0x0100)\n" +" RFCOMM (0x0003)\n" +" Protocol specific parameter #1: u/int8/bool 1\n" +"Bluetooth Profile Descriptor List:\n" +" LAN Access Using PPP (0x1102) ver. 1.0" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64359 +msgid "" +"Note that each service has a list of attributes, such as the " +"<acronym>RFCOMM</acronym> channel. Depending on the service, the user might " +"need to make note of some of the attributes. Some Bluetooth implementations " +"do not support service browsing and may return an empty list. In this case, " +"it is possible to search for the specific service. The example below shows " +"how to search for the <acronym>OBEX</acronym> Object Push (<acronym>OPUSH</" +"acronym>) service:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64369 +#, no-wrap +msgid "<prompt>%</prompt> <userinput>sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64371 +msgid "" +"Offering services on FreeBSD to Bluetooth clients is done with the " +"<citerefentry><refentrytitle>sdpd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> server. The following line can be added to <filename>/etc/rc." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:64375 +#, no-wrap +msgid "sdpd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64377 +msgid "" +"Then the <citerefentry><refentrytitle>sdpd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> daemon can be started with:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64379 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service sdpd start</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64381 +msgid "" +"The local server application that wants to provide a Bluetooth service to " +"remote clients will register the service with the local <acronym>SDP</" +"acronym> daemon. An example of such an application is " +"<citerefentry><refentrytitle>rfcomm_pppd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. Once started, it will register the Bluetooth LAN " +"service with the local <acronym>SDP</acronym> daemon." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64388 +msgid "" +"The list of services registered with the local <acronym>SDP</acronym> server " +"can be obtained by issuing a <acronym>SDP</acronym> browse query via the " +"local control channel:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64393 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>sdpcontrol -l browse</userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:64397 +msgid "<acronym>OBEX</acronym> Object Push (<acronym>OPUSH</acronym>)" +msgstr "" + +#. (itstool) path: sect3/indexterm +#: book.translate.xml:64400 +msgid "<primary>OBEX</primary>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64404 +msgid "" +"Object Exchange (<acronym>OBEX</acronym>) is a widely used protocol for " +"simple file transfers between mobile devices. Its main use is in infrared " +"communication, where it is used for generic file transfers between notebooks " +"or <acronym>PDA</acronym>s, and for sending business cards or calendar " +"entries between cellular phones and other devices with Personal Information " +"Manager (<acronym>PIM</acronym>) applications." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64413 +msgid "" +"The <acronym>OBEX</acronym> server and client are implemented by " +"<application>obexapp</application>, which can be installed using the " +"<package>comms/obexapp</package> package or port." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64418 +msgid "" +"The <acronym>OBEX</acronym> client is used to push and/or pull objects from " +"the <acronym>OBEX</acronym> server. An example object is a business card or " +"an appointment. The <acronym>OBEX</acronym> client can obtain the " +"<acronym>RFCOMM</acronym> channel number from the remote device via " +"<acronym>SDP</acronym>. This can be done by specifying the service name " +"instead of the <acronym>RFCOMM</acronym> channel number. Supported service " +"names are: <literal>IrMC</literal>, <literal>FTRN</literal>, and " +"<literal>OPUSH</literal>. It is also possible to specify the " +"<acronym>RFCOMM</acronym> channel as a number. Below is an example of an " +"<acronym>OBEX</acronym> session where the device information object is " +"pulled from the cellular phone, and a new object, the business card, is " +"pushed into the phone's directory." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64434 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>obexapp -a 00:80:37:29:19:a4 -C IrMC</userinput>\n" +"obex> get telecom/devinfo.txt devinfo-t39.txt\n" +"Success, response: OK, Success (0x20)\n" +"obex> put new.vcf\n" +"Success, response: OK, Success (0x20)\n" +"obex> di\n" +"Success, response: OK, Success (0x20)" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64442 +msgid "" +"In order to provide the <acronym>OPUSH</acronym> service, " +"<citerefentry><refentrytitle>sdpd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> must be running and a root folder, where all incoming objects " +"will be stored, must be created. The default path to the root folder is " +"<filename>/var/spool/obex</filename>. Finally, start the <acronym>OBEX</" +"acronym> server on a valid <acronym>RFCOMM</acronym> channel number. The " +"<acronym>OBEX</acronym> server will automatically register the " +"<acronym>OPUSH</acronym> service with the local <acronym>SDP</acronym> " +"daemon. The example below shows how to start the <acronym>OBEX</acronym> " +"server." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64454 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>obexapp -s -C 10</userinput>" +msgstr "" + +#. (itstool) path: sect3/title +#: book.translate.xml:64458 +msgid "Serial Port Profile (<acronym>SPP</acronym>)" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64460 +msgid "" +"The Serial Port Profile (<acronym>SPP</acronym>) allows Bluetooth devices to " +"perform serial cable emulation. This profile allows legacy applications to " +"use Bluetooth as a cable replacement, through a virtual serial port " +"abstraction." +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64466 +msgid "" +"In FreeBSD, <citerefentry><refentrytitle>rfcomm_sppd</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> implements " +"<acronym>SPP</acronym> and a pseudo tty is used as a virtual serial port " +"abstraction. The example below shows how to connect to a remote device's " +"serial port service. A <acronym>RFCOMM</acronym> channel does not have to be " +"specified as <citerefentry><refentrytitle>rfcomm_sppd</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> can obtain it from the " +"remote device via <acronym>SDP</acronym>. To override this, specify a " +"<acronym>RFCOMM</acronym> channel on the command line." +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64476 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>rfcomm_sppd -a 00:07:E0:00:0B:CA -t</userinput>\n" +"rfcomm_sppd[94692]: Starting on /dev/pts/6...\n" +"/dev/pts/6" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64480 +msgid "Once connected, the pseudo tty can be used as serial port:" +msgstr "" + +#. (itstool) path: sect3/screen +#: book.translate.xml:64483 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>cu -l /dev/pts/6</userinput>" +msgstr "" + +#. (itstool) path: sect3/para +#: book.translate.xml:64485 +msgid "The pseudo tty is printed on stdout and can be read by wrapper scripts:" +msgstr "" + +#. (itstool) path: sect3/programlisting +#: book.translate.xml:64488 +#, no-wrap +msgid "" +"PTS=`rfcomm_sppd -a 00:07:E0:00:0B:CA -t`\n" +"cu -l $PTS" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64496 +msgid "" +"By default, when FreeBSD is accepting a new connection, it tries to perform " +"a role switch and become master. Some older Bluetooth devices which do not " +"support role switching will not be able to connect. Since role switching is " +"performed when a new connection is being established, it is not possible to " +"ask the remote device if it supports role switching. However, there is a " +"<acronym>HCI</acronym> option to disable role switching on the local side:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64505 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>hccontrol -n ubt0hci write_node_role_switch 0</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64507 +msgid "" +"To display Bluetooth packets, use the third-party package " +"<application>hcidump</application>, which can be installed using the " +"<package>comms/hcidump</package> package or port. This utility is similar to " +"<citerefentry><refentrytitle>tcpdump</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> and can be used to display the contents of " +"Bluetooth packets on the terminal and to dump the Bluetooth packets to a " +"file." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:64518 +msgid "Bridging" +msgstr "橋接" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:64521 book.translate.xml:64982 +msgid "" +"<personname> <firstname>Andrew</firstname> <surname>Thompson</surname> </" +"personname> <contrib>Written by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:64531 +msgid "<primary><acronym>IP</acronym> subnet</primary>" +msgstr "<primary><acronym>IP</acronym> 子網段</primary>" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:64534 +msgid "<primary>bridge</primary>" +msgstr "<primary>橋接</primary>" + +#. (itstool) path: sect1/para +#: book.translate.xml:64538 +msgid "" +"It is sometimes useful to divide a network, such as an Ethernet segment, " +"into network segments without having to create <acronym>IP</acronym> subnets " +"and use a router to connect the segments together. A device that connects " +"two networks together in this fashion is called a <quote>bridge</quote>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:64545 +msgid "" +"A bridge works by learning the <acronym>MAC</acronym> addresses of the " +"devices on each of its network interfaces. It forwards traffic between " +"networks only when the source and destination <acronym>MAC</acronym> " +"addresses are on different networks. In many respects, a bridge is like an " +"Ethernet switch with very few ports. A FreeBSD system with multiple network " +"interfaces can be configured to act as a bridge." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:64553 +msgid "Bridging can be useful in the following situations:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:64557 +msgid "Connecting Networks" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64559 +msgid "" +"The basic operation of a bridge is to join two or more network segments. " +"There are many reasons to use a host-based bridge instead of networking " +"equipment, such as cabling constraints or firewalling. A bridge can also " +"connect a wireless interface running in hostap mode to a wired network and " +"act as an access point." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:64569 +msgid "Filtering/Traffic Shaping Firewall" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64571 +msgid "" +"A bridge can be used when firewall functionality is needed without routing " +"or Network Address Translation (<acronym>NAT</acronym>)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64575 +msgid "" +"An example is a small company that is connected via <acronym>DSL</acronym> " +"or <acronym>ISDN</acronym> to an <acronym>ISP</acronym>. There are thirteen " +"public <acronym>IP</acronym> addresses from the <acronym>ISP</acronym> and " +"ten computers on the network. In this situation, using a router-based " +"firewall is difficult because of subnetting issues. A bridge-based firewall " +"can be configured without any <acronym>IP</acronym> addressing issues." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:64588 +msgid "Network Tap" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64590 +msgid "" +"A bridge can join two network segments in order to inspect all Ethernet " +"frames that pass between them using <citerefentry><refentrytitle>bpf</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>tcpdump</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> on the bridge interface or by sending a copy of " +"all frames out an additional interface known as a span port." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:64599 +msgid "Layer 2 <acronym>VPN</acronym>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64601 +msgid "" +"Two Ethernet networks can be joined across an <acronym>IP</acronym> link by " +"bridging the networks to an EtherIP tunnel or a " +"<citerefentry><refentrytitle>tap</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> based solution such as <application>OpenVPN</application>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:64609 +msgid "Layer 2 Redundancy" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64611 +msgid "" +"A network can be connected together with multiple links and use the Spanning " +"Tree Protocol (<acronym>STP</acronym>) to block redundant paths." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:64618 +msgid "" +"This section describes how to configure a FreeBSD system as a bridge using " +"<citerefentry><refentrytitle>if_bridge</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry>. A netgraph bridging driver is also available, and " +"is described in <citerefentry><refentrytitle>ng_bridge</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:64623 +msgid "" +"Packet filtering can be used with any firewall package that hooks into the " +"<citerefentry><refentrytitle>pfil</refentrytitle><manvolnum>9</manvolnum></" +"citerefentry> framework. The bridge can be used as a traffic shaper with " +"<citerefentry><refentrytitle>altq</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> or <citerefentry><refentrytitle>dummynet</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:64630 +msgid "Enabling the Bridge" +msgstr "開啟橋接" + +#. (itstool) path: sect2/para +#: book.translate.xml:64632 +msgid "" +"In FreeBSD, <citerefentry><refentrytitle>if_bridge</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> is a kernel module " +"which is automatically loaded by <citerefentry><refentrytitle>ifconfig</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> when creating a bridge " +"interface. It is also possible to compile bridge support into a custom " +"kernel by adding <literal>device if_bridge</literal> to the custom kernel " +"configuration file." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64639 +msgid "" +"The bridge is created using interface cloning. To create the bridge " +"interface:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64642 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig bridge create</userinput>\n" +"bridge0\n" +"<prompt>#</prompt> <userinput>ifconfig bridge0</userinput>\n" +"bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" ether 96:3d:4b:f1:79:7a\n" +" id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15\n" +" maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200\n" +" root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64651 +msgid "" +"When a bridge interface is created, it is automatically assigned a randomly " +"generated Ethernet address. The <literal>maxaddr</literal> and " +"<literal>timeout</literal> parameters control how many <acronym>MAC</" +"acronym> addresses the bridge will keep in its forwarding table and how many " +"seconds before each entry is removed after it is last seen. The other " +"parameters control how <acronym>STP</acronym> operates." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64660 +msgid "" +"Next, specify which network interfaces to add as members of the bridge. For " +"the bridge to forward packets, all member interfaces and the bridge need to " +"be up:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64664 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig bridge0 addm fxp0 addm fxp1 up</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig fxp0 up</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig fxp1 up</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64668 +msgid "" +"The bridge can now forward Ethernet frames between <filename>fxp0</filename> " +"and <filename>fxp1</filename>. Add the following lines to <filename>/etc/rc." +"conf</filename> so the bridge is created at startup:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:64673 +#, no-wrap +msgid "" +"cloned_interfaces=\"bridge0\"\n" +"ifconfig_bridge0=\"addm fxp0 addm fxp1 up\"\n" +"ifconfig_fxp0=\"up\"\n" +"ifconfig_fxp1=\"up\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64678 +msgid "" +"If the bridge host needs an <acronym>IP</acronym> address, set it on the " +"bridge interface, not on the member interfaces. The address can be set " +"statically or via <acronym>DHCP</acronym>. This example sets a static " +"<acronym>IP</acronym> address:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64684 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig bridge0 inet 192.168.0.1/24</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64686 +msgid "" +"It is also possible to assign an <acronym>IPv6</acronym> address to a bridge " +"interface. To make the changes permanent, add the addressing information to " +"<filename>/etc/rc.conf</filename>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:64692 +msgid "" +"When packet filtering is enabled, bridged packets will pass through the " +"filter inbound on the originating interface on the bridge interface, and " +"outbound on the appropriate interfaces. Either stage can be disabled. When " +"direction of the packet flow is important, it is best to firewall on the " +"member interfaces rather than the bridge itself." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:64699 +msgid "" +"The bridge has several configurable settings for passing non-<acronym>IP</" +"acronym> and <acronym>IP</acronym> packets, and layer2 firewalling with " +"<citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>. See <citerefentry><refentrytitle>if_bridge</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:64707 +msgid "Enabling Spanning Tree" +msgstr "開啟 Spanning Tree" + +#. (itstool) path: sect2/para +#: book.translate.xml:64709 +msgid "" +"For an Ethernet network to function properly, only one active path can exist " +"between two devices. The <acronym>STP</acronym> protocol detects loops and " +"puts redundant links into a blocked state. Should one of the active links " +"fail, <acronym>STP</acronym> calculates a different tree and enables one of " +"the blocked paths to restore connectivity to all points in the network." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64717 +msgid "" +"The Rapid Spanning Tree Protocol (<acronym>RSTP</acronym> or 802.1w) " +"provides backwards compatibility with legacy <acronym>STP</acronym>. " +"<acronym>RSTP</acronym> provides faster convergence and exchanges " +"information with neighboring switches to quickly transition to forwarding " +"mode without creating loops. FreeBSD supports <acronym>RSTP</acronym> and " +"<acronym>STP</acronym> as operating modes, with <acronym>RSTP</acronym> " +"being the default mode." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64726 +msgid "" +"<acronym>STP</acronym> can be enabled on member interfaces using " +"<citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>. For a bridge with <filename>fxp0</filename> and " +"<filename>fxp1</filename> as the current interfaces, enable <acronym>STP</" +"acronym> with:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64731 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig bridge0 stp fxp0 stp fxp1</userinput>\n" +"bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" ether d6:cf:d5:a0:94:6d\n" +" id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15\n" +" maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200\n" +" root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0\n" +" member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 3 priority 128 path cost 200000 proto rstp\n" +" role designated state forwarding\n" +" member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 4 priority 128 path cost 200000 proto rstp\n" +" role designated state forwarding" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64744 +msgid "" +"This bridge has a spanning tree ID of <literal>00:01:02:4b:d4:50</literal> " +"and a priority of <literal>32768</literal>. As the <literal>root id</" +"literal> is the same, it indicates that this is the root bridge for the tree." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64750 +msgid "Another bridge on the network also has <acronym>STP</acronym> enabled:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64753 +#, no-wrap +msgid "" +"bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" ether 96:3d:4b:f1:79:7a\n" +" id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15\n" +" maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200\n" +" root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4\n" +" member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 4 priority 128 path cost 200000 proto rstp\n" +" role root state forwarding\n" +" member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 5 priority 128 path cost 200000 proto rstp\n" +" role designated state forwarding" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64765 +msgid "" +"The line <literal>root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 " +"port 4</literal> shows that the root bridge is <literal>00:01:02:4b:d4:50</" +"literal> and has a path cost of <literal>400000</literal> from this bridge. " +"The path to the root bridge is via <literal>port 4</literal> which is " +"<filename>fxp0</filename>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:64774 +msgid "Bridge Interface Parameters" +msgstr "橋接介面參數" + +#. (itstool) path: sect2/para +#: book.translate.xml:64776 +msgid "" +"Several <command>ifconfig</command> parameters are unique to bridge " +"interfaces. This section summarizes some common uses for these parameters. " +"The complete list of available parameters is described in " +"<citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:64783 +msgid "private" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64785 +msgid "" +"A private interface does not forward any traffic to any other port that is " +"also designated as a private interface. The traffic is blocked " +"unconditionally so no Ethernet frames will be forwarded, including " +"<acronym>ARP</acronym> packets. If traffic needs to be selectively blocked, " +"a firewall should be used instead." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:64796 +msgid "span" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64798 +msgid "" +"A span port transmits a copy of every Ethernet frame received by the bridge. " +"The number of span ports configured on a bridge is unlimited, but if an " +"interface is designated as a span port, it cannot also be used as a regular " +"bridge port. This is most useful for snooping a bridged network passively on " +"another host connected to one of the span ports of the bridge. For example, " +"to send a copy of all frames out the interface named <filename>fxp4</" +"filename>:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:64808 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig bridge0 span fxp4</userinput>" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:64813 +msgid "sticky" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64815 +msgid "" +"If a bridge member interface is marked as sticky, dynamically learned " +"address entries are treated as static entries in the forwarding cache. " +"Sticky entries are never aged out of the cache or replaced, even if the " +"address is seen on a different interface. This gives the benefit of static " +"address entries without the need to pre-populate the forwarding table. " +"Clients learned on a particular segment of the bridge can not roam to " +"another segment." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64825 +msgid "" +"An example of using sticky addresses is to combine the bridge with " +"<acronym>VLAN</acronym>s in order to isolate customer networks without " +"wasting <acronym>IP</acronym> address space. Consider that <systemitem class=" +"\"fqdomainname\">CustomerA</systemitem> is on <literal>vlan100</literal>, " +"<systemitem class=\"fqdomainname\">CustomerB</systemitem> is on " +"<literal>vlan101</literal>, and the bridge has the address <systemitem class=" +"\"ipaddress\">192.168.0.1</systemitem>:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:64834 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig bridge0 inet 192.168.0.1/24</userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64837 +msgid "" +"In this example, both clients see <systemitem class=\"ipaddress" +"\">192.168.0.1</systemitem> as their default gateway. Since the bridge cache " +"is sticky, one host can not spoof the <acronym>MAC</acronym> address of the " +"other customer in order to intercept their traffic." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64843 +msgid "" +"Any communication between the <acronym>VLAN</acronym>s can be blocked using " +"a firewall or, as seen in this example, private interfaces:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:64847 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig bridge0 private vlan100 private vlan101</userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64849 +msgid "" +"The customers are completely isolated from each other and the full " +"<systemitem class=\"netmask\">/24</systemitem> address range can be " +"allocated without subnetting." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64853 +msgid "" +"The number of unique source <acronym>MAC</acronym> addresses behind an " +"interface can be limited. Once the limit is reached, packets with unknown " +"source addresses are dropped until an existing host cache entry expires or " +"is removed." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:64859 +msgid "" +"The following example sets the maximum number of Ethernet devices for " +"<systemitem class=\"fqdomainname\">CustomerA</systemitem> on " +"<literal>vlan100</literal> to 10:" +msgstr "" + +#. (itstool) path: listitem/screen +#: book.translate.xml:64863 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig bridge0 ifmaxaddr vlan100 10</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64868 +msgid "" +"Bridge interfaces also support monitor mode, where the packets are discarded " +"after <citerefentry><refentrytitle>bpf</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> processing and are not processed or forwarded " +"further. This can be used to multiplex the input of two or more interfaces " +"into a single <citerefentry><refentrytitle>bpf</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> stream. This is useful for reconstructing the " +"traffic for network taps that transmit the RX/TX signals out through two " +"separate interfaces. For example, to read the input from four network " +"interfaces as one stream:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64877 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up</userinput>\n" +"<prompt>#</prompt> <userinput>tcpdump -i bridge0</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:64882 +msgid "<acronym>SNMP</acronym> Monitoring" +msgstr "<acronym>SNMP</acronym> 監視" + +#. (itstool) path: sect2/para +#: book.translate.xml:64884 +msgid "" +"The bridge interface and <acronym>STP</acronym> parameters can be monitored " +"via <citerefentry><refentrytitle>bsnmpd</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry> which is included in the FreeBSD base system. The " +"exported bridge <acronym>MIB</acronym>s conform to <acronym>IETF</acronym> " +"standards so any <acronym>SNMP</acronym> client or monitoring package can be " +"used to retrieve the data." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64891 +msgid "" +"To enable monitoring on the bridge, uncomment this line in <filename>/etc/" +"snmp.config</filename> by removing the beginning <literal>#</literal> symbol:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:64895 +#, no-wrap +msgid "begemotSnmpdModulePath.\"bridge\" = \"/usr/lib/snmp_bridge.so\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64897 +msgid "" +"Other configuration settings, such as community names and access lists, may " +"need to be modified in this file. See <citerefentry><refentrytitle>bsnmpd</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>snmp_bridge</refentrytitle><manvolnum>3</" +"manvolnum></citerefentry> for more information. Once these edits are saved, " +"add this line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:64903 +#, no-wrap +msgid "bsnmpd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64905 +msgid "" +"Then, start <citerefentry><refentrytitle>bsnmpd</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64907 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>service bsnmpd start</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64909 +msgid "" +"The following examples use the <application>Net-SNMP</application> software " +"(<package>net-mgmt/net-snmp</package>) to query a bridge from a client " +"system. The <package>net-mgmt/bsnmptools</package> port can also be used. " +"From the <acronym>SNMP</acronym> client which is running <application>Net-" +"SNMP</application>, add the following lines to <filename>$HOME/.snmp/snmp." +"conf</filename> in order to import the bridge <acronym>MIB</acronym> " +"definitions:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:64919 +#, no-wrap +msgid "" +"mibdirs +/usr/share/snmp/mibs\n" +"mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64922 +msgid "To monitor a single bridge using the IETF BRIDGE-MIB (RFC4188):" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64925 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge</userinput>\n" +"BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44\n" +"BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports\n" +"BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds\n" +"BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2\n" +"BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50\n" +"...\n" +"BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5)\n" +"BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1)\n" +"BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000\n" +"BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50\n" +"BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0\n" +"BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50\n" +"BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80\n" +"BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1\n" +"RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64942 +msgid "" +"The <literal>dot1dStpTopChanges.0</literal> value is two, indicating that " +"the <acronym>STP</acronym> bridge topology has changed twice. A topology " +"change means that one or more links in the network have changed or failed " +"and a new tree has been calculated. The " +"<literal>dot1dStpTimeSinceTopologyChange.0</literal> value will show when " +"this happened." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64950 +msgid "" +"To monitor multiple bridge interfaces, the private BEGEMOT-BRIDGE-MIB can be " +"used:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64953 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>snmpwalk -v 2c -c public bridge1.example.com</userinput>\n" +"enterprises.fokus.begemot.begemotBridge\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName.\"bridge0\" = STRING: bridge0\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName.\"bridge2\" = STRING: bridge2\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress.\"bridge0\" = STRING: e:ce:3b:5a:9e:13\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress.\"bridge2\" = STRING: 12:5e:4d:74:d:fc\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts.\"bridge0\" = INTEGER: 1\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts.\"bridge2\" = INTEGER: 1\n" +"...\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange.\"bridge0\" = Timeticks: (116927) 0:19:29.27 centi-seconds\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange.\"bridge2\" = Timeticks: (82773) 0:13:47.73 centi-seconds\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges.\"bridge0\" = Counter32: 1\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges.\"bridge2\" = Counter32: 1\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot.\"bridge0\" = Hex-STRING: 80 00 00 40 95 30 5E 31\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot.\"bridge2\" = Hex-STRING: 80 00 00 50 8B B8 C6 A9" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:64969 +msgid "" +"To change the bridge interface being monitored via the <literal>mib-2." +"dot1dBridge</literal> subtree:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:64972 +#, no-wrap +msgid "" +"<prompt>%</prompt> <userinput>snmpset -v 2c -c private bridge1.example.com</userinput>\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:64979 +msgid "Link Aggregation and Failover" +msgstr "Link Aggregation 與容錯移轉" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:64992 +msgid "<primary>lagg</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:64995 +msgid "<primary>failover</primary>" +msgstr "<primary>容錯移轉</primary>" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:64998 +msgid "<primary><acronym>FEC</acronym></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:65001 +msgid "<primary><acronym>LACP</acronym></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:65004 +msgid "<primary>loadbalance</primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:65007 +msgid "<primary>roundrobin</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65011 +msgid "" +"FreeBSD provides the <citerefentry><refentrytitle>lagg</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> interface which can be " +"used to aggregate multiple network interfaces into one virtual interface in " +"order to provide failover and link aggregation. Failover allows traffic to " +"continue to flow as long as at least one aggregated network interface has an " +"established link. Link aggregation works best on switches which support " +"<acronym>LACP</acronym>, as this protocol distributes traffic bi-" +"directionally while responding to the failure of individual links." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65021 +msgid "" +"The aggregation protocols supported by the lagg interface determine which " +"ports are used for outgoing traffic and whether or not a specific port " +"accepts incoming traffic. The following protocols are supported by " +"<citerefentry><refentrytitle>lagg</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry>:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65028 +msgid "failover" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65030 +msgid "" +"This mode sends and receives traffic only through the master port. If the " +"master port becomes unavailable, the next active port is used. The first " +"interface added to the virtual interface is the master port and all " +"subsequently added interfaces are used as failover devices. If failover to a " +"non-master port occurs, the original port becomes master once it becomes " +"available again." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65042 +msgid "fec / loadbalance" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65044 +msgid "" +"<trademark class=\"registered\">Cisco</trademark> Fast <trademark class=" +"\"registered\">EtherChannel</trademark> (<acronym>FEC</acronym>) is found on " +"older <trademark class=\"registered\">Cisco</trademark> switches. It " +"provides a static setup and does not negotiate aggregation with the peer or " +"exchange frames to monitor the link. If the switch supports <acronym>LACP</" +"acronym>, that should be used instead." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65054 +msgid "<acronym>lacp</acronym>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65056 +msgid "" +"The <trademark class=\"registered\">IEEE</trademark> 802.3ad Link " +"Aggregation Control Protocol (<acronym>LACP</acronym>) negotiates a set of " +"aggregable links with the peer into one or more Link Aggregated Groups " +"(<acronym>LAG</acronym>s). Each <acronym>LAG</acronym> is composed of ports " +"of the same speed, set to full-duplex operation, and traffic is balanced " +"across the ports in the <acronym>LAG</acronym> with the greatest total " +"speed. Typically, there is only one <acronym>LAG</acronym> which contains " +"all the ports. In the event of changes in physical connectivity, " +"<acronym>LACP</acronym> will quickly converge to a new configuration." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65070 +msgid "" +"<acronym>LACP</acronym> balances outgoing traffic across the active ports " +"based on hashed protocol header information and accepts incoming traffic " +"from any active port. The hash includes the Ethernet source and destination " +"address and, if available, the <acronym>VLAN</acronym> tag, and the " +"<acronym>IPv4</acronym> or <acronym>IPv6</acronym> source and destination " +"address." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65082 +msgid "roundrobin" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65084 +msgid "" +"This mode distributes outgoing traffic using a round-robin scheduler through " +"all active ports and accepts incoming traffic from any active port. Since " +"this mode violates Ethernet frame ordering, it should be used with caution." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65094 +msgid "Configuration Examples" +msgstr "設定範例" + +#. (itstool) path: sect2/para +#: book.translate.xml:65096 +msgid "" +"This section demonstrates how to configure a <trademark class=\"registered" +"\">Cisco</trademark> switch and a FreeBSD system for <acronym>LACP</acronym> " +"load balancing. It then shows how to configure two Ethernet interfaces in " +"failover mode as well as how to configure failover mode between an Ethernet " +"and a wireless interface." +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:65104 +msgid "" +"<acronym>LACP</acronym> Aggregation with a <trademark class=\"registered" +"\">Cisco</trademark> Switch" +msgstr "" +"<trademark class=\"registered\">Cisco</trademark> 交換器上設定 " +"<acronym>LACP</acronym> Aggregation" + +#. (itstool) path: example/para +#: book.translate.xml:65107 +msgid "" +"This example connects two <citerefentry><refentrytitle>fxp</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> Ethernet interfaces on " +"a FreeBSD machine to the first two Ethernet ports on a <trademark class=" +"\"registered\">Cisco</trademark> switch as a single load balanced and fault " +"tolerant link. More interfaces can be added to increase throughput and fault " +"tolerance. Replace the names of the <trademark class=\"registered\">Cisco</" +"trademark> ports, Ethernet devices, channel group number, and <acronym>IP</" +"acronym> address shown in the example to match the local configuration." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65116 +msgid "" +"Frame ordering is mandatory on Ethernet links and any traffic between two " +"stations always flows over the same physical link, limiting the maximum " +"speed to that of one interface. The transmit algorithm attempts to use as " +"much information as it can to distinguish different traffic flows and " +"balance the flows across the available interfaces." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65124 +msgid "" +"On the <trademark class=\"registered\">Cisco</trademark> switch, add the " +"<replaceable>FastEthernet0/1</replaceable> and <replaceable>FastEthernet0/2</" +"replaceable> interfaces to channel group <replaceable>1</replaceable>:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65129 +#, no-wrap +msgid "" +"<userinput>interface <replaceable>FastEthernet0/1</replaceable>\n" +" channel-group <replaceable>1</replaceable> mode active\n" +" channel-protocol lacp</userinput>\n" +"!\n" +"<userinput>interface <replaceable>FastEthernet0/2</replaceable>\n" +" channel-group <replaceable>1</replaceable> mode active\n" +" channel-protocol lacp</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65137 +msgid "" +"On the FreeBSD system, create the <citerefentry><refentrytitle>lagg</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> interface using the " +"physical interfaces <replaceable>fxp0</replaceable> and <replaceable>fxp1</" +"replaceable> and bring the interfaces up with an <acronym>IP</acronym> " +"address of <replaceable>10.0.0.3/24</replaceable>:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65144 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>fxp0</replaceable> up</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>fxp1</replaceable> up</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> create </userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> up laggproto lacp laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable> <replaceable>10.0.0.3/24</replaceable></userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65149 +msgid "Next, verify the status of the virtual interface:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65151 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal></userinput>\n" +"lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=8<VLAN_MTU>\n" +" ether 00:05:5d:71:8d:b8\n" +" media: Ethernet autoselect\n" +" status: active\n" +" laggproto lacp\n" +" laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>\n" +" laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65161 +msgid "" +"Ports marked as <literal>ACTIVE</literal> are part of the <acronym>LAG</" +"acronym> that has been negotiated with the remote switch. Traffic will be " +"transmitted and received through these active ports. Add <option>-v</option> " +"to the above command to view the <acronym>LAG</acronym> identifiers." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65169 +msgid "" +"To see the port status on the <trademark class=\"registered\">Cisco</" +"trademark> switch:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65171 +#, no-wrap +msgid "" +"switch# <userinput>show lacp neighbor</userinput>\n" +"Flags: S - Device is requesting Slow LACPDUs\n" +" F - Device is requesting Fast LACPDUs\n" +" A - Device is in Active mode P - Device is in Passive mode\n" +"\n" +"Channel group 1 neighbors\n" +"\n" +"Partner's information:\n" +"\n" +" LACP port Oper Port Port\n" +"Port Flags Priority Dev ID Age Key Number State\n" +"Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D\n" +"Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65185 +msgid "For more detail, type <userinput>show lacp neighbor detail</userinput>." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65188 +msgid "" +"To retain this configuration across reboots, add the following entries to " +"<filename>/etc/rc.conf</filename> on the FreeBSD system:" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:65192 +#, no-wrap +msgid "" +"ifconfig_<replaceable>fxp0</replaceable>=\"up\"\n" +"ifconfig_<replaceable>fxp1</replaceable>=\"up\"\n" +"cloned_interfaces=\"<literal>lagg<replaceable>0</replaceable></literal>\"\n" +"ifconfig_<literal>lagg<replaceable>0</replaceable></literal>=\"laggproto lacp laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable> <replaceable>10.0.0.3/24</replaceable>\"" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:65199 +msgid "Failover Mode" +msgstr "容錯移轉模式" + +#. (itstool) path: example/para +#: book.translate.xml:65201 +msgid "" +"Failover mode can be used to switch over to a secondary interface if the " +"link is lost on the master interface. To configure failover, make sure that " +"the underlying physical interfaces are up, then create the " +"<citerefentry><refentrytitle>lagg</refentrytitle><manvolnum>4</manvolnum></" +"citerefentry> interface. In this example, <replaceable>fxp0</replaceable> is " +"the master interface, <replaceable>fxp1</replaceable> is the secondary " +"interface, and the virtual interface is assigned an <acronym>IP</acronym> " +"address of <replaceable>10.0.0.15/24</replaceable>:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65211 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>fxp0</replaceable> up</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>fxp1</replaceable> up</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> create</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> up laggproto failover laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable> <replaceable>10.0.0.15/24</replaceable></userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65216 book.translate.xml:65305 +msgid "The virtual interface should look something like this:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65219 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal></userinput>\n" +"lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=8<VLAN_MTU>\n" +" ether 00:05:5d:71:8d:b8\n" +" inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255\n" +" media: Ethernet autoselect\n" +" status: active\n" +" laggproto failover\n" +" laggport: fxp1 flags=0<>\n" +" laggport: fxp0 flags=5<MASTER,ACTIVE>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65230 +msgid "" +"Traffic will be transmitted and received on <replaceable>fxp0</replaceable>. " +"If the link is lost on <replaceable>fxp0</replaceable>, <replaceable>fxp1</" +"replaceable> will become the active link. If the link is restored on the " +"master interface, it will once again become the active link." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65237 book.translate.xml:65323 +msgid "" +"To retain this configuration across reboots, add the following entries to " +"<filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:65241 +#, no-wrap +msgid "" +"ifconfig_<replaceable>fxp0</replaceable>=\"up\"\n" +"ifconfig_<replaceable>fxp1</replaceable>=\"up\"\n" +"cloned_interfaces=\"<literal>lagg<replaceable>0</replaceable></literal>\"\n" +"ifconfig_<literal>lagg<replaceable>0</replaceable></literal>=\"laggproto failover laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable> <replaceable>10.0.0.15/24</replaceable>\"" +msgstr "" + +#. (itstool) path: example/title +#: book.translate.xml:65248 +msgid "Failover Mode Between Ethernet and Wireless Interfaces" +msgstr "乙太網路與無線介面間的容錯移轉模式" + +#. (itstool) path: example/para +#: book.translate.xml:65251 +msgid "" +"For laptop users, it is usually desirable to configure the wireless device " +"as a secondary which is only used when the Ethernet connection is not " +"available. With <citerefentry><refentrytitle>lagg</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry>, it is possible to " +"configure a failover which prefers the Ethernet connection for both " +"performance and security reasons, while maintaining the ability to transfer " +"data over the wireless connection." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65259 +msgid "" +"This is achieved by overriding the physical wireless interface's " +"<acronym>MAC</acronym> address with that of the Ethernet interface." +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65263 +msgid "" +"In this example, the Ethernet interface, <replaceable>bge0</replaceable>, is " +"the master and the wireless interface, <replaceable>wlan0</replaceable>, is " +"the failover. The <replaceable>wlan0</replaceable> device was created from " +"<replaceable>iwn0</replaceable> wireless interface, which will be configured " +"with the <acronym>MAC</acronym> address of the Ethernet interface. First, " +"determine the <acronym>MAC</acronym> address of the Ethernet interface:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65273 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>bge0</replaceable></userinput>\n" +"bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\toptions=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>\n" +"\tether 00:21:70:da:ae:37\n" +"\tinet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2\n" +"\tnd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>\n" +"\tmedia: Ethernet autoselect (1000baseT <full-duplex>)\n" +"\tstatus: active" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65282 +msgid "" +"Replace <replaceable>bge0</replaceable> to match the system's Ethernet " +"interface name. The <literal>ether</literal> line will contain the " +"<acronym>MAC</acronym> address of the specified interface. Now, change the " +"<acronym>MAC</acronym> address of the underlying wireless interface:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65289 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig <replaceable>iwn0</replaceable> ether <replaceable>00:21:70:da:ae:37</replaceable></userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65291 +msgid "" +"Bring the wireless interface up, but do not set an <acronym>IP</acronym> " +"address:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65294 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>iwn0</replaceable> ssid <replaceable>my_router</replaceable> up</userinput>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65296 +msgid "" +"Make sure the <replaceable>bge0</replaceable> interface is up, then create " +"the <citerefentry><refentrytitle>lagg</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry> interface with <replaceable>bge0</replaceable> as " +"master with failover to <replaceable>wlan0</replaceable>:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65301 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <replaceable>bge0</replaceable> up</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> create</userinput>\n" +"<prompt>#</prompt> <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> up laggproto failover laggport <replaceable>bge0</replaceable> laggport <replaceable>wlan0</replaceable></userinput>" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65308 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal></userinput>\n" +"lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=8<VLAN_MTU>\n" +" ether 00:21:70:da:ae:37\n" +" media: Ethernet autoselect\n" +" status: active\n" +" laggproto failover\n" +" laggport: wlan0 flags=0<>\n" +" laggport: bge0 flags=5<MASTER,ACTIVE>" +msgstr "" + +#. (itstool) path: example/para +#: book.translate.xml:65318 +msgid "" +"Then, start the <acronym>DHCP</acronym> client to obtain an <acronym>IP</" +"acronym> address:" +msgstr "" + +#. (itstool) path: example/screen +#: book.translate.xml:65321 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>dhclient <literal>lagg<replaceable>0</replaceable></literal></userinput>" +msgstr "" + +#. (itstool) path: example/programlisting +#: book.translate.xml:65327 +#, no-wrap +msgid "" +"ifconfig_bge0=\"up\"\n" +"ifconfig_<replaceable>iwn0</replaceable>=\"<replaceable>ether 00:21:70:da:ae:37</replaceable>\"\n" +"wlans_<replaceable>iwn0</replaceable>=\"wlan0\"\n" +"ifconfig_wlan0=\"WPA\"\n" +"cloned_interfaces=\"<literal>lagg<replaceable>0</replaceable></literal>\"\n" +"ifconfig_<literal>lagg<replaceable>0</replaceable></literal>=\"laggproto failover laggport bge0 laggport wlan0 DHCP\"" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:65339 +msgid "Diskless Operation with <acronym>PXE</acronym>" +msgstr "<acronym>PXE</acronym> 無磁碟作業" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:65342 +msgid "" +"<personname> <firstname>Jean-François</firstname> <surname>Dockès</surname> " +"</personname> <contrib>Updated by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:65351 +msgid "" +"<personname> <firstname>Alex</firstname> <surname>Dupre</surname> </" +"personname> <contrib>Reorganized and enhanced by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:65361 +msgid "<primary>diskless workstation</primary>" +msgstr "<primary>無磁碟工作站</primary>" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:65364 +msgid "<primary>diskless operation</primary>" +msgstr "<primary>無磁碟作業</primary>" + +#. (itstool) path: sect1/para +#: book.translate.xml:65368 +msgid "" +"The <trademark class=\"registered\">Intel</trademark> Preboot eXecution " +"Environment (<acronym>PXE</acronym>) allows an operating system to boot over " +"the network. For example, a FreeBSD system can boot over the network and " +"operate without a local disk, using file systems mounted from an " +"<acronym>NFS</acronym> server. <acronym>PXE</acronym> support is usually " +"available in the <acronym>BIOS</acronym>. To use <acronym>PXE</acronym> when " +"the machine starts, select the <literal>Boot from network</literal> option " +"in the <acronym>BIOS</acronym> setup or type a function key during system " +"initialization." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65379 +msgid "" +"In order to provide the files needed for an operating system to boot over " +"the network, a <acronym>PXE</acronym> setup also requires properly " +"configured <acronym>DHCP</acronym>, <acronym>TFTP</acronym>, and " +"<acronym>NFS</acronym> servers, where:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65387 +msgid "" +"Initial parameters, such as an <acronym>IP</acronym> address, executable " +"boot filename and location, server name, and root path are obtained from the " +"<acronym>DHCP</acronym> server." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65394 +msgid "" +"The operating system loader file is booted using <acronym>TFTP</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65399 +msgid "The file systems are loaded using <acronym>NFS</acronym>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65404 +msgid "" +"When a computer <acronym>PXE</acronym> boots, it receives information over " +"<acronym>DHCP</acronym> about where to obtain the initial boot loader file. " +"After the host computer receives this information, it downloads the boot " +"loader via <acronym>TFTP</acronym> and then executes the boot loader. In " +"FreeBSD, the boot loader file is <filename>/boot/pxeboot</filename>. After " +"<filename>/boot/pxeboot</filename> executes, the FreeBSD kernel is loaded " +"and the rest of the FreeBSD bootup sequence proceeds, as described in <xref " +"linkend=\"boot\"/>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65415 +msgid "" +"This section describes how to configure these services on a FreeBSD system " +"so that other systems can <acronym>PXE</acronym> boot into FreeBSD. Refer to " +"<citerefentry><refentrytitle>diskless</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> for more information." +msgstr "" + +#. (itstool) path: caution/para +#: book.translate.xml:65421 +msgid "" +"As described, the system providing these services is insecure. It should " +"live in a protected area of a network and be untrusted by other hosts." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:65428 +msgid "Setting Up the <acronym>PXE</acronym> Environment" +msgstr "設定 <acronym>PXE</acronym> 環境" + +#. (itstool) path: affiliation/address +#: book.translate.xml:65438 +#, no-wrap +msgid "rodrigc@FreeBSD.org" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:65432 +msgid "" +"<personname> <firstname>Craig</firstname> <surname>Rodrigues</surname> </" +"personname> <affiliation> <_:address-1/> </affiliation> <contrib>Written by " +"</contrib>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65445 +msgid "" +"The steps shown in this section configure the built-in <acronym>NFS</" +"acronym> and <acronym>TFTP</acronym> servers. The next section demonstrates " +"how to install and configure the <acronym>DHCP</acronym> server. In this " +"example, the directory which will contain the files used by <acronym>PXE</" +"acronym> users is <filename>/b/tftpboot/FreeBSD/install</filename>. It is " +"important that this directory exists and that the same directory name is set " +"in both <filename>/etc/inetd.conf</filename> and <filename>/usr/local/etc/" +"dhcpd.conf</filename>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65459 +msgid "" +"Create the root directory which will contain a FreeBSD installation to be " +"<acronym>NFS</acronym> mounted:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:65462 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>export NFSROOTDIR=/b/tftpboot/FreeBSD/install</userinput>\n" +"<prompt>#</prompt> <userinput>mkdir -p ${NFSROOTDIR}</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65467 +msgid "" +"Enable the <acronym>NFS</acronym> server by adding this line to <filename>/" +"etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:65470 +#, no-wrap +msgid "nfs_server_enable=\"YES\"" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65474 +msgid "" +"Export the diskless root directory via <acronym>NFS</acronym> by adding the " +"following to <filename>/etc/exports</filename>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:65478 +#, no-wrap +msgid "/b -ro -alldirs" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65482 +msgid "Start the <acronym>NFS</acronym> server:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65488 +msgid "" +"Enable <citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> by adding the following line to <filename>/etc/rc." +"conf</filename>:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65495 +msgid "" +"Uncomment the following line in <filename>/etc/inetd.conf</filename> by " +"making sure it does not start with a <literal>#</literal> symbol:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:65499 +#, no-wrap +msgid "tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /b/tftpboot" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:65502 +msgid "" +"Some <acronym>PXE</acronym> versions require the <acronym>TCP</acronym> " +"version of <acronym>TFTP</acronym>. In this case, uncomment the second " +"<literal>tftp</literal> line which contains <literal>stream tcp</literal>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65511 +msgid "" +"Start <citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65517 +msgid "" +"Rebuild the FreeBSD kernel and userland (refer to <xref linkend=\"makeworld" +"\"/> for more detailed instructions):" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:65520 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make buildworld</userinput>\n" +"<prompt>#</prompt> <userinput>make buildkernel</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65526 +msgid "Install FreeBSD into the directory mounted over <acronym>NFS</acronym>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:65529 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>make installworld DESTDIR=${NFSROOTDIR}</userinput>\n" +"<prompt>#</prompt> <userinput>make installkernel DESTDIR=${NFSROOTDIR}</userinput>\n" +"<prompt>#</prompt> <userinput>make distribution DESTDIR=${NFSROOTDIR}</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65535 +msgid "" +"Test that the <acronym>TFTP</acronym> server works and can download the boot " +"loader which will be obtained via <acronym>PXE</acronym>:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>tftp localhost</userinput>\n" +"tftp> <userinput>get FreeBSD/install/boot/pxeboot</userinput>\n" +"Received 264951 bytes in 0.1 seconds" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65535 +msgid "" +"Edit <filename>${NFSROOTDIR}/etc/fstab</filename> and create an entry to " +"mount the root file system over <acronym>NFS</acronym>:" +msgstr "" + +#. (itstool) path: step/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"# Device Mountpoint FSType Options Dump Pass\n" +"<replaceable>myhost.example.com</replaceable>:/b/tftpboot/FreeBSD/install / nfs ro 0 0" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65535 +msgid "" +"Replace <replaceable>myhost.example.com</replaceable> with the hostname or " +"<acronym>IP</acronym> address of the <acronym>NFS</acronym> server. In this " +"example, the root file system is mounted read-only in order to prevent " +"<acronym>NFS</acronym> clients from potentially deleting the contents of the " +"root file system." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65535 +msgid "" +"Set the root password in the <acronym>PXE</acronym> environment for client " +"machines which are <acronym>PXE</acronym> booting :" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>chroot ${NFSROOTDIR}</userinput>\n" +"<prompt>#</prompt> <userinput>passwd</userinput>" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65535 +msgid "" +"If needed, enable <citerefentry><refentrytitle>ssh</" +"refentrytitle><manvolnum>1</manvolnum></citerefentry> root logins for client " +"machines which are <acronym>PXE</acronym> booting by editing <filename>" +"${NFSROOTDIR}/etc/ssh/sshd_config</filename> and enabling " +"<literal>PermitRootLogin</literal>. This option is documented in " +"<citerefentry><refentrytitle>sshd_config</refentrytitle><manvolnum>5</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65535 +msgid "" +"Perform any other needed customizations of the <acronym>PXE</acronym> " +"environment in <filename>${NFSROOTDIR}</filename>. These customizations " +"could include things like installing packages or editing the password file " +"with <citerefentry><refentrytitle>vipw</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"When booting from an <acronym>NFS</acronym> root volume, <filename>/etc/rc</" +"filename> detects the <acronym>NFS</acronym> boot and runs <filename>/etc/rc." +"initdiskless</filename>. In this case, <filename>/etc</filename> and " +"<filename>/var</filename> need to be memory backed file systems so that " +"these directories are writable but the <acronym>NFS</acronym> root directory " +"is read-only:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>chroot ${NFSROOTDIR}</userinput>\n" +"<prompt>#</prompt> <userinput>mkdir -p conf/base</userinput>\n" +"<prompt>#</prompt> <userinput>tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc</userinput>\n" +"<prompt>#</prompt> <userinput>tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip var</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"When the system boots, memory file systems for <filename>/etc</filename> and " +"<filename>/var</filename> will be created and mounted and the contents of " +"the <filename>cpio.gz</filename> files will be copied into them." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Configuring the <acronym>DHCP</acronym> Server" +msgstr "設定 <acronym>DHCP</acronym> 伺服器" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:65535 +msgid "<primary>DHCP</primary> <secondary>diskless operation</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The <acronym>DHCP</acronym> server does not need to be the same machine as " +"the <acronym>TFTP</acronym> and <acronym>NFS</acronym> server, but it needs " +"to be accessible in the network." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<acronym>DHCP</acronym> is not part of the FreeBSD base system but can be " +"installed using the <package>net/isc-dhcp42-server</package> port or package." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Once installed, edit the configuration file, <filename>/usr/local/etc/dhcpd." +"conf</filename>. Configure the <literal>next-server</literal>, " +"<literal>filename</literal>, and <literal>root-path</literal> settings as " +"seen in this example:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"subnet 192.168.0.0 netmask 255.255.255.0 {\n" +" range 192.168.0.2 192.168.0.3 ;\n" +" option subnet-mask 255.255.255.0 ;\n" +" option routers 192.168.0.1 ;\n" +" option broadcast-address 192.168.0.255 ;\n" +" option domain-name-servers 192.168.35.35, 192.168.35.36 ;\n" +" option domain-name \"example.com\";\n" +"\n" +" # IP address of TFTP server\n" +" next-server <replaceable>192.168.0.1</replaceable> ;\n" +"\n" +" # path of boot loader obtained via tftp\n" +" filename \"<replaceable>FreeBSD/install/boot/pxeboot</replaceable>\" ;\n" +"\n" +" # pxeboot boot loader will try to NFS mount this directory for root FS\n" +" option root-path \"<replaceable>192.168.0.1:/b/tftpboot/FreeBSD/install/</replaceable>\" ;\n" +"\n" +"}" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The <literal>next-server</literal> directive is used to specify the " +"<acronym>IP</acronym> address of the <acronym>TFTP</acronym> server." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The <literal>filename</literal> directive defines the path to <filename>/" +"boot/pxeboot</filename>. A relative filename is used, meaning that " +"<filename>/b/tftpboot</filename> is not included in the path." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The <literal>root-path</literal> option defines the path to the " +"<acronym>NFS</acronym> root file system." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Once the edits are saved, enable <acronym>DHCP</acronym> at boot time by " +"adding the following line to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "dhcpd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "Then start the <acronym>DHCP</acronym> service:" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Debugging <acronym>PXE</acronym> Problems" +msgstr "<acronym>PXE</acronym> 問題除錯" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Once all of the services are configured and started, <acronym>PXE</acronym> " +"clients should be able to automatically load FreeBSD over the network. If a " +"particular client is unable to connect, when that client machine boots up, " +"enter the <acronym>BIOS</acronym> configuration menu and confirm that it is " +"set to boot from the network." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"This section describes some troubleshooting tips for isolating the source of " +"the configuration problem should no clients be able to <acronym>PXE</" +"acronym> boot." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65535 +msgid "" +"Use the <package>net/wireshark</package> package or port to debug the " +"network traffic involved during the <acronym>PXE</acronym> booting process, " +"which is illustrated in the diagram below." +msgstr "" + +#. (itstool) path: figure/title +#: book.translate.xml:65535 +msgid "" +"<acronym>PXE</acronym> Booting Process with <acronym>NFS</acronym> Root Mount" +msgstr "" +"使用 <acronym>NFS</acronym> Root Mount 進行 <acronym>PXE</acronym> 開機程序" + +#. (itstool) path: imageobject/imagedata +#. This is a reference to an external file such as an image or video. When +#. the file changes, the md5 hash will change to let you know you need to +#. update your localized copy. The msgstr is not used at all. Set it to +#. whatever you like once you have updated your copy of the file. +#: book.translate.xml:65535 +msgctxt "_" +msgid "external ref='advanced-networking/pxe-nfs' md5='__failed__'" +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:65535 +msgid "Client broadcasts a <literal>DHCPDISCOVER</literal> message." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:65535 +msgid "" +"The <acronym>DHCP</acronym> server responds with the <acronym>IP</acronym> " +"address, <literal>next-server</literal>, <literal>filename</literal>, and " +"<literal>root-path</literal> values." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:65535 +msgid "" +"The client sends a <acronym>TFTP</acronym> request to <literal>next-server</" +"literal>, asking to retrieve <literal>filename</literal>." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:65535 +msgid "" +"The <acronym>TFTP</acronym> server responds and sends <literal>filename</" +"literal> to client." +msgstr "" + +#. (itstool) path: callout/para +#: book.translate.xml:65535 +msgid "" +"The client executes <literal>filename</literal>, which is " +"<citerefentry><refentrytitle>pxeboot</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, which then loads the kernel. When the kernel " +"executes, the root file system specified by <literal>root-path</literal> is " +"mounted over <acronym>NFS</acronym>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65535 +msgid "" +"On the <acronym>TFTP</acronym> server, read <filename>/var/log/xferlog</" +"filename> to ensure that <filename>pxeboot</filename> is being retrieved " +"from the correct location. To test this example configuration:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>tftp 192.168.0.1</userinput>\n" +"tftp> <userinput>get FreeBSD/install/boot/pxeboot</userinput>\n" +"Received 264951 bytes in 0.1 seconds" +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65535 +msgid "" +"The <literal>BUGS</literal> sections in <citerefentry><refentrytitle>tftpd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> and " +"<citerefentry><refentrytitle>tftp</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> document some limitations with <acronym>TFTP</acronym>." +msgstr "" + +#. (itstool) path: step/para +#: book.translate.xml:65535 +msgid "" +"Make sure that the root file system can be mounted via <acronym>NFS</" +"acronym>. To test this example configuration:" +msgstr "" + +#. (itstool) path: step/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mnt</userinput>" +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:65535 +msgid "<acronym>IPv6</acronym>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:65535 +msgid "" +"<personname> <firstname>Aaron</firstname> <surname>Kaplan</surname> </" +"personname> <contrib>Originally Written by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:65535 +msgid "" +"<personname> <firstname>Tom</firstname> <surname>Rhodes</surname> </" +"personname> <contrib>Restructured and Added by </contrib>" +msgstr "" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:65535 +msgid "" +"<personname> <firstname>Brad</firstname> <surname>Davis</surname> </" +"personname> <contrib>Extended by </contrib>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"<acronym>IPv6</acronym> is the new version of the well known <acronym>IP</" +"acronym> protocol, also known as <acronym>IPv4</acronym>. <acronym>IPv6</" +"acronym> provides several advantages over <acronym>IPv4</acronym> as well as " +"many new features:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Its 128-bit address space allows for " +"340,282,366,920,938,463,463,374,607,431,768,211,456 addresses. This " +"addresses the <acronym>IPv4</acronym> address shortage and eventual " +"<acronym>IPv4</acronym> address exhaustion." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Routers only store network aggregation addresses in their routing tables, " +"thus reducing the average space of a routing table to 8192 entries. This " +"addresses the scalability issues associated with <acronym>IPv4</acronym>, " +"which required every allocated block of <acronym>IPv4</acronym> addresses to " +"be exchanged between Internet routers, causing their routing tables to " +"become too large to allow efficient routing." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Address autoconfiguration (<link xlink:href=\"http://www.ietf.org/rfc/" +"rfc2462.txt\">RFC2462</link>)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Mandatory multicast addresses." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Built-in <acronym>IPsec</acronym> (<acronym>IP</acronym> security)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Simplified header structure." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Support for mobile <acronym>IP</acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<acronym>IPv6</acronym>-to-<acronym>IPv4</acronym> transition mechanisms." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD includes the <link xlink:href=\"http://www.kame.net/\">http://www." +"kame.net/</link> <acronym>IPv6</acronym> reference implementation and comes " +"with everything needed to use <acronym>IPv6</acronym>. This section focuses " +"on getting <acronym>IPv6</acronym> configured and running." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Background on <acronym>IPv6</acronym> Addresses" +msgstr "<acronym>IPv6</acronym> 位址的背景知識" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "There are three different types of <acronym>IPv6</acronym> addresses:" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "Unicast" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"A packet sent to a unicast address arrives at the interface belonging to the " +"address." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "Anycast" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"These addresses are syntactically indistinguishable from unicast addresses " +"but they address a group of interfaces. The packet destined for an anycast " +"address will arrive at the nearest router interface. Anycast addresses are " +"only used by routers." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "Multicast" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"These addresses identify a group of interfaces. A packet destined for a " +"multicast address will arrive at all interfaces belonging to the multicast " +"group. The <acronym>IPv4</acronym> broadcast address, usually <systemitem " +"class=\"ipaddress\">xxx.xxx.xxx.255</systemitem>, is expressed by multicast " +"addresses in <acronym>IPv6</acronym>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"When reading an <acronym>IPv6</acronym> address, the canonical form is " +"represented as <systemitem>x:x:x:x:x:x:x:x</systemitem>, where each " +"<literal>x</literal> represents a 16 bit hex value. An example is " +"<systemitem>FEBC:A574:382B:23C1:AA49:4592:4EFE:9982</systemitem>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Often, an address will have long substrings of all zeros. A <literal>::</" +"literal> (double colon) can be used to replace one substring per address. " +"Also, up to three leading <literal>0</literal>s per hex value can be " +"omitted. For example, <systemitem>fe80::1</systemitem> corresponds to the " +"canonical form <systemitem>fe80:0000:0000:0000:0000:0000:0000:0001</" +"systemitem>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"A third form is to write the last 32 bits using the well known " +"<acronym>IPv4</acronym> notation. For example, <systemitem>2002::10.0.0.1</" +"systemitem> corresponds to the hexadecimal canonical representation " +"<systemitem>2002:0000:0000:0000:0000:0000:0a00:0001</systemitem>, which in " +"turn is equivalent to <systemitem>2002::a00:1</systemitem>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"To view a FreeBSD system's <acronym>IPv6 </acronym> address, use " +"<citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig</userinput>" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500\n" +" inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255\n" +" inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1\n" +" ether 00:00:21:03:08:e1\n" +" media: Ethernet autoselect (100baseTX )\n" +" status: active" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"In this example, the <filename>rl0</filename> interface is using " +"<systemitem>fe80::200:21ff:fe03:8e1%rl0</systemitem>, an auto-configured " +"link-local address which was automatically generated from the <acronym>MAC</" +"acronym> address." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Some <acronym>IPv6</acronym> addresses are reserved. A summary of these " +"reserved addresses is seen in <xref linkend=\"reservedip6\"/>:" +msgstr "" + +#. (itstool) path: table/title +#: book.translate.xml:65535 +msgid "Reserved <acronym>IPv6</acronym> Addresses" +msgstr "已保留的 <acronym>IPv6</acronym> 位址" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<acronym>IPv6</acronym> address" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Prefixlength (Bits)" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<systemitem>::</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "128 bits" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "unspecified" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Equivalent to <systemitem class=\"ipaddress\">0.0.0.0</systemitem> in " +"<acronym>IPv4</acronym>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<systemitem>::1</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "loopback address" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Equivalent to <systemitem class=\"ipaddress\">127.0.0.1</systemitem> in " +"<acronym>IPv4</acronym>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<systemitem>::00:xx:xx:xx:xx</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "96 bits" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "embedded <acronym>IPv4</acronym>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "The lower 32 bits are the compatible <acronym>IPv4</acronym> address." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<systemitem>::ff:xx:xx:xx:xx</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<acronym>IPv4</acronym> mapped <acronym>IPv6</acronym> address" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"The lower 32 bits are the <acronym>IPv4</acronym> address for hosts which do " +"not support <acronym>IPv6</acronym>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<systemitem>fe80::/10</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "10 bits" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "link-local" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Equivalent to 169.254.0.0/16 in <acronym>IPv4</acronym>." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<systemitem>fc00::/7</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "7 bits" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "unique-local" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Unique local addresses are intended for local communication and are only " +"routable within a set of cooperating sites." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<systemitem>ff00::</systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "8 bits" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "multicast" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<systemitem>2000::-3fff:: </systemitem>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "3 bits" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "global unicast" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All global unicast addresses are assigned from this pool. The first 3 bits " +"are <literal>001</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"For further information on the structure of <acronym>IPv6</acronym> " +"addresses, refer to <link xlink:href=\"http://www.ietf.org/rfc/rfc3513.txt" +"\">RFC3513</link>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Configuring <acronym>IPv6</acronym>" +msgstr "設定 <acronym>IPv6</acronym>" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"To configure a FreeBSD system as an <acronym>IPv6</acronym> client, add " +"these two lines to <filename>rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"ifconfig_<replaceable>rl0</replaceable>_ipv6=\"inet6 accept_rtadv\"\n" +"rtsold_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The first line enables the specified interface to receive router " +"solicitation messages. The second line enables the router solicitation " +"daemon, <citerefentry><refentrytitle>rtsol</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"If the interface needs a statically assigned <acronym>IPv6</acronym> " +"address, add an entry to specify the static address and associated prefix " +"length:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "ifconfig_<replaceable>rl0</replaceable>_ipv6=\"inet6 <replaceable>2001:db8:4672:6565:2026:5043:2d42:5344</replaceable> prefixlen <replaceable>64</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "To assign a default router, specify its address:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "ipv6_defaultrouter=\"<replaceable>2001:db8:4672:6565::1</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Connecting to a Provider" +msgstr "連線到 Provider" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"In order to connect to other <acronym>IPv6</acronym> networks, one must have " +"a provider or a tunnel that supports <acronym>IPv6</acronym>:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Contact an Internet Service Provider to see if they offer <acronym>IPv6</" +"acronym>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.sixxs.net\">SixXS</link> offers tunnels with " +"end-points all around the globe." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.tunnelbroker.net\">Hurricane Electric</link> " +"offers tunnels with end-points all around the globe." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:65535 +msgid "" +"Install the <package>net/freenet6</package> package or port for a dial-up " +"connection." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"This section demonstrates how to take the directions from a tunnel provider " +"and convert them into <filename>/etc/rc.conf</filename> settings that will " +"persist through reboots." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The first <filename>/etc/rc.conf</filename> entry creates the generic " +"tunneling interface <filename><replaceable>gif0</replaceable></filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "gif_interfaces=\"gif<replaceable>0</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Next, configure that interface with the <acronym>IPv4</acronym> addresses of " +"the local and remote endpoints. Replace <replaceable>MY_IPv4_ADDR</" +"replaceable> and <replaceable>REMOTE_IPv4_ADDR</replaceable> with the actual " +"<acronym>IPv4</acronym> addresses:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "gifconfig_gif0=\"<replaceable>MY_IPv4_ADDR REMOTE_IPv4_ADDR</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"To apply the <acronym>IPv6</acronym> address that has been assigned for use " +"as the <acronym>IPv6</acronym> tunnel endpoint, add this line, replacing " +"<replaceable>MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR</replaceable> with the " +"assigned address:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "ifconfig_gif0_ipv6=\"inet6 <replaceable>MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Then, set the default route for the other side of the <acronym>IPv6</" +"acronym> tunnel. Replace <replaceable>MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR</" +"replaceable> with the default gateway address assigned by the provider:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "ipv6_defaultrouter=\"<replaceable>MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"If the FreeBSD system will route <acronym>IPv6</acronym> packets between the " +"rest of the network and the world, enable the gateway using this line:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "ipv6_gateway_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Router Advertisement and Host Auto Configuration" +msgstr "Router Advertisement 與 Host Auto Configuration" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"This section demonstrates how to setup <citerefentry><refentrytitle>rtadvd</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> to advertise the " +"<acronym>IPv6</acronym> default route." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"To enable <citerefentry><refentrytitle>rtadvd</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry>, add the following to <filename>/etc/rc.conf</" +"filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "rtadvd_enable=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"It is important to specify the interface on which to do <acronym>IPv6</" +"acronym> router solicitation. For example, to tell " +"<citerefentry><refentrytitle>rtadvd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> to use <filename>rl0</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "rtadvd_interfaces=\"rl0\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Next, create the configuration file, <filename>/etc/rtadvd.conf</filename> " +"as seen in this example:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"rl0:\\\n" +"\t:addrs#1:addr=\"2001:471:1f11:246::\":prefixlen#64:tc=ether:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Replace <filename>rl0</filename> with the interface to be used and " +"<systemitem>2001:471:1f11:246::</systemitem> with the prefix of the " +"allocation." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"For a dedicated <systemitem class=\"netmask\">/64</systemitem> subnet, " +"nothing else needs to be changed. Otherwise, change the <literal>prefixlen#</" +"literal> to the correct value." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "<acronym>IPv6</acronym> and <acronym>IPv6</acronym> Address Mapping" +msgstr "<acronym>IPv6</acronym> 與 <acronym>IPv6</acronym> 位址對應表" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"When <acronym>IPv6</acronym> is enabled on a server, there may be a need to " +"enable <acronym>IPv4</acronym> mapped <acronym>IPv6</acronym> address " +"communication. This compatibility option allows for <acronym>IPv4</acronym> " +"addresses to be represented as <acronym>IPv6</acronym> addresses. Permitting " +"<acronym>IPv6</acronym> applications to communicate with <acronym>IPv4</" +"acronym> and vice versa may be a security issue." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"This option may not be required in most cases and is available only for " +"compatibility. This option will allow <acronym>IPv6</acronym>-only " +"applications to work with <acronym>IPv4</acronym> in a dual stack " +"environment. This is most useful for third party applications which may not " +"support an <acronym>IPv6</acronym>-only environment. To enable this feature, " +"add the following to <filename>/etc/rc.conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "ipv6_ipv4mapping=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Reviewing the information in <acronym>RFC</acronym> 3493, section 3.6 and " +"3.7 as well as <acronym>RFC</acronym> 4038 section 4.2 may be useful to some " +"administrators." +msgstr "" + +#. (itstool) path: info/title +#: book.translate.xml:65535 +msgid "Common Address Redundancy Protocol (<acronym>CARP</acronym>)" +msgstr "共用位址備援協定 (<acronym>CARP</acronym>)" + +#. (itstool) path: authorgroup/author +#: book.translate.xml:65535 +msgid "" +"<personname> <firstname>Allan</firstname> <surname>Jude</surname> </" +"personname> <contrib>Updated by </contrib>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:65535 +msgid "<primary><acronym>CARP</acronym></primary>" +msgstr "" + +#. (itstool) path: sect1/indexterm +#: book.translate.xml:65535 +msgid "<primary>Common Address Redundancy Protocol</primary>" +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"The Common Address Redundancy Protocol (<acronym>CARP</acronym>) allows " +"multiple hosts to share the same <acronym>IP</acronym> address and Virtual " +"Host ID (<acronym>VHID</acronym>) in order to provide <firstterm>high " +"availability</firstterm> for one or more services. This means that one or " +"more hosts can fail, and the other hosts will transparently take over so " +"that users do not see a service failure." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"In addition to the shared <acronym>IP</acronym> address, each host has its " +"own <acronym>IP</acronym> address for management and configuration. All of " +"the machines that share an <acronym>IP</acronym> address have the same " +"<acronym>VHID</acronym>. The <acronym>VHID</acronym> for each virtual " +"<acronym>IP</acronym> address must be unique across the broadcast domain of " +"the network interface." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"High availability using <acronym>CARP</acronym> is built into FreeBSD, " +"though the steps to configure it vary slightly depending upon the FreeBSD " +"version. This section provides the same example configuration for versions " +"before and equal to or after FreeBSD 10." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"This example configures failover support with three hosts, all with unique " +"<acronym>IP</acronym> addresses, but providing the same web content. It has " +"two different masters named <systemitem>hosta.example.org</systemitem> and " +"<systemitem>hostb.example.org</systemitem>, with a shared backup named " +"<systemitem>hostc.example.org</systemitem>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"These machines are load balanced with a Round Robin <acronym>DNS</acronym> " +"configuration. The master and backup machines are configured identically " +"except for their hostnames and management <acronym>IP</acronym> addresses. " +"These servers must have the same configuration and run the same services. " +"When the failover occurs, requests to the service on the shared <acronym>IP</" +"acronym> address can only be answered correctly if the backup server has " +"access to the same content. The backup machine has two additional " +"<acronym>CARP</acronym> interfaces, one for each of the master content " +"server's <acronym>IP</acronym> addresses. When a failure occurs, the backup " +"server will pick up the failed master machine's <acronym>IP</acronym> " +"address." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Using <acronym>CARP</acronym> on FreeBSD 10 and Later" +msgstr "使用 <acronym>CARP</acronym> 於 FreeBSD 10 及之後版本" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Enable boot-time support for <acronym>CARP</acronym> by adding an entry for " +"the <filename>carp.ko</filename> kernel module in <filename>/boot/loader." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "carp_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "To load the module now without rebooting:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>kldload carp</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"For users who prefer to use a custom kernel, include the following line in " +"the custom kernel configuration file and compile the kernel as described in " +"<xref linkend=\"kernelconfig\"/>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "device\tcarp" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The hostname, management <acronym>IP</acronym> address and subnet mask, " +"shared <acronym>IP</acronym> address, and <acronym>VHID</acronym> are all " +"set by adding entries to <filename>/etc/rc.conf</filename>. This example is " +"for <systemitem>hosta.example.org</systemitem>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"hostname=\"<replaceable>hosta.example.org</replaceable>\"\n" +"ifconfig_<replaceable>em0</replaceable>=\"inet <replaceable>192.168.1.3</replaceable> netmask <replaceable>255.255.255.0</replaceable>\"\n" +"ifconfig_<replaceable>em0</replaceable>_alias0=\"inet vhid <replaceable>1</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.50</replaceable>/32\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The next set of entries are for <systemitem>hostb.example.org</systemitem>. " +"Since it represents a second master, it uses a different shared <acronym>IP</" +"acronym> address and <acronym>VHID</acronym>. However, the passwords " +"specified with <option>pass</option> must be identical as <acronym>CARP</" +"acronym> will only listen to and accept advertisements from machines with " +"the correct password." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"hostname=\"<replaceable>hostb.example.org</replaceable>\"\n" +"ifconfig_<replaceable>em0</replaceable>=\"inet <replaceable>192.168.1.4</replaceable> netmask <replaceable>255.255.255.0</replaceable>\"\n" +"ifconfig_<replaceable>em0</replaceable>_alias0=\"inet vhid <replaceable>2</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.51</replaceable>/32\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The third machine, <systemitem>hostc.example.org</systemitem>, is configured " +"to handle failover from either master. This machine is configured with two " +"<acronym>CARP</acronym> <acronym>VHID</acronym>s, one to handle the virtual " +"<acronym>IP</acronym> address for each of the master hosts. The " +"<acronym>CARP</acronym> advertising skew, <option>advskew</option>, is set " +"to ensure that the backup host advertises later than the master, since " +"<option>advskew</option> controls the order of precedence when there are " +"multiple backup servers." +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"hostname=\"hostc.example.org\"\n" +"ifconfig_<replaceable>em0</replaceable>=\"inet <replaceable>192.168.1.5</replaceable> netmask <replaceable>255.255.255.0</replaceable>\"\n" +"ifconfig_<replaceable>em0</replaceable>_alias0=\"inet vhid <replaceable>1</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.50</replaceable>/32\"\n" +"ifconfig_<replaceable>em0</replaceable>_alias1=\"inet vhid <replaceable>2</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> alias <replaceable>192.168.1.51</replaceable>/32\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Having two <acronym>CARP</acronym> <acronym>VHID</acronym>s configured means " +"that <systemitem>hostc.example.org</systemitem> will notice if either of the " +"master servers becomes unavailable. If a master fails to advertise before " +"the backup server, the backup server will pick up the shared <acronym>IP</" +"acronym> address until the master becomes available again." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:65535 +msgid "" +"Preemption is disabled by default. If preemption has been enabled, " +"<systemitem>hostc.example.org</systemitem> might not release the virtual " +"<acronym>IP</acronym> address back to the original master server. The " +"administrator can force the backup server to return the <acronym>IP</" +"acronym> address to the master with the command:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig em0 vhid 1 state backup</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Once the configuration is complete, either restart networking or reboot each " +"system. High availability is now enabled." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<acronym>CARP</acronym> functionality can be controlled via several " +"<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry> variables documented in the <citerefentry><refentrytitle>carp</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> manual pages. Other " +"actions can be triggered from <acronym>CARP</acronym> events by using " +"<citerefentry><refentrytitle>devd</refentrytitle><manvolnum>8</manvolnum></" +"citerefentry>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Using <acronym>CARP</acronym> on FreeBSD 9 and Earlier" +msgstr "使用 <acronym>CARP</acronym> 於 FreeBSD 9 及先前版本" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The configuration for these versions of FreeBSD is similar to the one " +"described in the previous section, except that a <acronym>CARP</acronym> " +"device must first be created and referred to in the configuration." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Enable boot-time support for <acronym>CARP</acronym> by loading the " +"<filename>if_carp.ko</filename> kernel module in <filename>/boot/loader." +"conf</filename>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "if_carp_load=\"YES\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "Next, on each host, create a <acronym>CARP</acronym> device:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig carp0 create</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Set the hostname, management <acronym>IP</acronym> address, the shared " +"<acronym>IP</acronym> address, and <acronym>VHID</acronym> by adding the " +"required lines to <filename>/etc/rc.conf</filename>. Since a virtual " +"<acronym>CARP</acronym> device is used instead of an alias, the actual " +"subnet mask of <literal>/24</literal> is used instead of <literal>/32</" +"literal>. Here are the entries for <systemitem>hosta.example.org</" +"systemitem>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"hostname=\"<replaceable>hosta.example.org</replaceable>\"\n" +"ifconfig_<replaceable>fxp0</replaceable>=\"inet <replaceable>192.168.1.3</replaceable> netmask <replaceable>255.255.255.0</replaceable>\"\n" +"cloned_interfaces=\"carp0\"\n" +"ifconfig_carp0=\"vhid <replaceable>1</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.50/24</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "On <systemitem>hostb.example.org</systemitem>:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"hostname=\"<replaceable>hostb.example.org</replaceable>\"\n" +"ifconfig_<replaceable>fxp0</replaceable>=\"inet <replaceable>192.168.1.4</replaceable> netmask <replaceable>255.255.255.0</replaceable>\"\n" +"cloned_interfaces=\"carp0\"\n" +"ifconfig_carp0=\"vhid <replaceable>2</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.51/24</replaceable>\"" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The third machine, <systemitem>hostc.example.org</systemitem>, is configured " +"to handle failover from either of the master hosts:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"hostname=\"<replaceable>hostc.example.org</replaceable>\"\n" +"ifconfig_<replaceable>fxp0</replaceable>=\"inet <replaceable>192.168.1.5</replaceable> netmask <replaceable>255.255.255.0</replaceable>\"\n" +"cloned_interfaces=\"carp0 carp1\"\n" +"ifconfig_carp0=\"vhid <replaceable>1</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.50/24</replaceable>\"\n" +"ifconfig_carp1=\"vhid <replaceable>2</replaceable> advskew <replaceable>100</replaceable> pass <replaceable>testpass</replaceable> <replaceable>192.168.1.51/24</replaceable>\"" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:65535 +msgid "" +"Preemption is disabled in the GENERIC FreeBSD kernel. If preemption has been " +"enabled with a custom kernel, <systemitem>hostc.example.org</systemitem> may " +"not release the <acronym>IP</acronym> address back to the original content " +"server. The administrator can force the backup server to return the " +"<acronym>IP</acronym> address to the master with the command:" +msgstr "" + +#. (itstool) path: note/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>ifconfig carp0 down && ifconfig carp0 up</userinput>" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:65535 +msgid "" +"This should be done on the <filename>carp</filename> interface which " +"corresponds to the correct host." +msgstr "" + +#. (itstool) path: part/title +#: book.translate.xml:65535 +msgid "Appendices" +msgstr "附錄" + +#. (itstool) path: appendix/title +#: book.translate.xml:65535 +msgid "Obtaining FreeBSD" +msgstr "取得 FreeBSD" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "<acronym>CD</acronym> and <acronym>DVD</acronym> Sets" +msgstr "<acronym>CD</acronym> 與 <acronym>DVD</acronym> 合集" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD <acronym>CD</acronym> and <acronym>DVD</acronym> sets are available " +"from several online retailers:" +msgstr "" + +#. (itstool) path: listitem/address +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"FreeBSD Mall, Inc.\n" +"\t <street>2420 Sand Creek Rd C-1 #347</street>\n" +"\t <city>Brentwood</city>, <state>CA</state>\n" +"\t <postcode>94513</postcode>\n" +"\t <country>USA</country>\n" +"\t Phone: <phone>+1 925 240-6652</phone>\n" +"\t Fax: <fax>+1 925 674-0821</fax>\n" +"\t Email: <email>info@freebsdmall.com</email>\n" +"\t WWW: <otheraddr xlink:href=\"http://www.freebsdmall.com/\">http://www.freebsdmall.com/</otheraddr>\n" +"\t" +msgstr "" + +#. (itstool) path: listitem/address +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"Getlinux\n" +"\t <street>78 Rue de la Croix Rochopt</street>\n" +"\t <city>Épinay-sous-Sénart</city>\n" +"\t <postcode>91860</postcode>\n" +"\t <country>France</country>\n" +"\t Email: <email>contact@getlinux.fr</email>\n" +"\t WWW: <otheraddr xlink:href=\"http://www.getlinux.fr\">http://www.getlinux.fr/</otheraddr>\n" +"\t" +msgstr "" + +#. (itstool) path: listitem/address +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"Dr. Hinner EDV\n" +"\t <street>Kochelseestr. 11</street>\n" +"\t <postcode>D-81371</postcode> <city>München</city>\n" +"\t <country>Germany</country>\n" +"\t Phone: <phone>(0177) 428 419 0</phone>\n" +"\t Email: <email>infow@hinner.de</email>\n" +"\t WWW: <otheraddr xlink:href=\"http://www.hinner.de/linux/freebsd.html\">http://www.hinner.de/linux/freebsd.html</otheraddr>\n" +"\t" +msgstr "" + +#. (itstool) path: listitem/address +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"Linux Center\n" +"\t <street>Galernaya Street, 55</street>\n" +"\t <city>Saint-Petersburg</city>\n" +"\t <postcode>190000</postcode>\n" +"\t <country>Russia</country>\n" +"\t Phone: <phone>+7-812-309-06-86</phone>\n" +"\t Email: <email>info@linuxcenter.ru</email>\n" +"\t WWW: <otheraddr xlink:href=\"http://linuxcenter.ru/shop/freebsd\">http://linuxcenter.ru/shop/freebsd</otheraddr>\n" +"\t" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "<acronym>FTP</acronym> Sites" +msgstr "<acronym>FTP</acronym> 站" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"The official sources for FreeBSD are available via anonymous <acronym>FTP</" +"acronym> from a worldwide set of mirror sites. The site <uri xlink:href=" +"\"ftp://ftp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.FreeBSD.org/pub/FreeBSD/</" +"uri> is available via <acronym>HTTP</acronym> and <acronym>FTP</acronym>. It " +"is made up of many machines operated by the project cluster administrators " +"and behind GeoDNS to direct users to the closest available mirror." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"Additionally, FreeBSD is available via anonymous <acronym>FTP</acronym> from " +"the following mirror sites. When obtaining FreeBSD via anonymous " +"<acronym>FTP</acronym>, please try to use a nearby site. The mirror sites " +"listed as <quote>Primary Mirror Sites</quote> typically have the entire " +"FreeBSD archive (all the currently available versions for each of the " +"architectures) but faster download speeds are probably available from a site " +"that is in your country or region. The regional sites carry the most recent " +"versions for the most popular architecture(s) but might not carry the entire " +"FreeBSD archive. All sites provide access via anonymous <acronym>FTP</" +"acronym> but some sites also provide access via other methods. The access " +"methods available for each site are provided in parentheses after the " +"hostname." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"<link linkend=\"central-ftp\">Central Servers</link>, <link linkend=" +"\"mirrors-primary-ftp\">Primary Mirror Sites</link>, <link linkend=\"mirrors-" +"am-ftp\">Armenia</link>, <link linkend=\"mirrors-au-ftp\">Australia</link>, " +"<link linkend=\"mirrors-at-ftp\">Austria</link>, <link linkend=\"mirrors-br-" +"ftp\">Brazil</link>, <link linkend=\"mirrors-ca-ftp\">Canada</link>, <link " +"linkend=\"mirrors-cn-ftp\">China</link>, <link linkend=\"mirrors-cz-ftp" +"\">Czech Republic</link>, <link linkend=\"mirrors-dk-ftp\">Denmark</link>, " +"<link linkend=\"mirrors-ee-ftp\">Estonia</link>, <link linkend=\"mirrors-fi-" +"ftp\">Finland</link>, <link linkend=\"mirrors-fr-ftp\">France</link>, <link " +"linkend=\"mirrors-de-ftp\">Germany</link>, <link linkend=\"mirrors-gr-ftp" +"\">Greece</link>, <link linkend=\"mirrors-hk-ftp\">Hong Kong</link>, <link " +"linkend=\"mirrors-ie-ftp\">Ireland</link>, <link linkend=\"mirrors-jp-ftp" +"\">Japan</link>, <link linkend=\"mirrors-kr-ftp\">Korea</link>, <link " +"linkend=\"mirrors-lv-ftp\">Latvia</link>, <link linkend=\"mirrors-lt-ftp" +"\">Lithuania</link>, <link linkend=\"mirrors-nl-ftp\">Netherlands</link>, " +"<link linkend=\"mirrors-nz-ftp\">New Zealand</link>, <link linkend=\"mirrors-" +"no-ftp\">Norway</link>, <link linkend=\"mirrors-pl-ftp\">Poland</link>, " +"<link linkend=\"mirrors-ru-ftp\">Russia</link>, <link linkend=\"mirrors-sa-" +"ftp\">Saudi Arabia</link>, <link linkend=\"mirrors-si-ftp\">Slovenia</link>, " +"<link linkend=\"mirrors-za-ftp\">South Africa</link>, <link linkend=" +"\"mirrors-es-ftp\">Spain</link>, <link linkend=\"mirrors-se-ftp\">Sweden</" +"link>, <link linkend=\"mirrors-ch-ftp\">Switzerland</link>, <link linkend=" +"\"mirrors-tw-ftp\">Taiwan</link>, <link linkend=\"mirrors-ua-ftp\">Ukraine</" +"link>, <link linkend=\"mirrors-uk-ftp\">United Kingdom</link>, <link linkend=" +"\"mirrors-us-ftp\">USA</link>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "(as of UTC)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"central-ftp\"/>Central Servers" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.FreeBSD." +"org/pub/FreeBSD/</link> (ftp / ftpv6 / <link xlink:href=\"http://ftp.FreeBSD." +"org/pub/FreeBSD/\">http://ftp.FreeBSD.org/pub/FreeBSD/</link> / <link xlink:" +"href=\"http://ftp.FreeBSD.org/pub/FreeBSD/\">http://ftp.FreeBSD.org/pub/" +"FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-primary-ftp\"/>Primary Mirror Sites" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>mirror-" +"admin@FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp1.FreeBSD.org/pub/FreeBSD/\">ftp://ftp1.FreeBSD." +"org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.FreeBSD." +"org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp3.FreeBSD.org/pub/FreeBSD/\">ftp://ftp3.FreeBSD." +"org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp4.FreeBSD.org/pub/FreeBSD/\">ftp://ftp4.FreeBSD." +"org/pub/FreeBSD/</link> (ftp / ftpv6 / <link xlink:href=\"http://ftp4." +"FreeBSD.org/pub/FreeBSD/\">http://ftp4.FreeBSD.org/pub/FreeBSD/</link> / " +"<link xlink:href=\"http://ftp4.FreeBSD.org/pub/FreeBSD/\">http://ftp4." +"FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp5.FreeBSD.org/pub/FreeBSD/\">ftp://ftp5.FreeBSD." +"org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp6.FreeBSD.org/pub/FreeBSD/\">ftp://ftp6.FreeBSD." +"org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp7.FreeBSD.org/pub/FreeBSD/\">ftp://ftp7.FreeBSD." +"org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp10.FreeBSD.org/pub/FreeBSD/\">ftp://ftp10." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / ftpv6 / <link xlink:href=\"http://" +"ftp10.FreeBSD.org/pub/FreeBSD/\">http://ftp10.FreeBSD.org/pub/FreeBSD/</" +"link> / <link xlink:href=\"http://ftp10.FreeBSD.org/pub/FreeBSD/\">http://" +"ftp10.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp11.FreeBSD.org/pub/FreeBSD/\">ftp://ftp11." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp13.FreeBSD.org/pub/FreeBSD/\">ftp://ftp13." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp14.FreeBSD.org/pub/FreeBSD/\">ftp://ftp14." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp14." +"FreeBSD.org/pub/FreeBSD/\">http://ftp14.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-am-ftp\"/>Armenia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@am." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp1.am.FreeBSD.org/pub/FreeBSD/\">ftp://ftp1.am." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp1.am." +"FreeBSD.org/pub/FreeBSD/\">http://ftp1.am.FreeBSD.org/pub/FreeBSD/</link> / " +"rsync)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-au-ftp\"/>Australia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@au." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.au.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.au." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.au.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.au." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp3.au.FreeBSD.org/pub/FreeBSD/\">ftp://ftp3.au." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-at-ftp\"/>Austria" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@at." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.at.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.at." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / ftpv6 / <link xlink:href=\"http://ftp." +"at.FreeBSD.org/pub/FreeBSD/\">http://ftp.at.FreeBSD.org/pub/FreeBSD/</" +"link> / <link xlink:href=\"http://ftp.at.FreeBSD.org/pub/FreeBSD/\">http://" +"ftp.at.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-br-ftp\"/>Brazil" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@br." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.br.FreeBSD.org/FreeBSD/\">ftp://ftp2.br." +"FreeBSD.org/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp2.br.FreeBSD." +"org/\">http://ftp2.br.FreeBSD.org/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/\">ftp://ftp3.br." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp4.br.FreeBSD.org/pub/FreeBSD/\">ftp://ftp4.br." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-ca-ftp\"/>Canada" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@ca." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.ca.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.ca." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.ca.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.ca." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-cn-ftp\"/>China" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@cn." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.cn." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-cz-ftp\"/>Czech Republic" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@cz." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.cz." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"ftp://ftp.cz." +"FreeBSD.org/pub/FreeBSD/\">ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/</link> / " +"<link xlink:href=\"http://ftp.cz.FreeBSD.org/pub/FreeBSD/\">http://ftp.cz." +"FreeBSD.org/pub/FreeBSD/</link> / <link xlink:href=\"http://ftp.cz.FreeBSD." +"org/pub/FreeBSD/\">http://ftp.cz.FreeBSD.org/pub/FreeBSD/</link> / rsync / " +"rsyncv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.cz.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.cz." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp2.cz." +"FreeBSD.org/pub/FreeBSD/\">http://ftp2.cz.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-dk-ftp\"/>Denmark" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@dk." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.dk.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.dk." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / ftpv6 / <link xlink:href=\"http://ftp." +"dk.FreeBSD.org/pub/FreeBSD/\">http://ftp.dk.FreeBSD.org/pub/FreeBSD/</" +"link> / <link xlink:href=\"http://ftp.dk.FreeBSD.org/pub/FreeBSD/\">http://" +"ftp.dk.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-ee-ftp\"/>Estonia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@ee." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.ee." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-fi-ftp\"/>Finland" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@fi." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.fi.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.fi." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-fr-ftp\"/>France" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@fr." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.fr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.fr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp1.fr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp1.fr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp1.fr." +"FreeBSD.org/pub/FreeBSD/\">http://ftp1.fr.FreeBSD.org/pub/FreeBSD/</link> / " +"rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp3.fr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp3.fr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp5.fr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp5.fr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp6.fr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp6.fr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp7.fr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp7.fr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp8.fr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp8.fr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-de-ftp\"/>Germany" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>de-bsd-hubs@de." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.de.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.de." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp1.de.FreeBSD.org/freebsd/\">ftp://ftp1.de." +"FreeBSD.org/freebsd/</link> (ftp / <link xlink:href=\"http://www1.de.FreeBSD." +"org/freebsd/\">http://www1.de.FreeBSD.org/freebsd/</link> / <link xlink:href=" +"\"rsync://rsync3.de.FreeBSD.org/freebsd/\">rsync://rsync3.de.FreeBSD.org/" +"freebsd/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.de." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp2.de." +"FreeBSD.org/pub/FreeBSD/\">http://ftp2.de.FreeBSD.org/pub/FreeBSD/</link> / " +"rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp4.de.FreeBSD.org/FreeBSD/\">ftp://ftp4.de." +"FreeBSD.org/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp4.de.FreeBSD." +"org/pub/FreeBSD/\">http://ftp4.de.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/\">ftp://ftp5.de." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/\">ftp://ftp7.de." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp7.de." +"FreeBSD.org/pub/FreeBSD/\">http://ftp7.de.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp8.de.FreeBSD.org/pub/FreeBSD/\">ftp://ftp8.de." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-gr-ftp\"/>Greece" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@gr." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.gr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.gr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.gr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.gr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-hk-ftp\"/>Hong Kong" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.hk.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.hk." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-ie-ftp\"/>Ireland" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@ie." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp3.ie.FreeBSD.org/pub/FreeBSD/\">ftp://ftp3.ie." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / rsync)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-jp-ftp\"/>Japan" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@jp." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.jp." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.jp." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp3.jp." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp4.jp." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp5.jp." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp6.jp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp6.jp." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp7.jp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp7.jp." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp8.jp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp8.jp." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp9.jp.FreeBSD.org/pub/FreeBSD/\">ftp://ftp9.jp." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-kr-ftp\"/>Korea" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@kr." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.kr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.kr.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.kr." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp2.kr." +"FreeBSD.org/pub/FreeBSD/\">http://ftp2.kr.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-lv-ftp\"/>Latvia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@lv." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.lv.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.lv." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp.lv." +"FreeBSD.org/pub/FreeBSD/\">http://ftp.lv.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-lt-ftp\"/>Lithuania" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@lt." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.lt.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.lt." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp.lt." +"FreeBSD.org/pub/FreeBSD/\">http://ftp.lt.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-nl-ftp\"/>Netherlands" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@nl." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.nl." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp.nl." +"FreeBSD.org/os/FreeBSD/\">http://ftp.nl.FreeBSD.org/os/FreeBSD/</link> / " +"rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.nl.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.nl." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-nz-ftp\"/>New Zealand" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.nz." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp.nz." +"FreeBSD.org/pub/FreeBSD/\">http://ftp.nz.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-no-ftp\"/>Norway" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@no." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.no.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.no." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / rsync)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-pl-ftp\"/>Poland" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@pl." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.pl." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "ftp2.pl.FreeBSD.org" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-ru-ftp\"/>Russia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@ru." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.ru." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp.ru." +"FreeBSD.org/FreeBSD/\">http://ftp.ru.FreeBSD.org/FreeBSD/</link> / rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.ru.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.ru." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp2.ru." +"FreeBSD.org/pub/FreeBSD/\">http://ftp2.ru.FreeBSD.org/pub/FreeBSD/</link> / " +"rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp4.ru.FreeBSD.org/pub/FreeBSD/\">ftp://ftp4.ru." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp5.ru.FreeBSD.org/pub/FreeBSD/\">ftp://ftp5.ru." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp5.ru." +"FreeBSD.org/pub/FreeBSD/\">http://ftp5.ru.FreeBSD.org/pub/FreeBSD/</link> / " +"rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp6.ru.FreeBSD.org/pub/FreeBSD/\">ftp://ftp6.ru." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-sa-ftp\"/>Saudi Arabia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>ftpadmin@isu.net." +"sa</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.isu.net.sa/pub/ftp.freebsd.org/\">ftp://ftp.isu." +"net.sa/pub/ftp.freebsd.org/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-si-ftp\"/>Slovenia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@si." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.si.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.si." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-za-ftp\"/>South Africa" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@za." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.za.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.za." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.za.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.za." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp4.za.FreeBSD.org/pub/FreeBSD/\">ftp://ftp4.za." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-es-ftp\"/>Spain" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@es." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.es.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.es." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp.es." +"FreeBSD.org/pub/FreeBSD/\">http://ftp.es.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp3.es.FreeBSD.org/pub/FreeBSD/\">ftp://ftp3.es." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-se-ftp\"/>Sweden" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@se." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.se.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.se." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.se." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"rsync://ftp2.se." +"FreeBSD.org/\">rsync://ftp2.se.FreeBSD.org/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp3.se.FreeBSD.org/pub/FreeBSD/\">ftp://ftp3.se." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp4.se.FreeBSD.org/pub/FreeBSD/\">ftp://ftp4.se." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"ftp://ftp4.se." +"FreeBSD.org/pub/FreeBSD/\">ftp://ftp4.se.FreeBSD.org/pub/FreeBSD/</link> / " +"<link xlink:href=\"http://ftp4.se.FreeBSD.org/pub/FreeBSD/\">http://ftp4.se." +"FreeBSD.org/pub/FreeBSD/</link> / <link xlink:href=\"http://ftp4.se.FreeBSD." +"org/pub/FreeBSD/\">http://ftp4.se.FreeBSD.org/pub/FreeBSD/</link> / <link " +"xlink:href=\"rsync://ftp4.se.FreeBSD.org/pub/FreeBSD/\">rsync://ftp4.se." +"FreeBSD.org/pub/FreeBSD/</link> / <link xlink:href=\"rsync://ftp4.se.FreeBSD." +"org/pub/FreeBSD/\">rsync://ftp4.se.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp6.se.FreeBSD.org/pub/FreeBSD/\">ftp://ftp6.se." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp6.se." +"FreeBSD.org/pub/FreeBSD/\">http://ftp6.se.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-ch-ftp\"/>Switzerland" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@ch." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.ch.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.ch." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp.ch." +"FreeBSD.org/pub/FreeBSD/\">http://ftp.ch.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-tw-ftp\"/>Taiwan" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@tw." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"ftp://ftp.tw." +"FreeBSD.org/pub/FreeBSD/\">ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/</link> / " +"rsync / rsyncv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"ftp://ftp2.tw." +"FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/</link> / " +"<link xlink:href=\"http://ftp2.tw.FreeBSD.org/pub/FreeBSD/\">http://ftp2.tw." +"FreeBSD.org/pub/FreeBSD/</link> / <link xlink:href=\"http://ftp2.tw.FreeBSD." +"org/pub/FreeBSD/\">http://ftp2.tw.FreeBSD.org/pub/FreeBSD/</link> / rsync / " +"rsyncv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp4.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp5.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp5.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp6.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp6.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp6.tw." +"FreeBSD.org/\">http://ftp6.tw.FreeBSD.org/</link> / rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp7.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp7.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp8.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp8.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp11.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp11.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp11.tw." +"FreeBSD.org/FreeBSD/\">http://ftp11.tw.FreeBSD.org/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp12.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp12.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp13.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp13.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp14.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp14.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp15.tw.FreeBSD.org/pub/FreeBSD/\">ftp://ftp15.tw." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-ua-ftp\"/>Ukraine" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.ua." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp.ua." +"FreeBSD.org/pub/FreeBSD/\">http://ftp.ua.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp6.ua.FreeBSD.org/pub/FreeBSD/\">ftp://ftp6.ua." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp6.ua." +"FreeBSD.org/pub/FreeBSD\">http://ftp6.ua.FreeBSD.org/pub/FreeBSD</link> / " +"<link xlink:href=\"rsync://ftp6.ua.FreeBSD.org/FreeBSD/\">rsync://ftp6.ua." +"FreeBSD.org/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp7.ua.FreeBSD.org/pub/FreeBSD/\">ftp://ftp7.ua." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-uk-ftp\"/>United Kingdom" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@uk." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/\">ftp://ftp.uk." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.uk.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.uk." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"rsync://ftp2.uk." +"FreeBSD.org/ftp.freebsd.org/pub/FreeBSD/\">rsync://ftp2.uk.FreeBSD.org/ftp." +"freebsd.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp3.uk.FreeBSD.org/pub/FreeBSD/\">ftp://ftp3.uk." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/\">ftp://ftp4.uk." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/\">ftp://ftp5.uk." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "<anchor xml:id=\"mirrors-us-ftp\"/>USA" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"In case of problems, please contact the hostmaster <email>hostmaster@us." +"FreeBSD.org</email> for this domain." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp1.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp1.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp2.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp2.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp3.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp3.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp4.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp4.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / ftpv6 / <link xlink:href=\"http://" +"ftp4.us.FreeBSD.org/pub/FreeBSD/\">http://ftp4.us.FreeBSD.org/pub/FreeBSD/</" +"link> / <link xlink:href=\"http://ftp4.us.FreeBSD.org/pub/FreeBSD/\">http://" +"ftp4.us.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp5.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp5.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp6.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp6.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp8.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp8.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp10.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp10.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp11.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp11.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp13.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp13.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp13.us." +"FreeBSD.org/pub/FreeBSD/\">http://ftp13.us.FreeBSD.org/pub/FreeBSD/</link> / " +"rsync)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp14.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp14.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp / <link xlink:href=\"http://ftp14.us." +"FreeBSD.org/pub/FreeBSD/\">http://ftp14.us.FreeBSD.org/pub/FreeBSD/</link>)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"ftp://ftp15.us.FreeBSD.org/pub/FreeBSD/\">ftp://ftp15.us." +"FreeBSD.org/pub/FreeBSD/</link> (ftp)" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Using <application>Subversion</application>" +msgstr "使用 <application>Subversion</application>" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"As of July 2012, FreeBSD uses <application>Subversion</application> as the " +"only version control system for storing all of FreeBSD's source code, " +"documentation, and the Ports Collection." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:65535 +msgid "" +"<application>Subversion</application> is generally a developer tool. Users " +"may prefer to use <command>freebsd-update</command> (<xref linkend=" +"\"updating-upgrading-freebsdupdate\"/>) to update the FreeBSD base system, " +"and <command>portsnap</command> (<xref linkend=\"ports-using\"/>) to update " +"the FreeBSD Ports Collection." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"This section demonstrates how to install <application>Subversion</" +"application> on a FreeBSD system and use it to create a local copy of a " +"FreeBSD repository. Additional information on the use of " +"<application>Subversion</application> is included." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Root <acronym>SSL</acronym> Certificates" +msgstr "根 <acronym>SSL</acronym> 憑證" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Installing <package role=\"port\">security/ca_root_nss</package> allows " +"<application>Subversion</application> to verify the identity of " +"<acronym>HTTPS</acronym> repository servers. The root <acronym>SSL</acronym> " +"certificates can be installed from a port:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/ports/security/ca_root_nss</userinput>\n" +"<prompt>#</prompt> <userinput>make install clean</userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "or as a package:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>pkg install ca_root_nss</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "<application>Svnlite</application>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"A lightweight version of <application>Subversion</application> is already " +"installed on FreeBSD as <command>svnlite</command>. The port or package " +"version of <application>Subversion</application> is only needed if the " +"Python or Perl <acronym>API</acronym> is needed, or if a later version of " +"Subversion is desired." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The only difference from normal <application>Subversion</application> use is " +"that the command name is <literal>svnlite</literal>." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Installation" +msgstr "安裝" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"If <command>svnlite</command> is unavailable or the full version of " +"<application>Subversion</application> is needed, then it must be installed." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<application>Subversion</application> can be installed from the Ports " +"Collection:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<application>Subversion</application> can also be installed as a package:" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Running <application>Subversion</application>" +msgstr "執行 <application>Subversion</application>" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"To fetch a clean copy of the sources into a local directory, use " +"<command>svn</command>. The files in this directory are called a " +"<emphasis>local working copy</emphasis>." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:65535 +msgid "" +"Move or delete an existing destination directory before using " +"<command>checkout</command> for the first time." +msgstr "" + +#. (itstool) path: warning/para +#: book.translate.xml:65535 +msgid "" +"Checkout over an existing non-<command>svn</command> directory can cause " +"conflicts between the existing files and those brought in from the " +"repository." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<application>Subversion</application> uses <acronym>URL</acronym>s to " +"designate a repository, taking the form of <replaceable>protocol://hostname/" +"path</replaceable>. The first component of the path is the FreeBSD " +"repository to access. There are three different repositories, <literal>base</" +"literal> for the FreeBSD base system source code, <literal>ports</literal> " +"for the Ports Collection, and <literal>doc</literal> for documentation. For " +"example, the URL <literal>https://svn.FreeBSD.org/ports/head/</literal> " +"specifies the main branch of the ports repository, using the <literal>https</" +"literal> protocol." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"A checkout from a given repository is performed with a command like this:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>svn checkout https://svn.FreeBSD.org/<replaceable>repository</replaceable>/<replaceable>branch</replaceable> <replaceable>lwcdir</replaceable></userinput>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<replaceable>repository</replaceable> is one of the Project repositories: " +"<literal>base</literal>, <literal>ports</literal>, or <literal>doc</literal>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<replaceable>branch</replaceable> depends on the repository used. " +"<literal>ports</literal> and <literal>doc</literal> are mostly updated in " +"the <literal>head</literal> branch, while <literal>base</literal> maintains " +"the latest version of -CURRENT under <literal>head</literal> and the " +"respective latest versions of the -STABLE branches under <literal>stable/9</" +"literal> (9.<replaceable>x</replaceable>) and <literal>stable/10</literal> " +"(10.<replaceable>x</replaceable>)." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<replaceable>lwcdir</replaceable> is the target directory where the contents " +"of the specified branch should be placed. This is usually <filename>/usr/" +"ports</filename> for <literal>ports</literal>, <filename>/usr/src</filename> " +"for <literal>base</literal>, and <filename>/usr/doc</filename> for " +"<literal>doc</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"This example checks out the Ports Collection from the FreeBSD repository " +"using the <acronym>HTTPS</acronym> protocol, placing the local working copy " +"in <filename>/usr/ports</filename>. If <filename>/usr/ports</filename> is " +"already present but was not created by <command>svn</command>, remember to " +"rename or delete it before the checkout." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Because the initial checkout must download the full branch of the remote " +"repository, it can take a while. Please be patient." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"After the initial checkout, the local working copy can be updated by running:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "<prompt>#</prompt> <userinput>svn update <replaceable>lwcdir</replaceable></userinput>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"To update <filename>/usr/ports</filename> created in the example above, use:" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The update is much quicker than a checkout, only transferring files that " +"have changed." +msgstr "" + +#. (itstool) path: para/buildtarget +#: book.translate.xml:65535 +msgid "update" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"An alternate way of updating the local working copy after checkout is " +"provided by the <filename>Makefile</filename> in the <filename>/usr/ports</" +"filename>, <filename>/usr/src</filename>, and <filename>/usr/doc</filename> " +"directories. Set <varname>SVN_UPDATE</varname> and use the <_:buildtarget-1/" +"> target. For example, to update <filename>/usr/src</filename>:" +msgstr "" + +#. (itstool) path: sect2/screen +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"<prompt>#</prompt> <userinput>cd /usr/src</userinput>\n" +"<prompt>#</prompt> <userinput>make update SVN_UPDATE=yes</userinput>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "<application>Subversion</application> Mirror Sites" +msgstr "<application>Subversion</application> 鏡像站" + +#. (itstool) path: sect2/indexterm +#: book.translate.xml:65535 +msgid "" +"<primary>Subversion Repository</primary> <secondary>Mirror Sites</secondary>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "The FreeBSD <application>Subversion</application> repository is:" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "svn.FreeBSD.org" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"This is a publicly accessible mirror network that uses GeoDNS to select an " +"appropriate back end server. To view the FreeBSD <application>Subversion</" +"application> repositories through a browser, use <link xlink:href=\"https://" +"svnweb.FreeBSD.org/\">https://svnweb.FreeBSD.org/</link>." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:65535 +msgid "" +"The FreeBSD <application>Subversion</application> mirrors previously used " +"self-signed SSL certificates documented in this chapter. As of July 14, " +"2015, all mirrors now use an official SSL certificate that will be " +"recognized by <application>Subversion</application> if the <package role=" +"\"port\">security/ca_root_nss</package> port is installed. The legacy self-" +"signed certificates and server names are still available but are deprecated " +"and no longer supported." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"For those without the <package role=\"port\">security/ca_root_nss</package> " +"port installed, the SHA1 and SHA256 fingerprints are:" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Hash" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Fingerprint" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "SHA1" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<literal>E9:37:73:80:B5:32:1B:93:92:94:98:17:59:F0:FA:A2:5F:1E:DE:B9</" +"literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "SHA256" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<literal>D5:27:1C:B6:55:E6:A8:7D:48:D5:0C:F0:DA:9D:51:60:D7:42:6A:F2:05:" +"F1:8A:47:BE:78:A1:3A:72:06:92:60</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<acronym>HTTPS</acronym> is the preferred protocol, providing protection " +"against another computer pretending to be the FreeBSD mirror (commonly known " +"as a <quote>man in the middle</quote> attack) or otherwise trying to send " +"bad content to the end user." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"If <literal>https</literal> cannot be used due to firewall or other " +"problems, <literal>svn</literal> is the next choice, with slightly faster " +"transfers. When neither can be used, use <literal>http</literal>." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"For those still using deprecated server names, the SHA1 and SHA256 " +"fingerprints will be one of:" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Legacy-SHA1" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<literal>1C:BD:85:95:11:9F:EB:75:A5:4B:C8:A3:FE:08:E4:02:73:06:1E:61</" +"literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<literal>F6:44:AA:B9:03:89:0E:3E:8C:4D:4D:14:F0:27:E6:C7:C1:8B:17:C5</" +"literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Legacy-SHA256" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<literal>47:35:A9:09:A3:AB:FA:20:33:36:43:C5:1A:D6:E6:FB:EB:C0:C0:83:37:" +"D4:46:9C:A0:AB:89:7F:C2:9C:4C:A3</literal>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<literal>48:3C:84:DB:7C:27:1B:FA:D5:0B:A0:D7:E0:4C:79:AA:A3:8E:A3:FA:84:" +"E6:32:34:7D:EB:30:E6:11:01:CF:BE</literal>" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Seeing one of these legacy certificate fingerprints means it is likely that " +"a deprecated server name is being used." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"For other information about using <application>Subversion</application>, " +"please see the <quote>Subversion Book</quote>, titled <link xlink:href=" +"\"http://svnbook.red-bean.com/\">Version Control with Subversion</link>, or " +"the <link xlink:href=\"http://subversion.apache.org/docs/\">Subversion " +"Documentation</link>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Using <application>rsync</application>" +msgstr "使用 <application>rsync</application>" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"These sites make FreeBSD available through the rsync protocol. The " +"<application>rsync</application> utility works in much the same way as the " +"<citerefentry><refentrytitle>rcp</refentrytitle><manvolnum>1</manvolnum></" +"citerefentry> command, but has more options and uses the rsync remote-update " +"protocol which transfers only the differences between two sets of files, " +"thus greatly speeding up the synchronization over the network. This is most " +"useful for mirror sites of the FreeBSD <acronym>FTP</acronym> server. The " +"<application>rsync</application> suite is available for many operating " +"systems, on FreeBSD, see the <package>net/rsync</package> port or use the " +"package." +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Czech Republic" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "rsync://ftp.cz.FreeBSD.org/" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Available collections:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "ftp: A partial mirror of the FreeBSD <acronym>FTP</acronym> server." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "FreeBSD: A full mirror of the FreeBSD <acronym>FTP</acronym> server." +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Netherlands" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "rsync://ftp.nl.FreeBSD.org/" +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Russia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "rsync://ftp.mtu.ru/" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD-Archive: The mirror of FreeBSD Archive <acronym>FTP</acronym> server." +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Sweden" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "rsync://ftp4.se.freebsd.org/" +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Taiwan" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "rsync://ftp.tw.FreeBSD.org/" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "rsync://ftp2.tw.FreeBSD.org/" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "rsync://ftp6.tw.FreeBSD.org/" +msgstr "" + +#. (itstool) path: varlistentry/term +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "United Kingdom" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "rsync://rsync.mirrorservice.org/" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"ftp.freebsd.org: A full mirror of the FreeBSD <acronym>FTP</acronym> server." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "United States of America" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "rsync://ftp-master.FreeBSD.org/" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "This server may only be used by FreeBSD primary mirror sites." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD: The master archive of the FreeBSD <acronym>FTP</acronym> server." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "acl: The FreeBSD master ACL list." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "rsync://ftp13.FreeBSD.org/" +msgstr "" + +#. (itstool) path: appendix/title +#: book.translate.xml:65535 +msgid "Bibliography" +msgstr "參考書目" + +#. (itstool) path: appendix/para +#: book.translate.xml:65535 +msgid "" +"While manual pages provide a definitive reference for individual pieces of " +"the FreeBSD operating system, they seldom illustrate how to put the pieces " +"together to make the whole operating system run smoothly. For this, there is " +"no substitute for a good book or users' manual on <trademark class=" +"\"registered\">UNIX</trademark> system administration." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Books Specific to FreeBSD" +msgstr "FreeBSD 相關書籍" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "International books:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://jdli.tw.FreeBSD.org/publication/book/freebsd2/" +"index.htm\">Using FreeBSD</link> (in Traditional Chinese), published by " +"<link xlink:href=\"http://www.drmaster.com.tw/\">Drmaster</link>, 1997. ISBN " +"9-578-39435-7." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD Unleashed (Simplified Chinese translation), published by <link xlink:" +"href=\"http://www.hzbook.com/\">China Machine Press</link>. ISBN " +"7-111-10201-0." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD From Scratch Second Edition (in Simplified Chinese), published by " +"China Machine Press. ISBN 7-111-10286-X." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD Handbook Second Edition (Simplified Chinese translation), published " +"by <link xlink:href=\"http://www.ptpress.com.cn/\">Posts & Telecom " +"Press</link>. ISBN 7-115-10541-3." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD & Windows (in Simplified Chinese), published by <link xlink:href=" +"\"http://www.tdpress.com/\">China Railway Publishing House</link>. ISBN " +"7-113-03845-X" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD Internet Services HOWTO (in Simplified Chinese), published by China " +"Railway Publishing House. ISBN 7-113-03423-3" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD (in Japanese), published by CUTT. ISBN 4-906391-22-2 C3055 P2400E." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.shoeisha.com/book/Detail.asp?" +"bid=650\">Complete Introduction to FreeBSD</link> (in Japanese), published " +"by <link xlink:href=\"http://www.shoeisha.co.jp/\">Shoeisha Co., Ltd</link>. " +"ISBN 4-88135-473-6 P3600E." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785." +"html\">Personal UNIX Starter Kit FreeBSD</link> (in Japanese), published by " +"<link xlink:href=\"http://www.ascii.co.jp/\">ASCII</link>. ISBN " +"4-7561-1733-3 P3000E." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD Handbook (Japanese translation), published by <link xlink:href=" +"\"http://www.ascii.co.jp/\">ASCII</link>. ISBN 4-7561-1580-2 P3800E." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD mit Methode (in German), published by <link xlink:href=\"http://www." +"cul.de\">Computer und Literatur Verlag</link>/Vertrieb Hanser, 1998. ISBN " +"3-932311-31-0." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.mitp.de/vmi/mitp/detail/pWert/1343/\"> FreeBSD " +"de Luxe</link> (in German), published by <link xlink:href=\"http://www.mitp." +"de\">Verlag Modere Industrie</link>, 2003. ISBN 3-8266-1343-0." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.pc.mycom.co.jp/FreeBSD/install-manual.html" +"\">FreeBSD Install and Utilization Manual</link> (in Japanese), published by " +"<link xlink:href=\"http://www.pc.mycom.co.jp/\">Mainichi Communications Inc." +"</link>, 1998. ISBN 4-8399-0112-0." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo <emphasis><link " +"xlink:href=\"http://maxwell.itb.ac.id/\">Building Internet Server with " +"FreeBSD</link></emphasis> (in Indonesia Language), published by <link xlink:" +"href=\"http://www.elexmedia.co.id/\">Elex Media Komputindo</link>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Absolute BSD: The Ultimate Guide to FreeBSD (Traditional Chinese " +"translation), published by <link xlink:href=\"http://www.grandtech.com.tw/" +"\">GrandTech Press</link>, 2003. ISBN 986-7944-92-5." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.twbsd.org/cht/book/\">The FreeBSD 6.0 Book</" +"link> (in Traditional Chinese), published by Drmaster, 2006. ISBN " +"9-575-27878-X." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "English language books:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.absoluteFreeBSD.com/\">Absolute FreeBSD, 2nd " +"Edition: The Complete Guide to FreeBSD</link>, published by <link xlink:href=" +"\"http://www.nostarch.com/\">No Starch Press</link>, 2007. ISBN: " +"978-1-59327-151-0" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.freebsdmall.com/cgi-bin/fm/bsdcomp\"> The " +"Complete FreeBSD</link>, published by <link xlink:href=\"http://www.oreilly." +"com/\">O'Reilly</link>, 2003. ISBN: 0596005164" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.freebsd-corp-net-guide.com/\">The FreeBSD " +"Corporate Networker's Guide</link>, published by <link xlink:href=\"http://" +"www.awl.com/aw/\">Addison-Wesley</link>, 2000. ISBN: 0201704811" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://andrsn.stanford.edu/FreeBSD/introbook/\"> FreeBSD: " +"An Open-Source Operating System for Your Personal Computer</link>, published " +"by The Bit Tree Press, 2001. ISBN: 0971204500" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Teach Yourself FreeBSD in 24 Hours, published by <link xlink:href=\"http://" +"www.samspublishing.com/\">Sams</link>, 2002. ISBN: 0672324245" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD 6 Unleashed, published by <link xlink:href=\"http://www." +"samspublishing.com/\">Sams</link>, 2006. ISBN: 0672328755" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD: The Complete Reference, published by <link xlink:href=\"http://" +"books.mcgraw-hill.com\">McGrawHill</link>, 2003. ISBN: 0072224096" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Users' Guides" +msgstr "使用指南" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Ohio State University has written a <link xlink:href=\"http://www.cs.duke." +"edu/csl/docs/unix_course/\">UNIX Introductory Course</link> which is " +"available online in HTML and PostScript format." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"An Italian <link xlink:href=\"@@URL_RELPREFIX@@/doc/it_IT.ISO8859-15/books/" +"unix-introduction/index.html\">translation</link> of this document is " +"available as part of the FreeBSD Italian Documentation Project." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.jp.FreeBSD.org/\">Jpman Project, Japan FreeBSD " +"Users Group</link>. <link xlink:href=\"http://www.pc.mycom.co.jp/FreeBSD/urm." +"html\">FreeBSD User's Reference Manual</link> (Japanese translation). <link " +"xlink:href=\"http://www.pc.mycom.co.jp/\">Mainichi Communications Inc.</" +"link>, 1998. ISBN4-8399-0088-4 P3800E." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.ed.ac.uk/\">Edinburgh University</link> has " +"written an <link xlink:href=\"http://unixhelp.ed.ac.uk/\">Online Guide</" +"link> for newcomers to the UNIX environment." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Administrators' Guides" +msgstr "管理指南" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.jp.FreeBSD.org/\">Jpman Project, Japan FreeBSD " +"Users Group</link>. <link xlink:href=\"http://www.pc.mycom.co.jp/FreeBSD/sam." +"html\">FreeBSD System Administrator's Manual</link> (Japanese translation). " +"<link xlink:href=\"http://www.pc.mycom.co.jp/\">Mainichi Communications Inc." +"</link>, 1998. ISBN4-8399-0109-0 P3300E." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Dreyfus, Emmanuel. <link xlink:href=\"http://www.eyrolles.com/Informatique/" +"Livre/9782212114638/\">Cahiers de l'Admin: BSD</link> 2nd Ed. (in French), " +"Eyrolles, 2004. ISBN 2-212-11463-X" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Programmers' Guides" +msgstr "開發指南" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD Programmer's " +"Reference Manual</emphasis>. O'Reilly & Associates, Inc., 1994. ISBN " +"1-56592-078-3" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD Programmer's " +"Supplementary Documents</emphasis>. O'Reilly & Associates, Inc., 1994. " +"ISBN 1-56592-079-1" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Harbison, Samuel P. and Steele, Guy L. Jr. <emphasis>C: A Reference Manual</" +"emphasis>. 4th Ed. Prentice Hall, 1995. ISBN 0-13-326224-3" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Kernighan, Brian and Dennis M. Ritchie. <emphasis>The C Programming " +"Language</emphasis>. 2nd Ed. PTR Prentice Hall, 1988. ISBN 0-13-110362-8" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Lehey, Greg. <emphasis>Porting UNIX Software</emphasis>. O'Reilly & " +"Associates, Inc., 1995. ISBN 1-56592-126-7" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Plauger, P. J. <emphasis>The Standard C Library</emphasis>. Prentice Hall, " +"1992. ISBN 0-13-131509-9" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Spinellis, Diomidis. <link xlink:href=\"http://www.spinellis.gr/codereading/" +"\"><emphasis>Code Reading: The Open Source Perspective</emphasis></link>. " +"Addison-Wesley, 2003. ISBN 0-201-79940-5" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Spinellis, Diomidis. <link xlink:href=\"http://www.spinellis.gr/codequality/" +"\"><emphasis>Code Quality: The Open Source Perspective</emphasis></link>. " +"Addison-Wesley, 2006. ISBN 0-321-16607-8" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"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" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Stevens, W. Richard. <emphasis>UNIX Network Programming</emphasis>. 2nd Ed, " +"PTR Prentice Hall, 1998. ISBN 0-13-490012-X" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Operating System Internals" +msgstr "深入作業系統" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Andleigh, Prabhat K. <emphasis>UNIX System Architecture</emphasis>. Prentice-" +"Hall, Inc., 1990. ISBN 0-13-949843-5" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Jolitz, William. <quote>Porting UNIX to the 386</quote>. <emphasis>Dr. " +"Dobb's Journal</emphasis>. January 1991-July 1992." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and John " +"Quarterman <emphasis>The Design and Implementation of the 4.3BSD UNIX " +"Operating System</emphasis>. Reading, Mass. : Addison-Wesley, 1989. ISBN " +"0-201-06196-1" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Leffler, Samuel J., Marshall Kirk McKusick, <emphasis>The Design and " +"Implementation of the 4.3BSD UNIX Operating System: Answer Book</emphasis>. " +"Reading, Mass. : Addison-Wesley, 1991. ISBN 0-201-54629-9" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John " +"Quarterman. <emphasis>The Design and Implementation of the 4.4BSD Operating " +"System</emphasis>. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-54979-4" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"(Chapter 2 of this book is available <link xlink:href=\"@@URL_RELPREFIX@@/" +"doc/en_US.ISO8859-1/books/design-44bsd/book.html\">online</link> as part of " +"the FreeBSD Documentation Project.)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Marshall Kirk McKusick, George V. Neville-Neil <emphasis>The Design and " +"Implementation of the FreeBSD Operating System</emphasis>. Boston, Mass. : " +"Addison-Wesley, 2004. ISBN 0-201-70245-2" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Marshall Kirk McKusick, George V. Neville-Neil, Robert N. M. Watson " +"<emphasis>The Design and Implementation of the FreeBSD Operating System, 2nd " +"Ed.</emphasis>. Westford, Mass. : Pearson Education, Inc., 2014. ISBN " +"0-321-96897-2" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 1: The Protocols</" +"emphasis>. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63346-9" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Schimmel, Curt. <emphasis>Unix Systems for Modern Architectures</emphasis>. " +"Reading, Mass. : Addison-Wesley, 1994. ISBN 0-201-63338-8" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 3: TCP for " +"Transactions, HTTP, NNTP and the UNIX Domain Protocols</emphasis>. Reading, " +"Mass. : Addison-Wesley, 1996. ISBN 0-201-63495-3" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Vahalia, Uresh. <emphasis>UNIX Internals -- The New Frontiers</emphasis>. " +"Prentice Hall, 1996. ISBN 0-13-101908-2" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Wright, Gary R. and W. Richard Stevens. <emphasis>TCP/IP Illustrated, Volume " +"2: The Implementation</emphasis>. Reading, Mass. : Addison-Wesley, 1995. " +"ISBN 0-201-63354-X" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Security Reference" +msgstr "安全性參考文獻" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Cheswick, William R. and Steven M. Bellovin. <emphasis>Firewalls and " +"Internet Security: Repelling the Wily Hacker</emphasis>. Reading, Mass. : " +"Addison-Wesley, 1995. ISBN 0-201-63357-4" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Garfinkel, Simson. <emphasis>PGP Pretty Good Privacy</emphasis> O'Reilly " +"& Associates, Inc., 1995. ISBN 1-56592-098-8" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Hardware Reference" +msgstr "硬體參考文獻" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Anderson, Don and Tom Shanley. <emphasis>Pentium Processor System " +"Architecture</emphasis>. 2nd Ed. Reading, Mass. : Addison-Wesley, 1995. ISBN " +"0-201-40992-5" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Ferraro, Richard F. <emphasis>Programmer's Guide to the EGA, VGA, and Super " +"VGA Cards</emphasis>. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN " +"0-201-62490-7" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Intel Corporation publishes documentation on their CPUs, chipsets and " +"standards on their <link xlink:href=\"http://developer.intel.com/" +"\">developer web site</link>, usually as PDF files." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Shanley, Tom. <emphasis>80486 System Architecture</emphasis>. 3rd Ed. " +"Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40994-1" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Shanley, Tom. <emphasis>ISA System Architecture</emphasis>. 3rd Ed. Reading, " +"Mass. : Addison-Wesley, 1995. ISBN 0-201-40996-8" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Shanley, Tom. <emphasis>PCI System Architecture</emphasis>. 4th Ed. Reading, " +"Mass. : Addison-Wesley, 1999. ISBN 0-201-30974-2" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Van Gilluwe, Frank. <emphasis>The Undocumented PC</emphasis>, 2nd Ed. " +"Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Messmer, Hans-Peter. <emphasis>The Indispensable PC Hardware Book</" +"emphasis>, 4th Ed. Reading, Mass : Addison-Wesley Pub. Co., 2002. ISBN " +"0-201-59616-4" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "<trademark class=\"registered\">UNIX</trademark> History" +msgstr "<trademark class=\"registered\">UNIX</trademark> 歷史" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Lion, John <emphasis>Lion's Commentary on UNIX, 6th Ed. With Source Code</" +"emphasis>. ITP Media Group, 1996. ISBN 1573980137" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Raymond, Eric S. <emphasis>The New Hacker's Dictionary, 3rd edition</" +"emphasis>. MIT Press, 1996. ISBN 0-262-68092-0. Also known as the <link " +"xlink:href=\"http://www.catb.org/~esr/jargon/html/index.html\">Jargon File</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Salus, Peter H. <emphasis>A quarter century of UNIX</emphasis>. Addison-" +"Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Simon Garfinkel, Daniel Weise, Steven Strassmann. <emphasis>The UNIX-HATERS " +"Handbook</emphasis>. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1. " +"Out of print, but available <link xlink:href=\"http://www.simson.net/ref/ugh." +"pdf\">online</link>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Don Libes, Sandy Ressler <emphasis>Life with UNIX</emphasis> — special " +"edition. Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>The BSD family tree</emphasis>. <uri xlink:href=\"https://svnweb." +"freebsd.org/base/head/share/misc/bsd-family-tree?view=co\">https://svnweb." +"freebsd.org/base/head/share/misc/bsd-family-tree?view=co</uri> or <link " +"xlink:href=\"file://localhost/usr/share/misc/bsd-family-tree\"><filename>/" +"usr/share/misc/bsd-family-tree</filename></link> on a FreeBSD machine." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Networked Computer Science Technical Reports Library</emphasis>. " +"<uri xlink:href=\"http://www.ncstrl.org/\">http://www.ncstrl.org/</uri>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Old BSD releases from the Computer Systems Research group (CSRG)</" +"emphasis>. <uri xlink:href=\"http://www.mckusick.com/csrg/\">http://www." +"mckusick.com/csrg/</uri>: The 4CD set covers all BSD versions from 1BSD to " +"4.4BSD and 4.4BSD-Lite2 (but not 2.11BSD, unfortunately). The last disk also " +"holds the final sources plus the SCCS files." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Periodicals, Journals, and Magazines" +msgstr "期刊與雜誌" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.admin-magazin.de/\">Admin Magazin</link> (in " +"German), published by Medialinx AG. ISSN: 2190-1066" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.bsdmag.org/\">BSD Magazine</link>, published " +"by Software Press Sp. z o.o. SK. ISSN: 1898-9144" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.bsdnow.tv/\">BSD Now — Video Podcast</link>, " +"published by Jupiter Broadcasting LLC" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://bsdtalk.blogspot.com/\">BSD Talk Podcast</link>, " +"by Will Backman" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://freebsdjournal.com/\">FreeBSD Journal</link>, " +"published by S&W Publishing, sponsored by The FreeBSD Foundation. ISBN: " +"978-0-615-88479-0" +msgstr "" + +#. (itstool) path: appendix/title +#: book.translate.xml:65535 +msgid "Resources on the Internet" +msgstr "網路資源" + +#. (itstool) path: appendix/para +#: book.translate.xml:65535 +msgid "" +"The rapid pace of FreeBSD progress makes print media impractical as a means " +"of following the latest developments. Electronic resources are the best, if " +"not often the only, way to stay informed of the latest advances. Since " +"FreeBSD is a volunteer effort, the user community itself also generally " +"serves as a <quote>technical support department</quote> of sorts, with " +"electronic mail, web forums, and USENET news being the most effective way of " +"reaching that community." +msgstr "" + +#. (itstool) path: appendix/para +#: book.translate.xml:65535 +msgid "" +"The most important points of contact with the FreeBSD user community are " +"outlined below. Please send other resources not mentioned here to the <link " +"xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc\">FreeBSD " +"documentation project mailing list</link> so that they may also be included." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Websites" +msgstr "網站" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"https://forums.FreeBSD.org/\">The FreeBSD Forums</link> " +"provide a web based discussion forum for FreeBSD questions and technical " +"discussion." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://planet.freebsdish.org/\">Planet FreeBSD</link> " +"offers an aggregation feed of dozens of blogs written by FreeBSD developers. " +"Many developers use this to post quick notes about what they are working on, " +"new patches, and other works in progress." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"The <link xlink:href=\"http://www.youtube.com/bsdconferences" +"\">BSDConferences YouTube Channel</link> provides a collection of high " +"quality videos from BSD conferences around the world. This is a great way to " +"watch key developers give presentations about new work in FreeBSD." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Mailing Lists" +msgstr "郵遞論壇 (Mailing List)" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"The mailing lists are the most direct way of addressing questions or opening " +"a technical discussion to a concentrated FreeBSD audience. There are a wide " +"variety of lists on a number of different FreeBSD topics. Sending questions " +"to the most appropriate mailing list will invariably assure a faster and " +"more accurate response." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"The charters for the various lists are given at the bottom of this document. " +"<emphasis>Please read the charter before joining or sending mail to any " +"list</emphasis>. Most list subscribers receive many hundreds of FreeBSD " +"related messages every day, and the charters and rules for use are meant to " +"keep the signal-to-noise ratio of the lists high. To do less would see the " +"mailing lists ultimately fail as an effective communications medium for the " +"Project." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>To test the ability to send email to FreeBSD lists, send a test " +"message to <link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/" +"freebsd-test\">freebsd-test</link>.</emphasis> Please do not send test " +"messages to any other list." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"When in doubt about what list to post a question to, see <link xlink:href=" +"\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/freebsd-questions\">How to " +"get best results from the FreeBSD-questions mailing list</link>." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"Before posting to any list, please learn about how to best use the mailing " +"lists, such as how to help avoid frequently-repeated discussions, by reading " +"the <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/" +"mailing-list-faq\">Mailing List Frequently Asked Questions</link> (FAQ) " +"document." +msgstr "" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"Archives are kept for all of the mailing lists and can be searched using the " +"<link xlink:href=\"@@URL_RELPREFIX@@/search/index.html\">FreeBSD World Wide " +"Web server</link>. The keyword searchable archive offers an excellent way of " +"finding answers to frequently asked questions and should be consulted before " +"posting a question. Note that this also means that messages sent to FreeBSD " +"mailing lists are archived in perpetuity. When protecting privacy is a " +"concern, consider using a disposable secondary email address and posting " +"only public information." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "List Summary" +msgstr "論壇摘要" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>General lists:</emphasis> The following are general lists which " +"anyone is free (and encouraged) to join:" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "List" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-advocacy" +"\">freebsd-advocacy</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "FreeBSD Evangelism" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce" +"\">freebsd-announce</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Important events and Project milestones (moderated)" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-arch" +"\">freebsd-arch</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Architecture and design discussions" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"bugbusters\">freebsd-bugbusters</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Discussions pertaining to the maintenance of the FreeBSD problem report " +"database and related tools" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-bugs" +"\">freebsd-bugs</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Bug reports" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-chat" +"\">freebsd-chat</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Non-technical items related to the FreeBSD community" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-chromium" +"\">freebsd-chromium</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "FreeBSD-specific Chromium issues" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-current" +"\">freebsd-current</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussion concerning the use of FreeBSD-CURRENT" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-isp" +"\">freebsd-isp</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Issues for Internet Service Providers using FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-jobs" +"\">freebsd-jobs</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "FreeBSD employment and consulting opportunities" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"questions\">freebsd-questions</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "User questions and technical support" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"security-notifications\">freebsd-security-notifications</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Security notifications (moderated)" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-stable" +"\">freebsd-stable</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussion concerning the use of FreeBSD-STABLE" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-test" +"\">freebsd-test</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Where to send test messages instead of to one of the actual lists" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Technical lists:</emphasis> The following lists are for technical " +"discussion. Read the charter for each list carefully before joining or " +"sending mail to one as there are firm guidelines for their use and content." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-acpi" +"\">freebsd-acpi</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "ACPI and power management development" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-afs" +"\">freebsd-afs</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Porting AFS to FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/aic7xxx" +"\">freebsd-aic7xxx</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Developing drivers for the <trademark class=\"registered\">Adaptec</" +"trademark> AIC 7xxx" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"amd64\">freebsd-amd64</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Porting FreeBSD to AMD64 systems (moderated)" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-apache" +"\">freebsd-apache</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussion about <application>Apache</application> related ports" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-arm" +"\">freebsd-arm</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Porting FreeBSD to <trademark class=\"registered\">ARM</trademark> processors" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-atm" +"\">freebsd-atm</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Using ATM networking with FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"bluetooth\">freebsd-bluetooth</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Using <trademark class=\"registered\">Bluetooth</trademark> technology in " +"FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-cloud" +"\">freebsd-cloud</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "FreeBSD on cloud platforms (EC2, GCE, Azure, etc.)" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-cluster" +"\">freebsd-cluster</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Using FreeBSD in a clustered environment" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-database" +"\">freebsd-database</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussing database use and development under FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-desktop" +"\">freebsd-desktop</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Using and improving FreeBSD on the desktop" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-doc" +"\">freebsd-doc</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Creating FreeBSD related documents" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-drivers" +"\">freebsd-drivers</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Writing device drivers for FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-dtrace" +"\">freebsd-dtrace</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Using and working on DTrace in FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-eclipse" +"\">freebsd-eclipse</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"FreeBSD users of Eclipse IDE, tools, rich client applications and ports." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-embedded" +"\">freebsd-embedded</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Using FreeBSD in embedded applications" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-eol" +"\">freebsd-eol</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Peer support of FreeBSD-related software that is no longer supported by the " +"FreeBSD Project." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"emulation\">freebsd-emulation</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Emulation of other systems such as Linux/<trademark class=\"registered\">MS-" +"DOS</trademark>/<trademark class=\"registered\">Windows</trademark>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"enlightenment\">freebsd-enlightenment</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Porting <application>Enlightenment</application> and " +"<application>Enlightenment</application> applications" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-firewire" +"\">freebsd-firewire</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"FreeBSD <trademark class=\"registered\">FireWire</trademark> (iLink, IEEE " +"1394) technical discussion" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-fortran" +"\">freebsd-fortran</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Fortran on FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-fs" +"\">freebsd-fs</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "File systems" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-games" +"\">freebsd-games</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Support for Games on FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-gecko" +"\">freebsd-gecko</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<application>Gecko Rendering Engine</application> issues" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-geom" +"\">freebsd-geom</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "GEOM-specific discussions and implementations" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-git" +"\">freebsd-git</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussion of git use in the FreeBSD project" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-gnome" +"\">freebsd-gnome</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Porting <application>GNOME</application> and <application>GNOME</" +"application> applications" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers" +"\">freebsd-hackers</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "General technical discussion" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-hardware" +"\">freebsd-hardware</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "General discussion of hardware for running FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-i18n" +"\">freebsd-i18n</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "FreeBSD Internationalization" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"ia32\">freebsd-ia32</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"FreeBSD on the IA-32 (<trademark class=\"registered\">Intel</trademark> x86) " +"platform" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"ia64\">freebsd-ia64</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Porting FreeBSD to <trademark class=\"registered\">Intel</trademark>'s " +"upcoming IA64 systems" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"infiniband\">freebsd-infiniband</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Infiniband on FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-ipfw" +"\">freebsd-ipfw</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Technical discussion concerning the redesign of the IP firewall code" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-isdn" +"\">freebsd-isdn</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "ISDN developers" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-jail" +"\">freebsd-jail</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Discussion about the <citerefentry><refentrytitle>jail</" +"refentrytitle><manvolnum>8</manvolnum></citerefentry> facility" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-java" +"\">freebsd-java</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<trademark>Java</trademark> developers and people porting <trademark>JDK</" +"trademark>s to FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-lfs" +"\">freebsd-lfs</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Porting LFS to FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-mips" +"\">freebsd-mips</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Porting FreeBSD to <trademark class=\"registered\">MIPS</trademark>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-mobile" +"\">freebsd-mobile</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussions about mobile computing" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-mono" +"\">freebsd-mono</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Mono and C# applications on FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"multimedia\">freebsd-multimedia</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Multimedia applications" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-new-bus" +"\">freebsd-new-bus</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Technical discussions about bus architecture" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-net" +"\">freebsd-net</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Networking discussion and TCP/IP source code" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-numerics" +"\">freebsd-numerics</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussions of high quality implementation of libm functions" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-office" +"\">freebsd-office</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Office applications on FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"performance\">freebsd-performance</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Performance tuning questions for high performance/load installations" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-perl" +"\">freebsd-perl</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Maintenance of a number of Perl-related ports" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-pf" +"\">freebsd-pf</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussion and questions about the packet filter firewall system" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-pkg" +"\">freebsd-pkg</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Binary package management and package tools discussion" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-pkg-" +"fallout\">freebsd-pkg-fallout</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Fallout logs from package building" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-pkgbase" +"\">freebsd-pkgbase</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Packaging the FreeBSD base system" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"platforms\">freebsd-platforms</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Concerning ports to non <trademark class=\"registered\">Intel</trademark> " +"architecture platforms" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports" +"\">freebsd-ports</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussion of the Ports Collection" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-" +"announce\">freebsd-ports-announce</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Important news and instructions about the Ports Collection (moderated)" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-" +"bugs\">freebsd-ports-bugs</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussion of the ports bugs/PRs" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-ppc" +"\">freebsd-ppc</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Porting FreeBSD to the <trademark class=\"registered\">PowerPC</trademark>" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-proliant" +"\">freebsd-proliant</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Technical discussion of FreeBSD on HP ProLiant server platforms" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-python" +"\">freebsd-python</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "FreeBSD-specific Python issues" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-rc" +"\">freebsd-rc</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Discussion related to the <filename>rc.d</filename> system and its " +"development" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-realtime" +"\">freebsd-realtime</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Development of realtime extensions to FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-ruby" +"\">freebsd-ruby</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "FreeBSD-specific Ruby discussions" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-scsi" +"\">freebsd-scsi</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "The SCSI subsystem" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-security" +"\">freebsd-security</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Security issues affecting FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-small" +"\">freebsd-small</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Using FreeBSD in embedded applications (obsolete; use <link xlink:href=" +"\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-embedded\">freebsd-" +"embedded</link> instead)" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"snapshots\">freebsd-snapshots</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "FreeBSD Development Snapshot Announcements" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"sparc64\">freebsd-sparc64</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Porting FreeBSD to <trademark class=\"registered\">SPARC</trademark> based " +"systems" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"standards\">freebsd-standards</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"FreeBSD's conformance to the C99 and the <trademark class=\"registered" +"\">POSIX</trademark> standards" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"sysinstall\">freebsd-sysinstall</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<citerefentry><refentrytitle>sysinstall</refentrytitle><manvolnum>8</" +"manvolnum></citerefentry> development" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-tcltk" +"\">freebsd-tcltk</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "FreeBSD-specific Tcl/Tk discussions" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-testing" +"\">freebsd-testing</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Testing on FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-tex" +"\">freebsd-tex</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Porting <application>TeX</application> and its applications to FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-threads" +"\">freebsd-threads</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Threading in FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-tilera" +"\">freebsd-tilera</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Porting FreeBSD to the Tilera family of CPUs" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"tokenring\">freebsd-tokenring</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Support Token Ring in FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"toolchain\">freebsd-toolchain</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Maintenance of FreeBSD's integrated toolchain" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"translators\">freebsd-translators</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Translating FreeBSD documents and programs" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"transport\">freebsd-transport</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussions of transport level network protocols in FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-usb" +"\">freebsd-usb</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussing FreeBSD support for USB" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"virtualization\">freebsd-virtualization</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussion of various virtualization techniques supported by FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-vuxml" +"\">freebsd-vuxml</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussion on VuXML infrastructure" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-" +"x11\">freebsd-x11</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Maintenance and support of X11 on FreeBSD" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-xen" +"\">freebsd-xen</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"Discussion of the FreeBSD port to <trademark>Xen</trademark> — " +"implementation and usage" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-xfce" +"\">freebsd-xfce</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<application>XFCE</application> for FreeBSD — porting and maintaining" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-zope" +"\">freebsd-zope</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<application>Zope</application> for FreeBSD — porting and maintaining" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Limited lists:</emphasis> The following lists are for more " +"specialized (and demanding) audiences and are probably not of interest to " +"the general public. It is also a good idea to establish a presence in the " +"technical lists before joining one of these limited lists in order to " +"understand the communications etiquette involved." +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-hubs" +"\">freebsd-hubs</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "People running mirror sites (infrastructural support)" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-user-" +"groups\">freebsd-user-groups</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "User group coordination" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-wip-" +"status\">freebsd-wip-status</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "FreeBSD Work-In-Progress Status" +msgstr "" + +#. (itstool) path: row/entry +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-wireless" +"\">freebsd-wireless</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Discussions of 802.11 stack, tools, device driver development" +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Digest lists:</emphasis> All of the above lists are available in a " +"digest format. Once subscribed to a list, the digest options can be changed " +"in the account options section." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>SVN lists:</emphasis> The following lists are for people " +"interested in seeing the log messages for changes to various areas of the " +"source tree. They are <emphasis>Read-Only</emphasis> lists and should not " +"have mail sent to them." +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Source area" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "Area Description (source for)" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-doc-all" +"\">svn-doc-all</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<filename>/usr/doc</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the doc Subversion repository (except for <filename>user</" +"filename>, <filename>projects</filename> and <filename>translations</" +"filename>)" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-doc-head" +"\">svn-doc-head</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <quote>head</quote> branch of the doc Subversion " +"repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-doc-projects" +"\">svn-doc-projects</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<filename>/usr/doc/projects</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <filename>projects</filename> area of the doc Subversion " +"repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-doc-svnadmin" +"\">svn-doc-svnadmin</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the administrative scripts, hooks, and other configuration " +"data of the doc Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-ports-all" +"\">svn-ports-all</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<filename>/usr/ports</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "All changes to the ports Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-ports-head" +"\">svn-ports-head</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <quote>head</quote> branch of the ports Subversion " +"repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-ports-" +"svnadmin\">svn-ports-svnadmin</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the administrative scripts, hooks, and other configuration " +"data of the ports Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-all" +"\">svn-src-all</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<filename>/usr/src</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the src Subversion repository (except for <filename>user</" +"filename> and <filename>projects</filename>)" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-head" +"\">svn-src-head</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <quote>head</quote> branch of the src Subversion " +"repository (the FreeBSD-CURRENT branch)" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-projects" +"\">svn-src-projects</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "<filename>/usr/projects</filename>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <filename>projects</filename> area of the src Subversion " +"repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-release" +"\">svn-src-release</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <filename>releases</filename> area of the src Subversion " +"repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-releng" +"\">svn-src-releng</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <filename>releng</filename> branches of the src " +"Subversion repository (the security / release engineering branches)" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-stable" +"\">svn-src-stable</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "All changes to the all stable branches of the src Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-" +"stable-6\">svn-src-stable-6</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <filename>stable/6</filename> branch of the src " +"Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-" +"stable-7\">svn-src-stable-7</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <filename>stable/7</filename> branch of the src " +"Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-" +"stable-8\">svn-src-stable-8</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <filename>stable/8</filename> branch of the src " +"Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-" +"stable-9\">svn-src-stable-9</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <filename>stable/9</filename> branch of the src " +"Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-" +"stable-10\">svn-src-stable-10</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the <filename>stable/10</filename> branch of the src " +"Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-stable-" +"other\">svn-src-stable-other</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the older <filename>stable</filename> branches of the src " +"Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-svnadmin" +"\">svn-src-svnadmin</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the administrative scripts, hooks, and other configuration " +"data of the src Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-user" +"\">svn-src-user</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"All changes to the experimental <filename>user</filename> area of the src " +"Subversion repository" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/svn-src-vendor" +"\">svn-src-vendor</link>" +msgstr "" + +#. (itstool) path: row/entry +#: book.translate.xml:65535 +msgid "All changes to the vendor work area of the src Subversion repository" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "How to Subscribe" +msgstr "如何訂閱" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"To subscribe to a list, click the list name at <link xlink:href=\"http://" +"lists.FreeBSD.org/mailman/listinfo\">http://lists.FreeBSD.org/mailman/" +"listinfo</link>. The page that is displayed should contain all of the " +"necessary subscription instructions for that list." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"To actually post to a given list, send mail to <email><replaceable>listname</" +"replaceable>@FreeBSD.org</email>. It will then be redistributed to mailing " +"list members world-wide." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"To unsubscribe from a list, click on the URL found at the bottom of every " +"email received from the list. It is also possible to send an email to " +"<email><replaceable>listname</replaceable>-unsubscribe@FreeBSD.org</email> " +"to unsubscribe." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"It is important to keep discussion in the technical mailing lists on a " +"technical track. To only receive important announcements, instead join the " +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce" +"\">FreeBSD announcements mailing list</link>, which is intended for " +"infrequent traffic." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "List Charters" +msgstr "論壇章程" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>All</emphasis> FreeBSD mailing lists have certain basic rules " +"which must be adhered to by anyone using them. Failure to comply with these " +"guidelines will result in two (2) written warnings from the FreeBSD " +"Postmaster <email>postmaster@FreeBSD.org</email>, after which, on a third " +"offense, the poster will removed from all FreeBSD mailing lists and filtered " +"from further posting to them. We regret that such rules and measures are " +"necessary at all, but today's Internet is a pretty harsh environment, it " +"would seem, and many fail to appreciate just how fragile some of its " +"mechanisms are." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "Rules of the road:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"The topic of any posting should adhere to the basic charter of the list it " +"is posted to. If the list is about technical issues, the posting should " +"contain technical discussion. Ongoing irrelevant chatter or flaming only " +"detracts from the value of the mailing list for everyone on it and will not " +"be tolerated. For free-form discussion on no particular topic, the <link " +"xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-chat" +"\">FreeBSD chat mailing list</link> is freely available and should be used " +"instead." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"No posting should be made to more than 2 mailing lists, and only to 2 when a " +"clear and obvious need to post to both lists exists. For most lists, there " +"is already a great deal of subscriber overlap and except for the most " +"esoteric mixes (say <quote>-stable & -scsi</quote>), there really is no " +"reason to post to more than one list at a time. If a message is received " +"with multiple mailing lists on the <literal>Cc</literal> line, trim the " +"<literal>Cc</literal> line before replying. <emphasis>The person who replies " +"is still responsible for cross-posting, no matter who the originator might " +"have been.</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Personal attacks and profanity (in the context of an argument) are not " +"allowed, and that includes users and developers alike. Gross breaches of " +"netiquette, like excerpting or reposting private mail when permission to do " +"so was not and would not be forthcoming, are frowned upon but not " +"specifically enforced. <emphasis>However</emphasis>, there are also very few " +"cases where such content would fit within the charter of a list and it would " +"therefore probably rate a warning (or ban) on that basis alone." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Advertising of non-FreeBSD related products or services is strictly " +"prohibited and will result in an immediate ban if it is clear that the " +"offender is advertising by spam." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "<emphasis>Individual list charters:</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>ACPI and power management development</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Andrew File System</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "This list is for discussion on porting and using AFS from CMU/Transarc" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Important events / milestones</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for people interested only in occasional " +"announcements of significant FreeBSD events. This includes announcements " +"about snapshots and other releases. It contains announcements of new FreeBSD " +"capabilities. It may contain calls for volunteers etc. This is a low volume, " +"strictly moderated mailing list." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Architecture and design discussions</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This list is for discussion of the FreeBSD architecture. Messages will " +"mostly be kept strictly technical in nature. Examples of suitable topics are:" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"How to re-vamp the build system to have several customized builds running at " +"the same time." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "What needs to be fixed with VFS to make Heidemann layers work." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"How do we change the device driver interface to be able to use the same " +"drivers cleanly on many buses and architectures." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "How to write a network driver." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis><trademark class=\"registered\">Bluetooth</trademark> in FreeBSD</" +"emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the forum where FreeBSD's <trademark class=\"registered\">Bluetooth</" +"trademark> users congregate. Design issues, implementation details, patches, " +"bug reports, status reports, feature requests, and all matters related to " +"<trademark class=\"registered\">Bluetooth</trademark> are fair game." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Coordination of the Problem Report handling effort</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"The purpose of this list is to serve as a coordination and discussion forum " +"for the Bugmeister, his Bugbusters, and any other parties who have a genuine " +"interest in the PR database. This list is not for discussions about specific " +"bugs, patches or PRs." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Bug reports</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for reporting bugs in FreeBSD. Whenever possible, " +"bugs should be submitted using the <link xlink:href=\"https://bugs.freebsd." +"org/bugzilla/enter_bug.cgi\">web interface</link> to it." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Non technical items related to the FreeBSD community</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This list contains the overflow from the other lists about non-technical, " +"social information. It includes discussion about whether Jordan looks like a " +"toon ferret or not, whether or not to type in capitals, who is drinking too " +"much coffee, where the best beer is brewed, who is brewing beer in their " +"basement, and so on. Occasional announcements of important events (such as " +"upcoming parties, weddings, births, new jobs, etc) can be made to the " +"technical lists, but the follow ups should be directed to this -chat list." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>FreeBSD-specific Chromium issues</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a list for the discussion of Chromium support for FreeBSD. This is a " +"technical list to discuss development and installation of Chromium." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Running FreeBSD on various cloud platforms</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This list discusses running FreeBSD on Amazon EC2, Google Compute Engine, " +"Microsoft Azure, and other cloud computing platforms." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "freebsd-core" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>FreeBSD core team</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is an internal mailing list for use by the core members. Messages can " +"be sent to it when a serious FreeBSD-related matter requires arbitration or " +"high-level scrutiny." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Discussions about the use of FreeBSD-CURRENT</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for users of FreeBSD-CURRENT. It includes warnings " +"about new features coming out in -CURRENT that will affect the users, and " +"instructions on steps that must be taken to remain -CURRENT. Anyone running " +"<quote>CURRENT</quote> must subscribe to this list. This is a technical " +"mailing list for which strictly technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Using and improving FreeBSD on the desktop</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a forum for discussion of FreeBSD on the desktop. It is primarily a " +"place for desktop porters and users to discuss issues and improve FreeBSD's " +"desktop support." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Documentation Project</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This mailing list is for the discussion of issues and projects related to " +"the creation of documentation for FreeBSD. The members of this mailing list " +"are collectively referred to as <quote>The FreeBSD Documentation Project</" +"quote>. It is an open list; feel free to join and contribute!" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Writing device drivers for FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a forum for technical discussions related to device drivers on " +"FreeBSD. It is primarily a place for device driver writers to ask questions " +"about how to write device drivers using the APIs in the FreeBSD kernel." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Using and working on DTrace in FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"DTrace is an integrated component of FreeBSD that provides a framework for " +"understanding the kernel as well as user space programs at run time. The " +"mailing list is an archived discussion for developers of the code as well as " +"those using it." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>FreeBSD users of Eclipse IDE, tools, rich client applications and " +"ports.</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"The intention of this list is to provide mutual support for everything to do " +"with choosing, installing, using, developing and maintaining the Eclipse " +"IDE, tools, rich client applications on the FreeBSD platform and assisting " +"with the porting of Eclipse IDE and plugins to the FreeBSD environment." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"The intention is also to facilitate exchange of information between the " +"Eclipse community and the FreeBSD community to the mutual benefit of both." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Although this list is focused primarily on the needs of Eclipse users it " +"will also provide a forum for those who would like to develop FreeBSD " +"specific applications using the Eclipse framework." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Using FreeBSD in embedded applications</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This list discusses topics related to using FreeBSD in embedded systems. " +"This is a technical mailing list for which strictly technical content is " +"expected. For the purpose of this list, embedded systems are those computing " +"devices which are not desktops and which usually serve a single purpose as " +"opposed to being general computing environments. Examples include, but are " +"not limited to, all kinds of phone handsets, network equipment such as " +"routers, switches and PBXs, remote measuring equipment, PDAs, Point Of Sale " +"systems, and so on." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Emulation of other systems such as Linux/<trademark class=" +"\"registered\">MS-DOS</trademark>/<trademark class=\"registered\">Windows</" +"trademark></emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a forum for technical discussions related to running programs " +"written for other operating systems on FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Enlightenment</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussions concerning the <application>Enlightenment</application> Desktop " +"Environment for FreeBSD systems. This is a technical mailing list for which " +"strictly technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Peer support of FreeBSD-related software that is no longer " +"supported by the FreeBSD Project.</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This list is for those interested in providing or making use of peer support " +"of FreeBSD-related software for which the FreeBSD Project no longer provides " +"official support in the form of security advisories and patches." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis><trademark class=\"registered\">FireWire</trademark> (iLink, IEEE " +"1394)</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a mailing list for discussion of the design and implementation of a " +"<trademark class=\"registered\">FireWire</trademark> (aka IEEE 1394 aka " +"iLink) subsystem for FreeBSD. Relevant topics specifically include the " +"standards, bus devices and their protocols, adapter boards/cards/chips sets, " +"and the architecture and implementation of code for their proper support." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Fortran on FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for discussion of Fortran related ports on FreeBSD: " +"compilers, libraries, scientific and engineering applications from laptops " +"to HPC clusters." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>File systems</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussions concerning FreeBSD filesystems. This is a technical mailing list " +"for which strictly technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Games on FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a technical list for discussions related to bringing games to " +"FreeBSD. It is for individuals actively working on porting games to FreeBSD, " +"to bring up problems or discuss alternative solutions. Individuals " +"interested in following the technical discussion are also welcome." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Gecko Rendering Engine</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a forum about <application>Gecko</application> applications using " +"FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussion centers around Gecko Ports applications, their installation, " +"their development and their support within FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>GEOM</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussions specific to GEOM and related implementations. This is a " +"technical mailing list for which strictly technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Use of git in the FreeBSD project</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussions of how to use git in FreeBSD infrastructure including the github " +"mirror and other uses of git for project collaboration. Discussion area for " +"people using git against the FreeBSD github mirror. People wanting to get " +"started with the mirror or git in general on FreeBSD can ask here." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>GNOME</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussions concerning The <application>GNOME</application> Desktop " +"Environment for FreeBSD systems. This is a technical mailing list for which " +"strictly technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Infiniband on FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Technical mailing list discussing Infiniband, OFED, and OpenSM on FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>IP Firewall</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the forum for technical discussions concerning the redesign of the " +"IP firewall code in FreeBSD. This is a technical mailing list for which " +"strictly technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Porting FreeBSD to IA64</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a technical mailing list for individuals actively working on porting " +"FreeBSD to the IA-64 platform from <trademark class=\"registered\">Intel</" +"trademark>, to bring up problems or discuss alternative solutions. " +"Individuals interested in following the technical discussion are also " +"welcome." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>ISDN Communications</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for people discussing the development of ISDN " +"support for FreeBSD." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis><trademark>Java</trademark> Development</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for people discussing the development of " +"significant <trademark>Java</trademark> applications for FreeBSD and the " +"porting and maintenance of <trademark>JDK</trademark>s." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Jobs offered and sought</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a forum for posting employment notices specifically related to " +"FreeBSD and resumes from those seeking FreeBSD-related employment. This is " +"<emphasis>not</emphasis> a mailing list for general employment issues since " +"adequate forums for that already exist elsewhere." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Note that this list, like other <systemitem class=\"fqdomainname\">FreeBSD." +"org</systemitem> mailing lists, is distributed worldwide. Be clear about the " +"geographic location and the extent to which telecommuting or assistance with " +"relocation is available." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Email should use open formats only — preferably plain text, but basic " +"Portable Document Format (<acronym>PDF</acronym>), HTML, and a few others " +"are acceptable to many readers. Closed formats such as <trademark class=" +"\"registered\">Microsoft</trademark> Word (<filename>.doc</filename>) will " +"be rejected by the mailing list server." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"https://mail.kde.org/mailman/listinfo/kde-freebsd" +"\">freebsd-kde</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>KDE</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussions concerning <application>KDE</application> on FreeBSD systems. " +"This is a technical mailing list for which strictly technical content is " +"expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Technical discussions</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a forum for technical discussions related to FreeBSD. This is the " +"primary technical mailing list. It is for individuals actively working on " +"FreeBSD, to bring up problems or discuss alternative solutions. Individuals " +"interested in following the technical discussion are also welcome. This is a " +"technical mailing list for which strictly technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>General discussion of FreeBSD hardware</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"General discussion about the types of hardware that FreeBSD runs on, various " +"problems and suggestions concerning what to buy or avoid." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Mirror sites</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Announcements and discussion for people who run FreeBSD mirror sites." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Issues for Internet Service Providers</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This mailing list is for discussing topics relevant to Internet Service " +"Providers (ISPs) using FreeBSD. This is a technical mailing list for which " +"strictly technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Mono and C# applications on FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a list for discussions related to the Mono development framework on " +"FreeBSD. This is a technical mailing list. It is for individuals actively " +"working on porting Mono or C# applications to FreeBSD, to bring up problems " +"or discuss alternative solutions. Individuals interested in following the " +"technical discussion are also welcome." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Office applications on FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussion centers around office applications, their installation, their " +"development and their support within FreeBSD." +msgstr "" + +#. (itstool) path: varlistentry/term +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://lists.FreeBSD.org/mailman/listinfo/freebsd-ops-" +"announce\">freebsd-ops-announce</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Project Infrastructure Announcements</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for people interested in changes and issues related " +"to the FreeBSD.org Project infrastructure." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This moderated list is strictly for announcements: no replies, requests, " +"discussions, or opinions." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Discussions about tuning or speeding up FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This mailing list exists to provide a place for hackers, administrators, and/" +"or concerned parties to discuss performance related topics pertaining to " +"FreeBSD. Acceptable topics includes talking about FreeBSD installations that " +"are either under high load, are experiencing performance problems, or are " +"pushing the limits of FreeBSD. Concerned parties that are willing to work " +"toward improving the performance of FreeBSD are highly encouraged to " +"subscribe to this list. This is a highly technical list ideally suited for " +"experienced FreeBSD users, hackers, or administrators interested in keeping " +"FreeBSD fast, robust, and scalable. This list is not a question-and-answer " +"list that replaces reading through documentation, but it is a place to make " +"contributions or inquire about unanswered performance related topics." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Discussion and questions about the packet filter firewall system</" +"emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussion concerning the packet filter (pf) firewall system in terms of " +"FreeBSD. Technical discussion and user questions are both welcome. This list " +"is also a place to discuss the ALTQ QoS framework." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Binary package management and package tools discussion</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussion of all aspects of managing FreeBSD systems by using binary " +"packages to install software, including binary package toolkits and formats, " +"their development and support within FreeBSD, package repository management, " +"and third party packages." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Note that discussion of ports which fail to generate packages correctly " +"should generally be considered as ports problems, and so inappropriate for " +"this list." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Fallout logs from package building</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "All packages building failures logs from the package building clusters" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Packaging the FreeBSD base system.</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussions surrounding implementation and issues regarding packaging the " +"FreeBSD base system." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Porting to Non <trademark class=\"registered\">Intel</trademark> " +"platforms</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Cross-platform FreeBSD issues, general discussion and proposals for non " +"<trademark class=\"registered\">Intel</trademark> FreeBSD ports. This is a " +"technical mailing list for which strictly technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Discussion of <quote>ports</quote></emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussions concerning FreeBSD's <quote>ports collection</quote> (<filename>/" +"usr/ports</filename>), ports infrastructure, and general ports coordination " +"efforts. This is a technical mailing list for which strictly technical " +"content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Important news and instructions about the FreeBSD <quote>Ports " +"Collection</quote></emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Important news for developers, porters, and users of the <quote>Ports " +"Collection</quote> (<filename>/usr/ports</filename>), including architecture/" +"infrastructure changes, new capabilities, critical upgrade instructions, and " +"release engineering information. This is a low-volume mailing list, intended " +"for announcements." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Discussion of <quote>ports</quote> bugs</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Discussions concerning problem reports for FreeBSD's <quote>ports " +"collection</quote> (<filename>/usr/ports</filename>), proposed ports, or " +"modifications to ports. This is a technical mailing list for which strictly " +"technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Technical discussion of FreeBSD on HP ProLiant server platforms</" +"emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This mailing list is to be used for the technical discussion of the usage of " +"FreeBSD on HP ProLiant servers, including the discussion of ProLiant-" +"specific drivers, management software, configuration tools, and BIOS " +"updates. As such, this is the primary place to discuss the hpasmd, hpasmcli, " +"and hpacucli modules." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Python on FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a list for discussions related to improving Python-support on " +"FreeBSD. This is a technical mailing list. It is for individuals working on " +"porting Python, its third party modules and <application>Zope</application> " +"stuff to FreeBSD. Individuals interested in following the technical " +"discussion are also welcome." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>User questions</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for questions about FreeBSD. Do not send <quote>how " +"to</quote> questions to the technical lists unless the question is quite " +"technical." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>FreeBSD-specific Ruby discussions</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a list for discussions related to the Ruby support on FreeBSD. This " +"is a technical mailing list. It is for individuals working on Ruby ports, " +"third party libraries and frameworks." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Individuals interested in the technical discussion are also welcome." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>SCSI subsystem</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for people working on the SCSI subsystem for " +"FreeBSD. This is a technical mailing list for which strictly technical " +"content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Security issues</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"FreeBSD computer security issues (DES, Kerberos, known security holes and " +"fixes, etc). This is a technical mailing list for which strictly technical " +"discussion is expected. Note that this is not a question-and-answer list, " +"but that contributions (BOTH question AND answer) to the FAQ are welcome." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Security Notifications</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Notifications of FreeBSD security problems and fixes. This is not a " +"discussion list. The discussion list is FreeBSD-security." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This list discusses topics related to unusually small and embedded FreeBSD " +"installations. This is a technical mailing list for which strictly technical " +"content is expected." +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:65535 +msgid "" +"This list has been obsoleted by <link xlink:href=\"http://lists.FreeBSD.org/" +"mailman/listinfo/freebsd-embedded\">freebsd-embedded</link>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>FreeBSD Development Snapshot Announcements</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This list provides notifications about the availability of new FreeBSD " +"development snapshots for the head/ and stable/ branches." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Discussions about the use of FreeBSD-STABLE</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for users of FreeBSD-STABLE. <quote>STABLE</quote> " +"is the branch where development continues after a RELEASE, including bug " +"fixes and new features. The ABI is kept stable for binary compatibility. It " +"includes warnings about new features coming out in -STABLE that will affect " +"the users, and instructions on steps that must be taken to remain -STABLE. " +"Anyone running <quote>STABLE</quote> should subscribe to this list. This is " +"a technical mailing list for which strictly technical content is expected." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>C99 & POSIX Conformance</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a forum for technical discussions related to FreeBSD Conformance to " +"the C99 and the POSIX standards." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Testing on FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"Technical mailing list discussing testing on FreeBSD, including ATF/Kyua, " +"test build infrastructure, port tests to FreeBSD from other operating " +"systems (NetBSD, ...), etc." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Porting <application>TeX</application> and its applications to " +"FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a technical mailing list for discussions related to TeX and its " +"applications on FreeBSD. It is for individuals actively working on porting " +"TeX to FreeBSD, to bring up problems or discuss alternative solutions. " +"Individuals interested in following the technical discussion are also " +"welcome." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Maintenance of FreeBSD's integrated toolchain</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for discussions related to the maintenance of the " +"toolchain shipped with FreeBSD. This could include the state of Clang and " +"GCC, but also pieces of software such as assemblers, linkers and debuggers." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Discussions of transport level network protocols in FreeBSD</" +"emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"The transport mailing list exists for the discussion of issues and designs " +"around the transport level protocols in the FreeBSD network stack, including " +"TCP, SCTP and UDP. Other networking topics, including driver specific and " +"network protocol issues should be discussed on the <link xlink:href=\"http://" +"lists.FreeBSD.org/mailman/listinfo/freebsd-net\">FreeBSD networking mailing " +"list</link>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Translating FreeBSD documents and programs</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"A discussion list where translators of FreeBSD documents from English into " +"other languages can talk about translation methods and tools. New members " +"are asked to introduce themselves and mention the languages they are " +"interested in translating." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Discussing FreeBSD support for USB</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a mailing list for technical discussions related to FreeBSD support " +"for USB." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>User Group Coordination List</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is the mailing list for the coordinators from each of the local area " +"Users Groups to discuss matters with each other and a designated individual " +"from the Core Team. This mail list should be limited to meeting synopsis and " +"coordination of projects that span User Groups." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Discussion of various virtualization techniques supported by " +"FreeBSD</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"A list to discuss the various virtualization techniques supported by " +"FreeBSD. On one hand the focus will be on the implementation of the basic " +"functionality as well as adding new features. On the other hand users will " +"have a forum to ask for help in case of problems or to discuss their use " +"cases." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>FreeBSD Work-In-Progress Status</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This mailing list can be used by developers to announce the creation and " +"progress of FreeBSD related work. Messages will be moderated. It is " +"suggested to send the message \"To:\" a more topical FreeBSD list and only " +"\"BCC:\" this list. This way the WIP can also be discussed on the topical " +"list, as no discussion is allowed on this list." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Look inside the archives for examples of suitable messages." +msgstr "" + +#. (itstool) path: footnote/para +#: book.translate.xml:65535 +msgid "" +"<uri xlink:href=\"http://www.freebsd.org/news/status/\">http://www.freebsd." +"org/news/status/</uri>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"An editorial digest of the messages to this list might be posted to the " +"FreeBSD website every few months as part of the Status Reports <_:footnote-1/" +">. Past reports are archived." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Discussions of 802.11 stack, tools device driver development</" +"emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"The FreeBSD-wireless list focuses on 802.11 stack (sys/net80211), device " +"driver and tools development. This includes bugs, new features and " +"maintenance." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<emphasis>Discussion of the FreeBSD port to <trademark>Xen</trademark> — " +"implementation and usage</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"A list that focuses on the FreeBSD <trademark>Xen</trademark> port. The " +"anticipated traffic level is small enough that it is intended as a forum for " +"both technical discussions of the implementation and design details as well " +"as administrative deployment issues." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>XFCE</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a forum for discussions related to bring the <application>XFCE</" +"application> environment to FreeBSD. This is a technical mailing list. It is " +"for individuals actively working on porting <application>XFCE</application> " +"to FreeBSD, to bring up problems or discuss alternative solutions. " +"Individuals interested in following the technical discussion are also " +"welcome." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<emphasis>Zope</emphasis>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"This is a forum for discussions related to bring the <application>Zope</" +"application> environment to FreeBSD. This is a technical mailing list. It is " +"for individuals actively working on porting <application>Zope</application> " +"to FreeBSD, to bring up problems or discuss alternative solutions. " +"Individuals interested in following the technical discussion are also " +"welcome." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Filtering on the Mailing Lists" +msgstr "郵遞論壇過濾項目" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"The FreeBSD mailing lists are filtered in multiple ways to avoid the " +"distribution of spam, viruses, and other unwanted emails. The filtering " +"actions described in this section do not include all those used to protect " +"the mailing lists." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"Only certain types of attachments are allowed on the mailing lists. All " +"attachments with a MIME content type not found in the list below will be " +"stripped before an email is distributed on the mailing lists." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "application/octet-stream" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "application/pdf" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "application/pgp-signature" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "application/x-pkcs7-signature" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "message/rfc822" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "multipart/alternative" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "multipart/related" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "multipart/signed" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "text/html" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "text/plain" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "text/x-diff" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "text/x-patch" +msgstr "" + +#. (itstool) path: note/para +#: book.translate.xml:65535 +msgid "" +"Some of the mailing lists might allow attachments of other MIME content " +"types, but the above list should be applicable for most of the mailing lists." +msgstr "" + +#. (itstool) path: sect2/para +#: book.translate.xml:65535 +msgid "" +"If an email contains both an HTML and a plain text version, the HTML version " +"will be removed. If an email contains only an HTML version, it will be " +"converted to plain text." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Usenet Newsgroups" +msgstr "Usenet 新聞群組" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"In addition to two FreeBSD specific newsgroups, there are many others in " +"which FreeBSD is discussed or are otherwise relevant to FreeBSD users." +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "BSD Specific Newsgroups" +msgstr "BSD 專屬新聞群組" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"news:comp.unix.bsd.freebsd.announce\">comp.unix.bsd." +"freebsd.announce</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"news:comp.unix.bsd.freebsd.misc\">comp.unix.bsd.freebsd." +"misc</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"news:de.comp.os.unix.bsd\">de.comp.os.unix.bsd</link> " +"(German)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<link xlink:href=\"news:fr.comp.os.bsd\">fr.comp.os.bsd</link> (French)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"news:it.comp.os.freebsd\">it.comp.os.freebsd</link> " +"(Italian)" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "" +"Other <trademark class=\"registered\">UNIX</trademark> Newsgroups of Interest" +msgstr "其他相關的 <trademark class=\"registered\">UNIX</trademark> 新聞群組" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<link xlink:href=\"news:comp.unix\">comp.unix</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"news:comp.unix.questions\">comp.unix.questions</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<link xlink:href=\"news:comp.unix.admin\">comp.unix.admin</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"news:comp.unix.programmer\">comp.unix.programmer</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<link xlink:href=\"news:comp.unix.shell\">comp.unix.shell</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<link xlink:href=\"news:comp.unix.misc\">comp.unix.misc</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<link xlink:href=\"news:comp.unix.bsd\">comp.unix.bsd</link>" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "X Window System" +msgstr "X 視窗系統" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "<link xlink:href=\"news:comp.windows.x\">comp.windows.x</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"news:comp.windows.x.apps\">comp.windows.x.apps</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"news:comp.windows.x.announce\">comp.windows.x.announce</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"news:comp.emulators.ms-windows.wine\">comp.emulators.ms-" +"windows.wine</link>" +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Official Mirrors" +msgstr "官方鏡像站" + +#. (itstool) path: sect1/para +#: book.translate.xml:65535 +msgid "" +"<link linkend=\"central-www\">Central Servers</link>, <link linkend=" +"\"mirrors-am-www\">Armenia</link>, <link linkend=\"mirrors-au-www" +"\">Australia</link>, <link linkend=\"mirrors-at-www\">Austria</link>, <link " +"linkend=\"mirrors-ca-www\">Canada</link>, <link linkend=\"mirrors-cz-www" +"\">Czech Republic</link>, <link linkend=\"mirrors-dk-www\">Denmark</link>, " +"<link linkend=\"mirrors-fi-www\">Finland</link>, <link linkend=\"mirrors-fr-" +"www\">France</link>, <link linkend=\"mirrors-de-www\">Germany</link>, <link " +"linkend=\"mirrors-hk-www\">Hong Kong</link>, <link linkend=\"mirrors-ie-www" +"\">Ireland</link>, <link linkend=\"mirrors-jp-www\">Japan</link>, <link " +"linkend=\"mirrors-lv-www\">Latvia</link>, <link linkend=\"mirrors-lt-www" +"\">Lithuania</link>, <link linkend=\"mirrors-nl-www\">Netherlands</link>, " +"<link linkend=\"mirrors-no-www\">Norway</link>, <link linkend=\"mirrors-ru-" +"www\">Russia</link>, <link linkend=\"mirrors-si-www\">Slovenia</link>, <link " +"linkend=\"mirrors-za-www\">South Africa</link>, <link linkend=\"mirrors-es-" +"www\">Spain</link>, <link linkend=\"mirrors-se-www\">Sweden</link>, <link " +"linkend=\"mirrors-ch-www\">Switzerland</link>, <link linkend=\"mirrors-tw-www" +"\">Taiwan</link>, <link linkend=\"mirrors-uk-www\">United Kingdom</link>, " +"<link linkend=\"mirrors-us-www\">USA</link>." +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Central Servers" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.FreeBSD.org/\">http://www.FreeBSD.org/</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Armenia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www1.am.FreeBSD.org/\">http://www1.am.FreeBSD.org/" +"</link> (IPv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Australia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.au.FreeBSD.org/\">http://www.au.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www2.au.FreeBSD.org/\">http://www2.au.FreeBSD.org/" +"</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Austria" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.at.FreeBSD.org/\">http://www.at.FreeBSD.org/</" +"link> (IPv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Canada" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.ca.FreeBSD.org/\">http://www.ca.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www2.ca.FreeBSD.org/\">http://www2.ca.FreeBSD.org/" +"</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.cz.FreeBSD.org/\">http://www.cz.FreeBSD.org/</" +"link> (IPv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Denmark" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.dk.FreeBSD.org/\">http://www.dk.FreeBSD.org/</" +"link> (IPv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Finland" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.fi.FreeBSD.org/\">http://www.fi.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "France" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www1.fr.FreeBSD.org/\">http://www1.fr.FreeBSD.org/" +"</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Germany" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.de.FreeBSD.org/\">http://www.de.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Hong Kong" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.hk.FreeBSD.org/\">http://www.hk.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Ireland" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.ie.FreeBSD.org/\">http://www.ie.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Japan" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.jp.FreeBSD.org/www.FreeBSD.org/\">http://www." +"jp.FreeBSD.org/www.FreeBSD.org/</link> (IPv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Latvia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.lv.FreeBSD.org/\">http://www.lv.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Lithuania" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.lt.FreeBSD.org/\">http://www.lt.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.nl.FreeBSD.org/\">http://www.nl.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Norway" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.no.FreeBSD.org/\">http://www.no.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.ru.FreeBSD.org/\">http://www.ru.FreeBSD.org/</" +"link> (IPv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Slovenia" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.si.FreeBSD.org/\">http://www.si.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "South Africa" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.za.FreeBSD.org/\">http://www.za.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Spain" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.es.FreeBSD.org/\">http://www.es.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www2.es.FreeBSD.org/\">http://www2.es.FreeBSD.org/" +"</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.se.FreeBSD.org/\">http://www.se.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "Switzerland" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.ch.FreeBSD.org/\">http://www.ch.FreeBSD.org/</" +"link> (IPv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www2.ch.FreeBSD.org/\">http://www2.ch.FreeBSD.org/" +"</link> (IPv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www.tw.FreeBSD.org/\">http://www.tw.FreeBSD.org/</" +"link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www2.tw.FreeBSD.org/\">http://www2.tw.FreeBSD.org/" +"</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www4.tw.FreeBSD.org/\">http://www4.tw.FreeBSD.org/" +"</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www5.tw.FreeBSD.org/\">http://www5.tw.FreeBSD.org/" +"</link> (IPv6)" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www1.uk.FreeBSD.org/\">http://www1.uk.FreeBSD.org/" +"</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www3.uk.FreeBSD.org/\">http://www3.uk.FreeBSD.org/" +"</link>" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "USA" +msgstr "" + +#. (itstool) path: listitem/para +#: book.translate.xml:65535 +msgid "" +"<link xlink:href=\"http://www5.us.FreeBSD.org/\">http://www5.us.FreeBSD.org/" +"</link> (IPv6)" +msgstr "" + +#. (itstool) path: appendix/title +#: book.translate.xml:65535 +msgid "Open<acronym>PGP</acronym> Keys" +msgstr "Open<acronym>PGP</acronym> 金鑰" + +#. (itstool) path: appendix/indexterm +#: book.translate.xml:65535 +msgid "<primary>pgp keys</primary>" +msgstr "" + +#. (itstool) path: appendix/para +#: book.translate.xml:65535 +msgid "" +"The Open<acronym>PGP</acronym> keys of the <systemitem class=\"fqdomainname" +"\">FreeBSD.org</systemitem> officers are shown here. These keys can be used " +"to verify a signature or send encrypted email to one of the officers. A full " +"list of FreeBSD Open<acronym>PGP</acronym> keys is available in the <link " +"xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/pgpkeys" +"\"><acronym>PGP</acronym> Keys</link> article. The complete keyring can be " +"downloaded at <link xlink:href=\"https://www.FreeBSD.org/doc/pgpkeyring.txt" +"\">https://www.FreeBSD.org/doc/pgpkeyring.txt</link>." +msgstr "" + +#. (itstool) path: sect1/title +#: book.translate.xml:65535 +msgid "Officers" +msgstr "人員" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Security Officer Team <email>security-officer@FreeBSD.org</email>" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"\n" +"pub rsa4096/ED67ECD65DCF6AE7 2013-09-24 [expires: 2018-01-01]\n" +" Key fingerprint = 1CF7 FF6F ADF5 CA9F BE1B 8CB2 ED67 ECD6 5DCF 6AE7\n" +"uid FreeBSD Security Officer <security-officer@FreeBSD.org>\n" +"sub rsa4096/B64357A343D9CBAE 2013-09-24 [expires: 2018-01-01]\n" +"\n" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"\n" +"-----BEGIN PGP PUBLIC KEY BLOCK-----\n" +"\n" +"mQINBFJBjOYBEADuKnefrbTVFTZf9mITVx1lFAqwDHPRHZeWBr2Vq1B/Y1eKKsen\n" +"BKbK/O/CXaLuGFRn/6Ptvi9eLuWnho88qzaPU1Aa7BFRRiZlN+WrTmaDwdONJnJQ\n" +"p1LTPjqHmLVAkD7mFZe/H8Glxot62zEqY7LrEs+ZuxQ8oI51YKjhGaACvkrFMinO\n" +"09+TDey1fupVH1+yskVKQZo1zp//Hl/IrPbZKfGCxIGePQowZF7YLvl8DKPo4jI5\n" +"KO4tZ1kOPcPL2CqwhuCDy0fpUhrQZBswp6tsGx5mRJxDxfgePRBYDK4tMK+BSVsR\n" +"putIKOZ4zoBf12hYFiJ8Yd7e9cqxTiPa7AhxPbAjppiH7qJ3NJKCXOOp9DcSvrfb\n" +"ymu9cbDIPNwh/LQ1wt3T+U8QkD6a1a2kJL5+mdg03Ny+8Ej8hUyuJOEx+sxLs+JX\n" +"4TS1KRreLzxN7Ak21dNMr8361lB+Uprgi9lOBNLO31TWPABtJhIzwBOhohSqstB9\n" +"w6I2ZsPpLqUp/p9BrWlw6+UfOqNDFILZ0CqL1CyFIyrkjutXrUshqniSc/u1VbTU\n" +"RlIcufZhN3FtW1P6ktUq5ss4dqEh/QZfR1WxBYRMbKXXAN61XO8M2t44I+44DHi7\n" +"jOs1q6jrbfAli1ZGYam/5wjOJkvQ3xemP6SaDKnCKOnPHC45EAt2SEVGywARAQAB\n" +"tDdGcmVlQlNEIFNlY3VyaXR5IE9mZmljZXIgPHNlY3VyaXR5LW9mZmljZXJARnJl\n" +"ZUJTRC5vcmc+iQI9BBMBCgAnBQJSQYzmAhsDBQkIB+1BBQsJCAcDBRUKCQgLBRYC\n" +"AwEAAh4BAheAAAoJEO1n7NZdz2rnKEkQAJWJ2ctNY7vg2pqrabavfRZ4UOWrLi4A\n" +"gOMnKrsm4ozZ1mc7NVMRj0Ve8jLLHrySW5QaSmp8TcaI6twxKD8FfTOFYjBU35DU\n" +"liyRlcbZmsBk7aG561TPwaK0XnF47RyPZWKbHrO7WgiDveGx52AmBdm2VRyMBwnu\n" +"e3b5RlKnNVMMSm4RLmrolkL0SAZNAWZGG4FqFtaxPRZo7LR9fEv/NydQN91b2cR8\n" +"SnLc2F2yiVc5mq/1f/t8dMBEbNx2+NoFaqP1O+1JeGYgmA/vE9fk1oDnn1pHej8O\n" +"hoJJ9SsQEuaITvzKP9bU+5/o/UqYzAX+y8QbTthjhzpkRwjqwjuMVmp6/f/o8ivl\n" +"nzD5K1lQOP/OJAki63h5LDUC/JHYkT/XN/bbgoSNveFSGV7cdocdSpCoBaZUJ9pf\n" +"zZpqRxypRB57f7bKBCI36E42KJKJ3wo873MJeElAeo31tXi2pBvTN/Idmrl6sDCN\n" +"PWwgsIOmu4Xd2FG5lanbTsXHKebCDPh/KK51mWra5judWWFVxChsNSwRHJACBXVa\n" +"2fPsahfz4GAEVp0/VbC114m8CHrgm3nh/ZAyNjgJQN5jJ37gQjx2LFsAhW5WKK8U\n" +"0Es5YXffjLEiNOnmJ+q8IZj6Mj5lWXkbCvrqjfNTOKnzzZGws+6y4gRQkgkSY3BP\n" +"p+mpCQPjORc/iEYEEBEKAAYFAlJBjuoACgkQFdaIBMps37Jv6QCeJjxijseWZzn/\n" +"z7Cv3zSwSFMAWPwAnig7ZgzoqKqwpvnwAXsQpGSnE8K5iQIcBBABCgAGBQJSQZHe\n" +"AAoJEJLIQ0VtpqZu8r8P/jHm+xi5yMz3DVj6emMazJdXLtnnGrKTNw5xL1X10a1R\n" +"vmo+sj4J1gmL+Cy2hM6fl6r054E/BYt9GVGaIC4eYiF6DUzlcPWkwniDKfi1lNJz\n" +"NIja4qhanuGrK7EJtZXACRhUuNr2EzEm4dd3nXNaBQZv9FlIn79tk4vVho7wK7ui\n" +"IT7nseUMWDh7T0h4IVSs2LWdvP71WDx8acoyfspI35C2pKXB5GRWxnzN+wOl+V0k\n" +"Dn2fGd+nL7ZEb/c/01h6AfyYJGetCXY1omkXSzgD9KKu/RqZuxL8TMMjNN6z4SAy\n" +"MTthOHW0lTK/5h55dJYSquBQwuEAX0Z8RT8S4Nva5LKGr25IpIJuP/TxaHIgdncr\n" +"in4D0FtuG0JMOxjuzNdo2lOiMZ/lqZ75l61C68GuKAhU2Rn1toqc/NReL1yLhHoM\n" +"1o3EvovAfZmzX3sOugU2N8L+oiTnFFXezpY5Huup5KUkrX+C5EErBIVfvKjNyhhK\n" +"Fru6Jwy9z3qiGhxNUFAAzftVYhNT1lDkMNqa4jPjOrcWS6+gwVfQAo9k0p5uwPNb\n" +"Iw59RA2q/wwhZuRoai4nqN9WkgnwmWn0sS9XO87jwN3uvK0IF97MGPSXNcmAGXlx\n" +"zF3GBFHYf/bpagrvT4v+DE+gLpgfplo86oZbjDPsXGhVNu1iffC64R+vecw7r3Di\n" +"iQEcBBABCAAGBQJSRqY/AAoJEFF75hSlwe7HvwsIAJUnlLFMOBLvlBrRuxVeAO6X\n" +"8DhytdD5YlRzt866cXq6A/dw57O9qwyyDy3upJIGRy6hYlL18ngGZXv5djcw7Rch\n" +"QmvBJ9ROkmkCHLe3+fYn668nkxtgQJHWADd90MGFHkLDWa4Pbu5yJKqkTy3tqx2N\n" +"mBDEz317F6mMtyTP56QI8PVnh1p6w0McQIVctS3LOC3u4Wjbw7l3Hwof9Pl3u4BZ\n" +"L/gJz5KAozUa5TqNV4SLwtUqXBg7kipwfshXVuQekG9XfMC84GaFMqEKTExscHoF\n" +"VdSzrBKHn6VlEl1sdhcdS9aKSOsqMXB25xhBe0hOl4Ddw63j7b47XCqcyqAE5eiJ\n" +"AhwEEAEIAAYFAlJHAsIACgkQ8cUWs8g1l1OXkhAAvXUR237vXF/sZCZgG0748Dp0\n" +"eOhish/c4ODgW3JRehVWAyAlTAit/+xK6oI5xkQA+z3KO6+/bAtnDQgikAkykgpt\n" +"VeVW/6v4GGBarUTc/CTcofEpC3rsrEm1ZwPLyva3YuFFnYHATq/2Qi1a5PnSfj5C\n" +"O3fZrOgJTXsm6eNt21bH7RYF4DYi4kDNQHxtBOaEcUhcIkS1MsMz5F+/YeqOd12/\n" +"FrcIPDq8c0G3Ol+QsHFx+Y6b5Fp/HgkQem9Pzu7XkNcf7nj5UFJw+qx+BivaVYhJ\n" +"8Ugq3pXYkNkhYSy/AP/YYp7moOgpo2tY5e+fqho4pVlrHoPqWTNKJJrfYg2Mg/vP\n" +"e0nPxiCU3anmFXhfeZy87QLrA2BrO0I45StbU3uBhzT1dfNW2BIgxg+LqUZyTrZ2\n" +"qHq8TOPsnplu5Xn/UjEDQ5soTq1zDpslEjCX36R8wL3eai74HUTjstF4xq+kiXmK\n" +"bX7HhGKD9TILRjU+toOPXY0ffbS7FOUijLqOJqWEW1nBpoYoHbGfMHn2g2rNFGzz\n" +"wiLZgbL2HZsC+kDoog33s60b//A9E3yFIIiPtk668kQmiobs9Iel3RC+eOdHP8lD\n" +"gcMN/Rc/5B1S9a+wYC8VTf6KInUTq5YwC0veKbg1s+Ow7tB9ejqgxtHT7iFjR5NB\n" +"oOpVkI4UtHDpewRAW9SJAhwEEAEIAAYFAlJIEEoACgkQi+h5sChzHhzyGQ//e6o3\n" +"y+pnFTS4UWjUxFTKCtqJeqtS84jvcbXhXFGKfnXX15atLYkVoD2LcO5yvrFRNvY6\n" +"PjRkxJmLo2Lb/MpoDupRMfR1PxotFYuNYodmoHxVUun+1eIFQ5XUSiQSsIsjcUYd\n" +"EcOoZFzMfWIHZUOA1cGAtb8WL/Ql6cLcZT3fhPjEO253O8XcxKmU7sJ1sCCh3tyL\n" +"CY0dvLffA0jgxEXUYmf3DpC6p+MNkPU3EDk60OUzy4/C2HT26Lt4NR6TNcEZg6O/\n" +"lPvmD1/ATO9fAHCb4uEIkqR3VLdeg31EHND32gO/2HXc4Xp2dbV8qs+ts13w5L26\n" +"D+94PSsTwYF+85mfgu8nBhPOOn7lqWxIO/1MnOrEIVNu+K/fwh4lu8v/6PJYEYIn\n" +"LtYkDH3/LcKTsK6N/2KLbtROlHXeNKXyt0UliINteDlV9xYkn6TtzUcTrZ4Xa3HM\n" +"yN5mi+a0vptJFBPxyonMMHDAXRkLR8BexxUJqdk2aupIs0Y0Cet6Vk+8Q9bn04gl\n" +"pKjTjnnarJJsTlhrdmVobkDhbEGYB3KyrjZp2JmdYYzAbHXbdp3T7yJ4R3/7aQRg\n" +"XJIQgEHjmgFf0Wwzxs1JIN2URDZS8k2pyuI6M8ndPtJiYbwqy1Wcflz57aWYAOVf\n" +"b/G4IEsicSd1mHjYjsaMV/kp1kGrWihB/Dt79nWJAhwEEwECAAYFAlJJfnUACgkQ\n" +"cTWO1j93QHkxbA//SKb0a0wo5dTJpMp7pUL4pkCx1gR3YCZMyiJHAGnC0vHoTmxI\n" +"+6+YAU9DBFWjQk2uqqn+GW+3AxLEN08s2xYvNoxJHUB1bF43HI9lXscGmzfjDR62\n" +"cIptcWtggeMw6W66UStdFWUudwDM6WV8BTxg2LYD3upeY69GnN92HinMj90D6PMc\n" +"iQjfUdZxZAYLKEhic12dKHpWRC0PH9NIAS0EchARkZQmjyPc4trWevAyhmpqdw+H\n" +"gxh9EBH2I194SvIXVuU5Gyl/l3a/6ntEUZnitBijU3uUjRnkS5XkJfqy1MjdrJ0o\n" +"ymo8mlxOVFKV879ez10KBnE1BLe9ioylOeGQRNcyYehFE7GmzkZHbOk+Pqd1Meaf\n" +"AjNIgQxrqgh8pJ2F8Zd8pGDrYspjICGbbdR0WRNcoN4kckJruTWFQ1xr//Kfwp1b\n" +"kCQWRwYcRL/RNVVZuHGgvTiTa2wZNbWfZk3tF9cXaYHIqhYU8l7Lc1zK0Fhv2E1t\n" +"Phw4pu495RbGRAFOE14S+QmknIy+DgIkTzQ1s36vnI4SVw9zs0D4Np6d1mF1p4gi\n" +"VVrgTQnlF3poZNppCUK9Rih8s5kMnyuRruGm/Lod4jL3wcbBz4sxBkCgrc2pyU1M\n" +"SNAjM2V8c7cGLgPOqX0eVqgXJoTnlNItF07aIZyFEA6e7YeiTeXxPfU10Q2ISgQQ\n" +"EQoACgUCUk3NEAMFAXgACgkQOfuToMruuMAgxQCfScnmgUcnT0J07KNsLKLMGW/6\n" +"ffAAn2J50o8KV/wu8auCY1o6EkjpiJt/iEYEEBECAAYFAlJKlYkACgkQ20zMSyow\n" +"1ymmfwCeLqsUDHBH8JnuaJjEUYqACGWZo88An0wcNy95yGdSJtgBFXNPZQJL2gSu\n" +"iF4EEBEIAAYFAlJNSA0ACgkQUYUJaGx+XoKvBAD/bUBqzL0oZtaF7WUDXchb4yki\n" +"f0ko+zh832R2Ad0KfygBAKNEUUKOnZFLJ8GZqAXmIWktgMiWFOMSxAXDLsyionoh\n" +"iQIcBBABCAAGBQJSTYUGAAoJECC3DeE/HR5PCH4P/ic8LWEp8aJLLlOR+DSB9H3I\n" +"cES36ulQLHKmmWMc/ysR/bLhGhBqF8TM3hzvdTqj6p7zMZKThhKKVLLBxjlV2MLc\n" +"OVwhCzQow/D8EpUqQw3ufpWDYzCI7SF4nohremXjjv9FZVV80QhxLSqDfeopIBGs\n" +"ZD6v5mZn0CtT0hBXD1rowcZVo2Zdgx7/HgL4BRH19ZMiKMVdp365ZQzGlRVNTbww\n" +"fs13UTINcchA4ggbJXX5h5oUo8pbp3yXso6cMnuuawFRDu15JjQctkpaDyB0QohS\n" +"z3i5LqA912kRR1rEQjgXH8GcudfQ671FKZ+SJ7lwd+s7vdUMIfAXflCUCKMLAaFP\n" +"QB/J/ZT7FEwlO3ZeFKrWcYmkx0Af9/ieKO/ptdiOf2OX7VvE6AkReRBiqAeK9M4a\n" +"dgS1hnvs+QdPB40dTXEFRuk7+hcEqqan+ZuMhWohJlAhTHxTF8Vxl0oyNyXiXiJi\n" +"mJMTsGmvF2x+uQ/S4+7Mg8+A0oGYjwvnFC+0jWO92Ix9M3y+upxkc8KOM1/U9nq5\n" +"p7wje5MNdcCHyVTpSxvg/bDaQYopKTD6aVu94u4OlbhUXki4JnTQlwqFVkGHnpW+\n" +"BPbpQyqhY+t1QoaUWgRL+n8+WBVCqlFQF8vIoqbYGP4WxeVfylZTfSVWDoJUPKKv\n" +"bEsyhpVFj5XT70vJ866EiQIcBBABAgAGBQJSRaaeAAoJECZJ5ijF000F4jIP+weC\n" +"FBeCkY7sprDa61kp10GNF4YujiZ1QKQDgrQA9ipgv3pN+5ovC/ClzZm5baVGi+j5\n" +"zWD/blG9YZAApM/kkpAIvCPYIuQ9b+/crOUjuxyywuE2HSbaFuh66lW7Eox3NT8N\n" +"NMEl6Zry6m8RDHqTZIpwJPBiCgEcNqr/dcbtE0XgzJj94NOWSuq1URpP4wIT9aAV\n" +"Bqdj+0KQDkDk6Sqvmf59Cjt8hihvXAhOqcguKo8y262ABEO8kxwfqvRYECCE+eDE\n" +"APUEyOi/6uI0dQjQMytTWKogPIYg4wQjpG+Pa7wl7AnxOTBp4WvoS0BuCgjSYaxn\n" +"wVKHBMvxSCuDHBurLN0wqOaKSg9ib6m/Vy2vfi9ak8crXJFZ6eLrIxt73gyiozfK\n" +"Efvd6LBOJ9AeXstnubEs7ltNq9qKyW4+vR9eABmn/wABxCsHNjW+mmi8xAVhhc1K\n" +"qZC/D4vm6r8ZwrVAsmTADqcTr6A48J15FmIwcaQRQWQ4oytxTGA7rHRFVjrt3YIj\n" +"/WP62byp8s59HOKJE+mA9q7ksAvnToLfrMiNA8/18Zm4CADKUny6GLzpuKgcYwTu\n" +"cqE/zBWUszI2NrJNtaKWafdXyEAwgBxNIl1FiYF9+ntoMWlqDQROPZLYChRThJvR\n" +"nNNsT+WwcuSHSFexLl14yrPJ3MBEe7e+2Vpj9HR2iQIcBBABAgAGBQJSSFmrAAoJ\n" +"EDpFFvNRg85IHx8P/3exX3fATzNwqfININlvYjxMzuGIHdV03w2pHrOllmPX28/U\n" +"UHSQL9yRRNhzimm/9v3dvu5XHzjUzCEozoAa74DnICe8wUfju8sGmN5FKolbvSz7\n" +"VvcW4mAC5RY85zk+7luTg2wHZIIdgirTDrgPSirtYkm+qpuX/k5LAkwmYtH6gghq\n" +"v7rnYNKUChh+Ga+4yNbsdD7blWYr52UwnfT3evbgI5GqBMZEbghmqNiR2fcII6tr\n" +"NnuawH646UcucwogxPtLxLuZnslEpWiHQlAVvHlrCMoEkYqS+NRXOwZF04zTwRpL\n" +"CUlj0PxlRInvTrEpBd1KVejbkNWKK7wfyL/bF3rR9pMGWuDC32/9BfjtGgNDXJhQ\n" +"MDGntyAeQfiI3Ml5b5SA8bT5DsR/FIQDg0UDe5jjeVIEGZKunmRT/IqOLFMpZoMH\n" +"qNqWW8YrHlpN2o2c0/VqWSLzPKmocgqLwlkx5oqvn/F12xUzazGhFTFp6IXpqQVT\n" +"lkSPdDsVJuidj9ZJLMRoKfFD9tISqTocGw3suLqp8u5KZf43THWspBi4tD4IoN5r\n" +"lrLWtPnkteffyO62NZOOyg7rPUGJYlpgAMIDkXmsp58CyXqrL1/art0Ymcy5z8ea\n" +"1eUCnq/ZJJxrj+HrXuwko4fXTewf+nzSbJ2GEL/fMBkzAOKl9j5bOPAKwiD9iQIc\n" +"BBABAgAGBQJSTTdGAAoJEE2hFOXEouV/uSQP/i/yJbvVkxXlWZhk2JFhDpZaewdL\n" +"TUCkgsDeS9M7fde1Y/NbnVwSm/TtzysI6XPa5lIeXUTTlbwGiI/ZqFPDaDptUmL5\n" +"1b3cgMReW2o5zfLtnDZZHYPn8wosMFMhj2wkOXpQv7DOJBQf5MNnPHublBwY05o4\n" +"dfDBKi0GKVWl8ZkHInGvREJw7wF6ukYtnWQOIaW//qmVwokv36I2EJoooFdl7oFh\n" +"a+Pq1n3DhQAgiln6/Mz/96fn7NvYvdbQlMGluPRANVuKjfP9zQroF8BmhWQbEHZG\n" +"aLT+FsD06A/CjWlKkb3Ys/N0wDi9kQ2ez/DZhjXgBMXhJrdPmeTEHrnX701Am+2D\n" +"CSpz7bbkOayILC5gx8DWq4hjGu5JtGcpJE4AsN69dXn4r/w8IUecoGZG/CjVQyAc\n" +"RxsIc9nOJmzbJkQGrP8A26Io0/xrwOjU2gGkYR+EaR3o9Qa8tY/uZpYb3t3yh+b0\n" +"Pqn8pLOMnpo16uJni3/tIY/kiqBnGF53yVLjlekwfORXBRFZ3GNroe21OXrfbHQ7\n" +"9BytMjTBsQahfaMdFZF1QINvENdJ+PQhhx7R2g80yxj67oa0F/W0zdqYDbYnM2bt\n" +"Mw89mv/q1f0xmdtaTJXz6ZpLPY3MtDWCJ/LcKDKUQqnyS7XilD95HdFnck9GPKQe\n" +"F/mgs5YlQeQZg8cSiQEcBBABAgAGBQJTMetBAAoJEEE5xLeoRUEkcGgIAL9ZRsk/\n" +"BMWQf4tK9RTY82bihv5T5XL5ybqnXuuPMC+E2IHDR1hGE9WcFr237nyfVxdnlBKn\n" +"IUbPrghdeGAWg6ki2IWOjgy1Q46M+P69yroc6KCa3V6LdM5L/CCk5Sr7L1LbvZ9g\n" +"Mj4AkN0xGhy3NNZGsomiXZWmBOiOQ4EJwlIwtFgMCKc4KmRD/h+f+/opMW9782bN\n" +"L6txp3tk5MOUXa+Xk1gy8MzGtowL2Q+P4zxa94NSVYQ6picYFvjWGtzUJ5izdyb/\n" +"se9wLIT8p0iyPrADP+P93EjkUrH4Im4OuY9ieKc3hFsnLhnI5VLpPSy29xXCi3C5\n" +"t72Nl5dU+/JJrtyJAZwEEwECAAYFAlQUczoACgkQjw7rxHtHFslqFAwAka5jXdrV\n" +"IGHT/n2YWzGTfgy5+bJfMZXUa6fuo+zzvB4hS3MH3YMpHRjwUrpkAjTh3dFkziVU\n" +"Ns7j4+7x5uEOE9Y1Baj6DTzEAxZNwtSeCYzCA0FZ/ufuUxGfZElcrU7AN6/ep/lm\n" +"gsE3+5tak8VYJxDjgu56uEIz449Lscj4G3FO6eXhCiiWIb7+y0a9m6cZ3yE7k8fo\n" +"TVObr8xdhGzw4+YEx3/4usD89GIKwLN3LZFjndqdPnYidneJ9NCrGH9g4+DRlOkw\n" +"8LGlSFxcNLqeVBDBS2bw1G1ZSsd0NH+8deeAf9rEsmOT4CQKOWdgTnkK8O9erwvi\n" +"dUvsANlOypecGbHMo+NoS6kjR/CwPF8vDnwhEpy3N+VRZGhSD77D4LUWKBLQDisv\n" +"6HuyALmE02Lq9v5cK8fWy5cehS8hvAdn/FU0GOvPg6JowBZkyvqbOQDHIO3buAr6\n" +"NtnPdhhOd/eCOOkCPgcTAdwqWrX+l7D4SImMYjFAe9GWONAkkcRVMo6jiQIcBBAB\n" +"AgAGBQJUdXNxAAoJECZwmtY/E3EPJ80P/1AuTYo48UmvVkLd443cvaUpItzLUfrW\n" +"4q24KjiCTT63ETf1+V8RZCRreqt3mFJnZI0n8X+hSLAIPdJrJ1xtIKDoEWbQ1U8j\n" +"ClFq4FtUaqSHkQIWvW2VzGgVz2MvPTWK0EbWHdD9vhtotnYrq4H+T5cBuSyrW9Zu\n" +"Gct6zsZbC/O/iyiKQg3Kz6PtCiSPP3AHNH3ok1Nh0QsSQl1ggGp1J4gr9A0/Kcf7\n" +"lQ+/X0G7kHVxQnKzzuYI7XsV25Mp3oBsioQB/9aHt/JVfjrKpH0FtdTUEUcMfJqe\n" +"TMxW6xXHvslOIj3iXj8frSMYuJaQXVjTwu2yhY2oZfnI+JG0Gc9TA20lijhfyOW7\n" +"2wE/qdFW3I7CY/3hBYa63IwNGUK/t052OmOZmhrzKADvWc6lCGG02M7fY/Q+IgOT\n" +"PS4+5A1fs708Ds7qHj/TkltVmJftaCkBZCTWqvQ2XxStzYnHVojNxsTCqhIOZLM8\n" +"+/SSUMzox4G2d+z4WTlok+HLwcf4h5iAOQg2HAzGO84bamwOE/r+hB19YV07dGND\n" +"h/7TI25Slhk46CbuLajnAiIfg4UnbMpUZt+ZC+tdCuKsFQcRl7cUXqkJ3gKAiFOl\n" +"8Dly72t5gYwYUEZDkuKisAztRMCvdI1bg8j8ALFjbtd5cYbrtyLYVbg5Nm+mawXh\n" +"/U5lqcrjWdbFiQIcBBABAgAGBQJUdg4iAAoJEGJ6sNnqQ9eZRyIP/1geWFuerAtS\n" +"jO9ew9bhqC6oCVBi7R/DNT9WLNXvV5h3DYzGXnlhoEHdBzF3G4RmC6RaxZcjTQaI\n" +"lYF0qGtvZXWsQG4W6UIT58E6vyNyOj1Ugl4Siqvo1L7IxCt0Bdti0sQ082P44B2K\n" +"bSWqN8zMww3lMjnnmrRIb+PcC8PQgLZU5twosEOl/MuuDXRTAgPa4jXuKY17V/6K\n" +"NPND4d/rnsENr3+YXlG7/pdAgT9CAdNfFBKSRAUHQ454QzGaJln54FAs5INXf6iv\n" +"phfbRQp5on7MyShFNQr5AIeF5SNg/ktBlvrHItCdwM/FnOk5fg8EM3eqZHNC8HE2\n" +"SxGKa95o8QcbI2E/0iPJqzLWlmLAxaaV53Ei4RzVkGzPfS0hWFuP/NVg2FYqUTZK\n" +"Ie5Btsqd9rPvCTqywjGMKcQUIVK/aiqcDV1J7SewjxuIG4+4eaTNiQgVZspqGCbH\n" +"FHdssU/oedCIURRV2vMCCWaFEKR94vIK4IbXF07AVAZPsO1itZj6PWaFZ1zwLbWt\n" +"+VmgkM8Pj5L7xy+vX/bGQRO75JYrLYP1a9h/iG/Am0ezZQrtjTPtV07hLBQDOmpt\n" +"s3BhEsl9VCH2GkqBhsHjxhYM9cnQqMCMSp5fERRqphxyCoNcBdLHurikt34XMuq1\n" +"otgC2RQoYGsIdQlYX2dxIQhDbij7OGrRiQIcBBMBAgAGBQJUFHNAAAoJEDk/yxUg\n" +"Q+mJ4NwP/1gH4LefqQu+pbXAD6zezvM7r4dLca2TeFMCWSIRpRdtMqiavsrBtubp\n" +"kInXup616EcEY1nKi+mNiHYZx7TiUxdlLljrkr0HVtp3MD/AgBoal+J1muESe5Yb\n" +"0frp+NwJOLikUBG1v2cY2mZgIAkFvbfwVFCtJmwGL8nLyZrG1QRy242I179lNFCA\n" +"1xZu+9vKbakwnn4rqwT8ihft8o2POY2cq/MHs0XNmalUhF9Emc6sNR0vXkDeBKAA\n" +"gk+3lcbabqSni6IOpruX1XwtfnlIEqZVU49unNYbvylh4NTl2vjawsXAec+tbVQp\n" +"aFWvwru+07kC8BwOKb83IiBHDLQC+oE6c1CdkbyfmQ+aH/OJs0cyGqJGeh4Q0Pfk\n" +"RSd44Ew3l/rzuHWjw++/JpfznK5mhVObpmWd3HH77gwm+FNeo5C60tkPtMfVfPqK\n" +"PbBTrzzdN1l26VloqFcRzXAnIKMqEP4J1Jd4l5awopqeBfRwVx4+XVV0y2qfvP/6\n" +"DyKWk6D97p7jrB6yuMoYbKvJKoxx75SxiGMv4gubj22iqIp8tJarrbBONdnhZCcx\n" +"LfDMcVJDSzI2LmDk5SXvNycNyxLCVvda6upMDB9O4wDE1EJJnsvkhudbwAdYEYCW\n" +"8CnF3toHcP1bGRiJGJ6Qrl11NPCdCjOmbq9KSxfkadBQ93uXo56QiQIiBBMBCgAM\n" +"BQJTd5xqBYMHhh+AAAoJEGwc0Sh9sBEAfBgP/ieZTSvyMwnOZOPNlQYnhkhaZRHP\n" +"i5fzOMzbwd+hC/3mi2U8mZOYXvTeN6+JiWJ7s+4UB0+JoOwwMkkNGYWygMF0OUl+\n" +"03FJB9cDIxFW5n3rjjbwX2RLcbx2ATQnNHRSsZdXWg1jTbzoRpOAL9ZhoyWJtRYz\n" +"fCd+r5JZrd59zGgc70aDAjF77PVA5L6lZXzTH4U4hlQzF8ugAmtNqTEfEhKRo5pt\n" +"ecu6Slf36OLc1L6Coc4amU3fMCPXP6IK5aMBPwzfXahAylITvxjbujIkh/y3KifL\n" +"cgsgc6a5y24+OBo02RzCnB1QB+alr6312b3FMrixsev2RfyPzWxfN8eE8JElobbz\n" +"4sPd5SgQ3P+iF+g9E4fTnXhk5f4u+wU5PtiWXxzWy6EYz0hGgE4Dz/uQ2fcRBASO\n" +"xMJQvPAeFM59SVTJGiFRzeNY6H/zWeC8DTE9jKbzhZ8kIzxyr9iTd7XJhp5pCVez\n" +"zkG7R9xDALq3ySMO0s7cWNB1V8Ne0YwNPZlStCpW6kW8nfC4qmNorukPcVk8tRYf\n" +"Gy+ebrWdXphdhLRZB5NpQ4ECG8kOIP/1bSRNvMs4WHU1C+hkOn8vcfOZDMO8zPro\n" +"SCNnHB0MUbXENfv4+ZXM6I39fAHohQlHw2LlqibeJHr5lbIukGQ6v8qdo5xdaoel\n" +"JnXUSVN4XvroE+uZiQJFBBABCgAvBQJTd6AZKBpodHRwczovL3BhZXBzLmN4L3Bn\n" +"cC9zaWduaW5nLXBvbGljeS5hc2MACgkQu14sRioPqLA7cQ/+NvSnh6fW7Gf89uy9\n" +"l4+/8hjGm0REFQf0LlYdiqf1pJ9N6Vf4MdhEFZs/2bvOgitSZzyScvxkAuv0LXE4\n" +"xPxOnwVYQ/VuxLSOBdTjU2srdnHrHaQxos16WLq85C2NsCSZNLOCXalMZk3XD0FH\n" +"HrcyWGfyiX4vr0tn+4G70FWbsfrK1Epmx3v+nCpCPmgBjdLRy9iU6uUjWB0w/ZVE\n" +"eD5MNAWyWumLJz32gpEQFSpELcviBoYxec8pIzlfV0db5ydJGZlsWM5W/KOy1ZFm\n" +"dpCfsl/hPGbBEtEeEf0mszchZDGtwaSpo0oiZj0LX6kSUTsp5GhjeTtntu2Hk9oq\n" +"b+u4TtAJbKHaYovJn2cySmWyE7Hqvvh2Lo+uxwm9RjKRNbtYBylZnV6QFaeMejen\n" +"RFwLdtdiil1UmXhV6MUHNIIZ0oJZ1zo+GkZKWQdoFpzayrWpfkAC+x2ovV106RYM\n" +"BAEcGg12ZZ1RcCytM/67efGG9KxjukARycsv1pU6Cf6l0yjqOikM3pnxWfdLvybU\n" +"9E4U7THfJ0sfXfs2U7d7LAX8WfWru1I90ZmFBLO5Fm3WMAOplJmdaSoNJ22IJrZb\n" +"StCDb7GynBD9x/qUGrRfIxKtzxGZghor5xHWxTtn6hLgxvoF5cDmN8g6dI0snbXK\n" +"DljubF4feV9MBwiGwpjeG/71PcKJARwEEAEIAAYFAlWTlaIACgkQogW5MOpw+irQ\n" +"+gf/TRWhT+XFhokH4E3v+J9lTqhQ+IBjVfYVZm1nzBxTkvrEt48i3VBuJjp2Q5H+\n" +"cnRr2VE76IVNsvt8liUe9GF+1tylVA7qDGDMOlqkGjPVfD1viGRgtrGBJFg3oVr6\n" +"uyjKUyhzELQPkGU+lfbhXLVE3oMyhLxf3xUd/TvGXEeaqMoPgNFGiwfjtSX6oxas\n" +"HEu3HFDO2EqM45dtjbHoj98gvDSb4ReA2ZknD/gYnNt8cMdHnv/VieeCpSDxiD6D\n" +"qljpYSPUXjz0kh/LwcVZaMm+nD5BzKcXu2lD8A0fy6hVKSm2tGyKzfWr0oZw47e2\n" +"eVMBPG/l4YB2H1Im8PPsuSAeQbkCDQRSQYzmARAAtqDVVjJvadVMDJipe7K1POK4\n" +"QtcFswiKYAwc0JOkOeM0tDirorP869gdHtkuKr3fEuW0rtId5OeAjSCI9NIihX0r\n" +"0A2iJ1PrdhhleoV7CF0u0DxTVAo/Z9HSmuQWoTz3zr01XXyb7pSzJb8oGMLGFuQ4\n" +"X1yNRZw/0daGN3jYmxRWLJj+/vlUazvzt8L24JdJJ4PEZ3TNTOOophZDjnzxGMR2\n" +"6d9Fb3MV9kCcBIpIv3e1I8IKJyigmlOUqGRCmuv6CMADM0NWEGRBkAUg+YjP7C25\n" +"QR7DtFLSyorpJ2QXUax2Bwg8F2b1+54pfXbQO28nYRszy0/ySirYjahrT+LiKOgK\n" +"N5HLTn6vIb/KZgmaPR4F1cVJYPjlxDibu26kRIlHBIZuYJ9diZSpm/ump4ZXy5R8\n" +"41NjoGZBpIFsfm4or02nLuxEof6khy2K1l9WO8U9AjG05azNQhDGijv4GB4KXfnL\n" +"xDW51q8PZWmPxwBEi7mQbh/d2DyqzVLnIQiUWMk4OOCB3VEHWzS0sMOf9NBHWOC8\n" +"jhlHak9zzB3qNsJ6x1DXIHC3f4D8owFAqy6z2BVkKQys7mxXzciTvyYIqrb5ynRt\n" +"sLL2GMdn1NeMFziB51yMak9BDMGGymXObY3Gmg22gFwnb+ZBx+rNAGt4R3ngk+/C\n" +"0jeXHyGQNns6wwoCyuMAEQEAAYkCJQQYAQoADwUCUkGM5gIbDAUJCAftQQAKCRDt\n" +"Z+zWXc9q5+HLD/94Jdl4HSb2bA6N1k+Snajvy7C2xCS6GpOMIkDaIo+Aowe85ixc\n" +"JeqiNM4lBr8OGMqAe2z0cMs4BvPHudNmN/4ceBsxwUnmcCr1hJiEaQr4eAR/lDC/\n" +"pz6gvkCndDKSeOvg5FiiXIqf6sTXpMu4euabQO4485obSBaF7/3zOUfO3Rtadw0h\n" +"zEcv/XaiCToA8fwGFNjGhAml/O7uaPmAI3rel4HMEHNxIgqARMiYNmFP8nVgJi7O\n" +"qz6rv65/E9shtNVQiHBgEXGZf/lsrxBsQJsgG2Vj+ggkDZPX5AfT7KCV4UrHtM+d\n" +"X3yKbwiWwosPwKmgzYxR5qX6JZyAr+72Zs5/eb56NGEGUJYKLmWJd85zCQHTZirF\n" +"sDIuZs87oYdrDYmFrwoWmoxZqSLeBCNbURu/BbO4nnJWzr3fwlqWO6LPO7rCafUK\n" +"6/mdYPJt4CpmDe3oGntdP/UVA10ZQ7qWYHTzNK2heBm4NHY0QMBXYoAE5bHMCDnN\n" +"YVN4QRVxUyjsXKfgjOyi0jZHX+9/CHihIXaCqOI4MdLwRx7dUwhoKOt519/Wlh71\n" +"w0qvg9kVt63A7Etyr7xj/IPpEGURDfD/EhXXn0offWL8+BKcLYp1Tbp9gJe3Ab/F\n" +"3VOWuafMlpON+Ii4YEem56Al/Ei8sDA+BN7cpw7o5Xf+HAG70CdcRDn7Vg==\n" +"=mLLk\n" +"-----END PGP PUBLIC KEY BLOCK-----\n" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Security Team Secretary <email>secteam-secretary@FreeBSD.org</email>" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"\n" +"pub 4096R/3CB2EAFCC3D6C666 2013-09-24 [expires: 2018-01-01]\n" +" Key fingerprint = FA97 AA04 4DF9 0969 D5EF 4ADA 3CB2 EAFC C3D6 C666\n" +"uid FreeBSD Security Team Secretary <secteam-secretary@FreeBSD.org>\n" +"sub 4096R/509B26612335EB65 2013-09-24 [expires: 2018-01-01]\n" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"\n" +"-----BEGIN PGP PUBLIC KEY BLOCK-----\n" +"\n" +"mQINBFJBjIIBEADadvvpXSkdnBOGV2xcsFwBBcSwAdryWuLk6v2VxjwsPcY6Lwqz\n" +"NAZr2Ox1BaSgX7106Psa6v9si8nxoOtMc5BCM/ps/fmedFU48YtqOTGF+utxvACg\n" +"Ou6SKintEMUa1eoPcww1jzDZ3mxx49bQaNAJLjVxeiAZoYHe9loTe1fxsprCONnx\n" +"Era1hrI+YA2KjMWDORcwa0sSXRCI3V+b4PUnbMUOQa3fFVUriM4QjjUBU6hW0Ub0\n" +"GDPcZq45nd7PoPPtb3/EauaYfk/zdx8Xt0OmuKTi9/vMkvB09AEUyShbyzoebaKH\n" +"dKtXlzyAPCZoH9dihFM67rhUg4umckFLc8vc5P2tNblwYrnhgL8ymUaOIjZB/fOi\n" +"Z2OZLVCiDeHNjjK3VZ6jLAiPyiYTG1Hrk9E8NaZDeUgIb9X/K06JXVBQIKNSGfX5\n" +"LLp/j2wr+Kbg3QtEBkcStlUGBOzfcbhKpE2nySnuIyspfDb/6JbhD/qYqMJerX0T\n" +"d5ekkJ1tXtM6aX2iTXgZ8cqv+5gyouEF5akrkLi1ySgZetQfjm+zhy/1x/NjGd0u\n" +"35QbUye7sTbfSimwzCXKIIpy06zIO4iNA0P/vgG4v7ydjMvXsW8FRULSecDT19Gq\n" +"xOZGfSPVrSRSAhgNxHzwUivxJbr05NNdwhJSbx9m57naXouLfvVPAMeJYwARAQAB\n" +"tD9GcmVlQlNEIFNlY3VyaXR5IFRlYW0gU2VjcmV0YXJ5IDxzZWN0ZWFtLXNlY3Jl\n" +"dGFyeUBGcmVlQlNELm9yZz6JAj0EEwEKACcFAlJBjIICGwMFCQgH7b8FCwkIBwMF\n" +"FQoJCAsFFgIDAQACHgECF4AACgkQPLLq/MPWxmYt8Q/+IfFhPIbqglh4rwFzgR58\n" +"8YonMZcq+5Op3qiUBh6tE6yRz6VEqBqTahyCQGIk4xGzrHSIOIj2e6gEk5a4zYtf\n" +"0jNJprk3pxu2Og05USJmd8lPSbyBF20FVm5W0dhWMKHagL5dGS8zInlwRYxr6mMi\n" +"UuJjj+2Hm3PoUNGAwL1SH2BVOeAeudtzu80vAlbRlujYVmjIDn/dWVjqnWgEBNHT\n" +"SD+WpA3yW4mBJyxWil0sAJQbTlt5EM/XPORVZ2tvETxJIrXea/Sda9mFwvJ02pJn\n" +"gHi6TGyOYydmbu0ob9Ma9AvUrRlxv8V9eN7eZUtvNa6n+IT8WEJj2+snJlO4SpHL\n" +"D3Z+l7zwfYeM8FOdzGZdVFgxeyBU7t3AnPjYfHmoneqgLcCO0nJDKq/98ohz5T9i\n" +"FbNR/vtLaEiYFBeX3C9Ee96pP6BU26BXhw+dRSnFeyIhD+4g+/AZ0XJ1CPF19D+5\n" +"z0ojanJkh7lZn4JL+V6+mF1eOExiGrydIiiSXDA/p5FhavMMu8Om4S0sn5iaQ2aX\n" +"wRUv2SUKhbHDqhIILLeQKlB3X26obx1Vg0nRhy47qNQn/xc9oSWLAQSVOgsShQeC\n" +"6DSzrKIBdKB3V8uWOmuM7lWAoCP53bDRW+XIOu9wfpSaXN2VTyqzU7zpTq5BHX1a\n" +"+XRw8KNHZGnCSAOCofZWnKyJAhwEEAEKAAYFAlJBjYgACgkQ7Wfs1l3PaudFcQ//\n" +"UiM7EXsIHLwHxez32TzA/0uNMPWFHQN4Ezzg4PKB6Cc4amva5qbgbhoeCPuP+XPI\n" +"2ELfRviAHbmyZ/zIgqplDC4nmyisMoKlpK0Yo1w4qbix9EVVZr2ztL8F43qN3Xe/\n" +"NUSMTBgt/Jio7l5lYyhuVS3JQCfDlYGbq6NPk0xfYoYOMOZASoPhEquCxM5D4D0Z\n" +"3J3CBeAjyVzdF37HUw9rVQe2IRlxGn1YAyMb5EpR2Ij612GFad8c/5ikzDh5q6JD\n" +"tB9ApdvLkr0czTBucDljChSpFJ7ENPjAgZuH9N5Dmx2rRUj2mdBmi7HKqxAN9Kdm\n" +"+pg/6vZ3vM18rBlXmw1poQdc3srAL+6MHmIfHHrq49oksLyHwyeL8T6BO4d4nTZU\n" +"xObP7PLAeWrdrd1Sb3EWlZJ9HB/m2UL9w9Om1c6cb6X2DoCzQAStVypAE6SQCMBK\n" +"pxkWRj90L41BS62snja+BlZTELuuLTHULRkWqS3fFkUxlDSMUn96QksWlwZLcxCv\n" +"hKxJXOX+pHAiUuMIImaPQ0TBDBWWf5d8zOQlNPsyhSGFR5Skwzlg+m9ErQ+jy7Uz\n" +"UmNCNztlYgRKeckXuvr73seoKoNXHrn7vWQ6qB1IRURj2bfphsqlmYuITmcBhfFS\n" +"Dw0fdYXSDXrmG9wad98g49g4HwCJhPAl0j55f93gHLGIRgQQEQoABgUCUkGO5gAK\n" +"CRAV1ogEymzfsol4AKCI7rOnptuoXgwYx2Z9HkUKuugSRwCgkyW9pxa5EovDijEF\n" +"j1jG/cdxTOaJAhwEEAEKAAYFAlJBkdUACgkQkshDRW2mpm6aLxAAzpWNHMZVFt7e\n" +"wQnCJnf/FMLTjduGTEhVFnVCkEtI+YKarveE6pclqKJfSRFDxruZ6PHGG2CDfMig\n" +"J6mdDdmXCkN//TbIlRGowVgsxpIRg4jQVh4S3D0Nz50h+Zb7CHbjp6WAPVoWZz7b\n" +"Myp+pN7qx/miJJwEiw22Eet4Hjj1QymKwjWyY146V928BV/wDBS/xiwfg3xIVPZr\n" +"RqtiOGN/AGpMGeGQKKplkeITY7AXiAd+mL4H/eNf8b+o0Ce2Z9oSxSsGPF3DzMTL\n" +"kIX7sWD3rjy3Xe2BM20stIDrJS2a1fbnIwFvqszS3Z3sF5bLc6W0iyPJdtbQ0pt6\n" +"nekRl9nboAdUs0R+n/6QNYBkj4AcSh3jpZKe82NwnD/6WyzHWtC0SDRTVkcQWXPW\n" +"EaWLmv8VqfzdBiw6aLcxlmXQSAr0cUA6zo6/bMQZosKwiCfGl3tR4Pbwgvbyjoii\n" +"pF+ZXfz7rWWUqZ2C79hy3YTytwIlVMOnp3MyOV+9ubOsFhLuRDxAksIMaRTsO7ii\n" +"5J4z1d+jzWMW4g1B50CoQ8W+FyAfVp/8qGwzvGN7wxN8P1iR+DZjtpCt7J+Xb9Pt\n" +"L+lRKSO/aOgOfDksyt2fEKY4yEWdzq9A3VkRo1HCdUQY6SJ/qt7IyQHumxvL90F6\n" +"vbB3edrR/fVGeJsz4vE10hzy7kI1QT65Ag0EUkGMggEQAMTsvyKEdUsgEehymKz9\n" +"MRn9wiwfHEX5CLmpJAvnX9MITgcsTX8MKiPyrTBnyY/QzA0rh+yyhzkY/y55yxMP\n" +"INdpL5xgJCS1SHyJK85HOdN77uKDCkwHfphlWYGlBPuaXyxkiWYXJTVUggSjuO4b\n" +"jeKwDqFl/4Xc0XeZNgWVjqHtKF91wwgdXXgAzUL1/nwN3IglxiIR31y10GQdOQEG\n" +"4T3ufx6gv73+qbFc0RzgZUQiJykQ3tZK1+Gw6aDirgjQYOc90o2Je0RJHjdObyZQ\n" +"aQc4PTZ2DC7CElFEt2EHJCXLyP/taeLq+IdpKe6sLPckwakqtbqwunWVoPTbgkxo\n" +"Q1eCMzgrkRu23B2TJaY9zbZAFP3cpL65vQAVJVQISqJvDL8K5hvAWJ3vi92qfBcz\n" +"jqydAcbhjkzJUI9t44v63cIXTI0+QyqTQhqkvEJhHZkbb8MYoimebDVxFVtQ3I1p\n" +"EynOYPfn4IMvaItLFbkgZpR/zjHYau5snErR9NC4AOIfNFpxM+fFFJQ7W88JP3cG\n" +"JLl9dcRGERq28PDU/CTDH9rlk1kZ0xzpRDkJijKDnFIxT2ajijVOZx7l2jPL1njx\n" +"s4xa1jK0/39kh6XnrCgK49WQsJM5IflVR2JAi8BLi2q/e0NQG2pgn0QL695Sqbbp\n" +"NbrrJGRcRJD9sUkQTpMsLlQTABEBAAGJAiUEGAEKAA8FAlJBjIICGwwFCQgH7b8A\n" +"CgkQPLLq/MPWxmZAew//et/LToMVR3q6/qP/pf9ob/QwQ3MgejkC0DY3Md7JBRl/\n" +"6GWfySYnO0Vm5IoJofcv1hbhc/y3OeZTvK4s+BOQsNokYe34mCxZG4dypNaepkQi\n" +"x0mLujeU/n4Y0p0LTLjhGLVdKina2dM9HmllgYr4KumT58g6eGjxs2oZD6z5ty0L\n" +"viU5tx3lz3o0c3I9soH2RN2zNHVjXNW0EvWJwFLxFeLJbk/Y3UY1/kXCtcyMzLua\n" +"S5L5012eUOEvaZr5iYDKjy+wOxY4SUCNYf0GPmSej8CBbwHOF2XCwXytSzm6hNb3\n" +"5TRgCGbOSFTIy9MxfV5lpddQcdzijmuFSl8LySkL2yuJxjlI7uKNDN+NlfODIPMg\n" +"rdH0hBSyKci6Uz7Nz/Up3qdE+aISq68k+Hk1fiKJG1UcBRJidheds29FCzj3hoyZ\n" +"VDmf6OL60hL0YI1/4GjIkJyetlPzjMp8J7K3GweOUkfHcFihYZlbiMe7z+oIWEc7\n" +"0fNScrAGF/+JN3L6mjXKB6Pv+ER5ztzpfuhBJ/j7AV5BaNMmDXAVO4aTphWl7Dje\n" +"iecENuGTpkK8Ugv5cMJc4QJaWDkj/9sACc0EFgigPo68KjegvKg5R8jUPwb8E7T6\n" +"lIjBtlclVhaUrE2uLx/yTz2Apbm+GAmD8M0dQ7IYsOFlZNBW9zjgLLCtWDW+p1A=\n" +"=5gJ7\n" +"-----END PGP PUBLIC KEY BLOCK-----\n" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "Core Team Secretary <email>core-secretary@FreeBSD.org</email>" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"\n" +"pub rsa4096/36A7C05FE1ECF9BB 2014-07-09 [expires: 2016-07-08]\n" +" Key fingerprint = C07B F5E3 10AE 64BF 6120 B0F6 36A7 C05F E1EC F9BB\n" +"uid Core Secretary <core-secretary@freebsd.org>\n" +"uid FreeBSD Core Team Secretary <core-secretary@freebsd.org>\n" +"sub rsa4096/7B5150C8D7CE5D02 2014-07-09 [expires: 2016-07-08]\n" +"\n" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"\n" +"-----BEGIN PGP PUBLIC KEY BLOCK-----\n" +"\n" +"mQINBFO9HvEBEADRfuWeoNUwib7ZjNmhg0Kt1kjiGEEosf3O2yMDfYuAXt4De6qK\n" +"S4KECe5+vZH2T8g+zmNLl/7JxdqHiWj9cnoZ6T3bqKh7w7pW7QzC/Q2k4mZsQkGl\n" +"xzhStHvaHSPKw5808TME0d3ewAfs0dQkDuA0eari0HipCbOVzqHUMTIROr/syPXs\n" +"jHxb2bj0KVzzq7wgy+vF4Cv25VzaAPBVgPv3HAoO/gLOr4SnXqBCw2vgprWx335t\n" +"QX1JslWlsUDmwwq40q4+eMnSFPZ0ing1DgfhMb+Dnrl6Rbxhb0pwPhbwubppUKfe\n" +"W6owOrTuUbATVoAhsfNySmUWQKc2p9w/8uFV/jJj9HOSgIMKrNONvqekPrjWOQn9\n" +"/lcQtGhldWmtPbMogOfaQisBEn1XjMZ3VEOagQxIe/6LDjU7GGoYvSdwf8Z0wXUY\n" +"/qDntPwudjJA4wQid1Tzf53gpUjr0tYq7aclpiBGs3F5EOs4HMXq5/xlwRGtBDHY\n" +"i9RNAlbRSfSD2s1nGsfsImPowlpjtLa+3PqYs/cRLGDu51DsgV/p/CqtAyebG+9O\n" +"WsF0Ydt4Q62jEuU8HY7SOj+AuKJVdUkyAZGk5vkPvsKzjdZUqRslurme7d3LqKai\n" +"FjBGj8UyId/IomDCjth3baGc/Y4e+JKyx1XDXgFY2HoQ2KzEoANrizjy5QARAQAB\n" +"tDhGcmVlQlNEIENvcmUgVGVhbSBTZWNyZXRhcnkgPGNvcmUtc2VjcmV0YXJ5QGZy\n" +"ZWVic2Qub3JnPokCPQQTAQoAJwUCU70sxwIbAwUJAeEzgAULCQgHAwUVCgkICwUW\n" +"AwIBAAIeAQIXgAAKCRA2p8Bf4ez5u2R4D/4o7Qb/hFz3XFRiBLtcsr+v5CS1fYgk\n" +"VN2Xp40dOTtt+Xo257+1oQDsS6McNXT7XSAFOTrFW+XID8GBnY6+ZpRYzontMCJd\n" +"25qGHzGBs2aFA/ROfhdvpOkhngxsYG89+IOUjS6SRNqG85Iro6eI7ZLi8sznEhZd\n" +"lH1jEWHiJhEubOvcedWS1zSHpOZwNIpyQV5d2O3/EhAOJRWgy8VmegeQLGg0zqdL\n" +"r9MKfg8/OwNQlysjrsA5MRnZMZAm6kEO381zYg8+Rwe+HtspzL/1cu4M7k5aBw0m\n" +"a8nShgXTqfgX+pwW2zBBL8c42p5D3Jh4Oe7KQ1KEvysZJGWO5ZjR9p4KLu49X2Yl\n" +"9cuD3Ii6+Nz9/cUlEGaMm4I8N3jpSNH+GCj7k1Wa9KWMh2ZxmVO5AML8h4g+A7aT\n" +"qNasKpG4XLXpcZ38sOw2/h6G2kwnrCel1ViCe0Z4pxeW95bxREqs6pkkym7Wz4sy\n" +"F5Mkba0uwFhWg5zBANBteXfOS/WU3fLEWeHXvZu9t44vyvP84qqZfNzBhz9puDVi\n" +"kPAY4uiZK4BTDkYZZr3YNKIIwEQ/rjcJSDKZKGJ6dsHKBSi0oGxFZpCE+YMH/Zqq\n" +"hTQHgXbMKWLgJ7xxRYJS/apvgnTd1Dc7zc5J7IT7XCdML0+Qj8eD48DwyMu+uAAq\n" +"/048iyhu/R8RP4kCHAQQAQoABgUCU70tAgAKCRADb2ye5/Oevxk0D/4wEJarg3nO\n" +"/B8ks+s7DadvpmNZrNSGeeR4qSEeZlH1ye30xD1HDE+ekJXC97Td4mKWKTrbRVEX\n" +"F1y1aBCe8tL5BbsRDmwzKwpv3OqQ1rhowlAKZD8hdBEyEn15ciaoRisFKpWAv+mm\n" +"mZeTnG5sYOo9BF1v36WrX+9AOvy7yduVcZE3kLNoivS+8bXe5ULj6uMoyo/eC5uk\n" +"q35f1p1qBzrplMc+vs7z8Npc7YFP2ORhR/mVg0rYFLkPVdPV3uFkrkb/Z2SVu02B\n" +"IFWEeJojEBEbFNfziHUaQ8Z7ZdtkZ9OIS1Z0Wuy64xjgORWVcTlRe4AwZKVC8DJs\n" +"Fs9Gk9gnsPmfLgM46pcKaac445w9uUQzKLxdCBKLPxMV/JHBRrMghyahevwnpsuB\n" +"Ok+ldsCNqjFaeAnVAmv3YtTbZ1JdorupeFa65JyjQon7l1JwWD67P7N0xrn1gxJ+\n" +"9uGUeHwGAvDF3IRr5ECISKAW92NfLYuNpyv6re/bt6A+FxaSA+E8P7Z+I4Gl5l37\n" +"czz+9ciYipiusweDuxectOlEnh13/WKXuUb68v6ZzbwGjkW8wunavhAN9fWxqqgF\n" +"W0tKtmpAOHFzmNOw5WGPfGdKOzc+g5ZqRt3CREVHj/uizNJsHzfadkTqYum+kQTa\n" +"y4tSgGH0S3EAiHGsEy4YZ4M/nxdIyakmsIkBHAQQAQIABgUCU701xQAKCRBNWP3N\n" +"LKSXdmOGCADEySzz4Q6wKsx/gLiAyhYNbEJbiv1MirxhjIYGP9MqNpxxI1+Q3kuj\n" +"01K6ELIMuAhehoQOgU4AssJQxu7q78+hz2O7s+V0Syl+pvEOl2zUCgAmOYfle+BQ\n" +"75ZEEiINBuh6SOXBVLhfNp90FZ55KUSW4EeyoT+A4nRGHRgCTEfZ5WHi3lGlaLQd\n" +"Z9viLfNKA/DxrLWww+joTPIEhc3eU1mgDrcmfxo/L95EmTyUa5BtE0WuLwQEaY8H\n" +"J3eBgA9Y130ubuzzY4jGl4SCNedMzeIroHw2Bogd3V+E5aFtGd8gZUjXXr8rM6yX\n" +"PpttP2Hc8Bie2YXI2NffqwVqpL0dxo3uiQIcBBABAgAGBQJTvTYRAAoJEMATMJ1t\n" +"fkRccM4P/Rbg0W6l4KPFUvyKcUE6odRwoXExRGHdG9qW8Vf6xtW5eXUX/AZoCnXD\n" +"f3yWWttxgzN1e8iNRh0aYfuNSFTuHcHut/xw6GZ1yqASbuDmGWQ6uTb0yHYQcwQ5\n" +"ioaRaZZo5cpnSs0qZUpnrSzdUzyVmlKsD+1ut0/Z8yM8WGRyhplWX0dfXKnUUxJG\n" +"yh4GQc2dQon1vrsiuDTD2hr3EVues7le4WU+csegZTGPgPjhTSH6ZNFdDs4Y5KPi\n" +"unjXx+X6avPKPSJCnC9YlPMkI0RcokVLJW+K3+4QnbqU8m2MpZWVaaOo5s9PCx1I\n" +"208EHQ77A7EAFYNFrPZmtSV5X3BhU2rYNoRu0fpsNqJC34Oi7JdZdplPoO7FHRAC\n" +"AyQJyv8KUG8VVzK7m6Kt/Okq7LBc8RuvLQpUHSv1Z19fQvFgTegM5Pcpp3/ful/H\n" +"QIIc7XRElM57e+t8kbsoRpOlaKa3Okl3KisXdksWB4Fu6XdVArY/jIIQGs6dCpYa\n" +"jhRZcjkjHUAPvY/OqD2mBSwj0YwP0RoMVvFHMP1cgB3gjaB37A+DJeiKEXTWzGe1\n" +"fKC1TxCcOUZsrcqXnUyy23lKV9CXC7za3eB23dPIfWzJnD9BsVgYsemRVJx8r3Sv\n" +"QIL5zjKVDRAuV3M/HbCtSOgO68MExC0TFEl/8LPIMW8oVCY4+iqliQIcBBABCgAG\n" +"BQJTvUdSAAoJEO1n7NZdz2rnXxsP/R8WHku1nxjELqdM9M72JLD8UBlaAIwLStDy\n" +"hnTvLa0GO6eN0r2eJ1+tG8mKB+PZKOvNt8eZcSO/kjUvTIBILt7fAtN1BhsWpjQz\n" +"n+tuVWs4GVoPQssM4N09AYUzx8ni4byADY6n9l4zof2HsPsjXvuw/bzYXctKTQxg\n" +"gD3nswtLGY3q6unYewIChyaG8DStihFLcXIhXbwc6EOqdPN3VWwNInG/602UTO2L\n" +"eXoEM+tTaXkE51P5otACVH37AW0Vqqh1GxklYlMYLrKKn/YIBRvLVS5G+95iKs3g\n" +"MJhnaeFND2s9dmOTXyKyfTUffr/XTL/PVJSCbdqwiuXZQp8J77MtYyJn1262H8ko\n" +"59OlPtqvpBNuywco0/F8BOFvSTw5sS8CmU0EHvyunKaofS3mxCFd2B0DzX89+AoY\n" +"ZY7CKU8OYt/VqhsfsL0C+DL4+XschBOUoTg6HrqG4F69+gerkK4Ps2984vOeTXe3\n" +"IqlYN/Bn92m9rGy9PKkpqG5C6w5X58BgvfeWTAkM4X32rZHKOmyYSCdRJQw7MGSR\n" +"24OaWKPmgKvMaH8MQaJx9oSaAgF1y1892+ykVI9ntCVwywkmxNg1lfMuVFM4Vh9j\n" +"+C7OngnbQbhYtbFG90z9zfoMln39z8KT2yDP4A7Hklw0xmmT6t8KduGD2tfmaW4+\n" +"oz9attTyiQIcBBABCgAGBQJTvUdkAAoJEJLIQ0VtpqZuLNQP/RazXTtk1mixmLfu\n" +"nrScgh/1Gtb6XPVDTP5SGb/8HVdY1a+dDBClUIAFbEAUBIcBO4/NVlW9un4IHyri\n" +"xdD/ijE/Cr/BMLnSFU5EmHKn8yOc3Bv6eTTRbJ8EYru0Cj5MdSIAoq8JKF8Lbxba\n" +"hBFw9ZSIpREPGlxnKI3TEuHJQreSZR07/GPk50suTK2CXxzEsk4VZesSTnwt/1m+\n" +"hrdtyNke3+wy8R0Use+KKgmTzpQ9phc8wq3uhHFzLJ5HbE21VRHgFd5+osZuSDuH\n" +"jw5o/zU5o0Bq9DDY3TWXPD9lgqKQ2PgH5DG6od9gjpjJdvXpXpck08HJDu2V+u7M\n" +"zW5lsnthDsW39YVLRD4ZwZJQaw+0wBuGDDxV+8x4fYhYJnXD8ZtUHCQ56FlcMyzL\n" +"m00WRLNxBSJjRvH12geg5xK3JWZ8V6Ce+XhvIAduDkajuUKQoWvTMzYaviqQhfV1\n" +"zXNNt5rxDNT+jMiwnAtDeCTZPMfGvzOPw9sYBz5RUa4liVPrGiEW/snAhcMB9JDK\n" +"jMAsKHvJwIvB9QrRC9sz6JIgEqv+jlsdkslEVU2AALlcJ3QuXlW0j9Z26q0sNGt8\n" +"5FVqhc4DOyXtZhKR5Ru8Lyc3swYRi2ofu9Roycq3L0swcMoGnOikRbj2PuuRdQiU\n" +"ozJ7mT6JmNF8ynlx/1+uzniVneEliQIcBBIBCAAGBQJUGDc+AAoJEOqwPFi/3EeP\n" +"EpUP/i2p7BLtyrujFmwr6wxru8G2HBWySFeRZ7YC5iH1ZIiGPPi7nuinWEv6FaW6\n" +"dW8fzrwmJy0iUpstKM8CUdR10PZ66Un6A9yfj9MuYSWBDQwzkd3wSJ2+HPLeaTsc\n" +"hb545CYnIJBaUAWyfufyoeB2+u3DNQd4oHv5ceI781D6J0h9MUz1bNgV2w3prubD\n" +"9o8ycaUvXqHrADqDZiUA1zblm19AmbJIJbgeUaXD8iwkyk2hRHScVe9aLzd2J4TX\n" +"PIQt9Dj/VnW3TLvTtMPEls1SM+pQ9xYF3IBz5BWbrMuk3o3mpsIijs+vfjJdv77Q\n" +"UeyT0Ur0fJ5xa7zWxCs5AMpCFDdLGRW1jzFYipJBBhDVkylIjpr3eoIIU/RxVC6f\n" +"5dTaW8GeaspllyJT8BKe54R9u/uf7QPgIkuXdIdaZ4qbbftLxvyBJk6A2gSM/sLY\n" +"qeoo+zRxKi+lMZ/Zw8MUZ/ON+yE1ccQJAk1GDqAhUs5f7zCPU6xBLFeXhz9d6bFP\n" +"BGWZ3dy7mZaHgALDGqSd240hIoknwzqHaWZK5lWTmzIVUUQPV1Vn68stcaVsuaFd\n" +"tnGHv/JMvAj1F9ZlDDRwaPx0ATTXQbBI6JlvDQ8u2tTKIYEswtez/enkjX1dALFl\n" +"tV5FNartIWGiHWYxkGVRlh/QtAb0NsBU4/5uZkWpWzG0GtOniQI9BBMBCgAnAhsD\n" +"BQsJCAcDBRUKCQgLBRYDAgEAAh4BAheABQJVntrCBQkDwu9RAAoJEDanwF/h7Pm7\n" +"aw8QAIJadQ8+oJgvc9yMS+kW+EzkdmGQUDk/7Ozkkj8gk3Fyh2gTI6AenQaDm3QD\n" +"/qvShJts/JX9+zVREwGU7WAvXm2EGIB2OB6pVQOGhNc0V8BihykQ27BtetvMivgp\n" +"KTYCwdh/CWdF3hAGaPFcc/GkrQThTBZARISUC5zce/FvCSugvRsMdGYjhaCA/LYp\n" +"YBGRzXZIrfCaT19tvfW89WdFamT5dVcMVs0uVHw1qYzz9EyH8cj3KwVanZ/KF7zA\n" +"pENdsmx2/+EPmVL/oGqctcx5vXtzMYTdr54aRay67oDbtWZNqYoIksShaw5rsNkI\n" +"OnqMXCqQkDd0lf46CmqAqqwH0bNlnxTpm8cEcfGIee1yNUc0BGs7qgmtm/7+96My\n" +"WPKHixQR48OPiTAdT6/n8msm/+MeL8aRWvhLUkhi3zDWoilScPW121JbE0QytpWP\n" +"v+2QCRtvnJritKrzyfjO2CRHOoe5zOY/yRd91CVBde7Tpd0UdQP3vw3B0MznahYQ\n" +"+qdt1bMD6NLgADNDP0B2yWMnUS6xku6iBANwZcdLSav4gE7gVFbePKNJnGW6rOIp\n" +"ljl0Ivm//KVufLPNX0DAokfvHIvDNNuVuk82UpvVSVxrIaig4HhbWDOnYiDhtE0Q\n" +"CDNP7v5e9u/iC3VwBVI73iOsDpPGqEFp1E6UZF6Uvfcxmsp5tCtDb3JlIFNlY3Jl\n" +"dGFyeSA8Y29yZS1zZWNyZXRhcnlAZnJlZWJzZC5vcmc+iQIcBBABCgAGBQJTvR9B\n" +"AAoJEANvbJ7n856/QGAQANf7Qn3AvTB1Co9oCtKobbtLxOx/FFw6/jnfurJxQ2Y1\n" +"8N9zTNJ1KCzI8pYbanicWQFqUfC1wu6FrnSlNGQvW464NqcERElbFE41pvqX+Tb6\n" +"/dOX07mMBZYK8wgLDcHEjl4i7NHurx1AKA2ro/5utRvfIqmhPxcHwhNiP1He4MD1\n" +"NgkyrxmRWtO4VM99mhXdm+pl/8XwuFJrdg4v36pEws6tYJgPwDc86/XrmeJT6GOC\n" +"RFREdwXn6osSvvVYnx4Pyto/xTG5Fm4sa7S4bxgvvSzp2/L+eO4JpOGXuhiIGhfE\n" +"wISta1yf14GKTa4a0Qd+gquml4yd1DBybNoa0zcz/sJOBULe/CLKzSs5IuGkfdH0\n" +"os1WEjdqQ7JPct3Yizb7Iw/j1YfvDmnM+tt3EMU1DJ1ttY9+XB6pZvtjSHNApaDP\n" +"fSeizstpoLle3kvECBJyEIr5u/hL72dYEZtFiYFlHcvWIq6KqWJlIJrOa7vG7r58\n" +"6qstiG270tCeaVOfZT5grKNcDf4vYEoxL+2NKcHVA0rogRWPMwSWZbWEAaIilK/6\n" +"AVzc8xmefZJEHHxH7PprcPsH3MPpOwmWjfheHBKfIfEu1UqWAD+cRQmE+jEz1vc6\n" +"DzVUfA4c27j9/GXT9/NQsBTamC6rT3YUZKWlFulCC3ncRwf9ZTGSsiT5qCuV1ECn\n" +"iQIcBBABCgAGBQJTvUdSAAoJEO1n7NZdz2rnVCcP/3zh4y7MrLnV536rB0tDOM+l\n" +"sP3UYDmclWZmTENZ+r0ESM4YJzDjKO6ltXhh+MdYqDddY3vqLnsKTNYuMjKiu6jd\n" +"0ETy4ThzHxVhcyrgl1yWxyaSsdi5gMOnwNVClHfOD5gaOF0jdRJnLTLMueAEM3fy\n" +"NzSUjBOHJpk+RcIV3r/u8LvPFV2qwLWa937vYwfLRJ9jaQur5MnEVOWBz7CB0g1F\n" +"06JAcLv16FyWiLCOBxXZJd974lKXHd2yEMkSlF3Of1qX5FI6FK3HQU+c6eJcrWc5\n" +"4++zvgWHZTM3SwY9g5rl57Wz9Vpi13Ev6ArIIIEQ9P1ViwK4zyW78rFoM09juqHk\n" +"N4uUCWuk0f57XCFkrDA/n6YCSfAxSYXc1I+MKpAm/6yBYiBNpyS3Jz5HGO2S0QGs\n" +"PsBcUHGEmO6k/Z6boJLwaCAGx2dSQ84R4DQeFAd3NjBPab2xTNlitcOi+xnidCJZ\n" +"oDWQqx5dSLwLeORsw25ikOWroUS1hqfta2HDnnou4zuyppov0Q+50JGFJIril8sv\n" +"oUmLfuSk3XUrlxPHgL57Wp5K8NOIU4u/DStX4UaRuHQ+Uu9GV+c6rr3F46+MooqX\n" +"ISAw5cm/kDMwuOfQ4GOo8J/ADUfLQa6a/JnWFg3hb/rgt/lHJxjZliOZy8G08HyB\n" +"ddNfKCTBauqEyPYWTHzgiQIcBBABCgAGBQJTvUdkAAoJEJLIQ0VtpqZu/g0QAMXE\n" +"q8sNraENb3zO8wisdE0UZXOGuQduXDSrwpe26L9mCR/usjeWeGqbG9b6mP+fAwXx\n" +"m/BovdkF3bWguo1GCzztEHy+aTB4voxI6lEnyDKB8GG3mlkVjNAbDjVi/jCZfe6T\n" +"bJ6xDhX7633ees1An8tvizMHRr+z8zQ3xF4MNjlxLzawPE7/As5uHaT6Q3NhGTGy\n" +"G1oGsVlO8pYp97p2E/d44m6IlY5XEzO2A2fIq+0N4dcy8omTX8P4eUZFlUezRbbZ\n" +"tNP8Av77hESXO79gpmQir9fC5/qMBgJN+3iB9O+VcB0SeLm0TvUWtSFULqEdDkKA\n" +"rLOgZf0HNnsu7/rb1tR9zqSYN8gsF3MvF0RNHUdbyEh189LZTmapwSxcaoUYPcoO\n" +"Bfwo0MqMuEuyCkMWSD53BvsaSbcs2OWKYAp+oluM0TrnLup37O2G/EbxmMRHZVVy\n" +"uX60pIQDXO4DjLo9tqbM6OUNCG+1tKEX7Bs9GIzUL2mxZ072qE8x1A+eidSzy5Tx\n" +"2nE7DOurziiuv8G3JPFDtLkUVtPx9gqyyG3wmfThkMCl1jnutYDjetpeC8LcI5S9\n" +"mFE8BXBka7qEEY19GI/1LJcfMI8lMn16OITYv4/cwqWPMbjSMg6JpWBCFdsxRmIW\n" +"iggKodt6LfnuEciChejk8ewTf6/47z7aVhdBkYaOiQIcBBIBCAAGBQJUGDc+AAoJ\n" +"EOqwPFi/3EePCM0QAKFrkt0wW+am/O8ZzIejSCY+htWilGAIa6REk5gv00k2dKPC\n" +"Wf5rNPAXeQRAX4qItmd35hz7czElm2EVbrylDD+F9uN8wbkCMLdIe88caWfoj12l\n" +"JACAd0NiBSwJPgrajvER92fr173I31cKT6hwXP6bgjU3J4HICc1h7h5j7g+/YSeH\n" +"UacPSiY4MuXAQao6e2BtFI77LOwFvIFFdCEMdZDwoH+7lIF9I+Krm7ojMF5fauaS\n" +"K4e3kL029QugIFYlgb7HeDGLlonBSn40YXPenafAin0lNGWMWVv3SKN7tweNkKEh\n" +"MVoVReropjYpRg+khKaMumwJ9bdGkYP8jq7DwCKXy/J2rfCUzsyVX5Ga7keT8Ztn\n" +"y4RO6YqFtTryraiSPrxDZQ0Gt6kc1m3u+4vh93qJk+foUDRSLWfWjmX9aRf+7+4z\n" +"dsYBOrpt3tab6FqXrW7IcI+p8PCyBW4c/WHkU3YWreEba21BXGiMDoxfhQ9OyvSH\n" +"t6G8kgO9+k8sRY/78oGYxR4Aait8/Y54DmHkyZKSewu96So0+TDmcbkeatatDhra\n" +"sbjfQLWx8363tnQvmhWpw/bpWGmDQDLVTHn9OcXlckGU1fiUM7721g4s2UdijTMp\n" +"yYWfsLTaxOujHyxkwkBBtGV3DCas5Ep2KPMfSOgf3YVtPQH9IaotJSw/A6FdiQI9\n" +"BBMBCgAnBQJTvR7xAhsDBQkB4TOABQsJCAcDBRUKCQgLBRYDAgEAAh4BAheAAAoJ\n" +"EDanwF/h7Pm7QvMQAKE3pM3e7LrDH6+xsdafxb/RxnVwUI6FaoN3dIZRjIIh7Dyd\n" +"6WypD43+f4c4AeIX+b78RuCuu+oZMMkHk4/Y4PIRv6jw1wuGa67iHopFXy9KPYjE\n" +"QOtLptZUAorqC62CzoVJxwbpIPw1AkKBag7FFKtiymQKbxSAkEkCOTa64RF+FFDJ\n" +"zUqbRQPJMMhKR35lJ/W3TfNQQViF/nydDdNmSY+gYAPU8kqhx4K7K9al9DUwVa/P\n" +"dL0l549BLOHzmFcEtw4FQOGMYt4Gkma5+6OIMJOuoM/ADAUz7qdcWYYdsFl42HzC\n" +"73u7MGLcfGkElcZKkH8sn2zuKsTTtTKD5rhLfIiu132vK7vqoONdJLd7U1X2Bwif\n" +"/ub1we7x4eGonZjhKajENpD3o/1Y072gLy8rlZ1r6/J+GQ9TEwUBNV8NNOfDPv0p\n" +"xTP6OCFPHEFA4toG0rRBm7OIxmQXFWmfxMT3NnwBqPCufWlOm20JhaU/pefPCqHJ\n" +"Vc8Ap+k6/bct3iNuAg1buggFVDWg89uBqF9vfdELiCDF3nRYm4bQ6S1cWxvnu5aq\n" +"9MZdt4Dc1WnTSNfY9/zjKJWmG3miv1D1eo3fSyVJNYVfVzQ23KMOPwR/jdr47Gle\n" +"8/5OM38zPhZ+vC+XD//Lq0/c8iMO39B4pwQ0Bb8FAhk/6Ug0cYbap+lPWkY+iQI9\n" +"BBMBCgAnAhsDBQsJCAcDBRUKCQgLBRYDAgEAAh4BAheABQJVntrOBQkDwu9RAAoJ\n" +"EDanwF/h7Pm77qQQALNcLFh7Eqc6gztkIySQtqDgieH1Frj2YGMrTxdzP7fnl4sT\n" +"wWQF2H0rsLgvOTZszACwLm9Rg2GaRi/bFZ9S8AIM1klQEQmu5LoQDSPrfX0pNxDl\n" +"1WhESECgEAF7++HDk3kHUxr5bCr+AN6kG3mY2nuKtw33G5ZbPtM5Nwgk/GT8dB0w\n" +"EazZVAN103RpdDmqGgWhYP/dYjGZJjLQCjGyM4VoQcEu+dPrUlAxhFbm13wRyfgi\n" +"fBkOug9pB0lpblEXAbB3slDw+4A1++lUjTLzGHayRZIys3d4uM4l1C1b8Z5SeU4r\n" +"mpDcqvRbDkhxwVh6e7YdEbf1VTWjQ2WgvEDQXG74N/nN3npbjPfnyFF79udHTZvb\n" +"qW+uqyozxXdtLvIbcEHWVDdQGqqTeeRinRu7sK8PRuJxbI7YaECGFw/1QrXdIUzi\n" +"1jxRWgtfWihCArXiEuo1LBwdto8CaSxkKV+QTsaH/t5mUiA+fHzsMlexWe55K/7i\n" +"OZ5wViUcffNYwbQ7DgcRxwuzc+IYaGg0GYGzJfWeKnrpwm8uZSccH1LLXdIyf5vp\n" +"Q9UojD0qz1+byBPtl5/DBwFi5st248YMnXCItIYkjTfLeXQp4oSi3AHH0TEAxhUt\n" +"MLoI7CRnIiuCLmssfGI3sNH55wJQQeD7h8c/DaBI8yDuJ28dNY6H5zjPc82suQIN\n" +"BFO9HvEBEACynbl7EgcRIGWP7O6h1O6mrYXNZ2JpJBgYosqizdDHyru2nQSrNfgi\n" +"wAM1feB2NLJC0coQzRO1sDK2JP770+eK3ZhbWSP5BWN2toSFVEGlVpGWLBGoefae\n" +"ZnZA22IDzpOIjIi7iC92JBsTXESsBoV8iG1rylQ15pcE03IQEuuDu9r7H8RJ3vTf\n" +"X1c+a+B8MUHn56kn3QkdG2blV0/3gjFqqavZeOxZpAmyn9n9Vc3yCCPkagtNQwle\n" +"NyZOSOLjjVpBjncE6dATdLOj85phfOU6eO/0bMXAgTr7mY41EIqYqdPQYrY93ySG\n" +"gBvBkyNaH5AlDNZZwJ4ddtDMFoP8nUhBoRrf5ApYyHcEmSXahLfW3a2qrPm/w5VL\n" +"EGLt53/6GZvEetpP+TtBLAxX6XaC2SXAOrzfSZENdYt/Ew6F/dTCZ622m0eW65iV\n" +"wSi1sNZD2hNFPs/12a2tem7DAWqD2bi8BltKRbO+8T7BARwIl5hXGq5+YnO+DgTI\n" +"f4SYkSt8aiPYwDAF3YSkzpiUmZoBSRt6Sb9sZ3zIxpfnrtLFmSeujzinyCVNzFdn\n" +"+HKxZvI9Mc3Tv/LqPruVuWHt1Aj+eygH5bRZw4PTsMNX1FxM/K8hRY91A6Fyp3GC\n" +"kb5RzqdEGuSONBseaZirC0d+EYZ4smy1jydpzwT1O8VjY4wi5BdgwQARAQABiQIl\n" +"BBgBCgAPBQJTvR7xAhsMBQkB4TOAAAoJEDanwF/h7Pm7gzUP/Auq4I876RUqAP2D\n" +"gPNArjuc7jqvIIsgqBvwS2Vdvxg0pFQmsL13nvlmFHR1dp+yOhiz1WmXIVGa9UoB\n" +"rVdmDrzqCifHUVlFct99DLJlM+hNmQnHgTABTsClR4idkekOvyEgAW/gsgddYfqm\n" +"N8nRKSrokFZvwoR7HlCcSXEuATbqgHjJC8IuJuIgDWjshy3yVLIo5v/g/Yuio4bx\n" +"tRTJm72DtUIdDH3tDejc37wd945Rzk4hKzet64inF6XfRhqBsRob1m6/wtP62xPc\n" +"Gbb1GlzxYg9WllRJ/ZOTktB4BemVjRn4/0KU93YyxFxHOtXsoZpRGDlovQBUhRkd\n" +"b2JEyHaLnFVKa7w7JFKW9d+OdGjV93l//6139QEQlcuocV4QciXZOXTZkWsaKQOb\n" +"6WkrSwkQwvNFS2yeUd0x6HD0xebztmSGoXL3uCKyeIxP/8MJjJUkWHh/+DLue4kh\n" +"lHwva7Wym0cvYoS3RzfYd26t9OgM7rflE0tOeJovaoaKP6Aant/EkQj2Wb1MssO/\n" +"Ia44NyMTrLARAPlAEGW/HI5JL9DZDnmUtByf29yqaHDuJCZS3nvR3T/4q+pblTVd\n" +"xQgwopUWjiKkg72yCXMhr/6FcOr9Xgqn++GuMZzh/TFdEoFoJn9stUaScYsoMoih\n" +"ym2NFbd1l2Pw/ifTQk5/KpQD/HkwiQIlBBgBCgAPAhsMBQJVnts0BQkDwu/DAAoJ\n" +"EDanwF/h7Pm7fV4P/Rb4aYTZmpajgk26vnXIJ2L/Xorx1lV7+a1bDxct71qWSLv3\n" +"aCDGDXe1ZLYMnyaNCJHNn4SP2biF7QrRhRmGdETA2VXXCFYLDS7s4OQKltF3p1DS\n" +"1UPozfIyXkCFGbOasbaDtJ9SOSv04q1E6nXfCcF8xgjxMHbbrCsGiiHSNet+5A9f\n" +"AeZPWKWeUDgc3U7tho0FWyHZWgCjt5x1pYlCsUPgV3vlyo8HqRiWxLYF1WQ7SwV/\n" +"1536r5DD5vFbzhdxQ03mPDqLh0VZwPlQ6nb+bKwDX/75Q6tBNBkUQGM7XqI5tZ07\n" +"CjjI1/sTYMJz+GNnkIgrSiBr3vihtJgUzbJFfJqoIPkSdpayCP17k2Mdk9eCW6mc\n" +"tmtfhU91lzJUvAl3Og1TQP/wiyPQhTrQOlonwkrzY/Bve9Ilh2ZDt/9Q+XzEtSdG\n" +"59phFT4s7Yt5f9gVGx2hUhE5mmLN27rQJ2JnyIkA9IyNiycFPRo4ZURXI0yzCwXH\n" +"bwLEmA2FVnnyotURN7Z1k2PzUOL6lb7j2fMJZBbaFDR1G7J2pKNihJO3IY80z7Le\n" +"tpRpWKSdHTpSW1UXJFQBFT4W7fja03aEXP3bK+RV1MkAp/TCWlVCsqnyJae7BnEu\n" +"g9NgaY6PRozzy5ZAdWM36ylnwFyz48fgUWHFhDc7fMCHjwqDtP62K1TbRvFM\n" +"=cQn3\n" +"-----END PGP PUBLIC KEY BLOCK-----\n" +msgstr "" + +#. (itstool) path: sect2/title +#: book.translate.xml:65535 +msgid "" +"Ports Management Team Secretary <email>portmgr-secretary@FreeBSD.org</email>" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"\n" +"pub rsa2048/D8294EC3BBC4D7D5 2012-07-24 [SC]\n" +" Key fingerprint = FB37 45C8 6F15 E8ED AC81 32FC D829 4EC3 BBC4 D7D5\n" +"uid FreeBSD Ports Management Team Secretary <portmgr-secretary@FreeBSD.org>\n" +"sub rsa2048/5CC117965F65CFE7 2012-07-24 [E]\n" +"\n" +msgstr "" + +#. (itstool) path: sect2/programlisting +#: book.translate.xml:65535 +#, no-wrap +msgid "" +"\n" +"-----BEGIN PGP PUBLIC KEY BLOCK-----\n" +"\n" +"mQENBFAOzqYBCACYd+KGv0/DduIRpSEKWZG2yfDILStzWfdaQMD+8zdWihB0x7dd\n" +"JDBUpV0o0Ixzt9mvu5CHybx+9lOHeFRhZshFXc+bIJOPyi+JrSs100o7Lo6jg6+c\n" +"Si2vME0ixG4x9YjCi8DisXIGJ1kZiDXhmVWwCvL+vLInpeXrtJnK8yFkmszCOr4Y\n" +"Q3GXuvdU0BF2tL/Wo/eCbSf+3U9syopVS2L2wKcP76bbYU0ioO35Y503rJEK6R5G\n" +"TchwYvYjSXuhv4ec7N1/j3thrMC9GNpoqjVninTynOk2kn+YZuMpO3c6b/pfoNcq\n" +"MxoizGlTu8VT4OO/SF1y52OkKjpAsENbFaNTABEBAAG0R0ZyZWVCU0QgUG9ydHMg\n" +"TWFuYWdlbWVudCBUZWFtIFNlY3JldGFyeSA8cG9ydG1nci1zZWNyZXRhcnlARnJl\n" +"ZUJTRC5vcmc+iQE4BBMBAgAiBQJQDs6mAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIe\n" +"AQIXgAAKCRDYKU7Du8TX1QW2B/0coHe8utbTfGKpeM4BY9IyC+PFgkE58Hq50o8d\n" +"shoB9gfommcUaK9PNwJPxTEJNlwiKPZy+VoKs/+dO8gahovchbRdSyP1ejn3CFy+\n" +"H8pol0hDDU4n7Ldc50q54GLuZijdcJZqlgOloZqWOYtXFklKPZjdUvYN8KHAntgf\n" +"u361rwM4DZ40HngYY9fdGc4SbXurGA5m+vLAURLzPv+QRQqHfaI1DZF6gzMgY49x\n" +"qS1JBF4kPoicpgvs3o6CuX8MD9ewGFSAMM3EdzV6ZdC8pnpXC8+8Q+p6FjNqmtjk\n" +"GpW39Zq/p8SJVg1RortCH6qWLe7dW7TaFYov7gF1V/DYwDN5iEYEEBECAAYFAlN2\n" +"WksACgkQtzkaJjSHbFtuMwCg0MXdQTcGMMOma7LC3L5b4MEoZ+wAn0WyUHpHwHnn\n" +"pn2oYDlfAbwTloWIiQEcBBABAgAGBQJQDuVrAAoJENk3EJekc8mQ3KwIAImNDMXA\n" +"F8ajPwCZFpM6KDi3F/jpwyBPISGY1oWuYPEi1zN94k5jS90aZb3W8Y8x4JTh35Ew\n" +"b6XODi3uGLSLCmnlqu2a80yPfXf5IuWmIQdFNQxvosj9UHrg+icZGFmm+f0hPJxM\n" +"TsZREv3AvivQfnb/N3xIICxW4SjKSYXQcq4hr4ObhUx7GKnjayq+ofU2cRlujr87\n" +"uOH0fO3xhOJG4+cX5mI1HGK38k0Csc1zqYa/66Qe5dnIZz+sNXpEPMLAHIt1a45U\n" +"B967igJdZSDFN33bPl1QWmf3aUXU3d1VttiSyHkpm4kb9KgsDkUk1IJ5nUe9OXyd\n" +"WtoqNW5afDa5N0aIRgQQEQIABgUCUA7lwwAKCRB59uBxdBRinNh2AJ41+zfsaQSR\n" +"HWvSkqOXGcP/fgOduwCfUJDT+M1eXe2udmKof/9yzGYMirKJASIEEAECAAwFAlAa\n" +"IT8FAwASdQAACgkQlxC4m8pXrXwCHAf+J7l+L7AvRpqlQcezjnjFS/zG1098qkDf\n" +"lThHZlpVnrBMJZaXdvL6LzVgiIYVWZC5CSSazW9EWFjp9VjM7FBHdWFZNMV7GAuU\n" +"t0jzx6gGXOWwi+/v/hs1P11RyDZN5hICHdPNmyZVupciDxe+sIEP9aEbVxcaiccq\n" +"zM/pFzIVIMMP5tCiA42q6Mz3h0hy6hntUKptS8Uon6sje5cDVcVlKAUj1wO2cphC\n" +"qkYlwMQfZV5J9f/hcW5ODriD3cBwK8SocA2Cq5JYF8kYDL1+pXnUutGnvAHUYt87\n" +"RWvQdKmfXjzBcMFJ2LlPUB1+IFvwQ13V9R8j9B/EdLmSWQYT9qRA2okCHAQTAQoA\n" +"BgUCV1XMpwAKCRCtu/hhCjeJt2CyD/9JLe+Ck23CJkeRSF8oC+4SFOUdSAmejSzn\n" +"klPwmEClffABYd/kckO1T6um+2FUcXuJZQE1nKKUNvZ8pBWwsm1RDHsyroKi/XB1\n" +"0a1Tdx/rvlU88ytbeLfUCLzoCrf6pkMQWoU6/3qS6elV0WwOlDufk+XjD1sja2wu\n" +"sshG8y+1WCA5JjP3rZdD9NVdzo5DgkotTRUfuYN1LJIN4zlDgHj7FVP7wW7+R0cZ\n" +"FoOiNsLJCA0FN8SiyU98UysjawLiIY9dTJz6XVA0DgB0TZWO3mWiDjITeKrdGcqf\n" +"PNiJhmvUKBkn07YpTPNfkoTT/p/q5ChYmu0ubGeyS1ELKjmklJ+DzynfZLzvnXYX\n" +"Ngo5ckeuqEqUNxM0J63v8lmfhDRROFveqHWdp0XMxXVmR5bMunSldg5EZsoLyQbN\n" +"+ScIPnDTAEPGrCtf0t84RQxNQeET6/WBbZfzeSeAFmpBFCdicsZ6Mjwtwjr4+o15\n" +"n1QMTZco1NaTqf8vXwzl9wM4aYtg1OkF4z8HdHuy50CHCet4mT5eJgwZUfFvXdbM\n" +"pHXprEI0Y9OOL4aMinC1egF3dXt/0n57i6CE+E2k3UJPNvMrtp0HaDEnKZ8cfkBU\n" +"EBzkUYi5wwqntHV2JRisqoRnHdvJT7ImlHMe7WaJsifBK874PnToaKg8P6K1Tph+\n" +"FyLxULaYjYkCHAQSAQgABgUCVBg2zwAKCRDqsDxYv9xHj1klEADXYJdHC3zsdx7w\n" +"DsJsttWdykcZoOd/VUKUdN0BAU72nLV0tLn4uFjETA6MhHZVxzwIDTeLB8kqyEpc\n" +"fZnoVbqJIUJz1sJXMdOty7CwZzlZlAwmUaIfFiazJY1p398JbyYfSrVKNOpw9wCm\n" +"Db7WP9dBritwvjaLzu8HQsiztO0S/5ha/EDfTU3qocBUTjbCtGR9LqAmPE4X8+li\n" +"F2EfZMEoJd3rJWsYv2y/k6pSgC/MpQewnyr6f+JQ/781UoZB6PpxCxfu4D6xlOyd\n" +"ERBUg+FfDAWYR+KX+DGOalRlUyaSz8Nvxl8/b0Im/AQhx9afqyEZxIDpg52zt8jJ\n" +"t3wx23YP8EQGUgwF8pIrj3wFSBSG3a/cskiBNUIhChIR9hQrVPUahN/jx7DGAGxk\n" +"/Ka9qsRGYTHfSr9jjTUQ+htfeFBRDR0nkZKMo5+Wk/cAcBKVbPlBpwvnzT3fh+wL\n" +"cF3ErBbx5jp+BoFee8D6ATeUvQxMcgVbDPUkgMsy3EtKMVO10jhIoXoVV+Sg9GZ8\n" +"zMEy1tORKn0zsd2ZgXC2sRJOm5ttCSdYQ4ddbM1A9jg6tiRx4hES16GDywvkL8P2\n" +"M9+qyIfjQxjGU33f/r8zp9DyNT1VlrtwhFxtOoMdmrsbYOCTja4Xg14hK1hRac0k\n" +"GB7bj6w97p8uMrQT3PlSMtoyrRyo7bkBDQRQDs6mAQgAzNxJYpf5PrqV8pdRXkn3\n" +"6Fe45q671YtbZ2WrT7D0CVZ8Z+AZsxnP/tiY1SrM2MepCeA2xBAhKGsWBWo1aRk5\n" +"mfZOksKsiXsi2XeBVhdZlCkrOMKBTVian7I1lH59ZnNIMX0Nl0tlj3L1IjeWWNvf\n" +"ej43URV81S9EmSwpjaWboatr2A+1oJku5m7nPD9JIOckE1TzBsyhx7zIUN9w6MKr\n" +"7gFw8DCzypwUKyYgKYToVm8QlkT/L3B0fuQHWhT6ROGk4o8SC71ia5tc1TzUzGEZ\n" +"1AQO8bbnbmJLBDKveWHCoaeAkRzINzoD9wAn9z4pnilze59QtKC1cOqUksTvBSDh\n" +"6wARAQABiQEfBBgBAgAJBQJQDs6mAhsMAAoJENgpTsO7xNfVOHoH/i5VyggVdwpq\n" +"PX8YBmN5mXQziYZNQoiON8IhOsxpX4W2nXCj5m6MACV6nJDVV6wyUH8/VvDQC9nH\n" +"arCe1oaNsHXJz0HamYt5gHJ0G1bYuBcuJp/FEjLa48XFI7nXQjJHn8rlwZMjK/PW\n" +"j1lw2WZiekviuzTEDH8c3YStGJSa+gYe8Eyq3XJVAe2VQOhImoWgGDR3tWfgrya/\n" +"IdEFb/jmjHSG5XUfbI0vNwqlf832BqSQKPG/Zix4MmBJgvAz4R71PH8WBmbmNFjD\n" +"elxVyfz80+iMgEb9aL91MfeBNC2KB1pFmg91mQTsiq7ajwVLVJK8NplHAkdLmkBC\n" +"O8MgMjzGhlE=\n" +"=iw7d\n" +"-----END PGP PUBLIC KEY BLOCK-----\n" +msgstr "" + +#. (itstool) path: glossary/title +#: book.translate.xml:65535 +msgid "FreeBSD Glossary" +msgstr "FreeBSD 詞彙表" + +#. (itstool) path: glossary/para +#: book.translate.xml:65535 +msgid "" +"This glossary contains terms and acronyms used within the FreeBSD community " +"and documentation." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "ACL" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "ACPI" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "AMD" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "AML" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "API" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "APIC" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "APOP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "ASL" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "ATA" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "ATM" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "<acronym>ACPI</acronym> Machine Language" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"Pseudocode, interpreted by a virtual machine within an <acronym>ACPI</" +"acronym>-compliant operating system, providing a layer between the " +"underlying hardware and the documented interface presented to the " +"<acronym>OS</acronym>." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "<acronym>ACPI</acronym> Source Language" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "The programming language <acronym>AML</acronym> is written in." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Access Control List" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A list of permissions attached to an object, usually either a file or a " +"network device." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Advanced Configuration and Power Interface" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A specification which provides an abstraction of the interface the hardware " +"presents to the operating system, so that the operating system should need " +"to know nothing about the underlying hardware to make the most of it. " +"<acronym>ACPI</acronym> evolves and supersedes the functionality provided " +"previously by <acronym>APM</acronym>, <acronym>PNPBIOS</acronym> and other " +"technologies, and provides facilities for controlling power consumption, " +"machine suspension, device enabling and disabling, etc." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Application Programming Interface" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A set of procedures, protocols and tools that specify the canonical " +"interaction of one or more program parts; how, when and why they do work " +"together, and what data they share or operate on." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Advanced Power Management" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An <acronym>API</acronym> enabling the operating system to work in " +"conjunction with the <acronym>BIOS</acronym> in order to achieve power " +"management. <acronym>APM</acronym> has been superseded by the much more " +"generic and powerful <acronym>ACPI</acronym> specification for most " +"applications." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Advanced Programmable Interrupt Controller" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Advanced Technology Attachment" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Asynchronous Transfer Mode" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Authenticated Post Office Protocol" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Automatic Mount Daemon" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A daemon that automatically mounts a filesystem when a file or directory " +"within that filesystem is accessed." +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "B" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "BAR" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "BIND" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "BIOS" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Base Address Register" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The registers that determine which address range a <acronym>PCI</acronym> " +"device will respond to." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Basic Input/Output System" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The definition of <acronym>BIOS</acronym> depends a bit on the context. Some " +"people refer to it as the <acronym>ROM</acronym> chip with a basic set of " +"routines to provide an interface between software and hardware. Others refer " +"to it as the set of routines contained in the chip that help in " +"bootstrapping the system. Some might also refer to it as the screen used to " +"configure the bootstrapping process. The <acronym>BIOS</acronym> is PC-" +"specific but other systems have something similar." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Berkeley Internet Name Domain" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "An implementation of the <acronym>DNS</acronym> protocols." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Berkeley Software Distribution" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"This is the name that the Computer Systems Research Group (CSRG) at <link " +"xlink:href=\"http://www.berkeley.edu\">The University of California at " +"Berkeley</link> gave to their improvements and modifications to AT&T's " +"32V <trademark class=\"registered\">UNIX</trademark>. FreeBSD is a " +"descendant of the CSRG work." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Bikeshed Building" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A phenomenon whereby many people will give an opinion on an uncomplicated " +"topic, whilst a complex topic receives little or no discussion. See the " +"<link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/faq/misc." +"html#BIKESHED-PAINTING\">FAQ</link> for the origin of the term." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "CD" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "CHAP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "CLIP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "COFF" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "CPU" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Carrier Detect" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An <acronym>RS232C</acronym> signal indicating that a carrier has been " +"detected." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Central Processing Unit" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"Also known as the processor. This is the brain of the computer where all " +"calculations take place. There are a number of different architectures with " +"different instruction sets. Among the more well-known are the Intel-x86 and " +"derivatives, Sun SPARC, PowerPC, and Alpha." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Challenge Handshake Authentication Protocol" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A method of authenticating a user, based on a secret shared between client " +"and server." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Classical <acronym>IP</acronym> over <acronym>ATM</acronym>" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Clear To Send" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An <acronym>RS232C</acronym> signal giving the remote system permission to " +"send data." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Common Object File Format" +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "D" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "DAC" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "DDB" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "DES" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "DHCP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "DNS" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "DSDT" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "DVMRP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Discretionary Access Control" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Data Encryption Standard" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A method of encrypting information, traditionally used as the method of " +"encryption for <trademark class=\"registered\">UNIX</trademark> passwords " +"and the <citerefentry><refentrytitle>crypt</refentrytitle><manvolnum>3</" +"manvolnum></citerefentry> function." +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An <acronym>RS232C</acronym> signal sent from the modem to the computer or " +"terminal indicating a readiness to send and receive data." +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An <acronym>RS232C</acronym> signal sent from the computer or terminal to " +"the modem indicating a readiness to send and receive data." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Debugger" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An interactive in-kernel facility for examining the status of a system, " +"often used after a system has crashed to establish the events surrounding " +"the failure." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Differentiated System Description Table" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An <acronym>ACPI</acronym> table, supplying basic configuration information " +"about the base system." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Distance-Vector Multicast Routing Protocol" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Domain Name System" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The system that converts humanly readable hostnames (i.e., mail.example.net) " +"to Internet addresses and vice versa." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Dynamic Host Configuration Protocol" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A protocol that dynamically assigns IP addresses to a computer (host) when " +"it requests one from the server. The address assignment is called a " +"<quote>lease</quote>." +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "E" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "ECOFF" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "ELF" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "ESP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Encapsulated Security Payload" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Executable and Linking Format" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Extended <acronym>COFF</acronym>" +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "F" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "FADT" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "FAT" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "FAT16" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "FTP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "File Allocation Table" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "File Allocation Table (16-bit)" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "File Transfer Protocol" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A member of the family of high-level protocols implemented on top of " +"<acronym>TCP</acronym> which can be used to transfer files over a " +"<acronym>TCP/IP</acronym> network." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Fixed <acronym>ACPI</acronym> Description Table" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "GUI" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Giant" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The name of a mutual exclusion mechanism (a <literal>sleep mutex</literal>) " +"that protects a large set of kernel resources. Although a simple locking " +"mechanism was adequate in the days where a machine might have only a few " +"dozen processes, one networking card, and certainly only one processor, in " +"current times it is an unacceptable performance bottleneck. FreeBSD " +"developers are actively working to replace it with locks that protect " +"individual resources, which will allow a much greater degree of parallelism " +"for both single-processor and multi-processor machines." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Graphical User Interface" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "A system where the user and computer interact with graphics." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "HTML" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "HUP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "HangUp" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "HyperText Markup Language" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "The markup language used to create web pages." +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "I" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "I/O" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "IASL" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "IMAP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "IP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "IPFW" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "IPP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "IPv4" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "IPv6" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "ISP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "<acronym>IP</acronym> Firewall" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "<acronym>IP</acronym> Version 4" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The <acronym>IP</acronym> protocol version 4, which uses 32 bits for " +"addressing. This version is still the most widely used, but it is slowly " +"being replaced with <acronym>IPv6</acronym>." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "<acronym>IP</acronym> Version 6" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The new <acronym>IP</acronym> protocol. Invented because the address space " +"in <acronym>IPv4</acronym> is running out. Uses 128 bits for addressing." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Input/Output" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Intel’s <acronym>ASL</acronym> compiler" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"Intel’s compiler for converting <acronym>ASL</acronym> into <acronym>AML</" +"acronym>." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Internet Message Access Protocol" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A protocol for accessing email messages on a mail server, characterised by " +"the messages usually being kept on the server as opposed to being downloaded " +"to the mail reader client." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Internet Printing Protocol" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Internet Protocol" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The packet transmitting protocol that is the basic protocol on the Internet. " +"Originally developed at the U.S. Department of Defense and an extremely " +"important part of the <acronym>TCP/IP </acronym> stack. Without the Internet " +"Protocol, the Internet would not have become what it is today. For more " +"information, see <link xlink:href=\"ftp://ftp.rfc-editor.org/in-notes/rfc791." +"txt\"> RFC 791</link>." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Internet Service Provider" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "A company that provides access to the Internet." +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "K" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "KAME" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"Japanese for <quote>turtle</quote>, the term KAME is used in computing " +"circles to refer to the <link xlink:href=\"http://www.kame.net/\">KAME " +"Project</link>, who work on an implementation of <acronym>IPv6</acronym>." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "KDC" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "KLD" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "KSE" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "KVA" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "Kbps" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "" +"Kernel <citerefentry><refentrytitle>ld</refentrytitle><manvolnum>1</" +"manvolnum></citerefentry>" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A method of dynamically loading functionality into a FreeBSD kernel without " +"rebooting the system." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Kernel Scheduler Entities" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A kernel-supported threading system. See the <link xlink:href=\"http://www." +"FreeBSD.org/kse\">project home page</link> for further details." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Kernel Virtual Address" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Key Distribution Center" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Kilo Bits Per Second" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"Used to measure bandwidth (how much data can pass a given point at a " +"specified amount of time). Alternates to the Kilo prefix include Mega, Giga, " +"Tera, and so forth." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "LAN" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "LOR" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "LPD" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Line Printer Daemon" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Local Area Network" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "A network used on a local area, e.g. office, home, or so forth." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Lock Order Reversal" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The FreeBSD kernel uses a number of resource locks to arbitrate contention " +"for those resources. A run-time lock diagnostic system found in FreeBSD-" +"CURRENT kernels (but removed for releases), called " +"<citerefentry><refentrytitle>witness</refentrytitle><manvolnum>4</" +"manvolnum></citerefentry>, detects the potential for deadlocks due to " +"locking errors. (<citerefentry><refentrytitle>witness</" +"refentrytitle><manvolnum>4</manvolnum></citerefentry> is actually slightly " +"conservative, so it is possible to get false positives.) A true positive " +"report indicates that <quote>if you were unlucky, a deadlock would have " +"happened here</quote>." +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"True positive LORs tend to get fixed quickly, so check http://lists.FreeBSD." +"org/mailman/listinfo/freebsd-current and the <link xlink:href=\"http://" +"sources.zabbadoz.net/freebsd/lor.html\"> LORs Seen</link> page before " +"posting to the mailing lists." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MAC" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MADT" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MFC" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MFH" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MFP4" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MFS" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MIT" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MLS" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MOTD" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MTA" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "MUA" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Mail Transfer Agent" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An application used to transfer email. An <acronym>MTA</acronym> has " +"traditionally been part of the BSD base system. Today Sendmail is included " +"in the base system, but there are many other <acronym>MTA</acronym>s, such " +"as postfix, qmail and Exim." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Mail User Agent" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "An application used by users to display and write email." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Massachusetts Institute of Technology" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Merge From Current" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"To merge functionality or a patch from the -CURRENT branch to another, most " +"often -STABLE." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Merge From Head" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"To merge functionality or a patch from a repository HEAD to an earlier " +"branch." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Merge From Perforce" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"To merge functionality or a patch from the Perforce repository to the -" +"CURRENT branch." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Merge From Stable" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"In the normal course of FreeBSD development, a change will be committed to " +"the -CURRENT branch for testing before being merged to -STABLE. On rare " +"occasions, a change will go into -STABLE first and then be merged to -" +"CURRENT." +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"This term is also used when a patch is merged from -STABLE to a security " +"branch." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Message Of The Day" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A message, usually shown on login, often used to distribute information to " +"users of the system." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Multi-Level Security" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Multiple <acronym>APIC</acronym> Description Table" +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "N" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "NAT" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "NDISulator" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "NFS" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "NTFS" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "NTP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Network Address Translation" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A technique where <acronym>IP</acronym> packets are rewritten on the way " +"through a gateway, enabling many machines behind the gateway to effectively " +"share a single <acronym>IP</acronym> address." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Network File System" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "New Technology File System" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A filesystem developed by Microsoft and available in its <quote>New " +"Technology</quote> operating systems, such as <trademark class=\"registered" +"\">Windows</trademark> 2000, <trademark class=\"registered\">Windows NT</" +"trademark> and <trademark class=\"registered\">Windows</trademark> XP." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Network Time Protocol" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "A means of synchronizing clocks over a network." +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "O" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "OBE" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "ODMR" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "OS" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "On-Demand Mail Relay" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Operating System" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A set of programs, libraries and tools that provide access to the hardware " +"resources of a computer. Operating systems range today from simplistic " +"designs that support only one program running at a time, accessing only one " +"device to fully multi-user, multi-tasking and multi-process systems that can " +"serve thousands of users simultaneously, each of them running dozens of " +"different applications." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Overtaken By Events" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"Indicates a suggested change (such as a Problem Report or a feature request) " +"which is no longer relevant or applicable due to such things as later " +"changes to FreeBSD, changes in networking standards, the affected hardware " +"having since become obsolete, and so forth." +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "P" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "p4" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PAE" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PAM" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PAP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PC" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "PCNSFD" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PDF" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PID" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "POLA" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "POP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "POP3" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PPD" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PPP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PPPoA" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PPPoE" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "<acronym>PPP</acronym> over <acronym>ATM</acronym>" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "<acronym>PPP</acronym> over <acronym>Ethernet</acronym>" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PR" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PXE" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Password Authentication Protocol" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Perforce" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A source code control product made by <link xlink:href=\"http://www.perforce." +"com/\">Perforce Software</link>. Although not open source, its use is free " +"of charge to open-source projects such as FreeBSD." +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"Some FreeBSD developers use a Perforce repository as a staging area for code " +"that is considered too experimental for the -CURRENT branch." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Personal Computer" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Personal Computer Network File System Daemon" +msgstr "" + +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "PCNFSD" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Physical Address Extensions" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A method of enabling access to up to 64 GB of <acronym>RAM</acronym> on " +"systems which only physically have a 32-bit wide address space (and would " +"therefore be limited to 4 GB without PAE)." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Pluggable Authentication Modules" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Point-to-Point Protocol" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Pointy Hat" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A mythical piece of headgear, much like a <literal>dunce cap</literal>, " +"awarded to any FreeBSD committer who breaks the build, makes revision " +"numbers go backwards, or creates any other kind of havoc in the source base. " +"Any committer worth his or her salt will soon accumulate a large collection. " +"The usage is (almost always?) humorous." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Portable Document Format" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Post Office Protocol" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Post Office Protocol Version 3" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A protocol for accessing email messages on a mail server, characterised by " +"the messages usually being downloaded from the server to the client, as " +"opposed to remaining on the server." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "PostScript Printer Description" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Preboot eXecution Environment" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Principle Of Least Astonishment" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"As FreeBSD evolves, changes visible to the user should be kept as " +"unsurprising as possible. For example, arbitrarily rearranging system " +"startup variables in <filename>/etc/defaults/rc.conf</filename> violates " +"<acronym>POLA</acronym>. Developers consider <acronym>POLA</acronym> when " +"contemplating user-visible system changes." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Problem Report" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A description of some kind of problem that has been found in either the " +"FreeBSD source or documentation. See <link xlink:href=\"@@URL_RELPREFIX@@/" +"doc/en_US.ISO8859-1/articles/problem-reports/index.html\"> Writing FreeBSD " +"Problem Reports</link>." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Process ID" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A number, unique to a particular process on a system, which identifies it " +"and allows actions to be taken against it." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Project Evil" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The working title for the <acronym>NDISulator</acronym>, written by Bill " +"Paul, who named it referring to how awful it is (from a philosophical " +"standpoint) to need to have something like this in the first place. The " +"<acronym>NDISulator</acronym> is a special compatibility module to allow " +"Microsoft Windows™ NDIS miniport network drivers to be used with FreeBSD/" +"i386. This is usually the only way to use cards where the driver is closed-" +"source. See <filename>src/sys/compat/ndis/subr_ndis.c</filename>." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "RA" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "RAID" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "RAM" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "RFC" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "RISC" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "RPC" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "RS232C" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Random Access Memory" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Revision Control System" +msgstr "" + +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "RCS" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The <emphasis>Revision Control System</emphasis> (<acronym>RCS</acronym>) is " +"one of the oldest software suites that implement <quote>revision control</" +"quote> for plain files. It allows the storage, retrieval, archival, logging, " +"identification and merging of multiple revisions for each file. RCS consists " +"of many small tools that work together. It lacks some of the features found " +"in more modern revision control systems, like Git, but it is very simple to " +"install, configure, and start using for a small set of files." +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "An <acronym>RS232C</acronym> pin or wire that data is received on." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Recommended Standard 232C" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "A standard for communications between serial devices." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Reduced Instruction Set Computer" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An approach to processor design where the operations the hardware can " +"perform are simplified but made as general purpose as possible. This can " +"lead to lower power consumption, fewer transistors and in some cases, better " +"performance and increased code density. Examples of RISC processors include " +"the Alpha, <trademark class=\"registered\">SPARC</trademark>, <trademark " +"class=\"registered\">ARM</trademark> and <trademark class=\"registered" +"\">PowerPC</trademark>." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Redundant Array of Inexpensive Disks" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Remote Procedure Call" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Request For Comments" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A set of documents defining Internet standards, protocols, and so forth. See " +"<link xlink:href=\"http://www.rfc-editor.org/\">www.rfc-editor.org</link>." +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"Also used as a general term when someone has a suggested change and wants " +"feedback." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Request To Send" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An <acronym>RS232C</acronym> signal requesting that the remote system " +"commences transmission of data." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Router Advertisement" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "SCI" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "SCSI" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "SMB" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "SMP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "SMTP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "SMTP AUTH" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "SSH" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "STR" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "SVN" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "<acronym>SMTP</acronym> Authentication" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Server Message Block" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An <acronym>RS232</acronym> pin or wire that is the ground reference for the " +"signal." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Simple Mail Transfer Protocol" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Secure Shell" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Small Computer System Interface" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Subversion" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"Subversion is a version control system currently used by the FreeBSD project." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Suspend To <acronym>RAM</acronym>" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Symmetric MultiProcessor" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "System Control Interrupt" +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "T" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "TCP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "TCP/IP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "TFTP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "TGT" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "TSC" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Ticket-Granting Ticket" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Time Stamp Counter" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A profiling counter internal to modern <trademark class=\"registered" +"\">Pentium</trademark> processors that counts core frequency clock ticks." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Transmission Control Protocol" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A protocol that sits on top of (e.g.) the <acronym>IP</acronym> protocol and " +"guarantees that packets are delivered in a reliable, ordered, fashion." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Transmission Control Protocol/Internet Protocol" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The term for the combination of the <acronym>TCP</acronym> protocol running " +"over the <acronym>IP</acronym> protocol. Much of the Internet runs over " +"<acronym>TCP/IP</acronym>." +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "An <acronym>RS232C</acronym> pin or wire that data is transmitted on." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Trivial <acronym>FTP</acronym>" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "UDP" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "UFS1" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "UFS2" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "UID" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "URL" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "USB" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Uniform Resource Locator" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A method of locating a resource, such as a document on the Internet and a " +"means to identify that resource." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Unix File System Version 1" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"The original <trademark class=\"registered\">UNIX</trademark> file system, " +"sometimes called the Berkeley Fast File System." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Unix File System Version 2" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"An extension to <acronym>UFS1</acronym>, introduced in FreeBSD 5-CURRENT. " +"<acronym>UFS2</acronym> adds 64 bit block pointers (breaking the 1T " +"barrier), support for extended file storage and other features." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Universal Serial Bus" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A hardware standard used to connect a wide variety of computer peripherals " +"to a universal interface." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "User ID" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A unique number assigned to each user of a computer, by which the resources " +"and permissions assigned to that user can be identified." +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "User Datagram Protocol" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A simple, unreliable datagram protocol which is used for exchanging data on " +"a TCP/IP network. <acronym>UDP</acronym> does not provide error checking and " +"correction like <acronym>TCP</acronym>." +msgstr "" + +#. (itstool) path: glossdiv/title +#: book.translate.xml:65535 +msgid "V" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#. (itstool) path: glossentry/acronym +#: book.translate.xml:65535 +msgid "VPN" +msgstr "" + +#. (itstool) path: glossentry/glossterm +#: book.translate.xml:65535 +msgid "Virtual Private Network" +msgstr "" + +#. (itstool) path: glossdef/para +#: book.translate.xml:65535 +msgid "" +"A method of using a public telecommunication such as the Internet, to " +"provide remote access to a localized network, such as a corporate " +"<acronym>LAN</acronym>." +msgstr "" + +#. (itstool) path: colophon/para +#: book.translate.xml:65535 +msgid "" +"This book is the combined work of hundreds of contributors to <quote>The " +"FreeBSD Documentation Project</quote>. The text is authored in XML according " +"to the DocBook DTD and is formatted from XML into many different " +"presentation formats using XSLT. The printed version of this document would " +"not be possible without Donald Knuth's <application>TeX</application> " +"typesetting language, Leslie Lamport's <application>LaTeX</application>, or " +"Sebastian Rahtz's <application>JadeTeX</application> macro package." +msgstr "" +"本手冊是由數以百計 <quote>FreeBSD 文件計劃</quote> 的志願工作者所合作而成。 " +"這些文字是由依據 DocBook DTD 規範的 XML 所寫, 並由 XSLT 將 XML 轉換成其他不" +"同格式。 要是沒有 Donald Knuth 的 <application>TeX</application> 排版語言, " +"Leslie Lamport 的 <application>LaTeX</application> 或 Sebastian Rahtz 的 " +"<application>JadeTeX</application> 巨集套件的重要貢獻,本文件的印刷版本將無以" +"完成。" + +#~ msgid "Using the Samba Web Administration Tool (SWAT)" +#~ msgstr "使用 Samba 網頁管理工具 (SWAT)" + +#~ msgid "" +#~ "Users with very slow or limited Internet connectivity can instead use CTM " +#~ "as described in <xref linkend=\"ctm\"/>, but it is not as reliable as " +#~ "<application>svn</application> and <application>svn</application> is the " +#~ "recommended method for synchronizing source." +#~ msgstr "" +#~ "網路很慢或是受到限制的使用者可依 <xref linkend=\"ctm\"/> 的說明使用 CTM 來" +#~ "替代,但是 CTM 並不像 <application>svn</application> 可靠,建議使用 " +#~ "<application>svn</application> 來同步原始碼。" + +#~ msgid "Using CTM" +#~ msgstr "使用 CTM" + +#~ msgid "Getting Deltas" +#~ msgstr "取得 Deltas" + +#~ msgid "Keeping Local Changes" +#~ msgstr "保留本地變更" + +#~ msgid "Other <application>CTM</application> Options" +#~ msgstr "其他 <application>CTM</application> 選項" |