                    FreeBSD und Solid State-Gera:te

  John Kozubik

   <john@kozubik.com>

   $FreeBSD:
   release/8.4.0/de_DE.ISO8859-1/articles/solid-state/article.xml
   40650 2013-01-16 08:53:39Z bcr $

   Copyright (c) 2001, 2009 The FreeBSD Documentation Project

   $FreeBSD:
   release/8.4.0/de_DE.ISO8859-1/articles/solid-state/article.xml
   40650 2013-01-16 08:53:39Z bcr $

   FreeBSD ist ein eingetragenes Warenzeichen der FreeBSD Foundation.

   Viele Produktbezeichnungen von Herstellern und Verka:ufern sind
   Warenzeichen. Soweit dem FreeBSD Project das Warenzeichen bekannt
   ist, werden die in diesem Dokument vorkommenden Bezeichnungen mit
   dem Symbol "(TM)" oder dem Symbol "(R)" gekennzeichnet.

   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.

     Wichtig: 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 THE FREEBSD
     DOCUMENTATION PROJECT 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.

   Dieser Artikel behandelt die Verwendung von Solid State
   Festplatten in FreeBSD, um eingebettete Systeme zu erstellen.

   Eingebettete Systeme haben den Vorteil, dass sie eine ho:here
   Stabilita:t aufgrund des fehlens von beweglichen Bauteilen
   (Festplatten) besitzen. Es muss jedoch beachtet werden, dass
   generell weniger Speicherplatz zur Verfu:gung steht und die
   Lebensdauer des Speichermediums geringer ist.

   Spezielle Themen die behandelt werden beinhalten die Typen und
   Attribute von Solid State Datentra:gern, die in FreeBSD verwendet
   werden, Kernel-Optionen die in solch einer Umgebung von Interesse
   sind, der rc.initdiskless-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 fu:r kleine und Nur-Lese-FreeBSD Umgebungen.

   U:bersetzt von Benedict Reuschling.

     --------------------------------------------------------------

