519 lines
25 KiB
XML
519 lines
25 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
|
|
"../../../share/xml/freebsd45.dtd">
|
|
|
|
<!-- Copyright (c) 2001 The FreeBSD Documentation Project
|
|
|
|
Redistribution and use in source (SGML DocBook) and 'compiled' forms
|
|
(SGML, HTML, PDF, PostScript, RTF and so forth) with or without
|
|
modification, are permitted provided that the following conditions
|
|
are met:
|
|
|
|
1. Redistributions of source code (SGML DocBook) must retain the above
|
|
copyright notice, this list of conditions and the following
|
|
disclaimer as the first lines of this file unmodified.
|
|
|
|
2. Redistributions in compiled form (transformed to other DTDs,
|
|
converted to PDF, PostScript, RTF and other formats) must reproduce
|
|
the above copyright notice, this list of conditions and the
|
|
following disclaimer in the documentation and/or other materials
|
|
provided with the distribution.
|
|
|
|
THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS
|
|
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY
|
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
|
|
POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
$FreeBSD$
|
|
$FreeBSDde: de-docproj/articles/solid-state/article.xml,v 1.2 2010/09/18 21:55:49 jkois Exp $
|
|
basiert auf: 1.18
|
|
-->
|
|
|
|
<article lang="de">
|
|
<articleinfo>
|
|
<title>&os; und Solid State-Geräte</title>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>John</firstname>
|
|
<surname>Kozubik</surname>
|
|
|
|
<affiliation>
|
|
<address><email>john@kozubik.com</email></address>
|
|
</affiliation>
|
|
</author>
|
|
</authorgroup>
|
|
|
|
<copyright>
|
|
<year>2001</year>
|
|
<year>2009</year>
|
|
<holder>The FreeBSD Documentation Project</holder>
|
|
</copyright>
|
|
|
|
<legalnotice id="trademarks" role="trademarks">
|
|
&tm-attrib.freebsd;
|
|
&tm-attrib.general;
|
|
</legalnotice>
|
|
|
|
&legalnotice;
|
|
|
|
<pubdate>$FreeBSD$</pubdate>
|
|
|
|
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
|
|
<abstract>
|
|
<para>Dieser Artikel behandelt die Verwendung von Solid State Festplatten
|
|
in &os;, um eingebettete Systeme zu erstellen.</para>
|
|
|
|
<para>Eingebettete Systeme haben den Vorteil, dass sie eine höhere
|
|
Stabilität aufgrund des fehlens von beweglichen Bauteilen
|
|
(Festplatten) besitzen. Es muss jedoch beachtet werden, dass generell
|
|
weniger Speicherplatz zur Verfügung steht und die Lebensdauer des
|
|
Speichermediums geringer ist.</para>
|
|
|
|
<para>Spezielle Themen die behandelt werden beinhalten die Typen und
|
|
Attribute von Solid State Datenträgern, die in &os; verwendet
|
|
werden, Kernel-Optionen die in solch einer Umgebung von Interesse sind,
|
|
der <filename>rc.initdiskless</filename>-Mechanismus, welcher die
|
|
Initalisierung solcher Systeme automatisiert, sowie die Notwendigkeit
|
|
von Nur-Lese-Dateisystemen und das Erstellen von Dateisystemen von
|
|
Grund auf. Der Artikel schliesst mit ein paar generellen Strategien
|
|
für kleine und Nur-Lese-&os; Umgebungen.</para>
|
|
|
|
<para><emphasis>Übersetzt von Benedict Reuschling</emphasis>.</para>
|
|
</abstract>
|
|
</articleinfo>
|
|
|
|
<sect1 id="intro">
|
|
<title>Solid State Festplattengeräte</title>
|
|
|
|
<para>Der Umfang des Artikels ist auf Solid State Geräte
|
|
beschränkt, die auf Flash-Speicher basieren. Flash-Speicher ist ein
|
|
Solid State Speicher (keine beweglichen Teile), der nicht flüchtig
|
|
ist (der Speicher behält die Daten sogar nachdem alle Energiequellen
|
|
ausgeschaltet wurden). Flash-Speicher kann grossen physischen Schock
|
|
aushalten und ist vergleichsweise schnell (die Flash-Speicher
|
|
Lösungen, die in diesem Artikel behandelt werden, sind nur wenig
|
|
langsamer als eine EIDE-Festplatte in der Schreibgeschwindigkeit und viel
|
|
schneller bei Lese-Operationen). Ein sehr wichtiger Aspekt von
|
|
Flash-Speichern, dessen Auswirkungen später in diesem Artikel
|
|
diskutiert werden, ist, dass jeder Sektor eine begrenzte Kapazität
|
|
zur Wiederbeschreibung besitzt. Man kann nur eine bestimmte Anzahl von
|
|
Schreib-, Lösch- und Wiederbeschreibungsvorgängen
|
|
durchführen, bevor der Sektor permanent unbrauchbar wird. Obwohl
|
|
viele Flash-Speicher Produkte automatisch schlechte Blöcke markieren
|
|
und manche Geräte Schreiboperationen gleichmässig verteilen,
|
|
bleibt weiterhin die Anzahl der durchführbaren Schreibvorgänge
|
|
begrenzt. Verschiedene Geräteeinheiten besitzen zwischen 1,000,000
|
|
und 10,000,000 Schreibzyklen pro Sektor in ihren Spezifikationen. Diese
|
|
Zahlen variieren aufgrund der Umgebungstemperatur.</para>
|
|
|
|
<para>Im Speziellen werden wir ATA-kompatible Compact-Flash-Karten
|
|
betrachten, welche als Speichermedien für Digitalkameras ziemlich
|
|
populär sind. Von besonderem Interesse ist der Umstand, dass diese
|
|
direkt an den IDE-Bus angeschlossen werden und kompatibel zu den
|
|
ATA-Befehlen sind. Aus diesem Grund können diese Geräte mit
|
|
einem einfachen und billigen Adapter direkt an den IDE-Bus eines
|
|
Computers angeschlossen werden. Auf diese Weise sehen Betriebssysteme
|
|
wie &os; diese Geräte dann als normale (wenn auch sehr kleine)
|
|
Festplatten an.</para>
|
|
|
|
<para>Andere Solid State Plattenlösungen existieren, jedoch platzieren
|
|
deren Kosten, Obskurität und ihre Unhandlichkeit sie aussserhalb
|
|
des Umfangs dieses Artikels.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="kernel">
|
|
<title>Kerneloptionen</title>
|
|
|
|
<para>Ein paar Kerneloptionen sind von besonderem Interesse für
|
|
diejenigen, welche diese eingebetteten &os;-Systeme erstellen
|
|
möchten.</para>
|
|
|
|
<para>Alle eingebetteten &os;-Systeme, die Flash-Speicher als Systemplatte
|
|
verwenden, sind interessant für Dateisysteme im Hauptspeicher und
|
|
RAM-Disks. Wegen der begrenzten Anzahl von Schreibzyklen, die auf
|
|
Flash-Speicher durchgeführt werden können, werden die Platte
|
|
und die Dateisysteme darauf mit grosser Wahrscheinlichkeit nur lesend
|
|
eingehängt werden. In dieser Umgebung werden Dateisysteme wie
|
|
<filename>/tmp</filename> und <filename>/var</filename> als RAM-Disks
|
|
eingebunden, um dem System zu erlauben, Logdateien anzulegen und
|
|
Zähler sowie temporäre Dateien zu aktualisieren. RAM-Disks
|
|
sind eine kritische Komponente für eine erfolgreiche Solid State
|
|
Umsetzung in &os;.</para>
|
|
|
|
<para>Sie sollten dafür sorgen, dass die folgenden Zeilen in Ihrer
|
|
Kernelkonfigurationsdatei vorhanden sind:</para>
|
|
|
|
<programlisting>options MFS # Memory Filesystem
|
|
options MD_ROOT # md device usable as a potential root device
|
|
pseudo-device md # memory disk</programlisting>
|
|
</sect1>
|
|
|
|
<sect1 id="ro-fs">
|
|
<title>Die <literal>rc</literal>-Subsysteme und nur-Lese
|
|
Dateisysteme</title>
|
|
|
|
<para>Die Initialisierung nach dem Bootvorgang eines eingebetteten
|
|
&os;-Systems wird von <filename>/etc/rc.initdiskless</filename>
|
|
kontrolliert.</para>
|
|
|
|
<para><filename>/etc/rc.d/var</filename> hängt
|
|
<filename>/var</filename> als RAM-Disk ein, erstellt eine konfigurierbare
|
|
Liste von Verzeichnissen in <filename>/var</filename> mittels des
|
|
&man.mkdir.1;-Kommandos und ändert die Attribute von ein paar dieser
|
|
Verzeichnisse. Bei der Ausführung von
|
|
<filename>/etc/rc.d/var</filename> kommt eine andere
|
|
<filename>rc.conf</filename>-Variable ins Spiel:
|
|
<literal>varsize</literal>. Die Datei <filename>/etc/rc.d/var</filename>
|
|
erstellt eine <filename>/var</filename>-Partition basierend auf dem Wert
|
|
dieser Variable in <filename>rc.conf</filename>:</para>
|
|
|
|
<programlisting>varsize=8192</programlisting>
|
|
|
|
<para>Standardmässig wird dieser Wert in Sektoren angegeben.</para>
|
|
|
|
<para>Der Fakt, dass es sich bei <filename>/var</filename> um ein nur-Lese
|
|
Dateisystem handelt, ist eine wichtige Unterscheidung, da die
|
|
<filename>/</filename>-Partition (und jede andere Partition, die Sie auf
|
|
Ihrem Flash-Medium haben) nur lesend eingehängt wird. Erinnern Sie
|
|
sich, dass in <xref linkend="intro"/> die Beschränkungen von
|
|
Flash-Speichern erläutert wurden, speziell deren begrenzte
|
|
Kapazität zum Schreiben. Die Notwendigkeit, Dateisysteme auf
|
|
Flash-Speichern nur lesend einzubinden und keine Swap-Dateien zu
|
|
verwenden, kann nicht oft genug erwähnt werden. Eine Swap-Datei auf
|
|
einem ausgelasteten System kann in weniger als einem Jahr den gesamten
|
|
Flash-Speicher aufbrauchen. Häufige Protokollierung oder das
|
|
Erstellen und Löschen von temporären Dateien kann das gleiche
|
|
verursachen. Aus diesem Grund sollten Sie zusätzlich zum entfernen
|
|
des <literal>swap</literal>-Eintrags aus ihrer
|
|
<filename>/etc/fstab</filename>-Datei auch noch die Optionsfelder
|
|
für jedes Dateisystem auf <literal>ro</literal> wie folgt
|
|
stellen:</para>
|
|
|
|
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
|
/dev/ad0s1a / ufs ro 1 1</programlisting>
|
|
|
|
<para>Ein paar Anwendungen im normalen System werden sofort nach dieser
|
|
Änderung ausfallen. Beispielsweise wird Cron nicht richtig
|
|
funktionieren, aufgrund von fehlenden Cron-Tabellen in
|
|
<filename>/var</filename> die von
|
|
<filename>/etc/rc.d/var</filename> erstellt wurden. Syslog und DHCP
|
|
werden ebenfalls Probleme durch das nur-Lese Dateisystem
|
|
und fehlende Elemente im Verzeichnis <filename>/var</filename>
|
|
verursachen, die <filename>/etc/rc.d/var</filename> erstellt hat. Diese
|
|
Probleme sind jedoch nur vorübergehend und werden zusammen mit
|
|
Lösungen zur Ausführung von anderen gebräuchlichen
|
|
Softwarepaketen in <xref linkend="strategies"/> angesprochen.</para>
|
|
|
|
<para>Eine wichtige Sache, an die man sich erinnern sollte, ist, dass
|
|
ein Dateisystem, welches als nur lesend in
|
|
<filename>/etc/fstab</filename> eingebunden wurde, jederzeit als
|
|
schreibend durch das folgende Kommando eingehängt werden
|
|
kann:</para>
|
|
|
|
<screen>&prompt.root; <userinput>/sbin/mount -uw <replaceable>partition</replaceable></userinput></screen>
|
|
|
|
<para>und auch wieder zurück auf nur lesend durch den Befehl:</para>
|
|
|
|
<screen>&prompt.root; <userinput>/sbin/mount -ur <replaceable>partition</replaceable></userinput></screen>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Ein Dateisystem von Grund auf neu erstellen</title>
|
|
|
|
<para>Wenn ATA-kompatible Compact-Flash-Karten von &os; als normale
|
|
IDE-Festplatten erkannt werden, könnten Sie theoretisch &os; aus dem
|
|
Netzwerk mittels der Kern- und mfsroot-Floppies oder einer CD
|
|
installieren.</para>
|
|
|
|
<para>Jedoch kann selbst eine kleine Installation von &os; durch die
|
|
normale Installationsprozedur ein System erzeugen, dass grösser als
|
|
200 MB ist. Da die meisten Leute kleinere Flash-Speichermedien
|
|
einsetzen (128 MB wird hier als gross angesehen - 32 oder sogar
|
|
16 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 MB gross sein und Ihre tar-Datei grösser
|
|
als 64 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>
|