doc/de_DE.ISO8859-1/articles/solid-state/article.xml
2013-01-30 19:12:36 +00:00

519 lines
25 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
"../../../share/xml/freebsd45.dtd">
<!-- Copyright (c) 2001 The FreeBSD Documentation Project
Redistribution and use in source (SGML DocBook) and 'compiled' forms
(SGML, HTML, PDF, PostScript, RTF and so forth) with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code (SGML DocBook) must retain the above
copyright notice, this list of conditions and the following
disclaimer as the first lines of this file unmodified.
2. Redistributions in compiled form (transformed to other DTDs,
converted to PDF, PostScript, RTF and other formats) must reproduce
the above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
$FreeBSD$
$FreeBSDde: de-docproj/articles/solid-state/article.xml,v 1.2 2010/09/18 21:55:49 jkois Exp $
basiert auf: 1.18
-->
<article lang="de">
<articleinfo>
<title>&os; und Solid State-Geräte</title>
<authorgroup>
<author>
<firstname>John</firstname>
<surname>Kozubik</surname>
<affiliation>
<address><email>john@kozubik.com</email></address>
</affiliation>
</author>
</authorgroup>
<copyright>
<year>2001</year>
<year>2009</year>
<holder>The FreeBSD Documentation Project</holder>
</copyright>
<legalnotice id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.general;
</legalnotice>
&legalnotice;
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>Dieser Artikel behandelt die Verwendung von Solid State Festplatten
in &os;, um eingebettete Systeme zu erstellen.</para>
<para>Eingebettete Systeme haben den Vorteil, dass sie eine höhere
Stabilität aufgrund des fehlens von beweglichen Bauteilen
(Festplatten) besitzen. Es muss jedoch beachtet werden, dass generell
weniger Speicherplatz zur Verfügung steht und die Lebensdauer des
Speichermediums geringer ist.</para>
<para>Spezielle Themen die behandelt werden beinhalten die Typen und
Attribute von Solid State Datenträgern, die in &os; verwendet
werden, Kernel-Optionen die in solch einer Umgebung von Interesse sind,
der <filename>rc.initdiskless</filename>-Mechanismus, welcher die
Initalisierung solcher Systeme automatisiert, sowie die Notwendigkeit
von Nur-Lese-Dateisystemen und das Erstellen von Dateisystemen von
Grund auf. Der Artikel schliesst mit ein paar generellen Strategien
für kleine und Nur-Lese-&os; Umgebungen.</para>
<para><emphasis>Übersetzt von Benedict Reuschling</emphasis>.</para>
</abstract>
</articleinfo>
<sect1 id="intro">
<title>Solid State Festplattengeräte</title>
<para>Der Umfang des Artikels ist auf Solid State Geräte
beschränkt, die auf Flash-Speicher basieren. Flash-Speicher ist ein
Solid State Speicher (keine beweglichen Teile), der nicht flüchtig
ist (der Speicher behält die Daten sogar nachdem alle Energiequellen
ausgeschaltet wurden). Flash-Speicher kann grossen physischen Schock
aushalten und ist vergleichsweise schnell (die Flash-Speicher
Lösungen, die in diesem Artikel behandelt werden, sind nur wenig
langsamer als eine EIDE-Festplatte in der Schreibgeschwindigkeit und viel
schneller bei Lese-Operationen). Ein sehr wichtiger Aspekt von
Flash-Speichern, dessen Auswirkungen später in diesem Artikel
diskutiert werden, ist, dass jeder Sektor eine begrenzte Kapazität
zur Wiederbeschreibung besitzt. Man kann nur eine bestimmte Anzahl von
Schreib-, Lösch- und Wiederbeschreibungsvorgängen
durchführen, bevor der Sektor permanent unbrauchbar wird. Obwohl
viele Flash-Speicher Produkte automatisch schlechte Blöcke markieren
und manche Geräte Schreiboperationen gleichmässig verteilen,
bleibt weiterhin die Anzahl der durchführbaren Schreibvorgänge
begrenzt. Verschiedene Geräteeinheiten besitzen zwischen 1,000,000
und 10,000,000 Schreibzyklen pro Sektor in ihren Spezifikationen. Diese
Zahlen variieren aufgrund der Umgebungstemperatur.</para>
<para>Im Speziellen werden wir ATA-kompatible Compact-Flash-Karten
betrachten, welche als Speichermedien für Digitalkameras ziemlich
populär sind. Von besonderem Interesse ist der Umstand, dass diese
direkt an den IDE-Bus angeschlossen werden und kompatibel zu den
ATA-Befehlen sind. Aus diesem Grund können diese Geräte mit
einem einfachen und billigen Adapter direkt an den IDE-Bus eines
Computers angeschlossen werden. Auf diese Weise sehen Betriebssysteme
wie &os; diese Geräte dann als normale (wenn auch sehr kleine)
Festplatten an.</para>
<para>Andere Solid State Plattenlösungen existieren, jedoch platzieren
deren Kosten, Obskurität und ihre Unhandlichkeit sie aussserhalb
des Umfangs dieses Artikels.</para>
</sect1>
<sect1 id="kernel">
<title>Kerneloptionen</title>
<para>Ein paar Kerneloptionen sind von besonderem Interesse für
diejenigen, welche diese eingebetteten &os;-Systeme erstellen
möchten.</para>
<para>Alle eingebetteten &os;-Systeme, die Flash-Speicher als Systemplatte
verwenden, sind interessant für Dateisysteme im Hauptspeicher und
RAM-Disks. Wegen der begrenzten Anzahl von Schreibzyklen, die auf
Flash-Speicher durchgeführt werden können, werden die Platte
und die Dateisysteme darauf mit grosser Wahrscheinlichkeit nur lesend
eingehängt werden. In dieser Umgebung werden Dateisysteme wie
<filename>/tmp</filename> und <filename>/var</filename> als RAM-Disks
eingebunden, um dem System zu erlauben, Logdateien anzulegen und
Zähler sowie temporäre Dateien zu aktualisieren. RAM-Disks
sind eine kritische Komponente für eine erfolgreiche Solid State
Umsetzung in &os;.</para>
<para>Sie sollten dafür sorgen, dass die folgenden Zeilen in Ihrer
Kernelkonfigurationsdatei vorhanden sind:</para>
<programlisting>options MFS # Memory Filesystem
options MD_ROOT # md device usable as a potential root device
pseudo-device md # memory disk</programlisting>
</sect1>
<sect1 id="ro-fs">
<title>Die <literal>rc</literal>-Subsysteme und nur-Lese
Dateisysteme</title>
<para>Die Initialisierung nach dem Bootvorgang eines eingebetteten
&os;-Systems wird von <filename>/etc/rc.initdiskless</filename>
kontrolliert.</para>
<para><filename>/etc/rc.d/var</filename> hängt
<filename>/var</filename> als RAM-Disk ein, erstellt eine konfigurierbare
Liste von Verzeichnissen in <filename>/var</filename> mittels des
&man.mkdir.1;-Kommandos und ändert die Attribute von ein paar dieser
Verzeichnisse. Bei der Ausführung von
<filename>/etc/rc.d/var</filename> kommt eine andere
<filename>rc.conf</filename>-Variable ins Spiel:
<literal>varsize</literal>. Die Datei <filename>/etc/rc.d/var</filename>
erstellt eine <filename>/var</filename>-Partition basierend auf dem Wert
dieser Variable in <filename>rc.conf</filename>:</para>
<programlisting>varsize=8192</programlisting>
<para>Standardmässig wird dieser Wert in Sektoren angegeben.</para>
<para>Der Fakt, dass es sich bei <filename>/var</filename> um ein nur-Lese
Dateisystem handelt, ist eine wichtige Unterscheidung, da die
<filename>/</filename>-Partition (und jede andere Partition, die Sie auf
Ihrem Flash-Medium haben) nur lesend eingehängt wird. Erinnern Sie
sich, dass in <xref linkend="intro"/> die Beschränkungen von
Flash-Speichern erläutert wurden, speziell deren begrenzte
Kapazität zum Schreiben. Die Notwendigkeit, Dateisysteme auf
Flash-Speichern nur lesend einzubinden und keine Swap-Dateien zu
verwenden, kann nicht oft genug erwähnt werden. Eine Swap-Datei auf
einem ausgelasteten System kann in weniger als einem Jahr den gesamten
Flash-Speicher aufbrauchen. Häufige Protokollierung oder das
Erstellen und Löschen von temporären Dateien kann das gleiche
verursachen. Aus diesem Grund sollten Sie zusätzlich zum entfernen
des <literal>swap</literal>-Eintrags aus ihrer
<filename>/etc/fstab</filename>-Datei auch noch die Optionsfelder
für jedes Dateisystem auf <literal>ro</literal> wie folgt
stellen:</para>
<programlisting># Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1a / ufs ro 1 1</programlisting>
<para>Ein paar Anwendungen im normalen System werden sofort nach dieser
Änderung ausfallen. Beispielsweise wird Cron nicht richtig
funktionieren, aufgrund von fehlenden Cron-Tabellen in
<filename>/var</filename> die von
<filename>/etc/rc.d/var</filename> erstellt wurden. Syslog und DHCP
werden ebenfalls Probleme durch das nur-Lese Dateisystem
und fehlende Elemente im Verzeichnis <filename>/var</filename>
verursachen, die <filename>/etc/rc.d/var</filename> erstellt hat. Diese
Probleme sind jedoch nur vorübergehend und werden zusammen mit
Lösungen zur Ausführung von anderen gebräuchlichen
Softwarepaketen in <xref linkend="strategies"/> angesprochen.</para>
<para>Eine wichtige Sache, an die man sich erinnern sollte, ist, dass
ein Dateisystem, welches als nur lesend in
<filename>/etc/fstab</filename> eingebunden wurde, jederzeit als
schreibend durch das folgende Kommando eingehängt werden
kann:</para>
<screen>&prompt.root; <userinput>/sbin/mount -uw <replaceable>partition</replaceable></userinput></screen>
<para>und auch wieder zurück auf nur lesend durch den Befehl:</para>
<screen>&prompt.root; <userinput>/sbin/mount -ur <replaceable>partition</replaceable></userinput></screen>
</sect1>
<sect1>
<title>Ein Dateisystem von Grund auf neu erstellen</title>
<para>Wenn ATA-kompatible Compact-Flash-Karten von &os; als normale
IDE-Festplatten erkannt werden, könnten Sie theoretisch &os; aus dem
Netzwerk mittels der Kern- und mfsroot-Floppies oder einer CD
installieren.</para>
<para>Jedoch kann selbst eine kleine Installation von &os; durch die
normale Installationsprozedur ein System erzeugen, dass grösser als
200&nbsp;MB ist. Da die meisten Leute kleinere Flash-Speichermedien
einsetzen (128&nbsp;MB wird hier als gross angesehen - 32 oder sogar
16&nbsp;MB sind gebräuchlich) ist eine gewöhnliche Installation
mit normalen Methoden nicht möglich, da es einfach nicht genug
freien Plattenplatz gibt, selbst für die kleinste
Installationsart.</para>
<para>Der einfachste Weg, diese Speicherlimitierung zu umgehen, ist, &os;
auf konventionelle Weise auf eine normale Festplatte zu installieren.
Nachdem die Installation abgeschlossen wurde, kürzen Sie das
Betriebssystem auf das nötigste, bis Sie eine Grösse erreicht
hat, die auf das Flash-Medium passt und benutzen Sie dann tar auf dem
gesamten Dateisystem. Die folgenden Schritte werden Sie durch den
Prozess der Vorbereitung eines Flash-Mediums für ihr getartes
Dateisystem führen. Beachten Sie, dass Operationen wie
Partitionierung, Benennung, Erstellung von Dateisystemen, etc. von Hand
durchgeführt werden müssen, da eine normale Installation nicht
möglich ist. Zusätzlich zu den Kern- und mfsroot-Disketten
benötigen Sie auch die fixit-Floppy.</para>
<procedure>
<step>
<title>Partitionierung Ihrer Flash-Medien</title>
<para>Wählen Sie nach dem Starten der Kern- und mfsroot-Disketten,
<literal>custom</literal> aus dem Installationsmenü. In diesem
Menü wählen Sie dann <literal>partition</literal> aus.
Dort sollten Sie alle bestehenden Partitionen mit Hilfe der Taste
<keycap>d</keycap> löschen. Nachdem alle bestehenden
Partitionen gelöscht wurden, erstellen Sie mittels der Taste
<keycap>c</keycap> eine Partition und akzeptieren Sie den
Standardwert für die Grösse der Partition. Wenn Sie nach
dem Typ der Partition gefragt werden, stellen Sie sicher, dass der
Wert auf <literal>165</literal> eingestellt ist. Schreiben Sie jetzt
diese Partitionstabelle auf die Platte durch betätigen der Taste
<keycap>w</keycap> (dies ist die versteckte Option auf diesem
Bildschirm). Wenn Sie eine ATA-kompatible Compact Flash-Karte
verwenden, sollten Sie den &os; Bootmanager auswählen.
Drücken Sie nun die Taste <keycap>q</keycap>, um das
Partitionsmenü zu verlassen. Sie werden das Menü des
Bootmanagers noch ein weiteres Mal gezeigt bekommt. In diesem Fall
wiederholen Sie die Auswahl von vorher.</para>
</step>
<step>
<title>Anlegen von Dateisystemen auf Ihrem
Flashspeicher-Gerät</title>
<para>Verlassen Sie das Installationsmenü und wählen Sie aus
dem Hauptinstallationsmenü die Option <literal>fixit</literal>.
In der fixit-Umgebung angelangt, geben Sie den folgenden Befehl
ein:</para>
<screen>&prompt.root; <userinput>disklabel -e /dev/ad0c</userinput></screen>
<para>Zu diesem Zeitpunkt sollten Sie sich im vi-Editor unter der
Herrschaft des disklabel-Kommandos befinden. Als nächstes
müssen Sie die eine <literal>a:</literal>-Zeile an das Ende der
Datei hinzufügen. Diese
<literal>a:</literal>-Zeile sollte wie folgt aussehen:</para>
<programlisting>a: <replaceable>123456</replaceable> 0 4.2BSD 0 0</programlisting>
<para>Wobei <replaceable>123456</replaceable> eine Zahl darstellt, die
exakt der gleichen Zahl in der bestehenden Zeile mit dem
<literal>c:</literal>-Eintrag entspricht. Sie kopieren quasi
die bestehende Zeile <literal>c:</literal> als eine neue Zeile
<literal>a:</literal> und stellen sicher, dass fstype
<literal>4.2BSD</literal> entspricht. Speichern Sie die Datei und
verlassen Sie den Editor.</para>
<screen>&prompt.root; <userinput>disklabel -B -r /dev/ad0c</userinput>
&prompt.root; <userinput>newfs /dev/ad0a</userinput></screen>
</step>
<step>
<title>Schreiben des Dateisystems auf Ihr Flash-Medium</title>
<para>Hängen Sie das neu erstellte Flash-Medium ein:</para>
<screen>&prompt.root; <userinput>mount /dev/ad0a /flash</userinput></screen>
<para>Verbinden Sie diese Maschine mit dem Netzwerk, um die tar-Datei
zu übertragen und extrahieren Sie es auf das Dateisystem des
Flash-Mediums. Ein Beispiel dazu wäre folgendes:</para>
<screen>&prompt.root; <userinput>ifconfig xl0 192.168.0.10 netmask 255.255.255.0</userinput>
&prompt.root; <userinput>route add default 192.168.0.1</userinput></screen>
<para>Jetzt da die Maschine ans Netzwerk angeschlossen ist, kopieren
Sie die tar-Datei. An diesem Punkt werden Sie möglicherweise
mit einem Dilemma konfrontiert - sollte Ihr Flash-Speicher
beispielsweise 128&nbsp;MB gross sein und Ihre tar-Datei grösser
als 64&nbsp;MB, können Sie ihre tar-Datei auf dem Flash-Speicher
nicht entpacken - Ihnen wird vorher der Speicherplatz ausgehen. Eine
Lösung für dieses Problem, sofern Sie FTP verwenden, ist,
dass Sie die Datei entpacken können, während es von FTP
übertragen wird. Wenn Sie die Übertragung auf diese Weise
durchführen, haben Sie niemals die tar-Datei und deren Inhalt
zur gleichen Zeit auf Ihrem Medium:</para>
<screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| tar xvf -"</userinput></screen>
<para>Sollte Ihre tar-Datei gezippt sein, können Sie dies
ebenso bewerkstelligen:</para>
<screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| zcat | tar xvf -"</userinput></screen>
<para>Nachdem der Inhalt Ihrer tar-Datei auf dem Dateisystem des
Flash-Mediums abgelegt wurden, können Sie den Flash-Speicher
aushängen und neu starten:</para>
<screen>&prompt.root; <userinput>cd /</userinput>
&prompt.root; <userinput>umount /flash</userinput>
&prompt.root; <userinput>exit</userinput></screen>
<para>In der Annahme, dass Sie Ihr Dateisystem richtig konfiguriert
haben, als es noch auf der gewöhnlichen Festplatte gebaut wurde
(mit Ihren Nur-Lese-Dateisystemen und den nötigen Optionen im
Kernel), sollten Sie nun erfolgreich von Ihrem &os; Embedded-System
starten können.</para>
</step>
</procedure>
</sect1>
<sect1 id="strategies">
<title>Systemstrategien für kleine und Nur-Lese-Umgebungen</title>
<para>In <xref linkend="ro-fs"/> wurde darauf hingewiesen, dass das
<filename>/var</filename>-Dateisystem von
<filename>/etc/rc.d/var</filename> konstruiert wurde und die Präsenz
eines Nur-Lese-Wurzeldateisystems Probleme mit vielen in &os;
gebrächlichen Softwarepaketen verursacht. In diesem Artikel werden
Vorschläge für das erfolgreiche Betreiben von cron, syslog,
Installationen von Ports und dem Apache-Webserver unterbreitet.</para>
<sect2>
<title>cron</title>
<para>Während des Bootvorgangs wird <filename
class="directory">/var</filename> von
<filename>/etc/rc.d/var</filename> anhand der Liste aus
<filename>/etc/mtree/BSD.var.dist</filename> gefüllt, damit
<filename class="directory">cron</filename>, <filename
class="directory">cron/tabs</filename>, <filename
class="directory">at</filename> und ein paar weitere
Standardverzeichnisse erstellt werden.</para>
<para>Jedoch löst das noch nicht das Problem, Crontabs über
Neustarts des Systems hinaus zu erhalten. Wenn das System neu
gestartet wird, verschwindet das <filename>/var</filename>-Dateiystem,
welches sich im Hauptspeicher befunden hat und jegliche Crontabs, die
Sie hatten werden ebenfalls verschwinden. Aus diesem Grund besteht eine
Lösung darin, Crontabs für diejenigen Benutzer zu erstellen,
die diese auch benötigen. Dazu sollte das
<filename>/</filename>-Dateisystem lesend und schreibend
eingehängt und diese Crontabs an einen sicheren Ort kopiert
werden, wie beispielsweise <filename>/etc/tabs</filename>. Fügen
Sie dann eine Zeile an das Ende der Datei
<filename>/etc/rc.initdiskless</filename> hinzu, die diese Crontabs in
<filename>/var/cron/tabs</filename> kopiert, nachdem dieses Verzeichnis
während der Systeminitialisierung erstellt wurde. Sie werden auch
eine Zeile hinzufügen mössen, welche die Besitzer und
Berechtigungen auf diesen Verzeichnissen, die Sie erstellen und den
dazugehörigen Dateien, die Sie mittels
<filename>/etc/rc.initdiskless</filename> kopieren, setzen.</para>
</sect2>
<sect2>
<title>syslog</title>
<para>Die Datei <filename>syslog.conf</filename> spezifiziert den Ort von
bestimmten Logdateien, welche in <filename>/var/log</filename>
existieren. Diese Dateien werden nicht von
<filename>/etc/rc.d/var</filename> während der
Systeminitialisierung erstellt. Aus diesem Grund müssen Sie
irgendwo in <filename>/etc/rc.d/var</filename> nach dem Abschnitt, der
die Verzeichnisse in <filename>/var</filename> erstellt, eine Zeile
ähnlich der folgenden hinzufügen:</para>
<screen>&prompt.root; <userinput>touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages</userinput>
&prompt.root; <userinput>chmod 0644 /var/log/*</userinput></screen>
</sect2>
<sect2>
<title>Installation von Ports</title>
<para>Bevor die notwendigen Änderungen erkärt werden, einen
Ports-Baum zu verwenden, ist es notwendig, Sie an die
Nur-Lese-Besonderheit Ihres Dateisystems auf dem Flash-Medium zu
erinnern. Da dieses nur lesend verfügbar ist, müssen Sie es
vorübergehend mit Schreibrechten ausstatten, indem Sie die
mount-Syntax, wie in <xref linkend="ro-fs"/> dargestellt wird,
verwenden. Sie sollten immer diese Dateisysteme erneut mit
nur-Lese-Rechten einhängen wenn Sie damit fertig sind -
unnötige Schreibvorgänge auf dem Flash-Medium kann dessen
Lebenszeit erheblich verkürzen.</para>
<para>Um es zu ermöglichen, in das Ports-Verzeichnis zu wechseln
und erfolgreich
<command>make</command> <maketarget>install</maketarget>
auszuführen, müssen wir ein Paketverzeichnis auf einem
Nicht-Hauptspeicherdateisystem erstellen, welches die Pakete über
Neustarts hinweg im Auge behält. Weil es sowieso nötig ist,
Ihre Dateisysteme mit Lese-Schreibrechten für die Installation
eines Pakets einzuhängen, ist es sinnvoll anzunehmen, dass ein
Bereich Ihres Flash-Mediums ebenfalls für Paketinformationen, die
darauf abgespeichert werden, verwendet wird.</para>
<para>Erstellen Sie zuerst ein Verzeichnis für die Paketdatenbank.
Normalerweise ist dies <filename>/var/db/pkg</filename>, jedoch
können wir es dort nicht unterbringen, da es jedesmal verschwinden
wird, wenn das System neu gestartet wird.</para>
<screen>&prompt.root; <userinput>mkdir /etc/pkg</userinput></screen>
<para>Fügen Sie nun eine Zeile in <filename>/etc/rc.d/var</filename>
hinzu, welche das <filename>/etc/pkg</filename>-Verzeichnis mit
<filename>/var/db/pkg</filename> verknüpft. Ein Beispiel:</para>
<screen>&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput></screen>
<para>Nun wird jedes Mal, wenn Sie Ihre Dateisysteme mit
Lese-Schreibrechten einbinden und ein Paket installieren, der Befehl
<command>make</command> <maketarget>install</maketarget> funktionieren
und Paketinformationen werden erfolgreich nach
<filename>/etc/pkg</filename> geschrieben (da zu diesem Zeitpunkt das
Dateisystem mit Lese-Schreibrechten eingebunden ist), welche dann stets
dem Betriebssystem als <filename>/var/db/pkg</filename> zur
Verfügung stehen.</para>
</sect2>
<sect2>
<title>Apache Webserver</title>
<note>
<para>Die Anweisungen in diesem Abschnitt sind nur notwendig, wenn
Apache so eingerichtet ist, dass dieser seine PID oder
Protokollierungsinformationen ausserhalb von <filename
class="directory">/var</filename> ablegt. Standardmässig
bewahrt Apache seine PID-Datei in <filename
class="directory">/var/run/httpd.pid</filename> und seine
Protokolldateien in <filename
class="directory">/var/log</filename> auf.</para>
</note>
<para>Es wird nun davon ausgegangen, dass Apache seine Protokolldateien
in einem Verzeichnis namens <filename
class="directory"><replaceable>apache_log_dir</replaceable></filename>
ausserhalb von <filename class="directory">/var</filename> speichert.
Wenn dieses Verzeichnis auf einem nur-Lese-Dateisystem existiert, wird
Apache nicht in der Lage sein, Protokolldateien zu speichern und wird
vermutlich nicht richtig funktionieren. Wenn dies der Fall ist, muss
ein neues Verzeichnis zu der Liste der Verzeichnisse in
<filename>/etc/rc.d/var</filename> hinzugefügt werden, um dieses
in <filename>/var</filename> zu erstellen und um <filename
class="directory"><replaceable>apache_log_dir</replaceable></filename>
nach <filename>/var/log/apache</filename> zu verknüpfen. Es ist
auch nötig, Berechtigungen und Besitzer auf diesem neuen
Verzeichnis zu setzen.</para>
<para>Fügen Sie zuerst das Verzeichnis <literal>log/apache</literal>
zu der Liste von Verzeichnissen hinzu, die in
<filename>/etc/rc.d/var</filename> angelegt werden sollen.</para>
<para>Danach tragen Sie die folgenden Befehle in
<filename>/etc/rc.d/var</filename> nach dem Abschnitt zum Erstellen der
Verzeichnisse ein:</para>
<screen>&prompt.root; <userinput>chmod 0774 /var/log/apache</userinput>
&prompt.root; <userinput>chown nobody:nobody /var/log/apache</userinput></screen>
<para>Schliesslich löschen Sie das bestehende <filename
class="directory"><replaceable>apache_log_dir</replaceable></filename>
Verzeichnis und ersetzen es mit einer Verknüpfung:</para>
<screen>&prompt.root; <userinput>rm -rf <filename class="directory"><replaceable>apache_log_dir</replaceable></filename></userinput>
&prompt.root; <userinput>ln -s /var/log/apache <filename class="directory"><replaceable>apache_log_dir</replaceable></filename></userinput></screen>
</sect2>
</sect1>
</article>