1. Solid State Festplattengera:te

   Der Umfang des Artikels ist auf Solid State Gera:te beschra:nkt,
   die auf Flash-Speicher basieren. Flash-Speicher ist ein Solid
   State Speicher (keine beweglichen Teile), der nicht flu:chtig ist
   (der Speicher beha:lt die Daten sogar nachdem alle Energiequellen
   ausgeschaltet wurden). Flash-Speicher kann grossen physischen
   Schock aushalten und ist vergleichsweise schnell (die
   Flash-Speicher Lo: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
   spa:ter in diesem Artikel diskutiert werden, ist, dass jeder
   Sektor eine begrenzte Kapazita:t zur Wiederbeschreibung besitzt.
   Man kann nur eine bestimmte Anzahl von Schreib-, Lo:sch- und
   Wiederbeschreibungsvorga:ngen durchfu:hren, bevor der Sektor
   permanent unbrauchbar wird. Obwohl viele Flash-Speicher Produkte
   automatisch schlechte Blo:cke markieren und manche Gera:te
   Schreiboperationen gleichma:ssig verteilen, bleibt weiterhin die
   Anzahl der durchfu:hrbaren Schreibvorga:nge begrenzt. Verschiedene
   Gera:teeinheiten besitzen zwischen 1,000,000 und 10,000,000
   Schreibzyklen pro Sektor in ihren Spezifikationen. Diese Zahlen
   variieren aufgrund der Umgebungstemperatur.

   Im Speziellen werden wir ATA-kompatible Compact-Flash-Karten
   betrachten, welche als Speichermedien fu:r Digitalkameras ziemlich
   popula: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 ko:nnen diese Gera:te mit
   einem einfachen und billigen Adapter direkt an den IDE-Bus eines
   Computers angeschlossen werden. Auf diese Weise sehen
   Betriebssysteme wie FreeBSD diese Gera:te dann als normale (wenn
   auch sehr kleine) Festplatten an.

   Andere Solid State Plattenlo:sungen existieren, jedoch platzieren
   deren Kosten, Obskurita:t und ihre Unhandlichkeit sie aussserhalb
   des Umfangs dieses Artikels.

     --------------------------------------------------------------

2. Kerneloptionen

   Ein paar Kerneloptionen sind von besonderem Interesse fu:r
   diejenigen, welche diese eingebetteten FreeBSD-Systeme erstellen
   mo:chten.

   Alle eingebetteten FreeBSD-Systeme, die Flash-Speicher als
   Systemplatte verwenden, sind interessant fu:r Dateisysteme im
   Hauptspeicher und RAM-Disks. Wegen der begrenzten Anzahl von
   Schreibzyklen, die auf Flash-Speicher durchgefu:hrt werden
   ko:nnen, werden die Platte und die Dateisysteme darauf mit grosser
   Wahrscheinlichkeit nur lesend eingeha:ngt werden. In dieser
   Umgebung werden Dateisysteme wie /tmp und /var als RAM-Disks
   eingebunden, um dem System zu erlauben, Logdateien anzulegen und
   Za:hler sowie tempora:re Dateien zu aktualisieren. RAM-Disks sind
   eine kritische Komponente fu:r eine erfolgreiche Solid State
   Umsetzung in FreeBSD.

   Sie sollten dafu:r sorgen, dass die folgenden Zeilen in Ihrer
   Kernelkonfigurationsdatei vorhanden sind:

 options         MFS             # Memory Filesystem
 options         MD_ROOT         # md device usable as a potential root device
 pseudo-device   md              # memory disk

     --------------------------------------------------------------

3. Die rc-Subsysteme und nur-Lese Dateisysteme

   Die Initialisierung nach dem Bootvorgang eines eingebetteten
   FreeBSD-Systems wird von /etc/rc.initdiskless kontrolliert.

   /etc/rc.d/var ha:ngt /var als RAM-Disk ein, erstellt eine
   konfigurierbare Liste von Verzeichnissen in /var mittels des
   mkdir(1)-Kommandos und a:ndert die Attribute von ein paar dieser
   Verzeichnisse. Bei der Ausfu:hrung von /etc/rc.d/var kommt eine
   andere rc.conf-Variable ins Spiel: varsize. Die Datei
   /etc/rc.d/var erstellt eine /var-Partition basierend auf dem Wert
   dieser Variable in rc.conf:

 varsize=8192

   Standardma:ssig wird dieser Wert in Sektoren angegeben.

   Der Fakt, dass es sich bei /var um ein nur-Lese Dateisystem
   handelt, ist eine wichtige Unterscheidung, da die /-Partition (und
   jede andere Partition, die Sie auf Ihrem Flash-Medium haben) nur
   lesend eingeha:ngt wird. Erinnern Sie sich, dass in Abschnitt 1
   die Beschra:nkungen von Flash-Speichern erla:utert wurden,
   speziell deren begrenzte Kapazita:t zum Schreiben. Die
   Notwendigkeit, Dateisysteme auf Flash-Speichern nur lesend
   einzubinden und keine Swap-Dateien zu verwenden, kann nicht oft
   genug erwa:hnt werden. Eine Swap-Datei auf einem ausgelasteten
   System kann in weniger als einem Jahr den gesamten Flash-Speicher
   aufbrauchen. Ha:ufige Protokollierung oder das Erstellen und
   Lo:schen von tempora:ren Dateien kann das gleiche verursachen. Aus
   diesem Grund sollten Sie zusa:tzlich zum entfernen des
   swap-Eintrags aus ihrer /etc/fstab-Datei auch noch die
   Optionsfelder fu:r jedes Dateisystem auf ro wie folgt stellen:

 # Device                Mountpoint      FStype  Options         Dump    Pass#
 /dev/ad0s1a             /               ufs     ro              1       1

   Ein paar Anwendungen im normalen System werden sofort nach dieser
   A:nderung ausfallen. Beispielsweise wird Cron nicht richtig
   funktionieren, aufgrund von fehlenden Cron-Tabellen in /var die
   von /etc/rc.d/var erstellt wurden. Syslog und DHCP werden
   ebenfalls Probleme durch das nur-Lese Dateisystem und fehlende
   Elemente im Verzeichnis /var verursachen, die /etc/rc.d/var
   erstellt hat. Diese Probleme sind jedoch nur voru:bergehend und
   werden zusammen mit Lo:sungen zur Ausfu:hrung von anderen
   gebra:uchlichen Softwarepaketen in Abschnitt 5 angesprochen.

   Eine wichtige Sache, an die man sich erinnern sollte, ist, dass
   ein Dateisystem, welches als nur lesend in /etc/fstab eingebunden
   wurde, jederzeit als schreibend durch das folgende Kommando
   eingeha:ngt werden kann:

 # /sbin/mount -uw partition

   und auch wieder zuru:ck auf nur lesend durch den Befehl:

 # /sbin/mount -ur partition

     --------------------------------------------------------------

4. Ein Dateisystem von Grund auf neu erstellen

   Wenn ATA-kompatible Compact-Flash-Karten von FreeBSD als normale
   IDE-Festplatten erkannt werden, ko:nnten Sie theoretisch FreeBSD
   aus dem Netzwerk mittels der Kern- und mfsroot-Floppies oder einer
   CD installieren.

   Jedoch kann selbst eine kleine Installation von FreeBSD durch die
   normale Installationsprozedur ein System erzeugen, dass gro:sser
   als 200 MB ist. Da die meisten Leute kleinere Flash-Speichermedien
   einsetzen (128 MB wird hier als gross angesehen - 32 oder sogar
   16 MB sind gebra:uchlich) ist eine gewo:hnliche Installation mit
   normalen Methoden nicht mo:glich, da es einfach nicht genug freien
   Plattenplatz gibt, selbst fu:r die kleinste Installationsart.

   Der einfachste Weg, diese Speicherlimitierung zu umgehen, ist,
   FreeBSD auf konventionelle Weise auf eine normale Festplatte zu
   installieren. Nachdem die Installation abgeschlossen wurde,
   ku:rzen Sie das Betriebssystem auf das no:tigste, bis Sie eine
   Gro: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
   fu:r ihr getartes Dateisystem fu:hren. Beachten Sie, dass
   Operationen wie Partitionierung, Benennung, Erstellung von
   Dateisystemen, etc. von Hand durchgefu:hrt werden mu:ssen, da eine
   normale Installation nicht mo:glich ist. Zusa:tzlich zu den Kern-
   und mfsroot-Disketten beno:tigen Sie auch die fixit-Floppy.

    1. Partitionierung Ihrer Flash-Medien

       Wa:hlen Sie nach dem Starten der Kern- und mfsroot-Disketten,
       custom aus dem Installationsmenu:. In diesem Menu: wa:hlen Sie
       dann partition aus. Dort sollten Sie alle bestehenden
       Partitionen mit Hilfe der Taste d lo:schen. Nachdem alle
       bestehenden Partitionen gelo:scht wurden, erstellen Sie
       mittels der Taste c eine Partition und akzeptieren Sie den
       Standardwert fu:r die Gro:sse der Partition. Wenn Sie nach dem
       Typ der Partition gefragt werden, stellen Sie sicher, dass der
       Wert auf 165 eingestellt ist. Schreiben Sie jetzt diese
       Partitionstabelle auf die Platte durch beta:tigen der Taste w
       (dies ist die versteckte Option auf diesem Bildschirm). Wenn
       Sie eine ATA-kompatible Compact Flash-Karte verwenden, sollten
       Sie den FreeBSD Bootmanager auswa:hlen. Dru:cken Sie nun die
       Taste q, um das Partitionsmenu: zu verlassen. Sie werden das
       Menu: des Bootmanagers noch ein weiteres Mal gezeigt bekommt.
       In diesem Fall wiederholen Sie die Auswahl von vorher.

    2. Anlegen von Dateisystemen auf Ihrem Flashspeicher-Gera:t

       Verlassen Sie das Installationsmenu: und wa:hlen Sie aus dem
       Hauptinstallationsmenu: die Option fixit. In der
       fixit-Umgebung angelangt, geben Sie den folgenden Befehl ein:

 # disklabel -e /dev/ad0c

       Zu diesem Zeitpunkt sollten Sie sich im vi-Editor unter der
       Herrschaft des disklabel-Kommandos befinden. Als na:chstes
       mu:ssen Sie die eine a:-Zeile an das Ende der Datei
       hinzufu:gen. Diese a:-Zeile sollte wie folgt aussehen:

 a:      123456  0       4.2BSD  0       0

       Wobei 123456 eine Zahl darstellt, die exakt der gleichen Zahl
       in der bestehenden Zeile mit dem c:-Eintrag entspricht. Sie
       kopieren quasi die bestehende Zeile c: als eine neue Zeile a:
       und stellen sicher, dass fstype 4.2BSD entspricht. Speichern
       Sie die Datei und verlassen Sie den Editor.

 # disklabel -B -r /dev/ad0c
 # newfs /dev/ad0a

    3. Schreiben des Dateisystems auf Ihr Flash-Medium

       Ha:ngen Sie das neu erstellte Flash-Medium ein:

 # mount /dev/ad0a /flash

       Verbinden Sie diese Maschine mit dem Netzwerk, um die
       tar-Datei zu u:bertragen und extrahieren Sie es auf das
       Dateisystem des Flash-Mediums. Ein Beispiel dazu wa:re
       folgendes:

 # ifconfig xl0 192.168.0.10 netmask 255.255.255.0
 # route add default 192.168.0.1

       Jetzt da die Maschine ans Netzwerk angeschlossen ist, kopieren
       Sie die tar-Datei. An diesem Punkt werden Sie mo:glicherweise
       mit einem Dilemma konfrontiert - sollte Ihr Flash-Speicher
       beispielsweise 128 MB gross sein und Ihre tar-Datei gro:sser
       als 64 MB, ko:nnen Sie ihre tar-Datei auf dem Flash-Speicher
       nicht entpacken - Ihnen wird vorher der Speicherplatz
       ausgehen. Eine Lo:sung fu:r dieses Problem, sofern Sie FTP
       verwenden, ist, dass Sie die Datei entpacken ko:nnen, wa:hrend
       es von FTP u:bertragen wird. Wenn Sie die U:bertragung auf
       diese Weise durchfu:hren, haben Sie niemals die tar-Datei und
       deren Inhalt zur gleichen Zeit auf Ihrem Medium:

 ftp> get tarfile.tar "| tar xvf -"

       Sollte Ihre tar-Datei gezippt sein, ko:nnen Sie dies ebenso
       bewerkstelligen:

 ftp> get tarfile.tar "| zcat | tar xvf -"

       Nachdem der Inhalt Ihrer tar-Datei auf dem Dateisystem des
       Flash-Mediums abgelegt wurden, ko:nnen Sie den Flash-Speicher
       ausha:ngen und neu starten:

 # cd /
 # umount /flash
 # exit

       In der Annahme, dass Sie Ihr Dateisystem richtig konfiguriert
       haben, als es noch auf der gewo:hnlichen Festplatte gebaut
       wurde (mit Ihren Nur-Lese-Dateisystemen und den no:tigen
       Optionen im Kernel), sollten Sie nun erfolgreich von Ihrem
       FreeBSD Embedded-System starten ko:nnen.

     --------------------------------------------------------------

5. Systemstrategien fu:r kleine und Nur-Lese-Umgebungen

   In Abschnitt 3 wurde darauf hingewiesen, dass das /var-Dateisystem
   von /etc/rc.d/var konstruiert wurde und die Pra:senz eines
   Nur-Lese-Wurzeldateisystems Probleme mit vielen in FreeBSD
   gebra:chlichen Softwarepaketen verursacht. In diesem Artikel
   werden Vorschla:ge fu:r das erfolgreiche Betreiben von cron,
   syslog, Installationen von Ports und dem Apache-Webserver
   unterbreitet.

     --------------------------------------------------------------

  5.1. cron

   Wa:hrend des Bootvorgangs wird /var von /etc/rc.d/var anhand der
   Liste aus /etc/mtree/BSD.var.dist gefu:llt, damit cron, cron/tabs,
   at und ein paar weitere Standardverzeichnisse erstellt werden.

   Jedoch lo:st das noch nicht das Problem, Crontabs u:ber Neustarts
   des Systems hinaus zu erhalten. Wenn das System neu gestartet
   wird, verschwindet das /var-Dateiystem, welches sich im
   Hauptspeicher befunden hat und jegliche Crontabs, die Sie hatten
   werden ebenfalls verschwinden. Aus diesem Grund besteht eine
   Lo:sung darin, Crontabs fu:r diejenigen Benutzer zu erstellen, die
   diese auch beno:tigen. Dazu sollte das /-Dateisystem lesend und
   schreibend eingeha:ngt und diese Crontabs an einen sicheren Ort
   kopiert werden, wie beispielsweise /etc/tabs. Fu:gen Sie dann eine
   Zeile an das Ende der Datei /etc/rc.initdiskless hinzu, die diese
   Crontabs in /var/cron/tabs kopiert, nachdem dieses Verzeichnis
   wa:hrend der Systeminitialisierung erstellt wurde. Sie werden auch
   eine Zeile hinzufu:gen mo:ssen, welche die Besitzer und
   Berechtigungen auf diesen Verzeichnissen, die Sie erstellen und
   den dazugeho:rigen Dateien, die Sie mittels /etc/rc.initdiskless
   kopieren, setzen.

     --------------------------------------------------------------

  5.2. syslog

   Die Datei syslog.conf spezifiziert den Ort von bestimmten
   Logdateien, welche in /var/log existieren. Diese Dateien werden
   nicht von /etc/rc.d/var wa:hrend der Systeminitialisierung
   erstellt. Aus diesem Grund mu:ssen Sie irgendwo in /etc/rc.d/var
   nach dem Abschnitt, der die Verzeichnisse in /var erstellt, eine
   Zeile a:hnlich der folgenden hinzufu:gen:

 # touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages
 # chmod 0644 /var/log/*

     --------------------------------------------------------------

  5.3. Installation von Ports

   Bevor die notwendigen A:nderungen erka: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 verfu:gbar ist, mu:ssen Sie es voru:bergehend mit
   Schreibrechten ausstatten, indem Sie die mount-Syntax, wie in
   Abschnitt 3 dargestellt wird, verwenden. Sie sollten immer diese
   Dateisysteme erneut mit nur-Lese-Rechten einha:ngen wenn Sie damit
   fertig sind - unno:tige Schreibvorga:nge auf dem Flash-Medium kann
   dessen Lebenszeit erheblich verku:rzen.

   Um es zu ermo:glichen, in das Ports-Verzeichnis zu wechseln und
   erfolgreich make install auszufu:hren, mu:ssen wir ein
   Paketverzeichnis auf einem Nicht-Hauptspeicherdateisystem
   erstellen, welches die Pakete u:ber Neustarts hinweg im Auge
   beha:lt. Weil es sowieso no:tig ist, Ihre Dateisysteme mit
   Lese-Schreibrechten fu:r die Installation eines Pakets
   einzuha:ngen, ist es sinnvoll anzunehmen, dass ein Bereich Ihres
   Flash-Mediums ebenfalls fu:r Paketinformationen, die darauf
   abgespeichert werden, verwendet wird.

   Erstellen Sie zuerst ein Verzeichnis fu:r die Paketdatenbank.
   Normalerweise ist dies /var/db/pkg, jedoch ko:nnen wir es dort
   nicht unterbringen, da es jedesmal verschwinden wird, wenn das
   System neu gestartet wird.

 # mkdir /etc/pkg

   Fu:gen Sie nun eine Zeile in /etc/rc.d/var hinzu, welche das
   /etc/pkg-Verzeichnis mit /var/db/pkg verknu:pft. Ein Beispiel:

 # ln -s /etc/pkg /var/db/pkg

   Nun wird jedes Mal, wenn Sie Ihre Dateisysteme mit
   Lese-Schreibrechten einbinden und ein Paket installieren, der
   Befehl make install funktionieren und Paketinformationen werden
   erfolgreich nach /etc/pkg geschrieben (da zu diesem Zeitpunkt das
   Dateisystem mit Lese-Schreibrechten eingebunden ist), welche dann
   stets dem Betriebssystem als /var/db/pkg zur Verfu:gung stehen.

     --------------------------------------------------------------

  5.4. Apache Webserver

     Anmerkung: Die Anweisungen in diesem Abschnitt sind nur
     notwendig, wenn Apache so eingerichtet ist, dass dieser seine
     PID oder Protokollierungsinformationen ausserhalb von /var
     ablegt. Standardma:ssig bewahrt Apache seine PID-Datei in
     /var/run/httpd.pid und seine Protokolldateien in /var/log auf.

   Es wird nun davon ausgegangen, dass Apache seine Protokolldateien
   in einem Verzeichnis namens apache_log_dir ausserhalb von /var
   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 /etc/rc.d/var hinzugefu:gt werden, um dieses in
   /var zu erstellen und um apache_log_dir nach /var/log/apache zu
   verknu:pfen. Es ist auch no:tig, Berechtigungen und Besitzer auf
   diesem neuen Verzeichnis zu setzen.

   Fu:gen Sie zuerst das Verzeichnis log/apache zu der Liste von
   Verzeichnissen hinzu, die in /etc/rc.d/var angelegt werden sollen.

   Danach tragen Sie die folgenden Befehle in /etc/rc.d/var nach dem
   Abschnitt zum Erstellen der Verzeichnisse ein:

 # chmod 0774 /var/log/apache
 # chown nobody:nobody /var/log/apache

   Schliesslich lo:schen Sie das bestehende apache_log_dir
   Verzeichnis und ersetzen es mit einer Verknu:pfung:

 # rm -rf apache_log_dir
 # ln -s /var/log/apache apache_log_dir

     --------------------------------------------------------------

     Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
                   <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail
                an <de-bsd-translators@de.FreeBSD.org>.
