doc/de_DE.ISO8859-1/articles/solid-state/article.xml
Gabor Kovesdan a06603e1e8 - MFH
2013-02-05 09:14:34 +00:00

548 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>