531 lines
24 KiB
XML
531 lines
24 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.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 xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
|
||
<info><title>&os; und Solid State-Ger<65>te</title>
|
||
|
||
|
||
<authorgroup>
|
||
<author><personname><firstname>John</firstname><surname>Kozubik</surname></personname><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 xml: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<69>t aufgrund des fehlens von beweglichen
|
||
Bauteilen (Festplatten) besitzen. Es muss jedoch beachtet
|
||
werden, dass generell weniger Speicherplatz zur Verf<72>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<74>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><EFBFBD>bersetzt von Benedict
|
||
Reuschling</emphasis>.</para>
|
||
</abstract>
|
||
</info>
|
||
|
||
<sect1 xml:id="intro">
|
||
<title>Solid State Festplattenger<65>te</title>
|
||
|
||
<para>Der Umfang des Artikels ist auf Solid State Ger<65>te
|
||
beschr<68>nkt, die auf Flash-Speicher basieren. Flash-Speicher ist
|
||
ein Solid State Speicher (keine beweglichen Teile), der nicht
|
||
fl<66>chtig ist (der Speicher beh<65>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<73>ter in diesem Artikel
|
||
diskutiert werden, ist, dass jeder Sektor eine begrenzte
|
||
Kapazit<69>t zur Wiederbeschreibung besitzt. Man kann nur eine
|
||
bestimmte Anzahl von Schreib-, L<>sch- und
|
||
Wiederbeschreibungsvorg<72>ngen durchf<68>hren, bevor der Sektor
|
||
permanent unbrauchbar wird. Obwohl viele Flash-Speicher
|
||
Produkte automatisch schlechte Bl<42>cke markieren und manche
|
||
Ger<65>te Schreiboperationen gleichm<68>ssig verteilen, bleibt
|
||
weiterhin die Anzahl der durchf<68>hrbaren Schreibvorg<72>nge
|
||
begrenzt. Verschiedene Ger<65>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<75>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<65>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<65>te dann als
|
||
normale (wenn auch sehr kleine) Festplatten an.</para>
|
||
|
||
<para>Andere Solid State Plattenl<6E>sungen existieren, jedoch
|
||
platzieren deren Kosten, Obskurit<69>t und ihre Unhandlichkeit sie
|
||
aussserhalb des Umfangs dieses Artikels.</para>
|
||
</sect1>
|
||
|
||
<sect1 xml: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<65>hrt werden
|
||
k<>nnen, werden die Platte und die Dateisysteme darauf mit
|
||
grosser Wahrscheinlichkeit nur lesend eingeh<65>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<6F>re Dateien zu aktualisieren.
|
||
RAM-Disks sind eine kritische Komponente f<>r eine erfolgreiche
|
||
Solid State Umsetzung in &os;.</para>
|
||
|
||
<para>Sie sollten daf<61>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 xml: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 <20>ndert die Attribute von ein paar dieser Verzeichnisse. Bei
|
||
der Ausf<73>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<EFBFBD>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<65>ngt wird. Erinnern Sie sich, dass in <xref linkend="intro"/> die Beschr<68>nkungen von Flash-Speichern
|
||
erl<72>utert wurden, speziell deren begrenzte Kapazit<69>t zum
|
||
Schreiben. Die Notwendigkeit, Dateisysteme auf Flash-Speichern
|
||
nur lesend einzubinden und keine Swap-Dateien zu verwenden, kann
|
||
nicht oft genug erw<72>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<6F>ren Dateien kann das gleiche
|
||
verursachen. Aus diesem Grund sollten Sie zus<75>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 <20>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<6F>bergehend und werden
|
||
zusammen mit L<>sungen zur Ausf<73>hrung von anderen gebr<62>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<65>ngt werden
|
||
kann:</para>
|
||
|
||
<screen>&prompt.root; <userinput>/sbin/mount -uw partition</userinput></screen>
|
||
|
||
<para>und auch wieder zur<75>ck auf nur lesend durch den Befehl:</para>
|
||
|
||
<screen>&prompt.root; <userinput>/sbin/mount -ur partition</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<67>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<62>uchlich) ist eine
|
||
gew<65>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<47>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<65>hrt werden m<>ssen, da
|
||
eine normale Installation nicht m<>glich ist. Zus<75>tzlich zu den
|
||
Kern- und mfsroot-Disketten ben<65>tigen Sie auch die
|
||
fixit-Floppy.</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<title>Partitionierung Ihrer Flash-Medien</title>
|
||
|
||
<para>W<EFBFBD>hlen Sie nach dem Starten der Kern- und
|
||
mfsroot-Disketten, <literal>custom</literal> aus dem
|
||
Installationsmen<65>. In diesem Men<65> 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<65>scht wurden, erstellen Sie mittels der Taste
|
||
<keycap>c</keycap> eine Partition und akzeptieren Sie den
|
||
Standardwert f<>r die Gr<47>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<65>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<73>hlen. Dr<44>cken Sie nun die Taste
|
||
<keycap>q</keycap>, um das Partitionsmen<65> zu verlassen. Sie
|
||
werden das Men<65> 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<65>t</title>
|
||
|
||
<para>Verlassen Sie das Installationsmen<65> und w<>hlen Sie aus
|
||
dem Hauptinstallationsmen<65> 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<75>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<EFBFBD>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 <20>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<67>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 <20>bertragen wird.
|
||
Wenn Sie die <20>bertragung auf diese Weise durchf<68>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<73>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<65>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 xml: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<50>senz eines Nur-Lese-Wurzeldateisystems Probleme mit vielen in
|
||
&os; gebr<62>chlichen Softwarepaketen verursacht. In diesem
|
||
Artikel werden Vorschl<68>ge f<>r das erfolgreiche Betreiben von
|
||
cron, syslog, Installationen von Ports und dem Apache-Webserver
|
||
unterbreitet.</para>
|
||
|
||
<sect2>
|
||
<title>cron</title>
|
||
|
||
<para>W<EFBFBD>hrend des Bootvorgangs wird <filename>/var</filename> von
|
||
<filename>/etc/rc.d/var</filename> anhand der Liste aus
|
||
<filename>/etc/mtree/BSD.var.dist</filename> gef<65>llt, damit
|
||
<filename>cron</filename>, <filename>cron/tabs</filename>, <filename>at</filename> und ein paar weitere
|
||
Standardverzeichnisse erstellt werden.</para>
|
||
|
||
<para>Jedoch l<>st das noch nicht das Problem, Crontabs <20>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<65>tigen. Dazu sollte das
|
||
<filename>/</filename>-Dateisystem lesend und schreibend
|
||
eingeh<65>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<75>gen m<>ssen,
|
||
welche die Besitzer und Berechtigungen auf diesen
|
||
Verzeichnissen, die Sie erstellen und den dazugeh<65>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 <20>hnlich der folgenden hinzuf<75>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 <20>nderungen erk<72>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<72>gbar ist, m<>ssen Sie
|
||
es vor<6F>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<6E>ngen wenn Sie damit fertig sind -
|
||
unn<6E>tige Schreibvorg<72>nge auf dem Flash-Medium kann dessen
|
||
Lebenszeit erheblich verk<72>rzen.</para>
|
||
|
||
<para>Um es zu erm<72>glichen, in das Ports-Verzeichnis zu wechseln
|
||
und erfolgreich <command>make</command>
|
||
<buildtarget>install</buildtarget> auszuf<75>hren, m<>ssen wir ein
|
||
Paketverzeichnis auf einem Nicht-Hauptspeicherdateisystem
|
||
erstellen, welches die Pakete <20>ber Neustarts hinweg im Auge
|
||
beh<65>lt. Weil es sowieso n<>tig ist, Ihre Dateisysteme mit
|
||
Lese-Schreibrechten f<>r die Installation eines Pakets
|
||
einzuh<75>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<EFBFBD>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<6B>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>
|
||
<buildtarget>install</buildtarget> 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<72>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>/var</filename> ablegt. Standardm<64>ssig
|
||
bewahrt Apache seine PID-Datei in <filename>/var/run/httpd.pid</filename> und seine
|
||
Protokolldateien in <filename>/var/log</filename> auf.</para>
|
||
</note>
|
||
|
||
<para>Es wird nun davon ausgegangen, dass Apache seine
|
||
Protokolldateien in einem Verzeichnis namens <filename>apache_log_dir</filename>
|
||
ausserhalb von <filename>/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<65>gt werden, um
|
||
dieses in <filename>/var</filename> zu erstellen und um
|
||
<filename>apache_log_dir</filename>
|
||
nach <filename>/var/log/apache</filename> zu verkn<6B>pfen. Es
|
||
ist auch n<>tig, Berechtigungen und Besitzer auf diesem neuen
|
||
Verzeichnis zu setzen.</para>
|
||
|
||
<para>F<EFBFBD>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>apache_log_dir</filename>
|
||
Verzeichnis und ersetzen es mit einer Verkn<6B>pfung:</para>
|
||
|
||
<screen>&prompt.root; <userinput>rm -rf apache_log_dir</userinput>
|
||
&prompt.root; <userinput>ln -s /var/log/apache apache_log_dir</userinput></screen>
|
||
</sect2>
|
||
</sect1>
|
||
</article>
|