Traditional Chinese handbook update:
- Catch up the latest handbook architecture - Translate "cutting-edge" chapter PR: 193066, 193715, 193750 Differential Revision: https://reviews.freebsd.org/D2284 Submitted by: RayCherng Yu <raycherng@gmail.com> Reviewed by: delphij, wblock Approved by: delphij, wblock
This commit is contained in:
parent
bbb438489b
commit
5764da7bbf
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=46538
28 changed files with 23114 additions and 15397 deletions
|
@ -1,9 +1,18 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
# Original revision: 1.108
|
||||
#
|
||||
# Build the FreeBSD Handbook.
|
||||
# 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
|
||||
|
||||
|
@ -20,7 +29,63 @@ 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+= bsdinstall/bsdinstall-adduser1.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-adduser2.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-adduser3.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-boot-loader-menu.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-boot-options-menu.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-newboot-loader-menu.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-choose-mode.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-config-components.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-config-hostname.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-config-keymap.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-config-services.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-config-crashdump.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-ipv4-dhcp.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-ipv4.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-ipv4-static.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-ipv6.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-ipv6-static.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-slaac.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-network-ipv4-dns.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-wireless-accesspoints.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-wireless-scan.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-configure-wireless-wpa2setup.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-distfile-extracting.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-distfile-fetching.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-distfile-verifying.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-final-confirmation.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-finalconfiguration.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-final-modification-shell.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-keymap-10.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-keymap-select-default.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-mainexit.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-netinstall-files.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-netinstall-mirrorselect.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-part-entire-part.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-part-guided-disk.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-part-guided-manual.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-part-manual-addpart.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-part-manual-create.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-part-manual-partscheme.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-part-review.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-post-root-passwd.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-set-clock-local-utc.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-timezone-confirm.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-timezone-country.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-timezone-region.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-timezone-zone.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-zfs-disk_info.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-zfs-disk_select.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-zfs-geli_password.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-zfs-menu.png
|
||||
IMAGES_EN+= bsdinstall/bsdinstall-zfs-partmenu.png
|
||||
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
|
||||
|
@ -28,6 +93,7 @@ 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
|
||||
|
@ -104,13 +170,6 @@ IMAGES_EN+= security/ipsec-network.pic
|
|||
IMAGES_EN+= security/ipsec-crypt-pkt.pic
|
||||
IMAGES_EN+= security/ipsec-encap-pkt.pic
|
||||
IMAGES_EN+= security/ipsec-out-pkt.pic
|
||||
IMAGES_EN+= vinum/vinum-concat.pic
|
||||
IMAGES_EN+= vinum/vinum-mirrored-vol.pic
|
||||
IMAGES_EN+= vinum/vinum-raid10-vol.pic
|
||||
IMAGES_EN+= vinum/vinum-raid5-org.pic
|
||||
IMAGES_EN+= vinum/vinum-simple-vol.pic
|
||||
IMAGES_EN+= vinum/vinum-striped-vol.pic
|
||||
IMAGES_EN+= vinum/vinum-striped.pic
|
||||
IMAGES_EN+= virtualization/parallels-freebsd1.png
|
||||
IMAGES_EN+= virtualization/parallels-freebsd2.png
|
||||
IMAGES_EN+= virtualization/parallels-freebsd3.png
|
||||
|
@ -175,7 +234,9 @@ IMAGES_LIB+= callouts/15.png
|
|||
# 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
|
||||
|
@ -186,6 +247,8 @@ 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
|
||||
|
@ -205,8 +268,6 @@ SRCS+= preface/preface.xml
|
|||
SRCS+= printing/chapter.xml
|
||||
SRCS+= security/chapter.xml
|
||||
SRCS+= serialcomms/chapter.xml
|
||||
SRCS+= users/chapter.xml
|
||||
SRCS+= vinum/chapter.xml
|
||||
SRCS+= virtualization/chapter.xml
|
||||
SRCS+= x11/chapter.xml
|
||||
|
||||
|
@ -230,8 +291,6 @@ DOC_PREFIX?= ${.CURDIR}/../../..
|
|||
XMLDOCS= lastmod:::mirrors.lastmod.inc \
|
||||
mirrors-ftp-index:::mirrors.xml.ftp.index.inc \
|
||||
mirrors-ftp:::mirrors.xml.ftp.inc \
|
||||
mirrors-cvsup-index:::mirrors.xml.cvsup.index.inc \
|
||||
mirrors-cvsup:::mirrors.xml.cvsup.inc \
|
||||
eresources-index:::eresources.xml.www.index.inc \
|
||||
eresources:::eresources.xml.www.inc
|
||||
DEPENDSET.DEFAULT= transtable mirror
|
||||
|
@ -245,12 +304,6 @@ PARAMS.mirrors-ftp-index+= --param 'type' "'ftp'" \
|
|||
PARAMS.mirrors-ftp+= --param 'type' "'ftp'" \
|
||||
--param 'proto' "'ftp'" \
|
||||
--param 'target' "'handbook/mirrors/chapter.xml'"
|
||||
PARAMS.mirrors-cvsup-index+= --param 'type' "'cvsup'" \
|
||||
--param 'proto' "'cvsup'" \
|
||||
--param 'target' "'index'"
|
||||
PARAMS.mirrors-cvsup+= --param 'type' "'cvsup'" \
|
||||
--param 'proto' "'cvsup'" \
|
||||
--param 'target' "'handbook/mirrors/chapter.xml'"
|
||||
PARAMS.eresources-index+= --param 'type' "'www'" \
|
||||
--param 'proto' "'http'" \
|
||||
--param 'target' "'index'"
|
||||
|
@ -261,8 +314,6 @@ PARAMS.eresources+= --param 'type' "'www'" \
|
|||
SRCS+= mirrors.lastmod.inc \
|
||||
mirrors.xml.ftp.inc \
|
||||
mirrors.xml.ftp.index.inc \
|
||||
mirrors.xml.cvsup.inc \
|
||||
mirrors.xml.cvsup.index.inc \
|
||||
eresources.xml.www.inc \
|
||||
eresources.xml.www.index.inc
|
||||
|
||||
|
|
|
@ -1,19 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD Traditional Chinese Project
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: 1.152
|
||||
Original revision: r46052
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="basics">
|
||||
<info><title>UNIX 基礎概念</title>
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="basics">
|
||||
<!--
|
||||
<chapterinfo>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Chris</firstname><surname>Shumway</surname></personname><contrib>Rewritten by </contrib></author>
|
||||
<author>
|
||||
<firstname>Chris</firstname>
|
||||
<surname>Shumway</surname>
|
||||
<contrib>Rewritten by in Mar 2000</contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
</info>
|
||||
|
||||
|
||||
</chapterinfo>
|
||||
-->
|
||||
<title>UNIX 基礎概念</title>
|
||||
|
||||
<sect1 xml:id="basics-synopsis">
|
||||
<title>概述</title>
|
||||
|
@ -29,44 +36,61 @@
|
|||
<listitem>
|
||||
<para>如何使用 FreeBSD 的<quote>virtual consoles</quote>。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&unix; 檔案權限運作的方式以及 &os; 中檔案的 flags。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>預設的 &os; 檔案系統配置。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&os; 的磁碟結構。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>如何掛載(mount)、卸載(umount)檔案系統</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>什麼是processes、daemons 以及 signals 。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>什麼是 shell ,以及如何變更您預設的登入環境。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>如何使用基本的文字編輯器。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>什麼是 devices 和 device nodes 。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&os; 下使用的 binary 格式。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>如何閱讀 manual pages 以獲得更多的資訊。</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="consoles">
|
||||
<title>Virtual Consoles 和終端機</title>
|
||||
<indexterm><primary>virtual consoles</primary></indexterm>
|
||||
<indexterm><primary>terminals</primary></indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary>virtual consoles</primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>terminals</primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>console</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>有很多方法可以操作 FreeBSD ,其中一種就是在文字終端機上打字。
|
||||
如此使用 FreeBSD 即可輕易的體會到 &unix; 作業系統的威力和彈性。
|
||||
|
@ -279,6 +303,798 @@ options SC_PIXEL_MODE</programlisting>
|
|||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="users-synopsis">
|
||||
<title>Users and Basic Account Management</title>
|
||||
|
||||
<para>&os; 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.</para>
|
||||
|
||||
<para>This chapter describes:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>The different types of user accounts on a
|
||||
&os; system.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How to add, remove, and modify user accounts.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How to set limits to control the
|
||||
resources that users and
|
||||
groups are allowed to access.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How to create groups and add users as members of a
|
||||
group.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<sect2 xml:id="users-introduction">
|
||||
<title>Account Types</title>
|
||||
|
||||
<para>Since all access to the &os; system is achieved using
|
||||
accounts and all processes are run by users, user and account
|
||||
management is important.</para>
|
||||
|
||||
<para>There are three main types of accounts: system accounts,
|
||||
user accounts, and the superuser account.</para>
|
||||
|
||||
<sect3 xml:id="users-system">
|
||||
<title>System Accounts</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary>system</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary><systemitem
|
||||
class="username">daemon</systemitem></secondary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary><systemitem
|
||||
class="username">operator</systemitem></secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>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>.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary><systemitem
|
||||
class="username">nobody</systemitem></secondary>
|
||||
</indexterm>
|
||||
|
||||
<para><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.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="users-user">
|
||||
<title>User Accounts</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary>user</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Every user account on a &os; system has certain
|
||||
information associated with it:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>User name</term>
|
||||
|
||||
<listitem>
|
||||
<para>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
|
||||
&man.passwd.5;. 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.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Password</term>
|
||||
|
||||
<listitem>
|
||||
<para>Each account has an associated password.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>User ID (<acronym>UID</acronym>)</term>
|
||||
|
||||
<listitem>
|
||||
<para>The User ID (<acronym>UID</acronym>) is a number
|
||||
used to uniquely identify the user to the &os; 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.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Group ID (<acronym>GID</acronym>)</term>
|
||||
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Login class</term>
|
||||
|
||||
<listitem>
|
||||
<para>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"/>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Password change time</term>
|
||||
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Account expiry time</term>
|
||||
|
||||
<listitem>
|
||||
<para>By default, &os; 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 &man.pw.8;. 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.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>User's full name</term>
|
||||
|
||||
<listitem>
|
||||
<para>The user name uniquely identifies the account to
|
||||
&os;, 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.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Home directory</term>
|
||||
|
||||
<listitem>
|
||||
<para>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
|
||||
class="directory"><replaceable>/home/username</replaceable></filename>
|
||||
or <filename
|
||||
class="directory"><replaceable>/usr/home/username</replaceable></filename>.
|
||||
Each user stores their personal files and
|
||||
subdirectories in their own home directory.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>User shell</term>
|
||||
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="users-superuser">
|
||||
<title>The Superuser Account</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary>superuser (root)</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Always double and triple-check any commands issued as
|
||||
the superuser, since an extra space or missing character can
|
||||
mean irreparable data loss.</para>
|
||||
|
||||
<para>There are several ways to gain superuser privilege.
|
||||
While one can log in as
|
||||
<systemitem class="username">root</systemitem>, this is
|
||||
highly discouraged.</para>
|
||||
|
||||
<para>Instead, use &man.su.1; 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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<example>
|
||||
<title>Install a Program As the Superuser</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>configure</userinput>
|
||||
&prompt.user; <userinput>make</userinput>
|
||||
&prompt.user; <userinput>su -</userinput>
|
||||
Password:
|
||||
&prompt.root; <userinput>make install</userinput>
|
||||
&prompt.root; <userinput>exit</userinput>
|
||||
&prompt.user;</screen>
|
||||
</example>
|
||||
|
||||
<para>The built-in &man.su.1; 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.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="users-modifying">
|
||||
<title>Managing Accounts</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary>modifying</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>&os; 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.</para>
|
||||
|
||||
<table frame="none" pgwide="1"
|
||||
xml:id="users-modifying-utilities">
|
||||
<title>Utilities for Managing User Accounts</title>
|
||||
|
||||
<tgroup cols="2">
|
||||
<colspec colwidth="1*"/>
|
||||
<colspec colwidth="2*"/>
|
||||
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Command</entry>
|
||||
<entry>Summary</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>&man.adduser.8;</entry>
|
||||
<entry>The recommended command-line application for
|
||||
adding new users.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&man.rmuser.8;</entry>
|
||||
<entry>The recommended command-line application for
|
||||
removing users.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&man.chpass.1;</entry>
|
||||
<entry>A flexible tool for changing user database
|
||||
information.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&man.passwd.1;</entry>
|
||||
<entry>The command-line tool to change user
|
||||
passwords.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&man.pw.8;</entry>
|
||||
<entry>A powerful and flexible tool for modifying all
|
||||
aspects of user accounts.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<sect3 xml:id="users-adduser">
|
||||
<title><command>adduser</command></title>
|
||||
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary>adding</secondary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary><command>adduser</command></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary><filename>/usr/share/skel</filename></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>skeleton directory</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>The recommended program for adding new users is
|
||||
&man.adduser.8;. 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.</para>
|
||||
|
||||
<para>The &man.adduser.8; 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 &man.su.1;.
|
||||
When finished, the utility will prompt to either
|
||||
create another user or to exit.</para>
|
||||
|
||||
<example xml:id="users-modifying-adduser">
|
||||
<title>Adding a User on &os;</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>adduser</userinput>
|
||||
Username: <userinput>jru</userinput>
|
||||
Full name: <userinput>J. Random User</userinput>
|
||||
Uid (Leave empty for default):
|
||||
Login group [jru]:
|
||||
Login group is jru. Invite jru into other groups? []: <userinput>wheel</userinput>
|
||||
Login class [default]:
|
||||
Shell (sh csh tcsh zsh nologin) [sh]: <userinput>zsh</userinput>
|
||||
Home directory [/home/jru]:
|
||||
Home directory permissions (Leave empty for default):
|
||||
Use password-based authentication? [yes]:
|
||||
Use an empty password? (yes/no) [no]:
|
||||
Use a random password? (yes/no) [no]:
|
||||
Enter password:
|
||||
Enter password again:
|
||||
Lock out the account after creation? [no]:
|
||||
Username : jru
|
||||
Password : ****
|
||||
Full Name : J. Random User
|
||||
Uid : 1001
|
||||
Class :
|
||||
Groups : jru wheel
|
||||
Home : /home/jru
|
||||
Shell : /usr/local/bin/zsh
|
||||
Locked : no
|
||||
OK? (yes/no): <userinput>yes</userinput>
|
||||
adduser: INFO: Successfully added (jru) to the user database.
|
||||
Add another user? (yes/no): <userinput>no</userinput>
|
||||
Goodbye!
|
||||
&prompt.root;</screen>
|
||||
</example>
|
||||
|
||||
<note>
|
||||
<para>Since the password is not echoed when typed, be
|
||||
careful to not mistype the password when creating the user
|
||||
account.</para>
|
||||
</note>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="users-rmuser">
|
||||
<title><command>rmuser</command></title>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>rmuser</command></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary>removing</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>To completely remove a user from the system, run
|
||||
&man.rmuser.8; as the superuser. This command performs the
|
||||
following steps:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Removes the user's &man.crontab.1; entry, if one
|
||||
exists.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Removes any &man.at.1; jobs belonging to the
|
||||
user.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Kills all processes owned by the user.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Removes the user from the system's local password
|
||||
file.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Optionally removes the user's home directory, if it
|
||||
is owned by the user.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Removes the incoming mail files belonging to the
|
||||
user from <filename>/var/mail</filename>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Removes all files owned by the user from temporary
|
||||
file storage areas such as
|
||||
<filename>/tmp</filename>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>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
|
||||
&man.adduser.8;.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<para>&man.rmuser.8; cannot be used to remove superuser
|
||||
accounts since that is almost always an indication of
|
||||
massive destruction.</para>
|
||||
|
||||
<para>By default, an interactive mode is used, as shown
|
||||
in the following example.</para>
|
||||
|
||||
<example>
|
||||
<title><command>rmuser</command> Interactive Account
|
||||
Removal</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>rmuser jru</userinput>
|
||||
Matching password entry:
|
||||
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
|
||||
Is this the entry you wish to remove? <userinput>y</userinput>
|
||||
Remove user's home directory (/home/jru)? <userinput>y</userinput>
|
||||
Removing user (jru): mailspool home passwd.
|
||||
&prompt.root;</screen>
|
||||
</example>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="users-chpass">
|
||||
<title><command>chpass</command></title>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>chpass</command></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Any user can use &man.chpass.1; 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.</para>
|
||||
|
||||
<para>When passed no options, aside from an optional username,
|
||||
&man.chpass.1; displays an editor containing user
|
||||
information. When the user exits from the editor, the user
|
||||
database is updated with the new information.</para>
|
||||
|
||||
<note>
|
||||
<para>This utility will prompt for the user's password when
|
||||
exiting the editor, unless the utility is run as the
|
||||
superuser.</para>
|
||||
</note>
|
||||
|
||||
<para>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"/>.</para>
|
||||
|
||||
<example xml:id="users-modifying-chpass-su">
|
||||
<title>Using <command>chpass</command> as
|
||||
Superuser</title>
|
||||
|
||||
<screen>#Changing user database information for jru.
|
||||
Login: jru
|
||||
Password: *
|
||||
Uid [#]: 1001
|
||||
Gid [# or name]: 1001
|
||||
Change [month day year]:
|
||||
Expire [month day year]:
|
||||
Class:
|
||||
Home directory: /home/jru
|
||||
Shell: /usr/local/bin/zsh
|
||||
Full Name: J. Random User
|
||||
Office Location:
|
||||
Office Phone:
|
||||
Home Phone:
|
||||
Other information:</screen>
|
||||
</example>
|
||||
|
||||
<example xml:id="users-modifying-chpass-ru">
|
||||
<title>Using <command>chpass</command> as Regular
|
||||
User</title>
|
||||
|
||||
<screen>#Changing user database information for jru.
|
||||
Shell: /usr/local/bin/zsh
|
||||
Full Name: J. Random User
|
||||
Office Location:
|
||||
Office Phone:
|
||||
Home Phone:
|
||||
Other information:</screen>
|
||||
</example>
|
||||
|
||||
<note>
|
||||
<para>The commands &man.chfn.1; and &man.chsh.1; are links
|
||||
to &man.chpass.1;, as are &man.ypchpass.1;,
|
||||
&man.ypchfn.1;, and &man.ypchsh.1;. 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"/>.</para>
|
||||
</note>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="users-passwd">
|
||||
<title><command>passwd</command></title>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>passwd</command></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary>changing password</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Any user can easily change their password using
|
||||
&man.passwd.1;. To prevent accidental or unauthorized
|
||||
changes, this command will prompt for the user's original
|
||||
password before a new password can be set:</para>
|
||||
|
||||
<example>
|
||||
<title>Changing Your Password</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>passwd</userinput>
|
||||
Changing local password for jru.
|
||||
Old password:
|
||||
New password:
|
||||
Retype new password:
|
||||
passwd: updating the database...
|
||||
passwd: done</screen>
|
||||
</example>
|
||||
|
||||
<para>The superuser can change any user's password by
|
||||
specifying the username when running &man.passwd.1;. 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.</para>
|
||||
|
||||
<example>
|
||||
<title>Changing Another User's Password as the
|
||||
Superuser</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>passwd jru</userinput>
|
||||
Changing local password for jru.
|
||||
New password:
|
||||
Retype new password:
|
||||
passwd: updating the database...
|
||||
passwd: done</screen>
|
||||
</example>
|
||||
|
||||
<note>
|
||||
<para>As with &man.chpass.1;, &man.yppasswd.1; is a link to
|
||||
&man.passwd.1;, so <acronym>NIS</acronym> works with
|
||||
either command.</para>
|
||||
</note>
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="users-pw">
|
||||
<title><command>pw</command></title>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>pw</command></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>The &man.pw.8; utility can create, remove,
|
||||
modify, and display users and groups. It functions as a
|
||||
front end to the system user and group files. &man.pw.8;
|
||||
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.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="users-groups">
|
||||
<title>Managing Groups</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>groups</primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary><filename>/etc/groups</filename></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>accounts</primary>
|
||||
<secondary>groups</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>A group is a list of users. A group is identified by its
|
||||
group name and <acronym>GID</acronym>. In &os;, 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.</para>
|
||||
|
||||
<para>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 &man.group.5;.</para>
|
||||
|
||||
<para>The superuser can modify <filename>/etc/group</filename>
|
||||
using a text editor. Alternatively, &man.pw.8; 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:</para>
|
||||
|
||||
<example>
|
||||
<title>Adding a Group Using &man.pw.8;</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>pw groupadd teamtwo</userinput>
|
||||
&prompt.root; <userinput>pw groupshow teamtwo</userinput>
|
||||
teamtwo:*:1100:</screen>
|
||||
</example>
|
||||
|
||||
<para>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>.</para>
|
||||
|
||||
<example>
|
||||
<title>Adding User Accounts to a New Group Using
|
||||
&man.pw.8;</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>pw groupmod teamtwo -M jru</userinput>
|
||||
&prompt.root; <userinput>pw groupshow teamtwo</userinput>
|
||||
teamtwo:*:1100:jru</screen>
|
||||
</example>
|
||||
|
||||
<para>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 &man.pw.8;, but will show up
|
||||
when the information is queried via &man.id.1; or a similar
|
||||
tool. When &man.pw.8; 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>.</para>
|
||||
|
||||
<example>
|
||||
<title>Adding a New Member to a Group Using &man.pw.8;</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>pw groupmod teamtwo -m db</userinput>
|
||||
&prompt.root; <userinput>pw groupshow teamtwo</userinput>
|
||||
teamtwo:*:1100:jru,db</screen>
|
||||
</example>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<example>
|
||||
<title>Using &man.id.1; to Determine Group Membership</title>
|
||||
|
||||
<screen>&prompt.user; <userinput>id jru</userinput>
|
||||
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)</screen>
|
||||
</example>
|
||||
|
||||
<para>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>.</para>
|
||||
|
||||
<para>For more information about this command and the format of
|
||||
<filename>/etc/group</filename>, refer to &man.pw.8; and
|
||||
&man.group.5;.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="permissions">
|
||||
<title>權限</title>
|
||||
<indexterm><primary>UNIX</primary></indexterm>
|
||||
|
|
BIN
zh_TW.UTF-8/books/handbook/basics/disk-layout.kil
Normal file
BIN
zh_TW.UTF-8/books/handbook/basics/disk-layout.kil
Normal file
Binary file not shown.
|
@ -1,24 +1,32 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD Traditional Chinese Documentation Project
|
||||
|
||||
Original revision: r45698
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
<!ENTITY % chapters SYSTEM "chapters.ent">
|
||||
%chapters;
|
||||
<!ENTITY % txtfiles SYSTEM "txtfiles.ent">
|
||||
%txtfiles;
|
||||
]>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: 1.163
|
||||
-->
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_TW">
|
||||
<info><title>FreeBSD 使用手冊</title>
|
||||
|
||||
<book xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:lang="zh_tw">
|
||||
|
||||
<author><orgname>FreeBSD 文件計畫</orgname></author>
|
||||
<info>
|
||||
<title>FreeBSD 使用手冊</title>
|
||||
|
||||
<pubdate>February 1999</pubdate>
|
||||
<author>
|
||||
<orgname>FreeBSD 文件計畫</orgname>
|
||||
</author>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
|
@ -37,6 +45,12 @@
|
|||
<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>
|
||||
<holder>FreeBSD 文件計畫</holder>
|
||||
</copyright>
|
||||
|
||||
|
@ -50,9 +64,8 @@
|
|||
&tm-attrib.adaptec;
|
||||
&tm-attrib.adobe;
|
||||
&tm-attrib.apple;
|
||||
&tm-attrib.corel;
|
||||
&tm-attrib.creative;
|
||||
&tm-attrib.cvsup;
|
||||
&tm-attrib.google;
|
||||
&tm-attrib.heidelberger;
|
||||
&tm-attrib.ibm;
|
||||
&tm-attrib.ieee;
|
||||
|
@ -60,19 +73,12 @@
|
|||
&tm-attrib.intuit;
|
||||
&tm-attrib.linux;
|
||||
&tm-attrib.lsilogic;
|
||||
&tm-attrib.m-systems;
|
||||
&tm-attrib.macromedia;
|
||||
&tm-attrib.microsoft;
|
||||
&tm-attrib.netscape;
|
||||
&tm-attrib.nexthop;
|
||||
&tm-attrib.opengroup;
|
||||
&tm-attrib.oracle;
|
||||
&tm-attrib.powerquest;
|
||||
&tm-attrib.realnetworks;
|
||||
&tm-attrib.redhat;
|
||||
&tm-attrib.sap;
|
||||
&tm-attrib.sun;
|
||||
&tm-attrib.symantec;
|
||||
&tm-attrib.themathworks;
|
||||
&tm-attrib.thomson;
|
||||
&tm-attrib.usrobotics;
|
||||
|
@ -86,6 +92,7 @@
|
|||
|
||||
<abstract>
|
||||
<para>歡迎使用FreeBSD! 本使用手冊涵蓋範圍包括了
|
||||
<emphasis>FreeBSD &rel3.current;-RELEASE</emphasis>、
|
||||
<emphasis>FreeBSD &rel2.current;-RELEASE</emphasis> 和
|
||||
<emphasis>FreeBSD &rel.current;-RELEASE</emphasis> 的安裝和日常使用。
|
||||
這份使用手冊是很多人的集體創作,而且仍然『持續不斷』的進行中。
|
||||
|
@ -140,6 +147,7 @@
|
|||
</partintro>
|
||||
|
||||
&chap.introduction;
|
||||
&chap.bsdinstall;
|
||||
&chap.install;
|
||||
&chap.basics;
|
||||
&chap.ports;
|
||||
|
@ -177,7 +185,6 @@
|
|||
</itemizedlist>
|
||||
|
||||
<para>這些章節中有些需要您預先閱讀些相關文件,在各章節開頭的概要內會提及。</para>
|
||||
|
||||
</partintro>
|
||||
|
||||
&chap.desktop;
|
||||
|
@ -202,17 +209,18 @@
|
|||
|
||||
&chap.config;
|
||||
&chap.boot;
|
||||
&chap.users;
|
||||
&chap.security;
|
||||
&chap.jails;
|
||||
&chap.mac;
|
||||
&chap.audit;
|
||||
&chap.disks;
|
||||
&chap.geom;
|
||||
&chap.vinum;
|
||||
&chap.zfs;
|
||||
&chap.filesystems;
|
||||
&chap.virtualization;
|
||||
&chap.l10n;
|
||||
&chap.cutting-edge;
|
||||
&chap.dtrace;
|
||||
</part>
|
||||
|
||||
<part xml:id="network-communication">
|
||||
|
|
15
zh_TW.UTF-8/books/handbook/bsdinstall/Makefile
Normal file
15
zh_TW.UTF-8/books/handbook/bsdinstall/Makefile
Normal file
|
@ -0,0 +1,15 @@
|
|||
#
|
||||
# Build the Handbook with just the content from this chapter.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
CHAPTERS= bsdinstall/chapter.xml
|
||||
|
||||
VPATH= ..
|
||||
|
||||
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||
|
||||
.include "../Makefile"
|
2743
zh_TW.UTF-8/books/handbook/bsdinstall/chapter.xml
Normal file
2743
zh_TW.UTF-8/books/handbook/bsdinstall/chapter.xml
Normal file
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,7 @@
|
|||
Chapters should be listed in the order in which they are referenced.
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: 1.33
|
||||
Original revision: r45602
|
||||
-->
|
||||
|
||||
<!ENTITY chap.preface SYSTEM "preface/preface.xml">
|
||||
|
@ -17,6 +17,7 @@
|
|||
<!-- Part One -->
|
||||
<!ENTITY chap.introduction SYSTEM "introduction/chapter.xml">
|
||||
<!ENTITY chap.install SYSTEM "install/chapter.xml">
|
||||
<!ENTITY chap.bsdinstall SYSTEM "bsdinstall/chapter.xml">
|
||||
<!ENTITY chap.basics SYSTEM "basics/chapter.xml">
|
||||
<!ENTITY chap.ports SYSTEM "ports/chapter.xml">
|
||||
<!ENTITY chap.x11 SYSTEM "x11/chapter.xml">
|
||||
|
@ -31,15 +32,14 @@
|
|||
<!-- Part Three -->
|
||||
<!ENTITY chap.config SYSTEM "config/chapter.xml">
|
||||
<!ENTITY chap.boot SYSTEM "boot/chapter.xml">
|
||||
<!ENTITY chap.users SYSTEM "users/chapter.xml">
|
||||
<!ENTITY chap.security SYSTEM "security/chapter.xml">
|
||||
<!ENTITY chap.jails SYSTEM "jails/chapter.xml">
|
||||
<!ENTITY chap.mac SYSTEM "mac/chapter.xml">
|
||||
<!ENTITY chap.audit SYSTEM "audit/chapter.xml">
|
||||
<!ENTITY chap.disks SYSTEM "disks/chapter.xml">
|
||||
<!ENTITY chap.geom SYSTEM "geom/chapter.xml">
|
||||
<!ENTITY chap.zfs SYSTEM "zfs/chapter.xml">
|
||||
<!ENTITY chap.filesystems SYSTEM "filesystems/chapter.xml">
|
||||
<!ENTITY chap.vinum SYSTEM "vinum/chapter.xml">
|
||||
<!ENTITY chap.virtualization SYSTEM "virtualization/chapter.xml">
|
||||
<!ENTITY chap.l10n SYSTEM "l10n/chapter.xml">
|
||||
<!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.xml">
|
||||
|
@ -55,14 +55,12 @@
|
|||
|
||||
<!-- Part Five (appendices) -->
|
||||
<!ENTITY chap.mirrors SYSTEM "mirrors/chapter.xml">
|
||||
<!ENTITY chap.mirrors.lastmod.inc SYSTEM "mirrors.lastmod.inc">
|
||||
<!ENTITY chap.mirrors.ftp.index.inc SYSTEM "mirrors.xml.ftp.index.inc">
|
||||
<!ENTITY chap.mirrors.lastmod.inc SYSTEM "mirrors.lastmod.inc">
|
||||
<!ENTITY chap.mirrors.ftp.index.inc SYSTEM "mirrors.xml.ftp.index.inc">
|
||||
<!ENTITY chap.mirrors.ftp.inc SYSTEM "mirrors.xml.ftp.inc">
|
||||
<!ENTITY chap.mirrors.cvsup.index.inc SYSTEM "mirrors.xml.cvsup.index.inc">
|
||||
<!ENTITY chap.mirrors.cvsup.inc SYSTEM "mirrors.xml.cvsup.inc">
|
||||
<!ENTITY chap.bibliography SYSTEM "bibliography/chapter.xml">
|
||||
<!ENTITY chap.eresources SYSTEM "eresources/chapter.xml">
|
||||
<!ENTITY chap.eresources.www.index.inc SYSTEM "eresources.xml.www.index.inc">
|
||||
<!ENTITY chap.eresources.www.index.inc SYSTEM "eresources.xml.www.index.inc">
|
||||
<!ENTITY chap.eresources.www.inc SYSTEM "eresources.xml.www.inc">
|
||||
<!ENTITY chap.pgpkeys SYSTEM "pgpkeys/chapter.xml">
|
||||
<!ENTITY chap.freebsd-glossary SYSTEM "../../share/xml/glossary.ent">
|
||||
|
|
|
@ -2,20 +2,19 @@
|
|||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSD$
|
||||
-->
|
||||
<colophon xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="colophon">
|
||||
<colophon xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="colophon">
|
||||
|
||||
<para>This book is the combined work of hundreds of contributors to
|
||||
<quote>The FreeBSD Documentation Project</quote>. The text is
|
||||
authored in SGML
|
||||
according to the DocBook DTD and is formatted from SGML into many
|
||||
different presentation formats using <application>Jade</application>,
|
||||
an open source DSSSL
|
||||
engine. Norm Walsh's DSSSL stylesheets were used with an
|
||||
additional customization layer to provide the presentation
|
||||
instructions for <application>Jade</application>. The printed
|
||||
version of this document would not be possible without Donald
|
||||
Knuth's &tex; typesetting language,
|
||||
Leslie Lamport's <application>LaTeX</application>, or Sebastian
|
||||
Rahtz's <application>JadeTeX</application> macro package.</para>
|
||||
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
|
||||
&tex; typesetting language, Leslie
|
||||
Lamport's <application>LaTeX</application>, or Sebastian Rahtz's
|
||||
<application>JadeTeX</application> macro package.</para>
|
||||
</colophon>
|
||||
|
|
|
@ -1,26 +1,49 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD Traditional Chinese Project
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: 1.213
|
||||
Chased revision: 1.221
|
||||
Original revision: r46049
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="config-tuning">
|
||||
<info><title>設定與效能調校(Tuning)</title>
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="config-tuning">
|
||||
|
||||
<info>
|
||||
<title>設定與效能調校(Tuning)</title>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Written by </contrib></author>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Chern</firstname>
|
||||
<surname>Lee</surname>
|
||||
</personname>
|
||||
<contrib>Written by </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Mike</firstname><surname>Smith</surname></personname><contrib>Based on a tutorial written by </contrib></author>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Mike</firstname>
|
||||
<surname>Smith</surname>
|
||||
</personname>
|
||||
<contrib>Based on a tutorial written by </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Matt</firstname><surname>Dillon</surname></personname><contrib>Also based on tuning(7) written by </contrib></author>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Matt</firstname>
|
||||
<surname>Dillon</surname>
|
||||
</personname>
|
||||
<contrib>Also based on tuning(7) written by </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<sect1 xml:id="config-synopsis">
|
||||
<title>概述</title>
|
||||
|
||||
|
@ -70,6 +93,7 @@
|
|||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<!-- moved to bsdinstall/chapter.xml
|
||||
<sect1 xml:id="configtuning-initial">
|
||||
<title>一開始的規劃</title>
|
||||
|
||||
|
@ -172,6 +196,7 @@
|
|||
</sect2>
|
||||
|
||||
</sect1>
|
||||
-->
|
||||
|
||||
<sect1 xml:id="configtuning-core-configuration">
|
||||
<title>最主要的設定檔</title>
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
15
zh_TW.UTF-8/books/handbook/dtrace/Makefile
Normal file
15
zh_TW.UTF-8/books/handbook/dtrace/Makefile
Normal file
|
@ -0,0 +1,15 @@
|
|||
#
|
||||
# Build the Handbook with just the content from this chapter.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
CHAPTERS= dtrace/chapter.xml
|
||||
|
||||
VPATH= ..
|
||||
|
||||
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||
|
||||
.include "../Makefile"
|
359
zh_TW.UTF-8/books/handbook/dtrace/chapter.xml
Normal file
359
zh_TW.UTF-8/books/handbook/dtrace/chapter.xml
Normal file
|
@ -0,0 +1,359 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Recently I suggested to myself that this should become a profiling
|
||||
and debugging chapter, which covers things like ktrace(1) and
|
||||
using other debugging (like -x in shell scripts). But then I
|
||||
realized that, over time and while DTrace becomes better supported,
|
||||
that might make this chapter too large.
|
||||
-->
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
$FreeBSD$
|
||||
-->
|
||||
<!-- XXXTR: Should probably put links and resources here. I'm
|
||||
nervous about this chapter as it may require a partial
|
||||
re-write and large modification once DTrace is complete, but
|
||||
at least we can get everyone started ... -->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="dtrace">
|
||||
<info>
|
||||
<title>&dtrace;</title>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written
|
||||
by </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
<sect1 xml:id="dtrace-synopsis">
|
||||
<title>Synopsis</title>
|
||||
|
||||
<indexterm><primary>&dtrace;</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>&dtrace; support</primary>
|
||||
<see>&dtrace;</see>
|
||||
</indexterm>
|
||||
|
||||
<para>&dtrace;, also known as Dynamic Tracing, was developed by
|
||||
&sun; 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 &os;
|
||||
kernel and in userland programs.</para>
|
||||
|
||||
<para>&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.</para>
|
||||
|
||||
<para>The &os; 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/php5</package> have a &dtrace; option to enable
|
||||
static probes. &os; 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.</para>
|
||||
|
||||
<para>After reading this chapter, you will know:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>What &dtrace; is and what features it provides.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Differences between the &solaris; &dtrace;
|
||||
implementation and the one provided by &os;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How to enable and use &dtrace; on &os;.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Before reading this chapter, you should:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Understand &unix; and &os; basics
|
||||
(<xref linkend="basics"/>).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Have some familiarity with security and how it pertains
|
||||
to &os; (<xref linkend="security"/>).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="dtrace-implementation">
|
||||
<title>Implementation Differences</title>
|
||||
|
||||
<para>While the &dtrace; in &os; is similar to that found in
|
||||
&solaris;, differences do exist. The primary difference is that
|
||||
in &os;, &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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload dtraceall</userinput></screen>
|
||||
|
||||
<para>Beginning with &os; 10.0-RELEASE, the modules are
|
||||
automatically loaded when <command>dtrace</command> is
|
||||
run.</para>
|
||||
|
||||
<para>&os; 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 &solaris; 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.</para>
|
||||
|
||||
<para>Some different providers exist for &os; than for &solaris;.
|
||||
Most notable is the <literal>dtmalloc</literal> provider, which
|
||||
allows tracing <function>malloc()</function> by type in the &os;
|
||||
kernel. Some of the providers found in &solaris;, such as
|
||||
<literal>cpc</literal> and <literal>mib</literal>, are not
|
||||
present in &os;. These may appear in future versions of &os;.
|
||||
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 &solaris; may or may not work unmodified on &os;, and
|
||||
vice versa.</para>
|
||||
|
||||
<para>Due to security differences, only <systemitem
|
||||
class="username">root</systemitem> may use &dtrace; on &os;.
|
||||
&solaris; has a few low level security checks which do not yet
|
||||
exist in &os;. As such, the
|
||||
<filename>/dev/dtrace/dtrace</filename> is strictly limited to
|
||||
<systemitem class="username">root</systemitem>.</para>
|
||||
|
||||
<para>&dtrace; falls under the Common Development and Distribution
|
||||
License (<acronym>CDDL</acronym>) license. To view this license
|
||||
on &os;, 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 &os; 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.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="dtrace-enable">
|
||||
<title>Enabling &dtrace; Support</title>
|
||||
|
||||
<para>In &os; 9.2 and 10.0, &dtrace; support is built into the
|
||||
<filename>GENERIC</filename> kernel. Users of earlier versions
|
||||
of &os; 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"/>:</para>
|
||||
|
||||
<programlisting>options KDTRACE_HOOKS
|
||||
options DDB_CTF
|
||||
options DEBUG=-g</programlisting>
|
||||
|
||||
<para>Users of the AMD64 architecture should also add this
|
||||
line:</para>
|
||||
|
||||
<programlisting>options KDTRACE_FRAME</programlisting>
|
||||
|
||||
<para>This option provides support for <acronym>FBT</acronym>.
|
||||
While &dtrace; will work without this option, there will be
|
||||
limited support for function boundary tracing.</para>
|
||||
|
||||
<para>Once the &os; 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>.</para>
|
||||
|
||||
<para>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. &os; 10
|
||||
installs a few of these scripts into
|
||||
<filename>/usr/share/dtrace</filename>. On other &os; versions,
|
||||
or to install the full
|
||||
&dtrace; Toolkit, use the
|
||||
<package>sysutils/DTraceToolkit</package> package or
|
||||
port.</para>
|
||||
|
||||
<note>
|
||||
<para>The scripts found in
|
||||
<filename>/usr/share/dtrace</filename> have been specifically
|
||||
ported to &os;. Not all of the scripts found in the &dtrace;
|
||||
Toolkit will work as-is on &os; and some scripts may require
|
||||
some effort in order for them to work on &os;.</para>
|
||||
</note>
|
||||
|
||||
<para>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>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="dtrace-using">
|
||||
<title>Using &dtrace;</title>
|
||||
|
||||
<para>&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.</para>
|
||||
|
||||
<para>To view all probes, the administrator can execute the
|
||||
following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>dtrace -l | more</userinput></screen>
|
||||
|
||||
<para>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 &man.dtrace.1; for
|
||||
more information about this command.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/share/dtrace/toolkit</userinput>
|
||||
&prompt.root; <userinput>./hotkernel</userinput>
|
||||
Sampling... Hit Ctrl-C to end.</screen>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>kernel`_thread_lock_flags 2 0.0%
|
||||
0xc1097063 2 0.0%
|
||||
kernel`sched_userret 2 0.0%
|
||||
kernel`kern_select 2 0.0%
|
||||
kernel`generic_copyin 3 0.0%
|
||||
kernel`_mtx_assert 3 0.0%
|
||||
kernel`vm_fault 3 0.0%
|
||||
kernel`sopoll_generic 3 0.0%
|
||||
kernel`fixup_filename 4 0.0%
|
||||
kernel`_isitmyx 4 0.0%
|
||||
kernel`find_instance 4 0.0%
|
||||
kernel`_mtx_unlock_flags 5 0.0%
|
||||
kernel`syscall 5 0.0%
|
||||
kernel`DELAY 5 0.0%
|
||||
0xc108a253 6 0.0%
|
||||
kernel`witness_lock 7 0.0%
|
||||
kernel`read_aux_data_no_wait 7 0.0%
|
||||
kernel`Xint0x80_syscall 7 0.0%
|
||||
kernel`witness_checkorder 7 0.0%
|
||||
kernel`sse2_pagezero 8 0.0%
|
||||
kernel`strncmp 9 0.0%
|
||||
kernel`spinlock_exit 10 0.0%
|
||||
kernel`_mtx_lock_flags 11 0.0%
|
||||
kernel`witness_unlock 15 0.0%
|
||||
kernel`sched_idletd 137 0.3%
|
||||
0xc10981a5 42139 99.3%</screen>
|
||||
|
||||
<!-- XXXTR: I attempted to use objdump and nm on /boot/kernel/kernel
|
||||
to find 0xc10981a5, but to no avail. It would be nice to know
|
||||
how we should look that up. -->
|
||||
|
||||
<para>This script will also work with kernel modules. To use this
|
||||
feature, run the script with <option>-m</option>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>./hotkernel -m</userinput>
|
||||
Sampling... Hit Ctrl-C to end.
|
||||
^C
|
||||
MODULE COUNT PCNT
|
||||
0xc107882e 1 0.0%
|
||||
0xc10e6aa4 1 0.0%
|
||||
0xc1076983 1 0.0%
|
||||
0xc109708a 1 0.0%
|
||||
0xc1075a5d 1 0.0%
|
||||
0xc1077325 1 0.0%
|
||||
0xc108a245 1 0.0%
|
||||
0xc107730d 1 0.0%
|
||||
0xc1097063 2 0.0%
|
||||
0xc108a253 73 0.0%
|
||||
kernel 874 0.4%
|
||||
0xc10981a5 213781 99.6%</screen>
|
||||
|
||||
<!-- XXXTR: I was unable to match these up with output from
|
||||
kldstat and kldstat -v and grep. Maybe I'm missing something
|
||||
seriously obvious. It is 5AM btw. -->
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>./procsystime -n csh</userinput>
|
||||
Tracing... Hit Ctrl-C to end...
|
||||
^C
|
||||
|
||||
Elapsed Times for processes csh,
|
||||
|
||||
SYSCALL TIME (ns)
|
||||
getpid 6131
|
||||
sigreturn 8121
|
||||
close 19127
|
||||
fcntl 19959
|
||||
dup 26955
|
||||
setpgid 28070
|
||||
stat 31899
|
||||
setitimer 40938
|
||||
wait4 62717
|
||||
sigaction 67372
|
||||
sigprocmask 119091
|
||||
gettimeofday 183710
|
||||
write 263242
|
||||
execve 492547
|
||||
ioctl 770073
|
||||
vfork 3258923
|
||||
sigsuspend 6985124
|
||||
read 3988049784</screen>
|
||||
|
||||
<para>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.</para>
|
||||
</sect1>
|
||||
</chapter>
|
|
@ -1,12 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD Traditional Chinese Project
|
||||
|
||||
$FreeBSD$
|
||||
Take translation from Kang-min Liu <gugod@gugod.org>
|
||||
Original revision: 1.175
|
||||
Original revision: r46084
|
||||
-->
|
||||
<appendix xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="eresources">
|
||||
<appendix xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="eresources">
|
||||
|
||||
<title>網際網路上的資源</title>
|
||||
|
||||
<para>進展飛快的 FreeBSD 使得現有的印刷、平面媒體跟不上它的最新進度!
|
||||
|
@ -111,11 +115,6 @@
|
|||
<entry>FreeBSD 人力銀行</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.policy.name;</entry>
|
||||
<entry>FreeBSD Core team 的 policy 方針討論區。這裡文章不多,且只限 core team 才可發言。</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.questions.name;</entry>
|
||||
<entry>使用問題及技術支援</entry>
|
||||
|
@ -193,16 +192,6 @@
|
|||
<entry>在 FreeBSD 上使用 ATM 網路</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.audit.name;</entry>
|
||||
<entry>Source code 的稽核(audit)計劃</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.binup.name;</entry>
|
||||
<entry>研發 binary 的升級方式</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.bluetooth.name;</entry>
|
||||
<entry>在 FreeBSD 中使用藍芽(&bluetooth;)技術</entry>
|
||||
|
@ -213,11 +202,6 @@
|
|||
<entry>把 FreeBSD 在叢集架構環境(clustered environment)的運用</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.cvsweb.name;</entry>
|
||||
<entry>CVSweb 的維護</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.database.name;</entry>
|
||||
<entry>討論各式資料庫在 FreeBSD 的研發、運用</entry>
|
||||
|
@ -313,11 +297,6 @@
|
|||
<entry>移植 LFS 到 FreeBSD</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.libh.name;</entry>
|
||||
<entry>新世代的安裝、打包套件機制</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.mips.name;</entry>
|
||||
<entry>移植 FreeBSD 到 &mips;</entry>
|
||||
|
@ -348,12 +327,6 @@
|
|||
<entry>網路運用探討與 TCP/IP source code</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.openoffice.name;</entry>
|
||||
<entry>移植 <application>OpenOffice.org</application> 及
|
||||
<application>&staroffice;</application> 到 FreeBSD</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>&a.performance.name;</entry>
|
||||
<entry>在高效能/負荷環境下的效能調校(tuning)議題</entry>
|
||||
|
@ -726,44 +699,6 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>&a.audit.name;</term>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Source code audit project</emphasis></para>
|
||||
|
||||
<para>This is the mailing list for the FreeBSD source code
|
||||
audit project. Although this was originally intended for
|
||||
security-related changes, its charter has been expanded to
|
||||
review any code changes.</para>
|
||||
|
||||
<para>This list is very heavy on patches, and is probably of no
|
||||
interest to the average FreeBSD user. Security discussions
|
||||
not related to a particular code change are held on
|
||||
freebsd-security. Conversely, all developers are encouraged
|
||||
to send their patches here for review, especially if they
|
||||
touch a part of the system where a bug may adversely affect
|
||||
the integrity of the system.</para>
|
||||
|
||||
<!-- I can't actually find a charter for this, but there's this email: http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=223347+225804+/usr/local/www/db/text/2000/cvs-all/20001210.cvs-all -->
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>&a.binup.name;</term>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>FreeBSD Binary Update Project</emphasis></para>
|
||||
|
||||
<para>This list exists to provide discussion for the binary
|
||||
update system, or <application>binup</application>.
|
||||
Design issues, implementation details,
|
||||
patches, bug reports, status reports, feature requests, commit
|
||||
logs, and all other things related to
|
||||
<application>binup</application> are fair game.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>&a.bluetooth.name;</term>
|
||||
|
||||
|
@ -853,17 +788,6 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>&a.cvsweb.name;</term>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>FreeBSD CVSweb Project</emphasis></para>
|
||||
|
||||
<para>Technical discussions about use, development and maintenance
|
||||
of FreeBSD-CVSweb.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>&a.doc.name;</term>
|
||||
|
||||
|
@ -1128,18 +1052,6 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>&a.openoffice.name;</term>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>OpenOffice.org</emphasis></para>
|
||||
|
||||
<para>Discussions concerning the porting and maintenance
|
||||
of <application>OpenOffice.org</application> and
|
||||
<application>&staroffice;</application>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>&a.performance.name;</term>
|
||||
|
||||
|
@ -1194,17 +1106,6 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>&a.policy.name;</term>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Core team policy decisions</emphasis></para>
|
||||
|
||||
<para>This is a low volume, read-only mailing list for FreeBSD
|
||||
Core Team Policy decisions.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>&a.ports.name;</term>
|
||||
|
||||
|
|
15
zh_TW.UTF-8/books/handbook/filesystems/Makefile
Normal file
15
zh_TW.UTF-8/books/handbook/filesystems/Makefile
Normal file
|
@ -0,0 +1,15 @@
|
|||
#
|
||||
# Build the Handbook with just the content from this chapter.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
CHAPTERS= filesystems/chapter.xml
|
||||
|
||||
VPATH= ..
|
||||
|
||||
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||
|
||||
.include "../Makefile"
|
219
zh_TW.UTF-8/books/handbook/filesystems/chapter.xml
Normal file
219
zh_TW.UTF-8/books/handbook/filesystems/chapter.xml
Normal file
|
@ -0,0 +1,219 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
$FreeBSD$
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="filesystems">
|
||||
<info>
|
||||
<title>Other File Systems</title>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written
|
||||
by </contrib></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
<sect1 xml:id="filesystems-synopsis">
|
||||
<title>Synopsis</title>
|
||||
|
||||
<indexterm><primary>File Systems</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>File Systems Support</primary>
|
||||
<see>File Systems</see>
|
||||
</indexterm>
|
||||
|
||||
<para>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
|
||||
&os; file system has been the Unix File System
|
||||
<acronym>UFS</acronym> which has been modernized as
|
||||
<acronym>UFS2</acronym>. Since &os; 7.0, the Z File System
|
||||
(<acronym>ZFS</acronym>) is also available as a native file
|
||||
system. See <xref linkend="zfs"/> for more information.</para>
|
||||
|
||||
<para>In addition to its native file systems, &os; 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
|
||||
&linux; Extended File System (<acronym>EXT</acronym>) and the
|
||||
Reiser file system.</para>
|
||||
|
||||
<para>There are different levels of &os; 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.</para>
|
||||
|
||||
<para>After reading this chapter, you will know:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>The difference between native and supported file
|
||||
systems.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Which file systems are supported by &os;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How to enable, configure, access, and make use of
|
||||
non-native file systems.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Before reading this chapter, you should:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Understand &unix; and <link
|
||||
linkend="basics">&os; basics</link>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Be familiar with the basics of <link
|
||||
linkend="kernelconfig">kernel configuration and
|
||||
compilation</link>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Feel comfortable <link linkend="ports">installing
|
||||
software</link> in &os;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Have some familiarity with <link
|
||||
linkend="disks">disks</link>, storage, and device names in
|
||||
&os;.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="filesystems-linux">
|
||||
<title>&linux; File Systems</title>
|
||||
|
||||
<para>&os; provides built-in support for several &linux; file
|
||||
systems. This section demonstrates how to load support for and
|
||||
how to mount the supported &linux; file systems.</para>
|
||||
|
||||
<sect2>
|
||||
<title><acronym>ext2</acronym></title>
|
||||
|
||||
<para>Kernel support for ext2 file systems has
|
||||
been available since &os; 2.2. In &os; 8.x and
|
||||
earlier, the code is licensed under the
|
||||
<acronym>GPL</acronym>. Since &os; 9.0, the code has
|
||||
been rewritten and is now <acronym>BSD</acronym>
|
||||
licensed.</para>
|
||||
|
||||
<para>The &man.ext2fs.5; driver allows the &os; kernel to both
|
||||
read and write to ext2 file systems.</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
This driver can also be used to access ext3 and ext4 file
|
||||
systems. However, ext3 journaling, extended attributes, and
|
||||
inodes greater than 128-bytes are not supported. Support
|
||||
for ext4 is read-only.</para>
|
||||
</note>
|
||||
|
||||
<para>To access an ext file system, first
|
||||
load the kernel loadable module:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload ext2fs</userinput></screen>
|
||||
|
||||
<para>Then, mount the ext volume by specifying its &os;
|
||||
partition name and an existing mount point. This example
|
||||
mounts <filename>/dev/ad1s1</filename> on
|
||||
<filename>/mnt</filename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -t ext2fs <replaceable>/dev/ad1s1</replaceable> <replaceable>/mnt</replaceable></userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>XFS</title>
|
||||
|
||||
<para>A &os; kernel can be configured to provide read-only
|
||||
support for <acronym>XFS</acronym>
|
||||
file systems.</para>
|
||||
|
||||
<para>To compile in <acronym>XFS</acronym> support, add the
|
||||
following option to a custom kernel configuration file and
|
||||
recompile the kernel using the instructions in <xref
|
||||
linkend="kernelconfig"/>:</para>
|
||||
|
||||
<programlisting>options XFS</programlisting>
|
||||
|
||||
<para>Then, to mount an <acronym>XFS</acronym> volume located on
|
||||
<filename>/dev/ad1s1</filename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -t xfs <replaceable>/dev/ad1s1</replaceable> <replaceable>/mnt</replaceable></userinput></screen>
|
||||
|
||||
<para>The <package>sysutils/xfsprogs</package> package or
|
||||
port provides additional
|
||||
utilities, with man pages, for using, analyzing, and repairing
|
||||
<acronym>XFS</acronym> file systems.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>ReiserFS</title>
|
||||
|
||||
<para>&os; provides read-only support for The Reiser file
|
||||
system, ReiserFS.</para>
|
||||
|
||||
<para>To load the &man.reiserfs.5; driver:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload reiserfs</userinput></screen>
|
||||
|
||||
<para>Then, to mount a ReiserFS volume located on
|
||||
<filename>/dev/ad1s1</filename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -t reiserfs <replaceable>/dev/ad1s1</replaceable> <replaceable>/mnt</replaceable></userinput></screen>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<!--
|
||||
<sect1>
|
||||
<title>Device File System</title>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>DOS and NTFS File Systems</title>
|
||||
<para>This is a good section for those who transfer files, using
|
||||
USB devices, from Windows to FreeBSD and vice-versa. My camera,
|
||||
and many other cameras I have seen default to using FAT16. There
|
||||
is (was?) a kde utility, I think called kamera, that could be used
|
||||
to access camera devices. A section on this would be useful.</para>
|
||||
|
||||
<para>XXXTR: Though! The disks chapter, covers a bit of this and
|
||||
devfs under it's USB devices. It leaves a lot to be desired though,
|
||||
see:
|
||||
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/usb-disks.html
|
||||
It may be better to flesh out that section a bit more. Add the
|
||||
word "camera" to it so that others can easily notice.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Linux EXT File System</title>
|
||||
|
||||
<para>Probably NOT as useful as the other two, but it requires
|
||||
knowledge of the existence of the tools. Which are hidden in
|
||||
the ports collection. Most Linux guys would probably only use
|
||||
Linux, BSD guys would be smarter and use NFS.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>HFS</title>
|
||||
|
||||
<para>I think this is the file system used on Apple OSX. There are
|
||||
tools in the ports collection, and with Apple being a big
|
||||
FreeBSD supporter and user of our technologies, surely there
|
||||
is enough cross over to cover this?</para>
|
||||
</sect1>
|
||||
-->
|
||||
|
||||
</chapter>
|
|
@ -1,20 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
$FreeBSD$
|
||||
Original revision: 1.21
|
||||
The FreeBSD Traditional Chinese Project
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: r46061
|
||||
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="GEOM">
|
||||
<info><title>GEOM: Modular Disk Transformation Framework</title>
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="geom">
|
||||
|
||||
<info>
|
||||
<title>GEOM: Modular Disk Transformation Framework</title>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Tom</firstname>
|
||||
<surname>Rhodes</surname>
|
||||
</personname>
|
||||
<contrib>Written by </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<sect1 xml:id="GEOM-synopsis">
|
||||
<sect1 xml:id="geom-synopsis">
|
||||
<title>概述</title>
|
||||
|
||||
<indexterm>
|
||||
|
@ -69,25 +80,27 @@
|
|||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="GEOM-intro">
|
||||
<title>GEOM 導論</title>
|
||||
<sect1 xml:id="geom-striping">
|
||||
<info>
|
||||
<title>RAID0 - 分散連結(striping)</title>
|
||||
|
||||
<para>GEOM 透過 privoder(即 <filename>/dev/</filename>
|
||||
下的特殊裝置檔案) 來操控 classes(如 Master Boot Records、
|
||||
<acronym>BSD</acronym> labels 等) 。GEOM 支援多種軟體
|
||||
<acronym>RAID</acronym> 配置,透過 GEOM 存取時,
|
||||
作業系統和應用程式不會意識到 GEOM 存在。</para>
|
||||
</sect1>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Tom</firstname>
|
||||
<surname>Rhodes</surname>
|
||||
</personname>
|
||||
<contrib>Written by </contrib>
|
||||
</author>
|
||||
|
||||
<sect1 xml:id="GEOM-striping">
|
||||
<info><title>RAID0 - 分散連結(striping)</title>
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author>
|
||||
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname></author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Murray</firstname>
|
||||
<surname>Stokely</surname>
|
||||
</personname>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
<indexterm>
|
||||
<primary>GEOM</primary>
|
||||
|
@ -189,7 +202,7 @@ XXX: What message? Put it inside the screen output above.
|
|||
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="GEOM-mirror">
|
||||
<sect1 xml:id="geom-mirror">
|
||||
<title>RAID1 - 鏡射(Mirroring)</title>
|
||||
|
||||
<indexterm>
|
||||
|
@ -353,4 +366,855 @@ OK? <userinput>boot</userinput></screen>
|
|||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="geom-raid3">
|
||||
<info>
|
||||
|
||||
<title><acronym>RAID</acronym>3 - Byte-level Striping with
|
||||
Dedicated Parity</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Mark</firstname>
|
||||
<surname>Gladman</surname>
|
||||
</personname>
|
||||
<contrib>Written by </contrib>
|
||||
</author>
|
||||
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Daniel</firstname>
|
||||
<surname>Gerzo</surname>
|
||||
</personname>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Tom</firstname>
|
||||
<surname>Rhodes</surname>
|
||||
</personname>
|
||||
<contrib>Based on documentation by </contrib>
|
||||
</author>
|
||||
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Murray</firstname>
|
||||
<surname>Stokely</surname>
|
||||
</personname>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
<indexterm>
|
||||
<primary><acronym>GEOM</acronym></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>RAID3</primary>
|
||||
</indexterm>
|
||||
|
||||
<para><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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>This section demonstrates how to create a software
|
||||
<acronym>RAID</acronym>3 on a &os; system.</para>
|
||||
|
||||
<note>
|
||||
<para>While it is theoretically possible to boot from a
|
||||
<acronym>RAID</acronym>3 array on &os;, that configuration is
|
||||
uncommon and is not advised.</para>
|
||||
</note>
|
||||
|
||||
<sect2>
|
||||
<title>Creating a Dedicated <acronym>RAID</acronym>3
|
||||
Array</title>
|
||||
|
||||
<para>In &os;, support for <acronym>RAID</acronym>3 is
|
||||
implemented by the &man.graid3.8; <acronym>GEOM</acronym>
|
||||
class. Creating a dedicated <acronym>RAID</acronym>3 array on
|
||||
&os; requires the following steps.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>First, load the <filename>geom_raid3.ko</filename>
|
||||
kernel module by issuing one of the following
|
||||
commands:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid3 load</userinput></screen>
|
||||
|
||||
<para>or:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload geom_raid3</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Ensure that a suitable mount point exists. This
|
||||
command creates a new directory to use as the mount
|
||||
point:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mkdir <replaceable>/multimedia</replaceable></userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>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.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid3 label -v gr0 /dev/ada1 /dev/ada2 /dev/ada3</userinput>
|
||||
Metadata value stored on /dev/ada1.
|
||||
Metadata value stored on /dev/ada2.
|
||||
Metadata value stored on /dev/ada3.
|
||||
Done.</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Partition the newly created <filename>gr0</filename>
|
||||
device and put a <acronym>UFS</acronym> file system on
|
||||
it:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gpart create -s GPT /dev/raid3/gr0</userinput>
|
||||
&prompt.root; <userinput>gpart add -t freebsd-ufs /dev/raid3/gr0</userinput>
|
||||
&prompt.root; <userinput>newfs -j /dev/raid3/gr0p1</userinput></screen>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount /dev/raid3/gr0p1 /multimedia/</userinput></screen>
|
||||
|
||||
<para>The <acronym>RAID</acronym>3 array is now ready to
|
||||
use.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<para>Additional configuration is needed to retain this setup
|
||||
across system reboots.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>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>:</para>
|
||||
|
||||
<programlisting>geom_raid3_load="YES"</programlisting>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>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:</para>
|
||||
|
||||
<programlisting>/dev/raid3/gr0p1 /multimedia ufs rw 2 2</programlisting>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="geom-graid">
|
||||
<info>
|
||||
<title>Software <acronym>RAID</acronym> Devices</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Warren</firstname>
|
||||
<surname>Block</surname>
|
||||
</personname>
|
||||
<contrib>Originally contributed by </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</info>
|
||||
|
||||
<indexterm>
|
||||
<primary><acronym>GEOM</acronym></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>Software RAID Devices</primary>
|
||||
<secondary>Hardware-assisted RAID</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Several levels of <acronym>RAID</acronym> are supported,
|
||||
depending on the hardware in use. See &man.graid.8; for a
|
||||
complete list.</para>
|
||||
|
||||
<para>&man.graid.8; requires the <filename>geom_raid.ko</filename>
|
||||
kernel module, which is included in the
|
||||
<filename>GENERIC</filename> kernel starting with &os; 9.1.
|
||||
If needed, it can be loaded manually with
|
||||
<command>graid load</command>.</para>
|
||||
|
||||
<sect2 xml:id="geom-graid-creating">
|
||||
<title>Creating an Array</title>
|
||||
|
||||
<para>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. &man.graid.8; can also create
|
||||
arrays directly from the command line.</para>
|
||||
|
||||
<para><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>.</para>
|
||||
|
||||
<caution>
|
||||
<para>Some space on the drives will be overwritten when they
|
||||
are made into a new array. Back up existing data
|
||||
first!</para>
|
||||
</caution>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid label Intel gm0 RAID1 ada0 ada1</userinput>
|
||||
GEOM_RAID: Intel-a29ea104: Array Intel-a29ea104 created.
|
||||
GEOM_RAID: Intel-a29ea104: Disk ada0 state changed from NONE to ACTIVE.
|
||||
GEOM_RAID: Intel-a29ea104: Subdisk gm0:0-ada0 state changed from NONE to ACTIVE.
|
||||
GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE.
|
||||
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NONE to ACTIVE.
|
||||
GEOM_RAID: Intel-a29ea104: Array started.
|
||||
GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from STARTING to OPTIMAL.
|
||||
Intel-a29ea104 created
|
||||
GEOM_RAID: Intel-a29ea104: Provider raid/r0 for volume gm0 created.</screen>
|
||||
|
||||
<para>A status check shows the new mirror is ready for
|
||||
use:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid status</userinput>
|
||||
Name Status Components
|
||||
raid/r0 OPTIMAL ada0 (ACTIVE (ACTIVE))
|
||||
ada1 (ACTIVE (ACTIVE))</screen>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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 &man.sysctl.8;:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sysctl kern.geom.raid.name_format=1</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="geom-graid-volumes">
|
||||
<title>Multiple Volumes</title>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid label -S 40G Intel gm0 RAID1 ada0 ada1</userinput>
|
||||
&prompt.root; <userinput>graid add -S 20G gm0 RAID0</userinput></screen>
|
||||
|
||||
<para>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>.</para>
|
||||
|
||||
<para>See &man.graid.8; for the number of volumes supported by
|
||||
different software <acronym>RAID</acronym> devices.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="geom-graid-converting">
|
||||
<title>Converting a Single Drive to a Mirror</title>
|
||||
|
||||
<para>Under certain specific conditions, it is possible to
|
||||
convert an existing single drive to a &man.graid.8; array
|
||||
without reformatting. To avoid data loss during the
|
||||
conversion, the existing drive must meet these minimum
|
||||
requirements:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>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 &man.graid.8; metadata.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>There must be enough unpartitioned and unused space at
|
||||
the end of the drive to hold the &man.graid.8; metadata.
|
||||
This metadata varies in size, but the largest occupies
|
||||
64 M, so at least that much free space is
|
||||
recommended.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>If the drive meets these requirements, start by making a
|
||||
full backup. Then create a single-drive mirror with that
|
||||
drive:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid label Intel gm0 RAID1 ada0 NONE</userinput></screen>
|
||||
|
||||
<para>&man.graid.8; metadata was written to the end of the drive
|
||||
in the unused space. A second drive can now be inserted into
|
||||
the mirror:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid insert raid/r0 ada1</userinput></screen>
|
||||
|
||||
<para>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.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="geom-graid-inserting">
|
||||
<title>Inserting New Drives into the Array</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid insert raid/r0 ada1</userinput>
|
||||
GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE.
|
||||
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NONE to NEW.
|
||||
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NEW to REBUILD.
|
||||
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 rebuild start at 0.</screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="geom-graid-removing">
|
||||
<title>Removing Drives from the Array</title>
|
||||
|
||||
<para>Individual drives can be permanently removed from a
|
||||
from an array and their metadata erased:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid remove raid/r0 ada1</userinput>
|
||||
GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from ACTIVE to OFFLINE.
|
||||
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-[unknown] state changed from ACTIVE to NONE.
|
||||
GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from OPTIMAL to DEGRADED.</screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="geom-graid-stopping">
|
||||
<title>Stopping the Array</title>
|
||||
|
||||
<para>An array can be stopped without removing metadata from the
|
||||
drives. The array will be restarted when the system is
|
||||
booted.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid stop raid/r0</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="geom-graid-status">
|
||||
<title>Checking Array Status</title>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid status</userinput>
|
||||
Name Status Components
|
||||
raid/r0 DEGRADED ada0 (ACTIVE (ACTIVE))
|
||||
ada1 (ACTIVE (REBUILD 28%))</screen>
|
||||
|
||||
<para>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>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid status -ga</userinput>
|
||||
Name Status Components
|
||||
Intel-e2d07d9a BROKEN ada6 (ACTIVE (ACTIVE))</screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="geom-graid-deleting">
|
||||
<title>Deleting Arrays</title>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid delete raid/r0</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="geom-graid-unexpected">
|
||||
<title>Deleting Unexpected Arrays</title>
|
||||
|
||||
<para>Drives may unexpectedly contain &man.graid.8; metadata,
|
||||
either from previous use or manufacturer testing.
|
||||
&man.graid.8; will detect these drives and create an array,
|
||||
interfering with access to the individual drive. To remove
|
||||
the unwanted metadata:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Boot the system. At the boot menu, select
|
||||
<literal>2</literal> for the loader prompt. Enter:</para>
|
||||
|
||||
<screen>OK <userinput>set kern.geom.raid.enable=0</userinput>
|
||||
OK <userinput>boot</userinput></screen>
|
||||
|
||||
<para>The system will boot with &man.graid.8;
|
||||
disabled.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Back up all data on the affected drive.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>As a workaround, &man.graid.8; array detection
|
||||
can be disabled by adding</para>
|
||||
|
||||
<programlisting>kern.geom.raid.enable=0</programlisting>
|
||||
|
||||
<para>to <filename>/boot/loader.conf</filename>.</para>
|
||||
|
||||
<para>To permanently remove the &man.graid.8; metadata
|
||||
from the affected drive, boot a &os; 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>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid status</userinput>
|
||||
Name Status Components
|
||||
raid/r0 OPTIMAL ada0 (ACTIVE (ACTIVE))
|
||||
ada1 (ACTIVE (ACTIVE))</screen>
|
||||
|
||||
<para>Delete the volume by name:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>graid delete raid/r0</userinput></screen>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="geom-ggate">
|
||||
<title><acronym>GEOM</acronym> Gate Network</title>
|
||||
|
||||
<para><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.</para>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<programlisting>192.168.1.5 RW /dev/da0s4d</programlisting>
|
||||
|
||||
<para>Before exporting the device, ensure it is not currently
|
||||
mounted. Then, start <application>ggated</application>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ggated</userinput></screen>
|
||||
|
||||
<para>Several options are available for specifying an alternate
|
||||
listening port or changing the default location of the exports
|
||||
file. Refer to &man.ggated.8; for details.</para>
|
||||
|
||||
<para>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>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ggatec create -o rw 192.168.1.1 /dev/da0s4d</userinput>
|
||||
ggate0
|
||||
&prompt.root; <userinput>mount /dev/ggate0 /mnt</userinput></screen>
|
||||
|
||||
<para>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
|
||||
&man.ggatec.8;.</para>
|
||||
|
||||
<note>
|
||||
<para>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.</para>
|
||||
</note>
|
||||
|
||||
<para>When the device is no longer needed, unmount it with
|
||||
<command>umount</command> so that the resource is available to
|
||||
other clients.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="geom-glabel">
|
||||
<title>Labeling Disk Devices</title>
|
||||
|
||||
<indexterm>
|
||||
<primary><acronym>GEOM</acronym></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>Disk Labels</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>During system initialization, the &os; 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.</para>
|
||||
|
||||
<para>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>.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<note>
|
||||
<para><command>glabel</command> can create both transient and
|
||||
permanent labels. Only permanent labels are consistent across
|
||||
reboots. Refer to &man.glabel.8; for more information on the
|
||||
differences between labels.</para>
|
||||
</note>
|
||||
|
||||
<sect2>
|
||||
<title>Label Types and Examples</title>
|
||||
|
||||
<para>Permanent labels can be a generic or a file system label.
|
||||
Permanent file system labels can be created with
|
||||
&man.tunefs.8; or &man.newfs.8;. 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>.</para>
|
||||
|
||||
<para>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>.</para>
|
||||
|
||||
<!-- XXXTR: How do you create a file system label without running newfs
|
||||
or when there is no newfs (e.g.: cd9660)? -->
|
||||
|
||||
<para>To create a permanent label for a
|
||||
<acronym>UFS</acronym>2 file system without destroying any
|
||||
data, issue the following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>tunefs -L <replaceable>home</replaceable> <replaceable>/dev/da3</replaceable></userinput></screen>
|
||||
|
||||
<warning>
|
||||
<para>If the file system is full, this may cause data
|
||||
corruption.</para>
|
||||
</warning>
|
||||
|
||||
<para>A label should now exist in <filename>/dev/ufs</filename>
|
||||
which may be added to <filename>/etc/fstab</filename>:</para>
|
||||
|
||||
<programlisting>/dev/ufs/home /home ufs rw 2 2</programlisting>
|
||||
|
||||
<note>
|
||||
<para>The file system must not be mounted while attempting
|
||||
to run <command>tunefs</command>.</para>
|
||||
</note>
|
||||
|
||||
<para>Now the file system may be mounted:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount /home</userinput></screen>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>File systems may also be created with a default label
|
||||
by using the <option>-L</option> flag with
|
||||
<command>newfs</command>. Refer to &man.newfs.8; for
|
||||
more information.</para>
|
||||
|
||||
<para>The following command can be used to destroy the
|
||||
label:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>glabel destroy home</userinput></screen>
|
||||
|
||||
<para>The following example shows how to label the partitions of
|
||||
a boot disk.</para>
|
||||
|
||||
<example>
|
||||
<title>Labeling Partitions on the Boot Disk</title>
|
||||
|
||||
<para>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 &os; partition scheme is used, with
|
||||
<filename>/</filename>,
|
||||
<filename>/var</filename>,
|
||||
<filename>/usr</filename> and
|
||||
<filename>/tmp</filename>, as
|
||||
well as a swap partition.</para>
|
||||
|
||||
<para>Reboot the system, and at the &man.loader.8; prompt,
|
||||
press <keycap>4</keycap> to boot into single user mode.
|
||||
Then enter the following commands:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>glabel label rootfs /dev/ad0s1a</userinput>
|
||||
GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs
|
||||
&prompt.root; <userinput>glabel label var /dev/ad0s1d</userinput>
|
||||
GEOM_LABEL: Label for provider /dev/ad0s1d is label/var
|
||||
&prompt.root; <userinput>glabel label usr /dev/ad0s1f</userinput>
|
||||
GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr
|
||||
&prompt.root; <userinput>glabel label tmp /dev/ad0s1e</userinput>
|
||||
GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp
|
||||
&prompt.root; <userinput>glabel label swap /dev/ad0s1b</userinput>
|
||||
GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap
|
||||
&prompt.root; <userinput>exit</userinput></screen>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
||||
/dev/label/swap none swap sw 0 0
|
||||
/dev/label/rootfs / ufs rw 1 1
|
||||
/dev/label/tmp /tmp ufs rw 2 2
|
||||
/dev/label/usr /usr ufs rw 2 2
|
||||
/dev/label/var /var ufs rw 2 2</programlisting>
|
||||
|
||||
<para>The system can now be rebooted. If everything went
|
||||
well, it will come up normally and <command>mount</command>
|
||||
will show:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount</userinput>
|
||||
/dev/label/rootfs on / (ufs, local)
|
||||
devfs on /dev (devfs, local)
|
||||
/dev/label/tmp on /tmp (ufs, local, soft-updates)
|
||||
/dev/label/usr on /usr (ufs, local, soft-updates)
|
||||
/dev/label/var on /var (ufs, local, soft-updates)</screen>
|
||||
</example>
|
||||
|
||||
<para>Starting with &os; 7.2, the &man.glabel.8; class
|
||||
supports a new 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:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>glabel status</userinput>
|
||||
Name Status Components
|
||||
ufsid/486b6fc38d330916 N/A ad4s1d
|
||||
ufsid/486b6fc16926168e N/A ad4s1f</screen>
|
||||
|
||||
<para>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>:</para>
|
||||
|
||||
<programlisting>/dev/ufsid/486b6fc38d330916 /var ufs rw 2 2
|
||||
/dev/ufsid/486b6fc16926168e /usr ufs rw 2 2</programlisting>
|
||||
|
||||
<para>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.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="geom-gjournal">
|
||||
<title>UFS Journaling Through <acronym>GEOM</acronym></title>
|
||||
|
||||
<indexterm>
|
||||
<primary><acronym>GEOM</acronym></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>Journaling</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Beginning with &os; 7.0, support for journals on
|
||||
<acronym>UFS</acronym> file systems is available. 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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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>:</para>
|
||||
|
||||
<programlisting>geom_journal_load="YES"</programlisting>
|
||||
|
||||
<para>If a custom kernel is used, ensure the following line is in
|
||||
the kernel configuration file:</para>
|
||||
|
||||
<programlisting>options GEOM_JOURNAL</programlisting>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gjournal load</userinput>
|
||||
&prompt.root; <userinput>gjournal label /dev/<replaceable>da4</replaceable></userinput></screen>
|
||||
|
||||
<para>This will load the module and create a
|
||||
<filename>/dev/da4.journal</filename> device node on
|
||||
<filename>/dev/da4</filename>.</para>
|
||||
|
||||
<para>A <acronym>UFS</acronym> file system may now be created on
|
||||
the journaled device, then mounted on an existing mount
|
||||
point:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>newfs -O 2 -J /dev/<replaceable>da4</replaceable>.journal</userinput>
|
||||
&prompt.root; <userinput>mount /dev/<replaceable>da4</replaceable>.journal <replaceable>/mnt</replaceable></userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>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>.</para>
|
||||
</note>
|
||||
|
||||
<para>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 &man.gjournal.8; and &man.tunefs.8; for more
|
||||
information about these commands.</para>
|
||||
|
||||
<para>It is possible to journal the boot disk of a &os; system.
|
||||
Refer to the article
|
||||
Implementing UFS Journaling on a Desktop PC for detailed
|
||||
instructions.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
|
@ -1,26 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD Traditional Chinese Project
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: 1.381
|
||||
Original revision: r46052
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="install">
|
||||
<info><title>安裝 FreeBSD</title>
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="install">
|
||||
<info>
|
||||
<title>安裝 FreeBSD</title>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restructured, reorganized, and parts
|
||||
rewritten by </contrib></author>
|
||||
<author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restructured,
|
||||
reorganized, and parts rewritten by </contrib></author>
|
||||
</authorgroup>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Randy</firstname><surname>Pratt</surname></personname><contrib>The sysinstall walkthrough, screenshots, and general
|
||||
copy by </contrib></author>
|
||||
<author><personname><firstname>Randy</firstname><surname>Pratt</surname></personname><contrib>The
|
||||
sysinstall walkthrough, screenshots, and general copy by
|
||||
</contrib></author>
|
||||
</authorgroup>
|
||||
|
||||
</info>
|
||||
|
||||
|
||||
|
||||
<sect1 xml:id="install-synopsis">
|
||||
<title>概述</title>
|
||||
|
||||
|
@ -84,7 +87,7 @@
|
|||
Information</link> 找相關的 Installation Notes 說明。
|
||||
接下來的章節會有相關說明整理。
|
||||
根據安裝 &os; 的方式不同,可能會需要軟碟機或光碟機,
|
||||
或某些情況則是要網路卡。 這些部份會在 <xref linkend="install-floppies"/> 有介紹。</para>
|
||||
或某些情況則是要網路卡。 這些部份會在 <xref linkend="install-boot-media"/> 有介紹。</para>
|
||||
|
||||
<sect3>
|
||||
<title>&os;/&arch.i386; 及 &os;/&arch.pc98; 架構</title>
|
||||
|
@ -412,52 +415,6 @@
|
|||
</listitem>
|
||||
</orderedlist>
|
||||
</example>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Alpha 架構的磁碟配置模式</title>
|
||||
|
||||
<para>在 Alpha 上,您必須使用一整顆硬碟給 FreeBSD,
|
||||
沒有辦法在同顆硬碟上跟其他作業系統共存。 依不同型號的 Alpha
|
||||
機器,您的硬碟可以是 SCSI 或 IDE 硬碟,
|
||||
只要您的機器可以從這些硬碟開機就可以。</para>
|
||||
|
||||
<para>按照 Digital / Compaq 使用手冊的編排風格,
|
||||
所有 SRM 輸入的部分都用大寫表示。 注意:SRM 大小寫有別。</para>
|
||||
|
||||
<para>要得知您磁碟的名稱以及型號,可以在 SRM console 提示下使用
|
||||
<literal>SHOW DEVICE</literal> 命令:</para>
|
||||
|
||||
<screen>>>><userinput>SHOW DEVICE</userinput>
|
||||
dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476
|
||||
dkc0.0.0.1009.0 DKC0 RZ1BB-BS 0658
|
||||
dkc100.1.0.1009.0 DKC100 SEAGATE ST34501W 0015
|
||||
dva0.0.0.0.1 DVA0
|
||||
ewa0.0.0.3.0 EWA0 00-00-F8-75-6D-01
|
||||
pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27
|
||||
pqa0.0.0.4.0 PQA0 PCI EIDE
|
||||
pqb0.0.1.4.0 PQB0 PCI EIDE</screen>
|
||||
|
||||
<para>例子中機器為 Digital Personal Workstation 433au,
|
||||
並且顯示出此機器有連接三個磁碟機。 第一個是 CDROM,叫做
|
||||
<filename>DKA0</filename> ;另外兩個是磁碟機, 分別叫做:
|
||||
<filename>DKC0</filename> 及 <filename>DKC100</filename>。
|
||||
</para>
|
||||
|
||||
<para>磁碟機的名稱中有 <filename>DKx</filename>
|
||||
字樣的是 SCSI 硬碟。例如: <filename>DKA100</filename>
|
||||
表示是 SCSI 硬碟,其 SCSI ID 為 1, 位在第一個 SCSI 匯流排(A);
|
||||
而 <filename>DKC300</filename> 表示是 SCSI 硬碟,
|
||||
其 SCSI ID 為 3,位於第三個 SCSI 匯流排(C)。
|
||||
裝置名稱 <filename>PKx</filename> 則為 SCSI 控制卡。
|
||||
由上述 <literal>SHOW DEVICE</literal> 的結果看來,
|
||||
SCSI 光碟機也被視為是 SCSI 硬碟的一種。</para>
|
||||
|
||||
<para>若為 IDE 硬碟的話,名稱會有 <filename>DQx</filename> 字樣,
|
||||
而 <filename>PQx</filename> 則表示相對應的 IDE 磁碟控制器。
|
||||
</para>
|
||||
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
|
@ -583,58 +540,176 @@ pqb0.0.1.4.0 PQB0 PCI EIDE</screen>
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>若已經有 FreeBSD 的 CD 或 DVD,但機器不支援從光碟開機的話,
|
||||
那麼請直接進下一節 (<xref linkend="install-floppies"/>)。</para>
|
||||
<para>若已經有 FreeBSD 的 CD 或 DVD,
|
||||
那麼請直接進下一節 (<xref linkend="install-boot-media"/>)。</para>
|
||||
|
||||
<para>若沒有 FreeBSD 安裝片的話,那麼請先看 <xref linkend="install-diff-media"/> 這裡會介紹如何準備所需要的安裝片,
|
||||
照該節步驟弄好後,就可以繼續下一步 <xref linkend="install-start"/>。
|
||||
照該節步驟弄好後,就可以繼續下一步 <xref linkend="install-boot-media"/>。
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="install-floppies">
|
||||
<title>準備好開機磁片</title>
|
||||
<sect2 xml:id="install-boot-media">
|
||||
<title>Prepare the Boot Media</title>
|
||||
|
||||
<para>FreeBSD 安裝流程是要從電腦開機後,進入 FreeBSD 安裝畫面 ——
|
||||
而不是在其他作業系統上執行程式。
|
||||
一般來講,電腦都是用裝在硬碟上的作業系統來開機,
|
||||
也可以用開機磁片來開機;
|
||||
此外,現在大多數電腦都可以從光碟開機。</para>
|
||||
<para>The &os; installation process is started by booting the
|
||||
computer into the &os; installer. It is not a program that
|
||||
can be run within another operating system. The computer
|
||||
normally boots using the operating system installed on the
|
||||
hard disk, but it can also be configured to boot from a CDROM
|
||||
or from a USB disk.</para>
|
||||
|
||||
<tip>
|
||||
<para>如果您有 FreeBSD 的 CDROM 或 DVD(無論是用買現成的或是自己燒錄的),
|
||||
且您的電腦可支援由光碟開機,(通常在 BIOS 中會有
|
||||
<quote>Boot Order</quote> 或類似選項),那麼您就可以跳過此小節。
|
||||
因為 FreeBSD CDROM 或 DVD 都可以用來開機。</para>
|
||||
<para>If installing from a CD/DVD to a computer whose BIOS
|
||||
supports booting from the CD/DVD, skip this section. The
|
||||
&os; CD/DVD images are bootable and can be used to install
|
||||
&os; without any other special preparation.</para>
|
||||
</tip>
|
||||
|
||||
<para>請按照下面步驟,以製作開機片:</para>
|
||||
<para>To create a bootable memory stick, follow these
|
||||
steps:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<title>取得開機片的映像檔(images)</title>
|
||||
<title>Acquire the Memory Stick Image</title>
|
||||
|
||||
<para>開機磁片用的映像檔(images)通常會放在光碟片上的
|
||||
<filename>floppies/</filename> 目錄內,
|
||||
另外也可以從像是下面 FTP 站的 floppies 目錄下載:
|
||||
<literal>ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<arch>/<version>-RELEASE/floppies/</literal>
|
||||
。請將『arch』、『version』替換為打算安裝的電腦架構、OS 版本。
|
||||
例如:想裝的是 &os;/&arch.i386; &rel.current;-RELEASE
|
||||
,那麼可以到 <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/</uri> 下載。</para>
|
||||
<para>Memory stick images for
|
||||
&os; 8.<replaceable>X</replaceable> can be downloaded
|
||||
from the <filename
|
||||
class="directory">ISO-IMAGES/</filename> directory at
|
||||
<literal>ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<replaceable>arch</replaceable>/ISO-IMAGES/<replaceable>version</replaceable>/&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-memstick.img</literal>.
|
||||
Replace <replaceable>arch</replaceable> and
|
||||
<replaceable>version</replaceable> with the architecture
|
||||
and the version number to install. For example, the
|
||||
memory stick images for
|
||||
&os;/&arch.i386; &rel2.current;-RELEASE are
|
||||
available from <uri
|
||||
xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/ISO-IMAGES/&rel2.current;/&os;-&rel2.current;-RELEASE-&arch.i386;-memstick.img">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/ISO-IMAGES/&rel2.current;/&os;-&rel2.current;-RELEASE-&arch.i386;-memstick.img</uri>.</para>
|
||||
|
||||
<para>映像檔(images)的附檔名都是 <filename>.flp</filename>。而
|
||||
<filename>floppies/</filename> 目錄內包含一些不同用途的映像檔
|
||||
(images),這取決於您要裝的 FreeBSD 版本、需求、硬體配備為何。
|
||||
通常要 4 個映像檔,也就是: <filename>boot.flp</filename>、
|
||||
<filename>kern1.flp</filename>、<filename>kern2.flp</filename>、
|
||||
<filename>kern3.flp</filename>。 若有疑問的話,請翻閱同一目錄下的
|
||||
<filename>README.TXT</filename> 文件檔,以瞭解相關最新注意事項。
|
||||
</para>
|
||||
<tip>
|
||||
<para>A different directory path is used for
|
||||
&os; 9.0-RELEASE and later versions. How to
|
||||
download and install
|
||||
&os; 9.<replaceable>X</replaceable>
|
||||
is covered in <xref linkend="bsdinstall"/>.</para>
|
||||
</tip>
|
||||
|
||||
<para>The memory stick image has a <filename>.img</filename>
|
||||
extension. The <filename>ISO-IMAGES/</filename> directory
|
||||
contains a number of different images and the one to
|
||||
use depends on the version of &os; and the type of media
|
||||
supported by the hardware being installed to.</para>
|
||||
|
||||
<important>
|
||||
<para>在使用 FTP 下載時,必須使用 <emphasis>binary 模式</emphasis>
|
||||
進行傳輸。 有些瀏覽器預設是以 <emphasis>text</emphasis> (或
|
||||
<emphasis>ASCII</emphasis>) 模式來傳輸資料,
|
||||
所以這些錯誤傳輸模式下載的映像檔所做成的磁片,會無法使用。</para>
|
||||
<para>Before proceeding, <emphasis>back up</emphasis> the
|
||||
data on the USB stick, as this procedure will
|
||||
<emphasis>erase</emphasis> it.</para>
|
||||
</important>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<title>Write the Image File to the Memory Stick</title>
|
||||
|
||||
<procedure>
|
||||
<title>Using &os; to Write the Image</title>
|
||||
|
||||
<warning>
|
||||
<para>The example below lists
|
||||
<filename>/dev/da0</filename> as the target device
|
||||
where the image will be written. Be very careful that
|
||||
you have the correct device as the output target, or
|
||||
you may destroy your existing data.</para>
|
||||
</warning>
|
||||
|
||||
<step>
|
||||
<title>Writing the Image with &man.dd.1;</title>
|
||||
|
||||
<para>The <filename>.img</filename> file is
|
||||
<emphasis>not</emphasis> a regular file that can just
|
||||
be copied to the memory stick. It is an image of the
|
||||
complete contents of the disk. This means that
|
||||
&man.dd.1; must be used to write the image directly to
|
||||
the disk:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>dd if=&os;-&rel2.current;-RELEASE-&arch.i386;-memstick.img of=/dev/<replaceable>da0</replaceable> bs=64k</userinput></screen>
|
||||
|
||||
<para>If an <computeroutput>Operation not
|
||||
permitted</computeroutput> error is displayed, make
|
||||
certain that the target device is not in use, mounted,
|
||||
or being automounted by another program. Then try
|
||||
again.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<procedure>
|
||||
<title>Using &windows; to Write the Image</title>
|
||||
|
||||
<warning>
|
||||
<para>Make sure to use the correct drive letter as the
|
||||
output target, as this command will overwrite and
|
||||
destroy any existing data on the specified
|
||||
device.</para>
|
||||
</warning>
|
||||
|
||||
<step>
|
||||
<title>Obtaining <application>Image Writer for
|
||||
Windows</application></title>
|
||||
|
||||
<para><application>Image Writer for
|
||||
Windows</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.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<title>Writing the Image with Image Writer</title>
|
||||
|
||||
<para>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. Finally, click
|
||||
<guibutton>Write</guibutton> to write the image file
|
||||
to the drive.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<para>To create the boot floppy images for a &os;/&arch.pc98;
|
||||
installation, follow these steps:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<title>Acquire the Boot Floppy Images</title>
|
||||
|
||||
<para>The &os;/&arch.pc98; boot disks can be downloaded from
|
||||
the floppies directory,
|
||||
<literal>ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/pc98/<replaceable>version</replaceable>-RELEASE/floppies/</literal>.
|
||||
Replace <replaceable>version</replaceable> with the
|
||||
version number to install.</para>
|
||||
|
||||
<para>The floppy images have a <filename>.flp</filename>
|
||||
extension. <filename
|
||||
class="directory">floppies/</filename> contains a number
|
||||
of different images. Download
|
||||
<filename>boot.flp</filename> as well as the number of
|
||||
files associated with the type of installation, such as
|
||||
<literal>kern.small*</literal> or
|
||||
<literal>kern*</literal>.</para>
|
||||
|
||||
<important>
|
||||
<para>The FTP program must use <emphasis>binary
|
||||
mode</emphasis> to download these disk images. Some
|
||||
web browsers use <emphasis>text</emphasis> or
|
||||
<emphasis>ASCII</emphasis> mode, which will be apparent
|
||||
if the disks are not bootable.</para>
|
||||
</important>
|
||||
</step>
|
||||
|
||||
|
@ -760,7 +835,7 @@ We can take no responsibility for lost disk contents!</literallayout>
|
|||
|
||||
<step>
|
||||
<para>若要用磁片安裝,請把在
|
||||
<xref linkend="install-floppies"/>一節中製作好的
|
||||
<xref linkend="install-boot-media"/>一節中製作好的
|
||||
<filename>boot.flp</filename> 那張安裝磁片放到第一台軟碟機中。
|
||||
</para>
|
||||
|
||||
|
@ -854,59 +929,6 @@ Insert disk labelled "Kernel floppy 1" and press any key...</screen>
|
|||
</step>
|
||||
</procedure>
|
||||
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Alpha 平台的開機流程</title>
|
||||
|
||||
<indexterm><primary>Alpha</primary></indexterm>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>在一開始,電腦電源開關是關閉的。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>打開電腦電源開關,然後等開機畫面出現。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>若要用磁片安裝,請把在
|
||||
<xref linkend="install-floppies"/>一節中製作好的
|
||||
<filename>boot.flp</filename> 那張安裝磁片放到第一台軟碟機中。
|
||||
然後,打下列指令來從磁片開機
|
||||
(請把下列軟碟機代號改為你電腦的軟碟機代號):</para>
|
||||
|
||||
<screen>>>><userinput>BOOT DVA0 -FLAGS '' -FILE ''</userinput></screen>
|
||||
|
||||
<para>若要用光碟安裝,請把做好的安裝片放入光碟機,
|
||||
然後打下列指令來從光碟開機
|
||||
(請把下列光碟機代號改為你電腦的光碟機代號):</para>
|
||||
|
||||
<screen>>>><userinput>BOOT DKA0 -FLAGS '' -FILE ''</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>接著 FreeBSD 開機片就會開始了。若是由軟碟開機的話,
|
||||
這時會看到以下訊息:</para>
|
||||
|
||||
<screen>Insert disk labelled "Kernel floppy 1" and press any key...</screen>
|
||||
|
||||
<para>請照指示,拿走 <filename>boot.flp</filename> 片,改放
|
||||
<filename>kern1.flp</filename> 片,
|
||||
然後按 <keycap>Enter</keycap>。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>無論從軟碟或光碟開機,您都會看到下面這段訊息:</para>
|
||||
|
||||
<screen>Hit [Enter] to boot immediately, or any other key for command prompt.
|
||||
Booting [kernel] in 9 seconds... _</screen>
|
||||
|
||||
<para>您可以等待 10 秒,或是按 <keycap>Enter</keycap> 鍵。
|
||||
接下來就會進入kernel configuration 選單。</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
|
@ -2346,7 +2368,7 @@ Do you want to configure inetd and the network services that it provides?
|
|||
|
||||
<para>These services can be enabled after installation by editing
|
||||
<filename>/etc/inetd.conf</filename> with your favorite text editor.
|
||||
See <xref linkend="network-inetd-overview"/> for more information.</para>
|
||||
See <xref linkend="network-inetd-conf"/> for more information.</para>
|
||||
|
||||
<para>Select &gui.yes; if you wish to
|
||||
configure these services during install. An additional
|
||||
|
@ -3969,7 +3991,7 @@ Please press any key to reboot.</screen>
|
|||
serial console. A serial console is basically using another
|
||||
machine to act as the main display and keyboard for a
|
||||
system. To do this, just follow the steps to create
|
||||
installation floppies, explained in <xref linkend="install-floppies"/>.</para>
|
||||
installation floppies, explained in <xref linkend="install-boot-media"/>.</para>
|
||||
|
||||
<para>To modify these floppies to boot into a serial console, follow
|
||||
these steps:</para>
|
||||
|
@ -4106,112 +4128,156 @@ Please press any key to reboot.</screen>
|
|||
</itemizedlist>
|
||||
|
||||
<sect2 xml:id="install-cdrom">
|
||||
<title>Creating an Installation CDROM</title>
|
||||
<title>Creating an Installation ISO</title>
|
||||
|
||||
<para>As part of each release, the FreeBSD project makes available at least two
|
||||
CDROM images (<quote>ISO images</quote>) per supported architecture. These images can be written
|
||||
(<quote>burned</quote>) to CDs if you have a CD writer, and then used
|
||||
to install FreeBSD. If you have a CD writer, and bandwidth is cheap,
|
||||
then this is the easiest way to install FreeBSD.</para>
|
||||
<para>As part of each release, the &os; Project provides ISO
|
||||
images for each supported architecture. These images can be
|
||||
written (<quote>burned</quote>) to CD or DVD media using a
|
||||
burning application, and then used to install &os;. If a
|
||||
CD/DVD writer is available, this is the easiest way to install
|
||||
&os;.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<title>Download the Correct ISO Images</title>
|
||||
|
||||
<para>The ISO images for each release can be downloaded from <filename>ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-arch/version</filename> or the closest mirror.
|
||||
Substitute <replaceable>arch</replaceable> and
|
||||
<para>The ISO images for each release can be downloaded from
|
||||
<filename>ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-<replaceable>arch</replaceable>/<replaceable>version</replaceable></filename>
|
||||
or the closest mirror. Substitute
|
||||
<replaceable>arch</replaceable> and
|
||||
<replaceable>version</replaceable> as appropriate.</para>
|
||||
|
||||
<para>That directory will normally contain the following images:</para>
|
||||
<para>An image directory normally contains the following
|
||||
images:</para>
|
||||
|
||||
<table frame="none">
|
||||
<title>FreeBSD 5.<replaceable>X</replaceable> and 6.<replaceable>X</replaceable>
|
||||
ISO Image Names and Meanings</title>
|
||||
<title>&os;
|
||||
ISO Image Names and Meanings</title>
|
||||
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>檔名</entry>
|
||||
<entry>Filename</entry>
|
||||
|
||||
<entry>內容</entry>
|
||||
<entry>Contents</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><filename>版本-RELEASE-架構-bootonly.iso</filename></entry>
|
||||
<entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-bootonly.iso</filename></entry>
|
||||
|
||||
<entry>Everything you need to boot into a FreeBSD
|
||||
kernel and start the installation interface.
|
||||
The installable files have to be pulled over FTP
|
||||
or some other supported source.</entry>
|
||||
<entry>This CD image starts the installation process
|
||||
by booting from a CD-ROM drive but it does not
|
||||
contain the support for installing &os; from the
|
||||
CD itself. Perform a network based install, such
|
||||
as from an FTP server, after booting from this
|
||||
CD.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>版本-RELEASE-架構-disc1.iso</filename></entry>
|
||||
<entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-dvd1.iso.gz</filename></entry>
|
||||
|
||||
<entry>Everything you need to install &os; and a
|
||||
<quote>live filesystem</quote>, which is used in
|
||||
conjunction with the <quote>Repair</quote> facility
|
||||
in <application>sysinstall</application>.</entry>
|
||||
<entry>This DVD image contains everything necessary
|
||||
to install the base &os; operating system, a
|
||||
collection of pre-built packages, and the
|
||||
documentation. It also supports booting into a
|
||||
<quote>livefs</quote> based rescue mode.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>版本-RELEASE-架構-disc2.iso</filename></entry>
|
||||
<entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-memstick.img</filename></entry>
|
||||
|
||||
<entry>&os; 文件(&os; 6.2 之前的),以及許多 third-party
|
||||
packages。</entry>
|
||||
<entry>This image can be written to a USB memory
|
||||
stick in order to install machines capable of
|
||||
booting from USB drives. It also supports booting
|
||||
into a <quote>livefs</quote> based rescue mode.
|
||||
The only included package is the documentation
|
||||
package.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>版本-RELEASE-架構-docs.iso</filename></entry>
|
||||
<entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-disc1.iso</filename></entry>
|
||||
|
||||
<entry>&os; 文件(&os; 6.2 及之後)。</entry>
|
||||
<entry>This image can be written to a USB memory
|
||||
stick in order to install machines capable of
|
||||
booting from USB drives. Similar to the
|
||||
<filename>bootonly.iso</filename> image, it does
|
||||
not contain the distribution sets on the medium
|
||||
itself, but does support network-based
|
||||
installations (for example, via ftp).</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>&os;-version-RELEASE-arch-disc1.iso</filename></entry>
|
||||
|
||||
<entry>This CD image contains the base &os;
|
||||
operating system and the documentation package but
|
||||
no other packages.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-disc2.iso</filename></entry>
|
||||
|
||||
<entry>A CD image with as many third-party packages
|
||||
as would fit on the disc. This image is not
|
||||
available for
|
||||
&os; 9.<replaceable>X</replaceable>.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-disc3.iso</filename></entry>
|
||||
|
||||
<entry>Another CD image with as many third-party
|
||||
packages as would fit on the disc. This image is
|
||||
not available for
|
||||
&os; 9.<replaceable>X</replaceable>.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-livefs.iso</filename></entry>
|
||||
|
||||
<entry>This CD image contains support for booting
|
||||
into a <quote>livefs</quote> based rescue mode but
|
||||
does not support doing an install from the CD
|
||||
itself.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>You <emphasis>must</emphasis> download one of either the bootonly
|
||||
ISO image (if available), or the image of disc one. Do not download
|
||||
both of them, since the disc one image contains everything that the
|
||||
bootonly ISO image contains.</para>
|
||||
<para>When performing a CD installation, download either
|
||||
the <literal>bootonly</literal> ISO image or
|
||||
<literal>disc1</literal>. Do not download both, since
|
||||
<literal>disc1</literal> contains everything that the
|
||||
<literal>bootonly</literal> ISO image contains.</para>
|
||||
|
||||
<para>Use the bootonly ISO if Internet access is cheap for you. It will
|
||||
let you install &os;, and you can then install third-party
|
||||
packages by downloading them using the ports/packages system (see
|
||||
<xref linkend="ports"/>) as
|
||||
necessary.</para>
|
||||
<para>Use the <literal>bootonly</literal> ISO to perform a
|
||||
network install over the Internet. Additional software
|
||||
can be installed as needed using the Ports Collection as
|
||||
described in <xref linkend="ports"/>.</para>
|
||||
|
||||
<para>Use the image of disc one if you want to install a &os;
|
||||
release and want
|
||||
a reasonable selection of third-party packages on the disc
|
||||
as well.</para>
|
||||
|
||||
<para>The additional disc images are useful, but not essential,
|
||||
especially if you have high-speed access to the Internet.</para>
|
||||
<para>Use <literal>dvd1</literal> to install &os; and a
|
||||
selection of third-party packages from the disc.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<title>Write the CDs</title>
|
||||
<title>Burn the Media</title>
|
||||
|
||||
<para>You must then write the CD images to disc. If you will be
|
||||
doing this on another FreeBSD system then see
|
||||
<xref linkend="creating-cds"/> for more information (in
|
||||
particular, <xref linkend="burncd"/> and
|
||||
<xref linkend="cdrecord"/>).</para>
|
||||
<para>Next, write the downloaded image(s) to disc. If using
|
||||
another &os; system, refer to
|
||||
<xref linkend="cdrecord"/> for instructions.</para>
|
||||
|
||||
<para>If you will be doing this on another platform then you will
|
||||
need to use whatever utilities exist to control your CD writer on
|
||||
that platform. The images provided are in the standard ISO format,
|
||||
which many CD writing applications support.</para>
|
||||
<para>If using another platform, use any burning utility
|
||||
that exists for that platform. The images are in the
|
||||
standard ISO format which most CD writing applications
|
||||
support.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<note><para>If you are interested in building a customized
|
||||
release of FreeBSD, please see the <link xlink:href="&url.articles.releng;">Release Engineering
|
||||
Article</link>.</para></note>
|
||||
|
||||
<note><para>To build a customized release of &os;, refer to the
|
||||
<link xlink:href="&url.articles.releng;">Release Engineering
|
||||
Article</link>.</para></note>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="install-ftp">
|
||||
|
|
|
@ -524,8 +524,8 @@ jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</rep
|
|||
<link xlink:href="&url.books.handbook;/makeworld.html">相關章節</link>。
|
||||
當更新完成之後,就要進行 buildworld 程序,此外還要裝 <package>sysutils/cpdup</package> 套件。
|
||||
我們將用 &man.portsnap.8; 來下載 &os; Ports Collection,
|
||||
在 Handbook 中對 <link xlink:href="&url.books.handbook;/portsnap.html">Portsnap 章節</link>
|
||||
中有相關介紹,初學者可以看看。</para>
|
||||
在 Handbook 中 <xref linkend="ports-using-portsnap-method"/>
|
||||
有相關介紹,初學者可以看看。</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
|
|
|
@ -242,7 +242,7 @@ ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting>
|
|||
一旦真的砍了之後,你可能幾秒之後才會醒悟到:
|
||||
你同時也砍掉自己改的 kernel 設定檔。
|
||||
此外,也不要直接修改 <filename>GENERIC</filename>,因為下次你
|
||||
<link linkend="cutting-edge">更新 source tree</link>時,
|
||||
更新 source tree 時,
|
||||
它會被新版覆蓋,而相關修改也將隨之而逝。</para>
|
||||
|
||||
<para>你也可考慮把 kernel 設定檔改放到其他地方,然後再到
|
||||
|
@ -275,7 +275,7 @@ ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting>
|
|||
會循序漸進地介紹。</para>
|
||||
|
||||
<note>
|
||||
<para>若有從 &os; 計劃去 <link linkend="cutting-edge">更新你的 source tree</link> 的話,
|
||||
<para>若有從 &os; 計劃去更新你的 source tree 的話,
|
||||
則切記在進行任何升級之前,務必要察看
|
||||
<filename>/usr/src/UPDATING</filename>。
|
||||
這檔會介紹在更新過程中的重大議題或要注意的事項。
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,9 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
The FreeBSD Traditional Chinese Project
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: 1.273
|
||||
Original revision: r46064
|
||||
-->
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="ports">
|
||||
<title>軟體套件管理篇:Packages 及 Ports 機制</title>
|
||||
|
@ -300,6 +301,7 @@ R-deps: </screen>
|
|||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<!--
|
||||
<sect1 xml:id="packages-using">
|
||||
<info><title>使用 Packages 管理機制</title>
|
||||
<authorgroup>
|
||||
|
@ -500,227 +502,513 @@ docbook =
|
|||
<para>以上面例子而言,將會移除所有以 <literal>xchat</literal>
|
||||
開頭的軟體。</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
-->
|
||||
|
||||
<sect2>
|
||||
<title>其他細節部份</title>
|
||||
<para>所有已裝的 package 資訊都會存到 <filename>/var/db/pkg</filename>
|
||||
目錄內,在該目錄下可以找到記載已裝的軟體檔案清單及該軟體簡介的檔案。
|
||||
</para>
|
||||
<sect1 xml:id="pkgng-intro">
|
||||
<title>Using <application>pkg</application> for Binary Package
|
||||
Management</title>
|
||||
|
||||
<para><application>pkg</application> is the next generation
|
||||
replacement for the traditional &os; package management tools,
|
||||
offering many features that make dealing with binary packages
|
||||
faster and easier.</para>
|
||||
|
||||
<para><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.</para>
|
||||
|
||||
<sect2 xml:id="pkgng-initial-setup">
|
||||
<title>Getting Started with
|
||||
<application>pkg</application></title>
|
||||
|
||||
<para>&os; 8.4 and later includes a bootstrap utility
|
||||
which can be used to download and install
|
||||
<application>pkg</application>, along with its manual
|
||||
pages.</para>
|
||||
|
||||
<para>To bootstrap the system, run:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/sbin/pkg</userinput></screen>
|
||||
|
||||
<para>For earlier &os; versions,
|
||||
<application>pkg</application> must instead be installed
|
||||
from the Ports Collection or as a binary package.</para>
|
||||
|
||||
<para>To install the port, run:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/pkg</userinput>
|
||||
&prompt.root; <userinput>make</userinput>
|
||||
&prompt.root; <userinput>make install clean</userinput></screen>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg2ng</userinput></screen>
|
||||
|
||||
<note><para>This step is not required for new installations that
|
||||
do not yet have any third-party software
|
||||
installed.</para></note>
|
||||
|
||||
<important>
|
||||
<para>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.</para>
|
||||
</important>
|
||||
|
||||
<note>
|
||||
<para>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.</para>
|
||||
</note>
|
||||
|
||||
<para>To ensure that the &os; Ports Collection registers
|
||||
new software with <application>pkg</application>, and not
|
||||
the traditional packages format, &os; versions earlier than
|
||||
10.<replaceable>X</replaceable> require this line in
|
||||
<filename>/etc/make.conf</filename>:</para>
|
||||
|
||||
<programlisting>WITH_PKGNG= yes</programlisting>
|
||||
|
||||
<para>The <application>pkg</application> package management
|
||||
system uses a package repository for most operations. The
|
||||
default package repository location is defined in
|
||||
<filename>/usr/local/etc/pkg.conf</filename> or by the
|
||||
<envar>PACKAGESITE</envar> environment variable, which
|
||||
overrides the configuration file.</para>
|
||||
|
||||
<para>Additional <application>pkg</application>
|
||||
configuration options are described in pkg.conf(5).</para>
|
||||
|
||||
<para>Usage information for <application>pkg</application> is
|
||||
available in pkg(8) or by running
|
||||
<command>pkg</command> without additional arguments.</para>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg help install</userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>man pkg-install</userinput></screen>
|
||||
|
||||
<para>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.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="pkgng-pkg-info">
|
||||
<title>Obtaining Information About Installed Packages</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>For example, to see which version of
|
||||
<application>pkg</application> is installed, run:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg info pkg</userinput>
|
||||
pkg-1.1.4_1</screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="pkgng-installing-deinstalling">
|
||||
<title>Installing and Removing Packages</title>
|
||||
|
||||
<para>To install a binary package use the following command,
|
||||
where <replaceable>packagename</replaceable> is the name of
|
||||
the package to install:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg install <replaceable>packagename</replaceable></userinput></screen>
|
||||
|
||||
<para>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>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg install curl</userinput>
|
||||
Updating repository catalogue
|
||||
/usr/local/tmp/All/curl-7.31.0_1.txz 100% of 1181 kB 1380 kBps 00m01s
|
||||
|
||||
/usr/local/tmp/All/ca_root_nss-3.15.1_1.txz 100% of 288 kB 1700 kBps 00m00s
|
||||
|
||||
Updating repository catalogue
|
||||
The following 2 packages will be installed:
|
||||
|
||||
Installing ca_root_nss: 3.15.1_1
|
||||
Installing curl: 7.31.0_1
|
||||
|
||||
The installation will require 3 MB more space
|
||||
|
||||
0 B to be downloaded
|
||||
|
||||
Proceed with installing packages [y/N]: <userinput>y</userinput>
|
||||
Checking integrity... done
|
||||
[1/2] Installing ca_root_nss-3.15.5_1... done
|
||||
[2/2] Installing curl-7.31.0_1... done
|
||||
Cleaning up cache files...Done</screen>
|
||||
|
||||
<para>The new package and any additional packages that were
|
||||
installed as dependencies can be seen in the installed
|
||||
packages list:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg info</userinput>
|
||||
ca_root_nss-3.15.5_1 The root certificate bundle from the Mozilla Project
|
||||
curl-7.31.0_1 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
|
||||
pkg-1.1.4_6 New generation package manager</screen>
|
||||
|
||||
<para>Packages that are no longer needed can be removed with
|
||||
<command>pkg delete</command>. For example:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg delete curl</userinput>
|
||||
The following packages will be deleted:
|
||||
|
||||
curl-7.31.0_1
|
||||
|
||||
The deletion will free 3 MB
|
||||
|
||||
Proceed with deleting packages [y/N]: <userinput>y</userinput>
|
||||
[1/1] Deleting curl-7.31.0_1... done</screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="pkgng-upgrading">
|
||||
<title>Upgrading Installed Packages</title>
|
||||
|
||||
<para>Packages that are outdated can be found with
|
||||
<command>pkg version</command>. If a local ports tree
|
||||
does not exist, pkg-version(8) will use the remote
|
||||
repository catalogue. Otherwise, the local ports tree will
|
||||
be used to identify package versions.</para>
|
||||
|
||||
<para>Installed packages can be upgraded to their latest
|
||||
versions by typing <command>pkg upgrade</command>. This
|
||||
command will compare the installed versions with those
|
||||
available in the repository catalogue. When finished, it
|
||||
will list the applications that have newer versions. Type
|
||||
<userinput>y</userinput> to proceed with the upgrade or
|
||||
<userinput>n</userinput> to cancel the upgrade.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="pkgng-auditing">
|
||||
<title>Auditing Installed Packages</title>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg audit -F</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="pkgng-autoremove">
|
||||
<title>Automatically Removing Leaf Dependencies</title>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg autoremove</userinput>
|
||||
Packages to be autoremoved:
|
||||
ca_root_nss-3.13.5
|
||||
|
||||
The autoremoval will free 723 kB
|
||||
|
||||
Proceed with autoremoval of packages [y/N]: <userinput>y</userinput>
|
||||
Deinstalling ca_root_nss-3.15.1_1... done</screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="pkgng-backup">
|
||||
<title>Backing Up the Package Database</title>
|
||||
|
||||
<para>Unlike the traditional package management system,
|
||||
<application>pkg</application> includes its own package
|
||||
database backup mechanism. To manually back up the contents
|
||||
of the package database, run the following command, replacing
|
||||
<replaceable>pkgng.db</replaceable> with a suitable file
|
||||
name:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg backup -d <replaceable>pkgng.db</replaceable></userinput></screen>
|
||||
|
||||
<para>Additionally, <application>pkg</application> includes
|
||||
a &man.periodic.8; script to automatically perform a daily
|
||||
back up of the package database. This functionality is
|
||||
enabled if <literal>daily_backup_pkgdb_enable</literal> is
|
||||
set to <literal>YES</literal> in &man.periodic.conf.5;.</para>
|
||||
|
||||
<tip>
|
||||
<para>To disable the periodic script from backing up the
|
||||
package database, set
|
||||
<literal>daily_backup_pkgdb_enable</literal> to
|
||||
<literal>NO</literal> in &man.periodic.conf.5;.</para>
|
||||
</tip>
|
||||
|
||||
<para>To restore the contents of a previous package database
|
||||
backup, run:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg backup -r <replaceable>/path/to/pkgng.db</replaceable></userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="pkgng-clean">
|
||||
<title>Removing Stale Packages</title>
|
||||
|
||||
<para>By default, <application>pkg</application> stores
|
||||
binary packages in a cache directory defined by
|
||||
<envar>PKG_CACHEDIR</envar> in pkg.conf(5). When upgrading
|
||||
packages with <command>pkg upgrade</command>, old versions
|
||||
of the upgraded packages are not automatically removed.</para>
|
||||
|
||||
<para>To remove these outdated binary packages, run:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg clean</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="pkgng-set">
|
||||
<title>Modifying Package Metadata</title>
|
||||
|
||||
<para>Software within the &os; 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>.</para>
|
||||
|
||||
<para>To change the package origin for the above example,
|
||||
run:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg set -o lang/php5:lang/php53</userinput></screen>
|
||||
|
||||
<para>As another example, to update
|
||||
<package>lang/ruby18</package> to
|
||||
<package>lang/ruby19</package>, run:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg set -o lang/ruby18:lang/ruby19</userinput></screen>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg set -o graphics/libglut:graphics/freeglut</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>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:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg install -Rf <replaceable>graphics/freeglut</replaceable></userinput></screen>
|
||||
</note>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="ports-using">
|
||||
<title>使用 Ports 管理機制</title>
|
||||
|
||||
<para>下面我們會介紹如何使用 Ports Collection 來安裝、移除軟體的基本用法。
|
||||
至於其他可用的 <command>make</command> 詳細用法與環境設定,可參閱
|
||||
&man.ports.7;。</para>
|
||||
<para>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 &os;. 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 &os;, use one of the following methods to
|
||||
install it:</para>
|
||||
|
||||
<sect2 xml:id="ports-tree">
|
||||
<title>記得安裝 Ports Collection</title>
|
||||
<procedure xml:id="ports-using-portsnap-method">
|
||||
<title>Portsnap 方式</title>
|
||||
|
||||
<para>在安裝任一 ports 之前,必須先裝上
|
||||
Ports Collection —— 它主要是由 <filename>/usr/ports</filename> 內一堆
|
||||
<filename>Makefiles</filename>, patches 以及一些軟體簡介檔所組成的。
|
||||
</para>
|
||||
<para>The base system of &os; 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 &os; 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.</para>
|
||||
|
||||
<para>在裝 FreeBSD 時,若忘了在 <application>sysinstall</application>
|
||||
內勾選要裝 Ports Collection 的話,
|
||||
沒關係,可以照下列方式來安裝 ports collection:</para>
|
||||
<step>
|
||||
<para>To download a compressed snapshot of the Ports
|
||||
Collection into
|
||||
<filename>/var/db/portsnap</filename>:</para>
|
||||
|
||||
<procedure>
|
||||
<title>CVSup 方式</title>
|
||||
<screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
|
||||
</step>
|
||||
|
||||
<para>使用 <application>CVSup</application> 是安裝、更新 Ports
|
||||
Collection 的快速方法之一。
|
||||
若想更瞭解 <application>CVSup</application> 用法的話,請參閱 <link linkend="cvsup">使用 CVSup</link>。</para>
|
||||
<step>
|
||||
<para>若是第一次跑 <application>Portsnap</application> 的話,
|
||||
則需要先解壓到 <filename>/usr/ports</filename>:</para>
|
||||
|
||||
<note>
|
||||
<para><application>csup</application> 是以 C 語言對
|
||||
<application>CVSup</application> 軟體的重寫,在 &os; 6.2
|
||||
及之後版本即有附在系統內。 可以直接用系統所附的
|
||||
<application>csup</application> 即可跳過步驟一的動作,
|
||||
並將本文相關提到 <command>cvsup</command> 之處,
|
||||
都改為 <command>csup</command> 即可。 此外, &os; 6.2
|
||||
之前的版本,則可裝 <package>net/csup</package>
|
||||
或者 package 來使用 <application>csup</application>。</para>
|
||||
</note>
|
||||
<screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
|
||||
</step>
|
||||
|
||||
<para>第一次跑 <application>CVSup</application> 之前,請先確認
|
||||
<filename>/usr/ports</filename>
|
||||
是乾淨的! 若你已經裝了 Ports Collection ,但又自行加上其他 patch
|
||||
檔,那麼 <application>CVSup</application>
|
||||
並不會刪除你自行加上的 patch 檔,這樣可能會導致要安裝某些軟體時,
|
||||
發生 patch 失敗或編譯失敗。</para>
|
||||
<step>
|
||||
<para>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:</para>
|
||||
|
||||
<step>
|
||||
<para>安裝 <package>net/cvsup-without-gui</package>
|
||||
package:</para>
|
||||
<screen>&prompt.root; <userinput>portsnap fetch</userinput>
|
||||
&prompt.root; <userinput>portsnap update</userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg_add -r cvsup-without-gui</userinput></screen>
|
||||
<para>When using <literal>fetch</literal>, the
|
||||
<literal>extract</literal> or the <literal>update</literal>
|
||||
operation may be run consecutively, like so:</para>
|
||||
|
||||
<para>細節用法請參閱 <link linkend="cvsup-install">安裝 CVSup</link>(<xref linkend="cvsup-install"/>)。</para>
|
||||
</step>
|
||||
<screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<step>
|
||||
<para>執行 <command>cvsup</command>:</para>
|
||||
<procedure xml:id="ports-using-subversion-method">
|
||||
<title>Subversion Method</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>cvsup -L 2 -h cvsup.tw.FreeBSD.org /usr/share/examples/cvsup/ports-supfile</userinput></screen>
|
||||
<para>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.articles.committers-guide;/subversion-primer.html">the
|
||||
Subversion Primer</link> for a detailed description of
|
||||
<application>Subversion</application>.</para>
|
||||
|
||||
<para>請把
|
||||
<replaceable>cvsup.tw.FreeBSD.org</replaceable> 請改成離你比較近
|
||||
(快)的 <application>CVSup</application> 主機。
|
||||
這部分可以參閱完整的 <link linkend="cvsup-mirrors">CVSup mirror
|
||||
</link> 站列表(<xref linkend="cvsup-mirrors"/>)。</para>
|
||||
<step>
|
||||
<para><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:</para>
|
||||
|
||||
<note>
|
||||
<para>若想改用自己設的
|
||||
<filename>ports-supfile</filename>,比如說,
|
||||
不想每次都得打指令來指定所使用的
|
||||
<application>CVSup</application> 主機。</para>
|
||||
<screen>&prompt.root; <userinput>cd /usr/ports/devel/subversion</userinput>
|
||||
&prompt.root; <userinput>make install clean</userinput></screen>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>這種情況下,請以 <systemitem class="username">root</systemitem> 權限把
|
||||
<filename>/usr/share/examples/cvsup/ports-supfile</filename>
|
||||
複製到其他位置,比如
|
||||
<filename>/root</filename> 或者自己帳號的家目錄。</para>
|
||||
</step>
|
||||
<para>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:</para>
|
||||
|
||||
<step>
|
||||
<para>修改新的 <filename>ports-supfile</filename> 檔。</para>
|
||||
</step>
|
||||
<screen>&prompt.root; <userinput>pkg install subversion</userinput></screen>
|
||||
|
||||
<step>
|
||||
<para>把
|
||||
<replaceable>CHANGE_THIS.FreeBSD.org</replaceable>
|
||||
改為離你比較近(快)的 <application>CVSup</application> 主機。
|
||||
這部分可以參閱完整的 <link linkend="cvsup-mirrors">CVSup
|
||||
Mirrors</link> (<xref linkend="cvsup-mirrors"/>) 站列表</para>
|
||||
</step>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>然後就開始以類似下列指令跑 <command>cvsup</command>:
|
||||
</para>
|
||||
<step>
|
||||
<para>Check out a copy of the ports tree. For better
|
||||
performance, replace
|
||||
<replaceable>svn0.us-east.FreeBSD.org</replaceable> with a
|
||||
<link linkend="svn-mirrors">Subversion
|
||||
mirror</link> close to your geographic location:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cvsup -L 2 /root/ports-supfile</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</note>
|
||||
</step>
|
||||
<screen>&prompt.root; <userinput>svn checkout https://<replaceable>svn0.us-east.FreeBSD.org</replaceable>/ports/head /usr/ports</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>執行 &man.cvsup.1; 之後,就會開始更新 Ports Collection。
|
||||
不過這動作只是『更新』並不是『升級』,不會把已裝的軟體重新編譯、升級。</para>
|
||||
</step>
|
||||
</procedure>
|
||||
<step>
|
||||
<para>As needed, update <filename>/usr/ports</filename> after
|
||||
the initial <application>Subversion</application>
|
||||
checkout:</para>
|
||||
|
||||
<procedure>
|
||||
<title>Portsnap 方式</title>
|
||||
<screen>&prompt.root; <userinput>svn update /usr/ports</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<para>&man.portsnap.8; 也是更新 Ports Collection 的方式之一。
|
||||
&os; 6.0 起開始內建 Portsnap 機制,而較舊的系統,則可透過
|
||||
<package>ports-mgmt/portsnap</package> port 來安裝:
|
||||
</para>
|
||||
<para>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 &os; how to compile and install that program. Each port
|
||||
skeleton includes these files and directories:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg_add -r portsnap</userinput></screen>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><filename>Makefile</filename>: contains statements that
|
||||
specify how the application should be compiled and where
|
||||
its components should be installed.</para>
|
||||
</listitem>
|
||||
|
||||
<para><application>Portsnap</application> 細節功能,請參閱
|
||||
<link linkend="portsnap">Portsnap 使用篇</link>。</para>
|
||||
<listitem>
|
||||
<para><filename>distinfo</filename>: contains the names and
|
||||
checksums of the files that must be downloaded to build the
|
||||
port.</para>
|
||||
</listitem>
|
||||
|
||||
<step>
|
||||
<para>若 <filename>/usr/ports</filename> 目錄不存在的話,
|
||||
就建立一下吧:</para>
|
||||
<listitem>
|
||||
<para><filename>files/</filename>: this directory contains
|
||||
any patches needed for the program to compile and install
|
||||
on &os;. This directory may also contain other files used
|
||||
to build the port.</para>
|
||||
</listitem>
|
||||
|
||||
<screen>&prompt.root; <userinput>mkdir /usr/ports</userinput></screen>
|
||||
</step>
|
||||
<listitem>
|
||||
<para><filename>pkg-descr</filename>: provides a more detailed
|
||||
description of the program.</para>
|
||||
</listitem>
|
||||
|
||||
<step>
|
||||
<para>接下來,下載壓縮的 Ports Collection 定期更新檔到
|
||||
<filename>/var/db/portsnap</filename> 目錄。
|
||||
完成下載後,要斷線與否都可以。</para>
|
||||
<listitem>
|
||||
<para><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.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
|
||||
</step>
|
||||
<para>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.books.porters-handbook;/index.html">&os;
|
||||
Porter's Handbook</link>.</para>
|
||||
|
||||
<step>
|
||||
<para>若是第一次跑 <application>Portsnap</application> 的話,
|
||||
則需要先解壓到 <filename>/usr/ports</filename>:
|
||||
</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
|
||||
|
||||
<para>若已有 <filename>/usr/ports</filename> 而且只是想更新而已,
|
||||
那麼就照下面作:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>portsnap update</userinput></screen>
|
||||
</step>
|
||||
|
||||
</procedure>
|
||||
|
||||
<procedure>
|
||||
<title>Sysinstall 方式</title>
|
||||
|
||||
<para>這方式要用 <application>sysinstall</application>
|
||||
透過安裝來源來裝 Ports Collection。
|
||||
請注意:所安裝的 Ports Collection 版本只是該 release
|
||||
發佈時的版本而已,而非最新。
|
||||
若能上網(Internet)的話,請使用上述方式之一會比較好。</para>
|
||||
|
||||
<step>
|
||||
<para>以 <systemitem class="username">root</systemitem> 權限執行
|
||||
<command>sysinstall</command>
|
||||
(在 &os; 5.2 之前版本則是 <command>/stand/sysinstall</command>)
|
||||
,方式如下:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sysinstall</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>請以方向鍵移動選擇項目,選擇
|
||||
<guimenuitem>Configure</guimenuitem>,然後按
|
||||
<keycap>Enter</keycap> 鍵。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>選擇
|
||||
<guimenuitem>Distributions</guimenuitem>,然後按
|
||||
<keycap>Enter</keycap> 鍵。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>選擇 <guimenuitem>ports</guimenuitem>,然後按
|
||||
<keycap>Space</keycap> 鍵。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>選 <guimenuitem>Exit</guimenuitem>,然後按
|
||||
<keycap>Enter</keycap> 鍵。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>選擇要用的安裝來源,比如:CDROM(光碟)、FTP 等方式。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>選 <guimenuitem>Exit</guimenuitem>,然後按
|
||||
<keycap>Enter</keycap> 鍵。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>按下 <keycap>X</keycap> 鍵就可離開
|
||||
<application>sysinstall</application> 程式。</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
<para>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>.</para>
|
||||
|
||||
<sect2 xml:id="ports-skeleton">
|
||||
<title>Ports 的安裝方式</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>ports</primary>
|
||||
<secondary>installing</secondary>
|
||||
<primary>ports</primary>
|
||||
<secondary>installing</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>下面我們會介紹如何使用 Ports Collection 來安裝、移除軟體的基本用法。
|
||||
至於其他可用的 <command>make</command> 詳細用法與環境設定,可參閱
|
||||
&man.ports.7;。</para>
|
||||
|
||||
<warning>
|
||||
<para>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
|
||||
<uri
|
||||
xlink:href="http://vuxml.freebsd.org/">http://vuxml.freebsd.org/</uri>
|
||||
for known security issues related to the port. Alternately,
|
||||
if <package>ports-mgmt/portaudit</package> is installed, run
|
||||
<command>portaudit -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 the manual page for
|
||||
<application>portaudit</application> and
|
||||
&man.periodic.8;.</para>
|
||||
</warning>
|
||||
|
||||
<para>提到 Ports Collection,首先要先說明的是:何謂
|
||||
<quote>skeleton</quote>。
|
||||
簡單來講,port skeleton 就是讓軟體如何在 FreeBSD
|
||||
|
@ -1016,7 +1304,7 @@ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
|
|||
比如裝了一個 port 後才意識到裝錯 port 了。
|
||||
在此,我們將移除前面例子所裝的那個 port
|
||||
(沒仔細注意的話,我們再提醒一下就是 <command>lsof</command>)。
|
||||
跟移除 package 時相當類似(在 <link linkend="packages-using">Packages section</link> 有介紹),都是使用
|
||||
跟移除 package 時相當類似,都是使用
|
||||
&man.pkg.delete.1; 指令:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>pkg_delete lsof-4.57</userinput></screen>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
$FreeBSD$
|
||||
Original revision: 1.30
|
||||
Original revision: r46055
|
||||
-->
|
||||
<preface xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="book-preface">
|
||||
<title>序</title>
|
||||
|
@ -41,11 +41,6 @@
|
|||
、檔案及網路的備援檔案系統、以及如何對硬碟分割區作加密等詳解。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="vinum-vinum"/>Vinum是本版所新增的章節。本章介紹:如何運用 Vinum 這種邏輯磁碟(device-independent)
|
||||
,以及軟體 RAID-0, RAID-1 和 RAID-5 。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="ppp-and-slip"/>PPP 及 SLIP 一章中增加了故障排除的說明。</para>
|
||||
</listitem>
|
||||
|
@ -244,83 +239,136 @@
|
|||
<!-- Part III - System Administration -->
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="config-tuning"/>, Configuration and Tuning</emphasis></term>
|
||||
<term><emphasis><xref
|
||||
linkend="config-tuning"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
administrators to tune a &os; system for optimum
|
||||
performance. Also describes the various configuration files
|
||||
used in &os; and where to find them.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="boot"/>, Booting Process</emphasis></term>
|
||||
<term><emphasis><xref linkend="boot"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>Describes the FreeBSD boot process and explains
|
||||
how to control this process with configuration options.</para>
|
||||
<para>Describes the &os; boot process and explains how to
|
||||
control this process with configuration options.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="users"/>, Users and Basic Account
|
||||
Management</emphasis></term>
|
||||
<term><emphasis><xref linkend="security"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>Describes the creation and manipulation of user
|
||||
accounts. Also discusses resource limitations that can be
|
||||
set on users and other account management tasks.</para>
|
||||
<para>Describes many different tools available to help keep
|
||||
your &os; system secure, including Kerberos, IPsec and
|
||||
OpenSSH.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="security"/>, Security</emphasis></term>
|
||||
<term><emphasis><xref linkend="jails"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>Describes many different tools available to help keep your
|
||||
FreeBSD system secure, including Kerberos, IPsec and OpenSSH.</para>
|
||||
<para>Describes the jails framework, and the improvements of
|
||||
jails over the traditional chroot support of &os;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="mac"/>, Mandatory Access Control</emphasis></term>
|
||||
<term><emphasis><xref linkend="mac"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>Explains what Mandatory Access Control (MAC) is and how this
|
||||
mechanism can be used to secure a FreeBSD system.</para>
|
||||
<para>Explains what Mandatory Access Control (MAC) is and
|
||||
how this mechanism can be used to secure a &os;
|
||||
system.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="disks"/>, Storage</emphasis></term>
|
||||
<term><emphasis><xref linkend="audit"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>Describes what &os; Event Auditing is, how it can be
|
||||
installed, configured, and how audit trails can be inspected
|
||||
or monitored.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="disks"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
with &os;. This includes physical disks, RAID arrays,
|
||||
optical and tape media, memory-backed disks, and network
|
||||
filesystems.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="GEOM"/>, GEOM</emphasis></term>
|
||||
<term><emphasis><xref linkend="geom"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>Describes what the GEOM framework in FreeBSD is and how
|
||||
<para>Describes what the GEOM framework in &os; is and how
|
||||
to configure various supported RAID levels.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="vinum-vinum"/>, Vinum</emphasis></term>
|
||||
<term><emphasis><xref linkend="filesystems"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>Describes how to use Vinum, a logical volume manager
|
||||
which provides device-independent logical disks, and
|
||||
software RAID-0, RAID-1 and RAID-5.</para>
|
||||
<para>Examines support of non-native file systems in &os;,
|
||||
like the Z File System from &sun;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="l10n"/>, Localization</emphasis></term>
|
||||
<term><emphasis><xref
|
||||
linkend="virtualization"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>Describes how to use FreeBSD in languages other than
|
||||
English. Covers both system and application level
|
||||
localization.</para>
|
||||
<para>Describes what virtualization systems offer, and how
|
||||
they can be used with &os;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="cutting-edge"/>, The Cutting Edge</emphasis></term>
|
||||
<term><emphasis><xref linkend="l10n"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
<para>Describes how to use &os; in languages other than
|
||||
English. Covers both system and application level
|
||||
localization.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref
|
||||
linkend="updating-upgrading"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>Explains the differences between &os;-STABLE,
|
||||
&os;-CURRENT, and &os; 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.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="dtrace"/></emphasis></term>
|
||||
|
||||
<listitem>
|
||||
<para>Describes how to configure and use the &dtrace; tool
|
||||
from &sun; in &os;. Dynamic tracing can help locate
|
||||
performance issues, by performing real time system
|
||||
analysis.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -2666,7 +2666,7 @@ boot:</screen>
|
|||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Get the kernel source. (See <xref linkend="cutting-edge"/>)</para>
|
||||
<para>Get the kernel source.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
|
4332
zh_TW.UTF-8/books/handbook/zfs/chapter.xml
Normal file
4332
zh_TW.UTF-8/books/handbook/zfs/chapter.xml
Normal file
File diff suppressed because it is too large
Load diff
|
@ -3,7 +3,7 @@
|
|||
Names of FreeBSD 郵遞論壇s and related software.
|
||||
The FreeBSD Traditional-Chinese Documentation Project
|
||||
|
||||
Original revision: 1.57
|
||||
Original revision: r46084
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
|
@ -27,10 +27,6 @@
|
|||
<!ENTITY a.aic7xxx "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.aic7xxx.url;'>FreeBSD Adaptec AIC7xxx discussions 郵遞論壇</link>">
|
||||
<!ENTITY a.aic7xxx.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.aic7xxx.url;'>freebsd-aic7xxx</link>">
|
||||
|
||||
<!ENTITY a.alpha.url "&a.mailman.listinfo;/freebsd-alpha">
|
||||
<!ENTITY a.alpha "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.alpha.url;'>FreeBSD Alpha porting 郵遞論壇</link>">
|
||||
<!ENTITY a.alpha.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.alpha.url;'>freebsd-alpha</link>">
|
||||
|
||||
<!ENTITY a.amd64.url "&a.mailman.listinfo;/freebsd-amd64">
|
||||
<!ENTITY a.amd64 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.amd64.url;'>Porting FreeBSD to AMD64 systems</link>">
|
||||
<!ENTITY a.amd64.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.amd64.url;'>freebsd-amd64</link>">
|
||||
|
@ -55,14 +51,6 @@
|
|||
<!ENTITY a.atm "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.atm.url;'>FreeBSD ATM networking 郵遞論壇</link>">
|
||||
<!ENTITY a.atm.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.atm.url;'>freebsd-atm</link>">
|
||||
|
||||
<!ENTITY a.audit.url "&a.mailman.listinfo;/freebsd-audit">
|
||||
<!ENTITY a.audit "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.audit.url;'>FreeBSD source code audit 郵遞論壇</link>">
|
||||
<!ENTITY a.audit.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.audit.url;'>freebsd-audit</link>">
|
||||
|
||||
<!ENTITY a.binup.url "&a.mailman.listinfo;/freebsd-binup">
|
||||
<!ENTITY a.binup "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.binup.url;'>FreeBSD binary update system 郵遞論壇</link>">
|
||||
<!ENTITY a.binup.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.binup.url;'>freebsd-binup</link>">
|
||||
|
||||
<!ENTITY a.bluetooth.url "&a.mailman.listinfo;/freebsd-bluetooth">
|
||||
<!ENTITY a.bluetooth "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bluetooth.url;'>FreeBSD Bluetooth 郵遞論壇</link>">
|
||||
<!ENTITY a.bluetooth.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bluetooth.url;'>freebsd-bluetooth</link>">
|
||||
|
@ -79,6 +67,10 @@
|
|||
<!ENTITY a.chat "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.chat.url;'>FreeBSD chat 郵遞論壇</link>">
|
||||
<!ENTITY a.chat.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.chat.url;'>freebsd-chat</link>">
|
||||
|
||||
<!ENTITY a.chromium.url "&a.mailman.listinfo;/freebsd-chromium">
|
||||
<!ENTITY a.chromium "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.chromium.url;'>FreeBSD-specific Chromium issues</link>">
|
||||
<!ENTITY a.chromium.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.chromium.url;'>freebsd-chromium</link>">
|
||||
|
||||
<!ENTITY a.cluster.url "&a.mailman.listinfo;/freebsd-cluster">
|
||||
<!ENTITY a.cluster "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cluster.url;'>FreeBSD clustering 郵遞論壇</link>">
|
||||
<!ENTITY a.cluster.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cluster.url;'>freebsd-cluster</link>">
|
||||
|
@ -86,7 +78,6 @@
|
|||
<!ENTITY a.committers "FreeBSD committer's 郵遞論壇">
|
||||
<!ENTITY a.committers.name "cvs-committers">
|
||||
|
||||
<!ENTITY a.core "FreeBSD core team">
|
||||
<!ENTITY a.core.name "freebsd-core">
|
||||
|
||||
<!ENTITY a.current.url "&a.mailman.listinfo;/freebsd-current">
|
||||
|
@ -97,14 +88,34 @@
|
|||
<!ENTITY a.ctm-announce "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-announce.url;'>CTM 公告</link>">
|
||||
<!ENTITY a.ctm-announce.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-announce.url;'>ctm-announce</link>">
|
||||
|
||||
<!ENTITY a.ctm-cvs-cur.url "&a.mailman.listinfo;/ctm-cvs-cur">
|
||||
<!ENTITY a.ctm-cvs-cur "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-cvs-cur.url;'>透過 CTM 發佈的 CVS 檔案</link>">
|
||||
<!ENTITY a.ctm-cvs-cur.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-cvs-cur.url;'>ctm-cvs-cur</link>">
|
||||
|
||||
<!ENTITY a.ctm-src-4.url "&a.mailman.listinfo;/ctm-src-4">
|
||||
<!ENTITY a.ctm-src-4 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-4.url;'>CTM 4-STABLE src branch distribution 郵遞論壇</link>">
|
||||
<!ENTITY a.ctm-src-4.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-4.url;'>ctm-src-4</link>">
|
||||
|
||||
<!ENTITY a.ctm-src-5.url "&a.mailman.listinfo;/ctm-src-5">
|
||||
<!ENTITY a.ctm-src-5 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-5.url;'>CTM 5-STABLE src branch distribution mailing list</link>">
|
||||
<!ENTITY a.ctm-src-5.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-5.url;'>ctm-src-5</link>">
|
||||
|
||||
<!ENTITY a.ctm-src-6.url "&a.mailman.listinfo;/ctm-src-6">
|
||||
<!ENTITY a.ctm-src-6 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-6.url;'>CTM 6-STABLE src branch distribution mailing list</link>">
|
||||
<!ENTITY a.ctm-src-6.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-6.url;'>ctm-src-6</link>">
|
||||
|
||||
<!ENTITY a.ctm-src-7.url "&a.mailman.listinfo;/ctm-src-7">
|
||||
<!ENTITY a.ctm-src-7 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-7.url;'>CTM 7-STABLE src branch distribution mailing list</link>">
|
||||
<!ENTITY a.ctm-src-7.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-7.url;'>ctm-src-7</link>">
|
||||
|
||||
<!ENTITY a.ctm-src-8.url "&a.mailman.listinfo;/ctm-src-8">
|
||||
<!ENTITY a.ctm-src-8 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-8.url;'>CTM 8-STABLE src branch distribution mailing list</link>">
|
||||
<!ENTITY a.ctm-src-8.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-8.url;'>ctm-src-8</link>">
|
||||
|
||||
<!ENTITY a.ctm-src-9.url "&a.mailman.listinfo;/ctm-src-9">
|
||||
<!ENTITY a.ctm-src-9 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-9.url;'>CTM 9-STABLE src branch distribution mailing list</link>">
|
||||
<!ENTITY a.ctm-src-9.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-9.url;'>ctm-src-9</link>">
|
||||
|
||||
<!ENTITY a.ctm-src-10.url "&a.mailman.listinfo;/ctm-src-10">
|
||||
<!ENTITY a.ctm-src-10 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-10.url;'>CTM 10-STABLE src branch distribution mailing list</link>">
|
||||
<!ENTITY a.ctm-src-10.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-10.url;'>ctm-src-10</link>">
|
||||
|
||||
<!ENTITY a.ctm-src-cur.url "&a.mailman.listinfo;/ctm-src-cur">
|
||||
<!ENTITY a.ctm-src-cur "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-cur.url;'>CTM -CURRENT src branch distribution 郵遞論壇</link>">
|
||||
<!ENTITY a.ctm-src-cur.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-cur.url;'>ctm-src-cur</link>">
|
||||
|
@ -133,15 +144,15 @@
|
|||
<!ENTITY a.cvs-src "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvs-src.url;'>FreeBSD CVS src commit list</link>">
|
||||
<!ENTITY a.cvs-src.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvs-src.url;'>cvs-src</link>">
|
||||
|
||||
<!ENTITY a.cvsweb.url "&a.mailman.listinfo;/freebsd-cvsweb">
|
||||
<!ENTITY a.cvsweb "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvsweb.url;'>FreeBSD CVSweb 維護郵遞論壇</link>">
|
||||
<!ENTITY a.cvsweb.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvsweb.url;'>freebsd-cvsweb</link>">
|
||||
|
||||
<!ENTITY a.database.url "&a.mailman.listinfo;/freebsd-database">
|
||||
<!ENTITY a.database "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.database.url;'>FreeBSD based Databases 郵遞論壇</link>">
|
||||
<!ENTITY a.database.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.database.url;'>freebsd-database</link>">
|
||||
|
||||
<!ENTITY a.developers "FreeBSD developers 郵遞論壇">
|
||||
<!ENTITY a.desktop "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.desktop.url;'>Using and improving &os; on the desktop</link>">
|
||||
<!ENTITY a.desktop.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.desktop.url;'>freebsd-desktop</link>">
|
||||
|
||||
<!ENTITY a.developers "FreeBSD developers mailing list">
|
||||
<!ENTITY a.developers.name "freebsd-developers">
|
||||
|
||||
<!ENTITY a.doc.url "&a.mailman.listinfo;/freebsd-doc">
|
||||
|
@ -158,10 +169,13 @@
|
|||
<!ENTITY a.drivers "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.drivers.url;'>Writing device drivers for FreeBSD</link>">
|
||||
<!ENTITY a.drivers.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.drivers.url;'>freebsd-drivers</link>">
|
||||
|
||||
<!ENTITY a.dtrace.url "&a.mailman.listinfo;/freebsd-dtrace">
|
||||
<!ENTITY a.dtrace "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.dtrace.url;'>Using and working on DTrace in &os;.</link>">
|
||||
<!ENTITY a.dtrace.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.dtrace.url;'>freebsd-dtrace</link>">
|
||||
|
||||
<!ENTITY a.eclipse.url "&a.mailman.listinfo;/freebsd-eclipse">
|
||||
<!ENTITY a.eclipse "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.eclipse.url;'>FreeBSD users of Eclipse IDE, tools, rich client applications and ports</link>">
|
||||
<!ENTITY a.eclipse.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.eclipse.url;'>freebsd-eclipse</link>">
|
||||
|
||||
<!ENTITY a.embedded.url "&a.mailman.listinfo;/freebsd-embedded">
|
||||
<!ENTITY a.embedded "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.embedded.url;'>FreeBSD-embedded 郵遞論壇</link>">
|
||||
<!ENTITY a.embedded.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.embedded.url;'>freebsd-embedded</link>">
|
||||
|
@ -170,6 +184,10 @@
|
|||
<!ENTITY a.emulation "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.emulation.url;'>FreeBSD-emulation 郵遞論壇</link>">
|
||||
<!ENTITY a.emulation.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.emulation.url;'>freebsd-emulation</link>">
|
||||
|
||||
<!ENTITY a.enlightenment.url "&a.mailman.listinfo;/freebsd-enlightenment">
|
||||
<!ENTITY a.enlightenment "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.enlightenment.url;'>FreeBSD-enlightenment mailing list</link>">
|
||||
<!ENTITY a.enlightenment.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.enlightenment.url;'>freebsd-enlightenment</link>">
|
||||
|
||||
<!ENTITY a.eol.url "&a.mailman.listinfo;/freebsd-eol">
|
||||
<!ENTITY a.eol "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.eol.url;'>FreeBSD-eol 郵遞論壇</link>">
|
||||
<!ENTITY a.eol.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.eol.url;'>freebsd-eol</link>">
|
||||
|
@ -178,14 +196,30 @@
|
|||
<!ENTITY a.firewire "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.firewire.url;'>FreeBSD FireWire (IEEE 1394) discussion 郵遞論壇</link>">
|
||||
<!ENTITY a.firewire.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.firewire.url;'>freebsd-firewire</link>">
|
||||
|
||||
<!ENTITY a.fortran.url "&a.mailman.listinfo;/freebsd-fortran">
|
||||
<!ENTITY a.fortran "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.fortran.url;'>Fortran on FreeBSD mailing list</link>">
|
||||
<!ENTITY a.fortran.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.fortran.url;'>freebsd-fortran</link>">
|
||||
|
||||
<!ENTITY a.fs.url "&a.mailman.listinfo;/freebsd-fs">
|
||||
<!ENTITY a.fs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.fs.url;'>FreeBSD file system project 郵遞論壇</link>">
|
||||
<!ENTITY a.fs.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.fs.url;'>freebsd-fs</link>">
|
||||
|
||||
<!ENTITY a.games.url "&a.mailman.listinfo;/freebsd-games">
|
||||
<!ENTITY a.games "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.games.url;'>Games on FreeBSD mailing list</link>">
|
||||
<!ENTITY a.games.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.games.url;'>freebsd-games</link>">
|
||||
|
||||
<!ENTITY a.gecko.url "&a.mailman.listinfo;/freebsd-gecko">
|
||||
<!ENTITY a.gecko "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.gecko.url;'>FreeBSD gecko mailing list</link>">
|
||||
<!ENTITY a.gecko.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.gecko.url;'>freebsd-gecko</link>">
|
||||
|
||||
<!ENTITY a.geom.url "&a.mailman.listinfo;/freebsd-geom">
|
||||
<!ENTITY a.geom "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.geom.url;'>FreeBSD GEOM 郵遞論壇</link>">
|
||||
<!ENTITY a.geom.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.geom.url;'>freebsd-geom</link>">
|
||||
|
||||
<!ENTITY a.git.url "&a.mailman.listinfo;/freebsd-git">
|
||||
<!ENTITY a.git "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.git.url;'>Discussion of git use in the FreeBSD project</link>">
|
||||
<!ENTITY a.git.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.git.url;'>freebsd-git</link>">
|
||||
|
||||
<!ENTITY a.gnome.url "&a.mailman.listinfo;/freebsd-gnome">
|
||||
<!ENTITY a.gnome "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.gnome.url;'>FreeBSD GNOME and GNOME applications 郵遞論壇</link>">
|
||||
<!ENTITY a.gnome.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.gnome.url;'>freebsd-gnome</link>">
|
||||
|
@ -218,6 +252,10 @@
|
|||
<!ENTITY a.ia64 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ia64.url;'>FreeBSD IA64 porting 郵遞論壇</link>">
|
||||
<!ENTITY a.ia64.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ia64.url;'>freebsd-ia64</link>">
|
||||
|
||||
<!ENTITY a.infiniband.url "&a.mailman.listinfo;/freebsd-infiniband">
|
||||
<!ENTITY a.infiniband "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.infiniband.url;'>Infiniband on FreeBSD</link>">
|
||||
<!ENTITY a.infiniband.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.infiniband.url;'>freebsd-infiniband</link>">
|
||||
|
||||
<!ENTITY a.ipfw.url "&a.mailman.listinfo;/freebsd-ipfw">
|
||||
<!ENTITY a.ipfw "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ipfw.url;'>FreeBSD IPFW code 郵遞論壇</link>">
|
||||
<!ENTITY a.ipfw.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ipfw.url;'>freebsd-ipfw</link>">
|
||||
|
@ -250,10 +288,6 @@
|
|||
<!ENTITY a.lfs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.lfs.url;'>FreeBSD LFS porting 郵遞論壇</link>">
|
||||
<!ENTITY a.lfs.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.lfs.url;'>freebsd-lfs</link>">
|
||||
|
||||
<!ENTITY a.libh.url "&a.mailman.listinfo;/freebsd-libh">
|
||||
<!ENTITY a.libh "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.libh.url;'>FreeBSD libh installation and packaging system 郵遞論壇</link>">
|
||||
<!ENTITY a.libh.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.libh.url;'>freebsd-libh</link>">
|
||||
|
||||
<!ENTITY a.mips.url "&a.mailman.listinfo;/freebsd-mips">
|
||||
<!ENTITY a.mips "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mips.url;'>FreeBSD MIPS porting 郵遞論壇</link>">
|
||||
<!ENTITY a.mips.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mips.url;'>freebsd-mips</link>">
|
||||
|
@ -286,9 +320,17 @@
|
|||
<!ENTITY a.newbus "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.newbus.url;'>FreeBSD new-bus 郵遞論壇</link>">
|
||||
<!ENTITY a.newbus.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.newbus.url;'>freebsd-new-bus</link>">
|
||||
|
||||
<!ENTITY a.openoffice.url "&a.mailman.listinfo;/freebsd-openoffice">
|
||||
<!ENTITY a.openoffice "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.openoffice.url;'>FreeBSD OpenOffice 郵遞論壇</link>">
|
||||
<!ENTITY a.openoffice.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.openoffice.url;'>freebsd-openoffice</link>">
|
||||
<!ENTITY a.numerics.url "&a.mailman.listinfo;/freebsd-numerics">
|
||||
<!ENTITY a.numerics "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.numerics.url;'>Discussions of high quality implementation of libm functions</link>">
|
||||
<!ENTITY a.numerics.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.numerics.url;'>freebsd-numerics</link>">
|
||||
|
||||
<!ENTITY a.office.url "&a.mailman.listinfo;/freebsd-office">
|
||||
<!ENTITY a.office "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.office.url;'>Office applications on FreeBSD</link>">
|
||||
<!ENTITY a.office.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.office.url;'>freebsd-office</link>">
|
||||
|
||||
<!ENTITY a.ops-announce.url "&a.mailman.listinfo;/freebsd-ops-announce">
|
||||
<!ENTITY a.ops-announce "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ops-announce.url;'>Project Infrastructure Announcements</link>">
|
||||
<!ENTITY a.ops-announce.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ops-announce.url;'>freebsd-ops-announce</link>">
|
||||
|
||||
<!ENTITY a.performance.url "&a.mailman.listinfo;/freebsd-performance">
|
||||
<!ENTITY a.performance "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.performance.url;'>FreeBSD performance 郵遞論壇</link>">
|
||||
|
@ -302,18 +344,25 @@
|
|||
<!ENTITY a.pf "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.pf.url;'>FreeBSD packet filter 郵遞論壇</link>">
|
||||
<!ENTITY a.pf.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.pf.url;'>freebsd-pf</link>">
|
||||
|
||||
<!ENTITY a.pkg.url "&a.mailman.listinfo;/freebsd-pkg">
|
||||
<!ENTITY a.pkg "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.pkg.url;'>Binary package management and package tools discussion</link>">
|
||||
<!ENTITY a.pkg.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.pkg.url;'>freebsd-pkg</link>">
|
||||
|
||||
<!ENTITY a.pkg-fallout.url "&a.mailman.listinfo;/freebsd-pkg-fallout">
|
||||
<!ENTITY a.pkg-fallout "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.pkg-fallout.url;'>Fallout logs from package building</link>">
|
||||
<!ENTITY a.pkg-fallout.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.pkg-fallout.url;'>freebsd-pkg-fallout</link>">
|
||||
|
||||
<!ENTITY a.platforms.url "&a.mailman.listinfo;/freebsd-platforms">
|
||||
<!ENTITY a.platforms "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.platforms.url;'>FreeBSD non-Intel platforms porting 郵遞論壇</link>">
|
||||
<!ENTITY a.platforms.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.platforms.url;'>freebsd-platforms</link>">
|
||||
|
||||
<!ENTITY a.policy.url "&a.mailman.listinfo;/freebsd-policy">
|
||||
<!ENTITY a.policy "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.policy.url;'>FreeBSD core team policy decisions 郵遞論壇</link>">
|
||||
<!ENTITY a.policy.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.policy.url;'>freebsd-policy</link>">
|
||||
|
||||
<!ENTITY a.ports.url "&a.mailman.listinfo;/freebsd-ports">
|
||||
<!ENTITY a.ports "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports.url;'>FreeBSD ports 郵遞論壇</link>">
|
||||
<!ENTITY a.ports.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports.url;'>freebsd-ports</link>">
|
||||
|
||||
<!ENTITY a.ports-announce.url "&a.mailman.listinfo;/freebsd-ports-announce">
|
||||
<!ENTITY a.ports-announce "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports-announce.url;'>FreeBSD ports announce mailing list</link>">
|
||||
<!ENTITY a.ports-announce.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports-announce.url;'>freebsd-ports-announce</link>">
|
||||
|
||||
<!ENTITY a.ports-bugs.url "&a.mailman.listinfo;/freebsd-ports-bugs">
|
||||
<!ENTITY a.ports-bugs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports-bugs.url;'>FreeBSD ports bugs 郵遞論壇</link>">
|
||||
<!ENTITY a.ports-bugs.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports-bugs.url;'>freebsd-ports-bugs</link>">
|
||||
|
@ -336,10 +385,6 @@
|
|||
<!ENTITY a.python "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.python.url;'>FreeBSD Python 郵遞論壇</link>">
|
||||
<!ENTITY a.python.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.python.url;'>freebsd-python</link>">
|
||||
|
||||
<!ENTITY a.qa.url "&a.mailman.listinfo;/freebsd-qa">
|
||||
<!ENTITY a.qa "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.qa.url;'>FreeBSD Quality Assurance 郵遞論壇</link>">
|
||||
<!ENTITY a.qa.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.qa.url;'>freebsd-qa</link>">
|
||||
|
||||
<!ENTITY a.questions.url "&a.mailman.listinfo;/freebsd-questions">
|
||||
<!ENTITY a.questions "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.questions.url;'>FreeBSD general questions 郵遞論壇</link>">
|
||||
<!ENTITY a.questions.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.questions.url;'>freebsd-questions</link>">
|
||||
|
@ -352,6 +397,10 @@
|
|||
<!ENTITY a.realtime "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.realtime.url;'>FreeBSD realtime extensions 郵遞論壇</link>">
|
||||
<!ENTITY a.realtime.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.realtime.url;'>freebsd-realtime</link>">
|
||||
|
||||
<!ENTITY a.ruby.url "&a.mailman.listinfo;/freebsd-ruby">
|
||||
<!ENTITY a.ruby "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ruby.url;'>FreeBSD Ruby mailing list</link>">
|
||||
<!ENTITY a.ruby.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ruby.url;'>freebsd-ruby</link>">
|
||||
|
||||
<!ENTITY a.scsi.url "&a.mailman.listinfo;/freebsd-scsi">
|
||||
<!ENTITY a.scsi "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.scsi.url;'>FreeBSD SCSI subsystem 郵遞論壇</link>">
|
||||
<!ENTITY a.scsi.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.scsi.url;'>freebsd-scsi</link>">
|
||||
|
@ -368,9 +417,9 @@
|
|||
<!ENTITY a.small "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.small.url;'>FreeBSD-small 郵遞論壇</link>">
|
||||
<!ENTITY a.small.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.small.url;'>freebsd-small</link>">
|
||||
|
||||
<!ENTITY a.smp.url "&a.mailman.listinfo;/freebsd-smp">
|
||||
<!ENTITY a.smp "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.smp.url;'>FreeBSD symmetric multiprocessing 郵遞論壇</link>">
|
||||
<!ENTITY a.smp.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.smp.url;'>freebsd-smp</link>">
|
||||
<!ENTITY a.snapshots.url "&a.mailman.listinfo;/freebsd-snapshots">
|
||||
<!ENTITY a.snapshots "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.snapshots.url;'>FreeBSD Development Snapshot Announcements</link>">
|
||||
<!ENTITY a.snapshots.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.snapshots.url;'>freebsd-snapshots</link>">
|
||||
|
||||
<!ENTITY a.sparc.url "&a.mailman.listinfo;/freebsd-sparc64">
|
||||
<!ENTITY a.sparc "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sparc.url;'>FreeBSD SPARC porting 郵遞論壇</link>">
|
||||
|
@ -394,6 +443,102 @@
|
|||
<!ENTITY a.sun4v "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sun4v.url;'>FreeBSD sun4v porting 郵遞論壇</link>">
|
||||
<!ENTITY a.sun4v.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sun4v.url;'>freebsd-sun4v</link>">
|
||||
|
||||
<!ENTITY a.svn-doc-all.url "&a.mailman.listinfo;/svn-doc-all">
|
||||
<!ENTITY a.svn-doc-all "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-doc-all.url;'>SVN commit messages for the entire doc tree (except for <quote>user</quote>, <quote>projects</quote> and <quote>translations</quote>)</link>">
|
||||
<!ENTITY a.svn-doc-all.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-doc-all.url;'>svn-doc-all</link>">
|
||||
|
||||
<!ENTITY a.svn-doc-head.url "&a.mailman.listinfo;/svn-doc-head">
|
||||
<!ENTITY a.svn-doc-head "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-doc-head.url;'>SVN commit messages for the doc tree for head/</link>">
|
||||
<!ENTITY a.svn-doc-head.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-doc-head.url;'>svn-doc-head</link>">
|
||||
|
||||
<!ENTITY a.svn-doc-projects.url "&a.mailman.listinfo;/svn-doc-projects">
|
||||
<!ENTITY a.svn-doc-projects "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-doc-projects.url;'>SVN commit messages for the doc <quote>projects</quote> tree</link>">
|
||||
<!ENTITY a.svn-doc-projects.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-doc-projects.url;'>svn-doc-projects</link>">
|
||||
|
||||
<!ENTITY a.svn-doc-svnadmin.url "&a.mailman.listinfo;/svn-doc-svnadmin">
|
||||
<!ENTITY a.svn-doc-svnadmin "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-doc-svnadmin.url;'>SVN commit messages for the doc admin / configuration tree</link>">
|
||||
<!ENTITY a.svn-doc-svnadmin.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-doc-svnadmin.url;'>svn-doc-svnadmin</link>">
|
||||
|
||||
<!ENTITY a.svn-ports-all.url "&a.mailman.listinfo;/svn-ports-all">
|
||||
<!ENTITY a.svn-ports-all "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-ports-all.url;'>SVN commit messages for the entire ports tree</link>">
|
||||
<!ENTITY a.svn-ports-all.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-ports-all.url;'>svn-ports-all</link>">
|
||||
|
||||
<!ENTITY a.svn-ports-head.url "&a.mailman.listinfo;/svn-ports-head">
|
||||
<!ENTITY a.svn-ports-head "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-ports-head.url;'>SVN commit messages for the ports tree for head/</link>">
|
||||
<!ENTITY a.svn-ports-head.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-ports-head.url;'>svn-ports-head</link>">
|
||||
|
||||
<!ENTITY a.svn-ports-svnadmin.url "&a.mailman.listinfo;/svn-ports-svnadmin">
|
||||
<!ENTITY a.svn-ports-svnadmin "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-ports-svnadmin.url;'>SVN commit messages for the ports admin / configuration tree</link>">
|
||||
<!ENTITY a.svn-ports-svnadmin.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-ports-svnadmin.url;'>svn-ports-svnadmin</link>">
|
||||
|
||||
<!ENTITY a.svn-src-all.url "&a.mailman.listinfo;/svn-src-all">
|
||||
<!ENTITY a.svn-src-all "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-all.url;'>SVN commit messages for the entire src tree (except for <quote>user</quote> and <quote>projects</quote>)</link>">
|
||||
<!ENTITY a.svn-src-all.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-all.url;'>svn-src-all</link>">
|
||||
|
||||
<!ENTITY a.svn-src-head.url "&a.mailman.listinfo;/svn-src-head">
|
||||
<!ENTITY a.svn-src-head "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-head.url;'>SVN commit messages for the src tree for head/-current</link>">
|
||||
<!ENTITY a.svn-src-head.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-head.url;'>svn-src-head</link>">
|
||||
|
||||
<!ENTITY a.svn-src-projects.url "&a.mailman.listinfo;/svn-src-projects">
|
||||
<!ENTITY a.svn-src-projects "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-projects.url;'>SVN commit messages for the src <quote>projects</quote> tree</link>">
|
||||
<!ENTITY a.svn-src-projects.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-projects.url;'>svn-src-projects</link>">
|
||||
|
||||
<!ENTITY a.svn-src-release.url "&a.mailman.listinfo;/svn-src-release">
|
||||
<!ENTITY a.svn-src-release "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-release.url;'>SVN commit messages for releases in the src tree</link>">
|
||||
<!ENTITY a.svn-src-release.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-release.url;'>svn-src-release</link>">
|
||||
|
||||
<!ENTITY a.svn-src-releng.url "&a.mailman.listinfo;/svn-src-releng">
|
||||
<!ENTITY a.svn-src-releng "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-releng.url;'>SVN commit messages for the release engineering / security commits to the src tree</link>">
|
||||
<!ENTITY a.svn-src-releng.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-releng.url;'>svn-src-releng</link>">
|
||||
|
||||
<!ENTITY a.svn-src-stable.url "&a.mailman.listinfo;/svn-src-stable">
|
||||
<!ENTITY a.svn-src-stable "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable.url;'>SVN commit messages for all the -stable branches of the src tree</link>">
|
||||
<!ENTITY a.svn-src-stable.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable.url;'>svn-src-stable</link>">
|
||||
|
||||
<!ENTITY a.svn-src-stable-6.url "&a.mailman.listinfo;/svn-src-stable-6">
|
||||
<!ENTITY a.svn-src-stable-6 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-6.url;'>SVN commit messages for only the 6-stable src tree</link>">
|
||||
<!ENTITY a.svn-src-stable-6.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-6.url;'>svn-src-stable-6</link>">
|
||||
|
||||
<!ENTITY a.svn-src-stable-7.url "&a.mailman.listinfo;/svn-src-stable-7">
|
||||
<!ENTITY a.svn-src-stable-7 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-7.url;'>SVN commit messages for only the 7-stable src tree</link>">
|
||||
<!ENTITY a.svn-src-stable-7.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-7.url;'>svn-src-stable-7</link>">
|
||||
|
||||
<!ENTITY a.svn-src-stable-8.url "&a.mailman.listinfo;/svn-src-stable-8">
|
||||
<!ENTITY a.svn-src-stable-8 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-8.url;'>SVN commit messages for only the 8-stable src tree</link>">
|
||||
<!ENTITY a.svn-src-stable-8.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-8.url;'>svn-src-stable-8</link>">
|
||||
|
||||
<!ENTITY a.svn-src-stable-9.url "&a.mailman.listinfo;/svn-src-stable-9">
|
||||
<!ENTITY a.svn-src-stable-9 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-9.url;'>SVN commit messages for only the 9-stable src tree</link>">
|
||||
<!ENTITY a.svn-src-stable-9.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-9.url;'>svn-src-stable-9</link>">
|
||||
|
||||
<!ENTITY a.svn-src-stable-10.url "&a.mailman.listinfo;/svn-src-stable-10">
|
||||
<!ENTITY a.svn-src-stable-10 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-10.url;'>SVN commit messages for only the 10-stable src tree</link>">
|
||||
<!ENTITY a.svn-src-stable-10.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-10.url;'>svn-src-stable-10</link>">
|
||||
|
||||
<!ENTITY a.svn-src-stable-other.url "&a.mailman.listinfo;/svn-src-stable-other">
|
||||
<!ENTITY a.svn-src-stable-other "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-other.url;'>SVN commit messages for the old stable src trees</link>">
|
||||
<!ENTITY a.svn-src-stable-other.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-stable-other.url;'>svn-src-stable-other</link>">
|
||||
|
||||
<!ENTITY a.svn-src-svnadmin.url "&a.mailman.listinfo;/svn-src-svnadmin">
|
||||
<!ENTITY a.svn-src-svnadmin "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-svnadmin.url;'>SVN commit messages for the admin / configuration tree</link>">
|
||||
<!ENTITY a.svn-src-svnadmin.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-svnadmin.url;'>svn-src-svnadmin</link>">
|
||||
|
||||
<!ENTITY a.svn-src-user.url "&a.mailman.listinfo;/svn-src-user">
|
||||
<!ENTITY a.svn-src-user "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-user.url;'>SVN commit messages for the experimental <quote>user</quote> src tree</link>">
|
||||
<!ENTITY a.svn-src-user.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-user.url;'>svn-src-user</link>">
|
||||
|
||||
<!ENTITY a.svn-src-vendor.url "&a.mailman.listinfo;/svn-src-vendor">
|
||||
<!ENTITY a.svn-src-vendor "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-vendor.url;'>SVN commit messages for the vendor work area tree</link>">
|
||||
<!ENTITY a.svn-src-vendor.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.svn-src-vendor.url;'>svn-src-vendor</link>">
|
||||
|
||||
<!ENTITY a.sysinstall.url "&a.mailman.listinfo;/freebsd-sysinstall">
|
||||
<!ENTITY a.sysinstall "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sysinstall.url;'>Sysinstall development mailing list</link>">
|
||||
<!ENTITY a.sysinstall.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sysinstall.url;'>freebsd-sysinstall</link>">
|
||||
|
||||
<!ENTITY a.tcltk.url "&a.mailman.listinfo;/freebsd-tcltk">
|
||||
<!ENTITY a.tcltk "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tcltk.url;'>FreeBSD-specific Tcl/Tk discussions</link>">
|
||||
<!ENTITY a.tcltk.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tcltk.url;'>freebsd-tcltk</link>">
|
||||
|
||||
<!ENTITY a.test.url "&a.mailman.listinfo;/freebsd-test">
|
||||
<!ENTITY a.test "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.test.url;'>FreeBSD test 郵遞論壇</link>">
|
||||
<!ENTITY a.test.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.test.url;'>freebsd-test</link>">
|
||||
|
@ -402,14 +547,30 @@
|
|||
<!ENTITY a.testing "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.testing.url;'>FreeBSD performance and stability testing 郵遞論壇</link>">
|
||||
<!ENTITY a.testing.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.testing.url;'>freebsd-testing</link>">
|
||||
|
||||
<!ENTITY a.tex.url "&a.mailman.listinfo;/freebsd-tex">
|
||||
<!ENTITY a.tex "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tex.url;'>Porting TeX and its applications to &os;</link>">
|
||||
<!ENTITY a.tex.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tex.url;'>freebsd-tex</link>">
|
||||
|
||||
<!ENTITY a.threads.url "&a.mailman.listinfo;/freebsd-threads">
|
||||
<!ENTITY a.threads "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.threads.url;'>FreeBSD threads 郵遞論壇</link>">
|
||||
<!ENTITY a.threads.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.threads.url;'>freebsd-threads</link>">
|
||||
|
||||
<!ENTITY a.tilera.url "&a.mailman.listinfo;/freebsd-tilera">
|
||||
<!ENTITY a.tilera "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tilera.url;'>Porting FreeBSD to the Tilera family of CPUs</link>">
|
||||
<!ENTITY a.tilera.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tilera.url;'>freebsd-tilera</link>">
|
||||
|
||||
<!ENTITY a.tokenring.url "&a.mailman.listinfo;/freebsd-tokenring">
|
||||
<!ENTITY a.tokenring "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tokenring.url;'>FreeBSD tokenring 郵遞論壇</link>">
|
||||
<!ENTITY a.tokenring.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tokenring.url;'>freebsd-tokenring</link>">
|
||||
|
||||
<!ENTITY a.toolchain.url "&a.mailman.listinfo;/freebsd-toolchain">
|
||||
<!ENTITY a.toolchain "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.toolchain.url;'>FreeBSD integrated toolchain mailing list</link>">
|
||||
<!ENTITY a.toolchain.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.toolchain.url;'>freebsd-toolchain</link>">
|
||||
|
||||
<!ENTITY a.translators.url "&a.mailman.listinfo;/freebsd-translators">
|
||||
<!ENTITY a.translators "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.translators.url;'>FreeBSD translators mailing list</link>">
|
||||
<!ENTITY a.translators.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.translators.url;'>freebsd-translators</link>">
|
||||
|
||||
<!ENTITY a.usb.url "&a.mailman.listinfo;/freebsd-usb">
|
||||
<!ENTITY a.usb "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.usb.url;'>FreeBSD USB 郵遞論壇</link>">
|
||||
<!ENTITY a.usb.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.usb.url;'>freebsd-usb</link>">
|
||||
|
@ -422,11 +583,23 @@
|
|||
<!ENTITY a.vendors "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.vendors.url;'>FreeBSD vendors pre-release coordination 郵遞論壇</link>">
|
||||
<!ENTITY a.vendors.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.vendors.url;'>freebsd-vendors</link>">
|
||||
|
||||
<!ENTITY a.virtualization.url "&a.mailman.listinfo;/freebsd-virtualization">
|
||||
<!ENTITY a.virtualization "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.virtualization.url;'>Discussion of various virtualization techniques supported by FreeBSD</link>">
|
||||
<!ENTITY a.virtualization.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.virtualization.url;'>freebsd-virtualization</link>">
|
||||
|
||||
<!ENTITY a.vuxml.url "&a.mailman.listinfo;/freebsd-vuxml">
|
||||
<!ENTITY a.vuxml "<unlink url='&a.vuxml.url;'>Discussion on the VuXML
|
||||
infrastructure</link>">
|
||||
<!ENTITY a.vuxml.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.vuxml.url;'>freebsd-vuxml</link>">
|
||||
|
||||
<!ENTITY a.wip-status.url "&a.mailman.listinfo;/freebsd-wip-status">
|
||||
<!ENTITY a.wip-status "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.wip-status.url;'>FreeBSD Work-In-Progress Status</link>">
|
||||
<!ENTITY a.wip-status.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.wip-status.url;'>freebsd-wip-status</link>">
|
||||
|
||||
<!ENTITY a.wireless.url "&a.mailman.listinfo;/freebsd-wireless">
|
||||
<!ENTITY a.wireless "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.wireless.url;'>Discussions of 802.11 stack, tools, device driver development</link>">
|
||||
<!ENTITY a.wireless.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.wireless.url;'>freebsd-wireless</link>">
|
||||
|
||||
<!ENTITY a.www.url "&a.mailman.listinfo;/freebsd-www">
|
||||
<!ENTITY a.www "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.www.url;'>FreeBSD Webmaster 郵遞論壇</link>">
|
||||
<!ENTITY a.www.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.www.url;'>freebsd-www</link>">
|
||||
|
@ -435,9 +608,38 @@ infrastructure</link>">
|
|||
<!ENTITY a.x11 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.x11.url;'>FreeBSD X11 郵遞論壇</link>">
|
||||
<!ENTITY a.x11.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.x11.url;'>freebsd-x11</link>">
|
||||
|
||||
<!ENTITY a.xen.url "&a.mailman.listinfo;/freebsd-xen">
|
||||
<!ENTITY a.xen "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.xen.url;'>FreeBSD port to Xen mailing list</link>">
|
||||
<!ENTITY a.xen.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.xen.url;'>freebsd-xen</link>">
|
||||
|
||||
<!ENTITY a.xfce.url "&a.mailman.listinfo;/freebsd-xfce">
|
||||
<!ENTITY a.xfce "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.xfce.url;'>XFCE for FreeBSD mailing list</link>">
|
||||
<!ENTITY a.xfce.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.xfce.url;'>freebsd-xfce</link>">
|
||||
|
||||
<!ENTITY a.zope.url "&a.mailman.listinfo;/freebsd-zope">
|
||||
<!ENTITY a.zope "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.zope.url;'>Zope for FreeBSD mailing list</link>">
|
||||
<!ENTITY a.zope.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.zope.url;'>freebsd-zope</link>">
|
||||
|
||||
<!-- Not really proper mailing lists -->
|
||||
|
||||
<!ENTITY a.bugfollowup "<email xmlns='http://docbook.org/ns/docbook'>bug-followup@FreeBSD.org</email>">
|
||||
<!ENTITY a.bugsubmit "&a.bugfollowup;">
|
||||
|
||||
<!ENTITY a.majordomo "<email xmlns='http://docbook.org/ns/docbook'>majordomo@FreeBSD.org</email>">
|
||||
|
||||
<!--
|
||||
The following mailinglists are deactivated. Keep them until all references
|
||||
in the documentation are gone.
|
||||
-->
|
||||
|
||||
<!ENTITY a.alpha.url "&a.mailman.listinfo;/freebsd-alpha">
|
||||
<!ENTITY a.alpha "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.alpha.url;'>FreeBSD Alpha porting mailing list</link>">
|
||||
<!ENTITY a.alpha.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.alpha.url;'>freebsd-alpha</link>">
|
||||
|
||||
<!ENTITY a.qa.url "&a.mailman.listinfo;/freebsd-qa">
|
||||
<!ENTITY a.qa "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.qa.url;'>FreeBSD Quality Assurance mailing list</link>">
|
||||
<!ENTITY a.qa.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.qa.url;'>freebsd-qa</link>">
|
||||
|
||||
<!ENTITY a.smp.url "&a.mailman.listinfo;/freebsd-smp">
|
||||
<!ENTITY a.smp "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.smp.url;'>FreeBSD symmetric multiprocessing mailing list</link>">
|
||||
<!ENTITY a.smp.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.smp.url;'>freebsd-smp</link>">
|
||||
|
|
Loading…
Reference in a new issue