In Abschnitt 3, „Die rc
-Subsysteme und nur-Lese
Dateisysteme“ wurde darauf hingewiesen, dass
das /var
-Dateisystem von
/etc/rc.d/var
konstruiert wurde und die
Präsenz eines Nur-Lese-Wurzeldateisystems Probleme mit vielen in
FreeBSD 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.
Während des Bootvorgangs wird /var
von
/etc/rc.d/var
anhand der Liste aus
/etc/mtree/BSD.var.dist
gefüllt, damit
cron
, cron/tabs
, at
und ein paar weitere
Standardverzeichnisse erstellt werden.
Jedoch löst das noch nicht das Problem, Crontabs ü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 Lösung darin, Crontabs für diejenigen Benutzer zu
erstellen, die diese auch benötigen. Dazu sollte das
/
-Dateisystem lesend und schreibend
eingehängt und diese Crontabs an einen sicheren Ort kopiert
werden, wie beispielsweise /etc/tabs
.
Fü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 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
/etc/rc.initdiskless
kopieren,
setzen.
Die Datei syslog.conf
spezifiziert
den Ort von bestimmten Logdateien, welche in
/var/log
existieren. Diese Dateien
werden nicht von /etc/rc.d/var
während
der Systeminitialisierung erstellt. Aus diesem Grund müssen
Sie irgendwo in /etc/rc.d/var
nach dem
Abschnitt, der die Verzeichnisse in /var
erstellt, eine Zeile ähnlich der folgenden hinzufügen:
#
touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages
#
chmod 0644 /var/log/*
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 Abschnitt 3, „Die rc
-Subsysteme und nur-Lese
Dateisysteme“ 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.
Um es zu ermöglichen, in das Ports-Verzeichnis zu wechseln
und erfolgreich make
install
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.
Erstellen Sie zuerst ein Verzeichnis für die
Paketdatenbank. Normalerweise ist dies
/var/db/pkg
, jedoch können wir es dort
nicht unterbringen, da es jedesmal verschwinden wird, wenn das
System neu gestartet wird.
#
mkdir /etc/pkg
Fügen Sie nun eine Zeile in
/etc/rc.d/var
hinzu, welche das
/etc/pkg
-Verzeichnis mit
/var/db/pkg
verknü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 Verfügung stehen.
Die Anweisungen in diesem Abschnitt sind nur notwendig,
wenn Apache so eingerichtet ist, dass dieser seine PID oder
Protokollierungsinformationen ausserhalb von /var
ablegt. Standardmä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
ausserhalb von apache_log_dir
/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
hinzugefügt werden, um
dieses in /var
zu erstellen und um
nach apache_log_dir
/var/log/apache
zu verknüpfen. Es
ist auch nötig, Berechtigungen und Besitzer auf diesem neuen
Verzeichnis zu setzen.
Fü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 löschen Sie das bestehende
Verzeichnis und ersetzen es mit einer Verknüpfung:apache_log_dir
#
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>.