- MFH
This commit is contained in:
commit
3ab2d87bc1
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/projects/xml-tools/; revision=41007
86 changed files with 9344 additions and 10665 deletions
bn_BD.ISO10646-1/articles
de_DE.ISO8859-1
en_US.ISO8859-1
articles
committers-guide
contributors
portbuild
books
arch-handbook
developers-handbook
faq
fdp-primer
handbook
book.xml
boot
config
cutting-edge
desktop
disks
filesystems
firewalls
geom
introduction
jails
kernelconfig
l10n
linuxemu
mac
mail
mirrors
printing
porters-handbook
htdocs
ja_JP.eucJP
books/handbook
htdocs
share/xml
nl_NL.ISO8859-1
articles/contributing
books/handbook
audit
disks
filesystems
firewalls
jails
linuxemu
mail
multimedia
network-servers
ppp-and-slip
security
virtualization
share
|
@ -1,3 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
|
||||
"../../../share/xml/freebsd45.dtd">
|
||||
<!--
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
|
||||
"../../../share/xml/freebsd45.dtd">
|
||||
<!--
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
|
||||
<!ENTITY dedate "$FreeBSDde: de-www/about.xml,v 1.13 2008/03/24 15:33:41 jkois Exp $">
|
||||
<!ENTITY reference "basiert auf: 1.13">
|
||||
<!ENTITY dedate "$FreeBSDde$">
|
||||
<!ENTITY reference "basiert auf: r40760">
|
||||
<!ENTITY title "Über FreeBSD">
|
||||
]>
|
||||
|
||||
|
@ -64,7 +64,7 @@
|
|||
|
||||
<h2>Viele Anwendungen</h2>
|
||||
|
||||
<p>Mit über 17.000 portierten Bibliotheken und <a
|
||||
<p>Mit über 24.000 portierten Bibliotheken und <a
|
||||
href="&base;/applications.html">Anwendungen</a> eignet sich
|
||||
FreeBSD hervorragend als Betriebssystem für Desktop-
|
||||
und Serversysteme sowie eingebettete Systeme.</p>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<!--
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r40659
|
||||
basiert auf: r40903
|
||||
-->
|
||||
|
||||
<!-- Simple schema for FreeBSD Project news.
|
||||
|
@ -42,12 +42,30 @@
|
|||
<name>1</name>
|
||||
|
||||
<day>
|
||||
<name>16</name>
|
||||
<name>23</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:achim@FreeBSD.org">Achim Leubner</a> (src)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>22</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:dru@FreeBSD.org">Dru Lavigne</a> (doc)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>16</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:carl@FreeBSD.org">Carl Delsey</a> (src)</p>
|
||||
</event>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
|
@ -127,6 +145,15 @@
|
|||
href="http://freebsdfoundation.blogspot.com/2013/01/faces-of-freebsd-thomas-abthorpe.html">hier.</a></p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>7</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:ian@FreeBSD.org">Ian Lepore</a> (src)</p>
|
||||
</event>
|
||||
</day>
|
||||
</month>
|
||||
</year>
|
||||
|
||||
|
@ -159,6 +186,15 @@
|
|||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>24</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:koobs@FreeBSD.org">Kubilay Kocak</a> (ports)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>20</name>
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"freefall:/c/www/bsddoc/press/".
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r40251
|
||||
basiert auf: r40864
|
||||
-->
|
||||
|
||||
<press>
|
||||
|
@ -15,6 +15,26 @@
|
|||
$FreeBSD$
|
||||
</cvs:keyword>
|
||||
|
||||
<year>
|
||||
<name>2013</name>
|
||||
|
||||
<month>
|
||||
<name>1</name>
|
||||
|
||||
<story>
|
||||
<name>A Decade of OS Access-control Extensibility</name>
|
||||
<url>https://queue.acm.org/detail.cfm?id=2430732</url>
|
||||
<site-name>ACM Queue</site-name>
|
||||
<site-url>https://queue.acm.org/</site-url>
|
||||
<date>18. Januar 2013</date>
|
||||
<author>Robert N. M. Watson</author>
|
||||
<p>Wer sich näher mit der Absicherung von Betriebssystemen
|
||||
beschäftigt, ist erstaunt über die zahlreichen in der
|
||||
Praxis eingesetzten Modelle zur Zugangskontrolle.</p>
|
||||
</story>
|
||||
</month>
|
||||
</year>
|
||||
|
||||
<year>
|
||||
<name>2012</name>
|
||||
|
||||
|
|
|
@ -4156,24 +4156,6 @@ bak/packages packages from last complete <major_version> run on <arch&
|
|||
there are at least some perks:</para>
|
||||
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term>Direct access to <hostid>cvsup-master</hostid></term>
|
||||
|
||||
<listitem>
|
||||
<para>As a committer, you may apply to &a.kuriyama; for direct access
|
||||
to <hostid role="fqdn">cvsup-master.FreeBSD.org</hostid>,
|
||||
providing the public key output from <command>cvpasswd
|
||||
<replaceable>yourusername</replaceable>@FreeBSD.org
|
||||
freefall.FreeBSD.org</command>. Please note: you must
|
||||
specify <hostid>freefall.FreeBSD.org</hostid> on the
|
||||
<command>cvpasswd</command> command line even though the
|
||||
actual server is <hostid>cvsup-master</hostid>. Access to
|
||||
<hostid>cvsup-master</hostid> should not be overused as it is
|
||||
a busy machine.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Free 4-CD and DVD Sets</term>
|
||||
|
||||
|
|
|
@ -2602,6 +2602,11 @@
|
|||
<email>dmitry@karasik.eu.org</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Dmitry Kazarov
|
||||
<email>d.y.kazarov@mail.ru</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Dmitry Khrustalev
|
||||
<email>dima@xyzzy.machaon.ru</email></para>
|
||||
|
@ -3366,7 +3371,7 @@
|
|||
|
||||
<listitem>
|
||||
<para>Gary Hayers
|
||||
<email>gary@hayers.net</email></para>
|
||||
<email>gary@hayers.org</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -6834,6 +6839,11 @@
|
|||
<email>mranner@inode.at</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Michael Sanders
|
||||
<email>mike@topcat.hypermart.net</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Michael Sardo
|
||||
<email>jaeger16@yahoo.com</email></para>
|
||||
|
@ -8379,11 +8389,6 @@
|
|||
<email>pius@ienet.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Po-Chien Lin
|
||||
<email>linpc@cs.nctu.edu.tw</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Pomegranate
|
||||
<email>daver@flag.blackened.net</email></para>
|
||||
|
@ -8791,6 +8796,11 @@
|
|||
<email>rsmith@xs4all.nl</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Dr. Rolf Jansen
|
||||
<email>cyclaero@gmail.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Roman Neuhauser
|
||||
<email>neuhauser@chello.cz</email></para>
|
||||
|
|
|
@ -523,6 +523,10 @@
|
|||
<para>&a.randi;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.smh;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ehaupt;</para>
|
||||
</listitem>
|
||||
|
@ -819,6 +823,10 @@
|
|||
<para>&a.ian;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.achim;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.truckman;</para>
|
||||
</listitem>
|
||||
|
@ -839,6 +847,10 @@
|
|||
<para>&a.avatar;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.pclin;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.yzlin;</para>
|
||||
</listitem>
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<title>The codebase</title>
|
||||
|
||||
<para>Most of the package building magic occurs under the
|
||||
<filename>/var/portbuild</filename> directory. Unless
|
||||
<filename>/a/portbuild</filename> directory. Unless
|
||||
otherwise specified, all paths will be relative to
|
||||
this location. <replaceable>${arch}</replaceable> will
|
||||
be used to specify one of the package architectures
|
||||
|
@ -74,15 +74,16 @@
|
|||
</para>
|
||||
|
||||
<note>
|
||||
<para>Packages are no longer built for branches 4, 5, or 6, nor
|
||||
<para>FreeBSD no longer builds packages for branches 4, 5, or 6, nor
|
||||
for the alpha architecture.</para>
|
||||
</note>
|
||||
|
||||
<para>The scripts that control all of this live in
|
||||
<filename role="directory">/var/portbuild/scripts/</filename>.
|
||||
<para>The scripts that control all of this live in either
|
||||
<filename role="directory">/a/portbuild/scripts/</filename> or.
|
||||
<filename role="directory">/a/portbuild/admin/scripts/</filename>.
|
||||
These are the checked-out copies from the Subversion repository at
|
||||
<ulink url="http://svnweb.freebsd.org/base/projects/portbuild/scripts/">
|
||||
<filename role="directory">base/projects/portbuild/scripts/</filename>
|
||||
<ulink url="http://svnweb.freebsd.org/base/projects/portbuild/">
|
||||
<filename role="directory">base/projects/portbuild/</filename>
|
||||
</ulink>.</para>
|
||||
|
||||
<para>Typically, incremental builds are done that use previous
|
||||
|
@ -109,7 +110,7 @@
|
|||
</sect2>
|
||||
|
||||
<sect2 id="codebase-notes">
|
||||
<title>Notes on the codebase</title>
|
||||
<title>Historical notes on the codebase</title>
|
||||
|
||||
<para>Until mid-2010, the scripts were completely specific to
|
||||
<hostid>pointyhat.FreeBSD.org</hostid> as the head (dispatch) node. During
|
||||
|
@ -145,18 +146,6 @@
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>This document was originally written before these changes
|
||||
were made. Where things such as script invocations have changed,
|
||||
they were denoted as <literal>new codebase:</literal> as opposed
|
||||
to <literal>old codebase:</literal>.</para>
|
||||
|
||||
<note>
|
||||
<para>Up until November 2012, <hostid>pointyhat</hostid> had still
|
||||
been running the old codebase. That installation has now been
|
||||
permanently offlined. Therefore, all the instructions having
|
||||
to do with the old codebase have been removed.</para>
|
||||
</note>
|
||||
|
||||
<note>
|
||||
<para>Also during this process, the codebase was migrated to the
|
||||
<ulink url="http://svnweb.freebsd.org/base/projects/portbuild/scripts/">
|
||||
|
@ -166,16 +155,61 @@
|
|||
found in CVS</ulink>.</para>
|
||||
</note>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="pointyhat-privsep">
|
||||
<title>Notes on privilege separation</title>
|
||||
|
||||
<para>As of January 2013, a rewrite is in progress to further separate
|
||||
privileges. The following concepts are introduced:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Server-side user <username>portbuild</username> assumes all
|
||||
responsiblity for operations involving builds and communicating
|
||||
with the clients. This user no longer has access to
|
||||
<application>sudo</application>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Server-side user <username>srcbuild</username> is created
|
||||
and given responsiblity for operations involving both VCS
|
||||
operations and anything involving src builds for the clients.
|
||||
This user does not have access to
|
||||
<application>sudo</application>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The server-side
|
||||
<literal>ports-</literal><replaceable>arch</replaceable>
|
||||
users go away.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>None of the above server-side users have
|
||||
<application>ssh</application> keys. Individual
|
||||
<literal>portmgr</literal> will accomplish all those
|
||||
tasks using <application>ksu</application>. (This is
|
||||
still work-in-progress.)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The only client-side user is also named
|
||||
<username>portbuild</username> and still has access to
|
||||
<application>sudo</application> for the purpose of managing
|
||||
jails.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="management">
|
||||
<title>Build Client Management</title>
|
||||
|
||||
<para>The &i386; clients co-located with <hostid>pointyhat</hostid>
|
||||
netboot from it (<replaceable>connected</replaceable> nodes); all
|
||||
other clients (<replaceable>disconnected</replaceable> nodes)
|
||||
are either self-hosted or netboot from some other
|
||||
<literal>pxe</literal> host.
|
||||
<para>You may set up clients to either netboot from the master
|
||||
(<replaceable>connected</replaceable> nodes)
|
||||
or have them either self-hosted or netboot from some other
|
||||
<literal>pxe</literal> host
|
||||
(<replaceable>disconnected</replaceable> nodes).
|
||||
In all cases they set themselves
|
||||
up at boot-time to prepare to build packages.</para>
|
||||
|
||||
|
@ -200,29 +234,31 @@
|
|||
<sect1 id="setup">
|
||||
<title>Jail Build Environment Setup</title>
|
||||
|
||||
<para>Package builds are performed in a
|
||||
<para>Package builds are performed by the clients in a
|
||||
<literal>jail</literal> populated by the
|
||||
<filename>portbuild</filename> script using the
|
||||
<filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/builds/<replaceable>${buildid}</replaceable>/bindist.tar</filename>
|
||||
file.</para>
|
||||
|
||||
<para>The <command>makeworld</command> command builds a world from the
|
||||
<para>On the server, use the
|
||||
<command>makeworld</command> command to build a world from the
|
||||
<filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/builds/<replaceable>${buildid}</replaceable>/src/</filename>
|
||||
tree and installs it into
|
||||
tree and install it into
|
||||
<filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/builds/<replaceable>${buildid}</replaceable>/bindist.tar</filename>.
|
||||
The tree will
|
||||
be updated first unless <literal>-novcs</literal> is
|
||||
specified. It should be run as <username>root</username>:</para>
|
||||
specified.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/var/portbuild/scripts/makeworld <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable> [-novcs]</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>/a/portbuild/admin/scripts/makeworld <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable> [-novcs]</userinput></screen>
|
||||
|
||||
<para>The <filename>bindist.tar</filename> tarball is created from the
|
||||
<para>Similiarly on the server, the
|
||||
<filename>bindist.tar</filename> tarball is created from the
|
||||
previously installed world by the <command>mkbindist</command>
|
||||
script. It should be also be run as <username>root</username>:</para>
|
||||
script.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/var/portbuild/scripts/mkbindist <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable></userinput></screen>
|
||||
<screen>&prompt.root; <userinput>/a/portbuild/admin/scripts/mkbindist <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable></userinput></screen>
|
||||
|
||||
<para>The per-machine tarballs are located in
|
||||
<para>The per-machine tarballs are located on the server in
|
||||
<filename><replaceable>${arch}</replaceable>/clients</filename>.</para>
|
||||
|
||||
<para>The <filename>bindist.tar</filename> file is extracted
|
||||
|
@ -233,6 +269,16 @@
|
|||
<para>For both commands above, if
|
||||
<replaceable>${buildid}</replaceable> is
|
||||
<literal>latest</literal>, it may be omitted.</para>
|
||||
|
||||
<note>
|
||||
<para>Currently the above two scripts must be run as
|
||||
<username>root</username>; otherwise, the install scripts
|
||||
lack sufficient permissions. This is undesirable for
|
||||
security reasons. Work is in progress in -HEAD to allow
|
||||
users to do installations; once that is committed, the
|
||||
intention is to use that and run these two commands as
|
||||
<username>srcbuild</username>.</para>
|
||||
</note>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="customizing">
|
||||
|
@ -782,7 +828,7 @@ PKG_BIN=/usr/local/sbin/pkg</programlisting>
|
|||
<para>To free up resources, you will need to clean up client machines by
|
||||
running <command>build cleanup</command> command. For example:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>/var/portbuild/scripts/build cleanup i386 8-exp 20080714120411 -full</userinput></screen>
|
||||
<screen>&prompt.user; <userinput>/a/portbuild/scripts/build cleanup i386 8-exp 20080714120411 -full</userinput></screen>
|
||||
|
||||
<para>If you forget to do this, then the old build
|
||||
<literal>jail</literal>s will not be cleaned up for 24 hours, and no
|
||||
|
@ -797,6 +843,11 @@ PKG_BIN=/usr/local/sbin/pkg</programlisting>
|
|||
and it is less than the number of jobs that <literal>loads</literal>
|
||||
thinks are in use, you are in trouble.</para>
|
||||
|
||||
<note>
|
||||
<para>The following notes about mounting only apply to
|
||||
<literal>connected</literal> nodes.</para>
|
||||
</note>
|
||||
|
||||
<para>You may have problem with the <command>umount</command>
|
||||
commands hanging. If so, you are going to have to use the
|
||||
<command>allgohans</command> script to run an &man.ssh.1;
|
||||
|
@ -826,6 +877,11 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
<para>You may also see messages about <literal>procfs</literal>.</para>
|
||||
</note>
|
||||
|
||||
<note>
|
||||
<para>The above is the end of the notes that apply only to
|
||||
<literal>connected</literal> nodes.</para>
|
||||
</note>
|
||||
|
||||
<para>After you have done all the above, remove the
|
||||
<filename><replaceable>${arch}</replaceable>/lock</filename>
|
||||
file before trying to restart the build. If you do not,
|
||||
|
@ -872,7 +928,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
<userinput>scripts/stats <replaceable>${branch}</replaceable></userinput>
|
||||
command shows the number of packages already built.</para>
|
||||
|
||||
<para>Running <userinput>cat /var/portbuild/*/loads/*</userinput>
|
||||
<para>Running <userinput>cat /a/portbuild/*/loads/*</userinput>
|
||||
shows the client loads and number of concurrent builds in
|
||||
progress. The files that have been recently updated are the clients
|
||||
that are online; the others are the offline clients.</para>
|
||||
|
@ -909,7 +965,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
it if not.</para>
|
||||
|
||||
<para>Keep an eye on &man.df.1; output. If the
|
||||
<filename>/var/portbuild</filename> file system becomes full
|
||||
<filename>/a/portbuild</filename> file system becomes full
|
||||
then <trademark>Bad Things</trademark> happen.</para>
|
||||
|
||||
<para>The status of all current builds is generated periodically
|
||||
|
@ -1014,12 +1070,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
<screen>&prompt.user; <userinput>cd <replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable></userinput>
|
||||
&prompt.user; <userinput>find distfiles > distfiles-<replaceable>${release}</replaceable></userinput></screen>
|
||||
|
||||
<!-- XXX MCL apparently obsolete -->
|
||||
<para>This inventory file typically lives in
|
||||
<filename>i386/<replaceable>${branch}</replaceable></filename>
|
||||
on the cluster master.</para>
|
||||
|
||||
<para>This is useful to aid in periodically cleaning out
|
||||
<para>You should use that output to periodically clean out
|
||||
the distfiles from <hostid>ftp-master</hostid>. When space
|
||||
gets tight, distfiles from recent releases can be kept while
|
||||
others can be thrown away.</para>
|
||||
|
@ -1043,6 +1094,16 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
<sect1 id="uploading">
|
||||
<title>Uploading Packages</title>
|
||||
|
||||
<note>
|
||||
<para>For FreeBSD.org as of 2013, the instructions
|
||||
about uploading to <hostid>ftp-master</hostid> are obsolete.
|
||||
In the future, <hostid>ftp-master</hostid> will pull
|
||||
from <hostid>pointyhat</hostid>, using a mechanism yet
|
||||
to be implemented. However, the instructions about
|
||||
<makevar>RESTRICTED</makevar> and <makevar>NO_CDROM</makevar>
|
||||
must still be <emphasis>carefully</emphasis> followed.</para>
|
||||
</note>
|
||||
|
||||
<para>Once a build has completed, packages and/or distfiles
|
||||
can be transferred to <hostid>ftp-master</hostid> for
|
||||
propagation to the FTP mirror network. If the build was
|
||||
|
@ -1120,7 +1181,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
a new release), copy packages to the staging area on
|
||||
<hostid>ftp-master</hostid> with something like the following:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /var/portbuild/<replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable></userinput>
|
||||
<screen>&prompt.root; <userinput>cd /a/portbuild/<replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable></userinput>
|
||||
&prompt.root; <userinput>tar cfv - packages/ | ssh portmgr@ftp-master tar xfC - w/ports/<replaceable>${arch}</replaceable>/tmp/<replaceable>${subdir}</replaceable></userinput></screen>
|
||||
|
||||
<para>Then log into <hostid>ftp-master</hostid>, verify that
|
||||
|
@ -1148,7 +1209,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
<para>Distfiles should be transferred with the
|
||||
<command>cpdistfiles</command> script:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/var/portbuild/scripts/cpdistfiles <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable> [-yesreally] | tee log2</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>/a/portbuild/scripts/cpdistfiles <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable> [-yesreally] | tee log2</userinput></screen>
|
||||
|
||||
<para>Doing it by hand is deprecated.</para>
|
||||
</sect1>
|
||||
|
@ -1156,6 +1217,11 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
<sect1 id="expbuilds">
|
||||
<title>Experimental Patches Builds</title>
|
||||
|
||||
<note>
|
||||
<para>Most of the information in this section is obsolete
|
||||
as of 2013 and needs to be rewritten.</para>
|
||||
</note>
|
||||
|
||||
<para>Experimental patches builds are run from time to time to
|
||||
new features or bugfixes to the ports infrastructure (i.e.
|
||||
<filename>bsd.port.mk</filename>), or to test large sweeping
|
||||
|
@ -1206,21 +1272,15 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
build. This will ensure an apples-to-apples comparison
|
||||
later.</para>
|
||||
|
||||
<!-- XXX MCL currently there is only one build cluster
|
||||
<note><para>One build cluster can do the control build while the other
|
||||
does the experimental patches build. This can be a great
|
||||
time-saver.</para></note>
|
||||
-->
|
||||
|
||||
<para>Once the build finishes, compare the control build failures
|
||||
to those of the experimental patches build. Use the following
|
||||
commands to facilitate this (this assumes the <literal>8</literal>
|
||||
branch is the control branch, and the <literal>8-exp</literal>
|
||||
branch is the experimental patches branch):</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/8-exp/errors</userinput>
|
||||
<screen>&prompt.user; <userinput>cd /a/portbuild/i386/8-exp/errors</userinput>
|
||||
&prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/8-exp-errs</userinput>
|
||||
&prompt.user; <userinput>cd /var/portbuild/i386/8/errors</userinput>
|
||||
&prompt.user; <userinput>cd /a/portbuild/i386/8/errors</userinput>
|
||||
&prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/8-errs</userinput></screen>
|
||||
|
||||
<note>
|
||||
|
@ -1283,7 +1343,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
rebuild of the affected packages under the control
|
||||
branch:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/8/ports</userinput></screen>
|
||||
<screen>&prompt.user; <userinput>cd /a/portbuild/i386/8/ports</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>The following example is obsolete</para>
|
||||
|
@ -1296,9 +1356,9 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
|
||||
<!-- XXX MCL fix -->
|
||||
<para>The following command will set up the control branch for
|
||||
the partial build (old codebase):</para>
|
||||
the partial build:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>/var/portbuild/scripts/dopackages.8 -noportsvcs -nobuild -novcs -nofinish</userinput></screen>
|
||||
<screen>&prompt.user; <userinput>/a/portbuild/scripts/dopackages.wrapper i386 8 -noportsvcs -nobuild -novcs -nofinish</userinput></screen>
|
||||
|
||||
<!-- XXX MCL obsolete -->
|
||||
<para>The builds must be performed from the
|
||||
|
@ -1306,14 +1366,14 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
initially be empty except for the Makefile symlink. If this
|
||||
symlink does not exist, it must be created:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/8/packages/All</userinput>
|
||||
<screen>&prompt.user; <userinput>cd /a/portbuild/i386/8/packages/All</userinput>
|
||||
&prompt.user; <userinput>ln -sf ../../Makefile .</userinput>
|
||||
&prompt.user; <userinput>make -k -j<#> <list of packages to build></userinput></screen>
|
||||
|
||||
<note>
|
||||
<para><#> is the concurrency of the build to
|
||||
attempt. It is usually the sum of the weights listed in
|
||||
<filename>/var/portbuild/i386/mlist</filename> unless you have a
|
||||
<filename>/a/portbuild/i386/mlist</filename> unless you have a
|
||||
reason to run a heavier or lighter build.</para>
|
||||
|
||||
<para>The list of packages to build should be a list of package
|
||||
|
@ -1346,17 +1406,15 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
<para>Before following these steps, please coordinate with
|
||||
<literal>portmgr</literal>.</para>
|
||||
|
||||
<note>
|
||||
<para>Due to some generous donations, <literal>portmgr</literal> is
|
||||
no longer looking for the loan of &i386; or <literal>amd64</literal>
|
||||
systems. However, we are still interested in borrowing tier-2
|
||||
systems.</para>
|
||||
</note>
|
||||
|
||||
<sect2 id="node-requirements">
|
||||
<title>Node requirements</title>
|
||||
|
||||
<para><literal>portmgr</literal> is still working on characterizing
|
||||
<note>
|
||||
<para>This section is only of interest when considering
|
||||
tier-2 architectures.</para>
|
||||
</note>
|
||||
|
||||
<para>Here are the requirement for
|
||||
what a node needs to be generally useful.</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -1436,7 +1494,8 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
<filename>/usr2/</filename>.)</para>
|
||||
<note>
|
||||
<para>The filename <filename>chroot</filename> is a
|
||||
historical remnant.</para>
|
||||
historical remnant. The <command>chroot</command>
|
||||
command is no longer used.</para>
|
||||
</note>
|
||||
</step>
|
||||
</procedure>
|
||||
|
@ -1477,8 +1536,9 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
|
|||
|
||||
<step>
|
||||
<para>Generate a kernel config file. Include
|
||||
<filename>GENERIC</filename> (or, if you are using more than
|
||||
3.5G on &i386;, <filename>PAE</filename>).</para>
|
||||
<filename>GENERIC</filename> (or, if on &i386;, and
|
||||
you are using more than
|
||||
3.5G, <filename>PAE</filename>).</para>
|
||||
|
||||
<para>Required options:</para>
|
||||
|
||||
|
@ -1493,9 +1553,14 @@ options SHMMAXPGS=65536
|
|||
options SEMMNI=40
|
||||
options SEMMNS=240
|
||||
options SEMUME=40
|
||||
options SEMMNU=120
|
||||
options SEMMNU=120</programlisting>
|
||||
|
||||
options ALT_BREAK_TO_DEBUGGER</programlisting>
|
||||
<para>If you are interested in debugging general
|
||||
problems, you may wish to use the following.
|
||||
However, for unattended operations, it is best
|
||||
to leave it out:</para>
|
||||
|
||||
<programlisting>options ALT_BREAK_TO_DEBUGGER</programlisting>
|
||||
|
||||
<para>For <filename>PAE</filename>, it is not currently possible
|
||||
to load modules. Therefore, if you are running an architecture
|
||||
|
@ -1912,7 +1977,7 @@ portbuild ALL=(ALL) NOPASSWD: ALL</programlisting>
|
|||
|
||||
<step>
|
||||
<para>Create
|
||||
<filename>/var/portbuild/<replaceable>${arch}</replaceable>/clients/bindist-<replaceable>${hostname}</replaceable>.tar</filename>.</para>
|
||||
<filename>/a/portbuild/<replaceable>${arch}</replaceable>/clients/bindist-<replaceable>${hostname}</replaceable>.tar</filename>.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
@ -1951,16 +2016,16 @@ MASTER_SITE_OVERRIDE= \
|
|||
<para>Hint: you will need one of these for each machine;
|
||||
however, if you have multiple machines at one site, you
|
||||
should create a site-specific one (e.g., in
|
||||
<filename>/var/portbuild/conf/clients/</filename>)
|
||||
<filename>/a/portbuild/conf/clients/</filename>)
|
||||
and symlink to it.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Create
|
||||
<filename>/var/portbuild/<replaceable>${arch}</replaceable>/portbuild-<replaceable>${hostname}</replaceable></filename>
|
||||
<filename>/a/portbuild/<replaceable>${arch}</replaceable>/portbuild-<replaceable>${hostname}</replaceable></filename>
|
||||
using one of the existing ones as a guide. This
|
||||
file contains overrides to
|
||||
<filename>/var/portbuild/<replaceable>${arch}</replaceable>/portbuild.conf</filename>.</para>
|
||||
<filename>/a/portbuild/<replaceable>${arch}</replaceable>/portbuild.conf</filename>.</para>
|
||||
|
||||
<para>Suggested values:</para>
|
||||
|
||||
|
@ -2026,7 +2091,7 @@ ssh_cmd="/usr/local/bin/ssh"</programlisting>
|
|||
<step>
|
||||
<para>Populate the client's copy of
|
||||
<filename>/var/portbuild/scripts/</filename> by something like
|
||||
<userinput>/var/portbuild/scripts/dosetupnode <replaceable>arch</replaceable> <replaceable>major</replaceable> latest <replaceable>hostname</replaceable></userinput>.
|
||||
<userinput>/a/portbuild/scripts/dosetupnode <replaceable>arch</replaceable> <replaceable>major</replaceable> latest <replaceable>hostname</replaceable></userinput>.
|
||||
Verify that you now have files in that directory.</para>
|
||||
</step>
|
||||
|
||||
|
@ -2071,7 +2136,7 @@ ssh_cmd="/usr/local/bin/ssh"</programlisting>
|
|||
<para>Once you are sure that the client is working, tell
|
||||
<application>pollmachine</application> about it by adding
|
||||
it to
|
||||
<filename>/var/portbuild/<replaceable>${arch}</replaceable>/mlist</filename>.</para>
|
||||
<filename>/a/portbuild/<replaceable>${arch}</replaceable>/mlist</filename>.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
|
@ -2087,10 +2152,15 @@ ssh_cmd="/usr/local/bin/ssh"</programlisting>
|
|||
be done to specify that the previous branch is no longer
|
||||
equivalent to <literal>HEAD</literal>.</para>
|
||||
|
||||
<note>
|
||||
<para>As
|
||||
<literal>srcbuild</literal>:</para>
|
||||
</note>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Edit <filename>/var/portbuild/conf/server.conf</filename>
|
||||
Edit <filename>/a/portbuild/conf/admin/admin.conf</filename>
|
||||
with the following changes:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -2115,7 +2185,7 @@ ssh_cmd="/usr/local/bin/ssh"</programlisting>
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Run <command>/var/portbuild/updatesnap</command> manually.</para>
|
||||
<para>Run <command>/a/portbuild/admin/scripts/updatesnap</command> manually.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
@ -2123,24 +2193,21 @@ ssh_cmd="/usr/local/bin/ssh"</programlisting>
|
|||
<sect2 id="new-branch-post-qmanager">
|
||||
<title>Steps necessary after <application>qmanager</application> is started</title>
|
||||
|
||||
<note>
|
||||
<para>Again, as
|
||||
<literal>portbuild</literal>:</para>
|
||||
</note>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>For each branch that will be supported, do the following:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Kick-start the build for the branch with:</para>
|
||||
<para>As <literal>portbuild</literal>,
|
||||
kick-start the build for the branch with:</para>
|
||||
|
||||
<screen>build create <replaceable>arch</replaceable> <replaceable>branch</replaceable></screen>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><link linkend="setup">Create
|
||||
<para>As <literal>srcbuild</literal>,
|
||||
<link linkend="setup">create
|
||||
<filename>bindist.tar</filename></link>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
@ -2157,7 +2224,7 @@ ssh_cmd="/usr/local/bin/ssh"</programlisting>
|
|||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Edit <filename>/var/portbuild/conf/server.conf</filename>
|
||||
<para>Edit <filename>/a/portbuild/admin/conf/admin.conf</filename>
|
||||
with the following changes:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -2184,7 +2251,7 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>You will probably find that the following files and
|
||||
symlinks in <filename>/var/portbuild/errorlogs/</filename>
|
||||
symlinks in <filename>/a/portbuild/errorlogs/</filename>
|
||||
can be removed:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -2229,7 +2296,7 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Edit <filename>/var/portbuild/conf/server.conf</filename>
|
||||
<para>Edit <filename>/a/portbuild/admin/conf/admin.conf</filename>
|
||||
with the following changes:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -2244,7 +2311,7 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Run <command>/var/portbuild/updatesnap</command> manually.</para>
|
||||
<para>Run <command>/a/portbuild/admin/scripts/updatesnap</command> manually.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -2267,50 +2334,25 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
<sect2 id="new-arch-pre-qmanager">
|
||||
<title>Steps necessary before <application>qmanager</application> is started</title>
|
||||
|
||||
<note>
|
||||
<para>The initial steps need to be done as
|
||||
<literal>root</literal>.</para>
|
||||
</note>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>If it has not already been done, create the
|
||||
<literal>portbuild</literal>
|
||||
user and group.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<screen>mkdir /var/portbuild/<replaceable>arch</replaceable></screen>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Create a new <application>zfs</application> filesystem:</para>
|
||||
|
||||
<screen>&prompt.root; zfs create -o mountpoint=/a/portbuild/<replaceable>arch</replaceable> a/portbuild/<replaceable>arch</replaceable></screen>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<screen>&prompt.root; chown portbuild:portbuild /var/portbuild/<replaceable>arch</replaceable>;
|
||||
&prompt.root; chmod 775 /var/portbuild/<replaceable>arch</replaceable>;
|
||||
&prompt.root; cd /var/portbuild/<replaceable>arch</replaceable></screen>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Create the <filename>.ssh</filename> directory.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<note>
|
||||
<para>The next steps are most easily done as user
|
||||
<literal>portbuild</literal>.</para>
|
||||
</note>
|
||||
|
||||
<note>
|
||||
<para>The following assumes you have already run
|
||||
<literal>mkportbuild</literal>.</para>
|
||||
</note>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Create an archive directory for buildlogs and errorlogs
|
||||
under <filename>archive/</filename>.</para>
|
||||
</listitem>
|
||||
<para>As the <literal>portbuild</literal> user, run</para>
|
||||
|
||||
<screen>&prompt.user; /a/portbuild/admin/tools/addarch <replaceable>arch</replaceable></screen>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>For each branch that will be supported, do the following:</para>
|
||||
|
||||
|
@ -2354,8 +2396,10 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Create a fresh <filename>portbuild.conf</filename> file
|
||||
from one of the ones for another architecture.</para>
|
||||
<para>Edit <filename>portbuild.conf</filename>
|
||||
from one of the ones for another architecture.
|
||||
<literal>addarch</literal> will have created a default
|
||||
one for you.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -2364,16 +2408,6 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
files as appropriate.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<screen>&prompt.root; cd .ssh && ssh-keygen</screen>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>If desired,
|
||||
edit the <filename>.ssh/config</filename> file for
|
||||
convenience in using <application>ssh</application>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>If you need to create any tunnels:</para>
|
||||
|
||||
|
@ -2381,7 +2415,7 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
<step>
|
||||
<para>Make a private configuration directory:</para>
|
||||
|
||||
<screen>&prompt.root; mkdir /var/portbuild/conf/<replaceable>arch</replaceable></screen>
|
||||
<screen>&prompt.root; mkdir /a/portbuild/conf/<replaceable>arch</replaceable></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
@ -2393,26 +2427,26 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
</itemizedlist>
|
||||
|
||||
<note>
|
||||
<para>Once again as <literal>root</literal>:</para>
|
||||
<para>As <literal>srcbuild</literal>:</para>
|
||||
</note>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Add <replaceable>arch</replaceable> to <makevar>SUPPORTED_ARCHS</makevar> in
|
||||
<filename>/var/portbuild/conf/server.conf</filename>.</para>
|
||||
<filename>/a/portbuild/admin/conf/admin.conf</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Add the <replaceable>arch</replaceable> directory to
|
||||
<filename>/var/portbuild/scripts/zbackup</filename> and
|
||||
<filename>/var/portbuild/scripts/zexpire</filename>.</para>
|
||||
<filename>/a/portbuild/admin/scripts/zbackup</filename>.
|
||||
(This is a hack and should go away.)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Add an appropriate <replaceable>arch</replaceable> entry for
|
||||
<filename>/var/portbuild/scripts/dologs</filename> to the portbuild
|
||||
<para>Enable the appropriate <replaceable>arch</replaceable> entry for
|
||||
<filename>/a/portbuild/scripts/dologs</filename> to the portbuild
|
||||
<filename>crontab</filename>. (This is a hack and should go away.)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
@ -2422,16 +2456,10 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
<title>Steps necessary after <application>qmanager</application> is started</title>
|
||||
|
||||
<note>
|
||||
<para>Again as <literal>root</literal>:</para>
|
||||
<para>Again as <literal>srcbuild</literal>:</para>
|
||||
</note>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Tell <application>qmanager</application> about the arch:</para>
|
||||
|
||||
<screen>python <replaceable>path</replaceable>/qmanager/qclient add_acl name=ports-<replaceable>arch</replaceable> uidlist=ports-<replaceable>arch</replaceable> gidlist=portbuild sense=1</screen>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>For each branch that will be supported, do the following:</para>
|
||||
|
||||
|
@ -2452,54 +2480,6 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
<para>Please talk to Mark Linimon before making any changes
|
||||
to this section.</para>
|
||||
|
||||
<sect2 id="pointyhat-privsep">
|
||||
<title>Notes on privilege separation</title>
|
||||
|
||||
<para>As of January 2013, a rewrite is in progress to further separate
|
||||
privileges. The following concepts are introduced:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Server-side user <username>portbuild</username> assumes all
|
||||
responsiblity for operations involving builds and communicating
|
||||
with the clients. This user no longer has access to
|
||||
<application>sudo</application>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Server-side user <username>srcbuild</username> is created
|
||||
and given responsiblity for operations involving both VCS
|
||||
operations and anything involving src builds for the clients.
|
||||
This user does not have access to
|
||||
<application>sudo</application>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The server-side
|
||||
<literal>ports-</literal><replaceable>arch</replaceable>
|
||||
users go away.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>None of the above server-side users have
|
||||
<application>ssh</application> keys. Individual
|
||||
<literal>portmgr</literal> will accomplish all those
|
||||
tasks using <application>ksu</application>. (This is
|
||||
still work-in-progress.)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The only client-side user is also named
|
||||
<username>portbuild</username> and still has access to
|
||||
<application>sudo</application> for the purpose of managing
|
||||
jails.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>This document has not yet been updated with the latest changes.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="pointyhat-basics">
|
||||
<title>Basic installation</title>
|
||||
|
||||
|
@ -2515,23 +2495,12 @@ zfs destroy -r a/snap/src-<replaceable>old-branch</replaceable></screen>
|
|||
</step>
|
||||
|
||||
<step>
|
||||
<para>Export that value for a later initialization step:</para>
|
||||
|
||||
<screen>&prompt.root; export PORTBUILD_USER=<replaceable>portbuild</replaceable></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Similarly, create a user to own the <application>svn</application>
|
||||
repository, such as <literal>srcbuild</literal>. It should have the
|
||||
<para>Similarly, create a user to own the administration functions
|
||||
and manage the <application>svn</application>
|
||||
repositories, such as <literal>srcbuild</literal>. It should have the
|
||||
<literal>'*'</literal> password.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Export that value for a later initialization step:</para>
|
||||
|
||||
<screen>&prompt.root; export SRCBUILD_USER=<replaceable>srcbuild</replaceable></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Add the following to <filename>/boot/loader.conf</filename>:</para>
|
||||
|
||||
|
@ -2676,7 +2645,56 @@ sysutils/zfs-stats</programlisting>
|
|||
|
||||
<para>The following steps need to be done as euid root.</para>
|
||||
|
||||
<para>Here is a quick example:</para>
|
||||
|
||||
<example>
|
||||
<title>The contents of example file <filename>portbuild/tools/example_install</filename></title>
|
||||
|
||||
<screen>
|
||||
#!/bin/sh
|
||||
#
|
||||
# example script to drive the "mkportbuild" kickstart file
|
||||
#
|
||||
export PORTBUILD_USER=portbuild
|
||||
export SRCBUILD_USER=srcbuild
|
||||
export ZFS_VOLUME=a
|
||||
export ZFS_MOUNTPOINT=/a
|
||||
export VCS_REPOSITORY=svn://svn0.us-east.FreeBSD.org
|
||||
|
||||
#
|
||||
# create the zpool. the examples here are just suggestions and need to be
|
||||
# customized for your site.
|
||||
#
|
||||
# simple examples:
|
||||
# zpool create ${ZFS_VOLUME} da1
|
||||
# zpool create ${ZFS_VOLUME} gprootfs
|
||||
# more complex example:
|
||||
# zpool create ${ZFS_VOLUME} mirror da1 da2 mirror da3 da4 mirror da5 da6 mirror da7 da8
|
||||
|
||||
#
|
||||
# check out the kickstart file and run it
|
||||
#
|
||||
mkdir -p tmp
|
||||
svn checkout ${VCS_REPOSITORY}/base/projects/portbuild/admin/tools tmp
|
||||
sh -x ./tmp/mkportbuild
|
||||
</screen>
|
||||
</example>
|
||||
|
||||
<para>Here is a detailed explanation of the example:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Export the value of <makevar>PORTBUILD_USER</makevar>:</para>
|
||||
|
||||
<screen>&prompt.root; export PORTBUILD_USER=<replaceable>portbuild</replaceable></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Export the value of <makevar>SRCBUILD_USER</makevar>:</para>
|
||||
|
||||
<screen>&prompt.root; export SRCBUILD_USER=<replaceable>srcbuild</replaceable></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Pick a <application>zfs</application> volume name and export
|
||||
it. We have used <replaceable>a</replaceable> so far to date.</para>
|
||||
|
@ -2702,9 +2720,11 @@ sysutils/zfs-stats</programlisting>
|
|||
</example>
|
||||
|
||||
<note>
|
||||
<para>We will define a <application>zfs</application>
|
||||
<literal>permission set</literal> below, so that the
|
||||
<replaceable>portbuild</replaceable> user may administer this
|
||||
<para>The kickstart script defines <application>zfs</application>
|
||||
<literal>permission sets</literal>, so that the
|
||||
<replaceable>srcbuild</replaceable> user and
|
||||
<replaceable>portbuild</replaceable> user may administer
|
||||
subdirectories of this
|
||||
volume without having to have root privileges.</para>
|
||||
</note>
|
||||
</step>
|
||||
|
@ -2732,41 +2752,26 @@ sysutils/zfs-stats</programlisting>
|
|||
|
||||
<screen>&prompt.root; sh /home/<replaceable>portbuild</replaceable>/<replaceable>tmp</replaceable>/mkportbuild</screen>
|
||||
|
||||
<para>This will accomplish all the following 5 steps:</para>
|
||||
<para>This will accomplish all the following steps:</para>
|
||||
|
||||
<procedure>
|
||||
|
||||
<!-- begin of whitespace-broken area -->
|
||||
<step>
|
||||
<para>Create the <filename>portbuild</filename> directory:</para>
|
||||
|
||||
<screen>&prompt.root; mkdir -p ${ZFS_MOUNTPOINT}/portbuild</screen>
|
||||
<para>Create the <filename>portbuild</filename> directory</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Create and mount a new <application>zfs</application>
|
||||
filesystem on it:</para>
|
||||
|
||||
<screen>zfs create -o mountpoint=${ZFS_MOUNTPOINT}/portbuild ${ZFS_VOLUME}/portbuild</screen>
|
||||
filesystem on it</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Set up the directory:</para>
|
||||
|
||||
<screen>&prompt.root; chown ${PORTBUILD_USER}:${PORTBUILD_USER} ${ZFS_MOUNTPOINT}/portbuild
|
||||
&prompt.root; chmod 775 ${ZFS_MOUNTPOINT}/portbuild
|
||||
&prompt.root; ln -sf ${ZFS_MOUNTPOINT}/portbuild /var/portbuild</screen>
|
||||
|
||||
<note>
|
||||
<para>The <command>ln</command> is necessary due to a number
|
||||
of hardcoded paths. This is a bug.</para>
|
||||
</note>
|
||||
<para>Set up the directory</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Set up the initial repository:</para>
|
||||
|
||||
<screen>&prompt.user; svn checkout ${VCS_REPOSITORY}/base/projects/portbuild ${ZFS_MOUNTPOINT}/portbuild</screen>
|
||||
</step>
|
||||
<!-- end of whitespace-broken area -->
|
||||
|
||||
|
@ -2774,14 +2779,69 @@ sysutils/zfs-stats</programlisting>
|
|||
<para>Set up the <application>zfs</application>
|
||||
<literal>permission sets</literal>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Split ownerships of subdirectories such that
|
||||
<replaceable>PORTBUILD_USER</replaceable> owns, and
|
||||
only owns, files that are used to manage builds and
|
||||
interact with slaves. The more trustable user
|
||||
<replaceable>SRCBUILD_USER</replaceable> now owns
|
||||
everything else.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="portbuild-repo-configuration">
|
||||
<title>Configuring the <application>portbuild</application> files</title>
|
||||
<sect2 id="srcbuild-user-configuration">
|
||||
<title>Configuring the <application>srcbuild</application>-owned files</title>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Configure the server by making the following changes to
|
||||
<filename>/<replaceable>a</replaceable>/portbuild/admin/conf/admin.conf</filename>:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Set <makevar>SUPPORTED_ARCHS</makevar> to the
|
||||
list of architectures you wish to build packages for.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>For each source branch you will be building for, set
|
||||
<makevar>SRC_BRANCHES</makevar> and
|
||||
<makevar>SRC_BRANCH_<replaceable>branch</replaceable>_SUBDIR</makevar>
|
||||
as detailed in <xref linkend="new-branch-pre-qmanager"/>.
|
||||
You should not need to change
|
||||
<makevar>SRC_BRANCHES_PATTERN</makevar>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Set <makevar>ZFS_VOLUME</makevar> and
|
||||
<makevar>ZFS_MOUNTPOINT</makevar> to whatever you
|
||||
chose above.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Set <makevar>VCS_REPOSITORY</makevar> to whatever
|
||||
you chose above.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Set <makevar>MASTER_URL</makevar> to the http
|
||||
URL of your server. This will be stamped into the
|
||||
package build logs and the indices thereof.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Most of the other default values should be fine.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="portbuild-user-configuration">
|
||||
<title>Configuring the <application>portbuild</application>-owned files</title>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
|
@ -2823,11 +2883,7 @@ sysutils/zfs-stats</programlisting>
|
|||
<filename>/<replaceable>a</replaceable>/portbuild/conf/server.conf</filename>:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Set <makevar>SUPPORTED_ARCHS</makevar> to the
|
||||
list of architectures you wish to build packages for.</para>
|
||||
</listitem>
|
||||
|
||||
<!--
|
||||
<listitem>
|
||||
<para>For each source branch you will be building for, set
|
||||
<makevar>SRC_BRANCHES</makevar> and
|
||||
|
@ -2842,6 +2898,7 @@ sysutils/zfs-stats</programlisting>
|
|||
<makevar>ZFS_MOUNTPOINT</makevar> to whatever you
|
||||
chose above.</para>
|
||||
</listitem>
|
||||
-->
|
||||
|
||||
<listitem>
|
||||
<para>Set <makevar>UPLOAD_DIRECTORY</makevar>,
|
||||
|
@ -2850,6 +2907,7 @@ sysutils/zfs-stats</programlisting>
|
|||
for your site.</para>
|
||||
</listitem>
|
||||
|
||||
<!--
|
||||
<listitem>
|
||||
<para>Set <makevar>VCS_REPOSITORY</makevar> to whatever
|
||||
you chose above.</para>
|
||||
|
@ -2860,6 +2918,7 @@ sysutils/zfs-stats</programlisting>
|
|||
URL of your server. This will be stamped into the
|
||||
package build logs and the indices thereof.</para>
|
||||
</listitem>
|
||||
-->
|
||||
</itemizedlist>
|
||||
|
||||
<para>Most of the other default values should be fine.</para>
|
||||
|
@ -2883,7 +2942,7 @@ sysutils/zfs-stats</programlisting>
|
|||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Copy the following files from
|
||||
<para>As <literal>root</literal>, copy the following files from
|
||||
<filename>/a/portbuild/admin/etc/rc.d/</filename> to
|
||||
<filename>/usr/local/etc/rc.d/</filename>:</para>
|
||||
|
||||
|
@ -3020,7 +3079,7 @@ qmanager</programlisting>
|
|||
<listitem>
|
||||
<para>Note the time and failure mode (e.g., paste in the
|
||||
relevant console output) in
|
||||
<filename>/var/portbuild/<replaceable>${arch}</replaceable>/reboots</filename></para>
|
||||
<filename>/a/portbuild/<replaceable>${arch}</replaceable>/reboots</filename></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
<year>2004</year>
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2012</year>
|
||||
<year>2013</year>
|
||||
<holder>The FreeBSD Documentation Project</holder>
|
||||
</copyright>
|
||||
|
||||
|
|
|
@ -184,7 +184,7 @@ Timecounter "i8254" frequency 1193182 Hz</screen></para></entry>
|
|||
time.</para>
|
||||
|
||||
<para>As mentioned previously, the <literal>INT 0x19</literal>
|
||||
instruction loads an MBR, i.e. the <filename>boot0</filename>
|
||||
instruction loads an MBR, i.e., the <filename>boot0</filename>
|
||||
content, into the memory at address 0x7c00. Taking a look at
|
||||
the file <filename>sys/boot/i386/boot0/boot0.S</filename> can
|
||||
give a guess at what is happening there - this is the boot
|
||||
|
@ -317,7 +317,7 @@ boot2: boot2.ldr boot2.bin ${BTX}/btx/btx
|
|||
link the binary. BTX, which stands for BooT eXtender, is a
|
||||
piece of code that provides a protected mode environment for the
|
||||
program, called the client, that it is linked with. So
|
||||
<literal>boot2</literal> is a BTX client, i.e. it uses the
|
||||
<literal>boot2</literal> is a BTX client, i.e., it uses the
|
||||
service provided by BTX.</para>
|
||||
|
||||
<indexterm><primary>linker</primary></indexterm>
|
||||
|
@ -707,7 +707,7 @@ begin:</programlisting>
|
|||
at a 4Gb boundary. Therefore, the instruction's linear
|
||||
virtual address for this example would just be the value of
|
||||
EIP. Segment registers such as CS, DS etc are the selectors,
|
||||
i.e. indexes, into GDT (to be more precise, an index is not a
|
||||
i.e., indexes, into GDT (to be more precise, an index is not a
|
||||
selector itself, but the INDEX field of a selector). FreeBSD's
|
||||
GDT holds descriptors for 15 selectors per CPU:</para>
|
||||
|
||||
|
@ -918,7 +918,7 @@ __asm(".previous");</programlisting>
|
|||
<literal>__asm</literal> is. The third
|
||||
<literal>__asm</literal> instruction marks the end of a
|
||||
section. If a directive with the same section name occurred
|
||||
before, the content, i.e. the 32-bit value, will be appended
|
||||
before, the content, i.e., the 32-bit value, will be appended
|
||||
to the existing section, so forming an array of 32-bit
|
||||
pointers.</para>
|
||||
|
||||
|
|
|
@ -9,16 +9,16 @@
|
|||
<chapterinfo>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Murray</firstname>
|
||||
<surname>Stokely</surname>
|
||||
<contrib>Written by </contrib>
|
||||
<firstname>Murray</firstname>
|
||||
<surname>Stokely</surname>
|
||||
<contrib>Written by </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Jörg</firstname>
|
||||
<surname>Wunsch</surname>
|
||||
<contrib>Based on intro(4) manual page by </contrib>
|
||||
<firstname>Jörg</firstname>
|
||||
<surname>Wunsch</surname>
|
||||
<contrib>Based on intro(4) manual page by </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</chapterinfo>
|
||||
|
@ -43,7 +43,6 @@
|
|||
linker facility `kld'.</para>
|
||||
|
||||
<indexterm><primary>device nodes</primary></indexterm>
|
||||
<indexterm><primary>MAKEDEV</primary></indexterm>
|
||||
|
||||
<para>Most devices in a &unix;-like operating system are accessed
|
||||
through device-nodes, sometimes also called special files.
|
||||
|
@ -67,26 +66,30 @@
|
|||
a running kernel without constantly rebooting to test
|
||||
changes.</para>
|
||||
|
||||
<para>The kld interface is used through the following
|
||||
privileged commands:
|
||||
|
||||
<indexterm><primary>kernel
|
||||
modules</primary><secondary>loading</secondary></indexterm>
|
||||
<indexterm>
|
||||
<primary>kernel modules</primary>
|
||||
<secondary>loading</secondary>
|
||||
</indexterm>
|
||||
<indexterm><primary>kernel modules</primary><secondary>unloading</secondary></indexterm>
|
||||
<indexterm><primary>kernel modules</primary><secondary>listing</secondary></indexterm>
|
||||
|
||||
<para>The kld interface is used through:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><simpara><command>kldload</command> - loads a new kernel
|
||||
module</simpara></listitem>
|
||||
<listitem><simpara><command>kldunload</command> - unloads a kernel
|
||||
module</simpara></listitem>
|
||||
<listitem><simpara><command>kldstat</command> - lists the currently loaded
|
||||
modules</simpara></listitem>
|
||||
<listitem>
|
||||
<simpara><command>kldload</command> - loads a new kernel
|
||||
module</simpara></listitem>
|
||||
<listitem>
|
||||
<simpara><command>kldunload</command> - unloads a kernel
|
||||
module</simpara></listitem>
|
||||
<listitem>
|
||||
<simpara><command>kldstat</command> - lists loaded
|
||||
modules</simpara></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>Skeleton Layout of a kernel module</para>
|
||||
|
||||
<programlisting>/*
|
||||
<programlisting>/*
|
||||
* KLD Skeleton
|
||||
* Inspired by Andrew Reiter's Daemonnews article
|
||||
*/
|
||||
|
@ -135,62 +138,22 @@ DECLARE_MODULE(skeleton, skel_mod, SI_SUB_KLD, SI_ORDER_ANY);</programlisting>
|
|||
<sect2>
|
||||
<title>Makefile</title>
|
||||
|
||||
<para>FreeBSD provides a makefile include that you can use to
|
||||
quickly compile your kernel addition.</para>
|
||||
<para>&os; provides a system makefile to simplify compiling a
|
||||
kernel module.</para>
|
||||
|
||||
<programlisting>SRCS=skeleton.c
|
||||
KMOD=skeleton
|
||||
|
||||
.include <bsd.kmod.mk></programlisting>
|
||||
|
||||
<para>Simply running <command>make</command> with this makefile
|
||||
will create a file <filename>skeleton.ko</filename> that can
|
||||
be loaded into your system by typing:
|
||||
<screen>&prompt.root; <userinput>kldload -v ./skeleton.ko</userinput></screen>
|
||||
</para>
|
||||
<para>Running <command>make</command> with this makefile
|
||||
will create a file <filename>skeleton.ko</filename> that can
|
||||
be loaded into the kernel by typing:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload -v ./skeleton.ko</userinput></screen>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="driverbasics-access">
|
||||
<title>Accessing a device driver</title>
|
||||
|
||||
<para>&unix; provides a common set of system calls for user
|
||||
applications to use. The upper layers of the kernel dispatch
|
||||
these calls to the corresponding device driver when a user
|
||||
accesses a device node. The <command>/dev/MAKEDEV</command>
|
||||
script makes most of the device nodes for your system but if you
|
||||
are doing your own driver development it may be necessary to
|
||||
create your own device nodes with <command>mknod</command>.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Creating static device nodes</title>
|
||||
|
||||
<indexterm><primary>device nodes</primary><secondary>static</secondary></indexterm>
|
||||
<indexterm><primary>mknod</primary></indexterm>
|
||||
|
||||
<para>The <command>mknod</command> command requires four
|
||||
arguments to create a device node. You must specify the name
|
||||
of the device node, the type of device, the major number of
|
||||
the device, and the minor number of the device.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Dynamic device nodes</title>
|
||||
|
||||
<indexterm><primary>device nodes</primary><secondary>dynamic</secondary></indexterm>
|
||||
<indexterm><primary>devfs</primary></indexterm>
|
||||
|
||||
<para>The device filesystem, or devfs, provides access to the
|
||||
kernel's device namespace in the global filesystem namespace.
|
||||
This eliminates the problems of potentially having a device
|
||||
driver without a static device node, or a device node without
|
||||
an installed device driver. Devfs is still a work in
|
||||
progress, but it is already working quite nicely.</para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 id="driverbasics-char">
|
||||
<title>Character Devices</title>
|
||||
|
||||
|
@ -201,8 +164,8 @@ KMOD=skeleton
|
|||
the source tree.</para>
|
||||
|
||||
<para>This simple example pseudo-device remembers whatever values
|
||||
you write to it and can then supply them back to you when you
|
||||
read from it.</para>
|
||||
are written to it and can then echo them back when
|
||||
read.</para>
|
||||
|
||||
<example>
|
||||
<title>Example of a Sample Echo Pseudo-Device Driver for
|
||||
|
@ -382,8 +345,7 @@ echo_write(struct cdev *dev __unused, struct uio *uio, int ioflag __unused)
|
|||
DEV_MODULE(echo,echo_loader,NULL);</programlisting>
|
||||
</example>
|
||||
|
||||
<para>With this driver loaded you should now be able to type
|
||||
something like:</para>
|
||||
<para>With this driver loaded try:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>echo -n "Test Data" > /dev/echo</userinput>
|
||||
&prompt.root; <userinput>cat /dev/echo</userinput>
|
||||
|
@ -398,6 +360,7 @@ Closing device "echo".</screen>
|
|||
<title>Block Devices (Are Gone)</title>
|
||||
|
||||
<indexterm><primary>block devices</primary></indexterm>
|
||||
|
||||
<para>Other &unix; systems may support a second type of disk
|
||||
device known as block devices. Block devices are disk devices
|
||||
for which the kernel provides caching. This caching makes
|
||||
|
@ -418,8 +381,7 @@ Closing device "echo".</screen>
|
|||
(partition) to two devices with different semantics significantly
|
||||
complicated the relevant kernel code &os; dropped support for
|
||||
cached disk devices as part of the modernization of the disk I/O
|
||||
infrastructure.
|
||||
</para>
|
||||
infrastructure.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="driverbasics-net">
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
</authorgroup>
|
||||
</chapterinfo>
|
||||
|
||||
<title>ISA device drivers</title>
|
||||
<title>ISA Device Drivers</title>
|
||||
|
||||
<sect1 id="isa-driver-synopsis">
|
||||
<title>Synopsis</title>
|
||||
|
@ -49,7 +49,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="isa-driver-basics">
|
||||
<title>Basic information</title>
|
||||
<title>Basic Information</title>
|
||||
|
||||
<para>A typical ISA driver would need the following include
|
||||
files:</para>
|
||||
|
@ -208,9 +208,9 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="isa-driver-device-t">
|
||||
<title>Device_t pointer</title>
|
||||
<title><structname>device_t</structname> Pointer</title>
|
||||
|
||||
<para><structname>Device_t</structname> is the pointer type for
|
||||
<para><structname>device_t</structname> is the pointer type for
|
||||
the device structure. Here we consider only the methods
|
||||
interesting from the device driver writer's standpoint. The
|
||||
methods to manipulate values in the device structure
|
||||
|
@ -277,8 +277,8 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="isa-driver-config">
|
||||
<title>Configuration file and the order of identifying and probing
|
||||
during auto-configuration</title>
|
||||
<title>Configuration File and the Order of Identifying and Probing
|
||||
During Auto-Configuration</title>
|
||||
|
||||
<indexterm><primary>ISA</primary><secondary>probing</secondary></indexterm>
|
||||
|
||||
|
@ -593,7 +593,7 @@
|
|||
|
||||
<listitem>
|
||||
<para><emphasis>RF_TIMESHARE</emphasis> - resource may be
|
||||
time-shared by multiple drivers, i.e. allocated at the
|
||||
time-shared by multiple drivers, i.e., allocated at the
|
||||
same time by many but activated only by one at any given
|
||||
moment of time.</para>
|
||||
</listitem>
|
||||
|
@ -731,7 +731,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="isa-driver-busmem">
|
||||
<title>Bus memory mapping</title>
|
||||
<title>Bus Memory Mapping</title>
|
||||
|
||||
<para>In many cases data is exchanged between the driver and the
|
||||
device through the memory. Two variants are possible:</para>
|
||||
|
@ -849,7 +849,7 @@
|
|||
the future <function>bus_dmamem_alloc()</function> but
|
||||
not <function>bus_dmamap_create()</function> calls.
|
||||
Must be power of 2. If the memory is planned to be used
|
||||
in non-cascaded DMA mode (i.e. the DMA addresses will be
|
||||
in non-cascaded DMA mode (i.e., the DMA addresses will be
|
||||
supplied not by the device itself but by the ISA DMA
|
||||
controller) then the boundary must be no larger than
|
||||
64KB (64*1024) due to the limitations of the DMA
|
||||
|
|
|
@ -46,10 +46,8 @@
|
|||
gains <literal>root</literal> within the <application>jail</application>,
|
||||
it is only an annoyance, and not a devastation. This article mainly
|
||||
focuses on the internals (source code) of <application>jail</application>.
|
||||
If you are looking for a how-to on setting up a
|
||||
<application>jail</application>, I suggest you look at my other article
|
||||
in Sys Admin Magazine, May 2001, entitled "Securing FreeBSD using
|
||||
<application>Jail</application>."</para>
|
||||
For information on how to set up a jail see the <ulink
|
||||
url="&url.books.handbook;/jails.html">handbook entry on jails</ulink>.</para>
|
||||
|
||||
<sect1 id="jail-arch">
|
||||
<title>Architecture</title>
|
||||
|
@ -139,7 +137,7 @@ j.ip_number = ntohl(in.s_addr);</programlisting>
|
|||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Jailing The Process</title>
|
||||
<title>Jailing the Process</title>
|
||||
|
||||
<para>Finally, the userland program jails the process.
|
||||
<application>Jail</application> now becomes an imprisoned
|
||||
|
@ -224,7 +222,7 @@ SYSCTL_INT(_security_jail, OID_AUTO, mount_allowed, CTLFLAG_RW,
|
|||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>&man.jail.2; system call</title>
|
||||
<title>&man.jail.2; System Call</title>
|
||||
|
||||
<para>Like all system calls, the &man.jail.2; system call takes
|
||||
two arguments, <literal>struct thread *td</literal> and
|
||||
|
@ -617,7 +615,7 @@ socreate(int dom, struct socket **aso, int type, int proto,
|
|||
contains the port, address, length and domain family of the socket
|
||||
which is to be bound. Basically, this disallows any processes from
|
||||
<application>jail</application> to be able to specify the address
|
||||
that doesn't belong to the <application>jail</application> in which
|
||||
that does not belong to the <application>jail</application> in which
|
||||
the calling process exists.</para>
|
||||
|
||||
<programlisting><filename>/usr/src/sys/netinet/in_pcb.c</filename>:
|
||||
|
|
|
@ -123,7 +123,7 @@ KOBJMETHOD(NAME, FUNC)</programlisting>
|
|||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Creating an interface template</title>
|
||||
<title>Creating an Interface Template</title>
|
||||
|
||||
<indexterm><primary>Kernel Objects</primary>
|
||||
<secondary>interface</secondary></indexterm>
|
||||
|
|
|
@ -5888,7 +5888,7 @@ Label destruction o</programlisting>
|
|||
or <errorcode>EPERM</errorcode> for lack of privilege.
|
||||
This call may be made in a number of situations, including
|
||||
as a result of calls to &man.open.2; with
|
||||
<symbol>O_CREAT</symbol>, &man.mknod.2;, &man.mkfifo.2;, and
|
||||
<symbol>O_CREAT</symbol>, &man.mkfifo.2;, and
|
||||
others.</para>
|
||||
</sect3>
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
|
||||
<para>A device driver is a software component which provides the
|
||||
interface between the kernel's generic view of a peripheral
|
||||
(e.g. disk, network adapter) and the actual implementation of
|
||||
(e.g., disk, network adapter) and the actual implementation of
|
||||
the peripheral. The <emphasis>device driver interface
|
||||
(DDI)</emphasis> is the defined interface between the kernel
|
||||
and the device driver component.</para>
|
||||
|
@ -191,7 +191,7 @@
|
|||
Alpha's ISA bus device. On IA-32, ISA and PCI interrupts are
|
||||
both managed by the top-level nexus device. For both ports,
|
||||
memory and port address space is managed by a single entity -
|
||||
nexus for IA-32 and the relevant chipset driver on Alpha (e.g.
|
||||
nexus for IA-32 and the relevant chipset driver on Alpha (e.g.,
|
||||
CIA or tsunami).</para>
|
||||
|
||||
<para>In order to normalize access to memory and port mapped
|
||||
|
|
|
@ -315,15 +315,6 @@ product BUFFALO WLI_CF_S11G 0x030b BUFFALO AirStation 11Mbps CF WLAN</programlis
|
|||
|
||||
<programlisting>product BUFFALO WLI2_CF_S11G 0x030c BUFFALO AirStation ultra 802.11b CF</programlisting>
|
||||
|
||||
<para>At present, there is a
|
||||
manual step to regenerate
|
||||
<filename>pccarddevs.h</filename>, used to convey these
|
||||
identifiers to the client driver. The following steps must be
|
||||
done before you can use them in the driver:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd src/sys/dev/pccard</userinput>
|
||||
&prompt.root; <userinput>make -f Makefile.pccarddevs</userinput></screen>
|
||||
|
||||
<para>Once these steps are complete, the card can be added to
|
||||
the driver. That is a simple operation of adding one
|
||||
line:</para>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="scsi-general">
|
||||
<title>General architecture</title>
|
||||
<title>General Architecture</title>
|
||||
|
||||
<indexterm><primary>Common Access Method (CAM)</primary></indexterm>
|
||||
|
||||
|
@ -166,7 +166,7 @@
|
|||
bus? The answer given in the comments to the CAM code is:
|
||||
either way, as the driver's author prefers.</para>
|
||||
|
||||
<para>The arguments are:
|
||||
<para>The arguments are:</para>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><function>action_func</function> - pointer to
|
||||
|
@ -226,7 +226,6 @@
|
|||
depth. It depends on the abilities of the SCSI
|
||||
adapter.</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<indexterm><primary>SCSI</primary><secondary>adapter</secondary></indexterm>
|
||||
<para>Finally we register the SCSI buses associated with our SCSI
|
||||
|
@ -238,7 +237,7 @@
|
|||
}</programlisting>
|
||||
|
||||
<para>If there is one <structname>devq</structname> structure per
|
||||
SCSI bus (i.e. we consider a card with multiple buses as
|
||||
SCSI bus (i.e., we consider a card with multiple buses as
|
||||
multiple cards with one bus each) then the bus number will
|
||||
always be 0, otherwise each bus on the SCSI card should be get a
|
||||
distinct number. Each bus needs its own separate structure
|
||||
|
@ -562,7 +561,7 @@
|
|||
to zero.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis>tag_action</emphasis> - the kind
|
||||
of tag to use:
|
||||
of tag to use:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>CAM_TAG_ACTION_NONE - do not use tags for this
|
||||
|
@ -574,7 +573,7 @@
|
|||
itself</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</para></listitem>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@
|
|||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Read Locks versus Write Locks</title>
|
||||
<title>Read Locks Versus Write Locks</title>
|
||||
|
||||
<indexterm><primary>read locks</primary></indexterm>
|
||||
<indexterm><primary>write locks</primary></indexterm>
|
||||
|
@ -655,7 +655,7 @@
|
|||
needed.
|
||||
Those items that do not matter if the race is won or lost will
|
||||
not be locked, since they tend to be read all over the place
|
||||
(e.g. &man.device.get.softc.9;). There will be relatively few
|
||||
(e.g., &man.device.get.softc.9;). There will be relatively few
|
||||
changes to the newbus data structures, so a single lock should
|
||||
be sufficient and not impose a performance penalty.</para>
|
||||
</sect2>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<!-- 23 November 2001 -->
|
||||
</chapterinfo>
|
||||
|
||||
<title>Sound subsystem</title>
|
||||
<title>Sound Subsystem</title>
|
||||
|
||||
<sect1 id="oss-intro">
|
||||
<title>Introduction</title>
|
||||
|
@ -96,7 +96,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="pcm-probe-and-attach">
|
||||
<title>Probing, attaching, etc.</title>
|
||||
<title>Probing, Attaching, etc.</title>
|
||||
|
||||
<para>Sound drivers probe and attach in almost the same way as any
|
||||
hardware driver module. You might want to look at the <link
|
||||
|
@ -213,10 +213,10 @@
|
|||
<devicename>pcm</devicename>.</para>
|
||||
|
||||
<sect2>
|
||||
<title>The CHANNEL interface</title>
|
||||
<title>The CHANNEL Interface</title>
|
||||
|
||||
<sect3>
|
||||
<title>Common notes for function parameters</title>
|
||||
<title>Common Notes for Function Parameters</title>
|
||||
|
||||
<para>Sound drivers usually have a private data structure to
|
||||
describe their device, and one structure for each play and
|
||||
|
@ -234,7 +234,7 @@
|
|||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Overview of data transfer operations</title>
|
||||
<title>Overview of Data Transfer Operations</title>
|
||||
|
||||
<para>For sound data transfers, the
|
||||
<devicename>pcm</devicename> core and the sound drivers
|
||||
|
@ -521,7 +521,7 @@
|
|||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>More functions</title>
|
||||
<title>More Functions</title>
|
||||
|
||||
<para><function>channel_reset()</function>,
|
||||
<function>channel_resetdone()</function>, and
|
||||
|
@ -535,7 +535,7 @@
|
|||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>The MIXER interface</title>
|
||||
<title>The MIXER Interface</title>
|
||||
|
||||
<sect3 id="xxxmixer-init">
|
||||
<title>mixer_init</title>
|
||||
|
@ -656,7 +656,7 @@
|
|||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>The AC97 interface</title>
|
||||
<title>The AC97 Interface</title>
|
||||
|
||||
<indexterm><primary>AC97</primary></indexterm>
|
||||
|
||||
|
|
|
@ -300,7 +300,7 @@
|
|||
<title>USB Device Information</title>
|
||||
|
||||
<sect2>
|
||||
<title>Device configuration information</title>
|
||||
<title>Device Configuration Information</title>
|
||||
|
||||
<para>Each device provides different levels of configuration
|
||||
information. Each device has one or more configurations, of
|
||||
|
@ -466,7 +466,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="usb-devprobe">
|
||||
<title>Device probe and attach</title>
|
||||
<title>Device Probe and Attach</title>
|
||||
|
||||
<indexterm><primary>USB</primary><secondary>probe</secondary></indexterm>
|
||||
<para>After the notification by the hub that a new device has been
|
||||
|
@ -506,7 +506,7 @@
|
|||
attached.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Device disconnect and detach</title>
|
||||
<title>Device Disconnect and Detach</title>
|
||||
|
||||
<indexterm><primary>USB</primary><secondary>disconnect</secondary></indexterm>
|
||||
<para>A device driver should expect to receive errors during any
|
||||
|
|
|
@ -20,8 +20,8 @@
|
|||
<title>Virtual Memory System</title>
|
||||
|
||||
<sect1 id="vm-physmem">
|
||||
<title>Management of physical
|
||||
memory—<literal>vm_page_t</literal></title>
|
||||
<title>Management of Physical
|
||||
Memory—<literal>vm_page_t</literal></title>
|
||||
|
||||
<indexterm><primary>virtual memory</primary></indexterm>
|
||||
<indexterm><primary>physical memory</primary></indexterm>
|
||||
|
@ -73,7 +73,7 @@
|
|||
|
||||
<para>FreeBSD dynamically tunes its paging queues and attempts to
|
||||
maintain reasonable ratios of pages in the various queues as well as
|
||||
attempts to maintain a reasonable breakdown of clean vs. dirty pages.
|
||||
attempts to maintain a reasonable breakdown of clean versus dirty pages.
|
||||
The amount of rebalancing that occurs depends on the system's memory
|
||||
load. This rebalancing is implemented by the pageout daemon and
|
||||
involves laundering dirty pages (syncing them with their backing
|
||||
|
@ -87,8 +87,8 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="vm-cache">
|
||||
<title>The unified buffer
|
||||
cache—<literal>vm_object_t</literal></title>
|
||||
<title>The Unified Buffer
|
||||
Cache—<literal>vm_object_t</literal></title>
|
||||
|
||||
<indexterm><primary>unified buffer cache</primary></indexterm>
|
||||
<indexterm><primary><literal>vm_object_t</literal> structure</primary></indexterm>
|
||||
|
@ -199,7 +199,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="vm-tuning">
|
||||
<title>Tuning the FreeBSD VM system</title>
|
||||
<title>Tuning the FreeBSD VM System</title>
|
||||
|
||||
<para>A concerted effort has been made to make the FreeBSD kernel
|
||||
dynamically tune itself. Typically you do not need to mess with
|
||||
|
|
|
@ -430,15 +430,14 @@
|
|||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><literal>HEAD</literal> for amd64, arm, i386,
|
||||
i386/pc98, ia64, mips, powerpc, powerpc64, and sparc64,
|
||||
which takes approximately four hours.</para>
|
||||
i386/pc98, ia64, mips, powerpc, powerpc64, and
|
||||
sparc64.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><literal>RELENG_9</literal> and supported
|
||||
9.<replaceable>X</replaceable> branches for amd64, arm,
|
||||
i386, i386/pc98, ia64, mips, powerpc, powerpc64, and
|
||||
sparc64, which takes approximately three and a half
|
||||
hours.</para>
|
||||
sparc64.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -449,8 +448,7 @@
|
|||
<listitem>
|
||||
<para><literal>RELENG_8</literal> and supported
|
||||
8.<replaceable>X</replaceable> branches for amd64, i386,
|
||||
i386/pc98, ia64, mips, powerpc and sparc64, and each
|
||||
branch takes approximately six hours.</para>
|
||||
i386/pc98, ia64, mips, powerpc and sparc64.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -461,8 +459,7 @@
|
|||
<listitem>
|
||||
<para><literal>RELENG_7</literal> and supported
|
||||
7.<replaceable>X</replaceable> branches for amd64, i386,
|
||||
i386/pc98, ia64, powerpc, and sparc64, and each branch
|
||||
takes approximately three hours.</para>
|
||||
i386/pc98, ia64, powerpc, and sparc64.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
@ -485,13 +482,6 @@
|
|||
<para>Apache is set up to use <filename>index.cgi</filename>
|
||||
as <literal>DirectoryIndex</literal>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>A <ulink
|
||||
url="https://www.varnish-cache.org/">Varnish</ulink>
|
||||
instance in front of Apache ensures that
|
||||
<filename>index.cgi</filename> does not need to run more
|
||||
than once every two minutes.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
@ -185,9 +185,8 @@
|
|||
writing <acronym>CGI</acronym> scripts.</para>
|
||||
|
||||
<para>Perl is available in the Ports Collection as
|
||||
<filename role="package">lang/perl5.8</filename> for all
|
||||
&os; releases, and is installed as <command>/usr/bin/perl</command>
|
||||
in the base system 4.X releases.</para>
|
||||
<filename role="package">lang/perl5.16</filename> for all
|
||||
&os; releases.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -321,16 +320,6 @@
|
|||
can just give them a copy of the executable, assuming they
|
||||
have the same operating system as you.</para>
|
||||
|
||||
<para>Compiled languages include Pascal, C and C++. C and C++
|
||||
are rather unforgiving languages, and best suited to more
|
||||
experienced programmers; Pascal, on the other hand, was
|
||||
designed as an educational language, and is quite a good
|
||||
language to start with. FreeBSD does not include Pascal
|
||||
support in the base system, but
|
||||
the Free Pascal Compiler is
|
||||
available in the Ports Collection as
|
||||
<filename role="package">lang/fpc</filename>.</para>
|
||||
|
||||
<para>As the edit-compile-run-debug cycle is rather tedious when
|
||||
using separate programs, many commercial compiler makers have
|
||||
produced Integrated Development Environments
|
||||
|
@ -341,8 +330,6 @@
|
|||
<application>Emacs</application> as an IDE is discussed in
|
||||
<xref linkend="emacs"/>.</para>
|
||||
</sect2>
|
||||
|
||||
|
||||
</sect1>
|
||||
|
||||
|
||||
|
|
|
@ -1418,66 +1418,6 @@
|
|||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question id="panic-on-install-reboot">
|
||||
<para>Why do I get a <errorname>panic: can't mount
|
||||
root</errorname> error when rebooting the system after
|
||||
installation?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>This error comes from confusion between the boot block's
|
||||
and the kernel's understanding of the disk devices. The
|
||||
error usually manifests on two-disk IDE systems, with the
|
||||
hard disks arranged as the master or single device on
|
||||
separate IDE controllers, with &os; installed on the
|
||||
secondary IDE controller. The boot blocks think the system
|
||||
is installed on <devicename>ad0</devicename> (the second
|
||||
BIOS disk) while the kernel assigns the first disk on the
|
||||
secondary controller device, <devicename>ad2</devicename>.
|
||||
After the device probing, the kernel tries to mount what the
|
||||
boot blocks think is the boot disk,
|
||||
<devicename>ad0</devicename>, while it is really
|
||||
<devicename>ad2</devicename>, and fails.</para>
|
||||
|
||||
<para>To fix the problem, do one of the following:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Reboot the system and hit <keycap>Enter</keycap> at
|
||||
the <literal>Booting kernel in 10 seconds; hit [Enter]
|
||||
to interrupt</literal> prompt. This will drop you into
|
||||
the boot loader.</para>
|
||||
|
||||
<para>Then type
|
||||
<userinput>set root_disk_unit="<replaceable>disk_number</replaceable>"</userinput>.
|
||||
<replaceable>disk_number</replaceable> will be
|
||||
<literal>0</literal> if &os; is installed on the master
|
||||
drive on the first IDE controller, <literal>1</literal>
|
||||
if it is installed on the slave on the first IDE
|
||||
controller, <literal>2</literal> if it is installed on
|
||||
the master of the second IDE controller, and
|
||||
<literal>3</literal> if it is installed on the slave of
|
||||
the second IDE controller.</para>
|
||||
|
||||
<para>Then type <userinput>boot</userinput>, and your
|
||||
system should boot correctly.</para>
|
||||
|
||||
<para>To make this change permanent (i.e, so you do not
|
||||
have to do this every time you reboot or turn on your
|
||||
&os; machine), put the line
|
||||
<userinput>root_disk_unit="<replaceable>disk_number</replaceable>"</userinput>
|
||||
in <filename>/boot/loader.conf.local</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Move the &os; disk onto the primary IDE
|
||||
controller, so the hard disks are consecutive.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question id="memory-limits">
|
||||
<para>What are the limits for memory?</para>
|
||||
|
@ -2282,52 +2222,6 @@ bindkey ^[[3~ delete-char # for xterm</programlisting>
|
|||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question id="kmem-map-too-small">
|
||||
<para>My system has more than 1 GB of RAM, and I'm
|
||||
getting panics with <errorname>kmem_map too small</errorname>
|
||||
messages. What is wrong?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Normally, &os; determines a number of kernel parameters,
|
||||
such as the maximum number of files that can be open
|
||||
concurrently, from the amount of memory installed in the
|
||||
system. On systems with one gigabyte of RAM or more, this
|
||||
<quote>auto sizing</quote> mechanism may choose values that
|
||||
are too high: while starting up, the kernel allocates
|
||||
various tables and other structures that fill up most of the
|
||||
available kernel memory. Later on, while the system is
|
||||
running, the kernel has no more space left for dynamic
|
||||
memory allocations, and panics.</para>
|
||||
|
||||
<para>Compile your own kernel, and add the
|
||||
<option>VM_KMEM_SIZE_MAX</option> to your kernel
|
||||
configuration file, increasing the maximum size to
|
||||
400 MB (<option>options
|
||||
VM_KMEM_SIZE_MAX=419430400</option>). 400 MB appears
|
||||
to be sufficient for machines with up to 6 GB of
|
||||
memory.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question id="panic-kmemmap-too-small">
|
||||
<para>My system does not have 1 GB of RAM, and &os; still
|
||||
panics with <errorname>kmem_map too
|
||||
small</errorname>!</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>The panic indicates that the system ran out of virtual
|
||||
memory for network buffers (specifically, mbuf clusters).
|
||||
You can increase the amount of VM available for mbuf
|
||||
clusters by following the instructions in the <ulink
|
||||
url="&url.books.handbook;/configtuning-kernel-limits.html#nmbclusters">Network Limits</ulink>
|
||||
section of the Handbook.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question id="proc-table-full">
|
||||
<para>Why do I get the error <errorname>maxproc limit
|
||||
|
@ -2340,9 +2234,8 @@ bindkey ^[[3~ delete-char # for xterm</programlisting>
|
|||
processes to exist at one time. The number is based on the
|
||||
<varname>kern.maxusers</varname> &man.sysctl.8; variable.
|
||||
<varname>kern.maxusers</varname> also affects various other
|
||||
in-kernel limits, such as network buffers (see <link
|
||||
linkend="panic-kmemmap-too-small">this</link> earlier
|
||||
question). If your machine is heavily loaded, you probably
|
||||
in-kernel limits, such as network buffers.
|
||||
If your machine is heavily loaded, you probably
|
||||
want to increase <varname>kern.maxusers</varname>. This
|
||||
will increase these other system limits in addition to the
|
||||
maximum number of processes.</para>
|
||||
|
@ -3069,8 +2962,8 @@ kern.timecounter.hardware: TSC -> i8254</screen>
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>You are not running &man.config.8; with the
|
||||
<option>-g</option> option.</para>
|
||||
<para>You are not running &man.config.8; with
|
||||
<option>-g</option>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -3222,7 +3115,7 @@ kern.sched.name: ULE</screen>
|
|||
this.</para>
|
||||
|
||||
<para>Alternatively, partition and label the new disk with either
|
||||
&man.sade.8; or &man.gpart.8;. If the disks are MBR-formatted,
|
||||
&man.sade.8; or &man.gpart.8;. If the disks are MBR-formatted,
|
||||
you can also install booteasy on both disks with
|
||||
&man.boot0cfg.8;, so that you can dual boot to the old or
|
||||
new system after the copying is done.</para>
|
||||
|
@ -4506,9 +4399,9 @@ options SYSVMSG # enable for messaging</programlisting>
|
|||
required to boot from a &os; installation disk, choose
|
||||
the <guimenuitem>Live CD</guimenuitem> or
|
||||
<guimenuitem>Shell</guimenuitem> at the beginning of the install
|
||||
process and issue the commands mentioned above. You will need to
|
||||
process and issue the commands mentioned above. You will need to
|
||||
mount the specific partition in this case and then chroot to it,
|
||||
i.e. replace <command>mount -urw /</command> by
|
||||
i.e., replace <command>mount -urw /</command> by
|
||||
<command>mount /dev/ada0p1 /mnt; chroot /mnt</command> for
|
||||
a system on <replaceable>ada0p1</replaceable>.</para>
|
||||
</note>
|
||||
|
@ -5530,9 +5423,8 @@ UserConfig> <userinput>quit</userinput></screen>
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><keycode>117</keycode> — <keycap>Menu</keycap>
|
||||
key, to the left of the right-hand <keycap>Ctrl</keycap>
|
||||
key</para>
|
||||
<para><keycode>117</keycode> — <keycap>Menu</keycap>,
|
||||
to the left of the right-hand <keycap>Ctrl</keycap></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -5543,11 +5435,11 @@ UserConfig> <userinput>quit</userinput></screen>
|
|||
|
||||
<para>To have the <keycap>Windows</keycap> key-mappings
|
||||
enabled automatically every time you start X either put the
|
||||
<command>xmodmap</command> commands in your
|
||||
<filename>~/.xinitrc</filename> file or, preferably, create
|
||||
a file <filename>~/.xmodmaprc</filename> and include the
|
||||
<command>xmodmap</command> commands in
|
||||
<filename>~/.xinitrc</filename> or, preferably, create
|
||||
a <filename>~/.xmodmaprc</filename> and include the
|
||||
<command>xmodmap</command> options, one per line, then add
|
||||
the following line to your
|
||||
the following line to
|
||||
<filename>~/.xinitrc</filename>:</para>
|
||||
|
||||
<programlisting>xmodmap $HOME/.xmodmaprc</programlisting>
|
||||
|
@ -6119,7 +6011,7 @@ Key F15 A A Menu Workplace Nop</programlisting>
|
|||
|
||||
<listitem>
|
||||
<para>A process which is placed inside a simulation of the
|
||||
machine. This is more hard-core. Basically it means
|
||||
machine. It means
|
||||
that someone who is able to break into the process may
|
||||
believe that he can break into the wider machine but is,
|
||||
in fact, only breaking into a simulation of that machine
|
||||
|
@ -6127,7 +6019,7 @@ Key F15 A A Menu Workplace Nop</programlisting>
|
|||
|
||||
<para>The most common way to accomplish this is to build a
|
||||
simulated environment in a subdirectory and then run the
|
||||
processes in that directory chroot'd (i.e., <filename
|
||||
processes in that directory chrooted (i.e., <filename
|
||||
class="directory">/</filename> for that process is this
|
||||
directory, not the real <filename
|
||||
class="directory">/</filename> of the system).</para>
|
||||
|
@ -6547,8 +6439,8 @@ add 0 0 HISADDR</programlisting>
|
|||
<acronym>RD</acronym> light does not), the problem is with
|
||||
the remote end. If <acronym>TD</acronym> does not flash,
|
||||
the problem is local. With an internal modem, you will need
|
||||
to use the <literal>set server</literal> command in your
|
||||
<filename>ppp.conf</filename> file. When the hang occurs,
|
||||
to use the <literal>set server</literal> command in
|
||||
<filename>ppp.conf</filename>. When the hang occurs,
|
||||
connect to &man.ppp.8; using &man.pppctl.8;. If your
|
||||
network connection suddenly revives (PPP was revived due to
|
||||
the activity on the diagnostic socket) or if you cannot
|
||||
|
@ -6649,9 +6541,8 @@ deny pred1 deflate deflate24 protocomp acfcomp shortseq vj</programlisting>
|
|||
use the <command>bt</command> or <command>where</command>
|
||||
commands to get a stack trace. Save the output of your
|
||||
<application>gdb</application> session, and
|
||||
<quote>detach</quote> from the running process by the
|
||||
<command>quit</command> command of
|
||||
<application>gdb</application>.</para>
|
||||
<quote>detach</quote> from the running process by typing
|
||||
<command>quit</command>.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
|
@ -6880,8 +6771,8 @@ set dfilter 3 permit 0/0 0/0</programlisting>
|
|||
url="&url.books.handbook;/smtp-dialup.html">using email with a dialup connection</ulink>
|
||||
in the &os; Handbook for details on how to create your own
|
||||
configuration file and what should go into it. You may also
|
||||
want to add the following line to your
|
||||
<filename>.mc</filename> file:</para>
|
||||
want to add the following line to
|
||||
<filename>.mc</filename>:</para>
|
||||
|
||||
<programlisting>define(`confDELIVERY_MODE', `d')dnl</programlisting>
|
||||
|
||||
|
@ -6999,8 +6890,8 @@ ATDT1234567</programlisting>
|
|||
<qandaentry>
|
||||
<question id="ppp-segfault-nocore">
|
||||
<para>Why does &man.ppp.8; get a <errorname>Segmentation
|
||||
fault</errorname>, but I see no <filename>ppp.core</filename>
|
||||
file?</para>
|
||||
fault</errorname>, but I see no
|
||||
<filename>ppp.core</filename></para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
|
@ -7641,67 +7532,51 @@ hint.sio.7.irq="12"</programlisting>
|
|||
|
||||
<answer>
|
||||
<para>The <hostid role="domainname">FreeBSD.org</hostid> mail
|
||||
system implements some of the stricter
|
||||
system implements some
|
||||
<application>Postfix</application> checks on incoming mail
|
||||
and rejects mail that is either misconfigured or is
|
||||
potential spam. Your mail might bounce for one of the
|
||||
following reasons:</para>
|
||||
and rejects mail that is either from misconfigured relays or
|
||||
otherwise appears likely to be spam. Some of the
|
||||
specific requirements are: </para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>The email is being sent from a known spam domain or
|
||||
IP block.</para>
|
||||
|
||||
<para>The &os; mail servers reject email from known spam
|
||||
sources. If you have service through a company or
|
||||
domain who generates or relays spam, please switch to a
|
||||
service provider who does not.</para>
|
||||
<para>The IP address of the SMTP client must
|
||||
"reverse-resolve" to a forward
|
||||
confirmed hostname.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The body of the email only contains HTML.</para>
|
||||
|
||||
<para>Mail should be sent in plain text only. Please
|
||||
configure your mail user agent to send plain
|
||||
text.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The mailer at <hostid
|
||||
role="domainname">FreeBSD.org</hostid> cannot resolve
|
||||
the IP address of the connecting host back to a
|
||||
symbolic name.</para>
|
||||
|
||||
<para>Working reverse DNS is a standard requirement for
|
||||
accepting mail from a host. Set up reverse DNS for your
|
||||
mail server's IP address. Many home services (DSL,
|
||||
cable, dialup, etc.) will not give you this option. In
|
||||
this case, relay your email through your service
|
||||
provider's mail server.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The hostname given in the EHLO/HELO part of the SMTP
|
||||
exchange cannot be resolved to an IP address.</para>
|
||||
|
||||
<para>A fully qualified, resolvable host name is necessary
|
||||
in this part of the SMTP dialogue before mail will be
|
||||
accepted. If you do not have a host name that is
|
||||
registered in the DNS, then you should use your service
|
||||
provider's mail server to relay your mail.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Your message had a message ID ending with the string
|
||||
<quote>localhost</quote>.</para>
|
||||
|
||||
<para>Some mail user agents generate bad message IDs which
|
||||
will not be accepted. You will need to persuade your mail
|
||||
user agent to generate a valid message ID or else
|
||||
configure your mail transfer agent to rewrite
|
||||
them.</para>
|
||||
<para>The fully-qualified hostname given in the
|
||||
SMTP conversation (either HELO or EHLO) must resolve
|
||||
to the IP address of the client.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Other advice to help your mail reach its destination
|
||||
include:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Mail should be sent in plain text, and messages
|
||||
sent to mailing lists should generally be no more than
|
||||
200KB in length.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Avoid excessive cross posting. Choose
|
||||
<emphasis>one</emphasis> mailing list which seems most
|
||||
relevant and send it there.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>If you still have trouble with email infrastructure at
|
||||
<hostid role="domainname">FreeBSD.org</hostid> send a note
|
||||
with the details to
|
||||
<email>postmaster@freebsd.org</email>; Include a
|
||||
date/time interval so that logs may be reviewed —
|
||||
and note that we only keep one week's worth of mail logs.
|
||||
(Be sure to specify the time zone or offset from
|
||||
UTC.)</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
|
|
|
@ -141,8 +141,7 @@
|
|||
|
||||
<row>
|
||||
<entry>The names of files.</entry>
|
||||
<entry>Edit your <filename>.login</filename>
|
||||
file.</entry>
|
||||
<entry>Edit <filename>.login</filename>.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
|
|
|
@ -56,7 +56,6 @@
|
|||
&tm-attrib.adaptec;
|
||||
&tm-attrib.adobe;
|
||||
&tm-attrib.apple;
|
||||
&tm-attrib.corel;
|
||||
&tm-attrib.creative;
|
||||
&tm-attrib.cvsup;
|
||||
&tm-attrib.heidelberger;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
-->
|
||||
|
||||
<chapter id="boot">
|
||||
<title>The FreeBSD Booting Process</title>
|
||||
<title>The &os; Booting Process</title>
|
||||
|
||||
<sect1 id="boot-synopsis">
|
||||
<title>Synopsis</title>
|
||||
|
@ -16,31 +16,31 @@
|
|||
|
||||
<para>The process of starting a computer and loading the operating
|
||||
system is referred to as <quote>the bootstrap process</quote>,
|
||||
or simply <quote>booting</quote>. FreeBSD's boot process
|
||||
or simply <quote>booting</quote>. &os;'s boot process
|
||||
provides a great deal of flexibility in customizing what happens
|
||||
when you start the system, allowing you to select from different
|
||||
operating systems installed on the same computer, or even
|
||||
different versions of the same operating system or installed
|
||||
kernel.</para>
|
||||
when the system starts, including the ability to select from
|
||||
different operating systems installed on the same computer,
|
||||
different versions of the same operating system, or a different
|
||||
installed kernel.</para>
|
||||
|
||||
<para>This chapter details the configuration options you can set
|
||||
and how to customize the FreeBSD boot process. This includes
|
||||
everything that happens until the FreeBSD kernel has started,
|
||||
probed for devices, and started &man.init.8;. If you are not
|
||||
quite sure when this happens, it occurs when the text color
|
||||
changes from bright white to grey.</para>
|
||||
<para>This chapter details the configuration options that can
|
||||
be set. It demonstrates how to customize the &os; boot
|
||||
process, including everything that happens until the &os; kernel
|
||||
has started, probed for devices, and started &man.init.8;. This
|
||||
occurs when the text color of the boot messages changes from
|
||||
bright white to grey.</para>
|
||||
|
||||
<para>After reading this chapter, you will know:</para>
|
||||
<para>After reading this chapter, you will recognize:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>What the components of the FreeBSD bootstrap system are,
|
||||
and how they interact.</para>
|
||||
<para>The components of the &os; bootstrap system and how they
|
||||
interact.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The options you can give to the components in the
|
||||
FreeBSD bootstrap to control the boot process.</para>
|
||||
<para>The options that can be passed to the components in the
|
||||
&os; bootstrap in order to control the boot process.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -49,9 +49,7 @@
|
|||
</itemizedlist>
|
||||
|
||||
<note>
|
||||
<title>x86 Only</title>
|
||||
|
||||
<para>This chapter only describes the boot process for FreeBSD
|
||||
<para>This chapter only describes the boot process for &os;
|
||||
running on Intel x86 systems.</para>
|
||||
</note>
|
||||
</sect1>
|
||||
|
@ -62,7 +60,7 @@
|
|||
<para>Turning on a computer and starting the operating system
|
||||
poses an interesting dilemma. By definition, the computer does
|
||||
not know how to do anything until the operating system is
|
||||
started. This includes running programs from the disk. So if
|
||||
started. This includes running programs from the disk. If
|
||||
the computer can not run a program from the disk without the
|
||||
operating system, and the operating system programs are on the
|
||||
disk, how is the operating system started?</para>
|
||||
|
@ -102,7 +100,7 @@
|
|||
with the user. In this case the boot manager usually has more
|
||||
code in the first <emphasis>track</emphasis> of the disk or
|
||||
within some OS's file system. (A boot manager is sometimes also
|
||||
called a <emphasis>boot loader</emphasis>, but FreeBSD uses that
|
||||
called a <emphasis>boot loader</emphasis>, but &os; uses that
|
||||
term for a later stage of booting.) Popular boot managers
|
||||
include <application>boot0</application> (aka
|
||||
<application>Boot Easy</application>, the standard &os; boot
|
||||
|
@ -111,30 +109,28 @@
|
|||
<application>LILO</application>. (Only
|
||||
<application>boot0</application> fits within the MBR.)</para>
|
||||
|
||||
<para>If you have only one operating system installed on your
|
||||
disks then a standard PC MBR will suffice. This MBR searches
|
||||
for the first bootable (aka active) slice on the disk, and
|
||||
then runs the code on that slice to load the remainder of the
|
||||
operating system. The MBR installed by &man.fdisk.8;, by
|
||||
default, is such an MBR. It is based on
|
||||
<para>If only one operating system is installed, a standard PC MBR
|
||||
will suffice. This MBR searches for the first bootable (active)
|
||||
slice on the disk, and then runs the code on that slice to load
|
||||
the remainder of the operating system. By default, the MBR
|
||||
installed by &man.fdisk.8; is such an MBR and is based on
|
||||
<filename>/boot/mbr</filename>.</para>
|
||||
|
||||
<para>If you have installed multiple operating systems on your
|
||||
disks then you can install a different boot manager, one that
|
||||
can display a list of different operating systems, and allows
|
||||
you to choose the one to boot from. Two of these are discussed
|
||||
in the next subsection.</para>
|
||||
<para>If multiple operating systems are present, a different boot
|
||||
manager can be installed which displays the list of operating
|
||||
systems so that the user can choose which one to boot from. Two
|
||||
boot managers are discussed in the next subsection.</para>
|
||||
|
||||
<para>The remainder of the FreeBSD bootstrap system is divided
|
||||
<para>The remainder of the &os; bootstrap system is divided
|
||||
into three stages. The first stage is run by the MBR, which
|
||||
knows just enough to get the computer into a specific state and
|
||||
run the second stage. The second stage can do a little bit
|
||||
more, before running the third stage. The third stage finishes
|
||||
the task of loading the operating system. The work is split
|
||||
into these three stages because the PC standards put limits on
|
||||
the size of the programs that can be run at stages one and two.
|
||||
Chaining the tasks together allows FreeBSD to provide a more
|
||||
flexible loader.</para>
|
||||
into three stages because PC standards put limits on the size of
|
||||
the programs that can be run at stages one and two. Chaining
|
||||
the tasks together allows &os; to provide a more flexible
|
||||
loader.</para>
|
||||
|
||||
<indexterm><primary>kernel</primary></indexterm>
|
||||
<indexterm><primary><command>init</command></primary></indexterm>
|
||||
|
@ -145,9 +141,8 @@
|
|||
process &man.init.8;, which then makes sure the disks are in a
|
||||
usable state. &man.init.8; then starts the user-level resource
|
||||
configuration which mounts file systems, sets up network cards
|
||||
to communicate on the network, and generally starts all the
|
||||
processes that usually are run on a FreeBSD system at
|
||||
startup.</para>
|
||||
to communicate on the network, and starts the processes which
|
||||
have been configured to run on a &os; system at startup.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="boot-blocks">
|
||||
|
@ -163,60 +158,54 @@
|
|||
|
||||
<para>The code in the MBR or boot manager is sometimes referred
|
||||
to as <emphasis>stage zero</emphasis> of the boot process.
|
||||
This subsection discusses two of the boot managers previously
|
||||
mentioned: <application>boot0</application> and
|
||||
This section discusses two boot managers:
|
||||
<application>boot0</application> and
|
||||
<application>LILO</application>.</para>
|
||||
|
||||
<formalpara>
|
||||
<title>The <application>boot0</application> Boot
|
||||
Manager:</title>
|
||||
|
||||
<para>The MBR installed by FreeBSD's installer or
|
||||
&man.boot0cfg.8;, by default, is based on
|
||||
<filename>/boot/boot0</filename>. (The
|
||||
<application>boot0</application> program is very simple,
|
||||
since the program in the <abbrev>MBR</abbrev> can only be
|
||||
446 bytes long because of the slice table and
|
||||
<literal>0x55AA</literal> identifier at the end of the MBR.)
|
||||
If you have installed <application>boot0</application> and
|
||||
multiple operating systems on your hard disks, then you will
|
||||
see a display similar to this one at boot
|
||||
time:</para>
|
||||
<para>The MBR installed by &os;'s installer or
|
||||
&man.boot0cfg.8; is based on
|
||||
<filename>/boot/boot0</filename>. The size and capability
|
||||
of <application>boot0</application> is restricted to 446
|
||||
bytes due to the slice table and <literal>0x55AA</literal>
|
||||
identifier at the end of the MBR. If
|
||||
<application>boot0</application> and multiple operating
|
||||
systems are installed, a message similar to this example
|
||||
will be displayed at boot time:</para>
|
||||
</formalpara>
|
||||
|
||||
<example id="boot-boot0-example">
|
||||
<title><filename>boot0</filename> Screenshot</title>
|
||||
|
||||
<screen>F1 DOS
|
||||
<screen>F1 Win
|
||||
F2 FreeBSD
|
||||
F3 Linux
|
||||
F4 ??
|
||||
F5 Drive 1
|
||||
|
||||
Default: F2</screen>
|
||||
</example>
|
||||
|
||||
<para>Other operating systems, in particular &windows;, have
|
||||
been known to overwrite an existing MBR with their own. If
|
||||
this happens to you, or you want to replace your existing MBR
|
||||
with the FreeBSD MBR then use the following command:</para>
|
||||
<para>Other operating systems, in particular &windows;, will
|
||||
overwrite an existing MBR if they are installed after &os;.
|
||||
If this happens, or you want to replace the existing MBR
|
||||
with the &os; MBR, use the following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>fdisk -B -b /boot/boot0 <replaceable>device</replaceable></userinput></screen>
|
||||
|
||||
<para>where <replaceable>device</replaceable> is the device that
|
||||
you boot from, such as <devicename>ad0</devicename> for the
|
||||
first IDE disk, <devicename>ad2</devicename> for the first IDE
|
||||
disk on a second IDE controller, <devicename>da0</devicename>
|
||||
for the first SCSI disk, and so on. Or, if you want a custom
|
||||
configuration of the MBR, use &man.boot0cfg.8;.</para>
|
||||
<para>where <replaceable>device</replaceable> is the boot disk,
|
||||
such as <devicename>ad0</devicename> for the first IDE disk,
|
||||
<devicename>ad2</devicename> for the first IDE disk on a
|
||||
second IDE controller, or <devicename>da0</devicename>
|
||||
for the first SCSI disk. To create a custom configuration of
|
||||
the MBR, refer to &man.boot0cfg.8;.</para>
|
||||
|
||||
<formalpara>
|
||||
<title>The LILO Boot Manager:</title>
|
||||
|
||||
<para>To install this boot manager so it will also boot
|
||||
FreeBSD, first start Linux and add the following to your
|
||||
existing <filename>/etc/lilo.conf</filename> configuration
|
||||
file:</para>
|
||||
&os;, boot into Linux and add the following to the existing
|
||||
<filename>/etc/lilo.conf</filename> configuration:</para>
|
||||
</formalpara>
|
||||
|
||||
<programlisting>other=/dev/hdXY
|
||||
|
@ -224,30 +213,29 @@ table=/dev/hdX
|
|||
loader=/boot/chain.b
|
||||
label=FreeBSD</programlisting>
|
||||
|
||||
<para>In the above, specify FreeBSD's primary partition and
|
||||
drive using Linux specifiers, replacing
|
||||
<replaceable>X</replaceable> with the Linux drive letter and
|
||||
<replaceable>Y</replaceable> with the Linux primary partition
|
||||
number. If you are using a <acronym>SCSI</acronym> drive, you
|
||||
will need to change <replaceable>/dev/hd</replaceable> to read
|
||||
something similar to <replaceable>/dev/sd</replaceable>. The
|
||||
<para>Specify &os;'s primary partition and drive using Linux
|
||||
specifiers, replacing <replaceable>X</replaceable> with the
|
||||
Linux drive letter and <replaceable>Y</replaceable> with the
|
||||
Linux primary partition number. For a <acronym>SCSI</acronym>
|
||||
drive, change <replaceable>/dev/hd</replaceable> to
|
||||
<replaceable>/dev/sd</replaceable>. The
|
||||
<option>loader=/boot/chain.b</option> line can be omitted if
|
||||
you have both operating systems on the same drive. Now run
|
||||
<command>/sbin/lilo -v</command> to commit your new
|
||||
changes to the system; this should be verified by checking its
|
||||
screen messages.</para>
|
||||
both operating systems are installed on the same drive. Next,
|
||||
run <command>/sbin/lilo -v</command> to commit the new
|
||||
changes. Verify these are correct by checking the screen
|
||||
messages.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="boot-boot1">
|
||||
<title>Stage One, <filename>/boot/boot1</filename>, and Stage
|
||||
Two, <filename>/boot/boot2</filename></title>
|
||||
|
||||
<para>Conceptually the first and second stages are part of the
|
||||
<para>Conceptually, the first and second stages are part of the
|
||||
same program, on the same area of the disk. Because of space
|
||||
constraints they have been split into two, but you would
|
||||
always install them together. They are copied from the
|
||||
combined file <filename>/boot/boot</filename> by the installer
|
||||
or <application>bsdlabel</application> (see below).</para>
|
||||
constraints, they have been split into two, but are always
|
||||
installed together. They are copied from the combined
|
||||
<filename>/boot/boot</filename> by the installer or
|
||||
<application>bsdlabel</application>.</para>
|
||||
|
||||
<para>They are located outside file systems, in the first track
|
||||
of the boot slice, starting with the first sector. This is
|
||||
|
@ -259,20 +247,18 @@ label=FreeBSD</programlisting>
|
|||
|
||||
<para><filename>boot1</filename> is very simple, since it can
|
||||
only be 512 bytes in size, and knows just enough about the
|
||||
FreeBSD <firstterm>bsdlabel</firstterm>, which stores
|
||||
&os; <firstterm>bsdlabel</firstterm>, which stores
|
||||
information about the slice, to find and execute
|
||||
<filename>boot2</filename>.</para>
|
||||
|
||||
<para><filename>boot2</filename> is slightly more sophisticated,
|
||||
and understands the FreeBSD file system enough to find files
|
||||
on it, and can provide a simple interface to choose the kernel
|
||||
or loader to run.</para>
|
||||
and understands the &os; file system enough to find files, and
|
||||
can provide a simple interface to choose the kernel or loader
|
||||
to run.</para>
|
||||
|
||||
<para>Since the <link linkend="boot-loader">loader</link> is
|
||||
much more sophisticated, and provides a nice easy-to-use
|
||||
boot configuration, <filename>boot2</filename> usually runs
|
||||
it, but previously it
|
||||
was tasked to run the kernel directly.</para>
|
||||
<para><link linkend="boot-loader">loader</link> is much more
|
||||
sophisticated and provides a boot configuration which is run
|
||||
by <filename>boot2</filename>.</para>
|
||||
|
||||
<example id="boot-boot2-example">
|
||||
<title><filename>boot2</filename> Screenshot</title>
|
||||
|
@ -282,25 +268,26 @@ Default: 0:ad(0,a)/boot/loader
|
|||
boot:</screen>
|
||||
</example>
|
||||
|
||||
<para>If you ever need to replace the installed
|
||||
<filename>boot1</filename> and <filename>boot2</filename> use
|
||||
&man.bsdlabel.8;:</para>
|
||||
<para>&man.bsdlabel.8; can be used to replace the installed
|
||||
<filename>boot1</filename> and
|
||||
<filename>boot2</filename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>bsdlabel -B <replaceable>diskslice</replaceable></userinput></screen>
|
||||
|
||||
<para>where <replaceable>diskslice</replaceable> is the disk and
|
||||
slice you boot from, such as <devicename>ad0s1</devicename>
|
||||
slice to boot from, such as <devicename>ad0s1</devicename>
|
||||
for the first slice on the first IDE disk.</para>
|
||||
|
||||
<warning>
|
||||
<title>Dangerously Dedicated Mode</title>
|
||||
|
||||
<para>If you use just the disk name, such as
|
||||
<devicename>ad0</devicename>, in the &man.bsdlabel.8;
|
||||
command you will create a dangerously dedicated disk,
|
||||
without slices. This is almost certainly not what you want
|
||||
to do, so make sure you double check the &man.bsdlabel.8;
|
||||
command before you press <keycap>Return</keycap>.</para>
|
||||
<para>If just the disk name is used, such as
|
||||
<devicename>ad0</devicename>, &man.bsdlabel.8; will create a
|
||||
<quote>dangerously dedicated</quote> disk, without slices.
|
||||
This is probably not the desired action, so double check the
|
||||
<replaceable>diskslice</replaceable> passed to
|
||||
&man.bsdlabel.8; before pressing
|
||||
<keycap>Return</keycap>.</para>
|
||||
</warning>
|
||||
</sect2>
|
||||
|
||||
|
@ -313,16 +300,16 @@ boot:</screen>
|
|||
bootstrap, and is located on the file system, usually as
|
||||
<filename>/boot/loader</filename>.</para>
|
||||
|
||||
<para>The loader is intended as a user-friendly method for
|
||||
configuration, using an easy-to-use built-in command set,
|
||||
backed up by a more powerful interpreter, with a more complex
|
||||
command set.</para>
|
||||
<para>The loader is intended as an interactive method for
|
||||
configuration, using a built-in command set, backed up by a
|
||||
more powerful interpreter which has a more complex command
|
||||
set.</para>
|
||||
|
||||
<sect3 id="boot-loader-flow">
|
||||
<title>Loader Program Flow</title>
|
||||
|
||||
<para>During initialization, the loader will probe for a
|
||||
console and for disks, and figure out what disk it is
|
||||
console and for disks, and figure out which disk it is
|
||||
booting from. It will set variables accordingly, and an
|
||||
interpreter is started where user commands can be passed
|
||||
from a script or interactively.</para>
|
||||
|
@ -342,16 +329,16 @@ boot:</screen>
|
|||
<para>Finally, by default, the loader issues a 10 second wait
|
||||
for key presses, and boots the kernel if it is not
|
||||
interrupted. If interrupted, the user is presented with a
|
||||
prompt which understands the easy-to-use command set, where
|
||||
the user may adjust variables, unload all modules, load
|
||||
modules, and then finally boot or reboot.</para>
|
||||
prompt which understands the command set, where the user may
|
||||
adjust variables, unload all modules, load modules, and then
|
||||
finally boot or reboot.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3 id="boot-loader-commands">
|
||||
<title>Loader Built-In Commands</title>
|
||||
|
||||
<para>These are the most commonly used loader commands. For a
|
||||
complete discussion of all available commands, please see
|
||||
complete discussion of all available commands, refer to
|
||||
&man.loader.8;.</para>
|
||||
|
||||
<variablelist>
|
||||
|
@ -372,11 +359,10 @@ boot:</screen>
|
|||
<optional><replaceable>kernelname</replaceable></optional></term>
|
||||
|
||||
<listitem>
|
||||
<para>Immediately proceeds to boot the kernel, with the
|
||||
given options, if any, and with the kernel name given,
|
||||
if it is. Providing a kernel name on the command-line
|
||||
is only applicable after an
|
||||
<emphasis>unload</emphasis> command has been issued,
|
||||
<para>Immediately proceeds to boot the kernel, with any
|
||||
specified options or kernel name. Providing a kernel
|
||||
name on the command-line is only applicable after an
|
||||
<emphasis>unload</emphasis> command has been issued;
|
||||
otherwise the previously-loaded kernel will be
|
||||
used.</para>
|
||||
</listitem>
|
||||
|
@ -387,10 +373,10 @@ boot:</screen>
|
|||
|
||||
<listitem>
|
||||
<para>Goes through the same automatic configuration of
|
||||
modules based on variables as what happens at boot.
|
||||
This only makes sense if you use
|
||||
<command>unload</command> first, and change some
|
||||
variables, most commonly <envar>kernel</envar>.</para>
|
||||
modules based on specified variables, most commonly
|
||||
<envar>kernel</envar>. This only makes sense if
|
||||
<command>unload</command> is used first, before
|
||||
changing some variables.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -401,8 +387,8 @@ boot:</screen>
|
|||
<listitem>
|
||||
<para>Shows help messages read from
|
||||
<filename>/boot/loader.help</filename>. If the topic
|
||||
given is <literal>index</literal>, then the list of
|
||||
available topics is given.</para>
|
||||
given is <literal>index</literal>, the list of
|
||||
available topics is displayed.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -412,7 +398,7 @@ boot:</screen>
|
|||
|
||||
<listitem>
|
||||
<para>Processes the file with the given filename. The
|
||||
file is read in, and interpreted line by line. An
|
||||
file is read in and interpreted line by line. An
|
||||
error immediately stops the include command.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -424,8 +410,9 @@ boot:</screen>
|
|||
|
||||
<listitem>
|
||||
<para>Loads the kernel, kernel module, or file of the
|
||||
type given, with the filename given. Any arguments
|
||||
after filename are passed to the file.</para>
|
||||
type given, with the specified filename. Any
|
||||
arguments after <replaceable>filename</replaceable>
|
||||
are passed to the file.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -436,8 +423,8 @@ boot:</screen>
|
|||
<listitem>
|
||||
<para>Displays a listing of files in the given path, or
|
||||
the root directory, if the path is not specified. If
|
||||
<option>-l</option> is specified, file sizes will be
|
||||
shown too.</para>
|
||||
<option>-l</option> is specified, file sizes will
|
||||
also be shown.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -508,15 +495,14 @@ boot:</screen>
|
|||
<indexterm><primary>single-user mode</primary></indexterm>
|
||||
|
||||
<listitem>
|
||||
<para>To boot your usual kernel, but in single-user
|
||||
mode:</para>
|
||||
<para>To boot the usual kernel in single-user mode:</para>
|
||||
|
||||
<screen><userinput>boot -s</userinput></screen>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>To unload your usual kernel and modules, and then
|
||||
load just your old (or another) kernel:</para>
|
||||
<para>To unload the usual kernel and modules, and then
|
||||
load the previous or another kernel:</para>
|
||||
|
||||
<indexterm>
|
||||
<primary><filename>kernel.old</filename></primary>
|
||||
|
@ -525,14 +511,14 @@ boot:</screen>
|
|||
<screen><userinput>unload</userinput>
|
||||
<userinput>load <replaceable>kernel.old</replaceable></userinput></screen>
|
||||
|
||||
<para>You can use <filename>kernel.GENERIC</filename> to
|
||||
refer to the generic kernel that comes on the install
|
||||
disk, or <filename>kernel.old</filename> to refer to
|
||||
your previously installed kernel (when you have upgraded
|
||||
or configured your own kernel, for example).</para>
|
||||
<para>Use <filename>kernel.GENERIC</filename> to refer to
|
||||
the default kernel that comes with an installation, or
|
||||
<filename>kernel.old</filename> to refer to the
|
||||
previously installed kernel before a system upgrade or
|
||||
before configuring a custom kernel.</para>
|
||||
|
||||
<note>
|
||||
<para>Use the following to load your usual modules with
|
||||
<para>Use the following to load the usual modules with
|
||||
another kernel:</para>
|
||||
|
||||
<screen><userinput>unload</userinput>
|
||||
|
@ -541,9 +527,8 @@ boot:</screen>
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>To load a kernel configuration script (an automated
|
||||
script which does the things you would normally do in
|
||||
the kernel boot-time configurator):</para>
|
||||
<para>To load an automated kernel configuration
|
||||
script:</para>
|
||||
|
||||
<screen><userinput>load -t userconfig_script <replaceable>/boot/kernel.conf</replaceable></userinput></screen>
|
||||
</listitem>
|
||||
|
@ -563,89 +548,58 @@ boot:</screen>
|
|||
|
||||
<title>Boot Time Splash Screens</title>
|
||||
|
||||
<para>The splash screen creates a more visually appealing boot
|
||||
screen compared to the original boot messages. This screen
|
||||
will be displayed until a console login prompt or an X
|
||||
display manager offers a login prompt.</para>
|
||||
<para>The splash screen creates an alternate boot screen. The
|
||||
splash screen hides all the boot probe messages and service
|
||||
startup messages before displaying either a command line or
|
||||
graphical login prompt.</para>
|
||||
|
||||
<para>There are two basic environments available in &os;. The
|
||||
first is the default legacy virtual console command line
|
||||
environment. After the system finishes booting, a console
|
||||
login prompt is presented. The second environment is the
|
||||
X11 Desktop graphical environment. After
|
||||
<link linkend="x-install">X11</link> and one of the
|
||||
graphical
|
||||
<link linkend="x11-wm">desktop environments</link>, such as
|
||||
<application>GNOME</application>,
|
||||
<application>KDE</application>, or
|
||||
<application>XFce</application> are installed, the X11
|
||||
desktop can be launched by using
|
||||
<command>startx</command>.</para>
|
||||
|
||||
<para>Some users prefer the X11 graphical login screen over
|
||||
the traditional text based login prompt. Display managers
|
||||
like <application>XDM</application> for &xorg;,
|
||||
<application>gdm</application> for
|
||||
<application>GNOME</application>, and
|
||||
<application>kdm</application> for
|
||||
<application>KDE</application> (and any other from the Ports
|
||||
Collection) provide a graphical login screen in
|
||||
place of the console login prompt. After a successful
|
||||
login, they present the user with a graphical
|
||||
desktop.</para>
|
||||
|
||||
<para>In the command line environment, the splash screen would
|
||||
hide all the boot probe messages and task startup messages
|
||||
before displaying the login prompt. In X11 environment, the
|
||||
users would get a visually clearer system start up
|
||||
experience resembling something closer to what a
|
||||
(µsoft; &windows; or non-unix type system) user would
|
||||
experience.</para>
|
||||
graphical environment provided by
|
||||
<link linkend="x11">Xorg</link>. Refer to that chapter for
|
||||
more information on how to install and configure a graphical
|
||||
display manager and a graphical login manager.</para>
|
||||
|
||||
<sect4 id="boot-splash-function">
|
||||
<title>Splash Screen Function</title>
|
||||
|
||||
<para>The splash screen function supports 256-color
|
||||
<para>The splash screen function supports 256-colors in the
|
||||
bitmap (<filename>.bmp</filename>), ZSoft
|
||||
<acronym>PCX</acronym> (<filename>.pcx</filename>), or
|
||||
TheDraw (<filename>.bin</filename>) files.
|
||||
In addition, the splash image files must have a resolution
|
||||
of 320 by 200 pixels or less to work on standard VGA
|
||||
adapters.</para>
|
||||
TheDraw (<filename>.bin</filename>) formats. The splash
|
||||
image files must have a resolution of 320 by 200 pixels or
|
||||
less in order to work on standard VGA adapters.</para>
|
||||
|
||||
<para>To use larger images, up to the maximum resolution of
|
||||
1024 by 768 pixels, activate the <acronym>VESA</acronym>
|
||||
support included in &os;. This can be enabled by loading
|
||||
the <acronym>VESA</acronym> module during system boot, or
|
||||
adding a <literal>VESA</literal> kernel configuration
|
||||
option and building a custom kernel (see <xref
|
||||
linkend="kernelconfig"/>). The <acronym>VESA</acronym>
|
||||
support gives users the ability to display a splash screen
|
||||
image that fills the whole display screen.</para>
|
||||
1024 by 768 pixels, load the <acronym>VESA</acronym>
|
||||
module during system boot. For a <ulink
|
||||
url="kernelconfig">custom kernel</ulink>, include the
|
||||
<literal>VESA</literal> kernel configuration option.
|
||||
Loading <acronym>VESA</acronym> support provides the
|
||||
ability to display a splash screen image that fills the
|
||||
whole display screen.</para>
|
||||
|
||||
<para>While the splash screen is being displayed during the
|
||||
booting process, it can be turned off any time by hitting
|
||||
any key on the keyboard.</para>
|
||||
|
||||
<para>The splash screen also defaults to being a screen
|
||||
saver outside of X11. After a time period of non-use the
|
||||
screen will change to the splash screen and cycle through
|
||||
steps of changing intensity of the image, from bright to a
|
||||
very dark and over again. This default splash screen
|
||||
(screen saver) behavior could be overridden by adding a
|
||||
saver outside. After a time period of non-use, the splash
|
||||
screen will be displayed and will cycle through steps of
|
||||
changing intensity of the image, from bright to very dark
|
||||
and over again. The configuration of the splash screen
|
||||
saver can be overridden by adding a
|
||||
<literal>saver=</literal> line to
|
||||
<filename>/etc/rc.conf</filename>. Option
|
||||
<literal>saver=</literal> has several built-in screen
|
||||
savers to choose from, the full list can be found in the
|
||||
&man.splash.4; manual page. The default screen saver is
|
||||
called <quote>warp</quote>. Note that the
|
||||
<literal>saver=</literal> option specified in
|
||||
<filename>/etc/rc.conf</filename> only applies to virtual
|
||||
consoles. It has no effect on X11 display
|
||||
managers.</para>
|
||||
<filename>/etc/rc.conf</filename>. Several built-in
|
||||
screen savers are available and described in
|
||||
&man.splash.4;. The <literal>saver=</literal> option only
|
||||
applies to virtual consoles and has no effect on graphical
|
||||
display managers.</para>
|
||||
|
||||
<para>A few boot loader messages, including the boot options
|
||||
menu and a timed wait count down prompt are displayed at
|
||||
menu and a timed wait count down prompt, are displayed at
|
||||
boot time, even when the splash screen is enabled.</para>
|
||||
|
||||
<para>Sample splash screen files can be downloaded from the
|
||||
|
@ -660,15 +614,14 @@ boot:</screen>
|
|||
<sect4 id="boot-splash-enable">
|
||||
<title>Enabling the Splash Screen Function</title>
|
||||
|
||||
<para>The splash screen (<filename>.bmp</filename>,
|
||||
<filename>.pcx</filename>, or <filename>.bin</filename>)
|
||||
file has to be placed on the root partition, for example
|
||||
in the <filename class="directory">/boot</filename>
|
||||
directory.</para>
|
||||
<para>The splash screen <filename>.bmp</filename>,
|
||||
<filename>.pcx</filename>, or <filename>.bin</filename>
|
||||
image has to be placed on the root partition, for example
|
||||
in <filename class="directory">/boot</filename>.</para>
|
||||
|
||||
<para>For default boot display resolution (256-color, 320 by
|
||||
200 pixels, or less), edit
|
||||
<filename>/boot/loader.conf</filename>, so it contains the
|
||||
<para>For the default boot display resolution of 256-colors
|
||||
and 320 by 200 pixels or less, edit
|
||||
<filename>/boot/loader.conf</filename> so it contains the
|
||||
following:</para>
|
||||
|
||||
<programlisting>splash_bmp_load="YES"
|
||||
|
@ -685,19 +638,19 @@ splash_bmp_load="YES"
|
|||
bitmap_load="YES"
|
||||
bitmap_name="<replaceable>/boot/splash.bmp</replaceable>"</programlisting>
|
||||
|
||||
<para>The above assumes that
|
||||
<para>This example assumes that
|
||||
<filename><replaceable>/boot/splash.bmp</replaceable></filename>
|
||||
is used for splash screen. When a <acronym>PCX</acronym>
|
||||
file is desired, use the following statements, plus the
|
||||
<literal>vesa_load="YES"</literal> line depending on the
|
||||
resolution.</para>
|
||||
is used for the splash screen. To use a
|
||||
<acronym>PCX</acronym> file, use the following statements,
|
||||
plus the <literal>vesa_load="YES"</literal> line,
|
||||
depending on the resolution:</para>
|
||||
|
||||
<programlisting>splash_pcx_load="YES"
|
||||
bitmap_load="YES"
|
||||
bitmap_name="<replaceable>/boot/splash.pcx</replaceable>"</programlisting>
|
||||
|
||||
<para>In version 8.3 another option is to use ascii art in
|
||||
<ulink
|
||||
<para>Beginning with &os; 8.3, another option is to use
|
||||
ASCII art in <ulink
|
||||
url="https://en.wikipedia.org/wiki/TheDraw">TheDraw</ulink>
|
||||
format.</para>
|
||||
|
||||
|
@ -707,14 +660,14 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
|
||||
<para>The file name is not restricted to
|
||||
<quote>splash</quote> as shown in the above example. It
|
||||
can be anything as long as it is one of the above types
|
||||
such as,
|
||||
can be anything as long as it is one of the supported
|
||||
types such as,
|
||||
<filename><replaceable>splash_640x400</replaceable>.bmp</filename>
|
||||
or
|
||||
<filename><replaceable>bluewave</replaceable>.pcx</filename>.</para>
|
||||
|
||||
<para>Some other interesting
|
||||
<filename>loader.conf</filename> options:</para>
|
||||
<para>Other interesting
|
||||
<filename>loader.conf</filename> options include:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
|
@ -737,13 +690,13 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
<para>This will replace the default words
|
||||
<quote>&os;</quote>, which are displayed to the
|
||||
right of the boot options menu with the colored
|
||||
beastie logo like releases in the past had.</para>
|
||||
beastie logo.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>For more information, please see the &man.splash.4;,
|
||||
&man.loader.conf.5;, and &man.vga.4; manual pages.</para>
|
||||
<para>For more information, refer to &man.splash.4;,
|
||||
&man.loader.conf.5;, and &man.vga.4;.</para>
|
||||
</sect4>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
@ -757,10 +710,10 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
<secondary>boot interaction</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Once the kernel is loaded by either <link
|
||||
linkend="boot-loader">loader</link> (as usual) or <link
|
||||
linkend="boot-boot1">boot2</link> (bypassing the loader), it
|
||||
examines its boot flags, if any, and adjusts its behavior as
|
||||
<para>Once the kernel is loaded by either the default <link
|
||||
linkend="boot-loader">loader</link> or by <link
|
||||
linkend="boot-boot1">boot2</link> which bypasses the loader,
|
||||
it examines its boot flags, if any, and adjusts its behavior as
|
||||
necessary.</para>
|
||||
|
||||
<sect2 id="boot-kernel-bootflags">
|
||||
|
@ -778,7 +731,7 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
<term><option>-a</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>during kernel initialization, ask for the device
|
||||
<para>During kernel initialization, ask for the device
|
||||
to mount as the root file system.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -787,7 +740,7 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
<term><option>-C</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>boot from CDROM.</para>
|
||||
<para>Boot from CDROM.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -795,8 +748,8 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
<term><option>-c</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>run UserConfig, the boot-time kernel
|
||||
configurator</para>
|
||||
<para>Run UserConfig, the boot-time kernel
|
||||
configurator.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -804,7 +757,7 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
<term><option>-s</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>boot into single-user mode</para>
|
||||
<para>Boot into single-user mode.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -812,14 +765,14 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
<term><option>-v</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>be more verbose during kernel startup</para>
|
||||
<para>Be more verbose during kernel startup.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<note>
|
||||
<para>There are other boot flags, read &man.boot.8; for more
|
||||
information on them.</para>
|
||||
<para>Refer to &man.boot.8; for more information on the other
|
||||
boot flags.</para>
|
||||
</note>
|
||||
</sect2>
|
||||
|
||||
|
@ -848,27 +801,26 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
<primary>device.hints</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>During initial system startup, the boot &man.loader.8; will
|
||||
read the &man.device.hints.5; file. This file stores kernel
|
||||
boot information known as variables, sometimes referred to as
|
||||
<para>During initial system startup, the boot &man.loader.8; reads
|
||||
&man.device.hints.5;. This file stores kernel boot information
|
||||
known as variables, sometimes referred to as
|
||||
<quote>device hints</quote>. These <quote>device hints</quote>
|
||||
are used by device drivers for device configuration.</para>
|
||||
|
||||
<para>Device hints may also be specified at the
|
||||
<link linkend="boot-loader">
|
||||
Stage 3 boot loader</link> prompt. Variables can be added using
|
||||
<command>set</command>, removed with <command>unset</command>,
|
||||
and viewed with the <command>show</command> commands. Variables
|
||||
set in <filename>/boot/device.hints</filename> can be
|
||||
overridden here also. Device hints entered at the boot loader
|
||||
are not permanent and will be forgotten on the next
|
||||
reboot.</para>
|
||||
<para>Device hints may also be specified at the <link
|
||||
linkend="boot-loader"> Stage 3 boot loader</link> prompt.
|
||||
Variables can be added using <command>set</command>, removed
|
||||
with <command>unset</command>, and viewed
|
||||
<command>show</command>. Variables set in
|
||||
<filename>/boot/device.hints</filename> can also be overridden.
|
||||
Device hints entered at the boot loader are not permanent and
|
||||
will not be applied on the next reboot.</para>
|
||||
|
||||
<para>Once the system is booted, the &man.kenv.1; command can be
|
||||
used to dump all of the variables.</para>
|
||||
<para>Once the system is booted, &man.kenv.1; can be used to dump
|
||||
all of the variables.</para>
|
||||
|
||||
<para>The syntax for <filename>/boot/device.hints</filename>
|
||||
is one variable per line, using the standard hash
|
||||
is one variable per line, using the hash
|
||||
<quote>#</quote> as comment markers. Lines are constructed as
|
||||
follows:</para>
|
||||
|
||||
|
@ -878,7 +830,7 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
|
||||
<screen><userinput>set hint.driver.unit.keyword=<replaceable>value</replaceable></userinput></screen>
|
||||
|
||||
<para><literal>driver</literal> is the device driver name,
|
||||
<para>where <literal>driver</literal> is the device driver name,
|
||||
<literal>unit</literal> is the device driver unit number, and
|
||||
<literal>keyword</literal> is the hint keyword. The keyword may
|
||||
consist of the following options:</para>
|
||||
|
@ -920,10 +872,10 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Device drivers may accept (or require) more hints not listed
|
||||
here, viewing their manual page is recommended. For more
|
||||
information, consult the &man.device.hints.5;, &man.kenv.1;,
|
||||
&man.loader.conf.5;, and &man.loader.8; manual pages.</para>
|
||||
<para>Since device drivers may accept or require more hints not
|
||||
listed here, viewing a driver's manual page is recommended.
|
||||
For more information, refer to &man.device.hints.5;,
|
||||
&man.kenv.1;, &man.loader.conf.5;, and &man.loader.8;.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="boot-init">
|
||||
|
@ -944,10 +896,10 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
|
||||
<para>The automatic reboot sequence makes sure that the file
|
||||
systems available on the system are consistent. If they are
|
||||
not, and &man.fsck.8; cannot fix the inconsistencies,
|
||||
&man.init.8; drops the system into
|
||||
<link linkend="boot-singleuser">single-user mode</link> for
|
||||
the system administrator to take care of the problems
|
||||
not, and &man.fsck.8; cannot fix the inconsistencies of a UFS
|
||||
file system, &man.init.8; drops the system into
|
||||
<link linkend="boot-singleuser">single-user mode</link> so
|
||||
that the system administrator can resolve the problem
|
||||
directly.</para>
|
||||
</sect2>
|
||||
|
||||
|
@ -957,21 +909,19 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
<indexterm><primary>single-user mode</primary></indexterm>
|
||||
<indexterm><primary>console</primary></indexterm>
|
||||
|
||||
<para>This mode can be reached through the
|
||||
<link linkend="boot-autoreboot">automatic reboot
|
||||
sequence</link>, or by the user booting with the
|
||||
<option>-s</option> option or setting the
|
||||
<envar>boot_single</envar> variable in
|
||||
<para>This mode can be reached through the <link
|
||||
linkend="boot-autoreboot">automatic reboot sequence</link>,
|
||||
the user booting with <option>-s</option>, or by setting
|
||||
the <envar>boot_single</envar> variable in
|
||||
<command>loader</command>.</para>
|
||||
|
||||
<para>It can also be reached by calling &man.shutdown.8; without
|
||||
the reboot (<option>-r</option>) or halt (<option>-h</option>)
|
||||
options, from <link linkend="boot-multiuser">multi-user
|
||||
mode</link>.</para>
|
||||
<para>It can also be reached by calling &man.shutdown.8; from
|
||||
<link linkend="boot-multiuser">multi-user mode</link> without
|
||||
including <option>-r</option> or <option>-h</option>.</para>
|
||||
|
||||
<para>If the system <literal>console</literal> is set to
|
||||
<literal>insecure</literal> in <filename>/etc/ttys</filename>,
|
||||
then the system prompts for the <username>root</username>
|
||||
the system will prompt for the <username>root</username>
|
||||
password before initiating single-user mode.</para>
|
||||
|
||||
<example id="boot-insecure-console">
|
||||
|
@ -986,13 +936,12 @@ console none unknown off insecure</programlisting>
|
|||
</example>
|
||||
|
||||
<note>
|
||||
<para>An <literal>insecure</literal> console means that you
|
||||
consider your physical security to the console to be
|
||||
insecure, and want to make sure only someone who knows the
|
||||
<username>root</username> password may use single-user mode,
|
||||
and it does not mean that you want to run your console
|
||||
insecurely. Thus, if you want security, choose
|
||||
<literal>insecure</literal>, not
|
||||
<para>An <literal>insecure</literal> console means that
|
||||
physical security to the console is considered to be
|
||||
insecure, so only someone who knows the
|
||||
<username>root</username> password may use single-user mode.
|
||||
Thus, to add this measure of security, choose
|
||||
<literal>insecure</literal>, instead of the default of
|
||||
<literal>secure</literal>.</para>
|
||||
</note>
|
||||
</sect2>
|
||||
|
@ -1002,8 +951,8 @@ console none unknown off insecure</programlisting>
|
|||
|
||||
<indexterm><primary>multi-user mode</primary></indexterm>
|
||||
|
||||
<para>If &man.init.8; finds your file systems to be in order, or
|
||||
once the user has finished in <link
|
||||
<para>If &man.init.8; finds the file systems to be in order, or
|
||||
once the user has finished their commands in <link
|
||||
linkend="boot-singleuser">single-user mode</link>, the
|
||||
system enters multi-user mode, in which it starts the
|
||||
resource configuration of the system.</para>
|
||||
|
@ -1018,14 +967,13 @@ console none unknown off insecure</programlisting>
|
|||
<filename>/etc/defaults/rc.conf</filename>, and
|
||||
system-specific details from
|
||||
<filename>/etc/rc.conf</filename>, and then proceeds to
|
||||
mount the system file systems mentioned in
|
||||
<filename>/etc/fstab</filename>, start up networking
|
||||
services, start up miscellaneous system daemons, and
|
||||
finally runs the startup scripts of locally installed
|
||||
packages.</para>
|
||||
mount the system file systems listed in
|
||||
<filename>/etc/fstab</filename>. It starts up networking
|
||||
services, miscellaneous system daemons, then the startup
|
||||
scripts of locally installed packages.</para>
|
||||
|
||||
<para>The &man.rc.8; manual page is a good reference to the
|
||||
resource configuration system, as is examining the scripts
|
||||
<para>To learn more about the resource configuration system,
|
||||
refer to &man.rc.8; and examine the scripts
|
||||
themselves.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
@ -1038,27 +986,26 @@ console none unknown off insecure</programlisting>
|
|||
<primary><command>shutdown</command></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Upon controlled shutdown, via &man.shutdown.8;,
|
||||
<para>Upon controlled shutdown using &man.shutdown.8;,
|
||||
&man.init.8; will attempt to run the script
|
||||
<filename>/etc/rc.shutdown</filename>, and then proceed to send
|
||||
all processes the <literal>TERM</literal> signal, and
|
||||
subsequently the <literal>KILL</literal> signal to any that do
|
||||
not terminate timely.</para>
|
||||
not terminate in a timely manner.</para>
|
||||
|
||||
<para>To power down a FreeBSD machine on architectures and systems
|
||||
that support power management, use the command
|
||||
<command>shutdown -p now</command> to turn the power off
|
||||
immediately. To just reboot a FreeBSD system, just use
|
||||
<command>shutdown -r now</command>. You need to be
|
||||
<username>root</username> or a member of
|
||||
<groupname>operator</groupname> group to run &man.shutdown.8;.
|
||||
The &man.halt.8; and &man.reboot.8; commands can also be used,
|
||||
please refer to their manual pages and to &man.shutdown.8;'s one
|
||||
for more information.</para>
|
||||
<para>To power down a &os; machine on architectures and systems
|
||||
that support power management, use <command>shutdown -p
|
||||
now</command> to turn the power off immediately. To reboot a
|
||||
&os; system, use <command>shutdown -r now</command>. One must
|
||||
be <username>root</username> or a member of the
|
||||
<groupname>operator</groupname> group in order to run
|
||||
&man.shutdown.8;. One can also use &man.halt.8; and
|
||||
&man.reboot.8;. Refer to their manual pages and to
|
||||
&man.shutdown.8; for more information.</para>
|
||||
|
||||
<note>
|
||||
<para>Power management requires &man.acpi.4; support in the
|
||||
kernel or loaded as module for.</para>
|
||||
<para>Power management requires &man.acpi.4; to be loaded as
|
||||
a module or staticly compiled into a custom kernel.</para>
|
||||
</note>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -27,32 +27,30 @@
|
|||
</indexterm>
|
||||
|
||||
<para>File systems are an integral part of any operating system.
|
||||
They allow for users to upload and store files, provide access
|
||||
to data, and of course, make hard drives useful. Different
|
||||
operating systems usually have one major aspect in common, that
|
||||
is their native file system. On &os; this file system is known
|
||||
as the Fast File System or <acronym>FFS</acronym> which is built
|
||||
on the original Unix™ File System, also known as
|
||||
<acronym>UFS</acronym>. This is the native file system on &os;
|
||||
which is placed on hard disks for access to data.</para>
|
||||
|
||||
<para>&os; also supports a multitude of different file systems to
|
||||
provide support for accessing data from other operating systems
|
||||
locally, i.e., data stored on locally attached
|
||||
<acronym>USB</acronym> storage devices, flash drives, and hard
|
||||
disks. There is also support for some non-native file systems.
|
||||
These are file systems developed on other
|
||||
operating systems, like the &linux; Extended File System
|
||||
(<acronym>EXT</acronym>), and the &sun; Z File System
|
||||
(<acronym>ZFS</acronym>).</para>
|
||||
|
||||
<para>There are different levels of support for the various file
|
||||
systems in &os;. Some will require a kernel module to be
|
||||
loaded, others may require a toolset to be installed. This
|
||||
chapter is designed to help users of &os; access other file
|
||||
systems on their systems, starting with the &sun; Z file
|
||||
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.</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
|
||||
µsoft; New Technology File System
|
||||
(<acronym>NTFS</acronym>).</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>
|
||||
|
@ -62,11 +60,11 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>What file systems are supported by &os;.</para>
|
||||
<para>Which file systems are supported by &os;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How to enable, configure, access and make use of
|
||||
<para>How to enable, configure, access, and make use of
|
||||
non-native file systems.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
@ -75,24 +73,25 @@
|
|||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Understand &unix; and &os; basics
|
||||
(<xref linkend="basics"/>).</para>
|
||||
<para>Understand &unix; and <link
|
||||
linkend="basics">&os; basics</link>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Be familiar with
|
||||
the basics of kernel configuration/compilation
|
||||
(<xref linkend="kernelconfig"/>).</para>
|
||||
<para>Be familiar with the basics of <link
|
||||
linkend="kernelconfig">kernel configuration and
|
||||
compilation</link>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Feel comfortable installing third party software
|
||||
in &os; (<xref linkend="ports"/>).</para>
|
||||
<para>Feel comfortable <link linkend="ports">installing
|
||||
software</link> in &os;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Have some familiarity with disks, storage and
|
||||
device names in &os; (<xref linkend="disks"/>).</para>
|
||||
<para>Have some familiarity with <link
|
||||
linkend="disks">disks</link>, storage, and device names in
|
||||
&os;.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
@ -100,73 +99,67 @@
|
|||
<sect1 id="filesystems-zfs">
|
||||
<title>The Z File System (ZFS)</title>
|
||||
|
||||
<para>The Z file system, developed by &sun;, is a new
|
||||
technology designed to use a pooled storage method. This means
|
||||
that space is only used as it is needed for data storage. It
|
||||
has also been designed for maximum data integrity, supporting
|
||||
data snapshots, multiple copies, and data checksums. A new
|
||||
data replication model, known as <acronym>RAID</acronym>-Z has
|
||||
been added. The <acronym>RAID</acronym>-Z model is similar
|
||||
to <acronym>RAID</acronym>5 but is designed to prevent data
|
||||
write corruption.</para>
|
||||
<para>The Z file system, originally developed by &sun;,
|
||||
is designed to use a pooled storage method in that space is only
|
||||
used as it is needed for data storage. It is also designed for
|
||||
maximum data integrity, supporting data snapshots, multiple
|
||||
copies, and data checksums. It uses a software data replication
|
||||
model, known as <acronym>RAID</acronym>-Z.
|
||||
<acronym>RAID</acronym>-Z provides redundancy similar to
|
||||
hardware <acronym>RAID</acronym>, but is designed to prevent
|
||||
data write corruption and to overcome some of the limitations
|
||||
of hardware <acronym>RAID</acronym>.</para>
|
||||
|
||||
<sect2>
|
||||
<title>ZFS Tuning</title>
|
||||
|
||||
<para>The <acronym>ZFS</acronym> subsystem utilizes much of
|
||||
the system resources, so some tuning may be required to
|
||||
provide maximum efficiency during every-day use. As an
|
||||
experimental feature in &os; this may change in the near
|
||||
future; however, at this time, the following steps are
|
||||
recommended.</para>
|
||||
<para>Some of the features provided by <acronym>ZFS</acronym>
|
||||
are RAM-intensive, so some tuning may be required to provide
|
||||
maximum efficiency on systems with limited RAM.</para>
|
||||
|
||||
<sect3>
|
||||
<title>Memory</title>
|
||||
|
||||
<para>The total system memory should be at least one gigabyte,
|
||||
with two gigabytes or more recommended. In all of the
|
||||
examples here, the system has one gigabyte of memory with
|
||||
several other tuning mechanisms in place.</para>
|
||||
|
||||
<para>Some people have had luck using fewer than one gigabyte
|
||||
of memory, but with such a limited amount of physical
|
||||
memory, when the system is under heavy load, it is very
|
||||
plausible that &os; will panic due to memory
|
||||
exhaustion.</para>
|
||||
<para>At a bare minimum, the total system memory should be at
|
||||
least one gigabyte. The amount of recommended RAM depends
|
||||
upon the size of the pool and the ZFS features which are
|
||||
used. A general rule of thumb is 1GB of RAM for every 1TB
|
||||
of storage. If the deduplication feature is used, a general
|
||||
rule of thumb is 5GB of RAM per TB of storage to be
|
||||
deduplicated. While some users successfully use ZFS with
|
||||
less RAM, it is possible that when the system is under heavy
|
||||
load, it may panic due to memory exhaustion. Further tuning
|
||||
may be required for systems with less than the recommended
|
||||
RAM requirements.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Kernel Configuration</title>
|
||||
|
||||
<para>It is recommended that unused drivers and options
|
||||
be removed from the kernel configuration file. Since most
|
||||
devices are available as modules, they may be loaded
|
||||
using the <filename>/boot/loader.conf</filename>
|
||||
file.</para>
|
||||
|
||||
<para>Users of the &i386; architecture should add the
|
||||
following option to their kernel configuration file,
|
||||
rebuild their kernel, and reboot:</para>
|
||||
<para>Due to the RAM limitations of the &i386; platform, users
|
||||
using ZFS on the &i386; architecture should add the
|
||||
following option to a custom kernel configuration file,
|
||||
rebuild the kernel, and reboot:</para>
|
||||
|
||||
<programlisting>options KVA_PAGES=512</programlisting>
|
||||
|
||||
<para>This option will expand the kernel address space, thus
|
||||
allowing the <varname>vm.kvm_size</varname> tunable to be
|
||||
pushed beyond the currently imposed limit of 1 GB
|
||||
(2 GB for <acronym>PAE</acronym>). To find the most
|
||||
suitable value for this option, divide the desired address
|
||||
space in megabytes by four (4). In this case, it is
|
||||
<literal>512</literal> for 2 GB.</para>
|
||||
<para>This option expands the kernel address space, allowing
|
||||
the <varname>vm.kvm_size</varname> tunable to be pushed
|
||||
beyond the currently imposed limit of 1 GB, or the
|
||||
limit of 2 GB for <acronym>PAE</acronym>. To find the
|
||||
most suitable value for this option, divide the desired
|
||||
address space in megabytes by four (4). In this example, it
|
||||
is <literal>512</literal> for 2 GB.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Loader Tunables</title>
|
||||
|
||||
<para>The <devicename>kmem</devicename> address space should
|
||||
be increased on all &os; architectures. On the test system
|
||||
<para>The <devicename>kmem</devicename> address space can
|
||||
be increased on all &os; architectures. On a test system
|
||||
with one gigabyte of physical memory, success was achieved
|
||||
with the following options which should be placed in the
|
||||
<filename>/boot/loader.conf</filename> file and the system
|
||||
with the following options added to
|
||||
<filename>/boot/loader.conf</filename>, and the system
|
||||
restarted:</para>
|
||||
|
||||
<programlisting>vm.kmem_size="330M"
|
||||
|
@ -191,22 +184,21 @@ vfs.zfs.vdev.cache.size="5M"</programlisting>
|
|||
<screen>&prompt.root; <userinput>echo 'zfs_enable="YES"' >> /etc/rc.conf</userinput>
|
||||
&prompt.root; <userinput>service zfs start</userinput></screen>
|
||||
|
||||
<para>The remainder of this document assumes three
|
||||
<acronym>SCSI</acronym> disks are available, and their
|
||||
device names are
|
||||
<para>The examples in this section assume three
|
||||
<acronym>SCSI</acronym> disks with the device names
|
||||
<devicename><replaceable>da0</replaceable></devicename>,
|
||||
<devicename><replaceable>da1</replaceable></devicename>
|
||||
<devicename><replaceable>da1</replaceable></devicename>,
|
||||
and <devicename><replaceable>da2</replaceable></devicename>.
|
||||
Users of <acronym>IDE</acronym> hardware may use the
|
||||
Users of <acronym>IDE</acronym> hardware should instead use
|
||||
<devicename><replaceable>ad</replaceable></devicename>
|
||||
devices in place of <acronym>SCSI</acronym> hardware.</para>
|
||||
device names.</para>
|
||||
|
||||
<sect3>
|
||||
<title>Single Disk Pool</title>
|
||||
|
||||
<para>To create a simple, non-redundant <acronym>ZFS</acronym>
|
||||
pool using a single disk device, use the
|
||||
<command>zpool</command> command:</para>
|
||||
pool using a single disk device, use
|
||||
<command>zpool</command>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool create example /dev/da0</userinput></screen>
|
||||
|
||||
|
@ -220,12 +212,11 @@ devfs 1 1 0 100% /dev
|
|||
/dev/ad0s1d 54098308 1032846 48737598 2% /usr
|
||||
example 17547136 0 17547136 0% /example</screen>
|
||||
|
||||
<para>This output clearly shows the <literal>example</literal>
|
||||
pool has not only been created but
|
||||
<emphasis>mounted</emphasis> as well. It is also accessible
|
||||
just like a normal file system, files may be created on it
|
||||
and users are able to browse it as in the
|
||||
following example:</para>
|
||||
<para>This output shows that the <literal>example</literal>
|
||||
pool has been created and <emphasis>mounted</emphasis>. It
|
||||
is now accessible as a file system. Files may be created
|
||||
on it and users can browse it, as seen in the following
|
||||
example:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /example</userinput>
|
||||
&prompt.root; <userinput>ls</userinput>
|
||||
|
@ -236,25 +227,24 @@ drwxr-xr-x 2 root wheel 3 Aug 29 23:15 .
|
|||
drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
|
||||
-rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfile</screen>
|
||||
|
||||
<para>Unfortunately this pool is not taking advantage of
|
||||
any <acronym>ZFS</acronym> features. Create a file system
|
||||
on this pool, and enable compression on it:</para>
|
||||
<para>However, this pool is not taking advantage of any
|
||||
<acronym>ZFS</acronym> features. To create a dataset on
|
||||
this pool with compression enabled:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs create example/compressed</userinput>
|
||||
&prompt.root; <userinput>zfs set compression=gzip example/compressed</userinput></screen>
|
||||
|
||||
<para>The <literal>example/compressed</literal> is now a
|
||||
<acronym>ZFS</acronym> compressed file system. Try copying
|
||||
some large files to it by copying them to <filename
|
||||
<para>The <literal>example/compressed</literal> dataset is now
|
||||
a <acronym>ZFS</acronym> compressed file system. Try
|
||||
copying some large files to <filename
|
||||
class="directory">/example/compressed</filename>.</para>
|
||||
|
||||
<para>The compression may now be disabled with:</para>
|
||||
<para>Compression can be disabled with:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set compression=off example/compressed</userinput></screen>
|
||||
|
||||
<para>To unmount the file system, issue the following command
|
||||
and then verify by using the <command>df</command>
|
||||
utility:</para>
|
||||
<para>To unmount a file system, issue the following command
|
||||
and then verify by using <command>df</command>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs umount example/compressed</userinput>
|
||||
&prompt.root; <userinput>df</userinput>
|
||||
|
@ -264,7 +254,7 @@ devfs 1 1 0 100% /dev
|
|||
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
|
||||
example 17547008 0 17547008 0% /example</screen>
|
||||
|
||||
<para>Re-mount the file system to make it accessible
|
||||
<para>To re-mount the file system to make it accessible
|
||||
again, and verify with <command>df</command>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs mount example/compressed</userinput>
|
||||
|
@ -287,18 +277,19 @@ example on /example (zfs, local)
|
|||
example/data on /example/data (zfs, local)
|
||||
example/compressed on /example/compressed (zfs, local)</screen>
|
||||
|
||||
<para>As observed, <acronym>ZFS</acronym> file systems, after
|
||||
creation, may be used like ordinary file systems; however,
|
||||
many other features are also available. In the following
|
||||
example, a new file system, <literal>data</literal> is
|
||||
created. Important files will be stored here, so the file
|
||||
system is set to keep two copies of each data block:</para>
|
||||
<para><acronym>ZFS</acronym> datasets, after creation, may be
|
||||
used like any file systems. However, many other features
|
||||
are available which can be set on a per-dataset basis. In
|
||||
the following example, a new file system,
|
||||
<literal>data</literal> is created. Important files will be
|
||||
stored here, the file system is set to keep two copies of
|
||||
each data block:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs create example/data</userinput>
|
||||
&prompt.root; <userinput>zfs set copies=2 example/data</userinput></screen>
|
||||
|
||||
<para>It is now possible to see the data and space utilization
|
||||
by issuing <command>df</command> again:</para>
|
||||
by issuing <command>df</command>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>df</userinput>
|
||||
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
||||
|
@ -311,64 +302,56 @@ example/data 17547008 0 17547008 0% /example/data</screen>
|
|||
|
||||
<para>Notice that each file system on the pool has the same
|
||||
amount of available space. This is the reason for using
|
||||
<command>df</command> through these examples, to show
|
||||
that the file systems are using only the amount of space
|
||||
they need and will all draw from the same pool. The
|
||||
<acronym>ZFS</acronym> file system does away with concepts
|
||||
such as volumes and partitions, and allows for several file
|
||||
systems to occupy the same pool. Destroy the file systems,
|
||||
and then destroy the pool as they are no longer
|
||||
needed:</para>
|
||||
<command>df</command> in these examples, to show that the
|
||||
file systems use only the amount of space they need and all
|
||||
draw from the same pool. The <acronym>ZFS</acronym> file
|
||||
system does away with concepts such as volumes and
|
||||
partitions, and allows for several file systems to occupy
|
||||
the same pool.</para>
|
||||
|
||||
<para>To destroy the file systems and then destroy the pool as
|
||||
they are no longer needed:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs destroy example/compressed</userinput>
|
||||
&prompt.root; <userinput>zfs destroy example/data</userinput>
|
||||
&prompt.root; <userinput>zpool destroy example</userinput></screen>
|
||||
|
||||
<para>Disks go bad and fail, an unavoidable trait. When
|
||||
this disk goes bad, the data will be lost. One method of
|
||||
avoiding data loss due to a failed hard disk is to implement
|
||||
a <acronym>RAID</acronym>. <acronym>ZFS</acronym> supports
|
||||
this feature in its pool design which is covered in
|
||||
the next section.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title><acronym>ZFS</acronym> RAID-Z</title>
|
||||
|
||||
<para>As previously noted, this section will assume that
|
||||
three <acronym>SCSI</acronym> disks exist as devices
|
||||
<devicename>da0</devicename>, <devicename>da1</devicename>
|
||||
and <devicename>da2</devicename> (or
|
||||
<devicename>ad0</devicename> and beyond in case IDE disks
|
||||
are being used). To create a <acronym>RAID</acronym>-Z
|
||||
pool, issue the following command:</para>
|
||||
<para>There is no way to prevent a disk from failing. One
|
||||
method of avoiding data loss due to a failed hard disk is to
|
||||
implement <acronym>RAID</acronym>. <acronym>ZFS</acronym>
|
||||
supports this feature in its pool design.</para>
|
||||
|
||||
<para>To create a <acronym>RAID</acronym>-Z pool, issue the
|
||||
following command and specify the disks to add to the
|
||||
pool:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool create storage raidz da0 da1 da2</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>&sun; recommends that the amount of devices used
|
||||
in a <acronym>RAID</acronym>-Z configuration is between
|
||||
three and nine. If your needs call for a single pool to
|
||||
consist of 10 disks or more, consider breaking it up into
|
||||
smaller <acronym>RAID</acronym>-Z groups. If you only
|
||||
have two disks and still require redundancy, consider
|
||||
using a <acronym>ZFS</acronym> mirror instead. See the
|
||||
&man.zpool.8; manual page for more details.</para>
|
||||
<para>&sun; recommends that the amount of devices used in
|
||||
a <acronym>RAID</acronym>-Z configuration is between
|
||||
three and nine. For environments requiring a single pool
|
||||
consisting of 10 disks or more, consider breaking it up
|
||||
into smaller <acronym>RAID</acronym>-Z groups. If only
|
||||
two disks are available and redundancy is a requirement,
|
||||
consider using a <acronym>ZFS</acronym> mirror. Refer to
|
||||
&man.zpool.8; for more details.</para>
|
||||
</note>
|
||||
|
||||
<para>The <literal>storage</literal> zpool should have been
|
||||
created. This may be verified by using the &man.mount.8;
|
||||
and &man.df.1; commands as before. More disk devices may
|
||||
have been allocated by adding them to the end of the list
|
||||
above. Make a new file system in the pool, called
|
||||
<literal>home</literal>, where user files will eventually
|
||||
be placed:</para>
|
||||
<para>This command creates the <literal>storage</literal>
|
||||
zpool. This may be verified using &man.mount.8; and
|
||||
&man.df.1;. This command makes a new file system in the
|
||||
pool called <literal>home</literal>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs create storage/home</userinput></screen>
|
||||
|
||||
<para>It is now possible to enable compression and keep extra
|
||||
copies of the user's home directories and files. This may
|
||||
be accomplished just as before using the following
|
||||
copies of directories and files using the following
|
||||
commands:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set copies=2 storage/home</userinput>
|
||||
|
@ -384,9 +367,9 @@ example/data 17547008 0 17547008 0% /example/data</screen>
|
|||
&prompt.root; <userinput>ln -s /storage/home /usr/home</userinput></screen>
|
||||
|
||||
<para>Users should now have their data stored on the freshly
|
||||
created <filename class="directory">/storage/home</filename>
|
||||
file system. Test by adding a new user and logging in as
|
||||
that user.</para>
|
||||
created <filename
|
||||
class="directory">/storage/home</filename>. Test by
|
||||
adding a new user and logging in as that user.</para>
|
||||
|
||||
<para>Try creating a snapshot which may be rolled back
|
||||
later:</para>
|
||||
|
@ -405,28 +388,27 @@ example/data 17547008 0 17547008 0% /example/data</screen>
|
|||
<command>ls</command> in the file system's
|
||||
<filename class="directory">.zfs/snapshot</filename>
|
||||
directory. For example, to see the previously taken
|
||||
snapshot, perform the following command:</para>
|
||||
snapshot:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ls /storage/home/.zfs/snapshot</userinput></screen>
|
||||
|
||||
<para>It is possible to write a script to perform monthly
|
||||
snapshots on user data; however, over time, snapshots
|
||||
<para>It is possible to write a script to perform regular
|
||||
snapshots on user data. However, over time, snapshots
|
||||
may consume a great deal of disk space. The previous
|
||||
snapshot may be removed using the following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs destroy storage/home@08-30-08</userinput></screen>
|
||||
|
||||
<para>After all of this testing, there is no reason we should
|
||||
keep <filename class="directory">/storage/home</filename>
|
||||
around in its present state. Make it the real
|
||||
<filename class="directory">/home</filename> file
|
||||
system:</para>
|
||||
<para>After testing, <filename
|
||||
class="directory">/storage/home</filename> can be made the
|
||||
real <filename class="directory">/home</filename> using
|
||||
this command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set mountpoint=/home storage/home</userinput></screen>
|
||||
|
||||
<para>Issuing the <command>df</command> and
|
||||
<command>mount</command> commands will show that the system
|
||||
now treats our file system as the real
|
||||
<para>Run <command>df</command> and
|
||||
<command>mount</command> to confirm that the system now
|
||||
treats the file system as the real
|
||||
<filename class="directory">/home</filename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount</userinput>
|
||||
|
@ -455,8 +437,7 @@ storage/home 26320512 0 26320512 0% /home</screen>
|
|||
<title>Recovering <acronym>RAID</acronym>-Z</title>
|
||||
|
||||
<para>Every software <acronym>RAID</acronym> has a method of
|
||||
monitoring their <literal>state</literal>.
|
||||
<acronym>ZFS</acronym> is no exception. The status of
|
||||
monitoring its <literal>state</literal>. The status of
|
||||
<acronym>RAID</acronym>-Z devices may be viewed with the
|
||||
following command:</para>
|
||||
|
||||
|
@ -468,7 +449,7 @@ storage/home 26320512 0 26320512 0% /home</screen>
|
|||
<screen>all pools are healthy</screen>
|
||||
|
||||
<para>If there is an issue, perhaps a disk has gone offline,
|
||||
the pool state will be returned and look similar to:</para>
|
||||
the pool state will look similar to:</para>
|
||||
|
||||
<screen> pool: storage
|
||||
state: DEGRADED
|
||||
|
@ -489,14 +470,13 @@ config:
|
|||
|
||||
errors: No known data errors</screen>
|
||||
|
||||
<para>This states that the device was taken offline by the
|
||||
administrator. This is true for this particular example.
|
||||
To take the disk offline, the following command was
|
||||
used:</para>
|
||||
<para>This indicates that the device was previously taken
|
||||
offline by the administrator using the following
|
||||
command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool offline storage da1</userinput></screen>
|
||||
|
||||
<para>It is now possible to replace the
|
||||
<para>It is now possible to replace
|
||||
<devicename>da1</devicename> after the system has been
|
||||
powered down. When the system is back online, the following
|
||||
command may issued to replace the disk:</para>
|
||||
|
@ -529,37 +509,33 @@ errors: No known data errors</screen>
|
|||
<sect3>
|
||||
<title>Data Verification</title>
|
||||
|
||||
<para>As previously mentioned, <acronym>ZFS</acronym> uses
|
||||
<literal>checksums</literal> to verify the integrity of
|
||||
stored data. They are enabled automatically upon creation
|
||||
of file systems and may be disabled using the following
|
||||
command:</para>
|
||||
<para><acronym>ZFS</acronym> uses checksums to verify the
|
||||
integrity of stored data. These are enabled automatically
|
||||
upon creation of file systems and may be disabled using the
|
||||
following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set checksum=off storage/home</userinput></screen>
|
||||
|
||||
<para>This is not a wise idea, however, as checksums take
|
||||
very little storage space and are more useful when enabled.
|
||||
There also appears to be no noticeable costs in having them
|
||||
enabled. While enabled, it is possible to have
|
||||
<acronym>ZFS</acronym> check data integrity using checksum
|
||||
verification. This process is known as
|
||||
<quote>scrubbing.</quote> To verify the data integrity of
|
||||
the <literal>storage</literal> pool, issue the following
|
||||
command:</para>
|
||||
<para>Doing so is <emphasis>not</emphasis> recommended as
|
||||
checksums take very little storage space and are used to
|
||||
check data integrity using checksum verification in a
|
||||
process is known as <quote>scrubbing.</quote> To verify the
|
||||
data integrity of the <literal>storage</literal> pool, issue
|
||||
this command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool scrub storage</userinput></screen>
|
||||
|
||||
<para>This process may take considerable time depending on
|
||||
the amount of data stored. It is also very
|
||||
<acronym>I/O</acronym> intensive, so much that only one
|
||||
of these operations may be run at any given time. After
|
||||
the scrub has completed, the status is updated and may be
|
||||
viewed by issuing a status request:</para>
|
||||
<acronym>I/O</acronym> intensive, so much so that only one
|
||||
scrub may be run at any given time. After the scrub has
|
||||
completed, the status is updated and may be viewed by
|
||||
issuing a status request:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool status storage</userinput>
|
||||
pool: storage
|
||||
state: ONLINE
|
||||
scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008
|
||||
scrub: scrub completed with 0 errors on Sat Jan 26 19:57:37 2013
|
||||
config:
|
||||
|
||||
NAME STATE READ WRITE CKSUM
|
||||
|
@ -571,43 +547,39 @@ config:
|
|||
|
||||
errors: No known data errors</screen>
|
||||
|
||||
<para>The completion time is in plain view in this example.
|
||||
This feature helps to ensure data integrity over a long
|
||||
period of time.</para>
|
||||
<para>The completion time is displayed and helps to ensure
|
||||
data integrity over a long period of time.</para>
|
||||
|
||||
<para>There are many more options for the Z file system,
|
||||
see the &man.zfs.8; and &man.zpool.8; manual
|
||||
pages.</para>
|
||||
<para>Refer to &man.zfs.8; and &man.zpool.8; for other
|
||||
<acronym>ZFS</acronym> options.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>ZFS Quotas</title>
|
||||
|
||||
<para>ZFS supports different types of quotas; the
|
||||
refquota, the general quota, the user quota, and
|
||||
the group quota. This section will explain the
|
||||
basics of each one, and include some usage
|
||||
instructions.</para>
|
||||
<para>ZFS supports different types of quotas: the refquota,
|
||||
the general quota, the user quota, and the group quota.
|
||||
This section explains the basics of each type and includes
|
||||
some usage instructions.</para>
|
||||
|
||||
<para>Quotas limit the amount of space that a dataset
|
||||
and its descendants can consume, and enforce a limit
|
||||
on the amount of space used by filesystems and
|
||||
snapshots for the descendants. In terms of users,
|
||||
quotas are useful to limit the amount of space a
|
||||
particular user can use.</para>
|
||||
<para>Quotas limit the amount of space that a dataset and its
|
||||
descendants can consume, and enforce a limit on the amount
|
||||
of space used by filesystems and snapshots for the
|
||||
descendants. Quotas are useful to limit the amount of space
|
||||
a particular user can use.</para>
|
||||
|
||||
<note>
|
||||
<para>Quotas cannot be set on volumes, as the
|
||||
<literal>volsize</literal> property acts as an
|
||||
implicit quota.</para>
|
||||
<literal>volsize</literal> property acts as an implicit
|
||||
quota.</para>
|
||||
</note>
|
||||
|
||||
<para>The refquota,
|
||||
<literal>refquota=<replaceable>size</replaceable></literal>,
|
||||
limits the amount of space a dataset can consume
|
||||
by enforcing a hard limit on the space used. However,
|
||||
this hard limit does not include space used by descendants,
|
||||
such as file systems or snapshots.</para>
|
||||
<para>The
|
||||
<literal>refquota=<replaceable>size</replaceable></literal>
|
||||
limits the amount of space a dataset can consume by
|
||||
enforcing a hard limit on the space used. However, this
|
||||
hard limit does not include space used by descendants, such
|
||||
as file systems or snapshots.</para>
|
||||
|
||||
<para>To enforce a general quota of 10 GB for
|
||||
<filename>storage/home/bob</filename>, use the
|
||||
|
@ -615,9 +587,8 @@ errors: No known data errors</screen>
|
|||
|
||||
<screen>&prompt.root; <userinput>zfs set quota=10G storage/home/bob</userinput></screen>
|
||||
|
||||
<para>User quotas limit the amount of space that can
|
||||
be used by the specified user. The general format
|
||||
is
|
||||
<para>User quotas limit the amount of space that can be used
|
||||
by the specified user. The general format is
|
||||
<literal>userquota@<replaceable>user</replaceable>=<replaceable>size</replaceable></literal>,
|
||||
and the user's name must be in one of the following
|
||||
formats:</para>
|
||||
|
@ -626,28 +597,28 @@ errors: No known data errors</screen>
|
|||
<listitem>
|
||||
<para><acronym
|
||||
role="Portable Operating System
|
||||
Interface">POSIX</acronym> compatible name
|
||||
(e.g., <replaceable>joe</replaceable>).</para>
|
||||
Interface">POSIX</acronym> compatible name such as
|
||||
<replaceable>joe</replaceable>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><acronym
|
||||
role="Portable Operating System
|
||||
Interface">POSIX</acronym>
|
||||
numeric ID (e.g.,
|
||||
<replaceable>789</replaceable>).</para>
|
||||
numeric ID such as
|
||||
<replaceable>789</replaceable>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><acronym role="System Identifier">SID</acronym> name
|
||||
(e.g.,
|
||||
<replaceable>joe.bloggs@example.com</replaceable>).</para>
|
||||
such as
|
||||
<replaceable>joe.bloggs@example.com</replaceable>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><acronym role="System Identifier">SID</acronym>
|
||||
numeric ID (e.g.,
|
||||
<replaceable>S-1-123-456-789</replaceable>).</para>
|
||||
numeric ID such as
|
||||
<replaceable>S-1-123-456-789</replaceable>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -670,7 +641,7 @@ errors: No known data errors</screen>
|
|||
privilege are able to view and set everyone's quota.</para>
|
||||
|
||||
<para>The group quota limits the amount of space that a
|
||||
specified user group can consume. The general format is
|
||||
specified group can consume. The general format is
|
||||
<literal>groupquota@<replaceable>group</replaceable>=<replaceable>size</replaceable></literal>.</para>
|
||||
|
||||
<para>To set the quota for the group
|
||||
|
@ -680,30 +651,29 @@ errors: No known data errors</screen>
|
|||
<screen>&prompt.root; <userinput>zfs set groupquota@firstgroup=50G</userinput></screen>
|
||||
|
||||
<para>To remove the quota for the group
|
||||
<replaceable>firstgroup</replaceable>, or make sure that one
|
||||
is not set, instead use:</para>
|
||||
<replaceable>firstgroup</replaceable>, or to make sure that
|
||||
one is not set, instead use:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set groupquota@firstgroup=none</userinput></screen>
|
||||
|
||||
<para>As with the user quota property,
|
||||
non-<username>root</username> users can only see the quotas
|
||||
associated with the user groups that they belong to, however
|
||||
a <username>root</username> user or a user with the
|
||||
associated with the groups that they belong to. However,
|
||||
<username>root</username> or a user with the
|
||||
<literal>groupquota</literal> privilege can view and set all
|
||||
quotas for all groups.</para>
|
||||
|
||||
<para>The <command>zfs userspace</command> subcommand displays
|
||||
the amount of space consumed by each user on the specified
|
||||
filesystem or snapshot, along with any specified quotas.
|
||||
The <command>zfs groupspace</command> subcommand does the
|
||||
same for groups. For more information about supported
|
||||
options, or only displaying specific options, see
|
||||
&man.zfs.1;.</para>
|
||||
<para>To display the amount of space consumed by each user on
|
||||
the specified filesystem or snapshot, along with any
|
||||
specified quotas, use <command>zfs userspace</command>.
|
||||
For group information, use <command>zfs
|
||||
groupspace</command>. For more information about
|
||||
supported options or how to display only specific options,
|
||||
refer to &man.zfs.1;.</para>
|
||||
|
||||
<para>To list the quota for
|
||||
<filename>storage/home/bob</filename>, if you have the
|
||||
correct privileges or are <username>root</username>, use the
|
||||
following:</para>
|
||||
<para>Users with sufficient privileges and
|
||||
<username>root</username> can list the quota for
|
||||
<filename>storage/home/bob</filename> using:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs get quota storage/home/bob</userinput></screen>
|
||||
</sect3>
|
||||
|
@ -711,9 +681,9 @@ errors: No known data errors</screen>
|
|||
<sect3>
|
||||
<title>ZFS Reservations</title>
|
||||
|
||||
<para>ZFS supports two types of space reservations.
|
||||
This section will explain the basics of each one,
|
||||
and include some usage instructions.</para>
|
||||
<para>ZFS supports two types of space reservations. This
|
||||
section explains the basics of each and includes some usage
|
||||
instructions.</para>
|
||||
|
||||
<para>The <literal>reservation</literal> property makes it
|
||||
possible to reserve a minimum amount of space guaranteed
|
||||
|
@ -732,23 +702,22 @@ errors: No known data errors</screen>
|
|||
not counted by the <literal>refreservation</literal>
|
||||
amount and so do not encroach on the space set.</para>
|
||||
|
||||
<para>Reservations of any sort are useful in many
|
||||
situations, for example planning and testing the
|
||||
suitability of disk space allocation in a new system, or
|
||||
ensuring that enough space is available on file systems
|
||||
for system recovery procedures and files.</para>
|
||||
<para>Reservations of any sort are useful in many situations,
|
||||
such as planning and testing the suitability of disk space
|
||||
allocation in a new system, or ensuring that enough space is
|
||||
available on file systems for system recovery procedures and
|
||||
files.</para>
|
||||
|
||||
<para>The general format of the <literal>reservation</literal>
|
||||
property is
|
||||
<literal>reservation=<replaceable>size</replaceable></literal>,
|
||||
<literal>reservation=<replaceable>size</replaceable></literal>,
|
||||
so to set a reservation of 10 GB on
|
||||
<filename>storage/home/bob</filename>the below command is
|
||||
used:</para>
|
||||
<filename>storage/home/bob</filename>, use:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set reservation=10G storage/home/bob</userinput></screen>
|
||||
|
||||
<para>To make sure that no reservation is set, or to remove a
|
||||
reservation, instead use:</para>
|
||||
reservation, use:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set reservation=none storage/home/bob</userinput></screen>
|
||||
|
||||
|
@ -770,24 +739,24 @@ errors: No known data errors</screen>
|
|||
<sect1 id="filesystems-linux">
|
||||
<title>&linux; Filesystems</title>
|
||||
|
||||
<para>This section will describe some of the &linux; filesystems
|
||||
<para>This section describes some of the &linux; filesystems
|
||||
supported by &os;.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Ext2FS</title>
|
||||
<title><acronym>ext2</acronym></title>
|
||||
|
||||
<para>The &man.ext2fs.5; file system kernel implementation was
|
||||
written by Godmar Back, and the driver first appeared in
|
||||
&os; 2.2. In &os; 8 and earlier, the code is licensed under
|
||||
the <acronym>GNU</acronym> Public License, however under &os;
|
||||
9, the code has been rewritten and it is now licensed under
|
||||
the <acronym>BSD</acronym> license.</para>
|
||||
<para>The &man.ext2fs.5; file system kernel implementation 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 will allow the &os; kernel
|
||||
to both read and write to <acronym>ext2</acronym> file
|
||||
systems.</para>
|
||||
<para>The &man.ext2fs.5; driver allows the &os; kernel to both
|
||||
read and write to <acronym>ext2</acronym> file systems.</para>
|
||||
|
||||
<para>First, load the kernel loadable module:</para>
|
||||
<para>To access an <acronym>ext2</acronym> file system, first
|
||||
load the kernel loadable module:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload ext2fs</userinput></screen>
|
||||
|
||||
|
@ -800,11 +769,10 @@ errors: No known data errors</screen>
|
|||
<sect2>
|
||||
<title>XFS</title>
|
||||
|
||||
<para>The X file system, <acronym>XFS</acronym>, was originally
|
||||
written by <acronym>SGI</acronym> for the
|
||||
<acronym>IRIX</acronym> operating system, and they ported it
|
||||
to &linux;. The source code has been released under the
|
||||
<acronym>GNU</acronym> Public License. See
|
||||
<para><acronym>XFS</acronym> was originally written by
|
||||
<acronym>SGI</acronym> for the <acronym>IRIX</acronym>
|
||||
operating system and was then ported to &linux; and
|
||||
released under the <acronym>GPL</acronym>. See
|
||||
<ulink url="http://oss.sgi.com/projects/xfs">this page</ulink>
|
||||
for more details. The &os; port was started by Russel
|
||||
Cattelan, &a.kan;, and &a.rodrigc;.</para>
|
||||
|
@ -814,21 +782,19 @@ errors: No known data errors</screen>
|
|||
|
||||
<screen>&prompt.root; <userinput>kldload xfs</userinput></screen>
|
||||
|
||||
<para>The &man.xfs.5; driver lets the &os; kernel access
|
||||
XFS filesystems. However, at present only read-only
|
||||
access is supported. Writing to a volume is not
|
||||
possible.</para>
|
||||
<para>The &man.xfs.5; driver lets the &os; kernel access XFS
|
||||
filesystems. However, only read-only access is supported and
|
||||
writing to a volume is not possible.</para>
|
||||
|
||||
<para>To mount a &man.xfs.5; volume located on
|
||||
<filename>/dev/ad1s1</filename>, do the following:</para>
|
||||
<filename>/dev/ad1s1</filename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -t xfs /dev/ad1s1 /mnt</userinput></screen>
|
||||
|
||||
<para>Also useful to note is that the
|
||||
<filename role="package">sysutils/xfsprogs</filename> port
|
||||
contains the <command>mkfs.xfs</command> utility which enables
|
||||
creation of <acronym>XFS</acronym> filesystems, plus utilities
|
||||
for analysing and repairing them.</para>
|
||||
<para>The <filename role="package">sysutils/xfsprogs</filename>
|
||||
port includes the <command>mkfs.xfs</command> which enables
|
||||
the creation of <acronym>XFS</acronym> filesystems, plus
|
||||
utilities for analyzing and repairing them.</para>
|
||||
|
||||
<para>The <literal>-p</literal> flag to
|
||||
<command>mkfs.xfs</command> can be used to create an
|
||||
|
@ -842,11 +808,11 @@ errors: No known data errors</screen>
|
|||
|
||||
<para>The Reiser file system, ReiserFS, was ported to
|
||||
&os; by &a.dumbbell;, and has been released under the
|
||||
<acronym>GNU</acronym> Public License.</para>
|
||||
<acronym>GPL</acronym> .</para>
|
||||
|
||||
<para>The ReiserFS driver will permit the &os; kernel to
|
||||
access ReiserFS file systems and read their contents, but not
|
||||
write to them, currently.</para>
|
||||
<para>The ReiserFS driver permits the &os; kernel to access
|
||||
ReiserFS file systems and read their contents, but not
|
||||
write to them.</para>
|
||||
|
||||
<para>First, the kernel-loadable module needs to be
|
||||
loaded:</para>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -35,11 +35,11 @@
|
|||
control utilities which use the framework for configuration.
|
||||
This chapter will not go into in depth discussion on how GEOM
|
||||
handles or controls I/O, the underlying subsystem, or code.
|
||||
This information is provided through the &man.geom.4; manual
|
||||
page and its various SEE ALSO references. This chapter is also
|
||||
not a definitive guide to <acronym>RAID</acronym>
|
||||
configurations. Only GEOM-supported <acronym>RAID</acronym>
|
||||
classifications will be discussed.</para>
|
||||
This information is provided in &man.geom.4; and its various
|
||||
<literal>SEE ALSO</literal> references. This chapter is also
|
||||
not a definitive guide to <acronym>RAID</acronym> configurations
|
||||
and only GEOM-supported <acronym>RAID</acronym> classifications
|
||||
will be discussed.</para>
|
||||
|
||||
<para>After reading this chapter, you will know:</para>
|
||||
|
||||
|
@ -70,13 +70,13 @@
|
|||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Understand how &os; treats disk devices
|
||||
(<xref linkend="disks"/>).</para>
|
||||
<para>Understand how &os; treats <link
|
||||
linkend="disks">disk devices</link>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Know how to configure and install a new &os; kernel
|
||||
(<xref linkend="kernelconfig"/>).</para>
|
||||
<para>Know how to configure and install a new <link
|
||||
linkend="kernelconfig">&os; kernel</link>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
@ -84,12 +84,12 @@
|
|||
<sect1 id="GEOM-intro">
|
||||
<title>GEOM Introduction</title>
|
||||
|
||||
<para>GEOM permits access and control to classes — Master
|
||||
Boot Records, <acronym>BSD</acronym> labels, etc — through
|
||||
the use of providers, or the special files in
|
||||
<filename class="directory">/dev</filename>. Supporting various
|
||||
software <acronym>RAID</acronym> configurations, GEOM will
|
||||
transparently provide access to the operating system and
|
||||
<para>GEOM permits access and control to classes, such as Master
|
||||
Boot Records and <acronym>BSD</acronym> labels, through the use
|
||||
of providers, or the special files in <filename
|
||||
class="directory">/dev</filename>. By supporting various
|
||||
software <acronym>RAID</acronym> configurations, GEOM
|
||||
transparently provides access to the operating system and
|
||||
operating system utilities.</para>
|
||||
</sect1>
|
||||
|
||||
|
@ -117,13 +117,13 @@
|
|||
<primary>Striping</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Striping is a method used to combine several disk drives
|
||||
into a single volume. In many cases, this is done through the
|
||||
use of hardware controllers. The GEOM disk subsystem provides
|
||||
software support for <acronym>RAID</acronym>0, also known as
|
||||
disk striping.</para>
|
||||
<para>Striping combine several disk drives into a single volume.
|
||||
In many cases, this is done through the use of hardware
|
||||
controllers. The GEOM disk subsystem provides software support
|
||||
for <acronym>RAID</acronym>0, also known as disk
|
||||
striping.</para>
|
||||
|
||||
<para>In a <acronym>RAID</acronym>0 system, data are split up in
|
||||
<para>In a <acronym>RAID</acronym>0 system, data is split into
|
||||
blocks that get written across all the drives in the array.
|
||||
Instead of having to wait on the system to write 256k to one
|
||||
disk, a <acronym>RAID</acronym>0 system can simultaneously write
|
||||
|
@ -168,7 +168,7 @@
|
|||
<para>Determine the device names for the disks which will
|
||||
be striped, and create the new stripe device. For example,
|
||||
to stripe two unused and unpartitioned
|
||||
<acronym>ATA</acronym> disks, for example
|
||||
<acronym>ATA</acronym> disks with device names of
|
||||
<filename>/dev/ad2</filename> and
|
||||
<filename>/dev/ad3</filename>:</para>
|
||||
|
||||
|
@ -179,21 +179,21 @@ Done.</screen>
|
|||
</step>
|
||||
|
||||
<step>
|
||||
<para>Write a standard label, also known as a partition
|
||||
table, on the new volume and install the default
|
||||
bootstrap code:</para>
|
||||
<para>Write a standard label, also known as a partition table,
|
||||
on the new volume and install the default bootstrap
|
||||
code:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>This process should have created two other devices
|
||||
in the <filename class="directory">/dev/stripe</filename>
|
||||
directory in addition to the <devicename>st0</devicename>
|
||||
device. Those include <devicename>st0a</devicename> and
|
||||
<devicename>st0c</devicename>. At this point a file system
|
||||
may be created on the <devicename>st0a</devicename> device
|
||||
with the <command>newfs</command> utility:</para>
|
||||
<para>This process should create two other devices in
|
||||
<filename class="directory">/dev/stripe</filename> in
|
||||
addition to <devicename>st0</devicename>. Those include
|
||||
<devicename>st0a</devicename> and
|
||||
<devicename>st0c</devicename>. At this point, a file system
|
||||
may be created on <devicename>st0a</devicename> using
|
||||
<command>newfs</command>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen>
|
||||
|
||||
|
@ -209,10 +209,9 @@ Done.</screen>
|
|||
|
||||
<para>To mount this striped file system automatically during the
|
||||
boot process, place the volume information in
|
||||
<filename>/etc/fstab</filename> file. For this purpose, a
|
||||
permanent mount point, named
|
||||
<filename class="directory">stripe</filename>, is
|
||||
created:</para>
|
||||
<filename>/etc/fstab</filename>. In this example, a
|
||||
permanent mount point, named <filename
|
||||
class="directory">stripe</filename>, is created:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mkdir /stripe</userinput>
|
||||
&prompt.root; <userinput>echo "/dev/stripe/st0a /stripe ufs rw 2 2" \</userinput>
|
||||
|
@ -249,8 +248,8 @@ Done.</screen>
|
|||
replace the failed drive without user interruption.</para>
|
||||
|
||||
<para>Two common situations are illustrated in these examples.
|
||||
The first is creating a mirror out of two new drives and using
|
||||
it as a replacement for an existing single drive. The second
|
||||
The first creates a mirror out of two new drives and uses it
|
||||
as a replacement for an existing single drive. The second
|
||||
example creates a mirror on a single new drive, copies the old
|
||||
drive's data to it, then inserts the old drive into the
|
||||
mirror. While this procedure is slightly more complicated, it
|
||||
|
@ -323,14 +322,14 @@ Done.</screen>
|
|||
|
||||
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
|
||||
|
||||
<para>Create the mirror with the two new drives.</para>
|
||||
<para>Create the mirror with the two new drives:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror label -v gm0 /dev/ada1 /dev/ada2</userinput></screen>
|
||||
|
||||
<para><devicename>gm0</devicename> is a user-chosen device name
|
||||
assigned to the new mirror. After the mirror has been
|
||||
started, this device name will appear in the
|
||||
<filename>/dev/mirror/</filename> directory.</para>
|
||||
started, this device name will appear in
|
||||
<filename>/dev/mirror/</filename>.</para>
|
||||
|
||||
<para>MBR and bsdlabel partition tables can now be created on
|
||||
the mirror with &man.gpart.8;. Here we show a traditional
|
||||
|
@ -384,8 +383,8 @@ Done.</screen>
|
|||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput>
|
||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput></screen>
|
||||
|
||||
<para>Filesystems from the original disk
|
||||
(<devicename>ada0</devicename>) can now be copied onto the
|
||||
<para>Filesystems from the original
|
||||
<devicename>ada0</devicename> disk can now be copied onto the
|
||||
mirror with &man.dump.8; and &man.restore.8;.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
|
||||
|
@ -419,8 +418,8 @@ Done.</screen>
|
|||
are identical, it does not matter which is selected to
|
||||
boot.</para>
|
||||
|
||||
<para>See the
|
||||
<link linkend="gmirror-troubleshooting">Troubleshooting</link>
|
||||
<para>See the <link
|
||||
linkend="gmirror-troubleshooting">Troubleshooting</link>
|
||||
section if there are problems booting. Powering down and
|
||||
disconnecting the original <devicename>ada0</devicename> disk
|
||||
will allow it to be kept as an offline backup.</para>
|
||||
|
@ -436,19 +435,19 @@ Done.</screen>
|
|||
single disk, <devicename>ada0</devicename>. A new disk,
|
||||
<devicename>ada1</devicename>, has been connected to the
|
||||
system. A one-disk mirror will be created on the new disk,
|
||||
the existing system copied onto it, and then the old disk will be
|
||||
inserted into the mirror. This slightly complex procedure is
|
||||
required because &man.gmirror.8; needs to put a 512-byte block
|
||||
of metadata at the end of each disk, and the existing
|
||||
the existing system copied onto it, and then the old disk will
|
||||
be inserted into the mirror. This slightly complex procedure
|
||||
is required because &man.gmirror.8; needs to put a 512-byte
|
||||
block of metadata at the end of each disk, and the existing
|
||||
<devicename>ada0</devicename> has usually had all of its space
|
||||
already allocated.</para>
|
||||
|
||||
<para>Load the &man.gmirror.8; kernel module.</para>
|
||||
<para>Load the &man.gmirror.8; kernel module:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
|
||||
|
||||
<para>Check the media size of the original disk with
|
||||
&man.diskinfo.8;.</para>
|
||||
&man.diskinfo.8;:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>diskinfo -v ada0 | head -n3</userinput>
|
||||
/dev/ada0
|
||||
|
@ -461,7 +460,7 @@ Done.</screen>
|
|||
size. This drive does not store any data, but is used only to
|
||||
limit the size of the mirror. When &man.gmirror.8; creates
|
||||
the mirror, it will restrict the capacity to the size of
|
||||
<devicename>gzero.nop</devicename> even if the new drive
|
||||
<devicename>gzero.nop</devicename>, even if the new drive
|
||||
(<devicename>ada1</devicename>) has more space. Note that the
|
||||
<replaceable>1000204821504</replaceable> in the second line
|
||||
should be equal to <devicename>ada0</devicename>'s media size
|
||||
|
@ -502,7 +501,7 @@ Done.</screen>
|
|||
be explained later.</para>
|
||||
|
||||
<para>In either case, partition tables on the primary disk
|
||||
should be copied first. It can be done by using &man.gpart.8;
|
||||
should be copied first with the &man.gpart.8;
|
||||
<command>backup</command> and <command>restore</command>
|
||||
subcommands.</para>
|
||||
|
||||
|
@ -527,11 +526,12 @@ BSD 8
|
|||
6 freebsd-ufs 130023424 838860800
|
||||
7 freebsd-ufs 968884224 984640881</screen>
|
||||
|
||||
<para>If the whole disk was used in the output of &man.gpart.8;
|
||||
<command>show</command>, the capacity in these partition
|
||||
tables must be reduced by one sector. Edit the two files,
|
||||
reducing the size of both the slice and last partition by one.
|
||||
These are the last numbers in each listing.</para>
|
||||
<para>If the output of <command>gpart show</command> shows no
|
||||
free space at the end of the disk, the size of both the slice
|
||||
and the last partition must be reduced by one sector. Edit
|
||||
the two files, reducing the size of both the slice and last
|
||||
partition by one. These are the last numbers in each
|
||||
listing.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cat table.ada0</userinput>
|
||||
MBR 4
|
||||
|
@ -550,13 +550,13 @@ BSD 8
|
|||
disk, these two files can be used without modification.</para>
|
||||
|
||||
<para>Now restore the partition table into
|
||||
<devicename>mirror/gm0</devicename>.</para>
|
||||
<devicename>mirror/gm0</devicename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gpart restore mirror/gm0 < table.ada0</userinput>
|
||||
&prompt.root; <userinput>gpart restore mirror/gm0s1 < table.ada0s1</userinput></screen>
|
||||
|
||||
<para>Check the partition table with the &man.gpart.8;
|
||||
<command>show</command>. This example has
|
||||
<para>Check the partition table with
|
||||
<command>gpart show</command>. This example has
|
||||
<devicename>gm0s1a</devicename> for <filename>/</filename>,
|
||||
<devicename>gm0s1d</devicename> for <filename>/var</filename>,
|
||||
<devicename>gm0s1e</devicename> for <filename>/usr</filename>,
|
||||
|
@ -707,8 +707,7 @@ mirror/gm0 COMPLETE ada1 (ACTIVE)
|
|||
|
||||
<para>BIOS settings may have to be changed to boot from one
|
||||
of the new mirrored drives. Either mirror drive can be
|
||||
used for booting. As components of a mirror, they contain
|
||||
identical data.</para>
|
||||
used for booting, as they contain identical data.</para>
|
||||
</sect4>
|
||||
|
||||
<sect4>
|
||||
|
@ -742,10 +741,10 @@ mountroot></screen>
|
|||
<para>Forgetting to load the
|
||||
<filename>geom_mirror</filename> module in
|
||||
<filename>/boot/loader.conf</filename> can cause this
|
||||
problem. To fix it, boot from a &os;-9 or later CD or USB
|
||||
stick and choose <literal>Shell</literal> at the first
|
||||
prompt. Then load the mirror module and mount the mirror
|
||||
device:</para>
|
||||
problem. To fix it, boot from a &os; 9.0 or later
|
||||
installation media and choose <literal>Shell</literal> at
|
||||
the first prompt. Then load the mirror module and mount
|
||||
the mirror device:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror load</userinput>
|
||||
&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen>
|
||||
|
@ -759,8 +758,8 @@ mountroot></screen>
|
|||
|
||||
<para>Other problems that cause <literal>error 19</literal>
|
||||
require more effort to fix. Enter
|
||||
<literal>ufs:/dev/ada0s1a</literal> at the prompt.
|
||||
Although the system should boot from
|
||||
<literal>ufs:/dev/ada0s1a</literal> at the boot loader
|
||||
prompt. Although the system should boot from
|
||||
<devicename>ada0</devicename>, another prompt to select a
|
||||
shell appears because <filename>/etc/fstab</filename> is
|
||||
incorrect. Press the Enter key at the prompt. Undo the
|
||||
|
@ -780,24 +779,20 @@ mountroot></screen>
|
|||
<sect2>
|
||||
<title>Recovering from Disk Failure</title>
|
||||
|
||||
<para>The wonderful part about disk mirroring is that an
|
||||
individual disk can fail without causing the mirror to lose
|
||||
any data.</para>
|
||||
<para>The benefit of disk mirroring is that an individual disk
|
||||
can fail without causing the mirror to lose any data. In the
|
||||
above example, if <devicename>ada0</devicename> fails, the
|
||||
mirror will continue to work, providing data from the
|
||||
remaining working drive, <devicename>ada1</devicename>.</para>
|
||||
|
||||
<para><devicename>ada0</devicename> is one of two drives making
|
||||
up the mirror in the previous example. If
|
||||
<devicename>ada0</devicename> fails, the mirror will continue
|
||||
to work, providing data from the remaining working drive,
|
||||
<devicename>ada1</devicename>.</para>
|
||||
|
||||
<para>To replace the failed drive, the computer is shut down and
|
||||
the failed drive is physically replaced with a new drive of
|
||||
equal or greater capacity. Manufacturers use somewhat
|
||||
arbitrary values when rating drives in gigabytes, and the
|
||||
only way to really be sure is to compare the total count of
|
||||
sectors shown by <command>diskinfo -v</command>. A drive with
|
||||
larger capacity than the mirror will work, although the extra
|
||||
space on the new drive will not be used.</para>
|
||||
<para>To replace the failed drive, shut down the system and
|
||||
physically replace the failed drive with a new drive of equal
|
||||
or greater capacity. Manufacturers use somewhat arbitrary
|
||||
values when rating drives in gigabytes, and the only way to
|
||||
really be sure is to compare the total count of sectors shown
|
||||
by <command>diskinfo -v</command>. A drive with larger
|
||||
capacity than the mirror will work, although the extra space
|
||||
on the new drive will not be used.</para>
|
||||
|
||||
<para>After the computer is powered back up, the mirror will be
|
||||
running in a <quote>degraded</quote> mode with only one drive.
|
||||
|
@ -866,18 +861,18 @@ mountroot></screen>
|
|||
</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 reading 1024KB from a
|
||||
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 reading 1024KB from a
|
||||
<acronym>RAID</acronym>3 implementation will access all disks in
|
||||
the array. Performance can be enhanced by using multiple
|
||||
disk controllers. The <acronym>RAID</acronym>3 array provides a
|
||||
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, e.g.,
|
||||
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
|
||||
|
@ -885,7 +880,7 @@ mountroot></screen>
|
|||
size, since I/O 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, etc. (2^n + 1).</para>
|
||||
equal to 3, 5, 9, 17, and so on, or 2^n + 1.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Creating a Dedicated <acronym>RAID</acronym>3
|
||||
|
@ -955,11 +950,7 @@ Done.</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>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>The last step is to mount the file system:</para>
|
||||
been created and is ready to be mounted:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount /dev/raid3/gr0p1 /multimedia/</userinput></screen>
|
||||
|
||||
|
@ -975,16 +966,16 @@ Done.</screen>
|
|||
<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 the system initialization,
|
||||
add the following line to the
|
||||
<filename>/boot/loader.conf</filename> file:</para>
|
||||
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 the
|
||||
<filename>/etc/fstab</filename> file in order to
|
||||
<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>
|
||||
|
||||
|
@ -998,7 +989,7 @@ Done.</screen>
|
|||
<title>GEOM Gate Network Devices</title>
|
||||
|
||||
<para>GEOM supports the remote use of devices, such as disks,
|
||||
CD-ROMs, files, etc. through the use of the gate utilities.
|
||||
CD-ROMs, and files through the use of the gate utilities.
|
||||
This is similar to <acronym>NFS</acronym>.</para>
|
||||
|
||||
<para>To begin, an exports file must be created. This file
|
||||
|
@ -1010,8 +1001,8 @@ Done.</screen>
|
|||
|
||||
<programlisting>192.168.1.0/24 RW /dev/da0s4d</programlisting>
|
||||
|
||||
<para>It will allow all hosts inside the private network access
|
||||
the file system on the <devicename>da0s4d</devicename>
|
||||
<para>This allows all hosts inside the specified private network
|
||||
access to the file system on the <devicename>da0s4d</devicename>
|
||||
partition.</para>
|
||||
|
||||
<para>To export this device, ensure it is not currently mounted,
|
||||
|
@ -1019,25 +1010,24 @@ Done.</screen>
|
|||
|
||||
<screen>&prompt.root; <userinput>ggated</userinput></screen>
|
||||
|
||||
<para>Now to <command>mount</command> the device on the client
|
||||
<para>To <command>mount</command> the device on the client
|
||||
machine, issue the following commands:</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>From here on, the device may be accessed through the
|
||||
<filename class="directory">/mnt</filename> mount point.</para>
|
||||
<para>The device may now be accessed through the <filename
|
||||
class="directory">/mnt</filename> mount point.</para>
|
||||
|
||||
<note>
|
||||
<para>It should be pointed out that this will fail if the device
|
||||
is currently mounted on either the server machine or any other
|
||||
machine on the network.</para>
|
||||
<para>However, this will fail if the device is currently mounted
|
||||
on either the server machine or any other machine on the
|
||||
network.</para>
|
||||
</note>
|
||||
|
||||
<para>When the device is no longer needed, it may be safely
|
||||
unmounted with the &man.umount.8; command, similar to any other
|
||||
disk device.</para>
|
||||
<para>When the device is no longer needed, unmount it with
|
||||
&man.umount.8;, similar to any other disk device.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="geom-glabel">
|
||||
|
@ -1050,34 +1040,32 @@ ggate0
|
|||
<primary>Disk Labels</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>During system initialization, the &os; kernel will create
|
||||
<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 very likely
|
||||
that a flash device may be handed the device name of
|
||||
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
|
||||
<devicename>da0</devicename> and the original
|
||||
<devicename>da0</devicename> shifted to
|
||||
<devicename>da1</devicename>. This will cause issues mounting
|
||||
file systems if they are listed in
|
||||
<filename>/etc/fstab</filename>, effectively, this may also
|
||||
prevent the system from booting.</para>
|
||||
<filename>/etc/fstab</filename> which may also prevent the
|
||||
system from booting.</para>
|
||||
|
||||
<para>One solution to this issue is to chain the
|
||||
<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 could be to use only a single
|
||||
<acronym>ATA</acronym> drive and never list the
|
||||
<acronym>SCSI</acronym> devices in
|
||||
<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 available. By using the
|
||||
<command>glabel</command> utility, an administrator or user may
|
||||
label their disk devices and use these labels in
|
||||
<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
|
||||
|
@ -1086,39 +1074,33 @@ ggate0
|
|||
through.</para>
|
||||
|
||||
<note>
|
||||
<para>This goes without saying that a label be permanent. The
|
||||
<command>glabel</command> utility may be used to create both a
|
||||
transient and permanent label. Only the permanent label will
|
||||
remain consistent across reboots. See the &man.glabel.8;
|
||||
manual page for more information on the differences between
|
||||
labels.</para>
|
||||
<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>There are two types of labels, a generic label and a
|
||||
file system label. Labels can be permanent or temporary.
|
||||
Permanent labels can be created with the &man.tunefs.8;
|
||||
or &man.newfs.8; commands. They will then be created
|
||||
in a sub-directory of
|
||||
<filename class="directory">/dev</filename>, which will be
|
||||
named according to their file system type. For example,
|
||||
<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
|
||||
class="directory">/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
|
||||
the <filename class="directory">/dev/ufs</filename> directory.
|
||||
Permanent labels can also be created with the <command>glabel
|
||||
label</command> command. These are not file system specific,
|
||||
and will be created in the
|
||||
<filename class="directory">/dev/label</filename>
|
||||
directory.</para>
|
||||
<filename class="directory">/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
|
||||
class="directory">/dev/label</filename>.</para>
|
||||
|
||||
<para>A temporary label will go away with the next reboot.
|
||||
These labels will be created in the
|
||||
<filename class="directory">/dev/label</filename> directory
|
||||
and are perfect for experimentation. A temporary label can be
|
||||
created using the <command>glabel create</command> command.
|
||||
For more information, please read the manual page of
|
||||
&man.glabel.8;.</para>
|
||||
<para>Temporary labels are destroyed at the next reboot. These
|
||||
labels are created in <filename
|
||||
class="directory">/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)? -->
|
||||
|
@ -1131,14 +1113,12 @@ ggate0
|
|||
|
||||
<warning>
|
||||
<para>If the file system is full, this may cause data
|
||||
corruption; however, if the file system is full then the
|
||||
main goal should be removing stale files and not adding
|
||||
labels.</para>
|
||||
corruption.</para>
|
||||
</warning>
|
||||
|
||||
<para>A label should now exist in
|
||||
<filename class="directory">/dev/ufs</filename> which may be
|
||||
added to <filename>/etc/fstab</filename>:</para>
|
||||
<para>A label should now exist in <filename
|
||||
class="directory">/dev/ufs</filename> which may be added
|
||||
to <filename>/etc/fstab</filename>:</para>
|
||||
|
||||
<programlisting>/dev/ufs/home /home ufs rw 2 2</programlisting>
|
||||
|
||||
|
@ -1147,7 +1127,7 @@ ggate0
|
|||
to run <command>tunefs</command>.</para>
|
||||
</note>
|
||||
|
||||
<para>Now the file system may be mounted like normal:</para>
|
||||
<para>Now the file system may be mounted:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount /home</userinput></screen>
|
||||
|
||||
|
@ -1160,8 +1140,8 @@ ggate0
|
|||
|
||||
<para>File systems may also be created with a default label
|
||||
by using the <option>-L</option> flag with
|
||||
<command>newfs</command>. See the &man.newfs.8; manual page
|
||||
for more information.</para>
|
||||
<command>newfs</command>. Refer to &man.newfs.8; for
|
||||
more information.</para>
|
||||
|
||||
<para>The following command can be used to destroy the
|
||||
label:</para>
|
||||
|
@ -1185,7 +1165,7 @@ ggate0
|
|||
<filename class="directory">/</filename>,
|
||||
<filename class="directory">/var</filename>,
|
||||
<filename class="directory">/usr</filename> and
|
||||
<filename class="directory">/tmp</filename> file systems, as
|
||||
<filename class="directory">/tmp</filename>, as
|
||||
well as a swap partition.</para>
|
||||
|
||||
<para>Reboot the system, and at the &man.loader.8; prompt,
|
||||
|
@ -1207,8 +1187,8 @@ GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap
|
|||
<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> file will
|
||||
look like the following:</para>
|
||||
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
|
||||
|
@ -1232,24 +1212,23 @@ devfs on /dev (devfs, local)
|
|||
<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 the
|
||||
<filename class="directory">/dev/ufsid</filename> directory
|
||||
and are created automatically during system startup. It is
|
||||
possible to use <literal>ufsid</literal> labels to mount
|
||||
partitions using the <filename>/etc/fstab</filename> facility.
|
||||
Use the <command>glabel status</command> command to receive a
|
||||
list of file systems and their corresponding
|
||||
<literal>ufsid</literal> labels:</para>
|
||||
<literal>ufsid</literal>. These labels may be found in
|
||||
<filename class="directory">/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 <devicename>ad4s1d</devicename>
|
||||
represents the <filename class="directory">/var</filename>
|
||||
file system, while <devicename>ad4s1f</devicename> represents
|
||||
the <filename class="directory">/usr</filename> file system.
|
||||
<para>In the above example, <devicename>ad4s1d</devicename>
|
||||
represents <filename class="directory">/var</filename>,
|
||||
while <devicename>ad4s1f</devicename> represents
|
||||
<filename class="directory">/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>
|
||||
|
@ -1258,9 +1237,9 @@ ufsid/486b6fc16926168e N/A ad4s1f</screen>
|
|||
/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 create permanent
|
||||
labels for them manually, while still enjoying the benefits of
|
||||
device-name independent mounting.</para>
|
||||
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>
|
||||
|
||||
|
@ -1274,51 +1253,50 @@ ufsid/486b6fc16926168e N/A ad4s1f</screen>
|
|||
<primary>Journaling</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>With the release of &os; 7.0, the long awaited feature
|
||||
of journals has been implemented. The implementation itself is
|
||||
provided through the <acronym>GEOM</acronym> subsystem and is
|
||||
easily configured via the &man.gjournal.8; utility.</para>
|
||||
<para>Beginning with &os; 7.0, support for UFS journals is
|
||||
available. The implementation is provided through the
|
||||
<acronym>GEOM</acronym> subsystem and is configured using
|
||||
&man.gjournal.8;.</para>
|
||||
|
||||
<para>What is journaling? Journaling capability stores a log of
|
||||
file system transactions, i.e.: changes that make up a complete
|
||||
disk write operation, before meta-data and file writes are
|
||||
committed to the disk proper. This transaction log can later
|
||||
be replayed to redo file system transactions, preventing file
|
||||
system inconsistencies.</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 is yet 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 is an image of the file system, an actual log is
|
||||
stored in disk space specifically reserved for this task, and in
|
||||
some cases may be stored on another disk entirely.</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, and in
|
||||
some cases, may be stored on another disk entirely.</para>
|
||||
|
||||
<para>Unlike other file system journaling implementations, the
|
||||
<command>gjournal</command> method is block based and not
|
||||
implemented as part of the file system - only as a
|
||||
implemented as part of the file system. It is a
|
||||
<acronym>GEOM</acronym> extension.</para>
|
||||
|
||||
<para>To enable support for <command>gjournal</command>, the
|
||||
&os; kernel must have the following option - which is the
|
||||
default on &os; 7.0 and later systems:</para>
|
||||
&os; kernel must have the following option which is the
|
||||
default on &os; 7.0 and later:</para>
|
||||
|
||||
<programlisting>options UFS_GJOURNAL</programlisting>
|
||||
|
||||
<para>If journaled volumes need to be mounted during startup, the
|
||||
<filename>geom_journal.ko</filename> kernel module will also
|
||||
have to be loaded, by adding the following line in
|
||||
<filename>geom_journal.ko</filename> kernel module needs to be
|
||||
loaded, by adding the following line to
|
||||
<filename>/boot/loader.conf</filename>:</para>
|
||||
|
||||
<programlisting>geom_journal_load="YES"</programlisting>
|
||||
|
||||
<para>Alternatively, this function can also be built into a custom
|
||||
<para>Alternatively, this function can be built into a custom
|
||||
kernel, by adding the following line in the kernel configuration
|
||||
file:</para>
|
||||
|
||||
<programlisting>options GEOM_JOURNAL</programlisting>
|
||||
|
||||
<para>Creating a journal on a free file system may now be done
|
||||
using the following steps, considering that the
|
||||
using the following steps. In this example,
|
||||
<devicename>da4</devicename> is a new <acronym>SCSI</acronym>
|
||||
disk:</para>
|
||||
|
||||
|
@ -1332,12 +1310,11 @@ ufsid/486b6fc16926168e N/A ad4s1f</screen>
|
|||
|
||||
<screen>&prompt.root; <userinput>newfs -O 2 -J /dev/da4.journal</userinput></screen>
|
||||
|
||||
<para>The previously issued command will create a
|
||||
<acronym>UFS</acronym>2 file system on the journaled
|
||||
device.</para>
|
||||
<para>This command will creates a <acronym>UFS</acronym>2 file
|
||||
system on the journaled device.</para>
|
||||
|
||||
<para>Effectively <command>mount</command> the device at the
|
||||
desired point with:</para>
|
||||
<para><command>mount</command> the device at the desired point
|
||||
with:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount /dev/da4.journal <replaceable>/mnt</replaceable></userinput></screen>
|
||||
|
||||
|
@ -1351,21 +1328,21 @@ ufsid/486b6fc16926168e N/A ad4s1f</screen>
|
|||
<devicename>ad4s2.journal</devicename>.</para>
|
||||
</note>
|
||||
|
||||
<para>For better performance, keeping the journal on another disk
|
||||
may be desired. For these cases, the journal provider or
|
||||
storage device should be listed after the device to enable
|
||||
journaling on. Journaling may also be enabled on current file
|
||||
systems by using <command>tunefs</command>; however, always make
|
||||
a backup before attempting to alter a file system. In most
|
||||
cases, the <command>gjournal</command> will fail if it is unable
|
||||
to create the actual journal but this does not protect against
|
||||
data loss incurred as a result of misusing
|
||||
<para>For better performance, the journal may be kept on another
|
||||
disk. In this configuration, the journal provider or storage
|
||||
device should be listed after the device to enable journaling
|
||||
on. 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 a 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>.</para>
|
||||
|
||||
<para>It is also possible to journal the boot disk of a &os;
|
||||
system. Please refer to the article <ulink
|
||||
system. Refer to the article <ulink
|
||||
url="&url.articles.gjournal-desktop;">Implementing UFS
|
||||
Journaling on a Desktop PC</ulink> for detailed instructions
|
||||
on this task.</para>
|
||||
Journaling on a Desktop PC</ulink> for detailed
|
||||
instructions.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -556,6 +556,7 @@ jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</rep
|
|||
usage of its features. If the presented steps below look
|
||||
too complicated, it is advised to take a look at a simpler
|
||||
system such as <filename
|
||||
role="package">sysutils/qjail</filename> or <filename
|
||||
role="package">sysutils/ezjail</filename>, which provides
|
||||
an easier method of administering &os; jails and is not as
|
||||
sophisticated as this setup.</para>
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -59,11 +59,9 @@
|
|||
run about 90% of all Linux applications without modification.
|
||||
This includes applications such as
|
||||
<application>&staroffice;</application>, the Linux version of
|
||||
<application>&netscape;</application>,
|
||||
<application>&adobe; &acrobat;</application>,
|
||||
<application>&realplayer;</application>,
|
||||
<application>&oracle;</application>,
|
||||
<application>&wordperfect;</application>,
|
||||
<application>Doom</application>,
|
||||
<application>Quake</application>, and more. It is also reported
|
||||
that in some situations, Linux binaries perform better on
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -11,24 +11,6 @@
|
|||
<sect1 id="mirrors-cdrom">
|
||||
<title>CDROM and DVD Publishers</title>
|
||||
|
||||
<sect2>
|
||||
<title>Retail Boxed Products</title>
|
||||
|
||||
<para>&os; is available as a boxed product (&os; CDs,
|
||||
additional software, and printed documentation) from several
|
||||
retailers:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<address>
|
||||
<otheraddr>Frys Electronics</otheraddr>
|
||||
WWW: <otheraddr><ulink
|
||||
url="http://www.frys.com/"></ulink></otheraddr>
|
||||
</address>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>CD and DVD Sets</title>
|
||||
|
||||
|
|
|
@ -178,11 +178,8 @@
|
|||
<sect2 id="printing-intro-why">
|
||||
<title>Why You Should Use the Spooler</title>
|
||||
|
||||
<para>If you are the sole user of your system, you may be
|
||||
wondering why you should bother with the spooler when you do
|
||||
not need access control, header pages, or printer accounting.
|
||||
While it is possible to enable direct access to a printer,
|
||||
you should use the spooler anyway since:</para>
|
||||
<para>The spooler still provides benefit on a single-user system
|
||||
and should be used because:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
|
|
@ -784,8 +784,7 @@ PLIST_DIRS= lib/X11/oneko</programlisting>
|
|||
variable value. Example:</para>
|
||||
|
||||
<programlisting>post-patch:
|
||||
@${REINPLACE_CMD} -e 's|for Linux|for FreeBSD|g' ${WRKSRC}/README
|
||||
@${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|' ${WRKSRC}/configure</programlisting>
|
||||
@${REINPLACE_CMD} -e 's|for Linux|for FreeBSD|g' ${WRKSRC}/README</programlisting>
|
||||
|
||||
<para>Quite often, there is a situation when the software being
|
||||
ported, especially if it is primarily developed on &windows;,
|
||||
|
@ -5793,14 +5792,13 @@ PLIST_SUB+= NLS="@comment "
|
|||
catalog files. The target directories for them, which
|
||||
reside under
|
||||
<filename><makevar>LOCALBASE</makevar>/share/locale</filename>,
|
||||
should rarely be created and removed by your port. The most
|
||||
should rarely be created and removed by a port. The most
|
||||
popular languages have their respective directories listed
|
||||
in <filename>/etc/mtree/BSD.local.dist</filename>; that is,
|
||||
they are a part of the base system. The directories for
|
||||
many other languages are governed by the <filename
|
||||
role="package">devel/gettext</filename> port. You may
|
||||
want to consult its <filename>pkg-plist</filename> and see
|
||||
whether your port is going to install a message catalog file
|
||||
in <filename><makevar>PORTSDIR</makevar>/Templates/BSD.local.dist</filename>.
|
||||
The directories for many other languages are governed by the
|
||||
<filename role="package">devel/gettext</filename> port.
|
||||
Consult its <filename>pkg-plist</filename> and see
|
||||
whether the port is going to install a message catalog file
|
||||
for a unique language.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
@ -16169,25 +16167,18 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting>
|
|||
<title>Threading Libraries</title>
|
||||
|
||||
<para>The threading library must be linked to the binaries using
|
||||
a special linker flag <literal>-pthread</literal> on &os;. If
|
||||
a special flag <literal>-pthread</literal> on &os;. If
|
||||
a port insists on linking <literal>-lpthread</literal>
|
||||
directly, patch it to use
|
||||
<makevar>PTHREAD_LIBS</makevar> variable provided by the ports
|
||||
framework. This variable usually has the value of
|
||||
<literal>-pthread</literal>, but on certain architectures and
|
||||
&os; versions it can have different values, so do not just
|
||||
hardcode <literal>-pthread</literal> into patches and always
|
||||
use <makevar>PTHREAD_LIBS</makevar>.</para>
|
||||
directly, patch it to use <literal>-pthread</literal>.</para>
|
||||
|
||||
<note>
|
||||
<para>If building the port errors out with
|
||||
<literal>unrecognized option '-pthread'</literal> when
|
||||
setting <makevar>PTHREAD_LIBS</makevar>, it may be desirable
|
||||
to use <command>cc</command> as linker by setting
|
||||
<makevar>CONFIGURE_ENV</makevar> to
|
||||
<literal>LD=${CC}</literal>. The
|
||||
<literal>-pthread</literal> option is not supported by
|
||||
<command>ld</command> directly.</para>
|
||||
<literal>unrecognized option '-pthread'</literal>,
|
||||
it may be desirable to use <command>cc</command> as linker by
|
||||
setting <makevar>CONFIGURE_ENV</makevar> to
|
||||
<literal>LD=${CC}</literal>. The
|
||||
<literal>-pthread</literal> option is not supported by
|
||||
<command>ld</command> directly.</para>
|
||||
</note>
|
||||
</sect1>
|
||||
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
.if exists(../Makefile.conf)
|
||||
.include "../Makefile.conf"
|
||||
.endif
|
||||
.if exists(../Makefile.inc)
|
||||
.include "../Makefile.inc"
|
||||
.endif
|
||||
|
||||
DATA= index.html
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/web.site.mk"
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $FreeBSD$ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="5;url=../doc/en_US.ISO8859-1/books/faq/index.html">
|
||||
<title>The FAQ has moved</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
<p>The FAQ is no longer accessible at this location. Please use
|
||||
<a href="../doc/en_US.ISO8859-1/books/faq/index.html">../doc/en_US.ISO8859-1/books/faq/index.html</a>
|
||||
to reach it. You should be automatically redirected there in a few
|
||||
seconds. If not, please follow the link, and update your bookmarks.
|
||||
We apologize for the inconvenience.</p>
|
||||
</body>
|
||||
</html>
|
|
@ -49,7 +49,6 @@ DATA+= vendors.html
|
|||
|
||||
# Subdirectories
|
||||
# XML
|
||||
SUBDIR= FAQ
|
||||
SUBDIR+= advocacy
|
||||
SUBDIR+= commercial
|
||||
SUBDIR+= community
|
||||
|
|
|
@ -44,6 +44,27 @@
|
|||
<th>Date Added</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>des</td>
|
||||
<td>Oslo, Norway</td>
|
||||
<td>Hosting for up to a full rack of 1U servers</td>
|
||||
<td>New source tinderbox / continuous integration system. I
|
||||
have the hardware (including spares), but nowhere to host it.
|
||||
External bandwidth requirements are very modest, but a separate
|
||||
gigabit switch is needed for internal communication.</td>
|
||||
<td>2013-02-15</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>des</td>
|
||||
<td>Oslo, Norway</td>
|
||||
<td>ATX motherboard with Intel H77 chipset, Intel Core
|
||||
i7-3770S, 32 GB (4x8) PC3-12800 memory with heatsink.</td>
|
||||
<td>Upgrade main development box, which is six years old. No
|
||||
chassis, PSU or disks required.</td>
|
||||
<td>2013-02-15</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>jcamou</td>
|
||||
<td>AZ, USA.</td>
|
||||
|
|
|
@ -15,17 +15,17 @@
|
|||
|
||||
<h1>&os; offers many unique features.</h1>
|
||||
|
||||
<p>No matter what the application, you want your system's
|
||||
resources performing at their full potential. &os;'s focus
|
||||
on performance, networking, and storage, combined with easy
|
||||
system administration and excellent documentation to allow
|
||||
you to do what you want.</p>
|
||||
<p>No matter what the application, an operating system should take
|
||||
advantage of every resource available. &os;'s focus on
|
||||
performance, networking, and storage combines with ease of system
|
||||
administration and comprehensive documentation to realize the full
|
||||
potential of any computer.</p>
|
||||
|
||||
<h2>A complete operating system based on 4.4BSD.</h2>
|
||||
|
||||
<p>&os;'s distinguished roots derive from the <b>BSD</b>
|
||||
software releases from the Computer Systems Research Group at
|
||||
the University of California, Berkeley. Over fifteen years of
|
||||
the University of California, Berkeley. Over twenty years of
|
||||
work have been put into enhancing &os;, adding
|
||||
industry-leading scalability, network performance, management
|
||||
tools, file systems, and security features. As a result,
|
||||
|
@ -48,7 +48,7 @@
|
|||
CAPABILITY_MODE have been added to the GENERIC kernel.</li>
|
||||
|
||||
<li><b>Hhook</b>: (Helper Hook) and khelp(9) (Kernel Helpers)
|
||||
KPIs have been implemented. These are a kind of superset of
|
||||
KPIs have been implemented. These are a superset of
|
||||
pfil(9) framework for more general use in the kernel. The
|
||||
hhook(9) KPI provides a way for kernel subsystems to export
|
||||
hook points that khelp(9) modules can hook to provide
|
||||
|
@ -59,9 +59,9 @@
|
|||
These allow a structured way to dynamically extend the
|
||||
kernel at runtime in an ABI preserving manner.</li>
|
||||
<li><b>Accounting API:</b> has been implemented. It can keep
|
||||
per-process, per-jail, and per-loginclass resource
|
||||
accounting information. Note that this is not built nor
|
||||
installed by default. To build and install them, specify
|
||||
per-process, per-jail, and per-login class resource
|
||||
accounting information. Note that this is neither built nor
|
||||
installed by default. To build and install this, specify
|
||||
options RACCT in the kernel configuration file and rebuild
|
||||
the base system as described in the FreeBSD Handbook</li>
|
||||
|
||||
|
@ -70,13 +70,13 @@
|
|||
implementation and takes user-configurable actions based on
|
||||
the set of rules it maintains and the current resource
|
||||
usage. The rctl(8) utility has been added to manage the
|
||||
rules in userland. Note that this is not built nor
|
||||
rules in userland. Note that this is neither built nor
|
||||
installed by default.</li>
|
||||
|
||||
<li><b>Usb:</b> subsystem now supports USB packet filter.
|
||||
This allows to capture packets which go through each USB
|
||||
host controller. The implementation is almost based on
|
||||
bpf(4) code. The userland program usbdump(8) has been
|
||||
This allows capturing packets which go through each USB
|
||||
host rchitecture of the packet filter is similar to that of
|
||||
bpf. The userland program usbdump(8) has been
|
||||
added.</li>
|
||||
|
||||
<li><b>Infiniband support:</b>, OFED (OpenFabrics Enterprise
|
||||
|
@ -86,16 +86,16 @@
|
|||
<li><b>TCP/IP network:</b> stack now supports the mod_cc(9)
|
||||
pluggable congestion control framework. This allows TCP
|
||||
congestion control algorithms to be implemented as
|
||||
dynamically loadable kernel modules. The following kernel
|
||||
modules are available cc_chd(4) for the CAIA-Hamilton-Delay
|
||||
dynamically loadable kernel modules. Many kernel
|
||||
modules are available: cc_chd(4) for the CAIA-Hamilton-Delay
|
||||
algorithm, cc_cubic(4) for the CUBIC algorithm, cc_hd(4)
|
||||
for the Hamilton-Delay algorithm, cc_htcp(4) for the H-TCP
|
||||
algorithm, cc_newreno(4) for the NewReno algorithm, and
|
||||
cc_vegas(4) for the Vegas algorithm. The default algorithm
|
||||
can be set by a new sysctl(8) variable
|
||||
net. inet. tcp. cc. algorithm.</li>
|
||||
net.inet.tcp.cc.algorithm.</li>
|
||||
|
||||
<li><b>SU+J:</b> &os; Fast File System now supports soft
|
||||
<li><b>SU+J:</b> &os;'s Fast File System now supports soft
|
||||
updates with journaling. It introduces an intent log into a
|
||||
softupdates-enabled file system which eliminates the need for
|
||||
background fsck(8) even on unclean shutdowns.</li>
|
||||
|
@ -118,13 +118,13 @@
|
|||
improvement over the previous version.</li>
|
||||
|
||||
<li><b>Linux emulation:</b> layer has been updated to version
|
||||
2. 6. 16 and the default Linux infrastructure port is now
|
||||
2.6.16 and the default Linux infrastructure port is now
|
||||
emulators/linux_base-f10 (Fedora 10)</li>
|
||||
|
||||
<li><b>Network Virtualization:</b> Container named vimage has
|
||||
<li><b>Network Virtualization:</b> A container ("vimage") has
|
||||
been implemented, extending the FreeBSD kernel to maintain
|
||||
multiple independent instances of networking state.
|
||||
vimage facilities can be used independently to create fully
|
||||
Vimage facilities can be used independently to create fully
|
||||
virtualized network topologies, and jail(8) can directly
|
||||
take advantage of a fully virtualized network stack.</li>
|
||||
</ul>
|
||||
|
|
|
@ -50,11 +50,6 @@ the globe, there have to be some
|
|||
By following the links, one will find a list of them, as well as
|
||||
explanations of who is responsible for what.</p>
|
||||
|
||||
<p>Here are some
|
||||
<a href="http://www.FreeBSD.org/internal/homepage.html">personal homepages</a>
|
||||
hosted at FreeBSD.org, as well as some
|
||||
<a href="../multimedia/tag-photos.html">photos from social events</a>.</p>
|
||||
|
||||
<p>You can read here core's <a href="hats.html">Hat Term Limits Policy</a>
|
||||
and some guidelines from &a.imp; on <a href="working-with-hats.html">how
|
||||
to work with hats</a>.</p>
|
||||
|
|
|
@ -400,7 +400,6 @@
|
|||
margin-top: 30px;
|
||||
padding: 0;
|
||||
width: 130px;
|
||||
height: 30px;
|
||||
background-color: #D8D8D8;
|
||||
-moz-border-radius: 10px;
|
||||
-webkit-border-radius: 10px;
|
||||
|
@ -436,7 +435,6 @@
|
|||
margin-top: 10px;
|
||||
padding: 0;
|
||||
width: 180px;
|
||||
height: 25px;
|
||||
background-color: white;
|
||||
-moz-border-radius: 10px;
|
||||
-webkit-border-radius: 10px;
|
||||
|
@ -473,7 +471,6 @@
|
|||
margin-left: 140px;
|
||||
padding: 0;
|
||||
width: 190px;
|
||||
height: 35px;
|
||||
background-color: #FACC2E;
|
||||
-moz-border-radius: 10px;
|
||||
-webkit-border-radius: 10px;
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
<h2><a href="&base;/administration.html">Who Is Responsible for What</a></h2>
|
||||
|
||||
<p>Public Relations & Corporate Liaison, Security Officer,
|
||||
<p>Marketing, Bugmeister, Security Officer,
|
||||
Postmaster, Webmaster etc.</p>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -78,13 +78,6 @@
|
|||
<a href="http://www.awfulhak.org/ppp.html">ppp page</a>
|
||||
for links to the other valuable information and the latest updates.</p></li>
|
||||
|
||||
<li><p><a name="cfbsd" href="http://www.lemis.com/grog/Documentation/CFBSD/">The
|
||||
Complete &os;</a> by Greg Lehey, published by O'Reilly.
|
||||
This book assumes minimal UNIX experience and takes the
|
||||
beginner step by step through each stage from installation to
|
||||
everything you need to know to set up and run a &os; system. You
|
||||
also get to understand what you are doing and why.</p></li>
|
||||
|
||||
<li><p>The <a href="&url.books;/handbook/index.html">&os; Handbook</a> and <a
|
||||
href="&url.books;/faq/index.html">Frequently Asked Questions (FAQ)</a> are the
|
||||
main documents for &os;. Essential reading, they contain a lot of
|
||||
|
@ -102,12 +95,6 @@
|
|||
answers via the <a href="&base;/search/search.html#mailinglists">search</a>
|
||||
page.</p></li>
|
||||
|
||||
<li><p>The main newsgroup for &os; is <a
|
||||
href="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</a>.
|
||||
You might want to keep an eye on <a
|
||||
href="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</a>
|
||||
as well.</p></li>
|
||||
|
||||
<li><p><a href="&cgibase;/man.cgi">Manual pages</a> are good
|
||||
for reference but not always
|
||||
the best introduction for a novice. The more you work with man pages
|
||||
|
@ -156,12 +143,6 @@
|
|||
Pretty soon you will want to move on to a book that gives more
|
||||
coverage.</p></li>
|
||||
|
||||
<li><p>One book mentioned frequently by newbies is <a name="ufti"><em>UNIX for
|
||||
the Impatient</em></a> by Paul W. Abrahams and Bruce R. Larson, published
|
||||
by Addison-Wesley. It is intended both as a book for learning UNIX
|
||||
and a reference, and includes an introduction to UNIX concepts and
|
||||
handy chapter on using the X Window System.</p></li>
|
||||
|
||||
<li><p>Another popular book is <em>UNIX Power Tools</em> by Jerry Peek,
|
||||
Tim O'Reilly and Mike Loukides, published by O'Reilly and
|
||||
Associates. It is organized as a series of short articles each of
|
||||
|
@ -189,25 +170,11 @@
|
|||
HTML at a mirror site near you, or can be installed on your own
|
||||
system.</p></li>
|
||||
|
||||
<li><p>UNIX questions are dealt with in the newsgroup <a
|
||||
href="news:comp.unix.questions">comp.unix.questions</a> and the
|
||||
associated
|
||||
<a href="ftp://rtfm.mit.edu/pub/usenet/news.answers/unix-faq/faq/">FAQ</a>
|
||||
from the RMIT FTP site. Newbies are likely to be most interested in
|
||||
sections 1 and 2 initially.</p></li>
|
||||
|
||||
<li><p>Another interesting newsgroup is <a
|
||||
href="news:comp.unix.user-friendly">comp.unix.user-friendly</a>.
|
||||
Although this newsgroup is for discussing user-friendliness, it can
|
||||
contain some good information for newbies. The <a
|
||||
href="ftp://rtfm.mit.edu/pub/usenet/news.answers/unix-faq/user-friendly">FAQ</a>
|
||||
is also available by FTP.</p></li>
|
||||
|
||||
<li><p>Many other web sites hold lists of UNIX tutorials and reference
|
||||
material. One of the best places to start looking is the UNIX page
|
||||
at <a
|
||||
href="http://www.yahoo.com/Computers_and_Internet/Software/Operating_Systems/Unix/">Yahoo!</a>.</p></li>
|
||||
|
||||
material. One of the best places to start looking is the
|
||||
little known search engine <a
|
||||
href="https://google.com">Google</a>.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="xwin">Learning about the X Window System</a></h2>
|
||||
|
@ -220,13 +187,6 @@
|
|||
more likely to be difficult for newcomers to digest.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>For basic information about installing, configuring and using the
|
||||
X Window System, three of the books mentioned above have sections
|
||||
dealing with X at beginner level:
|
||||
<a href="&url.books;/handbook/x11.html">The X Window System</a> chapter
|
||||
of the &os; Handbook, <a href="#cfbsd">The Complete &os;</a>,
|
||||
and <a href="#ufti">UNIX for the Impatient</a>.</p></li>
|
||||
|
||||
<li><p>Before you can get X running exactly the way you like, you will need
|
||||
to choose a window manager.
|
||||
Visit the <a href="http://xwinman.org/">Window Managers for X</a>
|
||||
|
|
|
@ -49,10 +49,16 @@
|
|||
<th>Information</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>TBD</td>
|
||||
<td>&os; 8.4</td>
|
||||
<td><!-- <a href="&base;/releases/8.4R/schedule.html">Target Schedule</a> --></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>TBD</td>
|
||||
<td>&os; 9.2</td>
|
||||
<td><!-- <a href="&base;/releases/9.1R/schedule.html">Target Schedule</a> --></td>
|
||||
<td><!-- <a href="&base;/releases/9.2R/schedule.html">Target Schedule</a> --></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
The FreeBSD Documentation Project
|
||||
The FreeBSD Japanese Documentation Project
|
||||
|
||||
Original revision: r20021
|
||||
Original revision: r20104
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
|
@ -6511,6 +6511,26 @@ natd_flags=""</programlisting>
|
|||
<command>natd -interface fxp0</command> が実行されます。
|
||||
これは手動でも実行できます。</para>
|
||||
|
||||
<note>
|
||||
<para>オプションの定義に &man.natd.8;
|
||||
のコンフィグレーションファイルを使うこともできます。
|
||||
この場合には、<filename>/etc/rc.conf</filename> に以下の行を追加し、
|
||||
コンフィグレーションファイルを定義してください。</para>
|
||||
|
||||
<programlisting>natd_flags="-f /etc/natd.conf"</programlisting>
|
||||
|
||||
<para><filename>/etc/natd.conf</filename>
|
||||
ファイルでは、一行ごとにオプションを設定します。たとえば、
|
||||
次節の例では以下のような行を含むファイルを用意してください。</para>
|
||||
|
||||
<programlisting>redirect_port tcp 192.168.0.2:6667 6667
|
||||
redirect_port tcp 192.168.0.3:80 80</programlisting>
|
||||
|
||||
<para>コンフィグレーションファイルに関する、より詳細な情報については、
|
||||
&man.natd.8; マニュアルページの <option>-f</option>
|
||||
オプションを調べてください。</para>
|
||||
</note>
|
||||
|
||||
<para>LAN にぶら下がっているマシンおよびインタフェースのそれぞれには
|
||||
<ulink url="ftp://ftp.isi.edu/in-notes/rfc1918.txt">RFC 1918</ulink>
|
||||
で定義されているプライベートネットワーク空間の
|
||||
|
@ -6577,8 +6597,8 @@ natd_flags=""</programlisting>
|
|||
|
||||
<para>これらのオプションは &man.natd.8; を直接実行するか、
|
||||
<filename>/etc/rc.conf</filename> 内の
|
||||
<literal>natd_flags=""</literal>
|
||||
オプションに指定して使用できます。</para>
|
||||
<literal>natd_flags=""</literal> オプションで設定するか、
|
||||
もしくはコンフィグレーションファイルから渡してください。</para>
|
||||
|
||||
<para>設定オプションの詳細については
|
||||
&man.natd.8; をご覧ください。</para>
|
||||
|
@ -6636,8 +6656,9 @@ natd_flags=""</programlisting>
|
|||
|
||||
<para><option>-redirect_port</option> と同様に、これらの引数は
|
||||
<filename>/etc/rc.conf</filename> 内の
|
||||
<literal>natd_flags=""</literal>
|
||||
オプションで指定できます。アドレス転送では、
|
||||
<literal>natd_flags=""</literal> オプションで設定するか、
|
||||
コンフィグレーションファイルから渡すことで指定できます。
|
||||
アドレス転送では、
|
||||
特定の IP アドレスで受け取られたデータはすべて転送されるので、
|
||||
port 転送は必要ありません。</para>
|
||||
|
||||
|
|
|
@ -147,7 +147,7 @@
|
|||
ソースコードにパッチを当て、コードからバイナリを再構築し、
|
||||
バイナリを再びインストールする必要がありました。</para>
|
||||
|
||||
<para>現在では &os; に <command>freebsd-update</command>
|
||||
<para>現在の &os; では <command>freebsd-update</command>
|
||||
と呼ばれるユーティリティが追加され、状況は変わりました。
|
||||
このユーティリティは 2 つの機能を持っています。
|
||||
第一に、&os; ベースシステムのビルドやインストールを行うことなく、
|
||||
|
@ -283,8 +283,8 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
|
|||
はアップデートが存在するときだけ確認します。
|
||||
パッチが存在すると、
|
||||
自動的にローカルディスクにダウンロードされますが、適用はされません。
|
||||
ダウンロードされたパッチを手動でインストールすることが必要で、このことは
|
||||
<username>root</username> 宛てにメールで通知されます。</para>
|
||||
ダウンロードされたパッチを手動でインストールする必要があり、
|
||||
このことは <username>root</username> 宛てにメールで通知されます。</para>
|
||||
|
||||
<para>うまく行かなかった場合には、<command>freebsd-update</command>
|
||||
を以下のように実行すると、最後の変更までロールバックできます。</para>
|
||||
|
@ -661,20 +661,20 @@ before running "/usr/sbin/freebsd-update install"</screen>
|
|||
<filename role="package">security/snort</filename>
|
||||
のような侵入検知システムの置き換えになるものではありません。
|
||||
<command>freebsd-update</command> はデータをディスクに保存するので、
|
||||
明らかに不正な変更が行われる可能性があります。
|
||||
この不正な変更の可能性は、
|
||||
不正な変更が行われる可能性があります。
|
||||
<varname>kern.securelevel</varname> の設定と、
|
||||
<command>freebsd-update</command> のデータを使用しないときに、
|
||||
読み取りのみの許可属性に設定されているファイルシステムに置くことで低くすることができますが、
|
||||
読み取りのみの許可属性に設定されているファイルシステムに置くことで、
|
||||
不正な変更の可能性を低くできますが、
|
||||
よりよい解決方法は、
|
||||
<acronym>DVD</acronym>
|
||||
または安全に保存されている外部 <acronym>USB</acronym>
|
||||
ディスクのような安全なディスクとシステムを比較することです。</para>
|
||||
</warning>
|
||||
|
||||
<para>これで、システムは検査されます。そして、
|
||||
<para>このコマンドを実行すると、システムは検査され、
|
||||
リリースファイルの &man.sha256.1;
|
||||
ハッシュ値と現在インストールされているファイルの値がファイルの一覧と共に表示されます。
|
||||
ハッシュ値と現在インストールされているファイルのハッシュ値がファイルの一覧と共に表示されます。
|
||||
これが <filename>outfile.ids</filename> ファイルに出力する理由です。
|
||||
目で比較するにはとても早くスクロールし、
|
||||
コンソールバッファをいっぱいに満たしてしまいます。</para>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
The FreeBSD Documentation Project
|
||||
The FreeBSD Japanese Documentation Project
|
||||
|
||||
Original revision: r40874
|
||||
Original revision: r40982
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
|
@ -13,23 +13,6 @@
|
|||
<sect1 id="mirrors-cdrom">
|
||||
<title>CDROM/DVD 出版社</title>
|
||||
|
||||
<sect2>
|
||||
<title>リテールボックス製品</title>
|
||||
|
||||
<para>&os; は (&os; CD、追加ソフトウェア、
|
||||
印刷されたドキュメントなどから構成される)
|
||||
箱入りの製品として以下の取り扱い業者から入手できます。</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<address>
|
||||
<otheraddr>Frys Electronics</otheraddr>
|
||||
WWW: <otheraddr><ulink url="http://www.frys.com/"></ulink></otheraddr>
|
||||
</address>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>CD/DVD セット</title>
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -4,7 +4,7 @@
|
|||
<!ENTITY title "FreeBSD Internal">
|
||||
]>
|
||||
<!-- The FreeBSD Japanese Documentation Project -->
|
||||
<!-- Original revision: r39593 -->
|
||||
<!-- Original revision: r40940 -->
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
|
@ -47,10 +47,6 @@ package
|
|||
から構成されます。
|
||||
リンクをたどると、担当者一覧と誰がどの分野に責任を持っているかを知ることができます。</p>
|
||||
|
||||
<p>FreeBSD.org にある
|
||||
<a href="http://www.FreeBSD.org/internal/homepage.html">個人のホームページ</a> と
|
||||
<a href="&enbase;/multimedia/tag-photos.html">イベントの写真</a>。</p>
|
||||
|
||||
<p>コアチームによる <a href="&enbase;/internal/hats.html">Hat Term Limits Policy</a>
|
||||
や、&a.imp; によるガイドラインが <a href="&enbase;/internal/working-with-hats.html">how
|
||||
to work with hats</a> にあります。</p>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<!ENTITY title "Contacting FreeBSD">
|
||||
]>
|
||||
<!-- The FreeBSD Japanese Documentation Project -->
|
||||
<!-- Original revision: 1.32 -->
|
||||
<!-- Original revision: 40901 -->
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
|
@ -20,6 +20,7 @@
|
|||
<p>FreeBSD に関する質問は FreeBSD Questions メーリングリスト、
|
||||
<a href="mailto:freebsd-questions@FreeBSD.org">
|
||||
freebsd-questions@FreeBSD.org</a> までどうぞ。</p>
|
||||
|
||||
<p><a href="&base;/community/mailinglists.html">メーリングリスト</a> は
|
||||
FreeBSD のユーザにとって主要なサポート手段であり、異なる話題範囲を
|
||||
カバーする多くのメーリングリストがあります。
|
||||
|
@ -49,7 +50,7 @@
|
|||
|
||||
<h2><a href="&enbase;/administration.html">担当者一覧</a></h2>
|
||||
|
||||
<p>広報・渉外担当、セキュリティオフィサ、ポストマスタ、ウェブマスタなど。</p>
|
||||
<p>マーケティング、バグ処理担当、セキュリティオフィサ、ポストマスタ、ウェブマスタなど。</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
the contents of <title> will be preferred over <p>.
|
||||
|
||||
$FreeBSD$
|
||||
Original revision: r40721
|
||||
Original revision: r40933
|
||||
-->
|
||||
<news>
|
||||
<cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">
|
||||
|
@ -30,9 +30,30 @@
|
|||
<year>
|
||||
<name>2013</name>
|
||||
|
||||
<month>
|
||||
<name>2</name>
|
||||
|
||||
<day>
|
||||
<name>10</name>
|
||||
|
||||
<event>
|
||||
<p>新コミッタ就任:
|
||||
<a href="mailto:pclin@FreeBSD.org">Po-Chien Lin</a> (ports)</p>
|
||||
</event>
|
||||
</day>
|
||||
</month>
|
||||
|
||||
<month>
|
||||
<name>1</name>
|
||||
|
||||
<day>
|
||||
<name>23</name>
|
||||
<event>
|
||||
<p>新コミッタ就任:
|
||||
<a href="mailto:achim@FreeBSD.org">Achim Leubner</a> (src)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>22</name>
|
||||
<event>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/articles/contributing/article.xml
|
||||
%SRCID% 40061
|
||||
%SRCID% 40773
|
||||
-->
|
||||
|
||||
<article lang="nl">
|
||||
|
@ -530,7 +530,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
<para>De &os; Foundation is een non-profit, belastinguitgesloten
|
||||
stichting die opgericht is om de doelen van het &os; Project
|
||||
verder te verspreiden. Als een 501(c)3-entiteit is de
|
||||
Foundation over het algemeen uitgesloten van van
|
||||
Foundation over het algemeen uitgesloten van
|
||||
inkomstenbelasting van de overheid van de Verenigde Staten alsook van
|
||||
inkomstenbelasting van de staat Colorado. Donaties aan een
|
||||
entiteit die van belasting is uitgesloten zijn vaak aftrekbaar
|
||||
|
@ -539,8 +539,9 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
<para>Donaties kunnen als check verstuurd worden aan:
|
||||
<address>
|
||||
The FreeBSD Foundation
|
||||
<street>7321 Brockway Dr.</street>
|
||||
<city>Boulder</city>, <state>CO</state> <postcode>80303</postcode>
|
||||
<street>P.O. Box 20247</street>
|
||||
<city>Boulder</city>,
|
||||
<state>CO</state> <postcode>80308</postcode>
|
||||
<country>USA</country>
|
||||
</address></para>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/audit/chapter.xml
|
||||
%SRCID% 39825
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<!-- Need more documentation on praudit, auditreduce, etc. Plus more info
|
||||
|
@ -232,7 +232,7 @@ requirements. -->
|
|||
herstart van het systeem of door het handmatig starten van de audit
|
||||
daemon:</para>
|
||||
|
||||
<programlisting>/etc/rc.d/auditd start</programlisting>
|
||||
<programlisting>service auditd start</programlisting>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="audit-config">
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/disks/chapter.xml
|
||||
%SRCID% 40676
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<chapter id="disks">
|
||||
|
@ -3593,7 +3593,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
|
|||
<para>Vervolgens dient <command>inetd</command> opnieuw gestart
|
||||
te worden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/inetd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service inetd restart</userinput></screen>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
@ -4683,7 +4683,7 @@ Device 1K-blocks Used Avail Capacity
|
|||
starten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>hastctl create test</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/hastd onestart</userinput></screen>
|
||||
&prompt.root; <userinput>service hastd onestart</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>Het is <emphasis>niet</emphasis> mogelijk om GEOM-aanbieders met
|
||||
|
@ -4814,7 +4814,7 @@ notify 30 {
|
|||
<para>Herstart &man.devd.8; op beide knooppunten om de nieuwe
|
||||
configuratie te laten gelden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/devd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service devd restart</userinput></screen>
|
||||
|
||||
<para>Als het interface <devicename>carp0</devicename> aan of uit gaat
|
||||
(i.e., de toestand van het interface verandert), genereert het systeem
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/filesystems/chapter.xml
|
||||
%SRCID% 40681
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<chapter id="filesystems">
|
||||
|
@ -218,7 +218,7 @@ vfs.zfs.vdev.cache.size="5M"</programlisting>
|
|||
stellen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>echo 'zfs_enable="YES"' >> /etc/rc.conf</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/zfs start</userinput></screen>
|
||||
&prompt.root; <userinput>service zfs start</userinput></screen>
|
||||
|
||||
<para>In het resterende deel van dit document wordt aangenomen
|
||||
dat er drie <acronym>SCSI</acronym>-schijven beschikbaar zijn,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/firewalls/chapter.xml
|
||||
%SRCID% 40732
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<chapter id="firewalls">
|
||||
|
@ -262,7 +262,7 @@
|
|||
|
||||
<para>Draai vervolgens het opstartscript om de module te laden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/pf start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service pf start</userinput></screen>
|
||||
|
||||
<para>Merk op dat de PF module niet laadt als het het instellingenbestand
|
||||
met de regelverzameling niet kan vinden. De standaardlocatie is
|
||||
|
@ -290,7 +290,7 @@
|
|||
|
||||
<para>Draai vervolgens het opstartscript om de module te laden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/pflog start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service pflog start</userinput></screen>
|
||||
|
||||
<para>Als u andere mogelijkheden van <acronym>PF</acronym> nodig heeft
|
||||
dient u ondersteuning voor <acronym>PF</acronym> in de kernel te
|
||||
|
@ -901,12 +901,7 @@ LOG_ERR – gelogde pakketten die een verkeerde opbouw hebben, "short"</scre
|
|||
<filename>/etc/syslog.conf</filename> actief te maken kan er opnieuw
|
||||
opgestart worden of is het mogelijk de daemon &man.syslogd.8; een schop
|
||||
te geven zodat <filename>/etc/syslog.conf</filename> opnieuw
|
||||
wordt ingelezen met <command>/etc/rc.d/syslogd
|
||||
reload</command>. Het PID (procesnummer) is te achterhalen
|
||||
door een overzicht van taken te tonen met
|
||||
<command>ps -ax</command>. Het PID is het nummer in de
|
||||
linker kolom voor de regel waarop <quote>syslog</quote>
|
||||
staat.</para>
|
||||
wordt ingelezen met <command>service syslogd reload</command>.</para>
|
||||
|
||||
<para>Vaak wordt vergeten
|
||||
<filename>/etc/newsyslog.conf</filename> te wijzigen om het
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/jails/chapter.xml
|
||||
%SRCID% 39631
|
||||
%SRCID% 40792
|
||||
-->
|
||||
<chapter id="jails">
|
||||
<chapterinfo>
|
||||
|
@ -401,13 +401,12 @@ jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</rep
|
|||
</step>
|
||||
</procedure>
|
||||
|
||||
<para>Het <filename>/etc/rc.d/jail</filename> bestand kan worden
|
||||
gebruikt om jails handmatig te starten en te stoppen, mits er
|
||||
een overeenkomstige set regels bestaat in
|
||||
<para>&man.service.8; kan worden gebruikt om jails handmatig te starten en
|
||||
te stoppen, mits er een overeenkomstige verzameling regels bestaat in
|
||||
<filename>/etc/rc.conf</filename>.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/jail start <replaceable>www</replaceable></userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/jail stop <replaceable>www</replaceable></userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service jail start <replaceable>www</replaceable></userinput>
|
||||
&prompt.root; <userinput>service jail stop <replaceable>www</replaceable></userinput></screen>
|
||||
|
||||
<para>Er is op dit moment geen nette methode om een jail te
|
||||
stoppen. Dit komt omdat de benodigde applicaties die een
|
||||
|
@ -932,11 +931,10 @@ jail_www_devfs_enable="YES"</programlisting>
|
|||
<para>In deze fase zijn de jails gebouwd en voorbereid om
|
||||
op te starten. Koppel eerst de benodigde bestandssystemen
|
||||
voor elke jail, en start ze vervolgens door gebruik te
|
||||
maken van het <filename>/etc/rc.d/jail</filename>
|
||||
bestand:</para>
|
||||
maken van het rc-bestand voor de jail:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -a</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen>
|
||||
&prompt.root; <userinput>service jail start</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
|
@ -1015,7 +1013,7 @@ jail_www_devfs_enable="YES"</programlisting>
|
|||
<step>
|
||||
<para>Dit is het juiste moment om de jails te stoppen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/jail stop</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service jail stop</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
@ -1058,7 +1056,7 @@ jail_www_devfs_enable="YES"</programlisting>
|
|||
opnieuw te koppelen en om de jails weer op te starten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -a</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen>
|
||||
&prompt.root; <userinput>service jail start</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/linuxemu/chapter.xml
|
||||
%SRCID% 40735
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<chapter id="linuxemu">
|
||||
|
@ -683,7 +683,7 @@ done</programlisting>
|
|||
<para>Start de licentieserver.</para>
|
||||
|
||||
<para>Het volgende script, geïnstalleerd als
|
||||
<filename>/usr/local/etc/rc.d/lmgrd.sh</filename>, is een
|
||||
<filename>/usr/local/etc/rc.d/lmgrd</filename>, is een
|
||||
gemakkelijke manier om <command>lmgrd</command> op te
|
||||
starten:</para>
|
||||
|
||||
|
@ -877,7 +877,7 @@ FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
|
|||
|
||||
<step>
|
||||
<para>Maak een opstartbestand in
|
||||
<filename>/usr/local/etc/rc.d/flexlm.sh</filename>.
|
||||
<filename>/usr/local/etc/rc.d/flexlm</filename>.
|
||||
Onderstaand voorbeeld is een gewijzigde versie van het
|
||||
meegeleverde <filename>$MATLAB/etc/rc.lm.glnx86</filename>.
|
||||
De wijzigingen omvatten bestandslocaties en het starten
|
||||
|
@ -906,7 +906,7 @@ exit 0</programlisting>
|
|||
<important>
|
||||
<para>Het bestand moet uitvoerbaar zijn:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm.sh</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm</userinput></screen>
|
||||
|
||||
<para>Ook moet bovenstaande
|
||||
<replaceable>gebruikersnaam</replaceable> vervangen
|
||||
|
@ -918,7 +918,7 @@ exit 0</programlisting>
|
|||
<step>
|
||||
<para>Start de licentiebeheerder op met het commando:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/flexlm.sh start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service flexlm start</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/mail/chapter.xml
|
||||
%SRCID% 40216
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<chapter id="mail">
|
||||
|
@ -806,7 +806,7 @@ sendmail_msp_queue_enable="NO"</programlisting>
|
|||
origineel geïnstalleerd, bevat <filename>
|
||||
/etc/mail/mailer.conf</filename> bij benadering het volgende:</para>
|
||||
|
||||
<programlisting>sendmail /usr/libexec/sendmail/sendmail
|
||||
<programlisting>sendmail /usr/libexec/sendmail/sendmail
|
||||
send-mail /usr/libexec/sendmail/sendmail
|
||||
mailq /usr/libexec/sendmail/sendmail
|
||||
newaliases /usr/libexec/sendmail/sendmail
|
||||
|
@ -829,13 +829,12 @@ purgestat /usr/libexec/sendmail/sendmail</programlisting>
|
|||
men <filename>/etc/mail/mailer.conf</filename> als volgt
|
||||
aanpassen:</para>
|
||||
|
||||
<programlisting>sendmail /usr/local/supermailer/bin/sendmail-compat
|
||||
<programlisting>sendmail /usr/local/supermailer/bin/sendmail-compat
|
||||
send-mail /usr/local/supermailer/bin/sendmail-compat
|
||||
mailq /usr/local/supermailer/bin/mailq-compat
|
||||
newaliases /usr/local/supermailer/bin/newaliases-compat
|
||||
hoststat /usr/local/supermailer/bin/hoststat-compat
|
||||
purgestat /usr/local/supermailer/bin/purgestat-compat</programlisting>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
|
@ -878,8 +877,8 @@ purgestat /usr/local/supermailer/bin/purgestat-compat</programlisting>
|
|||
|
||||
<indexterm><primary>BIND</primary></indexterm>
|
||||
|
||||
<para>Traditioneel werd dit door BSD BIND resolvers toegestaan
|
||||
. De huidige versie van <application>BIND</application> die
|
||||
<para>Traditioneel werd dit door BSD BIND resolvers toegestaan. De
|
||||
huidige versie van <application>BIND</application> die
|
||||
met &os; wordt geleverd levert niet langer standaard
|
||||
afkortingen voor onvolledig gekwalificeerde domeinnamen
|
||||
anders dan het huidige domein. Dus moet een
|
||||
|
@ -1647,7 +1646,7 @@ define(`confDELIVERY_MODE', `deferred')dnl</programlisting>
|
|||
|
||||
<para>en start vervolgens het saslauthd-daemon op:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/saslauthd start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service saslauthd start</userinput></screen>
|
||||
|
||||
<para>Deze daemon fungeert als een onderhandelaar voor
|
||||
<application>sendmail</application> die zich tegen de &os;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/multimedia/chapter.xml
|
||||
%SRCID% 40784
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<chapter id="multimedia">
|
||||
|
@ -1742,7 +1742,7 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
|
|||
<para>Start de achterkant:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>echo 'mythbackend_enable="YES"' >> /etc/rc.conf</userinput>
|
||||
&prompt.root; <userinput>/usr/local/etc/rc.d/mythbackend start</userinput></screen>
|
||||
&prompt.root; <userinput>service mythbackend start</userinput></screen>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/network-servers/chapter.xml
|
||||
%SRCID% 40744
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<chapter id="network-servers">
|
||||
|
@ -185,7 +185,7 @@
|
|||
<application>inetd</application> bij het opstarten van een
|
||||
systeem wel of niet ingeschakeld. Het commando:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/inetd rcvar</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service inetd rcvar</userinput></screen>
|
||||
|
||||
<para>kan gedraaid worden om de huidige effectieve instellingen
|
||||
weer te geven.</para>
|
||||
|
@ -285,7 +285,7 @@
|
|||
<title>Het instellingenbestand van <application>inetd</application>
|
||||
herladen</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/inetd reload</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service inetd reload</userinput></screen>
|
||||
</example>
|
||||
|
||||
<para>Iedere regel in het bestand met instellingen heeft
|
||||
|
@ -839,7 +839,7 @@ mountd_flags="-r"</programlisting>
|
|||
<para>of door het &man.rc.8; script <command>mountd</command> met
|
||||
de juiste parameter aan te roepen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/mountd onereload</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service mountd onereload</userinput></screen>
|
||||
|
||||
<para>Raadpleeg <xref linkend="configtuning-rcd"/> voor meer
|
||||
informatie over het gebruik van rc-scripts.</para>
|
||||
|
@ -909,8 +909,8 @@ rpc_statd_enable="YES"</programlisting>
|
|||
|
||||
<para>Start de applicatie met:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/lockd start</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/statd start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service lockd start</userinput>
|
||||
&prompt.root; <userinput>service statd start</userinput></screen>
|
||||
|
||||
<para>Als echt op slot zetten tussen de
|
||||
<acronym>NFS</acronym>-cliënten en de
|
||||
|
@ -1666,7 +1666,7 @@ Exports list on foobar:
|
|||
laatste stap, voor het initialiseren van de NIS-afbeeldingen, de
|
||||
daemon <application>ypserv</application> handmatig:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/ypserv start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service ypserv start</userinput></screen>
|
||||
</sect4>
|
||||
|
||||
<sect4>
|
||||
|
@ -1965,7 +1965,7 @@ nis_client_enable="YES"</programlisting>
|
|||
commando's als supergebruiker uit:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/netstart</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/ypbind start</userinput></screen>
|
||||
&prompt.root; <userinput>service ypbind start</userinput></screen>
|
||||
|
||||
<para>Na het afronden van deze stappen zou met <command>ypcat
|
||||
passwd</command> de passwd map van de NIS-server te zien
|
||||
|
@ -3155,7 +3155,7 @@ dhcpd_ifaces="dc0"</programlisting>
|
|||
<para>Daarna kunt u doorgaan met het starten van de server door
|
||||
het volgende commando te geven:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/isc-dhcpd start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service isc-dhcpd start</userinput></screen>
|
||||
|
||||
<para>Als er later wijzigingen in de instellingen gemaakt moeten
|
||||
worden, dan is het belangrijk te onthouden dat het sturen van
|
||||
|
@ -3544,7 +3544,7 @@ dhcpd_ifaces="dc0"</programlisting>
|
|||
(127.0.0.1). Gebruik het volgende commando om de server eenmaal
|
||||
met deze configuratie te starten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/named onestart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service named onestart</userinput></screen>
|
||||
|
||||
<para>Om er zeker van te zijn dat de daemon
|
||||
<application>named</application> elke keer bij het opstarten
|
||||
|
@ -4806,7 +4806,7 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
|
|||
|
||||
<para>De port <filename role="package">www/apache2</filename> installeert
|
||||
een &man.rc.8;-script dat helpt met het starten, stoppen en herstarten
|
||||
van <application>Apache</application> en is te vinden in de map
|
||||
van <application>Apache</application> en is te vinden in
|
||||
<filename class="directory">/usr/local/etc/rc.d/</filename>.</para>
|
||||
|
||||
<para>Om <application>Apache</application> met het systeem mee te
|
||||
|
@ -4829,8 +4829,6 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
|
|||
&man.service.8; door één van de volgende commando's op te
|
||||
geven:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/apache22 configtest</userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>service apache22 configtest</userinput></screen>
|
||||
|
||||
<note>
|
||||
|
@ -4841,10 +4839,7 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
|
|||
|
||||
<para>Als <application>Apache</application> geen instellingsfouten meldt,
|
||||
kan <application>Apache</application> <command>httpd</command>
|
||||
gestart worden met dezelfde &man.rc.8;- en
|
||||
&man.service.8;-mechanismen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/apache22 start</userinput></screen>
|
||||
gestart worden met &man.service.8;:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>service apache22 start</userinput></screen>
|
||||
|
||||
|
@ -5283,7 +5278,7 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
|
|||
volgende commando als <username>root</username> uit te
|
||||
voeren:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/ftpd start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service ftpd start</userinput></screen>
|
||||
|
||||
<para>Nu kan aangemeld worden op de FTP-server met:</para>
|
||||
|
||||
|
@ -5588,7 +5583,7 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
|
|||
<application>Samba</application> op elk moment te starten door
|
||||
dit te typen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/samba start</userinput>
|
||||
<screen>&prompt.root; <userinput>service samba start</userinput>
|
||||
Starting SAMBA: removing stale tdbs :
|
||||
Starting nmbd.
|
||||
Starting smbd.</screen>
|
||||
|
@ -5608,7 +5603,7 @@ Starting smbd.</screen>
|
|||
<para><application>Samba</application> kan op ieder moment gestopt
|
||||
worden met:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/samba stop</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service samba stop</userinput></screen>
|
||||
|
||||
<para><application>Samba</application> is een complexe
|
||||
softwaresuite met functionaliteit waarmee verregaande integratie
|
||||
|
@ -5999,7 +5994,7 @@ syslogd_flags="-a logclient.example.com -v -v"</programlisting>
|
|||
<para>Nu dient het <command>syslogd</command>-daemon herstart en
|
||||
geverifieerd worden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput>
|
||||
<screen>&prompt.root; <userinput>service syslogd restart</userinput>
|
||||
&prompt.root; <userinput>pgrep syslog</userinput></screen>
|
||||
|
||||
<para>Als er een <acronym>PID</acronym> wordt teruggegeven, dan is
|
||||
|
@ -6074,7 +6069,7 @@ syslogd_flags="-s -v -v"</programlisting>
|
|||
<para>Eenmaal toegevoegd moet <command>syslogd</command> worden
|
||||
herstart zodat de veranderingen effect hebben:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service syslogd restart</userinput></screen>
|
||||
|
||||
<para>Om te testen of logberichten over het netwerk worden
|
||||
verzonden, wordt &man.logger.1; op de cliënt gebruikt om
|
||||
|
@ -6111,7 +6106,7 @@ syslogd_flags="-s -v -v"</programlisting>
|
|||
|
||||
<programlisting>syslogd_flags="-d -a logclien.example.com -v -v"</programlisting>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service syslogd restart</userinput></screen>
|
||||
|
||||
<para>Debuggegevens zoals de volgende zullen meteen na de herstart
|
||||
over het scherm vliegen:</para>
|
||||
|
@ -6137,7 +6132,7 @@ rejected in rule 0 due to name mismatch.</screen>
|
|||
wijzigingen zijn gemaakt, wordt er herstart met de verwachte
|
||||
resultaten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput>
|
||||
<screen>&prompt.root; <userinput>service syslogd restart</userinput>
|
||||
logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
|
||||
syslogd: restarted
|
||||
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.xml
|
||||
%SRCID% 40778
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<chapter id="ppp-and-slip">
|
||||
|
@ -3155,7 +3155,7 @@ water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438
|
|||
volgende commando als <username>root</username>
|
||||
uitvoeren:</para>
|
||||
|
||||
<screen>&prompt.root; /etc/rc.d/routing start</screen>
|
||||
<screen>&prompt.root; service routing start</screen>
|
||||
|
||||
<para>Raadpleeg aub <xref linkend="kernelconfig"/> over
|
||||
het configureren van de &os; kernel voor meer hulp over het
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/security/chapter.xml
|
||||
%SRCID% 40749
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<chapter id="security">
|
||||
|
@ -1583,10 +1583,10 @@ Enter secret pass phrase: <userinput><geheim wachtwoord></userinput>
|
|||
qpopper : ALL : allow</programlisting>
|
||||
|
||||
<para>Nadat deze regel is toegevoegd moet
|
||||
<application>inetd</application> herstart worden. Dit gaat met
|
||||
het commando &man.kill.1; of met de parameter
|
||||
<parameter>restart</parameter> met
|
||||
<filename>/etc/rc.d/inetd</filename>.</para>
|
||||
<application>inetd</application> herstart worden door gebruik te maken
|
||||
van &man.service.8;:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>service inetd restart</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
|
@ -1961,8 +1961,8 @@ Password: <userinput>xxxxxxxx</userinput>
|
|||
Verifying password - Password: <userinput>xxxxxxxx</userinput></screen>
|
||||
|
||||
<para>Nu kan de <acronym>KDC</acronym> dienst gestart worden
|
||||
met <command>/etc/rc.d/kerberos start</command> en
|
||||
<command>/etc/rc.d/kadmind start</command>. Op dit moment
|
||||
met <command>service kerberos start</command> en
|
||||
<command>service kadmind start</command>. Op dit moment
|
||||
draait er nog geen enkele daemon die gebruik maakt van
|
||||
<application>Kerberos</application>. Bevestiging dat
|
||||
<acronym>KDC</acronym> draait is te krijgen door een ticket te
|
||||
|
@ -2086,7 +2086,7 @@ kadmin><userinput> exit</userinput></screen>
|
|||
<command>telnet</command> geactiveerd door de volgende regel
|
||||
in <filename>/etc/inetd.conf</filename> te zetten en dan
|
||||
&man.inetd.8; te herstarten met
|
||||
<command>/etc/rc.d/inetd restart</command>:</para>
|
||||
<command>service inetd restart</command>:</para>
|
||||
|
||||
<programlisting>telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user</programlisting>
|
||||
|
||||
|
@ -3341,11 +3341,11 @@ racoon_enable="yes"</programlisting>
|
|||
|
||||
<para>Hierdoor wordt &man.sshd.8; geladen, het daemonprogramma
|
||||
voor <application>OpenSSH</application>, als het systeem de
|
||||
volgende keer opstart. Als alternatief is het mogelijk om het
|
||||
&man.rc.8;-script <filename>/etc/rc.d/sshd</filename> te
|
||||
volgende keer opstart. Als alternatief is het mogelijk om
|
||||
&man.rc.8; te
|
||||
gebruiken om <application>OpenSSH</application> te starten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/sshd start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service sshd start</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
|
@ -3752,7 +3752,7 @@ user@unfirewalled-system.example.org's password: <userinput>*******</userinput><
|
|||
<filename>/etc/ssh/sshd_config</filename> dienen de bestanden
|
||||
in &man.sshd.8; geladen te worden:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/sshd reload</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service sshd reload</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
$FreeBSD$
|
||||
|
||||
%SOURCE% en_US.ISO8859-1/books/handbook/virtualization/chapter.xml
|
||||
%SRCID% 40780
|
||||
%SRCID% 40792
|
||||
-->
|
||||
|
||||
<chapter id="virtualization">
|
||||
|
@ -1245,7 +1245,7 @@ add path 'usb/*' mode 0660 group operator</programlisting>
|
|||
|
||||
<para>Herstart vervolgens devfs:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/devfs restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service devfs restart</userinput></screen>
|
||||
|
||||
<para>USB kan nu in het gast-besturingssysteem worden aangezet.
|
||||
USB-apparaten zouden zichtbaar moeten zijn in de voorkeuren van
|
||||
|
@ -1292,7 +1292,7 @@ add path 'usb/*' mode 0660 group operator</programlisting>
|
|||
perm xpt0 0660
|
||||
perm pass* 0660</programlisting>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/devfs restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service devfs restart</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<!--
|
||||
|
|
41
share/pgpkeys/achim.key
Normal file
41
share/pgpkeys/achim.key
Normal file
|
@ -0,0 +1,41 @@
|
|||
<!-- $FreeBSD$ -->
|
||||
<!--
|
||||
sh addkey.sh achim 2E15B3C1;
|
||||
-->
|
||||
<programlisting role="pgpfingerprint"><![CDATA[
|
||||
pub 2048R/2E15B3C1 2013-01-22
|
||||
Key fingerprint = 2A48 0317 D477 2A07 2AD9 CF1C 7C1D 832E 2E15 B3C1
|
||||
uid Achim Leubner <achim@freebsd.org>
|
||||
sub 2048R/E275EF01 2013-01-22
|
||||
]]></programlisting>
|
||||
<programlisting role="pgpkey"><![CDATA[
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQENBFD+q6cBCAD8XsjHzsyljaRIF8Qz8NeXaiZWq0KZ8NHRJ4ahZLN5kvhk2D3+
|
||||
Y+iiMl6AesqTP/oobtXkeUFVlr0bwBBHpIRoOmGzxI5aorMH5Yv3dfY9u5HgkAW1
|
||||
E//0VK92QyH4O7q0adquRmymjR9pD2yjoXgIFg6P4cHoEg1hLyf3FOHHCSEYdXVm
|
||||
A5iBP7w+7aIkcUQiRVXHc3CojDZrkpSGwA/Pp9ywple8p7GqxoBr/4i/qYQeCNMI
|
||||
97EO7c+BSfBrbgvWiYPY7+eIyV6AZFl9NfEfdko/7HLRkbL6Hh3jSXR/SZQ31WZ7
|
||||
ct2z5GqJpEx1CDcIw1nxFYQ5uCLbzfyWT2JpABEBAAG0IUFjaGltIExldWJuZXIg
|
||||
PGFjaGltQGZyZWVic2Qub3JnPokBOAQTAQIAIgUCUP6rpwIbAwYLCQgHAwIGFQgC
|
||||
CQoLBBYCAwECHgECF4AACgkQfB2DLi4Vs8EW0AgAnkiKp8Hu40tgwLymXdK5eM2K
|
||||
nywLNJ7MBUwuX9rn0QIQ5gy26ktHCNxONZLacsApdsCAlH4vKk89G38wXUq6OgGn
|
||||
NQ+4uqoSVuUeR4A4GKdGjVNld/r33v3nq+QgGitGHjgpMtEPf+ZfCfZ8GxZG/oi9
|
||||
kBpQMsA61sigcYZytbhGM8qy4aCqpgOKys2VifEgtOHx5jr7JZRYLrBkyftyvVS6
|
||||
t9BDg1rdy9dcdKCaXp52H/qEZL/CO2gFLDR9t4ul+NalIN+nkPBiwS3hu9kn0Y5Q
|
||||
vDU4Kw8D7CW4dalqOMipOetvMwYVEmv5YiCJwzcoMIFpl2aOvef5yoQdozagGrkB
|
||||
DQRQ/qunAQgAzEocPpUQIsc5dlY3+Pa69WU6+qjIlVHbH6eZ5hWgi1AFMRf/KJGv
|
||||
HzZJElAXUz4dEhSAMhbHdWD0h6e0NalD7Uzea5Ay0m0mrKlZ1Ijo3lCrSXpKRwyZ
|
||||
terxnHZ3kc3XFUabk6kZfLkZsnm/+L2n0OX/dXvugeH+uAbjtYggBosun2mYSKtV
|
||||
x5+8WK3EaeLkh+0Ml5DiYfReQcS8r5ZCwfM+EtgP+ckmqHVQOXIy63WwHDPC/82U
|
||||
msQmbLGBw1RMezEckpQMksgC6pbqbp5gVxl+xUjz36JBHEW+MeOZLDiKasNw8tO8
|
||||
G5sQIYSKh/Vcb1imeZIb/bvagtLIJp4EEQARAQABiQEfBBgBAgAJBQJQ/qunAhsM
|
||||
AAoJEHwdgy4uFbPBunYIAMDQe8m2VtABvUq0SS/MubKRKVASiWQZkvxqh7stDgl0
|
||||
J0bsk0O6egWk++lsXTRGr6SwV1fkYawZVLAkoiMyovLC0iFoUZTmkHE4fYUFJX+u
|
||||
S6C9UURhpGpETLVI9sLfREDYWIWf7pvaSUmhF5RHcugcLhu5I1JZdJjoHXkpCbFO
|
||||
8xOK7D0KBFVCSnm/b2yo8cfHi8LFLqsqPvf5mJx/iKuTSGJe2XRvA3D7BgH8/Lcz
|
||||
QKsWBslP5TlIwh0Zy5mabAEKzGzVWY5laM9lXGbZrG9ALwEzSRgZCUWTS/EfC9jE
|
||||
WtMvwG0kYv1rFDqiRdjtqD1ja59uRXGdiUb7++BX7cQ=
|
||||
=jnyf
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
]]></programlisting>
|
|
@ -1,288 +1,214 @@
|
|||
<!-- $FreeBSD$ -->
|
||||
<!--
|
||||
sh addkey.sh des 64EBE220;
|
||||
sh addkey.sh des F94E87B2;
|
||||
-->
|
||||
<programlisting role="pgpfingerprint"><![CDATA[
|
||||
pub 1024D/64EBE220 2006-11-11 [expires: 2012-12-31]
|
||||
Key fingerprint = 3A1C 8E68 952C 3305 6984 6486 30D4 3A6E 64EB E220
|
||||
pub 4096R/F94E87B2 2013-02-15 [expires: 2015-01-01]
|
||||
Key fingerprint = 578A 3F4F 9E04 9FCF 3576 BF82 BB9B 471B F94E 87B2
|
||||
uid Dag-Erling Smørgrav <des@usit.uio.no>
|
||||
uid Dag-Erling Smørgrav <des@des.no>
|
||||
uid Dag-Erling Smørgrav <des@freebsd.org>
|
||||
uid Dag-Erling Smørgrav <des@usit.uio.no>
|
||||
uid [jpeg image of size 3315]
|
||||
sub 2048g/920C3313 2006-11-11 [expires: 2012-12-31]
|
||||
uid [jpeg image of size 4779]
|
||||
sub 4096R/F4DE87F5 2013-02-15 [expires: 2015-01-01]
|
||||
]]></programlisting>
|
||||
<programlisting role="pgpkey"><![CDATA[
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
vr4tbm5SuPGkmYPtyI6G5jEN7zg8bURxTDdHHQk9zokCSAQQAQIAMgUCRVca2Ssa
|
||||
aHR0cDovL3d3dy5wYWVwcy5jeC9ncGcvc2lnbmluZy1wb2xpY3kuYXNjAAoJECZJ
|
||||
5ijF000FIqEP/0/3k2aaWWQvNcUQwx3/gEO89mXNxG9kTJdh0Fwg3QhuYkI8UEo2
|
||||
I/k8X6ylgnJEQTusab6bjaLTLZiabUGammXxqiJEsS0CcZ/KQE1CHBaBsyk0LHul
|
||||
QLIYL1O3oT2FbKYCRMmilqX8Gr/AYU3lhEnK8DiGObJpK/9sT4zEZZ9+Nv0WqBNn
|
||||
dp3ld5qb+8D9jViern7oXtWN8Y1+1160riCWlUqmATzyAr4x/8pAS90ZTTeHyG3U
|
||||
kP5TUAVwHtVgzVf4TxIqQTufu6Zd2j7vWAtcvdpZCmJi5s169RZhwfgcP+SdsKUw
|
||||
9xhvOrXXNeiHQJLjBSaEZT6I8auMHIRYtNQ0z7GpJd2wKSS+0ULLw5lCnPLOVwXJ
|
||||
nd3ya2+aJpMNT7equcqzlFTh/+3qmnDcUOLd4Wc7sC8Mb7f+uRTXp1+lkqsTNxMx
|
||||
hSjba/Hg2I/57NLRr8XEyUQlbNZZU1b/YNDtdk3K7eBR8ax5iNNjzbPTLY0r0qYp
|
||||
Rf4zKamDU81TraafD8Uqsy696Fz0zvCSMEBkix3DhNYIVAJucEs5RCIQTSIofR1L
|
||||
vyitONSG3an4cwm4Q8lnOIKp1u12cTQir1zHoAsLQ6QGUwZWgF2bTSskYbO1FyZT
|
||||
lV+mL9vQUJi7B3Cyyk7I7ifgnOpvhC8k/oIRk29Dn5szYP4vM24HOW8giEYEEBEC
|
||||
AAYFAk+iaIgACgkQ2E/2dxLvL/V5JgCfUGtPZZ72+9qK4K8URukJzPoNP0gAoJmg
|
||||
jS1PDo+GTqT1O1rlhGIFB46qiEYEEBECAAYFAk+iaJ4ACgkQZzkQaI2O+1gK3gCf
|
||||
YPbacaltPTLjjaKCLugy3X69sz4AnRSfzzVwNj+yG68upeaf+gdVVAu8iEYEEBEC
|
||||
AAYFAk+ib+MACgkQMb2z3Qo1ykiRsQCgqV/2a/H5C68e6qdzjURyROSgUt0AnR7i
|
||||
Na/a/loVD38psfZCPc+EaZhUuQINBEVVy+wQCACAJNIBtl1krYP2kKBpS7VRAaXU
|
||||
H7kf2FmxKmH51lYBbBwSJYFHJorMSAWNYZBqY5vrDwy1K6hAxz/B/shQEYWYY9aV
|
||||
EEffmUUxcKF4OZpqUP/jCcgJOqUcXL9uir9uYHc+tSnGEiAtJZ9HjQ4gwfXQ0qNm
|
||||
rdPTI8PbDR8ELoRYuQLm4c4HYBO+/C6PRcwHiXSg6uO/NyUthZWz4ODnwPV7dJll
|
||||
PxwJTTgay6sKJ3UhgdFHpGb5U5OW+fEA2tEsv5sbszDvSgSugWAUCQxb7Js7REY1
|
||||
fcwGFXP9lAzwkUicMJZoosuqvIrusK9tL4DJWbkIz/5LAsPeRKJNXQ/j6yH7AAMF
|
||||
B/9v1FJtBebXV9PiahIPW0/fiB5Bcmp2lj7M74a0rPT6fwG+p/NULicBBAPU3p3v
|
||||
PzAsm3BJauOPBDH9XFrMiaQ64L0ijQoHhZhoD3tVkGihT8L2SHanhGXoFJTHb8CI
|
||||
A8yh1Sq18U2twPZjCK300lD0ba/qrfm3902miKMXYSlCszosjpfqoX3f/WDQXrOg
|
||||
ERMdPkZ34Q8bNk5VD+95j3f171Lmn08/c8IoUWGvwMhsONJHDQYmxf+dJi8M6zU9
|
||||
HqyTy4KJ7dSufRuOLcpOzEfBrn/Ii0sxgeONSwUgeYLtjXC00e/XrVGZtJwUVSMw
|
||||
inuwxY7KF/pyaWrEePRrgp7jiE8EGBECAA8CGwwFAk+iWLUFCQuMTQQACgkQMNQ6
|
||||
bmTr4iDpbwCfcEzorYxn1j+umx6DF8Jv1nYKQW8An0NIECpZ10OHsFUi3bEJ2Zb6
|
||||
BAOo
|
||||
=h4i6
|
||||
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
|
||||
maNTtSyMU9A54ib2sgN0GwxijcvwPyqT
|
||||
=IVjy
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
]]></programlisting>
|
||||
|
|
76
share/pgpkeys/pclin.key
Normal file
76
share/pgpkeys/pclin.key
Normal file
|
@ -0,0 +1,76 @@
|
|||
<!-- $FreeBSD$ -->
|
||||
<!--
|
||||
sh addkey.sh pclin 865C427F;
|
||||
-->
|
||||
<programlisting role="pgpfingerprint"><![CDATA[
|
||||
pub 4096R/865C427F 2013-02-05
|
||||
Key fingerprint = CF3B AB13 4C94 6388 B047 B599 8B28 1692 865C 427F
|
||||
uid Po-Chien Lin <pclin@FreeBSD.org>
|
||||
uid Po-Chien Lin <linpc@cs.nctu.edu.tw>
|
||||
sub 4096R/F31280BA 2013-02-05
|
||||
]]></programlisting>
|
||||
<programlisting role="pgpkey"><![CDATA[
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
uDqUBEUq3MHcpGRlsG7GQlW40AibKEA7Gd1OPbo=
|
||||
=2C5J
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
]]></programlisting>
|
|
@ -991,6 +991,11 @@
|
|||
&pgpkey.lesi;
|
||||
</sect2>
|
||||
|
||||
<sect2 id="pgpkey-achim">
|
||||
<title>&a.achim;</title>
|
||||
&pgpkey.achim;
|
||||
</sect2>
|
||||
|
||||
<sect2 id="pgpkey-cel">
|
||||
<title>&a.cel;</title>
|
||||
&pgpkey.cel;
|
||||
|
@ -1026,6 +1031,11 @@
|
|||
&pgpkey.clive;
|
||||
</sect2>
|
||||
|
||||
<sect2 id="pgpkey-pclin">
|
||||
<title>&a.pclin;</title>
|
||||
&pgpkey.pclin;
|
||||
</sect2>
|
||||
|
||||
<sect2 id="pgpkey-yzlin">
|
||||
<title>&a.yzlin;</title>
|
||||
&pgpkey.yzlin;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<!-- PGP keyblocks -->
|
||||
<!ENTITY pgpkey.aaron SYSTEM "aaron.key">
|
||||
<!ENTITY pgpkey.ache SYSTEM "ache.key">
|
||||
<!ENTITY pgpkey.achim SYSTEM "achim.key">
|
||||
<!ENTITY pgpkey.acm SYSTEM "acm.key">
|
||||
<!ENTITY pgpkey.adamw SYSTEM "adamw.key">
|
||||
<!ENTITY pgpkey.ae SYSTEM "ae.key">
|
||||
|
@ -285,6 +286,7 @@
|
|||
<!ENTITY pgpkey.patrick SYSTEM "patrick.key">
|
||||
<!ENTITY pgpkey.paul SYSTEM "paul.key">
|
||||
<!ENTITY pgpkey.pav SYSTEM "pav.key">
|
||||
<!ENTITY pgpkey.pclin SYSTEM "pclin.key">
|
||||
<!ENTITY pgpkey.peadar SYSTEM "peadar.key">
|
||||
<!ENTITY pgpkey.perky SYSTEM "perky.key">
|
||||
<!ENTITY pgpkey.petef SYSTEM "petef.key">
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
|
||||
<!ENTITY a.ache "Andrey A. Chernov <email>ache@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.achim "Achim Leubner <email>achim@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.acm "José Alonso Cárdenas Márquez <email>acm@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.adam "Adam David <email>adam@FreeBSD.org</email>">
|
||||
|
@ -1018,6 +1020,8 @@
|
|||
|
||||
<!ENTITY a.pb "Pierre Beyssac <email>pb@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.pclin "Po-Chien Lin <email>pclin@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.pdeuskar "Prafulla S. Deuskar <email>pdeuskar@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.pds "Peter da Silva <email>pds@FreeBSD.org</email>">
|
||||
|
@ -1216,6 +1220,8 @@
|
|||
|
||||
<!ENTITY a.smace "Scott Mace <email>smace@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.smh "Steven Hartland <email>smh@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.smkelly "Sean Kelly <email>smkelly@FreeBSD.org</email>">
|
||||
|
||||
<!ENTITY a.smpatel "Sujal Patel <email>smpatel@FreeBSD.org</email>">
|
||||
|
|
|
@ -14,6 +14,7 @@ $FreeBSD$
|
|||
<!ENTITY a.aaron "Aaron Dalton">
|
||||
<!ENTITY a.abial "Andrzej Bialecki">
|
||||
<!ENTITY a.ache "Andrey A. Chernov">
|
||||
<!ENTITY a.achim "Achim Leubner">
|
||||
<!ENTITY a.acm "José Alonso Cárdenas Márquez">
|
||||
<!ENTITY a.adam "Adam David">
|
||||
<!ENTITY a.adamw "Adam Weinberger">
|
||||
|
@ -79,16 +80,16 @@ $FreeBSD$
|
|||
<!ENTITY a.benno "Benno Rice">
|
||||
<!ENTITY a.bf "Brendan Fabeny">
|
||||
<!ENTITY a.bgray "Ben Gray">
|
||||
<!ENTITY a.billf "Bill Fumerola">
|
||||
<!ENTITY a.bhaga "Ben Haga">
|
||||
<!ENTITY a.billf "Bill Fumerola">
|
||||
<!ENTITY a.blackend "Marc Fonvieille">
|
||||
<!ENTITY a.bland "Alexander Nedotsukov">
|
||||
<!ENTITY a.bmah "Bruce A. Mah">
|
||||
<!ENTITY a.bmilekic "Bosko Milekic">
|
||||
<!ENTITY a.bms "Bruce M. Simpson">
|
||||
<!ENTITY a.bp "Boris Popov">
|
||||
<!ENTITY a.brd "Brad Davis">
|
||||
<!ENTITY a.brandon "Brandon Gillespie">
|
||||
<!ENTITY a.brd "Brad Davis">
|
||||
<!ENTITY a.brian "Brian Somers">
|
||||
<!ENTITY a.brix "Henrik Brix Andersen">
|
||||
<!ENTITY a.brooks "Brooks Davis">
|
||||
|
@ -102,9 +103,9 @@ $FreeBSD$
|
|||
<!ENTITY a.bushman "Michael Bushkov">
|
||||
<!ENTITY a.bvs "Vitaly Bogdanov">
|
||||
<!ENTITY a.bz "Bjoern A. Zeeb">
|
||||
<!ENTITY a.cawimm "Charles A. Wimmer">
|
||||
<!ENTITY a.carl "Carl Delsey">
|
||||
<!ENTITY a.carvay "J. Vicente Carrasco Vayá">
|
||||
<!ENTITY a.cawimm "Charles A. Wimmer">
|
||||
<!ENTITY a.cel "Chuck Lever">
|
||||
<!ENTITY a.ceri "Ceri Davies">
|
||||
<!ENTITY a.cg "Cameron Grant">
|
||||
|
@ -144,8 +145,8 @@ $FreeBSD$
|
|||
<!ENTITY a.darrenr "Darren Reed">
|
||||
<!ENTITY a.das "David Schultz">
|
||||
<!ENTITY a.davidc "Chad David">
|
||||
<!ENTITY a.davidn "David Nugent">
|
||||
<!ENTITY a.davide "Davide Italiano">
|
||||
<!ENTITY a.davidn "David Nugent">
|
||||
<!ENTITY a.davidxu "David Xu">
|
||||
<!ENTITY a.db "Diane Bruce">
|
||||
<!ENTITY a.dbaker "Daniel Baker">
|
||||
|
@ -302,11 +303,11 @@ $FreeBSD$
|
|||
<!ENTITY a.jilles "Jilles Tjoelker">
|
||||
<!ENTITY a.jim "Jim Mock">
|
||||
<!ENTITY a.jimharris "Jim Harris">
|
||||
<!ENTITY a.jinmei "JINMEI Tatuya">
|
||||
<!ENTITY a.jkh "Jordan K. Hubbard">
|
||||
<!ENTITY a.jkim "Jung-uk Kim">
|
||||
<!ENTITY a.jkois "Johann Kois">
|
||||
<!ENTITY a.jkoshy "Joseph Koshy">
|
||||
<!ENTITY a.jinmei "JINMEI Tatuya">
|
||||
<!ENTITY a.jlaffaye "Julien Laffaye">
|
||||
<!ENTITY a.jlemon "Jonathan Lemon">
|
||||
<!ENTITY a.jlh "Jeremie Le Hen">
|
||||
|
@ -353,9 +354,9 @@ $FreeBSD$
|
|||
<!ENTITY a.kjc "Kenjiro Cho">
|
||||
<!ENTITY a.kmacy "Kip Macy">
|
||||
<!ENTITY a.kmoore "Kris Moore">
|
||||
<!ENTITY a.koobs "Kubilay Kocak">
|
||||
<!ENTITY a.knu "Akinori MUSHA">
|
||||
<!ENTITY a.koitsu "Jeremy Chadwick">
|
||||
<!ENTITY a.koobs "Kubilay Kocak">
|
||||
<!ENTITY a.krion "Kirill Ponomarew">
|
||||
<!ENTITY a.kris "Kris Kennaway">
|
||||
<!ENTITY a.kuriyama "Jun Kuriyama">
|
||||
|
@ -492,6 +493,7 @@ $FreeBSD$
|
|||
<!ENTITY a.pav "Pav Lucistnik">
|
||||
<!ENTITY a.pawel "Pawel Pekala">
|
||||
<!ENTITY a.pb "Pierre Beyssac">
|
||||
<!ENTITY a.pclin "Po-Chien Lin">
|
||||
<!ENTITY a.pdeuskar "Prafulla S. Deuskar">
|
||||
<!ENTITY a.pds "Peter da Silva">
|
||||
<!ENTITY a.peadar "Peter Edwards">
|
||||
|
@ -590,6 +592,7 @@ $FreeBSD$
|
|||
<!ENTITY a.skreuzer "Steven Kreuzer">
|
||||
<!ENTITY a.skv "Sergey Skvortsov">
|
||||
<!ENTITY a.smace "Scott Mace">
|
||||
<!ENTITY a.smh "Steven Hartland">
|
||||
<!ENTITY a.smkelly "Sean Kelly">
|
||||
<!ENTITY a.smpatel "Sujal Patel">
|
||||
<!ENTITY a.snb "Nick Barkas">
|
||||
|
@ -660,8 +663,8 @@ $FreeBSD$
|
|||
<!ENTITY a.ups "Stephan Uphoff">
|
||||
<!ENTITY a.uqs "Ulrich Spörlein">
|
||||
<!ENTITY a.vanilla "Vanilla I. Shu">
|
||||
<!ENTITY a.versus "Konrad Jankowski">
|
||||
<!ENTITY a.vd "Vasil Dimov">
|
||||
<!ENTITY a.versus "Konrad Jankowski">
|
||||
<!ENTITY a.viny "Vincent Tougait">
|
||||
<!ENTITY a.vkashyap "Vinod Kashyap">
|
||||
<!ENTITY a.vs "Volker Stolz">
|
||||
|
@ -670,7 +673,6 @@ $FreeBSD$
|
|||
<!ENTITY a.wen "Wen Heping">
|
||||
<!ENTITY a.weongyo "Weongyo Jeong">
|
||||
<!ENTITY a.wes "Wes Peters">
|
||||
<!ENTITY a.wxs "Wesley Shields">
|
||||
<!ENTITY a.whiteside "Don Whiteside">
|
||||
<!ENTITY a.wilko "Wilko Bulte">
|
||||
<!ENTITY a.will "Will Andrews">
|
||||
|
@ -681,13 +683,14 @@ $FreeBSD$
|
|||
<!ENTITY a.wpaul "Bill Paul">
|
||||
<!ENTITY a.wsalamon "Wayne Salamon">
|
||||
<!ENTITY a.wsanchez "Wilfredo Sánchez">
|
||||
<!ENTITY a.wxs "Wesley Shields">
|
||||
<!ENTITY a.wylie "Wylie Stilwell">
|
||||
<!ENTITY a.xride "Søren Straarup">
|
||||
<!ENTITY a.yar "Yar Tikhiy">
|
||||
<!ENTITY a.yoichi "Yoichi NAKAYAMA">
|
||||
<!ENTITY a.yokota "Kazutaka YOKOTA">
|
||||
<!ENTITY a.yongari "Pyun YongHyeon">
|
||||
<!ENTITY a.yzlin "Yi-Jheng Lin">
|
||||
<!ENTITY a.xride "Søren Straarup">
|
||||
<!ENTITY a.zack "Zack Kirsch">
|
||||
<!ENTITY a.zarzycki "Dave Zarzycki">
|
||||
<!ENTITY a.zec "Marko Zec">
|
||||
|
|
|
@ -1611,7 +1611,6 @@
|
|||
<host type="ftp">
|
||||
<name>ftp2.se.FreeBSD.org</name>
|
||||
<url proto="ftp">ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/</url>
|
||||
<url proto="http">http://ftp2.se.FreeBSD.org/</url>
|
||||
<url proto="rsync">rsync://ftp2.se.FreeBSD.org/</url>
|
||||
</host>
|
||||
|
||||
|
@ -2114,8 +2113,7 @@
|
|||
|
||||
<host type="ftp">
|
||||
<name>ftp9.us.FreeBSD.org</name>
|
||||
<url proto="ftp">ftp://ftp9.us.FreeBSD.org/pub/FreeBSD/</url>
|
||||
<url proto="http">http://ftp9.us.FreeBSD.org/pub/os/FreeBSD/</url>
|
||||
<url proto="http">http://ftp9.us.FreeBSD.org/pub/FreeBSD/</url>
|
||||
</host>
|
||||
|
||||
<host type="ftp">
|
||||
|
|
|
@ -30,9 +30,31 @@
|
|||
<year>
|
||||
<name>2013</name>
|
||||
|
||||
<month>
|
||||
<name>2</name>
|
||||
|
||||
<day>
|
||||
<name>10</name>
|
||||
|
||||
<event>
|
||||
<p>New committer:
|
||||
<a href="mailto:pclin@FreeBSD.org">Po-Chien Lin</a> (ports)</p>
|
||||
</event>
|
||||
</day>
|
||||
</month>
|
||||
|
||||
<month>
|
||||
<name>1</name>
|
||||
|
||||
<day>
|
||||
<name>23</name>
|
||||
<event>
|
||||
<p>New committer:
|
||||
<a href="mailto:achim@FreeBSD.org">Achim Leubner</a> (src)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
|
||||
<day>
|
||||
<name>22</name>
|
||||
<event>
|
||||
|
@ -198,6 +220,15 @@
|
|||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>18</name>
|
||||
|
||||
<event>
|
||||
<p>New committer:
|
||||
<a href="mailto:smh@FreeBSD.org">Steven Hartland</a> (src)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>17</name>
|
||||
|
||||
|
|
|
@ -14,6 +14,22 @@
|
|||
<year>
|
||||
<name>2013</name>
|
||||
|
||||
<month>
|
||||
<name>2</name>
|
||||
|
||||
<story>
|
||||
<name>2012 - A BSD Year in Retrospective</name>
|
||||
<url>http://www.osnews.com/story/26787/2012_a_BSD_year_in_retrospective</url>
|
||||
<site-name>OSnews</site-name>
|
||||
<site-url>http://www.osnews.com/</site-url>
|
||||
<date>14 February 2013</date>
|
||||
<author>Julian Djamil</author>
|
||||
<p>A retrospective of all the exciting developments in the BSD-family
|
||||
of operating systems in 2012, focusing on FreeBSD, NetBSD, OpenBSD
|
||||
and Dragonfly BSD.</p>
|
||||
</story>
|
||||
</month>
|
||||
|
||||
<month>
|
||||
<name>1</name>
|
||||
|
||||
|
|
Loading…
Reference in a new issue