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