522 lines
25 KiB
XML
522 lines
25 KiB
XML
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN"
|
||
"../../../share/sgml/freebsd42.dtd" [
|
||
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE" "../../share/sgml/entities.ent">
|
||
%entities;
|
||
]>
|
||
|
||
<!-- 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.sgml,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<65>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<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>
|
||
</articleinfo>
|
||
|
||
<sect1 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 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 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 <replaceable>partition</replaceable></userinput></screen>
|
||
|
||
<para>und auch wieder zur<75>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<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 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
|
||
class="directory">/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 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 <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> <maketarget>install</maketarget>
|
||
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> <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<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
|
||
class="directory">/var</filename> ablegt. Standardm<64>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<65>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<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
|
||
class="directory"><replaceable>apache_log_dir</replaceable></filename>
|
||
Verzeichnis und ersetzen es mit einer Verkn<6B>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>
|