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