diff --git a/de_DE.ISO8859-1/books/faq/book.sgml b/de_DE.ISO8859-1/books/faq/book.sgml
index 86c6f6a07c..8469d9c5f4 100644
--- a/de_DE.ISO8859-1/books/faq/book.sgml
+++ b/de_DE.ISO8859-1/books/faq/book.sgml
@@ -1,13518 +1,13539 @@
%books.ent;
]>
Häufig gestellte Fragen zu FreeBSD
4.X, 5.X und 6.XFrequently Asked Questions für FreeBSD
4.X, 5.X und 6.XThe FreeBSD German Documentation
ProjectDeutsche Übersetzung von Robert S. F.
Drehmel, Dirk Gouders und Udo Erdelhoff
- $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.574 2006/01/01 16:40:51 jkois Exp $
+ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.576 2006/02/18 09:04:22 jkois Exp $19951996199719981999200020012002200320042005
+ 2006
+
The FreeBSD Documentation Project200020012002200320042005
+ 2006
+
The FreeBSD German Documentation Project
&bookinfo.legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.adobe;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.iomega;
&tm-attrib.linux;
&tm-attrib.microsoft;
&tm-attrib.mips;
&tm-attrib.netscape;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.sgi;
&tm-attrib.sparc;
&tm-attrib.sun;
&tm-attrib.usrobotics;
&tm-attrib.xfree86;
&tm-attrib.general;
Dies ist die FAQ für die FreeBSD-Versionen
4.X, 5.X und 6.X. Alle Einträge sollten für FreeBSD
ab Version 4.0 relevant sein, andernfalls wird darauf explizit
hingewiesen. Falls Sie daran
interessiert sein sollten, an diesem Projekt mitzuhelfen,
senden Sie eine Mail an die Mailingliste &a.de.translators;. Die
aktuelle Version dieses Dokuments ist ständig auf dem
FreeBSD
World-Wide-Web-Server verfügbar. Es kann auch
per HTTP als eine große HTML-Datei heruntergeladen werden oder
als Textdatei, im &postscript;, PDF- und anderen Formaten vom
FreeBSD
FTP-Server. Sie können die FAQ auch
durchsuchen.EinleitungWillkommen zur FreeBSD 4.X-6.X FAQ!Wie auch bei den Usenet FAQs üblich, wird mit diesem
Dokument beabsichtigt, die am häufigsten gestellten Fragen
bezüglich des Betriebssystems FreeBSD zu erfassen und sie
natürlich auch zu beantworten. Obwohl FAQs
ursprünglich lediglich dazu dienen sollten, die
Netzbelastung zu reduzieren und das ständige Wiederholen
derselben Fragen zu vermeiden, haben sie sich als wertvolle
Informationsquellen etabliert.Wir haben uns die größte Mühe gegeben, diese
FAQ so lehrreich wie möglich zu gestalten; falls Sie
irgendwelche Vorschläge haben, wie sie verbessert werden
kann, senden Sie diese bitte an den &a.de.translators;.Was ist FreeBSD?FreeBSD ist, kurz gesagt, ein &unix; ähnliches
Betriebssystem für die Plattformen Alpha/AXP, AMD64
sowie &intel; EM64T, &i386;, IA-64, PC-98 und &ultrasparc;,
das auf der 4.4BSD-Lite-Release
der University of California at Berkeley (UCB) basiert;
außerdem flossen einige Erweiterungen aus der
4.4BSD-Lite2-Release mit ein. Es basiert
außerdem indirekt auf der von William Jolitz unter
dem Namen 386BSD herausgebrachten
Portierung der Net/2-Release der UCB auf
die &i386;-Plattform - allerdings ist nur wenig vom
386BSD-Code übriggeblieben. Eine umfassendere
Beschreibung darüber, was FreeBSD ist und wie Sie es
für Ihre Zwecke verwenden können, finden Sie auf
den Internetseiten des
FreeBSD Projects.Unternehmen, Internet Service Provider, Forscher,
Computerfachleute, Studenten und Privatnutzer auf der
ganzen Welt benutzen FreeBSD für die Arbeit, die
Ausbildung oder zur Freizeitgestaltung.Ausführlichere Informationen zu FreeBSD, finden
Sie im FreeBSD
Handbuch.Welches Ziel hat das FreeBSD-Projekt?Die Ziel von FreeBSD ist es, Software zur Nutzung
für beliebige Zwecke, bedingungslos zur
Verfügung zu stellen. Viele von uns haben
erheblich zur Erstellung des Codes (und zum Projekt)
beigetragen und hätten jetzt oder in Zukunft
sicherlich nichts gegen einen geringen finanziellen
Ausgleich einzuwenden, aber wir beabsichtigen definitiv
nicht, darauf zu bestehen. Wir sind der Meinung,
dass unsere Mission zuerst und
vorderst darin besteht, allen und jedem Kommenden Code
für welchen Zweck auch immer zur Verfügung zu
stellen, damit der Code möglichst weit eingesetzt
wird und den größtmöglichen Nutzen
liefert. Das ist, so glauben wir, eines der
fundamentalsten Ziele von freier Software und eines, das
wir enthusiastisch unterstützen.Der Code in unserem Quellbaum, der der GNU General
Public License (GPL) oder der GNU
Library General Public License (LGPL) unterliegt,
ist mit zusätzlichen, geringfügigen Bedingungen
verknüpft, jedoch handelt es sich dabei lediglich um
erzwungene Bereitstellung statt des sonst üblichen
Gegenteils. Auf Grund der zusätzlichen
Komplexität, die durch den kommerziellen Einsatz von
GPL Software entstehen kann, bemühen wir uns jedoch,
solche Software, wo möglich, durch solche, die der
etwas lockereren FreeBSD
Lizenz unterliegt, zu ersetzen.Beinhaltet das FreeBSD-Copyright irgendwelche
Einschränkungen?Ja. Diese Einschränkungen regeln aber nicht, wie
Sie mit dem Sourcecode umgehen, sondern betreffen nur den
Umgang mit dem FreeBSD Project an sich. Wenn Sie sich
ernsthaft damit auseinandersetzen wollen, lesen Sie
einfach die
FreeBSD-Lizenz. Wenn Sie einfach nur neugierig
sind, sollte diese Zusammenfassung ausreichen:Behaupten Sie nicht, Sie hätten es
geschrieben.Verklagen Sie uns nicht, wenn irgend etwas nicht
funktioniert.Kann FreeBSD mein bisher verwendetes Betriebssystem
ersetzen?In den meisten Fällen lautet die Antwort ja.
Allerdings ist diese Frage nicht ganz so einfach, wie sie
scheint.Die meisten Anwender benutzen kein Betriebssystem,
sondern Anwendungen. Die Anwendungen sind es, die das
Betriebssystem benutzen. FreeBSD ist dazu gedacht, eine
stabile und vielfältige Umgebung für Anwendungen
bereitzustellen. Es unterstützt viele
unterschiedliche Web-Browser, Büroanwendungen,
E-Mail-Programme, Grafik-Programme, Entwicklungsumgebungen,
Netzwerk-Server, und so ziemlich alles andere, was Sie sich
wünschen können. Die meisten dieser Anwendungen
sind in der
Ports-Sammlung verfügbar.Wenn Sie Anwendung benutzen müssen, die es nur
für ein bestimmtes Betriebssystem gibt, dann kommen
Sie an diesem Betriebssystem nicht vorbei. Allerdings
stehen die Chancen nicht schlecht, dass es eine
vergleichbare Anwendung für FreeBSD gibt. Wenn Sie
einen verläßlichen Server für ihr
Büro oder das Internet brauchen, oder eine stabilen
Arbeitsplatz, oder einfach nur die Fähigkeit, ihre
Arbeit ohne dauernde Abstürze machen zu können,
dann kann FreeBSD genau das sein. Viele Anwender auf der
ganzen Welt, vom Anfänger bis zum erfahrenen
Administrator, benutzen an Ihren Arbeitsplätzen
ausschließlich FreeBSD.Wenn Sie von einem anderen &unix; System zu FreeBSD
wechseln, dürfte Ihnen vieles bekannt vorkommen.
Wenn Ihr Hintergrund ein Grafik-orientiertes
Betriebssystem wie &windows; oder ein älteres &macos;
ist, werden Sie zusätzliche Zeit investieren
müssen, um den &unix; Stil zu verstehen. Dieser FAQ
und das FreeBSD
Handbuch sind die besten Startpunkte.Warum heißt es FreeBSD?Es darf kostenlos genutzt werden - sogar von
kommerziellen Benutzern.Der komplette Quellcode für das
Betriebssystem ist frei verfügbar und die
Benutzung, Verbreitung und Einbindung in andere
(kommerzielle und nicht-kommerzielle) Arbeiten sind
mit den geringstmöglichen Einschränkungen
versehen worden.Jedem ist es freigestellt, Code für
Verbesserungen oder die Behebung von Fehlern
einzusenden und ihn zum Quellbaum hinzufügen zu
lassen (dies ist natürlich Gegenstand von ein
oder zwei offensichtlichen Klauseln).Es wird darauf hingewiesen, dass das englische
Wort free hier in den Bedeutungen
umsonst und Sie können tun, was
immer Sie möchten genutzt wird. Abgesehen
von ein oder zwei Dingen, die Sie mit dem FreeBSD-Code
nicht tun können (z.B. vorgeben,
ihn geschrieben zu haben), können Sie damit
tatsächlich tun, was auch immer Sie
möchten.Wie unterschieden sich FreeBSD, NetBSD, OpenBSD
und andere Open-Source BSD-Systeme?James Howards Artikel
The
BSD Family Tree, der in
DaemonNews
erschienen ist, beschreibt sehr gut die Geschichte und die
Unterschiede der BSD-Varianten.Welches ist die aktuelle FreeBSD-Version?Momentan gibt es drei Entwicklungszweige, von den zwei
für die Erstellung von Releases verwendet werden.
- Die 4.X-Releases werden auf dem
- 4-STABLE-Zweig erstellt, die
- 5.X-RELEASES auf dem 5-STABLE-Zweig.
- Das erste 6-CURRENT-Release soll in
- der zweiten Jahreshälfte 2005 entstehen. Diese Version
- (6.0) ist aber nur als Entwicklerversion gedacht.
+ Die 5.X-RELEASEs werden auf dem
+ 5-STABLE-Zweig erstellt, die
+ 6.X-RELEASEs auf dem 6-STABLE-Zweig.
Bis zur Veröffentlichung von &os; 5.3 galt
- die 4.X-Serie als -STABLE. Danach wurde
- die Serie 5.X zur neuen -STABLE-Serie und
- 4.X wurde nicht mehr aktiv weiterentwickelt. Stattdessen gibt
- es eine "erweiterte Unterstützung" in der Form
+ die 4.X-Serie als -STABLE. Seither
+ gibt es für den Zweig 4.X nur mehr eine
+ erweiterte Unterstützung in der Form
von Korrekturen von größeren Problemen, wie
- neu entdeckten Sicherheitsheitslücken.
+ neu entdeckten Sicherheitsheitslücken. Aus dem Zweig
+ 5-STABLE werden zwar noch
+ RELEASEs erzeugt, er gilt aber als ausgereift.
+ Aktive Weiterentwicklungen konzentrieren sich daher auf den
+ Zweig 6-STABLE.
-
Version &rel.current;
ist das aktuelle Release des
- 5-STABLE-Zweigs und ist im
+ 6-STABLE-Zweigs und ist im
&rel.current.date; erschienen.
Version &rel2.current;
ist das aktuelle Release aus dem
- 4-STABLE-Zweig und ist im
+ 5-STABLE-Zweig und ist im
&rel2.current.date; erschienen.Kurz gesagt, -STABLE ist
für ISPs und andere Benutzer gedacht, die mehr Wert
auf Stabilität und eine niedrige
Änderungsfrequenz als auf die neuesten und
möglicherweise unstabilen Features im
aktuellen -CURRENT Snapshot legen.
Releases können aus jedem Zweig entstehen, Sie
sollten -CURRENT allerdings nur dann
benutzen, wenn Sie auf ein erhöhtes Fehlverhalten
im Vergleich zu -STABLE auch
vorbereitet sind.Releases entstehen nur alle paar Monate. Viele
Leute halten ihre Systeme aktueller (lesen Sie die Fragen
- zu FreeBSD-CURRENT und
- FreeBSD-STABLE), aber das
+ zu &os;-CURRENT und
+ &os;-STABLE), aber das
erfordert ein erhöhtes Engagement, da die Sourcen
sich ständig verändern.Weitere Informationen über Releases entnehmen
Sie der Seite Release
Engineering des FreeBSD Webauftritts.Was ist FreeBSD-CURRENT?
- FreeBSD-CURRENT ist die Entwicklungsversion des
+ &os;-CURRENT ist die Entwicklungsversion des
Betriebssystems, aus der zu gegebener Zeit &os.stable;
werden wird. Als solche ist sie lediglich für
Entwickler, die am System mitarbeiten und für
unentwegte Bastler von Interesse. Details zum Betrieb von
-CURRENT finden Sie im
entsprechenden Abschnitt des Handbuchs.Falls Sie nicht mit dem Betriebssystem vertraut sind
oder nicht in der Lage sein sollten, den Unterschied
zwischen einen echten und einem temporären Problem zu
- erkennen, sollten Sie FreeBSD-CURRENT nicht verwenden.
+ erkennen, sollten Sie &os;-CURRENT nicht verwenden.
Dieser Zweig entwickelt sich manchmal sehr schnell weiter
und kann gelegentlich für mehrere Tage hintereinander
nicht installierbar sein. Von Personen, die
- FreeBSD-CURRENT verwenden, wird erwartet, dass Sie
+ &os;-CURRENT verwenden, wird erwartet, dass Sie
dazu in der Lage sind, Probleme zu analysieren und nur
dann von ihnen berichten, wenn es sich um Fehler und nicht
um kurzzeitige Störungen handelt.
Fragen wie make world produziert Fehlermeldungen
bezüglich Gruppen werden in der -CURRENT
Mailingliste manchmal nicht beachtet.Jeden Tag wird der aktuelle Entwicklungsstand in den
Zweigen -CURRENT und -STABLE in einer Snapshot
Release festgehalten. Mittlerweile werden sogar CDROM
Distributionen dieser gelegentlichen Snapshots zur
Verfügung gestellt. Die Ziele dieser Snapshot
Releases sind:Die aktuelle Version der Installationssoftware zu
testen.Personen, die -CURRENT oder -STABLE benutzen
möchten, aber nicht über die nötige
Zeit oder Bandbreite verfügen, um
tagesaktuell zu bleiben, soll eine bequeme
Möglichkeit geboten werden, es auf ihr System zu
bringen.Die Erhaltung von Referenzpunkten des fraglichen
Codes, für den Fall, dass wir später
einmal ernsthaften Schaden anrichten sollten (obwohl
CVS verhindern sollte, dass solche Situationen
entstehen :)Sicherzustellen, dass alle zu testenden, neuen
Merkmale und Fehlerbehebungen zu möglichst vielen
potentiellen Testern gelangen.Von keinem -CURRENT Snapshot kann
Produktionsqualität für beliebige
Zwecke erwartet werden. Wenn Sie eine stabile und
ausgetestete Version benötigen, sollten Sie eine
vollständige Release oder einen -STABLE Snapshot
verwenden.Snapshot-Releases sind unter
ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/
verfügbar.In der Regel wird jeden Tag ein Snapshot jedes zur
Zeit aktiven Zweiges erstellt.Was ist das Konzept von FreeBSD-STABLE?Zur der Zeit, als FreeBSD 2.0.5 herausgegeben wurde,
wurde entschieden, die Entwicklung von FreeBSD zweizuteilen.
Ein Zweig wurde -STABLE
der andere -CURRENT
genannt. FreeBSD-STABLE ist für Anbieter von
Internetdiensten und andere kommerzielle Unternehmen
gedacht, für die plötzliche Veränderungen
und experimentelle Features unerwünscht sind.
In diesem Zweige werden nur ausgetestete
Fehlerbehebungen und kleine, inkrementelle Änderungen
aufgenommen. FreeBSD-CURRENT ist eine ununterbrochene
Linie seitdem die Version 2.0 herausgegeben worden
- ist. Sie führt zu 5.3-RELEASE (und darüber
+ ist. Sie führt zu 6.0-RELEASE (und darüber
hinaus). Unmittelbar vor der Veröffentlichung von
- 5.3-RELEASE wurde der 5-STABLE-Zweig erschaffen und
- &os.current; wurde zu 6-CURRENT. Weitere Informationen zu
+ 6.0-RELEASE wurde der 6-STABLE-Zweig erschaffen und
+ &os.current; wurde zu 7-CURRENT. Weitere Informationen zu
diesem Thema finden Sie unter
FreeBSD Release Engineering: Creating the Release
Branch.Der Zweig 2.2-STABLE wurde mit der
Veröffentlichung der Version 2.2.8 eingestellt. Der
Zweig 3-STABLE endete mit Version 3.5.1, der letzten
3.X-Version. Änderungen in diesen Zweigen
beschränken sich im allgemeinen auf die Korrektur von
- sicherheitsrelevanten Fehlern. Der Zweig 4-STABLE wird
- zwar noch unterstützt, die Unterstützung
+ sicherheitsrelevanten Fehlern. Die Zweige 4-STABLE und
+ 5-STABLE werden zwar noch unterstützt, die
+ Unterstützung
beschränkt sich allerdings auf das Schließen von
neu entdeckten Sicherheitslücken und die Behebung
von anderen ernsten Problemen.
- 5-STABLE ist der Zweig, auf den sich die Entwicklung
- von -STABLE zurzeit konzentriert. Das neueste Release
- aus dem 5-STABLE-Zweig ist &rel.current;-RELEASE, und ist
- im &rel.current.date; erschienen.
+ &rel.current;-STABLE ist der Zweig, auf den sich die
+ Entwicklung von -STABLE zurzeit konzentriert. Das neueste
+ Release aus dem &rel.current;-STABLE-Zweig ist
+ &rel.current;-RELEASE und ist im &rel.current.date;
+ erschienen.
- Aus dem 6-CURRENT-Zweig entsteht die nächste
+ Aus dem 7-CURRENT-Zweig entsteht die nächste
&os;-Generation. Weitere Informationen über diesen
Zweig finden Sie unter Was ist FreeBSD-CURRENT?.Wann werden FreeBSD-Versionen erstellt?Im Schnitt gibt das &a.re; alle vier Monate eine neue
FreeBSD-Version frei. Das Erscheinungsdatum
einer neuer Version wird frühzeitig bekanntgegeben,
damit die am System arbeitenden Personen wissen, bis wann
ihre Projekte abgeschlossen und ausgetestet sein
müssen. Vor jedem Release gibt es eine Testperiode um
sicherzustellen, dass die neu hinzugefügten Features
nicht die Stabilität des Releases beeinträchtigen.
Viele Benutzer halten dies für einen
großen Vorteil von FreeBSD, obwohl es manchmal
frustrierend sein kann, so lange auf die
Verfügbarkeit der aktuellsten Leckerbissen zu
warten.Weitere Informationen über die Entwicklung von
Releases, sowie eine Übersicht über kommende Releases,
erhlaten Sie auf den release
engineering Seiten der FreeBSD Webseite.Für diejenigen, die ein wenig mehr Spannung
brauchen (oder möchten), werden täglich
Snapshots herausgegeben, wie oben beschrieben.Wer ist für FreeBSD verantwortlich?Schlüsseldiskussionen, die das FreeBSD-Projekt
betreffen, wie z.B. über die generelle Ausrichtung
des Projekts und darüber, wem es erlaubt sein soll,
Code zum Quellbaum hinzuzufügen, werden innerhalb
eines Core
Team von 9 Personen geführt. Es gibt
ein weitaus größeres Team von über 300
Committern,
die dazu autorisiert sind, Änderungen am FreeBSD
Quellbaum durchzuführen.Jedoch werden die meisten nicht-trivialen
Änderungen zuvor in den Mailinglisten diskutiert und es
bestehen keinerlei Einschränkungen darüber, wer
sich an diesen Diskussionen beteiligen darf.Wie kann ich FreeBSD beziehen?Jede bedeutende Ausgabe von FreeBSD ist per
Anonymous-FTP vom FreeBSD FTP
Server erhältlich:Das aktuelle 5-STABLE-Release, &rel.current;-RELEASE,
finden Sie im Verzeichnis &rel.current;-RELEASE.
Snapshots-Releases werden täglich aus dem
-CURRENT-Zweig erzeugt. Sie
sollten aber nur von Entwicklern und sehr erfahrenen Testern
verwendet werden.Das aktuelle Release von 4-STABLE,
&rel2.current;-RELEASE finden Sie im Verzeichnis &rel2.current;-RELEASE.5.X
Snapshots werden in der Regel
täglich erstellt.Wo und wie Sie FreeBSD auf CD, DVD, und anderen Medien
beziehen können, erfahren Sie im Handbuch.Wie greife ich auf die Datenbank mit Problemberichten
zu?Die Datenbank mit Problemberichten (PR,
problem report) und
Änderungsanfragen von Benutzern kann
über die webbasierte
PR-Abfrage-Schnittstelle abgefragt werden.Mit dem Programm &man.send-pr.1; können Sie
Problemberichte oder Änderungsanträge per E-Mail
einsenden. Alternativ können Sie Problemberichte
auch über Ihren Browser und die
webbasierte
PR-Eingabe-Schnittstelle erstellen.Bevor Sie einen Fehler melden, sollten Sie sich zuerst
den Artikel Writing
FreeBSD Problem Reports durchlesen, damit Sie
wissen, wie Sie eine gute Fehlermeldung verfassen.Gibt es weitere Informationsquellen?Sie finden eine umfassende Liste unter Documentation
auf der FreeBSD-Webseite.Dokumentation und SupportGibt es gute Bücher über FreeBSD?Im Zuge des FreeBSD Projekts sind diverse gute
Dokumente entstanden, die unter der
folgenden URL abgerufen werden können:
.
Die Dokumente stehen auch als Pakete, die Sie leicht
installieren können, zur Verfügung. In den
nächsten Abschnitten erfahren Sie mehr über diese
Pakete.Zusätzlich enthalten die Bibliographien am Ende
dieser FAQ und im Handbuch Verweise auf weitere empfohlene
Bücher.Ist die Dokumentation auch in anderen Formaten
verfügbar? Zum Beispiel als einfacher Text (ASCII)
oder als &postscript;?Ja. Werfen Sie einen Blick auf das Verzeichnis /pub/FreeBSD/doc/
auf dem FreeBSD FTP-Server. Dort finden sie Dokumentation
in vielen verschiedenen Format.Die Dokumentation wurde nach vielen verschiedenen
Kriterien sortiert. Die Kriterien sind:Der Name des Dokumentes, z.B.
FAQ oder
Handbuch.Die Sprache und der Zeichensatz, die in dem
Dokument verwendet werden. Diese entsprechen den
Anpassungen, die Sie auf Ihrem FreeBSD-System im
Verzeichnis /usr/share/locale
finden. Zurzeit werden die folgenden Sprachen und
Zeichensätze benutzt:NameBedeutungen_US.ISO8859-1US Englisches_ES.ISO8859-1Spanischfr_FR.ISO8859-1Französischde_DE.ISO8859-1Deutschit_IT.ISO8859-15Italienischja_JP.eucJPJapanisch (EUC kodiert)ru_RU.KOI8-RRussisch (KOI8-R kodiert)zh_TW.Big5Chinesisch (Big5 kodiert)Einige Dokumente sind nicht in allen Sprachen
verfügbar.Das Format des Dokumentes. Die Dokumentation wird
in verschiedenen Formaten erzeugt, von denen jedes seine
eigenen Vor- und Nachteile hat. Einige Formate lassen sich
gut an einem Bildschirm lesen, während andere Formate
dafür gedacht sind, ein ansprechendes Druckbild zu
erzeugen. Das die Dokumentation in verschiedenen Formaten
verfügbar ist, stellt sicher, dass unsere Leser
die für sie relevanten Teile unabhängig vom
Ausgabemedium (Bildschirm oder Papier) lesen können.
Derzeit werden die folgenden Formate
unterstützt:FormatErklärunghtml-splitViele kleine HTML-Dateien, die sich
gegenseitig referenzieren.htmlEine große HTML-Datei, die das
komplette Dokument enthält.pdbPalm Pilot Datenbank für das
Programm iSilo.pdfAdobe's Portable Document Formatps&postscript;rtfMicrosoft's Rich Text Format
Die Seitennummern werden nicht
automatisch aktualisiert, wenn Sie diese
Datei in Word laden. Wenn Sie das
Dokument geladen haben, müssen Sie Sie
CtrlA,
CtrlEnd,
F9 eingeben, um die
Seitennummern aktualisieren zu
lassen.txtGanz normaler TextDas zur Komprimierung verwendete Programm. Zur
Zeit werden drei verschiedene Methoden
benutzt.Wenn die Dokumentation im Format
html-split vorliegt, werden die
Dateien mit &man.tar.1; zusammengefasst. Die
so entstandene .tar Datei
wird dann mit einer der unten genannten Methoden
komprimiert.Bei allen anderen Formaten existiert nur eine
Datei mit dem Namen
book.format
(z.B., book.pdb,
book.html, und so
weiter).Diese Dateien werden mit zwei verschiedenen
Programmen komprimiert.ProgrammBeschreibungzipDas Zip-Format. Wenn Sie diese
Dateien unter FreeBSD auspacken wollen,
müssen sie vorher den Port
archivers/unzip
installieren.bz2Das BZip2-Format. Es wird seltener
als das Zip-Format
benutzt, erzeugt aber normalerweise
kleinere Archive. Sie müssen den
Port archivers/bzip2
installieren, um diese Dateien entpacken
zu können.Ein Beispiel: Die mit BZip2 gepackte Version
des Handbuchs im &postscript;-Format hat den Namen
book.ps.bz2 und ist im
Verzeichnis handbook/ zu
finden.Nachdem Sie das Format und das Kompressionsverfahren
ausgewählt haben, müssen Sie sich entscheiden,
ob Sie das Dokument in Form eines FreeBSD
Package herunterladen
möchten.Der Vorteil dieser Variante, dass Sie die
Dokumentation mit normalen Tools wie &man.pkg.add.1; und
&man.pkg.delete.1; verwalten können.Wenn Sie das Package herunterladen und installieren
wollen, müssen Sie den richtigen Dateinamen kennen.
Die Dateien liegen in einem separaten Verzeichnis mit dem
Namen packages und werden nach dem Schema
Dokument-Name.Sprache.Zeichensatz.Format.tgz
benannt.Ein Beispiel: Die englische Version der FAQ im
PDF-Format ist in dem Package mit dem Namen
faq.en_US.ISO8859-1.pdf.tgz
enthalten.Sie können daher das englische PDF FAQ Package
mit den folgenden Befehlen installieren.&prompt.root; pkg_add ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgzDanach können Sie mit &man.pkg.info.1; nachsehen,
wo die Datei installiert wurde.&prompt.root; pkg_info -f faq.en_US.ISO8859-1.pdf
Information for faq.en_US.ISO8859-1.pdf:
Packing list:
Package name: faq.en_US.ISO8859-1.pdf
CWD to /usr/share/doc/en_US.ISO8859-1/books/faq
File: book.pdf
CWD to .
File: +COMMENT (ignored)
File: +DESC (ignored)Wie Sie sehen können, wurde die Datei
book.pdf im Verzeichnis
/usr/share/doc/en_US.ISO8859-1/books/faq
installiert.Wenn sie die Packages nicht benutzen, müssen Sie
die komprimierten selber herunterladen, auspacken und die
richtigen Stellen kopieren.Wenn Sie zum Beispiel die mit &man.bzip2.1; gepackte
split HTMLVersion der englischen FAQ
herunterladen und installieren wollten, bräuchten
Sie die Datei
doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2.
Um diese Datei herunterzuladen und auszupacken, wären
die folgenden Schritte notwendig.&prompt.root; fetch ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2
&prompt.root; gzip -d book.html-split.tar.bz2
&prompt.root; tar xvf book.html-split.tarDanach haben Sie eine Sammlung vieler kleiner
.html Datei. Die wichtigste Datei
hat Namen index.html und enthält
das Inhaltsverzeichnis, eine Einleitung und Verweise auf
die anderen Teile des Dokumentes. Falls notwendig,
können Sie die diversen Dateien jetzt an ihren
endgültigen Bestimmungsort verschieben oder
kopieren.Woher bekomme ich Informationen zu den FreeBSD
Mailinglisten?Vollständige Informationen finden Sie im Handbucheintrag
über Mailinglisten.Welche Newsgruppen existieren zu FreeBSD?Sie finden alle Informationen hierzu im Handbucheintrag zu
Newsgruppen.Gibt es FreeBSD IRC (Internet Relay Chat)
Kanäle?Ja, die meisten großen IRC Netze bieten einen
FreeBSD Chat-Channel:Channel FreeBSD im EFNet ist
ein FreeBSD-Forum, aber gehen Sie nicht dorthin, um
technische Unterstützung zu suchen, oder, um zu
versuchen, die Leute dort dazu zu bringen, Ihnen dabei
zu helfen, das mühselige Lesen von Manuals zu
ersparen oder eigene Nachforschungen zu betreiben. Es
ist in erster Linie ein Chat-Channel und die Themen
dort umfassen Sex, Sport oder Kernwaffen ebensogut,
wie FreeBSD. Sie wurden gewarnt! Der Channel ist auf
dem Server irc.chat.org
verfügbar.Der Channel #FreeBSDhelp im
EFNet hat
sich dagegen auf die Unterstützung der Benutzer
von FreeBSD spezialisiert. In diesem Channel sind
Fragen deutlich willkommener als im Channel
#FreeBSD.Der Channel #FreeBSD im DALNET ist in den
USA unter irc.dal.net und in Europa
unter irc.eu.dal.net
verfügbar.Der Channel #FreeBSDHelp im
DALNET
ist in den USA unter irc.dal.net
sowie in Europa unter irc.eu.dal.net
verfügbar. Die Betreiber des Channels bieten
auch eine Internetseite mit nützlichen
Informationen zum Channel sowie zu &os;, die unter
erreichbar ist.Der Channel #FreeBSD im UNDERNET ist in
den USA unter us.undernet.org und in
Europa unter eu.undernet.org
verfügbar. Es handelt sich hierbei um einen
Hilfe-Channel, man wird Sie daher auf Dokumente
verweisen, die Sie selbst lesen müssen.Der Channel #FreeBSD im RUSNET ist ein
russischsprachiger Channel, der sich der
Unterstützung von &os;-Anwendern verschrieben hat.
Er ist auch ein guter Startpunkt für
nichttechnische Diskussionen.Alle diese Kanäle unterscheiden sich voneinander
und sind nicht miteinander verbunden. Ebenso
unterscheiden sich Ihre Chat-Stile, weshalb es sein kann,
dass Sie zunächst alle Kanäle ausprobieren
müssen, um den zu Ihrem Chat-Stil passenden zu
finden. Hier gilt, was für
jeden IRC-Verkehr gilt: falls sie
sich leicht angegriffen fühlen oder nicht mit vielen
jungen (und einigen älteren) Leuten, verbunden mit
dem nutzlosen Gezanke umgehen können, dann ziehen Sie
es gar nicht erst in Erwägung.Gibt es Firmen, die Training und Support für
FreeBSD anbieten?DaemonNews bietet Training und Support für
FreeBSD an. Weitergehende Informationen finden Sie in der
BSD
Mall.Die FreeBSD Mall bietet ebenfalls professionellen
FreeBSD support an. Weitergehende Informationen finden
Sie auf ihrer Webseite.Wenn Ihre Firma oder Organisation ebenfalls Training
und Support anbietet und hier genannt werden möchte,
wenden Sie sich bitte an das FreeBSD Project.NikClaytonnik@FreeBSD.orgInstallationWelche Dateien muss ich herunterladen, um FreeBSD
zu bekommen?Für 4.X werden zwei Floppy-Images benötigt:
floppies/kernel.flp und
floppies/mfsroot.flp. Diese Images
müssen mit Hilfe von Werkzeugen wie
fdimage oder &man.dd.1; auf Disketten
kopiert werden. Seit &os; 5.3 weisen die Bootdisketten
eine neue Struktur auf. Sie benötigen nun das Image
floppies/boot.flp sowie alle Dateien
mit den Namen
floppies/kernX
(von denen es derzeit zwei gibt).Falls Sie selbst die einzelnen Distributionen
herunterladen müssen (um z.B. von einem
DOS-Dateisystem aus zu installieren), empfehlen wir, sich
die folgenden Distributionen zu besorgen:base/ (bin/ unter 4.X)manpagescompat*docsrc/ssys.*Vollständige Instruktionen für dieses
Vorgehen und ein wenig mehr zur Installation generell
finden Sie im Handbucheintrag zur
Installation von FreeBSD.Was soll ich tun, wenn das Floppy-Image nicht auf eine
Diskette passt?Eine 3,5-Zoll (1,44MB) Diskette kann 1474560 Byte an
Daten fassen und das Boot-Image ist exakt 1474560 Byte
groß.Häufige Fehler bei der Erstellung der
Boot-Diskette sind:Bei der Benutzung von FTP das
Floppy-Image nicht im
Binär-Modus
herunterzuladen.Einige FTP-Clients benutzen als Voreinstellung den
ASCII-Modus und versuchen, alle
Zeilenendezeichen an das Zielsystem anzupassen.
Dadurch wird das Boot-Image in jedem Fall unbrauchbar.
Überprüfen Sie die Größe des
heruntergeladenen Boot-Images: falls sie nicht
exakt mit der auf dem Server
übereinstimmt, hat das Herunterladen nicht
richtig funktioniert.Abhilfe: geben Sie binary an
der FTP-Eingabeaufforderung ein, nach dem Sie mit dem
Server verbunden sind und bevor Sie das Image
herunterladen.Die Benutzung des DOS-Befehls
copy (oder eines entsprechendes
Werkzeugs der grafischen Benutzeroberfläche), um
das Boot-Image auf die Diskette zu
übertragen.Programme wie copy sind hier
unbrauchbar, weil das Image zur direkten
Übertragung erstellt wurde. Das Image stellt den
gesamten Disketteninhalt dar, Spur für Spur, und
nicht eine gewöhnliche Datei. Sie müssen es
roh mit speziellen Werkzeugen (z.B.
fdimage oder
rawrite) übertragen, wie es in
der Installationsanleitung
zu FreeBSD beschrieben ist.Wo befinden sich die Instruktionen zur Installation
von FreeBSD?Installationsanleitungen finden Sie im Handbucheintrag zur
Installation von FreeBSD.Was benötige ich zum Betrieb von FreeBSD?Für &os;-Versionen vor 5.X benötigen Sie
mindestens einen 386er Prozessor mit mindestens 5 MB
Hauptspeicher und mindestens 60 MB Festplattenspeicher.
Für die Installation von &os; ist dabei mehr
Hauptspeicher als für den eigentlichen Betrieb
nötig, daher sollten 16 RAM als Minimum für
ein Standardsystem ausreichen.Der Betrieb von &os; 5.X und neuer erfordert
mindestens einen 486er Prozessor mit mindestens 24 MB
RAM sowie mindestens 150 MB an Festplattenspeicher.Alle &os;-Versionen laufen mit einer einfachen
MDA-Grafikkarte, für X11R6 benötigen Sie allerdings
eine VGA- oder eine bessere Videokarte.Lesen Sie auch den Abschnitt
Hardwarekompatibilität.Ich besitze nur 4 MB Hauptspeicher. Kann ich FreeBSD
installieren?Für die Installation von FreeBSD 4.X
benötigen Sie mindestens 5MB RAM, seit &os; 5.X
mindestens 8 MB für die Installation eines neuen
Systems.Alle FreeBSD-Versionen vor 5.X
laufen zwar mit 4MB Hauptspeicher,
lediglich ihr Installationsprogramm läuft nicht mit 4MB.
Wenn Sie möchten, können Sie für den
Installationsvorgang zusätzlichen Hauptspeicher
hinzufügen, den Sie nach der Installation wieder
entfernen. Alternativ können Sie Ihre Platte in ein
System mit genügend Hauptspeicher transferieren und die
Platte nach erfolgreicher Installation wieder in Ihr System
einbauen.Wenn Sie nur über 4 MB Hauptspeicher
verfügen, müssen Sie einen angepassten Kernel
erzeugen. Irgend jemand hat es sogar geschafft, mit 2 MB
RAM zu booten, allerdings war dieses System nahezu
unbrauchbar.Wie kann ich eine angepasste
Installationsdiskette erstellen?Zurzeit gibt es keine Möglichkeit,
nur die angepassten
Installationsdisketten zu erstellen. Sie müssen sich
eine ganz neues Release erstellen, das Ihre
Installationsdiskette enthält.Wenn Sie eine modifizierte Ausgabe erstellen wollen,
finden Sie eine Anleitung im Artikel
FreeBSD Release Engineering.Kann ich mehr als ein Betriebssystem auf meinem PC
unterbringen?Sehen Sie sich Die
Multi-OS-Seite an.Kann &windows; neben FreeBSD existieren?Installieren Sie zuerst &windows;, dann FreeBSD.
Der Bootmanager von FreeBSD kann dann entweder &windows;
oder FreeBSD booten. Falls Sie &windows; nach FreeBSD
installieren, wird es, ohne zu fragen, Ihren Bootmanager
überschreiben. Lesen Sie den nächsten
Abschnitt, falls das passieren sollte.&windows; hat meinen Bootmanager zerstört!
Wie stelle ich ihn wieder her?Es gibt drei Möglichkeiten, den
FreeBSD-Bootmanager neu zu installieren:Unter DOS wechseln Sie in das Verzeichnis tools/
Ihrer FreeBSD-Distribution und suchen nach
bootinst.exe. Rufen sie es so
auf:...\TOOLS>bootinst.exe boot.binund der Bootmanager wird neu installiert.Booten Sie FreeBSD wieder mit der Bootdiskette und
wählen Sie den Menüeintrag Custom Installation.
Wählen Sie Partition. Wählen Sie das
Laufwerk, auf dem sich der Bootmanager befand
(wahrscheinlich der erste Eintrag) und wenn Sie in den
Partitioneditor gelangen, wählen Sie als aller
erstes (nehmen Sie z.B. keine Änderungen vor)
(W)rite. Sie werden nach einer Bestätigung
gefragt, antworten ja und vergessen Sie nicht, in der
Bootmanager-Auswahl Boot Manager
auszuwählen. Hierdurch wird der Bootmanager
wieder auf die Festplatte geschrieben. Verlassen Sie
nun das Installationsmenü und rebooten wie
gewöhnlich von der Festplatte.Booten Sie FreeBSD wieder mit der Bootdiskette
(oder der CDROM) und wählen Sie den
Menüpunkt Fixit. Wählen Sie
die für Sie passende Option, entweder die
Fixit-Diskette oder die CD Nummer 2 (die Option
live Filesystem). Wechseln Sie zur
Fixit-Shell und geben Sie den folgenden Befehl
ein:Fixit#fdisk -B -b /boot/boot0 bootdeviceAls bootdevice
müssen Sie das von Ihrem System verwendete
Gerät angeben, z.B. ad0
(erste IDE-Platte), ad4
(erste IDE-Platte an einem zusätzlichen
Controller), da0 (erste
SCSI-Platte), usw.Mein IBM Thinkpad Modell A, T oder X, hängt sich
auf, wenn ich FreeBSD zum ersten Mal starte. Was soll ich
machen?Ein Fehler in den ersten BIOS-Versionen dieser
Geräte führt dazu, dass sie die von FreeBSD
genutzte Partition für eine Suspend-To-Disk-Partition
halten. Wenn das BIOS dann versucht, diese Partition
auszuwerten, hängt sich das System auf.Laut IBM
In einer Mail von Keith Frechette
kfrechet@us.ibm.com.
wurde der Fehler wurde in den folgenden BIOS-Versionen
behoben:GerätBIOS VersionT20IYET49WW oder neuerT21KZET22WW oder neuerA20pIVET62WW oder neuerA20mIWET54WW oder neuerA21pKYET27WW oder neuerA21mKXET24WW oder neuerA21eKUET30WWEs ist möglich, dass neuere Version des IBM
BIOS den Fehler wieder enthalten.
Dieser Beitrag von Jacques Vidrine auf der
Mailingliste &a.mobile; beschreibt eine Technik,
die Ihnen weiterhelfen könnte, wenn Ihr IBM Laptop
mit FreeBSD nicht bootet und Sie eine neuere oder
ältere BIOS-Version einspielen können.Wenn Ihr Thinkpad über eine ältere
BIOS-Version verfügt und Sie das BIOS nicht
aktualisieren können, ist eine der möglichen
Lösungen, FreeBSD zu installieren, die Partitions-ID
zu ändern und danach neue Bootblocks zu installieren,
die mit der geänderten ID umgehen
können.Zunächst müssen Sie die Maschine so weit
wiederherstellen, dass sie über den Selbst-Test
hinauskommt. Dazu ist es erforderlich, dass das
System beim Start keine Partitions-ID auf seiner
primären Festplatte findet. Eine Variante ist, die
Platte auszubauen und vorübergehend in einem
älteren Thinkpad (z.B. dem Thinkpad 600) oder (mit
einem passenden Adapter) in einen normalen PC einzubauen.
Sobald dies erfolgt ist, können Sie die
FreeBSD-Partition löschen und die Festplatte wieder
in das Thinkpad einbauen. Das Thinkpad sollte jetzt
wieder starten können.Danach können Sie mit der nachfolgend
beschriebenen Anleitung eine funktionsfähige
FreeBSD-Installation erhalten.Beschaffen Sie sich boot1 und
boot2 von .
Legen Sie diese Dateien so ab, dass Sie
während der Installation darauf zugreifen
können.Installieren Sie ganz wie gewohnt FreeBSD auf dem
Thinkpad. Allerdings dürfen Sie den
Dangerously Dedicated-Modus
nicht benutzen. Nach dem
Abschluss der Installation dürfen Sie die
Maschine nicht neu
starten.Wechseln Sie zur Emergency Holographic
Shell (
AltF4)
oder starten Sie eine fixit
Shell.Benutzen Sie &man.fdisk.8;, um die Partitions-ID
von FreeBSD von 165 in
166 zu ändern (dieser Wert
wird von OpenBSD benutzt).Kopieren Sie die Dateien
boot1 und
boot2 auf die lokale
Festplatte.Installieren Sie boot1 und
boot2 mit &man.disklabel.8; auf
die FreeBSD-Slice.&prompt.root; disklabel -B -b boot1 -s boot2 ad0snSetzen Sie für n
die Nummer der Slice ein, auf der sie FreeBSD
installiert haben.Starten Sie das System neu. Am Boot-Prompt
sollten Sie die Auswahl OpenBSD
erhalten. Damit wird in Wirklichkeit FreeBSD
gestartet.Was Sie machen müssen, wenn Sie FreeBSD und
OpenBSD parallel installieren wollen, sollten Sie zu
Übungszwecken einfach einmal selbst
herausfinden.Kann ich FreeBSD auf einer Festplatte mit
beschädigten Blöcken installieren?Prinzipiell ja. Allerdings ist das keine gute
Idee.Wenn Ihnen bei einer modernen IDE-Platte defekte
Sektoren gemeldet werden, wird die Platte mit großer
Wahrscheinlichkeit innerhalb kurzer Zeit vollständig
ausfallen, da die Meldung ein Zeichen dafür ist,
dass die für die Korrektur reservierten Sektoren
bereits verbraucht wurden. Wir raten Ihnen, die Platte
auszutauschen.Falls Sie ein SCSI-Laufwerk mit beschädigten
Blöcken besitzen, lesen Sie diese Antwort.Wenn ich von der Installationsdiskette boote,
geschehen merkwürdige Dinge! Was sollte ich
tun?Falls Sie beobachten, dass ihr Rechner sich bis
zum Stillstand abmüht oder spontan rebootet,
während Sie versuchen, von der Installationsdiskette
zu booten, sollten Sie sich drei Fragen stellen:Haben Sie eine brandneue, frisch formatierte,
fehlerfreie Diskette benutzt (günstigerweise eine
brandneue, direkt aus dem Karton und nicht eine
Diskette aus einem Magazin, das schon seit drei Jahren
unter Ihrem Bett lag)?Haben Sie das Floppy-Image im Binär- (oder
Image) Modus heruntergeladen? (Schämen Sie sich
nicht. Sogar die besten unter uns haben wenigstens
einmal Binärdateien versehentlich im ASCII-Modus
heruntergeladen!)Falls Sie &windows; 95 oder &windows; 98
benutzen, haben Sie es heruntergefahren und
fdimage bzw.
rawrite in einfachem, reinem DOS
neu gestartet? Es scheint, dass diese
Betriebssysteme Programme stören, die direkt auf
Hardware schreiben, wie es das Erstellungsprogramm
für die Diskette tut; selbst bei der
Ausführung des Programms in einem DOS-Fenster in
der grafischen Benutzeroberfläche kann dieses
Problem auftreten.Es wurde auch darüber berichtet, dass
&netscape; Probleme beim Herunterladen der Bootdisketten
verursacht. Es ist also wahrscheinlich besser, einen
anderen FTP-Client zu benutzen.Ich habe zur Installation von meinem ATAPI CDROM
gebootet, aber das Installationsprogramm sagt mir,
dass es kein CDROM gefunden hat. Was geht hier
ab?Dieses Problem wird üblicherweise durch ein
falsch konfiguriertes CDROM verursacht. Bei vielen PCs
ist das CDROM der Slave am zweiten IDE-Controller, ein
Master ist nicht vorhanden. Laut Spezifikation ist diese
Konfiguration illegal, aber &windows; verletzt die
Spezifikation und das BIOS ignoriert sie, wenn es von
einem CDROM booten soll. Daher konnten Sie zwar vom
CDROM booten, während FreeBSD es nicht für die
Installation benutzen kann.Um dieses Problem zu lösen, müssen Sie
entweder das CDROM als Master an den IDE-Controller
anschließen oder dafür sorgen, dass an dem
vom CDROM genutzten IDE-Controller das CD-ROM als Slave
und ein anderes Gerät als Master angeschlossen
ist.Kann ich auf meinem Laptop per PLIP (Parallel Line IP)
installieren?Ja, Sie brauchen dazu nur ein ganz normales
Laplink-Kabel. Weitere Informationen zum Thema Netzwerke
am Druckerport finden sie im Kapitel PLIP des
Handbuchs.Welche Geometrie sollte ich für ein
Festplattenlaufwerk verwenden?Unter der Geometrie einer Festplatte
verstehen wir die Anzahl Zylinder,
Schreib-/Leseköpfen und Sektoren/Spur auf einer
Festplatte. Im folgenden wird dafür der
Übersichtlichkeit halber der Begriff C/H/S
verwendet. Das BIOS des PCs berechnet mit diesen
Angaben, auf welche Bereiche der Festplatte es für
Schreib-/Lesezugriffe zugreifen muss).Aus einigen Gründen scheint dies gerade bei
frischgebackenen Systemadministratoren für sehr viel
Verwirrung zu sorgen. Zunächst einmal ist die
physikalische Geometrie eines
SCSI-Laufwerks vollkommen irrelevant, da FreeBSD mit
Blöcken arbeitet. Tatsächlich gibt es
die physikalische Geometrie nicht, da die
Sektordichte auf einer Festplatte variiert. Was die
Hersteller als die wahre physikalische
Geometrie bezeichnen, ist im allgemeinen die Geometrie,
die aufgrund ihrer Ergebnisse im geringsten ungenutzten
Speicher resultiert. Bei IDE-Platten arbeitet FreeBSD mit
C/H/S-Angaben, aber alle modernen Laufwerke wandeln diese
intern ebenfalls in Blocknummern um.Wichtig ist nur die logische
Geometrie. Das BIOS kann die logische Geometrie der
Festplatte abfragen; die erhaltenen Daten werden dann vom
BIOS bei Zugriffen auf die Festplatte genutzt. Da FreeBSD
das BIOS benutzt, während es bootet, ist es sehr
wichtig, dass diese Angaben richtig sind.
Insbesondere müssen alle Betriebssysteme mit
derselben Geometrie arbeiten, falls Sie mehr als ein
Betriebssystem auf einer Festplatte haben. Andernfalls
werden Sie ernsthafte Bootprobleme bekommen!Bei SCSI-Festplatten hängt die zu verwendende
Geometrie davon ab, ob der Extended Translation Support
auf Ihrem Controller eingeschaltet ist (oft auch als
Unterstützung für DOS-Platten
>1GB oder ähnlich bezeichnet). Falls sie
ausgeschaltet ist, benutzen Sie
N Zylinder, 64 Köpfe und
32 Sektoren/Spur, wobei N die
Kapazität der Festplatte in MB ist. Zum Beispiel
sollten für eine 2GB Festplatte 2048 Zylinder, 64
Köpfe und 32 Sektoren/Spur angegeben werden.Falls sie eingeschaltet ist (was
oft der Fall ist, um bestimmte Einschränkungen von
&ms-dos; zu umgehen) und die Plattenkapazität mehr als
1GB beträgt, benutzen Sie M Zylinder, 63
Sektoren/Spur (nicht 64) und 255
Köpfe, wobei M der
Plattenkapazität in MB, dividiert durch 7,844238
entspricht (!). Also würde unsere 2GB Beispielplatte
261 Zylinder, 63 Sektoren/Spur und 255 Köpfe haben.Falls Sie sich hier nicht sicher sind oder FreeBSD
während der Installation die Geometrie nicht richtig
erkennt, hilft es normalerweise, eine kleine DOS-Partition
auf der Festplatte anzulegen. Das BIOS sollte dann in der
Lage sein, die richtige Geometrie zu erkennen. Sie
können die Partition jederzeit im Partitioneditor
entfernen, falls Sie sie nicht behalten möchten.
Allerdings kann Sie ganz nützlich sein, um
Netzwerkkarten zu programmieren und
ähnliches.Alternativ können Sie das frei verfügbare
Programm pfdisk.exe verwenden. Sie
finden es im Unterverzeichnis tools
auf der FreeBSD-CDROM und allen FreeBSD FTP-Servern). Mit
diesem Programm können Sie herausfinden, welche
Geometrie die anderen Betriebssysteme auf der Festplatte
verwenden. Diese Geometrie können Sie im
Partitioneditor eingeben.Gibt es irgendwelche Einschränkungen, wie ich die
Festplatte aufteilen darf?Ja. Sie müssen sicherstellen, dass Ihre
Rootpartition innerhalb der ersten 1024 Zylinder liegt, damit
das BIOS den Kernel von Ihr booten kann. (Beachten Sie,
dass es sich um eine Einschränkung durch das
BIOS des PCs handelt und nicht durch FreeBSD).Für ein SCSI-Laufwerk bedeutet dies
normalerweise, dass sich die Rootpartition in den
ersten 1024MB befindet (oder in den ersten 4096MB, falls
die Extended Translation eingeschaltet ist - siehe die
vorherige Frage). Der entsprechende Wert für IDE ist
504MB.Verträgt sich FreeBSD mit Plattenmanagern?FreeBSD erkennt den Ontrack Plattenmanager und
berücksichtigt ihn. Andere Plattenmanager werden
nicht unterstützt.Falls Sie die Festplatte nur mit FreeBSD benutzen
wollen, brauchen Sie keinen Plattenmanager. Wenn Sie Sie
die Platte einfach in der vom BIOS maximal
unterstützten Größe (normalerweise 504
Megabyte) konfigurieren, sollte FreeBSD erkennen, wie viel
Platz Sie tatsächlich haben. Falls Sie eine alte
Festplatte mit einem MFM-Controller verwenden, könnte
es sein, dass Sie FreeBSD explizit angeben
müssen, wie viele Zylinder es benutzen soll.Falls Sie die Festplatte mit FreeBSD und einem anderen
Betriebssystem benutzen wollen, sollten Sie auch in der Lage
sein, ohne einen Plattenmanager auszukommen: stellen sie
einfach sicher, dass sich die Bootpartition von
FreeBSD und der Bereich für das andere Betriebssystem
in den ersten 1024 Zylindern befinden. Eine 20 Megabyte
Bootpartition sollte völlig genügen, wenn Sie
einigermaßen sorgfältig arbeiten.Beim ersten Booten von FreeBSD erscheint
Missing Operating System. Was ist
passiert?Dies ist ein klassischer Fall von Konflikten bei den
verwendeten Plattengeometrien von FreeBSD
und DOS oder anderen Betriebssystemen. Sie werden FreeBSD
neu installieren müssen. Bei Beachtung obiger
Instruktionen wird in den meisten Fällen alles
funktionieren.Wieso komme ich nicht weiter als bis zum
F?-Prompt des Bootmanagers?Dies ist ein weiteres Symptom für das bereits in
der vorherigen Frage beschriebene Problem. Ihre
Einstellungen zur Geometrie im BIOS und in FreeBSD stimmen
nicht überein! Falls Ihr Controller oder BIOS
Zylinderumsetzung (oft als >1GB drive
support bezeichnet), probieren Sie eine Umsetzung
dieser Einstellung und Neuinstallation von
FreeBSD.Muss ich den vollständigen Quellcode
installieren?Im allgemeinen nicht. Wir empfehlen jedoch dringend
die Installation des base Source-Kit,
das viele der hier erwähnten Dateien enthält und
des sys (Kernel) Source-Kit, das den
Quellcode für den Kernel enthält. Außer
dem Programm zur Konfiguration des Kernels
(&man.config.8;) gibt es im System nichts, zu dessen
Funktion der Quellcode erforderlich ist. Mit Ausnahme der
Kernelquellen ist unsere Build-Struktur so aufgebaut,
dass Sie den Quellcode von überall her per NFS
read-only mounten und dennoch neue Binaries erstellen
können. (Wegen der Einschränkung bezüglich
der Kernelquellen empfehlen wir, diese nicht direkt nach
/usr/src zu mounten, sondern
irgendwoanders hin mit passenden symbolischen Links, um
die Toplevel-Struktur des Quellbaumes zu
duplizieren.)Die Quellen verfügbar zu haben und zu wissen, wie
man ein System mit ihnen erstellt, wird es Ihnen
wesentlich einfacher machen, zu zukünftigen Ausgaben
von FreeBSD zu wechseln.Um einen Teil der Quellen auszuwählen, verwenden
Sie den Menüpunkt Custom, wenn Sie sich im Menü
Distributions des Systeminstallationstools
befinden.Muss ich einen Kernel erstellen?Ursprünglich war die Erstellung eines neuen
Kernels bei fast jeder Installation von FreeBSD
erforderlich, aber neuere Ausgaben haben von der
Einführung weitaus benutzerfreundlicherer
Kernelkonfigurationswerkzeuge profitiert. Unter 4.X
und älter geben Sie am FreeBSD Boot-Prompt
(boot:) ein, um in ein visuelles
Konfigurationsmenü zu gelangen. Dieses
Programm ermöglicht Ihnen die Konfiguration der
Kerneleinstellungen für die gebräuchlichsten
ISA-Karten. Ab &os; 5.X wurde dieses Konzept durch
die deutlich flexibleren hints ersetzt,
die am Loader-Prompt eingegeben werden können.Es kann dennoch sinnvoll sein, einen neuen Kernel
zu erstellen, der nur die benötigten Treiber
enthält, um ein wenig Hauptspeicher zu sparen,
für die meisten Systeme ist dies aber nicht mehr
länger erforderlich.Soll ich DES, Blowfisch oder MD5 zur Verschlüsselung der
Passwörter benutzen?FreeBSD benutzt standardmäßig
MD5 zur Verschlüsselung der
Passwörter. Es wird angenommen, dass diese
Methode sicherer ist als das traditionell benutzte
Verfahren, das auf dem DES
Algorithmus basierte. Es ist immer noch möglich,
DES-Passwörter zu benutzen, wenn Sie die Datei
mit den Passwörtern mit älteren System
austauschen müssen. Ältere System verstehen
meist nur das unsichere Verfahren, dieses steht Ihnen zur
Verfügung, wenn Sie mit sysinstall die
crypto Distribution installieren. Sie
können auch die crypto Sourcecodes installieren, wenn
Sie Ihr System über die Sourcen aktualisieren. Die crypto
Bibliotheken erlauben es Ihnen das sichere Blowfisch Verfahren
für die Verschlüsselung der Passwörter
einzusetzen. Das für neue Passwörter benutzte
Verschlüsselungsverfahren wird über die
Einstellung passwd_format in
/etc/login festgelegt. Die
möglichen Werte sind entweder des,
blf (falls sie zur Verfügung stehen)
oder md5. Weitere
Informationen über die Einstellungen für den
Login erhalten Sie in &man.login.conf.5;.Woran kann es liegen, dass ich zwar von der
Diskette booten kann, aber nicht weiter als bis zur
Meldung Probing Devices...
komme?Falls Sie ein IDE &iomegazip;- oder &jaz;-Laufwerk
eingebaut haben, entfernen Sie es und versuchen Sie es erneut.
Solche Laufwerke könnten dem Bootvorgang stören.
Nach der Installation des Systems können Sie das
Laufwerk wieder einbauen. Dieser Fehler wird hoffentlich
in einer späteren Version behoben werden.Wieso wird mit der Fehler panic: cant mount
root gemeldet, wenn ich das System nach der
Installation reboote?Dieser Fehler beruht auf Unstimmigkeiten zwischen den
Festplatteninformationen im Bootblock und denen im Kernel.
Der Fehler tritt normalerweise auf IDE-Systemen mit zwei
Festplatten auf, bei denen die Festplatten als Master-
oder Single-Device auf separaten IDE-Controllern
angeschlossen sind und FreeBSD auf der Platte am zweiten
Controller installiert wurde. Der Bootblock vermutet,
dass das System auf ad0 (der zweiten BIOS-Platte)
installiert ist, während der Kernel der ersten Platte
auf dem zweiten Controller die Gerätekennung ad2
zuteilt. Der Kernel versucht nach der
Geräteüberprüfung die vom Bootblock
angenommene Bootdisk ad0 zu mounten, obwohl sie in
Wirklichkeit ad2 heißt - und scheitert.Tun Sie folgendes, um dieses Problem zu
beheben:Rebooten Sie das System und drücken
Sie Enter, wenn die
Meldung Booting kernel in 10 seconds; hit
[Enter] to interrupt erscheint. Dadurch
gelangen Sie in den Boot Loader.Geben Sie nun
root_disk_unit="disk_number"
ein. disk_number hat den Wert
0, wenn FreeBSD auf dem Master des
ersten IDE-Controllers installiert wurde;
1, wenn FreeBSD auf dem Slave des
ersten IDE-Controllers installiert wurde;
2, wenn FreeBSD auf dem Master des
zweiten IDE-Controllers installiert wurde; und
3, wenn FreeBSD auf dem Slave des
zweiten IDE-Controllers installiert wurde.Nach der Eingabe von boot
sollte Ihr System jetzt korrekt starten.Damit Sie dieses Ritual nicht bei jedem Start des
Systems durchführen müssen, sollten Sie die
Zeile
root_disk_unit="disk_number"
in die Datei
/boot/loader.conf.local
eintragen.Stellen Sie eine ununterbrochene Folge der
Festplatten her, indem Sie die FreeBSD-Platte am
ersten IDE-Controller anschließen.Gibt es eine Hauptspeicherbegrenzung?Bei einer &i386;-Standardinstallation werden maximal
4 Gigabyte Hauptspeicher unterstützt. Seit
&os; 4.9 und 5.1 wird auch ein größerer
Hauptspeicher unterstützt. Dazu müssen Sie die
zusätzliche Option PAE (&man.pae.4;) in Ihren Kernel
kompilieren:options PAE&os;/pc98 unterstützt maximal 4 GB Hauptspeicher,
daher kann PAE auf diesen Systemen nicht verwendet werden.
Unter &os;/alpha hängt dieses Limit von der verwendeten
Hardware ab - lesen Sie daher die Alpha Hardware Release
Notes für weitere Informationen. Sonstige von &os;
unterstützte Architekturen haben ein sehr viel
höheres theoretisches Speicherlimit (viele
Terabytes).Wo liegen die Grenzen für
ffs-Dateisysteme?Theoretisch liegt das Limit für ffs-Dateisysteme
bei 8 Terabyte (2G-Blöcke) oder 16TB für die
Standard-Blockgröße von 8k. In der Praxis
setzt die Software das Limit auf 1 Terabyte herab, aber
durch Modifikationen sind auch Dateisysteme mit 4 Terabyte
möglich (und existieren auch).Die maximale Größe einer einzelnen
ffs-Datei liegt bei ungefähr 1G Blöcken (4TB,
falls die Blockgröße 4k beträgt).
Wenn die im Dateisystem verwendete
Blockgröße 4k beträgt, wird mit dreifacher
Indirektion gearbeitet und die Limitierung sollte durch
die höchste Blocknummer erfolgen, die mit dreifacher
Indirektion dargestellt werden kann (ungefähr 1k^3 +
1k^2 + 1k). In Wirklichkeit liegt das Limit aber bei der
(falschen) Anzahl von 1G-1 Blocknummern im Dateisystem.
Die maximale Anzahl der Blocknummern müsste 2G-1
sein. Es gibt einige Fehler für Blocknummern nahe
2G-1, aber solche Blocknummern sind bei einer
Blockgröße von 4k unerreichbar.Bei Blocknummern von 8k und größer sollte
das Limit bei 2G-1 Blocknummern liegen,
tatsächlich liegt es aber bei 1G-1 Blocknummern.
Die Verwendung der korrekten Grenze von 2G-1
verursacht Probleme.Wieso erhalte ich die Fehlermeldung
archsw.readin.failed beim Start des
Systems, nachdem ich einen neuen Kernel erstellt
habe?Ihr System und Ihr Kernel sind nicht synchron - dies
ist nicht erlaubt. Sie müssen Ihren Kernel mit
make buildworld und make
buildkernel aktualisieren.Sie können den zu bootenden Kernel direkt im
zweiten Schritt angeben, indem Sie eine beliebige Taste
drücken, wenn das | erscheint und bevor der Loader
startet.Was sind die Sicherheits-Profile?In einem Sicherheits-Profil werden
verschiedene Einstellungen zusammengefasst, mit denen
das gewünschte Verhältnis zwischen Sicherheit und
Benutzerfreundlichkeit hergestellt werden soll. Um dies
zu erreichen, werden bestimmte Dienste und Features
entweder aktiviert oder deaktiviert. Die Details sind im
Abschnitt Security Profile
des Handbuch-Kapitels
Post-Installation enthalten.Mein System stürzt beim Booten ab! Was kann ich
tun?Deaktivieren Sie die ACPI-Unterstützung. Dazu
drücken Sie beim Start des Bootloaders die Leertaste.
Das System antwortet darauf mit OK Geben
Sie nun unset acpi_load
und danach boot ein.Hardware-KompatibilitätAllgemeinesIch will mir neue Hardware für mein
FreeBSD-System zulegen, was soll ich kaufen? Diese Frage wird ständig auf den
FreeBSD-Mailinglisten diskutiert. Da sich die Hardware
ständig ändert, ist das allerdings keine
Überraschung. Trotzdem sollten
Sie unbedingt die Hardware-Informationen von &os;
(&rel.current;
oder
&rel2.current;)
und die
Archive der Mailinglisten durchsehen, bevor Sie
nach der neuesten/besten Hardware fragen. Normalerweise
gab es kurz zuvor eine Diskussion über genau die
Hardware, die Sie sich zulegen wollen.Wenn Sie sich einen Laptop zulegen wollen, sollten Sie
einen Blick in das Archiv der Mailingliste FreeBSD-mobile
werfen. Ansonsten empfiehlt sich ein Blick in das Archiv
von FreeBSD-questions oder auch einer spezialisierte
Mailingliste für diese Art von Hardware.Architekturen und ProzessorenUnterstützt FreeBSD neben x86 auch andere
Architekturen?Ja. FreeBSD ist zurzeit für die Intel x86 und
DEC (jetzt Compaq) Alpha Architekturen verfügbar.
Seit FreeBSD 5.0 werden auch AMD64 sowie Intel EM64T,
IA-64 und &sparc64; unterstützt. Die Neuzugänge
auf der Liste der in Zukunft unterstützten Plattformen
sind &mips; und &powerpc;. Abonnieren Sie die Mailinglisten
&a.ppc; oder &a.mips; wenn Sie mehr über
den Stand der Entwicklung erfahren wollen. Schließen
Sie sich der Mailingliste &a.platforms; an, wenn Sie an
grundsätzlichen Diskussionen über neue Architekturen
interessiert sind.Falls Ihre Maschine eine andere Architektur aufweist
und Sie unbedingt sofort etwas benötigen, schlagen
wir vor, dass Sie sich einmal NetBSD oder OpenBSD
ansehen.Unterstützt FreeBSD Symmetric-Multiproccessing
(SMP)?Ja, seit &os;-Version 5.2 wurde SMP bereits im
GENERIC-Kernel aktiviert.Dies sollte eigentlich auch für &os; 5.3
gelten. Allerdings traten bei der Entwicklung des Kernels
auf einigen Rechnern Probleme auf. Daher entschloss man
sich, SMP in der Voreinstellung zu deaktivieren, bis diese
Probleme behoben sind. Dies ist eine der vordringlichen
Aufgaben für &os; 5.4.Unter &os; 4.X ist SMP im Standardkernel nicht
aktiviert. Sie müssen daher einen neuen Kernel
mit SMP-Unterstützung bauen. Die dazu nötigen
Optionen entnehmen Sie bitte der Datei
/sys/i386/conf/LINT.Festplatten, Bandlaufwerke, sowie CD- und DVD-LaufwerkeWelche Arten von Festplatten werden von FreeBSD
unterstützt?FreeBSD unterstützt EIDE- und SCSI-Laufwerke (mit
kompatiblen Controllern - siehe folgenden Abschnitt),
sowie alle Laufwerke, die die original Western
Digital-Schnittstelle (MFM, RLL, ESDI und
natürlich IDE) benutzen. Ein paar Controller mit
proprietären Schnittstellen könnten nicht
laufen: halten Sie sich an WD1002/3/6/7-Schnittstellen und
Clones.Welche SCSI-Controller werden
unterstützt?Sie finden eine vollständige und aktuelle Liste
in den Hardware-Informationen zu &os;
(&rel.current; oder
&rel2.current;).Welche Arten von Bandlaufwerken werden
unterstützt?FreeBSD unterstützt SCSI-, QIC-36- (mit
QIC-02-Schnittstelle) und QIC-40/80-Bandlaufwerke
(diskettenbasiert). Hierzu gehören auch 8-mm (aka
Exabyte) und DAT-Laufwerke. Die QIC-40/80-Laufwerke sind
bekanntlich sehr langsam.Einige der frühen 8-mm-Laufwerke sind nicht
besonders kompatibel zu SCSI-2 und könnten unter
FreeBSD nicht einwandfrei funktionieren.Unterstützt FreeBSD Bandwechsler?Das Gerät &man.ch.4; und das Kommando
chio unterstützen Bandwechsler.
Details zum Betrieb des Wechslers finden Sie in der
Hilfeseite &man.chio.1;.Falls Sie nicht AMANDA oder
ein anderes Produkt benutzen, das den Wechsler bereits
kennt, bedenken Sie, dass die Programme nur wissen,
wie sie ein Band von einem Punkt zu einem anderen bewegen
müssen. Sie selbst müssen sich also merken, in
welchem Einschub sich ein Band befindet und zu welchem
Einschub das Band, das sich gerade im Laufwerk befindet,
zurück muss.Welche CDROM-Laufwerke werden von FreeBSD
unterstützt?Jedes an einem unterstützten Controller
angeschlossene SCSI-Laufwerk wird
unterstützt.Die folgenden proprietären CDROM-Schnittstellen
werden ebenfalls unterstützt:Mitsumi LU002 (8bit), LU005 (16bit) und FX001D
(16bit 2x Speed).Sony CDU 31/33ASound Blaster Non-SCSI CDROMMatsushita/Panasonic CDROMATAPI compatible IDE CDROMsVon allen Nicht-SCSI-Laufwerken ist bekannt, dass
sie im Vergleich zu SCSI-Laufwerken extrem langsam sind.
Einige ATAPI-CDROMs könnten nicht
funktionieren.FreeBSD kann direkt von der offiziellen &os; CD-ROM,
sowie den CD-ROMs von Daemon News und &os; Mall,
gebootet werden.Welche CD-Brenner werden von FreeBSD
unterstützt?FreeBSD unterstützt alle ATAPI-kompatiblen IDE
CD-R und CD-RW Brenner. Lesen Sie dazu auch
&man.burncd.8;.FreeBSD unterstützt ebenfalls SCSI CD-R und CD-RW
Brenner. Installieren und benutzen Sie das Paket
cdrecord aus der Ports-Sammlung. Dazu
müssen Sie allerdings das Gerät
pass mit in Ihren Kernel
aufnehmen.Unterstützt FreeBSD &iomegazip;-Laufwerke?FreeBSD unterstützt alle
gängigen SCSI- und ATAPI-&iomegazip;-Laufwerke.
Ihr SCSI-ZIP-Laufwerk darf
nur mit den SCSI-Ziel-IDs 5 oder 6 laufen, aber Sie
können sogar davon booten, falls das BIOS Ihres
Hostadapters dies unterstützt. Es ist nicht bekannt,
welche Hostadapter das Booten von anderen Zielen als 0
oder 1 erlauben; daher werden Sie in ihren
Handbüchern nachsehen müssen, wenn Sie dieses
Merkmal benutzen möchten.FreeBSD unterstützt ZIP-Laufwerke, die an der
parallelen Schnittstelle angeschlossen sind. Der Kernel
sollte die folgenden Treiber enthalten:
scbus0,
da0,
ppbus0 und
vp0 (der GENERIC-Kernel
enthält alle, außer
vp0). Wenn diese Treiber
vorhanden sind, sollte das Laufwerk an der parallelen
Schnittstelle als /dev/da0s4
verfügbar sein. Zip-Datenträger können mit
mount /dev/da0s4 /mnt ODER
(DOS-formatierte) mount_msdos /dev/da0s4
/mnt gemountet werden.Lesen Sie auch den
FAQ-Eintrag zu Wechseldatenträgern und die Anmerkungen zum Thema
Formatierung im Kapitel
Administration.Unterstützt FreeBSD &jaz;, EZ und andere
Wechsellaufwerke?Ja. Bei den meisten dieser Geräte handelt es sich
um SCSI-Geräte, die von FreeBSD auch als solche
angesprochen werden. Lediglich das IDE-EZ-Laufwerk wird
als IDE-Laufwerk angesprochen.Schalten Sie die Laufwerke ein, bevor Sie Ihr
System booten.Müssen Sie Medien im
laufenden Betrieb wechseln, sollten Sie zuvor &man.mount.8;,
&man.umount.8;, sowie &man.camcontrol.8; (für
SCSI-Laufwerke) oder &man.atacontrol.8; (für
IDE-Laufwerke), sowie den Abschnitt zur Nutzung von Wechsellaufwerken
dieser FAQ lesen.Tastaturen und MäuseUnterstützt FreeBSD meine Tastatur mit
USB-Anschluss?Ja. FreeBSD unterstützt USB-Tastaturen, wenn
Sie die USB-Unterstützung
in /etc/rc.conf aktivieren.Wenn Sie die Unterstützung für USB-Tastaturen
konfiguriert haben, ist die AT-Tastatur
als /dev/kbd0 und die USB-Tastatur
als /dev/kbd1 verfügbar. Dies
gilt natürlich nur, wenn beide Tastaturen
angeschlossen sind; falls nur die USB-Tastatur
angeschlossen ist, ist diese als
/dev/ukbd0 verfügbar.Wenn Sie die USB-Tastatur an der Systemkonsole
benutzen wollen, müssen Sie dies dem System explizit
mitteilen. Dazu muss das folgende Kommando
während des Systemstarts ausgeführt
werden:&prompt.root; kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/nullWenn Sie nur die USB-Tastatur angeschlossen haben, ist
diese als /dev/kbd0 verfügbar;
daher muss in diesem Fall das folgende Kommando
benutzt werden:&prompt.root; kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/nullTragen Sie dieses Kommando in Datei
/etc/rc.i386 ein.Sobald Sie diese Schritte durchgeführt haben,
sollte die USB-Tastatur ohne weitere Änderungen auch
unter X benutzbar sei.Zurzeit kann es noch Probleme geben, wenn Sie eine
USB-Tastatur im laufenden Betrieb einstecken oder
abziehen. Um Probleme zu vermeiden, sollten Sie die
Tastatur anschließen, bevor Sie das System
anschalten und die Tastatur nicht abziehen, solange das
System noch läuft.Weitere Informationen erhalten Sie in
&man.ukbd.4;.Ich habe eine unübliche Busmaus. Wie muss
ich sie konfigurieren?FreeBSD unterstützt die Busmaus und
InPort-Busmaus von Herstellern wie Microsoft, Logitech und
ATI. Der Gerätetreiber ist im GENERIC-Kernel
allerdings nicht eingebunden. Wenn Sie den
Bus-Gerätetreiber benötigen, müssen Sie daher
einen angepassten Kernel erstellen. Dazu fügen Sie die
folgende Zeile in Ihre Kernelkonfigurationsdatei ein:device mse0 at isa? port 0x23c irq5Die Busmaus wird üblicherweise zusammen mit einer
speziellen Karte ausgeliefert. Sie könnte es Ihnen
ermöglichen, andere Werte für die Port-Adresse
und den Interrupt zu setzen. Weitere Informationen finden
Sie in Handbuch zu Ihrer Maus und in der &man.mse.4;
Manualpage.Wie benutze ich meine PS/2 (Mouse-Port
oder Tastatur)-Maus?PS/2 Mäuse werden von FreeBSD unterstützt.
Der notwendige Gerätetreiber,
psm, ist bereits im
GENERIC-Kernel enthalten.Wenn Sie einen angepassten Kernel ohne diesen Treiber
benutzen, müssen Sie folgende Zeile in Ihre
Kernelkonfigurationsdatei einfügen und den Kernel neu
kompilieren:device psm0 at atkbdc? irq 12Wenn der Kernel das Gerät
psm0 beim Booten korrekt erkennt,
stellen Sie sicher, dass sich im Verzeichnis
/dev ein Eintrag für
psm0 befindet. Durch die Eingabe von&prompt.root; cd /dev; sh MAKEDEV psm0können Sie diesen Eintrag auch selbst erstellen.
Dazu müssen Sie allerdings als
root angemeldet sind.Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Kann man die Maus irgendwie außerhalb des X
Window Systems benutzen?Falls Sie den normalen Konsoltreiber &man.syscons.4; benutzen,
können Sie den Mauszeiger auf Textkonsolen zum
Kopieren und Einfügen von Text verwenden. Starten
Sie den Mausdämon &man.moused.8; und schalten Sie den
Mauszeiger auf der virtuellen Konsole ein:&prompt.root; moused -p /dev/xxxx -t yyyy
&prompt.root; vidcontrol -m onxxxx ist der
Gerätename der Maus und
yyyy ist das Protokoll.
Der Mausdämon erkennt die Protokolle der meisten
Mäuse (mit Ausnahme alter serieller Mäuse)
automatisch, wenn Sie auto für
das Protokoll angeben. Falls das Protokoll nicht
automatisch erkannt wird, finden Sie die
unterstützten Protokolle in der
&man.moused.8; Manualpage.Wenn Sie eine PS/2-Maus besitzen und diese beim
Systemstart aktivieren wollen, tragen Sie die Zeile
moused_enable="YES" in die Datei
/etc/rc.conf ein. Falls Sie den
Mausdämon auf allen virtuellen Bildschirmen anstatt
nur auf der Konsole benutzen wollen, tragen Sie außerdem
allscreens_flags="-m on" in
/etc/rc.conf ein.Während der Mausdämon läuft, muss
der Zugriff auf die Maus zwischen dem Mausdämon und
anderen Programmen, wie X Windows, koordiniert werden.
Die FAQ Warum funktioniert meine
meine Maus unter X nicht? enthält weitere
Details.Wie funktioniert das Kopieren und Einfügen von
Text mit der Maus auf einer Textkonsole?Wenn Sie es geschafft haben, den Mausdämon zu
starten (wie im vorherigen
Abschnitt gezeigt), halten Sie die linke Maustaste
gedrückt und bewegen Sie die Maus, um einen
Textabschnitt zu markieren. Dann drücken Sie die
mittlere Maustaste, um den Text an der
Cursorposition einzufügen.Wenn Sie keine 3-Tasten-Maus besitzen, können
Sie die mittlere Maustaste mit einer Tastenkombination
emulieren oder die Funktion der mittleren Taste auf
eine andere Taste legen. Einzelheiten dazu enthält
die Hilfeseite &man.moused.8;.Meine Maus hat ein neumodisches Rad und mehr
Knöpfe. Kann ich sie in FreeBSD benutzen?Unglücklicherweise lautet die Antwort:
Vielleicht. Solche Mäuse mit
zusätzlichen Extras erfordern in den meisten
Fällen spezielle Treiber. Wenn der
Gerätetreiber für die Maus oder das
Anwendungsprogramm keine spezielle Unterstützung
für die Maus bietet, wird sie sich wie eine
gewöhnliche Maus mit zwei oder drei Knöpfen
verhalten.Ob und wie Sie das Rad unter X benutzen können,
können Sie im passenden
Abschnitt der FAQ erfahren.Wie benutze ich Maus/Trackball/Touchpad auf meinem
Laptop?Bitte lesen Sie die Antwort
zur vorherigen Frage.Netzkarten und serielle GeräteWelche Netzwerkkarten unterstützt
FreeBSD?In den Hardware Informationen zu jedem FreeBSD Release
werden die unterstützten Karten aufgezählt.Wieso erkennt FreeBSD mein internes Plug &
Play-Modem nicht?Sie werden die PnP-ID Ihres Modems in die PnP-ID-Liste
des seriellen Treibers aufnehmen müssen. Erstellen
Sie einen neuen Kernel mit dem Eintrag controller
pnp0 in der Konfigurationsdatei und rebooten Sie
Ihr System, um die Plug & Play-Unterstützung zu
aktivieren. Der Kernel wird nun alle PnP-IDs der
gefundenen Geräte ausgeben. In der Datei
/sys/i386/isa/sio.c finden Sie ab
Zeile 2777 (ca.) eine Tabelle, in der Sie die PnP-ID des
Modems eintragen müssen. Suchen Sie die Zeichenfolge
SUP1310 in der Struktur
siopnp_ids[], um die Tabelle zu finden.
Erstellen Sie den Kernel nochmals, installieren Sie ihn,
rebooten Sie, und Ihr Modem sollte erkannt werden.Möglicherweise müssen Sie in der
boot-time-Konfiguration die PnP-Geräte manuell mit
einem pnp-Befehl ähnlichpnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8konfigurieren, damit das Modem erkannt wird.Unterstützt FreeBSD Software Modems, wie die
Winmodems?FreeBSD unterstützt viele Software-Modems, wenn
Sie zusätzliche Software installieren. Der Port
comms/ltmdm bietet
Unterstützung für Modems, die auf dem oft
verwendeten Lucent LT Chipsatz basieren. Der Port
comms/mwavem
bietet Unterstützung für die Modems im IBM
Thinkpad 600 und 700.Sie können FreeBSD nicht über ein
Software-Modem installieren, diese Software kann nur
installiert werden, nachdem das Betriebssystem installiert
wurde.Gibt es einen FreeBSD-Treiber für die Karten der
Serie 43xx von Broadcom?Nein, und es wird wohl auch nie einen geben.Broadcom weigert sich, Informationen zu ihren drahtlosen
Chipsätzen zu veröffentlichen. Wahrscheinlich
liegt dies daran, dass Broadcom auch softwaregesteuerte
Radios herstellt. Damit ihre Produkte von der FCC
zugelassen werden, muss sichergestellt sein, dass Benutzer
nicht in der Lage sind, Betriebsfrequenzen,
Modulationsparameter, Ausgangsleistung und andere Werte
nach Belieben einzustellen. Ohne solche Informationen ist
es aber nahezu unmöglich, einen Treiber zu
programmieren.Welche seriellen Multi-Port-Karten werden von FreeBSD
unterstützt?Es existiert eine Liste der unterstützten Karten
im Abschnitt Verschiedene
Geräte des Handbuchs.Von einigen nicht NoName-Nachbauten ist ebenfalls
bekannt, dass sie funktionieren, speziell von den
AST-kompatiblen.In &man.sio.4; finden Sie weitere Informationen zur
Konfiguration solcher Karten.Wie kann ich den boot:-Prompt auf einer seriellen
Konsole erscheinen lassen?Erstellen Sie einen Kernel mit options
COMCONSOLE.Erstellen Sie /boot.config mit
als einzigem Text in der Datei.Ziehen Sie das Tastaturkabel aus dem
Rechner.Lesen Sie
/usr/src/sys/i386/boot/biosboot/README.serial
zur Information.SoundkartenWelche Soundkarten werden von FreeBSD
unterstützt?&os; unterstützt verschiedene Soundkarten wie
&soundblaster;, &soundblaster; Pro, &soundblaster; 16,
Pro Audio Spectrum 16, AdLib und Gravis UltraSound.
Lesen Sie die
&os; Release Informationen sowie &man.snd.4;,
wenn Sie genauere Informationen benötigen. MPU-401
und kompatible MIDI-Karten werden begrenzt unterstützt.
Ebenso unterstützt werden Karten, die der µsoft;
Sound System-Spezifikation entsprechen.Das gilt nur für Sound! Dieser Treiber
unterstützt keine CDROMs, SCSI oder Joysticks auf
diesen Karten, außer der &soundblaster;. Die
&soundblaster;-SCSI-Schnittstelle und einige
Nicht-SCSI-CDROMs werden unterstützt, Sie
können von diesen Geräten aber nicht
booten.Abhilfen für fehlenden Sound bei Verwendung des
&man.pcm.4;-Treibers?Einige Soundkarten, darunter solche mit es1370-Chip,
setzen die Lautstärke bei jedem Systemstart auf 0.
In diesem Fall müssen Sie nach jedem Bootvorgang
den folgenden Befehl ausführen:&prompt.root; mixer pcm 100 vol 100 cd 100Sonstige HardwareWelche Geräte werden noch von FreeBSD
unterstützt?Im Handbuch
finden Sie eine Liste von anderen unterstützten
Geräten.Unterstützt FreeBSD Power-Management auf meinem
Laptop?FreeBSD 4.X unterstützt APM
auf einigen Systemen. Lesen Sie dazu auch &man.apm.4;.FreeBSD 5.X und neuer unterstützen einen
Großteil der ACPI-Funktionen
moderner Hardware. Lesen Sie dazu auch &man.acpi.4;.
Unterstützt Ihr System sowohl APM
als auch ACPI, können Sie beide
Systeme testen und sich für das System entscheiden,
das Ihren Anforderungen am besten entspricht.Wie kann ich ACPI deaktivieren?Fügen Sie die Zeile
hint.acpi.0.disabled="1" in die Datei
/boot/device.hints ein.Wieso hängt sich mein Micron-System beim Booten
auf?Einige Micron Motherboards besitzen eine
nicht-konforme PCI-BIOS-Implementierung. Sie bereitet
Kummer, wenn FreeBSD bootet, weil PCI-Geräte nicht an
der angegebenen Adresse konfiguriert werden.Deaktivieren Sie Plug and Play Operating
System im BIOS, um dieses Problem zu beheben.Wenn ich ein System mit einem ASUS K7V Mainboard von
der Bootdiskette starte, hängt sich das System auf.
Wie kann ich dieses Problem lösen?Schalten Sie im BIOS die Option boot virus
protection aus.Warum arbeitet meine &tm.3com; PCI-Netzwerkkarte in meinem
Micron-Computer nicht?Einige Micron Motherboards besitzen eine
nicht-konforme PCI-BIOS-Implementierung, die die
PCI-Geräte nicht an den angegebenen Adressen
konfiguriert. Hierdurch entstehen Probleme, wenn FreeBSD
bootet.Deaktivieren Sie die Option Plug and Play
Operating System im BIOS, um das Problem zu
umgehen.Meine PCMCIA-Karte funktioniert nicht und ich erhalte
die Meldung:
cbb0: unsupported card type detected.. Was
kann ich tun?Sie können die ursprüngliche
OLDCARD-Implementierung verwenden. Dazu entfernen Sie die
folgenden Zeilen aus Ihrer Kernelkonfigurationsdatei:device cbb
device pccard
device cardbusDanach fügen Sie die folgenden Zeilen ein:device pcic
device card 1Um die Änderungen zu aktivieren, müssen Sie
den neuen Kernel noch wie im Abschnitt
Konfiguration des FreeBSD-Kernels des Handbuchs
beschrieben bauen und installieren.FehlerbehebungWas sollte ich tun, wenn auf meiner Festplatte
fehlerhafte Blöcke sind?SCSI-Laufwerke sollten in der Lage sein, diese
automatisch zu verlagern. Bei einigen Laufwerken ist
diese Eigenschaft jedoch aus unerfindlichen Gründen
bei der Auslieferung ausgeschaltet...Um sie einzuschalten, müssen Sie den Page-Mode
des ersten Gerätes editieren. Unter FreeBSD
können Sie das (als root) mit
folgendem Befehl tun&prompt.root; camcontrol modepage sd0 -m 1 -e -P 3und die Werte für AWRE und ARRE von 0 auf 1
ändern:-
AWRE (Auto Write Reallocation Enbld): 1
ARRE (Auto Read Reallocation Enbld): 1
Moderne IDE-Controller sind in der Lage, fehlerhafte
Blöcke automatisch zu verlagern. Diese Funktionen
sind bereits ab Werk aktiviert.Werden dennoch fehlerhafte Blöcke gemeldet (egal
auf welchem Laufwerk), sollten Sie über den Kauf einer
neuen Platte nachdenken. Zwar könnte es Ihnen mit
Diagnoseprogrammen des Plattenherstellers gelingen, diese
fehlerhaften Blöcke zu sperren. Allerdings können
Sie damit den endgültigen Ausfall der Platte bestenfalls
hinauszögern.Wieso wird der SCSI-Controller meines HP Netserver nicht
erkannt?Hierbei handelt es sich um ein bekanntes Problem. Der
auf dem Board befindliche EISA-SCSI-Controller auf dem HP
Netserver belegt die EISA-Slotnummer 11, wodurch sich alle
wirklichen EISA-Slots vor ihm befinden.
Leider kollidiert der Adressraum von EISA-Slots
>=10 mit dem Adressraum, der PCI zugeordnet ist und
die Autokonfiguration von FreeBSD kann mit dieser
Situation derzeit nicht besonders gut umgehen.Die einfachste Alternative ist, diese Kollision
einfach zu leugnen. Setzen Sie dazu die Kerneloption
EISA_SLOTS auf den Wert 12.
Konfigurieren und kompilieren Sie den Kernel, wie im
Handbucheintrag
zur Kernelkonfiguration beschrieben.Dies bringt Ihnen natürlich das klassische
Huhn-Ei-Problem, wenn Sie auf einer solchen Maschine
installieren wollen. Um dieses Problem zu umgehen,
existiert ein spezieller Hack in
UserConfig. Benutzen Sie nicht die
visuelle Schnittstelle, sondern die rohe
Kommandozeilenschnittstelle. Geben Sie einfach
eisa 12
quit
am Prompt ein und Sie können Ihr System ganz
normal installieren. Sie sollten auf jeden Fall einen
angepassten Kernel zu kompilieren und
installieren.Zukünftige Versionen werden hoffentlich eine
passende Lösung für dieses Problem
beinhalten.Sie können keine dangerously
dedicated Platte auf einem HP Netserver
verwenden. Lesen Sie weitere Informationen finden Sie
in diesem
Hinweis.Was bedeuten die ständigen Meldungen ed1:
timeout?Dies wird meistens durch einen Interruptkonflikt
verursacht (z.B., wenn zwei Karten den selben Interrupt
benutzen). Booten Sie mit der Option -c und ändern
Sie die Einträge zu ed0/de0/... Ihrem Board
entsprechend.Wenn Sie den BNC-Anschluss Ihrer Netzwerkkarte
benutzen, könnte es auch sein, dass es sich
Geräte-Timeouts aufgrund fehlerhafter Terminierung
handelt. Um dies zu überprüfen, verbinden Sie
einen Terminator direkt mit der Netzwerkkarte (ohne Kabel)
und beobachten Sie, ob die Fehlermeldungen
verschwinden.Einige NE2000 kompatible Karten melden diesen Fehler,
wenn keine Verbindung am UTP-Eingang existiert oder wenn
das Kabel nicht eingesteckt ist.Warum funktioniert meine &tm.3com; 3C509 plötzlich
nicht mehr?Diese Karte ist dafür berüchtigt, ihre
Konfiguration zu vergessen. Sie müssen die Karte mit
dem DOS-Programm 3c5x9.exe neu
konfigurieren.Mein an der parallel Schnittstelle angeschlossener
Drucker ist unglaublich langsam. Was kann ich
tun?Falls das einzige Problem ist, dass er
schrecklich langsam ist, dann sollte Sie versuchen, die
Kommunikationseinstellungen der parallelen Schnittstellen
zu ändern, wie es im Kapitel Drucken
des Handbuchs beschrieben ist.Wieso brechen meine Programme gelegentlich mit
Signal 11-Fehlern ab?Das Signal 11 wird generiert, wenn ein Prozess
versucht, auf Speicher zuzugreifen, obwohl er vom
Betriebssystem dazu nicht befugt wurde. Wenn Ihnen das
scheinbar zufällig immer wieder passiert, sollten Sie
der Sache einmal auf der Grund gehen.Das Problem hat in der Regel eine der folgenden
Ursachen:Wenn das Problem nur in einer bestimmten
Anwendung auftritt, die Sie selbst entwickeln, dann
ist es wahrscheinlich ein Fehler in Ihren
Sourcen.Wenn das Problem in einem Teil von FreeBSD
auftritt, könnte es natürlich auch ein
Fehler sein; aber in den meisten
Fällen werden diese Probleme gefunden und behoben,
bevor die typischen Leser der FAQ (wir) diese Teile
der Sourcen benutzen können (dafür gibt es
schließlich -CURRENT).Wenn der Fehler auftritt, wenn Sie ein Programm
compilieren aber dabei immer wieder an anderer Stelle
auftritt, dann ist das ein ganz eindeutiger Hinweis,
dass das Problem nicht bei
FreeBSD liegt.Nehmen wir zum Beispiel an, dass Sie make
buildworld ausführen und die Compilierung von
ls.c in ls.o
abbricht. Wenn Sie nochmal "make buildworld"
durchführen und die Compilierung an der gleichen
Stelle abbricht, handelt es sich um einen Fehler in den
Sourcen. Aktualisieren Sie Ihre Sourcen und versuchen Sie
es noch einmal. Wenn der Fehler jedoch an einer anderen
Stelle auftritt, liegt das Problem mit an Sicherheit
grenzender Wahrscheinlichkeit bei Ihrer Hardware.Was Sie tun sollten:Im ersten Fall können Sie einen Debugger wie z.B.
gdb benutzen, um die Stelle im Programm zu finden, an der
auf eine falsche Adresse zugegriffen wird und danach den
Fehler beheben.Im zweiten Fall müssen Sie sicherstellen,
dass das Problem nicht von Ihrer Hardware verursacht
wird.Typische Ursachen dafür sind unter
anderem:Es könnte sein, dass Ihren Festplatten
zu warm werden: Überprüfen Sie, ob die
Lüfter in Ihrem Gehäuse noch funktionieren,
damit Ihre Festplatten (und andere Hardware) nicht
heißlaufen.Der Prozessor überhitzt, weil Sie Ihn
übertaktet haben oder der CPU-Kühler
ausgefallen ist. Sie müssen sicherstellen,
dass Sie Ihre Hardware unter den Bedingungen
betreiben, für die sie spezifiziert ist,
zumindestens während Sie versuchen, das Problem
zu lösen. Mit anderen Worten: Betreiben Sie
Ihre CPU mit der normalen Taktfrequenz.Wenn Sie übertakten, sollten Sie daran
denken, dass ein langsames System deutlich
billiger ist als ein defektes System. Die große
Masse hat nicht sehr häufig Mitgefühl mit
Problemen bei übertakteten System, auch wenn Sie
es für ungefährlich halten.Unzuverlässiger Speicher: Wenn Sie mehr als
ein SIMM/DIMM installiert haben, sollten Sie sie alle
ausbauen und die Maschine testweise mit jedem SIMM
oder DIMM einzeln betreiben. So können Sie
feststellen, ob die Ursache ein einzelnes SIMM/DIMM
oder auch eine Kombination von Modulen ist.Zu optimistische Einstellung des Mainboards: In
Ihrem BIOS und mit den Jumpern auf dem Mainboard
können Sie diverse Timings ändern. In den
meisten Fällen reichen die Defaults aus, aber
manchmal kann es durch zu wenig wait states, die
Einstellung RAM Speed: Turbo oder
ähnliches zu merkwürdigen Problemen kommen.
Ein möglicher Ansatz ist, die BIOS defaults zu
laden, allerdings könnte es sinnvoll sein, die
aktuellen Einstellungen vorher zu notieren.Schlechte oder fehlerhafte Stromversorgung des
Mainboards: Wenn Sie unbenutzte Steckkarten, Platten
oder CDROMs in Ihrem System haben, sollten Sie sie
testweise ausbauen oder die Stromversorgung abziehen.
Dadurch können Sie prüfen, ob Ihr Netzteil
eventuell mit einer geringeren Last besser
zurechtkommt. Sie können auch testweise ein
anderes, am besten ein leistungsfähigeres,
Netzteil ausprobieren. Wenn Sie zurzeit ein
250W-Netzteil benutzen, sollten Sie testweise ein
300W-Netzteil einbauen.Die sollten ebenfalls die SIG11 FAQ (unten
aufgeführt) lesen, da sie gute Erklärungen
für alle diese Probleme enthält (allerdings aus
&linux;-Sicht). Sie erklärt ebenfalls, warum sowohl
Programme als auch Geräte zur Speicherprüfung
fehlerhaften Speicher teilweise nicht erkennen.Wenn alle diese Schritte nicht helfen, ist es
möglich, dass Sie einen Fehler in FreeBSD
gefunden haben. Folgen Sie einfach den Anweisungen
für die Erstellung eines Problem Reports.Es existiert eine ausführliche FAQ hierzu unter
der
SIG11-Problem-FAQMein System stürzt mit der Meldung
Fatal trap 12: page fault in kernel
mode oder panic: ab und
gibt eine Menge zusätzlicher Informationen aus. Was
kann ich tun?Die Entwickler von FreeBSD interessieren sich für
solchen Meldungen, allerdings brauchen Sie deutlich mehr
Informationen als die, die Ihnen angezeigt werden.
Kopieren Sie die komplette Meldungen und lesen Sie nun den
FAQ-Eintrag über kernel panics.
Erzeugen sie einen Kernel mit den zusätzlichen Daten
zur Fehlersuche, und dann einen backtrace. Das hört
sich komplizierter an, als es ist. Sie brauchen keine
Programmier-Erfahrung, Sie müssen einfach nur den
Anweisungen folgen.Wieso wird beim Booten der Bildschirm schwarz und reagiert
nicht mehr?Dies ist ein bekanntes Problem mit der ATI Mach 64
Videokarte. Das Problem besteht darin, dass diese
Karte die Adresse 2e8 benutzt und die
vierte serielle Schnittstelle ebenfalls. Aufgrund eines
Fehlers (einer Besonderheit?) im &man.sio.4;-Treiber wird
diese Schnittstelle angesprochen, auch wenn Sie gar keine
vierte serielle Schnittstelle besitzen und
sogar, wenn sie sio3 (die vierte
Schnittstelle), die normalerweise diese Adresse verwendet,
deaktivieren.Bis der Fehler behoben ist, können Sie folgende
Abhilfe verwenden:Geben Sie am Bootprompt ein.
(Dies bringt den Kernel in den
Konfigurationsmodus).Deaktivieren Sie sio0,
sio1,
sio2 und
sio3 (alle). Auf diese Weise
wird der sio-Treiber nicht aktiviert und das Problem
tritt nicht mehr auf.Geben Sie exit ein, um den Bootvorgang
fortzusetzen.Falls sie in der Lage sein wollen Ihre seriellen
Schnittstellen zu benutzen, müssen Sie einen neuen
Kernel mit folgenden Modifikationen erstellen: suchen Sie
in /usr/src/sys/i386/isa/sio.c nach
der Zeichenkette 0x2e8 und löschen
Sie sie und das vorhergehende Komma (nicht das folgende
Komma). Nun folgen Sie der normalen Prozedur zur
Erstellung eines neuen Kernels.Auch nach Anwendung dieser Maßnahmen könnte
es sein, dass Ihr X Windows-System nicht einwandfrei
funktioniert. Wenn dies der Fall ist, stellen Sie sicher,
dass es sich bei der von Ihnen benutzten
X Windows-Version mindestens um &xfree86; 3.3.3 oder
höher handelt. Diese Version und höhere
besitzen eine integrierte Unterstützung für
Mach64-Karten und sogar einen dedizierten X-Server
für sie.Wieso verwendet FreeBSD nur 64 MB Hauptspeicher,
obwohl in meinem Rechner 128 MB sind?Aufgrund der Art und Weise, wie FreeBSD die
Hauptspeichergröße vom BIOS mitgeteilt bekommt,
kann es lediglich 16-Bit Werte in kByte-Größe
(65535 kByte = 64MB) erkennen (oder weniger... einige
BIOSe setzen die Hauptspeichergröße auf 16MB).
Falls Sie mehr als 64MB besitzen, wird FreeBSD versuchen,
das zu erkennen, was aber nicht immer
funktioniert.Um dieses Problem zu umgehen, müssen Sie die
untenstehende Kerneloption verwenden. Es gibt einen Weg,
vollständige Hauptspeicherinformationen vom BIOS zu
erhalten, aber in den Bootblöcken ist nicht
genügend Platz dafür vorhanden. Wenn der
Platzmangel in den Bootblöcken eins Tages behoben
ist, werden wir die erweiterten BIOS-Funktionen dazu
nutzen, die vollständigen Hauptspeicherinformationen
zu erhalten... aber zurzeit sind wir auf die Kerneloption
angewiesen.options
"MAXMEM=n"Hierbei ist n Ihre
Hauptspeichergröße in Kilobyte. Bei einer 128
MB-Maschine müßten Sie
131072 benutzen.Ich habe mehr als 1 GB RAM. Trotzdem stürzt
mein System mit der Meldung kmem_map too small
ab. Was läuft hier schief?Im Normalfall bestimmt FreeBSD einige Kernelparameter,
darunter die maximale Anzahl der Dateien, die gleichzeitig
geöffnet sein können, aus der Größe
des im System installierten Hauptspeichers. Auf Systemen
mit mindestens 1 GB Hauptspeicher kann dieser
auto sizing-Mechanismus diese Werte
fälschlicherweise zu hoch ansetzen: Beim Systemstart
fordert der Kernel dann verschiedene Tabellen und andere
Strukturen an, die den Großteil des verfügbaren
Kernelspeichers verbrauchen. Dies führt dazu, dass
der Kernel während des Betriebs keine dynamischen
Speicheranforderungen mehr ausführen kann und mit
einer Kernelpanik abstürzt.Bauen Sie in diesem Fall Ihren eigenen Kernel. Dazu
setzen Sie
in Ihrer Kernelkonfigurationsdatei auf 400 MB
().
400 MB sollten für Maschinen bis 6 GB
Hauptspeicher ausreichend sein.Ich habe weniger als 1 GB Hauptspeicher. Dennoch
stürzt mein System mit der Meldung
kmem_map too small! ab?Diese Meldung zeigt an, dass der virtuelle
Speicher für Netzwerkpuffer (spezieller mbuf-Cluster)
aufgebraucht ist. Sie können die für mbuf
verfügbare Größe an VM erhöhen, indem
Sie den Anweisungen des Abschnitts
Netzwerk-Limits des Handbuchs folgen.Wieso erhalte ich die Meldung /kernel:
proc: table is full?Der FreeBSD-Kernel beschränkt die Anzahl der
gleichzeitig laufenden Prozesse. Die Anzahl errechnet
sich aus dem Wert der Variablen
MAXUSERS in der Konfigurationsdatei des
Kernels. Auch andere Einstellungen wie die Anzahl der
Puffer für Netzwerkoperationen (Details dazu
finden Sie in diesem
Abschnitt). werden durch
MAXUSERS beeinflusst. Wenn Ihr
System stark belastet ist, sollten Sie den Wert von
MAXUSERS erhöhen. Dadurch werden
diverse Einstellung des Systems angepasst und die
maximale Anzahl gleichzeitig laufender Prozesse
erhöht.Um den Wert von MAXUSERS anzupassen,
folgen Sie den Anweisungen des Abschnitts
Datei- und Prozesslimits des Handbuchs. Dieser
Abschnitt spricht zwar nur von Dateien, für Prozesse
gelten aber die gleichen Beschränkungen.Wenn Ihr System nicht besonders stark ausgelastet ist
und Sie einfach nur mehr gleichzeitig laufende Prozesse
erlauben wollen, können Sie den Wert der Variable
kern.maxproc in der Datei
/boot/loader.conf anpassen. Um die
Änderung zu aktivieren, müssen Sie Ihr System
neu starten. Wollen Sie Ihr System zusätzlich
optimieren, sollten Sie &man.loader.conf.5; und
&man.sysctl.conf.5; lesen.
Wenn diese Prozesse von einem einzigen Benutzer
ausgeführt werden, müssen Sie den Wert von
kern.maxprocperuid ebenfalls
erhöhen. Dieser Wert muss immer mindestens um
eins geringer sein als der Wert von
kern.maxproc value. (Der Grund
für diese Einschränkung ist, dass ein
Systemprogramm, &man.init.8;, immer ausgeführt werden
muss.)Damit Änderungen einer sysctl-Variable dauerhaft
erhalten bleiben, nehmen Sie diese in
/etc/sysctl.conf auf. Weitere
Informationen zur Optimierung Ihres Systems finden Sie im
Abschnitt
Einstellungen mit sysctl des Handbuchs.Wieso erhalte ich die Meldung CMAP busy
panic, wenn ich mein System mit einem neuen
Kernel starte?Die Logik, die versucht, veraltete
/var/db/kvm_*.db-Dateien zu erkennen,
versagt manchmal und die Benutzung einer unpassenden Datei
kann zu Paniksituationen führen.Falls das passiert, rebooten Sie im Single-User-Modus
und löschen Sie die Dateien:&prompt.root; rm /var/db/kvm_*.dbWas soll mir die Meldung ahc0: brkadrint,
Illegal Host Access at seqaddr 0x0
sagen?Dies ist ein Konflikt mit einem Ultrastor SCSI
Hostadapter.Rufen Sie während des Bootprozesses das
Kernelkonfigurationsmenü auf und deaktivieren Sie
uha0, welches das Problem
verursacht.Wenn ich mein System starte, erhalte ich die Meldung
ahc0: illegal cable configuration,
obwohl die Verkabelung korrekt ist. Woran liegt
das?Auf Ihrem Mainboard fehlen ein paar Logikbausteinen,
die für die Unterstützung der automatischen
Terminierung notwendig sind. Stellen Sie in Ihrem
SCSI-BIOS manuell die korrekte Terminierung für Ihr
System ein, anstatt sich auf die automatische Terminierung
zu verlassen. Der Treiber für den AIC7XXX kann nicht
erkennen, ob die externen Logikbausteine für die
Erkennung der Kabel (und damit automatische Terminierung)
vorhanden sind. Der Treiber muss sich darauf
verlassen, dass diese vorhanden sind, wenn in der
Konfiguration automatische Terminierung
eingestellt ist. Ohne die externen Bausteine ist es sehr
wahrscheinlich, dass der Treiber die Terminierung
falsch einstellt, was die Zuverlässigkeit des
SCSI-Busses herabsetzen kann.Wieso meldet Sendmail mail loops back to
myself?Dies wird in der Sendmail-FAQ wie folgt
beantwortet:- * Ich erhalte "Local configuration error" Meldungen, wie:
553 relay.domain.net config error: mail loops back to myself
554 <user@domain.net>... Local configuration error
Wie kann ich dieses Problem lösen?
Sie haben durch die Benutzung einer MX-Zeile eingestellt, dass
Mail für die Domäne (z.B. domain.net) an einen speziellen
Host (in diesem Fall relay.domain.net) weitergeleitet wird,
aber der Relay-Host erkennt sich selbst nicht als
domain.net. Fügen Sie domain.net in /etc/mail/local-host-names
(falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net"
in /etc/mail/sendmail.cf ein.
Die aktuelle Version der Sendmail-FAQ
wird nicht mehr mit dem Sendmail-Release verwaltet. Sie
wird jedoch regelmäßig nach comp.mail.sendmail,
comp.mail.misc,
comp.mail.smail,
comp.answers und
news.answers
gepostet. Sie können auch eine Kopie per E-Mail
bekommen, indem Sie eine Mail mit dem Inhalt send
usenet/news.answers/mail/sendmail-faq an
mail-server@rtfm.mit.edu schicken.Wieso funktionieren bildschirmorientierte Anwendungen beim
Zugriff über ein Netzwerk nicht richtig?Die entfernte Maschine scheint den Terminaltyp auf
etwas anderes als den Typ cons25, der
von FreeBSD verlangt wird, zu setzen.Es gibt mehrere mögliche Abhilfen für dieses
Problem:Setzen Sie die Shell-Variable TERM nach dem
Einloggen auf der entfernten Maschine auf
ansi oder sco,
sofern die entfernte Maschine diese Terminaltypen
kennt.Benutzen Sie einen VT100-Emulator wie
screen auf der
FreeBSD-Console. screen
bietet Ihnen die Möglichkeit, mehrere
gleichzeitige Sitzungen von einem Bildschirm aus
laufen zu lassen. Es ist ein sehr nettes Programm.
Jedes screen-Fenster
verhält sich, wie ein VT100-Terminal, weshalb die
Variable TERM am entfernten Ende auf
vt100 gesetzt werden
sollte.Installieren Sie den Eintrag
cons25 in der Bildschirmdatenbank
der entfernten Maschine. Wie das zu geschehen hat,
hängt vom Betriebssystem der entfernten Maschine
ab. Das Systemadministrationshandbuch für das
entfernte System sollte Ihnen hierbei helfen
können.Starten Sie einen X-Server auf der FreeBSD-Seite
und benutzen Sie einen X-basierten Terminalemulator
wie xterm oder
rxvt, um sich auf der entfernten
Maschine einzuloggen. Die Variable TERM auf dem
entfernten Host sollte auf xterm
oder vt100 gesetzt werden.Wieso meldet mein Rechner calcru: negative
time...?Dies kann durch verschiedene Hardware- oder
Softwareprobleme in Verbindung mit Interrupts verursacht
werden. Das kann aufgrund von Fehlern sein, aber es kann
auch durch die Eigenarten bestimmter Geräte
passieren. TCP/IP über die parallele Schnittstelle
mit einer großen MTU laufen zu lassen, ist ein
sicherer Weg, um dieses Problem hervorzurufen.
Grafikbeschleuniger können es auch verursachen. In
diesem Fall sollten Sie zunächst die
Interrupteinstellungen der Karte
überprüfen.Ein Seiteneffekt dieses Problems sind Prozesse, die
mit der Meldung SIGXCPU exceeded cpu time
limit abbrechen.Falls das Problem nicht anders gelöst werden
kann, besteht die Lösung darin, diese sysctl-Variable
zu setzen:&prompt.root; sysctl -w kern.timecounter.method=1Die Option von &man.sysctl.8;
sollte nicht mehr benutzt werden. Ab FreeBSD 4.4
wird die Option ignoriert. Sie können die Option
auch weglassen, wenn Sie mit sysctl
Variablen setzen.Das bedeutet zwar Performanceeinbußen, aber in
Anbetracht der Ursache für dieses Problem werden Sie
das wahrscheinlich nicht bemerken. Fall das Problem
weiter bestehen bleibt, lassen sie die sysctl-Variable auf
1 stehen und setzen Sie die Option
NTIMECOUNTER im Kernel auf immer
höhere Werte. Wenn Sie irgendwann
NTIMECOUNTER=20 erreicht haben sollten,
ist das Problem nicht gelöst. Die Interrupts auf
Ihrer Maschine sind für eine verlässliche
Zeiterhaltung nicht zu gebrauchen.Warum wird meine PnP-Karte nicht mehr (oder nur noch als
unknown) erkannt, seit ich FreeBSD 4.X
benutze?FreeBSD 4.X ist deutlich
PnP-orientierter und das führt
leider dazu, dass einige PnP-Geräte (wie z.B.
Soundkarten und interne Modems) nicht mehr funktionieren,
obwohl Sie von FreeBSD 3.X noch erkannt wurden.Die Gründe für dieses Verhalten werden in
der unten zitierten Mail von Mail von Peter Wemm
erklärt. Diese Mail stammt von der Mailingliste
freebsd-questions und war eine Antwort auf eine Frage
bezüglich eines internen Modem, das nach dem Update
auf FreeBSD 4.X nicht mehr erkannt wurde.Die mit [] gekennzeichneten Kommentare
wurden eingefügt, um an einigen Stellen die Bezüge
klarstellen.
Das PnP-BIOS hat es [das Modem] vorkonfiguriert und
es dann im Adressraum liegenlassen, daher haben es
die alten ISA-Erkennungsroutinen [in 3.X]
gefunden.In 4.0 sind die ISA-Routinen deutlich
PnP-orientierter. Es war möglich [in 3.X],
dass eine ISA-Erkennungsroutinen ein
zugelaufenes Gerät fand;
während die PnP-Treiber zwar die ID erkannten, das
Gerät aber wegen des Ressourcekonfliktes nicht
benutzen konnten. Daher werden die programmierbaren
Karten zunächst einmal abgeschaltet, um diese
doppelte Erkennung vermeiden zu können. Das
bedeutet allerdings auch, dass die Treiber die
PnP-ID kennen muss, um PnP-Hardware
unterstützen zu können. Wir haben uns
vorgenommen, den Benutzern eine einfachere
Möglichkeit zur Manipulation dieser Informationen
zur Verfügung zu stellen.
Damit Ihr Gerät wieder funktioniert, müssen
Sie seine PnP-ID herausfinden und die ID in die Listen
eintragen, die zur Erkennung von PnP-Geräten
genutzten werden. Zu diesem Zweck wird das Gerät mit
&man.pnpinfo.8; analysiert. Das Beispiel zeigt die
Ausgaben von &man.pnpinfo.8; für ein internes
Modem:&prompt.root; pnpinfo
Checking for Plug-n-Play devices...
Card assigned CSN #1
Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff
PnP Version 1.0, Vendor Version 0
Device Description: Pace 56 Voice Internal Plug & Play Modem
Logical Device ID: PMC2430 0x3024a341 #0
Device supports I/O Range Check
TAG Start DF
I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8
[16-bit addr]
IRQ: 4 - only one type (true/edge)[weitere TAG Zeilen gestrichen]TAG End DF
End Tag
Successfully got 31 resources, 1 logical fdevs
-- card select # 0x0001
CSN PMC2430 (0x3024a341), Serial Number 0xffffffff
Logical device #0
IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
IRQ 5 0
DMA 4 0
IO range check 0x00 activate 0x01Sie benötigen die Information aus der Zeile
Vendor ID ganz im Anfang. Die in Klammern
ausgegebene hexadezimale Zahl (0x3024a341 in diesem
Beispiel) ist die PnP ID und die unmittelbar davor
stehende Zeichenkette (PMC2430) ist eine eindeutige
Herstellerkennung.Benutzen Sie &man.pciconf.8; wenn &man.pnpinfo.8; die Karte
nicht anzeigt. Der Teil der Ausgabe von
pciconf -vl für eine auf dem
Motherboard integrierte Soundkarte sieht zum Beispiel so
aus:&prompt.root; pciconf -vl
chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801AA 8xx Chipset AC'97 Audio Controller'
class = multimedia
subclass = audioSie benötigen die Chip-ID 0x24158086,
die hinter chip aufgeführt ist.Die Herstellerkennung oder die Chip-ID müssen in die
Datei /usr/src/sys/isa/sio.c
eingetragen werden.Sie sollten zunächst ein Backup von
sio.c anlegen, falls etwas schief
gehen sollte. Sie werden auch einen Patch erzeugen
müssen, um ihn zusammen mit Ihrem PR einzusenden.
(Sie wollten doch einen PR schreiben, oder etwa nicht?)
Öffnen Sie nun sio.c mit einem
Editor und suchen Sie nach der Zeilestatic struct isa_pnp_id sio_ids[] = {und blättern Sie dann nach unten, um die passende
Stelle für Ihr Gerät zu finden. Unten finden
Sie Beispiel für die Einträge, diese sind nach
der Herstellerkennung sortiert. Diese sollte in dem
Kommentar auf der rechten Seite aufgenommen werden, dazu
kommt die Gerätebeschreibung (Device
Description) aus der Ausgabe von
&man.pnpinfo.8;:
{0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */
{0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */
{0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */
{0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */
{0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */
Fügen Sie die hexadezimale Gerätekennung an
der richtigen Stelle ein, speichern Sie die Datei ab,
erzeugen Sie einen neuen Kernel und starten Sie Ihr System
neu. Ihr Gerät sollte nun wie bei FreeBSD 3.X als
sio Gerät erkannt werden.Warum erhalte ich die Meldung nlist
failed, wenn ich Programme wie
top oder systat
benutze?Das Programm sucht nach einem speziellen Symbol im
Kernel, kann es aber aus irgendeinem Grunde nicht finden.
Dieser Fehler wird von einem dieser Probleme
verursacht:Ihr Kernel und die sonstigen Programme (das
Userland) sind nicht mehr auf dem
gleichen Stand. Mit anderen Worten, Sie haben zwar
einen neuen Kernel erzeugt, aber kein
installworld (oder
umgekehrt); darum weicht die Symboltabelle von dem
ab, was die Anwendung erwartet. Wenn dies der Fall ist,
müssen Sie lediglich die noch fehlenden Schritte
des Upgrades durchführen. Die richtige
Vorgehensweise kann
/usr/src/UPDATING entnommen
werden.Um Ihren Kernel zu laden, benutzen Sie nicht
/boot/loader, sondern laden ihn
direkt mit boot2 (siehe &man.boot.8;). Es ist zwar
nicht immer ein Fehler,
/boot/loader zu umgehen; allerdings
ist er in der Regel besser dazu geeignet, die Symbole des
Kernels für normale Anwendungen verfügbar zu
machen.Wieso dauert es so lange, bis eine Verbindung
(&man.ssh.1; oder &man.telnet.1;) aufgebaut wird?Das Symptom: Nach dem Aufbau des TCP-Verbindung
vergeht einige Zeit, bis endlich die Abfrage des
Passwortes (bzw. der Login-Prompt bei Telnet)
erscheint.Das Problem: In den meisten Fällen versucht der
Server in der Zwischenzeit, die IP-Adresse des Clients in
einen Rechnernamen zu übersetzen. Viele Server
(darunter die Telnet und SSH Server von FreeBSD) machen
das, um den Hostnamen z.B. für spätere
Verwendung durch den Systemadministrator in eine
Protokolldatei schreiben zu können.Die Lösung: wenn das Problem bei jedem Server
auftritt, den Sie von Ihrem Computer (dem Client)
ansprechen, dann wird das Problem vom Client verursacht.
Wenn das Problem aber nur auftritt, wenn jemand Ihren
Rechner (den Server) anspricht, dann liegt die Ursache
beim Server.Wenn das Problem vom Client verursacht wird,
müsssen Sie die Einträge im DNS korrigieren,
damit der Server Ihre IP-Adresse übersetzen kann.
Wenn das Problem in Ihrem lokalen Netzwerk auftritt,
sollten Sie es als Problem des Servers behandeln und
weiterlesen; wenn es allerdings im Internet auftritt,
werden Sie sich wahrscheinlich an Ihrem ISP wenden
müssen, damit dieser das Problem für Sie
korrigiert.Wenn das Problem vom Server verursacht wird und Sie
sich in einem lokalen Netzwerk befinden, dann müssen
Sie Ihren Server so konfigurieren, dass er die lokal
genutzten IP-Adressen in Rechnernamen übersetzen kann.
Weitere Informationen erhalten Sie in den Onlinehilfen zu
&man.hosts.5; und &man.named.8;. Wenn dieses Problem im
Internet auftritt, könnte die Ursache auch darin
liegen, dass die Namensauflösung auf dem Server
nicht funktioniert. Versuchen Sie, einen anderen
Hostnamen wie z.B. www.yahoo.com
aufzulösen. Wenn das nicht funktioniert, liegt das
Problem bei Ihrem System.Haben Sie &os; gerade erst installiert, kann es auch
sein, dass die Domänen- und Nameserverinformationen
noch nicht in /etc/resolv.conf
vorhanden sind. Dadurch kommt es häufig zu
Verzögerungen beim Einsatz von
SSH, weil die Option
UseDNS in der Voreinstellung auf
yes gesetzt ist (in der Datei
sshd_config im Verzeichnis
/etc/ssh). Ist dies bei Ihnen der
Fall, müssen Sie entweder die fehlenden Informationen
in /etc/resolv.conf eintragen oder
als temporäre Maßnahme UseDNS
auf no setzen.Was bedeutet stray IRQ?Stray IRQs sind ein Zeichen für Probleme bei der
Behandlung von Hardware-IRQs. Sie werden meistens von
Geräten verursacht, die ihren Interrupt Request
zurückziehen, obwohl gerade der interrupt request
acknowledge-Zyklus läuft.Sie können drei Dinge tun:Ertragen Sie die Warnungen. Sie erhalten nur die
ersten 5 für jeden IRQ, alle anderen werden
unterdrückt.Eliminieren Sie die Meldungen, indem Sie in
isa_strayintr() den Wert 5 auf 0
ändern, um alle Meldungen zu
unterdrücken.Eliminieren Sie die Meldungen, indem Sie Hardware
für den Parallelport installieren, die IRQ 7
nutzt und vom PPP Treiber verwendet wird (das passiert
auf den meisten Systemen), und installieren Sie eine
IDE-Platte oder andere Hardware sowie einen dazu
passenden Treiber, um IRQ 15 zu nutzen.Warum sehe ich in der Ausgabe von dmesg häufig
die Meldung file: table is
full?Diese Fehlermeldung besagt, dass Sie die zur
Verfügung stehenden File-Handles des Systems
verbraucht haben. Was das genau bedeutet und wie Sie
dieses Problem lösen können, steht im Abschnitt
kern.maxfiles im Kapitel Anpassung
der Kernelkonfiguration des Handbuchs.Warum ist die Uhrzeit auf meinem Laptop immer
falsch?Ihr Laptop verfügt über mehr als eine Uhr
und FreeBSD benutzt leider die falsche.Starten Sie &man.dmesg.8; und achten Sie auf die
Zeilen, in denen das Wort Timecounter
vorkommt. Die von FreeBSD benutzte Uhr steht in der
letzten Zeile, mit an Sicherheit grenzender
Wahrscheinlichkeit wird es TSC
sein.&prompt.root; dmesg | grep Timecounter
Timecounter "i8254" frequency 1193182 Hz
Timecounter "TSC" frequency 595573479 HzSie können das überprüfen, indem Sie
den Wert der Systemvariablen
kern.timecounter.hardware
abfragen.&prompt.root; sysctl kern.timecounter.hardware
kern.timecounter.hardware: TSCEs ist durchaus möglich, dass das BIOS die
TSC Uhr ändert, um beispielsweise den CPU-Takt zu
während des Batteriebetrieb zu ändern, oder im
Stromsparmodus; leider bemerkt FreeBSD diese
Änderungen nicht und daher scheint die Uhr falsch zu
gehen.In diesem Beispiel ist die Uhr
i8254 ebenfalls verfügbar; um sie
auszuwählen, muss ihr Name in die Systemvariable
kern.timecounter.hardware geschrieben
werden.&prompt.root; sysctl -w kern.timecounter.hardware=i8254
kern.timecounter.hardware: TSC -> i8254Die Uhrzeit Ihres Laptops sollte nun genauer
funktionieren.Damit diese Änderung automatisch beim Start des
Systems durchgeführt wird, müssen Sie die
folgende Zeile in die
/etc/sysctl.conf eintragen.kern.timecounter.hardware=i8254Warum erkennt mein Laptop PC-Cards nicht?Dieses Problem tritt häufig auf Laptops mit mehreren
Betriebssystemen auf. Einige nicht-BSD Betriebssysteme lassen
die Hardware in einem inkonsistenten Zustand. Die Karte wird
dann von pccardd als
"(null)""(null)" anstelle des
tatsächlichen Modells gefunden.Um dies zu beheben, müssen Sie die Hardware
zurücksetzen, das heißt der PC-Card Einschub
muss stromlos sein. Gehen Sie dazu nicht in den Standby-
oder Suspend-Modus und stellen Sie sicher, dass der Laptop
wirklich ausgeschaltet ist. Warten Sie einen Moment und booten
dann, Ihre PC-Card sollte jetzt funktionieren.Einige Laptops schalten sich nicht wirklich aus. Wenn der
obige Vorschlag nichts genutzt hat, entfernen Sie bitte die
Batterie, warten einen Moment und booten erneut.Wieso hängt sich FreeBSD nach dem BIOS-Bildschirm
mit der Meldung Read error
auf?Der Bootloader von FreeBSD erkennt die Geometrie Ihrer
Festplatte nicht richtig. Sie müssen die Geometrie
manuell festlegen, wenn sie mit fdisk FreeBSD-Bereiche
erzeugen oder ändern.Die richtigen Werte für die Geometrie können
Sie im BIOS des Rechners ablesen. Achten Sie auf die
Anzahl der Zylinder, Köpfe und Sektoren für Ihre
Festplatte.Im fdisk von &man.sysinstall.8; müssen Sie
G eingeben, um die Geometrie zu
definieren.Sie erhalten eine Dialogbox, in der Sie die Anzahl der
Zylinder, Köpfe und Sektoren eingeben können.
Verwenden Sie die Angaben des BIOS und setzen Sie
Schrägstriche zwischen die Zahlen. 5000 Zylinder,
250 Köpfe und 60 Sektoren würden also als
5000/250/60 eingegeben.Schließen Sie die Eingabe mit Enter
ab und drücken Sie W, um die neue
Partitionstabelle auf die Festplatte schreiben zu
lassen.Ein anderes Betriebssystem hat meinen Bootmanager
zerstört. Wie kann ich ihn wiederherstellen?Starten Sie &man.sysinstall.8; und wählen Sie
Configure, dann Fdisk. Wählen Sie die Platte, auf
der sich der Boot Manager befand, mit der
Leertaste aus. Drücken Sie
W, um die Änderungen auf die Platten
schreiben zu lassen. Nun erscheint eine Abfrage, welcher
Bootmanager installiert werden soll. Wählen Sie
diesen an und er wird wieder installiert.Was soll mir die Meldung swap_pager: indefinite
wait buffer: sagen?Ein Programm wollte Speicher auf Platte auslagern, und
dieser Vorgang konnte nicht innerhalb von 20 Sekunden
durchgeführt werden. Mögliche Gründe sind
defekte Blöcke auf der Platte, falsche oder
fehlerhafte Verkabelung sowie Probleme mit anderen
Komponenten, die am Zugriff auf die Festplatte beteiligt
sind. Wenn die Festplatte selbst fehlerhaft sind, sollten
Sie entsprechende Meldungen in
/var/log/messages und den Ausgaben
von dmesg finden. Andernfalls sollten
Sie die Kabel und Verbindungen
überprüfen.Was sind UDMA ICRC Fehler und wie behebe ich
sie?Der &man.ata.4;-Treiber meldet UDMA ICRC
Fehler wenn eine DMA-Übertragung zu oder von einem
Laufwerk fehlgeschlagen ist. Der Treiber versucht die
Übertragung mehrmals durchzuführen und schaltet,
wenn die Versuche fehlschlagen, vom DMA-Modus auf den
langsameren PIO-Modus um.Der Fehler kann viele Ursachen haben, häufig ist ein
Kabel kaputt oder die Geräte sind falsch verkabelt.
Prüfen Sie, ob die ATA-Kabel unbeschädigt sind und
für den verwendeten Ultra-DMA-Modus tauglich sind. Ebenso
müssen Wechselrahmen für den verwendeten Modus geeignet
sein. Stellen Sie sicher, dass alle Kabel fest
angeschlossen sind. Es gab auch schon Probleme, wenn ein altes
Laufwerk zusammen mit einem Ultra-DMA-66 oder einem schnelleren
Laufwerk auf einem Kanal betrieben wurde. Es kann aber auch
sein, dass das Laufwerk kaputt ist. Die meisten Hersteller
stellen Test-Programme für ihre Laufwerke zur
Verfügung. Überprüfen Sie damit Ihr Laufwerk und
wenn nötig, sichern Sie Ihre Daten und ersetzen das
Laufwerk.&man.atacontrol.8; zeigt für jedes ATA-Gerät den
verwendeten DMA- oder PIO-Modus an. Das Kommando
atacontrol mode
Kanal
zeigt die auf einem Kanal verwendeten Modi (die Kanäle
werden von 0 an nummeriert).Was ist ein lock order
reversal?&a.rwatson; hat diese Frage auf der Mailingliste
freebsd-current ausführlich beantwortet. Das Original
seiner Antwort finden Sie über den Thread
lock order reversals - what do they mean?.
&a.rwatson; am 14. Dezember 2003 auf
freebsd-currentDiese Warnungen werden von Witness, einem
Diagnosesystem, das Verklemmungen
(deadlocks) zur Laufzeit
erkennen kann, ausgegeben. Dieses System ist in
FreeBSD -CURRENT-Kerneln vorhanden (aber nicht in
Release-Kerneln) und wird in &man.witness.4; beschrieben.
Unter anderem ist Witness in der Lage, die korrekte
Reihenfolge von bekannten sowie zur Laufzeit entdeckten
Ressource-Locks zu überprüfen, und eine Warnung
auszugeben, wenn diese Reihenfolge verletzt wird. Dadurch
wird es möglich, potentielle Verklemmungen
(deadlocks) zu entdecken.
Beachten Sie, dass Witness sehr vorsichtig ist und daher
Falschmeldungen ausgeben kann. Falls Witness ein
Verklemmungsproblem meldet, bedeutet dies: Wenn
Sie Pech gehabt hätten, wäre es jetzt zu einer
Verklemmung gekommen. Es sind einige falsch
positive Meldungen bekannt, die noch besser dokumentiert
werden müssten, um unnötige Problemmeldungen zu
vermeiden. Neu auftretende Meldungen beruhen in der Regel
auf Bugs in neu hinzugefügten Ressource-Locks, und
werden meist rasch behoben, weil Witness laufend
Fehlermeldungen produziert. :-).
Lesen Sie auch die lock
order reversal page von Bjoern Zeeb, um sich
über den Status bekannter lock order
reversals zu informieren.Warum erhalte ich die Meldung Called ... with
the following non-sleepable locks held?Diese Meldung erscheint, wenn eine Funktion, die sich
im Ruhemodus befindet, aufgerufen wird, während ein
Mutex oder eine andere (nicht in den Ruhemodus versetzbare)
Sperre aktiv war.Der Grund dafür ist, dass ein Mutex nicht für
längere Zeitspannen aktiv sein soll, sondern nur
für die Synchronisation von Gerätetreibern mit
dem Rest des Kernels während eines Interrupts. Unter
FreeBSD dürfen Interrupts nicht in den Ruhemodus
versetzt werden. Daher ist es von entscheidender Bedeutung,
dass während des Bestehens eines Mutex kein
Kernelsubsystem für einen längeren Zeitraum
blockiert ist.Um solche Fehler abzufangen, können Sicherungen
(Assertions) in den Kernel
eingebaut werden, die danach mit dem Witness-Subsystem
interagieren. Dadurch wird (in Abhängigkeit von Ihrer
Systemkonfiguration) eine Warnung oder eine Fehlermeldung
ausgegeben, falls der Aufruf einer Funktion während
des Bestehens eines Mutex zu einer Blockierung führen
kann.Zusammenfassend kann man sagen, dass diese Warnungen
in der Regel zwar nicht bedrohlich sind. Unter bestimmten
Umständen kann es aber dennoch zu unerwünschten
Nebenwirkungen, angefangen von einer Erhöhung der
Reaktionszeit bis hin zu einem kompletten Einfrieren des
Systems kommen.Warum bricht buildworld/installworld mit der Meldung
touch: not found ab?Dieser Fehler bedeutet nicht, dass &man.touch.1; nicht
auf Ihrem System vorhanden ist. Vielmehr sind Dateien die
Ursache, deren Erzeugungsdatum in der Zukunft liegt. Wenn
Ihre CMOS-Uhr auf Ihre lokale Zeit eingestellt ist,
müssen Sie adjkerntz -i
verwenden, um die Kerneluhr anzupassen, wenn Sie in den
Single-User-Modus booten.Kommerzielle AnwendungenDieser Abschnitt ist immer noch sehr dürftig, aber
wir hoffen natürlich, dass Unternehmen einen Beitrag
leisten werden! :) Die FreeBSD-Gruppe hat keinerlei
finanzielle Interessen an einem der hier aufgelisteten
Unternehmen, sondern listet sie lediglich als
öffentlichen Service auf (und ist der Meinung, dass
ein kommerzielles Interesse an FreeBSD sehr positiven
Einfluss auf ein langfristiges Bestehen von FreeBSD haben
kann). Wir möchten Anbieter kommerzieller Software dazu
aufrufen, ihren Eintrag hier aufnehmen zu lassen. Auf der
Anbieter-Seite finden Sie eine längere
Liste.Wo bekomme ich FreeBSD-Versionen der klassischen
Büro-Anwendungen?Das als Open Source verfügbare Office-Paket
OpenOffice
läuft nativ unter FreeBSD. Die um zusätzliche
Funktionen erweiterte kommerzielle OpenOffice-Version
StarOffice
läuft in der &linux;-Version ebenfalls problemlos
unter FreeBSD.In der Ports-Sammlung sind weitere
Textbearbeitungsprogramme, Tabellenkalkulationen und
Zeichenprogramme enthalten.Woher kann ich &motif; für FreeBSD
bekommen?Der Quelltext für &motif; 2.2.2 wurde von der
Open Group herausgegeben. Sie können
entweder das Package open-motif
installieren oder es mit dem entsprechenden Port selbst
compilieren. Weitere Informationen über die
Benutzung der Ports erhalten Sie im Kapitel Ports des
Handbuchs.Die Open &motif; Distribution darf nur weitergegeben
werden, wenn sie auf einem Open Source
Betriebssystem benutzt wird.Weiterhin gibt es auch kommerzielle &motif;-Paket, die
zwar nicht kostenlos sind, aber dafür auch mit
closed source Software benutzt werden
dürfen. Um die günstigste ELF-&motif; 2.1.20
Distribution für FreeBSD (entweder &i386; oder Alpha)
zu bekommen, wenden Sie sich bitte an Apps2go.Es gibt zwei Distributionen, die development
edition und die runtime edition
(wesentlich günstiger). Diese Distributionen
enthalten:OSF/&motif; manager, xmbind, panner, wsm.Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.Statische und dynamische ELF-Bibliotheken.Demonstrations-Applets.Achten Sie darauf, dass Sie bei der Bestellung
angeben, dass Sie die FreeBSD-Version von &motif;
möchten (vergessen Sie auch nicht, die Architektur
anzugeben)! Von Apps2go werden auch
Versionen für NetBSD und OpenBSD verkauft. Dieses
Produkt ist zurzeit nur zum Download per FTP
verfügbar.Weitere InformationenApps2go
Web-Seiteodersales@apps2go.com oder
support@apps2go.comoderTelefon (817) 431 8775 oder +1 817
431-8775Eine &motif; 2.0 Distribution für FreeBSD im
a.out-Format gibt es bei Xi
Graphics.Diese Distribution enthält:/OSF/&motif; manager, xmbind, panner, wsm.Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.Statische und dynamische Bibliotheken (zur
Verwendung unter FreeBSD 2.2.8 und
frühere).Demonstrations-Applets.Vorformatierte Manualpages.Achten Sie darauf, bei der Bestellung anzugeben,
dass Sie die FreeBSD-Version von &motif; möchten!
Xi Graphics verkauft auch Versionen
für BSDI und &linux;. Dieses Produkt ist derzeit ein
Satz von vier Disketten... zukünftig wird es eine
einheitliche CD-Distribution geben, wie beim CDE.Woher kann ich CDE für FreeBSD bekommen?Xi Graphics hat einmal CDE
für FreeBSD verkauft, tut es aber nicht mehr.KDE ist ein
Open-Source X11-Desktop, der CDE in vielen Punkten
ähnelt. Eventuell gefällt Ihnen auch das "Look
and Feel" von xfce. KDE und xfce
sind über die Ports-Sammlung
von FreeBSD verfügbar.Gibt es irgendwelche kommerzielle leistungsfähige
X-Server?Ja, Xi
Graphics vertreibt beschleunigte X-Produkte für
FreeBSD und andere Intel-basierte Systeme.Das Angebot von Xi Graphics besteht aus einem
leistungsfähigen X-Server, der einfache Konfiguration
und Unterstützung für den parallelen Einsatz
mehrerer Videokarten bietet. Es wird in binärer Form
in einer einheitlichen Diskettendistribution für
FreeBSD und Linux vertrieben. XI Graphics bietet auch
leistungsfähige X-Server, die auf die
Unterstützung von Laptops zugeschnitten sind.
Es gibt ein kostenloses
Kompatibilitäts-Demo der Version
5.0.Xi Graphics vertreibt auch &motif; und CDE für
FreeBSD (siehe oben).Weitere InformationenXi Graphics
Web-Seiteodersales@xig.com oder
support@xig.comoderTelefon (800) 946 7433 oder +1 303
298-7478.Gibt es irgendwelche Datenbanksysteme für
FreeBSD?Ja! Lesen Sie den Abschnitt
kommerzielle Anbieter auf der FreeBSD-Web-Seite.Schauen Sie auch im Abschnitt Datenbanken
der Ports-Sammlung nach.Kann ich &oracle; unter FreeBSD laufen lassen?Ja. Die folgenden Seiten beschreiben genau, wie sich
&linux;-&oracle; unter FreeBSD installieren lässt:Gibt es für &os; auch kommerzielle Webbrowser?Ja. Opera ist für verschiedene Plattformen,
darunter auch &os;, verfügbar. Informieren Sie sich
bitte auf
www.opera.com.
Eine werbefinanzierte Version von Opera ist in der
Portssammlung enthalten.BenutzerprogrammeNun, wo sind die ganzen Benutzerprogramme?Werfen Sie bitte einen Blick auf die Ports-Seite,
um Informationen über die nach FreeBSD
portierten Softwarepakete zu erhalten. Die Liste
enthält zurzeit &os.numports; Einträge und
wächst täglich. Schauen Sie hier also
öfter nach oder melden Sie sich bei der Mailinglistefreebsd-announce
an, um sich regelmäßig über
Änderungen zu informieren.Die meisten Ports sollten auf den 4.X, 5.X und
6.X-Systemen laufen. Jedes Mal, wenn ein FreeBSD-Release
erstellt wird, wird auch ein Snapshot des Port-Baumes vom
Zeitpunkt des Releases in das Verzeichnis
ports/ eingefügt.Wir unterstützen auch das Konzept von
Packages - im Grunde genommen nicht mehr
als komprimierte Binärdistributionen mit ein wenig
zusätzlicher Intelligenz zur Ermöglichung
angepasster Installationen. Ein Package kann leicht
installiert und wieder deinstalliert werden, ohne,
dass man etwas über wissen muss, welche
Dateien es enthält.Benutzen Sie das Paketinstallationsmenü in
/stand/sysinstall (unter dem
Menüpunkt post-configuration) oder führen Sie den
Befehl &man.pkg.add.1; mit den speziellen
Paketdateien aus, die Sie installieren möchten.
Paketdateien können für gewöhnlich an der
Endung .tgz oder
.tbz erkannt werden und
diejenigen, die über eine CDROM-Distribution
verfügen, haben auf ihrer CD ein Verzeichnis
packages/All, das solche Dateien
enthält. Für verschiedene FreeBSD-Versionen
können sie von folgenden Adressen auch über das
Netz heruntergeladen werden:für 4.X-RELEASE/4-STABLE
ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stablefür 5.X-RELEASE/5-STABLE
ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stablefür 6-CURRENT
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-currentfür 7-CURRENT
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-currentoder von Ihrem nächstgelegenen Mirror.Beachten Sie, dass nicht alle Ports als Package
verfügbar sind, da ständig neue hinzugefügt
werden. Es ist immer eine gute Idee, sich
regelmäßig auf der ftp.de.FreeBSD.org
Masterseite darüber zu informieren, welche Packages
verfügbar sind.Wie konfiguriere ich INN (Internet News) für
meine Maschine?Ein idealer Startpunkt nach der Installation des
Packages oder Ports news/inn
ist Dave
Barr's INN-Seite, wo Sie die INN-FAQ
finden.Unterstützt FreeBSD &java;?Ja. Informieren Sie sich bitte unter http://www.de.FreeBSD.org/java/.Warum kann ich manche Ports auf meiner
4.X-STABLE-Maschine nicht erstellen?Wenn Sie eine FreeBSD-Version benutzen, die deutlich
älter als das aktuelle -CURRENT oder -STABLE ist,
könnte es sein, dass Sie vorher Ihre Ports-Sammlung
aktualisieren müssen. Lesen Sie dazu den Abschnitt
Keeping Up des Porters-Handbuch. Ist Ihre
Ports-Sammlung aktuell, könnte es sein, dass jemand
eine Änderung am Port durchgeführt hat, die
für -CURRENT funktioniert, den Port für
-STABLE aber unbrauchbar gemacht hat.
Bitte senden Sie einen Fehlerbericht mit dem
Befehl &man.send-pr.1;. Von der Ports-Sammlung
wird nämlich erwartet, dass sie sowohl auf
-CURRENT als auch auf -STABLE funktioniert.Ich habe gerade versucht, INDEX
mit make index zu bauen, und es hat nicht
geklappt. Woran liegt das?Stellen Sie zuerst sicher, dass Ihre Ports-Sammlung
aktuell ist. Fehler, die einen Bau von
INDEX aus einer aktuellen Ports-Sammlung
verhindern, sind sofort sichtbar und werden daher fast immer
umgehend behoben.Ist Ihre Ports-Sammlung jedoch aktuell, haben Sie
vielleicht ein anderes Problem.
make index hat einen Bug im Umgang mit
unvollständigen Kopien der Ports-Sammlung. Es nimmt
an, dass Sie über eine lokale Kopie aller Ports
verfügen, von denen jeder lokale Port abhängt.
Wenn Sie also beispielsweise eine Kopie von
foo/bar auf Ihrem System haben, und
foo/bar ist von
baz/quux abhängig, dann muss auch
eine Kopie von baz/quux auf Ihrem
System vorhanden sein, sowie eine Kopie aller Ports, von
denen baz/quux abhängt.
Anderenfalls ist make index aufgrund
fehlender Informationen nicht in der Lage, den
Abhängigkeitsbaum zu erzeugen.Dieses Problem tritt vor allem dann auf, wenn
&os;-Benutzer &man.cvsup.1; verwenden, um die Ports-Sammlung
zu aktualisieren und dabei verschiedene Kategorien durch die
Datei refuse von der Aktualisierung
ausschließen. Theoretisch ist es zwar möglich,
Kategorien auszuschließen, in der Praxis gibt es aber
zu viele Ports, die von Ports in anderen Kategorien
abhängen. Wenn Sie also INDEX
bauen wollen, müssen Sie über
eine komplette Kopie der Ports-Sammlung verfügen.Es gibt seltene Fälle, in denen
INDEX nicht gebaut werden kann, wenn
bestimmte
WITH_* oder
WITHOUT_*
Variablen in make.conf gesetzt sind.
Wenn Sie dieses Problem haben, sollten Sie diese
make-Variablen deaktivieren und INDEX
erneut bauen, bevor Sie das Problem an &a.ports;
melden.Warum ist CVSup nicht im FreeBSD-Basisquellbaum
enthalten?Das Basissystem von FreeBSD soll
selbstverwaltend sein. Es soll also
möglich sein, das komplette Betriebssystem mit einer
beschränkten Anzahl von Werkzeugen zu starten. Daher
werden die zum Bau von FreeBSD nötigen Werkzeuge mit
dem Quelltext gekoppelt. Zu diesen Werkzeugen gehören
ein C-Compiler (&man.gcc.1;), &man.make.1;, &man.awk.1; und
andere.Da CVSup in Modula-3 geschrieben wurde, müsste ein
Modula-3-Compiler ins Basissystem aufgenommen und auch
gewartet werden. Dies würde einen gestiegenen
Speicherbedarf für die FreeBSD-Quellen sowie einen
erhöhten Wartungsaufwand verursachen. Daher ist es
sowohl für Entwickler als auch Benutzer einfacher,
CVSup bei Bedarf als Port oder als Paket von einer
Installations-CD zu installieren.Ich habe die Sourcen aktualisiert, wie aktualisiere
ich jetzt die installierten Ports?FreeBSD enthält zwar kein Programm, das die
installierten Ports aktualisiert, allerdings existieren
diverse Programme, die diesen Prozess etwas
vereinfachen. Weiterhin können Sie zusätzliche
Programme installieren, die Sie dabei
unterstützen.Sie können mit &man.pkg.version.1; ein Script
erzeugen, das die installieren Ports mit einer neueren
Version aus der Ports-Sammlung ersetzt:&prompt.root; pkg_version -c > /tmp/myscriptDas so erzeugte Script muss
manuell geändert werden, bevor es benutzt wird.
Neuere Versionen von &man.pkg.version.1; erzwingen dies,
indem sie ein &man.exit.1; an den Anfang des Scripts
setzen.Sie sollten die Ausgaben des Scripts abspeichern, da
sie Ihnen melden werden, welche Ports von den dem gerade
aktualisierten Port abhängen. Es ist möglich,
dass diese auch aktualisiert werden müssen. Der
typische Fall, in dem ein Update erforderlich ist, ist
eine Änderung der Versionsnummer einer shared
library; in diesem Fall müssen die abhängigen
Ports neu übersetzt werden, damit sie die neue
Library benutzen.Ab FreeBSD 5.0 steht die Option
in &man.pkg.version.1; nicht
mehr zur Verfügung.Falls Sie über genügend freien Plattenplatz
verfügen, können Sie diesen Prozess mit
portupgrade automatisieren.
portupgrade umfasst diverse
Programme, die die Arbeit mit Packages erleichtern und ist
als sysutils/portupgrade
verfügbar. Da portupgrade in Ruby
geschrieben wurde, wird es wahrscheinlich nie ein Bestandteil
von FreeBSD werden. Allerdings sollte das niemanden davon
abhalten, es trotzdem zu benutzen.Wenn Ihr System rund um die Uhr läuft, kann es
jede Woche automatisch eine Liste der Ports erzeugen, die
wahrscheinlich aktualisiert werden müssen. Fügen
Sie dazu weekly_status_pkg_enable="YES"
in /etc/periodic.conf ein.Warum ist /bin/sh so spartanisch?
Warum benutzt FreeBSD nicht die bash
oder eine ähnliche Shell?Weil der &posix;-Standard definiert, dass es so
eine Shell geben muss.Die ausführlichere Antwort: Viele Leute
müssen Shell-Programme schreiben, die auf vielen
verschiedenen Systemen nutzbar sein müssen. Aus
diesem Grund enthält der &posix;-Standard eine sehr
detaillierte Definition der Shell und der Hilfsprogramme.
Die meisten Programme werden für die Bourne Shell
geschrieben; außerdem nutzen mehrere wichtige
Schnittstellen (&man.make.1;, &man.system.3;,
&man.popen.3; und ihre Entsprechungen in höheren
Programmiersprachen wie Perl und Tcl) die Bourne Shell, um
Befehle auszuführen. Da die Bourne Shell an so
vielen Stellen und so häufig genutzt wird, muss
sie die folgenden Anforderungen erfüllen: Schneller
Start, ein klar definiertes Verhalten und ein
möglichst geringer Speicherverbrauch.Wir haben bei der vorliegenden Implementierung
versucht, möglichst viele dieser Anforderungen zu
erfüllen. Um /bin/sh nicht zu
groß werden zu lasen, haben wir viele der
Annehmlichkeiten der anderen Shells weggelassen. Aus
diesem Grund gibt es in den Ports die luxuriöseren
Shells wie bash, scsh, tcsh und zsh. Vergleichen Sie
einfach mal den Speicherverbrauch der verschiedenen
Shells, indem Sie ps -u aufrufen und
sich die Angaben in den Spalten VSZ und
RSS ansehen.Wieso dauert es so lange, bis &netscape; und Opera
starten?In den meisten Fällen liegt es daran, dass
Ihre DNS-Einstellungen fehlerhaft sind. Sowohl &netscape;
als auch Opera stellen Anfragen an DNS, wenn Sie gestartet
werden. Das Fenster des Browsers erscheint erst, wenn das
Programm eine Antwort erhalten hat oder es festgestellt
hat, dass Ihr System nicht an ein Netzwerk
angeschlossen ist.Ich habe die Ports-Sammlung mit
CVSup aktualisiert. Viele
Ports lassen sich danach nicht mehr bauen und geben
seltsame Fehlermeldungen aus. Was ist passiert? Ist
die Ports-Sammlung kaputt?Sie sollten immer die Teilsammlung
ports-base aktualisieren, wenn Sie
nur Teile der Ports-Sammlung mit Hilfe der
CVSup-Teilsammlungen
aktualisieren. Die Erklärung dazu finden Sie im
Handbuch.Wie erzeuge ich Audio-CDs aus MIDI-Dateien?Installieren Sie zuerst den Port audio/timidity++. Danach
müssen Sie manuell die GUS-Patche von
Eric A. Welsh von
installieren. Wenn timidity++
richtig installiert wurde, können Sie mit dem folgenden
Kommando MIDI-Dateien in das WAV-Format konvertieren:&prompt.user; timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.midDie WAV-Dateien können dann in andere Formate
konvertiert werden oder auf Audio-CDs, wie im FreeBSD-Handbuch
beschrieben, gebrannt werden.KernelkonfigurationIch möchte meinen Kernel anpassen. Ist das
schwierig?Überhaupt nicht! Lesen Sie den Abschnitt zur
Kernelkonfiguration im Handbuch.Sie sollten einen datierten Snapshot Ihres Kernels
als kernel.YYMMDD zu erstellen,
nachdem Sie alles zum Laufen gebracht haben.
Außerdem sollten Sie eine Kopie des Verzeichnisses
/modules erstellen, die den Namen
/modules.YYMMDD hat. Auf diese
Weise können Sie diesen Kernel hochfahren, anstatt
den ganzen Weg zurück zu
kernel.GENERIC gehen zu
müssen, wenn Sie das nächste Mal mit Ihrer
Konfiguration herumexperimentieren und dabei etwas
falsch machen sollten. Das ist besonders wichtig, wenn
Sie nun von einem Controller booten, der vom
GENERIC-Kernel nicht unterstützt wird.Was kann ich machen, wenn meine Kernel-Kompilierungen
fehlschlagen, weil _hw_float
fehlt?Sie haben wahrscheinlich
npx0 aus Ihrer
Kernelkonfigurationsdatei entfernt, weil Sie keinen
mathematischen Co-Prozessor besitzen. Die Gerätedatei
npx0 ist allerdings
VERPFLICHTEND. Ihre Hardware
unterstützt Gleitkommaoperationen, selbst wenn dafür
kein eigenes Bauteil (wie bei den 386er-Prozessoren) mehr
verwendet wird. Daher müssen Sie
die Gerätedatei npx0 einbinden.
Selbst wenn es Ihnen gelingen sollte, einen Kernel ohne
npx0-Unterstützung zu bauen,
werden Sie diesen nicht booten können.Warum ist mein Kernel so groß (über 10
MByte)?Sie haben Ihren Kernel wahrscheinlich im
Debug Modus erstellt. Ein
Debug-Kernel enthält viele zusätzliche
Informationen für die Fehlersuche, daher ist er so
groß. Bitte beachten Sie, dass die Verwendung
eines Debug-Kernels
die Performance des Systems nicht oder nur minimal
reduziert; außerdem ist es für den Fall einer
system panic sehr praktisch, einen Debug-Kernel zur Hand
zu haben.Wenn Ihnen allerdings der Plattenplatz ausgeht oder
Sie einfach rein prinzipiell keinen Debug-Kernel benutzen
wollen, müssen die beiden folgenden Bedingungen
erfüllt sein:Die Konfigurationsdatei für Ihren Kernel darf
die folgende Zeile nicht enthalten:makeoptions DEBUG=-gSie dürfen &man.config.8; nicht mit dem
Parameter starten.Sollten Sie sich nicht an diese Einschränkungen
halten, wird Ihr Kernel im Debug-Modus erstellt. Solange
Sie sich an diese Einschränkungen halten, können
Sie Ihren Kernel ganz normal erstellen und die
Größe des Kernels sollte deutlich sinken. Ein
normaler Kernel ist nur 1.5 MByte bis 2 MByte
groß.Wieso erhalte ich Meldungen über Interrupt-Konflikte,
wenn ich eine Karte mit mehreren seriellen Schnittstellen
einsetzen will?Wenn ich einen Kernel mit Unterstützung für
serielle Multi-Port-Schnittstellen kompiliere, bekomme ich
den Hinweis, dass nur der erste Port geprüft
wird und die restlichen auf Grund von Interrupt-Konflikten
übersprungen werden. Wie kann ich das
Beheben?Das Problem besteht darin, dass in FreeBSD Code
integriert ist, um den Kernel vor Abstürzen aufgrund
von Hardware- oder Software-Konflikten zu bewahren.
Behoben wird es, indem die IRQ-Angaben für alle
Ports, bis auf einen ausgelassen werden. Hier ist ein
Beispiel:
#
# Multiport high-speed serial line - 16550 UARTS
#
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr
Wieso kann ich nicht einmal den Standard-Kernel
(GENERIC) bauen?Es gibt eine Reihe von möglichen Ursachen
für dieses Problem:Sie benutzen die neuen Kommandos make
buildkernel und make
installkernel nicht, obwohl die Sourcen auf
Ihrem System nicht zum laufenden System passen (z.B.
benutzen Sie die Sourcen von 4.3-RELEASE auf einem
System mit 4.0-RELEASE). Wenn Sie ein Upgrade
durchführen wollen, sollten Sie
/usr/src/UPDATING lesen, beachten
Sie insbesondere den Abschnitt COMMON
ITEMS gegen Ende des Dokuments.Sie benutzen zwar make
buildkernel und make
installkernel, aber Sie haben nicht darauf
geachtet, dass vorher ein komplettes
make buildworld durchgelaufen sein
muss. Um seine Arbeit erledigen zu können,
benötigt make buildkernel
Dateien, die von make buildworld
erzeugt werden.Auch wenn Sie FreeBSD-STABLE verwenden, ist
es durchaus möglich, dass Sie die Sourcen
genau zum falschen Zeitpunkt aktualisiert haben:
Während Sie gerade modifiziert wurden oder
kurzzeitig fehlerhaft waren. Eine absolute und
vollständige Garantie, dass Sie die Sourcen
compilieren können, gibt es nur für die
Releases, bei FreeBSD-STABLE ist das nicht
immer so. Wenn Sie es noch nicht versucht haben,
sollten Sie ihre Source nochmals aktualisieren. Es
ist denkbar, dass der von Ihnen genutzte Server
zurzeit Probleme hat, benutzten Sie daher testweise
auch einmal einen anderen Server.Wie kann ich prüfen, welchen Scheduler das
System benutzt?Wenn Sie &os; 5.2.1 oder älter verwenden,
überprüfen Sie dazu, ob auf Ihrem System die
sysctl-Variable kern.quantum
existiert. Ist dies bei Ihnen der Fall, werden Sie eine
Ausgabe ähnlich der folgenden sehen:&prompt.user; sysctl kern.quantum
kern.sched.quantum: 99960Wenn die sysctl-Variable kern.quantum
existiert, dann verwenden Sie den 4BSD-Scheduler. Existiert
sie nicht, erzeugt &man.sysctl.8; eine Fehlermeldung (die Sie
aber ignorieren können):&prompt.user; sysctl kern.sched.quantum
sysctl: unknown oid 'kern.sched.quantum'Seit &os; 5.3-RELEASE wird der Name des verwendeten
Schedulers direkt als Wert der sysctl-Variable
kern.sched.name ausgegeben:&prompt.user; sysctl kern.sched.name
kern.sched.name: 4BSDWas bedeutet kern.quantum?kern.quantum ist die maximale
Anzahl Ticks, die ein Prozess ununterbrochen laufen kann.
Die Variable ist charakteristisch für den
4BSD Scheduler, somit kann der verwendete Scheduler
über die Existenz dieser Variablen bestimmt werden.
Seit &os; 5.X wird kern.quantum als
kern.sched.quantum bezeichnet.Was ist kern.sched.quantum?Lesen Sie den Abschnitt
Platten, Dateisysteme und Boot LoaderWie kann ich meine neue Festplatte in mein
FreeBSD-System einbinden?Lesen Sie das Tutorial zur Festplattenformatierung
unter www.de.FreeBSD.org.Wie verschiebe ich mein System auf meine neue,
große Platte?Die beste Methode ist, das Betriebssystem auf der
neuen Platte neu zu installieren und danach die Daten zu
verschieben. Wenn Sie -STABLE über eine Release
hinaus genutzt haben oder eine Release aktualisiert haben,
ist das sehr empfehlenswert. Sie können auf beiden
Platten &man.boot0cfg.8; installieren und die beiden
Versionen so lange parallel betreiben, bis Ihnen die neue
Konfiguration gefällt. Wenn Sie dies tun wollen,
können Sie im übernächsten Absatz erfahren,
wie sie Ihre Daten verschieben können.Falls Sie sich entscheiden, das nicht zu tun,
müssen Sie Ihre neue Platte partitionieren und
labeln. Benutzen Sie dafür entweder
/stand/sysinstall oder &man.fdisk.8;
und &man.disklabel.8;. Weiterhin sollten Sie mit
&man.boot0cfg.8; auf beiden Platten booteasy installieren,
damit Sie in der Lage sind, das alte und das neue System
abwechselnd zu starten, nachdem der Kopiervorgang
abgeschlossen ist. Im Formatting-Media
Tutorial finden Sie weitere Informationen zu
diesen Schritten.Nachdem Sie die neue Platte eingerichtet haben,
können Sie Ihre Daten verschieben. Dummerweise
können Sie die Daten nicht einfach kopieren. Dinge wie
Gerätedateien (in /dev),
erweiterte Dateiattribute und symbolische Links führen
dazu, dass das in die Hose geht. Sie müssen
ein Programm benutzen, das damit umgehen kann, und das
ist &man.dump.8;. Es wird oft empfohlen, die Daten im
Single-User Modus zu verschieben, aber das ist nicht
unbedingt notwendig.Sie sollten auf gar keinen Fall etwas anderes als
&man.dump.8; und &man.restore.8; benutzen, um Ihr Root-Filesystem
zu verschieben. Es könnte auch mit
&man.tar.1; funktionieren - oder auch nicht. Sie sollten
ebenfalls &man.dump.8; und &man.restore.8; benutzen, wenn
Sie eine komplette Partition auf eine andere, leere
Partition verschieben wollen. Um die Daten einer Partition mit
dump auf eine andere Partition zu verschieben, müssen
Sie die folgenden Schritte ausführen:Richten Sie in der neuen Partition mit newfs ein
Dateisystem ein.Mounten Sie die Partition temporär an einer
geeigneten Stelle.Wechseln Sie mit cd in dieses Verzeichnis.Lesen Sie die alte Partition mit dump aus und
lenken Sie die Ausgabe auf die neue Partition
um.Wenn Sie zum Beispiel root auf
/dev/ad1s1a verschieben wollen und
diese derzeit auf /mnt gemountet
ist, bedeutet das:&prompt.root; newfs /dev/ad1s1a
&prompt.root; mount /dev/ad1s1a /mnt
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore xf -Wenn Sie Ihre Partitionen mit &man.dump.8;
umorganisieren wollen, steht Ihnen etwas mehr Arbeit
bevor. Wenn Sie eine Partition wie
/var in die übergeordnete Partition
verschieben wollen, müssen Sie zunächst eine neue
Partition erzeugen, die die beiden alten Partitionen
aufnehmen kann. Der zweite Schritt ist, wie oben
beschrieben die übergeordnete Partition in die neue
Partition zu verschieben. Im dritten und letzten Schritt
verschieben Sie dann die untergeordnete Partition in das
leere Verzeichnis, das im zweiten Schritt entstanden
ist:&prompt.root; newfs /dev/ad1s1a
&prompt.root; mount /dev/ad1s1a /mnt
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore xf -
&prompt.root; cd var
&prompt.root; dump 0af - /var | restore xf -Wenn Sie ein Verzeichnis aus einer Partition
herauslösen wollen, also z.B.
/var auf eine eigene Partition
verlegen wollen, dann müssen Sie zunächst beide
Partitionen anlegen. Danach müssen Sie die
untergeordnete Partition im passenden Verzeichnis
unterhalb des temporären mount points mounten und zum
Abschluß die alte Partition verschieben:&prompt.root; newfs /dev/ad1s1a
&prompt.root; newfs /dev/ad1s1d
&prompt.root; mount /dev/ad1s1a /mnt
&prompt.root; mkdir /mnt/var
&prompt.root; mount /dev/ad1s1d /mnt/var
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore xf -Eventuell sagen Ihnen für Benutzerdaten
&man.cpio.1;, &man.pax.1; oder &man.tar.1; eher zu als
&man.dump.8;. Allerdings haben alle diese Programme den
Nachteil, dass sie die erweiterten Dateiattribute
nicht verstehen, daher sollten Sie bei ihrem Einsatz
aufpassen.Gefährdet eine dangerously
dedicated Festplatte meine Gesundheit?Die Installationsprozedur bietet
Ihnen zwei verschiedene Methoden, Ihre Festplatte(n) zu
partitionieren. Die Standardmethode macht sie kompatibel
zu anderen Betriebssystemen auf derselben Maschine, indem
fdisk-Tabelleneinträge (unter FreeBSD
slices genannt) mit einem FreeBSD-Eintrag,
in dem eigene Partitionen untergebracht werden, benutzt
werden. Optional kann ausgewählt werden, ob ein
Boot-Selektor installiert werden soll, um zwischen den
möglichen Betriebssystemen auf der/den Platte(n)
wechseln zu können. Bei der zweiten Methode wird die
gesamte Platte für FreeBSD genutzt und nicht
versucht, kompatibel zu anderen Betriebssystemen zu
sein.Nun, warum wird es gefährlich
genannt? Eine Platte in diesem Modus enthält nichts,
was von normalen PC-Hilfsprogrammen als gültige
fdisk-Tabelle betrachtet werden würde. Abhängig
von der Qualität ihres Designs werden sie sich bei
Ihnen beschweren, sobald sie mit einer solchen Platte in
Kontakt kommen, oder noch schlimmer, sie könnten den
Bootstrap von FreeBSD beschädigen, ohne Sie zu fragen
oder darauf hinzuweisen. Hinzu kommt, dass vom
Layout von dangerously dedicated Platten
bekannt ist, dass es viele BIOSe verwirrt,
einschließlich solcher von AWARD (wie es z.B. im HP
Netserver oder Micronics-Systemen, sowie vielen anderen zu
finden ist) und Symbios/NCR (für die bekannte
53C8xx-Reihe von SCSI-Controllern). Dies ist keine
vollständige Liste - es gibt weitere. Symptome
für diese Verwirrung sind read
error-Meldungen, die vom FreeBSD-Bootstrap
ausgegeben werden, wenn es sich selbst nicht finden kann,
sowie Systemabstürze beim Booten.Warum gibt es diesen Modus dann überhaupt? Es
spart ein paar kByte an Plattenplatz und kann echte
Probleme verursachen, die zu einer Neuinstallation
führen. Die Ursprünge des Dangerously
dedicated Modus liegen in der Absicht, eines der
häufigsten Probleme, das Erstinstallierer von FreeBSD
plagt, zu verhindern - die BIOS-Werte für die
Geometrie einer Festplatte auf der
Festplatte selbst anzupassen.Geometrie ist ein veraltetes Konzept,
das aber immer noch die Grundlage für die Interaktion
zwischen dem PC-BIOS und den Festplatten ist. Wenn das
Installationsprogramm von FreeBSD Slices erstellt,
muss es sich die Lage dieser Slices auf der
Festplatte in einer Art merken, die damit
übereinstimmt, wie das BIOS erwartet, sie zu finden.
Wenn das falsch geschieht, werden Sie nicht in der Lage
sein, zu booten.Durch den Dangerously dedicated Modus
wird versucht, dies zu umgehen, indem das Problem
vereinfacht wird. In einigen Fällen klappt das zwar,
aber er ist eher als allerletzter Ausweg gedacht - in 99
von 100 Fällen gibt es bessere Möglichkeiten,
das Problem zu lösen.Wie vermeiden Sie also die Notwendigkeit zum
DD Modus, wenn Sie installieren? Beginnen
Sie, indem Sie sich notieren, welche Geometrie das BIOS
für Ihre Platten benutzt. Sie können erreichen,
dass der Kernel sie beim Booten ausgibt, indem Sie
an der Eingabeaufforderung
boot: angeben, oder boot
-v im Loader verwenden. Kurz bevor das
Installationsprogramm startet, wird der Kernel eine Liste
mit den BIOS-Geometrien ausgeben. Keine Panik - warten
Sie, bis das Installationsprogramm gestartet wurde und
benutzen Sie Scrollback, um die Zahlen zu lesen.
Typischerweise befinden sich die BIOS-Platten in derselben
Reihenfolge, wie FreeBSD Ihre Platten auflistet - zuerst
IDE, dann SCSI.Wenn Sie Ihre Festplatte in Slices unterteilen,
überprüfen Sie, ob die Plattengeometrie, die im
FDISK-Menü angegeben ist, korrekt ist (das heißt
mit den Einstellungen im BIOS übereinstimmen). Falls
die Werte nicht stimmen, benutzen Sie g, um
sie zu korrigieren. Diese Schritte sind nötig, wenn
sich absolut nichts auf der Festplatte befindet, oder,
wenn die Festplatte vorher in einem anderen System benutzt
worden ist. Beachten Sie, dass dies nur für die
Festplatte nötig ist, von der Sie booten wollen. Mit
weiteren vorhandenen Platten wird FreeBSD sich problemlos
zurechtfinden.Wenn Sie es geschafft haben, dass das BIOS und
FreeBSD in der Festplattengeometrie übereinstimmen,
dann sind Ihre Probleme ziemlich sicher vorüber -
ohne, dass es nötig gewesen wäre, den
DD-Modus zu benutzen. Falls sie jedoch
immer noch mit der gefürchteten read
error-Meldung begrüßt werden sollten,
wenn Sie versuchen, zu booten, wird es Zeit, dass Sie
Ihre Finger kreuzen und es einfach versuchen - es gibt
nichts mehr zu verlieren.Um eine dangerously dedicated
Festplatte wieder für einen normalen PC brauchbar zu
machen, gibt es zwei Möglichkeiten. Die erste ist,
ausreichend viele NULL-Bytes in den MBR zu schreiben, um
irgendwelche nachfolgenden Installation glauben zu machen,
dass es sich um eine leere Festplatte handelt. Sie
können das zum Beispiel so tun:&prompt.root; dd if=/dev/zero of=/dev/rda0 count=15Alternativ installiert der undokumentierte
DOS-BefehlC:\>fdisk /mbreinen neuen Master-Boot-Record, das heißt der
BSD-Bootstrap wird zerstört.Auf welchen Partitionen kann ich problemlos
Soft Updates einsetzen? Ich habe gehört, das der
Einsatz von Soft Updates auf /
Probleme verursachen kann.Die schnelle Antwort: Sie können Soft Updates
bedenkenlos auf alle Partitionen benutzen.Die ausführliche Antwort: Es gab lange Zeit
Bedenken, was den Einsatz von Soft Updates auf der
root-Partition betrifft. Der Grund sind zwei
Charakteristika der Soft Updates: Zum einen kann es bei
einem Absturz des System auf einer Partition mit
Soft Updates zum Datenverlust kommen. Die Partition ist
zwar noch brauchbar, aber einige Daten können
verloren gehen. Weiterhin kann es durch Soft Updates zu
einem zeitweisen Mangel an Plattenplatz kommen.Bei der Benutzung von Soft Updates kann es bis zu
dreißig Sekunden dauern, bis der Kernel
Änderungen auf das physikalische Speichermedium
schreibt. Wenn Sie eine große Datei löschen,
ist diese Datei noch auf der Platte vorhanden, bis der
Kernel die Löschoperation tatsächlich
durchführt. Das kann zu einem sehr einfachen Problem
führen: Stellen Sie sich vor, Sie löschen eine
große Datei und legen gleich darauf eine andere
große Datei an. Da die erste Datei noch nicht
wirklich gelöscht wurde, ist eventuell nicht genug
Platz für die zweite große Datei. Sie erhalten
die Fehlermeldung, dass nicht genug freier Platz
vorhanden ist, obwohl Sie ganz genau wissen, dass Sie
gerade eben Platz geschaffen haben. Wenn Sie die
Operation ein paar Sekunden später wiederholen,
funktioniert alles wie von Geisterhand. Dieser Effekt hat
mehr als einen Benutzer verwirrt und Zweifel an seiner
geistigen Stabilität oder dem FreeBSD-Dateisystem
aufkommen lassen.Wenn der Kernel ein Datenpaket annimmt und das System
abstürzt, bevor er dies Daten auf die Platte
geschrieben hat, kann es zum Verlust oder zur
Zerstörung von Daten kommen. Dieses Risiko ist nur
sehr gering und normalerweise tragbar. Wenn Sie
allerdings einen IDE-Write-Cache verwenden, steigt das
Risiko; daher wird normalerweise empfohlen, auf den
Einsatz dieser Technik zu verzichten, wenn Sie Soft Updates
benutzen.Diese beiden Probleme betreffen alle Partitionen, die
Soft Updates verwenden. Was bedeutet das für die
Root-Partition?Die wichtigen Daten auf der Root-Partition ändern
sich nur sehr selten. Dateien wie
/kernel und der Inhalt
/etc werden nur bei der Wartung des
Systems geändert, oder wenn Benutzer ihre
Passwörter ändern. Wenn das System in den
30 Sekunden nach einer solchen Änderung
abstürzt, ist es möglich, das Daten verloren
gehen. Dieses Risiko ist in den meisten Fällen
unerheblich, aber es ist vorhanden. Wenn das zu viel
Risiko ist, dann sollten Sie Soft Updates nicht auf der
Root-Partition einsetzen./ war schon immer eine der
kleinsten Partitionen. Standardmäßig legt
FreeBSD das Verzeichnis /tmp direkt
auf /. Wenn in Ihrem
/tmp viel Betrieb ist, kann es
gelegentlich zu den oben beschriebenen Platzproblemen
kommen. Um das Problem zu lösen, sollten sie einen
symbolischen Link von /tmp nach
/var/tmp legen.Was stimmt mit meinem ccd nicht?Das Symptom hierfür ist:&prompt.root; ccdconfig -C
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or formatDas geschieht für gewöhnlich, wenn Sie
versuchen, die c Partitionen, die
standardmäßig vom Typ
unbenutzt sind, zu verbinden. Der
ccd-Treiber verlangt Partitionen vom Typ FS_BSDFFS.
Editieren Sie den Plattenlabel der Platten, die Sie zu
verknüpfen versuchen und ändern Sie die Typen
der Partitionen in 4.2BSD.Warum kann ich den Plattenlabel meines ccd nicht
editieren?Das Symptom hierfür ist:&prompt.root; disklabel ccd0
(hier wird etwas vernünftiges ausgegeben; versuchen wir nun, es zu editieren)
&prompt.root; disklabel -e ccd0
(editiern, speichern, beenden)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial labelDer Grund ist, dass der von ccd
zurückgelieferte Plattenlabel ein
vorgetäuschter ist, der sich nicht
wirklich auf der Platte befindet. Sie können das
Problem beheben, indem Sie ihn explizit
zurückschreiben, wie z.B. hier:&prompt.root; disklabel ccd0 > /tmp/disklabel.tmp
&prompt.root; disklabel -Rr ccd0 /tmp/disklabel.tmp
&prompt.root; disklabel -e ccd0
(nun wird es funktionieren)Kann ich andere fremde Dateisysteme unter FreeBSD
mounten?FreeBSD unterstützt verschiedene fremde
Dateisysteme.Digital UNIXUFS-CDROMs können unter FreeBSD direkt
gemountet werden. Das Mounten von Partitionen von
Digital &unix; und anderen Systemen, die UFS
unterstützen, könnte schwieriger sein,
abhängig von den Details der
Plattenpartitionierung des betreffenden
Betriebssystems.&linux;FreeBSD unterstützt
ext2fs-Partitionen. Unter
&man.mount.ext2fs.8; finden Sie weitere
Informationen.&windowsnt;Ein NTFS-Treiber, der nur Lesezugriffe gestattet,
ist Teil von &os;. Weitere Informationen entnehmen
Sie bitte der Hilfeseite &man.mount.ntfs.8;.FATFreeBSD enthält ein FAT-Treiber, der Lese-
und Schreibzugriffe ermöglicht. Weitere
Informationen entnehmen Sie bitte der Hilfeseite
&man.mount.msdosfs.8;.FreeBSD unterstützt auch verschiedene
Netzwerk-Dateisysteme, wie NFS (&man.mount.nfs.8;), NetWare
(&man.mount.nwfs.8;), sowie die SMB-Dateisysteme von
Microsoft (&man.mount.smbfs.8;).Wie mounte ich eine erweiterte DOS-Partition?Die erweiterten DOS-Partitionen befinden sich hinter
ALLEN primären Partitionen. Wenn sich zum Beispiel
eine Partition E als sekundäre
DOS-Partition auf Ihrem zweiten SCSI-Laufwerk befindet,
müssen Sie die speziellen Dateien für
Slice 5 im Verzeichnis
/dev erstellen und dann
/dev/da1s5 mounten:&prompt.root; cd /dev
&prompt.root; ./MAKEDEV da1s5
&prompt.root; mount -t msdos /dev/da1s5 /dos/eLassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Gibt es ein verschlüsselndes Dateisystem
für &os;?Verwenden Sie FreeBSD 5.0 oder neuer, sollten Sie
&man.gbde.8; lesen. Für ältere Versionen gibt es
den Port
security/cfs.Wie kann ich den &windowsnt;-Loader zum Booten von
FreeBSD verwenden?Das grundsätzliche Vorgehen besteht darin,
dass Sie den ersten Sektor Ihrer eigentlichen
FreeBSD-Rootpartition in eine Datei auf der
DOS/&windowsnt;-Partition kopieren. Angenommen, sie nennen
die Datei etwa c:\bootsect.bsd (durch
c:\bootsect.dos inspiriert), dann
können Sie die Datei c:\boot.ini
etwa wie folgt editieren:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="FreeBSD"
C:\="DOS"
Falls FreeBSD auf derselben Platte, wie die
&windowsnt;-Bootpartition installiert ist, kopieren Sie
einfach /boot/boot1 nach
C:\BOOTSECT.BSD. Falls FreeBSD auf
einer anderen Platte installiert ist, wird
/boot/boot1 nicht funktionieren; Sie
brauchen in diesem Fall
/boot/boot0./boot/boot0 muss mit
sysinstall installiert werden. Wählen Sie dazu den
FreeBSD-Bootmanager aus, wenn Sie gefragt werden, ob sie
einen Bootmanager installieren wollen. Dieser Schritt ist
notwendig, weil /boot/boot0 eine
leere Partitionstabelle enthält, die von sysinstall
ausgefüllt wird, bevor
/boot/boot0 in den MBR kopiert
wird.Sie dürfen auf gar keinen Fall einfach
/boot/boot0 statt
/boot/boot1 kopieren. Wenn Sie das
doch tun sollten, wird Ihre Partitionstabelle
überschrieben und Ihr Rechner wird nicht mehr
starten!Wenn der Bootmanager von FreeBSD gestartet wird, merkt
er sich das zuletzt gestartet Betriebssystem, indem er
dessen Partition als aktiv markiert. Danach kopiert er
sich selbst (alle 512 Bytes) in den MBR. Wenn Sie also
einfach /boot/boot0 nach
C:\BOOTSECT.BSD kopieren, würde
der Bootmanager eine leere Partitionstabelle (mit einem
als aktiv markiertem Eintrag) in den MBR kopieren.Wie boote ich FreeBSD und &linux; mit LILO?Falls sich FreeBSD und &linux; auf derselben Platte
befinden, folgen Sie einfach den Installationsanweisungen
von LILO zum Booten eines Nicht-&linux;-Betriebssystems.
Ganz knapp sind dies:Booten Sie &linux; und fügen Sie die folgenden
Zeilen in die Datei /etc/lilo.conf
ein:other=/dev/hda2
table=/dev/hda
label=FreeBSD(hierbei wird angenommen, dass Ihre
FreeBSD-Partition &linux; unter
/dev/hda2 bekannt ist; ändern
Sie dies entsprechend Ihren Einstellungen). Führen
Sie nun als root den Befehl
lilo aus und Sie sind fertig.Falls FreeBSD sich auf einer anderen Platte befindet,
müssen Sie loader=/boot/chain.b zu
den LILO-Angaben hinzufügen. Zum Beispiel:other=/dev/dab4
table=/dev/dab
loader=/boot/chain.b
label=FreeBSDIn einigen Fällen könnte es sein, dass
Sie beim FreeBSD-Bootloader die BIOS-Laufwerksnummer
angeben müssen, um von der zweiten Platte booten zu
können. Wenn Ihre FreeBSD-SCSI-Platte vom BIOS zum
Beispiel als BIOS-Platte 1 erkannt wird, müssen Sie
am Prompt des FreeBSD-Bootloaders eingeben:Boot: 1:da(0,a)/kernelSeit Version 2.2.5 können Sie &man.boot.8; so
konfigurieren, dass das beim Booten automatisch
geschieht.Das
&linux;+FreeBSD mini-HOWTO ist ein guter Ratgeber bei
Fragen zur Interaktion von FreeBSD und &linux;.Wie boote ich FreeBSD und &linux; mit BootEasy?Installieren Sie LILO am Anfang Ihrer
&linux;-Bootpartition, anstatt im Master Boot Record. Sie
können LILO dann von BootEasy aus booten.Wenn Sie &windows; 95 und &linux; benutzen, wird das
ohnehin empfohlen, um es einfacher zu machen, &linux; wieder
zu booten, wenn es nötig werden sollte, dass Sie
&windows; 95 neu installieren (&windows; 95 ist ein
eifersüchtiges Betriebssystem, das kein anderes
Betriebssystem im Master Boot Sektor duldet).Wie kann ich das ??? des
Boot-Managers durch etwas Sinnvolles ersetzen?Solange Sie den Boot-Manager nicht komplett neu
schreiben, gar nicht. Allerdings gibt es in der Kategorie
sysutils der Ports diverse
Boot-Manager, die diese Funktionalität
bieten.Ich habe ein Wechsellaufwerk. Wie benutze ich
es?Ob es sich um ein Wechsellaufwerk handelt, um ein
&iomegazip; oder ein EZ-Laufwerk (oder sogar ein
Diskettenlaufwerk, wenn Sie es auf diese Weise benutzen
möchten), oder um eine neue Festplatte - wenn es
einmal installiert und vom System erkannt ist und Sie Ihre
Kassette/Diskette/was_auch_immer eingelegt haben, ist das
Vorgehen bei allen Geräten ziemlich
ähnlich.(dieser Abschnitt basiert auf Mark
Mayo's ZIP-FAQ)Wenn es sich um ein ZIP- oder Diskettenlaufwerk
handelt, und sich bereits ein DOS-Dateisystem darauf
befindet, können Sie einen Befehl wie diesen für
eine Diskette benutzen:&prompt.root; mount -t msdos /dev/fd0c /floppyoder diesen:&prompt.root; mount -t msdos /dev/da2s4 /zipfür eine ZIP-Disk mit der
Herstellerkonfiguration.Benutzen Sie bei anderen Platten &man.fdisk.8; oder
&man.sysinstall.8;, um herauszufinden, wie sie
konfiguriert sind.Die restlichen Beispiele sind für ein
ZIP-Laufwerk unter da2, der dritten SCSI-Platte.Wenn es sich nicht um eine Diskette oder eine
Wechselplatte handelt, die Sie mit anderen Leuten
austauschen wollen, ist es wahrscheinlich besser, ein
BSD-Dateisystem darauf zu installieren. Hierdurch
bekommen Sie Unterstützung für lange Dateinamen,
eine mindestens doppelt so hohe Leistungsausnutzung und
wesentlich höhere Stabilität. Zunächst
müssen Sie die Partitionen/Dateisysteme auf DOS-Ebene
nochmals erstellen. Sie können entweder
&man.fdisk.8; oder /stand/sysinstall
benutzen, oder, bei einem kleinen Laufwerk, dem Sie eine
Unterstützung für mehrere Betriebssysteme nicht
zumuten wollen, entfernen Sie einfach die komplette FAT
Partitionstabelle (Slices) und benutzen Sie einfach die
BSD-Partitionierung:&prompt.root; dd if=/dev/zero of=/dev/rda2 count=2
&prompt.root; disklabel -Brw da2 autoSie können disklabel oder
/stand/sysinstall benutzen, um mehrere
BSD-Partitionen zu erstellen. Dies werden Sie sicherlich
bei einer fest eingebauten Platte wollen, aber bei einem
Wechsellaufwerk wie einem ZIP ist das wahrscheinlich
irrelevant.Zum Schluß erstellen Sie ein neues Dateisystem -
dieses befindet sich auf unserem ZIP-Laufwerk und belegt
die gesamte Platte:&prompt.root; newfs /dev/rda2canschließend mounten Sie es:&prompt.root; mount /dev/da2c /zipUnd sicherlich ist es keine schlechte Idee, eine Zeile
ähnlich der folgenden in die Datei
/etc/fstab einzufügen, damit Sie
in Zukunft nur mount /zip einzugeben
brauchen:/dev/da2c /zip ffs rw,noauto 0 0Wieso erhalte ich die Meldung Incorrect
super block beim Mounten einer CDROM?Sie müssen &man.mount.8; mitteilen, was für
ein Gerät Sie mounten wollen. Genauere Informationen
dazu finden Sie im Kapitel Optische
Speichermedien des Handbuch, genauer gesagt im
Abschnitt Benutzung
von Daten-CDs.Wieso erhalte ich die Meldung Device not
configured, wenn ich eine CDROM
mounte?Das bedeutet im allgemeinen, dass sich keine
CDROM im Laufwerk befindet, oder, dass das Laufwerk
auf dem Bus nicht sichtbar ist. Dieses Problem wird im
Kapitel Benutzung
von Daten-CDs des Handbuchs ausführlich
diskutiert.Wieso werden alle Sonderzeichen in den Dateinamen auf
meinen CDs durch ? ersetzt, wenn ich die CD
unter FreeBSD benutze?Wahrscheinlich werden auf der CDROM die
Joliet Erweiterungen für die
Speicherung von Datei- und Verzeichnisnamen benutzt.
Werfen Sie einen Blick in das Kapitel Erzeugung von
CD-ROMs im Handbuch, speziell in den Abschnitt
über Benutzung
von Daten-CDs.[Anmerkung des Übersetzers: Es geht hier nicht um
die deutschen Sonderzeichen, da diese schon im normalen
ISO8859-1 enthalten sind. Die Probleme treten auf, wenn
man z.B. russische CDs (ISO8859-5) verwendet.]Ich habe eine CD mit FreeBSD gebrannt und kann sie
nicht mit anderen Betriebssystemen lesen. Warum?Sie haben wahrscheinlichste eine Datei direkt auf CD
geschrieben, statt ein ISO 9660-Dateisystems erzeugt zu
haben. Werfen Sie einen Blick in das Kapitel Erzeugung von
CD-ROMs im Handbuch, speziell in den Abschnitt
über reine
Daten-CDs.Wie kann ich ein Image einer Daten-CD erzeugen?Diese Information finden Sie im Abschnitt Kopieren
von CD-ROMs des Handbuchs. Weitere Informationen
über die Arbeit mit CD-ROMs finden Sie im Abschnitt
Erzeugen von
CD-ROMs im Kapitel Speichermedien des
Handbuchs.Wieso kommt mount nicht meiner
Audio-CD zurecht?Wenn Sie versuchen sollten, eine Audio-CD zu mounten,
erhalten Sie die Meldung cd9660: /dev/acd0c:
Invalid argument. Der Grund dafür ist,
dass mount nur für
Dateisysteme vorgehen ist. Audio CDs habe kein
Dateisystem, sondern nur Daten. Wenn Sie eine Audio CD
auslesen wollen, brauchen Sie ein entsprechendes Programm
wie z.B. audio/xmcd
aus den Ports.Wie nutze ich mount für eine
Multi-Session CD?Standardmäßig benutzt &man.mount.8; den
letzten (aktuellsten) Daten-Track der CD. Wenn Sie eine
ältere Session benutzen wollen, müssen Sie diese
mit der Option definieren. Weitere
Informationen finden Sie in der Onlinehilfe zu
&man.mount.cd9660.8;Wie lasse ich normale Benutzer Disketten, CDROMs und
andere Wechseldatenträger mounten?Normale Benutzer können dazu berechtigt werden,
Geräte zu mounten. Das geht so:Setzen Sie als root die
sysctl-Variable vfs.usermount auf
1:&prompt.root; sysctl -w vfs.usermount=1Ordnen Sie als root den
Block-Geräten, die den Wechsellaufwerken
zugeordnet sind, die entsprechenden Zugriffsrechte
zu.Wenn Sie zum Beispiel den Benutzer den Zugriff auf
das erste Diskettenlaufwerk zu erlauben
wollen:&prompt.root; chmod 666 /dev/fd0Um den Mitgliedern der Gruppe
operator den Zugriff auf das
CDROM zu gestatten:&prompt.root; chgrp operator /dev/acd0c
&prompt.root; chmod 640 /dev/acd0cAb &os; 5.X müssen Sie
zusätzlich /etc/devfs.conf
anpassen, weil diese Einstellungen ansonsten beim
Systemneustart verloren gehen.Damit normale Benutzer bespielsweise das erste
Diskettenlaufwerk mounten können, fügen Sie
als root folgende Zeilen in
/etc/devfs.conf ein:# Allen Benutzern erlauben, das erste Diskettenlaufwerk zu mounten.
own /dev/fd0 root:operator
perm /dev/fd0 0666Damit alle Mitglieder der Gruppe
operator das CD-ROM-Laufwerk
mounten können, die folgenden Zeilen:# Alle Mitglieder der Gruppe operator dürfen CD-ROMs mounten.
own /dev/acd0 root:operator
perm /dev/acd0 0660Fügen Sie zum Abschluss die Zeile
vfs.usermount=1
in die Datei /etc/sysctl.conf
ein, damit die Einstellung bei einem Neustart des
Systems automatisch erhalten bleibt.Alle Benutzer können nun
/dev/fd0 auf ein Verzeichnis, das
ihnen gehört, mounten:&prompt.user; mkdir ~/my-mount-point
&prompt.user; mount -t msdos /dev/fd0 ~/my-mount-pointDie zur Gruppe operator
gehörenden Benutzer können nun
/dev/acd0c auf ein Verzeichnis, das
ihnen gehört, mounten:&prompt.user; mkdir ~/my-mount-point
&prompt.user; mount -t cd9660 /dev/acd0c ~/my-mount-pointDas Unmounten des Gerätes ist simpel:&prompt.user; umount ~/my-mount-pointDie Aktivierung von vfs.usermount
hat jedoch negative Auswirkungen auf Sicherheitsaspekte.
Ein besserer Weg, um auf &ms-dos;-formatierte
Datenträger zuzugreifen, ist die Benutzung des
Packages
emulators/mtools.Denken Sie daran, dass Sie die Gerätenamen in
diesen Beispielen an Ihre Konfiguration anpassen
müssen.Wieso geben die Befehle du und
df unterschiedliche Werte für den
freien Plattenplatz aus?Der Grund ist die Funktionsweise von
du und df.
du geht durch einen Dateibaum,
ermittelt die Größe jeder einzelnen Datei, und
gibt die Summe aus. df fragt lediglich
das Dateisystem wie viel Platz noch frei ist. Das
scheint zwar auf den ersten Blick sehr ähnlich zu
sein; allerdings wird sich ein leeres Verzeichnis auf die
Ausgabe von df auswirken, während
es auf das Ergebnis von du keinen
Einfluss hat.Wenn Sie eine Datei löschen, während sie von
einem Programm genutzt wird, wird diese Datei erst
gelöscht, wenn sie vom Programm freigegeben wird.
Allerdings wird die Datei sofort aus dem Verzeichnis
entfernt. Sie können dieses Verhalten mit einem
Programm wie more sehr einfach
nachvollziehen. Dazu brauchen Sie nur eine Datei, die
groß genug ist, um die Ausgabe von
du und df zu
beeinflussen. Bei der Größe aktueller Platten
muss diese Datei schon sehr
groß sein! Wenn Sie diese Datei löschen,
während Sie sie sich in more
anzeigen lassen, hat more kein Problem.
Der Eintrag für die Datei wird lediglich aus dem
Verzeichnis entfernt, damit kein anderes Programm mehr
darauf zugreifen kann. Laut du ist die
Datei verschwunden – es hat das Verzeichnis
untersucht und die Datei nicht gefunden. Laut
df ist die Datei aber vorhanden, da sie
im Dateisystem immer noch Platz belegt. Sobald Sie
more beenden, werden die Ergebnisse von
du und df wieder
übereinstimmen.Bitte beachten Sie, dass die Freigabe des
Plattenplatzes durch die Soft Updates um bis zu 30 Sekunden
verzögert werden kann.Die oben beschriebene Situation tritt sehr häufig
auf Web-Servern auf. Viele Anwender installieren einen
FreeBSD Web-Server und vergessen die Rotation der
Logfiles, bis irgendwann die Partition
/var überläuft. Der
Administrator löscht die Datei, aber das System
beschwert sich immer noch über fehlenden
Plattenplatz. Die Datei wird erst freigegeben, wenn der
Web-Server beendet und neu gestartet wird; dadurch kann
das System den Plattenplatz freigeben. Um solche und
ähnliche Unfälle zu verhindern, sollten Sie
&man.newsyslog.8; einsetzen.Wie kann ich den Swap-Bereich
vergrößern?Im Kapitel Konfiguration und
Tuning des Handbuches gibt es einen Abschnitt
mit einer Schritt-für-Schritt Anleitung.Warum ist meine Festplatte unter &os; kleiner, als sie
laut Hersteller sein soll?Festplattenhersteller definieren ein Gigabyte als eine
Milliarde Bytes, für &os; ist ein Gigabyte hingegen
1.073.741.824 Bytes groß. Aus diesem Grund wird
für eine Platte, die laut Herstellerangaben
80 GB groß ist, während des Bootvorgangs
eine Größe von 76.319 MB angezeigt.Beachten Sie auch, dass &os; (in der Voreinstellung)
8 % des Plattenplatzes für sich
reserviert.Warum kann eine Partition zu mehr als 100% gefüllt
sein?Ein Teil jeder UFS Partition, in der Vorgabe sind das 8%,
ist für das Betriebssystem und den Benutzer
root reserviert. &man.df.1; rechnet
diesen Teil bei der Ausgabe der Capacity
Spalte nicht ein, so dass dort Werte über 100%
angezeigt werden können. Die Anzahl der Blöcke in
der blocks Spalte ist ebenfalls um 8%
größer als die Summe der benutzten und
verfügbaren Blöcke (die Spalten
Used und Avail).Wie viel Platz reserviert wird, können Sie mit der
Option von &man.tunefs.8; einstellen.SystemadministrationWo befinden sich die Konfigurationsdateien für
den Systemstart?/etc/defaults/rc.conf (siehe
&man.rc.conf.5;) ist die primäre Konfigurationsdatei.
Die Startskripten des Systems, wie /etc/rc
und /etc/rc.d (siehe &man.rc.8;)
inkludieren diese Datei.
Ändern Sie diese Datei nicht!
Wenn Sie den Wert einer der in
/etc/defaults/rc.conf gesetzten
Variablen ändern wollen, fügen Sie die
entsprechende Zeile in die Datei
/etc/rc.conf ein und ändern
die Zeile dort.Wenn Sie zum Beispiel den mitgelieferten DNS-Server
named aktivieren wollen,
müssen Sie lediglich das folgende Kommando
eingeben:&prompt.root; echo named_enable="YES" >> /etc/rc.confWenn Sie lokale Server starten wollen, müssen
Sie passende Shellskripten im Verzeichnis
/usr/local/etc/rc.d/ ablegen. Die
Dateien müssen als ausführbar markiert sein und
die Endung .sh haben.Wie kann ich am Einfachsten einen Benutzer
hinzufügen?Benutzen Sie den Befehl &man.adduser.8; und für
kompliziertere Fälle den Befehl &man.pw.8;.Benutzen Sie den Befehl &man.rmuser.8;, um einen
Benutzer wieder zu löschen. Sie können, wenn
nötig. auch &man.pw.8; benutzen.Warum erhalte ich Meldungen wie root: not
found, nachdem ich meine crontab geändert
habe?Die übliche Ursache dieses Problems ist,
dass Sie die crontab des Systems
(/etc/crontab) geändert und dann
mit &man.crontab.1; installiert haben:&prompt.root; crontab /etc/crontabDiese Vorgehensweise ist falsch. Die crontab des
Systems hat ein anderes Format als die crontabs für
die einzelnen Benutzer, die mit &man.crontab.1;
aktualisiert werden (genauere Informationen über die
Unterschiede erhalten Sie in &man.crontab.5;).Wenn Sie so vorgegangen sind, ist die zweite crontab
einfach nur eine Kopie von
/etc/crontab, allerdings im falschen
Format. Löschen Sie sie mit dem folgenden
Befehl:&prompt.root; crontab -rWenn Sie /etc/crontab wieder
ändern müssen, sollten Sie einfach gar nichts
tun, um &man.cron.8; über die Änderung zu
informieren, er erkennt die Änderung
automatisch.Wenn Sie ein Kommando jeden Tag, jede Woche oder jeden
Monat ausführen lassen wollen, ist es wahrscheinlich
einfacher, wenn Sie entsprechende Shell-Scripte in
/usr/local/etc/periodic ablegen.
Diese werden dann von &man.periodic.8; zusammen mit den
anderen regelmäßigen Tätigkeiten
ausgeführt.Der eigentliche Grund für den Fehler ist die
Tatsache, dass die crontab des Systems ein
zusätzliches Feld enthält; dieses Feld gibt an,
mit welcher Benutzerkennung der Befehl ausgeführt
werden soll. In der mitgelieferten crontab ist das bei
allen Einträgen die Benutzerkennung
root. Wenn diese Datei als die
crontab des Benutzers username (die
nicht mit der crontab des Systems
identisch ist) verwendet wird, hält &man.cron.8; die
Zeichenkette root für den Namen
des zu startenden Programmes, aber dieses Programm gibt es
nicht.Wieso meldet mir &man.su.1; you are not in
the correct group to su root, wenn ich mit
&man.su.1; root werden will?Das ist ein Sicherheits-Feature. Wenn Sie mit
&man.su.1; zum Account root (oder
jedem anderen Account mit Super-User-Privilegien) wechseln
wollen, müssen Sie ein Mitglied der Gruppe
wheel sein. Wenn es dieses Feature
nicht gäbe, könnte jeder, der einen Account auf
dem System hat und zufällig das Passwort
für root erfährt, mit
Super-User-Rechten auf das System zugreifen. Durch dieses
Feature ist die Lage anders, wenn Sie nicht Mitglied von
wheel sind, können Sie nicht
einmal versuchen, dass Passwort
einzugeben.Um einem Benutzer zu erlauben, mit &man.su.1;
root zu werden, müssen Sie ihn
nur in die Gruppe wheel
eintragen.Ich habe einen Fehler in der
rc.conf oder einer der anderen
Dateien für den Systemstart und jetzt kann ich sie
nicht ändern, weil das Dateisystem
read-only ist. Was kann ich tun?Wenn Sie aufgefordert werden, den Pfadnamen der Shell
einzugeben, drücken Sie einfach
ENTER. Geben Sie danach mount
/ ein, um das Root-Dateisystem im
Schreib/Lese-Modus zu mounten. Sie werden wahrscheinlich
auch mount -a -t ufs ausführen
müssen, um das Dateisystem mit Ihrem Lieblingseditor
zu mounten. Wenn Ihr Lieblingseditor auf einem
Netzwerklaufwerk liegt, müssen Sie entweder das
Netzwerk von Hand konfigurieren oder einen Editor
benutzen, der auf einem lokalen Laufwerk vorhanden ist,
z.B. &man.ed.1;.Wenn Sie einen bildschirmorientierten Editor wie zum
Beispiel &man.vi.1; oder &man.emacs.1; benutzen wollen,
werden Sie auch den Befehl export
TERM=cons25 ausführen müssen, damit
diese Editoren die richtigen Einstellungen aus der
Datenbank &man.termcap.5; übernehmen.Sobald Sie diese Schritte ausgeführt, können
Sie den Fehler in der /etc/rc.conf
ganz normal beheben. Die Fehlermeldungen, die Ihnen
unmittelbar nach den Startmeldungen des Kernels angezeigt
wurden, sollten Ihnen die Nummer der Zeile mit dem Fehler
melden.Wieso habe ich habe Probleme, meinen Drucker
einzurichten?Bitte sehen Sie im Handbucheintrag über Drucker
nach. Es sollte die meisten Ihrer Probleme behandeln.
Lesen sie den Handbucheintrag über
Drucker.Einige Drucker benötigen einen auf dem Rechner
laufenden Treiber, um drucken zu können. Diese
so genannten WinPrinter oder
GDI-Drucker werden von FreeBSD nicht
unterstützt und an diesem Zustand wird sich wohl auch
nichts ändern. Wenn Ihr Drucker nicht unter DOS oder
&windowsnt; 4.0 verwendet werden kann, handelt es sich um
einen WinPrinter und wird in der Regel auch
nicht unter FreeBSD funktionieren. Ihre einzige Chance,
einen dieser Drucker benutzen können, ist der Port
ports/print/pnm2ppa.Wie kann ich die Tastaturbelegung meines Systems
korrigieren?Informationen dazu finden Sie im Kapitel länderspezifische
Einstellungen des Handbuchs, insbesondere im
Abschnitt Konfiguration
der Konsole.Wieso erhalte ich beim Start des Systems Meldungen wie
unknown: <PNP0303> can't assign
resources?Die nachfolgende Erklärung stammt aus einer Mail
auf der Mailingliste freebsd-current.
&a.wollman;, 24 April 2001Die Geräte, für die can't assign
resources-Meldungen ausgegeben werden, sind
Legacy ISAGeräte, für die ein nicht
PNP-fähiger Treiber in den Kernel eingebunden
wurde. Dabei handelt es sich um Geräte wie den
Tastaturkontroller, den programmierbaren
Interrupt-Kontroller und diverse andere
Standardkomponenten. Die Ressourcen können nicht
zugewiesen werden, weil es schon einen Treiber gibt, der
diese Ressourcen benutzt.
Wieso funktionieren die Benutzer-Quotas nicht
richtig?
+
+ Es kann sein, dass Ihr Kernel nicht für den
+ Einsatz von Quotas konfiguriert ist. Damit Sie mit
+ Quotas arbeiten können, müssen Sie folgende
+ Zeile in Ihre Kernelkonfigurationsdatei aufnehmen und
+ den Kernel neu bauen:
+
+ options QUOTA
+
+ Weitere Informationen zum Einsatz von Quotas
+ finden Sie im entsprechenden
+ Abschnitt
+ des Handbuchs.
+
+
Benutzen Sie keine Quotas für
/.Erstellen Sie die Quotas-Datei in dem Dateisystem,
für das die Quotas gelten sollen, z.B.:FilesystemQuota file/usr/usr/admin/quotas/home/home/admin/quotas……Unterstützt FreeBSD IPC-Grundfunktionen von
System V?Ja, FreeBSD unterstützt IPC im Stil von System V
einschließlich gemeinsamen Speicher, Nachrichten und
Semaphoren bereits mit dem
GENERIC-Kernel. Wenn Sie einen
angepassten Kernel verwenden, müssen Sie die folgenden
Zeilen in Ihre Kernelkonfigurationsdatei einfügen:
options SYSVSHM
options SYSVSHM # enable shared memory
options SYSVSEM # enable for semaphores
options SYSVMSG # enable for messaging
Danach kompilieren und installieren Sie den neuen
Kernel.Welchen Mail-Server kann ich an Stelle von Sendmail
benutzen?Sendmail
ist zwar der Mail-Server, der bei FreeBSD
standardmäßig installiert wird, aber Sie
können Ihn problemlos durch einen anderen MTA (z.B.
aus den Ports) ersetzen.In der Port-Sammlung gibt es bereits viele
verschiedene MTAs, mail/exim,
mail/postfix,
mail/qmail, sowie
mail/zmailer
sind einige der beliebteren Alternativen.Konkurrenz belebt das Geschäft und die Tatsache,
dass Sie die Qual der Wahl haben, ist ein Vorteil.
Daher sollten Sie Fragen wie Ist Sendmail besser
als Qmail? besser nicht auf den Mailinglisten
stellen. Wenn Sie dieses Thema interessiert, sollten sie
zunächst die Archive durchsehen. Die Vorteile und
Nachteile jedes einzelnen der verfügbaren MTAs sind
schon mehrere Male bis zur Erschöpfung diskutiert
worden.Was kann ich machen, wenn ich das Rootpasswort
vergessen habe?Keine Panik! Starten Sie Ihr System neu und
geben Sie boot -s an der
Eingabeaufforderung Boot: ein, um in den
Einzelbenutzermodus zu gelangen. Bei der Frage danach,
welche Shell benutzt werden soll, drücken Sie einfach
ENTER. Nun erscheint die Eingabeaufforderung
&prompt.root;. Geben Sie mount -u /
ein, um Ihr Root-Dateisystem für Lese- und
Schreibzugriffe zu remounten und dann mount
-a, um alle Dateisysteme zu remounten. Mit
passwd root können Sie das
Rootpasswort ändern und mit &man.exit.1;
können Sie mit dem Booten fortfahren.Wie verhindere ich, dass das System mit
CtrlAltDelete
rebootet werden kann?Falls Sie syscons (den Standard-Treiber für die
Konsole) benutzen, fügen Sie folgende Zeile in Ihre
Kernelkonfigurationsdatei ein:options SC_DISABLE_REBOOTFalls Sie den Konsolen-Treiber PCVT verwenden, benutzen
Sie stattdessen die folgende Zeile:options PCVT_CTRL_ALT_DELWie kann ich Textdateien von DOS Systemen auf &unix;
Systemen verwenden?Benutzen Sie diesen Perl-Befehl:&prompt.user; perl -i.bak -npe 's/\r\n/\n/g' file ...file ist/sind die zu verarbeitende(n) Datei(en). Die
Änderungen erfolgen in der Originaldatei, die zuvor
mit der Erweiterung .bak gesichert wird.Alternativ können Sie den Befehl &man.tr.1;
benutzen:&prompt.user; tr -d '\r' < dos-text-file > unix-filedos-text-file ist die
Datei, die den Text im DOS-Format enthält und
unix-file wird die konvertierte
Ausgabe enthalten. Diese Möglichkeit könnte
etwas schneller sein, als die Benutzung von Perl.Wie beende ich Prozesse namentlich?Benutzen Sie &man.killall.1;.Warum nervt su mich damit, dass ich nicht in der
ACL von root bin?Der Fehler stammt vom verteilten
Authentifizierungssystem Kerberos. Das Problem ist nicht
ernsthaft, aber störend. Sie können entweder su
mit der Option -K benutzen, oder Kerberos deinstallieren,
wie in der nächsten Frage beschrieben.Wie deinstalliere ich Kerberos?Um Kerberos aus dem System zu entfernen, müssen
Sie die bin-Distribution der von Ihnen benutzen RELEASE
neu installieren. Wenn Sie die CDROM besitzen,
können Sie sie mounten (wir nehmen an, unter /cdrom)
und folgende Schritte ausführen:&prompt.root; cd /cdrom/bin
&prompt.root; ./install.shAlternativ können Sie alle Zeilen mit
MAKE_KERBEROS aus der
/etc/make.conf entfernen und dann ein
make world durchführen.Wo ist /dev/MAKEDEV hin?Ab FreeBSD 5.X werden Geräte automatisch
von &man.devfs.8; zur Verfügung gestellt. Die
Gerätetreiber erstellen die Gerätedateien,
wenn diese benötigt werden. Das Skript
/dev/MAKEDEV wird nicht mehr
gebraucht.Wenn Sie FreeBSD 4.X oder eine frühere
Version benutzen und /dev/MAKEDEV
fehlt, dann haben Sie ein Problem. Kopieren Sie das
Skript aus den Systemquellen. Es liegt wahrscheinlich
unter /usr/src/etc/MAKEDEV.Wie füge ich Pseudo-Terminals zum System
hinzu?Wenn Sie viele Benutzer von telnet, ssh, X oder
screens haben, könnte es sein, dass Ihnen die
Pseudo-Terminals ausgehen. So fügen Sie weitere
hinzu:Erstellen und installieren Sie einen neuen Kernel
mit der Zeilepseudo-device pty 256in der Konfigurationsdatei.Führen Sie die Befehle&prompt.root; cd /dev
&prompt.root; ./MAKEDEV pty{1,2,3,4,5,6,7}aus, um 256 Geräteeinträge für die
neuen Terminals zu erstellen.Editieren Sie die Datei
/etc/ttys und fügen Sie
Zeilen für jeden der 256 Terminals ein. Sie
sollten so aussehen, wie die existierenden
Einträge, also etwa so:ttyqc none networkDie Reihenfolge der Buchstabenzuordnung lautet mit
einem regulären Ausdruck
tty[pqrsPQRS][0-9a-v].Starten Sie das System mit dem neuen Kernel
erneut, wenn Sie bereit sind.Warum kann ich das Gerät snd0 nicht
erstellen?Es gibt kein Gerät snd.
Diese Bezeichnung ist nur ein Sammelbegriff für die
diversen Geräte, die zusammen das Soundsystem von
FreeBSD bilden, wie zum Beispiel
mixer,
sequencer, und
dsp.So erzeugen Sie diese Geräte:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Wie lade ich /etc/rc.conf und
starte /etc/rc neu, ohne zu
rebooten?Gehen Sie in den Einzelbenutzermodus und dann
zurück in den Mehrbenutzermodus.Geben Sie auf der Konsole folgendes ein:&prompt.root; shutdown now
(Hinweis: ohne -r oder -h)
&prompt.root; return
&prompt.root; exitIch wollte auf das aktuelle -STABLE updaten, und
plötzlich läuft hier ein -BETAx, -RC oder
-PRERELEASE. Was ist passiert?Kurze Antwort: Das ist nur ein anderer Name. RC ist
die Abkürzung für Release
Candidate. Es bedeutet, dass eine neue
Release bevorsteht. Und -PRERELEASE bedeutet bei FreeBSD
normalerweise, dass die Sourcen zur Vorbereitung auf eine
Release eingefroren wurden (in einigen
Releases wurde -BETA anstelle von -PRERELEASE
verwendet).Ausführliche Antwort: Bei FreeBSD gibt es zwei
Quellen für Releases. Die Major Releases wie
4.0-RELEASE und 5.0-RELEASE werden aus dem aktuellen Stand
des Hauptzweiges der Entwicklung (besser und kürzer
als -CURRENT bekannt)
erzeugt. Minor Releases wie 4.1-RELEASE or 5.2-RELEASE
stammen aus dem aktiven -STABLE Zweig. Seit 4.3-RELEASE
gibt es es nun auch einen eigenen Zweig für jede
Release, der für die Leute gedacht ist, die ein sehr
konservativ weiterentwickeltes System benötigen (im
Normalfall also nur Updates aus dem Bereich
Sicherheit).Bevor in einem Zweig eine Release erfolgt, muss
in diesem Zweig ein bestimmter Prozess ablaufen. Ein
Teil dieses Prozesses ist der code freeze,
der Stop der Weiterentwicklung. Sobald dieser Schritt
erfolgt ist, wird der Name des Zweiges geändert, um
anzuzeigen, dass demnächst eine Release erfolgen
wird. Wenn der Zweig zum Beispiel 4.5-STABLE genannt
wurde, wird der Name in 4.6-PRERELEASE geändert, um
dies zu verdeutlichen. Weiterhin ist das ein Zeichen, dass
jetzt besonders intensiv getestet werden sollte. In
dieser Phase können Fehler im Sourcecode noch
korrigiert werden. Wenn der Sourcecode so weit
gereift ist, dass eine Release
erstellt werden kann, wird der Name in 4.6-RC
geändert, um genau dies anzuzeigen. In dieser Phase
können nur noch extrem wichtige Korrekturen
aufgenommen werden. Sobald die Release (in diesem Beispiel
4.6-RELEASE) erfolgt ist, wird der Zweig in 4.6-STABLE
umbenannt.Weitere Informationen über Versionsnummern und die
verschiedenen Entwicklungszweige enthält der Artikel
Release
Engineering.Als ich versucht habe, einen neuen Kernel zu
installieren, ist das chflags fehlgeschlagen. Was mache
ich jetzt?Kurze Antwort: Ihre Sicherheitseinstellung (der
securelevel) ist wahrscheinlich größer als 0.
Sie müssen das System neu starten und den Kernel im
Single-User Modus installierten.Ausführliche Antwort: Wenn die
Sicherheitseinstellung größer als 0 ist,
erlaubt Ihnen FreeBSD nicht, die Systemflags zu
ändern. Um den aktuellen Securelevel zu ermitteln,
können Sie das folgende Kommando benutzen:&prompt.root; sysctl kern.securelevelSie können die Sicherheitseinstellung nicht
verringern, Sie müssen das System neu starten und den
Kernel im Single-User Mode installieren oder die
Sicherheitseinstellung in
/etc/rc.conf ändern und dann das
System neu starten. Weitere Detail zur
Sicherheitseinstellung erhalten Sie in &man.init.8;,
weitere Informationen zur rc.conf erhalten Sie in
/etc/defaults/rc.conf und
&man.rc.conf.5;.Ich kann die Systemzeit nicht um mehr als eine Sekunde
verstellen. Was mache ich jetzt?Kurze Antwort: Ihre Sicherheitseinstellung (der
securelevel) ist wahrscheinlich größer als 1.
Sie müssen das System neu starten und die Systemzeit
im Single-User Modus verstellen.Ausführliche Antwort: Wenn die
Sicherheitseinstellung größer als 1 ist,
erlaubt Ihnen FreeBSD nicht, die Systemzeit zu
ändern. Um den aktuellen Securelevel zu ermitteln,
können Sie das folgende Kommando benutzen:&prompt.root; sysctl kern.securelevelSie können die Sicherheitseinstellung nicht
verringern, Sie müssen das System neu starten und die
Systemzeit im Single-User Mode ändern oder die
Sicherheitseinstellung in
/etc/rc.conf ändern und dann das
System neu starten. Weitere Detail zur
Sicherheitseinstellung erhalten Sie in &man.init.8;,
weitere Informationen zur rc.conf erhalten Sie in
/etc/defaults/rc.conf und
&man.rc.conf.5;.Warum braucht &man.rpc.statd.8; 256 MByte
Speicher?Nein, das Programm hat keinen Fehler und es verbraucht
auch nicht 256 MByte Speicher. rpc.statd
projiziert nur einen übertrieben großen
Speicherbereich in seinen eigenen Adressraum.
Von einem rein technischen Standpunkt aus
ist das nichts verwerfliches, allerdings verwirrt es
Programme wie &man.top.1; und &man.ps.1;.&man.rpc.statd.8; projiziert seine Statusdatei (die in
/var liegt) in seinen
Adressraum. Um die Probleme zu vermeiden, die bei
einer Vergrößerung dieser Projektion entstehen
könnten, wird gleich ein möglichst großer
Speicherbereich benutzt. Dies kann man sehr schön im
Sourcecode sehen: Die Längenangabe beim Aufruf von
&man.mmap.2; ist 0x10000000, ein
sechzehntel des Adressraums bei IA32, oder genau 256
MByte.Warum kann ich das Dateiattribut
schg nicht löschen?Sie betreiben Ihr System mit einer erhöhten
Sicherheitsstufe. Senken Sie die Sicherheitsstufe und
versuchen Sie es dann noch einmal. Weitere Informationen
erhalten Sie im FAQ Eintrag
über Sicherheitsstufen und in der Online-Hilfe
&man.init.8;.Warum funktioniert die .shosts
Authentifizierung von SSH in neueren Version von FreeBSD
nicht mehr?Die .shosts
Authentifizierung funktioniert nicht mehr, weil
&man.ssh.1; in neueren Versionen von FreeBSD nicht mehr
SUID-root installiert wird. Um dieses
Problem zu lösen, gibt es die folgenden
Möglichkeiten:Um das Problem für immer zu lösen,
müssen Sie in /etc/make.conf
die Variable ENABLE_SUID_SSH auf
true setzen und ssh neu
übersetzen (oder make world
ausführen.Übergangsweise können Sie auch die
Dateirechte von /usr/bin/ssh auf
4555 setzen, indem Sie den Befehl
chmod 4555 /usr/bin/ssh als
root ausführen. Fügen
Sie anschließend ENABLE_SUID_SSH=
true in die Datei
/etc/make.conf ein, damit diese
Änderung erhalten bleibt, wenn Sie das
nächste Mal make world
ausführen.Was ist vnlru?vnlru schreibt vnodes auf Platte
und gibt sie wieder frei, falls das System die Grenzwert
kern.maxvnodes erreicht. Dieser Thread
des Kernel tut meistens gar nichts und wird nur aktiv,
wenn Sie extrem viel RAM haben und gleichzeitig auf viele
zehntausende kleine Dateien zugreifen.Was bedeuten die Zustände, die
top für Speicherseiten ausgibt?Speicherseiten werden vom Kernel in
verschiedenen Listen verwaltet:Active: Seiten, die vor
Kurzem benutzt wurden.Inactive: Seiten, die
länger nicht benutzt wurden.Cache: Meistens
Seiten, die vorher im Zustand Inactive
waren und noch gültige Daten enthalten. Diese
Seiten können sofort in ihrem alten Kontext oder
in einem neuen Kontext verwendet werden. Wenn eine
Seite unverändert
(clean) ist, kann
ein Zustandswechsel direkt von Active
nach Cache erfolgen.
Ob dieser Zustandswechsel möglich ist, wird durch
die Seitenersetzungsstrategie bestimmt, die der
Entwickler des VM-Systems festgelegt hat.Free: Seiten, die
keine Daten enthalten. Diese Seiten können
sofort benutzt werden, wenn Seiten im Zustand
Cache nicht benutzt werden
können. Seiten im Zustand Free
können auch während eines Interrupts
angefordert werden.Wired: Seiten, die
fest im Speicher liegen und nicht ausgelagert werden
können. Normalerweise werden solche Seiten vom
Kernel benutzt, manchmal werden Sie aber auch für
spezielle Zwecke von Prozessen verwendet.Seiten im Zustand Inactive
werden oft auf Plattenspeicher geschrieben (sozusagen
ein sync des VM-Systems). Wenn
die CPU erkennen kann, das eine Seite unmodifiziert
(clean) ist, kann
auch eine Active-Seite auf den
Plattenspeicher ausgeschrieben werden. In bestimmten
Situationen ist es von Vorteil, wenn ein Block von
VM-Seiten, unabhängig von seinem Zustand,
ausgeschrieben werden kann. Die
Inactive-Liste enthält wenig
benutzte Seiten, die ausgeschrieben werden könnten.
Seiten im Zustand Cached sind
schon ausgeschrieben und stehen Prozessen für
die Verwendung im alten oder in einem neuen Kontext
zur Verfügung. Seiten im Zustand
Cache sind nicht ausreichend
geschützt und können während Unterbrechungen
nicht benutzt werden.Die eben beschriebene Behandlung von Speicherseiten
kann durch weitere Zustände (wie das
das Busy-Flag) verändert werden.Wie viel freien Speicher hat mein System?Es gibt verschiedene Arten von freiem
Speicher. Eine Art ist die Speichermenge,
die sofort, ohne etwas auszulagern, zur Verfügung
steht. Der gesamte VM-Bereich
ist eine weitere Art des freien Speichers.
Die Betrachtung ist komplex, hängt aber von
der Größe des Swap-Bereichs und der
Größe des Arbeitsspeichers ab. Es gibt
weitere Definitionen für freien Speicher,
die aber alle relativ nutzlos sind. Wichtig ist
hingegen, dass wenig Seiten ausgelagert
werden (paging) und der
Swap-Bereich ausreichend groß ist.Ich kann /var/empty nicht
löschen!Das Verzeichnis /var/empty
wird von &man.sshd.8; benötigt, wenn es mit
Privilege Separation läuft.
Das Verzeichnis /var/empty ist
leer, gehört root und
ist durch das Dateiattribut schg
geschützt.Wir empfehlen Ihnen, das Verzeichnis zu belassen.
Sollten Sie es aber trotzdem löschen wollen,
müssen Sie zuerst das schg-Attribut
entfernen. Schauen Sie sich dazu die Hilfeseite
&man.chflags.1; an und beachten Sie die Antwort auf
die Frage wie das
schg-Attribut entfernt wird.Das X Window System und virtuelle KonsolenWas ist das X Window System?Das X Window System ist das am häufigsten verwendete
Window System für &unix; oder ähnliche Systeme,
zu denen auch &os; gehört.
Der X
Protokollstandard wird von der
X.org Foundation definiert.
Die aktuelle Version 11.6 dieser Spezifikation wird als
X11R6 oder auch nur als
X11 bezeichnet.Das X Window System wurde für viele verschiedene
Architekturen und Betriebssysteme implementiert. Eine
serverseitige Implementierung wird dabei als
X-Server bezeichnet.Welche X-Implementierungen sind für &os;
verfügbar?Früher war &xfree86;, die X-Implementierung des
XFree86
Projects, Inc., der Standard unter &os;. Dieser
X-Server wurde bis einschließlich &os;
Version 4.10 und 5.2 als Standard-X-Server installiert.
Die von &xorg; veröffentlichte Implementierung diente
nur als Referenzplattform, weil der verwendete Code
über die Jahre sehr ineffizient geworden war.Anfang 2004 verließen einige Entwickler das
XFree86 Project, um fortan &xorg; direkt zu
unterstützen. Der Grund dafür waren
Meinungsverschiedenheiten über die Geschwindigkeit
der Weiterentwicklung, die zukünftige Ausrichtung des
Projekts sowie persönliche Differenzen. Zur gleichen
Zeit aktualisierte &xorg; ihren Quellcodebaum auf die
&xfree86;-Version 4.3.99.903,
brachte viele Änderungen, die bisher getrennt verwaltet
worden waren, in das Projekt ein und veröffentlichte
das Paket als X11R6.7.0, bevor
&xfree86; die Lizenz änderte. Ein seperates, aber
mit &xorg; verbundenes Projekt,
freedesktop.org
(oder fd.o), arbeitet an einer
Überarbeitung des ursprünglichen &xfree86;-Codes,
um einerseits mehr Rechenarbeit an die Grafikkarten zu
übertragen (mit dem Ziel einer deutlich erhöhten
Geschwindigkeit) und andererseits den Code zu modularisieren
(mit dem Ziel einer verbesserten Wartung, einer schnelleren
Entwicklung sowie einer vereinfachten Konfiguration). &xorg;
plant, die Weiterentwicklungen von freedesktop.org in seine
zukünftigen Versionen zu integrieren.Seit Juli 2004 ist &xorg; der Standard-X-Server für
&os.current;. Die &xfree86;-Ports
(x11/XFree86-4)
verbleiben in der Ports-Sammlung und sind nach wie der
Standard für &os.stable;.Der letzte Absatz beschreibt nur die
Standardeinstellung. Es ist nach wie vor möglich,
beide Implementierung unter &os; zu verwenden. Lesen
Sie dazu die Anweisungen im Eintrag vom 23.07.2004 in
der Datei /usr/ports/UPDATING.Beachten Sie, dass es derzeit nicht möglich ist,
Teile aus beiden Implementierungen parallel zu verwenden.
Sie müssen sich also für eine der beiden
Implementierungen entscheiden.Die folgenden Abschnitte beziehen sich zwar auf die
&xfree86;-Implementierung, sie sollten aber auch für
die &xorg;-Implementierung anwendbar sein. Die
Standardkonfigurationsdatei von &xorg; heißt
xorg.conf. Ist diese nicht
vorhanden, wird die Datei XF86Config
verwendet.Funktionieren meine Programme auch mit der
&xorg;-Implementierung noch?Der &xorg;-Server basiert auf der gleichen
X11R6-Spezifikation, die auch &xfree86; verwendet, daher
sollte ein Großteil der Anwendungen problemlos
funktionieren. Einige selten verwendete Protokolle werden
allerdings nicht mehr unterstützt
(XIE, PEX, sowie
lbxproxy). Die beiden ersten Protokolle
wurden allerdings auch vom &xfree86;-Port nicht
unterstützt.Warum hat sich das X Project überhaupt
aufgespalten?Diese Frage ist nicht &os;-spezifisch. Es gibt zu
diesem Thema umfangreiche Postings in diversen
Mailinglist-Archiven. Suchen Sie daher über eine
Suchmaschine danach, statt diese Frage auf einer
&os;-Mailingliste zu stellen.Warum hat sich &os; für &xorg; als Standard-X-Server
entschieden?Die Entwickler von &xorg; geben an, dass sie neue
Versionen rascher veröffentlichen und neue Eigenschaften
schneller implementieren wollen. Außerdem verwenden
sie nach wie vor die traditionelle X-Lizenz, während
&xfree86; nun eine veränderte Version benutzt.Diese Entscheidung wird nach wie vor heftig
diskutiert. Nur die Zeit wird zeigen, welche
Implementierung technisch überlegen ist. Jeder
&os;-Benutzer hat aber die freie Wahl zwischen den
beiden Implementierungen.Ich möchte X benutzen, was muss ich
tun?Der einfachste Weg ist der, dass Sie während
der Installation angeben, dass Sie X benutzen
möchten.Wenn Sie X auf einem existierenden System installieren
wollen, sollten Sie den Meta-Port
x11/xorg verwenden, der
alle benötigen Komponenten baut und installiert.Lesen Sie danach die Dokumentation zu
&man.xorgconfig.1;, das Sie bei der Konfiguration des
X-Servers für Ihre Grafikkarte, Maus usw.
unterstützt. Bevorzugen Sie eine grafische
Konfigurationsoberfläche, sollten Sie sich
&man.xorgcfg.1; ansehen.Weitere Informationen finden sich im Abschnitt X11 des
FreeBSD-Handbuchs.Evtentuell möchten Sie sich auch den Xaccel-Server
ansehen. Nähere Details finden Sie im
Abschnitt über Xi
Graphics.Ich habe versucht, X zu starten,
aber wenn ich startx eingebe, erhalte
ich die Fehlermeldung KDENABIO failed
(Operation not permitted). Was soll ich jetzt
machen?Das System läuft auf einer erhöhten
Sicherheitsstufe (securelevel).
X kann auf einer erhöhten Sicherheitsstufe nicht
gestartet werden, weil X dazu Schreibzugriff auf
/dev/io benötigt. Lesen Sie dazu
auch &man.init.8;.Die Frage ist also eigentlich, was Sie anders machen
sollten. Sie haben zwei Möglichkeiten: Setzen Sie
die Sicherheitsstufe wieder zurück auf 0 (die
Einstellung erfolgt in der Regel in
/etc/rc.conf) oder starten Sie
&man.xdm.1; während des Starts des Systems, bevor die
Sicherheitsstufe erhöht wird.Der Abschnitt enthält
Informationen darüber, wie Sie &man.xdm.1; beim Start
des Systems starten können.Warum funktioniert meine Maus unter X nicht?Wenn Sie syscons (den Standard-Konsoltreiber)
benutzen, können Sie FreeBSD so konfigurieren,
dass auf jedem virtuellen Bildschirm ein Mauszeiger
unterstützt wird. Um Konflikte mit X zu vermeiden,
unterstützt syscons ein virtuelles Gerät mit dem
Namen /dev/sysmouse. Über
dieses virtuelle Gerät können andere Programme
alle Mausbewegungen und Mausclicks im MouseSystems-Format
mitlesen. Falls Sie Ihre Maus auf einer oder mehreren
virtuellen Konsolen und X
benutzen wollen, sollten Sie zunächst lesen und dann
moused installieren.Die Datei /etc/X11/XF86Config sollte
die folgenden Einträge enthalten:Section Pointer
Protocol "SysMouse"
Device "/dev/sysmouse"
.....
Diese Variante kann für &xfree86; 3.3.2 und
neuer sowie für &xorg; 6.7.0 benutzt werden. Wenn
Sie eine ältere Versionen verwenden, muss als
Protocol hingegen
MouseSystems benutzt werden.Verwenden Sie &xorg;, sollten Sie allerdings die Datei
/etc/X11/xorg.conf anpassen. Obwohl
aus Kompatibilitätsgründen auch das eben
beschriebene Section Pointer erlaubt
ist, sollte besser ein Section
InputDevice ähnlich dem
folgenden verwendet werden:Section "InputDevice"
Option "Protocol" "SysMouse"
Option "Device" "/dev/sysmouse"
.....Einige Leute ziehen es vor, unter X
/dev/mouse zu benutzen. Hierzu
sollte /dev/mouse nach
/dev/sysmouse gelinkt werden:&prompt.root; cd /dev
&prompt.root; rm -f mouse
&prompt.root; ln -s sysmouse mouseKann ich meine Rad-Maus auch unter X benutzen?Ja.Dazu müssen Sie X nur mitteilen, dass Sie eine
Maus mit 5 Tasten haben. Dazu fügen Sie die Zeilen
Buttons 5 sowie
ZAxisMapping 4 5 in den Abschnitt
InputDevice der Datei
/etc/XF86Config ein. Das
Beispiel zeigt, wie ein solcher Abschnitt aussehen
könnte.Abschnitt InputDevice für
Rad-Mäuse in den Konfigurationsdateien von
&xfree86; 4.X und &xorg;Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSection .emacs Beispiel für
seitenweises Blättern mit einer
Rad-Maus (optional);; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)X verbietet Verbindungen von entfernten Systemen!Aus Sicherheitsgründen verbietet der X-Server
in der Voreinstellung Verbindungen von entfernten
Systemen.Starten Sie den X-Server mit der Option
, wenn Sie Verbindungen von
entfernten Systemen erlauben wollen:&prompt.user; startx -listen_tcpWieso funktionieren Menüs und Dialoge in X nicht
richtig?Versuchen Sie, die Num Lock-Taste
auszustellen.Falls Ihre Num Lock-Taste beim Booten
standardmäßig eingeschaltet ist, sollten Sie
die folgende Zeile in den Abschnitt
Keyboard der Datei
XF86Config einfügen:
# Let the server do the NumLock processing. This should only be
# required when using pre-R6 clients
ServerNumLock
Was ist eine virtuelle Konsole und wie erstelle ich
mehr?Mit virtuellen Konsolen können Sie mehrere
simultane Sitzungen auf einer Maschine laufen lassen, ohne
so komplizierte Dinge wie die Einrichtung eines Netzwerkes
oder die Benutzung von X zu benötigen.Wenn das System startet, wird es nach der Anzeige
aller Bootmeldungen eine Eingabeaufforderung auf dem
Bildschirm anzeigen. Sie können dann auf der ersten
virtuellen Konsole Ihren Benutzernamen und das Passwort
eingeben und anfangen, zu arbeiten (oder zu
spielen!).Gelegentlich möchten Sie möglicherweise eine
weitere Sitzung starten wollen, vielleicht, um die
Dokumentation zu einem Programm, das Sie gerade benutzen,
einzusehen, oder, um Ihre Mails zu lesen, während Sie
auf das Ende einer FTP-Übertragung warten.
Drücken Sie einfach AltF2 (halten Sie die Alt-Taste
gedrückt und drücken Sie die Taste F2)
und Sie gelangen zur Anmelde-Aufforderung auf der zweiten
virtuellen Konsole! Wenn Sie zurück
zur ersten Sitzung möchten, drücken Sie
AltF1.Die Standardinstallation von FreeBSD bietet acht
aktivierte virtuelle Konsolen. Mit
AltF1,
AltF2,
AltF3
und so weiter wechseln Sie zwischen diesen
virtuellen Konsolen.Um mehr von ihnen zu aktivieren, editieren Sie
/etc/ttys und fügen
Einträge für ttyv4 bis
zu ttyvc nach dem Kommentar zu
virtuellen Terminals ein:
# Edit the existing entry for ttyv3 in /etc/ttys and change
# "off" to "on".
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/libexec/getty Pc" cons25 on secure
ttyv9 "/usr/libexec/getty Pc" cons25 on secure
ttyva "/usr/libexec/getty Pc" cons25 on secure
ttyvb "/usr/libexec/getty Pc" cons25 on secure
Benutzen Sie so wenig oder soviele, wie Sie
möchten. Je mehr virtuelle Terminals Sie benutzen,
desto mehr Ressourcen werden gebraucht; das kann wichtig
sein, wenn Sie 8MB RAM oder weniger besitzen. Sie
können auch secure in
insecure ändern.Wenn Sie einen X-Server benutzen möchten,
müssen Sie mindestens ein
virtuelles Terminal unbenutzt (oder ausgeschaltet)
lassen damit der Server es benutzen kann. Das
heißt, dass Sie Pech haben, wenn Sie für
jede Ihrer 12 Alt-Funktionstasten eine
Anmeldeaufforderung haben möchten - Sie können
das nur für elf von ihnen tun, wenn Sie einen
X-Server auf derselben Maschine laufen lassen
möchten.Der einfachste Weg, eine Konsole zu deaktivieren, ist,
sie auszuschalten. Wenn Sie zum Beispiel die oben
erwähnte volle Zuordnung aller 12 Terminals
hätten, müssten Sie die Einstellung
für das virtuelle Terminal 12 von:ttyvb "/usr/libexec/getty Pc" cons25 on securein:ttyvb "/usr/libexec/getty Pc" cons25 off secureändern.Wenn Ihre Tastatur nur über zehn Funktionstasten
verfügt, bedeutet das:
ttyv9 "/usr/libexec/getty Pc" cons25 off secure
ttyva "/usr/libexec/getty Pc" cons25 off secure
ttyvb "/usr/libexec/getty Pc" cons25 off secure
(Sie können diese Zeilen auch einfach
löschen.)Nachdem Sie die Datei /etc/ttys
geändert haben, besteht der nächste Schritt
darin, sicherzustellen, dass Sie genügend
Geräte für virtuelle Terminal haben. Der
einfachste Weg, dies zu tun, ist:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV vty12Wenn Sie FreeBSD 5.X oder neuer mit
DEVFS benutzen, brauchen Sie die
Gerätedateien nicht manuell anzulegen, da sie
automatisch in
/dev erstellt
werden.Die einfachste (und sauberste) Möglichkeit, die
virtuellen Konsolen zu aktivieren, ist, zu rebooten. Wenn
Sie jedoch auf keinen Fall rebooten möchten,
können Sie auch einfach das X Window System
herunterfahren und als root&prompt.root; kill -HUP 1ausführen.Es ist unbedingt erforderlich, dass Sie das X
Window System vollständig herunterfahren, falls es
läuft. Falls Sie es nicht tun, könnte es sein,
dass sich ihr System nach der Eingabe des
kill-Befehls aufhängt.Wie greife ich von X aus auf virtuelle Konsolen
zu?Benutzen Sie
CtrlAltFn
um auf eine virtuelle Konsole umzuschalten. Mit
CtrlAltF1
würden Sie zur ersten virtuellen Konsole
umschalten.Sobald Sie auf eine virtuelle Konsole umgeschaltet
haben, können Sie ganz normal
AltFn
benutzen, um zwischen den einzelnen virtuellen Konsolen
umzuschalten.Um zu Ihrer X-Sitzung zurückzukehren, müssen
Sie auf die virtuelle Konsole umschalten, auf der X
läuft. Wenn Sie X über der Eingabeaufforderung
gestartet haben (z.B. mit startx),
benutzt X die nächste freie virtuelle Konsole und
nicht die Konsole, von der es gestartet wurde. Wenn Sie
acht aktive virtuelle Konsole haben, dann wird X die
neunte benutzen und Sie können mit AltF9
umschalten.Wie starte ich XDM beim Booten?Es gibt zwei Denkansätze, wie
&man.xdm.1; zu starten ist. Bei dem einen wird
xdm unter Nutzung des mitgelieferten
Beispiels über /etc/ttys
(&man.ttys.5;) gestartet, während beim zweiten Ansatz
rc.local (&man.rc.8;) oder das
Skript X.sh im Verzeichnis
/usr/local/etc/rc.d verwendet wird.
Beide Ansätze sind gleichwertig und der eine
wird in Situationen funktionieren, in denen der andere es
nicht tut. In beiden Fällen ist das Ergebnis das
gleiche: X liefert eine graphische
Anmeldeaufforderung.Die ttys-Methode hat den Vorteil, dass
dokumentiert ist, auf welchem vty X gestartet wird und der
Neustart des X-Servers beim Abmelden an init
übergeben wird. Die rc.local-Methode erleichtert ein
Killen von xdm, falls Probleme beim Start des X-Servers
auftreten sollten.Beim Laden von rc.local sollte xdm
ohne irgendwelche Argumente (das heißt als Daemon)
gestartet werden. xdm muss gestartet werden NACHDEM getty
läuft, andernfalls entsteht ein Konflikt zwischen
getty und xdm und die Konsole bleibt gesperrt. Der beste
Weg, um dies zu vermeiden, ist, das Skript für etwa
zehn Sekunden anzuhalten und dann xdm zu starten.Wenn Sie xdm durch einen Eintrag in
/etc/ttys starten lassen, kann es zu
einem Konflikt zwischen xdm und
&man.getty.8; kommen. Um dieses Problem zu
vermeiden, sollten Sie die Nummer des
vt in die Datei
/usr/X11R6/lib/X11/xdm/Xservers
eintragen.:0 local /usr/X11R6/bin/X vt4Diese Zeile führt dazu, dass der X Server
/dev/ttyv3 nutzt. Die beiden Zahlen
weichen voneinander ab: Der X-Server beginnt die
Zählung der vty bei 1, während der
FreeBSD-Kernel bei 0 beginnt.Wieso erhalte ich die Meldung Couldn't open
console, wenn ich xconsole benutze?Wenn Sie X mit
startx starten, werden die
Zugriffsrechte für
/dev/console leider
nicht geändert, was dazu
führt, dass Dinge wie xterm
-C und xconsole nicht
funktionieren.Das hängt damit zusammen, wie die Zugriffsrechte
für die Konsole standardmäßig gesetzt
sind. Auf einem Mehrbenutzersystem möchte man nicht
unbedingt, dass jeder Benutzer einfach auf die
Systemkonsole schreiben kann. Für Benutzer, die sich
auf einer Maschine direkt mit einem VTY anmelden,
existiert die Datei &man.fbtab.5;, um
derartige Probleme zu lösen.In Kürze: sorgen Sie dafür, dass sich
eine nicht auskommentierte Zeile der Form/dev/ttyv0 0600 /dev/consolein der Datei /etc/fbtab befindet.
Das sorgt dafür, dass wer auch immer sich auf
/dev/ttyv0 anmeldet, auch die Konsole
besitzt.Früher konnte ich &xfree86; als normaler User
starten. Warum sagt mir das System jetzt, dass ich
root sein muss?Alle X-Server müssen mit der ID
root laufen, um direkt auf die
Videohardware zuzugreifen. Die älteren Versionen von
&xfree86; (bis einschließlich 3.3.6) installierten
alle mitgelieferten Server so, dass sie automatisch
unter ID root ausgeführt werden
(setuid to root). Dies stellt
natürlich eine Gefahrenquelle dar, da die X-Server
große, komplexe Programme sind. Alle neueren
Versionen von &xfree86; installieren die Server aus genau
diesem Grund nicht mehr "setuid
root".Es ist natürlich nicht tragbar, den X-Server
immer mit der ID root laufen zu
lassen; auch aus Gründen der Sicherheit ist es keine
gute Idee. Es gibt zwei Möglichkeiten, um X auch als
normaler Benutzer starten zu können. Die erste ist
die Verwendung von xdm oder eines
ähnlichen Programms; die zweite ist die Benutzer von
Xwrapper.xdm ist ein ständig laufendes
Programm, mit dem Logins über eine graphische
Benutzeroberfläche sind. Es wird normalerweise beim
Systemstart initialisiert und für die
Authentifizierung der Benutzer und den Start ihrer
Sitzungen verantwortlich. Es ist also die graphische
Entsprechung von &man.getty.8; und &man.login.1;.
Weitere Informationen zum Thema xdm
finden Sie in der &xfree86;
Dokumentation und dem entsprechenden FAQ-Eintrag.Xwrapper ist eine
Hülle für den X-Server. Mit
diesem kleinen Utility ist es möglich, manuell den
X-Server zu starten und weiterhin eine annehmbare
Sicherheit zu haben. Das Tools prüft, ob die per
Kommandozeile übergebenen Argumente halbwegs sinnvoll
sind. Wenn dies der Fall ist, startet es den
entsprechenden X-Server. Wenn Sie (aus welchem Grund auch
immer) keine graphische Anmeldung wollen, ist
Xwrapper die optimale Lösung.
Wenn Sie die vollständige Ports-Sammlung installiert
haben, finden Sie das Tool im Verzeichnis
/usr/ports/x11/wrapper.Warum funktioniert meine PS/2-Maus nicht
richtig?Ihre Maus und der Maustreiber sind etwas aus der
Synchronisation geraten.In seltenen Fällen kann es jedoch sein,
dass der Treiber fälschlicherweise
Synchronisationsprobleme meldet und Sie in den
Kernelmeldungen folgendes sehen:psmintr: out of sync (xxxx != yyyy)und Ihre Maus nicht richtig zu funktionieren
scheint.Falls das passiert, deaktivieren Sie den Code zur
Überprüfung der Synchronisation, indem Sie die
Treiberangaben für den PS/2-Maustreiber auf 0x100
setzen. Rufen Sie UserConfig durch
Angabe der Option am Boot-Prompt
auf:boot: -cGeben sie dann in der Kommandozeile von
UserConfig folgendes ein:UserConfig> flags psm0 0x100
UserConfig> quitMeine PS/2-Maus von MouseSystems scheint nicht zu
funktionieren.Es wurde berichtet, dass einige Modelle der
PS/2-Mäuse von MouseSystems nur funktionieren, wenn
sie im hochauflösenden Modus betrieben
werden. Andernfalls springt der Mauszeiger sehr oft in
die linke obere Ecke des Bildschirms.Das Flag 0x04 des Maustreibers bringt die Maus
in den hochauflösenden Modus. Rufen Sie
UserConfig durch Angabe der Option
am Boot-Prompt auf:boot: -cGeben sie dann in der Kommandozeile von
UserConfig folgendes ein:UserConfig> flags psm0 0x04
UserConfig> quitLesen Sie den vorigen Abschnitt über eine andere
mögliche Ursache für Probleme mit der
Maus.Wenn ich eine X-Anwendung erstellen will, kann
imake die Datei
Imake.tmpl nicht finden. Wo befindet
sie sich?Imake.tmpl ist Teil des
Imake-Paketes, ein Standardwerkzeug zur Erstellung von
X-Anwendungen. Imake.tmpl ist
ebenso, wie viele Header-Dateien, die zur Erstellung von
X-Anwendungen benötigt werden, in der Distribution
xprog enthalten. Sie können Sie
per sysinstall oder aber manuell mit den X
Distributionsdateien installieren.Wie kann ich einen anderen X-Server installieren?&os;-Versionen vor 5.3 verwendeten
&xfree86; 4.X als
Standard-X-Server. Seither wird
&xorg; als
Standard-X-Server verwendet. Wenn Sie einen anderen
X-Server installieren wollen,
müssen Sie die folgende Zeile in Ihre
/etc/make.conf einfügen. (Existiert
die Datei nicht, müssen Sie sie zuvor anlegen.)X_WINDOW_SYSTEM= xorgDiese Variable kann die Werte xorg,
xfree86-4, oder
xfree86-3 annehmen.Wie vertausche ich die Maustasten?Benutzen Sie den Befehl xmodmap -e "pointer =
3 2 1" in Ihrer .xinitrc
oder .xsession.Wie installiere ich einen Splash-Screen und wo finde
ich sie?&os; erlaubt die Anzeige von
Splash-Screens während des
Bootvorganges. Die Splash-Screens dürfen
Bitmaps mit 256 Farben
(*.BMP) oder ZSoft-PCX-Dateien
*.PCX) sein. Damit sie mit normalen
VGA-Karten dargestellt werden können, darf die
Größe 320x200 Bildpunkte nicht
überschreiten. Wenn Sie in ihrem Kernel die
VESA-Unterstützung eingebunden haben, beträgt
die maximale Größe 1024x768 Pixel.
Die derzeitige VESA-Unterstützung kann entweder direkt
durch die Kernelkonfigurationsoption
VESA in den Kernel eingebunden werden,
oder durch das Laden des VESA-kld-Moduls während des
Bootens.Um einen Splash-Screen zu benutzen, müssen Sie die
Startdateien, die den Bootprozess von &os; kontrollieren,
modifizieren.Dazu müssen Sie die Datei
/boot/loader.rc erstellen, die
die folgenden Zeilen enthält:include /boot/loader.4th
startAußerdem benötigen Sie die Datei
/boot/loader.conf, die die
folgenden Zeilen enthält:splash_bmp_load="YES"
bitmap_load="YES"Dies setzt voraus, dass Sie
/boot/splash.bmp als Ihren
Splash-Screen benutzen. Wenn Sie lieber eine
PCX-Datei benutzen wollen, dann kopieren Sie sie nach
/boot/splash.pcx, erstellen Sie
eine Datei /boot/loader.rc, wie
oben beschrieben und eine Datei
/boot/loader.conf, die folgendes
enthält:splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"Alles, was Sie nun brauchen, ist ein Splash-Screen.
Hierzu können Sie durch die Gallerie bei
surfen.Kann ich die &windows;-Tasten unter X
benutzen?Ja, Sie müssen lediglich mit &man.xmodmap.1;
festlegen, welche Aktion diese Tasten auslösen
sollen.Unter der Annahme, dass alle &windows;
Tastaturen dem Standard entsprechen, lauten die Keycodes
für die drei Tasten115 - &windows;-Taste zwischen den
Alt- und
Strg-Tasten auf der linken Seite116 - &windows;-Taste rechts von der
AltGr-Taste117 - Menü-Taste, links von der
rechten Strg-TasteNach der folgenden Anweisung erzeugt die linke
&windows;-Taste ein Komma.&prompt.root; xmodmap -e "keycode 115 = comma"Sie werden Ihren Window Manager wahrscheinlich neu
starten müssen, damit diese Einstellung wirksam
wird.Um die neue Belegung der &windows;-Tasten automatisch
beim Start von X zu erhalten, könnten Sie
entsprechende xmodmap Anweisungen in
ihre ~/.xinitrc einfügen. Die
bevorzugte Variante ist aber, eine Datei mit dem Namen
~/.xmodmaprc zu erzeugen, die nur die
Parameter für den Aufruf von
xmodmap enthält. Wenn Sie mehrere
Tasten umdefinieren wollen, muss jede Definition in
eine eigene Zeile gesetzt werden. Weiterhin müssen
Sie in Ihrer ~/.xinitrc noch die
folgende Zeile einfügen:xmodmap $HOME/.xmodmaprcSie könnten die drei Tasten zum Beispiel mit den
Funktionen F13, F14 und
F15 belegen. Dadurch ist es sehr
einfach, diese Tasten mit nützlichen Funktionen eines
Programmes oder Desktops zu verknüpfen.Falls Sie das auch tun wollen, sollten in Ihrer
~/.xmodmaprc die folgenden
Anweisungen stehen.
keycode 115 = F13
keycode 116 = F14
keycode 117 = F15
Falls Sie zum Beispiel fvwm2
benutzen, können Sie ihn so einstellen, dass
F13 das Fenster unter dem Mauszeiger
minimiert bzw. maximiert. F14 holt das
Fenster unter dem Mauszeiger in den Vordergrund bzw.
ganz nach hinten, wenn es bereits im Vordergrund ist.
F15 öffnet das Arbeitsplatz
(Programme) Menü, auch wenn der Cursor nicht auf den
Hintergrund zeigt. Dies ist extrem praktisch, wenn der
gesamte Bildschirm von Fenster belegt wird; als kleiner
Bonus gibt es sogar einen Zusammenhang zwischen dem Symbol
auf der Taste und der durchgeführten Aktion.Dieses Verhalten kann man mit den folgenden
Einträgen in der Datei ~/.fvwmrc
erhalten:
Key F13 FTIWS A Iconify
Key F14 FTIWS A RaiseLower
Key F15 A A Menu Workplace Nop
Wird 3D Hardware Beschleunigung für &opengl;
unterstützt?Dies hängt davon ab, welche Version von &xfree86;
oder &xorg; und welche Grafikkarte Sie verwenden.
Wenn Sie eine Karte mit NVIDIA-Chipsatz besitzen, benutzen
Sie die binären Treiber für FreeBSD, die Sie auf der
Drivers-Seite von NVIDEA finden.
Wenn Sie &xfree86;-4 oder &xorg; mit Grafikkarten wie
der Matrox G200/G400, ATI Rage 128/Radeon, oder 3dfx
Voodoo 3, 4, 5, und Banshee einsetzen, erhalten Sie
weitere Informationen auf der Webseite &xfree86;-4
Direct Rendering on FreeBSD. Wenn Sie &xfree86; in
der Version 3.3 einsetzen, erhalten Sie
eingeschränkte Unterstützung von die
Hardware-Beschleunigung bei &opengl; für die Matrox
Gx00, ATI Rage Pro, SiS 6326, i810, Savage, und Karten,
die auf älteren NVIDIA Chipsätzen beruhen, wenn
Sie den Port graphics/utah-glx
installieren.NetzwerkeWoher kann ich Informationen über Diskless
Booting bekommen?Diskless Booting bedeutet, dass
die FreeBSD-Maschine über ein Netzwerk gebootet wird
und die notwendigen Dateien von einem Server anstatt von
der Festplatte liest. Vollständige Details finden
Sie im Handbucheintrag
über den plattenlosen Betrieb.Kann eine FreeBSD-Maschine als Netzwerkrouter genutzt
werden?Ja. Genaue Informationen zu diesem Thema finden Sie
im Abschnitt
Gateways und Routen des Handbuchkapitels
Weiterführende Netzwerkthemen.Kann ich meine &windows;-Maschine über FreeBSD ans
Internet anbinden?Personen, die diese Frage stellen, haben
typischerweise zwei PCs zu Hause: einen mit FreeBSD und
einen mit einer &windows;-Variante. Die Idee ist, die
FreeBSD-Maschine an das Internet anzubinden, um in der
Lage zu sein, von der &windows;-Maschine über die
FreeBSD-Maschine auf das Internet zuzugreifen. Das
ist tatsächlich nur ein Spezialfall der vorherigen
Frage.Das User-Mode &man.ppp.8; von &os; kennt die Option
. Wenn Sie &man.ppp.8; mit der Option
starten, in
/etc/rc.conf die Variable
gateway_enable auf
YES setzen und Ihre &windows;-Maschine
korrekt konfigurieren, sollte das hervorragend
funktionieren. Weitere Informationen erhalten Sie
in der Hilfeseite &man.ppp.8; oder im
Abschnitt
User-PPP des Handbuchs.Wenn Sie Kernel-Mode PPP verwenden oder ihre
Verbindung zum Internet über Ethernet erstellt
wurde, müssen Sie &man.natd.8; verwenden. Weitere
Informationen dazu finden Sie im natd-Abschnitt
des Handbuchs.Unterstützt FreeBSD SLIP und PPP?Ja. Lesen Sie die Manualpages &man.slattach.8;,
&man.sliplogin.8;, &man.pppd.8; und &man.ppp.8;.
&man.ppp.8; und &man.pppd.8; liefern Unterstützung
sowohl für eingehende, als auch ausgehende
Verbindungen. &man.sliplogin.8; behandelt
ausschließlich eingehende Verbindungen und
&man.slattach.8; behandelt ausschließlich ausgehende
Verbindungen.Diese Programme werden im Abschnitt PPP und SLIP
des Handbuchs beschrieben.Falls Sie nur durch einen Shell-Account
Zugang zum Internet haben, sehen Sie sich einmal das
Package net/slirp an.
Es kann Ihnen (eingeschränkten) Zugang zu Diensten
wie ftp und http direkt von Ihrer lokalen Maschine aus
ermöglichen.Unterstützt FreeBSD NAT oder
Masquerading?Ja. Wenn Sie NAT über eine User-PPP-Verbindung
einsetzen wollen, lesen Sie bitte den User-PPP Abschnitt
des Handbuchs. Wollen Sie NAT über eine andere
Verbindung einsetzen, lesen Sie bitte den
NATD Abschnit
des Handbuchs.Wie verbinde ich zwei FreeBSD-Maschinen mit PLIP
über die parallele Schnittstelle?Dieses Thema wird im Handbuch-Kapitel PLIP
behandelt.Wieso kann ich das Gerät
/dev/ed0 nicht erstellen?Weil das nicht notwendig ist. Bei Berkeley-basierten
Netzwerkimplementationen kann nur vom Kernel-Code aus
direkt auf Netzwerkkarten zugegriffen werden. Zur
weiteren Information lesen Sie bitte die Datei
/etc/rc.network und die Manualpages
zu den unterschiedlichen Netzwerkprogrammen, die dort
erwähnt werden. Falls Sie danach total verwirrt
sind, sollten Sie sich ein Buch besorgen, das die
Netzwerkadministration auf einem anderen
BSD-ähnlichen Betriebssystem beschreibt; mit wenigen
signifikanten Ausnahmen gleicht die Netzwerkadministration
auf FreeBSD im Grunde der auf &sunos; 4.0 oder
Ultrix.Wie kann ich Ethernet-Aliase einrichten?Wenn sich die zweite Adresse im gleichen Subnetz
befindet wie eine der Adressen, die bereits auf dem
Interface konfiguriert sind, benutzen Sie netmask
0xffffffff in Ihrer &man.ifconfig.8;
Befehlszeile, wie z.B.:&prompt.root; ifconfig ed0 alias 204.141.95.2 netmask 0xffffffffAndernfalls geben sie die Adresse und die Netzmaske so
an, wie sie es bei einem normalen Interface auch tun
würden:&prompt.root; ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00Wie bringe ich meine 3C503 dazu, den anderen
Anschluss zu benutzen?Wenn Sie die anderen Anschlüsse benutzen
möchten, müssen Sie einen zusätzlichen
Parameter in der &man.ifconfig.8;-Befehlszeile
spezifizieren. Der Standard-Anschluss ist
link0. Um den AUI-Anschluss
anstelle des BNC-Anschlusses zu verwenden, benutzen Sie
link2. Diese Angaben sollten durch
Benutzung der Variablen ifconfig_* in der Datei
/etc/rc.conf spezifiziert
werden.Warum habe ich Probleme mit NFS und FreeBSD?Gewisse PC-Netzwerkkarten sind (um es gelinde
auszudrücken) besser als andere und können
manchmal Probleme mit netzwerkintensiven Anwendungen wie
NFS verursachen.Weitere Informationen zu diesem Thema finden Sie
im
Handbucheintrag zu NFS.Warum kann ich per NFS nicht von einer &linux;-Maschine
mounten?Einige Versionen des NFS-Codes von &linux; akzeptieren
Mount-Requests nur von einem privilegierten Port.
Versuchen Sie&prompt.root; mount -o -P linuxbox:/blah /mntWarum kann ich per NFS nicht von einer Sun-Maschine
mounten?Sun Workstations mit &sunos; 4.X akzeptieren
Mount-Requests nur von einem privilegierten Port.
Versuchen Sie&prompt.root; mount -o -P sunbox:/blah /mntWarum meldet mir mountd auf meinem
FreeBSD NFS-Server ständig can't change
attributes und bad exports
list?Die häufigste Ursache für dieses Problem
ist, dass Sie den Aufbau der &man.exports.5; nicht
oder nicht richtig verstanden haben. Überprüfen
Sie Ihre &man.exports.5; und lesen das Kapitel NFS im
Handbuch, speziell den Abschnitt
Konfiguration.Warum habe ich Probleme, per PPP mit NeXTStep-Maschinen zu
kommunizieren?Versuchen Sie, die TCP-Erweiterung in
/etc/rc.conf zu deaktivieren, indem
Sie die folgende Variable auf NO setzen:tcp_extensions=NOXylogic's Annex-Maschinen arbeiten hier auch
fehlerhaft und Sie müssen die obige Änderung
benutzen, um über Sie Verbindungen
herzustellen.Wie aktiviere ich die Unterstützung für
IP-Multicast?Multicast-Host-Funktionen werden standardmäßig
unterstützt. Wenn Sie Ihre Maschine als Multicast-Router
betreiben wollen, müssen Sie Ihren Kernel mit der Option
MROUTING neu kompilieren und
&man.mrouted.8; starten. Wenn Sie die Variable
mrouted_enable in der Datei
/etc/rc.conf auf
"YES" setzen, wird &man.mrouted.8;
während des Systemstart automatisch gestartet.MBONE-Tools sind in ihrer eigenen Ports-Kategorie
mbone
verfügbar. Schauen Sie dort nach, wenn Sie die
Konferenztools vic und
vat suchen!Welche Netzwerkkarten basieren auf dem
DEC-PCI-Chipsatz?Hier ist eine von Glen Foster
gfoster@driver.nsta.org zusammengetragene
Liste mit einigen aktuellen Ergänzungen:
Warum muss ich für Hosts auf meiner Site den
FQDN benutzen?Sie werden wahrscheinlich feststellen, dass der
Host sich tatsächlich in einer anderen Domäne
befindet; wenn Sie sich zum Beispiel in foo.example.org
befinden und einen Host namens mumble in
der Domäne example.org erreichen wollen,
werden Sie den fully-qualified Domainnamen mumble.example.org, anstatt nur
mumble benutzen müssen.Traditionell war dies bei BSD-BIND-Resolvern erlaubt.
Die aktuelle Version von bind,
die mit FreeBSD ausgeliefert wird, ermöglicht jedoch
nicht mehr die standardmäßige Abkürzung
von nicht-fully-qualified Domainnamen für andere als
ihre eigene Domäne. Ein nicht-qualifizierter Host
mumble muss also entweder als
mumble.foo.example.org gefunden
werden, oder er wird in der Hauptdomäne
gesucht.Dies unterscheidet sich vom vorherigen Verhalten, wo
die Suche über mumble.example.org und mumble.edu fortgesetzt wurde.
Werfen Sie einen Blick in RFC 1535, um zu erfahren, warum
dies als schlechter Stil oder sogar als eine
Sicherheitslücke betrachtet wurde.Als Abhilfe können Sie die Zeilesearch foo.example.org example.organstelle der vorherigendomain foo.example.orgin Ihre Datei /etc/resolv.conf
einfügen. Stellen Sie jedoch sicher, dass die
Suchreihenfolge nicht über die Grenze zwischen
lokaler und öffentlicher Administration, wie
RFC 1535 sie nennt, hinausreicht.Wieso erhalte ich bei allen Netzwerkoperationen die
Meldung Permission denied?Dieses Problem kann auftreten, wenn Sie einen Kernel
mit der Option IPFIREWALL erstellt
haben. In der Voreinstellung werden alle Pakete, die
nicht explizit erlaubt wurden, blockiert.Falls sie Ihr System unbeabsichtigt als Firewall
konfiguriert haben, können Sie die
Netzwerkfunktionalität wiederherstellen, indem Sie
als root folgendes eingeben:&prompt.root; ipfw add 65534 allow all from any to anySie können in /etc/rc.conf
auch firewall_type="open"
setzen.Weitere Informationen über die Konfiguration
einer FreeBSD-Firewall finden Sie im Kapitel Firewalls
des Handbuchs.Wie viele Einbußen zieht IPFW nach sich?Diese Frage wird im Handbuch-Kapitel Firewalls im
Abschnitt IPFW
Overhead und Optimierung ausführlich
behandelt.Warum kann ich bei &man.ipfw.8; einen Dienst nicht mit
fwd auf eine andere Maschine
umlenken?Der wahrscheinlichste Grund ist, dass Sie Network
Address Translation (NAT) brauchen und nicht die einfache
Weiterleitung von Pakete. Die fwd
Anweisung macht genau das, was da steht: Sie leitet
Pakete weiter; die Daten in den Paketen werden aber nicht
verändert. Ein Beispiel:01000 fwd 10.0.0.1 from any to foo 21Wenn ein Paket mit dem Ziel
foo die Maschine mit dieser
Regel erreicht, wird das Paket an
10.0.0.1 weitergeleitet; die
Zieladresse im Paket lautet aber immer noch
foo! Die Zieladresse wird
nicht in
10.0.0.1 geändert. Die
meisten Rechner werden allerdings Pakete verwerfen, wenn
die Zieladresse des Paketes nicht mit der Adresse des
Rechners übereinstimmt. Das ist der Grund, warum
eine fwd Regel oft nicht den Effekt hat,
den der Benutzer wollte. Dieses Verhalten ist aber kein
Fehler, sondern erwünscht.Wenn Sie einen Dienst auf eine andere Maschine
umleiten wollen, sollten Sie sich den FAQ-Eintrag über die
Umleitung von Diensten oder die Online-Hilfe zu
&man.natd.8; durchlesen. Auch in der Ports Sammlung sind diverse
Hilfsprogramme für diesen Zweck enthalten.Wie kann ich Service-Requests von einer Maschine auf
eine andere umleiten?Sie können FTP-Requests (und andere Dienste) mit
dem Package socket umleiten, das im
Ports-Tree in der Kategorie sysutils
verfügbar ist. Ersetzen sie die Befehlszeile
für den Dienst einfach so, dass stattdessen
socket aufgerufen wird, zum Beispiel so:ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.comftpwobei ftp.example.com und
ftp entsprechend der Host und
der Port sind, wohin umgeleitet werden soll.Woher kann ich ein Bandbreiten-Managementtool
bekommen?Für FreeBSD gibt es drei
Bandbreiten-Managementtools. &man.dummynet.4; ist als
Teil von &man.ipfw.4; in FreeBSD integriert.
ALTQ
ist für FreeBSD 4.X kostenlos verfügbar und
seit FreeBSD 5.X als Bestandteil von &man.pf.4; im
Basissystem enthalten. Bei Bandwidth Manager von Emerging Technologies
handelt es sich hingegen um ein kommerzielles Produkt.Warum erhalte ich die Meldung /dev/bpf0:
device not configured?Der Berkeley-Paket-Filter (&man.bpf.4;) muss in
den Kernel eingebunden werden, bevor er von einem
Programme aus genutzt werden kann. Fügen Sie
folgendes zu Ihrer Kernelkonfigurationsdatei hinzu und
erstellen Sie einen neuen Kernel:pseudo-device bpf # Berkeley Packet FilterUnter FreeBSD 4.X und früheren Versionen
müssen Sie noch die Gerätedateien erstellen.
Wechseln Sie dazu nach dem Neustart in das Verzeichnis
/dev und führen Sie den folgenden
Befehl aus:&prompt.root; sh MAKEDEV bpf0Weitere Informationen über den Umgang mit Geräten
finden Sie im Handbucheintrag
über Device Nodes.Habe ich, analog zum smbmount von &linux;, eine
Möglichkeit, auf ein freigegebenes Laufwerk einer
&windows;-Maschine in meinem Netzwerk zuzugreifen?Benutzen Sie die Kernel-Erweiterungen und Benutzerprogramme
aus dem Programmpaket SMBFS. Das
Paket und weitergehende Informationen sind unter
net/smbfs in den Ports
verfügbar; ab der Version 4.5 ist
SMBFS Bestandteil
des Basissystems.Was bedeutet die Meldung icmp-response
bandwidth limit 300/200 pps in meinen
Logfiles?Mit dieser Meldung teilt Ihnen der Kernel mit,
dass irgend jemand versucht, ihn zur Generierung von
zu vielen ICMP oder TCP reset (RST) Antworten zu
provozieren. ICMP Antworten sind oft das Ergebnis von
Verbindungsversuchen zu unbenutzten UDP Ports. TCP Resets
werden generiert, wenn jemand versucht, eine Verbindung zu
einem ungenutzten TCP Port aufzubauen. Die Meldungen
können unter anderem durch die folgenden Ereignisse
ausgelöst werden:Denial of Service (DoS) Angriffe mit der
Brechstange (und nicht durch Angriffe mit einzelnen
Paketen, die gezielt eine Schwachstelle des Systems
ausnutzen sollen).Port Scans, bei denen versucht wird, Verbindungen
zu einer großen Anzahl von Ports (und nicht nur
einigen bekannten Ports) herzustellen.Die erste Zahl gibt an, wie viele Pakete vom Kernel
ohne das Limit versendet worden wären; die zweite
Zahl gibt das Limit an. Sie können das Limit mit
Hilfe der sysctl-Variable
net.inet.icmp.icmplim einstellen. Im
Beispiel wird das Limit auf 300 Pakete
pro Sekunde gesetzt:&prompt.root; sysctl -w net.inet.icmp.icmplim=300Wenn Sie zwar die Begrenzung benutzen möchten, aber
die Meldungen nicht in Ihren Logfiles sehen möchten,
können Sie die Meldungen mit der sysctl-Variable
net.inet.icmp.icmplim_output
abschalten:&prompt.root; sysctl -w net.inet.icmp.icmplim_output=0Falls Sie die Begrenzung ganz abschalten wollen,
können Sie die Sysctl-Variable
net.inet.icmp.icmplim auf
0. Wir raten Ihnen aus den oben
genannten Gründen dringend von diesem Schritt
ab.Was bedeutet die Meldung arp: unknown
hardware address format?Ein Gerät im lokalen Ethernet verwendet eine
MAC-Adresse in einem Format, das FreeBSD nicht kennt. Der
wahrscheinlichste Grund ist, dass jemand Experimente
mit einer Ethernet-Karte anstellt. Die Meldung tritt sehr
häufig in Netzwerken mit Cable Modems auf. Die
Meldung ist harmlos und sollte die Performance Ihres
Systems nicht negativ beeinflussen.Ich habe gerade CVSup installiert, aber das Programm bricht
mit Fehlermeldungen ab. Was ist da schief gelaufen?Schauen Sie bitte zuerst nach, ob Sie eine Fehlermeldung
wie die unten gezeigte erhalten./usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not foundSolche Fehlermeldungen erhalten Sie, wenn Sie den
net/cvsup Port auf einer
Maschine installieren, die kein
&xfree86;-System besitzt. Wenn Sie
das GUI von CVSup
benutzen wollen, müssen Sie
&xfree86; installieren. Wenn Sie
CVSup nur auf der Kommandozeile
benutzen wollen, entfernen Sie bitte den Port, den Sie gerade
installiert haben. Installieren Sie stattdessen den Port
net/cvsup-without-gui.
Genauere Informationen finden Sie im
CVSup Abschnitt
des Handbuchs.SicherheitWas ist ein Sandkasten (sandbox)?Sandkasten (sandbox) ist ein Ausdruck
aus dem Bereich Sicherheit. Er hat zwei
Bedeutungen:Ein Programm, das innerhalb virtueller Wände
ausgeführt wird. Wenn ein Angreifer über
eine Sicherheitslücke in diesen Programm
einbricht, verhindern diese Wände ein tieferes
Vordringen in das System.Man sagt: Der Prozess kann innerhalb der
Wände spielen, das heißt nichts,
was der Prozess in Bezug auf die Ausführung von
Code tut, kann die Wände durchbrechen. Es ist
also keine detailierte Revision des Codes
erforderlich, um gewisse Aussagen über seine
Sicherheit machen zu können.Die Wände könnten z.B. eine
Benutzerkennung sein. Dies ist die Definition, die in
den Hilfeseiten &man.security.7; und &man.named.8; benutzt
wird.Nehmen Sie zum Beispiel den Dienst
ntalk (siehe auch /etc/inetd.conf).
Dieser Dienst ist früher mit der Benutzerkennung
root gelaufen; nun läuft er mit der
Benutzerkennung tty. Der Benutzer tty ist ein
Sandkasten, der dazu gedacht ist, es jemandem, der
über ntalk erfolgreich in das System eingebrochen
ist, schwer zu machen, über diese Benutzerkennung
hinaus vorzudringen.Ein Prozess, der sich innerhalb einer
simulierten Maschine befindet. Dies ist etwas
fortgeschrittener; grundsätzlich bedeutet es,
dass jemand, der in der Lage ist, in einen
Prozess einzudringen, annehmen könnte, er
könnte weiter in die Maschine eindringen,
tatsächlich aber nur in eine Simulation der
Maschine einbricht und keine echten Daten
verändert.Der gängigste Weg, dies zu erreichen, ist, in
einem Unterverzeichnis eine simulierte Umgebung zu
erstellen und den Prozess in diesem Verzeichnis
mit chroot auszuführen (für diesen
Prozess ist / dieses
Verzeichnis und nicht das echte /
des Systems).Eine weitere gebräuchliche Anwendung ist, ein
untergeordnetes Dateisystem nur mit Leserechten zu
mounten, und dann darüber eine Dateisystemebene
zu erstellen, die einem Prozess einen scheinbar
schreibberechtigten Blick in das Dateisystem gibt.
Der Prozess mag glauben, dass er in der Lage
ist, diese Dateien zu verändern, aber nur der
Prozess sieht diesen Effekt - andere Prozess
im System natürlich nicht.Es wird versucht, diese Art von Sandkasten so
transparent zu gestalten, dass der Benutzer (oder
Hacker) nicht merkt, dass er sich in ihm
befindet.Ein &unix; System implementiert zwei Arten von
Sandkästen - eine auf Prozessebene und die andere auf
der Ebene der Benutzerkennung.Jeder Prozess auf einem &unix; System ist komplett von
allen anderen Prozessen abgeschirmt. Ein Prozess
kann den Adressraum eines anderen Prozesses nicht
modifizieren. Das ist anders als bei &windows;, wo ein
Prozess leicht den Adressraum eines anderen
überschreiben kann, was zu einem Absturz
führt.Ein Prozess gehört einer bestimmten
Benutzerkennung. Falls die Benutzerkennung nicht die von
root ist, dient sie dazu, den
Prozess von Prozessen anderer Benutzer abzuschirmen.
Die Benutzerkennung wird außerdem dazu genutzt,
Daten auf der Festplatte abzuschirmen.Was sind die Sicherheitsstufen?Die Sicherheitsstufen sind ein Sicherheitsmechanismus,
der im Kernel angesiedelt ist. Wenn die Sicherheitsstufe
einen positiven Wert hat, verhindert der Kernel die
Ausführung bestimmter Tätigkeiten; nicht einmal
der Super-User (also root) darf sie
durchführen. Zurzeit können über die
Sicherheitsstufen unter anderem die folgenden
Tätigkeiten geblockt werden:Änderungen bestimmter Dateiattribute, wie zum
Beispiel schg (das "system immutable"
Attribut)Schreibender Zugriff auf die Speicherbereiche des
Kernels mittels /dev/mem und
/dev/kmem.Laden von Kernel-Modulen.Änderungen an den Firewall-Regeln.Um die eingestellte Sicherheitsstufe eines aktiven
Systems abzufragen, reicht das folgende einfache
Kommando:&prompt.root; sysctl kern.securelevelDie Ausgaben wird den Namen der
&man.sysctl.8;-Variablen (in diesem Fall
kern.securelevel) und eine Zahl
enthalten. Die Zahl ist der aktuelle Wert der
Sicherheitsstufe. Wenn die Zahl positiv
(größer als Null) ist, sind zumindestens einige
der Schutzmaßnahmen aktiviert.Sie können die Sicherheitsstufe eines laufenden
Systems nicht verringern, da dies den Mechanismus wertlos
machen würden. Wenn Sie eine Tätigkeit
ausführen müssen, bei der die Sicherheitsstufe
nicht-positiv sein muss (z.B. ein
installworld oder eine
Änderung der Systemzeit), dann müssen Sie die
entsprechende Einstellung in
/etc/rc.conf ändern (suchen Sie
nach den Variablen kern_securelevel und
kern_securelevel_enable) und das System
rebooten.Weitere Informationen über die Sicherheitsstufen
und genaue Informationen, was die Einstellungen bewirken,
können Sie der Online-Hilfe &man.init.8;
entnehmen.Die Sicherheitsstufen sind kein magischer
Zauberstab, der alle Ihre Problem löst; es gibt
viele bekannte Probleme. Und in der Mehrzahl der
Fälle vermitteln sie ein falsches Gefühl der
Sicherheit.Eines der größten Probleme ist, dass
alle für den Start des Systems benötigten
Dateien geschützt sein müssen, damit die
Sicherheitsstufe effektiv sein können. Wenn es ein
Angreifer schafft, seine eigenen Programme
ausführen zu lassen, bevor die Sicherheitsstufe
gesetzt wird (was leider erst gegen Ende des
Startvorgangs erfolgen kann, da viele der notwendigen
Tätigkeiten für den Systemstart nicht mit
einer gesetzten Sicherheitsstufe möglich
wären), werden die Schutzmechanismen ausgehebelt.
Es ist zwar nicht technisch unmöglich, alle beim
Systemstart genutzten Dateien zu schützen;
allerdings würde in einem so geschützten
System die Administration zu einem Alptraum, da man das
System neu starten oder in den Single-User Modus bringen
müsste, um eine Konfigurationsdatei
ändern zu können.Dieses und andere Probleme werden häufig auf
den Mailinglisten diskutiert, speziell auf auf der
Mailingliste &a.security;. Das verfügbare Archiv
enthält ausgiebige Diskussionen. Einige Benutzer
sind guter Hoffnung, dass das System der Sicherheitsstufen
bald durch ein besser konfigurierbares System ersetzt
wird, aber es gibt noch keine definitiven Aussagen.Fühlen Sie sich gewarnt.Wieso wartet BIND (named) sowohl auf Port
53 als auch auf einem hohen Port auf Anfragen?FreeBSD benutzt eine Version von
BIND, die einen Port mit einer hohen, zufälligen
Nummer für den Versand von Anfragen nutzt. Wenn Sie
Port 53 für abgehende Anfragen benutzen wollen, um
durch eine Firewall zu kommen oder sich einfach nur besser
zu fühlen, können die folgenden Zeilen in
/etc/namedb/named.conf
eintragen.options {
query-source address * port * 53;
}; Wenn Sie möchten, können Sie statt
* auch eine einzelne IP-Adresse
eintragen, um die Dinge noch weiter
einzuschränken.Ach übrigens, herzlichen Glückwunsch. Es
ist eine sehr gute Angewohnheit, die Ausgaben von
&man.sockstat.1; durchzusehen und auf merkwürdige
Dinge zu achten.Wieso wartet Sendmail neuerdings sowohl auf Port 587
als auch auf dem Standard-Port 25 auf Anfragen?Aktuelle Sendmail-Versionen unterstützen eine
neue Technik zur Einlieferung von Mails, die Port 587
nutzt. Diese Technik wird zwar noch nicht oft angewendet,
erfreut sich aber ständig steigenden
Popularität,Woher kommt dieser Benutzer toor
mit UID 0? Ist mein System gehackt worden?Keine Panik. toor ist ein
alternativer Account für den
Super-User (wenn man root rückwärts schreibt,
erhält man toor). Früher wurde er nur erzeugt,
wenn die Shell &man.bash.1; installiert wurde, heute wird
er auf jeden Fall erzeugt. Dieser Account ist für
die Verwendung mit einer alternativen Shell vorgesehen;
damit ist es nicht mehr erforderlich, die Shell von
root zu ändern. Dies ist
wichtig, wenn eine Shell verwendet wird, die nicht zum
Lieferumfang von FreeBSD gehört, zum Beispiel aus
einem Port oder einem Package. Diese Shells werden in der
Regel in /usr/local/bin installiert
und dieses Verzeichnis liegt standardmäßig auf
einem anderem Filesystem. Wenn die Shell von
root in
/usr/local/bin liegt und
/usr (oder das Filesystem, auf dem
/usr/local/bin liegt) nicht gemountet
werden kann, kann sich root nicht
mehr einloggen, um das Problem zu beheben. Es ist
allerdings möglich, das System zu rebooten und das
Problem im Single-User Modus zu lösen, da man hier
gefragt wird, welche Shell benutzt werden soll.Einige Anwender benutzen toor mit
einer alternativen Shell für die tägliche Arbeit
und benutzen root (mit der
Standard-Shell) für den Single-User Modus und
für Notfälle. Standardmäßig kann man
sich nicht als toor anmelden, da der
Account kein gültiges Passwort hat; Sie
müssen sich also als root
anmelden und ein Passwort für
toor setzen, wenn Sie diesen Account
benutzen wollen.Warum funktioniert suidperl nicht
richtig?Aus Sicherheitsgründen wird suidperl
standardmäßig ohne das SUID-Bit installiert.
Der Systemadministrator kann das normale Verhalten mit dem
folgenden Befehl herstellen:&prompt.root; chmod u+s /usr/bin/suidperlWenn Sie wollen, dass suidperl
auch beim Update via Sourcecode das SUID-Bit erhält,
müssen Sie in /etc/make.conf die
Zeile ENABLE_SUIDPERL=true
einfügen, bevor Sie make
buildworld starten.PPPIch bekomme &man.ppp.8; nicht zum Laufen. Was mache
ich falsch?Sie sollten zuerst &man.ppp.8; (die Manualpage zu ppp)
und den Abschnitt zu
PPP im Handbuch lesen. Aktivieren Sie das Logging
mit folgendem Befehl:set log Phase Chat Connect Carrier lcp ipcp ccp commandDieser Befehl kann an der Eingabeaufforderung von
&man.ppp.8; eingegeben oder in die Konfigurationsdatei
/etc/ppp/ppp.conf eingetragen werden
(der beste Ort hierfür ist der Anfang des Abschnitts
default. Stellen Sie sicher, dass
die Datei /etc/syslog.conf die
folgenden Zeilen enthält:
!ppp
*.* /var/log/ppp.log
und, dass die Datei
/var/log/ppp.log existiert. Sie
können nun über die Logfiles eine Menge
darüber herausfinden, was geschieht. Es macht
nichts, wenn die Einträge in den Logfiles Ihnen gar
nichts sagen. Wenn Sie jemandem um Hilfe bitten
müssen, könnten sie für ihn von Nutzen
sein.Warum hängt sich ppp auf, wenn ich es
benutze?Das liegt meistens daran, dass Ihr Rechnername
nicht aufgelöst werden kann. Um dieses Problem zu
lösen, müssen Sie sicherstellen, dass die
Datei /etc/hosts von Ihrem Resolver
zuerst genutzt wird. Dazu muss in der Datei
/etc/host.conf der Eintrag
hosts an die erste Stelle gesetzt
werden. Erstellen Sie dann einfach für Ihren lokalen
Rechner einen Eintrag in der Datei
/etc/hosts. Falls Sie kein lokales
Netzwerk besitzen, ändern Sie die
localhost-Zeile:127.0.0.1 foo.example.com foo localhostAndernfalls fügen Sie einfach einen weiteren
Eintrag für Ihren lokalen Rechner hinzu. Weitere
Details finden Sie in den betreffenden
Manualpages.Wenn Sie fertig sind sollten Sie ping -c1
`hostname` erfolgreich ausführen
können.Warum wählt &man.ppp.8; im
-auto-Modus nicht?Überprüfen Sie zunächst, ob Sie einen
Standard-Gateway eingestellt haben. Wenn Sie
netstat -rn ausführen, sollten Sie
zwei Einträge ähnlich den folgenden
sehen:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.2 UGSc 0 0 tun0
10.0.0.2 10.0.0.1 UH 0 0 tun0
Hier wird angenommen, dass Sie die Adressen aus
dem Handbuch, der Manualpage oder aus der Datei
ppp.conf.sample benutzt haben. Falls Sie keine
Standardroute haben, kann es daran liegen, dass Sie
eine alte Version von &man.ppp.8; benutzen, die das Wort
HISADDR in der Datei ppp.conf nicht
versteht.Ein weiterer Grund dafür, dass die Zeile
für die Standardroute fehlt, könnte der sein,
dass Sie fälschlicherweise eine Standardroute in
der Datei /etc/rc.conf eingetragen
und die folgende Zeile in ppp.conf
ausgelassen haben:delete ALLLesen Sie in diesem Fall den Abschnitt
Abschließende Systemkonfiguration des
Handbuchs.Was bedeutet No route to
host?Dieser Fehler beruht für gewöhnlich auf
einem fehlenden Abschnitt
MYADDR:
delete ALL
add 0 0 HISADDR
in Ihrer Datei
/etc/ppp/ppp.linkup. Er ist nur
notwendig, wenn Sie eine dynamische IP-Adresse besitzen
oder die Adresse Ihres Gateways nicht kennen. Wenn Sie
den interaktiven Modus benutzen, können Sie folgendes
eingeben, nachdem Sie in den packet
mode gelangt sind (den Paket Modus erkennen Sie
an PPP im Prompt):
delete ALL
add 0 0 HISADDR
Weitere Details finden Sie im Abschnitt PPP
und Dynamische IP-Adressen des Handbuchs.Wieso werden meine Verbindungen nach ca. drei Minuten
beendet?Der Standardtimeout für &man.ppp.8; beträgt
drei Minuten. Er kann durch die Zeileset timeout NNNeingestellt werden, wobei
NNN die Inaktivität in
Sekunden, bevor die Verbindung geschlossen wird, angibt.
Falls NNN Null ist, wird die
Verbindung niemals aufgrund eines Timeouts geschlossen.
Es ist möglich, diesen Befehl in die Datei
ppp.conf einzubinden, oder ihn an der
Eingabeaufforderung im interaktiven Modus einzugeben.
Durch eine Verbindung zum Server-Socket von
ppp über &man.telnet.1;
oder &man.pppctl.8; ist es auch möglich, den Timeout
bei aktiver Verbindung anzupassen. Weitere Details finden
Sie in der Manualpage &man.ppp.8;.Wieso bricht meine Verbindung bei hoher Auslastung
ab?Falls Sie Link-Quality-Reporting (LQR) konfiguriert
haben, ist es möglich, dass zu viele LQR-Pakete
zwischen Ihrer Maschine und dem verbundenen Rechner
verloren gehen. ppp folgert daraus, dass die
Verbindung nicht in Ordnung ist und schließt sie.
Vor FreeBSD Version 2.2.5 war LQR standardmäßig
aktiviert; nun ist es standardmäßig
deaktiviert. Es kann durch folgende Zeile deaktiviert
werden:disable lqrWarum brechen meine Verbindungen nach unbestimmter
Zeit zusammen?Wenn die Qualität Ihrer Telefonleitung zu
schlecht oder bei Ihrem Anschluss die Option
(Telekomdeutsch: das Leistungsmerkmal) Anklopfen aktiviert
ist, kann es manchmal vorkommen, dass Ihr Modem
auflegt, weil es (fälschlicherweise) annimmt,
dass es das Trägersignal verloren hat.Bei den meisten Modems gibt es eine
Einstellmöglichkeit, um anzugeben, wie tolerant es
gegenüber vorübergehenden Verlusten des
Trägersignals sein soll. Bei einem USR &sportster;
wird dies zum Beispiel im Register S10 in Zehntelsekunden
angegeben. Um Ihr Modem toleranter zu machen, können
Sie zu Ihrem Wählbefehl die folgende
Sende-Empfangs-Sequenz hinzufügen:set dial "...... ATS10=10 OK ......"Weitere Information sollten Sie dem Handbuch Ihres
Modems entnehmen können.Warum hängen meine Verbindung nach einer
unbestimmten Zeit?Viele Leute machen Erfahrungen mit hängenden
Verbindungen ohne erkennbaren Grund. Als erstes muss
festgestellt werden, welche Seite der Verbindung
hängt.Wenn Sie ein externes Modem benutzen, können Sie
einfach versuchen, &man.ping.8; zu benutzen, um zu sehen,
ob die TD-Anzeige aufleuchtet, wenn Sie
Daten übertragen. Falls sie aufleuchtet (und die
RD-Anzeige nicht), liegt das Problem am
anderen Ende. Falls TD nicht
aufleuchtet, handelt es sich um ein lokales Problem. Bei
einem internen Modem müssen Sie den Befehl
set server in Ihrer Datei
ppp.conf benutzen. Stellen Sie
über &man.pppctl.8; eine Verbindung zu &man.ppp.8;
her, wenn die Verbindung hängt. Falls Ihre
Netzwerkverbindung plötzlich wieder funktioniert (ppp
wurde durch die Aktivität auf dem Diagnose-Socket
wiederbelebt) oder Sie keine Verbindung bekommen
(vorausgesetzt, der Befehl set socket
wurde beim Start erfolgreich ausgeführt), handelt es
sich um ein lokales Problem. Falls Sie eine Verbindung
bekommen und die externe Verbindung weiterhin hängt,
aktivieren Sie lokales asynchrones Logging mit
set log local async und benutzen Sie
&man.ping.8; von einem anderen Fenster oder Bildschirm
aus, um die externe Verbindung zu benutzen. Das
asynchrone Logging zeigt Ihnen, welche Daten über die
Verbindung gesendet und empfangen werden. Falls Daten
hinausgehen, aber nicht zurückkommen, handelt es sich
um ein externes Problem.Wenn Sie festgestellt haben, ob es sich um ein lokales
oder um ein externes Problem handelt, haben Sie zwei
Möglichkeiten:Wenn es ein externes Problem ist, lesen Sie bitte bei
weiter.Handelt es sich um ein lokales Problem, lesen Sie bitte
.Was kann ich machen, wenn die Gegenstelle nicht
antwortet?Hier können Sie wenig tun. Die meisten ISPs
werden ablehnen, Ihnen zu helfen, wenn Sie kein
Betriebssystem von Microsoft benutzen. Sie können
enable lqr in Ihrer Datei
ppp.conf angeben, wodurch &man.ppp.8;
ermöglicht wird, ein externes Versagen zu erkennen
und aufzulegen, aber diese Erkennung ist relativ langsam
und deshalb nicht besonders nützlich. Evtl. sagen
Sie Ihrem ISP nicht, dass Sie user-PPP
benutzen...Versuchen Sie zunächst, jegliche Datenkompression
auszuschalten, indem Sie folgendes zu Ihrer Konfiguration
hinzufügen:
disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
deny pred1 deflate deflate24 protocomp acfcomp shortseq vj
Stellen Sie nun wieder eine Verbindung her, um
festzustellen, ob sich etwas geändert hat. Falls es
nun besser läuft oder falls das Problem
vollständig behoben ist, versuchen Sie durch
schrittweises Ändern der Einstellungen festzustellen,
welche Einstellung den Unterschied bewirkt. Hierdurch
erhalten Sie schlüssige Fakten für ein Gespräch
mit Ihrem ISP (andererseits wird hierdurch offensichtlich,
dass Sie kein Microsoft-Produkt benutzen).Aktivieren Sie asynchrones Logging und warten Sie, bis
die Verbindung wieder hängt, bevor Sie sich an Ihren
ISP wenden. Hierzu kann einiges an Plattenplatz
nötig sein. Die Daten, die als letztes von dem Port
gelesen wurden, könnten von Interesse sein. Für
gewöhnlich handelt es sich um ASCII-Text, der sogar
den Fehler beschreiben kann (Memory fault, core
dumped).Falls Ihr ISP hilfsbereit ist, sollte er in der Lage
sein, an seinem Ende das Logging zu aktivieren und wenn
das nächste Mal die Verbindung abbricht, könnte
er Ihnen mitteilen, worin das Problem auf seiner Seite
besteht. Gerne können Sie Details auch an &a.brian;
schicken, oder Ihren ISP bitten, sich direkt an ihn zu
wenden.Was kann ich tun, wenn sich &man.ppp.8;
aufhängt?In diesem Fall erstellen Sie am besten &man.ppp.8;
neu, indem Sie CFLAGS+=-g und
STRIP= am Ende des Makefiles
einfügen und dann make clean && make
&& make install ausführen. Suchen
Sie die Prozessnummer von &man.ppp.8; mit ps
ajxww | fgrep ppp, wenn &man.ppp.8; sich
aufhängt und führen Sie gdb ppp
PID aus. Am
gdb-Prompt können Sie bt benutzen,
um einen Auszug von Stack zu erhalten.Senden Sie die Ergebnisse an &a.brian;.Warum passiert nach der Nachricht Login
OK! nichts?Bei Freebsd-Versionen vor 2.2.5 wartete &man.ppp.8;
darauf, dass der Partner das Line Control Protocol
(LCP) initiiert. Viele ISPs starten nicht mit der
Initiierung, sondern erwarten dies vom Client. Benutzen
Sie die folgende Zeile, um &man.ppp.8; zu veranlassen, LCP
zu initiieren:set openmode activeFür gewöhnlich schadet es nicht, wenn
beide Seiten versuchen, Verhandlungen einzuleiten.
Deshalb ist openmode nun standardmäßig aktiv.
Im nächsten Abschnitt wird allerdings erklärt,
in welchen Fällen es doch
schadet.Ich sehe ständig Fehlermeldungen über
gleiche Magic Numbers Was heißt
das?Nach dem Aufbau einer Verbindung kann es sein,
dass Sie in der Logdatei gelegentlich Meldungen mit
dem Hinweis magic is the same sehen.
Manchmal sind diese Meldungen harmlos und manchmal bricht
die eine oder andere Seite die Verbindung ab. Die meisten
Implementationen von PPP können dieses Problem nicht
handhaben und Sie werden wiederholte
Konfigurationsanforderungen und -bestätigungen in der
Logdatei finden, bis &man.ppp.8; schließlich aufgibt
und die Verbindung beendet.Dies geschieht normalerweise auf Servern mit langsamen
Festplatten, bei denen ein getty auf dem Port
ausgeführt und &man.ppp.8; nach dem Einloggen von
einem Login-Skript oder einem Programm aus gestartet wird.
Ich habe auch davon gehört, dass dies bei der
Benutzung von slirp regelmäßig auftritt. Der
Grund hierfür ist, dass das ppp auf der
Client-Seite in der Zeit, die benötigt wird, getty zu
beenden und ppp zu starten, bereits beginnt, Line Control
Protocol (LCP) Pakete zu senden. Da ECHO auf dem
Serverport weiterhin eingeschaltet ist, werden diese
Pakete zum &man.ppp.8; auf der Client-Seite
reflektiert.Ein Teil der LCP-Verhandlungen ist die Einrichtung
einer Magic Number für jede Seite der
Verbindung, damit Echos erkannt werden können.
Das Protokoll besagt, dass, wenn der Partner
versucht, die gleiche Magic Number auszuhandeln,
ein NAK zurückgesendet und eine neue "Magic Number"
gewählt werden soll. Während der Server das
ECHO eingeschaltet hat, sendet der Client LCP Pakete,
sieht die gleiche Magic Number im reflektierten
Paket und erzeugt ein NAK. Er sieht auch das reflektierte NAK
(was bedeutet, dass &man.ppp.8; seine "Magic Number"
ändern muss). Hierdurch wird eine Vielzahl von
Änderungen der Magic Number hervorgerufen,
die sich allesamt im tty-Puffer des Servers ansammeln. Sobald
&man.ppp.8; auf dem Server startet, wird es mit
Änderungen der Magic Number überflutet
und entscheidet, dass es sich zur Genüge mit den
LCP-Verhandlungen beschäftigt hat und gibt auf. Und
während sich der Client noch darüber freut,
dass er keine weiteren Reflexionen sieht, wird ihm
gemeldet, dass der Server auflegt.Dies kann verhindert werden, indem dem Partner durch
die folgende Zeile in der Datei
ppp.conf erlaubt wird, mit der
Verhandlung zu beginnen:set openmode passiveHierdurch wird &man.ppp.8; mitgeteilt, darauf zu
warten, dass der Server mit den LCP-Verhandlungen
beginnt. Einige Server starten jedoch nie mit der
Verhandlungen; falls dies der Fall ist, können Sie
folgendes tun:set openmode active 3Hierdurch bleibt &man.ppp.8; für drei Sekunden
passiv und fängt dann erst an, LCP-Anforderungen zu
senden. Falls der Partner während dieser Zeit
beginnt, Anforderungen zu senden, wird &man.ppp.8; direkt
antworten und nicht erst, nachdem die drei Sekunden
abgelaufen sind.Die LCP-Verhandlungen dauern an, bis die Verbindung
geschlossen wird. Was mache ich falsch?Es gibt eine Fehlfunktion in der Implementierung von
&man.ppp.8;, die darin besteht, dass LCP-, CCP- &
IPCP-Antworten nicht mit den ursprünglichen
Anforderungen assoziiert werden. Für den Fall,
dass eine Implementation von PPP mehr als sechs
Sekunden langsamer ist, als die andere Seite, resultiert
das darin, dass die andere Seite zwei weitere
LCP-Konfigurationsanforderungen sendet, was fatale
Auswirkungen hat.Stellen Sie sich vor, wir hätten es mit zwei
Implementierungen A und
B zu tun. A beginnt
unmittelbar nach der Verbindung, LCP-Anforderungen zu
senden und B benötigt sieben
Sekunden, zu starten. Wenn B startet,
hat A bereits drei LCP-Anforderungen
gesendet. Wir nehmen an, dass ECHO ausgeschaltet
ist; andernfalls würden wir Probleme mit der "Magic
Number" beobachten, wie bereits im vorherigen Abschnitt
beschrieben. B sendet eine Anforderung
und anschließend eine Bestätigung der ersten
Anforderung von A. Dies führt dazu,
dass A in den Zustand
OPENED übergeht und eine
Bestätigung (die erste) zurück an
B sendet. In der Zwischenzeit sendet
B zwei weitere Bestätigungen als
Antwort auf die zusätzlichen Anforderungen, die von
A gesendet worden sind, bevor
B gestartet ist. B
empfängt dann die erste Bestätigung von
A und geht in den Zustand
OPENED über. A
empfängt die zweite Bestätigung von
B, geht zurück in den Zustand
REQ-SENT und sendet eine
weitere (vierte) Anforderung entsprechend dem RFC.
A empfängt dann die dritte
Bestätigung und geht in den Zustand
OPENED über. In der Zwischenzeit
empfängt B die vierte Anforderung
von A, wechselt in den Zustand
ACK-SENT und sendet eine weitere
(zweite) Anforderung und (vierte) Bestätigung
entsprechend dem RFC. A erhält die
Anforderung, geht in den Zustand
REQ-SENT über, sendet eine weitere
Anforderung, erhält unverzüglich die
nächste Bestätigung und geht in
OPENED über.Das geht so weiter, bis eine Seite erkennt, dass
man zu keinem Ergebnis gelangt und aufgibt.Am besten verhindert man solche Situationen, indem man
eine Seite als passiv konfiguriert,
also dafür sorgt, dass eine Seite darauf
wartet, dass die andere mit den Verhandlungen beginnt. Das
kann durch den Befehlset openmode passivegeschehen. Diese Option sollten Sie mit Vorsicht
genießen. Folgenden Befehl sollten Sie benutzen, um
die Wartezeit auf den Beginn der Verhandlungen des
Partners von &man.ppp.8; zu begrenzen:set stopped NAlternativ kann der Befehlset openmode active N(wobei N die Wartezeit in
Sekunden vor Beginn der Verhandlungen angibt) benutzt
werden. Weitere Details finden Sie in den
Manualpages.Warum reagiert &man.ppp.8; nicht mehr, wenn ich es mit
shell verlassen habe?Wenn Sie den Befehl shell oder
! benutzen, führt &man.ppp.8; eine
Shell aus (falls Sie Argumente übergeben haben,
führt &man.ppp.8; diese Argumente aus). &man.ppp.8;
wartet auf die Beendigung des Befehls, bevor es seine
Arbeit fortsetzt. Falls Sie versuchen, die PPP-Verbindung
während der Programmausführung zu benutzen, wird
es so aussehen, als wäre die Verbindung eingefroren.
Das liegt daran, dass &man.ppp.8; auf die
Beendigung des Befehls wartet.Falls Sie solche Befehle verwenden möchten,
benutzen Sie stattdessen den Befehl
!bg. Hierdurch wird der angegebene
Befehl im Hintergrund ausgeführt und &man.ppp.8; kann
fortfahren, die Verbindung zu bedienen.Warum wird &man.ppp.8; niemals beendet, wenn ich es
über ein Nullmodem-Kabel benutze?Es gibt keine Möglichkeit für &man.ppp.8;,
automatisch festzustellen, ob eine direkte Verbindung
beendet worden ist. Das liegt an den Leitungen, die bei
einem seriellen Nullmodem-Kabel benutzt werden. Wenn Sie
diese Art der Verbindung verwenden, sollte LQR immer
aktiviert werden:enable lqrLQR wird standardmäßig akzeptiert, wenn es
vom Partner ausgehandelt wird.Warum wählt &man.ppp.8; im Modus -auto ohne
Grund?Falls &man.ppp.8; unerwarteterweise wählt,
müssen Sie den Grund herausfinden und Wählfilter
(dfilters) einsetzen, um dies zu verhindern.Benutzen Sie die folgende Zeile, um den Grund
herauszufinden:set log +tcp/ipDadurch wird jeglicher Verkehr über die
Verbindung geloggt. Wenn das nächste mal unerwartet
eine Verbindung hergestellt wird, werden Sie den Grund
zusammen mit einer hilfreichen Zeitangabe in der Logdatei
finden.Sie können nun das Wählen aufgrund dieser
Bedingungen verhindern. Normalerweise wird diese Art von
Problemen durch Anfragen an den DNS verursacht. Um zu
verhindern, dass DNS-Anfragen den Aufbau der
Verbindung hervorrufen (das verhindert
nicht, dass Pakete über
eine bestehende Verbindung gesendet werden), benutzen Sie
die folgenden Zeilen:
set dfilter 1 deny udp src eq 53
set dfilter 2 deny udp dst eq 53
set dfilter 3 permit 0/0 0/0
Dies ist nicht immer brauchbar, weil es effektiv Ihre
Fähigkeit, auf Anforderung wählen zu können
einschränkt - die meisten Programme müssen eine
DNS-Anfrage durchführen, bevor Sie andere, das
Netzwerk betreffenden Dinge tun können.Im Fall von DNS sollten Sie versuchen, herauszufinden,
welches Programm tatsächlich versucht, einen
Hostnamen aufzulösen. Sehr oft handelt es sich hier
um &man.sendmail.8;. Sie sollten
sicherstellen, dass Sie sendmail in der
Konfigurationsdatei sagen, dass keine DNS-Anfragen
durchführen soll. Weitere Details enthält
der Abschnitt
E-Mail
über Einwahl-Verbindungen des Handbuchs.
Sie könnten z.B. die folgende Zeile in
Ihre .mc-Datei einfügen:define(`confDELIVERY_MODE', `d')dnlDas veranlasst sendmail dazu, alles in eine
Warteschlange einzureihen, bis die Warteschlange
verarbeitet wird (normalerweise wird sendmail mit
aufgerufen, was besagt,
dass die Warteschlange alle 30 Minuten abgearbeitet
wird) oder, bis ein sendmail -q
ausgeführt wird (z.B. aus Ihrer Datei ppp.linkup
heraus).Was bedeuten diese CCP-Fehler?Ich sehe ständig folgende Fehler in meiner
Logdatei:
CCP: CcpSendConfigReq
CCP: Received Terminate Ack (1) state = Req-Sent (6)
Das liegt daran, dass &man.ppp.8; versucht, die
Komprimierung Predictor1 auszuhandeln und der Partner
über keinerlei Komprimierung verhandeln will. Die
Meldungen sind harmlos, aber wenn Sie sie beseitigen
möchten, können Sie die Komprimierung Predictor1
auch lokal ausschalten:disable pred1Warum loggt ppp die Geschwindigkeit meiner Verbindung
nicht?Um alle Zeilen Ihrer Modemkonversation
mitzuloggen, müssen Sie folgendes einstellen:set log +connectDies veranlasst &man.ppp.8; dazu, alles bis zur
letzten angeforderten expext-Zeile
mitzuloggen.Falls Sie die Geschwindigkeit Ihrer Verbindung
erfahren möchten und PAP oder CHAP (und deshalb nach
dem CONNECT im Wählskript nichts mehr zu
chatten haben - kein set
login-Skript), müssen Sie sicherstellen,
dass Sie &man.ppp.8; anweisen, die gesamte
CONNECT-Zeile zu erwarten, etwa so:set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"Hier bekommen wir unser CONNECT, senden nichts,
erwarten dann einen Line-Feed, der &man.ppp.8; zwingt, die
gesamte CONNECT-Antwort zu lesen.Warum ignoriert &man.ppp.8; das Zeichen
\ in meinem Chat-Skript?ppp analysiert jede Zeile in Ihrer
Konfigurationsdatei, damit es Zeichenketten wie z.B.
set phone "123 456 789" korrekt
interpretieren kann (und erkennen, dass es sich bei
der Nummer tatsächlich nur um
ein Argument handelt). Um das
Zeichen " anzugeben, müssen
Sie ihm einen Backslash (\)
voranstellen.Wenn der Chat-Interpreter jedes Argument analysiert,
reinterpretiert er die Argumente, um irgendwelche
speziellen Escape-Sequenzen wie z.B. \P
oder \T (sehen Sie in die Manualpage)
zu finden. Das Ergebnis dieser Doppelanalyse ist,
dass Sie daran denken müssen, die richtige
Anzahl an Escape-Zeichen zu verwenden.Falls Sie tatsächlich das Zeichen
\ z.B. zu Ihrem Modem senden
möchten, brauchen Sie etwas ähnliches,
wie:set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"woraus sich folgende Zeichen ergeben:
ATZ
OK
AT\X
OK
oder
set phone 1234567
set dial "\"\" ATZ OK ATDT\\T"
was folgende Zeichen ergibt:
ATZ
OK
ATDT1234567
Warum gibt es die Datei ppp.core
nicht, wenn &man.ppp.8; einen Segmentation Fault erzeugt
hat?Weder &man.ppp.8; noch andere Programme sollten
Core-Dumps erzeugen. Da &man.ppp.8; mit der effektiven
Benutzerkennung 0 ausgeführt wird, wird das
Betriebssystem &man.ppp.8;'s Coreimage nicht auf die
Festplatte schreiben, bevor es &man.ppp.8; beendet hat.
Falls &man.ppp.8; jedoch tatsächlich aufgrund einer
Speicherverletzung abbricht und Sie
die aktuellste Version (siehe Anfang dieses Kapitels)
benutzen, dann sollten Sie folgendes tun:&prompt.user; tar xfz ppp-*.src.tar.gz
&prompt.user; cd ppp*/ppp
&prompt.user; echo STRIP= >>Makefile
&prompt.user; echo CFLAGS+=-g >>Makefile
&prompt.user; make clean all
&prompt.user; su
&prompt.root; make install
&prompt.root; chmod 555 /usr/sbin/pppNun ist die installierte Version von &man.ppp.8; mit
einem Debugger ausführbar. Sie können
&man.ppp.8; nun nur noch als root
ausführen, da alle vorherigen Zugriffsrechte
aufgehoben worden sind. Achten Sie darauf, in welchem
Verzeichnis Sie sich gerade befinden, wenn Sie &man.ppp.8;
starten.Wenn nun wieder eine Speicherverletzung auftreten
sollte, wird &man.ppp.8; einen Speicherauszug erzeugen,
den Sie in der Datei ppp.core finden.
Sie sollten dann folgendes tun:&prompt.user; su
&prompt.root; gdb /usr/sbin/ppp ppp.core(gdb)bt
.....
(gdb)f 0
....
(gdb)i args
....
(gdb)l
.....Mit Hilfe all dieser Informationen sollte es
möglich sein, das Problem zu diagnostizieren.Falls Sie mit dem Umgang mit gdb vertraut sind,
könnten Sie weitere Einzelheiten herausfinden, z.B.
wodurch der Fehler tatsächlich hervorgerufen wurde
und die Adressen & Werte der betreffenden
Variablen.Warum bekommt das Programm, das eine automatische
Anwahl ausgelöst hat, keine Verbindung?Dies war ein bekanntes Problem bei
&man.ppp.8;-Konfigurationen, bei denen automatisch
dynamische, lokale IP-Adressen mit dem Partner
ausgehandelt werden. In der aktuellsten Version ist das
Problem behoben - suchen Sie in den Manualpages nach
iface.Das Problem bestand darin, dass, wenn das erste
Programm &man.connect.2; aufruft, die IP-Adresse der
tun-Schnittstelle dem Socketendpunkt zugeordnet wird. Der
Kernel erstellt das erste ausgehende Paket und schreibt es
in das tun-Gerät. &man.ppp.8; liest dann das Paket
und baut eine Verbindung auf. Falls die
Schnittstellenadresse sich nun aufgrund &man.ppp.8;s
dynamischer Adresszuordnung ändert, wird der
originale Socketendpunkt ungültig. Alle weiteren
Pakete, die zum Partner gesendet werden, werden für
gewöhnlich verworfen. Selbst wenn sie nicht
verworfen werden würden, würden alle Antworten
nicht an den betreffenden Rechner gelangen, weil die
IP-Adresse nicht mehr zu diesem Rechner
gehört.Theoretisch gibt es mehrere Möglichkeiten, dieses
Problem anzugehen. Am schönsten wäre es, wenn
der Partner die gleiche IP-Adresse wieder zuordnen
würde, wenn möglich :-) Die
derzeitige Version von &man.ppp.8; tut das, aber die
meisten anderen Implementierungen nicht.Die einfachste Maßnahme von unserer Seite
wäre die, niemals die IP-Adresse der
tun-Schnittstelle zu ändern, sondern stattdessen alle
ausgehenden Pakete so zu ändern, dass als
Absender-IP-Adresse anstelle der IP-Adresse der
Schnittstelle die ausgehandelte IP-Adresse gesetzt wird.
Das ist im wesentlichen das, was durch die Option
iface-alias in der aktuellsten Version
von &man.ppp.8; bewirkt wird (mit Unterstützung von
&man.libalias.3; und &man.ppp.8;'s
Schalter) - alle Schnittstellenadressen werden beibehalten
und auf die letzte ausgehandelte Adresse
umgesetzt.Eine andere Alternative (und wahrscheinlich die
zuverlässigste) wäre die, einen Systemaufruf zu
implementieren der die IP-Adressen aller verbundenen
Sockets von einer Adresse in eine andere ändert.
&man.ppp.8; würde diesen Aufruf benutzen, um die
Sockets aller laufenden Programme zu ändern, nachdem
eine neue IP-Adresse ausgehandelt worden ist. Der gleiche
Systemaufruf könnte von DHCP-Clients benutzt werden,
wenn sie gezwungen werden, einen re-bind() auf ihren
Sockets auszuführen.Noch eine andere Möglichkeit wäre die, das
Aktivieren von Schnittstellen ohne IP-Adresse zu erlauben.
Ausgehende Paketen würde die IP-Adresse
255.255.255.255 gegeben, bis der erste ioctl() mit
SIOCAIFADDR erfolgt. Dies würde in der
vollständigen Verbindung des Sockets resultieren. Es
wäre die Aufgabe von &man.ppp.8;, die
Absender-IP-Adresse zu ändern, allerdings nur dann,
wenn sie 255.255.255.255 lautet und nur die IP-Adresse und
IP-Prüfsumme müssten geändert werden.
Dies wäre allerdings keine besonders elegante
Lösung, da der Kernel fehlerhafte Pakete an eine
unzureichend konfigurierte Schnittstelle senden
würde, in der Annahme, dass andere Mechanismen
in der Lage sind, diese Dinge rückwirkend zu
beheben.Warum laufen die meisten Spiele mit dem
Schalter nicht?Der Grund dafür, dass Spiele und andere
Programme nicht funktionieren, wenn libalias benutzt wird,
ist der, dass der Rechner außerhalb des lokalen
Netzes versucht, eine Verbindung aufzubauen und
(unaufgefordert) UDP-Pakete an den Rechner innerhalb des
lokalen Netzes zu senden. Die Software, die für die
NAT zuständig ist, weiß nicht, dass sie
diese Pakete an den internen Rechner weiterleiten
soll.Um dies zu beheben, stellen Sie zunächst sicher,
dass die Software, mit der Sie Probleme haben, die
einzige ist, die gerade läuft. Benutzen Sie dann
entweder tcpdump auf der tun-Schnittstelle des Gateways
oder aktivieren Sie auf dem Gateway das Logging von TCP/IP
(set log +tcp/ip) unter
&man.ppp.8;.Wenn Sie nun das betreffende Programm starten, sollten
Sie sehen, wie Pakete den Gateway-Rechner passieren. Wenn
von außen etwas zurückkommt, wird es ignoriert
(das ist das Problem). Merken Sie sich die Portnummer
dieser Pakete und beenden Sie das betreffende Programm.
Wiederholen Sie diesen Schritt einige Male, um
festzustellen, ob die Portnummern konsistent sind. Falls
dem so ist, wird die folgende Zeile im entsprechenden
Abschnitt von /etc/ppp/ppp.conf
dafür sorgen, dass das Programm
funktioniert:nat port protointernalmachine:portportwobei für proto
entweder tcp oder
udp zu setzen ist,
internalmachine den Rechner
bezeichnet, an den die Pakete geschickt werden sollen und
port die betreffende
Portnummer.Sie können das Programm nicht auf einem anderen
Rechner benutzen, ohne die obige Zeile abzuändern und
die Benutzung des Programms auf zwei internen Rechnern
steht außer Frage - schließlich sieht die
Außenwelt Ihr gesamtes internes Netz so, als
wäre es ein einzelner Rechner.Falls die Portnummern nicht konsistent sind, gibt es
drei weitere Optionen:Ermöglichen Sie die Unterstützung durch
libalias. Beispiele für spezielle
Fälle finden Sie in
/usr/src/lib/libalias/alias_*.c
(alias_ftp.c ist ein schöner
Prototyp). Hierzu gehört für
gewöhnlich das Lesen bestimmter, erkannter,
ausgehender Pakete, die Identifizierung der
Instruktion, die den entfernten Rechner dazu
veranlasst, auf einem bestimmten (wahlfreien)
Port eine Verbindung zurück zum lokalen Rechner
herzustellen, sowie das Erstellen einer
Route in der Aliastabelle, so dass
nachfolgende Pakete wissen, wohin sie
gehören.Dieses ist zwar die komplizierteste Lösung,
aber die beste, die auch dafür sorgt, dass
die Software auf mehreren Rechnern
funktioniert.Benutzen Sie einen Proxy. Die Anwendung
könnte z.B. socks5 unterstützen, oder (wie
im Fall von cvsup) eine Option
passiv besitzen, die stets verhindert,
dass verlangt wird, dass der Partner eine
Verbindung zurück zur lokalen Maschine
aufbaut.Leiten Sie mit nat addr alles
zur lokalen Maschine um. Dieses Vorgehen ähnelt
dem mit einem Vorschlaghammer.Hat jemand eine Liste mit nützlichen Portnummern
erstellt?Noch nicht, aber hieraus könnte eine solche
entstehen (falls Interesse besteht). In jedem Beispiel
sollte internal durch die
IP-Adresse der Maschine ersetzt werden, auf der das Spiel
laufen soll.Asheron's Callnat port udp
internal:65000
65000Konfigurieren Sie das Spiel manuell auf Port 65000
um. Wenn Sie von mehreren Rechner aus spielen wollen,
weisen Sie jedem eine eindeutige Portnummer zu (also
65001, 65002, u.s.w.) und fügen Sie für jede
Maschine eine eigene nat port Zeile
ein.Half Lifenat port udp
internal:27005
27015PCAnywhere 8.0nat port udp
internal:5632
5632nat port tcp
internal:5631
5631Quakenat port udp
internal:6112
6112Alternativ können sie wegen
Proxyunterstützung für Quake unter www.battle.net
nachsehen.Quake 2nat port udp
internal:27901
27910nat port udp
internal:60021
60021nat port udp
internal:60040
60040Red Alertnat port udp
internal:8675
8675nat port udp
internal:5009
5009Was sind FCS-Fehler?FCS steht für Frame
Check Sequence.
Jedes PPP-Paket besitzt eine Checksumme, um
sicherzustellen, dass die empfangenen Daten dieselben
sind, wie die versendeten. Falls die FCS eines
ankommenden Paketes fehlerhaft ist, wird das Paket
verworfen und der Zähler HDLC FCS wird erhöht.
Der HDLC-Fehlerwert kann durch den Befehl show
hdlc angezeigt werden.Falls Ihre Leitung schlecht ist (oder falls Ihr
serieller Treiber Pakete verwirft), werden sie
gelegentliche FCS-Fehler sehen. Normalerweise lohnt es
sich nicht, sich hierüber Gedanken zu machen, obwohl
das Kompressionsprotokoll hierdurch wesentlich langsamer
wird. Wenn Sie ein externes Modem besitzen, stellen Sie
sicher, dass Ihr Kabel ausreichend gegen
Interferenzen abgeschirmt ist - das könnte das
Problem beseitigen.Falls Ihre Leitung einfriert, sobald die Verbindung
steht, und viele FCS-Fehler auftreten, könnte das
daran liegen, dass Ihre Leitung nicht 8-Bit-rein ist.
Stellen Sie sicher, dass Ihr Modem keinen
Software-Flow-Control (XON/XOFF) verwendet. Falls Ihre
Datenschnittstelle Software-Flow-Control verwenden
muss, benutzen Sie den Befehl
set accmap 0x000a0000, um &man.ppp.8;
zu sagen, dass es die Zeichen ^Q
und ^S maskieren soll.Ein weiterer Grund dafür, dass zu viele
FCS-Fehler auftreten, könnte der sein, dass das
andere Ende aufgehört hat, ppp zu
sprechen. Aktivieren Sie async
Logging, um festzustellen, ob es sich bei den eingehenden
Daten tatsächlich um einen login- oder Shell-Prompt
handelt. Wenn Sie am anderen Ende einen Shell-Prompt
haben, ist es möglich, durch den Befehl
close lcp &man.ppp.8; zu beenden, ohne
die Verbindung zu beenden (ein folgender
term-Befehl wird Sie wieder mit der
Shell auf dem entfernten Rechner verbinden.Falls nichts in Ihrer Logdatei darauf hindeutet, warum
die Verbindung beendet wurde, sollten Sie den
Administrator des externen Rechners (Ihren ISP?) fragen,
warum die Sitzung beendet worden ist.Wieso hängen die Verbindungen meiner &macos;- und
&windows; 98-Maschinen (und eventuell auch andere
µsoft; Betriebssysteme), wenn auf meinem Gateway
PPPoE läuft?Vielen Dank an Michael Wozniak
mwozniak@netcom.ca für die
Erklärung und an Dan Flemming
danflemming@mac.com für die
Lösung für &macos;.Die Ursache des Problems ist ein so genannter
Black Hole Router. &macos; und &windows; 98
(und wahrscheinlich auch die anderen Betriebssysteme von
Microsoft) senden TCP Pakete, bei denen zum einen die
angeforderte Segmentgröße zu groß
für einen PPPoE-Rahmen ist (die Default-MTU für
Ethernet beträgt 1500 Byte) und
bei denen das don't fragment Bit gesetzt
ist (das ist bei TCP allerdings Standard). Außerdem
sendet der Router beim Provider nicht die eigentlich
notwendigen must fragment-Meldungen zu dem
Webserver, von dem Sie gerade eine Seite laden wollen. Es
ist auch möglich, dass diese Meldung zwar
erzeugt, aber danach von einem Firewall vor dem Webserver
abgefangen wird. Wenn Ihnen dieser Webserver nun ein
Paket schickt, das nicht in einen PPPoE-Rahmen passt,
dann verwirft der Router dieses Paket und die Seite wird
nicht geladen (einige Seiten/Grafiken werden geladen, weil
ihre Größe kleiner ist als die MSS). Dies
scheint leider der Normalfall zu sein (wenn die Leute doch
nur wüssten, wie man einen Router
konfiguriert... stöhn...)Eine der möglichen Lösungen für dieses
Problem ist die Erzeugung des folgenden Schlüssels in
der Registry des Windows-Clients:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTUDer Schlüssels sollte vom Typ String sein und den
Wert 1436 haben, da einige ADSL-Router
nicht mit größeren Paketen umgehen können.
Wenn Sie &windows; 2000 verwenden, müssen Sie
hingegen den Schlüssel
Tcpip\Parameters\Interfaces\ID der
Netzwerkkarte\MTU benutzen,
außerdem müssen Sie als Typ DWORD
verwenden.Die Knowledge Base von µsoft; enthält weitere
Informationen darüber, wie sie die MTU einer
&windows;-Maschine ändern, damit diese mit einem
NAT-Router korrekt zusammenarbeitet. Vom besonderen
Interesse sind die Artikel Q158474
- &windows; TCPIP Registry Entries und Q120642
- TCPIP & NBT Configuration Parameters for
&windowsnt;.Bei &windows; 2000 können Sie alternativ auch, wie
im Artikel 120642 beschrieben, mit regedit das DWORD
Tcpip\Parameters\Interfaces\ID der
Netzwerkkarte\EnablePMTUBHDetect
auf 1 setzen.Mit den Bordmitteln von &macos; ist es leider nicht
möglich, die TCP/IP-Einstellungen zu verändern.
Es gibt jedoch kommerzielle Lösungen wie zum Beispiel
OTAdvancedTuner (OT steht für OpenTransport, den
TCP/IP-Stack von &macos;) von Sustainable
Softworks, mit denen man die TCP/IP-Einstellungen
bearbeiten kann. Wenn Sie als &macos;-Anwender NAT
benutzen, sollten Sie im entsprechenden drop-down
Menü den Punkt ip_interface_MTU
auswählen und in der Dialogbox
1450 statt 1500
eingeben. Aktivieren Sie den Punkt Save as Auto
Configure und klicken Sie danach auf
Make Active.&man.ppp.8; kennt seit Version 2.3 den Befehl
enable tcpmssfixup, mit dem die MSS
automatisch korrigiert wird. Wenn Sie einen ältere
Version von &man.ppp.8; benutzen müssen, könnte
der Port tcpmssd für Sie
interessant sein.Nichts von alledem hilft - ich bin
verzweifelt! Was soll ich machen?Falls alles andere fehlschlägt, senden Sie
möglichst umfangreiche Informationen,
einschließlich Ihrer Konfigurationsdateien, wie Sie
&man.ppp.8; starten, die relevanten Teile Ihrer Logdateien
und die Ausgabe des Befehls netstat -rn
(vor und nach Aufbau der Verbindung) an die
Mailingliste &a.de.questions; oder die Newsgroup de.comp.os.unix.bsd.
Irgend jemand sollte Ihnen dann weiterhelfen.Serielle VerbindungenDieses Kapitel beantwortet häufig gestellte Fragen zu
seriellen Verbindungen mit FreeBSD. PPP und SLIP werden im
Abschnitt Netzwerke behandelt.Wie kann ich feststellen, ob FreeBSD meine seriellen
Schnittstellen gefunden hat?Wenn der FreeBSD Kernel bootet, testet er die
seriellen Schnittstellen, für die er konfiguriert
wurde. Sie können entweder Ihrem System aufmerksam
beim Booten zusehen und die angezeigten Nachrichten lesen,
oder Sie führen den Befehl&prompt.user; dmesg | grep sioaus, nachdem Ihr System hochgefahren ist und
läuft.Hier ist ein Beispiel einer Ausgabe nach dem oben
genannten Befehl:
sio0: at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1: at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
Es zeigt zwei serielle Schnittstellen. Die erste
verwendet Port-Adresse 0x3f8, IRQ 4 und
hat einen 16550A UART Chip. Die zweite benutzt ebenfalls
einen 16550A UART, jedoch Port-Adresse
0x2f8 und IRQ 3. Modemkarten werden
wie serielle Schnittstellen behandelt. Der einzige
Unterschied ist, dass an diesen Schnittstellen immer
ein Modem angeschlossen ist.Der GENERIC Kernel beinhaltet
Unterstützung für zwei serielle Schnittstellen,
die den im Beispiel genannten Port und IRQ verwenden.
Wenn diese Einstellungen nicht richtig für Ihr System
sind, Sie Modemkarten hinzugefügt oder mehr serielle
Schnittstellen haben als Ihre Kernelkonfiguration
zulässt, konfigurieren Sie Ihren Kernel einfach
neu. In dem Kapitel über die Kernelkonfiguration finden
Sie mehr Details.Wie kann ich feststellen, ob FreeBSD meine Modemkarten
gefunden hat?Die vorherige Frage sollte darauf eine Antwort
geben.Wie kann ich auf die seriellen Schnittstellen in
FreeBSD zugreifen?Die in &man.sio.4; beschriebene serielle Schnittstelle
sio2 (COM3
unter &ms-dos;/&windows;), ist
/dev/cuaa2 für
Geräte mit abgehenden Verbindungen und
/dev/ttyd2 für Geräte mit
eingehenden Verbindungen. Was ist der Unterschied
zwischen den beiden Geräteklassen?Sie benutzen
ttydX
für eingehende Verbindungen. Wird
/dev/ttydX
im blockierenden Modus geöffnet, wartet ein
Prozess darauf, dass das entsprechende
cuaaX
Gerät inaktiv und der Empfangssignalpegel
Mit Empfangssignalpegel oder
Trägersignalerkennung wird hier
die carrier detect
Leitung bezeichnet.
aktiv ist. Wird das
cuaaX
Gerät geöffnet, vergewissert es sich, dass
die serielle Schnittstelle nicht bereits von dem
ttydX
Gerät in Gebrauch ist. Sollte die Schnittstelle
verfügbar sein, stiehlt es sie von dem
ttydX
Gerät. Das
cuaaX
Gerät kümmert sich nicht um
Trägersignalerkennung. Mit diesem Schema und einem
automatisch antwortenden Modem, können sich Benutzer
von aussen einloggen, Sie können weiterhin mit
demselben Modem wählen und das System kümmert
sich um die Konflikte.Wie kann ich die Unterstützung für eine
Karte mit mehreren seriellen Schnittstellen
aktivieren?Die Sektion über die Kernelkonfiguration bietet
Informationen darüber, wie Sie Ihren Kernel
konfigurieren. Für eine Karte mit mehreren seriellen
Schnittstellen, schreiben Sie eine &man.sio.4; Zeile
für jede serielle Schnittstelle auf der Karte in die
Kernelkonfigurationsdatei. Aber achten Sie darauf, den
IRQ und die Vektorbezeichnung nur in einem der
Einträge zu plazieren. Alle seriellen Schnittstellen
auf der Karte sollten sich einen IRQ teilen. Daher
sollten Sie den IRQ nur beim letzten Eintrag angeben.
Aktivieren Sie auch die COM_MULTIPORT
Option.Das folgende Beispiel ist geeignet für eine AST
Karte mit 4 seriellen Schnittstellen, die IRQ 7
benutzt:
options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr
Die Flags zeigen an, dass die
Master-Schnittstelle die Minor-Nummer 7
(0x700) hat, Diagnosen während des
Bootens ermöglicht sind (0x080),
und dass sich alle Schnittstellen einen IRQ teilen
(0x001).Kann FreeBSD mehrere Karten mit mehreren seriellen
Schnittstellen mit den gleichen IRQs verwalten?Noch nicht. Sie müssen für jede Karte einen
anderen IRQ verwenden.Kann ich die vorgegebenen seriellen Parameter für
eine Schnittstelle einstellen?Das
ttydX
(oder
cuaaX)
Gerät ist das reguläre Gerät, das man in
Anwendungen öffnet. Wenn ein Prozess es
öffnet, hat es die voreingestellten Terminal
Eingabe/Ausgabe-Einstellungen. Sie können diese
Einstellungen mit dem Befehl&prompt.root; stty -a -f /dev/ttyd1ansehen. Wenn Sie die Einstellungen für dieses
Gerät ändern, sind die Einstellungen
gültig, bis das Gerät geschlossen wird. Wird es
danach geöffnet, hat es wieder die vorgegebenen
Einstellungen. Um Änderungen an den vorgegebenen
Einstellungen vorzunehmen, können Sie das
Anfangsstatus-Gerät öffnen und dessen
Einstellungen anpassen. Um zum Beispiel den
CLOCAL Modus, 8 Bits und
XON/XOFF Datenflusskontrolle als
Standard für ttyd5 einzustellen, geben Sie&prompt.root; stty -f /dev/ttyid5 clocal cs8 ixon ixoffein. Eine gute Stelle um dies zu tun ist in
/etc/rc.serial. Jetzt hat eine
Anwendung diese Einstellungen als Standardwerte, wenn sie
ttyd5 öffnet. Die Anwendung
kann die Einstellungen jedoch immer noch nach Belieben
verändern.Man aber kann auch bestimme Einstellungen davor
schützen, von einer Anwendung verändert zu
werden, indem man Veränderungen am lock
state Gerät vornimmt. Um beispielsweise die
Geschwindigkeit von ttyd5 auf 57600
bps festzusetzen:&prompt.root; stty -f /dev/ttyld5 57600Wenn jetzt eine Anwendung ttyd5
öffnet und versucht die Geschwindigkeit zu
verändern, wird diese bei 57600 bps bleiben.Natürlich sollten Sie das Schreiben auf die
Anfangsstatus- und lock state-Geräte nur
root erlauben. Das &man.MAKEDEV.8;
Skript tut dies nicht, wenn es die
Geräte-Einträge erstellt.Wie kann ich Einwahl-Logins über mein Modem
aktivieren?Also Sie wollen ein Internet Service Provider werden,
ja? Als erstes brauchen Sie eines oder mehrere Modems,
die automatisches Antworten beherrschen. Ihr Modem sollte
auf Trägersignalerkennung reagieren und nicht fortlaufend
die Leitung offen halten. Es muss auflegen und sich
neu initialisieren können, wenn die Data
Terminal Ready (DTR) Leitung
ausgeschaltet wird. Es sollte wahrscheinlich
RTS/CTS oder gar keine lokale
Datenflusskontrolle benutzen. Zuletzt muss es
eine konstante Geschwindigkeit zwischen dem Computer und
sich selbst verwenden, aber es sollte (um die Anrufer
freundlich zu behandeln) eine Geschwindigkeit zwischen
sich und dem entfernten Modem aushandeln können.Für viele Modems, die mit dem Hayes Befehlssatz
kompatibel sind, erzeugt der folgende Befehl diese
Einstellungen und legt sie im nicht-flüchtigen
Speicher ab:AT &C1 &D3 &K3 &Q6 S0=1 &WDie Sektion über das
Senden von AT-Befehlen bietet weitere
Informationen, wie man diese Einstellungen vornimmt, ohne
zu einem &ms-dos; Terminalprogramm zu flüchten.Als nächstes erstellen Sie einen Eintrag in
/etc/ttys für das Modem. Diese
Datei listet alle Schnittstellen auf, auf denen das
Betriebssystem Einlogversuche erwartet. Fügen Sie
eine solche Zeile hinzu:ttyd1 "/usr/libexec/getty std 57600" dialup on insecureDiese Zeile bedeutet, dass an der zweiten
seriellen Schnittstelle (/dev/ttyd1)
ein Modem angeschlossen ist, das mit 57600 bps läuft
und keine Parität besitzt
(std.57600 aus
/etc/gettytab). Der Terminal-Typ
für diese Schnittstelle ist dialup
(Einwahl). Die Schnittstelle ist
eingeschaltet (on) und
unsicher (insecure) –
das bedeutet, man kann sich über diese Schnittstelle
nicht als root einloggen. Für
Einwahlanschlüsse wie diesen, benutzen Sie den
ttydX Eintrag.Es ist relativ geläufig,
dialup als Terminal-Typ zu verwenden.
Viele Benutzer richten in ihren
.profile oder
.login Dateien eine Abfrage für
das eigentliche Terminal ein, wenn der Start-Typ
dialup ist. Das Beispiel zeigt die
Schnittstelle als unsicher und um über diese
Schnittstelle root zu werden,
müssen Sie sich als normaler Benutzer einloggen und
&man.su.1;. Wenn sie
secure (sicher) als
Einstellung verwenden, kann sich root
direkt einloggen.Nachdem Sie Modifikationen in
/etc/ttys vorgenommen haben,
müssen Sie ein hangup oder
HUP Signal an &man.init.8;
senden:&prompt.root; kill -HUP 1Das bringt &man.init.8; dazu, die Datei
/etc/ttys neu einzulesen.
init startet dann an allen als
eingeschaltet (on) markierten
Schnittstellen die getty-Prozesse. Sie können
herausfinden ob noch Logins für Ihre Schnittstelle
verfügbar sind, wenn Sie folgendes eingeben:&prompt.user; ps -ax | grep '[t]tyd1'Sie sollten etwas sehen, das so ähnlich aussieht
wie:747 ?? I 0:00:04 /usr/libexec/getty std.57600 ttyd1Wie kann ich ein Hardware-Terminal mit meiner FreeBSD
Box verbinden?Wenn Sie einen anderen Computer als Terminal für
Ihr FreeBSD System verwenden wollen, verbinden Sie die
beiden seriellen Schnittstellen mit einem Nullmodem-Kabel.
Wenn Sie ein echtes (Hardware-)Terminal
benutzen, lesen Sie die Begleitinformationen.Ändern Sie /etc/ttys wie
oben angegeben. Wenn Sie zum Beispiel ein WYSE-50
Terminal mit der fünften seriellen Schnittstelle
verbinden wollen, schreiben Sie einen Eintrag wie
diesen:ttyd4 "/usr/libexec/getty std.38400" wyse50 on secureDas Beispiel zeigt, dass die Schnittstelle an
/dev/ttyd4 mit einem wyse50 Terminal
mit 38400 bps und ohne Parität
(std.38400 aus
/etc/gettytab) verbunden ist und
root Logins möglich sind
(secure).Warum kann ich tip oder
cu nicht laufen lassen?Vielleicht sind auf Ihrem System die Programme
&man.tip.1; und &man.cu.1; nur von
uucp und der Gruppe
dialer ausführbar. Sie
können die Gruppe dialer
verwenden, um zu kontrollieren wer Zugriff auf Ihr Modem
oder entfernte Systeme hat. Fügen Sie sich einfach
selbst zur Gruppe dialer
hinzu.Als Alternative können Sie jeden Benutzer auf
Ihrem System &man.tip.1; und &man.cu.1; verwenden lassen,
dazu müssen Sie das folgende eingeben:&prompt.root; chmod 4511 /usr/bin/cu
&prompt.root; chmod 4511 /usr/bin/tipMein Hayes Modem wird nicht unterstützt – was
kann ich tun?Eigentlich ist die Onlinehilfe für &man.tip.1;
nicht mehr aktuell. Es gibt einen eingebauten,
allgemeinen Hayes Wähler. Verwenden Sie einfach
at=hayes in
/etc/remote.Der Hayes Treiber ist nicht schlau genug, um ein paar
der erweiterten Merkmale von neueren Modems zu erkennen –
Nachrichten wie BUSY, NO
DIALTONE oder CONNECT 115200
verwirren ihn nur. Sie sollten diese Nachrichten mit
Hilfe von ATX0&W abschalten, wenn
Sie tip benutzen.Das Anwahl-Timeout von &man.tip.1;
beträgt 60 Sekunden. Ihr Modem sollte weniger
verwenden, oder tip denkt, dass
ein Kommunikationsfehler vorliegt. Versuchen Sie es mit
ATS7=45&W.Tatsächlich unterstützt die ausgelieferte
Version von &man.tip.1; es noch nicht
vollständig. Die Lösung ist,
tipconf.h im Verzeichnis
/usr/src/usr.bin/tip/tip zu
editieren. Dafür benötigen Sie natürlich
die Quellcode Distribution.Editieren Sie die Zeile #define HAYES
0 in #define HAYES 1 um.
Dann führen Sie make und
make install aus. Es sollte jetzt
funktionieren.Wie soll ich die AT Befehle eingeben?Erstellen Sie einen so genannten
direct Eintrag in
/etc/remote. Wenn Ihr Modem zum
Beispiel an der ersten seriellen Schnittstelle,
/dev/cuaa0, angeschlossen ist, dann
fügen Sie die folgende Zeile hinzu:cuaa0:dv=/dev/cuaa0:br#19200:pa=noneVerwenden Sie die höchste bps Rate, die Ihr Modem
in der br Fähigkeit unterstützt. Geben Sie dann
tip cuaa0 ein
und Sie sind mit Ihrem Modem verbunden.Wenn auf Ihrem System keine
/dev/cuaa0 Datei existiert, geben Sie
folgendes ein:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV cuaa0Oder benutzen Sie cu als
root mit dem folgenden Befehl:&prompt.root; cu -lline -sspeedline steht für die
serielle Schnittstelle (/dev/cuaa0)
und speed für die
Geschwindigkeit (57600). Wenn Sie mit
dem Eingeben der AT Befehle fertig sind, beenden Sie mit
~..Wieso funktioniert das <@>
Zeichen für die pn Fähigkeit nicht?Das <@> Zeichen in der
Telefonnummerfähigkeit sagt tip, dass es in der
Datei /etc/phones nach einer Nummer
suchen soll. Aber <@> ist auch
ein spezielles Zeichen in den Dateien, in denen
Fähigkeiten beschrieben werden, wie
/etc/remote. Schreiben Sie es mit
einem '\' (backslash):pn=\@Wie kann ich von der Kommandozeile eine Telefonnummer
wählen?Stellen Sie einen allgemeinen Eintrag
in /etc/remote. Zum
Beispiel:
tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
Mit einem Befehl wie tip -115200
5551234 können Sie dann wählen.
Sollten Sie &man.cu.1; im Gegensatz zu &man.tip.1;
bevorzugen, verwenden Sie einen allgemeinen
cu-Eintrag:
cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
Zum Wählen können Sie dann cu
5551234 -s 115200 eingeben.Muss ich dabei jedes Mal die bps Rate
angeben?Schreiben Sie einen tip1200 oder
einen cu1200 Eintrag, aber geben Sie
auch die bps Rate an, die Ihr Modem wirklich
unterstützt. Leider denkt &man.tip.1;, dass
1200 bps ein guter Standardwert ist und deswegen sucht es
nach einem tip1200-Eintrag.
Natürlich müssen Sie nicht wirklich 1200 bps
benutzen.Wie kann ich möglichst komfortabel über
einen Terminal-Server auf verschiedene Rechner
zugreifen?Sie müssen nicht warten bis Sie verbunden sind,
und jedes Mal CONNECT
Rechner eingeben,
benutzen Sie tip's cm Fähigkeit.
Sie können diese Einträge in
/etc/remote verwenden:
pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:
Mit den Befehlen tip pain oder
tip muffin können Sie eine
Verbindungen zu den Rechnern pain oder
muffin herstellen; mit tip
deep13 verbinden Sie sich mit dem Terminal
Server.Kann tip mehr als eine Verbindung für jede Seite
ausprobieren?Das ist oft ein Problem, wenn eine Universität
mehrere Telefonleitungen hat und viele tausend Studenten
diese benutzen wollen.Erstellen Sie einen Eintrag für Ihre
Universität in /etc/remote und
benutzen Sie <\@> für die
pn Fähigkeit:
big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
Listen Sie die Telefonnummern der Universität
in /etc/phones auf:
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
&man.tip.1; probiert jede der Nummern in der
aufgelisteten Reihenfolge und gibt dann auf. Möchten
Sie, dass tip beim Versuchen eine
Verbindung herzustellen nicht aufgibt, lassen Sie es in
einer while-Schleife laufen.Warum muss ich zweimal
CtrlP tippen, um ein
CtrlP zu senden?CtrlP ist das voreingestellte Zeichen, mit dem eine
Übertragung erzwungen werden kann und wird benutzt,
um &man.tip.1; zu sagen, dass das nächste
Zeichen direkt gesendet werden soll und nicht als
Fluchtzeichen interpretiert werden soll. Mit Hilfe der
~s Fluchtsequenz, mit der man Variablen
setzen kann, können Sie jedes andere Zeichen als
force-Zeichen definieren.Geben Sie
~sforce=zeichen
ein und drücken Sie Enter. Für
zeichen können Sie ein
beliebiges einzelnes Zeichen einsetzen. Wenn Sie
zeichen weglassen, ist das
force-Zeichen nul, das Sie mit
Ctrl2 oder
CtrlSPACE eingeben können. Ein
guter Wert für zeichen ist
ShiftCtrl6, welches ich erst auf ein paar
Terminal-Servern in Benutzung gesehen habe.Sie können das force-Zeichen auch
bestimmen, indem Sie in $HOME/.tiprc
das folgende einstellen:force=single-charWarum ist auf einmal alles was ich schreibe in
GROSSBUCHSTABEN??Sie müssen
CtrlA eingegeben haben, das
raise-Zeichen von &man.tip.1; das speziell
für Leute mit defekten Caps Lock Tasten
eingerichtet wurde. Benutzen Sie ~s wie
oben und setzen Sie die Variable raisechar auf
etwas, das Ihnen angemessen erscheint. Tatsächlich
kann die Variable auf das gleiche Zeichen wie das
force-Zeichen gesetzt werden, wenn Sie
diese Fähigkeiten niemals benutzen wollen.Hier ist ein Muster der .tiprc
Datei, perfekt für Emacs
Benutzer, die oft
Ctrl2 und
CtrlA tippen müssen:
force=^^
raisechar=^^
Das ^^ steht für
ShiftCtrl6.Wie kann ich Dateien mit tip
übertragen?Wenn Sie mit einem anderen &unix; System kommunizieren,
können Sie Dateien senden und empfangen – mit
~p (put) und ~t
(take). Diese Befehle lassen &man.cat.1; und &man.echo.1;
auf dem entfernten System laufen, um Dateien zu
akzeptieren und zu senden. Die Syntax ist:
~p <local-file> [<remote-file>]
~t <remote-file> [<local-file>]
Es gibt keine Fehlerkontrolle, deshalb sollten Sie
besser ein anderes Protokoll benutzen, wie zmodem.Wie kann ich zmodem mit tip
laufen lassen?Zuerst installieren Sie ein zmodem Programm aus der
Ports-Sammlung (eines der beiden aus der comms-Kategorie,
lrzsz oder
rzsz).Um Dateien zu empfangen, starten Sie das Programm zum
Senden auf dem entfernten Computer. Drücken Sie dann
Enter gefolgt von ~C rz (oder
~C lrz, wenn Sie lrzsz installiert
haben), um diese lokal zu empfangen.Um Dateien zu senden, starten Sie das Programm zum
Empfangen auf dem entfernten Computer. Drücken Sie
dann Enter gefolgt von ~C sz
Dateien (oder
~C lsz
Dateien), um sie zum
entfernten System zu senden.Verschiedene FragenFreeBSD benutzt viel mehr Swap-Speicher als &linux;.
Warum?Es sieht nur so aus, als ob FreeBSD mehr Swap benutzt,
als &linux;. Tatsächlich ist dies nicht der Fall. In
dieser Hinsicht besteht der Hauptunterschied zwischen
FreeBSD und &linux; darin, dass FreeBSD vorbeugend
vollkommen untätige, unbenutzte Seiten aus dem
Hauptspeicher in den Swap-Bereich auslagert, um mehr
Hauptspeicher für die aktive Nutzung zur
Verfügung zu stellen. &linux; tendiert dazu, nur als
letzten Ausweg Seiten in den Swap-Bereich auszulagern.
Die spürbar höhere Nutzung des Swap-Speichers
wird durch die effizientere Nutzung des Hauptspeichers
wieder ausgeglichen.Beachten Sie, dass FreeBSD in dieser Hinsicht
zwar vorbeugend arbeitet, es entscheidet jedoch nicht
willkürlich, Seiten auszulagern, wenn das System
vollkommen untätig ist. Deshalb werden Sie
feststellen, dass nicht alle Seiten Ihres Systems
ausgelagert wurden, wenn Sie morgens aufstehen, nachdem
das System eine Nacht lang nicht benutzt worden
ist.Warum zeigt mir &man.top.1; so wenig freien Speicher
an, obwohl nur wenige Programme laufen?Die Antwort ist ganz einfach: Freier Speicher ist
verschwendeter Speicher. Der FreeBSD Kernel verwendet den
von den Programmen nicht genutzten Speicher automatisch
für den Plattencache. Die in &man.top.1; für
Inact, Cache und
Buf gemeldeten Werte stehen alle
für zwischengespeicherte Daten mit unterschiedlichem
Alter. Wenn das System wiederholt auf Daten zugreifen
muss, braucht es nicht auf die langsame Platte
zuzugreifen, da die Daten noch zwischengespeichert sind.
Dadurch erhöht sich die Performance. Ganz generell
ist es ein gutes Zeichen, wenn &man.top.1; einen kleinen
Wert bei Free anzeigt, solange der Wert
nicht extrem klein ist.Anmerkung des Übersetzers: Mit extrem
klein sind hier Werte unterhalb 512 KByte
gemeint.Warum ändert chmod die
Zugriffsrechte auf symbolische Links nicht?Für symbolische Links gibt es keine separaten
Zugriffsrechte und standardmäßig folgt
&man.chmod.1; dem Link nicht; die Zugriffsrechte für
die Datei, auf die der symbolische Link zeigt, werden also
nicht verändert. Wenn Sie eine Datei mit dem Namen
foo und einen auf diese Datei
zeigenden symbolischen Link mit dem Namen
bar haben, wird das folgende Kommando
niemals einen Fehler melden.&prompt.user; chmod g-w barTrotzdem werden die Zugriffsrechte für
foo nicht geändert.Hierzu müssen Sie entweder
oder zusammen mit der Option
benutzen. Weitere Informationen
finden Sie in den Manualpages &man.chmod.1; und
&man.symlink.7;.Die Option bewirkt ein
rekursives &man.chmod.1;.
Seien Sie vorsichtig, wenn Sie bei
&man.chmod.1; Verzeichnisse oder symbolische
Links zu Verzeichnissen angeben. Wenn Sie die
Zugriffsrechte eines Verzeichnisses ändern
möchten, das durch einen symbolischen Link
referenziert wird, benutzen Sie &man.chmod.1;
ohne irgendwelche Optionen und folgen dem symbolischen
Link durch einen abschließenden Schrägstrich
(/). Falls z.B.
foo ein symbolischer Link zum
Verzeichnis bar ist und Sie die
Zugriffsrechte von foo
(tatsächlich bar) ändern
möchten, dann benutzen Sie etwas ähnliches
wie:&prompt.user; chmod 555 foo/Durch den abschließenden Schrägstrich folgt
&man.chmod.1; dem symbolischen Link
foo, um die Zugriffsrechte für
das Verzeichnis bar zu
ändern.Kann ich DOS-Programme unter FreeBSD
ausführen?Ja. Sie können
emulators/doscmd
verwenden, das über die Ports-Sammlung verfügbar
ist.doscmd war früher
Teil des Basissystems von &os;, es wurde aber vor der
Veröffentlichung von &os; 5.3 daraus
entfernt.Falls doscmd nicht ausreicht,
können Sie den Port
emulators/pcemu
verwenden, der einen 8088 und genug BIOS-Funktionen emuliert,
um DOS-Textanwendungen laufen zu lassen. Der Port
benötigt das X-Window-System.Was muss ich tun, um die FreeBSD-Dokumentation in
meine Muttersprache zu übersetzen?Informationen zu diesem Thema finden Sie in der FAQ
des FreeBSD German Documentation Project.Warum kommen alle meine Mails, die ich an @FreeBSD.org
schicke, wieder zurück?Das Mailsystem von FreeBSD.org verwendet einige der
strengeren Überprüfungen von
Postfix für eingehende Mails.
Mails, bei denen es Anzeichen für Konfigurationsprobleme
oder Spam gibt, werden nicht akzeptiert. Dies kann aus einem
der folgenden Gründe geschehen:Die Mail kommt von einem System oder Netzwerk,
dass für Spam-Aktivitäten bekannt
ist.Die Mailserver von FreeBSD akzeptierten keine
Mails von bekannten Spam-Quellen. Wenn Sie eine
Firma oder Domain benutzen, die Spam erzeugt oder
verteilt, sollten Sie sich einen anderen ISP
suchen.Der Mailtext enthält HTML.Mail sollte immer im Klartext gesendet werden, Sie
sollten ihr Mailprogramm entsprechend
einstellen.Das Mailsystem kann die IP-Adresse des
einliefernden Systems nicht in einen symbolischen
Namen umwandeln.Funktionierendes reverse DNS ist eine
Vorbedingung, damit ihre Mails angenommen wird.
Sorgen Sie dafür, dass der reverse DNS
für Ihren Mailserver korrekt konfiguriert wird.
Viele Anbieter für Privatkunden geben Ihnen diese
Möglichkeit nicht. In diesem Fall sollten Sie
Ihre Mails über den Mailserver Ihres Providers
versenden.Der Rechnername, der im EHLO/HELO Teil der SMTP
Kommunikation übergeben wird, kann nicht zu einer
IP-Adresse aufgelöst werden.Damit die E-Mail akzeptiert wird, brauchen Sie einen
voll qualifizierten Rechnernamen, der im DNS eingetragen ist.
Wenn Sie diesen nicht besitzen, benutzen Sie bitte den
Mailserver Ihres Providers, um E-Mails zu verschicken.Die Message-ID Ihrer Mail endet in
localhost.Einige Mail-Clients generieren eine Message-ID, die
nicht akzeptiert wird. Sie müssen Ihren Mail-Client
so konfigurieren, dass er eine gültige Message-ID
generiert. Alternativ können Sie die Message-ID von
Ihrem Mailserver umschreiben lassen.Wo kann ich einen freien FreeBSD-Account bekommen?Das FreeBSD-Projekt bietet zwar keinen freien Zugang
zu seinen Servern an; andere Firmen bieten jedoch frei
zugängliche &unix; Systeme. Die Kosten variieren und
es kann sein, dass nicht alle Dienste zur
Verfügung stehen.Arbornet,
Inc, auch als M-Net bekannt, bietet seit 1983
uneingeschränkten Zugang zu &unix; Systemen.
Zunächst wurde eine Altos-Maschine mit System III
benutzt, 1991 erfolgte dann der Wechsel zu BSD/OS. Im
Juni 2000 erfolgte ein erneuter Wechsel, diesmal zu
FreeBSD. M-Net bietet Zugang mit Telnet und SSH und den
Zugang zur gesamten Software von FreeBSD. Allerdings ist
der Zugriff auf das Netzwerk auf Mitglieder und
Gönner beschränkt, die eine Spende an die
nicht-kommerzielle Organisation geleistet haben. M-Net
stellt zusätzlich ein Mailbox-System und einen
interaktiven Chat zur Verfügung.Grex bietet
ein ganz ähnlichen Dienst wie M-Net an, dazu
gehören auch das Mailbox-System und der interaktive
Chat. Allerdings wird eine SUN4M mit &sunos;
benutzt.Was ist sup und wie benutze ich
es?Der Name SUP steht für
Software Update Protocol und wurde von der CMU (Carnegie
Mellon University) entwickelt, um ihre Entwicklungszweige
zu synchronisieren. Wir haben es benutzt, um entfernte
Sites mit unseren zentralen Quellcodeentwicklungen zu
synchronisieren.SUP ist nicht sehr bandbreitenfreundlich und wurde
abgelöst. Die derzeit empfohlene Methode, um Ihren
Quellcode auf dem neuesten Stand zu halten ist
CVSup.Wie heißt das niedliche rote Kerlchen?Er ist namenlos, es ist einfach der der BSD
Daemon. Wenn Sie ihm unbedingt einen Namen geben
wollen, rufen Sie ihn beastie. Beachten
Sie aber, dass beastie wie
BSD ausgesprochen wird.Weitere Informationen über den BSD daemon finden
Sie auf seiner
Homepage.Kann ich Bilder des BSD Daemon verwenden?Eventuell. Der BSD Daemon unterliegt dem Copyright
von Marshall Kirk McKusick. Wenn Sie genaue Informationen
über die Einschränkungen bei der Nutzung
brauchen, sollten Sie sein Statement
on the Use of the BSD Daemon Figure lesen.Kurz gesagt, können Sie den BSD Daemon benutzen,
solange es für einen privaten Zweck ist und die
Nutzung geschmackvoll bleibt. Für den kommerziellen
Einsatz brauchen Sie die Zustimmung von Kirk McKusick.
Weitere Informationen erhalten Sie auf der Webseite BSD
Daemon's home page.Woher kann ich Bilder des BSD Daemon bekommen?Einige Bilder in den Format xfig und eps sind unter
/usr/share/examples/BSD_daemon/ zu
finden.Ich habe in den Mailinglisten eine Abkürzung oder
einen Begriff gesehen, den ich nicht kenne. Wo erhalte
ich eine Erklärung dazu?Sehen Sie bitte im
FreeBSD-Glossar nach.Warum sollte mich die Farbe des Fahrradschuppens
interessieren?Die ganz, ganz kurze Antwort ist: Überhaupt nicht.
Die etwas längere Antwort lautet: Nur weil Sie in der
Lage sind, einen Fahrradschuppen zu bauen, müssen Sie
noch lange nicht andere davon abhalten, nur weil Ihnen die
Farbe nicht gefällt. Dies ist natürlich eine
Metapher dafür, dass Sie nicht eine Diskussion über
jede kleine Änderung beginnen sollen, nur weil Sie
das können. Einige Leute behaupten sogar, dass
die Anzahl der (nutzlosen) Kommentare über eine
Änderung umgekehrt proportional zur
Komplexität der Änderung ist.Die noch längere und vollständigere Antwort
ist, dass &a.phk; nach einen langen Diskussion
über das Thema "Soll &man.sleep.1; Sekundenbruchteile
als Parameter akzeptieren?" eine lange Mail mit dem Titel
A
bike shed (any colour will do) on greener
grass... schrieb. Die einschlägigen
Teile der Nachricht lauteten:
&a.phk; in freebsd-hackers,
2.10.1999Einige von Euch haben mich gefragt, Was
meinst Du mit dem Fahrradschuppen?Es ist eine lange oder eigentlich eher eine sehr
alte und doch sehr kurze Geschichte. C. Northcote
Parkinson schrieb in den frühen Sechzigern ein Buch
mit dem Namen Parkinson's Law, das viele
Einblick in die Beziehungen innerhalb des Managements
gibt.[ein paar Kommentare zum Buch gestrichen]In dem Beispiel mit dem Fahrradschuppen ist die
andere wichtige Komponente ein Kernkraftwerk. Ich
glaube, dass zeigt schon, wie alt dieses Buch
ist.Parkinson zeigte, dass man zum Vorstand gehen
kann und die Genehmigung für ein mehrere Millionen
oder sogar Milliarden Dollar teures Kernkraftwerk
bekommt; wenn man aber einen Fahrradschuppen bauen will,
wird man in endlose Diskussionen verwickelt.Laut Parkinson liegt das daran, dass ein
Kernkraftwerk so groß, so teuer und so kompliziert
ist, dass die Leute es nicht verstehen. Und bevor
sie versuchen, es zu verstehen, verlassen Sie sich
lieber darauf, dass irgend jemand sicherlich die
ganzen Details geprüft hat, bevor das Projekt bis
zum Vorstand gekommen ist. Im Buch von Richard P.
Feynmann finden sich einige interessante und sehr
passende Beispiele aus dem Gebiet von Los
Alamos.Ein Fahrradschuppen ist was anderes. Jeder kann an
seinem freien Wochenende einen bauen und hat trotzdem
noch genug Zeit für die Sportschau. Daher ist es
unwichtig, wie gut man sich vorbereitet und wie sinnvoll
der eigene Vorschlag ist. Irgend jemand wird die
Möglichkeit nutzen und zeigen, dass er seine
Arbeit tut, dass er aufmerksam ist, dass er
da ist.In Dänemark nennen wir dieses Verhalten
Seine Fingerabdrücke hinterlassen.
Es geht um persönlichen Stolz und Prestige; die
Chance, auf irgend etwas zu zeigen und zu sagen zu
können: Da! Das habe
Ich getan. Politiker leiden
sehr stark darunter, aber viele Leute verhalten sich so,
wenn sie die Chance haben. Denkt einfach mal an
Fußabdrücke in feuchtem Zement.
Nicht ganz ernstgemeinte FragenWie cool ist FreeBSD?Q. Hat irgend jemand Temperaturmessungen
durchgeführt, während FreeBSD läuft? Ich
weiss, dass &linux; cooler läuft, als DOS, habe
aber niemals gesehen, dass FreeBSD erwähnt
wurde. Es scheint sehr heiß zu laufen.A. Nein, aber wir haben zahlreiche Geschmackstests mit
verblendeten Freiwilligen durchgeführt, denen
außerdem zuvor 250 Mikrogramm LSD-25 verabreicht
wurden. 35% der Freiwilligen sagte, dass FreeBSD
nach Orange schmeckte, &linux; hingegen schmecke wie
purple haze (Anm. d. Übersetzers: Song
von Jimmy Hendrix und LSD-Marke). Keine der Gruppen hat
besondere Abweichungen der Temperatur erwähnt.
Eventuell hätten wir sämtliche Ergebnisse dieser
Untersuchung fortwerfen sollen, als wir festgestellt
haben, dass zu viele der Freiwilligen den Raum
während der Tests verlassen haben und dadurch die
Ergebnisse verfälscht haben. Wir glauben, dass
die meisten der Freiwilligen nun bei Apple sind und an
ihrer neuen scratch and sniff
Oberfläche arbeiten. Es ist ein lustiges, altes
Geschäft, in dem wir uns befinden!Ernsthaft, FreeBSD und &linux; benutzen beide die
Instruktion HLT (halt), wenn das System
untätig ist, wodurch der Energieverbrauch und dadurch
die produzierte Wärme reduziert wird. Falls Sie auch
noch APM (Advanced Power Management) konfiguriert haben,
kann FreeBSD Ihre CPU auch in einen Low-Power-Modus
bringen.Wer kratzt in meinen Speicherbänken??Q. Gibt es irgend etwas seltsames, das
FreeBSD tut, wenn ich den Kernel kompiliere, das dazu
führt, dass der Speicher ein kratzendes
Geräusch macht? Bei der Kompilierung (und auch
für einen kurzen Moment nach der Erkennung des
Floppy-Laufwerks beim Hochfahren), kommt ein seltsames
kratzendes Geräusch von etwas das die
Speicherbänke zu sein scheinen.A. Ja! In der BSD-Dokumentation finden Sie
häufige Verweise auf Daemons und was
die meisten Leute nicht wissen, ist, dass diese sich
auf echte, nicht-körperlichen Wesen beziehen, die
Besitz von Ihrem Computer ergriffen haben. Das kratzende
Geräusch, das von Ihrem Speicher kommt, ist in
Wirklichkeit hochtöniges Flüstern, das unter den
Daemons ausgetauscht wird, während Sie entscheiden,
wie Sie die verschiedenen Systemadministrationsaufgaben,
am besten erledigen.Wenn Sie das Geräusch stört, wird ein
fdisk /mbr sie vertreiben, aber wundern
Sie sich nicht, wenn sie feindlich reagieren und
versuchen, Sie aufzuhalten. Wenn Sie während der
Ausführung zu irgendeinem Zeitpunkt die teuflische
Stimme von Bill Gates aus dem eingebauten Lautsprecher
kommen hören, laufen Sie weg und sehen Sie sich auf
keinen Fall um! Befreit von dem ausgleichenden
Einfluss der BSD Dämonen sind die beiden
Dämonen von DOS und &windows; oft dazu in der Lage, die
totale Kontrolle über Ihre Maschine für die
ewige Verdammung Ihrer Seele zurückzuerlangen. Da
Sie jetzt die Wahrheit kennen, würden Sie es
vorziehen, sich an die Geräusche zu gewöhnen,
wenn Sie die Wahl hätten.Wie viele FreeBSD-Hacker braucht man, um eine
Glühbirne auszuwechseln?Eintausendeinhundertundneunundsechzig:Dreiundzwanzig, die sich bei -CURRENT beschweren,
dass das Licht aus ist;Vier, die behaupten, dass es sich um ein
Konfigurationsproblem handelt und dass solche Dinge
wirklich nach -questions gehören;Drei, die PRs hierzu einreichen, einer von ihnen wird
falsch unter DOC abgelegt und fristet sein Dasein im
Dunkeln;Einen, der eine ungetestete Glühbirne einreicht,
wonach buildworld nicht mehr funktioniert, und sie dann
fünf Minuten später wieder herausnimmt;Acht, die die PR-Erzeuger beschimpfen, weil sie zu
ihren PRs keine Patche hinzugefügt haben;Fünf, die sich darüber beschweren, dass
buildworld nicht mehr funktioniert;Einunddreißig, die antworten, dass es bei
ihnen funktioniert und dass sie cvsup wohl zu einigem
ungünstigen Zeitpunkt durchgeführt
haben;Einen, der einen Patch für eine neue
Glühbirne an -hackers schickt;Einen, der sich beschwert, dass es vor drei
Jahren Patches hierfür hatte, aber als er sie nach
-CURRENT schickte, sind sie einfach ignoriert worden und
er hatte schlechte Erfahrungen mit dem PR-System; nebenbei
ist die vorgeschlagene Glühbirne nicht
reflexiv;Siebenunddreißig, die schreien, dass
Glühbirnen nicht in das Basissystem gehören,
dass Committer nicht das Recht haben, solche Dinge
durchzuführen, ohne die Gemeinschaft zu konsultieren
und WAS GEDENKT -CORE HIER ZU TUN!?Zweihundert, die sich über die Farbe des
Fahrradschuppens beschweren;Drei, die darauf hinweisen, dass der Patch nicht
mit &man.style.9; übereinstimmt;Siebzehn, die sich beschweren, dass die
vorgeschlagene neue Glühbirne der GPL
unterliegt;Fünfhundertundsechsundachtzig, die sich in einen
Streit über die vergleichbaren Vorteile der GPL, der
BSD-Lizenz, der MIT-Lizenz, der NPL und der
persönlichen Hygiene nichtgenannter FSF-Gründer
verwickeln;Sieben, die unterschiedliche Teile des Threads nach
-chat und -advocacy weiterleiten;Einer, der die vorgeschlagene Glühbirne einbaut,
obwohl sie dunkler leuchtet, als die alte;Zwei, die sie wieder ausbauen, und in einer
wütenden Nachricht argumentieren, dass FreeBSD
besser ganz im Dunkeln dasteht, als mit einer
dämmerigen Glühbirne;Sechsundvierzig, die sich lärmend wegen des
Wiederausbaus der dämmerigen Glühbirne streiten
und eine Erklärung von -core verlangen;Elf, die eine kleinere Glühbirne beantragen,
damit sie in ihr Tamagotchi passt, falls wir
irgendwann beschließen, FreeBSD auf diese Plattform
zu portieren;Dreiundsiebzig, die sich über die SNR auf
-hackers und -chat beschweren und aus Protest
abmelden;Dreizehn, die unsubscribe,
How do I unsubscribe?
oder Please remove me from the list gefolgt
von der üblichen Fußzeile abschicken;Einen, der eine funktionierende Glühbirne
einbaut, während alle zu beschäftigt damit sind,
mit jedem zu streiten, um es zu bemerken;Einunddreißig, die herausstellen, dass die
neue Glühbirne 0,364% heller leuchten würde,
wenn sie mit TenDRA kompiliert werden würde (obwohl
sie in einen Würfel umgeformt werden
müsste) und dass FreeBSD deshalb nach
TenDRA, anstatt nach GCC wechseln sollte;Einen, der sich beschwert, dass bei der neuen
Glühbirne die Verkleidung fehlt;Neun (einschließlich der PR-Ersteller), die
fragen Was ist MFC?Siebenundfünfzig, die sich zwei Wochen, nachdem
die Birne gewechselt worden ist, darüber beschweren,
dass das Licht aus war.&a.nik; hat
hinzugefügt:Ich habe ziemlich hierüber
gelacht.Und dann dachte ich: "Halt, sollte in dieser
Liste nicht irgendwo 'Einer, der es dokumentiert'
sein?"Und dann wurde ich erleuchtet
:-)Was passiert mit den Daten, die nach
/dev/null geschrieben werden?Sie werden in einer speziellen Datensenke der CPU in
Wärme umgewandelt, die dann über den
Kühlkörper und den Lüfter abgeführt
wird. Dies ist einer der Gründe für die
Kühlung von CPUs; die Anwender gewöhnen sich an
die schnelleren Prozessoren, gehen nicht mehr so
sorgfältig mit Ihren Daten um und so landen immer
mehr Daten in /dev/null, was zur
Überhitzung der CPU führt. Wenn Sie
/dev/null löschen (was die
Datensenke ziemlich sicher abschaltet), wird Ihre CPU zwar
nicht mehr so heiß, dafür wird Ihr System aber
sehr schnell von den überzähligen Daten
überladen und merkwürdige Effekte zeigen. Wenn
Sie eine sehr schnell Netzwerkverbindung haben,
können Sie Ihre CPU kühlen, indem sie Daten aus
/dev/random lesen und in die Weite
des Netzwerkes schicken; allerdings besteht hier die
Gefahr der Überhitzung von Netzwerk und
/. Außerdem dürfte Ihr
ISP ziemlich wütend werden, da der größte
Teil der Daten von seinen Geräten in Hitze
umgewandelt werden wird; da ISPs aber über
Klimaanlagen verfügen, sollte das kein großes
Problem sein, solange Sie es nicht
übertreiben.Nachtrag Paul Robinson:Es gibt andere Mittel und Wege. Wie jeder gute
Systemadministrator weiss, gehört es zum guten
Ton, einigen Daten zum Bildschirm zu senden, damit die
Leuchtkäferchen, die das Bild anzeigen,
glücklich sind. Die Leuchtkäferchen werden nach
der Farbe Ihrer Hüte (Rot, Grün, oder Blau)
unterschieden und sie verstecken bzw. zeigen sich (wobei
man die Farbe ihrer Hüte erkennen kann) bei jeder
Nahrungsaufnahme. Grafikkarten wandeln Daten in
Leuchkäfer-Nahrung um und schicken sie dann zu den
Leuchtkäfern - teure Karten erzeugen bessere Nahrung
und sorgen so für besseres Verhalten der
Leuchtkäfer. Diese brauchen allerdings einen
konstanten Stimulus - darum gibt es
Bildschirmschoner.Darum lautet mein Vorschlag, die zufälligen Daten
einfach zum Bildschirm zu schicken, damit sie von den
Leuchtkäfern verzehrt werden. Dabei entsteht keine
Hitze, die Leuchtkäfer bleiben glücklich und man
wird seine überflüssigen Daten sehr schnell los,
auch wenn der Bildschirm etwas merkwürdig
aussieht.Übrigens: Als Ex-Admin eines großen ISPs,
der so seine Probleme mit der Kühlung seines
Rechenzentrums hatte, kann ich nur davon abraten,
überflüssige Daten einfach in das Netzwerk zu
schicken. Die Heinzelmännchen, die die Pakete
verteilen und versenden, regen sich darüber ganz
furchtbar auf.Weiterführende ThemenWie kann ich mehr über die Interna von FreeBSD
erfahren?Zurzeit gibt es nur ein Buch über die Interna von
FreeBSD, The Design and Implementation of the FreeBSD
Operating System von Marshall Kirk McKusick und
George V. Neville-Neil, ISBN 0-201-70245-2, das sich auf
FreeBSD 5.X konzentriert.Allgemeines Wissen über &unix; kann
allerdings in den meisten Fällen auf FreeBSD
angewendet werden.Eine Liste finden Sie im entsprechenden Abschnitt der
Bibliographie.Wie kann ich bei der Entwicklung von FreeBSD
mitarbeiten?Genauere Informationen finden Sie im Artikel FreeBSD
unterstützen. Wir können Hilfe
immer gut gebrauchen!Was sind SNAPs und RELEASEs?Derzeit existieren drei aktive/halbaktive Zweige im
FreeBSD-CVS-Repository. In früheren Zweigen
ändert sich wenig, daher gibt es nur drei
aktive Entwicklungszweige:RELENG_4 bzw.
4.X-STABLERELENG_5 bzw.
5-STABLEHEAD bzw.
-CURRENT oder
6.X-CURRENTHEAD ist keine wirkliche
Bezeichnung für einen Zweig, wie die anderen beiden.
Es ist lediglich eine symbolische Konstante für
den aktuellen, nicht verzweigten
Entwicklungsstrom, auf den wir uns
einfach als -CURRENT beziehen.Zurzeit ist -CURRENT der 6.X
Entwicklungsstrom, der 4-STABLE-Zweig
(RELENG_4) wurde im März 2000, der
5-STABLE-Zweig (RELENG_5)
im Oktober 2004 von -CURRENT
abgespalten.Wie kann ich meine eigene, angepasstes Release
erstellen?Eine Anleitung dazu finden Sie im Artikel
FreeBSD Release Engineering.Wieso überschreibt make world
das installierte System?Das ist beabsichtigt. Wie der Name schon andeutet,
erstellt make world alle Systemdateien
von Grund auf neu. Sie können also sicher sein, am
Ende eine saubere, konsistente Umgebung zu haben (das ist
der Grund, warum es so lange dauert).Falls die Umgebungsvariable DESTDIR
während der Ausführung von make
world oder make install
definiert ist, werden die neu erstellten Binaries unter
${DESTDIR} in einem zum
installierten identischen Verzeichnisbaum abgelegt.
Einige zufällige Kombinationen von Änderungen
von Shared Libraries und Neuerstellungen von Programmen
können hierbei jedoch ein Scheitern von make
world verursachen.Warum ist cvsup.FreeBSD.org
kein Round-Robin-Eintrag im DNS, so dass Anfragen
auf alle CVsup-Server verteilt werden?Die CVsup-Server gleichen sich stündlich
mit dem Hauptserver ab. Allerdings findet der
Abgleich nicht zur gleichen Zeit statt, daher
können einige Server neuere Quellen bereitstellen
als andere Server. Alle Server stellen jedoch
Quellen bereit, die maximal eine Stunde alt sind.
Wäre cvsup.FreeBSD.org
ein Round-Robin-Eintrag im DNS, der Benutzern einen
zufälligen Server zuteilt, könnten beim
zweiten Lauf von CVsup ältere Quellen als beim
ersten Lauf heruntergeladen werden.Warum meldet mein System (bus speed
defaulted) beim Start?Die Adaptec 1542 SCSI Hostadapter erlauben dem
Benutzer die Buszugriffsgeschwindigkeit per Software zu
konfigurieren. Ältere Versionen des 1542-Treibers
versuchten, die schnellstmögliche Geschwindigkeit
herauszufinden und konfigurierten den Adapter
entsprechend. Wir haben festgestellt, dass dies auf
einigen Systemen nicht funktioniert, weshalb Sie nun die
Kernelkonfigurationsoption TUNE_1542
definieren müssen, um es zu aktivieren. Die
Benutzung auf Systemen, auf denen es funktioniert,
könnte Ihre Platten schneller machen, aber auf den
Systemen, auf denen es nicht funktioniert, könnten
Ihre Daten beschädigt werden.Kann ich -CURRENT mit begrenztem Internetzugang
folgen?Ja, Sie können das tun, ohne
den gesamten Quellbaum herunterzuladen, indem Sie die
Einrichtung CTM
benutzen.Wie haben Sie die Distribution in 240k-Dateien
aufgespalten?Bei neueren BSD-basierten Systemen gibt es eine Option
zu &man.split.1;, die das Splitten von
Dateien an willkürlichen Bytegrenzen erlaubt.Hier ist ein Beispiel aus
/usr/src/Makefile.
bin-tarball:
(cd ${DISTDIR}; \
tar cf - . \
gzip --no-name -9 -c | \
split -b 240640 - \
${RELEASEDIR}/tarballs/bindist/bin_tgz.)
Ich habe eine Kernelerweiterung geschrieben. An wen
sende ich sie?Lesen Sie bitte den Artikel
FreeBSD unterstützen.Und Danke, dass Sie darüber
nachdenken!Wie werden Plug&Play ISA-Karten erkannt und
initialisiert?Von: Frank Durda IV
uhclem@nemesis.lonestar.orgKurz gesagt gibt es nur wenige I/O-Ports über die
PnP-Karten antworten, wenn der Host fragt, ob jemand da
ist. Wenn die PnP-Erkennungsroutine startet, fragt sie,
ob irgendwelche PnP-Karten vorhanden sind und alle
PnP-Karten antworten mit ihrer Modellnummer auf demselben
Port, von dem sie auch gelesen haben. Die
Erkennungsroutine erhält also ein geodertes
Ja auf diese Frage. Mindestens ein Bit
wird bei dieser Antwort gesetzt sein. Die
Erkennungsroutine ist dann in der Lage, dafür zu
sorgen, dass Karten mit Modellnummern (zugeordnet von
Microsoft/Intel) kleiner als X off-line
gesetzt werden. Sie prüft dann, ob immer noch Karten
da sind, die auf die Frage antworten. Falls die Antwort
0 war, sind keine Karten mit IDs
größer X vorhanden. Nun prüft die
Erkennungsroutine, ob Karten unterhalb
X vorhanden sind. Dann setzt die
Erkennungsroutine alle Karten größer als
X-(limit/4) off-line und wiederholt die Frage. Wenn diese
halbbinäre Suche nach IDs in Folge genügend oft
wiederholt worden ist, wird die Erkennungsroutine
schließlich alle in einem Rechner befindlichen
PnP-Karten identifiziert haben und das mit einer
Iterationszahl sehr viel kleiner als 2^64.Die IDs bestehen aus zwei 32-Bit-Feldern (daher 2^64)
+ acht Bit Prüfsumme. Die ersten 32 Bit sind die
Herstellerkennung. Es wurde zwar nicht bestätigt,
aber es wird angenommen, dass unterschiedliche
Kartentypen desselben Herstellers unterschiedliche 32-Bit
Herstellerkennungen besitzen können. 32 Bit nur
für eindeutige Hersteller zu benötigen, scheint
etwas übertrieben.Die niedrigen 32 Bit sind eine Seriennummer,
Ethernetadresse - etwas, das die betreffende Karte
einzigartig macht. Die Hersteller dürfen niemals
eine zweite Karte mit denselben niedrigen 32 Bit
herstellen, es sei denn, die höheren 32 Bit sind
unterschiedlich. Sie können also mehrere Karten des
selben Typs im Rechner haben und die gesamten 64 Bit
bleiben stets eindeutig.Die 32-Bit-Gruppen können niemals nur aus Nullen
bestehen. Das erlaubt es, bei der binären Suche zu
Beginn nur auf von Null verschiedene Bits zu
achten.Wenn das System alle vorhandenen Karten-IDs
identifiziert hat, reaktiviert es jede Karte - eine nach
der anderen (über dieselben I/O-Ports) und ermittelt,
welche Ressourcen von der jeweiligen Karte benötigt
werden, welche Wahlmöglichkeiten für Interrupts
bestehen usw. Alle Karten werden abgefragt, um diese
Informationen zusammenzustellen.Diese Informationen werden dann mit Informationen aus
allen ECU-Dateien auf der Festplatte oder mit im MLB-BIOS
verdrahteten Informationen verknüpft. Die ECU- und
BIOS-PnP-Unterstützung für Hardware auf dem MLB
ist für gewöhnlich künstlich und was die
Peripheriegeräte tun ist nicht wirklich echtes PnP.
Durch die Untersuchung der BIOS-Informationen und der
ECU-Informationen können die Erkennungsroutinen
jedoch die von PnP-Geräten benutzten Ressourcen so
ändern, dass vermieden wird, dass bereits
von anderen Geräten benutzte Ressourcen verwendet
werden.Dann werden die PnP-Geräte nochmals besucht und
ihre I/O, DMA, IRQ und Memory-Map-Adressen werden
zugeordnet. Die Geräte werden an diesen Stellen
sichtbar werden und dort bis zum nächsten Reboot
verbleiben. Allerdings hindert Sie auch nichts daran, sie
zu verschieben, wohin Sie wollen.Im obigen Teil wurde sehr viel vereinfacht, aber die
grundlegende Idee sollte klar geworden sein.Microsoft hat einige der primären
Druckerstatusports für PnP übernommen, da keine
Karte diese Adressen für die entgegengesetzten
I/O-Zyklen decodiert. Ich habe während der
frühen Überprüfungsperiode des
PnP-Vorschlags eine echte IBM Druckerkarte gefunden, die
Schreibzugriffe auf dem Statusport decodiert hat, aber MS
hat nur tough gesagt. Also schreiben sie
auf den Druckerstatusport, um Adressen zu setzen, benutzen
zusätzlich diese Adresse + 0x800
und einen dritten I/O-Port zum Lesen, der irgendwo
zwischen 0x200 und
0x3ff liegen kann.Wie bekomme ich eine Major-Number für einen
Gerätetreiber, den ich geschrieben habe?&os.current; stellt seit Februar 2003
Major-Numbers für Geräte zur Laufzeit automatisch
bereit. Nach Möglichkeit sollte diese neue
Funktion benutzt werden, anstatt eine Major-Number
statisch festzulegen. Weitere Hinweise finden Sie in
src/sys/conf/majors.Wenn Sie eine statisch festgelegte Major-Number
benötigen, hängt das weitere Verfahren davon ab,
ob Sie den Treiber frei verfügbar machen wollen.
Falls dem so ist, senden Sie uns bitte eine Kopie der
Treiber-Sourcen und zusätzlich die entsprechenden
Änderungen der Datei files.i386,
ein Beispiel für einen Eintrag in der
Konfigurationsdatei und den entsprechenden Code für
&man.MAKEDEV.8;, der die Gerätedateien für Ihr
Gerät erzeugt. Falls Sie nicht beabsichtigen,
den Treiber frei verfügbar zu machen, oder es
aufgrund von Lizenzbeschränkungen nicht können,
dann ist die Major-Number 32 für zeichenorientierte
und die Major-Number 8 für blockorientierte
Geräte speziell für diesen Zweck reserviert. In
jedem Fall würden wir uns freuen, auf der Mailingliste
&a.hackers; etwas über Ihren neuen Treiber zu
hören.Gibt es alternative Layoutverfahren für
Verzeichnisse?Als Antwort auf die Frage nach alternativen
Layoutverfahren für Verzeichnisse ist das Schema, das
derzeit benutzt wird, unverändert von dem, das ich
1983 geschrieben habe. Ich habe das Vorgehen für das
originale Fast-Filesystem geschrieben und es niemals
überarbeitet. Es funktioniert gut, wenn es darum
geht, zu verhindern, dass Zylindergruppen volllaufen.
Wie viele von Ihnen angemerkt haben, funktioniert es
schlecht für find. Die meisten Dateisysteme werden
von Archiven erstellt, die mit einer Tiefensuche (also
ftw) erstellt wurden. Diese Verzeichnisse werden
über die Zylindergruppen hinweg entfaltet und
erzeugen denkbar ungünstigste Voraussetzungen
für zukünftige Tiefensuchen. Falls man die
Gesamtzahl der zu erstellenden Verzeichnisse wüsste,
wäre die Lösung die, (gesamt / fs_ncg) pro
Zylindergruppe zu erstellen, bevor fortgefahren wird.
Offensichtlich müsste man eine Heuristik
erstellen, um die Zahl zu schätzen. Sogar die
Benutzung einer kleinen, fixen Zahl, z.B. 10, würde
eine Verbesserung um Größenordnungen ausmachen.
Um Wiederherstellungen von normalem Betrieb (wo der
derzeitige Algorithmus vermutlich sinnvoller ist) zu
unterscheiden, könnten Sie die Clusterung von bis zu
10 benutzen, wenn sie alle innerhalb eines
10-Sekunden-Fensters durchgeführt würden.
Jedenfalls ist mein Schluss, dass dies ein
fruchtbares Gebiet für Experimente ist.Kirk McKusick, September 1998Wie kann ich optimalen Nutzen aus einer kernel panic
ziehen?[Dieser Abschnitt wurde von &a.des;, der
einige Tippfehler korrigiert und die Kommentare in eckigen
Klammern hinzugefügt hat, aus einer Mail von
&a.wpaul; in der Mailingliste freebsd-current
entnommen.]
From: Bill Paul <wpaul@skynet.ctr.columbia.edu>
Subject: Re: the fs fun never stops
To: Ben Rosengart
Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
Cc: current@FreeBSD.org
[<Ben Rosengart> sendete die
folgende Panik-Meldung]
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0x40
> fault code = supervisor read, page not present
> instruction pointer = 0x8:0xf014a7e5
^^^^^^^^^^
> stack pointer = 0x10:0xf4ed6f24
> frame pointer = 0x10:0xf4ed6f28
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 80 (mount)
> interrupt mask =
> trap number = 12
> panic: page fault
[Wenn] Sie eine Meldung wie diese sehen, reicht es
nicht, sie einfach zu reproduzieren und sie einzusenden.
Der Wert des Instruktionszeigers, den ich oben
hervorgehoben habe, ist wichtig; leider ist er auch
konfigurationsabhängig. Mit anderen Worten variieren
die Werte abhängig von dem Kernel-Image, das Sie
tatsächlich benutzen. Wenn Sie ein GENERIC
Kernelimage von einem der Snapshots benutzen, dann ist es
für jemand anderen möglich, die fehlerhafte
Instruktion herauszufinden, aber wenn Sie einen
angepassten Kernel benutzen, können nur
Sie uns sagen, wo der Fehler
auftrat.Was Sie tun sollten, ist folgendes:Notieren Sie sich den Wert des
Instruktionszeigers. Beachten Sie, dass der Teil
0x8: am Anfang in diesem Fall nicht
von Bedeutung ist; der Teil
0xf0xxxxxx ist der, den wir
wollen.Tun Sie folgendes, wenn das System
rebootet:&prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxxxwobei 0xf0xxxxxx der Wert des
Instruktionszeigers ist. Es besteht die
Möglichkeit, dass Sie keinen exakten Treffer
erzielen, weil die Symbole in der Symboltabelle des
Kernels Funktionseinstiegspunkte sind und die Adresse
des Instruktionszeiger irgendwo innerhalb einer
Funktion liegen wird und nicht am Anfang. Falls sie
keinen exakten Treffer erzielen, lassen Sie den
letzten Teil des Werts des Instruktionszeigers weg und
versuchen es nocheinmal, z.B.:&prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxxFalls das kein Ergebnis liefert, hacken Sie eine
weitere Ziffer ab. Wiederholen Sie die Schritte, bis
Sie irgendeine Ausgabe erhalten. Das Ergebnis wird
eine Liste möglicher Funktionen sein, die die
Panik verursacht haben. Das ist zwar kein absolut
genauer Mechanismus, um die Fehlerursache ausfindig zu
machen, aber es ist besser als gar nichts.Ich sehe ständig Leute, die Panik-Meldungen wie
diese zeigen, aber ich sehe kaum jemanden, der sich die
Zeit nimmt, den Instruktionszeiger einer Funktion aus der
Symboltabelle des Kernel zuzuordnen.Der beste Weg, den Grund für eine Panik
herauszufinden, ist der, einen Crash-Dump festzuhalten und
dann &man.gdb.1; zu benutzen, um den Stack im Crash-Dump
zurückzuverfolgen.Jedenfalls ist die Methode, die ich normalerweise
benutze, folgende:Richten Sie eine Kernelkonfigurationsdatei ein,
fügen Sie optional options DDB
hinzu, falls Sie glauben, dass Sie den
Kerneldebugger benötigen. (Ich benutze ihn
hauptsächlich zum Setzen von Haltepunkten, wenn
ich eine Endlosschleife irgendeiner Art
vermute.)Benutzen Sie config -g
KERNELCONFIG, um
das Erstellungsverzeichnis einzurichten.cd
/sys/compile/KERNELCONFIG;
makeWarten Sie, bis der Kernel fertig kompiliert
ist.make installrebootDer &man.make.1;-Prozess wird zwei Kernel
erstellt haben: kernel und
kernel.debug.
kernel wurde als
/kernel installiert, während
kernel.debug als Quelle für
Debuggersymbole für &man.gdb.1; benutzt werden
kann.Um sicherzustellen, dass ein Crash-Dump erhalten
bleibt, müssen Sie
/etc/rc.config editieren und
dumpdev so setzen, dass es auf
Ihre Swap-Partition zeigt. Das bewirkt, dass die
&man.rc.8;-Skripte den Befehl &man.dumpon.8; benutzen, um
Crash-Dumps zu ermöglichen. Sie können
&man.dumpon.8; auch manuell ausführen. Nach einer
Panik kann der Crash-Dump mit &man.savecore.8;
wiederhergestellt werden; wenn dumpdev
in /etc/rc.conf gesetzt ist, werden
die &man.rc.8;-Skripte &man.savecore.8; automatisch
ausführen und den Crash-Dump unter
/var/crash ablegen.Crash-Dumps von FreeBSD sind für
gewöhnlich genauso groß wie der physikalische
Hauptspeicher Ihres Rechners. Das heißt, wenn Sie
64MB RAM haben, werden sie einen 64MB Crash-Dump
erhalten. Deshalb müssen Sie dafür sorgen, dass
genügend Speicherplatz in
/var/crash zur Verfügung
steht, um den Dump aufnehmen zu können. Alternativ
führen Sie &man.savecore.8; manuell aus und lassen
es den Crash-Dump in einem anderen Verzeichnis
wiederherstellen, in dem Sie mehr Platz haben. Es ist
möglich, die Größe des Crash-Dumps zu
begrenzen, indem options MAXMEM=(foo)
benutzt wird, um den Speicher, den der Kernel benutzt,
auf einen etwas vernünftigeren Wert zu setzen.
Wenn Sie z.B. 128MB RAM haben, können Sie die
Speicherbenutzung des Kernels auf 16MB begrenzen, so
dass die Größe Ihres Crash-Dumps 16MB
anstatt 128MB beträgen wird.Wenn Sie den Crash-Dump wiederhergestellt haben,
können Sie den Stack mit &man.gdb.1; so
zurückverfolgen:&prompt.user; gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0(gdb)whereBeachten Sie, dass es mehrere Seiten mit
wertvollen Informationen geben könnte; idealerweise
sollten Sie &man.script.1; benutzen, um sie alle
festzuhalten. Wenn Sie das vollständige Kernelimage
mit allen Debugginginformationen benutzen,
müssten Sie exakt die Zeile des
Kernel-Sourcecodes finden, wo die Panik aufgetreten ist.
Für gewöhnlich müssen Sie den Stack von
unten an zurückverfolgen, um die genaue
Ereignisabfolge, die zum Crash führte,
zurückzuverfolgen. Sie können &man.gdb.1; auch
zum Ausdrucken der Inhalte verschiedener Variablen oder
Strukturen benutzen, um den Systemstatus zum Zeitpunkt des
Absturzes zu untersuchen.Wenn Sie nun wirklich verrückt sind und einen
zweiten Computer haben, können Sie &man.gdb.1; auch
für entferntes Debugging konfigurieren, so dass
Sie &man.gdb.1; auf einem System benutzen können, um
den Kernel auf einem anderen System zu debuggen,
einschließlich dem Setzen von Haltepunkten und dem
Bewegen in Einzelschritten durch den Kernelcode, genauso,
wie Sie es mit einem normalen Benutzerprogramm tun
können. Ich habe noch nicht damit gespielt weil ich
nicht oft Gelegenheit habe, zwei Rechner nebeneinander
für Debuggingzwecke einzurichten.[Bill hat hinzugefügt: "Ich
vergaß, etwas zu erwähnen: wenn Sie DDB
aktiviert haben und der Kernel im Debugger landet,
können Sie eine Panik (und einen Crash-Dump)
erzwingen, indem Sie einfach 'panic' am ddb-Prompt
eingeben. Er könnte während der Panikphase
wieder im Debugger stoppen. Falls er das tut, geben Sie
'continue' ein, dann wird er den Crash-Dump beenden."
-ed]Wieso funktioniert dlsym() nicht mehr für
ELF-Executables?Die ELF-Werkzeuge machen die in einem Executable
definierten Symbole dem dynamischen Linker nicht
standardmäßig sichtbar. Konsequenterweise
werden dlsym()-Suchen nach Handlern
aus Aufrufen von dlopen(NULL, flags)
diese Symbole nicht finden können.Wenn Sie mit dlsym() nach im
Hauptexecutable eines Prozesses vorhandenen Symbolen
suchen wollen, müssen Sie das Executable mit der
Option von &man.ld.1;
linken.Wie kann ich den Adressraum des Kernels
vergrössern oder verkleinern?Standardmäßig beträgt der
Adressraum des Kernels 256MB (FreeBSD 3.X) bzw. 1 GB
(FreeBSD 4.X). Wenn Sie einen netzwerkintensiven Server
(z.B. einen großen FTP- oder HTTP-Server) betreiben,
kann es sein, dass Sie der Meinung sind, dass
256MB nicht ausreichen.Wie also erhöhen Sie den Adressraum? Hier
gibt es zwei Aspekte. Erstens müssen Sie dem Kernel
sagen, dass er einen größeren Anteil des
Adressraums für sich selbst reservieren soll.
Da der Kernel am oberen Ende des Adressraums geladen
wird, müssen Sie zweitens die Ladeadresse verringern,
damit er mit dem Kopf nicht gegen die Obergrenze
stößt.Das erste Ziel erreicht man, indem man den Wert von
NKPDE in
src/sys/i386/include/pmap.h
erhöht. Für einen Adressraum von 1 GB
sieht das so aus:
#ifndef NKPDE
#ifdef SMP
#define NKPDE 254 /* addressable number of page tables/pde's */
#else
#define NKPDE 255 /* addressable number of page tables/pde's */
#endif /* SMP */
#endif
Dividieren Sie die gewünschte
Adressraumgröße (in Megabyte) durch vier
und subtrahieren Sie dann eins für UP und zwei
für SMP, um den korrekten Wert für
NKPDE zu finden.Um das zweite Ziel zu erreichen müssen Sie die
korrekte Ladeadresse berechnen: subtrahieren Sie einfach
die Größe des Adressraums (in Byte) von
0x100100000; für einen Adressraum von 1 GB
lautet das Ergebnis 0xc0100000. Setzen Sie
LOAD_ADDRESS in
src/sys/i386/conf/Makefile.i386 auf
diesen Wert; setzen Sie dann den Location-Counter am
Anfang der Abschnittsliste in
src/sys/i386/conf/kernel.script auf
denselben Wert:
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(btext)
SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib);
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0xc0100000 + SIZEOF_HEADERS;
.interp : { *(.interp) }
Konfigurieren und erstellen Sie Ihren Kernel dann neu.
Sie werden vermutlich Probleme mit &man.ps.1;, &man.top.1;
und ähnlichen Programmen haben. Ein make
world sollte diese beheben; alternativ
können Sie die gepatchte pmap.h
in das Verzeichnis /usr/include/vm
kopieren und danach libkvm,
&man.ps.1; und &man.top.1; neu erzeugen.Hinweis: die Größe des
Kernel-Adressraums muss ein Vielfaches von vier
Megabyte betragen.[&a.dg; fügt hinzu: Ich glaube, der
Kerneladressraum muss eine Zweierpotenz sein,
aber ich bin mir dessen nicht sicher. Der alte
(ältere) Bootcode pflegte die oberen Adressbits
zu mißbrauchen und ich glaube, er erwartete
mindestens 256MB Granularität.]DanksagungDieses kleine unschuldige Dokument mit Häufig gestellten
Fragen wurde in den letzten 10 Jahren von Hunderten, wenn
nicht Tausenden, geschrieben, neu geschrieben, überarbeitet,
gefaltet, verdreht, durcheinander gebracht, wieder aufgebaut,
verstümmelt, seziert, durchgekaut, überdacht, und
wiederbelebt. Und das nicht nur einmal.Wir möchten allen dafür Verantwortlichen danken
und wir fordern auch Sie auf, dieser Gruppe beizutreten,
um diese FAQ noch besser zu machen.Folgende Personen haben durch die Beantwortung von Fragen,
sowie durch Hinweise und Kommentare an der Entstehung der
deutschen Übersetzung mitgewirkt:Ross Alexander&a.jhb;&a.nik;Glen FosterOliver FrommeFrank GruenderChris HillJames Howard&a.jkh;&a.alex;&a.jmas;Mike MeyerDan O'ConnorEric Ogren&a.de.pierau;Oliver SchneiderChristoph SoldUnd an alle anderen, an die wir nicht gedacht haben.
Entschuldigung und herzlichen Dank!
&bibliography;
diff --git a/de_DE.ISO8859-1/books/fdp-primer/book.sgml b/de_DE.ISO8859-1/books/fdp-primer/book.sgml
index 3e298b2f53..a4c72a81bd 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/book.sgml
+++ b/de_DE.ISO8859-1/books/fdp-primer/book.sgml
@@ -1,291 +1,297 @@
%books.ent;
%chapters;
]>
Die Fibel für neue Mitarbeiter des
FreeBSD-DokumentationsprojektsThe FreeBSD German Documentation Project19981999200020012002200320042005
+ 2006The FreeBSD German Documentation Project$FreeBSD$$FreeBSD$
&bookinfo.legalnotice;
Vielen Dank für Ihr Interesse und Ihre Mitarbeit an
der FreeBSD-Dokumentation. Jeder Beitrag ist für uns sehr
wichtig.In dieser Fibel wird von der eingesetzten Software bis hin
zu den Vorstellungen des FreeBSD-Dokumentationsprojekts alles
behandelt, was Sie wissen müssen, wenn Sie sich am
FreeBSD-Dokumentationsprojekt beteiligen wollen.Bitte beachten Sie, dass diese Fibel
jederzeit unter Bearbeitung und noch
nicht vollständig ist. Die noch nicht übersetzten
Kapitel sind mit einem * vor der
Kapitelüberschrift gekennzeichnet.Die noch nicht übersetzten Kapitel sind zusätzlich mit
einen # gekennzeichnet.BenutzungshinweiseDie EingabeaufforderungenDie folgende Tabelle zeigt die normale Eingabeaufforderung
des Systems und die Eingabeaufforderung des Superusers. Die in
diesem Buch vorkommenden Beispiele benutzen die jeweilige
Eingabeaufforderung, um zu zeigen, unter welchem Benutzer die
Beispiele ausgeführt werden sollten.BenutzerEingabeaufforderungNormaler Benutzer&prompt.user;Superuser&prompt.root;Typographische FestlegungenUm die Lesbarkeit zu erhöhen, werden in diesem
Dokument die im folgenden genannten typographischen
Festlegungen verwendet:Bedeutung
+
Beispiel
- Kommandonamen, Dateien, Verzeichnisse sowie
- Bildschirmausgaben.
- Bearbeiten Sie die Datei
- .loginFühren
- Sie ls -a aus, um sich alle
- Dateien anzeigen zulassen.Sie haben Post.
+ Kommandonamen
+
+ Geben Sie ls -a ein, um alle
+ Dateien anzuzeigen.
- Eingaben und die dazugehörige
- Ausgabe auf dem Bildschirm.
- &prompt.user; su
-Paßwort:
+ Datei- und Verzeichnisnamen
+
+ Bearbeiten Sie die Datei
+ .login.
+
+
+
+ Bildschirmein- und ausgaben
+
+ You have mail.
- Referenzen auf Hilfeseiten.
+ Referenzen auf HilfeseitenMit su1 können Sie sich als ein anderer
Benutzer anmelden.
- Benutzer- und Gruppennamen.
+ Benutzer- und GruppennamenIch bin root, ich darf
das.HervorhebungenHier müssen Sie
vorsichtig sein.Argumente auf der Kommandozeile, die durch
existierende Namen, Dateien oder Variablen ersetzt
- werden müssen.
+ werden müssen
Dateien können Sie mit dem Befehl
rm
Dateiname
löschen.Umgebungsvariablen$HOME ist Ihr
Benutzerverzeichnis.Anmerkungen, Tips, wichtige Hinweise, Warnungen und
BeispielAn einigen Stellen innerhalb dieses Buchs werden
wichtige oder nützliche Hinweise gegeben, die besonders
hervorgehoben sind. Hier ein kurzer Überblick über
die verwendeten Darstellungen.Anmerkungen werden so dargestellt. Sie enthalten
Informationen die Sie nur zu lesen brauchen, wenn Sie direkt
davon betroffen sind.Tipps sind Informationen, die vielleicht hilfreich sein
könnten oder aufzeigen, wie bestimmte Dinge einfacher
zu bewerkstelligen sind.Besonders wichtige Punkte werden so hervorgehoben. Meist
enthalten sie Hinweise auf vielleicht zusätzlich auszuführende
Schritte oder Dinge, die besonders zu beachten sind.Warnungen werden wie dieser Abschnitt dargestellt und
weisen auf mögliche Schäden hin, die entstehen
können, falls die beschriebenen Schritte nicht genau
befolgt oder Hinweise nicht beachtet werden. Die Palette der
möglichen Schäden reicht von Hardwareschäden
bis hin zu Datendatenverlust durch ein versehentliches
Löschen von wichtigen Dateien oder ganzen
Verzeichnissen.Ein BeispielBeispiele, die so wie hier dargestellt werden, enthalten
meist kleine Übungen, die nachvollzogen werden sollten,
um das vorher beschriebene besser zu verinnerlichen oder mit
den erzeugten Ausgaben vertraut zu werden.DanksagungenIch möchte mich bei Sue Blake, Patrick Durusau, Jon
Hamilton, Peter Flynn und Christopher Maden bedanken, die sich
die Zeit genommen haben, die frühen Entwürfe dieses
Dokuments zu lesen und viele hilfreiche Hinweise und
Ratschläge gegeben haben.
&chap.overview;
&chap.tools;
&chap.sgml-primer;
&chap.sgml-markup;
&chap.stylesheets;
&chap.structure;
&chap.doc-build;
&chap.the-website;
&chap.translations;
&chap.writing-style;
&chap.psgml-mode;
&chap.see-also;
&app.examples;
diff --git a/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml b/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml
index fefeea3caa..e35768b01c 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml
+++ b/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml
@@ -1,516 +1,516 @@
JohannKoisÜbersetzt von ÜbersetzungenDieses Kapitel enthält die FAQ für die Übersetzung
der FreeBSD Dokumentation (FAQ, Handbuch, Artikel, Manualpages und
sonstige Dokumente) in andere Sprachen.Es beruht sehr stark auf den
Übersetzungs-FAQ des FreeBSD German Documentation Projects, die
ursprünglich von Frank Gründer
elwood@mc5sys.in-berlin.de geschrieben und danach von
Bernd Warken bwarken@mayn.de ins Englische
übersetzt wurden.Diese FAQ wird vom &a.doceng; gepflegt.Warum eine FAQ?Es melden sich immer mehr Leute auf der Mailingliste
freebsd-doc, die Teile der FreeBSD Dokumentation in andere
Sprachen übersetzen wollen. Diese FAQ soll die
am häufigsten gestellten Fragen beantworten, damit
möglichst rasch mit der Übersetzung begonnen
werden kann.Was bedeuten die Abkürzungen i18n
und l10n?i18n steht für
internationalization
(Internationalisierung), l10n für
localization (Lokalisierung).
Es handelt sich dabei um besser handhabbare Abkürzungen
dieser Begriffe.i18n kann als i, gefolgt
von 18 Buchstaben, gefolgt von einem n, gelesen
werden. Analog steht l10n für
l, gefolgt von 10 Buchstaben, gefolgt von einem
n.Gibt es eigene Mailinglisten für Übersetzer?Ja. Die verschiedenen Übersetzergruppen haben jeweils
eigene Mailinglisten. Genauere Informationen finden Sie in der
Liste der Übersetzungsprojekte. Diese Liste
enthält die Mailinglisten und Internetseiten, die von den
einzelnen Übersetzungsprojekten betrieben werden.Werden noch Übersetzer benötigt?Ja. Je mehr Leute an der Übersetzung arbeiten, desto
schneller wird diese fertig, und umso schneller sind
Änderungen im englischen Original auch in den
übersetzten Dokumenten vorhanden.Sie müsssen kein professioneller Dolmetscher sein, um
dabei zu helfen.Welche Sprachen muss ich dafür kennen/können?Idealerweise haben Sie gute Kenntnisse in geschriebenem
Englisch, außerdem sollten Sie natürlich fit in
der Sprache sein, in die Sie übersetzen wollen.Englisch ist allerdings nicht unbedingt nötig. Sie
könnten beispielsweise auch die FAQ vom Spanischen ins
Ungarische übersetzen.Welche Software wird benötigt?Es ist sehr empfehlenswert, eine lokale Kopie des FreeBSD
CVS-Repository (als Minimum den Dokumentationsteil) anzulegen,
entweder mit CTM oder mit
CVSup. Das Kapitel Das
Neueste und Beste des Handbuchs beschreibt die
Nutzung dieser Programme.Sie sollten außerdem mit
CVS vertraut sein. Damit ist es
möglich, festzustellen, was sich zwischen einzelnen
Versionen eines Dokuments geändert hat.[XXX Aufgabe -- Ein Tutorial schreiben, das die Verwendung
von CVSup beschreibt, um die Dokumentation herunterzuladen,
auszuchecken und festzustellen, was sich zwischen zwei
Versionen geändert hat.]Wie finde ich heraus, ob noch jemand Teile der
Dokumentation in die gleiche Sprache übersetzt?Die
Übersetzungsseite des Documentation Projects
listet alle Übersetzungs-Teams auf, die derzeit aktiv
sind. Arbeitet bereits jemand an der Übersetzung in
Ihre Sprache, so kontaktieren Sie dieses Team, damit
Dokumente nicht unnötigerweise mehrfach übersetzt
werden.Wenn Ihre Sprache nicht aufgeführt ist, senden Sie
bitte eine E-Mail an das &a.doc;. Vielleicht denkt ja jemand
über eine Übersetzung nach, hat sich aber noch nicht
dafür entschieden.Niemand übersetzt in meine Sprache. Was soll ich
machen?Gratulation, Sie haben gerade das FreeBSD
Ihre-Sprache Documentation
Translation Project gestartet. Willkommen.Entscheiden Sie zuerst, ob Sie die dafür nötige
Zeit zur Verfügung haben. Da Sie als Einziger an der
Übersetzung in Ihre Sprache arbeiten, sind Sie dafür
verantwortlich, Ihre Arbeit zu veröffentlichen und die
Arbeit von Freiwilligen, die Ihnen dabei helfen wollen, zu
koordinieren.Senden Sie eine E-Mail an die Mailingliste des
Documentation Projects, in der Sie bekanntgeben, dass Sie an
der Übersetzung der Dokumentation arbeiten, damit die
Internetseiten aktualisiert werden können.Gibt es in Ihrem Land einen FreeBSD-Spiegelserver, so
sollten Sie den dafür Zuständigen kontaktieren und
nachfragen, ob er Ihnen Speicherplatz oder E-Mailadressen
für Ihr Projekt zur Verfügung stellen würde.Danach wählen Sie ein Dokument aus und beginnen
mit der Übersetzung. Am besten beginnen Sie mit kleineren
Dateien, beispielsweise den FAQ oder einem der Artikel.Ich habe ein Dokument übersetzt. Wo soll ich es
hinschicken?Das kommt darauf an. Wenn Sie bereits in einem
Übersetzer-Team arbeiten (etwa dem japanischen oder dem
deutschen Team), dann sollten Sie deren Richtlinien zum Umgang
mit neuer Dokumentation folgen, die auf deren Internetseiten
beschrieben werden.Wenn Sie die einzige Person sind, die an der
Übersetzung in eine Sprache arbeitet, oder wenn Sie
für ein Übersetzungsprojekt verantwortlich sind,
und Ihre Aktualisierungen an das FreeBSD Project
übermitteln wollen, sollten Sie Ihre Übersetzungen
dorthin senden (lesen Sie dazu auch die nächste
Frage).Ich arbeite als einziger an der Übersetzung in diese
Sprache, wie versende ich meine Übersetzungen?oderWir sind ein Übersetzer-Team, und wollen Dokumente
versenden, die unsere Mitglieder übersetzt haben?Stellen Sie zuerst sicher, dass Ihre Übersetzungen
korrekt organisiert sind. Sie sollte sich also im
existierenden Dokumentationsbaum befinden, und ohne Fehler
bauen lassen.Zurzeit wird die FreeBSD Dokumentation unterhalb des
Verzeichnisses doc/ gespeichert. Die
direkten Unterverzeichnisse werden entsprechend der
Sprachkodierung benannt, in der sie geschrieben sind. Diese
Kodierung nach ISO639 finden Sie auf einem FreeBSD-System
unter /usr/share/misc/iso639,
vorausgesetzt, das System wurde nach dem 20. Januar 1999
gebaut.Wenn in Ihrer Sprache mehrere Kodierungen (wie dies etwa
für Chinesisch der Fall ist) vorhanden sind, existiert
für jede Kodierung ein eigenes Unterverzeichnis.Zuletzt existieren auch noch Verzeichnisse für die
einzelnen Dokumente.Die Verzeichnishierarchie für eine hypothetische
schwedische Übersetzung könnte etwa so
aussehen:doc/
sv_SE.ISO8859-1/
Makefile
books/
faq/
Makefile
book.sgmlBei sv_SE.ISO8859-1 handelt es sich um
den Namen der Übersetzung in der
lang.encoding
Form. Beachten Sie auch, dass zum Bauen der Dokumentation
zwei Makefiles notwendig sind.Komprimieren Sie Ihre Übersetzungen mit &man.tar.1;
und &man.gzip.1; und senden Sie sie an das FreeBSD
Project.&prompt.user; cd doc
&prompt.user; tar cf swedish-docs.tar sv
&prompt.user; gzip -9 swedish-docs.tarLegen Sie das Archiv swedish-docs.tar.gz
irgendwo ab. Wenn Sie keinen eigenen Webspace haben (etwa weil
Ihr Internetprovider Ihnen keinen zur Verfügung stellt),
können Sie auch eine E-Mail an das &a.doceng; schicken, um
abzuklären, ob Sie die Datei auch als E-Mail schicken
können.In beiden Fällen sollten Sie mit &man.send-pr.1;
einen Bericht über den Versand der Dokumentation
erstellen. Es ist sehr hilfreich, wenn Sie Ihre
Übersetzung vorher korrekturlesen lassen und
überprüfen, da es unwahrscheinlich ist, dass
der Committer Ihre Sprache sehr gut beherrscht.Danach wird jemand (meistens der Documentation Project
Manager, derzeit ist dies das &a.doceng;) überprüfen,
ob sich Ihre Übersetzungen problemlos bauen lassen. Dabei
wird besonders auf folgende Punkte geachtet:Verwenden alle Dateien RCS-Strings (wie "ID")?Arbeitet make all im Verzeichnis
sv_SE.ISO8859-1 korrekt?Funktioniert make install ohne
Probleme?Gibt es dabei Probleme, so wird die Person, die Ihren
Beitrag durchsieht, sich wieder an Sie wenden, damit Sie
das Problem beheben.Treten keine Probleme auf, wird Ihre Übersetzung
so rasch als möglich committed.Kann ich landes- oder sprachspezifische Informationen
in meine Übersetzung aufnehmen?Wir bitten Sie, dies nicht zu tun.Nehmen wir an, dass Sie das Handbuch ins Koreanische
übersetzen und einen Abschnitt mit
Händlerinformationen in das Handbuch aufnehmen
wollen.Es gibt keinen Grund, warum diese Information nicht auch
in der englischen (oder der deutschen, oder der spanischen,
oder der japanischen oder der …) Version vorhanden sein
sollte. Es ist etwa denkbar, dass sich jemand mit englischer
Muttersprache während eines Aufenthalts in Korea eine
FreeBSD-Kopie kaufen möchte. Außerdem wird dadurch
die weltweite Präsenz von FreeBSD verdeutlicht, was
natürlich ebenfalls von Vorteil ist.Wenn Sie also länderspezifische Informationen
ergänzen wollen, sollten Sie dies zuerst in der englischen
Version (mittels &man.send-pr.1;) tun, und die Änderung
anschließend in Ihre Sprache übersetzen.Vielen Dank.Wie lassen sich sprachspezifische Zeichen darstellen?Nicht-ASCII-Zeichen innerhalb der Dokumentation werden
durch SGML-Entities dargestellt.Diese bestehen aus: Kaufmännischem Und (&),
den Namen der Entity, und einem Strichpunkt (;).Die Namen der Entities sind in ISO8879 definiert, die als
Port textproc/iso8879
installiert werden kann.Dazu einige Beispiele:EntityDarstellungBeschreibungééKleines e mit (akutem) AkzentÉÉGroßes E mit (akutem) AkzentüüKleines Umlaut-uNachdem Sie den iso8879-Port installiert haben, ist die
vollständige Liste unter
/usr/local/share/sgml/iso8879
vorhanden.Wie spricht man den Leser an?In englischen Dokumenten wird der Leser mit
you angesprochen, es wird nicht zwischen
formeller/informeller Anrede unterschieden, wie dies in
manchen anderen Sprachen der Fall ist.Wenn Sie in eine Sprache übersetzen, die diese
Unterscheidung trifft, verwenden Sie die Form, die auch in
den anderen technischen Dokumentationen dieser Sprache
verwendet wird. Für deutsche Versionen ist dies die
dritte Person Plural (Sie).Muss ich zusätzliche Informationen in meine
Übersetzungen einbauen?Ja.Der Header der englischen Version jedes Textes sieht in
etwa so aus:<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO8859-1/books/fdp-primer/translations/chapter.sgml,v 1.5 2000/07/07 18:38:38 dannyboy Exp $
-->Das exakte Aussehen kann unterschiedlich sein, die Zeile
mit $FreeBSD$ sowie der Ausdruck The
FreeBSD Documentation Project sind allerdings immer
enthalten. Beachten Sie, dass die Zeile mit $FreeBSD
von CVS automatisch expandiert wird, daher sollte an dieser
Stelle in Ihren neuen Dokumenten nur
$FreeBSD$ stehen.Ihre übersetzten Dokumente sollten eine eigene
$FreeBSD$-Zeile enthalten. Zusätzlich
sollten Sie die Zeile mit The FreeBSD Documentation
Project in The FreeBSD
Ihre-Sprache Documentation
Project ändern.Außerdem sollten Sie eine weitere Zeile
einfügen, die festlegt, auf welcher Version des englischen
Originals Ihre Übersetzung basiert.Die spanische Version dieser Datei könnte etwa so
beginnen:<!--
The FreeBSD Spanish Documentation Project
$FreeBSD: doc/es_ES.ISO8859-1/books/fdp-primer/translations/chapter.sgml,v 1.3 1999/06/24 19:12:32 jesusr Exp $
Original revision: 1.11
-->
diff --git a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
index d048e80c71..e64ac6b3d2 100644
--- a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
@@ -1,4914 +1,4901 @@
JohannKoisÜbersetzt von Weiterführende NetzwerkthemenÜbersichtDieses Kapitel beschreibt verschiedene
weiterführende Netzwerkthemen.Nachdem Sie dieses Kapitel gelesen haben, werden SieDie Grundlagen von Gateways und Routen kennen.Bluetooth- sowie drahtlose, der Norm IEEE 802.11
entsprechende, Geräte mit FreeBSD verwenden
können.Eine Bridge unter FreeBSD einrichten können.Einen plattenlosen Rechner über das Netzwerk starten
können.Wissen, wie man NAT (Network Address Translation)
einrichtet.Zwei Computer über PLIP verbinden können.IPv6 auf einem FreeBSD-Rechner einrichten
können.ATM einrichten können.Bevor Sie dieses Kapitel lesen, sollten SieDie Grundlagen der /etc/rc-Skripte
verstanden haben.Mit der grundlegenden Netzwerkterminologie vertraut
sein.Einen neuen FreeBSD-Kernel konfigurieren und installieren
können ().Wissen, wie man zusätzliche Softwarepakete von
Drittherstellern installiert ().CoranthGryphonBeigetragen von Gateways und RoutenRoutingGatewaySubnetzDamit ein Rechner einen anderen über ein Netzwerk
finden kann, muss ein Mechanismus vorhanden sein, der
beschreibt, wie man von einem Rechner zum anderen gelangt.
Dieser Vorgang wird als Routing
bezeichnet. Eine Route besteht aus einem
definierten Adressenpaar: Einem Ziel und einem
Gateway. Dieses Paar zeigt an, dass Sie
über das Gateway zum
Ziel gelangen wollen. Es gibt drei Arten
von Zielen: Einzelne Rechner (Hosts), Subnetze und das
Standardziel. Die Standardroute
wird verwendet, wenn keine andere Route zutrifft. Wir werden
Standardrouten später etwas genauer behandeln.
Außerdem gibt es drei Arten von Gateways: Einzelne Rechner
(Hosts), Schnittstellen (Interfaces, auch als Links
bezeichnet), sowie Ethernet Hardware-Adressen (MAC-Adressen).
Ein BeispielUm die verschiedenen Aspekte des Routings zu
veranschaulichen, verwenden wir folgende Ausgaben von
netstat:&prompt.user; netstat -r
Routing tables
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGSc 37 418 ppp0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0
DefaultrouteDie ersten zwei Zeilen geben die Standardroute (die wir
im nächsten
Abschnitt behandeln), sowie die
localhost Route an.Loopback-GerätDas in der Routingtabelle für
localhost festgelegte Interface
(Netif-Spalte)
lo0, ist auch als loopback-Gerät
(Prüfschleife) bekannt. Das heißt, dass der ganze
Datenverkehr für dieses Ziel intern (innerhalb des
Gerätes) bleibt, anstatt ihn über ein Netzwerk (LAN)
zu versenden, da das Ziel dem Start entspricht.EthernetMAC-AdresseDer nächste auffällige Punkt sind die mit
0:e0: beginnenden Adressen. Es
handelt sich dabei um Ethernet Hardwareadressen, die auch als
MAC-Adressen bekannt sind. FreeBSD identifiziert Rechner im
lokalen Netz automatisch (im Beispiel test0)
und fügt eine direkte Route zu diesem Rechner hinzu. Dies
passiert über die Ethernet-Schnittstelle
ed0. Außerdem existiert ein Timeout
(in der Spalte Expire) für diese Art
von Routen, der verwendet wird, wenn dieser Rechner in einem
definierten Zeitraum nicht reagiert. Wenn dies passiert, wird
die Route zu diesem Rechner automatisch gelöscht.
Rechner im lokalen Netz werden durch einen als RIP (Routing
Information Protocol) bezeichneten Mechanismus identifiziert,
der den kürzesten Weg zu den jeweiligen Rechnern
bestimmt.SubnetzFreeBSD fügt außerdem Subnetzrouten für das
lokale Subnetz hinzu (10.20.30.255 ist die Broadcast-Adresse
für das Subnetz 10.20.30,
example.com ist der zu
diesem Subnetz gehörige Domainname). Das Ziel
link#1 bezieht sich auf die erste
Ethernet-Karte im Rechner. Sie können auch feststellen,
dass keine zusätzlichen Schnittstellen angegeben
sind.Routen für Rechner im lokalen Netz und lokale
Subnetze werden automatisch durch den
routed Daemon konfiguriert. Ist
dieser nicht gestartet, sind nur statisch definierte
(explizit eingegebene) Routen vorhanden.Die Zeile host1 bezieht sich auf
unseren Rechner, der durch seine Ethernetadresse bekannt ist.
Da unser Rechner der Sender ist, verwendet FreeBSD automatisch
das Loopback-Gerät (lo0),
anstatt den Datenverkehr über die Ethernetschnittstelle
zu senden.Die zwei host2 Zeilen sind ein Beispiel
dafür, was passiert, wenn wir ein &man.ifconfig.8; Alias
verwenden (Lesen Sie dazu den Abschnitt über Ethernet,
wenn Sie wissen wollen, warum wir das tun sollten.). Das
Symbol => (nach der
lo0-Schnittstelle) sagt aus, dass wir
nicht nur das Loopbackgerät verwenden (da sich die
Adresse auf den lokalen Rechner bezieht), sondern dass es sich
zusätzlich auch um ein Alias handelt. Solche Routen sind
nur auf Rechnern vorhanden, die den Alias bereitstellen;
alle anderen Rechner im lokalen Netz haben für solche
Routen nur eine einfache link#1
Zeile.Die letzte Zeile (Zielsubnetz 224)
behandelt das Multicasting, das wir in einem anderen Abschnitt
besprechen werden.Schließlich gibt es für Routen noch
verschiedene Attribute, die Sie in der Spalte
Flags finden. Nachfolgend finden Sie eine
kurze Übersicht von einigen dieser Flags und ihrer
Bedeutung:UUp: Die Route ist aktiv.HHost: Das Ziel der Route ist ein einzelner
Rechner (Host).GGateway: Alle Daten, die an dieses Ziel gesendet
werden, werden von diesem System an ihr jeweiliges
Ziel weitergeleitet.SStatic: Diese Route wurde manuell konfiguriert,
das heißt sie wurde nicht
automatisch vom System erzeugt.CClone: Erzeugt eine neue Route, basierend auf der
Route für den Rechner, mit dem wir uns verbinden.
Diese Routenart wird normalerweise für lokale
Netzwerke verwendet.WWasCloned: Eine Route, die automatisch
konfiguriert wurde. Sie basiert auf einer lokalen
Netzwerkroute (Clone).LLink: Die Route beinhaltet einen Verweis auf eine
Ethernetkarte (MAC-Adresse).StandardroutenDefaultrouteStandardrouteDefaultrouteWenn sich der lokale Rechner mit einem entfernten Rechner
verbinden will, wird die Routingtabelle überprüft,
um festzustellen, ob bereits ein bekannter Pfad vorhanden ist.
Gehört dieser entfernte Rechner zu einem Subnetz, dessen
Pfad uns bereits bekannt ist
(Cloned route), dann versucht der
lokale Rechner über diese Schnittstelle eine Verbindung
herzustellen.Wenn alle bekannten Pfade nicht funktionieren, hat der
lokale Rechner eine letzte Möglichkeit: Die
Standardroute (Defaultroute). Bei dieser
Route handelt es sich um eine spezielle Gateway-Route
(gewöhnlich die einzige im System vorhandene), die im
Flags-Feld immer mit C gekennzeichnet ist.
Für Rechner im lokalen Netzwerk ist dieses Gateway auf
welcher Rechner auch immer eine Verbindung nach
außen hat gesetzt (entweder über eine
PPP-Verbindung, DSL, ein Kabelmodem, T1 oder eine beliebige
andere Netzwerkverbindung).Wenn Sie die Standardroute für einen Rechner
konfigurieren, der selbst als Gateway zur Außenwelt
funktioniert, wird die Standardroute zum Gateway-Rechner Ihres
Internetanbieter (ISP) gesetzt.Sehen wir uns ein Beispiel für Standardrouten an. So
sieht eine übliche Konfiguration aus:
[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
Die Rechner Local1 und
Local2 befinden sich auf Ihrer Seite.
Local1 ist mit einem ISP über eine
PPP-Verbindung verbunden. Dieser PPP-Server ist über ein
lokales Netzwerk mit einem anderen Gateway-Rechner verbunden,
der über eine Schnittstelle die Verbindung des ISP zum
Internet herstellt.Die Standardrouten für Ihre Maschinen lauten:HostStandard GatewaySchnittstelleLocal2Local1EthernetLocal1T1-GWPPPEine häufig gestellte Frage lautet: Warum (oder
wie) sollten wir T1-GW als Standard-Gateway
für Local1 setzen, statt den (direkt
verbundenen) ISP-Server zu verwenden?.Bedenken Sie, dass die PPP-Schnittstelle für die
Verbindung eine Adresse des lokalen Netzes des ISP verwendet.
Daher werden Routen für alle anderen Rechner im lokalen
Netz des ISP automatisch erzeugt. Daraus folgt, dass Sie
bereits wissen, wie Sie T1-GW erreichen
können! Es ist also unnötig, einen Zwischenschritt
über den ISP-Server zu machen.Es ist üblich, die Adresse X.X.X.1 als Gateway-Adresse für
ihr lokales Netzwerk zu verwenden. Für unser Beispiel
bedeutet dies Folgendes: Wenn Ihr lokaler Klasse-C-Adressraum
10.20.30 ist und Ihr ISP
10.9.9 verwendet, sehen die
Standardrouten so aus:Rechner (Host)StandardrouteLocal2 (10.20.30.2)Local1 (10.20.30.1)Local1 (10.20.30.1, 10.9.9.30)T1-GW (10.9.9.1)Sie können die Standardroute ganz einfach in der Datei
/etc/rc.conf festlegen. In unserem
Beispiel wurde auf dem Rechner Local2
folgende Zeile in /etc/rc.conf
eingefügt:defaultrouter="10.20.30.1"Die Standardroute kann über &man.route.8; auch direkt
gesetzt werden:&prompt.root; route add default 10.20.30.1Weitere Informationen zum Bearbeiten von
Netzwerkroutingtabellen finden Sie in &man.route.8;.Rechner mit zwei HeimatnetzenDual-Homed-HostsEs gibt noch eine Konfigurationsmöglichkeit, die wir
besprechen sollten, und zwar Rechner, die sich in zwei
Netzwerken befinden. Technisch gesehen, zählt jeder als
Gateway arbeitende Rechner zu den Rechnern mit zwei
Heimatnetzen (im obigen Beispiel unter Verwendung einer
PPP-Verbindung). In der Praxis meint man damit allerdings nur
Rechner, die sich in zwei lokalen Netzen befinden.Entweder verfügt der Rechner über zwei
Ethernetkarten und jede dieser Karten hat eine Adresse in
einem separaten Subnetz, oder der Rechner hat nur eine
Ethernetkarte und verwendet &man.ifconfig.8; Aliasing. Die
erste Möglichkeit wird verwendet, wenn zwei physikalisch
getrennte Ethernet-Netzwerke vorhanden sind, die zweite, wenn
es nur ein physikalisches Ethernet-Netzwerk gibt, das aber aus
zwei logisch getrennten Subnetzen besteht.In beiden Fällen werden Routingtabellen erstellt,
damit jedes Subnetz weiß, dass dieser Rechner als Gateway
zum anderen Subnetz arbeitet (inbound
route). Diese Konfiguration (der
Gateway-Rechner arbeitet als Router zwischen den Subnetzen) wird
häufig verwendet, wenn es darum geht, Paketfilterung oder
eine Firewall (in eine oder beide Richtungen) zu implementieren.
Soll dieser Rechner Pakete zwischen den beiden
Schnittstellen weiterleiten, müssen Sie diese Funktion
manuell konfigurieren und aktivieren. Lesen Sie den
nächsten Abschnitt, wenn Sie weitere Informationen zu
diesem Thema benötigen.Einen Router konfigurierenRouterEin Netzwerkrouter ist einfach ein System, das Pakete von
einer Schnittstelle zur anderen weiterleitet.
Internetstandards und gute Ingenieurspraxis sorgten
dafür, dass diese Funktion in FreeBSD in der Voreinstellung
deaktiviert ist. Sie können diese Funktion aktivieren,
indem Sie in &man.rc.conf.5; folgende Änderung
durchführen:gateway_enable=YES # Auf YES setzen, wenn der Rechner als Gateway arbeiten sollDiese Option setzt die &man.sysctl.8;-Variable
net.inet.ip.forwarding auf
1. Wenn Sie das Routing kurzzeitig
unterbrechen wollen, können Sie die Variable auf
0 setzen.BGPRIPOSPFIhr neuer Router benötigt nun noch Routen, um zu
wissen, wohin er den Verkehr senden soll. Haben Sie ein
(sehr) einfaches Netzwerk, können Sie statische Routen
verwenden. FreeBSD verfügt über den Standard
BSD-Routing-Daemon &man.routed.8;, der RIP (sowohl Version 1
als auch Version 2) und IRDP versteht. BGP v4,
OSPF v2 und andere Protokolle werden von
net/zebra
unterstützt. Es stehen auch kommerzielle Produkte
wie gated zur Verfügung.AlHoangBeigetragen von Statische Routen einrichtenManuelle KonfigurationNehmen wir an, dass wir über folgendes Netzwerk
verfügen:
INTERNET
| (10.0.0.1/24) Default Router to Internet
|
|Interface xl0
|10.0.0.10/24
+------+
| | RouterA
| | (FreeBSD gateway)
+------+
| Interface xl1
| 192.168.1.1/24
|
+--------------------------------+
Internal Net 1 | 192.168.1.2/24
|
+------+
| | RouterB
| |
+------+
| 192.168.2.1/24
|
Internal Net 2
RouterA, ein &os;-Rechner, dient als
Router für den Zugriff auf das Internet. Die
Standardroute ist auf 10.0.0.1
gesetzt, damit ein Zugriff auf das Internet möglich wird.
Wir nehmen nun an, dass RouterB bereits
konfiguriert ist und daher weiß, wie er andere Rechner
erreichen kann. Dazu wird die Standardroute von
RouterB auf
192.168.1.1 gesetzt, da dieser
Rechner als Gateway fungiert.Sieht man sich die Routingtabelle für
RouterA an, erhält man folgende Ausgabe:
&prompt.user; netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
10.0.0/24 link#1 UC 0 0 xl0
192.168.1/24 link#2 UC 0 0 xl1Mit dieser Routingtabelle kann RouterA
unser internes Netz 2 nicht erreichen, da keine Route zum
Rechner 192.168.2.0/24
vorhanden ist. Um dies zu korrigieren, kann die Route manuell
gesetzt werden. Durch den folgenden Befehl wird das
interne Netz 2 in die Routingtabelle des Rechners
RouterA aufgenommen, indem
192.168.1.2 als nächster
Zwischenschritt verwenden wird:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Ab sofort kann RouterA alle Rechner des
Netzwerks 192.168.2.0/24
erreichen.Routen dauerhaft einrichtenDas obige Beispiel ist für die Konfiguration einer
statischen Route auf einem laufenden System geeignet. Diese
Information geht jedoch verloren, wenn der &os;-Rechner neu
gestartet werden muss. Um dies zu verhindern, wird diese
Route in /etc/rc.conf eingetragen:# Add Internal Net 2 as a static route
static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"Die Variable static_routes enthält
eine Reihe von Strings, die durch Leerzeichen getrennt sind.
Jeder String bezieht sich auf den Namen einer Route. In
unserem Beispiel hat static_routesinternalnet2 als einzigen String.
Zusätzlich verwendet man die Konfigurationsvariable
route_internalnet2,
in der alle sonstigen an &man.route.8; zu übergebenden
Parameter festgelegt werden. In obigen Beispiel hätte
man folgenden Befehl verwendet:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Daher wird
"-net 192.168.2.0/24 192.168.1.2" als
Parameter der Variable route_ angegeben.
Wie bereits erwähnt, können bei
static_routes auch mehrere Strings
angegeben werden. Dadurch lassen sich mehrere statische
Routen anlegen. Durch folgende Zeilen werden auf einem
imaginären Rechner statische Routen zu den Netzwerken
192.168.0.0/24 sowie 192.168.1.0/24 definiert:static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"Verteilung von Routing-Informationenrouting propagationWir haben bereits darüber gesprochen, wie wir unsere
Routen zur Außenwelt definieren, aber nicht darüber,
wie die Außenwelt uns finden kann.Wir wissen bereits, dass Routing-Tabellen so erstellt
werden können, dass sämtlicher Verkehr für
einen bestimmten Adressraum (in unserem Beispiel ein
Klasse-C-Subnetz) zu einem bestimmten Rechner in diesem
Netzwerk gesendet wird, der die eingehenden Pakete im Subnetz
verteilt.Wenn Sie einen Adressraum für Ihre Seite zugewiesen
bekommen, richtet Ihr Diensteanbieter seine Routingtabellen so
ein, dass der ganze Verkehr für Ihr Subnetz entlang Ihrer
PPP-Verbindung zu Ihrer Seite gesendet wird. Aber woher
wissen die Seiten in der Außenwelt, dass sie die Daten an
Ihren ISP senden sollen?Es gibt ein System (ähnlich dem verbreiteten DNS),
das alle zugewiesenen Adressräume verwaltet und ihre
Verbindung zum Internet-Backbone definiert und dokumentiert.
Der Backbone ist das Netz aus
Hauptverbindungen, die den Internetverkehr in der ganzen Welt
transportieren und verteilen. Jeder Backbone-Rechner
verfügt über eine Kopie von Haupttabellen, die den
Verkehr für ein bestimmtes Netzwerk hierarchisch vom
Backbone über eine Kette von Diensteanbietern bis hin zu
Ihrer Seite leiten.Es ist die Aufgabe Ihres Diensteanbieters, den
Backbone-Seiten mitzuteilen, dass sie mit Ihrer Seite
verbunden wurden. Durch diese Mitteilung der Route ist nun
auch der Weg zu Ihnen bekannt. Dieser Vorgang wird als
Bekanntmachung von Routen
(routing propagation)
bezeichnet.ProblembehebungtracerouteManchmal kommt es zu Problemen bei der Bekanntmachung von
Routen, und einige Seiten sind nicht in der Lage, Sie zu
erreichen. Vielleicht der nützlichste Befehl, um
festzustellen, wo das Routing nicht funktioniert, ist
&man.traceroute.8;. Er ist außerdem sehr nützlich,
wenn Sie einen entfernten Rechner nicht erreichen können
(lesen Sie dazu auch &man.ping.8;).&man.traceroute.8; wird mit dem zu erreichenden Rechner
(Host) ausgeführt. Angezeigt werden die Gateway-Rechner
entlang des Verbindungspfades. Schließlich wird der
Zielrechner erreicht oder es kommt zu einem Verbindungsabbruch
(beispielsweise durch Nichterreichbarkeit eines
Gateway-Rechners).Weitere Informationen finden Sie in
&man.traceroute.8;.Multicast-RoutingMulticast-RoutingKerneloptionenMROUTING&os; unterstützt sowohl Multicast-Anwendungen als
auch Multicast-Routing. Multicast-Anwendungen müssen
nicht konfiguriert werden, sie laufen einfach.
Multicast-Routing muss in der Kernelkonfiguration aktiviert
werden:options MROUTINGZusätzlich muss &man.mrouted.8;, der
Multicast-Routing-Daemon, über die Datei
/etc/mrouted.conf eingerichtet werden,
um Tunnel und DVMRP zu aktivieren. Weitere
Informationen zu diesem Thema finden Sie in
&man.mrouted.8;.EricAndersonGeschrieben von Drahtlose Netzwerkedrahtlose Netzwerke802.11drahtlose NetzwerkeEinführungEs kann sehr nützlich sein, einen Computer zu
verwenden, ohne sich die ganze Zeit mit einem Netzwerkkabel
herumärgern zu müssen. FreeBSD kann auf drahtlose
Netzwerke (wireless LAN)
zugreifen und sogar als Zugangspunkt
(access point) für
drahtlose Netzwerke verwendet werden.Betriebsmodi drahtloser GeräteDrahtlose 802.11-Geräte können in zwei Modi
konfiguriert werden: BSS und IBSS.BSS-ModusÜblicherweise wird der BSS-Modus, der auch
Infrastruktur-Modus genannt wird, verwendet. In diesem Modus
sind die Zugangspunkte (access
points) mit einem Kabel-Netzwerk verbunden.
Jedes drahtlose Netzwerk besitzt einen Namen, der als die SSID
des Netzwerks bezeichnet wird.Drahtlose Clients benutzen ein im IEEE-802.11-Standard
beschriebenes Protokoll, um sich mit den Zugangspunkten zu
verbinden. Durch die Angabe einer SSID kann sich der Client
das Netzwerk, mit dem er sich verbinden will, aussuchen. Gibt
der Client keine SSID an, so wird er mit einem beliebigen
Netzwerk verbunden.IBSS-ModusDer IBSS-Modus, der auch ad-hoc-Modus genannt wird, wurde
für Punkt-zu-Punkt-Verbindungen entworfen. Es gibt zwei
Modi: Den IBSS-Modus, auch ad-hoc- oder IEEE-ad-hoc-Modus
(definiert im IEEE-802.11-Standard) sowie den demo-ad-hoc-Modus
oder Lucent-adhoc-Modus (der manchmal ebenfalls als
ad-hoc-Modus bezeichnet wird). Der zweite Modus stammt aus der
Zeit vor IEEE 802.11 und sollte nur noch mit alten
Installationen verwendet werden. Im folgenden wird keiner der
ad-hoc-Modi behandelt.Infrastruktur-ModusZugangspunkteZugangspunkte sind drahtlose Netzwerkgeräte, die es
einem oder mehreren Clients ermöglichen, diesen als
einen zentralen Verteiler (Hub) zu benutzen. Wenn ein
Zugangspunkt verwendet wird, kommunizieren alle Clients
über diesen Zugangspunkt. Oft werden mehrere
Zugangspunkte kombiniert, um ein ganzes Gebiet, wie ein
Haus, ein Unternehmen oder einen Park mit einem drahtlosen
Netzwerk zu versorgen.Üblicherweise haben Zugangspunkte mehrere
Netzwerkverbindungen: Die drahtlose Karte, sowie eine oder
mehrere Ethernetkarten, über die die Verbindung mit dem
restlichen Netzwerk hergestellt wird.Sie können einen vorkonfigurierten Zugangspunkt
kaufen, oder Sie können sich unter Verwendung von
FreeBSD und einer unterstützten drahtlosen Karte einen
eigenen bauen. Es gibt verschiedene Hersteller, die sowohl
Zugangspunkte als auch drahtlose Karten mit verschiedensten
Eigenschaften vertreiben.Einen FreeBSD-Zugangspunkt installierendrahtlose NetzwerkeZugangspunkteVoraussetzungenUm einen drahtlosen Zugangspunkt unter FreeBSD
einzurichten, müssen Sie über eine drahtlose
Karte verfügen. Zurzeit werden dafür von
FreeBSD nur Karten mit Prism-Chipsatz unterstützt.
Zusätzlich benötigen Sie eine von FreeBSD
unterstützte Ethernetkarte (diese sollte nicht schwer
zu finden sein, da FreeBSD eine Vielzahl von verschiedenen
Karten unterstützt). Für die weiteren
Erläuterungen nehmen wir an, dass Sie den ganzen
Verkehr zwischen dem drahtlosen Gerät und dem an die
Ethernetkarte angeschlossenen Kabel-Netzwerk über
die &man.bridge.4;-Funktion realisieren wollen.Die hostap-Funktion, mit der FreeBSD Zugangspunkte
implementiert, läuft am besten mit bestimmten
Firmware-Versionen. Prism 2-Karten sollten die
Firmwareversion 1.3.4 oder neuer verwenden.
Prism 2.5- und Prism 3-Karten sollten die
Firmwareversion 1.4.9 verwenden. Es kann sein,
dass auch ältere Versionen funktionieren. Zurzeit ist
es nur mit &windows;-Werkzeugen der Hersteller möglich,
die Firmware zu aktualisieren.EinrichtungStellen Sie als Erstes sicher, dass Ihr System die
drahtlose Karte erkennt:&prompt.root; ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1Kümmern Sie sich jetzt noch nicht um die Details,
sondern stellen Sie nur sicher, dass ihre drahtlose Karte
überhaupt erkannt und angezeigt wird. Wenn es sich
um eine PC Card handelt, die überhaupt nicht
erkannt wird, sollten Sie &man.pccardc.8; sowie
&man.pccardd.8; lesen.Danach müssen Sie ein Modul laden, um die
Bridge-Funktion von FreeBSD für den Zugangspunkt
vorzubereiten. Um das Modul &man.bridge.4; zu laden,
geben Sie Folgendes ein:&prompt.root; kldload bridgeDabei sollten beim Laden des Moduls keine
Fehlermeldungen auftreten. Geschieht dies doch, kann es
sein, dass Sie die Bridge-Funktion (&man.bridge.4;)
in Ihren Kernel kompilieren müssen. Der Abschnitt
LAN-Kopplung mit einer
Bridge dieses Handbuchs sollte Ihnen dabei
behilflich sein.Wenn die Bridge-Funktion aktiviert ist,
müssen wir FreeBSD mitteilen, welche Schnittstellen
über die Bridge verbunden werden sollen. Dazu
verwenden wir &man.sysctl.8;:&prompt.root; sysctl net.link.ether.bridge.enable=1
&prompt.root; sysctl net.link.ether.bridge.config="wi0 xl0"
&prompt.root; sysctl net.inet.ip.forwarding=1Für &os;-Versionen vor 5.2-RELEASE müssen
Sie Folgendes eingeben:&prompt.root; sysctl net.link.ether.bridge=1
&prompt.root; sysctl net.link.ether.bridge_cfg="wi0,xl0"
&prompt.root; sysctl net.inet.ip.forwarding=1Nun ist es an der Zeit, die drahtlose Karte zu
installieren. Der folgende Befehl konfiguriert einen
Zugangspunkt:&prompt.root; ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"Durch diese Zeile aktiviert &man.ifconfig.8; das
Gerät wi0, setzt die SSID auf
my_net sowie den Namen des
Zugangspunkts auf FreeBSD AP.
Mit wird die Karte in den
11 Mbps-Modus versetzt. Diese Option ist nötig,
damit -Optionen wirksam werden.
Durch wird die
Schnittstelle als Zugangspunkt konfiguriert. Der zu
benutzende 802.11b-Kanal wird durch
festgelegt. Weitere
Informationen zu gültigen Kanaloptionen finden Sie in
&man.wicontrol.8;.Nun sollten Sie über einen voll
funktionsfähigen und laufenden Zugangspunkt
verfügen. Weitere Informationen finden Sie
in den Hilfeseiten &man.wicontrol.8;, &man.ifconfig.8;
und &man.wi.4;.Außerdem ist es empfehlenswert, den folgenden
Abschnitt zu lesen, um sich über die Sicherung und
Verschlüsselung von Zugangspunkten zu
informieren.StatusinformationenWenn der Zugangspunkt eingerichtet ist und läuft,
können Sie die verbundenen Clients mit dem nachstehenden
Kommando abfragen:&prompt.root; wicontrol -l
1 station:
00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15Das Beispiel zeigt eine verbundene Station und die
dazugehörenden Verbindungsparameter. Die angegebene
Signalstärke ist allerdings mit Vorsicht zu
genießen, da die Umrechnung in dBm oder andere
Einheiten von der eingesetzten Firmware-Version
abhängig ist.ClientsEin drahtloser Client ist ein System, das direkt auf
einen Zugangspunkt oder einen anderen Client
zugreift.Üblicherweise haben drahtlose Clients nur ein
Netzwerkgerät, die drahtlose Netzkarte.Es gibt verschiedene Möglichkeiten, einen
drahtlosen Client zu konfigurieren. Diese hängen von
den verschiedenen drahtlosen Betriebsmodi ab. Man
unterscheidet vor allem zwischen BSS (Infrastrukturmodus,
erfordert einen Zugangspunkt) und IBSS (ad-hoc,
Peer-to-Peer-Modus, zwischen zwei Clients, ohne
Zugangspunkt). In unserem Beispiel verwenden wir den weiter
verbreiteten BSS-Modus, um einen Zugangspunkt anzusprechen.
VoraussetzungenEs gibt nur eine Voraussetzung, um FreeBSD als
drahtlosen Client betreiben zu können: Sie brauchen
eine von FreeBSD unterstützte drahtlose Karte.Einen drahtlosen FreeBSD-Client einrichtenSie müssen ein paar Dinge über das drahtlose
Netzwerk wissen, mit dem Sie sich verbinden wollen, bevor
Sie starten können. In unserem Beispiel verbinden
wir uns mit einem Netzwerk, das den Namen
my_net hat, und bei dem die
Verschlüsselung deaktiviert ist.In unserem Beispiel verwenden wir keine
Verschlüsselung. Dies ist eine gefährliche
Situation. Im nächsten Abschnitt werden Sie daher
lernen, wie man die Verschlüsselung aktiviert, warum
es wichtig ist, dies zu tun, und warum einige
Verschlüsselungstechniken Sie trotzdem nicht
vollständig schützen.Stellen Sie sicher, dass Ihre Karte von FreeBSD
erkannt wird:&prompt.root; ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1Nun können wir die Einstellungen der Karte unserem
Netzwerk anpassen:&prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_netErsetzen Sie 192.168.0.20 und 255.255.255.0 durch eine
gültige IP-Adresse und Netzmaske ihres
Kabel-Netzwerks. Bedenken Sie außerdem, dass unser
Zugangspunkt als Bridge zwischen dem drahtlosen und
dem Kabel-Netzwerk fungiert. Für die anderen
Rechner Ihres Netzwerks befinden Sie sich, genauso wie
diese, im gleichen Kabel-Netzwerk, obwohl Sie zum
drahtlosen Netzwerk gehören.Nachdem Sie dies erledigt haben, sollten Sie andere
Rechner (Hosts) im Kabel-Netzwerk an&man.ping.8;en
können, genauso, wie wenn Sie über eine
Standardkabelverbindung mit ihnen verbunden
wären.Wenn Probleme mit Ihrer drahtlosen Verbindung
auftreten, stellen Sie sicher, dass Sie mit dem
Zugangspunkt verbunden sind:&prompt.root; ifconfig wi0sollte einige Informationen ausgeben und Sie sollten
Folgendes sehen:status: associatedWird associated nicht angezeigt, sind
Sie entweder außerhalb der Reichweite des
Zugangspunktes, haben die Verschlüsselung deaktiviert,
oder Sie haben ein anderes Konfigurationsproblem.Verschlüsselungdrahtlose NetzwerkeVerschlüsselungVerschlüsselung ist in einem drahtlosen Netzwerk
wichtig, da Sie das Netzwerk nicht länger in einem
geschützten Bereich betreiben können. Ihre Daten
verbreiten sich in der ganzen Nachbarschaft, das heißt
jeder, der es will, kann Ihre Daten lesen. Deshalb gibt es
die Verschlüsselung. Durch die Verschlüsselung der
durch die Luft versendeten Daten machen Sie es einem Dritten
sehr viel schwerer, Ihre Daten abzufangen oder auf diese
zuzugreifen.Die gebräuchlichsten Methoden, um Daten zwischen
Ihrem Client und dem Zugangspunkt zu verschlüsseln,
sind WEP und &man.ipsec.4;.WEPWEPWEP ist die Abkürzung für
Wired Equivalency
Protocol ("Verkabelung entsprechendes
Protokoll"). WEP war ein Versuch, drahtlose Netzwerke
ebenso sicher und geschützt zu machen wie verkabelte
Netzwerke. Unglücklicherweise wurde es bereits
geknackt, und ist relativ einfach auszuhebeln. Sie sollten
sich also nicht darauf verlassen, wenn Sie sensible Daten
verschlüsseln wollen.Allerdings ist eine schlechte Verschlüsselung
noch immer besser als gar keine Verschlüsselung.
Aktivieren Sie daher WEP für Ihren neuen
FreeBSD-Zugangspunkt:&prompt.root; ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostapAuf dem Client können Sie WEP wie folgt
aktivieren:&prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890Beachten Sie bitte, dass Sie
0x1234567890 durch einen besseren
Schlüssel ersetzen sollten.IPsec&man.ipsec.4; ist ein viel besseres und robusteres
Werkzeug, um Daten in einem Netzwerk zu
verschlüsseln und ist auch der bevorzugte Weg,
Daten in einem drahtlosen Netzwerk zu verschlüsseln.
Weitere Informationen zu &man.ipsec.4; sowie zu dessen
Implementierung enthält der Abschnitt
IPsec des Handbuches.WerkzeugeEs gibt einige Werkzeuge, die dazu dienen, Ihr
drahtloses Netzwerk zu installieren, und auftretende
Probleme zu beheben. Im folgenden Abschnitt werden die
wichtigsten von ihnen beschrieben.bsd-airtoolsDas Paket bsd-airtools
enthält einen kompletten Werkzeugsatz zum
Herausfinden von WEP-Schlüsseln, zum Auffinden von
Zugangspunkten, usw.Die bsd-airtools
können Sie über den Port
net/bsd-airtools
installieren. Wie ein Port installiert wird,
beschreibt des Handbuchs.Das Programm dstumbler ist ein
Werkzeug, das Sie beim Auffinden von Zugangspunkten
unterstützt, und das Signal-Rausch-Verhältnis
graphisch darstellen kann. Wenn Sie Probleme beim
Einrichten und Betreiben Ihres Zugangspunktes haben,
könnte dstumbler genau das
Richtige für Sie sein.Um die Sicherheit Ihres drahtlosen Netzwerks zu
überprüfen, könnten Sie das Paket
dweputils (dwepcrack,
dwepdump und
dwepkeygen) verwenden. Durch diese Tools
können Sie feststellen, ob WEP Ihren
Sicherheitsanforderungen genügt.wicontrol,
ancontrol und
raycontrolDies sind Werkzeuge, um das Verhalten Ihrer drahtlosen
Karte im drahtlosen Netzwerk zu kontrollieren. In den
obigen Beispielen haben wir &man.wicontrol.8; verwendet,
da es sich bei unser drahtlosen Karte um ein Gerät
der wi0-Schnittstelle handelt.
Hätten Sie eine drahtlose Karte von Cisco,
würden Sie diese über
an0 ansprechen, und daher
&man.ancontrol.8; verwenden.Das Kommando ifconfigifconfig&man.ifconfig.8; kennt zwar viele Optionen von
&man.wicontrol.8;, einige fehlen jedoch. Unter
&man.ifconfig.8; finden Sie Informationen zu
Parametern und Optionen.Unterstützte KartenZugangspunktDie einzigen Karten, die im BSS-Modus (das heißt
als Zugangspunkt) derzeit unterstützt werden, sind
solche mit Prism 2-, 2.5- oder 3-Chipsatz. Für
eine komplette Übersicht lesen Sie bitte &man.wi.4;.
ClientsBeinahe alle nach 802.11b arbeitenden drahtlosen
Karten werden von FreeBSD unterstützt. Die meisten
dieser Karten von Prism, Spectrum24, Hermes, Aironet und
Raylink arbeiten als drahtlose Netzkarten im IBSS-Modus
(ad-hoc, Peer-to-Peer und BSS).802.11a und 802.11g Clients&man.ath.4; unterstützt sowohl 802.11a als auch
802.11g. Wenn Ihre Karte auf dem Atheros-Chipsatz basiert,
können Sie also eventuell diesen Treiber
verwenden.Leider stellen nach wie vor viele Unternehmen die
Spezifikationen ihrer Treiber der Open Source Gemeinde
nicht zur Verfügung, weil sie diese Informationen
als Geschäftsgeheimnisse betrachten. Daher haben die
Entwickler von FreeBSD und anderen Betriebssystemen nur
zwei Möglichkeiten. Entweder versuchen sie in einem
aufwändigen Prozess den Treiber durch
Reverse Engineering
nachzubauen, oder sie versuchen, die vorhandenen
Binärtreiber der µsoft.windows;-Plattform zu
verwenden. Die meisten Entwickler, darunter auch die an
FreeBSD beteiligten, haben sich für den zweiten Ansatz
entschieden.Bill Paul (wpaul) ist es zu verdanken, dass es seit
FreeBSD 5.3-RELEASE eine
native Unterstützung der
Network Driver Interface
Specification (NDIS) gibt. Der
FreeBSD NDISulator (auch als Project Evil bekannt) nutzt
den binären &windows;-Treiber, indem er diesem vorgibt,
unter &windows; zu laufen. Obwohl diese Fähigkeit noch
relativ neu ist, arbeitet sie in den meisten Fällen
bereits zufriedenstellend.NDISNDISulator&windows;-TreiberMicrosoft WindowsMicrosoft WindowsGerätetreiberKLD (kernel loadable object)Um den NDISulator zu verwenden, benötigen Sie drei
Dinge:Die KernelquellenDen &windowsxp;-Binärtreiber
(mit der Erweiterung .SYS)Die Konfigurationsdatei des &windowsxp;-Treibers
(mit der Erweiterung .INF)Als erstes müssen Sie das Wrappermodul für
den &man.ndis.4; Miniport-Treiber kompilieren. Dazu geben
Sie als root Folgendes ein:&prompt.root; cd /usr/src/sys/modules/ndis
&prompt.root; make && make installSuchen Sie die Dateien für Ihre Karte. Diese
befinden sich meistens auf einer beigelegten CD-ROM, oder
können von der Internetseite des Herstellers
heruntergeladen werden. In den folgenden Beispielen werden
die Dateien W32DRIVER.SYS und
W32DRIVER.INF verwendet.Als Nächstes kompilieren Sie den binären
Treiber, um ein Kernelmodul zu erzeugen. Dazu wechseln Sie
als root ins Modulverzeichnis
if_ndis und kopieren den
&windows;-Treiber dorthin:&prompt.root; cd /usr/src/sys/modules/if_ndis
&prompt.root; cp /path/to/driver/W32DRIVER.SYS ./
&prompt.root; cp /path/to/driver/W32DRIVER.INF ./Danach nutzen wir ndiscvt, um die
Headerdatei ndis_driver_data.h mit
den Treiberdefinitionen zu erzeugen, die für den Bau
des Moduls benötigt wird:&prompt.root; ndiscvt -i W32DRIVER.INF -s W32DRIVER.SYS -o ndis_driver_data.hDie Optionen und
legen die Konfigurations- und Binärdateien fest. Durch
teilen wir
Makefile mit, wo sich diese für
den Bau des Moduls benötigte Datei befindet.Einige &windows;-Treiber benötigen noch weitere
Dateien für einen fehlerfreien Betrieb. Ist dies bei
Ihnen der Fall, können Sie diese Dateien mit der Option
an ndiscvt
übergeben (lesen Sie dazu auch &man.ndiscvt.8;).Nun können wir das Treibermodul kompilieren und
installieren:&prompt.root; make && make installUm den Treiber zu verwenden, müssen Sie die
entsprechenden Module laden:&prompt.root; kldload ndis
&prompt.root; kldload if_ndisDer erste Befehl lädt den Wrapper für den
NDIS Miniport-Treiber, der zweite die betreffende
Netzwerkgerätedatei. Überprüfen Sie nun
&man.dmesg.8; auf eventuelle Fehlermeldungen. Wenn alles
klappt, sollte Sie eine Ausgabe ähnlich der folgenden
erhalten:ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54MbpsAb sofort können Sie ndis0
wie jedes andere drahtlose Gerät (beispielsweise
wi0) ansprechen. Lesen Sie sich
dazu die vorherigen Abschnitte dieses Kapitels nochmals
durch.PavLucistnikBeigetragen von pav@FreeBSD.orgBluetoothBluetoothÜbersichtBluetooth ermöglicht die Bildung von persönlichen
Netzwerken über drahtlose Verbindungen bei einer maximalen
Reichweite von 10 Metern und operiert im unlizensierten
2,4-GHz-Band. Solche Netzwerke werden normalerweise spontan
gebildet, wenn sich mobile Geräte, wie Mobiltelefone,
Handhelds oder Notebooks miteinander verbinden. Im Gegensatz zu
Wireless LAN ermöglicht Bluetooth auch höherwertige
Dienste, wie FTP-ähnliche Dateiserver, Filepushing,
Sprachübertragung, Emulation von seriellen Verbindungen
und andere mehr.Der Bluetooth-Stack von &os; verwendet das
Netgraph-Framework (&man.netgraph.4;). Viele
Bluetooth-USB-Adapter werden durch den &man.ng.ubt.4;-Treiber
unterstützt. Auf dem Chip BCM2033
von Broadcom basierende Bluetooth-Geräte werden von den
Treibern &man.ubtbcmfw.4; sowie &man.ng.ubt.4; unterstützt.
Die Bluetooth-PC-Card 3CRWB60-A von 3Com verwendet den
&man.ng.bt3c.4;-Treiber. Serielle sowie auf UART basierende
Bluetooth-Geräte werden von &man.sio.4;, &man.ng.h4.4;
sowie &man.hcseriald.8; unterstützt. Dieses Kapitel
beschreibt die Verwendung von USB-Bluetooth-Adaptern. Bluetooth
wird seit der Version 5.0 von &os; unterstützt.Die Bluetooth-Unterstützung aktivierenBluetooth-Unterstützung ist in der Regel als
Kernelmodul verfügbar. Damit ein Gerät funktioniert,
muss der entsprechende Treiber im Kernel geladen werden:&prompt.root; kldload ng_ubtIst das Bluetooth-Gerät beim Systemstart angeschlossen,
kann das entsprechende Modul auch von
/boot/loader.conf geladen werden:ng_ubt_load="YES"Schließen Sie Ihren USB-Adapter an, sollte eine
Meldung ähnlich der folgenden auf der Konsole (oder in
syslog) erscheinen:ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
wMaxPacketSize=49, nframes=6, buffer size=294Verwenden Sie &os; 6.0 oder eine 5.X-Version vor 5.5,
müssen Sie den Bluetooth-Stack manuell starten. Ab
&os; 5.5 beziehungsweise 6.1 und neuer wird der Stack hingegen
automatisch von &man.devd.8; gestartet.Kopieren Sie
/usr/share/examples/netgraph/bluetooth/rc.bluetooth
nach /etc/rc.bluetooth. Über dieses
Skript wird der Bluetooth-Stack gestartet und beendet. Es ist
empfehlenswert, den Bluetooth-Stack zu beenden, bevor Sie den
Adapter entfernen. Selbst wenn Sie dies nicht tun, kommt es
(normalerweise) zu keinem fatalen Fehler. Wenn Sie den
Bluetooth-Stack starten, erhalten Sie eine Meldung ähnlich
der folgenden:&prompt.root; /etc/rc.bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a
Features: 0xff 0xff 0xf 00 00 00 00 00
<3-Slot> <5-Slot> <Encryption> <Slot offset>
<Timing accuracy> <Switch> <Hold mode> <Sniff mode>
<Park mode> <RSSI> <Channel quality> <SCO link>
<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
<Paging scheme> <Power control> <Transparent SCO data>
Max. ACL packet size: 192 bytes
Number of ACL packets: 8
Max. SCO packet size: 64 bytes
Number of SCO packets: 8HCIDas Host Controller Interface (HCI)Das Host Controller Interface
(HCI) bietet eine Befehlsschnittstelle zum Basisbandcontroller
und Linkmanager, sowie Zugriff auf den Hardwarestatus und die
Kontrollregister. Dadurch wird ein einheitlicher Zugriff auf
die Fähigkeiten des Bluetooth-Basisbands möglich. Die
HCI-Layer des Rechners tauschen Daten und Befehle mit der
HCI-Firmware der Bluetooth-Geräte aus. Über den
Host Controller Transport Layer-Treiber (also den physikalischen
Bus) können beide HCI-Layer miteinander
kommunizieren.Eine einzelne Netgraph-Gerätedatei vom Typ
hci wird für ein einzelnes
Bluetooth-Gerät erzeugt. Die HCI-Gerätedatei ist
normalerweise mit der Bluetooth-Gerätetreiberdatei
(downstream) sowie der L2CAP-Gerätedatei (upstream)
verbunden. Alle HCI-Operationen müssen über die
HCI-Gerätedatei und nicht über die Treiberdatei
erfolgen. Der Standardname für die HCI-Gerätedatei
(die in &man.ng.hci.4; beschrieben wird) lautet
devicehci.Eine der wichtigsten Aufgaben ist das Auffinden von sich
in Reichweite befindenden Bluetooth-Geräten. Diese
Funktion wird als inquiry bezeichnet.
Inquiry sowie andere mit HCI in Verbindung stehende Funktionen
werden von &man.hccontrol.8; zur Verfügung gestellt. Das
folgende Beispiel zeigt, wie man herausfindet, welche
Bluetooth-Geräte sich in Reichweite befinden. Eine solche
Abfrage dauert nur wenige Sekunden. Beachten Sie, dass ein
Gerät nur dann antwortet, wenn es sich im Modus
discoverable befindet.&prompt.user; hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:80:37:29:19:a4
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 52:02:04
Clock offset: 0x78ef
Inquiry complete. Status: No error [00]BD_ADDR stellt, ähnlich der
MAC-Adresse einer Netzkarte, die eindeutige Adresse eines
Bluetooth-Gerätes dar. Diese Adresse ist für die
Kommunikation mit dem Gerät nötig. Es ist aber auch
möglich, BD_ADDR einen Klartextnamen zuzuweisen. Die
Datei /etc/bluetooth/hosts enthält
Informationen über die bekannten Bluetooth-Rechner. Das
folgende Beispiel zeigt, wie man den Klartextnamen eines
entfernten Geräts in Erfahrung bringen kann:&prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
BD_ADDR: 00:80:37:29:19:a4
Name: Pav's T39Wenn Sie ein entferntes Bluetooth-Gerät abfragen, wird
dieses Ihren Rechner unter dem Namen
your.host.name (ubt0) finden. Dieser Name kann
aber jederzeit geändert werden.Bluetooth ermöglicht Punkt-zu-Punkt-Verbindungen (an
denen nur zwei Bluetooth-Geräte beteiligt sind), aber auch
Punkt-zu-Multipunkt-Verbindungen, bei denen eine Verbindung von
mehreren Bluetooth-Geräten gemeinsam genutzt wird. Das
folgende Beispiel zeigt, wie man die aktiven
Basisbandverbindungen des lokalen Gerätes anzeigen kann:&prompt.user; hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPENEin connection handle ist für die
Beendigung einer Basisbandverbindung nützlich. Im
Normalfall werden inaktive Verbindungen aber automatisch vom
Bluetooth-Stack getrennt.&prompt.root; hccontrol -n ubt0hci disconnect 41
Connection handle: 41
Reason: Connection terminated by local host [0x16]Rufen Sie hccontrol help auf, wenn Sie
eine komplette Liste aller verfügbaren HCI-Befehle
benötigen. Die meisten dieser Befehle müssen nicht
als root ausgeführt werden.L2CAPDas Logical Link Control and Adaptation Protocol (L2CAP)Das Logical Link Control and Adaptation
Protocol (L2CAP) bietet
höherwertigen Protokollen verbindungsorientierte und
verbindungslose Datendienste an. Dazu gehören auch
Protokollmultiplexing, Segmentierung und Reassemblierung.
L2CAP erlaubt höherwertigen Protokollen und Programmen den
Versand und Empfang von L2CAP-Datenpaketen mit einer Länge
von bis zu 64 Kilobytes.L2CAP arbeitet kanalbasiert. Ein
Kanal ist eine logische Verbindung innerhalb einer
Basisbandverbindung. Jeder Kanal ist dabei an ein einziges
Protokoll gebunden. Mehrere Geräte können an das
gleiche Protokoll gebunden sein, es ist aber nicht möglich,
einen Kanal an mehrere Protokolle zu binden. Jedes über
einen Kanal ankommende L2CAP-Paket wird an das entsprechende
höherwertige Protokoll weitergeleitet. Mehrere Kanäle
können sich die gleiche Basisbandverbindung teilen.Eine einzelne Netgraph-Gerätedatei vom Typ
l2cap wird für ein einzelnes
Bluetooth-Gerät erzeugt. Die L2CAP-Gerätedatei ist
normalerweise mit der Bluetooth-HCI-Gerätedatei
(downstream) sowie der Bluetooth-Socket-Gerätedatei
(upstream) verbunden. Der Standardname für die
L2CAP-Gerätedatei, die in &man.ng.l2cap.4; beschrieben
wird, lautet devicel2cap.Ein nützlicher Befehl zum Anpingen von anderen
Geräten ist &man.l2ping.8;. Einige Bluetooth-Geräte
senden allerdings nicht alle erhaltenen Daten zurück. Die
Ausgabe 0 bytes ist also kein Fehler:&prompt.root; l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0Das Programm &man.l2control.8; liefert Informationen
über L2CAP-Dateien. Das folgende Beispiel zeigt, wie man
die Liste der logischen Verbindungen (Kanäle) sowie die
Liste der Basisbandverbindungen abfragen kann:&prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels:
Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections:
Remote BD_ADDR Handle Flags Pending State
00:07:e0:00:0b:ca 41 O 0 OPEN&man.btsockstat.1; ist ein weiteres Diagnoseprogramm. Es
funktioniert analog zu &man.netstat.1;, arbeitet aber mit
Bluetooth-Datenstrukturen. Das folgende Beispiel zeigt die
gleiche Liste der logischen Verbindungen wie &man.l2control.8;
im vorherigen Beispiel.&prompt.user; btsockstat
Active L2CAP sockets
PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
Active RFCOMM sessions
L2PCB PCB Flag MTU Out-Q DLCs State
c2afe900 c2b53380 1 127 0 Yes OPEN
Active RFCOMM sockets
PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPENDas RFCOMM-ProtokollRFCOMMDas RFCOMM-Protokoll emuliert serielle Verbindungen
über das L2CAP-Protokoll. Es basiert auf dem ETSI-Standard
TS 07.10. Bei RFCOMM handelt es sich um ein einfaches
Transportprotokoll, das um Funktionen zur Emulation der
9poligen Schaltkreise von mit RS-232 (EIATIA-232-E) kompatiblen
seriellen Ports ergänzt wurde. RFCOMM erlaubt bis zu 60
simultane Verbindungen (RFCOMM-Kanäe) zwischen zwei
Bluetooth-Geräten.Eine RFCOMM-Kommunikation besteht aus zwei Anwendungen (den
Kommunikationsendpunkten), die über das
Kommunikationssegment miteinander verbunden sind. RFCOMM
unterstützt Anwendungen, die auf serielle Ports angewiesen
sind. Das Kommunikationssegment entspricht der (direkten)
Bluetooth-Verbindung zwischen den beiden Geräten.RFCOMM kümmert sich um die direkte Verbindung von zwei
Geräten, oder um die Verbindung zwischen einem Gerät
und einem Modem (Netzwerkverbindung). RFCOMM unterstützt
auch andere Konfigurationen. Ein Beispiel dafür sind
Module, die drahtlose Bluetooth-Geräte mit einer
verkabelten Schnittstelle verbinden können.Unter &os; wurde das RFCOMM-Protokoll im Bluetooth Socket-Layer
implementiert.PairingErstmaliger Verbindungsaufbau zwischen zwei
Bluetooth-Geräten (Pairing)
In der Voreinstellung nutzt Bluetooth keine
Authentifizierung, daher kann sich jedes Bluetoothgerät mit
jedem anderen Gerät verbinden. Ein Bluetoothgerät
(beispielsweise ein Mobiltelefon) kann jedoch für einen
bestimmten Dienst (etwa eine Einwählverbindung) eine
Authentifizierung anfordern. Bluetooth verwendet zu diesem
Zweck PIN-Codes. Ein PIN-Code ist ein
maximal 16 Zeichen langer ASCII-String. Damit eine Verbindung
zustande kommt, muss auf beiden Geräten der gleiche
PIN-Code verwendet werden. Nachdem der Code eingegeben wurde,
erzeugen beide Geräte einen link key,
der auf den Geräten gespeichert wird. Beim nächsten
Verbindungsaufbau wird der zuvor erzeugte Link Key verwendet.
Diesen Vorgang bezeichnet man als
Pairing. Geht der Link Key auf
einem Gerät verloren, muss das Pairing wiederholt
werden.Der &man.hcsecd.8;-Daemon verarbeitet alle
Bluetooth-Authentifzierungsanforderungen und wird über die
Datei /etc/bluetooth/hcsecd.conf
konfiguriert. Der folgende Ausschnitt dieser Datei zeigt die
Konfiguration für ein Mobiltelefon, das den PIN-Code
1234 verwendet:device {
bdaddr 00:80:37:29:19:a4;
name "Pav's T39";
key nokey;
pin "1234";
}Von der Länge abgesehen, unterliegen PIN-Codes keinen
Einschränkungen. Einige Geräte, beispielsweise
Bluetooth-Headsets, haben einen festen PIN-Code eingebaut. Die
Option sorgt dafür, dass der
&man.hcsecd.8;-Daemon im Vordergrund läuft. Dadurch kann
der Ablauf einfach verfolgt werden. Stellen Sie das entfernte
Gerät auf receive pairing
und initiieren Sie die Bluetoothverbindung auf dem entfernten
Gerät. Sie erhalten die Meldung, dass Pairing akzeptiert
wurde und der PIN-Code benötigt wird. Geben Sie den
gleichen PIN-Code ein, den Sie in
hcsecd.conf festgelegt haben. Ihr Computer
und das entfernte Gerät sind nun miteinander verbunden.
Alternativ können Sie das Pairing auch auf dem entfernten
Gerät initiieren.Unter &os; 5.5, 6.1 und neuer können Sie
hcsecd durch das Einfügen der
folgenden Zeile in /etc/rc.conf
beim Systemstart automatisch aktivieren:hcsecd_enable="YES"Es folgt nun eine beispielhafte Ausgabe
des hcsecd-Daemons:hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4SDPDas Service Discovery Protocol (SDP)Das Service Discovery Protocol
(SDP) erlaubt es Clientanwendungen, von Serveranwendungen
angebotene Dienste sowie deren Eigenschaften abzufragen. Zu
diesen Eigenschaften gehören die Art oder die Klasse der
angebotenen Dienste sowie der Mechanismus oder das Protokoll,
die zur Nutzung des Dienstes notwendig sind.SDP ermöglicht Verbindungen zwischen einem SDP-Server
und einem SDP-Client. Der Server enthält eine Liste mit
den Eigenschaften der vom Server angebotenen Dienste. Jeder
Eintrag beschreibt jeweils einen einzigen Serverdienst. Ein
Client kann diese Informationen durch eine SDP-Anforderung
vom SDP-Server beziehen. Wenn der Client oder eine Anwendung
des Clients einen Dienst nutzen will, muss eine seperate
Verbindung mit dem Dienstanbieter aufgebaut werden. SDP bietet
einen Mechanismus zum Auffinden von Diensten und deren
Eigenschaften an, es bietet aber keine Mechanismen zur Verwendung
dieser Dienste.Normalerweise sucht ein SDP-Client nur nach Diensten, die
bestimmte geforderte Eigenschaften erfüllen. Es ist aber
auch möglich, anhand der Dienstbeschreibungen eine
allgemeine Suche nach den von einem Server angebotenen Diensten
durchzuführen. Diesen Vorgang bezeichnet man als
Browsing.Der Bluetooth-SDP-Server &man.sdpd.8; und der
Kommandozeilenclient &man.sdpcontrol.8; sind bereits in der
Standardinstallation von &os; enthalten. Das folgende Beispiel
zeigt, wie eine SDP-Abfrage durchgeführt wird:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1
Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)
Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0
... und so weiter. Beachten Sie, dass jeder Dienst eine
Liste seiner Eigenschaften (etwa den RFCOMM-Kanal)
zurückgibt. Je nach dem, welche Dienste Sie
benötigen, sollten Sie sich einige dieser Eigenschaften
notieren. Einige Bluetooth-Implementationen unterstützen
kein Service Browsing und geben
daher eine leere Liste zurück. Ist dies der Fall, ist es
dennoch möglich, nach einem bestimmten Dienst zu suchen.
Das folgende Beispiel demonstriert die Suche nach dem
OBEX Object Push (OPUSH) Dienst:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSHUnter &os; ist es die Aufgabe des &man.sdpd.8;-Servers,
Bluetooth-Clients verschiedene Dienste anzubieten. Unter
&os; 5.5, 6.1 und neuer können Sie dazu die folgende
Zeile in die Datei /etc/rc.conf
einfügen:sdpd_enable="YES"Nun kann der sdpd-Daemon durch
folgene Eingabe gestartet werden:&prompt.root; /etc/rc.d/sdpd startUnter &os; 6.0 und &os; 5.X-Versionen vor 5.5 ist
sdpd nicht in die &os;-Startskripten
integriert. Daher müssen Sie den Damon durch folgende
Eingabe manuell starten:&prompt.root; sdpdDer lokale Server, der den entfernten Clients
Bluetooth-Dienste anbieten soll, bindet diese Dienste an den
lokalen SDP-Daemon. Ein Beispiel für eine solche
Anwendung ist &man.rfcomm.pppd.8;. Einmal gestartet, wird der
Bluetooth-LAN-Dienst an den lokalen SDP-Daemon gebunden.Die Liste der vorhandenen Dienste, die am lokalen SDP-Server
registriert sind, lässt sich durch eine SDP-Abfrage
über einen lokalen Kontrollkanal abfragen:&prompt.root; sdpcontrol -l browseEinwahlverbindungen (Dial-Up Networking (DUN)) oder
Netzwerkverbindungen mit PPP (LAN)-Profilen einrichtenDas
Dial-Up Networking (DUN)-Profil
wird vor allem für Modems und Mobiltelefone verwendet.
Dieses Profil ermöglicht folgende Szenarien:Die Verwendung eines Mobiltelefons oder eines
Modems durch einen Computer als drahtloses Modem, um sich
über einen Einwahlprovider mit dem Internet zu verbinden
oder andere Einwahldienste zu benutzen.Die Verwendung eines Mobiltelefons oder eines
Modems durch einen Computers, um auf Datenabfragen zu
reagieren.Der Zugriff auf ein Netzwerk über das PPP (LAN)-Profil
kann in folgenden Situationen verwendet werden:Den LAN-Zugriff für ein einzelnes
Bluetooth-GerätDen LAN-Zugriff für mehrere
Bluetooth-GeräteEine PC-zu-PC-Verbindung (unter Verwendung
einer PPP-Verbindung über eine emulierte serielle
Verbindung)Beide Profile werden unter &os; durch &man.ppp.8; sowie
&man.rfcomm.pppd.8; implementiert - einem Wrapper, der
RFCOMM Bluetooth-Verbindungen unter PPP nutzbar macht. Bevor
ein Profil verwendet werden kann, muss ein neuer PPP-Abschnitt
in /etc/ppp/ppp.conf erzeugt werden.
Beispielkonfigurationen zu diesem Thema finden Sie in
&man.rfcomm.pppd.8;.Im folgenden Beispiel verwenden wir &man.rfcomm.pppd.8;, um
eine RFCOMM-Verbindung zu einem entfernten Gerät mit der
BD_ADDR 00:80:37:29:19:a4 auf dem
RFCOMM-Kanal DUN aufzubauen. Die aktuelle
RFCOMM-Kanalnummer erhalten Sie vom entfernten Gerät
über SDP. Es ist auch möglich, manuell einen
RFCOMM-Kanal festzulegen. In diesem Fall führt
&man.rfcomm.pppd.8; keine SDP-Abfrage durch. Verwenden Sie
&man.sdpcontrol.8;, um die RFCOMM-Kanäle des entfernten
Geräts herauszufinden.&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialupDer &man.sdpd.8;-Server muss laufen, damit ein Netzzugriff
mit dem PPP (LAN)-Profil möglich ist. Außerdem muss
für den LAN-Client ein neuer Eintrag in
/etc/ppp/ppp.conf erzeugt werden.
Beispielkonfigurationen zu diesem Thema finden Sie in
&man.rfcomm.pppd.8;. Danach starten Sie den RFCOMM PPP-Server
über eine gültige RFCOMM-Kanalnummer. Der
RFCOMM PPP-Server bindet dadurch den Bluetooth-LAN-Dienst an den
lokalen SDP-Daemon. Das folgende Beispiel zeigt Ihnen, wie man
den RFCOMM PPP-Server startet.&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-serverOBEXDas Profil OBEX-Push (OPUSH)OBEX ist ein häufig verwendetes Protokoll für den
Dateitransfer zwischen Mobilgeräten. Sein Hauptzweck ist
die Kommunikation über die Infrarotschnittstelle. Es dient
daher zum Datentransfer zwischen Notebooks oder PDAs sowie zum
Austausch von Visitenkarten oder Kalendereinträgen zwischen
Mobiltelefonen und anderen Geräten mit PIM-Funktionen.Server und Client von OBEX werden durch das Softwarepaket
obexapp bereitgestellt, das als Port
comms/obexapp verfügbar
ist.Mit dem OBEX-Client werden Objekte zum OBEX-Server geschickt
oder angefordert. Ein Objekt kann etwa eine Visitenkarte oder
ein Termin sein. Der OBEX-Client fordert über SDP die
Nummer des RFCOMM-Kanals vom entfernten Gerät an. Dies
kann auch durch die Verwendung des Servicenamens anstelle der
RFCOMM-Kanalnummer erfolgen. Folgende Dienste werden
unterstützt: IrMC, FTRN und OPUSH. Es ist möglich,
den RFCOMM-Kanal als Nummer anzugeben. Es folgt nun ein
Beispiel für eine OBEX-Sitzung, bei der ein
Informationsobjekt vom Mobiltelefon angefordert und ein neues
Objekt (hier eine Visitenkarte) an das Telefonbuch des
Mobiltelefons geschickt wird:&prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get telecom/devinfo.txt
Success, response: OK, Success (0x20)
obex> put new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)Um OBEX-Push-Dienste anbieten zu können, muss der
sdpd-Server gestartet sein. Ein
Wurzelverzeichnis, in dem alle ankommenden Objekt gespeichert
werden, muss zusätzlich angelegt werden. In der
Voreinstellung ist dies /var/spool/obex.
Starten Sie den OBEX-Server mit einer gültigen Kanalnummer.
Der OBEX-Server registriert nun den OBEX-Push-Dienst mit dem
lokalen SDP-Daemon. Um den OBEX-Server zu starten, geben Sie
Folgendes ein:&prompt.root; obexapp -s -C 10Das Profil Serial-Port (SPP)Durch dieses Profil können Bluetooth-Geräte RS232-
(oder damit kompatible) serielle Kabelverbindungen emulieren.
Anwendungen sind dadurch in der Lage, über eine virtuelle
serielle Verbindung Bluetooth als Ersatz für eine
Kabelverbindung zu nutzen.Das Profil Serial-Port wird durch &man.rfcomm.sppd.1;
verwirklicht. Pseudo-tty wird hier als virtuelle serielle
Verbindung verwendet. Das folgende Beispiel zeigt, wie man sich
mit einem entfernten Serial-Port-Dienst verbindet. Beachten
Sie, dass Sie den RFCOMM-Kanal nicht angeben müssen, da
&man.rfcomm.sppd.1; diesen über SDP vom entfernten
Gerät abfragen kann. Wenn Sie dies nicht wollen,
können Sie einen RFCOMM-Kanal auch manuell festlegen.&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
rfcomm_sppd[94692]: Starting on /dev/ttyp6...Sobald die Verbindung hergestellt ist, kann pseudo-tty als
serieller Port verwenden werden.&prompt.root; cu -l ttyp6ProblembehandlungEin entferntes Gerät kann keine Verbindung
aufbauenEinige ältere Bluetooth-Geräte unterstützen
keinen Rollentausch. Wenn &os; eine neue Verbindung
akzeptiert, wird versucht, die Rolle zu tauschen, um zum
Master zu werden. Geräte, die dies nicht
unterstützen, können keine Verbindung aufbauen.
Beachten Sie, dass der Rollentausch ausgeführt wird,
sobald eine neue Verbindung aufgebaut wird, daher ist es
nicht möglich, das entfernte Gerät zu fragen, ob es
den Rollentausch unterstützt. Dieses Verhalten von &os;
kann aber durch eine HCI-Option geändert werden:&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0Wo finde ich genaue Informationen darüber, was
schiefgelaufen ist?Verwenden Sie hcidump,
das Sie über den Port comms/hcidump installieren
können. hcidump hat
Ähnlichkeiten mit &man.tcpdump.1;. Es dient zur Anzeige
der Bluetooth-Pakete in einem Terminal oder zur Speicherung
der Pakete in einer Datei (Dump).StevePetersonGeschrieben von LAN-Kopplung mit einer BridgeEinführungSubnetzBridgeManchmal ist es nützlich, ein physikalisches Netzwerk
(wie ein Ethernetsegment) in zwei separate Netzwerke
aufzuteilen, ohne gleich IP-Subnetze zu erzeugen, die über
einen Router miteinander verbunden sind. Ein Gerät, das
zwei Netze auf diese Weise verbindet, wird als
Bridge bezeichnet. Jedes FreeBSD-System
mit zwei Netzkarten kann als Bridge fungieren.Die Bridge arbeitet, indem sie die MAC Layeradressen
(Ethernet Adressen) der Geräte in ihren Netzsegmenten
lernt. Der Verkehr wird nur dann zwischen zwei Netzsegmenten
weitergeleitet, wenn sich Sender und Empfänger in
verschiedenen Netzsegmenten befinden.In vielerlei Hinsicht entspricht eine Bridge daher einem
Ethernet-Switch mit sehr wenigen Ports.Situationen, in denen Bridging
angebracht istEine Bridge wird vor allem in folgenden zwei Situationen
verwendet:Hohes Datenaufkommen in einem SegmentIn der ersten Situation wird Ihr physisches Netz
mit Datenverkehr überschwemmt. Aus irgendwelchen
Gründen wollen Sie allerdings keine Subnetze verwenden,
die über einen Router miteinander verbunden sind.Stellen Sie sich einen Zeitungsverlag vor, in dem sich die
Redaktions- und Produktionsabteilungen in verschiedenen
Subnetzen befinden. Die Redaktionsrechner verwenden den
Server A für Dateioperationen, und die
Produktionsrechner verwenden den Server B.
Alle Benutzer sind über ein gemeinsames Ethernet-LAN
miteinander verbunden. Durch das hohe Datenaufkommen sinkt
die Geschwindigkeit des gesamten Netzwerks.Würde man die Redaktionsrechner und die
Produktionsrechner in separate Netzsegmente auslagern,
könnte man diese beiden Segmente über eine Bridge
verbinden. Nur der für Rechner im jeweils
anderen Segment bestimmte Verkehr wird
dann über die Brigde in das andere Netzsegment geleitet.
Dadurch verringert sich das Gesamtdatenaufkommen in beiden
Segmenten.Filtering/Traffic Shaping FirewallFirewallNATDie zweite häufig anzutreffende Situation tritt auf,
wenn Firewallfunktionen benötigt werden, ohne dass
Network Adress Translation
(NAT) verwendet wird.Ein Beispiel dafür wäre ein kleines Unternehmen,
das über DSL oder ISDN an seinen ISP angebunden ist. Es
verfügt über 13 weltweit erreichbare IP-Adressen,
sein Netzwerk besteht aus 10 Rechnern. In dieser Situation
ist die Verwendung von Subnetzen sowie einer routerbasierten
Firewall schwierig.RouterDSLISDNEine brigdebasierte Firewall kann konfiguriert und in den
ISDN/DSL-Downstreampfad ihres Routers eingebunden werden, ohne
sich um IP-Adressen kümmern zu müssen.Die LAN-Kopplung konfigurierenAuswahl der NetzkartenEine Bridge benötigt mindestens zwei Netzkarten.
Leider sind unter FreeBSD 4.X nicht alle verfügbaren
Netzkarten dafür geeignet. Lesen Sie &man.bridge.4;
für Informationen zu unterstützten Karten.Installieren und testen Sie beide Netzkarten, bevor Sie
fortfahren.Anpassen der KernelkonfigurationKerneloptionenBRIDGEUm die Kernelunterstützung für die LAN-Kopplung
zu aktivieren, fügen Sieoptions BRIDGEin Ihre Kernelkonfigurationsdatei ein, und erzeugen einen
neuen Kernel.FirewallunterstützungFirewallWenn Sie die Bridge als Firewall verwenden wollen,
müssen Sie zusätzlich die Option
IPFIREWALL einfügen. Die
Konfiguration einer Firewall wird in
des Handbuchs beschrieben.Wenn Sie Nicht-IP-Pakete (wie ARP-Pakete) durch Ihre
Bridge leiten wollen, müssen Sie eine zusätzliche
Option verwenden. Es handelt sich um
IPFIREWALL_DEFAULT_TO_ACCEPT.
Beachten Sie aber, dass Ihre Firewall durch diese Option per
Voreinstellung alle Pakete akzeptiert. Sie sollten sich also
über die Auswirkungen dieser Option im Klaren sein,
bevor Sie sie verwenden.Unterstützung für Traffic ShapingWenn Sie die Bridge als Traffic-Shaper verwenden wollen,
müssen Sie die Option DUMMYNET in
Ihre Kernelkonfigurationsdatei einfügen. Lesen Sie
&man.dummynet.4;, um weitere Informationen zu erhalten.Die LAN-Kopplung aktivierenFügen Sie die Zeilenet.link.ether.bridge.enable=1in /etc/sysctl.conf ein, um die Bridge
zur Laufzeit zu aktivieren, sowie die Zeilenet.link.ether.bridge.config=if1,if2um die LAN-Kopplung für die festgelegten Geräte
zu ermöglichen (ersetzen Sie dazu
if1 und
if2 durch die Namen Ihrer
Netzkarten). Wenn Sie die Datenpakete via &man.ipfw.8; filtern
wollen, sollten Sie zusätzlich folgende Zeile
einfügen:net.link.ether.bridge.ipfw=1Vor &os; 5.2-RELEASE verwenden Sie die
folgenden Zeilen:net.link.ether.bridge=1
net.link.ether.bridge_cfg=if1,if2
net.link.ether.bridge_ipfw=1Sonstige InformationenWenn Sie via &man.ssh.1; auf die Bridge zugreifen wollen,
können Sie einer der Netzkarten eine IP-Adresse zuzuweisen.
Es besteht Einigkeit darüber, dass es eine schlechte Idee
ist, beiden Karten eine IP-Adresse zuzuweisen.
Wenn Sie verschiedene Bridges in Ihrem Netzwerk haben, kann
es dennoch nicht mehr als einen Weg zwischen zwei
Arbeitsplätzen geben. Das heißt,
Spanning tree link Management
wird nicht unterstützt.Eine Bridge kann, besonders für Verkehr über
Segmente, die Laufzeiten von Paketen erhöhen.Jean-FrançoisDockèsAktualisiert von AlexDupreReorganisiert und erweitert von Start und Betrieb von FreeBSD über ein Netzwerkplattenloser Arbeitsplatzplattenloser BetriebFreeBSD kann über ein Netzwerk starten und arbeiten, ohne
eine lokale Festplatte zu verwenden, indem es Dateisysteme eines
NFS-Servers in den eigenen Verzeichnisbaum
einhängt. Dazu sind, von den Standardkonfigurationsdateien
abgesehen, keine Systemänderungen nötig. Ein solches
System kann leicht installiert werden, da alle notwendigen
Elemente bereits vorhanden sind:Es gibt mindestens zwei Möglichkeiten, den Kernel
über das Netzwerk zu laden:PXE: Das
Preboot eXecution Environment System von
&intel; ist eine Art intelligentes Boot-ROM, das in
einigen Netzkarten oder Hauptplatinen verwendet wird.
Weitere Informationen finden Sie in &man.pxeboot.8;.
Der Port
Etherboot
(net/etherboot)
erzeugt ROM-fähigen Code, um einen Kernel über
das Netzwerk zu laden. Dieser Code kann entweder auf ein
Boot-PROM einer Netzkarte gebrannt werden, was von vielen
Netzkarten unterstützt wird. Oder er kann von einer
lokalen Diskette, Festplatte oder von einem laufenden
&ms-dos;-System geladen werden.Das Beispielskript
/usr/share/examples/diskless/clone_root
erleichtert die Erzeugung und die Wartung des
root-Dateisystems auf dem Server. Das Skript muss
wahrscheinlich angepasst werden, dennoch werden Sie schnell zu
einem Ergebnis kommen.Die Startdateien, die einen plattenlosen Systemstart
erkennen und unterstützen, sind nach der Installation
in /etc vorhanden.Dateiauslagerungen können sowohl via
NFS als auch auf die lokale Platte
erfolgen.Es gibt verschiedene Wege, einen plattenlosen Rechner
einzurichten. Viele Elemente sind daran beteiligt, die fast
immer an den persönlichen Geschmack angepasst werden
können. Im folgenden Abschnitt wird die Installation
eines kompletten Systems beschrieben, wobei der
Schwerpunkt auf Einfachheit und Kompatibilität zu den
Standardstartskripten von FreeBSD liegt. Das beschriebene
System hat folgende Eigenschaften:Die plattenlosen Rechner haben ein gemeinsames
/- sowie ein gemeinsames
/usr-Dateisystem, die jeweils
schreibgeschützt sind.Das root-Dateisystem ist eine Kopie
eines Standardwurzelverzeichnisses von FreeBSD
(üblicherweise das des Servers), bei dem einige
Konfigurationsdateien durch für den plattenlosen
Betrieb geeignete Versionen ersetzt wurden.Für die Bereiche des root-Dateisystems, die
beschreibbar sein müssen, werden mit &man.mfs.8;
(&os; 4.X) oder &man.md.4; (&os; 5.X)
virtuelle Dateisysteme erzeugt. Dies bedeutet aber auch, dass
alle Veränderungen verloren gehen, wenn das System neu
gestartet wird.Der Kernel wird, in Abhängigkeit von der jeweiligen
Situation, entweder von Etherboot
oder von PXE transferiert und geladen.
Das hier beschriebene System ist nicht sicher. Es
sollte nur in einem gesicherten Bereich eines Netzwerks verwendet
werden und für andere Rechner nicht erreichbar sein.Alle Informationen in diesem Abschnitt wurden unter
&os; 4.9-RELEASE sowie 5.2.1-RELEASE getestet. Die
Beschreibungen beziehen sich aber vor allem auf die Version 4.X.
Falls nötig, wurden daher Hinweise auf eventuelle
Änderungen unter 5.X eingefügt.HintergrundinformationenDie Einrichtung von plattenlosen Rechnern ist einfach, aber
auch fehleranfällig. Der Grund dafür sind auftretende
Fehler, die sich oft nur schwer zuordnen lassen. Unter anderem
sind dafür folgende Umstände verantwortlich:Kompilierte Optionen haben zur Laufzeit unterschiedliche
Auswirkungen.Fehlermeldungen sind oft kryptisch oder fehlen
vollständig.Daher ist es nützlich, über die im Hintergrund
ablaufenden Mechanismen Bescheid zu wissen. Dadurch wird es
einfacher, eventuell auftretende Fehler zu beheben.Verschiedene Operationen müssen ausgeführt werden,
um ein System erfolgreich zu starten:Der Rechner benötigt einige Startparameter, wie
seine IP-Adresse, die Namen ausführbarer Dateien, den
Servernamen sowie den root-Pfad. Für die
Übermittlung dieser Informationen wird entweder das
DHCP- oder das BOOTP-Protokoll verwendet.
Bei DHCP handelt es sich um eine
abwärtskompatible Erweiterung von BOOTP, die die
gleichen Portnummern und das gleiche Paketformat verwendet.
Es ist möglich, das System so zu konfigurieren,
dass es nur BOOTP verwendet. Das Serverprogramm
&man.bootpd.8; ist bereits im &os;-Basissystem enthalten.
DHCP hat im Vergleich zu BOOTP
allerdings mehrere Vorteile (bessere Konfigurationsdateien,
die Möglichkeit zur Verwendung von
PXE, sowie viele andere, die nicht in
direktem Zusammenhang mit dem plattenlosen Betrieb stehen).
Dieser Abschnitt beschreibt die Konfiguration mittels
DHCP. Wenn möglich, werden aber
entsprechende Beispiele für &man.bootpd.8;
angeführt. Die Beispielkonfiguration nutzt das
Softwarepaket ISC DHCP.Der Rechner muss ein oder mehrere Programme in den
lokalen Speicher laden. Dazu wird entweder
TFTP oder NFS
verwendet. Die Auswahl zwischen TFTP und
NFS erfolgt über das Setzen von
verschiedenen Kompilieroptionen. Ein häufig gemachter
Fehler ist es, Dateinamen für das falsche Protokoll
anzugeben: TFTP transferiert
normalerweise alle Dateien aus einem einzigen Verzeichnis
des Servers, und erwartet einen Pfad relativ zu diesem
Verzeichnis. NFS verlangt hingegen
absolute Dateipfade.Die möglichen Bootstrap-Programme und der Kernel
müssen initialisiert und ausgeführt werden. Dabei
gibt es zwei Möglichkeiten:PXE lädt &man.pxeboot.8;.
Dabei handelt es sich um eine modifizierte Version des
&os;-Laders der Boot-Phase drei. Der &man.loader.8;
beschafft alle für den Systemstart notwendigen
Parameter, und hinterlegt diese in der Kernelumgebung,
bevor er die Kontrolle übergibt. Es ist hier
möglich, den GENERIC-Kernel
zu verwenden.Etherboot lädt den
Kernel hingegen direkt. Dafür müssen Sie
allerdings einen Kernel mit spezifischen Optionen
erzeugen.Auf 4.X-Systemen sind PXE und
Etherboot gleichwertig.
5.X-Kernel übergeben hingegen viele Aufgaben an den
&man.loader.8;, daher ist die Verwendung von
PXE auf 5.X-Systemen
empfehlenswert.Wenn Ihr BIOS und Ihre Netzkarten
PXE unterstützen, sollten Sie es
auch verwenden. Es ist allerdings nach wie vor
möglich, ein 5.X-System über
Etherboot zu starten.Zuletzt muss der Rechner auf seine Dateisysteme
zugreifen können. Dafür wird stets
NFS verwendet.Weitere Informationen finden Sie in &man.diskless.8;.InstallationsanweisungenKonfiguration unter Verwendung von
ISC DHCPDHCPplattenloser BetriebDer ISC DHCP-Server kann
Anfragen sowohl von BOOTP als auch von DHCP beantworten.
isc-dhcp 3.0 ist nicht Teil
des Basissystems. Sie müssen es daher zuerst
installieren. Verwenden Sie dazu den Port
net/isc-dhcp3-server
oder das entsprechende Paket.Nachdem ISC DHCP installiert
ist, muss das Programm konfiguriert werden (normalerweise in
/usr/local/etc/dhcpd.conf). Im
folgenden Beispiel verwendet Rechner margauxEtherboot, während Rechner
corbieres PXE verwendet:
default-lease-time 600;
max-lease-time 7200;
authoritative;
option domain-name "example.com";
option domain-name-servers 192.168.4.1;
option routers 192.168.4.1;
subnet 192.168.4.0 netmask 255.255.255.0 {
use-host-decl-names on;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.4.255;
host margaux {
hardware ethernet 01:23:45:67:89:ab;
fixed-address margaux.example.com;
next-server 192.168.4.4;
filename "/tftpboot/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
}
host corbieres {
hardware ethernet 00:02:b3:27:62:df;
fixed-address corbieres.example.com;
next-server 192.168.4.4;
filename "pxeboot";
option root-path "192.168.4.4:/data/misc/diskless";
}
}
Diese Option
weist dhcpd an, den Wert der
host-Deklaration als Rechnernamen des
plattenlosen Rechners zu senden. Alternativ kann man der
host-Deklaration Folgendes
hinzufügen: option host-name
margauxDie Anweisung
next-server bestimmt den
TFTP- oder
NFS-Server, von dem der Loader oder
der Kernel geladen werden (in der Voreinstellung ist das
der DHCP-Server selbst).Die Anweisung
filename bestimmt die Datei, die
Etherboot als nächstes
lädt. Das genaue Format hängt von der
gewählten Transfermethode ab.
Etherboot kann sowohl mit
NFS als auch mit
TFTP kompiliert werden. In der
Voreinstellung wird der &os;-Port mit
NFS-Unterstützung kompiliert.
PXE verwendet TFTP,
daher wird im Beispiel ein relativer Dateipfad verwendet.
Dies kann aber, je nach Konfiguration des
TFTP-Servers, auch anders sein.
Beachten Sie, dass PXE
pxeboot lädt, und nicht den
Kernel. Es ist auch möglich, das Verzeichnis
/boot einer
&os;-CD-ROM von pxeboot laden zu
lassen. &man.pxeboot.8; kann einen
GENERIC-Kernel laden, dadurch ist es
möglich, PXE von einer entfernten
CD-ROM zu starten.Die Option
root-path bestimmt den Pfad des
root-Dateisystems in normaler NFS-Schreibweise. Wird
PXE verwendet, ist es möglich,
die IP-Adresse des Rechners wegzulassen, solange nicht
die Kerneloption BOOTP aktiviert wird. Der
NFS-Server entspricht in diesem Fall
dem TFTP-Server.Konfiguration bei Verwendung von BOOTPBOOTPplattenloser BetriebEs folgt nun eine der Konfiguration von DHCP
entsprechende Konfiguration (für einen Client) für
bootpd. Zu finden ist die
Konfigurationsdatei unter /etc/bootptab.
Beachten Sie bitte, dass
Etherboot mit der Option
NO_DHCP_SUPPORT kompiliert werden muss,
damit BOOTP verwendet werden kann. PXE
hingegen benötigt
DHCP. Der einzige offensichtliche
Vorteil von bootpd ist, dass es
bereits im Basissystem vorhanden ist..def100:\
:hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
:sm=255.255.255.0:\
:ds=192.168.4.1:\
:gw=192.168.4.1:\
:hd="/tftpboot":\
:bf="/kernel.diskless":\
:rp="192.168.4.4:/data/misc/diskless":
margaux:ha=0123456789ab:tc=.def100Ein Startprogramm unter Verwendung von
Etherboot erstellenEtherbootDie
Internetseite von Etherboot enthält
ausführliche Informationen, die zwar vor allem
für Linux gedacht sind, aber dennoch nützliche
Informationen enthalten. Im Folgenden wird daher nur grob
beschrieben, wie Sie Etherboot auf
einem FreeBSD-System einsetzen können.Als Erstes müssen Sie
net/etherboot als Paket
oder als Port installieren.Sie können Etherboot so
konfigurieren, dass TFTP anstelle von
NFS verwendet wird, indem Sie die Datei
Config im Quellverzeichnis von
Etherboot bearbeiten.Für unsere Installation verwenden wir eine
Startdiskette. Für Informationen zu anderen Methoden
(PROM oder &ms-dos;-Programme) lesen Sie bitte die
Dokumentation zu Etherboot.Um eine Startdiskette zu erzeugen, legen Sie eine Diskette
in das Laufwerk des Rechners ein, auf dem Sie
Etherboot installiert haben. Danach
wechseln Sie in das Verzeichnis src des
Etherboot-Verzeichnisbaums und geben
Folgendes ein:&prompt.root; gmake bin32/devicetype.fd0devicetype hängt vom Typ
der Ethernetkarte ab, über die der plattenlose Rechner
verfügt. Lesen Sie dazu NIC im
gleichen Verzeichnis, um den richtigen Wert für
devicetype zu bestimmen.Das System mit PXE startenIn der Voreinstellung lädt der
&man.pxeboot.8;-Loader den Kernel über
NFS. Soll stattdessen
TFTP verwendet werden, muss beim
Kompilieren die Option
LOADER_TFTP_SUPPORT in der Datei
/etc/make.conf eingetragen sein. Sehen
Sie sich die Dateien
/etc/defaults/make.conf (oder
/usr/share/examples/etc/make.conf
für 5.X-Systeme) für weitere Anweisungen an.Es gibt zwei nicht dokumentierte Optionen für
make.conf, die nützlich sein
können, wenn Sie eine plattenlose serielle Konsole
einrichten wollen:
BOOT_PXELDR_PROBE_KEYBOARD, und
BOOT_PXELDR_ALWAYS_SERIAL (die zweite
Option existiert nur unter &os; 5.X).Um PXE beim Systemstart zu verwenden,
müssen Sie im BIOS des Rechner die
Option Über das Netzwerk starten
aktivieren. Alternativ können Sie während der
PC-Initialisierung auch eine Funktionstaste drücken.
Serverkonfiguration - TFTP und
NFSTFTPplattenloser BetriebNFSplattenloser BetriebWenn Sie PXE oder
Etherboot so konfiguriert haben,
dass diese TFTP verwenden, müssen
Sie auf dem Dateiserver tftpd
aktivieren:Erzeugen Sie ein Verzeichnis, in dem
tftpd seine Dateien ablegt,
beispielsweise /tftpboot.Fügen Sie folgende Zeile in
/etc/inetd.conf ein:tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpbootAnscheinend benötigen zumindest einige
PXE-Versionen die
TCP-Version von
TFTP. Sollte dies bei Ihnen der
Fall sein, fügen Sie eine zweite Zeile ein, in der
Sie dgram udp durch
stream tcp ersetzen.Weisen Sie inetd an, seine
Konfiguration erneut einzulesen:&prompt.root; kill -HUP `cat /var/run/inetd.pid`Sie können das Verzeichnis
/tftpboot an einem beliebigen Ort auf dem
Server ablegen. Stellen Sie aber sicher, dass Sie diesen Ort
sowohl in inetd.conf als auch in
dhcpd.conf eingetragen haben.Außerdem müssen Sie NFS aktivieren und die
entsprechenden Verzeichnisse exportieren.Fügen Sie folgende Zeile in
/etc/rc.conf ein:nfs_server_enable="YES"Exportieren Sie das Verzeichnis, in dem sich das
Wurzelverzeichnis für den plattenlosen Betrieb
befindet, indem Sie folgende Zeile in
/etc/exports einfügen (passen
Sie dabei den mountpoint
an und ersetzen Sie
margaux corbieres durch den
Namen Ihres plattenlosen Rechners):/data/misc -alldirs -ro margauxWeisen sie nun mountd an,
seine Konfigurationsdatei erneut einzulesen. Wenn Sie
NFS erst in der Datei
/etc/rc.conf aktivieren mussten,
sollten Sie stattdessen den Rechner neu starten. Dadurch
wird die Konfigurationsdatei ebenfalls neu eingelesen.
&prompt.root; kill -HUP `cat /var/run/mountd.pid`Einen plattenlosen Kernel erzeugenplattenloser BetriebKernelkonfigurationWenn Sie Etherboot verwenden,
müssen Sie in die Kernelkonfigurationsdatei Ihres
plattenlosen Clients zusätzlich folgende Optionen
einfügen:options BOOTP # Use BOOTP to obtain IP address/hostname
options BOOTP_NFSROOT # NFS mount root file system using BOOTP infoAußerdem können Sie die Optionen
BOOTP_NFSV3,
BOOT_COMPAT sowie
BOOTP_WIRED_TO verwenden (sehen Sie sich
dazu auch LINT unter 4.X oder
NOTES unter 5.X an).Die Namen dieser Optionen sind historisch bedingt.
Sie ermöglichen eine unterschiedliche Verwendung von
DHCP und BOOTP innerhalb des Kernels.
Es ist auch möglich, eine strikte Verwendung von BOOTP
oder DHCP zu erzwingen.Erzeugen Sie den neuen Kernel (lesen Sie dazu auch
) und kopieren Sie ihn an den
in dhcpd.conf festgelegten Ort.Wenn Sie PXE verwenden, ist die
Erzeugung eines Kernels zwar nicht unbedingt nötig, sie
wird allerdings dennoch empfohlen. Die Aktivierung dieser
Optionen bewirkt, dass die Anzahl der möglichen
DHCP-Anforderungen während des
Kernelstarts erhöht wird. Ein kleiner Nachteil sind
eventuell auftretende Inkonsistenzen zwischen den neuen
Werten und den von &man.pxeboot.8; erhaltenen Werten. Der
große Vorteil dieser Variante ist es, dass dabei der
Rechnername gesetzt wird, den Sie ansonsten durch eine
andere Methode, beispielsweise in einer clientspezifischen
rc.conf-Datei festlegen müssten.
Damit ein 5.X-Kernel von
Etherboot geladen werden kann,
müssen device hints im
Kernel einkompiliert sein. Dazu setzen Sie normalerweise
folgende Option in die Kernelkonfigurationsdatei (sehen Sie
sich dazu auch die kommentierte Datei
NOTES an):hints "GENERIC.hints"Das root-Dateisystem erzeugenRoot-Dateisystemplattenloser BetriebSie müssen für den plattenlosen Rechner ein
root-Dateisystem erzeugen, und zwar an dem in
dhcpd.conf als
root-path festgelegten Ort. Der
folgende Abschnitt beschreibt zwei Möglichkeiten, dies
zu tun.Das Skript clone_root
verwendenDie Verwendung dieses Skripts ist der schnellste Weg,
der allerdings nur unter &os; 4.X funktioniert. Das
Shellskript findet sich unter
/usr/share/examples/diskless/clone_root
und muss von Ihnen angepasst werden. Unbedingt nötig
ist der Ort, an dem das Dateisystem erzeugt werden soll.
Dazu setzen Sie die Variable DEST
entsprechend.Die Kommentare am Anfang des Skripts enthalten
weitere Informationen. Dort wird erklärt, wie das
Basisdateisystem erzeugt wird und wie einzelne Dateien durch
angepasste Versionen für den plattenlosen Betrieb,
für ein Subnetzwerk oder für einen speziellen
Rechner ersetzt werden. Ebenfalls enthalten sind Beispiele
für /etc/fstab und
/etc/rc.conf, die für den
plattenlosen Betrieb angepasst sind.Die README-Dateien unter
/usr/share/examples/diskless enthalten
sehr viele interessante Hintergrundinformationen. Gemeinsam
mit den Beispielen im Verzeichnis
diskless beschreiben sie allerdings
eine Konfigurationsmethode, die von
der in clone_root und den
Systemstartskripten unter
/etc abweicht. Dies
kann etwas verwirrend sein. Verwenden Sie diese Dateien
also nur zu Informationszwecken. Es sei denn, Sie wollen
die dort beschriebene Methode verwenden. In diesem Fall
müssen Sie allerdings die
rc-Skripte anpassen.Die Standardprozedur make world
verwendenDiese Methode funktioniert sowohl unter &os; 4.X
als auch unter 5.X und installiert ein komplettes
jungfräuliches System (und nicht nur ein
root-Dateisystem) nach DESTDIR. Dazu
müssen Sie lediglich das folgende Skript
ausführen:#!/bin/sh
export DESTDIR=/data/misc/diskless
mkdir -p ${DESTDIR}
cd /usr/src; make world && make kernel
cd /usr/src/etc; make distributionDanach müssen Sie noch die dadurch in
DESTDIR erzeugten Dateien
/etc/rc.conf sowie
/etc/fstab Ihren Wünschen
anpassen.Den Auslagerungsbereich konfigurierenFalls nötig, kann eine auf dem
NFS-Server liegende Datei als
Auslagerungsdatei eingerichtet werden. Dazu
müssen Sie auf 4.X und 5.X-Systemen
unterschiedlich vorgehen.Eine NFS-Auslagerungsdatei unter
&os; 4.X einrichtenGröße und Ort der Auslagerungsdatei werden
durch die &os;-spezifischen
BOOTP/DHCP-Optionen 128 und 129
festgelegt. Es folgen nun einige Beispielkonfigurationen
für ISC DHCP 3.0 sowie
bootpd:Fügen Sie folgende Zeilen in
dhcpd.conf ein:# Global section
option swap-path code 128 = string;
option swap-size code 129 = integer 32;
host margaux {
... # Standard lines, see above
option swap-path "192.168.4.4:/netswapvolume/netswap";
option swap-size 64000;
}swap-path legt den Pfad zum
Verzeichnis der Auslagerungsdatei fest. Jede Datei hat
den Namen
swap.client-ip.
Ältere
dhcpd-Versionen benutzen die
Syntax option option-128 "..., die
aber nicht mehr unterstützt wird./etc/bootptab würde
stattdessen folgende Syntax verwenden:T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00Die Größe der Auslagerungsdatei
wird in /etc/bootptab als
Hexadezimalzahl festgelegt.Erzeugen Sie die Auslagerungsdatei(en) auf dem
NFS-Dateiserver:&prompt.root; mkdir /netswapvolume/netswap
&prompt.root; cd /netswapvolume/netswap
&prompt.root; dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6
&prompt.root; chmod 0600 swap.192.168.4.6Bei 192.168.4.6 handelt
es sich um die IP-Adresse des plattenlosen Clients.
Fügen Sie auf dem
NFS-Dateiserver folgende Zeile in
/etc/exports ein:/netswapvolume -maproot=0:10 -alldirs margaux corbieresZuletzt weisen Sie mountd
erneut an, die exports-Datei neu
einzulesen.Eine NFS-Auslagerungsdatei unter
&os; 5.X einrichtenDer Kernel unterstützt beim Systemstart keine
NFS-Auslagerungsdatei. Diese muss daher
in den Startskripten aktiviert werden, indem ein
beschreibbares Dateisystem eingehängt wird, um dort
die Auslagerungsdatei zu erzeugen und zu aktivieren. Um
eine Auslagerungsdatei zu erzeugen, gehen Sie wie folgt
vor:&prompt.root; dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000Um die Auslagerungsdatei zu aktivieren, fügen Sie
folgende Zeile in rc.conf ein:swapfile=/path/to/swapfileVerschiedenesSchreibgeschütztes Dateisystem
/usrplattenloser Betrieb/usr schreibgeschütztWenn am plattenlosen Rechner X läuft, müssen
Sie die Konfigurationsdatei von
XDM anpassen, da Fehlermeldungen
in der Voreinstellung auf /usr
geschrieben werden.Der Server läuft nicht unter FreeBSDWenn das root-Dateisystem nicht auf einem
FreeBSD-Rechner liegt, muss das Dateisystem zuerst unter
FreeBSD erzeugt werden. Anschließend wird es
beispielsweise mit tar oder
cpio an den gewünschten Ort
kopiert.Dabei kann es Probleme mit den Gerätedateien
in /dev geben, die durch eine
unterschiedliche Darstellung der Major- und Minor-Number
von Geräten auf beiden Systemen hervorgerufen werden.
Eine Problemlösung besteht darin, das root-Verzeichnis
auf einem FreeBSD-Rechner einzuhängen und die
Gerätedateien dort mit MAKEDEV
zu erzeugen (seit FreeBSD 5.0 werden Gerätedateien
allerdings mit &man.devfs.5; erzeugt, ein Ausführen von
MAKEDEV ist unter diesen Versionen
daher sinnlos).ISDN – diensteintegrierendes digitales NetzwerkISDNEine gute Quelle für Informationen zu ISDN ist die
ISDN-Seite von Dan Kegel.Welche Informationen finden Sie in diesem Abschnitt?Wenn Sie in Europa leben, könnte der Abschnitt
über ISDN-Karten für Sie interessant sein.Wenn Sie ISDN hauptsächlich dazu verwenden wollen, um
sich über einen Anbieter ins Internet einzuwählen,
sollten Sie den Abschnitt über Terminaladapter lesen.
Dies ist die flexibelste Methode, die auch die wenigsten
Probleme verursacht.Wenn Sie zwei Netzwerke miteinander verbinden, oder sich
über eine ISDN-Standleitung mit dem Internet verbinden
wollen, finden Sie entsprechende Informationen im Abschnitt
über Router und Bridges.Bei der Wahl der gewünschten Lösung sind die
entstehenden Kosten ein entscheidender Faktor. Die folgenden
Beschreibungen reichen von der billigsten bis zur teuersten
Variante.HellmuthMichaelisBeigetragen von ISDN-KartenISDNKartenDas ISDN-Subsystem von FreeBSD unterstützt den
DSS1/Q.931- (oder Euro-ISDN)-Standard nur für passive
Karten. Seit FreeBSD 4.4 werden auch einige
aktive Karten unterstützt, bei denen die Firmware auch
andere Signalprotokolle unterstützt; dies schließt
auch die erste ISDN-Karte mit
Primärmultiplex-Unterstützung mit ein.isdn4bsd ermöglicht es
Ihnen, sich unter Nutzung von
IP over raw HDLC oder
synchronem PPP mit anderen ISDN-Routern zu
verbinden. Dazu verwenden Sie entweder Kernel-&man.ppp.8;
(via isppp, einem modifizierten
sppp-Treiber), oder Sie benutzen User-&man.ppp.8;. Wenn Sie
User-&man.ppp.8; verwenden, können Sie zwei oder mehrere
ISDN-B-Kanäle bündeln. Im Paket enthalten ist auch
ein Programm mit Anrufbeantworterfunktion sowie verschiedene
Werkzeuge, wie ein Softwaremodem, das 300 Baud
unterstützt.FreeBSD unterstützt eine ständig wachsende Anzahl
von PC-ISDN-Karten, die weltweit erfolgreich eingesetzt werden.
Von FreeBSD unterstützte passive ISDN-Karten enthalten
fast immer den ISAC/HSCX/IPAC ISDN-Chipsatz von Infineon
(ehemals Siemens). Unterstützt werden aber auch Karten mit
Cologne Chip (diese allerdings nur für den ISA-Bus),
PCI-Karten mit Winbond W6692 Chipsatz, einige Karten mit dem
Tiger 300/320/ISAC Chipsatz sowie einige Karten mit einem
herstellerspezifischen Chipsatz, wie beispielsweise die
Fritz!Card PCI V.1.0 und die Fritz!Card PnP von AVM.An aktiven ISDN-Karten werden derzeit die AVM B1 BRI-Karten
(ISA und PCI-Version) sowie die AVM T1 PRI-Karten (PCI-Version)
unterstützt.Informationen zu isdn4bsd finden
Sie im Verzeichnis
/usr/share/examples/isdn/ Ihres
FreeBSD-Systems, oder auf der
Internetseite
von isdn4bsd. Dort finden Sie auch
Verweise zu Tipps, Korrekturen, sowie weiteren Informationen,
wie dem
isdn4bsd-Handbuch.
Falls Sie an der Unterstützung eines zusätzlichen
ISDN-Protokolls, einer weiteren ISDN-Karte oder an einer anderen
Erweiterung von isdn4bsd interessiert
sind, wenden Sie sich bitte an &a.hm;.Für Fragen zur Installation, Konfiguration und zu
sonstigen Problemen von isdn4bsd gibt
es die Mailingliste &a.isdn.name;.ISDN-TerminaladapterTerminaladapterTerminaladapter (TA) sind für ISDN, was Modems für
analoge Telefonleitungen sind.ModemDie meisten Terminaladapter verwenden den
Standardbefehlssatz für Modems von Hayes (AT-Kommandos) und
können daher als Modemersatz verwendet werden.Ein Terminaladapter funktioniert prinzipiell wie ein Modem,
allerdings erfolgt der Verbindungsaufbau um einiges schneller.
Die Konfiguration von PPP entspricht
dabei exakt der eines Modems. Stellen Sie dabei allerdings
die serielle Geschwindigkeit so hoch wie möglich ein.
PPPDer Hauptvorteil bei der Verwendung eines Terminaladapters
zur Verbindung mit einem Internetanbieter ist die
Möglichkeit zur Nutzung von dynamischem PPP. Da
IP-Adressen immer knapper werden, vergeben die meisten Provider
keine statischen IP-Adressen mehr. Die meisten Router
unterstützen allerdings keine dynamische Zuweisung von
IP-Adressen.Der PPP-Daemon bestimmt die Stabilität und
Eigenschaften der Verbindung, wenn Sie einen Terminaladapter
verwenden. Daher können Sie unter FreeBSD einfach von
einer Modemverbindung auf eine ISDN-Verbindung wechseln, wenn
Sie PPP bereits konfiguriert haben. Allerdings bedeutet
dies auch, das bereits bestehende Probleme mit PPP auch unter
ISDN auftreten werden.Wenn Sie an maximaler Stabilität interessiert sind,
verwenden Sie Kernel-PPP, und
nicht das User-PPP.Folgende Terminaladapter werden von FreeBSD
unterstützt:Motorola BitSurfer und Bitsurfer ProAdtranDie meisten anderen Terminaladapter werden wahrscheinlich
ebenfalls funktionieren, da die Hersteller von Terminaladaptern
darauf achten, dass ihre Produkte den Standardbefehlssatz
möglichst gut unterstützen.Das wirkliche Problem mit einem externen Terminaladapter ist,
dass, ähnlich wie bei Modems, eine gute serielle Karte
eine Grundvoraussetzung ist.Sie sollten sich die
Anleitung für die Nutzung serieller Geräte unter
FreeBSD ansehen, wenn Sie detaillierte Informationen
über serielle Geräte und die Unterschiede zwischen
asynchronen und synchronen seriellen Ports benötigen.
Ein Terminaladapter, der an einem (asynchronen)
seriellen Standardport angeschlossen ist, beschränkt
Sie auf 115,2 Kbs. Dies
selbst dann, wenn Sie eine Verbindung mit 128 Kbs haben.
Um die volle Leistungsfähigkeit von ISDN (128 Kbs)
nutzen zu können, müssen Sie den Terminaladapter
daher an eine synchrone serielle Karte anschließen.Kaufen Sie keinen internen Terminaladapter in der Hoffnung,
damit das synchron/asynchron-Problem vermeiden zu können.
Interne Terminaladapter haben einen (asynchronen) seriellen
Standardportchip eingebaut. Der einzige Vorteil interner
Terminaladapter ist es, dass Sie ein serielles sowie ein
Stromkabel weniger benötigen.Eine synchrone Karte mit einem Terminaladapter ist
mindestens so schnell wie ein autonomer ISDN-Router,
und, in Kombination mit einem einfachen 386-FreeBSD-System,
wahrscheinlich flexibler.Die Entscheidung zwischen synchroner Karte/Terminaladapter
und einem autonomen ISDN-Router ist beinahe eine religiöse
Angelegenheit. Zu diesem Thema gibt es viele Diskussionen
in den Mailinglisten. Suchen Sie in den
Archiven
danach, wenn Sie an der kompletten Diskussion interessiert
sind.ISDN-Bridges und RouterISDNAutonome Bridge/RouterISDN-Bridges und Router sind keine Eigenheit von
FreeBSD oder eines anderen Betriebssystems. Für eine
vollständigere Beschreibung von Routing und
Netzwerkkopplungen mit einer Bridge informieren Sie sich
bitte durch weiterführende Literatur.In diesem Abschnitt werden die Begriffe Router und
Bridge synonym verwendet.ISDN-Router und Bridges werden immer günstiger und
damit auch immer beliebter. Ein ISDN-Router ist eine kleine
Box, die direkt an Ihr lokales Ethernet-Netzwerk angeschlossen
wird und sich mit einem Router oder einer Bridge verbindet.
Die eingebaute Software ermöglicht die Kommunikation
über PPP oder andere beliebte Protokolle.Ein Router ermöglicht einen deutlich höheren
Datendurchsatz als ein herkömmlicher Terminaladapter,
da er eine vollsynchrone ISDN-Verbindung nutzt.Das Hauptproblem mit ISDN-Routern und Bridges ist,
dass die Zusammenarbeit zwischen Geräten verschiedener
Hersteller nach wie vor ein Problem ist. Wenn Sie sich auf
diese Weise mit einem Internetanbieter verbinden wollen,
klären Sie daher vorher ab, welche Anforderungen Ihre
Geräte erfüllen müssen.Eine ISDN-Bridge ist eine einfache und wartungsarme
Lösung, zwei Netze, beispielsweise Ihr privates Netz
und Ihr Firmennetz, miteinander zu verbinden. Da Sie die
technische Ausstattung für beide Seiten kaufen müssen,
ist sichergestellt, dass die Verbindung funktionieren
wird.Um beispielsweise einen privaten Computer oder eine
Zweigstelle mit dem Hauptnetzwerk zu verbinden, könnte
folgende Konfiguration verwendet werden:Kleines Netzwerk (Privatnetz)10 base 2Das Netzwerk basiert auf der Bustopologie mit 10base2
Ethernet (Thinnet). Falls nötig, stellen
Sie die Verbindung zwischen Router und Netzwerkkabel mit einem
AUI/10BT-Transceiver her.
---Sun Workstation
|
---FreeBSD Rechner
|
---Windows 95
|
Autonomer Router
|
ISDN BRI Verbindung
10Base2 - EthernetWenn Sie nur einen einzelnen Rechner verbinden wollen,
können Sie auch ein Twisted-Pair-Kabel (Cross-Over)
verwenden, das direkt an den Router angeschlossen wird.Großes Netzwerk (Firmennetz)10 base TDieses Netzwerk basiert auf der Sterntopologie und 10baseT
Ethernet (Twisted Pair).
-------Novell Server
| H |
| ---Sun
| |
| U ---FreeBSD
| |
| ---Windows 95
| B |
|___---Autonomer Router
|
ISDN BRI Verbindung
ISDN NetzwerkdiagrammEin großer Vorteil der meisten Router und Bridges
ist es, dass man gleichzeitig zwei
unabhängige PPP-Verbindungen
zu zwei verschiedenen Zielen aufbauen kann. Diese
Funktion bieten die meisten Terminaladapter nicht. Die
Ausnahme sind spezielle (meist teure) Modelle, die über
zwei getrennte serielle Ports verfügen. Verwechseln Sie
dies aber nicht mit Kanalbündelung oder MPP.Dies kann sehr nützlich sein, wenn Sie eine
ISDN-Standleitung in Ihrem Büro haben, die sie
aufteilen wollen, ohne eine zusätzliche ISDN-Leitung
zu installieren. Ein ISDN-Router kann über einen B-Kanal
(64 Kbps) eine dedizierte Verbindung ins Internet aufbauen,
und gleichzeitig den anderen B-Kanal für eine separate
Datenverbindung nutzen. Der zweite B-Kanal kann beispielsweise
für ein- oder ausgehende Verbindungen verwendet werden.
Sie können ihn aber auch dynamisch mit dem ersten B-Kanal
bündeln, um Ihre Bandbreite zu erhöhen.IPX/SPXEine Ethernet-Bridge kann Daten nicht nur im IP-Protokoll,
sondern auch in beliebigen anderen Protokollen versenden.ChernLeeBeigetragen von NAT - Network Address TranslationÜberblicknatd&man.natd.8;, der Network-Address-Translation-Daemon von
FreeBSD, akzeptiert ankommende Raw-IP-Pakete, ändert den
Sender der Daten in den eigenen Rechner und leitet diese Pakete
in den ausgehenden IP-Paketstrom um, indem IP-Adresse und Port
des Senders so geändert werden, dass bei einer Antwort der
ursprüngliche Sender wieder bestimmt und die Daten an
ihn weitergeleitet werden können.Internet connection sharingNATDer häufigste Grund für die Verwendung von NAT ist
die gemeinsame Nutzung einer Internetverbindung.EinrichtungWegen der begrenzten Verfügbarkeit von IPv4-Adressen
und der gestiegenen Anzahl von Breitbandverbindungen über
Kabelmodem oder DSL, wird die gemeinsame Nutzung von
Internetverbindungen immer wichtiger. Der &man.natd.8;-Daemon
ermöglicht die Anbindung von mehreren Rechnern an das
Internet unter Nutzung einer gemeinsamen Verbindung und einer
IP-Adresse.Häufig soll ein über Kabelmodem oder DSL und eine
IP-Adresse an das Internet angebundener Rechner mehreren
Rechnern eines lokalen Netzwerks Internetdienste anbieten.Um dies zu ermöglichen, muss der FreeBSD-Rechner als
Gateway fungieren. Dazu sind zwei Netzkarten notwendig. Eine
für die Verbindung zum Internet, die zweite für die
Verbindung mit dem lokalen Netzwerk. Sämtliche Rechner
des lokalen Netzwerks sind über einen Hub oder einen Switch
miteinander verbunden.Es gibt verschiedene Möglichkeiten, ein LAN über
ein &os;-Gateway an das Internet anzubinden. Das folgende
Beispiel beschreibt ein Gateway, das zumindest zwei
Netzwerkkarten enthält. _______ __________ ________
| | | | | |
| Hub |-----| Client B |-----| Router |----- Internet
|_______| |__________| |________|
|
____|_____
| |
| Client A |
|__________|Network LayoutEine derartige Netzwerkkonfiguration wird vor allem zur
gemeinsamen Nutzung einer Internetverbindung verwendet. Ein
Rechner des lokalen Netzwerks (LAN) ist mit
dem Internet verbunden. Alle anderen Rechner des lokalen
Netzwerks haben nur über diesen
Gateway-Rechner Zugriff auf das Internet.KernelKonfigurationKernelkonfigurationFolgende Optionen müssen in die
Kernelkonfigurationsdatei eingetragen werden:options IPFIREWALL
options IPDIVERTDie folgende Optionen können ebenfalls eingetragen
werden:options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSEIn /etc/rc.conf tragen Sie Folgendes
ein:gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags="" Richtet den Rechner als Gateway ein. Die
Ausführung von
sysctl net.inet.ip.forwarding=1
hätte den gleichen Effekt.Aktiviert die Firewallregeln in
/etc/rc.firewall beim
Systemstart.Ein vordefinierter Satz von Firewallregeln, der alle
Pakete durchlässt. Sehen Sie sich
/etc/rc.firewall an, wenn Sie diese
Option verwenden wollen.Die Netzkarte, die Pakete weiterleitet (und mit dem
Internet verbunden ist).Zusätzliche Konfigurationsoptionen, die beim
Systemstart an &man.natd.8; übergeben werden.Durch die Definition dieser Optionen in
/etc/rc.conf wird die Anweisung
natd -interface fxp0 beim Systemstart
ausgeführt. Dies kann aber auch manuell erfolgen.Falls Sie viele Optionen an &man.natd.8; übergeben
müssen, können Sie auch eine Konfigurationsdatei
verwenden. Dazu fügen Sie folgende Zeile in
/etc/rc.conf ein:natd_flags="-f /etc/natd.conf"Die Datei /etc/natd.conf enthält
verschiedene Konfigurationsoptionen, wobei jede Option in einer
Zeile steht. Das Beispiel im nächsten Abschnitt würde
folgende Konfigurationsdatei verwenden:redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80Wenn Sie eine Konfigurationsdatei verwenden wollen, sollten
Sie sich die Handbuchseite zu &man.natd.8; durchlesen,
insbesondere den Abschnitt über die Nutzung der Option
.Jedem Rechner und jeder Schnittstelle des lokalen Netzwerks
sollte eine IP-Adresse des im RFC 1918
definierten privaten Adressraums zugewiesen werden. Der
Standardgateway entspricht der internen IP-Adresse des
natd-Rechners.Im Beispiel werden den LAN-Clients A und
B die IP-Adressen
192.168.0.2 und
192.168.0.3 zugewiesen,
während die LAN-Netzkarte des
natd-Rechners die IP-Adresse
192.168.0.1 erhält. Der
natd-Rechner mit der IP-Adresse
192.168.0.1 wird als
Standardgateway für die Clients A und
B gesetzt. Die externe Netzkarte des
natd-Rechners muss für die
korrekte Funktion von &man.natd.8; nicht konfiguriert
werden.Ports umleitenWenn Sie &man.natd.8; verwenden, sind Ihre LAN-Clients von
aussen nicht erreichbar. LAN-Clients können zwar
Verbindungen nach aussen aufbauen, sind aber für
ankommende Verbindungen nicht erreichbar. Wenn Sie
Internetdienste auf einem LAN-Client anbieten wollen, haben Sie
daher ein Problem. Eine einfache Lösung ist die Umleitung
von bestimmten Internetports des
natd-Rechners auf einen LAN-Client.Beispielsweise könnte ein IRC-Server auf Client
A und ein Webserver auf Client
B laufen. Damit diese Konfiguration
funktioniert, müssen Verbindungen, die auf den Ports 6667
(IRC) und 80 (Web) ankommen, auf die entsprechenden Clients
umgeleitet werden.Dazu wird die Option unter
Nutzung folgender Syntax an &man.natd.8; übergeben: -redirect_port proto targetIP:targetPORT[-targetPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[remoteIP[:remotePORT[-remotePORT]]]Für unser Beispiel heißt das: -redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80Dadurch werden die entsprechenden
tcp-Ports auf die jeweiligen LAN-Clients
umgeleitet.Mit können auch ganze
Portbereiche statt einzelner Ports umgeleitet werden. So werden
mit tcp 192.168.0.2:2000-3000
2000-3000 alle Verbindungen, die auf den Ports
2000 bis 3000 ankommen, auf die entsprechenden Ports des Clients
A umgeleitet.Diese Optionen können während des Betriebs von
&man.natd.8; oder über die Option
natd_flags="" in
/etc/rc.conf gesetzt werden.Eine ausführliche Konfigurationsanleitung finden Sie
in &man.natd.8;.Adressen umleitenaddress redirectionDie Umleitung von Adressen ist nützlich, wenn mehrere
IP-Adressen verfügbar sind, die aber alle auf einem Rechner
verbleiben sollen. In diesem Fall kann &man.natd.8; jedem
LAN-Client eine eigene externe IP-Adresse zuweisen. Ausgehende
Pakete eines LAN-Clients werden so der entsprechenden
externen IP-Adresse des Clients zugeordnet. Ankommender Verkehr
für diese IP-Adresse wird automatisch an den entsprechenden
LAN-Client weitergeleitet. Diesen Vorgang bezeichnet man
auch als statisches NAT. Dem
natd-Gatewayrechner könnten
beispielsweise die IP-Adressen
128.1.1.1,
128.1.1.2 sowie
128.1.1.3 zugewiesen werden.
128.1.1.1 wird als die externe
IP-Adresse des natd-Gatewayrechners
verwendet, während 128.1.1.2
und 128.1.1.3 an die LAN-Clients
A und B weitergegeben werden.
benutzt folgende
Syntax:-redirect_address localIP publicIPlocalIPDie interne IP-Adresse des LAN-ClientspublicIPDie externe IP-Adresse des LAN-ClientsFür unser Beispiel hieße dies:-redirect_address 192.168.0.2 128.1.1.2
-redirect_address 192.168.0.3 128.1.1.3Analog zur Option
können Sie diese Argumente auch in der Option
natd_flags="" in
/etc/rc.conf angeben. Bei der Nutzung
der Adressumleitung ist die Portumleitung überflüssig,
weil alle für eine bestimmte IP-Adresse ankommenden Daten
umgeleitet werden.Die externe IP-Adresse des
natd-Rechners muss aktiv sein und
der externen Netzkarte zugewiesen sein. Weitere Informationen
zu diesem Thema finden Sie in &man.rc.conf.5;.PLIP – Parallel Line IPPLIPParallel Line IPPLIPPLIP ermöglicht TCP/IP-Verbindungen zwischen zwei
Rechnern, die über ihre parallelen Schnittstellen
verbunden sind. Eine solche Verbindung ist nützlich,
wenn zwei Rechner nicht mit Netzkarten ausgestattet sind,
oder wenn eine Installation auf einem Laptop erfolgen soll.
Dieser Abschnitt behandelt folgende Themen:Die Herstellung eines parallelen (Laplink-) KabelsDie Verbindung von zwei Computern über PLIPEin paralleles Kabel herstellenEin paralleles (Laplink-)Kabel können Sie in fast jedem
Computergeschäft kaufen. Falls dies nicht möglich
sein sollte, oder Sie einfach wissen wollen, wie ein solches
Kabel aufgebaut ist, sollten Sie sich die folgende Tabelle
ansehen. Sie beschreibt die Herstellung eines parallelen
Netzwerkkabels aus einem gewöhnlichen parallelen
Druckerkabel.
PLIP einrichtenAls Erstes benötigen Sie ein Laplink-Kabel. Danach
müssen Sie sicherstellen, dass beide Computerkernel den
&man.lpt.4;-Treiber unterstützen:&prompt.root; grep lp /var/run/dmesg.boot
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven portDer Parallelport muss Interrupt-gesteuert sein, daher
sollte Ihre Kernelkonfigurationsdatei unter &os; 4.X eine
Zeile ähnlich der folgenden enthalten:device ppc0 at isa? irq 7Unter &os; 5.X sollte die Datei
/boot/device.hints hingegen folgende Zeilen
enthalten:hint.ppc.0.at="isa"
hint.ppc.0.irq="7"Danach überprüfen Sie, ob die
Kernelkonfigurationsdatei die Zeile
device plip enthält, oder ob das
Kernelmodul plip.ko geladen wurde. In
beiden Fällen sollte die parallele Schnittstelle
- von &man.ifconfig.8; angezeigt werden. Unter &os; 4.X
- sieht die Ausgabe in etwa so aus:
-
- &prompt.root; ifconfig lp0
-lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
-
- Unter &os; 5.X erhalten Sie folgende Ausgabe:
+ von &man.ifconfig.8; angezeigt werden:
&prompt.root; ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
- Die Gerätenamen der parallelen Schnittstelle
- sind für &os; 4.X
- (lpX)
- und &os; 5.X
- (plipX)
- unterschiedlich.
-
Verbinden Sie die parallelen Schnittstellen der beiden
Computer über das (Laplink-)Kabel.Konfigurieren Sie die Netzwerkparameter auf beiden Rechnern
als root. Wenn Sie beispielsweise den Rechner
- host1, der unter &os; 4.X läuft, mit
- dem unter &os; 5.X laufenden Rechner host2
+ host1 mit dem Rechner host2
verbinden wollen, gehen Sie folgendermaßen vor: host1 <-----> host2
IP Address 10.0.0.1 10.0.0.2Richten Sie die parallele Schnittstelle von
host1 ein, indem Sie Folgendes eingeben:
- &prompt.root; ifconfig lp0 10.0.0.1 10.0.0.2
+ &prompt.root; ifconfig plip0 10.0.0.1 10.0.0.2Danach richten Sie die parallele Schnittstelle von
host2 ein:&prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1Sie sollten nun über eine funktionierende Verbindung
verfügen. Bei Problemen lesen Sie bitte die Hilfeseiten
&man.lp.4; sowie &man.lpt.4;.Zusätzlich sollten beide Rechner in
/etc/hosts eingetragen werden:127.0.0.1 localhost.my.domain localhost
10.0.0.1 host1.my.domain host1
10.0.0.2 host2.my.domainUm die Verbindung zu überprüfen, pingen Sie jeden
Rechner vom anderen Rechner aus an. Auf host1
gehen Sie dazu folgendermaßen vor:
- &prompt.root; ifconfig lp0
-lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
+ &prompt.root; ifconfig plip0
+plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
&prompt.root; netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
-host2 host1 UH 0 0 lp0
+host2 host1 UH 0 0 plip0
&prompt.root; ping -c 4 host2
PING host2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- host2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 msAaronKaplanBeigetragen von TomRhodesÜberarbeitet und erweitert von BradDavisErweitert von IPv6 – Internet Protocol Version 6Bei IPv6 (auch als IPng oder
IP next generation
bekannt) handelt es sich um die neueste Version des bekannten
IP-Protokolls (das auch als IPv4 bezeichnet
wird). FreeBSD enthält, genauso wie die anderen frei
erhältlichen BSD-Systeme, die IPv6-Referenzimplementation
von KAME. FreeBSD erfüllt damit bereits
alle für die Nutzung von IPv6 nötigen Voraussetzungen.
Dieser Abschnitt konzentriert sich daher auf die Konfiguration
und den Betrieb von IPv6.Anfang der 90er Jahre wurde man auf den stark steigenden
Verbrauch von IPv4-Adressen aufmerksam. Im Hinblick auf das
Wachstums des Internets gab es zwei Hauptsorgen:Die drohende Knappheit von IPv4-Adressen. Dieses Problem
konnte durch die Einführung von privaten
- Adressräumen (mit Adressen wie
- 10.0.0.0/8 oder
- 192.168.0.0/24) sowie der
+ Adressräumen gemäß RFC1918 (mit Adressen wie
+ 10.0.0.0/8,
+ 172.16.0.0/12, oder
+ 192.168.0.0/16) sowie der
Entwicklung von Network Address
Translation (NAT)
weitestgehend entschärft werden.Die immer größer werdenden Einträge in
Router-Tabellen. Dieses Problem ist auch heute noch
aktuell.IPv6 ist in der Lage, diese, aber auch viele andere Probleme
zu lösen:IPv6 hat einen 128 Bit großen Adressraum. Es sind
also theoretisch
340.282.366.920.938.463.463.374.607.431.768.211.456 Adressen
verfügbar. In anderen Worten: Für jeden
Quadratmeter der Erdoberfläche sind etwa
6,67 * 10^27 IPv6-Adressen verfügbar.Router speichern nur noch Netzwerk-Aggregationsadressen in
Ihren Routingtabellen. Dadurch reduziert sich die
durchschnittliche Größe einer Routingtabelle auf
8192 Einträge.Weitere nützliche Eigenschaften von IPv6 sind:Die automatische Konfiguration von Adressen, die im
RFC2462
beschrieben wird.Anycast-Adressen (eine-von-vielen)Verpflichtende Multicast-AdressenDie Unterstützung von IPsec (IP-Security)Eine vereinfachte HeaderstrukturMobile IP-AdressenDie Umwandlung von IPv4- in IPv6-AdressenWeitere Informationsquellen:Beschreibung von IPv6 auf
playground.sun.comKAME.net6bone.netHintergrundinformationen zu IPv6-AdressenEs gibt verschiedene Arten von IPv6-Adressen: Unicast-,
Anycast- und Multicast-Adressen.Unicast-Adressen sind die herkömlichen Adressen. Ein
Paket, das an eine Unicast-Adresse gesendet wird, kommt nur an
der Schnittstelle an, die dieser Adresse zugeordnet ist.Anycast-Adressen unterscheiden sich in ihrer Syntax nicht
von Unicast-Adressen, sie wählen allerdings aus
mehreren Schnittstellen eine Schnittstelle aus.
Ein für eine Anycast-Adresse
bestimmtes Paket kommt an der nächstgelegenen
(entsprechend der Router-Metrik) Schnittstelle
an. Anycast-Adressen werden nur von Routern verwendet.Multicast-Adressen bestimmen Gruppen, denen mehrere
Schnittstellen angehören. Ein
Paket, das an eine Multicast-Adresse geschickt wird, kommt an
allen Schnittstellen an, die zur Multicast-Gruppe gehören.Die von IPv4 bekannte Broadcast-Adresse
(normalerweise
xxx.xxx.xxx.255) wird bei IPv6
durch Multicast-Adressen verwirklicht.
Reservierte IPv6-AdressenIPv6-AdressePräfixlängeBeschreibungAnmerkungen::128 Bitnicht festgelegtentspricht 0.0.0.0
bei IPv4::1128 BitLoopback-Adresseentspricht 127.0.0.1
bei IPv4::00:xx:xx:xx:xx96 BitEingebettete IPv4-AdresseDie niedrigen 32 Bit entsprechen der IPv4-Adresse.
Wird auch als IPv4-kompatible IPv6-Adresse
bezeichnet.::ff:xx:xx:xx:xx96 BitEine auf IPv6 abgebildete IPv4-AdresseDie niedrigen 32 Bit entsprechen der IPv4-Adresse.
Notwendig für Rechner, die IPv6 nicht
unterstützen.fe80:: - feb::10 Bitlink-localEntspricht der Loopback-Adresse bei IPv4fec0:: - fef::10 Bitsite-localff::8 BitMulticast001
(im Dualsystem)3 BitGlobaler UnicastAlle globalen Unicastadressen stammen aus diesem
Pool. Die ersten 3 Bit lauten 001.
IPv6-Adressen verstehenDie kanonische Form von IPv6-Adressen lautet
x:x:x:x:x:x:x:x, jedes
x steht dabei für einen
16-Bit-Hexadezimalwert. Ein Beispiel für eine IPv6-Adresse
wäre etwa
FEBC:A574:382B:23C1:AA49:4592:4EFE:9982.Eine IPv6-Adresse enthält oft Teilzeichenfolgen aus lauter
Nullen. Eine solche Zeichenfolge kann zu ::
verkürzt werden. Bis zu drei führende Nullen eines
Hexquads können ebenfalls weggelassen werden.
fe80::1 entspricht also der Adresse
fe80:0000:0000:0000:0000:0000:0000:0001.
Eine weitere Möglichkeit ist die Darstellung der
letzten 32 Bit in der bekannten (dezimalen) IPv4-Darstellung,
bei der Punkte (.) zur Trennung verwendet werden.
2002::10.0.0.1 ist also nur eine
andere Schreibweise für die (hexadezimale) kanonische Form
2002:0000:0000:0000:0000:0000:0a00:0001,
die wiederum der Adresse
2002::a00:1 entspricht.Sie sollten nun in der Lage sein, die folgende Ausgabe zu
verstehen:&prompt.root; ifconfig
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
ether 00:00:21:03:08:e1
media: Ethernet autoselect (100baseTX )
status: activeBei
fe80::200:21ff:fe03:8e1%rl0
handelt es sich um eine automatisch konfigurierte
link-local-Adresse. Sie
wird im Rahmen der automatischen Konfiguration aus der
MAC-Adresse erzeugt.Weitere Informationen zum Aufbau von IPv6-Adressen finden
Sie im
RFC3513.Eine IPv6-Verbindung herstellenEs gibt derzeit vier Möglichkeiten, sich mit anderen
IPv6-Rechnern oder Netzwerken zu verbinden:Die Teilnahme am experimentellen 6bone.Die Teilnahme am IPv6-Netzwerk Ihres Providers.
Wenn Sie daran interessiert sind, wenden Sie sich an Ihren
Provider.Die Verwendung eines 6-nach-4-Tunnels
(RFC3068).Die Verwendung des Ports
/usr/ports/net/freenet6 bei der Einwahl
ins Internet.In diesem Abschnitt wird die Einrichtung einer Verbindung
zum 6bone beschrieben, da dies derzeit der beliebteste Weg ist.Suchen Sie sich zuerst auf der Internetseite des
6bone-Projekts
einen 6bone-Knoten in Ihrer Nähe. Schreiben Sie an
die verantwortliche Person und mit etwas Glück erhalten
Sie entsprechende Anweisungen, um Ihre Verbindung einzurichten.
Dazu gehört üblicherweise die Einrichtung
eines GRE-(gif)-Tunnels.Typischerweise wird ein &man.gif.4;-Tunnels wie folgt
eingerichtet:&prompt.root; ifconfig gif0 create
&prompt.root; ifconfig gif0
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
-&prompt.root; ifconfig gif0 tunnel MY_IPv4_ADDRHIS_IPv4_ADDR
-&prompt.root; ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR
+&prompt.root; ifconfig gif0 tunnel MY_IPv4_ADDR MY_IPv4_REMOTE_TUNNEL_ENDPOINT_ADDR
+&prompt.root; ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDRErsetzen Sie die in Großbuchstaben geschriebenen
Werte durch die Informationen, die Sie für Ihren
6bone-Knoten erhalten haben.Die gezeigten Befehle bauen den Tunnel auf.
Überprüfen Sie die korrekte Funktion, indem Sie
ff02::1%gif0 an&man.ping6.8;en.
Sie sollten zwei Antworten erhalten.Bei ff02:1%gif0
handelt es sich um eine Multicast-Adresse.
%gif0 legt fest, dass die Multicast-Adresse
der Schnittstelle gif0 verwendet
werden soll. Da wir
eine Multicast-Adresse ange&man.ping6.8;t haben, sollte der
andere Endpunkt des Tunnels ebenfalls antworten.Eine Route zu Ihrem 6bone-Knoten können Sie
einfach wie folgt einrichten:&prompt.root; route add -inet6 default -interface gif0
&prompt.root; ping6 -n MY_UPLINK&prompt.root; traceroute6 www.jp.FreeBSD.org
(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets
1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms
2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms *
3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms
4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms
5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms
6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 msDiese Ausgabe kann auf Ihrem Rechner unterschiedlich sein.
Sie sollten aber jetzt die IPv6-Seite
www.kame.net erreichen
und die tanzende Schildkröte sehen können –
vorausgesetzt, Sie haben einen IPv6-fähigen Browser wie
www/mozilla,
Konqueror (als Teil des Pakets
x11/kdebase3) oder
www/epiphany
installiert.DNS in der IPv6-WeltUrsprünglich gab es zwei verschiedene DNS-Einträge
für IPv6. Da A6-Einträge von der IETF für
obsolet erklärt wurden, sind AAAA-Einträge nun
Standard.Weisen Sie die erhaltene IPv6-Adresse Ihrem Rechnernamen zu,
indem Sie den EintragMYHOSTNAME AAAA MYIPv6ADDRin Ihre primäre DNS-Zonendatei einfügen. Falls
Sie nicht für Ihre DNS-Zone
verantwortlich sind, bitten Sie den dafür
Zuständigen, diese Änderung durchzuführen.
Die aktuellen Versionen von bind
(Version 8.3 oder 9) sowie
dns/djbdns (bei Verwendung
des IPv6-Patches) unterstützen AAAA-Einträge./etc/rc.conf für die Nutzung von
IPv6 anpassenEinen Client unter IPv6 einrichtenDieser Abschnitt beschreibt die Konfiguration eines
Rechners, der in Ihrem LAN als Client, aber nicht als Router
verwendet wird. Um die Schnittstelle während des
Systemstarts mit &man.rtsol.8; automatisch einzurichten,
fügen Sie folgende Zeile in
/etc/rc.conf ein:ipv6_enable="YES"Durch die folgende Zeile weisen Sie Ihrer Schnittstelle
fxp0 die statische IP-Adresse 2001:471:1f11:251:290:27ff:fee0:2093
zu:ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"Um 2001:471:1f11:251::1
als Standardrouter festzulegen, fügen Sie folgende Zeile
in /etc/rc.conf ein:ipv6_defaultrouter="2001:471:1f11:251::1"Gateways und Router unter IPv6 einrichtenDieser Abschnitt beschreibt, wie Sie Ihren Rechner mit
Hilfe der von Ihrem Tunnel-Anbieter, beispielsweise
6bone, erhaltenen
Anweisungen dauerhaft für die Nutzung von IPv6
einrichten. Um den Tunnel beim Systemstart
wiederherzustellen, passen Sie
/etc/rc.conf wie folgt an:Listen Sie die einzurichtenden Tunnelschnittstellen
(hier gif0) auf:gif_interfaces="gif0"Um den lokalen Endpunkt
MY_IPv4_ADDR über diese
Schnittstelle mit dem entfernten Endpunkt
REMOTE_IPv4_ADDR zu
verbinden, verwenden Sie folgende Zeile:gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"Um die Ihnen zugewiesene IPv6-Adresse als Endpunkt Ihres
IPv6-Tunnels zu verwenden, fügen Sie folgende Zeile
ein:ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"Nun müssen Sie nur noch die IPv6-Standardroute
angeben. Diese legt das andere Ende des IPv6-Tunnels
fest.ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"Einen IPv6-Tunnel einrichtenWenn Ihr Server IPv6-Verkehr zwischen Ihrem Netzwerk und
der Außenwelt routen muss, benötigen Sie
zusätzlich die folgenden Zeilen in Ihrer
/etc/rc.conf:ipv6_gateway_enable="YES"Bekanntmachung von Routen und automatische
RechnerkonfigurationDieser Abschnitt beschreibt die Einrichtung von
&man.rtadvd.8;, das Sie bei der Bekanntmachung der
IPv6-Standardroute unterstützt.Um &man.rtadvd.8; zu aktivieren, fügen Sie folgende
Zeile in /etc/rc.conf ein:rtadvd_enable="YES"Es ist wichtig, die Schnittstelle anzugeben, über die
IPv6-Routen bekanntgemacht werden sollen. Soll &man.rtadvd.8;
fxp0 verwenden, ist folgender Eintrag
nötig:rtadvd_interfaces="fxp0"Danach erzeugen Sie die Konfigurationsdatei
/etc/rtadvd.conf. Dazu ein Beispiel:fxp0:\
:addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:Ersetzen Sie dabei fxp0 durch die
zu verwendende Schnittstelle.Anschließend ersetzen Sie
2001:471:1f11:246:: durch das
Präfix der Ihnen zugewiesenen Verbindung.Wenn Sie eine /64-Netzmaske
verwenden, müssen Sie keine weiteren Anpassungen vornehmen.
Anderenfalls müssen Sie prefixlen#
auf den korrekten Wert setzen.HartiBrandtBeigetragen von ATM - Asynchronous Transfer ModeClassical IP over ATM
als PVC-Verbindung einrichtenClassical IP over ATM
(CLIP) ist die einfachste Möglichkeit,
um IP-Verkehr über ATM (Asynchronous
Transfer Mode-Verbindungen zu übertragen.
CLIP kann sowohl mit geschalteten Verbindungen (SVCs) als auch
mit permanenten Verbindungen (PVCs) verwendet werden. Dieser
Abschnitt beschreibt die Einrichtung eines PVC-basierten
Netzwerks.Ein vollständig vermaschtes Netzwerk aufbauenBei einem vollständig vermaschten
(fully meshed) Netzwerk ist
jeder Rechner über eine dezidierte Verbindung mit jedem
anderen Rechner des Netzwerks verbunden. Die Konfiguration
ist - vor allem für kleinere Netzwerke - relativ einfach.
Unser Beispielnetzwerk besteht aus vier Rechnern, die jeweils
über eine
ATM-Adapterkarte
mit dem
ATM-Netzwerk
verbunden sind. Als ersten Konfigurationsschritt planen wir
die Vergabe von IP-Adressen sowie die anzulegenden
ATM-Verbindungen:
RechnerIP-AdressehostA192.168.173.1hostB192.168.173.2hostC192.168.173.3hostD192.168.173.4Um ein vollständiges Netz aufzubauen, benötigen
wir für jedes Rechnerpaar eine eigene ATM-Verbindung:RechnerpaarVPI.VCI-PaarhostA - hostB0.100hostA - hostC0.101hostA - hostD0.102hostB - hostC0.103hostB - hostD0.104hostC - hostD0.105Die Werte VPI und VCI an den Verbindungsenden können
natürlich unterschiedlich sein. Wir nehmen hier aber an,
dass sie gleich sind. Nun müssen wir die
ATM-Schnittstellen auf jedem Rechner einrichten:hostA&prompt.root; ifconfig hatm0 192.168.173.1 up
hostB&prompt.root; ifconfig hatm0 192.168.173.2 up
hostC&prompt.root; ifconfig hatm0 192.168.173.3 up
hostD&prompt.root; ifconfig hatm0 192.168.173.4 upDabei setzen wir voraus, dass
hatm0 auf allen Rechnern die
ATM-Schnittstelle darstellt. Danach werden, beginnend mit
hostA, die PVCs auf den einzelnen Rechnern
eingerichtet (Wir nehmen an, dass die PVCs auf den
ATM-Switches bereits eingerichet sind. Lesen Sie die
entsprechenden Handbücher, wenn Sie einen Switch
einrichten müssen.):hostA&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubrStatt UBR können auch andere
traffic contracts verwendet
werden. Voraussetzung ist allerdings, dass diese von Ihrem
ATM-Adapter unterstützt werden. Ist dies der Fall,
folgen auf den Namen des
traffic contracts die
entsprechenden Konfigurationsparameter. Weitere Informationen
zur Konfiguration von ATM-Adapterkarten erhalten Sie über
den Befehl&prompt.root; atmconfig help natm addoder durch das Lesen von &man.atmconfig.8;.Die Konfiguration von ATM-Adaptern kann auch über die
Datei /etc/rc.conf erfolgen. Für
hostA sähe die Konfiguration so
aus:network_interfaces="lo0 hatm0"
ifconfig_hatm0="inet 192.168.173.1 up"
natm_static_routes="hostB hostC hostD"
route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"Mit dem folgenden Befehl lässt sich der derzeitige
Status aller CLIP-Routen anzeigen:hostA&prompt.root; atmconfig natm show
diff --git a/de_DE.ISO8859-1/books/handbook/audit/chapter.sgml b/de_DE.ISO8859-1/books/handbook/audit/chapter.sgml
index 13efe54d01..b187d1d32f 100644
--- a/de_DE.ISO8859-1/books/handbook/audit/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/audit/chapter.sgml
@@ -1,31 +1,31 @@
- Kernel Event Auditing (noch nicht übersetzt)
+ Security Event Auditing (noch nicht übersetzt)Dieses Kapitel ist noch nicht übersetzt.
Lesen Sie bitte
das Original in englischer Sprache. Wenn Sie helfen
wollen, dieses Kapitel zu übersetzen, senden Sie bitte
eine E-Mail an die Mailingliste &a.de.translators;.
diff --git a/de_DE.ISO8859-1/books/handbook/book.sgml b/de_DE.ISO8859-1/books/handbook/book.sgml
index 44a0da1850..7b6742fdcf 100644
--- a/de_DE.ISO8859-1/books/handbook/book.sgml
+++ b/de_DE.ISO8859-1/books/handbook/book.sgml
@@ -1,354 +1,357 @@
%books.ent;
%chapters;
%txtfiles;
+
%pgpkeys;
]>
Das &os;-HandbuchThe FreeBSD German Documentation Projectde-bsd-translators@de.FreeBSD.orgFebruar 199919951996199719981999200020012002200320042005
+ 2006The FreeBSD German Documentation Project
&bookinfo.legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.3ware;
&tm-attrib.arm;
&tm-attrib.adaptec;
&tm-attrib.adobe;
&tm-attrib.apple;
&tm-attrib.corel;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.heidelberger;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.intuit;
&tm-attrib.linux;
&tm-attrib.lsilogic;
&tm-attrib.m-systems;
&tm-attrib.macromedia;
&tm-attrib.microsoft;
&tm-attrib.netscape;
&tm-attrib.nexthop;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.powerquest;
&tm-attrib.realnetworks;
&tm-attrib.redhat;
&tm-attrib.sap;
&tm-attrib.sun;
&tm-attrib.symantec;
&tm-attrib.themathworks;
&tm-attrib.thomson;
&tm-attrib.usrobotics;
&tm-attrib.vmware;
&tm-attrib.waterloomaple;
&tm-attrib.wolframresearch;
&tm-attrib.xfree86;
&tm-attrib.xiph;
&tm-attrib.general;
Willkommen bei &os;! Dieses Handbuch beschreibt die
Installation und den täglichen Umgang mit
&os; &rel2.current;-RELEASE und
&os; &rel.current;-RELEASE.
Das Handbuch ist jederzeit unter Bearbeitung
und das Ergebnis der Arbeit vieler Einzelpersonen.
Manche Kapitel existieren noch
nicht und andere Kapitel müssen auf den neusten Stand
gebracht werden.
Wenn Sie an diesem Projekt mithelfen möchten, senden Sie bitte
eine E-Mail an die Mailingliste &a.de.translators;. Die
aktuelle Version des Handbuchs ist immer auf dem
&os;-Webserver
verfügbar und kann in verschiedenen Formaten und in
komprimierter Form vom &os;-FTP-Server
oder einem der vielen Spiegel
herunter geladen werden (ältere Versionen finden Sie hingegen
unter ).
Vielleicht möchten Sie das Handbuch aber auch
durchsuchen.
&chap.preface;
Erste SchritteDieser Teil des &os;-Handbuchs richtet sich an Benutzer
und Administratoren für die &os; neu ist. Diese
Kapitelgeben Ihnen eine Einführung in &os;,geleiten Sie durch den Installationsprozess,erklären Ihnen die Grundlagen
von &unix; Systemen,zeigen Ihnen, wie Sie die Fülle der erhältlichen
Anwendungen Dritter installieren undführen Sie in X, der Benutzeroberfläche
von &unix; Systemen ein. Es wird gezeigt, wie Sie den
Desktop konfigurieren, um effektiver arbeiten
zu können.Wir haben uns bemüht, Referenzen auf weiter vorne liegende
Textteile auf ein Minimum zu beschränken, so dass Sie
diesen Teil des Handbuchs ohne viel Blättern durcharbeiten
können.Oft benutzte FunktionenNach den Grundlagen beschäftigt sich das
&os;-Handbuch mit oft benutzten Funktionen von
&os;. Die Kapitel behandeln die nachstehenden
Themen:Zeigen Ihnen beliebte und nützliche
Werkzeuge wie Browser, Büroanwendungen und
Programme zum Anzeigen von Dokumenten.Zeigen Ihnen Multimedia-Werkzeuge für
&os;.Erklären den Bau eines angepassten &os;-Kernels,
der die Systemfunktionen erweitert.Beschreiben ausführlich das Drucksystem,
sowohl für direkt angeschlossene Drucker als
auch für Netzwerkdrucker.Erläutern, wie Sie Linux-Anwendungen auf einem
&os;-System laufen lassen.Damit Sie einige Kapitel verstehen, sollten Sie vorher
andere Kapitel gelesen haben. Die Übersicht zu jedem
Kapitel zählt die Voraussetzungen für das
erolgreiche Durcharbeiten des Kapitels auf.SystemadministrationDie restlichen Kapitel behandeln alle Aspekte der &os;
Systemadministration. Am Anfang jedes Kapitels finden Sie eine
Zusammenfassung, die beschreibt, was Sie nach dem Durcharbeiten des
Kapitels gelernt haben. Weiterhin werden die Voraussetzungen
beschrieben, die für das Durcharbeiten des Kapitels
erforderlich sind.Diese Kapitel sollten Sie lesen, wenn Sie die Informationen
darin benötigen. Sie brauchen Sie nicht in einer bestimmten
Reihenfolge zu lesen, noch müssen Sie die Kapitel lesen, bevor
Sie anfangen, &os; zu benutzen.
+
Netzwerke&os; ist eins der meist benutzten Betriebssysteme
für leistungsfähige Netzwerkserver. Die
Kapitel in diesem Teil behandeln die nachstehenden
Themen:Serielle DatenübertragungPPP und PPP over EthernetElectronic-MailDen Betrieb von NetzwerkdienstenFirewallsWeiterführende NetzwerkthemenDiese Kapitel sollten Sie lesen, wenn Sie die Informationen
darin benötigen. Sie brauchen Sie nicht in einer bestimmten
Reihenfolge zu lesen, noch müssen Sie die Kapitel lesen, bevor
Sie anfangen, &os; zu benutzen.Anhang
&chap.colophon;
diff --git a/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml b/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
index 2c27ff1bf8..9813a82f28 100644
--- a/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
@@ -1,917 +1,918 @@
Hans-ChristianEbkeÜbersetzt von FreeBSDs BootvorgangÜbersichtbootenBootstrapDas Starten des Computers und das Laden des Betriebssystems
wird im Allgemeinen als Bootstrap-Vorgang
bezeichnet, oder einfach als Booten. FreeBSDs
Bootvorgang ermöglicht große Flexibilität, was
das Anpassen dessen anbelangt, was passiert, wenn das System
gestartet wird. Es kann zwischen verschiedenen Betriebssystemen,
die auf demselben Computer installiert sind oder verschiedenen
Versionen desselben Betriebssystems oder installierten Kernels
gewählt werden.Dieses Kapitel zeigt die zur Verfügung stehenden
Konfigurationsmöglichkeiten und wie man den Bootvorgang anpasst.
Dies schließt alles ein, bis der Kernel gestartet worden ist,
der dann alle Geräte gefunden hat und &man.init.8; gestartet hat.
Falls Sie sich nicht ganz sicher sind, wann dies passiert:
Es passiert, wenn die Farbe des Textes während des Bootvorgangs
von weiß zu Hellgrau wechselt.Dieses Kapitel informiert über folgende Punkte:Die Komponenten des FreeBSD-Bootvorgangs und deren
Interaktion.Die Optionen, mit denen Sie den FreeBSD-Bootvorgang steuern
können.Wie Geräte mit &man.device.hints.5; konfiguriert
werden.nur x86Dieses Kapitel erklärt den Bootvorgang von FreeBSD auf
Intel X86 Plattformen.Das Problem des BootensWenn der Computer eingeschaltet wird und das Betriebssystem
gestartet werden soll, entsteht ein interessantes Dilemma, denn der
Computer weiß per Definition nicht, wie er irgendetwas tut, bis
das Betriebssystem gestartet wurde. Das schließt das Starten von
Programmen, die sich auf der Festplatte befinden, ein. Wenn nun
der Computer kein Programm von der Festplatte starten kann, sich
das Betriebssystem aber dummerweise genau dort befindet, wie
wird es dann gestartet?Dieses Problem ähnelt einer Geschichte des Barons von
Münchhausen. Dort war eine Person in einen Sumpf gefallen
und hat sich selbst an den Riemen seiner Stiefel (engl.
bootstrap) herausgezogen. In den
jungen Jahren des Computerzeitalters wurde mit dem Begriff
Bootstrap dann die Technik das Betriebssystem zu laden bezeichnet
und wurde hinterher mit booten abgekürzt.BIOSBasic Input/Output SystemBIOSAuf x86-Plattformen ist das BIOS (Basic Input/Output System)
dafür verantwortlich, das Betriebssystem zu laden. Dazu
liest das BIOS den Master Bootsektor (MBR; Master Boot Record)
aus, der sich an einer bestimmten Stelle auf der
Festplatte/Diskette befinden muss. Das BIOS kann den MBR
selbstständig laden und ausführen und geht davon aus,
dass dieser die restlichen Dinge, die für das Laden des
Betriebssystems notwendig sind, selbst oder mit Hilfe des BIOS
erledigen kann.Master Boot Record (MBR)Boot ManagerBoot LoaderDer Code innerhalb des MBRs wird für gewöhnlich als
Boot-Manager bezeichnet, insbesondere, wenn
eine Interaktion mit dem Anwender stattfindet. Ist dies der Fall,
verwaltet der Boot-Manager zusätzlichen Code im ersten
Track der Platte oder in Dateisystemen
anderer Betriebssysteme. (Boot-Manager werden manchmal auch als
Boot Loader bezeichnet, unter FreeBSD wird
dieser Begriff aber für eine spätere Phase des
Systemstarts verwendet.) Zu den bekanntesten Boot-Managern
gehören boot0 (der auch als
Boot Easy bekannte
Standard-Boot-Manager von &os;), Grub,
GAG, sowie
LILO.
(Von diesen Boot-Managern hat nur boot0
innerhalb des MBRs Platz.)Falls nur ein Betriebssystem installiert ist, ist der
Standard MBR ausreichend. Dieser MBR sucht nach dem ersten
bootbaren Slice (das dabei als active
gekennzeichnet ist) auf dem Laufwerk und führt den dort
vorhandenen Code aus, um das restliche Betriebssystem zu
laden. Der von &man.fdisk.8; in der Voreinstellung
installierte MBR ist ein solcher MBR und basiert auf
/boot/mbr.Falls mehrere Betriebssysteme installiert sind, sollte
man einen anderen Boot-Manager installieren, der eine Liste der
verfügbaren Betriebssysteme anzeigt und einen wählen
lässt, welches man booten möchte. Der nächste
Abschnitt beschreibt zwei Boot-Manager mit diesen
Fähigkeiten.Das restliche FreeBSD-Bootstrap-System ist in drei Phasen
unterteilt. Die erste Phase wird vom MBR durchgeführt, der
gerade genug Funktionalität besitzt um den Computer in
einen bestimmten Status zu verhelfen und die zweite Phase zu
starten. Die zweite Phase führt ein wenig mehr Operationen
durch und startet schließlich die dritte Phase, die das Laden
des Betriebssystems abschließt. Der ganze Prozess wird in drei
Phasen durchgeführt, weil der PC Standard die Größe
der Programme, die in Phase eins und zwei ausgeführt
werden, limitiert. Durch das Verketten der durchzuführenden
Aufgaben wird es FreeBSD möglich, ein sehr flexibles
Ladeprogramm zu besitzen.KernelinitAls nächstes wird der Kernel gestartet, der zunächst nach
Geräten sucht und sie für den Gebrauch
initialisiert. Nach dem Booten des Kernels übergibt dieser
die Kontrolle an den Benutzer Prozess &man.init.8;, der erst
sicherstellt, dass alle Laufwerke benutzbar sind und die
Ressourcen Konfiguration auf Benutzer Ebene startet. Diese
wiederum mountet Dateisysteme, macht die Netzwerkkarten für
die Kommunikation mit dem Netzwerk bereit und startet generell
alle Prozesse, die auf einem FreeBSD-System normalerweise beim
Hochfahren gestartet werden.Boot-Manager und Boot-PhasenBoot ManagerDer Boot-ManagerMaster Boot Record (MBR)Der Code im MBR oder im Boot-Manager wird manchmal auch
als stage zero des Boot-Prozesses
bezeichnet. Dieser Abschnitt beschreibt zwei der weiter
oben erwähnten Boot-Manager:
boot0 sowie
LILO.Der boot0 Boot-Manager:Der vom FreeBSD-Installationsprogramm oder &man.boot0cfg.8;
in der Voreinstelung installierte Master Boot Record (MBR)
basiert auf /boot/boot0.
(Bei boot0 handelt es sich um ein
sehr einfaches Programm, da im MBR lediglich
446 Bytes verfügbar sind, weil der restliche Platz
- für die Partitionstabelle sowie den 0x55AA-Identifier
+ für die Partitionstabelle sowie den
+ 0x55AA-Identifier
am Ende des MBRs benötigt wird.) Falls Sie
boot0 verwenden und mehrere
Betriebssysteme auf Ihrer Festplatte installiert haben, werden
Sie beim Starten des Computers eine Anzeige ähnlich der
folgenden sehen:boot0-ScreenshotF1 DOS
F2 FreeBSD
F3 Linux
F4 ??
F5 Drive 1
Default: F2Diverse Betriebssysteme, insbesondere &windows;,
überschreiben den MBR ungefragt mit ihrem
eigenen. Falls einem dies passiert sein sollte, kann man mit
folgendem Kommando den momentanen MBR durch den FreeBSD-MBR
ersetzen:&prompt.root; fdisk -B -b /boot/boot0 GerätBei Gerät handelt es sich
um das Gerät, von dem gebootet wird, also beispielsweise
ad0 für die erste IDE-Festplatte,
ad2 für die erste IDE-Festplatte
am zweiten IDE-Controller, da0
für die erste SCSI-Festplatte, usw. Diese Einstellungen
können aber über &man.boot0cfg.8; angepasst
werden.Der LILO-Boot-Manager:Damit dieser Boot-Manager auch FreeBSD booten kann, starten
Sie zuerst Linux und fügen danach folgende Zeilen in die
Konfigurationsdatei /etc/lilo.conf
ein:other=/dev/hdXY
table=/dev/hdX
loader=/boot/chain.b
label=FreeBSDDabei müssen Sie die primäre Partition von FreeBSD
sowie dessen Platte im Linux-Format angeben. Dazu ersetzen Sie
X durch die Linux-Bezeichnung der
Platte und Y durch die von Linux
verwendete Partitionsnummer. Wenn Sie ein
SCSI-Laufwerk verwenden, müssen Sie
/dev/sd anstelle von
/dev/hd verwenden. Die Zeile
kann weggelassen werden,
wenn beide Betriebssysteme auf der gleichen Platte installiert
sind. Geben Sie danach /sbin/lilo -v
ein, um Ihre Änderungen zu übernehmen. Achtung Sie
dabei besonders auf etwaige Fehlermeldungen.Phase Eins, /boot/boot1 und Phase Zwei,
/boot/boot2Im Prinzip sind die erste und die zweite Phase Teile
desselben Programms, im selben Bereich auf der
Festplatte. Aufgrund von Speicherplatz-Beschränkungen
wurden sie aufgeteilt, aber man installiert sie eigentlich
generell zusammen. Beide werden entweder vom Installer oder
von disklabel aus der kombinierten
Datei /boot/boot kopiert.Beide Phasen befinden sich außerhalb des Dateisystems
im Bootsektor des Boot-Slices, wo boot0 oder ein anderer Boot-Manager
ein Programm erwarten, das den weiteren Bootvorgang
durchführen kann. Die Anzahl der dabei verwendeten
Sektoren wird durch die Größe von
/boot/boot bestimmt.boot1 ist ein sehr einfaches
Programm, da es nur 512 Bytes groß sein darf, und es
besitzt gerade genug Funktionalität, um FreeBSDs
disklabel, das Informationen über
den Slice enthält, auszulesen, und um
boot2 zu finden und
auszuführen.boot2 ist schon ein wenig
umfangreicher und besitzt genügend Funktionalität, um
Dateien in FreeBSDs Dateisystem zu finden. Außerdem hat es
eine einfache Schnittstelle, die es ermöglicht, den zu
ladenden Kernel oder Loader auszuwählen.Da der Loader einen
weitaus größeren Funktionsumfang hat und eine schöne
und einfach zu bedienende Boot-Konfigurations-Schnittstelle zur
Verfügung stellt, wird er gewöhnlich von
boot2 anstatt des Kernels
gestartet. Früher war es jedoch dazu da den Kernel direkt
zu starten.boot2-Screenshot>> FreeBSD/i386 BOOT
-Default: 0:ad(0,a)/kernel
+Default: 0:ad(0,a)/boot/loader
boot:Um das installierte
boot1 und boot2 zu
ersetzen, benutzt man &man.disklabel.8;:&prompt.root; disklabel -B SliceWobei Slice das Laufwerk und die Slice
darstellt, von dem gebootet wird, beispielsweise
ad0s1 für die erste Slice
auf der ersten IDE-Festplatte.Dangerously Dedicated ModeWenn man nur den Festplatten-Namen, also
z.B. ad0, in &man.disklabel.8;
benutzt wird eine "dangerously dedicated disk" erstellt,
ohne Slices. Das ist ein Zustand, den man meistens nicht
hervorrufen möchte. Aus diesem Grund sollte man ein
&man.disklabel.8; Kommando noch einmal prüfen, bevor
man Return betätigt.Phase drei, /boot/loaderboot-loaderDer boot-loader ist der letzte von drei Schritten im
Bootstrap Prozess und kann im Dateisystem normalerweise unter
/boot/loader gefunden werden.Der Loader soll eine benutzerfreundliche
Konfigurations-Schnittstelle sein mit einem einfach zu
bedienenden eingebauten Befehlssatz, ergänzt durch einen
umfangreichen Interpreter mit einem komplexeren
Befehlssatz.Loader AblaufDer Loader sucht während seiner Initialisierung
nach Konsolen und Laufwerken, findet heraus, von welchem
Laufwerk er gerade bootet und setzt dementsprechend
bestimmte Variablen. Dann wird ein Interpreter gestartet,
der Befehle interaktiv oder von einem Skript empfangen
kann.loaderloader KonfigurationDanach liest der Loader die Datei
/boot/loader.rc aus, welche ihn
standardmäßig anweist
/boot/defaults/loader.conf zu lesen, wo
sinnvolle Standardeinstellungen für diverse Variablen
festgelegt werden und wiederum
/boot/loader.conf für lokale
Änderungen an diesen Variablen ausgelesen
wird. Anschließend arbeitet dann
loader.rc entsprechend dieser Variablen
und lädt die ausgewählten Module und den
gewünschten Kernel.In der Voreinstellung wartet der Loader
10 Sekunden lang auf eine Tastatureingabe und bootet den
Kernel, falls keine Taste betätigt wurde. Falls doch
eine Taste betätigt wurde wird dem Benutzer eine
Eingabeaufforderung angezeigt. Sie nimmt einen einfach zu
bedienenden Befehlssatz entgegen, der es dem Benutzer
erlaubt, Änderungen an Variablen vorzunehmen, Module zu
laden, alle Module zu entladen oder schließlich zu booten
bzw. neu zu booten.Die eingebauten Befehle des LoadersHier werden nur die gebräuchlichsten Befehle
bearbeitet. Für eine erschöpfende Diskussion aller
verfügbaren Befehle konsultieren Sie bitte
&man.loader.8;.autoboot SekundenEs wird mit dem Booten des Kernels fortgefahren,
falls keine Taste in der gegebenen Zeitspanne
betätigt wurde. In der gegebenen Zeitspanne, Vorgabe
sind 10 Sekunden, wird ein Countdown angezeigt.boot
-optionsKernelnameBewirkt das sofortige Booten des Kernels mit den
gegebenen Optionen, falls welche angegeben wurden, und
mit den angegebenen Kernel, falls denn einer angegeben
wurde.boot-confBewirkt die automatische Konfiguration der Module,
abhängig von den entsprechenden Variablen. Dieser
Vorgang ist identisch zu dem Vorgang, den der Bootloader
ausführt und daher nur sinnvoll, wenn zuvor
unload benutzt wurde und Variablen
(gewöhnlich kernel) verändert
wurden.help
ThemaZeigt die Hilfe an, die zuvor aus der Datei
/boot/loader.help gelesen
wird. Falls index als Thema angegeben
wird, wird die Liste der zur Verfügung stehenden
Hilfe-Themen angezeigt.include Dateiname
…Verarbeitet die angegebene Datei. Das Einlesen und
Interpretieren geschieht Zeile für Zeile und wird im Falle eines
Fehlers umgehend unterbrochen.load TypDateinameLädt den Kernel, das Kernel-Modul, oder die Datei
des angegebenen Typs. Optionen, die auf den Dateinamen folgen, werden
der Datei übergeben.ls PfadListet die Dateien im angegebenen Pfad auf, oder das
root-Verzeichnis(/), falls kein Pfad angegeben
wurde. Die Option bewirkt, dass die
Dateigrössen ebenfalls angezeigt werden.lsdev Listet alle Geräte auf, für die Module geladen
werden können. Die Option bewirkt
eine detailreichere Ausgabe.lsmod Listet alle geladenen Module auf. Die Option
bewirkt eine detailreichere
Ausgabe.more DateinameZeigt den Dateinhalt der angegebenen Datei an, wobei
eine Pause alle LINES Zeilen gemacht
wird.rebootBewirkt einen umgehenden Neustart des Systems.set Variableset
Variable=WertSetzt die Umgebungsvariablen des Loaders.unloadEntlädt sämtliche geladenen Module.Beispiele für die Loader BedienungHier ein paar praktische Beispiele für die Bedienung
des Loaders.Single-User ModusUm den gewöhnlichen Kernel im Single-User Modus zu
starten:boot -sUm alle gewöhnlichen Kernelmodule zu entladen und dann
nur den alten (oder jeden beliebigen anderen) Kernel zu
laden:kernel.oldunloadload kernel.oldEs kann kernel.GENERIC verwendet
werden, um den allgemeinen, Kernel zu bezeichnen, der
vorinstalliert wird. kernel.old
bezeichnet den Kernel, der vor dem aktuellen installiert
war (falls man einen neuen Kernel compiliert und
installiert hat, zum Beispiel).Der folgende Befehl lädt die gewöhnlichen Module mit
einem anderen Kernel:unloadset kernel="kernel.old"boot-confFolgendes lädt ein Kernelkonfigurations-Skript (ein
automatisiertes Skript, dass dasselbe tut, was der
Benutzer normalerweise von Hand an der Eingabeaufforderung
durchführen würde):load -t userconfig_script /boot/kernel.confKernel Interaktion während des BootprozessesKernelboot interactionWenn der Kernel einmal geladen ist, entweder durch den Loader (die Standardmethode) oder
durch boot2 (den Loader
umgehend), verhält sich gemäß seiner Boot-Flags, falls es
welche gibt.KernelbootflagsKernel Boot-FlagsEs folgt eine Auflistung der gebräuchlichsten
Boot-Flags:Bewirkt, dass der Benutzer während der
Kernel-Initialisierung gefragt wird, welches Gerät als
Root-Dateisystem gemounted werden soll.Es wird von CD-ROM gebootet.UserConfig, das Boot-Zeit Konfigurationsprogramm,
wird gestartet.Bewirkt den Start des Single-User Modus.Zeigt mehr Informationen während des Starten des
Kernels an.Andere Boot-Flags sind in der Hilfeseite
&man.boot.8; erläutert.TomRhodesBeigetragen von device.hintsKonfiguration von GerätenDiese Funktion steht erst ab FreeBSD 5.0 zur
Verfügung.Der Boot-Loader liest während des Systemstarts die Datei
&man.device.hints.5;, die Variablen, auch device hints
genannt, zur Konfiguration von Geräten enthält.Die Variablen können auch mit Kommandos in der Phase 3 des Boot-Loaders bearbeitet
werden. Neue Variablen werden mit set gesetzt,
unset löscht schon definierte Variablen und
show zeigt Variablen an. Variablen aus
/boot/device.hints können zu diesem Zeitpunkt
überschrieben werden. Die hier durchgeführten Änderungen
sind nicht permanent und beim nächsten Systemstart nicht mehr
gültig.Nach dem Systemstart können alle Variablen mit &man.kenv.1;
angezeigt werden.Pro Zeile enthält /boot/device.hints eine
Variable. Kommentare werden, wie üblich, durch
# eingeleitet. Die verwendete Syntax
lautet:hint.driver.unit.keyword="value"Der Boot-Loader verwendet die nachstehende Syntax:set hint.driver.unit.keyword=valueDer Gerätetreiber wird mit driver,
die Nummer des Geräts mit unit
angegeben. keyword ist eine Option aus
der folgenden Liste:: Gibt den Bus, auf dem sich das
Gerät befindet, an.: Die Startadresse des
I/O-Bereichs.: Gibt die zu verwendende
Unterbrechungsanforderung (IRQ) an.: Die Nummer des DMA Kanals.: Die physikalische Speicheradresse des
Geräts.: Setzt verschiedene
gerätespezifische Optionen.: Deaktiviert das Gerät, wenn
der Wert auf 1 gesetzt wird.Ein Gerätetreiber kann mehr Optionen, als die hier
beschriebenen, besitzen oder benötigen. Schlagen Sie die
Optionen bitte in der Online-Hilfe des Treibers nach. Weitere
Informationen erhalten Sie in &man.device.hints.5;, &man.kenv.1;,
&man.loader.conf.5; und &man.loader.8;.initInit: Initialisierung der Prozess-KontrolleNachdem der Kernel den Bootprozess abgeschlossen hat,
übergibt er die Kontrolle an den Benutzer-Prozess
&man.init.8;. Dieses Programm befindet sich in
/sbin/init, oder dem Pfad, der durch die
Variable init_path im Loader
spezifiziert wird.Der automatische Reboot-VorgangDer automatische Reboot-Vorgang stellt sicher, dass alle
Dateisysteme des Systems konsistent sind. Falls dies nicht der
Fall ist und die Inkonsistenz nicht durch
&man.fsck.8; behebbar ist, schaltet
&man.init.8; das System in den Single-User Modus, damit der
Systemadministrator sich des Problems annehmen kann.Der Single-User ModusSingle-User ModusKonsoleDas Schalten in diesen Modus kann erreicht werden durch den automatischen
Reboot-Vorgang, durch das Booten mit der Option
oder das Setzen der
boot_single Variable in
Loader.Weiterhin kann der Single-User Modus aus dem Mehrbenutzermodus heraus durch
den Befehl &man.shutdown.8; ohne die reboot
() oder halt () Option
erreicht werden.Falls die System-Konsole (console) in
/etc/ttys auf insecure
(dt.: unsicher) gesetzt ist, fordert das System allerdings zur
Eingabe des Passworts von root auf,
bevor es den Single-User Modus aktiviert.Auf insecure gesetzte Konsole in
/etc/ttys# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off insecureEine Konsole sollte auf insecure
gesetzt sein, wenn die physikalische Sicherheit der Konsole
nicht gegeben ist und sichergestellt werden soll, dass nur
Personen, die das Passwort von root kennen,
den Single-User Modus benutzen können. Es bedeutet nicht,
dass die Konsole "unsicher" laufen wird. Daher sollte man
insecure wählen, wenn man auf Sicherheit
bedacht ist, nicht secure.MehrbenutzermodusMehrbenutzermodusStellt &man.init.8; fest, dass das Dateisystem
in Ordnung ist, oder der Benutzer den Single-User Modus beendet,
schaltet das System in den Mehrbenutzermodus, in dem dann die
Ressourcen Konfiguration des Systems gestartet wird.rc-DateienRessourcen Konfiguration, rc-DateienDas Ressourcen Konfigurationssystem (engl.
resource configuration, rc)
liest seine Standardkonfiguration von
/etc/defaults/rc.conf und
System-spezifische Details von
/etc/rc.conf. Dann mountet es die
Dateisysteme gemäß /etc/fstab, startet
die Netzwerkdienste, diverse System Daemons und führt
schließlich die Start-Skripten der lokal installierten
Anwendungen aus.Die &man.rc.8; Handbuch Seite ist eine gute Quelle für
Informationen über das Ressourcen Konfigurationssystem und
ebenso über die Skripte an sich.Der Shutdown-VorgangshutdownIm Falle eines regulären Herunterfahrens durch
&man.shutdown.8; führt &man.init.8;
/etc/rc.shutdown aus, sendet dann
sämtlichen Prozessen ein TERM Signal und
schließlich ein KILL Signal an alle Prozesse,
die sich nicht schnell genug beendet haben.FreeBSD-Systeme, die Energieverwaltungsfunktionen
unterstützen, können Sie mit dem Kommando
shutdown -p now ausschalten. Zum Neustart des
Systems benutzen Sie shutdown -r now. Das
Kommando &man.shutdown.8; kann nur von root oder
Mitgliedern der Gruppe operator benutzt
werden. Sie können auch die Kommandos &man.halt.8; und
&man.reboot.8; verwenden. Weitere Informationen finden Sie in den
Hilfeseiten der drei Kommandos.Mit FreeBSD 5.0 müssen Sie die
&man.acpi.4;-Unterstützung im Kernel aktivieren oder das Modul
geladen haben, damit Sie die Energieverwaltungsfunktionen benutzen
können. Mit FreeBSD 4.0 benötigen Sie die
&man.apm.4;-Unterstützung.
diff --git a/de_DE.ISO8859-1/books/handbook/chapters.ent b/de_DE.ISO8859-1/books/handbook/chapters.ent
index 18c81e3b20..63efc10276 100644
--- a/de_DE.ISO8859-1/books/handbook/chapters.ent
+++ b/de_DE.ISO8859-1/books/handbook/chapters.ent
@@ -1,60 +1,61 @@
+
diff --git a/de_DE.ISO8859-1/books/handbook/config/chapter.sgml b/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
index f1d1c454b0..fc3b1b411e 100644
--- a/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
@@ -1,3450 +1,3443 @@
ChernLeeGeschrieben von MikeSmithNach einem Tutorium von MattDillonBasiert ebenfalls auf tuning(7) von MartinHeinenÜbersetzt von Konfiguration und TuningÜbersichtSystem-KonfigurationSystem-OptimierungEin korrekt konfiguriertes System kann die Arbeit,
die bei der zukünftigen Pflege und bei Migrationen des Systems
entsteht, erheblich reduzieren. Dieses Kapitel beschreibt die
Konfiguration von &os; sowie Maßnahmen zur Leistungssteigerung
von &os;-Systemen.Nachdem Sie dieses Kapitel durchgearbeitet haben,
werden Sie Folgendes wissen:Wie Sie effizient Dateisysteme und
Swap-Partitionen auf Ihrer Festplatte einrichten.Die Grundlagen der Konfiguration mit
rc.conf und des Systems zum Starten
von Anwendungen in /usr/local/etc/rc.d.Wie Sie Netzwerkkarten konfigurieren und testen.Wie Sie virtuelle Hosts und Netzwerkgeräte
konfigurieren.Wie Sie die verschiedenen Konfigurationsdateien
in /etc benutzen.Wie Sie mit sysctl-Variablen &os;
einstellen können.Wie Sie die Platten-Performance einstellen und Kernel-Parameter
modifizieren können.Bevor Sie dieses Kapitel lesen, sollten Siedie Grundlagen von &unix; und &os; ()
verstehen.Damit vertraut sein, wie Sie einen Kernel konfigurieren
und kompilieren ().Vorbereitende KonfigurationLayout von PartitionenLayout von Partitionen/etc/var/usrPartitionenWenn Sie Dateisysteme mit &man.disklabel.8; oder
&man.sysinstall.8; anlegen, sollten Sie beachten, dass
Festplatten auf Daten in den äußeren Spuren
schneller zugreifen können als auf Daten in den
inneren Spuren. Daher sollten die kleineren oft benutzten
Dateisysteme, wie das Root-Dateisystem oder die Swap-Partition,
an den äußeren Rand der Platte gelegt werden.
Die größeren Partitionen wie /usr
sollten in die inneren Bereiche gelegt werden.
Es empfiehlt sich, die Partitionen in einer ähnlichen
Reihenfolge wie Root-Partition, Swap, /var
und /usr anzulegen.Die Größe von /var
ist abhängig vom Zweck der Maschine.
/var enthält hauptsächlich
Postfächer, den Spoolbereich zum Drucken und Logdateien.
Abhängig von der Anzahl der Systembenutzer und der
Aufbewahrungszeit für Logdateien, können gerade
die Postfächer und Logdateien zu ungeahnten Größen
wachsen. Oft werden Sie mit weniger als einem Gigabyte
auskommen, doch beachten Sie, dass
/var/tmp für Pakete ausreichend
dimensioniert ist.Die /usr-Partition enthält den
Hauptteil des Systems, die Ports-Sammlung (empfohlen) und die
Quellen (optional). Im Laufe der Installation haben Sie die
Möglichkeit, die Quellen und die Ports-Sammlung gleich mit
zu installieren. Für die
/usr-Partition sollten Sie mindestens
zwei Gigabyte vorsehen.Wenn Sie die Größe der Partitionen festlegen,
beachten Sie bitte das Wachstum Ihres Systems. Wenn Sie den
Platz auf einer Partition vollständig aufgebraucht haben,
eine andere Partition aber kaum benutzen, kann die Handhabung des
Systems schwierig werden.Die automatische Partitionierung von &man.sysinstall.8;
mit Auto-defaults legt manchmal zu kleine
/ und /var-Partition an.
Partitionieren Sie weise und großzügig.Swap PartitionSwap-PartitionGrößeSwap-PartitionAls Daumenregel sollten Sie doppelt soviel Speicher
für die Swap-Partition vorsehen, als Sie Hauptspeicher
haben. Verfügt die Maschine beispielsweise über
128 Megabyte Hauptspeicher, sollten Sie 256 Megabyte
für den Swap-Bereich vorsehen. Systeme mit weniger Speicher
werden wahrscheinlich mit viel mehr Swap mehr leisten. Es
wird nicht empfohlen, weniger als 256 Megabyte Swap einzurichten.
Außerdem sollten Sie künftige Speichererweiterungen
beachten, wenn Sie die Swap-Partition einrichten. Die
VM-Paging-Algorithmen im Kernel sind so eingestellt, dass
Sie am besten laufen, wenn die Swap-Partition mindestens
doppelt so groß wie der Hauptspeicher ist. Zu wenig
Swap kann zu einer Leistungsverminderung im
VM page scanning
Code führen, sowie Probleme verursachen, wenn Sie später
mehr Speicher in Ihre Maschine bauen.Auf größeren Systemen mit mehreren SCSI-Laufwerken
(oder mehreren IDE-Laufwerken an unterschiedlichen Controllern)
empfehlen wir Ihnen, Swap-Bereiche auf bis zu
vier Laufwerken einzurichten. Diese Swap-Partitionen sollten
ungefähr dieselbe Größe haben. Der Kernel
kann zwar mit beliebigen Größen umgehen, aber
die internen Datenstrukturen skalieren bis zur vierfachen
Größe der größten Partition. Ungefähr
gleich große Swap-Partitionen erlauben es dem Kernel,
den Swap-Bereich optimal über die Laufwerke zu verteilen.
Große Swap-Bereiche, auch wenn sie nicht oft gebraucht
werden, sind nützlich, da sich ein speicherfressendes
Programm unter Umständen auch ohne einen Neustart des Systems
beenden lässt.Warum partitionieren?Gegen eine einzelne Partition sprechen mehrere Gründe.
Jede Partition hat im Betrieb unterschiedliche Eigenschaften
und die Trennung der Partitionen erlaubt es, die Dateisysteme
an diese Eigenschaften anzupassen. Die Root- und
/usr-Partitionen weisen meist nur
lesende Zugriffe auf, während /var
und /var/tmp hauptsächlich
beschrieben werden.Indem Sie ein System richtig partitionieren, verhindern
Sie, dass eine Fragmentierung in den häufig beschriebenen
Partitionen auf die meist nur gelesenen Partitionen
übergreift. Wenn Sie die häufig beschriebenen
Partitionen an den Rand der Platte, legen, dann wird die
I/O-Leistung diesen Partitionen steigen.
Die I/O-Leistung ist natürlich auch für große
Partitionen wichtig, doch erzielen Sie eine größere
Leistungssteigerung, wenn Sie /var an den
Rand der Platte legen. Schließlich sollten Sie
noch die Stabilität des Systems beachten.
Eine kleine Root-Partition, auf die meist nur lesend
zugegriffen wird, überlebt einen schlimmen Absturz
wahrscheinlich eher als eine große Partition.Basiskonfigurationrc-Dateienrc.confInformationen zur Systemkonfiguration sind hauptsächlich
in /etc/rc.conf, die meist beim Start
des Systems verwendet wird, abgelegt. Der Name der Datei zeigt
ihren Zweck an: Sie enthält die Konfigurationen für
die rc* Dateien.In rc.conf werden die Vorgabewerte aus
/etc/defaults/rc.conf überschrieben.
Die Vorgabedatei sollte nicht nach /etc
kopiert werden, da sie die Vorgabewerte und keine Beispiele
enthält. Jede systemspezifische Änderung wird
in rc.conf vorgenommen.Um den administrativen Aufwand gering zu halten, existieren
in geclusterten Anwendungen mehrere Strategien,
globale Konfigurationen von systemspezifischen Konfigurationen
zu trennen. Der empfohlene Weg hält die globale Konfiguration
in einer separaten Datei z.B. rc.conf.site.
Diese Datei wird dann in /etc/rc.conf,
die nur systemspezifische Informationen enthält, eingebunden.Da rc.conf von &man.sh.1; gelesen
wird, ist das einfach zu erreichen:rc.conf: . /etc/rc.conf.site
hostname="node15.example.com"
network_interfaces="fxp0 lo0"
ifconfig_fxp0="inet 10.1.1.1"rc.conf.site: defaultrouter="10.1.1.254"
saver="daemon"
blanktime="100"rc.conf.site kann dann auf jedes
System mit rsync verteilt werden,
rc.conf bleibt dabei systemspezifisch.Bei einem Upgrade des Systems mit &man.sysinstall.8; oder
make world wird rc.conf
nicht überschrieben, so dass die Systemkonfiguration
erhalten bleibt.Konfiguration von AnwendungenInstallierte Anwendungen haben typischerweise
eigene Konfigurationsdateien, die eine eigene Syntax
verwenden. Damit diese Dateien leicht von der
Paketverwaltung gefunden und verwaltet werden können,
ist es wichtig, sie vom Basissystem zu trennen./usr/local/etcFür gewöhnlich werden diese Dateien in
/usr/local/etc installiert. Besitzt
eine Anwendung viele Konfigurationsdateien, werden
diese in einem separaten Unterverzeichnis abgelegt.Wenn ein Port oder ein Paket installiert wird, werden
normalerweise auch Beispiele für die Konfigurationsdateien
installiert. Diese erkennt man gewöhnlich an dem
Suffix .default. Wenn keine Konfigurationsdateien
für eine Anwendung existieren, werden sie durch
Kopieren der .default Dateien erstellt.Als Beispiel sei /usr/local/etc/apache
gezeigt:-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf
-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default
-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf
-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default
-rw-r--r-- 1 root wheel 12205 May 20 1998 magic
-rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default
-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types
-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default
-rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf
-rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.defaultAnhand der Dateigröße erkennen Sie, dass sich
nur srm.conf geändert hat. Eine
spätere Aktualisierung des Apache-Ports
überschreibt diese Datei nicht.TomRhodesBeigetragen von Start von DienstenDiensteViele Benutzer installieren Software Dritter auf &os;
mithilfe der Ports-Sammlung. Häufig soll die
Software bei einem Systemstart mitgestartet werden.
Beispielsweise sollen die Dienste
mail/postfix oder
www/apache13 nach
einem Systemstart laufen. Dieser Abschnitt stellt
die Startprozeduren für Software Dritter vor.Unter &os; werden die meisten der im System enthaltenen
Dienste wie &man.cron.8; mithilfe von Systemskripten gestartet.
Diese Skripten sind abhängig von der &os;- oder
Hersteller-Version. Allerdings kann ein Dienst mit
einfachen Skripten gestartet werden.
- Früher legten Anwendungen einfach ein
- Startskript im Verzeichnis
+ Vor der Einführung von rc.d
+ legten Anwendungen einfach ein Startskript im Verzeichnis
/usr/local/etc/rc.d
ab. Das Startskript wurde von den Systemskripten in
den letzten Phasen des Systemstarts ausgeführt.
- Obwohl viele Startskripten auf das
- neue System umgestellt wurden, gibt es noch Anwendungen,
+ Obwohl bereits viele Startskripten auf das neue
+ rc.d-System umgestellt wurden, gibt es
+ noch Anwendungen,
die ein Startskript im eben erwähnten Verzeichnis
benötigen. In diesem Fall weisen die Skripte kleinere
Unterschiede auf. Vor &os; 5.1 wurde der alte Stil
verwendet, obwohl in den meisten Fällen auch der neue
Stil problemlos funktionieren würde.Die Startskripten müssen das Suffix
.sh tragen und ausführbar sein.
Sie machen ein Skript ausführbar, indem Sie mit
chmod die Rechte 755
vergeben. Das Skript sollte die Optionen
und akzeptieren, um die Anwendung
zu starten und zu stoppen.Ein einfaches Startskript sieht wie folgt aus:#!/bin/sh
echo -n ' utility'
case "$1" in
start)
/usr/local/bin/utility
;;
stop)
kill -9 `cat /var/run/utility.pid`
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
exit 0Das Skript akzeptiert die Optionen start
und stop zum Starten und Stoppen
einer Anwendung mit Namen utility.Manuell wird die Anwendung mit dem nachstehenden
Kommando gestartet:&prompt.root; /usr/local/etc/rc.d/utility.sh startObwohl nicht jede Anwendung die Zeile in
rc.conf benötigt, akzeptieren
immer mehr Ports diese Konfiguration. Prüfen Sie
die Ausgaben während der Installation einer
Anwendung, um herauszufinden, wie die Anwendung
gestartet wird. Einige Anwendungen stellen Startskripten
- bereit, die zusammen rcNG (wird im nächsten
- Abschnitt besprochen) benutzt werden.
+ bereit, die das rc.d-System
+ (wird im nächsten Abschnitt besprochen) verwenden.
- Dienste mit rcNG starten
+ Dienste über das
+ rc.d-System starten
- Mit rcNG lässt sich der Start von Anwendungen
- besser steuern als mit den vorher besprochenen
+ Mit rc.d lässt sich der Start
+ von Anwendungen besser steuern als mit den vorher besprochenen
Startskripten. Mit den im Abschnitt
- rcNG
+ rc.d
besprochenen Schlüsselwörtern können
Anwendungen in einer bestimmten Reihenfolge (zum Beispiel
nach DNS) gestartet werden und
Optionen können in rc.conf
statt fest im Startskript der Anwendung festgelegt werden.
Ein einfaches Startskript sieht wie folgt aus:#!/bin/sh
#
# PROVIDE: utility
# REQUIRE: DAEMON
-# BEFORE: LOGIN
-# KEYWORD: FreeBSD shutdown
+# KEYWORD: shutdown
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
# SET THEM IN THE /etc/rc.conf FILE
#
utility_enable=${utility_enable-"NO"}
utility_flags=${utility_flags-""}
utility_pidfile=${utility_pidfile-"/var/run/utility.pid"}
. /etc/rc.subr
name="utility"
rcvar=`set_rcvar`
command="/usr/local/sbin/utility"
load_rc_config $name
pidfile="${utility_pidfile}"
start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${utility_flags} ${command_args}"
run_rc_command "$1"Dieses Skript stellt sicher, dass
- utility vor den
- login-Diensten und nach den
+ utility nach den
daemon-Diensten gestartet wird.
Es stellt auch eine Methode bereit, die
Prozess-ID (PID)
der Anwendung in einer Datei zu speichern.In /etc/rc.conf könnte
für diese Anwendung die folgende Zeile stehen:utility_enable="YES"Die neue Methode erleichtert den Umgang mit
Kommandozeilenargumenten, bindet Funktionen aus
/etc/rc.subr ein, ist kompatibel
zum Werkzeug &man.rcorder.8; und lässt sich
über rc.conf leichter
- konfigurieren. Sie könnten dieses Skript auch
- im Verzeichnis /etc/rc.d
- ablegen, das würde aber wahrscheinlich bei
- Aktualisierungen Probleme mit &man.mergemaster.8;
- verursachen.
+ konfigurieren.Andere Arten, um Dienste zu startenDienste wie POP3 oder
IMAP können über den
&man.inetd.8; gestartet werden. Nach der Installation
der Anwendung aus der Ports-Sammlung muss eine
Konfigurationszeile in der Datei
/etc/inetd.conf hinzugefügt oder
aktiviert werden. Der Abschnitt
beschreibt den
inetd und dessen Konfiguration.Systemdienste können auch mit &man.cron.8; gestartet
werden. Dieser Ansatz hat einige Vorteile; nicht zuletzt, weil
&man.cron.8; die Prozesse unter dem Eigentümer der
crontab startet, ist es möglich, dass
Dienste von nicht-root Benutzern gestartet
und gepflegt werden können.Dies nutzt eine Eigenschaft von &man.cron.8;:
Für die Zeitangabe kann @reboot
eingesetzt werden. Damit wird das Kommando gestartet, wenn
&man.cron.8; kurz nach dem Systemboot gestartet wird.TomRhodesBeigetragen von Programme mit cron startencronEin sehr nützliches Werkzeug von &os; ist &man.cron.8;.
cron läuft im Hintergrund und
überprüft fortlaufend die Datei
/etc/crontab. Beim Start sucht
cron neue crontab-Dateien
im Verzeichnis /var/cron/tabs. In den
crontab-Dateien wird festgelegt, welche
Programme zu welchem Zeitpunkt laufen sollen.Das Werkzeug cron verwendet
zwei verschiedene Konfigurationsdateien: Die
System-crontab und die
Benutzer-crontab. Der einzige Unterschied
zwischen beiden Formaten ist das sechste Feld. In der
System-crontab gibt das sechste Feld das
Konto an, unter dem ein Kommando läuft. Aus der
System-crontab können daher
Kommandos unter beliebigen Konten gestartet werden.
In der Benutzer-crontab gibt das
sechste Feld das auszuführende Kommando an. Alle
Kommandos laufen unter dem Konto, unter dem die
crontab erstellt wurde (ein
wichtiges Sicherheitsmerkmal).Benutzer können mit Benutzer-crontabs
ohne root-Rechte Befehle terminieren.
Die Kommandos in Benutzer-crontabs laufen
unter dem Benutzer, der die crontab
erstellt hat.Der Benutzer root kann, wie
jeder andere Benutzer, eine Benutzer-crontab
besitzen. Die Benutzer-crontab von
root ist nicht mit der Datei
/etc/crontab, der
System-crontab, zu verwechseln.
Normalerweise besitzt root, wegen
der Existenz der System-crontab, keine
eigene Benutzer-crontab.Der folgende Auszug aus der System-crontab/etc/crontab zeigt den Aufbau
einer crontab-Datei:# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $
#
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#
#
#minute hour mday month wday who command
#
#
*/5 * * * * root /usr/libexec/atrun Das Zeichen # leitet, wie in
den meisten Konfigurationsdateien, einen Kommentar ein.
Benutzen Sie Kommentare, um die Funktion eines Eintrags
zu erläutern. Kommentare müssen in einer
extra Zeile stehen. Sie können nicht in derselben
Zeile wie ein Kommando stehen, da sie sonst Teil des
Kommandos wären. Leerzeilen in dieser Datei
werden ignoriert.Umgebungsvariablen werden mit dem Gleichheits-Zeichen
(=) festgelegt. Im Beispiel werden
die Variablen SHELL, PATH
und HOME definiert. Wenn die Variable
SHELL nicht definiert wird, benutzt
cron die Shell sh.
Wird die Variable PATH nicht gesetzt,
müssen alle Pfadangaben absolut sein, da es keinen
Vorgabewert für PATH gibt. Der
Vorgabewert für HOME ist das
Heimatverzeichnis des Accounts, dem die
crontab gehört.In dieser Zeile werden sieben Felder beschrieben:
minute, hour,
mday, month,
wday, who
und command. Die ersten Felder
legen den Zeitpunkt fest, an dem ein Kommando laufen
soll. Das Feld minute legt die
Minute fest, das Feld hour die
Stunde, das Feld mday den Tag
des Monats. Im Feld month
wird der Monat und im Feld wday
der Wochentag festgelegt. Alle Felder müssen
numerische Werte enthalten und die Zeitangaben sind
im 24-Stunden-Format. Das Feld who
gibt es nur in der Datei /etc/crontab
und gibt den Account an, unter dem das Kommando laufen
soll. In den crontab-Dateien
einzelner Accounts existiert dieses Feld nicht. Im
letzten Feld wird schließlich das auszuführende
Kommando angegeben.Diese Zeile definiert die Zeitpunkte an denen das
Kommando atrun laufen soll. Beachten
Sie die Zeichenfolge */5 gefolgt von
mehreren *-Zeichen. Das Zeichen
* ist ein Platzhalter und steht
für jede mögliche Zeit.
Diese Zeile führt das Kommando atrun
unter dem root-Account alle fünf
Minuten aus. Mehr über das Kommando
atrun erfahren Sie in der
Hilfeseite &man.atrun.8;.Bei den Kommandos können beliebige Optionen
angegeben werden. Wenn das Kommando zu lang ist und
auf der nächsten Zeile fortgesetzt werden soll,
muss am Ende der Zeile das Fortsetzungszeichen
(\) angegeben werden.Bis auf das sechste Feld, das den Account angibt, sieht
jede crontab-Datei so wie das Beispiel
aus. Das sechste Feld existiert nur in der Systemdatei
/etc/crontab. In den restlichen
crontab-Dateien fehlt dieses Feld.crontab installierenDie nachstehende Prozedur gilt nur für
Benutzer-crontabs. Die
System-crontab können
Sie einfach mit Ihrem Lieblingseditor editieren.
Das Werkzeug cron bemerkt, dass
sich die Datei geändert hat und wird die neue
Version benutzen. Lesen Sie bitte auch die FAQ
zur Meldung root: not found.Eine Benutzer-crontab, beispielsweise
die Datei crontab, können Sie mit
jedem Editor erstellen. Die Benutzer-crontab
installieren Sie mit dem nachstehenden Befehl:&prompt.root; crontab crontabDas Argument zum Befehl crontab
ist die vorher erstellte Datei crontab.Der Befehl crontab -l zeigt
die installierte crontab-Datei an.Benutzer, die eine eigene crontab-Datei
ohne Vorlage erstellen wollen, können den Befehl
crontab -e verwenden. Dieser Befehl
ruft einen Editor auf und installiert beim Verlassen des
Editors die crontab-Datei.Wollen Sie die installierte
Benutzer-crontab entfernen, rufen Sie den
Befehl crontab mit der Option
auf.
-
+ TomRhodesBeigetragen von Das rc-System für Systemdienste unter &os; 5.X
und neuer
- Das rcNG-System von NetBSD zum
- Start von Systemdiensten wurde in &os; integriert.
+ 2002 wurde das rc.d-System von
+ NetBSD zum Start von Systemdiensten in &os; integriert.
Die zu diesem System gehörenden Dateien sind im
Verzeichnis /etc/rc.d abgelegt.
Die Skripten in diesem Verzeichnis akzeptieren die
Optionen ,
und . Beispielsweise kann
&man.sshd.8; mit dem nachstehenden Kommando neu gestartet
werden:&prompt.root; /etc/rc.d/sshd restartAnalog können Sie andere Dienste starten und stoppen.
- Normalerweise werden die Dienste über Einträge in
- der Datei &man.rc.conf.5; gestartet. Der Network Address
+ Normalerweise werden die Dienste beim Systemstart über
+ Einträge in der Datei &man.rc.conf.5; automatisch gestartet.
+ Der Network Address
Translation Dæmon wird zum Beispiel mit dem folgenden
Eintrag in /etc/rc.conf aktiviert:natd_enable="YES"Wenn dort bereits die Zeile
existiert, ändern Sie einfach in
. Die rc-Skripten starten, wie unten
beschrieben, auch abhängige Dienste.Da das rcNG-System primär
zum automatischen Starten und Stoppen von Systemdiensten
dient, funktionieren die Optionen ,
und nur,
wenn die entsprechenden Variablen in
/etc/rc.conf gesetzt sind. Beispielsweise
funktioniert das Kommando sshd restart
nur dann, wenn in /etc/rc.conf die
Variable sshd_enable auf
gesetzt wurde. Wenn Sie die Optionen ,
oder
unabhängig von den Einstellungen in
/etc/rc.conf benutzen wollen,
müssen Sie den Optionen mit dem Präfix
force verwenden. Um beispielsweise
sshd unabhängig von den
Einstellungen in /etc/rc.conf neu
zu starten, benutzen Sie das nachstehende Kommando:&prompt.root; /etc/rc.d/sshd forcerestartOb ein Dienst in /etc/rc.conf
aktiviert ist, können Sie leicht herausfinden, indem
Sie das entsprechende rc.d-Skript
mit der Option aufrufen. Ein
Administrator kann beispielsweise wie folgt prüfen, ob
der sshd-Dienst in
/etc/rc.conf aktiviert ist:&prompt.root; /etc/rc.d/sshd rcvar
# sshd
$sshd_enable=YESDie zweite Zeile (# sshd) wird
vom Kommando sshd ausgegeben; sie
kennzeichnet nicht die Eingabeaufforderung von
root.Ob ein Dienst läuft, kann mit der Option
abgefragt werden. Das folgende
Kommando überprüft, ob der sshd
auch wirklich gestartet wurde:&prompt.root; /etc/rc.d/sshd status
sshd is running as pid 433.
- Die Option initialisiert einen
- Dienst neu. Dem Dienst wird über ein Signal mitgeteilt,
+ Einige Dienste können über die Option
+ neu initialisiert werden. Dazu wird
+ dem Dienst über ein Signal mitgeteilt,
dass er seine Konfigurationsdateien neu einlesen soll.
Oft wird dazu das Signal SIGHUP
- verwendet.
+ verwendet. Beachten Sie aber, dass nicht alle Dienste diese
+ Option unterstützen.Die meisten Systemdienste werden beim Systemstart vom
rc.d-System gestartet. Zum Beispiel
aktiviert das Skript bgfsck die Prüfung
von Dateisystemen im Hintergrund. Das Skript gibt die folgende
Meldung aus, wenn es gestartet wird:Starting background file system checks in 60 seconds.Viele Systemdienste hängen von anderen Diensten
ab. NIS und andere RPC-basierende Systeme hängen
beispielsweise von dem rpcbind-Dienst
(portmapper) ab. Im Kopf der Startskripten befinden sich
die Informationen über Abhängigkeiten von anderen
Diensten und weitere Metadaten. Mithilfe dieser Daten
bestimmt das Programm &man.rcorder.8; beim Systemstart die
Startreihenfolge der Dienste. Folgende Schlüsselwörter
werden im Kopf der Startskripten verwendet:PROVIDE: Gibt die Namen der Dienste an,
die mit dieser Datei zur Verfügung gestellt werden.REQUIRE: Gibt die Namen der Dienste an,
von denen dieser Dienst abhängt. Diese Datei wird
nach den angegebenen Diensten
ausgeführt.BEFORE: Zählt Dienste auf,
die auf diesen Dienst angewiesen sind. Diese Datei wird
vor den angegebenen Diensten
ausgeführt.
-
-
- KEYWORD: FreeBSD oder
- NetBSD. Unterscheidet Funktionen,
- die von der BSD-Variante abhängen.
- Mit diesem System kann ein Administrator den Start
von Systemdiensten einfach steuern, ohne mit den
Schwierigkeiten des runlevel-Systems
anderer &unix; Systeme kämpfen zu müssen.Weitere Informationen über das
rc.d-System finden sich in den
Manualpages zu &man.rc.8; sowie &man.rc.subr.8;.MarcFonvieilleBeigetragen von Einrichten von NetzwerkkartenNetzwerkkarteneinrichtenEin Rechner ohne Netzanschluss ist heute nicht mehr
vorstellbar. Die Konfiguration einer Netzwerkkarte gehört zu
den alltäglichen Aufgaben eines &os; Administrators.Bestimmen des richtigen TreibersNetzwerkkartenTreiberBevor Sie anfangen, sollten Sie das Modell Ihrer Karte kennen,
wissen welchen Chip die Karte benutzt und bestimmen, ob es sich
um eine PCI- oder ISA-Karte handelt. Eine Aufzählung der
unterstützten PCI- und ISA-Karten finden Sie in der
Liste der unterstützen Geräte. Schauen Sie nach, ob Ihre
Karte dort aufgeführt ist.Wenn Sie wissen, dass Ihre Karte unterstützt wird,
müssen Sie den Treiber für Ihre Karte bestimmen.
/usr/src/sys/conf/NOTES und
/usr/src/sys/arch/conf/NOTES
enthalten eine
Liste der verfügbaren Treiber mit Informationen zu den
unterstützten Chipsätzen und Karten. Wenn Sie sich nicht
sicher sind, ob Sie den richtigen Treiber ausgewählt haben,
lesen Sie die Hilfeseite des Treibers. Die Hilfeseite enthält
weitere Informationen über die unterstützten Geräte
und macht auch auf mögliche Probleme aufmerksam.Unter &os; 4.X gibt es die Datei
NOTES nicht. Entnehmen Sie bitte
stattdessen die verfügbaren Treiber der Datei
LINT. Auf die Dateien
NOTES und LINT
wird in
näher eingegangen.Wenn Sie eine gebräuchliche Karte besitzen, brauchen Sie
meistens nicht lange nach dem passenden Treiber zu suchen. Die
Treiber zu diesen Karten sind schon im
GENERIC-Kernel enthalten und die Karte sollte
während des Systemstarts erkannt werden:dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
000ff irq 15 at device 11.0 on pci0
dc0: Ethernet address: 00:a0:cc:da:da:da
miibus0: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
000ff irq 11 at device 12.0 on pci0
dc1: Ethernet address: 00:a0:cc:da:da:db
miibus1: <MII bus> on dc1
ukphy1: <Generic IEEE 802.3u media interface> on miibus1
ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, autoIm Beispiel erkennt das System zwei Karten, die den
&man.dc.4; Treiber benutzen.Ist der Treiber für Ihre Netzwerkkarte nicht
in GENERIC enthalten, müssen
Sie den Treiber laden, um die Karte zu benutzen.
Sie können den Treiber auf zwei Arten laden:Am einfachsten ist es, das Kernelmodul für
Ihre Karte mit &man.kldload.8; zu laden. Allerdings
gibt es nicht für alle Karten Kernelmodule;
zum Beispiel gibt es keine Kernelmodule für
ISA-Karten.Alternativ können Sie den Treiber für die
Karte fest in den Kernel einbinden. Schauen Sie sich dazu
/usr/src/sys/conf/NOTES,
/usr/src/sys/arch/conf/NOTES
und die Hilfeseite des Treibers, den Sie in den Kernel
einbinden möchten, an. Die Übersetzung des Kernels
wird in beschrieben. Wenn
Ihre Karte während des Systemstarts vom Kernel
(GENERIC) erkannt wurde, müssen
Sie den Kernel nicht neu übersetzen.Konfiguration von NetzwerkkartenNetzwerkkarteneinrichtenNachdem der richtige Treiber für die Karte geladen ist,
muss die Karte konfiguriert werden. Unter Umständen ist
die Karte schon während der Installation mit
sysinstall konfiguriert worden.Das nachstehende Kommando zeigt die Konfiguration der Karten
eines Systems an:&prompt.user; ifconfig
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:a0:cc:da:da:da
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
ether 00:a0:cc:da:da:db
media: Ethernet 10baseT/UTP
status: no carrier
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500In alten Versionen von &os; müssen Sie vielleicht
noch auf der Kommandozeile von &man.ifconfig.8;
angeben. Hinweise zum Gebrauch von &man.ifconfig.8; entnehmen
Sie bitte der Hilfeseite. Beachten Sie, dass in diesem
Beispiel die IPv6-Ausgaben (inet6 etc.)
ausgelassen wurden.Im Beispiel werden Informationen zu den folgenden Geräten
angezeigt:dc0: Der erste
Ethernet-Adapterdc1: Der zweite
Ethernet-Adapterlp0: Die parallele
Schnittstellelo0: Das Loopback-Gerättun0: Das von
ppp benutzte Tunnel-GerätDer Name der Netzwerkkarte wird aus dem Namen des Treibers und
einer Zahl zusammengesetzt. Die Zahl gibt die Reihenfolge an, in
der die Geräte beim Systemstart erkannt wurden. Die dritte
Karte, die den &man.sis.4; Treiber benutzt, würde
beispielsweise sis2 heißen.Der Adapter dc0 aus dem Beispiel ist
aktiv. Sie erkennen das an den folgenden Hinweisen:UP bedeutet, dass die Karte
konfiguriert und aktiv ist.Der Karte wurde die Internet-Adresse (inet)
192.168.1.3 zugewiesen.Die Subnetzmaske ist richtig
(0xffffff00 entspricht
255.255.255.0).Die Broadcast-Adresse 192.168.1.255 ist richtig.Die MAC-Adresse der Karte (ether)
lautet 00:a0:cc:da:da:da.Die automatische Medienerkennung ist aktiviert
(media: Ethernet autoselect (100baseTX
<full-duplex>)). Der Adapter
dc1 benutzt das Medium
10baseT/UTP. Weitere Informationen
über die einstellbaren Medien entnehmen
Sie bitte der Hilfeseite des Treibers.Der Verbindungsstatus (status) ist
active, das heißt es wurde ein
Trägersignal entdeckt. Für
dc1 wird status: no
carrier angezeigt. Das ist normal, wenn kein Kabel
an der Karte angeschlossen ist.Wäre die Karte nicht konfiguriert, würde die Ausgabe
von &man.ifconfig.8; so aussehen:dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
ether 00:a0:cc:da:da:daSie brauchen die Berechtigungen von root, um
Ihre Karte zu konfigurieren. Die Konfiguration kann auf der
Kommandozeile mit &man.ifconfig.8; erfolgen, allerdings
müsste sie dann nach jedem Neustart wiederholt werden.
Dauerhaft wird die Karte in /etc/rc.conf
konfiguriert.Öffnen Sie /etc/rc.conf mit Ihrem
Lieblingseditor und fügen Sie für jede Karte Ihres
Systems eine Zeile hinzu. In dem hier diskutierten Fall wurden
die nachstehenden Zeilen eingefügt:ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0"
ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"Ersetzen Sie dc0,
dc1 usw. durch die Gerätenamen Ihrer
Karten und setzen Sie die richtigen IP-Adressen ein. Die
Hilfeseiten des Treibers und &man.ifconfig.8; enthalten weitere
Einzelheiten über verfügbare Optionen. Die Syntax von
/etc/rc.conf wird in &man.rc.conf.5;
erklärt.Wenn Sie das Netz während der Installation
konfiguriert haben, existieren vielleicht schon Einträge
für Ihre Karten. Überprüfen Sie
/etc/rc.conf bevor Sie weitere Zeilen
hinzufügen.In /etc/hosts können Sie die Namen
und IP-Adressen der Rechner Ihres LANs eintragen. Weitere
Informationen entnehmen Sie bitte &man.hosts.5; und
/usr/share/examples/etc/hosts.Test und FehlersucheNachdem Sie die notwendigen Änderungen in
/etc/rc.conf vorgenommen haben, führen
Sie einen Neustart Ihres Systems durch. Dadurch werden die Adapter
konfiguriert und Sie stellen sicher, dass der Start ohne
Konfigurationsfehler erfolgt.Wenn das System gestartet ist, sollten Sie die Netzwerkkarten
testen.Test der Ethernet-KarteNetzwerkkartentestenMit zwei Tests können Sie prüfen, ob die
Ethernet-Karte richtig konfiguriert ist. Testen Sie zuerst mit
ping den Adapter selbst und sprechen Sie dann
eine andere Maschine im LAN an.Zuerst, der Test des Adapters:&prompt.user; ping -c5 192.168.1.3
PING 192.168.1.3 (192.168.1.3): 56 data bytes
64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms
--- 192.168.1.3 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 msJetzt versuchen wir, eine andere Maschine im LAN zu
erreichen:&prompt.user; ping -c5 192.168.1.2
PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms
--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 msSie können auch den Namen der Maschine anstelle von
192.168.1.2 benutzen, wenn Sie
/etc/hosts entsprechend eingerichtet
haben.FehlersucheNetzwerkkartenFehlersucheFehler zu beheben, ist immer sehr mühsam.
Indem Sie die einfachen Sachen zuerst prüfen,
erleichtern Sie sich die Aufgabe. Steckt das Netwerkkabel?
Sind die Netzwerkdienste richtig konfiguriert? Funktioniert
die Firewall? Wird die Netwerkkarte von &os;
unterstützt? Lesen Sie immer die Hardware-Informationen
des Releases, bevor Sie einen Fehlerbericht einsenden.
Aktualisieren Sie Ihre &os;-Version
auf -STABLE. Suchen Sie in den Archiven der Mailinglisten
oder auf dem Internet nach bekannten Lösungen.Wenn die Karte funktioniert, die Verbindungen aber
zu langsam sind, lesen Sie bitte die Hilfeseite
&man.tuning.7;. Prüfen Sie auch die
Netzwerkkonfiguration, da falsche Einstellungen die
Ursache für langsame Verbindungen sein können.Wenn Sie viele device timeout
Meldungen in den Systemprotokollen finden, prüfen
Sie, dass es keinen Konflikt zwischen der Netzwerkkarte
und anderen Geräten Ihres Systems gibt.
Überprüfen Sie nochmals die Verkabelung.
Unter Umständen benötigen Sie eine neue
Netzwerkkarte.Wenn Sie in den Systemprotokollen
watchdog timeout Fehlermeldungen
finden, kontrollieren Sie zuerst die Verkabelung.
Überprüfen Sie dann, ob der PCI-Steckplatz der
Karte Bus Mastering unterstützt. Auf einigen
älteren Motherboards ist das nur für einen
Steckplatz (meistens Steckplatz 0) der Fall. Lesen Sie
in der Dokumentation Ihrer Karte und Ihres Motherboards
nach, ob das vielleicht die Ursache des Problems sein
könnte.Die Meldung No route to host
erscheint, wenn Ihr System ein Paket nicht zustellen
kann. Das kann vorkommen weil beispielsweise keine
Default-Route gesetzt wurde oder das Netzwerkkabel
nicht richtig steckt. Schauen Sie in der Ausgabe
von netstat -rn nach, ob eine
Route zu dem Zielsystem existiert. Wenn nicht, lesen
Sie bitte das .Die Meldung ping: sendto: Permission
denied wird oft von einer falsch konfigurierten
Firewall verursacht. Wenn keine Regeln definiert wurden,
blockiert eine aktivierte Firewall alle Pakete, selbst
einfache ping-Pakete. Weitere
Informationen erhalten Sie in .Falls die Leistung der Karte schlecht ist, setzen
Sie die Medienerkennung von autoselect
(automatisch) auf das richtige Medium. In vielen Fällen
löst diese Maßnahme Leistungsprobleme. Wenn
nicht, prüfen Sie nochmal die Netzwerkeinstellungen
und lesen Sie die Hilfeseite &man.tuning.7;.Virtual Hostsvirtual hostsIP-AliaseEin gebräuchlicher Zweck von &os; ist das
virtuelle Hosting, bei dem ein Server im Netzwerk wie
mehrere Server aussieht. Dies wird dadurch erreicht,
dass einem Netzwerkinterface mehrere Netzwerk-Adressen
zugewiesen werden.Ein Netzwerkinterface hat eine echte
Adresse und kann beliebig viele alias Adressen
haben. Die Aliase werden durch entsprechende alias Einträge
in /etc/rc.conf festgelegt.Ein alias Eintrag für das Interface
fxp0 sieht wie folgt aus:ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"Beachten Sie, dass die Alias-Einträge mit
alias0 anfangen müssen und
weiter hochgezählt werden, das heißt
_alias1, _alias2,
und so weiter. Die Konfiguration der Aliase hört
bei der ersten fehlenden Zahl auf.Die Berechnung der Alias-Netzwerkmasken ist wichtig, doch
zum Glück einfach. Für jedes Interface muss es
eine Adresse geben, die die Netzwerkmaske des Netzwerkes richtig
beschreibt. Alle anderen Adressen in diesem Netzwerk haben dann
eine Netzwerkmaske, die mit 1 gefüllt
ist (also 255.255.255.255
oder hexadezimal
0xffffffff).Als Beispiel betrachten wir den Fall, in dem
fxp0 mit zwei Netzwerken verbunden
ist: dem Netzwerk 10.1.1.0 mit der
Netzwerkmaske 255.255.255.0
und dem Netzwerk 202.0.75.16 mit der
Netzwerkmaske 255.255.255.240.
Das System soll die Adressen 10.1.1.1
bis 10.1.1.5 und
202.0.75.17 bis
202.0.75.20 belegen.
Wie eben beschrieben, hat nur die erste Adresse in einem
Netzwerk (hier 10.0.1.1
und 202.0.75.17) die
richtige Netzwerkmaske. Alle anderen Adressen
(10.1.1.2 bis 10.1.1.5 und 202.0.75.18 bis 202.0.75.20) erhalten die Maske
255.255.255.255.Die folgenden Einträge in
/etc/rc.conf konfigurieren den Adapter
entsprechend dem Beispiel:ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"
ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"
ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"
ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"Konfigurationsdateien/etc LayoutKonfigurationsdateien finden sich in einigen Verzeichnissen
unter anderem in:/etcEnthält generelle Konfigurationsinformationen,
die Daten hier sind systemspezifisch./etc/defaultsDefault Versionen der Konfigurationsdateien./etc/mailEnthält die &man.sendmail.8; Konfiguration
und weitere MTA Konfigurationsdateien./etc/pppHier findet sich die Konfiguration für
die User- und Kernel-ppp Programme./etc/namedbDas Vorgabeverzeichnis, in dem Daten von
&man.named.8; gehalten werden. Normalerweise
werden hier named.conf und Zonendaten
abgelegt./usr/local/etcInstallierte Anwendungen legen hier ihre
Konfigurationsdateien ab. Dieses Verzeichnis kann
Unterverzeichnisse für bestimmte Anwendungen
enthalten./usr/local/etc/rc.dOrt für Start- und Stopskripten installierter
Anwendungen./var/dbAutomatisch generierte systemspezifische Datenbanken,
wie die Paket-Datenbank oder die
locate-Datenbank.HostnamenhostnameDNS/etc/resolv.confresolv.confWie der &os;-Resolver auf das Internet Domain Name
System (DNS) zugreift, wird in /etc/resolv.conf
festgelegt.Die gebräuchlichsten Einträge in
/etc/resolv.conf sind:nameserverDie IP-Adresse eines Nameservers, den
der Resolver abfragen soll. Bis zu drei Server werden
in der Reihenfolge, in der sie aufgezählt
sind, abgefragt.searchSuchliste mit Domain-Namen zum Auflösen von
Hostnamen. Die Liste wird normalerweise durch den
Domain-Teil des lokalen Hostnamens festgelegt.domainDer lokale Domain-Name.Beispiel für eine typische
resolv.conf:search example.com
nameserver 147.11.1.11
nameserver 147.11.100.30Nur eine der Anweisungen search
oder domain sollte benutzt werden.Wenn Sie DHCP benutzen, überschreibt &man.dhclient.8;
für gewöhnlich resolv.conf
mit den Informationen vom DHCP-Server./etc/hostshosts/etc/hosts ist eine einfache textbasierte
Datenbank, die aus alten Internetzeiten stammt. Zusammen
mit DNS und NIS stellt sie eine Abbildung zwischen Namen und
IP-Adressen zur Verfügung. Anstatt &man.named.8;
zu konfigurieren, können hier lokale Rechner, die über
ein LAN verbunden sind, eingetragen werden. Lokale Einträge
für gebräuchliche Internet-Adressen in
/etc/hosts verhindern die Abfrage eines
externen Servers und beschleunigen die Namensauflösung.# $FreeBSD$
#
# Host Database
# This file should contain the addresses and aliases
# for local hosts that share this file.
# In the presence of the domain name service or NIS, this file may
# not be consulted at all; see /etc/nsswitch.conf for the resolution order.
#
#
::1 localhost localhost.my.domain myname.my.domain
127.0.0.1 localhost localhost.my.domain myname.my.domain
#
# Imaginary network.
#10.0.0.2 myname.my.domain myname
#10.0.0.3 myfriend.my.domain myfriend
#
# According to RFC 1918, you can use the following IP networks for
# private nets which will never be connected to the Internet:
#
# 10.0.0.0 - 10.255.255.255
# 172.16.0.0 - 172.31.255.255
# 192.168.0.0 - 192.168.255.255
#
# In case you want to be able to connect to the Internet, you need
# real official assigned numbers. PLEASE PLEASE PLEASE do not try
# to invent your own network numbers but instead get one from your
# network provider (if any) or from the Internet Registry (ftp to
# rs.internic.net, directory `/templates').
#/etc/hosts hat ein einfaches Format:[Internet Adresse] [Offizieller Hostname] [Alias1] [Alias2] ...Zum Beispiel:10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2Weitere Informationen entnehmen Sie bitte &man.hosts.5;.Konfiguration von LogdateienLogdateiensyslog.confsyslog.confsyslog.conf ist die Konfigurationsdatei
von &man.syslogd.8;. Sie legt fest, welche
syslog Meldungen in welche
Logdateien geschrieben werden.# $FreeBSD$
#
# Spaces ARE valid field separators in this file. However,
# other *nix-like systems still insist on using tabs as field
# separators. If you are sharing this file between systems, you
# may want to use only tabs as field separators here.
# Consult the syslog.conf(5) manpage.
*.err;kern.debug;auth.notice;mail.crit /dev/console
*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.* /var/log/security
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs
cron.* /var/log/cron
*.err root
*.notice;news.err root
*.alert root
*.emerg *
# uncomment this to log all writes to /dev/console to /var/log/console.log
#console.info /var/log/console.log
# uncomment this to enable logging of all log messages to /var/log/all.log
#*.* /var/log/all.log
# uncomment this to enable logging to a remote log host named loghost
#*.* @loghost
# uncomment these if you're running inn
# news.crit /var/log/news/news.crit
# news.err /var/log/news/news.err
# news.notice /var/log/news/news.notice
!startslip
*.* /var/log/slip.log
!ppp
*.* /var/log/ppp.logWeitere Informationen enthält &man.syslog.conf.5;.newsyslog.confnewsyslog.confDie Konfigurationsdatei für &man.newsyslog.8;, das
normalerweise von &man.cron.8; aufgerufen wird, ist
newsyslog.conf. &man.newsyslog.8;
stellt fest, ob Logdateien archiviert oder verschoben
werden müssen. So wird logfile
nach logfile.0 geschoben und
logfile.0 nach logfile.1
usw. Zudem können Logdateien mit &man.gzip.1;
komprimiert werden. Die Namen der Logdateien sind dann
logfile.0.gz, logfile.1.gz
usw.newsyslog.conf legt fest, welche
Logdateien wann bearbeitet und wie viele Dateien behalten werden.
Logdateien können auf Basis ihrer Größe oder zu
einem gewissen Zeitpunkt archiviert bzw. umbenannt werden.# configuration file for newsyslog
# $FreeBSD$
#
# filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num]
/var/log/cron 600 3 100 * Z
/var/log/amd.log 644 7 100 * Z
/var/log/kerberos.log 644 7 100 * Z
/var/log/lpd-errs 644 7 100 * Z
/var/log/maillog 644 7 * @T00 Z
/var/log/sendmail.st 644 10 * 168 B
/var/log/messages 644 5 100 * Z
/var/log/all.log 600 7 * @T00 Z
/var/log/slip.log 600 3 100 * Z
/var/log/ppp.log 600 3 100 * Z
/var/log/security 600 10 100 * Z
/var/log/wtmp 644 3 * @01T05 B
/var/log/daily.log 640 7 * @T00 Z
/var/log/weekly.log 640 5 1 $W6D0 Z
/var/log/monthly.log 640 12 * $M1D0 Z
/var/log/console.log 640 5 100 * ZUm mehr zu erfahren, lesen Sie bitte &man.newsyslog.8;.sysctl.confsysctl.confsysctlsysctl.conf sieht ähnlich
wie rc.conf aus. Werte werden in der
Form Variable=Wert gesetzt.
Die angegebenen Werte werden
gesetzt, nachdem sich das System im Mehrbenutzermodus befindet,
das heißt nicht alle Werte können in
diesem Modus gesetzt werden.In der folgenden sysctl.conf wird das
Loggen von fatalen Signalen abgestellt und Linux Programmen
wird klar gemacht, dass sie in Wirklichkeit unter
&os; laufen:kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11)
compat.linux.osname=FreeBSD
compat.linux.osrelease=4.3-STABLEEinstellungen mit sysctlsysctlEinstellungenmit sysctlMit &man.sysctl.8; können Sie Änderungen an
einem laufenden &os; System vornehmen. Unter anderem
können Optionen des TCP/IP-Stacks oder des
virtuellen Speichermanagements verändert werden. Unter
der Hand eines erfahrenen Systemadministrators kann dies
die Systemperformance erheblich verbessern. Über 500
Variablen können mit &man.sysctl.8; gelesen und gesetzt
werden.Der Hauptzweck von &man.sysctl.8; besteht darin, Systemeinstellungen
zu lesen und zu verändern.Alle auslesbaren Variablen werden wie folgt angezeigt:&prompt.user; sysctl -aSie können auch eine spezielle Variable, z.B.
kern.maxproc lesen:&prompt.user; sysctl kern.maxproc
kern.maxproc: 1044Um eine Variable zu setzen, benutzen Sie die Syntax
Variable=
Wert:&prompt.root; sysctl kern.maxfiles=5000
kern.maxfiles: 2088 -> 5000Mit sysctl können Sie Strings, Zahlen oder
Boolean-Werte setzen. Bei Boolean-Werten setzen sie 1
für wahr und 0 für falsch.Wenn Sie Variablen automatisch während des Systemstarts
setzen wollen, fügen Sie die Variablen in die Datei
/etc/sysctl.conf ein. Weiteres
entnehmen Sie bitte der Hilfeseite &man.sysctl.conf.5;
und dem .TomRhodesContributed by Schreibgeschützte VariablenSchreibgeschützte sysctl-Variablen können nur
während des Systemstarts verändert werden.Beispielsweise hat &man.cardbus.4; auf einigen Laptops
Schwierigkeiten, Speicherbereiche zu erkennen. Es treten
dann Fehlermeldungen wie die folgende auf:cbb0: Could not map register memory
device_probe_and_attach: cbb0 attach returned 12Um dieses Problem zu lösen, muss eine
schreibgeschützte sysctl-Variable verändert
werden. Eine OID kann in der Datei
/boot/loader.conf überschrieben
werden. Die Datei /boot/defaults/loader.conf
enthält Vorgabewwerte für sysctl-Variablen.Das oben erwähnte Problem wird durch die Angabe von
in
/boot/loader.conf gelöst.
Danach sollte &man.cardbus.4; fehlerfrei funktionieren.Tuning von LaufwerkenSysctl Variablenvfs.vmiodirenablevfs.vmiodirenableDie Variable vfs.vmiodirenable besitzt
in der Voreinstellung den Wert 1. Die Variable kann auf den Wert
0 (ausgeschaltet) oder 1 (angeschaltet) gesetzt werden. Sie
steuert, wie Verzeichnisse vom System zwischengespeichert
werden. Die meisten Verzeichnisse sind klein und benutzen
nur ein einzelnes Fragment, typischerweise 1 kB,
im Dateisystem. Im Buffer-Cache verbrauchen sie mit
512 Bytes noch weniger Platz. Ist die Variable
ausgeschaltet (auf 0) wird der Buffer-Cache nur
eine limitierte Anzahl Verzeichnisse zwischenspeichern, auch
wenn das System über sehr viel Speicher verfügt.
Ist die Variable aktiviert (auf 1), kann der Buffer-Cache den
VM-Page-Cache benutzen, um Verzeichnisse zwischenzuspeichern.
Der ganze Speicher steht damit zum Zwischenspeichern von
Verzeichnissen zur Verfügung. Der Nachteil bei dieser
Vorgehensweise ist, dass zum Zwischenspeichern eines
Verzeichnisses mindestens eine physikalische Seite im
Speicher, die normalerweise 4 kB groß ist,
anstelle von 512 Bytes gebraucht wird. Wir empfehlen,
diese Option aktiviert zu lassen, wenn Sie Dienste zur
Verfügung stellen, die viele Dateien manipulieren.
Beispiele für solche Dienste sind Web-Caches,
große Mail-Systeme oder Netnews. Die aktivierte
Variable vermindert, trotz des verschwendeten Speichers,
in aller Regel nicht die Leistung des Systems, obwohl Sie
das nachprüfen sollten.vfs.write_behindvfs.write_behindIn der Voreinstellung besitzt die Variable
vfs.write_behind den Wert
1 (aktiviert). Mit dieser Einstellung
schreibt das Dateisystem anfallende vollständige Cluster,
die besonders beim sequentiellen Schreiben großer Dateien
auftreten, direkt auf das Medium aus. Dies verhindert,
dass sich im Buffer-Cache veränderte Puffer
(dirty buffers) ansammeln,
die die I/O-Verarbeitung nicht mehr beschleunigen
würden. Unter bestimmten Umständen blockiert
diese Funktion allerdings Prozesse. Setzen Sie in diesem
Fall die Variable vfs.write_behind auf
den Wert 0.vfs.hirunningspacevfs.hirunningspaceDie Variable vfs.hirunningspace
bestimmt systemweit die Menge ausstehender Schreiboperationen,
die dem Platten-Controller zu jedem beliebigen Zeitpunkt
übergeben werden können. Normalerweise können
Sie den Vorgabewert verwenden. Auf Systemen mit
vielen Platten kann der Wert aber auf 4 bis
5 Megabyte erhöht werden.
Beachten Sie, dass ein zu hoher Wert (größer
als der Schreib-Schwellwert des Buffer-Caches) zu
Leistungverlusten führen kann. Setzen Sie den Wert daher
nicht zu hoch! Hohe Werte können auch Leseoperationen
verzögern, die gleichzeitig mit Schreiboperationen
ausgeführt werden.Es gibt weitere Variablen, mit denen Sie den Buffer-Cache
und den VM-Page-Cache beeinflussen können. Wir raten
Ihnen allerdings davon ab, diese Variablen zu verändern:
Seit &os; 4.3 stellt sich die Verwaltung des virtuellen
Speichers sehr gut selbst ein.vm.swap_idle_enabledvm.swap_idle_enabledDie Variable vm.swap_idle_enabled
ist für große Mehrbenutzer-Systeme gedacht, auf
denen sich viele Benutzer an- und abmelden und auf denen
es viele Prozesse im Leerlauf
(idle) gibt. Solche Systeme
fragen kontinuierlich freien Speicher an. Wenn Sie die
Variable vm.swap_idle_enabled aktivieren,
können Sie die Auslagerungs-Hysterese von Seiten mit
den Variablen vm.swap_idle_threshold1 und
vm.swap_idle_threshold2 einstellen. Die
Schwellwerte beider Variablen geben die Zeit in Sekunden an,
in denen sich ein Prozess im Leerlauf befinden muss. Wenn die
Werte so eingestellt sind, dass Seiten früher als nach dem
normalen Algorithmus ausgelagert werden, verschafft das dem
Auslagerungs-Prozess mehr Luft. Aktivieren Sie diese Funktion
nur, wenn Sie sie wirklich benötigen: Die Speicherseiten
werden eher früher als später ausgelagert. Der
Platz im Swap-Bereich wird dadurch schneller verbraucht und
die Plattenaktivitäten steigen an. Auf kleine Systeme
hat diese Funktion spürbare Auswirkungen. Auf großen
Systemen, die sowieso schon Seiten auslagern müssen,
können ganze Prozesse leichter in den Speicher geladen
oder ausgelagert werden.hw.ata.wchw.ata.wcIn &os; 4.3 wurde versucht, den IDE-Schreib-Zwischenspeicher
abzustellen. Obwohl dies die Bandbreite zum Schreiben auf
IDE-Platten verringerte, wurde es aus Gründen der
Datenkonsistenz als notwenig angesehen. Der Kern des
Problems ist, dass IDE-Platten keine zuverlässige
Aussage über das Ende eines Schreibvorgangs treffen.
Wenn der Schreib-Zwischenspeicher aktiviert ist, werden die Daten
nicht in der Reihenfolge ihres Eintreffens geschrieben. Es kann
sogar passieren, dass das Schreiben mancher Blöcke
im Fall von starker Plattenaktivität auf unbefristete
Zeit verzögert wird. Ein Absturz oder Stromausfall
zu dieser Zeit kann die Dateisysteme erheblich beschädigen.
Wir entschieden uns daher für die sichere Variante
und stellten den Schreib-Zwischenspeicher ab. Leider war
damit auch ein großer Leistungsverlust verbunden, so
dass wir die Variable
nach dem Release wieder aktiviert haben. Sie sollten den
Wert der Variable hw.ata.wc auf Ihrem
System überprüfen. Wenn der Schreib-Zwischenspeicher
abgestellt ist, können Sie ihn aktivieren, indem Sie die
Variable auf den Wert 1 setzen. Dies muss zum Zeitpunkt
des Systemstarts im Boot-Loader geschehen. Eine Änderung
der Variable, nachdem der Kernel gestartet ist, hat keine
Auswirkungen.Weitere Informationen finden Sie in &man.ata.4;.SCSI_DELAY
(kern.cam.scsi_delay)kern.cam.scsi_delayKerneloptionenSCSI_DELAYMit der Kerneloption SCSI_DELAY kann
die Dauer des Systemstarts verringert werden. Der Vorgabewert
ist recht hoch und er verzögert den Systemstart um 15 oder
mehr Sekunden. Normalerweise kann dieser Wert, insbesondere
mit modernen Laufwerken, auf 5 Sekunden heruntergesetzt
werden. Ab &os; 5.0 wird dazu die
sysctl-Variable
kern.cam.scsi_delay benutzt. Die Variable
sowie die Kerneloption verwenden für die Zeitangabe
Millisekunden und nicht Sekunden.Soft UpdatesSoft UpdatestunefsMit &man.tunefs.8; lassen sich Feineinstellungen an
Dateisystemen vornehmen. Das Programm hat verschiedene Optionen,
von denen hier nur Soft Updates betrachtet werden. Soft Updates
werden wie folgt ein- und ausgeschaltet:&prompt.root; tunefs -n enable /filesystem
&prompt.root; tunefs -n disable /filesystemEin eingehängtes Dateisystem kann nicht mit &man.tunefs.8;
modifiziert werden. Soft Updates werden am besten im Single-User
Modus aktiviert, bevor Partitionen eingehangen sind.Ab &os; 4.5 können Sie Soft Updates mit der
Option -U von &man.newfs.8; beim Anlegen der
Dateisysteme aktivieren.Durch Einsatz eines Zwischenspeichers wird die Performance
im Bereich der Metadaten, vorwiegend beim Anlegen und Löschen
von Dateien, gesteigert. Wir empfehlen, Soft Updates auf allen
Dateisystemen zu aktivieren. Allerdings sollten Sie sich über
die zwei Nachteile von Soft Updates bewusst sein:
Erstens garantieren Soft Updates zwar die Konsistenz der Daten
im Fall eines Absturzes, aber es kann leicht passieren, dass
das Dateisystem über mehrere Sekunden oder gar eine Minute
nicht synchronisiert wurde. Im Fall eines Absturzes verlieren
Sie mit Soft Updates unter Umständen mehr Daten als ohne.
Zweitens verzögern Soft Updates die Freigabe von
Datenblöcken. Eine größere Aktualisierung
eines fast vollen Dateisystems, wie dem Root-Dateisystem,
z.B. während eines make installworld,
kann das Dateisystem vollaufen lassen. Dadurch würde
die Aktualisierung fehlschlagen.Details über Soft UpdatesSoft UpdatesDetailsEs gibt zwei klassische Herangehensweisen, wie
man die Metadaten des Dateisystems (also Daten
über Dateien, wie inode Bereiche oder Verzeichniseinträge)
aktualisiert auf die Platte zurückschreibt:Das historisch übliche Verfahren waren synchrone
Updates der Metadaten, d. h. wenn eine Änderung an
einem Verzeichnis nötig war, wurde anschließend
gewartet, bis diese Änderung tatsächlich auf die
Platte zurückgeschrieben worden war. Der
Inhalt der Dateien wurde im
Buffer Cache zwischengespeichert und
asynchron irgendwann später auf die Platte geschrieben.
Der Vorteil dieser Implementierung ist, dass sie
sicher funktioniert. Wenn während eines Updates ein
Ausfall erfolgt, haben die Metadaten immer einen
konsistenten Zustand. Eine Datei ist entweder komplett
angelegt oder gar nicht. Wenn die Datenblöcke einer
Datei im Fall eines Absturzes noch nicht den Weg aus dem
Buffer Cache auf die Platte gefunden haben,
kann &man.fsck.8; das Dateisystem reparieren, indem es die
Dateilänge einfach auf 0 setzt. Außerdem
ist die Implementierung einfach und überschaubar. Der
Nachteil ist, dass Änderungen der Metadaten sehr
langsam vor sich gehen. Ein rm -r
beispielsweise fasst alle Dateien eines Verzeichnisses
der Reihe nach an, aber jede dieser Änderungen am
Verzeichnis (Löschen einer Datei) wird einzeln synchron
auf die Platte geschrieben. Gleiches beim Auspacken
großer Hierarchien (tar -x).Der zweite Fall sind asynchrone Metadaten-Updates. Das
ist z. B. der Standard bei Linux/ext2fs oder die Variante
mount -o async für *BSD UFS. Man
schickt die Updates der Metadaten einfach auch noch
über den Buffer Cache, sie werden also
zwischen die Updates der normalen Daten eingeschoben.
Vorteil ist, dass man nun nicht mehr auf jeden Update
warten muss, Operationen, die zahlreiche Metadaten
ändern, werden also viel schneller. Auch
hier ist die Implementierung sehr einfach und wenig
anfällig für Fehler. Nachteil ist, dass
keinerlei Konsistenz des Dateisystems mehr gesichert ist.
Wenn mitten in einer Operation, die viele Metadaten
ändert, ein Ausfall erfolgt (Stromausfall, drücken
des Reset-Tasters), dann ist das Dateisystem
anschließend in einem unbestimmten Zustand. Niemand
kann genau sagen, was noch geschrieben worden ist und was
nicht mehr; die Datenblöcke einer Datei können
schon auf der Platte stehen, während die inode Tabelle
oder das zugehörige Verzeichnis nicht mehr aktualisiert
worden ist. Man kann praktisch kein fsck
mehr implementieren, das diesen Zustand
wieder reparieren kann, da die dazu nötigen
Informationen einfach auf der Platte fehlen. Wenn ein
Dateisystem derart beschädigt worden ist, kann man es
nur neu erzeugen (&man.newfs.8;) und die Daten
vom Backup zurückspielen.
Der historische Ausweg aus diesem Dilemma war ein
dirty region logging (auch als
Journalling bezeichnet, wenngleich
dieser Begriff nicht immer gleich benutzt und manchmal auch
für andere Formen von Transaktionsprotokollen gebraucht
wird). Man schreibt die Metadaten-Updates zwar synchron,
aber nur in einen kleinen Plattenbereich, die
logging area. Von da aus werden sie
dann asynchron auf ihre eigentlichen Bereiche verteilt. Da
die logging area ein kleines
zusammenhängendes Stückchen ist, haben die
Schreibköpfe der Platte bei massiven Operationen auf
Metadaten keine allzu großen Wege zurückzulegen,
so dass alles ein ganzes Stück schneller geht als
bei klassischen synchronen Updates. Die Komplexität
der Implementierung hält sich ebenfalls in Grenzen,
somit auch die Anfälligkeit für Fehler. Als
Nachteil ergibt sich, dass Metadaten zweimal auf die
Platte geschrieben werden müssen (einmal in die
logging area, einmal an die richtige
Stelle), so dass das im Falle regulärer
Arbeit (also keine gehäuften Metadatenoperationen) eine
Pessimisierung des Falls der synchronen
Updates eintritt, es wird alles langsamer. Dafür hat man
als Vorteil, dass im Falle eines Crashes der
konsistente Zustand dadurch erzielbar ist, dass die
angefangenen Operationen aus dem dirty region
log entweder zu Ende ausgeführt oder
komplett verworfen werden, wodurch das Dateisystem schnell
wieder zur Verfügung steht.Die Lösung von Kirk McKusick, dem Schöpfer von
Berkeley FFS, waren Soft Updates: die
notwendigen Updates der Metadaten werden im Speicher
gehalten und dann sortiert auf die Platte geschrieben
(ordered metadata updates). Dadurch hat man
den Effekt, dass im Falle massiver
Metadaten-Änderungen spätere Operationen die
vorhergehenden, noch nicht auf die Platte geschriebenen
Updates desselben Elements im Speicher
einholen. Alle Operationen, auf ein
Verzeichnis beispielsweise, werden also in der Regel noch im
Speicher abgewickelt, bevor der Update überhaupt auf
die Platte geschrieben wird (die dazugehörigen
Datenblöcke werden natürlich auch so sortiert,
dass sie nicht vor ihren Metadaten auf der Platte
sind). Im Fall eines Absturzes hat man ein implizites log
rewind: alle Operationen, die noch nicht den Weg auf
die Platte gefunden haben, sehen danach so aus, als
hätten sie nie stattgefunden. Man hat so also den
konsistenten Zustand von ca. 30 bis 60 Sekunden früher
sichergestellt. Der verwendete Algorithmus garantiert
dabei, dass alle tatsächlich benutzten Ressourcen
auch in den entsprechenden Bitmaps (Block- und inode
Tabellen) als belegt markiert sind. Der einzige Fehler, der
auftreten kann, ist, dass Ressourcen noch als
belegt markiert sind, die tatsächlich
frei sind. &man.fsck.8; erkennt dies und
korrigiert diese nicht mehr belegten Ressourcen. Die
Notwendigkeit eines Dateisystem-Checks darf aus diesem
Grunde auch ignoriert und das Dateisystem mittels
mount -f zwangsweise eingebunden werden.
Um noch allozierte Ressourcen freizugeben muss
später ein &man.fsck.8; nachgeholt werden. Das ist
dann auch die Idee des background fsck:
beim Starten des Systems wird lediglich ein
Schnappschuss des Filesystems
gemacht, mit dem &man.fsck.8; dann später arbeiten
kann. Alle Dateisysteme dürfen unsauber
eingebunden werden und das System kann sofort in den
Multiuser-Modus gehen. Danach wird ein
Hintergrund-fsck für die
Dateisysteme gestartet, die dies benötigen, um
möglicherweise irrtümlich belegte Ressourcen
freizugeben. (Dateisysteme ohne Soft
Updates benötigen natürlich immer noch
den üblichen (Vordergrund-)fsck,
bevor sie eingebunden werden können.)Der Vorteil ist, dass die Metadaten-Operationen
beinahe so schnell ablaufen wie im asynchronen Fall (also
durchaus auch schneller als beim logging, das
ja die Metadaten immer zweimal schreiben muss). Als
Nachteil stehen dem die Komplexität des Codes (mit
einer erhöhten Fehlerwahrscheinlichkeit in einem
bezüglich Datenverlust hoch sensiblen Bereich) und ein
erhöhter Speicherverbrauch entgegen. Außerdem
muss man sich an einige Eigenheiten
gewöhnen: Nach einem Absturz ist ein etwas älterer
Stand auf der Platte – statt einer leeren, aber bereits
angelegten Datei (wie nach einem herkömmlichen
fsck Lauf) ist auf einem Dateisystem mit
Soft Updates keine Spur der
entsprechenden Datei mehr zu sehen, da weder die Metadaten
noch der Dateiinhalt je auf die Platte geschrieben wurden.
Weiterhin kann der Platz nach einem rm -r
nicht sofort wieder als verfügbar markiert werden,
sondern erst dann, wenn der Update auch auf die Platte
vermittelt worden ist. Dies kann besonders dann Probleme
bereiten, wenn große Datenmengen in einem Dateisystem
ersetzt werden, das nicht genügend Platz hat, um alle
Dateien zweimal unterzubringen.Einstellungen von Kernel LimitsEinstellungenvon Kernel LimitsDatei und Prozeß Limitskern.maxfileskern.maxfilesAbhängig von den Anforderungen Ihres Systems
kann kern.maxfiles erhöht oder
erniedrigt werden. Die Variable legt die maximale
Anzahl von Dateideskriptoren auf Ihrem System fest. Wenn
die Dateideskriptoren aufgebraucht sind, werden Sie
die Meldung file: table is full
wiederholt im Puffer für Systemmeldungen sehen. Den
Inhalt des Puffers können Sie sich mit dmesg
anzeigen lassen.Jede offene Datei, jedes Socket und jede FIFO verbraucht
einen Dateideskriptor. Auf dicken Produktionsservern
können leicht Tausende Dateideskriptoren benötigt
werden, abhängig von der Art und Anzahl der gleichzeitig
laufenden Dienste.Die Voreinstellung von kern.maxfile
wird von maxusers aus Ihrer Kernelkonfiguration
bestimmt. kern.maxfiles wächst
proportional mit dem Wert von maxusers.
Wenn Sie einen angepassten Kernel kompilieren, empfiehlt es sich
diese Option entsprechend der maximalen Benutzerzahl Ihres
Systems einzustellen. Obwohl auf einer Produktionsmaschine
vielleicht nicht 256 Benutzer gleichzeitig angemeldet sind,
können die benötigten Ressourcen ähnlich denen
eines großen Webservers sein.Ab &os; 4.5 kann das System diesen Wert selbst setzen,
wenn Sie in der Konfigurationsdatei den Wert
0Der verwendete Algorithmus setzt
maxusers auf die Speichergröße
des Systems. Der minimale Wert beträgt dabei
32, das Maximum ist
384.
angeben. Ab &os; 5.X wird maxusers
auf 0 gesetzt, wenn die Option nicht
angegeben wird. Wenn Sie eine frühere Version als
&os; 4.5 einsetzen oder den Wert selbst bestimmen wollen,
sollten Sie maxusers mindestens auf
4 setzen. Dies gilt insbesondere dann,
wenn Sie beabsichtigen, das X Window-System zu benutzen
oder Software zu kompilieren. Der Grund dafür ist, dass
der wichtigste Wert, der durch maxusers
bestimmt wird, die maximale Anzahl an Prozessen ist, die auf
20 + 16 * maxusers gesetzt wird. Wenn Sie
also maxusers auf 1 setzen, können
gleichzeitig nur 36 Prozesse laufen, von denen ungefähr
18 schon beim Booten des Systems gestartet werden. Dazu
kommen nochmals etwa 15 Prozesse beim Start des
X Window-Systems. Selbst eine einfache Aufgabe wie das
Lesen einer Manualpage benötigt neun Prozesse zum Filtern,
Dekomprimieren und Betrachten der Datei. Für die meisten
Benutzer sollte es ausreichen, maxusers auf
64 zu setzen, womit 1044 gleichzeitige Prozesse zur
Verfügung stehen. Wenn Sie allerdings den
gefürchteten Fehler proc table full
beim Start eines Programms oder auf einem Server mit einer
großen Benutzerzahl (wie
ftp.FreeBSD.org) sehen, dann
sollten Sie den Wert nochmals erhöhen und den Kernel
neu bauen.Die Anzahl der Benutzer, die sich auf einem Rechner
anmelden kann, wird durch maxusersnicht begrenzt. Der Wert dieser
Variablen legt neben der möglichen Anzahl der Prozesse
eines Benutzers weitere sinnvolle Größen für
bestimmte Systemtabellen fest. Die Option pseudo-device pty 16
legt die Anzahl der erlaubten Anmeldungen von entfernten
Systemen und X-Terminals fest. Unter &os; 5.X brauchen
Sie sich um die Anzahl dieser Geräte nicht mehr zu
kümmern, da der &man.pty.4;-Treiber automatisch neue
Geräte erstellt, wenn Sie die Option
device pty in Ihre Kernelkonfigurationsdatei
aufnehmen und danach den Kernel neu bauen.kern.ipc.somaxconnkern.ipc.somaxconnDie Variable kern.ipc.somaxconn
beschränkt die Größe der Warteschlange
(Listen-Queue) für
neue TCP-Verbindungen. Der Vorgabewert von
128 ist normalerweise zu klein, um neue
Verbindungen auf einem stark ausgelasteten Webserver
zuverlässig zu handhaben. Auf solchen Servern sollte
der Wert auf 1024 oder höher gesetzt
werden. Ein Dienst (z.B. &man.sendmail.8;, oder
Apache) kann die Größe
der Queue selbst einschränken. Oft gibt es die
Möglichkeit, die Größe der Listen-Queue in
einer Konfigurationsdatei einzustellen. Eine große
Listen-Queue übersteht vielleicht auch einen
Denial of Service Angriff (DoS).Netzwerk LimitsDie Kerneloption NMBCLUSTERS schreibt
die Anzahl der Netzwerkpuffer (Mbufs) fest, die das System besitzt.
Eine zu geringe Anzahl Mbufs auf einem Server mit viel Netzwerkverkehr
verringert die Leistung von &os;. Jeder Mbuf-Cluster nimmt
ungefähr 2 kB Speicher in Anspruch, so dass ein Wert
von 1024 insgesamt 2 Megabyte Speicher für Netzwerkpuffer
im System reserviert. Wie viele Cluster benötigt werden,
lässt sich durch eine einfache Berechnung herausfinden.
Wenn Sie einen Webserver besitzen, der maximal 1000 gleichzeitige
Verbindungen servieren soll und jede der Verbindungen je einen
16 kB großen Puffer zum Senden und Empfangen braucht,
brauchen Sie ungefähr 32 MB Speicher für
Netzwerkpuffer. Als Daumenregel verdoppeln Sie diese Zahl,
so dass sich für NMBCLUSTERS der Wert
2x32 MB / 2 kB = 32768 ergibt.
Für Maschinen mit viel Speicher sollten Werte zwischen
4096 und 32768 genommen werden. Sie können diesen Wert
nicht willkürlich erhöhen, da dies bereits zu einem
Absturz beim Systemstart führen kann. Mit der Option
von &man.netstat.1; können Sie den
Gebrauch der Netzwerkpuffer kontrollieren.Die Netzwerkpuffer können beim Systemstart mit der
Loader-Variablen kern.ipc.nmbclusters
eingestellt werden. Nur auf älteren &os;-Systemen
müssen Sie die Kerneloption NMBCLUSTERS
verwenden.Die Anzahl der &man.sendfile.2; Puffer muss auf ausgelasteten
Servern, die den Systemaufruf &man.sendfile.2; oft verwenden,
vielleicht erhöht werden. Dazu können Sie die
Kerneloption NSFBUFS verwenden oder die
Anzahl der Puffer in /boot/loader.conf
(siehe &man.loader.8;) setzen. Die Puffer sollten erhöht
werden, wenn Sie Prozesse im Zustand sfbufa
sehen. Die schreibgeschützte sysctl-Variable
kern.ipc.nsfbufs zeigt die Anzahl
eingerichteten Puffer im Kernel. Der Wert dieser Variablen
wird normalerweise von kern.maxusers bestimmt.
Manchmal muss die Pufferanzahl jedoch manuell eingestellt
werden.Auch wenn ein Socket nicht blockierend angelegt wurde,
kann der Aufruf von &man.sendfile.2; blockieren, um auf
freie struct sf_buf Puffer zu warten.net.inet.ip.portrange.*net.inet.ip.portrange.*Die sysctl-Variable net.inet.ip.portrange.*
legt die Portnummern für TCP- und UDP-Sockets fest.
Es gibt drei Bereiche: den niedrigen Bereich, den
normalen Bereich und den hohen Bereich. Die meisten
Netzprogramme benutzen den normalen Bereich. Dieser Bereich
umfasst in der Voreinstellung die Portnummern 500 bis 5000
und wird durch die Variablen
net.inet.ip.portrange.first und
net.inet.ip.portrange.last festgelegt.
Die festgelegten Bereiche für Portnummern werden von
ausgehenden Verbindungen benutzt. Unter bestimmten
Umständen, beispielsweise auf stark ausgelasteten
Proxy-Servern, sind alle Portnummern für ausgehende
Verbindungen belegt. Bereiche
für Portnummern spielen auf Servern keine Rolle, die
hauptsächlich eingehende Verbindungen verarbeiten (wie ein
normaler Webserver) oder nur eine begrenzte Anzahl ausgehender
Verbindungen öffnen (beispielsweise ein Mail-Relay).
Wenn Sie keine freien Portnummern mehr haben, sollten Sie
die Variable net.inet.ip.portrange.last
langsam erhöhen. Ein Wert von 10000,
20000 oder 30000 ist
angemessen. Beachten Sie auch eine vorhandene
Firewall, wenn Sie die Bereiche für Portnummern
ändern. Einige Firewalls sperren große Bereiche
(normalerweise aus den kleinen Portnummern) und erwarten,
dass hohe Portnummern für ausgehende Verbindungen
verwendet werden. Daher kann es erforderlich sein, den
Wert von net.inet.ip.portrange.first
zu erhöhen.TCP Bandwidth Delay Product BegrenzungTCP Bandwidth Delay Product Begrenzungnet.inet.tcp.inflight.enableDie TCP Bandwidth Delay Product Begrenzung gleicht
TCP/Vegas von NetBSD. Die
Begrenzung wird aktiviert, indem Sie die sysctl-Variable
net.inet.tcp.inflight.enable auf den
Wert 1 setzen. Das System wird dann
versuchen, für jede Verbindung, das Produkt aus der
Übertragungsrate und der Verzögerungszeit zu
bestimmen. Dieses Produkt begrenzt die Datenmenge, die
für einen optimales Durchsatz zwischengespeichert
werden muss.Diese Begrenzung ist nützlich, wenn Sie Daten
über Verbindungen mit einem hohen Produkt aus
Übertragungsrate und Verzögerungszeit wie Modems,
Gigabit-Ethernet oder schnellen WANs, zur Verfügung
stellen. Insbesondere wirkt sich die Begrenzung aus, wenn
die Verbindung die TCP-Option
Window-scaling verwendet oder
große Sende-Fenster
(send window) benutzt.
Schalten Sie die Debug-Meldungen aus, wenn Sie die Begrenzung
aktiviert haben. Dazu setzen Sie die Variable
net.inet.tcp.inflight.debug auf
0. Auf Produktions-Systemen sollten Sie
zudem die Variable net.inet.tcp.inflight.min
mindestens auf den Wert 6144 setzen.
Allerdings kann ein zu hoher Wert, abhängig von der
Verbindung, die Begrenzungsfunktion unwirksam machen.
Die Begrenzung reduziert die Datenmenge in den Queues von Routern
und Switches, sowie die Datenmenge in der Queue der lokalen
Netzwerkkarte. Die Verzögerungszeit
(Round Trip Time) für
interaktive Anwendungen sinkt, da weniger Pakete
zwischengespeichert werden. Dies gilt besonders für
Verbindungen über langsame Modems. Die Begrenzung
wirkt sich allerdings nur auf das Versenden von Daten aus
(Uploads, Server). Auf den Empfang von Daten (Downloads)
hat die Begrenzung keine Auswirkungen.Die Variable net.inet.tcp.inflight.stab
sollte nicht angepasst werden. Der
Vorgabewert der Variablen beträgt 20,
das heißt es werden maximal zwei Pakete zu dem Produkt
aus Übertragungsrate und Verzögerungszeit addiert.
Dies stabilisiert den Algorithmus und verbessert die
Reaktionszeit auf Veränderungen. Bei langsamen
Verbindungen können sich aber die Laufzeiten der Pakete
erhöhen (ohne diesen Algorithmus wären sie
allerdings noch höher). In solchen Fällen
können Sie versuchen, den Wert der Variablen auf
15, 10 oder
5 zu erniedrigen. Gleichzeitig müssen
Sie vielleicht auch net.inet.tcp.inflight.min
auf einen kleineren Wert (beispielsweise 3500)
setzen. Ändern Sie diese Variablen nur ab, wenn Sie
keine anderen Möglichkeiten mehr haben.Unter &os; 4.X und früheren Versionen
befanden sich die inflight
Sysctl-Variablen direkt unterhalb von
net.inet.tcp. Sie hießen:
net.inet.tcp.inflight_debug,
net.inet.tcp.inflight_enable,
net.inet.tcp.inflight_max,
net.inet.tcp.inflight_min und
net.inet.tcp.inflight_stab.Virtueller Speicher (Virtual
Memory)kern.maxvnodesEin vnode ist die interne Darstellung einer Datei oder
eines Verzeichnisses. Die Erhöhung der Anzahl der
für das Betriebssystem verfügbaren vnodes
verringert also die Schreib- und Lesezugriffe auf
Ihre Festplatte. vnodes werden im Normalfall vom
Betriebssystem automatisch vergeben und müssen
nicht von Ihnen angepasst werden. In einigen Fällen
stellt der Zugriff auf eine Platte allerdings einen
Flaschenhals dar, daher sollten Sie in diesem Fall die Anzahl
der möglichen vnodes erhöhen, um dieses Problem zu
beheben. Beachten Sie dabei aber die Größe
des inaktiven und freien Hauptspeichers.Um die Anzahl der derzeit verwendeten vnodes zu sehen,
geben Sie Folgendes ein:&prompt.root; sysctl vfs.numvnodes
vfs.numvnodes: 91349Die maximal mögliche Anzahl der vnodes erhalten
Sie durch die Eingabe von:&prompt.root; sysctl kern.maxvnodes
kern.maxvnodes: 100000Wenn sich die Anzahl der genutzten vnodes dem maximal
möglichen Wert nähert, sollten Sie den Wert
kern.maxvnodes zuerst um etwa 1.000
erhöhen. Beobachten Sie danach die Anzahl der vom
System genutzten vfs.numvnodes.
Nähert sich der Wert wiederum dem definierten
Maximum, müssen Sie kern.maxvnodes
nochmals erhöhen. Sie sollten nun eine Änderung
Ihres Speicherverbrauches (etwa über &man.top.1;)
registrieren können und über mehr aktiven
Speicher verfügen.Hinzufügen von Swap-BereichenEgal wie vorausschauend Sie planen, manchmal entspricht ein System
einfach nicht Ihren Erwartungen. Es ist leicht, mehr Swap-Bereiche
hinzuzufügen. Dazu stehen Ihnen drei Wege offen: Sie
können eine neue Platte einbauen, den Swap-Bereich über NFS
ansprechen oder eine Swap-Datei auf einer existierenden Partition
einrichten.Swap auf einer neuen FestplatteDer einfachste Weg, zusätzlich einen Swap-Bereich
einzurichten, ist der Einbau einer neuen Platte, die Sie
sowieso gebrauchen können. Die Anordnung von
Swap-Bereichen wird in
des Handbuchs besprochen.Swap-Bereiche über NFSSwap-Bereiche über NFS sollten Sie nur dann einsetzen, wenn
Sie über keine lokale Platte verfügen. In &os;
Versionen vor 4.X ist dies zudem sehr langsam und nicht effizient.
Ab &os; 4.0 ist das Nutzen von Swap über NFS genügend
schnell und effizient, doch wird es durch die zur Verfügung
stehende Bandbreite limitiert und belastet zusätzlich den
NFS-Server.Swap-DateienSie können eine Datei festgelegter Größe als
Swap-Bereich nutzen. Im folgenden Beispiel werden wir eine 64 MB
große Datei mit Namen /usr/swap0
benutzen, Sie können natürlich einen beliebigen Namen
für den Swap-Bereich benutzen.Erstellen einer Swap-Datei mit &os; 4.XZuerst stellen Sie bitte sicher, dass Ihr Kernel den
vnode-Treiber enthält. In neueren Versionen von
GENERIC ist dieser
nicht enthalten.pseudo-device vn 1 #Vnode driver (turns a file into a device)Erstellen Sie das vn-Gerät:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV vn0Legen Sie die Swap-Datei /usr/swap0
an:&prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64Setzen Sie die richtigen Berechtigungen für
/usr/swap0:&prompt.root; chmod 0600 /usr/swap0Aktivieren Sie die Swap-Datei in
/etc/rc.conf:swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.Um die Swap-Datei zu aktivieren, führen Sie
entweder einen Neustart durch oder geben das folgende Kommando
ein:&prompt.root; vnconfig -e /dev/vn0b /usr/swap0 swapErstellen einer Swap-Datei mit &os; 5.XStellen Sie sicher, dass der Kernel RAM-Disks
(&man.md.4;) unterstützt. Dies ist in der
GENERIC-Konfiguration
voreingestellt.device md # Memory "disks"Legen Sie die Swap-Datei
/usr/swap0 an:&prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64Setzen Sie die richtigen Berechtigungen für
/usr/swap0:&prompt.root; chmod 0600 /usr/swap0Aktivieren Sie die Swap-Datei
/etc/rc.conf:swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.Um die Swap-Datei zu aktivieren, führen Sie
entweder einen Neustart durch oder geben das folgende Kommando
ein:&prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0HitenPandyaVerfasst von TomRhodesEnergie- und RessourcenverwaltungEs ist sehr wichtig, Hardware effizient einzusetzen. Vor der
Einführung des Advanced Configuration and Power
Interface (ACPI) konnten der
Stromverbrauch und die Wärmeabgabe eines Systems nur sehr
schlecht von Betriebssystemen gesteuert werden. Die Hardware wurde
mit BIOS-Funktionen, wie Plug and Play BIOS
(PNPBIOS) oder Advanced Power Management
(APM), gesteuert. Das Betriebssystem soll aber das System
überwachen können und auf Ereignisse, beispielsweise einen
unerwarteten Temperaturanstieg, reagieren können.Dieser Abschnitt erklärt das Advanced Configuration and
Power Interface (ACPI). Beachten Sie, dass Sie
das ACPI erst ab &os; 5.X als Kernelmodul
zur Verfügung steht. In &os; 4.9 können Sie
ACPI aktivieren, indem Sie die nachstehende
Zeile in die Kernelkonfigurationsdatei aufnehmen und den Kernel
neu übersetzen:device acpicaWas ist ACPI?ACPIAPMAdvanced Configuration and Power Interface
(ACPI) ist ein Standard verschiedener
Hersteller, der die Verwaltung von Hardware und
Energiesparfunktionen festlegt. Die
ACPI-Funktionen können von einem
Betriebssystem gesteuert werden. Der Vorgänger des
ACPI, Advanced Power Management
(APM), der auch in &os; 4.X verwendet
wird, erwies sich in modernen Systemen als unzureichend.Mängel des Advanced Power Managements (APM)Das Advanced Power Management (APM)
steuert den Energieverbrauch eines Systems auf Basis
der Systemaktivität. Das APM-BIOS wird von dem
Hersteller des Systems zur Verfügung gestellt
und ist auf die spezielle Hardware angepasst. Der
APM-Treiber des Betriebssystems greift auf das
APM Software Interface zu, das den
Energieverbrauch regelt.Das APM hat hauptsächlich
vier Probleme. Erstens läuft die Energieverwaltung
unabhängig vom Betriebssystem in einem
(herstellerspezifischen) BIOS. Beispielsweise kann
das APM-BIOS die Festplatten nach einer konfigurierbaren
Zeit ohne die Zustimmung des Betriebssystems herunterfahren.
Zweitens befindet sich die ganze APM-Logik im BIOS; das
Betriebssystem hat gar keine APM-Komponenten. Bei Problemen
mit dem APM-BIOS muss das Flash-ROM aktualisiert werden.
Diese Prozedur ist gefährlich, da sie im Fehlerfall
das System unbrauchbar machen kann. Zum Dritten ist APM
eine Technik, die herstellerspezifisch ist und nicht
koordiniert wird. Fehler im BIOS eines Herstellers werden
nicht unbedingt im BIOS anderer Hersteller korrigiert.
Das letzte Problem ist, dass im APM-BIOS nicht genügend
Platz vorhanden ist, um eine durchdachte oder eine auf den
Zweck der Maschine zugeschnittene Energieverwaltung
zu implementieren.Das Plug and Play BIOS (PNPBIOS)
war ebenfalls unzureichend. Das PNPBIOS verwendet eine
16-Bit-Technik. Damit das Betriebssystem das PNPBIOS
ansprechen kann, muss es in einer 16-Bit-Emulation laufen.Der APM-Treiber von &os; ist in
der Hilfeseite &man.apm.4; beschrieben.Konfiguration des ACPIDas Modul acpi.ko wird
standardmäßig beim Systemstart vom &man.loader.8;
geladen und sollte daher nicht
fest in den Kernel eingebunden werden. Dadurch kann
acpi.ko ohne einen Neubau des Kernels ersetzt
werden und das Modul ist leichter zu testen. Wenn Sie in der
Ausgabe von &man.dmesg.8; das Wort ACPI sehen,
ist das Modul geladen worden. Es ist nicht sinnvoll, das Modul
im laufenden Betrieb zu laden, dies kann sogar manchmal fatale
Folgen haben.
Das Modul kann im laufenden Betrieb nicht entfernt werden,
da es zur Kommunikation mit der Hardware verwendet wird.
Mit &man.acpiconf.8; können Sie das ACPI
konfigurieren (unter anderem können Sie damit auch die
Energieverwaltung deaktivieren).ACPI und APM
können nicht zusammen verwendet werden. Das zuletzt
geladene Modul beendet sich, sobald es bemerkt, dass das andere
Modul geladen ist.Mit &man.acpiconf.8; können Sie das System in einen
Ruhemodus (sleep mode) versetzen.
Es gibt verschiedene Modi (von 1 bis
5), die Sie auf der Kommandozeile mit
angeben können. Für die meisten
Anwender ist der Modus 1 völlig
ausreichend. Der Modus 5 schaltet das System
aus (Soft-off) und entspricht dem
Ausführen des folgenden Befehls:&prompt.root; halt -pWeitere Informationen entnehmen Sie bitte der Hilfeseite
&man.acpiconf.8;.NateLawsonVerfasst von PeterSchultzMit Beiträgen von TomRhodesACPI-FehlersucheACPIProbleme mitACPI ist ein gänzlich neuer
Weg, um Geräte aufzufinden und deren Stromverbrauch
zu regulieren. Weiterhin bietet ACPI
einen einheitlichen Zugriff auf Geräte, die vorher
vom BIOS verwaltet wurden. Es werden
zwar Fortschritte gemacht, dass ACPI
auf allen Systemen läuft, doch tauchen immer wieder
Fehler auf: fehlerhafter Bytecode der
ACPI-Machine-Language
(AML) einiger Systemplatinen,
ein unvollständiges &os;-Kernel-Subsystem oder
Fehler im ACPI-CA-Interpreter von &intel;.Dieser Abschnitt hilft Ihnen, zusammen mit den Betreuern
des &os;-ACPI-Subsystems, Fehlerquellen
zu finden und Fehler zu beseitigen. Danke, dass Sie diesen
Abschnitt lesen; hoffentlich hilft er, Ihre Systemprobleme
zu lösen.Fehlerberichte einreichenBevor Sie einen Fehlerbericht einreichen, stellen
Sie bitte sicher, dass Ihr BIOS
und die Firmware Ihres Controllers aktuell sind.Wenn Sie sofort einen Fehlerbericht einsenden wollen,
schicken Sie bitte die folgenden Informationen an
die Mailingliste freebsd-acpi:Beschreiben Sie den Fehler und alle Umstände,
unter denen der Fehler auftritt. Geben Sie
ebenfalls den Typ und das Modell Ihres Systems
an. Wenn Sie einen neuen Fehler entdeckt haben,
versuchen Sie möglichst genau zu beschreiben,
wann der Fehler das erste Mal aufgetreten ist.Die Ausgabe von &man.dmesg.8; nach der Eingabe
von boot -v.
Geben Sie auch alle Fehlermeldungen an, die erscheinen,
wenn Sie den Fehler provozieren.Die Ausgabe von &man.dmesg.8; nach der Eingabe
von boot -v und mit deaktiviertem
ACPI, wenn das Problem ohne
ACPI nicht auftritt.Die Ausgabe von sysctl hw.acpi.
Dieses Kommando zeigt die vom System unterstützten
ACPI-Funktionen an.Die URL, unter der die
ACPI-Source-Language
(ASL) liegt. Schicken Sie
bitte nicht die ASL
an die Mailingliste, da die ASL
sehr groß sein kann. Eine Kopie der
ASL erstellen Sie mit dem
nachstehenden Befehl:&prompt.root; acpidump -t -d > name-system.aslSetzen Sie bitte für name
den Namen Ihres Kontos und für
system den Hersteller und
das Modell Ihres Systems ein. Zum Beispiel:
njl-FooCo6000.asl.Obwohl die meisten Entwickler die Mailingliste
&a.current.name; lesen, sollten Sie Fehlerberichte an
die Liste &a.acpi.name; schicken. Seien Sie bitte
geduldig; wir haben alle Arbeit außerhalb des Projekts.
Wenn der Fehler nicht offensichtlich ist, bitten
wir Sie vielleicht, einen offiziellen Fehlerbericht
(PR) mit &man.send-pr.1; einzusenden.
Geben Sie im Fehlerbericht bitte dieselben Informationen
wie oben an. Mithilfe der PRs
verfolgen und lösen wir Probleme. Senden Sie
bitte keinen PR ein, ohne vorher
den Fehlerbericht an die Liste &a.acpi.name; zu senden.
Wir benutzen die PRs als Erinnerung
an bestehende Probleme und nicht zum Sammeln aller
Probleme. Es kann sein, dass der Fehler schon von
jemand anderem gemeldet wurde.ACPI-GrundlagenACPIACPI gibt es in allen modernen Rechnern
der ia32- (x86), ia64- (Itanium) und amd64- (AMD) Architektur.
Der vollständige Standard bietet Funktionen
zur Steuerung und Verwaltung der CPU-Leistung,
der Stromversorgung, von Wärmebereichen, Batterien,
eingebetteten Controllern und Bussen. Auf den meisten
Systemen wird nicht der vollständige Standard implementiert.
Arbeitsplatzrechner besitzen meist nur Funktionen zur
Verwaltung der Busse, während Notebooks Funktionen
zur Temperaturkontrolle und Ruhezustände besitzen.Ein ACPI konformes System
besitzt verschiedene Komponenten. Die BIOS-
und Chipsatz-Hersteller stellen mehrere statische
Tabellen bereit (zum Beispiel die
Fixed-ACPI-Description-Table,
FADT). Die Tabellen enthalten beispielsweise
die mit SMP-Systemen benutzte
APIC-Map, Konfigurationsregister und
einfache Konfigurationen. Zusätzlich gibt es die
Differentiated-System-Description-Table (DSDT),
die Bytecode enthält. Die Tabelle ordnet Geräte
und Methoden in einem baumartigen Namensraum an.Ein ACPI-Treiber muss die statischen
Tabellen einlesen, einen Interpreter für den Bytecode
bereitstellen und die Gerätetreiber im Kernel so
modifizieren, dass sie mit dem ACPI-Subsystem
kommunizieren. Für &os;, Linux und NetBSD hat &intel;
den Interpreter ACPI-CA, zur Verfügung
gestellt. Der Quelltext zu ACPI-CA
befindet sich im Verzeichnis
src/sys/contrib/dev/acpica.
Die Schnittstelle von ACPI-CA zu &os;
befindet sich unter src/sys/dev/acpica/Osd.
Treiber, die verschiedene ACPI-Geräte
implementieren, befinden sich im Verzeichnis
src/sys/dev/acpica.Häufige ProblemeACPIProbleme mitDamit ACPI richtig funktioniert,
müssen alle Teile funktionieren. Im Folgenden
finden Sie eine Liste mit Problemen und möglichen
Umgehungen oder Fehlerbehebungen. Die Liste ist nach
der Häufigkeit, mit der die Probleme auftreten,
sortiert.MausproblemeEs kann vorkommen, dass die Maus nicht mehr funktioniert,
wenn Sie nach einem Suspend weiterarbeiten wollen. Ist dies
bei Ihnen der Fall, reicht es meistens aus, den Eintrag
hint.psm.0.flags="0x3000" in Ihre
/boot/loader.conf aufzunehmen. Besteht
das Problem weiterhin, sollten Sie einen Fehlerbericht
an das FreeBSD Project senden.Suspend/ResumeACPI kennt drei
Suspend-to-RAM-Zustände
(STR):
S1-S3.
Es gibt einen Suspend-to-Disk-Zustand:
S4. Der Zustand S5
wird Soft-Off genannt. In diesem Zustand befindet
sich ein Rechner, wenn die Stromversorgung angeschlossen
ist, der Rechner aber nicht hochgefahren ist. Der
Zustand S4 kann auf zwei Arten
implementiert werden:
S4BIOS und
S4OS.
Im ersten Fall wird der Suspend-to-Disk-Zustand durch
das BIOS hergestellt im zweiten
Fall alleine durch das Betriebssystem.Die Suspend-Zustände sind Ruhezustände,
in denen der Rechner weniger Energie als im
Normalbetrieb benötigt. Resume bezeichnet
die Rückkehr zum Normalbetrieb.Die Suspend-Zustände können Sie mit
dem Kommando sysctl hw.acpi
ermitteln. Das Folgende könnte beispielsweise
ausgegeben werden:hw.acpi.supported_sleep_state: S3 S4 S5
hw.acpi.s4bios: 0Diese Ausgabe besagt, dass mit dem Befehl
acpiconf -s die Zustände
S3, S4OS
und S5 eingestellt werden können.
Hätte den Wert
1, gäbe es den Zustand
S4BIOS anstelle
von S4OS.Wenn Sie die Suspend- und Resume-Funktionen
testen, fangen Sie mit dem S1-Zustand
an, wenn er angeboten wird. Dieser Zustand wird
am ehesten funktionieren, da der Zustand wenig
Treiber-Unterstützung benötigt. Der Zustand
S2 ist ähnlich wie
S1, allerdings hat ihn noch niemand
implementiert. Als nächstes sollten Sie den
Zustand S3 ausprobieren. Dies
ist der tiefste STR-Schlafzustand.
Dieser Zustand ist auf massive Treiber-Unterstützung
angewiesen, um die Geräte wieder richtig zu
initialisieren. Wenn Sie Probleme mit diesem Zustand
haben, können Sie die Mailingliste
&a.acpi.name; anschreiben. Erwarten Sie allerdings
nicht zu viel: Es gibt viele Treiber und Geräte,
an denen noch gearbeitet und getestet wird.Um das Problem einzugrenzen, entfernen Sie soviele
Treiber wie möglich aus dem Kernel. Sie können
das Problem isolieren, indem Sie einen Treiber nach
dem anderen laden, bis der Fehler wieder auftritt.
Typischerweise verursachen binäre Treiber wie
nvidia.ko, X11-Grafiktreiber und
USB-Treiber die meisten Fehler,
hingegen laufen Ethernet-Treiber für gewöhnlich
sehr zuverlässig. Wenn ein Treiber
zuverlässig geladen und entfernt werden kann,
können Sie den Vorgang automatisieren, indem
Sie die entsprechenden Kommandos in die Dateien
/etc/rc.suspend und
/etc/rc.resume einfügen.
In den Dateien finden Sie ein deaktiviertes Beispiel,
das einen Treiber lädt und wieder entfernt.
Ist die Bildschirmanzeige bei der Wiederaufnahme
des Betriebs gestört, setzen Sie bitte die
Variable auf
0. Versuchen Sie auch, die Variable
auf kürzere
Zeitspannen zu setzen.Die Suspend- und Resume-Funktionen können
Sie auch auf einer neuen Linux-Distribution
mit ACPI testen. Wenn es mit
Linux funktioniert, liegt das Problem wahrscheinlich
bei einem &os;-Treiber. Es hilft uns, das Problem
zu lösen, wenn Sie feststellen können, welcher
Treiber das Problem verursacht. Beachten Sie bitte,
dass die ACPI-Entwickler normalerweise
keine anderen Treiber pflegen (beispielsweise Sound- oder
ATA-Treiber). Es ist wohl das beste,
die Ergebnisse der Fehlersuche an die Mailingliste
&a.current.name; und den Entwickler des Treibers
zu schicken. Wenn Ihnen danach ist, versuchen Sie,
den Fehler in der Resume-Funktion zu finden, indem
Sie einige &man.printf.3;-Anweisungen in den Code
des fehlerhaften Treibers einfügen.Schließlich können Sie ACPI
noch abschalten und stattdessen APM
verwenden. Wenn die Suspend- und Resume-Funktionen mit
APM funktionieren, sollten Sie
vielleicht besser APM verwenden
(insbesondere mit alter Hardware von vor dem Jahr 2000).
Die Hersteller benötigten einige Zeit, um
ACPI korrekt zu implementieren, daher
gibt es mit älterer Hardware oft
ACPI-Probleme.Temporäre oder permanente SystemhängerDie meisten Systemhänger entstehen durch verlorene
Interrupts oder einen Interrupt-Sturm.
Probleme werden verursacht durch die Art, in der das
BIOS Interrupts vor dem Systemstart
konfiguriert, durch eine fehlerhafte
APIC-Tabelle und durch die
Zustellung des System-Control-Interrupts
(SCI).Interrupt-SturmAnhand der Ausgabe des Befehls
vmstat -i können Sie verlorene
Interrupts von einem Interrupt-Sturm unterscheiden.
Untersuchen Sie die Ausgabezeile, die acpi0
enthält. Ein Interrupt-Sturm liegt vor, wenn
der Zähler öfter als ein paar Mal pro
Sekunde hochgezählt wird. Wenn sich das System
aufgehangen hat, versuchen Sie mit der Tastenkombination
CtrlAltEsc in den Debugger DDB
zu gelangen. Geben Sie dort den Befehl
show interrupts ein.APICdeaktivierenWenn Sie Interrupt-Probleme haben, ist es vorerst
wohl am besten, APIC zu deaktivieren.
Tragen Sie dazu die Zeile
hint.apic.0.disabled="1" in
loader.conf ein.Abstürze (Panics)Panics werden so
schnell wie möglich behoben; mit ACPI
kommt es aber selten dazu. Zuerst sollten Sie
die Panic reproduzieren und dann versuchen einen
backtrace (eine
Rückverfolgung der Funktionsaufrufe) zu erstellen.
Richten Sie dazu den DDB über
die serielle Schnittstelle (siehe
) oder eine gesonderte
&man.dump.8;-Partition ein. In DDB
können Sie den backtrace
mit dem Kommando tr erstellen.
Falls Sie den backtrace
vom Bildschirm abschreiben müssen, schreiben
Sie bitte mindestens die fünf ersten und die
fünf letzten Zeile der Ausgabe auf.Versuchen Sie anschließend, das Problem
durch einen Neustart ohne ACPI
zu beseitigen. Wenn das funktioniert hat, können
Sie versuchen, das verantwortliche
ACPI-Subsystem durch Setzen der
Variablen
herauszufinden. Die Hilfeseite &man.acpi.4; enthält
dazu einige Beispiele.Nach einem Suspend oder einem Stopp startet
das System wiederSetzen Sie zuerst in &man.loader.conf.5; die Variable
auf
0. Damit wird verhindert, dass
ACPI während des Systemabschlusses
die Bearbeitung verschiedener Ereignisse deaktiviert.
Auf manchen Systemen muss die Variable den Wert
1 besitzen (die Voreinstellung).
Normalerweise wird der unerwünschte Neustart
des Systems durch Setzen dieser Variablen behoben.Andere ProblemeWenn Sie weitere Probleme mit ACPI
haben (Umgang mit einer Docking-Station, nicht erkannte
Geräte), schicken Sie bitte eine Beschreibung an die
Mailingliste. Allerdings kann es sein, dass einige
Probleme von noch unvollständigen Teilen des
ACPI-Subsystems abhängen und
es etwas dauern kann bis diese Teile fertig sind.
Seien Sie geduldig und rechnen Sie damit, dass wir
Ihnen Fehlerbehebungen zum Testen senden.ASL, acpidump und
IASLACPIASLEin häufiges Problem ist fehlerhafter Bytecode
des BIOS-Herstellers. Dies erkennen
Sie an Kernelmeldungen auf der Konsole wie die folgende:ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\
(Node 0xc3f6d160), AE_NOT_FOUNDOft können Sie das Problem dadurch lösen,
dass Sie eine aktuelle BIOS-Version
einspielen. Die meisten Meldungen auf der Konsole sind
harmlos, wenn aber beispielsweise der Batteriestatus
falsch angezeigt wird, können Sie in den
Meldungen nach Problemen mit der
AML-Machine-Language
(AML) suchen. Der Bytecode der
AML wird aus der
ACPI-Source-Language (ASL)
übersetzt und in einer Tabelle, der DSDT,
abgelegt. Eine Kopie der ASL
können Sie mit dem Befehl &man.acpidump.8; erstellen.
Verwenden Sie mit diesem Befehl sowohl die Option
(die Inhalte der statischen
Tabellen anzeigen) als auch die Option
(die AML in ASL
zurückübersetzen). Ein Beispiel für
die Syntax finden Sie im Abschnitt Fehlerberichte einreichen.Sie können einfach prüfen, ob sich die
ASL übersetzen lässt.
Für gewöhnlich können Sie Warnungen
während des Übersetzens ignorieren.
Fehlermeldungen führen normal dazu, dass
ACPI fehlerhaft arbeitet. Ihre
ASL übersetzen Sie mit dem
nachstehenden Kommando:&prompt.root; iasl ihre.aslDie ASL reparierenACPIASLAuf lange Sicht ist es unser Ziel, dass
ACPI ohne Eingriffe des Benutzers
läuft. Zurzeit entwickeln wir allerdings noch
Umgehungen für Fehler der BIOS-Hersteller.
Der µsoft;-Interpreter (acpi.sys
und acpiec.sys) prüft die
ASL nicht streng gegen den Standard.
Daher reparieren BIOS-Hersteller,
die ACPI nur unter &windows; testen,
ihre ASL nicht. Wir hoffen, dass
wir das vom Standard abweichende Verhalten des
µsoft;-Interpreters dokumentieren und in &os; replizieren
können. Dadurch müssen Benutzer ihre
ASL nicht selbst reparieren.
Sie können Ihre ASL selbst reparieren,
wenn Sie ein Problem umgehen und uns helfen möchten.
Senden Sie uns bitte die mit &man.diff.1; erstellte Differenz
zwischen alter und neuer ASL. Wir
werden versuchen, den Interpreter ACPI-CA
zu korrigieren, damit die Fehlerbehebung nicht mehr
erforderlich ist.ACPIFehlermeldungenDie nachfolgende Liste enthält häufige
Fehlermeldungen, deren Ursache und eine Beschreibung,
wie die Fehler korrigiert werden:Abhängigkeiten vom BetriebssystemEinige AMLs gehen davon aus, dass
die Welt ausschließlich aus verschiedenen
&windows;-Versionen besteht. &os; kann vorgeben, irgendein
Betriebssystem zu sein. Versuchen Sie das Betriebssystem,
das Sie in der ASL finden, in der
Datei /boot/loader.conf anzugeben:
hw.acpi.osname="Windows 2001".Fehlende Return-AnweisungenEinige Methoden verzichten auf die vom Standard
vorgeschriebene Rückgabe eines Wertes. Obwohl
der Interpreter ACPI-CA dies nicht
beheben kann, besitzt &os; die Möglichkeit, den
Rückgabewert implizit zu setzen. Wenn Sie
wissen, welcher Wert zurückgegeben werden muss,
können Sie die fehlenden Return-Anweisungen
selbst einsetzen. Die Option
zwingt iasl, die ASL
zu übersetzen.Überschreiben der vorgegebenen
AMLNachdem Sie Ihre ASL in der
Datei ihre.asl angepasst haben,
übersetzen Sie die ASL wie folgt:&prompt.root; iasl ihre.aslMit der Option erzwingen Sie das
Erstellen der AML auch wenn während
der Übersetzung Fehler auftreten. Beachten Sie,
dass einige Fehler, wie fehlende Return-Anweisungen,
automatisch vom Interpreter umgangen werden.In der Voreinstellung erstellt der Befehl
iasl die Ausgabedatei
DSDT.aml. Wenn Sie diese Datei
anstelle der fehlerhaften Kopie des BIOS
laden wollen, editieren Sie /boot/loader.conf
wie folgt:acpi_dsdt_load="YES"
acpi_dsdt_name="/boot/DSDT.aml"Stellen Sie bitte sicher, dass sich die Datei
DSDT.aml im Verzeichnis
/boot befindet.ACPI-Meldungen zur
Fehlersuche erzeugenACPIProbleme mitACPIFehlersucheDer ACPI-Treiber besitzt
flexible Möglichkeiten zur Fehlersuche. Sie
können sowohl die zu untersuchenden Subsysteme
als auch die zu erzeugenden Ausgaben festlegen. Die zu
untersuchenden Subsysteme werden als so genannte
layers angegeben. Die Subsysteme sind in
ACPI-CA-Komponenten
(ACPI_ALL_COMPONENTS) und
ACPI-Hardware (ACPI_ALL_DRIVERS)
aufgeteilt. Welche Meldungen ausgegeben werden, wird über
level gesteuert. level reicht
von ACPI_LV_ERROR (es werden nur Fehler
ausgegeben) bis zu ACPI_LV_VERBOSE (alles
wird ausgegeben). level ist eine Bitmaske,
sodass verschiedene Stufen auf einmal (durch Leerzeichen
getrennt) angegeben werden können. Die erzeugte
Ausgabemenge passt vielleicht nicht in den Konsolenpuffer.
In diesem Fall sollten Sie die Ausgaben mithilfe einer
seriellen Konsole sichern. Die möglichen Werte
für layers und level
werden in der Hilfeseite &man.acpi.4; beschrieben.Die Ausgaben zur Fehlersuche sind in der Voreinstellung
nicht aktiviert. Wenn ACPI im Kernel
enthalten ist, fügen Sie options ACPI_DEBUG
zur Kernelkonfigurationsdatei hinzu. Sie können die
Ausgaben zur Fehlersuche global aktivieren, indem Sie in der
Datei /etc/make.conf die Zeile
ACPI_DEBUG=1 einfügen. Das Modul
acpi.ko können Sie wie folgt
neu übersetzen:&prompt.root; cd /sys/modules/acpi/acpi
&& make clean &&
make ACPI_DEBUG=1Installieren Sie anschließend
acpi.ko im Verzeichnis
/boot/kernel.
In der Datei loader.conf stellen Sie
level und layer ein. Das
folgende Beispiel aktiviert die Ausgabe von Fehlern für
alle ACPI-CA-Komponenten und alle
ACPI-Hardwaretreiber (wie
CPU, LID):debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
debug.acpi.level="ACPI_LV_ERROR"Wenn ein Problem durch ein bestimmtes Ereignis,
beispielsweise den Start nach einem Ruhezustand, hervorgerufen
wird, können Sie die Einstellungen für
level und layer auch mit dem
Kommando sysctl vornehmen. In diesem
Fall müssen Sie die Datei loader.conf
nicht editieren. Auf der sysctl-Kommandozeile
geben Sie dieselben Variablennamen wie in
loader.conf an.ACPI-InformationsquellenWeitere Informationen zu ACPI
erhalten Sie an den folgenden Stellen:die &a.acpi; Mailingliste,die Archive der ACPI-Mailingliste:
,die alten Archive der ACPI-Mailingliste:
,die ACPI-Spezifikation (Version 2.0):
,in den nachstehenden &os;-Hilfeseiten:
&man.acpi.4;, &man.acpi.thermal.4;, &man.acpidump.8;,
&man.iasl.8; und &man.acpidb.8;,
DSDT debugging resource
(als Beispiel wird Compaq erläutert, die
Ressource ist aber dennoch nützlich).
diff --git a/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml b/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml
index 9dc7bfd50d..b146e2ab1a 100644
--- a/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml
@@ -1,1164 +1,1168 @@
ChristopheJunietBeigetragen von MartinHeinenÜbersetzt von Desktop-AnwendungenÜbersichtFreeBSD bietet eine reiche Auswahl an Desktop-Anwendungen,
wie Browser und Textverarbeitungen, die als Pakete oder mit der
Ports-Sammlung installiert werden. Gerade neue Benutzer erwarten
Anwendungen mit einer grafischen Benutzeroberfläche an ihrem
Arbeitsplatz. Dieses Kapitel zeigt Ihnen,
wie Sie einige der beliebtesten Desktop-Anwendungen mühelos
installieren.Wenn Sie Ports installieren, beachten Sie, dass dabei die
Quelltexte der Programme übersetzt werden. Abhängig
von dem Programm und der Geschwindigkeit Ihrer Maschinen kann das
sehr lange dauern. Wenn Ihnen das Übersetzen zu lange dauert,
können Sie die meisten Programme der Ports-Sammlung auch als
fertige Pakete installieren.Da FreeBSD binär kompatibel zu Linux ist, können Sie
zahlreiche für Linux entwickelte Desktop-Anwendungen einsetzen.
Bevor Sie allerdings Linux-Anwendungen installieren, sollten Sie das
lesen. Wenn Sie nach einem bestimmten Port
suchen, zum Beispiel mit &man.whereis.1;, beachten Sie, dass die
Namen vieler Programme, die die Linux-Binärkompatibilität
benutzen, mit linux- anfangen. Wir gehen im
Folgenden davon aus, dass Sie die Linux-Binärkompatibilität
aktiviert haben, bevor Sie Linux-Anwendungen installieren.Dieses Kapitel behandelt Anwendungen aus den Bereichen:Browser (Mozilla,
Opera,
Firefox,
Konqueror)Büroanwendungen (KOffice,
AbiWord,
The GIMP,
OpenOffice.org)Dokumentformate(&acrobat.reader;,
gv,
Xpdf,
GQview)Finanzsoftware (
GnuCash,
Gnumeric,
Abacus)Bevor Sie dieses Kapitel lesen, sollten SieSoftware Dritter installieren können
() undLinux-Anwendungen installieren können
().Wie Sie Multimedia-Anwendungen einrichten, wird in einem
gesonderten Kapitel erklärt.
Wie Sie E-Mail einrichten und benutzen, wird in
beschrieben.BrowserBrowserWebFreeBSD besitzt keinen vorinstallierten Browser, stattdessen
enthält das www-Verzeichnis
der Ports-Sammlung Browser, die Sie installieren können.
Wenn Ihnen das Übersetzen der Browser zu lange dauert, bei
einigen Browsern dauert das wirklich lange, installieren Sie die
Pakete, die es für viele Browser gibt.KDE und
GNOME enthalten schon HTML-Browser.
Das Einrichten dieser grafischen Benutzeroberflächen ist
in beschrieben.Wenn Sie besonders schlanke Browser benötigen, suchen Sie in
der Ports-Sammlung nach
www/dillo,
www/links oder
www/w3m.Dieser Abschnitt behandelt die nachstehenden Anwendungen:AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige AbhängigkeitenMozillahochhochGtk+OperaniedrigniedrigEs gibt eine &os;- und eine Linux-Version.
Die Linux-Version hängt von der
Linux-Kompatibilität (Linux
Binary Compatibility) und
linux-openmotif ab.FirefoxmittelhochGtk+KonquerormittelhochKDE-BiliothekenMozillaMozilla
- Mozilla ist wahrscheinlich der beste
- Browser für Ihren Desktop, da er modern, stabil und komplett
- nach FreeBSD portiert ist. Der Browser entspricht dem
- HTML-Standard und verfügt über einen E-Mail-Client
- und einen Newsreader. Für den Fall, dass Sie
+ Mozilla ist ein moderner, stabiler
+ und kompletter Browser, der nach FreeBSD portiert wurde. Er
+ entspricht dem HTML-Standard und verfügt über einen
+ E-Mail-Client und einen Newsreader. Für den Fall, dass Sie
einige HTML-Seiten selbst verfassen wollen, enthält der
Browser auch einen HTML-Editor. Benutzern von
&netscape; wird die Ähnlichkeit mit
dem Communicator auffallen, die von der
gemeinsamen Grundlage stammt.Auf langsamen Maschinen, deren CPU-Taktfrequenz weniger als
233 MHz beträgt, oder die weniger als 64 MB Speicher
besitzen, können Sie Mozilla wegen
des Ressourcenbedarfs nur eingeschränkt benutzen. Weniger
Ressourcen verbraucht der Opera Browser,
der gleich in diesem Kapitel behandelt wird.Für den Fall, dass Sie Mozilla
nicht selbst übersetzen wollen, hat das FreeBSD-GNOME-Team
schon ein Paket für Sie erstellt, das Sie über das Netz
installieren können:&prompt.root; pkg_add -r mozillaWenn das Paket nicht zur Verfügung steht und Sie
genügend Zeit und Plattenplatz haben, können Sie
Mozilla mit den nachstehenden Befehlen
selbst übersetzen und installieren:&prompt.root; cd /usr/ports/www/mozilla
&prompt.root; make install cleanDas Erscheinungsbild von Mozilla
können Sie mit so genannten
Themes oder
Gestures beeinflussen. Der
Mozilla-Port sorgt für die richtige
Installation des Chrome-Themes. Die Installation weiterer
Zusatzkomponenten erfordert allerdings
root-Rechte.Nachdem Sie die Installation von
Mozilla abgeschlossen haben,
benötigen Sie die root-Rechte nicht mehr.
Starten Sie den Browser dann einfach mit dem Kommando:&prompt.user; mozillaSie können auch den E-Mail-Client oder den Newsreader
direkt starten:&prompt.user; mozilla -mailTomRhodesBeigetragen von Das &java;-Plugin unter Mozilla installierenDie Installation von Mozilla ist
einfach, die Installation von Mozilla
mit &java; und ¯omedia; &flash; ist dagegen zeitaufwändig
und verbraucht viel Plattenplatz.Zuerst müssen Sie die nötigen Dateien herunterladen.
Besuchen Sie mit einem Browser die URL
und legen Sie sich dort einen Account an. Merken Sie sich
den Account und das Passwort für den Fall, dass Sie den
Account später benötigen. Laden Sie die Dateien
jdk-1_5_0-bin-scsl.zip (die JDK 5.0
SCSL-Binärdatei) sowie
jdk-1_5_0-src-scsl.zip (den JDK-Quellcode)
herunter und speichern Sie diese unter
/usr/ports/distfiles/, da der Port dies
aufgrund der Lizenz-Bestimmungen nicht automatisch erledigen
kann. Zusätzlich benötigen Sie eine lauffähige
Java-Umgebung, die Sie direkt von
herunterladen können. Die Datei
j2sdk-1_4_2_08-linux-i586.bin ist
25 Megabyte groß und muss ebenfalls nach
/usr/ports/distfiles/ gestellt werden.
Schließlich benötigen Sie noch das Java-Patchkit von
,
das Sie ebenfalls in /usr/ports/distfiles/
ablegen. Nun können Sie den Port
java/jdk15 wie gewohnt
über make install clean installieren.Starten Sie nun Mozilla und rufen
Sie den Punkt About Plug-ins des
Help-Menüs auf. Das
&java;-Plugin sollte nun auf dieser
Seite erscheinen.
Mozilla und das ¯omedia; &flash;-PluginDas &flash;-Plugin von ¯omedia; ist für &os; nicht
verfügbar. Allerdings existiert ein Wrapper, der es Ihnen
erlaubt, die Linux-Version des Plugins zu installieren und zu
betreiben. Dieser Wrapper unterstützt auch das
&acrobat;-Plugin von &adobe;, das RealPlayer-Plugin sowie
weitere Plugins.Installieren Sie zuerst den Port
www/linuxpluginwrapper.
Beachten Sie aber, dass dafür der Port
emulators/linux_base
benötigt wird. Folgenden Sie unbedingt den Anweisungen
des Ports, um Ihre /etc/libmap.conf
korrekt anzupassen! Beispielkonfigurationen finden Sie
im Verzeichnis
/usr/local/share/examples/linuxpluginwrapper/.Wenn Mozilla noch nicht
installiert ist, installieren Sie den Port
www/mozilla.Danach starten Sie Mozilla:&prompt.user; mozilla &Eine Liste aller installierten Plug-ins erhalten Sie, wenn Sie im
Menü Help den Punkt About
Plug-ins auswählen.Der linuxpluginwrapper
funktioniert nur unter der &i386;-Architektur.OperaOperaOpera ist ein schneller,
- vollwertiger und Standard konformer Browser. Sie können
- zwischen zwei Versionen des Browsers wählen: Der
- FreeBSD-Version und der Linux-Version.
+ vollwertiger und standardkonformer Browser, der wie Mozilla
+ über einen eingebauten E-Mail- und Newsreader verfügt.
+ Zusätzlich sind ein IRC-Client, ein RSS/Atom-Feeds-Reader
+ sowie weitere Programme enthalten. Dennoch handelt es sich bei
+ Opera weiterhin um ein relativ
+ kleines und sehr schnelles Programmpaket. Sie haben
+ die Wahl zwei Versionen dieses Browsers: Der
+ nativen FreeBSD-Version und der Linux-Version.
Wenn Sie das Web mit der FreeBSD-Version von
Opera erkunden
wollen, installieren Sie das Paket:&prompt.root; pkg_add -r operaEinige FTP-Server haben nicht alle Pakete, Sie können
Opera aber über die Ports-Sammlung
installieren:&prompt.root; cd /usr/ports/www/opera
&prompt.root; make install cleanWenn Sie die Linux-Version des Browsers verwenden wollen,
ersetzen Sie in den Beispielen opera durch
linux-opera. Wenn Sie Plugins einsetzen
wollen, die nur für Linux erhältlich sind, wie
das Adobe &acrobat.reader; Plugin,
benötigen Sie die Linux-Version. Ansonsten sind die
FreeBSD- und Linux-Versionen des Browsers äquivalent.FirefoxFirefoxFirefox ist ein neuer
Browser, der auf Mozilla
beruht. Mozilla ist eine
Anwendungssammlung und enthält unter anderem
einen Browser, einen E-Mail-Client und einen Chat-Client.
Firefox ist nur ein Browser
und daher kleiner und schneller.Das Paket können Sie mit dem nachstehenden
Kommando installieren:&prompt.root; pkg_add -r firefoxWenn Sie lieber die Quellen übersetzen wollen,
benutzen Sie die Ports-Sammlung:&prompt.root; cd /usr/ports/www/firefox
&prompt.root; make install cleanKonquerorKonquerorKonqueror ist Teil von
KDE, kann aber außerhalb
von KDE benutzt werden,
wenn der Port x11/kdebase3
installiert ist. Konqueror
ist mehr als nur ein Browser. Sie können das
Programm ebenfalls zur Dateiverwaltung und zum Abspielen
von Multimedia-Dateien benutzen.Der Port misc/konq-plugins
enthält Plugins für
Konqueror.Konqueror kann
&flash;-Seiten darstellen, siehe
die Beschreibung unter
.BüroanwendungenNeue Benutzer suchen oft ein komplettes Office-Paket oder eine
leicht zu bedienende Textverarbeitung. Einige
Benutzeroberflächen
wie KDE bieten schon ein Office-Paket,
aber unter FreeBSD ist keine derartige Anwendung vorinstalliert.
Unabhängig von der verwendeten Benutzeroberfläche, stellt
Ihnen FreeBSD die benötigten Programme zur
Verfügung.Dieser Abschnitt behandelt die nachstehenden Anwendungen:AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige AbhängigkeitenKOfficeniedrighochKDEAbiWordniedrigniedrigGtk+ oder
GNOMEThe GimpniedrighochGtk+OpenOffice.orghochenorm&jdk; 1.4,
MozillaKOfficeKOfficeOffice-PaketeKOfficeDie KDE-Gemeinschaft stellt ein Office-Paket bereit, das auch
außerhalb von KDE eingesetzt
werden kann. Es besteht aus vier, von anderen Office-Paketen
bekannten, Komponenten: KWord ist die
Textverarbeitung, KSpread die
Tabellenkalkulation, mit KPresenter
werden Präsentationen erstellt und
Kontour ist ein Zeichenprogramm.Stellen Sie vor der Installation des neusten
KOffice sicher, dass Sie eine aktuelle
Version von KDE besitzen.Mit dem folgenden Kommando installieren Sie das
KOffice-Paket:&prompt.root; pkg_add -r kofficeWenn das Paket nicht zur Verfügung steht, benutzen Sie
bitte die Ports-Sammlung. Wenn Sie beispielsweise
KOffice für
KDE3 installieren wollen, setzen Sie die
nachstehendenen Befehle ab:&prompt.root; cd /usr/ports/editors/koffice-kde3
&prompt.root; make install cleanAbiWordAbiWordAbiWord ist eine freie
Textverarbeitung, die ähnlich wie
µsoft; Word
ist. Sie können damit Artikel, Briefe, Berichte,
Notizen usw. verfassen. Das Programm ist
sehr schnell, besitzt viele Funktionen und ist sehr
benutzerfreundlich.AbiWord kann viele Dateiformate,
unter anderem nicht offene wie .doc von
µsoft;, importieren und exportieren.Das AbiWord-Paket installieren Sie
wie folgt:&prompt.root; pkg_add -r AbiWordSollte das Paket nicht zur Verfügung stehen, können
Sie das Programm mit der Ports-Sammlung, die zudem aktueller als
die Pakete ist, übersetzen. Gehen Sie dazu
folgendermaßen vor:&prompt.root; cd /usr/ports/editors/AbiWord
&prompt.root; make install cleanThe GIMPThe GIMPThe GIMP ist ein sehr ausgereiftes
Bildverarbeitungsprogramm mit dem Sie Bilder erstellen oder
retuschieren können. Sie können es sowohl als einfaches
Zeichenprogramm als auch zum retuschieren von Fotografien benutzen.
Das Programm besitzt eine eingebaute Skriptsprache und es existieren
sehr viele Plug-Ins. The GIMP kann
Bilder in zahlreichen Formaten lesen und speichern und stellt
Schnittstellen zu Scannern und grafischen Tabletts zur
Verfügung.Sie installieren das Paket mit dem nachstehenden Befehl:&prompt.root; pkg_add -r gimpBenutzen Sie die Ports-Sammlung, wenn Ihr FTP-Server das Paket
nicht bereitstellt. Im Verzeichnis graphics
finden Sie das Handbuch The Gimp Manual.
Sie können alles mit den folgenden Befehlen
installieren:&prompt.root; cd /usr/ports/graphics/gimp
&prompt.root; make install clean
&prompt.root; cd /usr/ports/graphics/gimp-manual-pdf
&prompt.root; make install cleanDie Entwickler-Version von The GIMP
finden Sie im Verzeichnis graphics
der Ports-Sammlung. Das Handbuch ist im HTML-Format
(graphics/gimp-manual-html)
erhältlich.OpenOffice.orgOpenOffice.orgOffice-PaketeOpenOffice.orgOpenOffice.org enthält alles
was von einem Office-Paket erwartet wird: Textverarbeitung,
Tabellenkalkulation, Präsentation und ein Zeichenprogramm.
Die Bedienung gleicht anderen Office-Paketen und das Programm
kann zahlreiche Dateiformate importieren und exportieren. Es gibt
lokalisierte Versionen mit angepassten Menüs,
Rechtschreibkontrollen und Wörterbüchern.Die Textverarbeitung von
OpenOffice.org speichert Dateien im
XML-Format. Dadurch wird die Verwendbarkeit der Dateien auf
anderen Systemen erhöht und die Handhabung der Daten
vereinfacht. Die Tabellenkalkulation besitzt eine Makrosprache
und eine Schnittstelle zu Datenbanken.
OpenOffice.org läuft auf
&windows;, &solaris;, Linux, FreeBSD und &macos; X. Weitere
Informationen über OpenOffice.org
finden Sie auf der OpenOffice.org Website.
Spezifische Informationen für FreeBSD finden Sie auf
der Webseite FreeBSD OpenOffice.org
Porting Team. Von dort können Sie auch direkt
das OpenOffice-Paket herunterladen.OpenOffice.org installieren Sie wie
folgt:&prompt.root; pkg_add -r openofficeDiese Art der Installation sollte mit einer -RELEASE-Version
funktionieren. Verwenden Sie eine andere Version, sollten Sie
die Internetseite des &os; OpenOffice.org
Porting Teams besuchen und
das entsprechende Paket herunterladen und über
&man.pkg.add.1; installieren, wobei Sie zwischen der aktuellen
Version und der Entwicklerversion wählen können.Nachdem das Paket installiert ist, müssen Sie
lediglich folgenden Befehl eingeben, um
OpenOffice.org zu starten:&prompt.user; openoffice.orgNach dem ersten Start werden Ihnen einige Fragen gestellt.
Außerdem wird in Ihrem Heimatverzeichnis der neue
Unterordner .openoffice.org2
angelegt.Falls die OpenOffice.org-Pakete
nicht zur Verfügung stehen, können Sie immer noch die
Ports-Sammlung benutzen. Beachten Sie aber bitte, dass Sie sehr
viel Plattenplatz und Zeit benötigen, um die Quellen zu
übersetzen.&prompt.root; cd /usr/ports/editors/openoffice-2.0
&prompt.root; make install cleanWenn Sie ein lokalisierte Version bauen wollen, ersetzen
Sie den letzten Befehl durch die folgende Zeile:&prompt.root; make LOCALIZED_LANG=Ihre_Sprache install cleanDabei ersetzen Sie Ihre_Sprache
durch den korrekten ISO-Code. Eine Liste der
unterstützten Codes enthält die Datei
files/Makefile.localized, die sich im
Portsverzeichnis befindet.Nachdem die Installation abgeschlossen ist, können Sie
OpenOffice.org durch folgenden
Befehl starten:&prompt.user; openoffice.orgAnzeigen von DokumentenEinige neue Dokumentformate, die sich großer Beliebtheit
erfreuen, können Sie sich mit dem Basissystem nicht ansehen.
Dieser Abschnitt behandelt Programme, mit denen Sie sich Dokumente in
unterschiedlichen Formaten ansehen können.Die nachstehenden Anwendungen werden behandelt:AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige Abhängigkeiten&acrobat.reader;niedrigniedrigLinux Binary CompatibilitygvniedrigniedrigXaw3dXpdfniedrigniedrigFreeTypeGQviewniedrigniedrigGtk+ oder
GNOME&acrobat.reader;Acrobat ReaderPDFanzeigenViele Dokumente werden heute im Portable Document
Format (PDF) zur Verfügung gestellt. PDF-Dokumente
schauen Sie sich am Besten mit dem Programm
&acrobat.reader; an, das von
Adobe für Linux freigegeben
wurde. Da Linux-Programme unter FreeBSD laufen, steht Ihnen das
Programm auch hier zur Verfügung.Um &acrobat.reader; 7 über
die Ports-Sammlung zu installieren, geben Sie Folgendes ein:&prompt.root; cd /usr/ports/print/acroread7
&prompt.root; make install cleanAufgrund der Lizenzbedinungen ist eine Paketversion leider
nicht verfügbar.gvgvPDFanzeigenPostScriptanzeigengv kann &postscript;- und
PDF-Dokumente anzeigen. Es stammt von
ghostview ab, besitzt aber wegen der
Xaw3d-Bibliothek eine
schönere Benutzeroberfläche.
In gv können Sie viele Operationen
durchführen: Sie können die Ausrichtung
und die Papiergröße eines Dokuments ändern,
das Dokument skalieren oder glätten
(Anti-Aliasing). Fast jede
Operation kann sowohl mit der Tastatur als auch der Maus
durchgeführt werden.Installieren Sie das gv-Paket wie
folgt:&prompt.root; pkg_add -r gvBenutzen Sie die Ports-Sammlung, wenn das Paket nicht zur
Verfügung steht:&prompt.root; cd /usr/ports/print/gv
&prompt.root; make install cleanXpdfXpdfPDFanzeigenEin schlankes und effizientes Programm zum Betrachten von
PDF-Dateien ist Xpdf. Es benötigt
wenige Ressourcen und ist sehr stabil. Da das Programm die Standard
X-Zeichensätze benutzt, ist es nicht auf &motif; oder ein
anderes X-Toolkit angewiesen.Das Xpdf-Paket können Sie mit
dem folgenden Kommando installieren:&prompt.root; pkg_add -r xpdfWenn das Paket nicht verfügbar ist, oder Sie lieber die
Ports-Sammlung benutzen möchten, gehen Sie wie folgt vor:&prompt.root; cd /usr/ports/graphics/xpdf
&prompt.root; make install cleanWenn Sie nach Abschluss der Installation
Xpdf starten, öffnen Sie
das Menü mit der rechten Maustaste.GQviewGQviewMit GQview lassen sich Bilder
verwalten. Unter anderem können Sie sich Bilder (auch auf dem
ganzen Bildschirm) anschauen, ein externes Werkzeug aufrufen und
eine Vorschau (thumbnail) erzeugen.
Weiterhin können Sie automatisch ablaufende
Präsentationen erstellen und grundlegende Dateioperationen
durchführen, Bildersammlungen verwalten und doppelte Bilder
aufspüren. GQview ist
internationalisiert, das heißt es berücksichtigt die
Spracheinstellungen des Systems.Wenn Sie das GQview-Paket
installieren wollen, geben Sie das folgende Kommando ein:&prompt.root; pkg_add -r gqviewIst das Paket nicht erhältlich, oder wenn Sie die
Ports-Sammlung bevorzugen, setzen Sie die folgenden Kommandos
ab:&prompt.root; cd /usr/ports/graphics/gqview
&prompt.root; make install cleanFinanzsoftwareWenn Sie, warum auch immer, Ihre Finanzen mit einem FreeBSD
Arbeitsplatz verwalten wollen, stehen Ihnen verschiedene Anwendungen
zur Verfügung. Einige von ihnen unterstützen verbreitete
Formate, wie die von Quicken
oder Excel verwendeten.Dieser Abschnitt behandelt die folgenden Anwendungen:AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige AbhängigkeitenGnuCashniedrighochGNOMEGnumericniedrighochGNOMEAbacusniedrigniedrigTcl/TkGnuCashGnuCashGnuCash ist Teil des
GNOME-Projekts, dessen Ziel es ist,
leicht zu bedienende und doch leistungsfähige Anwendungen zu
erstellen. Mit GnuCash können Sie
Ihre Einnahmen und Ausgaben, Ihre Bankkonten und Wertpapiere
verwalten. Das Programm ist leicht zu bedienen und genügt
dennoch hohen Ansprüchen.GnuCash stellt ein Register,
ähnlich dem in einem Scheckheft und ein hierarchisches System
von Konten zur Verfügung. Eine Transaktion kann in einzelne
Teile aufgespaltet werden. GnuCash kann
Quicken-Dateien (QIF) importieren und einbinden. Weiterhin
unterstützt das Programm die meisten internationalen Formate
für Zeitangaben und Währungen. Die Bedienung des
Programms kann durch zahlreiche Tastenkombinationen und dem
automatischen Vervollständigen von Eingaben beschleunigt
werden.Das GnuCash-Paket installieren Sie
wie folgt:&prompt.root; pkg_add -r gnucashWenn das Paket nicht zur Verfügung steht, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/finance/gnucash
&prompt.root; make install cleanGnumericGnumericTabellenkalkulationGnumericGnumeric ist eine
Tabellenkalkulation, die Teil der GNOME
Benutzeroberfläche ist. Das Programm kann Eingaben anhand des
Zellenformats oder einer Folge von Eingaben vervollständigen.
Dateien verbreiteter Formate, wie die von
Excel,
Lotus 1-2-3 oder
Quattro Pro lassen sich importieren.
Grafiken erstellt Gnumeric mit dem
Programm math/guppi.
Gnumeric besitzt viele eingebaute
Funktionen und Zellenformate (zum Beispiel die üblich
verwendeten, wie Zahl, Währung, Datum oder Zeit).Installieren Sie das Gnumeric-Paket
mit dem folgenden Kommando:&prompt.root; pkg_add -r gnumericWenn das Paket nicht zur Verfügung steht, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/math/gnumeric
&prompt.root; make install cleanAbacusAbacusTabellenkalkulationAbacusAbacus ist eine kleine und leicht zu
bedienende Tabellenkalkulation. Die vordefinierten Funktionen
stammen aus verschiedenen Bereichen wie der Statistik, der
Wirtschaft und der Mathematik. Das Programm kann Dateien im
Excel Dateiformat importieren und
exportieren sowie Ausgaben in &postscript; erzeugen.Installieren Sie das Abacus-Paket
mit dem folgenden Kommando:&prompt.root; pkg_add -r abacusWenn das Paket nicht zur Verfügung steht, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/deskutils/abacus
&prompt.root; make install cleanZusammenfassungFreeBSD wird von Internet Service Providern wegen seiner
Schnelligkeit und Stabilität eingesetzt, es ist aber auch
zum Einrichten eines Arbeitsplatzes geeignet. Mit tausenden
Anwendungen, die als
Pakete oder
Ports
zur Verfügung stehen, können Sie sich einen
Arbeitsplatz nach Ihren Wünschen einrichten.Wenn Sie einen Arbeitsplatz einrichten, schauen Sie sich den Port
misc/instant-workstation an.
Dieser Meta-Port fasst typische Anwendungen für einen
Arbeitsplatz zusammen. Den Port können Sie anpassen, indem Sie
in /usr/ports/misc/instant-workstation/Makefile
Ports hinzufügen oder löschen. Folgen Sie dabei der
vorgegebenen Syntax und bauen Sie den Port nach dem üblichen
Verfahren. Am Ende erhalten Sie ein großes Paket, das Ihren
maßgeschneiderten Arbeitsplatz enthält. Dieses Paket
können Sie dann natürlich auch auf Ihre anderen Rechner
installieren.Die folgende Aufstellung fasst die in diesem Kapitel besprochenen
Anwendungen zusammen:AnwendungPaket-NamePort-NameMozillamozillawww/mozilla&netscape;linux-netscape7www/netscape7Operaoperawww/operaFirefoxfirefoxwww/firefoxKOfficekoffice-kde3editors/koffice-kde3AbiWordabiwordeditors/abiwordThe GIMPgimpgraphics/gimpOpenOffice.orgopenofficeeditors/openoffice-1.1&acrobat.reader;acroreadprint/acroread7gvgvprint/gvXpdfxpdfgraphics/xpdfGQviewgqviewgraphics/gqviewGnuCashgnucashfinance/gnucashGnumericgnumericmath/gnumericAbacusabacusdeskutils/abacus
diff --git a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
index 75be09fab8..46a5c9c9c2 100644
--- a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
@@ -1,4607 +1,4610 @@
BerndWarkenÜbersetzt von MartinHeinenSpeichermedienÜbersichtDieses Kapitel behandelt die Benutzung von Laufwerken unter
FreeBSD. Laufwerke können speichergestützte Laufwerke,
Netzwerklaufwerke oder normale SCSI/IDE-Geräte sein.Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes
wissen:Die Begriffe, die FreeBSD verwendet, um die
Organisation der Daten auf einem physikalischen Laufwerk
zu beschreiben (Partitionen und Slices).Wie Sie ein weiteres Laufwerk zu Ihrem System
hinzufügen.Wie virtuelle Dateisysteme, zum Beispiel RAM-Disks,
eingerichtet werden.Wie Sie mit Quotas die Benutzung von Laufwerken
einschränken können.Wie Sie Partitionen verschlüsseln, um Ihre Daten
zu schützen.Wie unter FreeBSD CDs und DVDs gebrannt werden.Sie werden die Speichermedien, die Sie für
Backups einsetzen können, kennen.Wie Sie die unter FreeBSD erhältlichen Backup
Programme benutzen.Wie Sie ein Backup mit Disketten erstellen.Was Schnappschüsse sind und wie sie eingesetzt
werden.Bevor Sie dieses Kapitel lesen,sollten Sie einen einen &os;-Kernel installieren
können ().GerätenamenDie folgende Tabelle zeigt die von FreeBSD unterstützten
Speichergeräte und deren Gerätenamen.
Namenskonventionen von physikalischen LaufwerkenLaufwerkstypGerätenameIDE-FestplattenadIDE-CD-ROM LaufwerkeacdSCSI-Festplatten und USB-SpeichermediendaSCSI-CD-ROM LaufwerkecdVerschiedene proprietäre CD-ROM-Laufwerkemcd Mitsumi CD-ROM,
scd Sony CD-ROM,
matcd Matsushita/Panasonic CD-ROM
Der Treiber &man.matcd.4; wurde am 5. Oktober
aus dem FreeBSD 4.X Zweig entfernt; in
FreeBSD 5.0 und späteren Versionen
gibt es den Treiber nicht.DiskettenlaufwerkefdSCSI-BandlaufwerkesaIDE-BandlaufwerkeastFlash-Laufwerkefla für &diskonchip;
Flash-DeviceRAID-Laufwerkeaacd für &adaptec; AdvancedRAID,
mlxd und mlyd
für &mylex;,
amrd für AMI &megaraid;,
idad für Compaq Smart RAID,
twed für &tm.3ware; RAID.
DavidO'BrianIm Original von Hinzufügen von LaufwerkenLaufwerkehinzufügenAngenommen, Sie wollen ein neues SCSI-Laufwerk zu einer Maschine
hinzufügen, die momentan nur ein Laufwerk hat. Dazu schalten
Sie zuerst den Rechner aus und installieren das Laufwerk entsprechend
der Anleitungen Ihres Rechners, Ihres Controllers und Laufwerk
Herstellers. Den genauen Ablauf können wir wegen der
großen Abweichungen leider nicht beschreiben.Nachdem Sie das Laufwerk installiert haben, melden Sie sich als
Benutzer root an und kontrollieren Sie
/var/run/dmesg.boot, um sicherzustellen,
dass das neue Laufwerk gefunden wurde. Das neue Laufwerk
wird, um das Beispiel fortzuführen, da1
heißen und soll unter /1 angehangen
werden. Fügen Sie eine IDE-Platte hinzu, wird sie
wd1 auf FreeBSD-Systemen vor 4.0 und
ad1
auf den meisten 4.X- und 5.X-Systemen heißen.PartitionenSlicesfdiskDa FreeBSD auf IBM-PC kompatiblen Rechnern läuft, muss
es die PC BIOS-Partitionen, die verschieden von den traditionellen
BSD-Partitionen sind, berücksichtigen. Eine PC Platte kann
bis zu vier BIOS-Partitionen enthalten. Wenn die Platte
ausschließlich für FreeBSD verwendet wird, können
Sie den dedicated Modus benutzen, ansonsten
muss FreeBSD in eine der BIOS-Partitionen installiert werden.
In FreeBSD heißen die PC BIOS-Partitionen
Slices, um sie nicht mit den traditionellen
BSD-Partitionen zu verwechseln. Sie können auch Slices auf
einer Platte verwenden, die ausschließlich von FreeBSD
benutzt wird, sich aber in einem Rechner befindet, der noch ein
anderes Betriebssystem installiert hat. Dadurch stellen Sie sicher,
dass Sie fdisk des anderen Betriebssystems noch
benutzen können.Im Fall von Slices wird die Platte als
/dev/da1s1e hinzugefügt. Das heißt:
SCSI-Platte, Einheit 1 (die zweite SCSI-Platte), Slice 1
(PC BIOS-Partition 1) und die e BSD-Partition.
Wird die Platte ausschließlich für FreeBSD verwendet
(dangerously dedicated), wird sie einfach als
/dev/da1e hinzugefügt.Da &man.bsdlabel.8; (&man.disklabel.8; unter
&os; 4.X) zum Speichern von Sektoren 32-Bit Integer
verwendet, ist das Werkzeug in den meisten Fällen
auf 2^32-1 Sektoren pro Laufwerk oder 2 TB
beschränkt. In &man.fdisk.8; darf der Startsektor
nicht größer als 2^32-1 sein und Partitionen
sind auf eine Länge von 2^32-1 beschränkt.
In den meisten Fällen beschränkt dies die
Größe einer Partition auf 2 TB
und die maximale Größe eines Laufwerks
auf 4 TB. Das &man.sunlabel.8;-Format ist
mit 2^32-1 Sektoren pro Partition und 8 Partitionen
auf 16 TB beschränkt. Mit größeren
Laufwerken können &man.gpt.8;-Partitionen benutzt
werden.Verwenden von &man.sysinstall.8;sysinstallhinzufügen von LaufwerkensuDas sysinstall MenüUm ein Laufwerk zu partitionieren und zu labeln, kann das
menügestützte sysinstall
(/stand/sysinstall vor &os; 5.2)
benutzt werden. Dazu melden Sie sich als root
an oder benutzen su, um
root zu werden. Starten Sie
sysinstall und wählen das
Configure Menü, wählen Sie dort
den Punkt Fdisk aus.Partitionieren mit fdiskInnerhalb von fdisk geben Sie
A ein, um die ganze Platte für
FreeBSD zu benutzen. Beantworten Sie die Frage remain
cooperative with any future possible operating systems mit
YES. W schreibt die
Änderung auf die Platte, danach können Sie
fdisk mit q
verlassen. Da Sie eine Platte zu einem schon laufenden System
hinzugefügt haben, beantworten Sie die Frage nach dem
Master Boot Record mit None.Disk-Label-EditorBSD PartitionenAls nächstes müssen Sie
sysinstall verlassen und es erneut
starten. Folgen Sie dazu bitte den Anweisungen von oben, aber
wählen Sie dieses Mal die Option Label,
um in den Disk Label Editor zu gelangen.
Hier werden die traditionellen BSD-Partitionen erstellt.
Ein Laufwerk kann acht Partitionen, die mit den Buchstaben
a-h gekennzeichnet werden,
besitzen. Einige Partitionen sind für spezielle Zwecke
reserviert. Die a Partition ist für die
Root-Partition (/) reserviert. Deshalb
sollte nur das Laufwerk, von dem gebootet wird, eine
a Partition besitzen. Die b
Partition wird für Swap-Partitionen benutzt, wobei Sie
diese auf mehreren Platten benutzen dürfen.
Im dangerously dedicated Modus spricht
die c Partition die gesamte Platte an,
werden Slices verwendet, wird damit die ganze Slice angesprochen.
Die anderen Partitionen sind für allgemeine Zwecke
verwendbar.Der Label Editor von sysinstall
bevorzugt die e
Partition für Partitionen, die weder Root-Partitionen noch
Swap-Partitionen sind. Im Label
Editor können Sie ein einzelnes Dateisystem
mit C erstellen. Wählen Sie
FS, wenn Sie gefragt werden, ob Sie ein
FS (Dateisystem) oder Swap erstellen wollen, und geben Sie einen
Mountpoint z.B. /mnt an. Wenn Sie nach einer
FreeBSD-Installation ein Dateisystem mit
sysinstall erzeugen,
so werden die Einträge in /etc/fstab
nicht erzeugt, so dass die Angabe des Mountpoints nicht
wichtig ist.Sie können nun das Label auf das Laufwerk schreiben und
das Dateisystem erstellen, indem Sie W
drücken. Ignorieren Sie die Meldung von
sysinstall, dass die neue Partition
nicht angehangen werden konnte, und verlassen Sie den Label Editor
sowie sysinstall.EndeIm letzten Schritt fügen Sie noch in
/etc/fstab den Eintrag für das neue
Laufwerk ein.Die KommandozeileAnlegen von SlicesMit der folgenden Vorgehensweise wird eine Platte mit
anderen Betriebssystemen, die vielleicht auf Ihrem Rechner
installiert sind, zusammenarbeiten und nicht das
fdisk Programm anderer Betriebssysteme
stören. Bitte benutzen
Sie den dedicated Modus nur dann, wenn
Sie dazu einen guten Grund haben!&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; fdisk -BI da1 # Initialisieren der neuen Platte
&prompt.root; disklabel -B -w -r da1s1 auto # Labeln
&prompt.root; disklabel -e da1s1 # Editieren des Disklabels und Hinzufügen von Partitionen
&prompt.root; mkdir -p /1
&prompt.root; newfs /dev/da1s1e # Wiederholen Sie diesen Schritt für jede Partition
&prompt.root; mount /dev/da1s1e /1 # Anhängen der Partitionen
&prompt.root; vi /etc/fstab # Ändern Sie /etc/fstab entsprechendWenn Sie ein IDE-Laufwerk besitzen, ändern Sie
da in ad. Auf
Systemen vor 4.0 benutzen Sie wd.DedicatedOS/2Wenn das neue Laufwerk nicht von anderen Betriebssystemen
benutzt werden soll, können Sie es im
dedicated Modus betreiben. Beachten Sie bitte,
dass Microsoft Betriebssysteme mit diesem Modus eventuell nicht
zurechtkommen, aber es entsteht kein Schaden am Laufwerk. Im
Gegensatz dazu wird IBMs &os2; versuchen, jede ihm nicht bekannte
Partition zu reparieren.&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; disklabel -Brw da1 auto
&prompt.root; disklabel -e da1 # Erstellen der `e' Partition
&prompt.root; newfs -d0 /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # /dev/da1e hinzufügen
&prompt.root; mount /1Eine alternative Methode:&prompt.root; dd if=/dev/zero of=/dev/da1 count=2
&prompt.root; disklabel /dev/da1 | disklabel -BrR da1 /dev/stdin
&prompt.root; newfs /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # /dev/da1e hinzufügen
&prompt.root; mount /1Ab &os; 5.1-RELEASE wurde &man.disklabel.8;
durch &man.bsdlabel.8; ersetzt. In bsdlabel
wurden veraltete Optionen entfernt. Entfernen Sie die
Option in den obigen Beispielen,
wenn Sie bsdlabel verwenden.
Weiteres entnehmen Sie bitte der Hilfeseite
&man.bsdlabel.8;.RAIDSoftware-RAIDChristopherShumwayOriginal von JimBrownÜberarbeitet von Concatenated-Disk (CCD) konfigurierenRAIDSoftwareRAIDCCDDie wichtigsten Faktoren bei der Auswahl von Massenspeichern
sind Geschwindigkeit, Zuverlässigkeit und Preis.
Selten findet sich eine ausgewogene Mischung aller drei Faktoren.
Schnelle und zuverlässige Massenspeicher sind für
gewöhnlich teuer. Um die Kosten zu senken, muss
entweder an der Geschwindigkeit oder an der Zuverlässigkeit
gespart werden.Das unten beschriebene System sollte vor allem
preiswert sein. Der nächst wichtige Faktor war
die Geschwindigkeit gefolgt von der Zuverlässigkeit.
Die Geschwindigkeit war nicht so wichtig, da über
das Netzwerk auf das System zugegriffen wird. Da alle
Daten schon auf CD-Rs gesichert sind, war die
Zuverlässigkeit, obwohl wichtig, ebenfalls nicht
von entscheidender Bedeutung.Die Bewertung der einzelnen Faktoren ist der erste
Schritt bei der Auswahl von Massenspeichern. Wenn Sie
vor allem ein schnelles und zuverlässiges Medium
benötigen und der Preis nicht wichtig ist, werden
Sie ein anderes System als das hier beschriebene
zusammenstellen.Installation der HardwareNeben der IDE-Systemplatte besteht das System
aus drei Western Digital IDE-Festplatten mit
5400 RPM und einer Kapazität von je
30 GB. Insgesamt stehen also 90 GB
Speicherplatz zur Verfügung. Im Idealfall sollte
jede Festplatte an einen eigenen Controller angeschlossen
werden. Um Kosten zu sparen, wurde bei diesem System
darauf verzichtet und an jeden IDE-Controller eine
Master- und eine Slave-Platte angeschlossen.Beim Reboot wurde das BIOS so konfiguriert, dass es
die angeschlossenen Platten automatisch erkennt und FreeBSD
erkannte die Platten ebenfalls:ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33
ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33
ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33
ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33Wenn FreeBSD die Platten nicht erkennt,
überprüfen Sie, ob die Jumper korrekt
konfiguriert sind. Die meisten IDE-Festplatten
verfügen über einen
Cable Select-Jumper. Die Master-
und Slave-Platten werden mit einem anderen
Jumper konfiguriert. Bestimmen Sie den richtigen
Jumper mithilfe der Dokumentation Ihrer
Festplatte.Als nächstes sollten Sie überlegen,
auf welche Art der Speicher zur Verfügung
gestellt werden soll. Schauen Sie sich dazu
&man.vinum.8; ()
und &man.ccd.4; an. Im hier beschriebenen
System wird &man.ccd.4; eingesetzt.Konfiguration von CCDMit &man.ccd.4; können mehrere
gleiche Platten zu einem logischen Dateisystem
zusammengefasst werden. Um &man.ccd.4;
zu benutzen, muss der Kernel mit der entsprechenden
Unterstützung übersetzt werden.
Ergänzen Sie die Kernelkonfiguration um die
nachstehende Zeile. Anschließend müssen
Sie den Kernel neu übersetzen und installieren.pseudo-device ccd 4Für 5.X-Systeme verwenden Sie die folgende
Zeile:pseudo-device ccdAb FreeBSD 5.0 muss die gewünschte
Geräteanzahl nicht mehr angegeben werden,
da die Geräte automatisch zur Laufzeit
erzeugt werden.Ab FreeBSD 3.0 kann &man.ccd.4; auch als
Kernelmodul geladen werden.Um &man.ccd.4; zu benutzen, müssen
die Laufwerke zuerst mit einem Label versehen werden.
Die Label werden mit &man.disklabel.8; erstellt:disklabel -r -w ad1 auto
disklabel -r -w ad2 auto
disklabel -r -w ad3 autoAb &os; 5.1-RELEASE wurde &man.disklabel.8;
durch &man.bsdlabel.8; ersetzt. In bsdlabel
wurden veraltete Optionen entfernt. Entfernen Sie die
Option in den obigen Beispielen,
wenn Sie bsdlabel verwenden.
Weiteres entnehmen Sie bitte der Hilfeseite
&man.bsdlabel.8;.Damit wurden die Label ad1c,
ad2c und ad3c
erstellt, die jeweils das gesamte Laufwerk umfassen.Im nächsten Schritt muss der Typ des Labels
geändert werden. Die Labels können Sie
mit &man.disklabel.8; editieren:disklabel -e ad1
disklabel -e ad2
disklabel -e ad3Für jedes Label startet dies den durch
EDITOR gegebenen Editor, typischerweise
&man.vi.1;.Ein unverändertes Label sieht zum Beispiel
wie folgt aus:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)Erstellen Sie eine e-Partition
für &man.ccd.4;. Dazu können Sie normalerweise
die Zeile der c-Partition kopieren,
allerdings muss auf
4.2BSD gesetzt werden.
Das Ergebnis sollte wie folgt aussehen:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)Erstellen des DateisystemsWenn die Gerätedatei für
ccd0c noch nicht existiert,
erstellen Sie diese wie folgt:cd /dev
sh MAKEDEV ccd0Ab FreeBSD 5.0 werden die Gerätedateien
automatisch von &man.devfs.5; erzeugt.
MAKEDEV muss also nicht aufgerufen
werden.Nachdem alle Platten ein Label haben, kann das
&man.ccd.4;-RAID aufgebaut werden. Dies geschieht
mit &man.ccdconfig.8;:ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3eDie folgende Aufstellung erklärt die
verwendeten Kommandozeilenargumente:Das erste Argument gibt das zu konfigurierende
Gerät, hier /dev/ccd0c,
an. Die Angabe von /dev/ ist
dabei optional.Der Interleave für das Dateisystem. Der
Interleave definiert die Größe eines
Streifens in Blöcken, die normal 512 Bytes
groß sind. Ein Interleave von 32 ist
demnach 16384 Bytes groß.Weitere Argumente für &man.ccdconfig.8;.
Wenn Sie spiegeln wollen, können Sie das
hier angeben. Die gezeigte Konfiguration
verwendet keine Spiegel, sodass der Wert
0 angegeben ist.Das letzte Argument gibt die Geräte des
Plattenverbundes an. Benutzen Sie für jedes
Gerät den kompletten Pfadnamen.Nach Abschluß von &man.ccdconfig.8; ist der
Plattenverbund konfiguriert und es können Dateisysteme
auf dem Plattenverbund angelegt werden. Das Anlegen
von Dateisystemen wird in der Hilfeseite &man.newfs.8;
beschrieben. Für das Beispiel genügt
der folgende Befehl:newfs /dev/ccd0cAutomatisierungDamit &man.ccd.4; beim Start automatisch
aktiviert wird, ist die Datei /etc/ccd.conf
mit dem folgenden Kommando zu erstellen:ccdconfig -g > /etc/ccd.confWenn /etc/ccd.conf existiert, wird beim
Reboot ccdconfig -C von
/etc/rc aufgerufen. Damit wird
&man.ccd.4; eingerichtet und die darauf
befindlichen Dateisysteme können angehängt
werden.Wenn Sie in den Single-User Modus booten, müssen Sie
den Verbund erst konfigurieren, bevor Sie darauf befindliche
Dateisysteme anhängen können:ccdconfig -CIn /etc/fstab ist noch ein Eintrag
für das auf dem Verbund befindliche Dateisystem zu
erstellen, damit dieses beim Start des Systems immer
angehängt wird:/dev/ccd0c /media ufs rw 2 2Der Vinum-Volume-ManagerRAIDSoftwareRAIDVinumDer Vinum Volume Manager ist ein Block-Gerätetreiber,
der virtuelle Platten zur Verfügung stellt. Er trennt die
Verbindung zwischen der Festplatte und dem zugehörigen
Block-Gerät auf. Im Gegensatz zur konventionellen
Aufteilung einer Platte in Slices lassen sich dadurch Daten
flexibler, leistungsfähiger und zuverlässiger verwalten.
&man.vinum.8; stellt RAID-0, RAID-1 und RAID-5 sowohl einzeln wie
auch in Kombination zur Verfügung.Mehr Informationen über &man.vinum.8; erhalten Sie in
.Hardware-RAIDRAIDHardwareFreeBSD unterstützt eine Reihe von
RAID-Controllern. Diese Geräte
verwalten einen Plattenverbund; zusätzliche Software
wird nicht benötigt.Der Controller steuert mithilfe eines
BIOS auf der Karte die Plattenoperationen.
Wie ein RAID System eingerichtet wird,
sei kurz am Beispiel des Promise IDE
RAID-Controllers gezeigt. Nachdem
die Karte eingebaut ist und der Rechner neu gestartet wurde,
erscheint eine Eingabeaufforderung. Wenn Sie den Anweisungen
auf dem Bildschirm folgen, gelangen Sie in eine Maske, in der
Sie mit den vorhandenen Festplatten ein
RAID-System aufbauen können.
FreeBSD behandelt das RAID-System wie
eine einzelne Festplatte.Wiederherstellen eines ATA-RAID-1 VerbundsMit FreeBSD können Sie eine ausgefallene Platte in
einem RAID-Verbund während des Betriebs auswechseln,
vorausgesetzt Sie bemerken den Ausfall vor einem Neustart.Einen Ausfall erkennen Sie, wenn in der Datei
/var/log/messages oder in der
Ausgabe von &man.dmesg.8; Meldungen wie die folgenden
auftauchen:ad6 on monster1 suffered a hard error.
ad6: READ command timeout tag=0 serv=0 - resetting
ad6: trying fallback to PIO mode
ata3: resetting devices .. done
ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\
status=59 error=40
ar0: WARNING - mirror lostÜberprüfen Sie den RAID-Verbund mit
&man.atacontrol.8;:&prompt.root; atacontrol list
ATA channel 0:
Master: no device present
Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
ATA channel 3:
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADEDDamit Sie die Platte ausbauen können, muss zuerst
der ATA-Channel der ausgefallenen Platte aus dem Verbund entfernt
werden:&prompt.root; atacontrol detach ata3Ersetzen Sie dann die Platte.Nun aktivieren Sie den ATA-Channel wieder:&prompt.root; atacontrol attach ata3
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device presentNehmen Sie die neue Platte in den Verbund auf:&prompt.root; atacontrol addspare ar0 ad6Stellen Sie die Organisation des Verbunds wieder her:&prompt.root; atacontrol rebuild ar0Sie können den Fortschritt des Prozesses durch
folgende Befehle kontrollieren:&prompt.root; dmesg | tail -10
[output removed]
ad6: removed from configuration
ad6: deleted from ar0 disk1
ad6: inserted into ar0 disk1 as spare
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completedWarten Sie bis die Wiederherstellung beendet ist.MarcFonvieilleBeigetragen von USB SpeichermedienUSBSpeichermedienDer Universal Serial Bus (USB) wird heutzutage von
vielen externen Speichern benutzt: Festplatten,
USB-Thumbdrives oder CD-Brennern, die alle von
&os; unterstützt werden.USB-KonfigurationUSB-Massenspeicher werden vom Treiber &man.umass.4;
betrieben. Wenn Sie den GENERIC-Kernel
benutzen, brauchen Sie keine Anpassungen vorzunehmen.
Benutzen Sie einen angepassten Kernel, müssen die
nachstehenden Zeilen in der Kernelkonfigurationsdatei
enthalten sein:device scbus
device da
device pass
device uhci
device ohci
device usb
device umassDer Treiber &man.umass.4; greift über das
SCSI-Subsystem auf die USB-Geräte zu. Ihre
USB-Geräte werden daher vom System als SCSI-Geräte
erkannt. Abhängig vom Chipsatz Ihrer Systemplatine
benötigen Sie in der Kernelkonfiguration entweder
die Option device uhci oder die
Option device ohci. Die
Kernelkonfiguration kann allerdings auch beide Optionen
enthalten. Vergessen Sie bitte nicht, einen neuen
Kernel zu bauen und zu installieren, wenn Sie die
Kernelkonfiguration verändert haben.Wenn es sich bei Ihrem USB-Gerät um einen
CD-R- oder DVD-Brenner handelt, müssen Sie den
Treiber &man.cd.4; für SCSI-CD-ROMs in die
Kernelkonfiguration aufnehmen:device cdDa der Brenner als SCSI-Laufwerk erkannt wird,
sollten Sie den Treiber &man.atapicam.4; nicht
benutzen.In &os; 5.X oder in &os; 4.X ab
&os; 4.10-RELEASE werden USB 2.0 Controller
unterstützt. Die Unterstützung aktivieren
Sie in der Kernelkonfiguration mit der nachstehenden
Zeile:device ehciDie Treiber &man.uhci.4; und &man.ohci.4; werden
immer noch für USB 1.X benötigt.Unter &os; 4.X muss der USB-Daemon (&man.usbd.8;)
laufen, damit manche USB-Geräte erkannt werden.
Um den USB-Daemon zu aktivieren, fügen Sie in
der Datei /etc/rc.conf die Anweisung
usbd_enable="YES" ein und starten
die Maschine neu.Die USB-Konfiguration testenSie können das USB-Gerät nun testen.
Schließen Sie das Gerät an und untersuchen
Sie die Systemmeldungen (&man.dmesg.8;), Sie sehen
Ausgaben wie die folgende:umass0: USB Solid state disk, rev 1.10/1.00, addr 2
GEOM: create disk da0 dp=0xc2d74850
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
da0: 1.000MB/s transfers
da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)Die Ausgaben, wie das erkannte Gerät oder
der Gerätename (da0)
hängen natürlich von Ihrer Konfiguration ab.Da ein USB-Gerät als SCSI-Gerät erkannt
wird, können Sie USB-Massenspeicher mit dem
Befehl camcontrol anzeigen:&prompt.root; camcontrol devlist
<Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0)Wenn auf dem Laufwerk ein Dateisystem eingerichtet
ist, sollten Sie das Dateisystem einhängen können.
beschreibt, wie Sie
USB-Laufwerke formatieren und Partitionen einrichten.Wenn Sie das Gerät entfernen (das Dateisystem
müssen Sie vorher abhängen), sehen Sie
in den Systemmeldungen Einträge wie die folgenden:umass0: at uhub0 port 1 (addr 2) disconnected
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): removing device entry
GEOM: destroy disk da0 dp=0xc2d74850
umass0: detachedWeiteres zu USBNeben den Abschnitten
Hinzufügen von Laufwerken
und Anhängen und
Abhängen von Dateisystemen lesen Sie bitte
die Hilfeseiten &man.umass.4;, &man.camcontrol.8; und
&man.usbdevs.8;.MikeMeyerBeigesteuert von CDs benutzenCD-ROMbrennenEinführungCDs besitzen einige Eigenschaften, die sie von
konventionellen Laufwerken unterscheiden. Zuerst konnten
sie nicht beschrieben werden. Sie wurden so entworfen, dass
sie ununterbrochen, ohne Verzögerungen durch Kopfbewegungen
zwischen den Spuren, gelesen werden können. Sie konnten
früher auch leichter als vergleichbar große Medien zwischen
Systemen bewegt werden.CDs besitzen Spuren, aber damit ist der Teil Daten
gemeint, der ununterbrochen gelesen wird, und nicht eine
physikalische Eigenschaft der CD. Um eine CD mit FreeBSD
zu erstellen, werden die Daten jeder Spur der CD in
Dateien vorbereitet und dann die Spuren auf die CD
geschrieben.ISO 9660DateisystemeISO 9660Das ISO 9660-Dateisystem wurde entworfen, um mit diesen
Unterschieden umzugehen. Leider hat es auch damals übliche
Grenzen für Dateisysteme implementiert. Glücklicherweise
existiert ein Erweiterungsmechanismus, der es korrekt
geschriebenen CDs erlaubt, diese Grenzen zu überschreiten
und dennoch auf Systemen zu funktionieren, die diese
Erweiterungen nicht unterstützen.sysutils/cdrtoolsDer Port sysutils/cdrtools
enthält das Programm &man.mkisofs.8;, das eine Datei
erstellt, die ein ISO 9660-Dateisystem enthält.
Das Programm hat Optionen, um verschiedene Erweiterungen
zu unterstützen, und wird unten beschrieben.CD-BrennerATAPIWelches Tool Sie zum Brennen von CDs benutzen, hängt davon
ab, ob Ihr CD-Brenner ein ATAPI-Gerät ist oder nicht.
Mit ATAPI-CD-Brennern wird
burncd benutzt, das Teil des Basissystems ist.
SCSI- und USB-CD-Brenner werden mit
cdrecord aus
sysutils/cdrtools
benutzt.Von burncd wird nur eine beschränkte
Anzahl von Laufwerken unterstützt. Um herauszufinden, ob
ein Laufwerk unterstützt wird, sehen Sie bitte unter
CD-R/RW supported drives
nach.CD-BrennerATAPI/CAM-TreiberWenn Sie &os; 5.X oder &os; 4.8-RELEASE
und spätere Versionen benutzen, können Sie
mithilfe des ATAPI/CAM Treibers
die Werkzeuge für SCSI-Laufwerke, wie
cdrecord,
benutzen.Wenn Sie eine Brennsoftware mit graphischer
Benutzeroberfläche benötigen, sehen
Sie sich die Werkzeuge X-CD-Roast
oder K3b an. Die
Werkzeuge können als Paket oder aus den
Ports (sysutils/xcdroast
und sysutils/k3b)
installiert werden. Mit ATAPI-Hardware benötigt
K3b das
ATAPI/CAM-Modul.mkisofsDas Programm &man.mkisofs.8; aus dem Port
sysutils/cdrtools
erstellt ein ISO 9660-Dateisystem,
das ein Abbild eines Verzeichnisbaumes ist.
Die einfachste Anwendung ist wie folgt:&prompt.root; mkisofs -o Imagedatei/path/to/treeDateisystemeISO 9660Dieses Kommando erstellt eine Imagedatei,
die ein ISO 9660-Dateisystem enthält, das eine Kopie des
Baumes unter /path/to/tree ist.
Dabei werden die Dateinamen auf Namen abgebildet, die den
Restriktionen des ISO 9660-Dateisystems entsprechen. Dateien
mit Namen, die im ISO 9660-Dateisystem nicht gültig sind,
bleiben unberücksichtigt.DateisystemeHFSDateisystemeJolietEs einige Optionen, um diese Beschränkungen
zu überwinden. Die unter &unix; Systemen üblichen
Rock-Ridge-Erweiterungen werden durch
aktiviert, aktiviert die von Microsoft
Systemen benutzten Joliet-Erweiterungen und
dient dazu, um das von &macos; benutzte HFS zu erstellen.Für CDs, die nur auf FreeBSD-Systemen verwendet werden
sollen, kann genutzt werden, um alle
Beschränkungen für Dateinamen aufzuheben. Zusammen
mit wird ein Abbild des
Dateisystems, ausgehend von dem Startpunkt im FreeBSD-Dateibaum,
erstellt, obwohl dies den ISO 9660 Standard
verletzen kann.CD-ROMbootbare erstellenDie letzte übliche Option ist .
Sie wird benutzt, um den Ort eines Bootimages einer
El Torito bootbaren CD anzugeben. Das Argument
zu dieser Option ist der Pfad zu einem Bootimage ausgehend
von der Wurzel des Baumes, der auf die CD geschrieben werden
soll. In der Voreinstellung erzeugt &man.mkisofs.8; ein
ISO-Image im Diskettenemulations-Modus. Dabei
muss das Image genau 1200, 1440 oder 2880 KB groß
sein. Einige Bootloader, darunter der auf den FreeBSD-Disks
verwendete, kennen keinen Emulationsmodus. Daher sollten Sie
in diesen Fällen die Option
verwenden. Wenn /tmp/myboot ein bootbares
FreeBSD-System enthält, dessen Bootimage sich in
/tmp/myboot/boot/cdboot befindet, können
Sie ein Abbild eines ISO 9660-Dateisystems in
/tmp/bootable.iso wie folgt
erstellen:&prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/mybootWenn Sie vn (mit FreeBSD 4.X)
oder md (mit FreeBSD 5.X) in Ihrem
Kernel konfiguriert haben, können Sie danach das Dateisystem
einhängen. Mit FreeBSD 4.X setzen Sie dazu die
nachstehenden Kommandos ab:&prompt.root; vnconfig -e vn0c /tmp/bootable.iso
&prompt.root; mount -t cd9660 /dev/vn0c /mntMit FreeBSD 5.X verwenden Sie die Kommandos:&prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
&prompt.root; mount -t cd9660 /dev/md0 /mntJetzt können Sie überprüfen, dass
/mnt und /tmp/myboot
identisch sind.Sie können das Verhalten von &man.mkisofs.8;
mit einer Vielzahl von Optionen beeinflussen. Insbesondere
können Sie das ISO 9660-Dateisystem modifizieren und
Joliet- oder HFS-Dateisysteme brennen. Details dazu
entnehmen Sie bitte der Hilfeseite &man.mkisofs.8;.burncdCD-ROMbrennenWenn Sie einen ATAPI-CD-Brenner besitzen, können
Sie burncd benutzen, um ein ISO-Image
auf CD zu brennen. burncd ist Teil
des Basissystems und unter /usr/sbin/burncd
installiert. Da es nicht viele Optionen hat, ist es leicht
zu benutzen:&prompt.root; burncd -f cddevice data imagefile.iso fixateDieses Kommando brennt eine Kopie von
imagefile.iso auf das Gerät
cddevice. In der Grundeinstellung
wird das Gerät /dev/acd0
(oder unter &os; 4.X /dev/acd0c) benutzt.
&man.burncd.8; beschreibt, wie die Schreibgeschwindigkeit
gesetzt wird, die CD ausgeworfen wird und Audiodaten
geschrieben werden.cdrecordWenn Sie keinen ATAPI-CD-Brenner besitzen, benutzen Sie
cdrecord, um CDs zu brennen.
cdrecord ist nicht Bestandteil des Basissystems.
Sie müssen es entweder aus den Ports in
sysutils/cdrtools oder dem
passenden Paket installieren. Änderungen im Basissystem
können Fehler im binären Programm verursachen und
führen möglicherweise dazu, dass Sie einen
Untersetzer brennen. Sie sollten
daher den Port aktualisieren, wenn Sie Ihr System aktualisieren
bzw. wenn Sie
STABLE verfolgen,
den Port aktualisieren, wenn es eine neue Version gibt.Obwohl cdrecord viele Optionen besitzt,
ist die grundlegende Anwendung einfacher als burncd.
Ein ISO 9660-Image erstellen Sie mit:&prompt.root; cdrecord dev=deviceimagefile.isoDer Knackpunkt in der Benutzung von cdrecord
besteht darin, das richtige Argument zu zu
finden. Benutzen Sie dazu den Schalter
von cdrecord, der eine ähnliche Ausgabe
wie die folgende produziert:CD-ROMbrennen&prompt.root; cdrecord -scanbus
Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk
0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk
0,2,0 2) *
0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk
0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus1:
1,0,0 100) *
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM
1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner
1,7,0 107) *Für die aufgeführten Geräte in der Liste
wird das passende Argument zu gegeben.
Benutzen Sie die drei durch Kommas separierten Zahlen, die zu
Ihrem CD-Brenner angegeben sind, als Argument für
. Im Beispiel ist das CDRW-Gerät
1,5,0, so dass die passende Eingabe
dev=1,5,0 wäre.
Einfachere Wege das Argument anzugeben, sind in &man.cdrecord.1;
beschrieben. Dort sollten Sie auch nach
Informationen über Audiospuren, das Einstellen der
Geschwindigkeit und ähnlichem suchen.Kopieren von Audio-CDsUm eine Kopie einer Audio-CD zu erstellen, kopieren Sie die
Stücke der CD in einzelne Dateien und brennen diese Dateien
dann auf eine leere CD. Das genaue Verfahren hängt davon ab,
ob Sie ATAPI- oder SCSI-Laufwerke verwenden.SCSI-LaufwerkeKopieren Sie die Audiodaten mit
cdda2wav:&prompt.user; cdda2wav -v255 -D2,0 -B -OwavDie erzeugten .wav Dateien schreiben
Sie mit cdrecord auf eine leere CD:&prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wavDas Argument von gibt das verwendete
Gerät an, das Sie, wie in
beschrieben, ermitteln können.ATAPI-LaufwerkeDer ATAPI-CD-Treiber stellt die einzelnen Stücke der
CD über die Dateien
/dev/acddtnn,
zur Verfügung. d bezeichnet
die Laufwerksnummer und nn ist die
Nummer des Stücks. Die Nummer ist immer zweistellig,
das heißt es wird, wenn nötig, eine führende
Null ausgegeben. Die Datei /dev/acd0t01
ist also das erste Stück des ersten CD-Laufwerks.
/dev/acd0t02 ist das zweite Stück
und /dev/acd0t03 das dritte.Überprüfen Sie stets, ob die entsprechenden
Dateien im Verzeichnis /dev auch
angelegt werden. Sind die Einträge nicht vorhanden,
weisen Sie Ihr System an, das Medium erneut zu testen:&prompt.root; dd if=/dev/acd0 of=/dev/null count=1Unter &os; 4.X werden diese Einträge nicht
mit dem Wert Null vordefiniert. Falls die entsprechenden
Einträge unter /dev nicht
vorhanden sind, müssen Sie diese hier von
MAKEDEV anlegen lassen:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV acd0t99Die einzelnen Stücke kopieren Sie mit &man.dd.1;. Sie
müssen dazu eine spezielle Blockgröße
angeben:&prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352
&prompt.root; dd if=/dev/acd0t02 of=track2.cdr bs=2352
...
Die kopierten Dateien können Sie dann mit
burncd brennen. Auf der Kommandozeile
müssen Sie angeben, dass Sie Audio-Daten brennen
wollen und dass das Medium fixiert werden soll:&prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixateKopieren von Daten-CDsSie können eine Daten-CD in eine Datei kopieren, die einem
Image entspricht, das mit
&man.mkisofs.8; erstellt
wurde. Mit Hilfe dieses Images können Sie jede Daten-CD
kopieren. Das folgende Beispiel verwendet
acd0 für das CD-ROM-Gerät. Wenn
Sie ein anderes Laufwerk benutzen, setzen Sie bitte den richtigen
Namen ein. Unter &os; 4.X muss an den Gerätenamen ein
c angehangen werden, um die ganze Partition,
in diesem Fall ist das die ganze CD-ROM, anzusprechen.&prompt.root; dd if=/dev/acd0 of=file.iso bs=2048Danach haben Sie ein Image, das Sie wie oben beschrieben, auf
eine CD brennen können.Einhängen von Daten-CDsNachdem Sie eine Daten-CD gebrannt haben, wollen Sie
wahrscheinlich auch die Daten auf der CD lesen. Dazu müssen
Sie die CD in den Dateibaum einhängen. Die Voreinstellung
für den Typ des Dateisystems von &man.mount.8; ist
UFS. Das System wird die Fehlermeldung
Incorrect super block ausgeben, wenn Sie
versuchen, die CD mit dem folgenden Kommando
einzuhängen:&prompt.root; mount /dev/cd0 /mntAuf der CD befindet sich ja kein UFS
Dateisystem, so dass der Versuch, die CD einzuhängen
fehlschlägt. Sie müssen &man.mount.8; sagen, dass
es ein Dateisystem vom Typ ISO9660 verwenden
soll. Dies erreichen Sie durch die Angabe von auf der Kommandozeile. Wenn Sie also die CD-ROM
/dev/cd0 in /mnt
einhängen wollen, führen Sie folgenden Befehl aus:&prompt.root; mount -t cd9660 /dev/cd0c /mntAbhängig vom verwendeten CD-ROM kann der Gerätename
von dem im Beispiel (/dev/cd0)
abweichen. Die Angabe von führt
&man.mount.cd9660.8; aus, so dass das Beispiel verkürzt
werden kann:&prompt.root; mount_cd9660 /dev/cd0 /mntAuf diese Weise können Sie
Daten-CDs von jedem Hersteller verwenden. Es kann allerdings zu
Problemen mit CDs kommen, die verschiedene ISO 9660 Erweiterungen
benutzen. So speichern Joliet-CDs alle Dateinamen unter Verwendung
von zwei Byte langen Unicode-Zeichen. Der FreeBSD-Kernel
unterstützt zurzeit noch kein Unicode und manche
Sonderzeichen werden als Fragezeichen dargestellt. Ab
FreeBSD 4.3 sind im CD9660-Treiber Möglichkeiten vorgesehen,
eine Konvertierungstabelle zur Laufzeit zu laden. Module für
die gebräuchlisten Kodierungen finden Sie im Port
sysutils/cd9660_unicode.Manchmal werden Sie die Meldung Device
not configured erhalten, wenn Sie versuchen, eine
CD-ROM einzuhängen. Für gewöhnlich liegt das daran,
dass das Laufwerk meint es sei keine CD eingelegt, oder
dass das Laufwerk auf dem Bus nicht erkannt wird. Es kann
einige Sekunden dauern, bevor das Laufwerk merkt, dass eine CD
eingelegt wurde. Seien Sie also geduldig.Manchmal wird ein SCSI-CD-ROM nicht erkannt, weil es keine Zeit
hatte, auf das Zurücksetzen des Busses zu antworten. Wenn Sie
ein SCSI-CD-ROM besitzen, sollten Sie die folgende Zeile in Ihre
Kernelkonfiguration aufnehmen und einen neuen Kernel bauen:options SCSI_DELAY=15000Die Zeile bewirkt, dass nach dem Zurücksetzen des
SCSI-Busses beim Booten 15 Sekunden gewartet wird, um dem
CD-ROM-Laufwerk genügend Zeit zu geben, darauf zu
antworten.Brennen von rohen CDsSie können eine Datei auch direkt auf eine CD brennen,
ohne vorher auf ihr ein ISO 9660-Dateisystem einzurichten.
Einige Leute nutzen dies, um Datensicherungen durchzuführen.
Diese Vorgehensweise hat den Vorteil, dass Sie schneller als
das Brennen einer normalen CD ist.&prompt.root; burncd -f /dev/acd1 -s 12 data archive.tar.gz fixateWenn Sie die Daten von einer solchen CD wieder
zurückbekommen wollen, müssen Sie sie direkt von dem
rohen Gerät lesen:&prompt.root; tar xzvf /dev/acd1Eine auf diese Weise gefertigte CD können Sie nicht in das
Dateisystem einhängen. Sie können Sie auch nicht auf
einem anderen Betriebssystem lesen. Wenn Sie die erstellten CDs in
das Dateisystem einhängen oder mit anderen Betriebssystemen
austauschen wollen, müssen Sie &man.mkisofs.8;
wie oben beschrieben benutzen.MarcFonvieilleBeigetragen von CD-BrennerATAPI/CAM TreiberDer ATAPI/CAM TreiberMit diesem Treiber kann auf ATAPI-Geräte (wie
CD-ROM-, CD-RW- oder DVD-Laufwerke) mithilfe des
SCSI-Subsystems zugegriffen werden. Damit können
Sie SCSI-Werkzeuge, wie sysutils/cdrdao oder &man.cdrecord.1;,
zusammen mit einem ATAPI-Gerät benutzen.Wenn Sie den Treiber benutzen wollen, fügen Sie
die nachstehende Zeile in Ihre Kernelkonfiguration ein:device atapicamDie folgenden Zeilen werden ebenfalls benötigt,
sollten aber schon Teil der Kernelkonfiguration sein:device ata
device scbus
device cd
device passÜbersetzen und installieren Sie dann den neuen
Kernel. Der CD-Brenner sollte beim Neustart des Systems
erkannt werden:acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4
cd0 at ata1 bus 0 target 0 lun 0
cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device
cd0: 16.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closedÜber den Gerätenamen /dev/cd0
können Sie nun auf das Laufwerk zugreifen. Wenn Sie
beispielsweise eine CD-ROM in /mnt
einhängen wollen, benutzen Sie das nachstehende
Kommando:&prompt.root; mount -t cd9660 /dev/cd0 /mntDie SCSI-Adresse des Brenners können Sie als
root wie folgt ermitteln:&prompt.root; camcontrol devlist
<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0)Die SCSI-Adresse 1,0,0 können
Sie mit den SCSI-Werkzeugen, zum Beispiel &man.cdrecord.1;,
verwenden.Weitere Informationen über das ATAPI/CAM- und
das SCSI-System erhalten Sie in den Hilfeseiten
&man.atapicam.4; und &man.cam.4;.MarcFonvieilleBeigetragen von AndyPolyakovMit Beiträgen von DVDs benutzenDVDbrennenEinführungNach der CD ist die DVD die nächste Generation
optischer Speichermedien. Auf einer DVD können
mehr Daten als auf einer CD gespeichert werden.
DVDs werden heutzutage als Standardmedium für
Videos verwendet.Für beschreibbare DVDs existieren fünf
Medienformate:DVD-R: Dies war das erste verfügbare Format.
Das Format wurde vom DVD-Forum
festgelegt. Die Medien sind nur einmal beschreibbar.DVD-RW: Dies ist die wiederbeschreibbare Version
des DVD-R Standards. Eine DVD-RW kann ungefähr
1000 Mal beschrieben werden.DVD-RAM: Dies ist ebenfalls ein wiederbeschreibbares
Format, das vom DVD-Forum unterstützt wird.
Eine DVD-RAM verhält sich wie eine Wechselplatte.
Allerdings sind die Medien nicht kompatibel zu den
meisten DVD-ROM-Laufwerken und DVD-Video-Spielern.
DVD-RAM wird nur von wenigen Brennern unterstützt.DVD+RW: Ist ein wiederbeschreibbares Format, das
von der DVD+RW
Alliance festgelegt wurde. Eine DVD+RW
kann ungefähr 1000 Mal beschrieben werden.DVD+R: Dieses Format ist die nur einmal beschreibbare
Variante des DVD+RW Formats.Auf einer einfach beschichteten DVD können
4.700.000.000 Bytes gespeichert werden. Das
sind 4,38 GB oder 4485 MB (1 Kilobyte
sind 1024 Bytes).Die physischen Medien sind unabhängig von
der Anwendung. Ein DVD-Video ist eine spezielle
Anordnung von Dateien, die auf irgendein Medium (zum Beispiel
DVD-R, DVD+R oder DVD-RW) geschrieben werden kann.
Bevor Sie ein Medium auswählen, müssen
Sie sicherstellen, dass der Brenner und der DVD-Spieler
(ein Einzelgerät oder ein DVD-ROM-Laufwerk
eines Rechners) mit dem Medium umgehen können.KonfigurationDas Programm &man.growisofs.1; beschreibt DVDs.
Das Kommando ist Teil der Anwendung
dvd+rw-tools
(sysutils/dvd+rw-tools).
dvd+rw-tools kann mit allen
DVD-Medien umgehen.Um die Geräte anzusprechen, brauchen die
Werkzeuge das SCSI-Subsystem. Daher muss der
Kernel den ATAPI/CAM-Treiber
zur Verfügung stellen. Der Treiber ist mit
USB-Brennern nutzlos; die Konfiguration von
USB-Geräten behandelt .Für ATAPI-Geräte müssen Sie ebenfalls
DMA-Zugriffe aktivieren. Fügen Sie dazu die nachstehende
Zeile in die Datei /boot/loader.conf
ein:hw.ata.atapi_dma="1"Bevor Sie dvd+rw-tools
mit Ihrem DVD-Brenner benutzen, lesen Sie bitte die
Hardware-Informationen auf der Seite dvd+rw-tools'
hardware compatibility notes.Wenn Sie eine graphische Oberfläche bevorzugen,
schauen Sie sich bitte den Port
sysutils/k3b
an. Der Port bietet eine leicht zu bedienende
Schnittstelle zu &man.growisofs.1; und vielen
anderen Werkzeugen.Daten-DVDs brennen&man.growisofs.1; erstellt mit dem Programm
mkisofs das Dateisystem
und brennt anschließend die DVD. Vor dem Brennen
brauchen Sie daher kein Abbild der Daten zu erstellen.Wenn Sie von den Daten im Verzeichnis
/path/to/data eine
DVD+R oder eine DVD-R brennen wollen, benutzen Sie
das nachstehende Kommando:&prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/dataDie Optionen werden an
&man.mkisofs.8; durchgereicht und dienen zum Erstellen
des Dateisystems (hier: ein ISO-9660-Dateisystem mit
Joliet- und Rock-Ridge-Erweiterungen). Weiteres
entnehmen Sie bitte der Hilfeseite &man.mkisofs.8;.Die Option wird für die erste
Aufnahme einer Session benötigt, egal ob Sie eine
Multi-Session-DVD brennen oder nicht. Für
/dev/cd0 müssen Sie
den Gerätenamen Ihres Brenners einsetzen. Die
Option schließt das
Medium, weitere Daten können danach nicht mehr
angehängt werden. Durch die Angabe dieser Option
kann das Medium von mehr DVD-ROM-Laufwerken gelesen
werden.Sie können auch ein vorher erstelltes Abbild
der Daten brennen. Die nachstehende Kommandozeile
brennt das Abbild in der Datei
imagefile.iso:&prompt.root; growisofs -dvd-compat -Z /dev/cd0=imagefile.isoDie Schreibgeschwindigkeit hängt von den
verwendeten Medium sowie dem verwendeten Gerät ab
und sollte automatisch gesetzt werden. Falls Sie die
Schreibgeschwindigkeit vorgeben möchten, verwenden
Sie den Parameter . Weiteres
erfahren Sie in der Hilfeseite &man.growisofs.1;.DVDDVD-VideoDVD-Videos brennenEin DVD-Video ist eine spezielle Anordnung von Dateien, die
auf den ISO-9660 und den micro-UDF (M-UDF) Spezifikationen
beruht. Ein DVD-Video ist auf eine bestimmte Datei-Hierarchie
angewiesen. Daher müssen Sie DVDs mit speziellen
Programmen wie multimedia/dvdauthor
erstellen.Wenn Sie schon ein Abbild des Dateisystems eines
DVD-Videos haben, brennen Sie das Abbild wie jedes
andere auch. Eine passende Kommandozeile finden Sie
im vorigen Abschnitt. Wenn Sie die DVD im Verzeichnis
/path/to/video
zusammengestellt haben, erstellen Sie das DVD-Video
mit dem nachstehenden Kommando:&prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/videoDie Option wird an
&man.mkisofs.8; weitergereicht. Dadurch erstellt
&man.mkisofs.8; die Datei-Hierarchie für ein
DVD-Video. Weiterhin bewirkt die Angabe von
, dass &man.growisofs.1;
mit der Option aufgerufen wird.DVDDVD+RWDVD+RW-Medien benutzenIm Gegensatz zu CD-RW-Medien müssen Sie DVD+RW-Medien
erst formatieren, bevor Sie die Medien benutzen.
Sie sollten &man.growisofs.1; einzetzen, da das Programm
Medien automatisch formatiert, wenn es erforderlich
ist. Sie können eine DVD+RW aber auch mit dem
Kommando dvd+rw-format formatieren:&prompt.root; dvd+rw-format /dev/cd0Sie müssen das Kommando nur einmal mit
neuen Medien laufen lassen. Anschließend
können Sie DVD+RWs, wie in den vorigen
Abschnitten beschrieben, brennen.Wenn Sie auf einer DVD+RW ein neues Dateisystem
erstellen wollen, brauchen Sie die DVD+RW vorher
nicht zu löschen. Überschreiben Sie
einfach das vorige Dateisystem indem Sie eine neue
Session anlegen:&prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/newdataMit dem DVD+RW-Format ist es leicht, Daten an eine
vorherige Aufnahme anzuhängen. Dazu wird eine neue
Session mit der schon bestehenden zusammengeführt.
Es wird keine Multi-Session geschrieben, sondern
&man.growisofs.1; vergrößert
das ISO-9660-Dateisystem auf dem Medium.Das folgende Kommando fügt weitere Daten zu
einer vorher erstellten DVD+RW hinzu:&prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdataWenn Sie eine DVD+RW erweitern, verwenden Sie
dieselben &man.mkisofs.8;-Optionen wie beim Erstellen
der DVD+RW.Um die Kompatibilität mit DVD-ROM-Laufwerken
zu gewährleisten, wollen Sie vielleicht die
Option einsetzen.
Zu einem DVD+RW-Medium können Sie mit dieser
Option auch weiterhin Daten hinzufügen.Wenn Sie das Medium aus irgendwelchen Gründen
doch löschen müssen, verwenden Sie den
nachstehenden Befehl:&prompt.root; growisofs -Z /dev/cd0=/dev/zeroDVDDVD-RWDVD-RW-Medien benutzenEine DVD-RW kann mit zwei Methoden beschrieben werden:
Sequential-Recording oder
Restricted-Overwrite. Voreingestellt
ist Sequential-Recording.Eine neue DVD-RW kann direkt beschrieben werden; sie
muss nicht vorher formatiert werden. Allerdings muss
eine DVD-RW, die mit Sequential-Recording aufgenommen
wurde, zuerst gelöscht werden, bevor eine neue Session
aufgenommen werden kann.Der folgende Befehl löscht eine DVD-RW im
Sequential-Recording-Modus:&prompt.root; dvd+rw-format -blank=full /dev/cd0Das vollständige Löschen
() dauert mit einem
1x Medium ungefähr eine Stunde. Wenn die
DVD-RW im Disk-At-Once-Modus (DAO) aufgenommen wurde,
kann Sie mit der Option schneller
gelöscht werden. Um eine DVD-RW im DAO-Modus zu
brennen, benutzen Sie das folgende Kommando:&prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.isoDie Option
sollte nicht erforderlich sein, da &man.growisofs.1;
den DAO-Modus erkennt.Der Restricted-Overwrite-Modus sollte mit jeder
DVD-RW verwendet werden, da er flexibler als der
voreingestellte Sequential-Recording-Modus ist.Um Daten auf eine DVD-RW im Sequential-Recording-Modus
zu schreiben, benutzen Sie dasselbe Kommando wie
für die anderen DVD-Formate:&prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/dataWenn Sie weitere Daten zu einer Aufnahme hinzufügen
wollen, benutzen Sie die Option von
&man.growisofs.1;. Werden die Daten im Sequential-Recording-Modus
hinzugefügt, wird eine neue Session erstellt.
Das Ergebnis ist ein Multi-Session-Medium.Eine DVD-RW im Restricted-Overwrite-Modus muss nicht
gelöscht werden, um eine neue Session aufzunehmen.
Sie können das Medium einfach mit der Option
überschreiben, ähnlich wie
bei DVD+RW. Mit der Option können
Sie das ISO-9660-Dateisystem, wie mit einer DVD+RW,
vergrößern. Die DVD enthält danach eine
Session.Benutzen sie das nachstehende Kommando, um den
Restricted-Overwrite-Modus einzustellen:&prompt.root; dvd+rw-format /dev/cd0Das folgende Kommando stellt den Modus wieder auf
Sequential-Recording zurück:&prompt.root; dvd+rw-format -blank=full /dev/cd0Multi-SessionNur wenige DVD-ROM-Laufwerke können
Multi-Session-DVDs lesen. Meist lesen die Spieler nur
die erste Session. Mehrere Sessions werden von
DVD+R, DVD-R und DVD-RW im Sequential-Recording-Modus
unterstützt. Im Modus Restricted-Overwrite gibt
es nur eine Session.Wenn das Medium noch nicht geschlossen ist, erstellt
das nachstehende Kommando eine neue Session auf einer
DVD+R, DVD-R oder DVD-RW im Sequential-Recording-Modus:&prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdataWird diese Kommandozeile mit DVD+RW- oder DVD-RW-Medien
im Restricted-Overwrite-Modus benutzt, werden die
neuen Daten mit den Daten der bestehenden Session
zusammengeführt. Das Medium enthält danach
eine Session. Auf diesem Weg werden neue Daten zu
einer bestehenden Session hinzugefügt.Für den Anfang und das Ende einer Session
wird auf dem Medium zusätzlicher Platz verbraucht.
Um den Speicherplatz auf dem Medium optimal auszunutzen,
sollten Sie daher Sessions mit vielen Daten hinzufügen.
Auf ein DVD+R-Medium passen maximal 154 Sessions,
2000 Sessions auf ein DVD-R-Medium und
127 Sessions auf eine DVD+R Double Layer.WeiterführendesDas Kommando dvd+rw-mediainfo
/dev/cd0 zeigt
Informationen über eine im Laufwerk liegende
DVD an.Weiteres zu den dvd+rw-tools
lesen Sie bitte in der Hilfeseite &man.growisofs.1;,
auf der dvd+rw-tools
Web-Seite oder in den Archiven der cdwrite-Mailingliste.JulioMerinoOriginal von MartinKarlssonUmgeschrieben von Disketten benutzenDisketten sind nützlich, wenn kein anderes
bewegliches Speichermedium vorhanden ist oder wenn
nur kleine Datenmengen transferiert werden sollen.Dieser Abschnitt beschreibt die Handhabung von Disketten
unter FreeBSD. Hauptsächlich geht es um die
Formatierung und Benutzung von 3,5 Zoll Disketten,
doch lassen sich die Konzepte leicht auf Disketten anderer
Formate übertragen.Disketten formatierenDie GerätedateienWie auf jedes andere Gerät auch, greifen Sie
auf Disketten über Einträge im Verzeichnis
/dev zu. Unter &os; 4.X und
früheren Versionen greifen Sie auf das Laufwerk
über die Gerätedateien
/dev/fdN
(N ist Laufwerksnummer,
für gewöhnlich 0) oder
/dev/fdNX
(X ist ein Buchstabe) zu.Unter &os; 5.0 oder neueren Versionen
verwenden Sie einfach die Datei
/dev/fdN.Diskettenkapazitäten unter 4.X oder
früherEs gibt Gerätedateien der Form
/dev/fdX.Größe.
Größe gibt die
Kapazität der Diskette in Kilobytes an. Diese
Einträge bestimmen bei der Low-Level-Formatierung
die Speicherkapazität der Diskette. In den folgenden
Beispiel wird die Größe 1440 kb
verwendet.Manchmal müssen die Gerätedateien
in /dev (neu) erstellt werden.
Dies geschieht mit dem folgenden Befehl:&prompt.root; cd /dev && ./MAKEDEV "fd*"Diskettenkapazitäten unter 5.0 oder
neueren VersionenUnter &os; 5.X werden die Gerätedateien
von &man.devfs.5; verwaltet. Der Befehl
MAKEDEV wird nicht mehr
benötigt.Die gewünschte Kapazität wird &man.fdformat.1;
über die Option mitgeteilt. Die
unterstützten Kapazitäten sind in der
Hilfeseite &man.fdcontrol.8; aufgezählt.
1440 kB ist eine gängige Kapazität und
funktioniert am besten.FormatierungBevor eine Diskette benutzt werden kann, muss Sie
(low-level) formatiert werden, was normalerweise der
Hersteller schon gemacht hat. Sie können die
Diskette allerdings noch einmal formatieren, um das Medium zu
überprüfen. Es ist möglich, die
Kapazität der Diskette zu verändern,
allerdings sind die meisten Disketten auf 1440 kB
ausgelegt.Mit &man.fdformat.1; formatieren Sie eine
Diskette. Das Kommando erwartet die Angabe eines
Gerätenamens.Achten Sie bei der Formatierung
auf Fehlermeldungen, die schlechte Speichermedien
anzeigen.Formatierung unter 4.X oder
früheren VersionenDie Disketten werden mithilfe der Gerätedatei
/dev/fdX.Größe
formatiert. Legen Sie eine 3,5 Zoll Diskette in
Ihr Laufwerk ein und führen das folgende Kommando
aus:&prompt.root; /usr/sbin/fdformat /dev/fd0.1440Formatierung unter 5.X oder
neueren VersionenDie Disketten werden mithilfe der Gerätedatei
/dev/fdN
formatiert. Legen Sie eine 3,5 Zoll Diskette in
Ihr Laufwerk ein und führen das folgende Kommando
aus:&prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0Das DisklabelNach dem Formatieren muss auf der Diskette ein Disklabel
erstellt werden. Das Disklabel wird später zerstört, ist
aber notwendig, um die Größe und Geometrie der Diskette
zu erkennen.Das Disklabel gilt für die ganze Diskette und enthält
alle Informationen über die Geometrie der Diskette. Eine
Liste der möglichen Geometrien finden Sie in
/etc/disktab.Erstellen Sie nun das Label mit &man.disklabel.8;:&prompt.root; /sbin/disklabel -B -r -w /dev/fd0 fd1440Ab &os; 5.1-RELEASE wurde &man.disklabel.8;
durch &man.bsdlabel.8; ersetzt. In bsdlabel
wurden veraltete Optionen entfernt. Entfernen Sie die
Option in den obigen Beispielen,
wenn Sie bsdlabel verwenden.
Weiteres entnehmen Sie bitte der Hilfeseite
&man.bsdlabel.8;.Das DateisystemAuf der Diskette muss nun ein Dateisystem erstellt werden
(high-level Formatierung), damit FreeBSD von der Diskette lesen und
auf sie schreiben kann. Das Disklabel wird durch das Anlegen eines
Dateisystems zerstört. Falls Sie die Diskette später erneut
formatieren wollen, müssen Sie dann auch ein neues Disklabel
anlegen.Sie können entweder UFS oder FAT als Dateisystem
verwenden. Für Floppies ist FAT das beste Dateisystem.Das folgende Kommando legt ein Dateisystem auf der Diskette
an:&prompt.root; /sbin/newfs_msdos /dev/fd0Die Diskette kann nun benutzt werden.Verwenden der DisketteUnter &os; 4.X und früheren Versionen
können Sie die Diskette mit &man.mount.msdos.8; in
den Dateibaum einhängen. Unter &os; 5.X und
neueren Versionen verwenden Sie dazu den Befehl
&man.mount.msdosfs.8;. Sie können auch den
Port emulators/mtools
verwenden, um mit der Diskette zu arbeiten.Bandmedien benutzenBandmedienDie wichtigsten Bandmedien sind 4mm, 8mm, QIC,
Mini-Cartridge und DLT.4mm (DDS: Digital Data Storage)BandmedienDDS (4mm) BänderBandmedienQIC BänderDie 4mm-Bänder ersetzen mehr und mehr das QIC-Format als
Backupmedium der Wahl für Workstations. Dieser Trend nahm stark
zu, als Conner die Firma Archive, einen führenden Hersteller von
QIC-Laufwerken, aufkaufte und die Produktion von QIC-Laufwerken
stoppte. 4mm-Laufwerke sind klein und ruhig, haben aber nicht den
gleichen Ruf der Zuverlässigkeit, den die 8mm-Laufwerke
genießen. Die 4mm-Kassetten sind preiswerter und mit den
Maßen 76,2 x 50,8 x 12,7 mm
(3 x 2 x 0,5 Inch) kleiner als die
8mm-Kassetten. Sowohl die 4mm- als auch die 8mm-Magnetköpfe
haben eine relativ kurze Lebensdauer, weil beide die gleiche
Helical-Scan-Technik benutzen.Der Datendurchsatz dieser Laufwerke beginnt bei etwa
150 kByte/s, Spitzenwerte liegen bei etwa 500 kByte/s.
Die Datenkapazität liegt zwischen 1,3 GB und 2 GB.
Die meisten Geräte haben eine Hardwarekompression eingebaut,
die die Kapazität ungefähr verdoppelt. Es gibt
Multi-Drive-Einheiten für Bandbibliotheken mit bis zu 6
Laufwerken in einem Gehäuse und automatischem Bandwechsel. Die
Kapazität einer solchen Bibliothek liegt bei 240 GB.Der Standard DDS-3 unterstützt nun Bandkapazitäten bis
zu 12 GB (oder komprimiert 24 GB).4mm-Laufwerke, ebenso wie 8mm-Laufwerke, verwenden Helical-Scan.
Alle Vor- und Nachteile von Helical-Scan gelten sowohl für 4mm-
als auch für 8mm-Laufwerke.Bänder sollten nach 2.000 Banddurchläufen oder 100
vollen Backups ersetzt werden.8mm (Exabyte)BandmedienExabyte (8mm) Bänder8mm-Bänder sind die verbreitetsten SCSI-Bandlaufwerke; sie
sind das geeignetste Bandformat zum Austausch von Bändern.
Fast an jedem Standort gibt es ein 8mm-Bandlaufwerk mit 2 GB.
8mm-Bänder sind zuverlässig, gut zu handhaben und
arbeiten leise. Bandkassetten sind preiswert und klein mit
122 x 84 x 15 mm
(4,8 x 3,3 x 0,6 Inch). Ein Nachteil
der 8mm-Technik ist die relativ kurze Lebensdauer des
Schreib-/Lesekopfs und der Bänder auf Grund der hohen
Relativgeschwindigkeit des Bandes über die Köpfe
hinweg.Der Datendurchsatz liegt ungefähr zwischen
250 kByte/s und 500 kByte/s. Die Datenkapazität
beginnt bei 300 MB und erreicht bis zu 7 GB bei den
Spitzengeräten. Die meisten Geräte
haben eine Hardwarekompression eingebaut, die die Kapazität
ungefähr verdoppelt. Diese Laufwerke sind erhältlich in
Form von Einzelgeräten oder als Multi-Drive-Bandbibliotheken mit
6 Laufwerken und 120 Bändern in einem Gehäuse. Die
Bänder werden von der Geräteeinheit automatisch gewechselt.
Die Kapazität einer solchen Bibliothek liegt bei 840 GB und
mehr.Das Exabyte-Modell Mammoth unterstützt
12 GB auf einem Band (24 GB mit Kompression) und kostet
etwa doppelt so viel wie ein konventionelles Bandlaufwerk.Die Daten werden mittels Helical-Scan auf das Band
aufgezeichnet, die Köpfe sind leicht schräg zum Medium
angebracht (mit einem Winkel von etwa 6 Grad). Das Band wickelt
sich 270 Grad um die Spule, die die Köpfe trägt.
Die Spule dreht sich, während das Band darüberläuft.
Das Resultat ist eine hohe Datendichte und eng gepackte Spuren,
die von einem Rand des Bands zum gegenüberliegenden quer
über das Band abgewinkelt verlaufen.QICBandmedienQIC-150QIC-150-Bänder und -Laufwerke sind wohl der am weitesten
verbreitete Bandtyp überhaupt. QIC-Bandlaufwerke sind die
preiswertesten seriösen Backupgeräte,
die angeboten werden. Der Nachteil dabei ist der hohe Preis
der Bänder. QIC-Bänder sind im Vergleich zu 8mm- oder
4mm-Bändern bis zu fünf Mal teurer, wenn man den Preis
auf 1 GB Datenkapazität umrechnet. Aber wenn Ihr Bedarf
mit einem halben Dutzend Bänder abgedeckt werden kann,
mag QIC die richtige Wahl sein.QIC ist der gängigste
Bandlaufwerkstyp. Jeder Standort hat ein QIC-Laufwerk der einen oder
anderen Dichte. Aber gerade das ist der Haken an der Sache, QIC
bietet eine große Anzahl verschiedener Datendichten auf
physikalisch ähnlichen (manchmal gleichen) Bändern.
QIC-Laufwerke sind nicht leise. Diese Laufwerke suchen lautstark die
richtige Bandstelle, bevor sie mit der Datenaufzeichnung beginnen.
Sie sind während des Lesens, Schreibens und Suchens deutlich
hörbar.Die Abmessungen der QIC-Kassetten betragen
152 x 102 x 17 mm
(6 x 4 x 0,7 Inch).Der Datendurchsatz liegt ungefähr zwischen
150 kByte/s und 500 kByte/s. Die Datenkapazität
reicht von 40 MB bis zu 15 GB.
Hardwarekompression ist in vielen der neueren QIC-Laufwerke eingebaut.
QIC-Laufwerke werden heute seltener eingesetzt; sie werden von den
DAT-Laufwerken abgelöst.Die Daten werden auf dem Band in Spuren aufgezeichnet. Die
Spuren verlaufen entlang der Längsachse des Bandmediums von einem
Ende zum anderen. Die Anzahl der Spuren, und damit auch die Breite
einer Spur, variiert mit der Kapazität des Laufwerks. Die
meisten, wenn nicht alle neueren Laufwerke sind
rückwärtskompatibel, zumindest zum Lesen (aber oft auch zum
Schreiben). QIC hat einen guten Ruf bezüglich der
Datensicherheit (die Mechanik ist einfacher und robuster als diejenige
der Helical-Scan-Laufwerke).Bänder sollten nach 5,000 Backups ersetzt werden.DLTBandmedienDLTDLT hat die schnellste Datentransferrate von allen hier
aufgelisteten Gerätetypen. Das 1/2-Inch-Band (12,7 mm)
befindet sich in einer Spulkassette mit den Abmessungen
101,6 x 101,6 x 25,4 mm
(4 x 4 x 1 Inch). Die eine Seite
der Kassette hat eine bewegliche Abdeckung. Der Laufwerksmechanismus
öffnet diese Abdeckung und zieht die Bandführung heraus.
Die Bandführung trägt ein ovales Loch, die das Laufwerk
zum Einhängen des Bandes benutzt. Die
Aufwickelspule befindet sich im Innern des Bandlaufwerks. Bei allen
anderen hier besprochenen Bandkassetten (9-Spur-Bänder
sind die einzige Ausnahme) befinden sich sowohl die Auf- als auch
die Abwickelspule im Inneren der Bandkassette.Der Datendurchsatz liegt bei etwa 1,5 MBytes/s, der dreifache
Durchsatz der 4mm-, 8mm- oder QIC-Bandlaufwerke. Die
Datenkapazität reicht von 10 GB bis 20 GB für
Einfachlaufwerke. Auch Mehrfachbandgeräte sind erhältlich,
sowohl als Bandwechsler wie auch als Multi-Drive-Bandbibliotheken, die
Platz für 5 bis 900 Bänder verteilt auf 1 bis 20 Laufwerke
enthalten, mit einer Speicherkapazität von 50 GB bis
9 TB.Mit Kompression unterstützt das Format DLT Type IV bis zu
70 GB Kapazität.Die Daten werden auf dem Band in Spuren aufgezeichnet, die
parallel zur Bewegungsrichtung verlaufen (gerade so wie bei den
QIC-Bändern). Zwei Spuren werden dabei gleichzeitig beschrieben.
Die Lebenszeit der Lese- und Schreibköpfe sind relativ lang; denn
sobald das Band anhält, gibt es keine Relativbewegung mehr
zwischen den Köpfen und dem Band.AITBandmedienAITAIT ist ein neues Format von Sony, das (mit Kompression) bis zu
50 GB pro Band speichern kann. Die Bänder haben einen
Speicherchip, der einen Index mit dem Inhalt des Bandes anlegt.
Dieser Index kann vom Bandlaufwerk zur schnellen Bestimmung der Lage
von Dateien auf dem Band benutzt werden, während andere
Bänder einige Minuten zur Lokalisierung benötigen.Entsprechende Software wie etwa
SAMS:Alexandria können 40
oder mehr AIT-Bandbibliotheken verarbeiten, indem sie
direkt mit dem Speicherchip des Bandes kommunizieren, wenn der
Bandinhalt am Bildschirm dargestellt werden soll oder bestimmt werden
soll, welche Dateien auf welchem Band gespeichert sind, oder um das
richtige Band zu lokalisieren, zu laden und Daten vom Band
zurückzuspielen. Bibliotheken dieser Art liegen in der
Preiskategorie von $20,000, womit sie etwas aus dem Hobbymarkt
herausfallen.Die erste Benutzung eines neuen BandsDer Versuch ein neues, vollkommen leeres Band ohne weiteres zu
lesen oder zu beschreiben wird schief gehen. Auf der Konsole werden
dann Meldungen ähnlich wie folgt ausgegeben:sa0(ncr1:4:0): NOT READY asc:4,1
0(ncr1:4:0): Logical unit is in process of becoming readyDas Band enthält nämlich keinen Identifier-Block
(Blocknummer 0). Alle QIC-Bandlaufwerke seit der Einführung des
QIC-525-Standards schreiben einen Identifier-Block auf das Band. Es
gibt zwei Lösungen:mt fsf 1 veranlasst das Bandlaufwerk
einen Identifier-Block auf das Band zu schreiben.Das Band durch Drücken des Bandauswurfknopfs an der
Vorderseite des Bandgeräts auswerfen.Danach das Band wieder einlegen und mit
dump Daten auf das Band
übertragen.Das Kommando dump gibt die Meldung
DUMP: End of tape detected zurück
und die Konsole zeigt:
HARDWARE FAILURE info:280 asc:80,96.Das Band zurückspulen mit dem Kommando:
mt rewind.Nachfolgende Bandoperationen werden dann erfolgreich
ausgeführt.Was ist mit Backups auf Disketten?Kann ich Disketten zum Backup meiner Daten verwenden?Backup DiskettenDiskettenDisketten sind kein wirklich geeignetes Medium für Backups
aus folgenden Gründen:Disketten sind unzuverlässig, besonders
langfristig.Speichern und Wiederherstellen ist sehr langsam.Sie haben eine sehr eingeschränkte Kapazität (Die
Zeiten sind längst vorbei, wo eine ganze Festplatte auf ein
Dutzend Floppies oder so gespeichert werden konnte).Wenn jedoch keine andere Möglichkeit zum Datenbackup
vorhanden ist, dann sind Disketten immer noch besser als gar kein
Backup.Wenn man gezwungen ist Disketten zu verwenden, dann sollte man
auf eine gute Qualität achten. Floppies, die schon einige Jahre
im Büro herumgelegen haben, sind eine schlechte Wahl. Ideal sind
neue Disketten von einem renommierten Hersteller.Wie mache ich ein Backup auf Disketten?Die beste Art eines Diskettenbackups ist der Befehl
&man.tar.1; mit der Mehrfachband-Option ,
die es ermöglicht ein Backup über mehrere
Floppies zu verteilen.Ein Backup aller Dateien im aktuellen Verzeichnis
einschließlich aller Unterverzeichnisse wird durch den folgenden
Befehl veranlasst (als root):&prompt.root; tar Mcvf /dev/fd0 *Wenn die erste Floppy voll ist, meldet sich &man.tar.1;
und verlangt einen Diskettenwechsel (weil &man.tar.1;
unabhängig vom
Medium arbeitet, wird das nächste Band (Volume) verlangt, was in
diesem Zusammenhang eine Diskette bedeutet), in etwa wie folgt:Prepare volume #2 for /dev/fd0 and hit return:Dies wird mit steigender Volumenzahl wiederholt, bis alle
angegebenen Dateien archiviert sind.Können Diskettenbackups komprimiert werden?targzipKompressionLeider erlaubt es &man.tar.1; nicht, die Option
für Multi-Volume-Archive zu verwenden.
Man kann natürlich alle Dateien mit &man.gzip.1;
komprimieren, sie mit &man.tar.1; auf die Floppies
aufspielen, und dann die Dateien wieder &man.gunzip.1;
entkomprimieren!Wie werden Diskettenbackups wieder hergestellt?Zur Wiederherstellung des gesamten Archivs verwendet man:&prompt.root; tar Mxvf /dev/fd0Eine Methode um nur bestimmte Dateien wieder her zu stellen ist
mit der ersten Diskette den folgenden Befehl auszuführen:&prompt.root; tar Mxvf /dev/fd0 filename&man.tar.1; wird dann die folgenden Disketten anfordern,
bis die benötigte Datei gefunden ist.Wenn man die Diskette kennt, auf der sich die Datei befindet,
kann man alternativ diese Diskette auch direkt einlegen und den
gleichen Befehl wie oben verwenden. Man beachte, dass, falls die
erste Datei eine Fortsetzung einer Datei von einer
der vorigen Disketten ist, &man.tar.1; die Warnung ausgibt,
dass diese Datei nicht wiederhergestellt werden kann, selbst dann,
wenn dies gar nicht verlangt wurde!LowellGilbertBeigetragen von Backup-StrategienWenn Sie eine eigene Backup-Strategie planen, müssen Sie
darauf achten, dass jedes der folgenden Probleme von Ihrer
Strategie abgedeckt wird:Plattendefekte.Versehentliches Löschen von Dateien.Eine nicht vorhersehbare Korrumpierung von Dateien.Die vollständige Zerstörung Ihres Systems, etwa
durch ein Feuer. Dazu gehört auch die Zerstörung
von Backups, die am gleichen Ort aufbewahrt werden.Es ist nicht nur möglich, dass ein System
für jedes dieser Probleme eine eigene (oft völlig
unterschiedliche) Strategie benötigt. Es ist vielmehr
unwahrscheinlich (sieht man von Systemen ab, die keine
wichtigen Daten enthalten), dass eine Technik alle
Problembereiche abdecken kann.Häufig verwendeten Techniken sind unter anderen:Die Archivierung des kompletten Systems auf externen
Datenträgern, die an einem gesonderten Ort aufbewahrt
werden. Dieser Ansatz schützt zwar vor allen oben
angeführten Problemen, ist aber zeitaufwändig.
Auch eine Wiederherstellung des Systems ist nicht ohne
weiteres möglich. Zwar können Sie Kopien Ihrer
Backups auch vor Ort und/oder auf online zugängigen
Systemen aufbewahren, was aber nichts daran ändert,
dass eine Wiederherstellung, insbesondere für nicht
privilegierte Benutzer, nach wie vor nicht ohne weiteres
möglich ist.Dateisystem-Snapshots. Diese Technik hilft zwar nur
gegen das versehentliche Löschen von Dateien, in einem
solchen Fall ist sie aber äußerst
hilfreich. Vorteile dieser Technik sind außerdem die
leichte und schnelle Implementierung und Handhabung.Das Erstellen von Kopien ganzer Dateisysteme und/oder
Platten (etwa durch einen periodischen rsync-Transfer des
kompletten Systems). Diese Technik ist insbesondere in
Netzwerken mit besonderen Anforderungen nützlich. Der
Schutz vor Plattendefekten ist allerdings schlechter als beim
Einsatz von RAID. Die
Fähigkeiten zur Wiederherstellung gelöschter
Dateien sind mit denen von UFS-Snapshots
vergleichbar. Ob diese Technik für Sie geeignet ist,
hängt also letztlich von Ihren Anforderungen ab.RAID. Minimiert oder vermeidet
Ausfallzeiten, die durch einen Plattendefekt verursacht werden
könnten. Zwar können Plattendefekte (aufgrund
der höheren Anzahl verwendeter Platten) häufiger
auftreten, sie stellen aber dann kein so akutes Problem
dar.Das Überprüfen von Datei-Fingerprints durch
&man.mtree.8;. Dabei handelt es sich zwar um keine
Backup-Technik im eigentlichen Sinne, Sie werden durch den
Einsatz dieser Werkzeugs aber informiert, dass Sie auf Ihre
Backups zurückgreifen müssen. Dies ist insbesondere
beim Einsatz von Offline-Backups von großer Bedeutung.
Daher sollte diese Technik regelmäßig eingesetzt
werden.Es gibt noch zahlreiche weitere Techniken, von denen aber viele
nur Variationen der eben beschriebenen Techniken sind. Spezielle
Anforderungen erfordern dabei in der Regel auch spezielle
Backup-Techniken (so erfordert das Backup einer aktiven Datenbank
in der Regel ein auf die eingesetzte Datenbank-Software abgestimmtes
Verfahren). Entscheidend ist daher immer, gegen welche Gefahren
Sie sich schützen und wie Sie diesen Schutz realisieren
wollen.DatensicherungDie drei wichtigsten Programme zur Sicherung von Daten sind
&man.dump.8;, &man.tar.1; und &man.cpio.1;.Sichern und WiederherstellenDatensicherungBackupBackup-SoftwaredumpBackup-Softwarerestoredumprestoredump und restore sind die
traditionellen
Backupprogramme in &unix; Systemen. Sie betrachten das Laufwerk als eine
Ansammlung von Blöcken, operieren also unterhalb dem
Abstraktionslevel von Dateien, Links und Verzeichnissen, die die
Grundlage des Dateisystemkonzepts bilden. dump
sichert ein ganzes Dateisystem auf einem Gerät, es ist nicht
möglich nur einen Teil des Dateisystems, oder einen
Verzeichnisbaum, der mehr als ein Dateisystem umfasst zu
sichern. dump schreibt keine Dateien oder
Verzeichnisse auf das Band, sondern die Blöcke, aus denen
Dateien und Verzeichnisse bestehen.Wenn Sie mit dump das Root-Verzeichnis
sichern, werden /home, /usr
und viele andere Verzeichnisse nicht gesichert, da dies normalerweise
Mountpunkte für andere Dateisysteme oder symbolische Links
zu diesen Dateisystemen sind.dump hat einige Eigenarten, die noch aus den
frühen Tagen der Version 6 von AT&T UNIX (ca. 1975)
stammen. Die Parameter
sind für 9-Spur-Bänder (6250 bpi) voreingestellt,
nicht auf die heute üblichen Medien hoher Dichte (bis zu
62.182 ftpi). Bei der Verwendung der Kapazitäten
moderner Bandlaufwerke muss diese Voreinstellung auf der
Kommandozeile überschrieben werden..rhostsrdump und rrestore
können Daten über
Netzwerk auf ein Band, das sich in einem Laufwerk eines anderen
Computers befindet, überspielen. Beide Programme benutzen die
Funktionen &man.rcmd.3; und &man.ruserok.3; zum
Zugriff auf das entfernte
Bandlaufwerk. Daher muss der Anwender, der das Backup
durchführt, auf dem entfernten Rechner in
.rhosts eingetragen sein.Die Argumente zu rdump und
rrestore müssen
zur Verwendung auf dem entfernten Computer geeignet sein.
Wenn Sie zum Beispiel mit rdump von einem
FreeBSD-Rechner aus auf ein Exabyte-Bandlaufwerk einer Sun mit
Namen komodo zugreifen möchten, setzen Sie
das folgende Kommando ab:&prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1Zum Ausführen dieses Kommandos müssen Sie auf dem
entfernten Rechner in .rhosts eingetragen
sein. Die r-Kommandos sind ein großes Sicherheitsrisiko,
daher sollten Sie deren Verwendung sorgfältig
abwägen.Es ist auch möglich, dump und
restore über eine gesicherte Verbindung
mit ssh einzusetzen:dump mit ssh
benutzen&prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gzSie können ebenfalls mit der internen Methode
von dump auf entfernte Rechner zugreifen,
indem Sie die Umgebungsvariable RSH
setzen:dump über ssh
mit gesetzter RSH benutzen&prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f tatargetuser@targetmachine.example.com:/dev/sa0 /usrtarBackup-Softwaretar&man.tar.1; stammt ebenfalls aus Version 6 von AT&T UNIX
(ca. 1975). tar arbeitet mit dem Dateisystem,
denn es schreibt Dateien und Verzeichnisse auf das Band.
tar unterstützt zwar nicht alle Optionen,
die bei &man.cpio.1; zur Verfügung stehen, aber dafür
erfordert es auch nicht die ungewöhnliche Kommando-Pipeline,
die von cpio verwendet wird.tarSeit FreeBSD 5.3 sind sowohl GNU tar
als auch bsdtar verfügbar. Die
GNU-Version starten Sie über gtar. Sie
unterstützt auch entfernte Geräte, wobei die von
rdump benutzte Syntax übernommen wurde.
Um Daten mit tar auf ein an einer
Sun-Workstation (namens komodo) angeschlossenes
Exabyte-Bandlaufwerk zu archivieren, geben Sie Folgendes ein:&prompt.root; /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1Alternativ können Sie für diese Sicherung auch
bsdtar verwenden, indem Sie die Daten
über eine Pipeline und rsh an das
entfernte Laufwerk senden:&prompt.root; tar cf - . | rsh hostname dd of=tape-device obs=20bWenn Sie Bedenken bezüglich der Sicherheit beim Backup
über das Netz haben, sollten Sie ssh anstatt
rsh benutzen.CpioBackup-Softwarecpiocpio&man.cpio.1; ist das ursprüngliche Programm von
&unix; Systemen zum Dateitransfer mit magnetischen Medien.
cpio hat (neben vielen anderen
Leistungsmerkmalen) Optionen zum Byte-Swapping, zum Schreiben
einer Anzahl verschiedener Archivformate und zum Weiterleiten von
Daten an andere Programme über eine Pipeline. Dieses letzte
Leistungsmerkmal macht cpio zu einer
ausgezeichneten Wahl für Installationsmedien. Leider kann
cpio keine
Dateibäume durchlaufen, so dass eine Liste der zu bearbeitenden
Dateien über stdin angegeben werden
muss.cpio unterstützt keine Backups
über das Netzwerk. Man kann aber eine Pipeline und
rsh verwenden, um
Daten an ein entferntes Bandlaufwerk zu senden.&prompt.root; for f in directory_list; dofind $f >> backup.listdone
&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"Dabei steht directory_list für
eine Aufzählung der Verzeichnisse, die Sie sichern wollen.
user@host
gibt den Benutzer auf dem Zielrechner an, der die Sicherung
laufen lässt. Der Ort der Sicherung wird durch
backup_device angegeben
(z.B. /dev/nsa0).paxBackup-SoftwarepaxpaxPOSIXIEEE&man.pax.1; ist die Antwort von IEEE/&posix; auf
tar und cpio.
Über die Jahre hinweg sind die verschiedenen
Versionen von tar und cpio leicht
inkompatibel geworden. Daher hat &posix;, statt eine Standardisierung
zwischen diesen auszufechten, ein neues Archivprogramm geschaffen.
pax versucht viele der unterschiedlichen
cpio- und tar-Formate zu lesen
und zu schreiben, außerdem einige neue, eigene Formate. Die
Kommandostruktur ähnelt eher cpio als
tar.AmandaBackup-SoftwareAmandaAmandaAmanda
(Advanced Maryland Network Disk Archiver) ist ein
Client/Server-Backupsystem, nicht nur ein einzelnes Programm.
Ein Amanda-Server kann auf einem
einzigen Bandlaufwerk Datensicherungen von jeder beliebigen
Anzahl von Computern speichern, sofern auf diesen jeweils ein
Amanda-Client läuft und sie
über Netzwerk mit dem Amanda-Server
verbunden sind.Ein häufiges Problem bei Standorten mit einer Anzahl
großer Festplatten ist, dass das Kopieren der Daten auf
Band langsamer vor sich geht als solche Daten anfallen.
Amanda löst dieses Problem
durch Verwendung einer Holding Disk, einer Festplatte
zum gleichzeitigen Zwischenspeichern mehrerer Dateisysteme.Für Datensicherungen über einen längeren
Zeitraum erzeugt AmandaArchivsets von allen Dateisystemen, die in
Amandas Konfigurationsdatei genannt
werden. Ein Archivset ist eine Gruppe von Bändern mit
vollen Backups und Reihen von inkrementellen (oder differentiellen)
Backups, die jeweils nur die Unterschiede zum vorigen
Backup enthalten. Zur Wiederherstellung von beschädigten
Dateisystemen benötigt man Das Letzte volle Backup und alle
darauf folgenden inkrementellen Backups.Die Konfigurationsdatei ermöglicht die Feineinstellung
der Backups und des Netzwerkverkehrs von
Amanda. Amanda
kann zum Schreiben der Daten auf das Band jedes der oben
beschriebenen Backuprogramme verwenden.
Amanda ist nicht Teil des Basissystems,
Sie müssen Amanda über
die Ports-Sammlung oder als Paket installieren.Tue nichtsTue nichts ist kein Computerprogramm, sondern die
am häufigsten angewendete Backupstrategie. Diese kostet nichts,
man muss keinen Backupplan befolgen, einfach nur nein sagen. Wenn
etwas passiert, einfach grinsen und ertragen!Wenn Ihre Zeit und Ihre Daten nicht so wichtig sind, dann ist
die Strategie Tue nichts das geeignetste Backupprogramm
für Ihren Computer. Aber &unix; ist ein nützliches Werkzeug,
Sie müssen damit rechnen, dass Sie innerhalb von sechs Monaten
eine Sammlung von Dateien haben, die für Sie wertvoll geworden
sind.Tue nichts ist die richtige Backupmethode für
/usr/obj und andere Verzeichnisbäume, die
vom Computer exakt wiedererzeugt werden können. Ein Beispiel
sind die Dateien, die diese Handbuchseiten darstellen – sie
wurden aus Quelldateien im Format SGML erzeugt.
Es ist nicht nötig, Sicherheitskopien der Dateien in den
sekundären Formaten wie etwa HTML zu
erstellen. Die Quelldateien in SGML sollten jedoch
in die regelmäßigen Backups mit einbezogen werden.Welches Backup-Programm ist am Besten?LISAdump, Punkt und Schluss.
Elizabeth D. Zwicky hat alle hier genannten Backup-Programme
bis zur Erschöpfung ausgetestet. Ihre eindeutige Wahl zur
Sicherung aller Daten mit Berücksichtigung aller Besonderheiten
von &unix; Dateisystemen ist dump.Elizabeth erzeugte Dateisysteme mit einer großen Vielfalt
ungewöhnlicher Bedingungen (und einiger gar nicht so
ungewöhnlicher) und testete jedes Programm durch ein Backup und
eine Wiederherstellung dieser Dateisysteme. Unter den Besonderheiten
waren Dateien mit Löchern, Dateien mit Löchern und einem
Block mit Null-Zeichen, Dateien mit ausgefallenen Buchstaben im
Dateinamen, unlesbare und nichtschreibbare Dateien,
Gerätedateien, Dateien, deren Länge sich während des
Backups ändert, Dateien, die während des Backups erzeugt und
gelöscht werden, u.v.m. Sie berichtete über ihre Ergebnisse
in LISA V im Oktober 1991, s. Torture-testing
Backup and Archive Programs.Die Wiederherstellung in einem NotfallVor dem UnglückEs sind nur vier Vorkehrungen zu treffen, um auf jedes
erdenkliche Unglück vorbereitet zu sein.disklabelAls erstes drucken Sie das Disklabel jeder Ihrer Festplatten
(z.B. mittels disklabel da0 | lpr), die
Partitions- und Dateisystemtabelle jeder Festplatte (mit
/etc/fstab) sowie alle Bootmeldungen, jeweils
in zweifacher Ausfertigung.fix-it floppiesZweitens, überzeugen Sie sich, dass sowohl die
Bootdiskette als auch die Reparaturdiskette
(boot.flp bzw. fixit.flp)
all Ihre Geräte ansprechen können. Die einfachste Methode
dies nachzuprüfen ist, Ihren Rechner mit der Boot-Diskette im
Floppylaufwerk neu zu starten und die Bootmeldungen zu durchzusehen.
Wenn all Ihre Geräte aufgelistet sind und funktionieren,
können Sie weiter zu Schritt drei gehen.Ist das nicht der Fall, müssen Sie sich eine eigene
Version der beiden zum Booten benötigten Disketten erstellen.
Diese müssen einen Kernel enthalten, der all Ihre Platten
mounten kann und Zugriff auf Ihr Bandlaufwerk gestattet. Diese
Disketten müssen ferner folgende Programme enthalten:
fdisk, disklabel,
newfs, mount sowie
jedes Backup-Programm, das Sie verwenden. Diese Programme
müssen statisch gelinkt sein. Falls Sie dump
verwenden, muss die Diskette auch restore
enthalten.Drittens, machen Sie oft Backups auf Band. Jede Änderung
seit Ihrem letzten Backup kann unwiederbringlich verloren gehen.
Versehen Sie die Backup-Bänder mit Schreibschutz.Viertens, testen Sie aus, wie die Disketten (entweder
boot.flp und fixit.flp
oder Ihre beiden eigenen Disketten aus Schritt zwei) und die
Bänder mit den Backups zu behandeln sind. Machen Sie sich
Notizen zu diesem Test. Bewahren Sie diese Notizen zusammen mit den
Bootdisketten, den Ausdrucken und den Bändern mit den Backups
auf. Wenn der Ernstfall eintritt, werden Sie vielleicht so genervt
sein, dass Sie ohne Ihre Notizen vielleicht das Backup auf Ihren
Bändern zerstören. (Wie das geht? Man braucht nur
unglücklicherweise den Befehl tar cvf
/dev/sa0 einzugeben um ein Band zu
überschreiben).Als zusätzliche Sicherheitsvorkehrung, kann man jeweils
die Disketten und Bänder zweifach erstellen. Eine der Kopien
sollte an einem entfernten Standort aufbewahrt werden. Ein
entfernter Standort ist NICHT der Keller im gleichen
Bürogebäude. Eine Anzahl von Firmen im World Trade Center
musste diese Lektion auf die harte Tour lernen. Ein entfernter
Standort sollte von Ihrem Computer und Ihren Festplatten
physikalisch durch eine erhebliche Entfernung getrennt sein.Ein Beispielskript zum Erstellen eigener Bootdisketten /mnt/etc/fstab <<EOM
/dev/fd0a / ufs rw 1 1
EOM
#
# Minimale Passwortdatei erstellen
#
cat > /mnt/etc/passwd <<EOM
root:*:0:0:Charlie &:/root:/bin/sh
EOM
cat > /mnt/etc/master.passwd <<EOM
root::0:0::0:0:Charlie &:/root:/bin/sh
EOM
chmod 600 /mnt/etc/master.passwd
chmod 644 /mnt/etc/passwd
/usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd
#
# Die Diskette aushaengen und den Benutzer informieren
#
/sbin/umount /mnt
echo "Die Diskette wurde ausgehaengt und ist jetzt bereit."]]>Nach dem UnglückDie Schlüsselfrage ist, ob Ihre Hardware überlebt
hat. Denn da Sie ja regelmäßig Backups angefertigt
haben, brauchen Sie sich um die Software keine Sorgen zu
machen.Falls die Hardware beschädigt wurde, ersetzen Sie zuerst
die defekten Teile bevor Sie den Computer benutzen.Falls die Hardware funktioniert, überprüfen Sie die
Disketten. Wenn Sie eigene Bootdisketten verwenden, booten Sie im
Single-User-Modus (geben dazu Sie -s am
Boot-Prompt boot: ein). Überspringen Sie den
folgenden Paragrafen.Wenn Sie die Standarddisketten boot.flp
und fixit.flp verwenden, lesen Sie hier weiter.
Legen Sie die Bootdiskette boot.flp in das
erste Floppylaufwerk ein und starten Sie den Computer. Wie
üblich wird dann das originale Installationsmenü von
FreeBSD gestartet. Wählen Sie die Option
Fixit--Repair mode with CD-ROM or floppy. Legen
Sie die Diskette fixit.flp ein, wenn danach
gefragt wird. restore und die anderen Programme,
die Sie benötigen, befinden sich dann in
/mnt2/rescue
(/mnt2/stand vor
&os; 5.2).Stellen Sie die Dateisysteme nacheinander, getrennt von
einander, wieder her.mountRoot-PartitiondisklabelnewfsVersuchen Sie die Root-Partition Ihrer ersten Festplatte
einzuhängen (z.B. mit mount /dev/sd0a
/mnt). Wenn das Disklabel beschädigt wurde,
benutzen Sie disklabel um die Platte
neu zu partitionieren und zu benennen und zwar so, dass die
Festplatte mit dem Label übereinstimmt, das Sie
ausgedruckt und aufbewahrt haben.Verwenden Sie newfs um neue Dateisysteme
auf den
Partitionen anzulegen. Hängen Sie nun die Root-Partition der
Festplatte mit Schreibzugriff ein (mit mount -u -o rw
/mnt). Benutzen Sie Ihr Backup-Programm um die Daten
für das jeweilige Dateisystem aus den Backup-Bändern
wieder her zu stellen (z.B. durch restore vrf
/dev/sta). Hängen Sie das Dateisystem wieder aus
(z.B. durch umount /mnt). Wiederholen Sie diesen
Ablauf für jedes betroffene Dateisystem.Sobald Ihr System wieder läuft, machen Sie gleich wieder
ein vollständiges Backup auf neue Bänder. Denn die
Ursache für den Absturz oder den Datenverlust kann wieder
zuschlagen. Eine weitere Stunde, die Sie jetzt noch
dranhängen, kann Ihnen später ein weiteres Missgeschick
ersparen.* Ich habe mich nicht auf Missgeschicke vorbereitet - was
nun?
]]>
MarcFonvieilleVerbessert und neu strukturiert von Netzwerk-, speicher- und dateibasierte DateisystemeLaufwerkevirtuelleNeben Laufwerken, die sich physikalisch im Rechner befinden
wie Floppylaufwerke, CDs, Festplatten usw., kann FreeBSD auch
mit anderen Laufwerken, den virtuellen Laufwerken,
umgehen.NFSCodaLaufwerkespeicherbasierteLaufwerkeRAM-DisksDazu zählen Netzwerkdateisysteme wie
Network Filesystem und Coda,
speicher- und dateibasierte Dateisysteme.Abhängig von der verwendeten FreeBSD Version werden
speicher- und dateibasierte Dateisysteme mit unterschiedlichen
Werkzeugen angelegt.In FreeBSD 4.X werden Gerätedateien mit
&man.MAKEDEV.8; angelegt. FreeBSD 5.X erzeugt
Gerätedateien automatisch mithilfe von &man.devfs.5;.Dateibasierte Laufwerke unter FreeBSD 4.XLaufwerkedateibasierte (4.X)Mit &man.vnconfig.8; werden vnode Pseudo-Platten
konfiguriert und aktiviert. Ein vnode
stellt eine Datei dar, auf der Dateioperationen ablaufen.
Das bedeutet, dass &man.vnconfig.8; Dateien benutzt,
um ein Dateisystem zu erstellen und zu verwalten. Damit
ist es z.B. möglich, Dateien, die Abbilder von Floppies
oder CDs enthalten, anzuhängen.In der Kernelkonfiguration muss die
&man.vn.4;-Unterstützung aktiviert sein, damit
&man.vnconfig.8; funktioniert:pseudo-device vnUm ein existierendes Abbild eines Dateisystems
einzuhängen:Einhängen eines existierenden Abbildes unter
FreeBSD 4.X&prompt.root; vnconfig vn0diskimage
&prompt.root; mount /dev/vn0c /mntUm ein neues Dateisystem mit &man.vnconfig.8; anzulegen:Anlegen eines dateibasierten Laufwerks&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; vnconfig -s labels -c vn0newimage
&prompt.root; disklabel -r -w vn0 auto
&prompt.root; newfs vn0c
Warning: 2048 sector(s) in last cylinder unallocated
/dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
super-block backups (for fsck -b #) at:
32
&prompt.root; mount /dev/vn0c /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/vn0c 4927 1 4532 0% /mntDateibasierte Laufwerke unter FreeBSD 5.XLaufwerkedateibasierte (5.X)Unter FreeBSD 5.0 werden virtuelle Laufwerke (&man.md.4;)
mit &man.mdconfig.8; erzeugt. Dazu muss das Modul &man.md.4;
geladen sein oder das entsprechende Gerät in der
Kernelkonfiguration aktiviert sein:device mdMit &man.mdconfig.8; können drei verschiedene virtuelle
Laufwerke angelegt werden: speicherbasierte Laufwerke, deren
Speicher von &man.malloc.9; zur Verfügung gestellt wird, oder
dateibasierte Laufwerke, deren Speicher von einer Datei oder dem
Swap-Bereich zur Verfügung gestellt wird. Eine mögliche
Anwendung ist das Einhängen von Dateien, die Abbilder von
CD-ROMs oder Floppies enthalten.Das Abbild eines Dateisystems wird wie folgt
eingehangen:Einhängen eines existierenden Abbildes unter
FreeBSD 5.X&prompt.root; mdconfig -a -t vnode -f diskimage -u 0
&prompt.root; mount /dev/md0/mntEin neues Dateisystem-Abbild erstellen Sie mit
&man.mdconfig.8; wie folgt:Erstellen eines dateibasierten Laufwerks mit
mdconfig&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdconfig -a -t vnode -f newimage -u 0
&prompt.root; disklabel -r -w md0 auto
&prompt.root; newfs md0c
/dev/md0c: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes.
super-block backups (for fsck -b #) at:
32, 2624, 5216, 7808
&prompt.root; mount /dev/md0c /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4846 2 4458 0% /mntWenn Sie keine Gerätenummer mit dem Schalter
angeben, wird von &man.md.4; automatisch eine
ungenutzte Gerätenummer zugewiesen. Das zugewiesene Gerät
wird auf der Standardausgabe ausgegeben (zum Beispiel
md4). Weitere Informationen entnehmen Sie
bitte der Hilfeseite &man.mdconfig.8;.Ab &os; 5.1-RELEASE wurde &man.disklabel.8;
durch &man.bsdlabel.8; ersetzt. In bsdlabel
wurden veraltete Optionen entfernt. Entfernen Sie die
Option in den obigen Beispielen,
wenn Sie bsdlabel verwenden.
Weiteres entnehmen Sie bitte der Hilfeseite
&man.bsdlabel.8;.Das Werkzeug &man.mdconfig.8; ist sehr nützlich, doch muss
man viele Kommandos absetzen, um ein dateibasiertes Dateisystem zu
erstellen. FreeBSD enthält das Werkzeug &man.mdmfs.8;, das
die notwendigen Schritte in einem Befehl zusammenfasst. Es
konfiguriert mit &man.mdconfig.8; ein &man.md.4;-Laufwerk, erstellt
darauf mit &man.newfs.8; ein Dateisystem und hängt es
anschließend mit &man.mount.8; ein. Das virtuelle Laufwerk
aus dem obigen Beispiel kann somit einfach mit den nachstehenden
Befehlen erstellt werden:Mit mdmfs ein dateibasiertes
Dateisystem erstellen&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdmfs -F newimage -s 5m md0/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0 4846 2 4458 0% /mntWenn sie die Option ohne Gerätenummer
verwenden, wählt &man.md.4; automatisch ein ungenutztes
Gerät aus. Weitere Einzelheiten entnehmen Sie bitte der
Hilfeseite &man.mdmfs.8;.Speicherbasierte Laufwerke unter FreeBSD 4.XLaufwerkespeicherbasierte (4.X)LaufwerkeRAM-Disks (4.X)Mit dem Gerätetreiber &man.md.4; lassen sich unter
FreeBSD 4.X leicht speicherbasierte Laufwerke (RAM-disks)
anlegen. Der dazu nötige Speicher wird mit &man.malloc.9;
belegt.Nehmen Sie einfach ein Dateisystem, dass Sie
z.B. mit &man.vnconfig.8; vorbereitet haben:Speicherbasiertes Laufwerk unter FreeBSD 4.X&prompt.root; dd if=newimage of=/dev/md0
5120+0 records in
5120+0 records out
&prompt.root; mount /dev/md0c/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4927 1 4532 0% /mntWeitere Einzelheiten entnehmen Sie bitte der Hilfeseite
&man.md.4;.Speicherbasierte Laufwerke unter FreeBSD 5.XLaufwerkespeicherbasierte (5.X)LaufwerkeRAM-Disks (5.X)Speicher- und dateibasierte Laufwerke werden in
FreeBSD 5.0 mit denselben Werkzeugen erstellt:
&man.mdconfig.8; oder &man.mdmfs.8;. Der Speicher für
speicherbasierte Laufwerke (RAM-disks) wird mit
&man.malloc.9; belegt.Erstellen eines speicherbasierten Laufwerks mit
mdconfig&prompt.root; mdconfig -a -t malloc -s 5m -u 1
&prompt.root; newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes.
with soft updates
super-block backups (for fsck -b #) at:
32, 2624, 5216, 7808
&prompt.root; mount /dev/md1/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md1 4846 2 4458 0% /mntErstellen eines speicherbasierten Laufwerks mit
mdmfs&prompt.root; mdmfs -M -s 5m md2/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md2 4846 2 4458 0% /mntDer Speicher für das Dateisystem muss nicht mit
&man.malloc.9; zugewiesen werden, sondern kann auch aus dem
Swap-Bereich stammen. Auf der Kommandozeile von &man.mdconfig.8;
ist dazu durch
zu ersetzen. Ohne Angabe des Schalters
verwendet &man.mdmfs.8; Speicher aus dem Swap-Bereich.
Weitere Informationen entnehmen Sie bitte den Hilfeseiten
&man.mdconfig.8; und &man.mdmfs.8;.Virtuelle Laufwerke freigebenLaufwerkeFreigabe von virtuellen LaufwerkenWenn ein virtuelles Laufwerk nicht mehr gebraucht wird, sollten
Sie dem System die belegten Ressourcen zurückgeben.
Hängen Sie dazu zuerst das Dateisystem ab und geben Sie dann
die benutzten Ressourcen mit &man.mdconfig.8; frei.Alle von /dev/md4 belegten Ressourcen
werden mit dem nachstehenden Kommando freigegeben:&prompt.root; mdconfig -d -u 4Eingerichtete &man.md.4;-Geräte werden mit dem Befehl
mdconfig -l angezeigt.Unter FreeBSD 4.X geben Sie die Ressourcen mit
&man.vnconfig.8; frei. Die von /dev/vn4
belegten Ressourcen geben Sie wie folgt frei:&prompt.root; vnconfig -u vn4TomRhodesBeigetragen von Schnappschüsse von DateisystemenSchnappschüssevon DateisystemenZusammen mit Soft Updates
bietet FreeBSD 5.0 eine neue Funktion: Schnappschüsse von
Dateisystemen.Schnappschüsse sind Dateien, die ein Abbild eines
Dateisystems enthalten und müssen auf dem jeweiligen
Dateisystem erstellt werden. Pro Dateisystem darf es maximal
20 Schnappschüsse, die im Superblock vermerkt werden, geben.
Schnappschüsse bleiben erhalten, wenn das Dateisystem abgehangen,
neu eingehangen oder das System neu gestartet wird. Wenn Sie einen
Schnappschuss nicht mehr benötigen, können Sie ihn
mit &man.rm.1; löschen. Es ist egal, in welcher Reihenfolge
Schnappschüsse gelöscht werden. Es kann allerdings
vorkommen, dass nicht der gesamte Speicherplatz
wieder freigegeben wird, da ein anderer
Schnappschuss einen Teil der entfernten Blöcke für sich
beanspruchen kann.Das unveränderliche -Dateiflag
wird nach der Erstellung des Snaphshots von &man.mksnap.ffs.8;
gesetzt. Durch die Verwendung von &man.unlink.1; ist es allerdings
möglich, einen Schnappschuss zu löschen.Schnappschüsse werden mit &man.mount.8; erstellt. Das
folgende Kommando legt einen Schnappschuss von
/var in /var/snapshot/snap
ab:&prompt.root; mount -u -o snapshot /var/snapshot/snap /varDen Schnappschuss können Sie auch mit &man.mksnap.ffs.8;
erstellen:&prompt.root; mksnap_ffs /var /var/snapshot/snapUm einen Schnappschuss auf Ihrem System zu finden, verwenden
Sie &man.find.1;:&prompt.root; find /var -flags snapshotNachdem ein Schnappschuss erstellt wurde, können Sie
ihn für verschiedene Zwecke benutzen:Sie können den Schnappschuss für die
Datensicherung benutzen und ihn auf eine CD oder ein Band
schreiben.Sie können den Schnappschuss mit &man.fsck.8;
prüfen. Wenn das Dateisystem zum Zeitpunkt der Erstellung
des Schnappschusses in Ordnung war, sollte &man.fsck.8; immer
erfolgreich durchlaufen.Sie können den Schnappschuss mit &man.dump.8;
sichern. Sie erhalten dann eine konsistente Sicherung des
Dateisystems zu dem Zeitpunkt, der durch den Zeitstempel des
Schnappschusses gegeben ist. Der Schalter
von &man.dump.8; erstellt für die Sicherung einen
Schnappschuss und entfernt diesen am Ende der Sicherung
wieder.Sie können einen Schnappschuss in den
Verzeichnisbaum einhängen und sich dann den Zustand des
Dateisystems zu dem Zeitpunkt ansehen, an dem der
Schnappschuss erstellt wurde. Der folgende Befehl
hängt den Schnappschuss
/var/snapshot/snap ein:&prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4
&prompt.root; mount -r /dev/md4 /mntSie können sich nun den eingefrorenen Stand des
/var Dateisystems unterhalb von
/mnt ansehen. Mit Ausnahme der früheren
Schnappschüsse, die als leere Dateien auftauchen, wird zu
Beginn alles so aussehen, wie zum Zeitpunkt der Erstellung des
Schnappschusses. Wenn Sie den Schnappschuss nicht mehr
benötigen, können Sie ihn, wie nachfolgend gezeigt,
abhängen:&prompt.root; umount /mnt
&prompt.root; mdconfig -d -u 4Weitere Informationen über Soft Updates und
Schnappschüsse von Dateisystemen sowie technische Artikel finden
Sie auf der Webseite
von Marshall Kirk McKusick.Dateisystem-QuotasAccountingPlattenplatzDisk QuotasQuotas sind eine optionale Funktion des Betriebssystems,
die es Ihnen erlauben, den Plattenplatz und/oder die Anzahl
der Dateien eines Benutzers oder der Mitglieder einer Gruppe,
auf Dateisystemebene zu beschränken. Oft wird dies
auf Timesharing-Systemen (Mehrbenutzersystemen) genutzt, da
es dort erwünscht ist, die Ressourcen, die ein Benutzer oder
eine Gruppe von Benutzern belegen können, zu limitieren. Das
verhindert, dass ein Benutzer oder eine Gruppe von Benutzern
den ganzen verfügbaren Plattenplatz belegt.Konfiguration des Systems, um Quotas zu
aktivierenBevor Quotas benutzt werden können, müssen
sie im Kernel konfiguriert werden, wozu die folgende Zeile
der Kernelkonfiguration hinzugefügt wird:options QUOTAIm gewöhnlichen GENERIC Kernel
sind Quotas nicht aktiviert, so dass Sie einen angepassten
Kernel konfigurieren und bauen müssen, um Quotas zu
benutzen. Weitere Informationen
finden Sie in .Durch Hinzufügen der folgenden Zeile in
/etc/rc.conf wird das Quota-System
aktiviert:enable_quotas="YES"Disk QuotasüberprüfenUm den Start des Quota-Systems zu beeinflussen, steht
eine weitere Variable zur Verfügung. Normalerweise
wird beim Booten die Integrität der Quotas auf
allen Dateisystemen mit &man.quotacheck.8;
überprüft. &man.quotacheck.8; stellt
sicher, dass die Quota-Datenbank mit den Daten auf
einem Dateisystem übereinstimmt. Dies ist allerdings
ein sehr zeitraubender Prozess, der die Zeit, die
das System zum Booten braucht, signifikant beeinflusst.
Eine Variable in /etc/rc.config erlaubt es Ihnen,
diesen Schritt zu überspringen:check_quotas="NO"Schließlich müssen Sie noch in
/etc/fstab die Plattenquotas auf
Dateisystemebene aktivieren. Dort können Sie
für alle Dateisysteme Quotas für Benutzer, Gruppen
oder für beide aktivieren.Um Quotas pro Benutzer für ein Dateisystem zu
aktivieren, geben Sie für dieses Dateisystem die
Option im Feld Optionen von
/etc/fstab an. Beispiel:/dev/da1s2g /home ufs rw,userquota 1 2Um Quotas für Gruppen einzurichten, verwenden
Sie anstelle von
. Um Quotas für Benutzer
und Gruppen einzurichten, ändern Sie den Eintrag
wie folgt ab:/dev/da1s2g /home ufs rw,userquota,groupquota 1 2Die Quotas werden jeweils im Rootverzeichnis des Dateisystems
unter dem Namen quota.user für
Benutzer-Quotas und quota.group für
Gruppen-Quotas abgelegt. Obwohl &man.fstab.5; beschreibt,
dass diese Dateien an anderer Stelle gespeichert werden
können, wird das nicht empfohlen, da es den Anschein hat,
dass die verschiedenen Quota-Utilities das nicht richtig
unterstützen.Jetzt sollten Sie Ihr System mit dem neuen Kernel booten.
/etc/rc wird dann automatisch die
richtigen Kommandos aufrufen, die die Quota-Dateien für
alle Quotas, die Sie in /etc/fstab
definiert haben, anlegen. Deshalb müssen vorher auch keine
leeren Quota-Dateien angelegt werden.Normalerweise brauchen Sie die Kommandos
&man.quotacheck.8;, &man.quotaon.8; oder
&man.quotaoff.8; nicht händisch aufzurufen,
obwohl Sie vielleicht die entsprechenden Seiten im
Manual lesen sollten, um sich mit ihnen vertraut
zu machen.Setzen von Quota-LimitsDisk QuotasLimitsNachdem Sie Quotas in Ihrem System aktiviert haben, sollten
Sie überprüfen, dass Sie auch tatsächlich
aktiviert sind. Führen Sie dazu einfach den folgenden
Befehl aus:&prompt.root; quota -vFür jedes Dateisystem, auf dem Quotas aktiviert sind,
sollten Sie eine Zeile mit der Plattenauslastung und den
aktuellen Quota-Limits sehen.Mit &man.edquota.8; können Sie nun
Quota-Limits setzen.Sie haben mehrere Möglichkeiten, die Limits für
den Plattenplatz, den ein Benutzer oder eine Gruppe verbrauchen
kann, oder die Anzahl der Dateien, die angelegt werden dürfen,
festzulegen. Die Limits können auf dem Plattenplatz
(Block-Quotas) oder der Anzahl der Dateien (Inode-Quotas) oder
einer Kombination von beiden basieren.
Jedes dieser Limits wird weiterhin in zwei Kategorien geteilt:
Hardlimits und Softlimits.HardlimitEin Hardlimit kann nicht überschritten werden.
Hat der Benutzer einmal ein Hardlimit erreicht, so kann er
auf dem betreffenden Dateisystem keinen weiteren Platz mehr
beanspruchen. Hat ein Benutzer beispielsweise ein Hardlimit
von 500 Kilobytes auf einem Dateisystem und benutzt davon
490 Kilobyte, so kann er nur noch 10 weitere Kilobytes
beanspruchen. Der Versuch, weitere 11 Kilobytes zu beanspruchen,
wird fehlschlagen.SoftlimitIm Gegensatz dazu können Softlimits für eine
befristete Zeit überschritten werden. Diese Frist
beträgt in der Grundeinstellung
eine Woche. Hat der Benutzer das Softlimit über die
Frist hinaus überschritten, so wird das Softlimit in
ein Hardlimit umgewandelt und der Benutzer kann
keinen weiteren Platz mehr beanspruchen. Wenn er einmal
das Softlimit unterschreitet, wird die Frist wieder
zurückgesetzt.Das folgende Beispiel zeigt die Benutzung von
&man.edquota.8;. Wenn &man.edquota.8; aufgerufen wird,
wird der Editor gestartet, der durch EDITOR
gegeben ist oder vi falls
EDITOR nicht gesetzt ist. In dem Editor
können Sie die Limits eingeben.&prompt.root; edquota -u testQuotas for user test:
/usr: kbytes in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)Für jedes Dateisystem, auf dem Quotas aktiv sind,
sehen Sie zwei Zeilen, eine für die Block-Quotas und die
andere für die Inode-Quotas. Um ein Limit zu modifizieren,
ändern Sie einfach den angezeigten Wert. Um beispielsweise
das Blocklimit dieses Benutzers von einem Softlimit von 50
und einem Hardlimit von 75 auf ein Softlimit von 500 und
ein Hardlimit von 600 zu erhöhen, ändern Sie
die Zeile/usr: kbytes in use: 65, limits (soft = 50, hard = 75)zu:/usr: kbytes in use: 65, limits (soft = 500, hard = 600)Die neuen Limits sind wirksam, wenn Sie den
Editor verlassen.Manchmal ist es erwünscht, die Limits für einen
Bereich von UIDs zu setzen. Dies kann mit der
Option von &man.edquota.8; bewerkstelligt werden.
Weisen Sie dazu die Limits einem Benutzer zu und rufen danach
edquota -p protouser startuid-enduid auf.
Besitzt beispielsweise der Benutzer test
die gewünschten Limits, können diese mit
dem folgenden Kommando für die UIDs 10.000 bis 19.999
dupliziert werden:&prompt.root; edquota -p test 10000-19999Weitere Informationen erhalten Sie in &man.edquota.8;.Überprüfen von Quota-Limits und PlattennutzungDisk QuotasüberprüfenSie können &man.quota.1; oder
&man.repquota.8; benutzen, um Quota-Limits
und Plattennutzung zu überprüfen. Um die Limits
oder die Plattennutzung individueller Benutzer und Gruppen
zu überprüfen, kann &man.quota.1;
benutzt werden. Ein Benutzer kann nur die eigenen Quotas und die
Quotas der Gruppe, der er angehört untersuchen. Nur der
Superuser darf sich alle Limits ansehen.
Mit &man.repquota.8; erhalten Sie eine Zusammenfassung
von allen Limits und der Plattenausnutzung für alle
Dateisysteme, auf denen Quotas aktiv sind.Das folgende Beispiel zeigt die Ausgabe von
quota -v für einen Benutzer, der
Quota-Limits auf zwei Dateisystemen besitzt:Disk quotas for user test (uid 1002):
Filesystem usage quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60Disk QuotasFristIm Dateisystem /usr liegt der Benutzer
momentan 15 Kilobytes über dem Softlimit von
50 Kilobytes und hat noch 5 Tage seiner Frist übrig.
Der Stern * zeigt an, dass der
Benutzer sein Limit überschritten hat.In der Ausgabe von &man.quota.1; werden Dateisysteme,
auf denen ein Benutzer keinen Platz verbraucht, nicht angezeigt,
auch wenn diesem Quotas zugewiesen wurden. Mit
werden diese Dateisysteme, wie /usr/var
im obigen Beispiel, angezeigt.Quotas über NFSNFSQuotas werden von dem Quota-Subsystem auf dem NFS Server
erzwungen. Der &man.rpc.rquotad.8; Dæmon stellt
&man.quota.1; die Quota Informationen auf dem NFS Client
zur Verfügung, so dass Benutzer auf diesen
Systemen ihre Quotas abfragen können.Aktivieren Sie rpc.rquotad in
/etc/inetd.conf wie folgt:rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotadAnschließend starten Sie inetd
neu:&prompt.root; kill -HUP `cat /var/run/inetd.pid`LuckyGreenBeigetragen von shamrock@cypherpunks.toPartitionen verschlüsselnPartitionenverschlüsselnFreeBSD bietet ausgezeichnete Möglichkeiten, Daten vor
unberechtigten Zugriffen zu schützen. Wenn das
Betriebssystem läuft, schützen Zugriffsrechte und
vorgeschriebene Zugriffskontrollen (MAC) (siehe )
die Daten. Die Zugriffskontrollen des Betriebssystems
schützen allerdings nicht vor einem Angreifer, der
Zugriff auf den Rechner hat. Der Angreifer
kann eine Festplatte einfach in ein anderes System einbauen
und dort die Daten analysieren.Die für &os; verfügbaren kryptografischen
Subsysteme GEOM Based Disk Encryption (gbde)
und geli sind in der Lage, Daten auf
Dateisystemen auch vor hoch motivierten Angreifern zu
schützen, die über erhebliche Mittel verfügen.
Dieser Schutz ist unabhängig von der Art und Weise, durch
die ein Angreifer Zugang zu einer Festplatte oder zu einem
Rechner erlangt hat. Im Gegensatz zu schwerfälligen
Systemen, die einzelne Dateien verschlüsseln,
verschlüsseln gbde und
geli transparent ganze Dateisysteme. Auf der
Festplatte werden dabei keine Daten im Klartext gespeichert.Plattenverschlüsselung mit
gbdeWechseln sie zu rootSie benötigen Superuser-Rechte, um
gbde einzurichten.&prompt.user; su -
Password:Überprüfen Sie die FreeBSD-Version&man.gbde.4; benötigt FreeBSD 5.0
oder höher.&prompt.root; uname -r
5.0-RELEASEAktivieren Sie &man.gbde.4; in
der KernelkonfigurationFügen Sie folgende Zeile in Ihre
Kernelkonfigurationsdatei ein:options GEOM_BDEÜbersetzen und installieren Sie den FreeBSD-Kernel
wie in beschrieben.Starten sie das System neu, um den neuen Kernel
zu benutzen.Einrichten eines verschlüsselten DateisystemsDas folgende Beispiel beschreibt, wie ein Dateisystem
auf einer neuen Festplatte verschlüsselt wird. Das
Dateisystem wird in /private eingehangen.
Mit gbde könnten auch
/home und /var/mail
verschlüsselt werden. Die dazu nötigen Schritte
können allerdings in dieser Einführung
nicht behandelt werden.Installieren der FestplatteInstallieren Sie die Festplatte wie in
beschrieben. Im Beispiel
verwenden wir die Partition /dev/ad4s1c.
Die Gerätedateien
/dev/ad0s1*
sind Standard-Partitionen des FreeBSD-Systems.&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4Verzeichnis für gbde-Lock-Dateien anlegen&prompt.root; mkdir /etc/gbdeDie Lock-Dateien sind für den Zugriff von
gbde auf verschlüsselte
Partitionen notwendig. Ohne die Lock-Dateien können
die Daten nur mit erheblichem manuellen Aufwand wieder
entschlüsselt werden (dies wird auch von der Software
nicht unterstützt). Jede verschlüsselte
Partition benötigt eine gesonderte Lock-Datei.Vorbereiten der gbde-PartitionEine von gbde benutzte
Partition muss einmalig vorbereitet werden:&prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c&man.gbde.8; öffnet eine Vorlage in Ihrem Editor,
in der Sie verschiedene Optionen einstellen können.
Setzen Sie sector_size auf
2048, wenn Sie
UFS1 oder UFS2 benutzen.$FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $
#
# Sector size is the smallest unit of data which can be read or written.
# Making it too small decreases performance and decreases available space.
# Making it too large may prevent filesystems from working. 512 is the
# minimum and always safe. For UFS, use the fragment size
#
sector_size = 2048
[...]
&man.gbde.8; fragt dann zweimal eine Passphrase
zum Schutz der Daten ab. Die Passphrase muss beides
Mal gleich eingegeben werden. Die Sicherheit der
Daten hängt alleine von der Qualität der
gewählten Passphrase ab.
Die Auswahl einer sicheren und leicht zu merkenden
Passphrase wird auf der Webseite Diceware
Passphrase beschrieben.Mit gbde init wurde im Beispiel
auch die Lock-Datei /etc/gbde/ad4s1c
angelegt.Sichern Sie die Lock-Dateien von
gbde immer zusammen mit den
verschlüsselten Dateisystemen. Ein entschlossener
Angreifer kann die Daten vielleicht auch ohne die
Lock-Datei entschlüsseln. Ohne die Lock-Datei
können Sie allerdings nicht auf die
verschlüsselten Daten zugreifen. Dies ist nur noch
mit erheblichem manuellen Aufwand möglich, der
weder von &man.gbde.8; noch seinem Entwickler
unterstützt wird.Einbinden der verschlüsselten Partition
in den Kernel&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1cDas Kommando fragt die Passphrase ab, die Sie
beim Vorbereiten der Partition eingegeben haben. Das
neue Gerät erscheint danach als
/dev/device_name.bde im
Verzeichnis /dev:&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bdeDateisystem auf dem verschlüsselten Gerät
anlegenWenn der Kernel die verschlüsselte Partition
kennt, können Sie ein Dateisystem auf ihr anlegen.
Benutzen Sie dazu den Befehl &man.newfs.8;. Da ein
Dateisystem vom Typ UFS2 sehr viel schneller als eins
vom Typ UFS1 angelegt wird, empfehlen wir Ihnen, die
Option zu benutzen.Ab &os; 5.1-RELEASE wird
als Voreinstellung verwendet.&prompt.root; newfs -U -O2 /dev/ad4s1c.bde&man.newfs.8; muss auf einer dem Kernel bekannten
gbde-Partition (einem
Gerät mit dem Namen
*.bde
laufen.Einhängen der verschlüsselten PartitionLegen Sie einen Mountpunkt für das
verschlüsselte Dateisystem an:&prompt.root; mkdir /privateHängen Sie das verschlüsselte Dateisystem
ein:&prompt.root; mount /dev/ad4s1c.bde /privateÜberprüfen des verschlüsselten
DateisystemDas verschlüsselte Dateisystem sollte jetzt
von &man.df.1; erkannt werden und benutzt werden
können.&prompt.user; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 1037M 72M 883M 8% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 8.1G 55K 7.5G 0% /home
/dev/ad0s1e 1037M 1.1M 953M 0% /tmp
/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr
/dev/ad4s1c.bde 150G 4.1K 138G 0% /privateEinhängen eines existierenden verschlüsselten
DateisystemsNach jedem Neustart müssen verschlüsselte
Dateisysteme dem Kernel wieder bekannt gemacht werden,
auf Fehler überprüft werden und eingehangen
werden. Die dazu nötigen Befehle müssen als
root durchgeführt werden.gbde-Partition im Kernel bekannt geben&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1cDas Kommando fragt nach der Passphrase, die Sie
beim Vorbereiten der verschlüsselten
gbde-Partition festgelegt
haben.Prüfen des DateisystemsDas verschlüsselte Dateisystem kann noch nicht
automatisch über /etc/fstab
eingehangen werden. Daher muss es vor dem Einhängen
mit &man.fsck.8; geprüft werden:&prompt.root; fsck -p -t ffs /dev/ad4s1c.bdeEinhängen des verschlüsselten
Dateisystems&prompt.root; mount /dev/ad4s1c.bde /privateDas verschlüsselte Dateisystem steht danach
zur Verfügung.Verschlüsselte Dateisysteme automatisch
einhängenMit einem Skript können verschlüsselte
Dateisysteme automatisch bekannt gegeben, geprüft
und eingehangen werden. Wir raten Ihnen allerdings
aus Sicherheitsgründen davon ab. Starten Sie das
Skript manuell an der Konsole oder in einer
&man.ssh.1;-Sitzung.Seit &os; 5.2-RELEASE existiert ein neues
- rcNG-Skript, an das über &man.rc.conf.5;
+ rc.d-Skript, an das über &man.rc.conf.5;
Argumente übergeben werden können. Dazu ein
Beispiel:gbde_autoattach_all="YES"
gbde_devices="ad4s1c"Durch diese Argumente muss beim Systemstart die
gbde-Passphrase eingegeben werden.
Erst nach Eingabe der korrekten Passphrase wird die
gbde-verschlüsselte
Partition automatisch in den Verzeichnisbaum
eingehängt. Dieses Vorgehen ist insbesondere dann
nützlich, wenn Sie gbde auf
einem Notebook einsetzen wollen.Kryptographische Methoden von gbde&man.gbde.8; benutzt den 128-Bit AES im CBC-Modus,
um die Daten eines Sektors zu verschlüsseln. Jeder
Sektor einer Festplatte wird mit einem unterschiedlichen
AES-Schlüssel verschlüsselt. Mehr Informationen,
unter anderem wie die Schlüssel für einen Sektor
aus der gegebenen Passphrase ermittelt werden, erhalten
Sie in &man.gbde.4;.Kompatibilität&man.sysinstall.8; kann nicht mit verschlüsselten
gbde-Geräten umgehen. Vor
dem Start von &man.sysinstall.8; sind alle
*.bde-Geräte
zu deaktivieren, da &man.sysinstall.8; sonst bei der
Gerätesuche abstürzt. Das im Beispiel verwendete
Gerät wird mit dem folgenden Befehl deaktiviert:&prompt.root; gbde detach /dev/ad4s1cSie können gbde
nicht zusammen mit vinum
benutzen, da &man.vinum.4; das &man.geom.4;-Subsystem
nicht benutzt.DanielGerzoBeigetragen von Plattenverschlüsselung mit geliMit &os; 6.0 wurde eine neue kryptografische GEOM-Klasse
eingeführt - geli. Diese wird derzeit
von &a.pjd; weiterentwickelt. geli
unterscheidet sich von gbde durch
unterschiedliche Fähigkeiten und einen unterschiedlichen
Ansatz für die Verschlüsselung von Festplatten.Die wichtigsten Merkmale von &man.geli.8; sind:Der Einsatz des &man.crypto.9;-Frameworks –
verfügt das System über kryptografische Hardware,
wird diese von geli automatisch
verwendet.Die Unterstützung verschiedener kryptografischer
Algorithmen (derzeit AES, Blowfish, sowie 3DES).Die Möglichkeit, die root-Partition zu
verschlüsseln. Um auf die verschlüsselte
root-Partition zugreifen zu können, muss beim
- Systemstart die Passprase eingegeben werden.
+ Systemstart die Passphrase eingegeben werden.
geli erlaubt den Einsatz von zwei
voneinander unabhängigen Schlüsseln (etwa einem
privaten Schlüssel und einem
Unternehmens-Schlüssel).geli ist durch einfache
Sektor-zu-Sektor-Verschlüsselung sehr schnell.Die Möglichkeit, Master-Keys zu sichern und
wiederherzustellen. Wenn ein Benutzer seinen Schlüssel
zerstört, kann er über seinen zuvor gesicherten
Schlüssel wieder auf seine Daten zugreifen.geli erlaubt es, Platten mit
einem zufälligen Einmal-Schlüssel einzusetzen,
was insbesondere für Swap-Partitionen und
temporäre Dateisysteme interessant ist.Weitere Informationen zu den Fähigkeiten von
geli finden Sie in &man.geli.8;.Die folgenden Schritte beschreiben, wie Sie
geli im &os;-Kernel aktivieren und einen
neuen geli-Verschlüsselungs-Provider
anlegen können. Abschließend wird gezeigt, wie
Sie eine verschlüsselte Swap-Partition einrichten, die
die von geli angebotenen Fähigkeiten
nützt.Voraussetzung für die Nutzung von
geli ist der Einsatz von &os; 6.0-RELEASE
oder neuer. Da Sie Ihren Kernel anpassen müssen,
benötigen Sie außerdem
root-Privilegien.Aufnahme der geli-Unterstützung
in Ihre KernelkonfigurationsdateiFügen Sie die folgenden Zeilen in Ihre
Kernelkonfigurationsdatei ein:options GEOM_ELI
device cryptoBauen und installieren Sie Ihren neuen Kernel wie in
beschrieben.Alternativ können Sie aber auch das
geli-Kernelmodul beim Systemstart laden.
Dazu fügen Sie die folgende Zeile in
/boot/loader.conf ein:geom_eli_load="YES"Ab sofort wird &man.geli.8; vom Kernel
unterstützt.Erzeugen des Master-KeysDas folgende Beispiel beschreibt, wie Sie eine
Schlüsseldatei erzeugen, die als Teil des
Master-Keys für den Verschlüsselungs-Provider
verwendet wird, der unter /private in den
Verzeichnisbaum eingehängt (gemountet)
wird. Diese Schlüsseldatei liefert zufällige
Daten, die für die Verschlüsselung des
Master-Keys benötigt werden. Zusätzlich wird
- der Master-Key durch eine Passprase geschützt. Die
+ der Master-Key durch eine Passphrase geschützt. Die
Sektorgröße des Providers beträgt 4 KB.
- Äßerdem wird beschrieben, wie Sie einen
+ Außerdem wird beschrieben, wie Sie einen
geli-Provider aktivieren, ein vom ihm
verwaltetes Dateisystem erzeugen, es mounten, mit ihm
arbeiten und wie Sie es schließlich wieder unmounten
und den Provider deaktivieren.Um eine bessere Leistung zu erzielen, sollten Sie eine
größere Sektorgröße (beispielsweise
4 KB) verwenden.Der Master-Key wird durch eine Passphrase sowie die
Daten der Schlüsseldatei (die von
/dev/random stammen) geschützt.
Die Sektorgröße von
/dev/da2.eli (das als Provider
bezeichnet wird) beträgt 4 KB.&prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1
&prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2
Enter new passphrase:
Reenter new passphrase:Es ist nicht zwingend nötig, sowohl eine Passphrase
als auch eine Schlüsseldatei zu verwenden. Die
einzelnen Methoden können auch unabhängig
voneinander eingesetzt werden.Wird für die Schlüsseldatei der Wert
- angegeben, wird dafür die
Standardeingabe verwendet. Das folgende Beispiel zeigt,
dass Sie auch mehr als eine Schlüsseldatei verwenden
können.&prompt.root; cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2Aktivieren des Providers mit dem erzeugten
Schlüssel&prompt.root; geli attach -k /root/da2.key /dev/da2
Enter passphrase:Dadurch wird die (Normaltext-)Gerätedatei
/dev/da2.eli
angelegt.&prompt.root; ls /dev/da2*
/dev/da2 /dev/da2.eliDas neue Dateisystem erzeugen&prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m
&prompt.root; newfs /dev/da2.eli
&prompt.root; mount /dev/da2.eli /privateDas verschlüsselte Dateisystem wird nun von
&man.df.1; angezeigt und kann ab sofort eingesetzt werden.&prompt.root; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 248M 89M 139M 38% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr
/dev/ad0s1d 989M 1.5M 909M 0% /tmp
/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var
/dev/da2.eli 150G 4.1K 138G 0% /privateDas Dateisystem unmounten und den Provider deaktivierenWenn Sie nicht mehr mit dem verschlüsselten
Dateisystem arbeiten und die unter /private eingehängte
Partition daher nicht mehr benötigen, sollten
Sie diese unmounten und den
geli-Verschlüsselungs-Provider
wieder deaktivieren.&prompt.root; umount /private
&prompt.root; geli detach da2.eliWeitere Informationen zum Einsatz von geli
finden Sie in &man.geli.8;.Eine Swap-Partition verschlüsselnDas folgende Beispiel zeigt, wie Sie eine
geli-verschlüsselte Swap-Partition
erzeugen.&prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1m
&prompt.root; geli onetime -d -a 3des ad0s1b
&prompt.root; swapon /dev/ad0s1b.eli
- Der Einsatz des geli-rcNG-Skripts
+ Der Einsatz des geli-
+ rc.d-Skriptsgeli verfügt über ein
- rcNG-Skript, das den Einsatz von geli
+ rc.d-Skript,
+ das den Einsatz von geli
deutlich vereinfacht. Es folgt nun ein Beispiel, in dem
geli über die Datei
&man.rc.conf.5; konfiguriert wird:geli_devices="da2"
geli_da2_flags="-p -k /root/da2.key"Durch diese Einträge wird
/dev/da2 als
geli-Provider festgelegt. Der Master-Key
befindet sich in /root/da2.key. Beim
Aktivieren des geli-Providers wird keine
Passphrase abgefragt (beachten Sie, dass dies nur dann
möglich ist, wenn Sie geli mit dem
Parameter -P initialisieren). Wird das
System heruntergefahren, wird der
geli-Provider zuvor deaktiviert.
- Weitere Informationen zur Konfiguration der rcNG-Skripten
+ Weitere Informationen zur Konfiguration der
+ rc.d-Skripten
finden Sie im Abschnitt rcNG des Handbuchs.
+ linkend="configtuning-rcd">rc.d des Handbuchs.
diff --git a/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml b/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml
index fa05ba71f0..09e443c555 100644
--- a/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml
@@ -1,496 +1,539 @@
Joseph J.BarbishBeigetragen von BradDavisNach SGML konvertiert und aktualisiert von MichaelBunzelÜbersetzt von FirewallsfirewallsecurityfirewallsEinführungFirewalls ermöglichen es, den ein- und ausgehenden
Netzwerkverkehr Ihres Systems zu filtern. Dazu verwendet eine
Firewall eine oder mehrere Gruppen von Regeln,
um ankommende Netzwerkpakete zu untersuchen und entweder
durchzulassen oder zu blockieren. Die Regeln einer
Firewall untersuchen charakteristische Eigenschaften von
Datenpaketen, darunter den Protokolltyp, die Quell- und
Zieladresse sowie den Quell- und Zielport.Firewalls können die Sicherheit eines Rechners oder
eines Netzwerks erhöhen, indem sie folgende Aufgaben
übernehmen:Den Schutz der Anwendungen, Dienste und Rechner Ihres
internen Netzwerks vor unerwünschtem Datenverkehr
aus dem Internet.Die Beschränkung des Zugriffs von Rechnern des
internen Netzwerk auf Rechner oder Dienste des externen
Internets.Den Einsatz von Network Address Translation
(NAT), die es Ihnen durch die Verwendung
von privaten IP-Adressen ermöglicht,
eine einzige gemeinsame Internetverbindung für mehrere
Rechner zu nutzen (entweder über eine einzige Adresse
oder über eine Gruppe von jeweils automatisch
zugewiesenen öffentlichen
IP-Adressen).Nachdem Sie dieses Kapitel gelesen haben, werden Sie:Wissen, wie man korrekte Paketfilterregeln erstellt.Die Unterschiede zwischen den in &os; eingebauten Firewalls
kennen.Wissen, wie man die PF-Firewall
von OpenBSD konfiguriert und einsetzt.IPFILTER konfigurieren und
einsetzen können.Wissen, wie man
IPFW konfiguriert und einsetzt.Bevor Sie dieses Kapitel lesen, sollten Sie:Die grundlegenden Konzepte von &os; und dem Internet
verstehen.FirewallkonzeptefirewallrulesetsEs gibt zwei grundlegende Arten, Regelgruppen für
Firewalls zu erstellen: einschließend
(inclusive firewall) sowie
auschließend (exclusive
Firewall). Eine auschließende Firewall
lässt jeden Datenverkehr durch, der nicht durch eine Regel
ausgeschlossen wurde. Eine einschließende Firewall macht
das genaue Gegenteil. Sie lässt Datenverkehr nur dann
durch, wenn er einer der definierten Regeln entspricht.Einschließende Firewalls sind tendentiell sicherer als
ausschließende Firewalls, da sie das Risiko, dass
unerwünschter Datenverkehr die Firewall passiert, signifikant
reduzieren.Die Sicherheit einer Firewall kann durch den Einsatz einer
zustandsabhängigen Firewall
(stateful firewall) weiter
erhöht werden. Eine zustandsabhängige Firewall
überwacht alle durch die Firewall gehenden offenen
Verbindungen und erlaubt nur schon bestehenden Verkehr oder
Datenverkehr, der eine neue Verbindung öffnet. Der Nachteil
einer zustandsabhängigen Firewall ist allerdings, dass sie
anfällig für Denial of Service (DoS)
-Attacken ist, wenn sehr schnell sehr viele neue Verbindungen
erstellt werden. Bei den meisten Firewalls können Sie eine
Kombination aus zustandsabhängigem und nicht
zustandsabhängigem Verhalten verwenden, um eine für Ihre
Bedürfnisse optimale Fireall einzurichten.FirewallpaketeDas Basissystem von &os; enthält bereits drei
Firewallpakete: IPFILTER (auch als
IPF bekannt), IPFIREWALL
(auch als IPFW bezeichnet) sowie das von OpenBSD
übernommene PacketFilter (das auch als
PF bezeichnet wird). Zusätzlich
verfügt &os; über zwei eingebaute Pakete für das
sogenannte traffic shaping (dabei
handelt es sich die Steuerung des Bandbreitenverbrauchs):
&man.altq.4; sowie &man.dummynet.4;. Dummynet steht traditionell
in enger Verbindung mit IPFW, während
ALTQ gemeinsam mit
IPF/PF eingesetzt wird.
Gemeinsam ist allen Firewallpaketen (IPF, IPFW sowie PF), dass sie
Regeln einsetzen, um den Transfer von Datenpaketen auf und von
Ihrem System zu regeln. Unterschiedlich sind aber die Art und
Weise, wie dies realisiert wird. Auch die für diese Regeln
verwendete Syntax ist unterschiedlich.&os; überlässt es dem Anwender, das Firewallsystem
zu wählen, dass seinen Anforderungen und Vorlieben am Besten
entspricht. Keines der im Basissystem enthaltenen Firewallpakete
wird dabei als das beste angesehen.IPFILTER hat etwa den Vorteil, dass dessen
zustandsabhängige Regeln relativ einfach in einer
NAT-Umgebung implementiert werden können.
Außerdem verfügt es über einen eigenen FTP-Proxy,
der die Erstellung von sicheren Regeln für ausgehende
FTP-Verbindungen vereinfacht.Da alle Firewalls auf der Untersuchung der Werte
ausgewählter Kontrollfelder von Datenpaketen basieren, ist es
für die Erstellung von Firewallregeln notwendig, die
Funktionsweise von TCP/IP zu verstehen.
Außerdem muss man dazu wissen, was die Werte der einzelnen
Kontrollfelder bedeuten und wie diese während einer
Verbindung eingesetzt werden. Eine gute Erklärung dieser
Thematik finden Sie unter .Paket Filter (PF) von OpenBSD und
ALTQfirewallPFIm Juli 2003 wurde PF, die
Standard-Firewall von OpenBSD, nach &os; portiert und in die
&os;-Ports-Sammlung aufgenommen. Die erste &os;-Version,
die PF als Teil des Basisssytems enthielt, war
&os; 5.3 im November 2004. Bei PF
handelt es sich um eine komplette, vollausgestattete Firewall,
die optional auch ALTQ (Alternatives
Queuing) unterstützt. ALTQ bietet Ihnen
Quality of Service
(QoS)-Bandbreitenformung. Dadurch können
Sie, basierend auf Filterregeln, unterschiedlichen Diensten eine
bestimmte Bandbreite garantieren. Da das OpenBSD-Projekt bereits
über eine hervorragende Dokumentation verfügt, wurde das
PF-Handbuch nicht in dieses Kapitel aufgenommen.PF ist für folgende &os;-Versionen verfügbar:&os;-VersionPF-VerfügbarkeitVersionen vor 4.XFür &os;-Versionen vor 4.X ist PF nicht
verfügbar.Alle Versionen des 4.X-ZweigesPF ist als Teil von KAME verfügbar.5.X-Versionen vor 5.3-RELEASEFür diese &os;-Versionen kann der Port
security/pf
verwendet werden, um PF zu installieren. Da diese
&os;-Versionen aber nur für Entwickler und Personen
gedacht waren, die einen Einblick in die frühen
5.X-Versionen haben wollten, wird Nutzern dieser
Versionen dringend empfohlen, Ihr System auf
5.3-RELEASE oder neuer zu aktualisieren.5.3-RELEASE und neuerSeit 5.3-RELEASE ist PF Teil des Basissystems.
Benutzen Sie daher nicht den
Port security/pf,
da dieser unter diesen Versionen nicht funktioniert.
Verwenden Sie stattdessen das im Basissystem enthaltene
&man.pf.4;.Weitere Informationen finden Sie unter
.
- Das PF-Benutzerhandbuch von OpenBSD finden Sie hier: .
-
-
- PF auf Systemen mit &os; 5.X ist auf dem Stand von
- OpenBSD 3.5. Das in der &os;-Ports-Sammlung enthaltene
- PF ist hingegen auf dem Stand von OpenBSD 3.4. Beachten
- Sie diesen Umstand, wenn Sie das Benutzerhandbuch lesen.
-
-
PF aktivierenPF ist in Standardinstallationen von &os; 5.3 oder
neuer als eigenes, zur Laufzeit ladbares Kernelmodul enthalten.
Das System lädt das PF-Kernelmodul automatisch, wenn die
Anweisung pf_enable="YES" in
/etc/rc.conf enthalten ist. Das ladbare
Kernelmodul wurde mit aktivierter &man.pflog.4;-Protokollierung
erstellt.Das Kernelmodul geht davon aus, dass die Einträge
options INET sowie
device bpf in Ihrer Kernelkonfigurationsdatei
- vorhanden sind. Haben Sie NOINET6 nicht
- definiert, benötigen Sie (etwa in &man.make.conf.5;)
- zusätzlich die Option options INET6.
+ vorhanden sind. Haben Sie NO_INET6 (seit
+ &os; 6.X) oder NOINET6 (in &os;-Versionen
+ vor 6.X) nicht definiert, benötigen Sie (etwa in
+ &man.make.conf.5;) zusätzlich die Option
+ options INET6.
+
+ Nachdem Sie das Kernelmodul geladen oder die
+ PF-Unterstützung statisch in Ihren Kernel kompiliert haben,
+ können Sie pf über den
+ Befehl pfctl aktivieren beziehungsweise
+ deaktivieren.
+
+ Das folgende Beispiel zeigt, wie Sie
+ pf aktivieren:
+
+ &prompt.root; pfctl -e
+
+ pfctl ermöglicht es Ihnen, die
+ pf-Firewall zu steuern. Lesen Sie
+ &man.pfctl.8;, bevor Sie das Programm einsetzen.Kernel-Optionenkernel optionsdevice pfkernel optionsdevice pflogkernel optionsdevice pfsyncEs ist nicht zwingend nötig, dass Sie PF durch die
Angabe der folgenden Optionen in den &os;-Kernel kompilieren.
Kompilieren Sie die PF-Unterstützung in Ihren Kernel, so
wird das Kernelmodul nie verwendet werden.
Die folgenden Angaben dienen daher nur als
Hintergrundinformationen./usr/src/sys/conf/NOTES enthält
Beispiele für die Kernelkonfigurationsoptionen von PF:device pf
device pflog
device pfsyncdevice pf aktiviert die Unterstützung
für die Packet Filter-Firewall.device pflog aktiviert das optionale
&man.pflog.4;-Pseudonetzwerkgerät, das zum Protokollieren
des Datenverkehrs über einen &man.bpf.4;-Deskriptor
dient. &man.pflogd.8; ist in der Lage, diese Protokolldateien
auf Ihre Platte zu speichern.device pfsync aktiviert das optionale
&man.pfsync.4;-Pseudonetzwerkgerät für die
Überwachung von Statusänderungen.
Da es sich dabei nicht um einen Bestandteil des Kernelmoduls
handelt, muss diese Option auf jeden Fall in den Kernel kompiliert
werden, bevor man sie verwenden kann.Diese Einstellungen werden erst dann übernommen, wenn
man einen Kernel mit diesen Optionen kompiliert und
installiert.Verfügbare rc.conf-OptionenUm PF beim Systemstart zu aktivieren, benötigen Sie die
folgenden Einträge in /etc/rc.conf:pf_enable="YES" # PF aktivieren(Modul, wenn nötig, aktivieren)
pf_rules="/etc/pf.conf" # Datei mit Regeldefinitionen für pf
pf_flags="" # zusätzliche Parameter für den Start von pfctl
pflog_enable="YES" # stare pflogd(8)
pflog_logfile="/var/log/pflog" # wo soll pflogd die Protokolldatei speichern
pflog_flags="" # zusätzliche Parameter für den Start von pflogdWenn Sie ein lokales Netzwerk hinter dieser Firewall
betreiben, und Pakete für dessen Rechner weiterleiten oder
NAT verwenden wollen, benötigen Sie zusätzlich die
folgende Option:gateway_enable="YES" # LAN Gateway aktivierenALTQ aktivierenALTQ muss vor der Verwendung in den
&os;-Kernel kompiliert werden. Beachten Sie, dass
ALTQ nicht von allen verfügbaren
Netzwerkkartentreibern unterstützt wird. Sehen Sie daher
zuerst in &man.altq.4; nach, ob Ihre Netzwerkkarte diese
Funktion unter Ihrer &os;-Version unterstützt. Die
folgenden Kerneloptionen aktivieren ALTQ
sowie alle Zusatzfunktionen:options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Wird von SMP benötigtoptions ALTQ aktiviert das
ALTQ-Framework.options ALTQ_CBQ aktiviert das
Class Based Queuing
(CBQ). CBQ erlaubt es, die
Bandbreite einer Verbindung in verschiedene Klassen oder
Warteschlangen zu unterteilen, um die Priorität von
Datenpaketen basierend auf Filterregeln zu ändern.options ALTQ_RED aktiviert
Random Early Detection
(RED). RED wird
zur Vermeidung einer Netzwerkverstopfung verwendet. Dazu
ermittelt RED die Größe der
Warteschlange und vergleicht diesen Wert mit den minimalen
und maximalen Grenzwerten der Warteschlange. Ist die
Warteschlange größer als das erlaubte Maximum,
werden alle neuen Pakete verworfen. Getreu seinem Namen
verwirft RED Pakete unterschiedlicher
Verbindungen nach dem Zufallsprinzip.options ALTQ_RIO aktiviert
Random Early Detection In and
Out.options ALTQ_HFSC aktiviert den
Hierarchical Fair Service Curve
-Paketplaner. Weitere Informationen zu HFSC
finden Sie unter .options ALTQ_PRIQ aktiviert
Priority Queuing
(PRIQ). PRIQ
lässt Verkehr einer Warteschlange mit höherer
Priorität zuerst durch.options ALTQ_NOPCC aktiviert die
SMP Unterstützung von
ALTQ. Diese Option ist nur auf
SMP-System erforderlich.
+
+
+ Filterregeln generieren
+
+ Der Packetfilter liest seine Konfiguration aus der Datei
+ &man.pf.conf.5; ein, um entsprechend der dort definierten Regeln
+ Pakete durchzulassen oder zu verwerfen. Die Standardinstallation
+ von &os; enthält bereits eine beispielhafte Version der
+ Datei /etc/pf.conf mit einigen hilfreichen
+ Beispielen und Erklärungen.
+
+ Obwohl &os; eine eigene Version der Datei
+ /etc/pf.conf enthält, wird dennoch die
+ gleiche Syntax wie unter OpenBSD verwendet. Das OpenBSD-Team hat
+ eine großartige Dokumentation zur Konfiguration von
+ pf geschrieben, die unter
+
+ erhältlich ist.
+
+
+ Denken Sie beim Lesen des pf-Handbuch daran, dass die
+ verschiedenen &os;-Versionen unterschiedliche Versionen
+ der pf-Firewall einsetzen. So
+ wird unter &os; 5.X noch die OpenBSD-Version 3.5
+ der Firewall eingesetzt, während in den
+ &os;-6.X-Versionen die OpenBSD-Version 3.7 zum
+ Einsatz kommt.
+
+
+ Haben Sie weitere Fragen zur
+ pf-Firewall, so
+ können Sie auf der Mailingliste &a.pf;
+ stellen. Vergessen Sie aber nicht, vorher die Archive der
+ Mailinglisten zu durchsuchen, bevor Sie dort eine Frage
+ stellen.
+ Die IPFILTER-Firewall (IPF)Dieses Kapitel ist noch nicht übersetzt.
Lesen Sie bitte
das Original in englischer Sprache. Wenn Sie helfen
wollen, dieses Kapitel zu übersetzen, senden Sie bitte
eine E-Mail an die Mailingliste &a.de.translators;.IPFWDieses Kapitel ist noch nicht übersetzt.
Lesen Sie bitte
das Original in englischer Sprache. Wenn Sie helfen
wollen, dieses Kapitel zu übersetzen, senden Sie bitte
eine E-Mail an die Mailingliste &a.de.translators;.
diff --git a/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml b/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml
index d8ac9a799d..342d5399f1 100644
--- a/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml
@@ -1,1221 +1,1221 @@
JimMockNeu zusammengestellt, umstrukturiert und um
Abschnitte erweitert durch SaschaEdelburgÜbersetzt von EinführungÜbersichtHerzlichen Dank für Ihr Interesse an FreeBSD! Das
folgende Kapitel behandelt verschiedene Aspekte des
FreeBSD-Projekts wie dessen geschichtliche Entwicklung,
dessen Ziele oder dessen Entwicklungsmodell.Nach dem Durcharbeiten des Kapitels wissen Sie über
folgende Punkte Bescheid:Wo FreeBSD im Vergleich zu anderen Betriebssystemen
stehtDie Geschichte des FreeBSD-ProjektsDie Ziele des FreeBSD-ProjektsDie Grundlagen des
FreeBSD-Open-Source-EntwicklungsmodellsUnd natürlich wo der Name FreeBSD
herrührtWillkommen bei FreeBSD!4.4BSD-LiteFreeBSD ist ein auf 4.4BSD-Lite basierendes Betriebssystem
für Intel (x86 und &itanium;), AMD64, Alpha
und Sun &ultrasparc; Rechner. An
Portierungen zu anderen Architekturen wird derzeit gearbeitet.
Mehr zu Geschichte von FreeBSD können Sie im kurzen geschichtlichen Abriss zu FreeBSD
oder im Abschnitt Das aktuelle
FreeBSD-Release nachlesen.
Falls Sie das FreeBSD-Projekt unterstützen wollen
(mit Quellcode, Hardware- oder Geldspenden), sollten Sie den
Artikel
FreeBSD unterstützen lesen.Was kann FreeBSD?FreeBSD hat zahlreiche bemerkenswerte Eigenschaften.
Um nur einige zu nennen:Präemptives MultitaskingPräemptives Multitasking mit
dynamischer Prioritätsanpassung zum reibungslosen und
ausgeglichenen Teilen der Systemressourcen zwischen
Anwendungen und Anwendern, selbst unter schwerster
Last.MehrbenutzerbetriebDer Mehrbenutzerbetrieb von
FreeBSD erlaubt es, viele Anwender gleichzeitig am System
mit verschiedenen Aufgaben arbeiten zu lassen.
Beispielsweise Geräte wie Drucker oder Bandlaufwerke,
die sich nur schwerlich unter allen Anwendern des Systems
oder im Netzwerk teilen lassen, können durch Setzen
von Verwendungsbeschränkungen auf Benutzer oder
Benutzergruppen wichtige Systemressourcen vor
Überbeanspruchung schützen.TCP/IP-NetzwerkfähigkeitHervorragende
TCP/IP-Netzwerkfähigkeit mit
Unterstützung der Industriestandards wie SLIP, PPP,
NFS, DHCP und NIS. Das heißt, Ihr FreeBSD-System
kann in einfachster Weise mit anderen Systemen
interagieren. Zudem kann es als Server-System im
Unternehmen wichtige Aufgaben übernehmen,
beispielsweise als NFS- oder E-Mail-Server oder es kann
Ihren Betrieb durch HTTP- und FTP-Server beziehungsweise
durch Routing und Firewalling Internet-fähig machen.SpeicherschutzDer Speicherschutz stellt sicher,
dass Anwendungen (oder Anwender) sich nicht gegenseitig
stören. Stürzt eine Anwendung ab, hat das
keine Auswirkung auf andere Prozesse.FreeBSD ist ein
32-Bit-Betriebssystem
(64-Bit auf Alpha, &itanium;, AMD64,
und &ultrasparc;) und wurde als solches von Grund auf
neu entworfen.X-Window-SystemXFree86Das X-Window-System (X11R6) als
Industriestandard bietet eine grafische Benutzeroberfläche
(GUI). Minimale Voraussetzung zur Verwendung ist
lediglich eine Grafikkarte und ein Bildschirm, die beide
den VGA-Modus unterstützen.BinärkompatibilitätLinuxBinärkompatibilitätSCOBinärkompatibilitätSVR4BinärkompatibilitätBSD/OSBinärkompatibilitätNetBSDBinärkompatibilität mit
vielen unter verschiedenen Betriebssystemen erstellten
Programmen wie Linux, SCO, SVR4, BSDI und NetBSD.Tausende von sofort
lauffähigen Anwendungen sind aus den
Ports- und
Packages-Sammlungen für FreeBSD
verfügbar. Warum mühselig im Netz Software
suchen, wenn sie bereits hier vorhanden ist?Tausende zusätzliche leicht zu
portierende Anwendungen sind über das
Internet zu beziehen. FreeBSD ist Quellcode-kompatibel
mit den meisten kommerziellen &unix; Systemen. Daher
bedürfen Anwendungen häufig nur geringer oder
gar keiner Anpassung, um auf einem FreeBSD-System zu
kompilieren.virtueller SpeicherSeitenweise anforderbarer Virtueller
Speicher und der merged VM/buffer
cache-Entwurf bedient effektiv den großen
Speicherhunger mancher Anwendungen bei gleichzeitigem
Aufrechterhalten der Bedienbarkeit des Systems für
weitere Benutzer.Symmetrisches Multi-Processing (SMP)SMP-Unterstützung für
MehrprozessorsystemeKompilerCKompilerC++KompilerFORTRANEin voller Satz von C,
C++, Fortran und
Perl Entwicklungswerkzeugen. Viele
zusätzliche Programmiersprachen für Wissenschaft
und Entwicklung sind aus der Ports- und Packages-Sammlung
zu haben.QuellcodeQuellcode für das gesamte
System bedeutet größtmögliche Kontrolle
über Ihre Umgebung. Warum sollte man sich durch
proprietäre Lösungen knebeln und sich auf Gedeih
und Verderb der Gnade eines Herstellers ausliefern, wenn
man doch ein wahrhaft offenes System haben kann?Umfangreiche
Online-Dokumentation.4.4BSD-LiteComputer Systems Research Group (CSRG)U.C. BerkeleyFreeBSD basiert auf dem 4.4BSD-Lite-Release der Computer
Systems Research Group (CSRG) der Universität von
Kalifornien in Berkeley und führt die namhafte
Tradition der Entwicklung von BSD-Systemen fort.
Zusätzlich zu der herausragenden Arbeit der CSRG hat das
FreeBSD-Projekt tausende weitere Arbeitsstunden investiert,
um das System zu verfeinern und maximale Leistung und
Zuverlässigkeit bei Alltagslast zu bieten. Während
viele kommerzielle Riesen Probleme haben PC-Betriebssysteme
mit derartigen Funktionen, Leistungpotential und
Zuverlässigkeit anzubieten, kann FreeBSD damit schon
jetzt aufwarten! Die Anwendungsmöglichkeiten von FreeBSD werden nur
durch Ihre Vorstellungskraft begrenzt. Von
Software-Entwicklung bis zu Produktionsautomatisierung, von
Lagerverwaltung über Abweichungskorrektur bei Satelliten;
Falls etwas mit kommerziellen &unix; Produkten machbar ist, dann
ist es höchstwahrscheinlich auch mit FreeBSD
möglich. FreeBSD profitiert stark von tausenden
hochwertigen Anwendungen aus wissenschaftlichen Instituten und
Universitäten in aller Welt. Häufig sind diese
für wenig Geld oder sogar kostenlos zu bekommen.
Kommerzielle Anwendungen sind ebenso verfügbar und es
werden täglich mehr.Durch den freien Zugang zum Quellcode von FreeBSD ist es
in unvergleichbarer Weise möglich, das System für
spezielle Anwendungen oder Projekte anzupassen. Dies ist
mit den meisten kommerziellen Betriebssystemen einfach nicht
möglich. Beispiele für Anwendungen, die unter
FreeBSD laufen, sind:Internet-Dienste: Die robuste
TCP/IP-Implementierung in FreeBSD macht es zu einer
idealen Plattform für verschiedenste
Internet-Dienste, wie zum Beispiel:FTP-ServerFTP-ServerHTTP-ServerHTTP-Server (Standard-Web-Server oder mit
SSL-Verschlüsselung)FirewallNATFirewalls und NAT-Gateways
(IP-Masquerading)E-MailE-Mail-ServerUsenetUsenet-News und Foren (BBS)Zum Betreiben von FreeBSD reicht schon ein
günstiger 386-PC. Wenn es das Wachstum Ihres
Unternehmens verlangt, kann FreeBSD aber auch auf einem
hochgerüsteten 4-Wege-System mit Xeon-Prozessoren
und RAID-Plattenspeicher Verwendung finden.Bildung: Sind Sie
Informatikstudent oder Student eines verwandten
Studiengangs? Die praktischen Einblicke in FreeBSD sind
die beste Möglichkeit etwas über Betriebssysteme,
Rechnerarchitektur und Netzwerke zu lernen. Einige frei
erhältliche CAD-, mathematische und grafische Anwendungen
sind sehr nützlich, gerade für diejenigen, die
FreeBSD nicht zum Selbstzweck, sondern als
Arbeitsmittel einsetzen.Wissenschaft: Mit dem frei
verfügbaren Quellcode für das gesamte System
bildet FreeBSD ein exzellentes Studienobjekt in der
Disziplin der Betriebssysteme, wie auch in anderen Zweigen
der Informatik. Es ist beispielsweise denkbar, das
räumlich getrennte Gruppen gemeinsam an einer Idee
oder Entwicklung arbeiten. Das Konzept der freien
Verfügbarkeit und -nutzung von FreeBSD
ermöglicht so einen Gebrauch, auch ohne sich
groß Gedanken über Lizenzbedingungen oder
-beschränkungen machen zu müssen.RouterDNS-ServerNetzwerkfähigkeit: Brauchen
Sie einen neuen Router? Oder einen Name-Server (DNS)? Eine
Firewall zum Schutze Ihres Intranets vor Fremdzugriff?
FreeBSD macht aus dem in der Ecke verstaubenden 386- oder
486-PC im Handumdrehen einen leistungsfähigen Router
mit anspruchsvollen Packet-Filter-Fähigkeiten.X-Window-SystemXFree86X-Window-SystemAccelerated-XX-Window-Workstation: FreeBSD ist
eine gute Wahl als kostengünstiges X-Terminal, egal
ob mit einem der frei erhältlichen X11-Server oder mit
einem der exzellenten kommerziellen Server von
Xi Graphics.
Im Gegensatz zu einem X-Terminal erlaubt es FreeBSD, viele
Anwendungen lokal laufen zu lassen, was die Last eines
zentralen Servers erleichtern kann. FreeBSD kann selbst
plattenlos starten, was einzelne
Workstations noch günstiger macht und die Wartung
erleichtert.GNU-Compiler-CollectionSoftware-Entwicklung: Das
Standard-System von FreeBSD wird mit einem kompletten Satz
an Entwicklungswerkzeugen bereitgestellt, unter anderem
mit dem bekannten GNU C/C++-Kompiler und -Debugger.&os; ist sowohl in Form von Quellcode als auch in
Binärform auf CD-ROM, DVD und über anonymous FTP
erhältlich. Näheres zum Bezug von FreeBSD
enthält .Wer benutzt FreeBSD?AnwenderBekannte FreeBSD-AnwenderUnter FreeBSD laufen einige der größten
Internet-Auftritte, beispielsweise:Yahoo!Yahoo!ApacheApacheBlue Mountain ArtsBlue
Mountain ArtsPair NetworksPair
NetworksSony JapanSony
JapanNetcraftNetcraftWeathernewsWeathernewsSupervaluSupervaluTELEHOUSE AmericaTELEHOUSE
AmericaSophos Anti-VirusSophos
Anti-VirusJMA WiredJMA
WiredDas FreeBSD-ProjektDer folgende Abschnitt bietet einige
Hintergrundinformationen zum FreeBSD-Projekt,
einschließlich einem kurzen geschichtlichen Abriss,
den Projektzielen und dem Entwicklungsmodell.JordanHubbardBeigesteuert von Kurzer geschichtlicher Abriss zu FreeBSD386BSD PatchkitHubbard, JordanWilliams, NateGrimes, RodFreeBSD-ProjektGeschichteDas FreeBSD-Projekt erblickte das Licht der Welt Anfang
1993 teils als Auswuchs des Unofficial 386BSD
Patchkit unter der Regie der letzten drei
Koordinatoren des Patchkits: Nate Williams, Rod Grimes und
mir.386BSDUnser eigentliches Ziel war es, einen zwischenzeitlichen
Abzug von 386BSD zu erstellen, um ein paar Probleme zu
beseitigen, die das Patchkit-Verfahren nicht lösen
konnte. Einige von Ihnen werden sich in dem Zusammenhang noch
an die frühen Arbeitstitel 386BSD 0.5 oder
386BSD Interim erinnern.Jolitz, Bill386BSD war das Betriebssystem von Bill Jolitz. Dieses
litt bis zu diesem Zeitpunkt heftig unter fast
einjähriger Vernachlässigung. Als das Patchkit mit
jedem Tag anschwoll und unhandlicher wurde, waren wir
einhellig der Meinung, es müsse etwas geschehen. Wir
entschieden uns Bill Jolitz zu helfen, indem wir den
übergangsweise bereinigten Abzug zur
Verfügung stellten. Diese Pläne wurden unschön
durchkreuzt als Bill Jolitz plötzlich seine Zustimmung
zu diesem Projekt zurückzog, ohne einen Hinweis darauf,
was stattdessen geschehen sollte.Greenman, DavidWalnut Creek CDROMEs hat nicht lange gedauert zu entscheiden, dass das Ziel
es wert war, weiterverfolgt zu werden, selbst ohne Bills
Unterstützung. Also haben wir den von David Greenman
geprägten Namen FreeBSD angenommen.
Unsere anfänglichen Ziele setzten wir nach
Rücksprache mit den damaligen Benutzern des Systems fest.
Und als deutlich wurde, das Projekt würde
möglicherweise Realität, nahm ich Kontakt mit Walnut
Creek CDROM auf, mit einem Auge darauf, den Vertriebsweg
für die vielen Missbegünstigten zu verbessern,
die keinen einfachen Zugang zum Internet hatten. Walnut Creek
CDROM unterstützte nicht nur die Idee des
CD-ROM-Vertriebs, sondern stellte sogar dem Projekt einen
Arbeitsrechner und eine schnelle Internetverbindung zur
Verfügung. Ohne den beispiellosen Glauben von Walnut
Creek CDROM in ein zu der Zeit absolut unbekanntes Projekt,
gäbe es FreeBSD in der heutigen Form wohl nicht.4.3BSD-LiteNet/2U.C. Berkeley386BSDFree Software FoundationDie erste auf CD-ROM (und netzweit) verfügbare
Veröffentlichung war FreeBSD 1.0 im Dezember
1993. Diese basierte auf dem Band der 4.3BSD-Lite
(Net/2) der Universität von Kalifornien in
Berkeley. Viele Teile stammten aus 386BSD und von der Free
Software Foundation. Gemessen am ersten Angebot, war
das ein ziemlicher Erfolg und wir ließen dem das extrem
erfolgreiche FreeBSD 1.1 im Mai 1994 folgen.NovellU.C. BerkeleyNet/2AT&TZu dieser Zeit formierten sich unerwartete Gewitterwolken am
Horizont, als Novell und die Universität von Kalifornien
in Berkeley (UCB) ihren langen Rechtsstreit über den
rechtlichen Status des Berkeley Net/2-Bandes mit einem
Vergleich beilegten. Eine Bedingung dieser Einigung war es,
dass die UCB große Teile des Net/2-Quellcodes als
belastet zugestehen musste, und dass diese
Besitz von Novell sind, welches den Code selbst einige Zeit vorher
von AT&T bezogen hatte. Im Gegenzug bekam die UCB den
Segen von Novell, dass sich das 4.4BSD-Lite-Release
bei seiner endgültigen Veröffentlichung als
unbelastet bezeichnen darf. Alle Net/2-Benutzer sollten
auf das neue Release wechseln. Das betraf auch FreeBSD. Dem
Projekt wurde eine Frist bis Ende Juli 1994 eingeräumt,
das auf Net/2-basierende Produkt nicht mehr zu vertreiben.
Unter den Bedingungen dieser Übereinkunft war es dem
Projekt noch erlaubt ein letztes Release vor diesem
festgesetzten Zeitpunkt herauszugeben. Das war
FreeBSD 1.1.5.1.FreeBSD machte sich dann an die beschwerliche Aufgabe,
sich Stück für Stück, aus einem neuen und
ziemlich unvollständigen Satz von 4.4BSD-Lite-Teilen,
wieder aufzubauen. Die
Lite-Veröffentlichungen waren deswegen
leicht, weil Berkeleys CSRG große Code-Teile,
die für ein start- und lauffähiges System gebraucht
wurden, aufgrund diverser rechtlicher Anforderungen entfernen
musste und weil die 4.4-Portierung für Intel-Rechner extrem
unvollständig war. Das Projekt hat bis November 1994
gebraucht diesen Übergang zu vollziehen, was dann zu dem
im Netz veröffentlichten FreeBSD 2.0 und zur
CD-ROM-Version (im späten Dezember) führte. Obwohl
FreeBSD gerade die ersten Hürden genommen hatte, war
dieses Release ein maßgeblicher Erfolg. Diesem folgte
im Juni 1995 das robustere und einfacher zu installierende
FreeBSD 2.0.5.Im August 1996 veröffentlichten wir
FreeBSD 2.1.5. Es schien unter ISPs und der Wirtschaft
beliebt genug zu sein, ein weiteres Release aus dem
2.1-STABLE-Zweig zu rechtfertigen. Das war
FreeBSD 2.1.7.1. Es wurde im Februar 1997
veröffentlicht und bildete das Ende des
Hauptentwicklungszweiges 2.1-STABLE. Derzeit unterliegt
dieser Zweig dem Wartungsmodus, das heißt, es werden nur
noch Sicherheitsverbesserungen und die Beseitigung von
kritischen Fehlern vorgenommen (RELENG_2_1_0).FreeBSD 2.2 entsprang dem Hauptentwicklungszweig
(-CURRENT) im November 1996 als
RELENG_2_2-Zweig und das erste komplette Release (2.2.1) wurde
im April 1997 herausgegeben. Weitere Veröffentlichungen
des 2.2-Zweiges gab es im Sommer und Herbst 1997. Das letzte
Release des 2.2-Zweiges bildete die Version 2.2.8, die im
November 1998 erschien. Das erste offizielle 3.0-Release
erschien im Oktober 1998 und läutete das Endes des
2.2-Zweiges ein.Am 20. Januar 1999 teilte sich der Quellbaum
in die Zweige 4.0-CURRENT und 3.X-STABLE. Auf dem
3.X-STABLE-Zweig wurden folgende
Releases erstellt: 3.1 am 15. Februar 1999,
3.2 am 15. Mai 1999,
3.3 am 16. September 1999,
3.4 am 20. Dezember 1999 und
3.5 am 24. Juni 2000. Letzterem
folgte ein paar Tage später das Release 3.5.1, welches
einige akute Sicherheitslöcher von Kerberos stopfte und
die letzte Veröffentlichung des 3.X-Zweiges
darstellte.Eine weitere Aufspaltung, aus dem der 4.X-STABLE-Zweig
hervorging, erfolgte am 13. März 2000.
Bisher gab es mehrere Veröffentlichungen
aus diesem Zweig: 4.0-RELEASE erschien im März 2000.
Das letzte &rel2.current;-RELEASE erschien im
&rel2.current.date;.Das lang erwartete 5.0-RELEASE wurde am
19. Januar 2003 veröffentlicht. Nach nahezu
drei Jahren Entwicklungszeit brachte dieses Release die
Unterstützung für Mehrprozessor-Systeme sowie
für Multithreading. Mit diesem Release lief &os;
erstmalig auf den Plattformen &ultrasparc;
und ia64. Im Juni 2003 folgte 5.1-RELEASE.
Das letzte 5.X-Release aus dem CURRENT-Zweig war
5.2.1-RELEASE, das im Februar 2004 veröffentlicht
wurde.Der Zweig RELENG_5 wurde im August 2004 erzeugt. Das
erste Release dieses Zweiges ist 5.3-RELEASE. Dabei handelt
es sich auch um das erste 5-STABLE-Release. Das aktuelle
&rel.current;-RELEASE (dem weitere RELENG_5-Versionen folgen
werden) erschien im &rel.current.date;.Zurzeit werden Projekte mit langem Entwicklungshorizont
im Zweig 6.0-CURRENT verfolgt und Schnappschüsse
von 6.0 auf CD-ROM (und natürlich im Netz) werden bei
fortlaufender Entwicklung auf dem
Snapshot-Server zur Verfügung gestellt.JordanHubbardBeigesteuert von Ziele des FreeBSD-ProjektsFreeBSD-ProjektZieleDas FreeBSD-Projekt stellt Software her, die ohne
Einschränkungen für beliebige Zwecke eingesetzt
werden kann. Viele
von uns haben beträchtlich in Quellcode und Projekt
investiert und hätten sicher nichts dagegen, hin und
wieder ein wenig finanziellen Ausgleich dafür zu
bekommen. Aber in keinem Fall bestehen wir darauf. Wir
glauben unsere erste und wichtigste Mission ist
es, Software für jeden Interessierten und zu jedem Zweck
zur Verfügung zu stellen, damit die Software
größtmögliche Verbreitung erlangt und
größtmöglichen Nutzen stiftet. Das ist,
glaube ich, eines der grundlegenden Ziele freier Software,
welche wir mit größter Begeisterung
unterstützen.GNU General Public License (GPL)GNU Lesser General Public License (LGPL)BSD CopyrightDer Code in unserem Quellbaum, der unter die General
Public License (GPL) oder die Library General Public License
(LGPL) fällt, stellt geringfügig mehr Bedingungen.
Das aber vielmehr im Sinne von eingefordertem Zugriff, als das
übliche Gegenteil der Beschränkungen. Aufgrund
zusätzlicher Abhängigkeiten, die sich durch die
Verwendung von GPL-Software bei kommerziellem Gebrauch
ergeben, bevorzugen wir daher Software unter dem
transparenteren BSD-Copyright, wo immer es angebracht ist.SatoshiAsamiBeigesteuert von Das Entwicklungsmodell von FreeBSDFreeBSD-ProjektEntwicklungsmodellDie Entwicklung von FreeBSD ist ein offener und
vielseitiger Prozess. FreeBSD besteht aus Beisteuerungen
von Hunderten Leuten rund um die Welt, wie Sie aus der
Liste
der Beitragenden ersehen können. Die vielen
Entwickler können aufgrund der Entwicklungs-Infrastruktur
von &os; über das Internet zusammenarbeiten. Wir suchen
ständig nach neuen Entwicklern, Ideen und jenen, die sich
in das Projekt tiefer einbringen wollen. Nehmen Sie einfach
auf der Mailingliste &a.hackers; Kontakt mit uns auf.
Die Mailingliste &a.announce; steht für wichtige
Ankündigungen, die alle FreeBSD-Benutzer betreffen,
zur Verfügung.Unabhängig davon ob Sie alleine oder mit
anderen eng zusammen arbeiten, enthält die folgende
Aufstellung nützliche Informationen über das
FreeBSD-Projekt und dessen Entwicklungsabläufe.Das CVS-RepositoryCVSRepositoryConcurrent-Versions-SystemCVSDer Hauptquellbaum von FreeBSD wird mit CVS gepflegt, einem
+ url="http://ximbiot.com/cvs/wiki/">CVS gepflegt, einem
frei erhältlichen Versionskontrollsystem, welches
mit FreeBSD geliefert wird. Das Haupt- CVS-Repository
läuft auf einer Maschine in
Santa Clara, Kalifornien, USA. Von dort wird es auf
zahlreiche Server in aller Welt gespiegelt. Der
CVS-Quellbaum, der die Zweige
-CURRENT und
-STABLE enthält,
kann einfach auf Ihr eigenes System gespiegelt
werden. Näheres dazu können Sie im Handbuch unter
Synchronisation der Quellen
in Erfahrung bringen.Die Committer-ListeCommitterDie Committer sind Personen
mit Schreibzugriff auf den
CVS-Quellbaum (der Begriff Committer
stammt vom &man.cvs.1;-Befehl commit,
der zum Einspeisen von Änderungen ins Repository
gebraucht wird). Der beste Weg, Vorschläge zur
Prüfung durch die Mitglieder der Committer-Liste
einzureichen, bietet der Befehl &man.send-pr.1;. Sollte es
unerwartete Probleme mit diesem Verfahren geben, besteht
immer noch die Möglichkeit eine E-Mail an die Liste
&a.committers; zu schicken.Das FreeeBSD-Core-TeamCore-TeamWürde man das FreeBSD-Projekt mit einem
Unternehmen vergleichen, so wäre das
FreeBSD-Core-Team das
Gegenstück zum Vorstand. Die Hauptaufgabe des
Core-Teams ist es, das Projekt als Ganzes in gesunder
Verfassung zu halten und die weitere Entwicklung in die
richtige Bahn zu lenken. Das Anwerben leidenschaftlicher
und verantwortungsbewusster Entwickler ist eine
Aufgabe des Core-Team, genauso wie die Rekrutierung
neuer Mitglieder für das Core-Team, im Falle, dass
Altmitglieder aus dem Projekt aussteigen. Das
derzeitige Core-Team wurde im Juni 2004 aus einem Kreis
kandidierender Committer gewählt. Wahlen
werden alle zwei Jahre abgehalten.Einige Core-Team-Mitglieder haben auch spezielle
Verantwortungsbereiche. Das bedeutet, sie haben sich
darauf festgelegt, sicherzustellen, dass ein
größerer Teil des Systems so funktioniert wie
ausgewiesen. Eine vollständige Liste an FreeBSD
beteiligter Entwickler und ihrer Verantwortungsbereiche
kann in der Liste der
Beitragenden eingesehen werden.Die Mehrzahl der Mitglieder des Core-Teams sind
Freiwillige in Bezug auf die FreeBSD-Entwicklung und
profitieren nicht finanziell vom Projekt. Daher
sollte Verpflichtung nicht als
garantierter Support fehlinterpretiert
werden. Der oben angeführte Vergleich mit einem
Vorstand hinkt und es wäre angebrachter zu
erwähnen, dass diese Leute – wider besseres
Wissen – ihr eigenes Leben für FreeBSD
aufgegeben haben!Weitere BeitragendeBeitragendeDie größte Entwicklergruppe sind
nicht zuletzt die Anwender selbst, die
Rückmeldungen und Fehlerbehebungen in einem anhaltend
hohen Maße an uns senden. Der bevorzugte Weg an
dem weniger zentralisierten Bereich der
FreeBSD-Entwicklung teilzuhaben, ist die
Möglichkeit sich bei der Liste &a.hackers;
anzumelden. Weitere Informationen über die
verschiedenen FreeBSD-Mailinglisten erhalten Sie in
.Die Liste
der zu FreeBSD Beitragenden ist eine
lange und wachsende. Also warum nicht selbst dort
stehen, indem Sie gleich persönlich etwas zu
FreeBSD beitragen?Quellcode ist nicht der einzige Weg, etwas zum
Projekt beizusteuern. Eine genauere Übersicht
über offene Aufgaben finden Sie auf der FreeBSD-Web-Site.Zusammengefasst bildet unser Entwicklungsmodell einen
losen Verbund konzentrischer Kreise. Das zentralisierte
Modell ist auf die Bedürfnisse der
Anwender zugeschnitten, mit der einfachen
Möglichkeit eine zentrale Code-Basis zu verfolgen und
möglichen neuen Beitragenden nicht das Leben zu
erschweren! Unser Ziel ist es, ein stabiles Betriebssystem mit
einer großen Zahl passender
Programme zu bieten, die der Anwender
leicht installieren und anwenden kann. Und dieses Modell
funktioniert für diese Aufgabe ziemlich gut.Das Einzige was wir von möglichen neuen Mitgliedern
fordern, ist die gleiche Hingabe, mit der die jetzigen
Mitglieder am dauerhaften Erfolg arbeiten!Das aktuelle FreeBSD-ReleaseNetBSDOpenBSD386BSDFree Software FoundationU.C. BerkeleyComputer Systems Research Group (CSRG)FreeBSD ist ein (mit vollem Quellcode und ein frei
erhältliches) auf 4.4BSD-Lite-basierendes Release
für Intel &i386;, &i486;, &pentium;,
&pentium; Pro,
&celeron;,
&pentium; II,
&pentium; III,
&pentium; 4 (oder ein dazu kompatibler Prozessor),
&xeon;, DEC Alpha und
Sun &ultrasparc; Systeme.
Es stützt sich zum größten
Teil auf Software der Computer Systems Research Group (CSRG)
der Universität von Kalifornien in Berkeley mit einigen
Verbesserungen aus NetBSD, OpenBSD, 386BSD und der Free
Software Foundation.Seit unserem FreeBSD 2.0 vom Ende 1994, hat sich
Leistung, Funktionsvielfalt und Stabilität dramatisch
verbessert.
Die größte Änderung erfuhr das virtuelle
Speichermanagement durch eine Kopplung von virtuellem Speicher
und dem Buffer-Cache, das nicht nur die Leistung
steigert, sondern auch den Hauptspeicherverbrauch reduziert
und ein 5 MB-System zu einem nutzbaren Minimal-System
verhilft. Weitere Verbesserungen sind volle NIS-Client- und
Server-Unterstützung, T/TCP, Dial-On-Demand-PPP,
integriertes DHCP, ein verbessertes SCSI-Subsystem,
ISDN-Support, Unterstützung für ATM-, FDDI-, Fast-
und Gigabit-Ethernet-Karten (1000 Mbit), verbesserter
Support der neusten Adaptec-Controller und tausende
Fehlerkorrekturen.Zusätzlich zur Standard-Distribution bietet FreeBSD
eine Sammlung von portierter Software mit tausenden begehrten
Programmen. Zum Verfassungszeitpunkt waren über
&os.numports; Anwendungen in der Ports-Sammlung! Das Spektrum
der Ports-Sammlung reicht von HTTP-Servern über Spiele,
Programmiersprachen, Editoren und so ziemlich allem
dazwischen. Die gesamte Ports-Sammlung benötigt
&ports.size; an Speicherplatz, wobei jeder Port anhand eines
Deltas zu den Quellen angegeben wird. Das
macht es für uns erheblich leichter, Ports zu
aktualisieren und es verringert den Plattenbedarf im Vergleich
zur älteren 1.0-Port-Sammlung. Um ein Port zu
übersetzen, müssen Sie einfach ins Verzeichnis des
Programms wechseln und ein make install
absetzen. Den Rest erledigt das System. Die originalen
Quellen jedes zu installierenden Port werden dynamisch von
CD-ROM oder einem FTP-Server bezogen. Es reicht also für
genügend Plattenplatz zu sorgen, um die gewünschten
Ports zu erstellen. Allen, die Ports nicht selbst kompilieren
wollen: Es gibt zu fast jedem Port ein vorkompiliertes
Paket, das einfach mit dem Befehl (pkg_add)
installiert wird. Pakete und Ports werden in
beschrieben.Eine Reihe von weiteren Dokumenten, die sich als hilfreich
bei der Installation oder dem Arbeiten mit FreeBSD erweisen
könnten, liegen auf neueren &os;-Systemen im Verzeichnis
/usr/share/doc. Die lokal installierten
Anleitungen lassen sich mit jedem HTML-fähigen Browser
unter folgenden Adressen betrachten:Das FreeBSD-Handbuch/usr/share/doc/handbook/index.htmlDie FreeBSD-FAQ/usr/share/doc/faq/index.htmlEs besteht auch die Möglichkeit, sich die jeweils
aktuellste Version der Referenzdokumente unter anzusehen.
diff --git a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
index 3b51c9f5ce..10b3c96727 100644
--- a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
@@ -1,1845 +1,1845 @@
JimMockErweitert und neu strukturiert von JakeHambyUrsprünglich veröffentlicht von RobertAltschaffelÜbersetzt von Konfiguration des &os;-KernelsÜbersichtKernelErstellen eines angepassten KernelsDer Kernel ist das Herz des &os; Betriebssystems. Er ist
verantwortlich für die Speicherverwaltung, das Durchsetzen
von Sicherheitsdirektiven, Netzwerkfähigkeit, Festplattenzugriffen
und vieles mehr. Obwohl &os; es immer mehr ermöglicht, dynamisch
konfiguriert zu werden, ist es ab und an notwendig, den Kernel
neu zu konfigurieren und zu kompilieren.Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes
wissen:Wieso Sie Ihren Kernel neu konfigurieren sollten.Wie Sie eine Kernelkonfigurationsdatei erstellen oder
verändern.Wie Sie mit der Konfigurationsdatei einen neuen Kernel
kompilieren.Wie Sie den neuen Kernel installieren.Wie sie die benötigten Einträge in
/dev erstellen.Was zu tun ist, falls etwas schiefgeht.Alle Kommandos, aus den Beispielen dieses Kapitels,
müssen mit root-Rechten
ausgeführt werden.Wieso einen eigenen Kernel bauen?Traditionell besaß &os; einen monolithischen Kernel. Das
bedeutet, dass der Kernel ein einziges großes Programm war,
das eine bestimmte Auswahl an Hardware unterstützte.
Also musste man immer, wenn man das Kernelverhalten verändern
wollte, zum Beispiel wenn man neue Hardware hinzufügen wollte,
einen neuen Kernel kompilieren, installieren und das System neu
starten.Heutzutage vertritt &os; immer mehr die Idee eines modularen
Kernels, bei dem bestimmte Funktionen, je nach Bedarf, als Module
geladen werden können. Ein bekanntes Beispiel dafür sind
die Module für die PCMCIA-Karten in Laptops, die zum Starten
nicht zwingend benötigt und erst bei Bedarf geladen
werden.Trotzdem ist es noch immer nötig, einige statische
Kernelkonfigurationen durchzuführen. In einigen Fällen
ist die Funktion zu systemnah, um durch ein Modul zu realisiert werden.
In anderen Fällen hat eventuell noch niemand ein ladbares
Kernelmodul für diese Funktion geschrieben.Das Erstellen eines angepaßten Kernels ist eines der
wichtigsten Rituale, das nahezu jeder BSD-Benutzer erdulden
muss. Obwohl dieser Prozess recht viel Zeit in Anspruch nimmt,
bringt er doch viele Vorteile für Ihr &os; System. Der
GENERIC-Kernel muss eine Vielzahl
unterschiedlicher Hardware unterstützen, im Gegensatz dazu
unterstützt ein angepasster Kernel nur
Ihre Hardware. Dies hat einige Vorteile:Schnellerer Bootvorgang. Da der Kernel nur
nach der Hardware des Systems sucht, kann sich
die Zeit für einen Systemstart erheblich
verkürzen.Geringerer Speicherbedarf. Ein eigener Kernel
benötigt in der Regel weniger Speicher als ein
GENERIC-Kernel, was vorteilhaft
ist, da der Kernel immer im RAM verweilt. Insbesondere
profitieren Systeme mit wenig RAM davon.Zusätzliche Hardwareunterstützung. Ein
angepasster Kernel kann Unterstützung für
Geräte wie Soundkarten bieten, die im
GENERIC-Kernel nicht enthalten
sind.Erstellen und Installation eines angepassten
KernelsKernelErstellen und InstallationZuerst erläutern wir die Verzeichnisstruktur, in der der
Kernel gebaut wird. Die im Folgenden genannten Verzeichnisse sind
relativ zum Verzeichnis
/usr/src/sys
angegeben, das Sie auch über den Pfad
/sys erreichen können. Es existieren
mehrere Unterverzeichnisse, die bestimmte Teile des Kernels
darstellen, aber die für uns wichtigsten sind
arch/conf, in dem
Sie die Konfigurationsdatei für den angepassten Kernel
erstellen werden, und compile, in dem der Kernel
gebaut wird. arch kann entweder
i386, alpha,
amd64, ia64,
powerpc, sparc64 oder
pc98 (eine in Japan beliebte Architektur) sein.
Alles in diesen Verzeichnissen ist nur für die jeweilige
Architektur relevant. Der Rest des Codes ist
maschinenunabhängig und für alle
Plattformen, auf die &os; portiert werden kann, gleich.
Beachten Sie die Verzeichnisstruktur, die jedem unterstützten
Gerät, jedem Dateisystem und jeder Option ein eigenes
Verzeichnis zuordnet. Vor &os; 5.X lief &os; nur
auf Systemen mit i386-,
alpha- oder
pc98-Architektur.Die Beispiele in diesem Kapitel verwenden ein
i386-System. Wenn Sie ein anderes System benutzen,
passen Sie bitte die Pfade entsprechend der Architektur
des Systems an.Falls Sie kein /usr/src/sys Verzeichnis
vorfinden, so sind die Kernelquellen nicht installiert. Der
einfachste Weg dies nachzuholen, ist
sysinstall (vor &os; 5.2
/stand/sysinstall) als root
auszuführen. Dort wählen Sie
Configure, dann
Distributions, dann
src und schließlich
sys. Wenn Sie eine
Aversion gegen sysinstall haben und eine
offizielle &os; CD-ROM besitzen, können Sie
die Kernelquellen auch von der Kommandozeile installieren:&prompt.root; mount /cdrom
&prompt.root; mkdir -p /usr/src/sys
&prompt.root; ln -s /usr/src/sys /sys
&prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf -Als nächstes wechseln sie in das Verzeichnis
arch/conf
und kopieren die Konfigurationsdatei
GENERIC in eine Datei, die den
Namen Ihres Kernels trägt. Zum Beispiel:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC MYKERNELTraditionell ist der Name des Kernels immer in Großbuchstaben.
Wenn Sie mehrere &os; mit unterschiedlicher Hardware warten, ist
es nützlich, wenn Sie Konfigurationsdatei nach dem Hostnamen der
Maschinen benennen. Im Beispiel verwenden wir den Namen
MYKERNEL.Es ist nicht zu empfehlen die Konfigurationsdatei direkt
unterhalb von /usr/src abzuspeichern.
Wenn Sie Probleme haben, könnten Sie der Versuchung
erliegen, /usr/src
einfach zu löschen und wieder von vorne anzufangen.
Wenn Sie so vorgehen, werden Sie kurz darauf merken,
dass Sie soeben Ihre Kernelkonfigurationsdatei
gelöscht haben.Editieren Sie immer eine Kopie von GENERIC.
Änderungen an GENERIC können
verloren gehen, wenn der
Quellbaum aktualisiert
wird.Sie sollten die Konfigurationsdatei an anderer Stelle
aufheben und im Verzeichnis
i386
einen Link auf die Datei erstellen.Beispiel:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; mkdir /root/kernels
&prompt.root; cp GENERIC /root/kernels/MYKERNEL
&prompt.root; ln -s /root/kernels/MYKERNELJetzt editieren Sie MYKERNEL mit einem
Texteditor Ihres Vertrauens. Wenn Sie gerade neu anfangen, ist Ihnen
vielleicht nur der vi Editor bekannt,
der allerdings zu komplex ist, um hier erklärt zu werden.
Er wird aber in vielen Büchern aus der
Bibliographie gut erklärt. &os; bietet aber auch
einen leichter zu benutzenden Editor, den ee
an, den Sie, wenn Sie Anfänger sind, benutzen sollten. Sie
können die Kommentare am Anfang der Konfigurationsdatei
ändern, um die Änderungen gegenüber
GENERIC zu dokumentieren.SunOSFalls Sie schon einmal einen Kernel unter &sunos; oder einem
anderen BSD kompiliert haben, werden Sie diese Konfigurationsdatei
bereits kennen. Wenn Sie mit einem anderen Betriebssystem wie DOS
vertraut sind, könnte die GENERIC
Konfigurationsdatei Sie verschrecken. In diesen Fall sollten Sie
den Beschreibungen im Abschnitt über die
Konfigurationsdatei
langsam und vorsichtig folgen.Wenn Sie die &os; Quellen
synchronisieren, sollten Sie immer, bevor Sie etwas
verändern, /usr/src/UPDATING
durchlesen. Diese Datei enthält alle wichtigen Informationen,
die Sie beim Aktualisieren beachten müssen.
Da /usr/src/UPDATING immer zu Ihrer Version
der &os; Quellen passt, sind die Informationen dort genauer,
als in diesem Handbuch.Nun müssen Sie die Kernelquellen kompilieren. Dazu gibt es
zwei Verfahren. Welches Verfahren Sie nehmen, hängt davon ab,
warum Sie den Kernel neu bauen und welche Version von &os; Sie
verwenden.Wenn Sie nur die Kernelquellen
installiert haben, benutzen Sie das Verfahren 1.Wenn Sie eine &os; Version vor 4.0 benutzen und
nicht auf &os; 4.0 oder höher mit
make buildworld migrieren, benutzen Sie
Verfahren 1.Wenn Sie einen neuen Kernel bauen wollen, ohne dabei den
Quellcode zu aktualisieren, weil Sie vielleicht nur eine neue
Option wie IPFIREWALL hinzugefügt haben,
können Sie jedes der Verfahren einsetzen.Wenn Sie als Teil eines make buildworld den
Kernel aktualisieren, benutzen Sie das Verfahren 2.cvsupCTMCVSanonymousIst der Quellbaum nach dem letzten erfolgreichen Bau
(buildworld,
installworld) unverändert,
das heißt Sie haben weder CVSup,
CTM noch
anoncvs laufen lassen, dann können
Sie die Sequenz config,
make depend, make,
make install benutzen.Verfahren 1. Bau eines Kernels mit der
herkömmlichen MethodeGenerieren Sie die Kernel Quellen mit &man.config.8;.&prompt.root; /usr/sbin/config MYKERNELDas vorige Kommando (&man.config.8;) gibt das
Bauverzeichnis aus. Wechseln Sie jetzt in das
Bauverzeichnis:&prompt.root; cd ../compile/MYKERNELWenn Sie eine &os;-Version vor 5.0 verwenden,
wechseln Sie wie folgt in das Bauverzeichnis:&prompt.root; cd ../../compile/MYKERNELKompilieren Sie den Kernel.&prompt.root; make depend
&prompt.root; makeInstallieren Sie den neuen Kernel.&prompt.root; make installVerfahren 2. Bau eines Kernels mit der neuen
MethodeWechseln Sie in das usr/src
Verzeichnis.&prompt.root; cd /usr/srcKompilieren Sie den Kernel.&prompt.root; make buildkernel KERNCONF=MYKERNELInstallieren Sie den neuen Kernel.&prompt.root; make installkernel KERNCONF=MYKERNELWenn Sie den Kernel auf diese Weise bauen wollen,
benötigen sie den kompletten Quellcodebaum. Haben
Sie nur die Kernelquellen installiert, müssen Sie die
weiter oben beschriebene (traditionelle) Methode verwenden.In der Voreinstellung werden beim Bau eines angepassten
Kernels stets alle Kernelmodule neu gebaut.
Wollen Sie Ihren Kernel schneller bauen oder nur bestimmte
Module bauen, sollten Sie /etc/make.conf
anpassen, bevor Sie Ihren Kernel bauen:MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfsDurch diese Variable werden nur bestimmte Module (statt alle)
Weitere Variablen, die beim Bau eines Kernels von Interesse sein
könnten, finden Sie in &man.make.conf.5;./boot/kernel.oldDer neue Kernel wird im Verzeichnis
/boot/kernel.old unter
/boot/kernel/kernel abgelegt, der alte
Kernel wird nach /boot/kernel.old/kernel
verschoben. Um den neuen Kernel zu benutzen, sollten Sie die
Maschine jetzt neu starten. Falls etwas schief geht, sehen Sie
bitte in dem Abschnitt zur
Fehlersuche am Ende dieses Kapitels nach. Dort sollten Sie
auch unbedingt den Abschnitt lesen, der erklärt, was zu tun
ist, wenn der neue Kernel nicht
startet.Vor &os; 5.X wurde der Kernel nach
/kernel und Module in das
Verzeichnis /modules
installiert. Der alte Kernel wurde nach
/kernel.old gesichert.
Im Verzeichnis /boot werden andere
Dateien, die zum Systemstart benötigt werden, wie der
Boot-Loader (&man.loader.8;) und dessen Konfiguration, abgelegt.
Module von Fremdherstellern oder angepasste Module
werden in /modules
abgelegt. Beachten Sie bitte, dass diese Module immer
zu dem verwendeten Kernel passen müssen. Module,
die nicht zu dem verwendeten Kernel passen,
gefährden die Stabilität des Systems.Wenn Sie neue Geräte, wie Soundkarten,
hinzugefügt haben und &os; 4.X oder eine
frühere Version benutzen, müssen Sie unter
Umständen Gerätedateien in
/dev erstellen,
bevor Sie die Geräte benutzen können.
Weitere Informationen finden Sie in
Erstellen von
Gerätedateien
später in diesem Kapitel.JoelDahlAuf &os; 5.X angepasst von Die KernelkonfigurationsdateiKernelNOTESKernelLINTNOTESLINTKernelKonfigurationsdateiDas Format der Konfigurationsdatei ist recht einfach. Jede Zeile
enthält ein Schlüsselwort und ein oder mehrere Argumente.
Eine Zeile, die von einen # eingeleitet wird, gilt
als Kommentar und wird ignoriert. Die folgenden Abschnitte
beschreiben jedes Schlüsselwort in der Reihenfolge, in der es
in GENERIC auftaucht.
Eine ausführliche Liste aller
Optionen mit detaillierten Erklärungen finden Sie in der
Konfigurationsdatei NOTES, die sich in demselben
Verzeichnis wie GENERIC befindet.
Von der Architektur unabhängige Optionen sind in
der Datei /usr/src/sys/conf/NOTES
aufgeführt.Unter &os; 4.X existiert die Datei
NOTES nicht. Die Optionen und
Geräte aus GENERIC werden
in der Datei LINT beschrieben.
Unter &os; 4.X hatte die Datei LINT
zwei Funktionen: Sie diente als Referenz zur Auswahl
von Optionen für einen angepassten Kernel
und als Beispiel für eine Kernelkonfiguration,
in der so viele Optionen wie möglich von den
Vorgabewerten abwichen. Zum Testen von neuen Quellen
oder Änderungen, die vielleicht mit anderen Teilen
des Kernels Probleme bereiten, war und ist eine solche
Konfiguration sehr hilfreich. Allerdings hat sich die
Kernelkonfiguration in &os; 5.X stark geändert.
Treiberoptionen wurden beispielsweise in einer Hints-Datei
gespeichert und aus LINT entfernt.
Dadurch wurde es möglich, Treiberoptionen zu
ändern und während des Systemstarts zu laden.
Deshalb wurde unter anderem die Datei
LINT in NOTES
umbenannt und als Referenz für Benutzer
beibehalten.Unter &os; 5.X können Sie immer noch eine
baubare LINT-Datei mit dem nachstehenden
Kommando erzeugen:&prompt.root; cd /usr/src/sys/i386/conf && make LINTKernelKonfigurationsdateiDas folgende Beispiel zeigt eine GENERIC
Konfigurationsdatei, die, wo notwendig, zusätzliche Kommentare
enthält. Sie sollte der Datei
/usr/src/sys/i386/conf/GENERIC
auf Ihrem System sehr ähnlich sein.Kerneloptionenmachinemachine i386Gibt die Architektur der Maschine an und muss entweder
alpha, amd64,
i386, ia64,
pc98, powerpc
oder sparc64 sein.Kerneloptionencpucpu I486_CPU
cpu I586_CPU
cpu I686_CPUDie vorigen Zeilen geben den Typ der CPU Ihres Systems an. Sie
können mehrere CPU Typen angeben, wenn Sie sich zum Beispiel
nicht sicher sind, ob Sie I586_CPU oder
I686_CPU benutzen sollen. Für einen
angepassten Kernel ist es aber am besten, wenn Sie nur die CPU
angeben, die sich in der Maschine befindet. Der CPU-Typ wird
in den Boot-Meldungen ausgegeben, die in der Datei
/var/run/dmesg.boot gespeichert sind.KerneloptionenCPU-TypIn den Quellen von &os; ist die Option
I386_CPU noch enthalten, doch ist die
Option sowohl in -STABLE wie auch in -CURRENT deaktiviert.
Das heißt Sie haben die folgenden Möglichkeiten,
&os; auf einem 386-System zu installieren:Installieren Sie ein älteres &os;-Release
und aktualisieren Sie das System mit den Quellen
wie in beschrieben.Bauen Sie das Userland und den Kernel auf einer
neueren Maschine und installieren Sie die übersetzten
Dateien aus /usr/obj. Weitere
Details entnehmen Sie bitte .Bauen Sie Ihr eigenes FreeBSD-Release, dessen
Installations-CD einen Kernel enthält der
die Option I386_CPU unterstützt.Die einfachste Möglichkeit ist sicher die erste.
Sie benötigen dazu allerdings sehr viel Plattenplatz,
der auf 386-Systemen vielleicht nicht vorhanden ist.Kerneloptionenidentident GENERICGibt den Namen Ihres Kernels an. Hier sollten Sie den Namen
einsetzen, den Sie Ihrer Konfigurationsdatei gegeben haben. In
unserem Beispiel ist das MYKERNEL. Der Wert, den
Sie ident zuweisen, wird beim Booten des neuen
Kernels ausgegeben. Wenn Sie den Kernel von Ihrem normal verwendeten
Kernel unterscheiden wollen, weil Sie zum Beispiel einen Kernel zum
Testen bauen, ist es nützlich, hier einen anderen Namen
anzugeben.#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.Ab &os; 5.X werden Geräte mit &man.device.hints.5;
konfiguriert. In der Voreinstellung überprüft
&man.loader.8; beim Systemstart die Datei
/boot/device.hints. Die Option
hints erlaubt es, die Gerätekonfiguration
statisch in den Kernel einzubinden, sodass die Datei
device.hints in /boot
nicht benötigt wird.#makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbolsDer normale Bauprozess von FreeBSD erstellt einen Kernel,
der keine Debugging-Informationen enthält. Nachdem der
Kernel gebunden ist, werden die meisten Symbole entfernt,
um bei der Installation Platz zu sparen. Wenn Sie Kernel
auf dem -CURRENT-Zweig testen oder eigene Änderungen
im Kernel vornehmen, sollten Sie vielleicht diese Zeile
aktivieren. &man.gcc.1; wird dann mit der Option
aufgerufen und erzeugt die
Debugging-Informationen. Erstellen Sie den Kernel mit der
herkömmlichen Methode (siehe
), erreichen Sie
dasselbe, wenn Sie &man.config.8; mit der Option
aufrufen.options SCHED_4BSD # 4BSD schedulerDer herkömmliche Scheduler von &os;. Abhängig
von der Last auf Ihrem System erhalten Sie eine höhere
Leistung, wenn Sie den neuen ULE-Scheduler verwenden.
Der ULE-Scheduler wurde für Mehrprozessorsysteme
entworfen, arbeitet aber auch gut auf Einprozessorsystemen.
Wenn Sie den neuen Scheduler ausprobieren wollen, ersetzen
Sie in der Konfigurationsdatei SCHED_4BSD
durch SCHED_ULE.options INET # InterNETworkingNetzwerkunterstützung. Auch wenn Sie nicht planen, den
Rechner mit einem Netzwerk zu verbinden, sollten Sie diese Option
aktiviert lassen. Die meisten Programme sind mindestens auf die
Loopback Unterstützung (Verbindungen mit sich selbst)
angewiesen. Damit ist diese Option im Endeffekt
notwendig.options INET6 # IPv6 communications protocolsAktiviert die Unterstützung für das IPv6
Protokoll.options FFS # Berkeley Fast FilesystemDas Dateisystem für Festplatten. Wenn Sie von einer
Festplatte booten wollen, lassen Sie diese Option aktiviert.options SOFTUPDATES # Enable FFS Soft Updates supportMit dieser Option wird die Unterstützung für Soft
Updates, die Schreibzugriffe beschleunigen, in den Kernel
eingebunden. Auch wenn die Funktion im Kernel ist, muss
sie für einzelne Dateisysteme explizit aktiviert werden.
Überprüfen Sie mit &man.mount.8;, ob die Dateisysteme
Soft Updates benutzen. Wenn die Option
soft-updates nicht aktiviert ist, können
Sie die Option nachträglich mit &man.tunefs.8; aktivieren.
Für neue Dateisysteme können Sie Option beim Anlegen mit
&man.newfs.8; aktivieren.options UFS_ACL # Support for access control listsDiese Option, die es erst ab &os; 5.0 gibt, aktiviert
Zugriffskontrolllisten (ACL). Die
ACLs hängen von
erweiterten Attributen und UFS2 ab,
eine genaue Beschreibung finden
Sie in . Die Zugriffskontrolllisten sind in
der Voreinstellung aktiviert und sollten auch nicht deaktiviert
werden, wenn Sie schon einmal auf einem Dateisystem verwendet wurden,
da dies die Zugriffsrechte auf Dateien in unvorhersehbarer Art und
Weise ändern kann.options UFS_DIRHASH # Improve performance on big directoriesDiese Option steigert die Geschwindigkeit von Plattenzugriffen
auf großen Verzeichnissen. Dadurch verbraucht das System etwas
mehr Speicher als vorher. Für stark beschäftigte Server
oder Arbeitsplatzrechner sollten Sie diese Option aktiviert lassen.
Auf kleineren Systemen, bei denen Speicher eine kostbare Ressource
darstellt oder Systemen, auf denen die Geschwindigkeit der
Plattenzugriffe nicht wichtig ist, wie Firewalls, können Sie
diese Option abstellen.options MD_ROOT # MD is a potential root deviceDiese Option aktiviert die Unterstüztung für
ein Root-Dateisystem auf einem speicherbasierten Laufwerk
(RAM-Disk).KerneloptionenNFSKerneloptionenNFS_ROOToptions NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENTDas Network Filesystem. Wenn Sie keine Partitionen von einem
&unix; File-Server über TCP/IP einhängen wollen, können
Sie diese Zeile auskommentieren.KerneloptionenMSDOSFSoptions MSDOSFS # MSDOS FilesystemDas &ms-dos; Dateisystem. Sie können diese Zeile
auskommentieren, wenn Sie nicht vorhaben, eine DOS-Partition
beim Booten einzuhängen. Das nötige Modul wird
ansonsten automatisch geladen, wenn Sie das erste Mal eine
DOS-Partition einhängen. Außerdem können
Sie mit den ausgezeichneten
emulators/mtools aus
der Ports-Sammlung auf DOS-Floppies zugreifen, ohne diese
an- und abhängen zu müssen (MSDOSFS
wird in diesem Fall nicht benötigt).options CD9660 # ISO 9660 FilesystemDas ISO 9660 Dateisystem für CD-ROMs. Sie können diese
Zeile auskommentieren, wenn Sie kein CD-ROM-Laufwerk besitzen oder
nur ab und an CDs einhängen. Das Modul wird automatisch
geladen, sobald Sie das erste Mal eine CD einhängen. Für
Audio-CDs benötigen Sie dieses Dateisystem nicht.options PROCFS # Process filesystemDas Prozessdateisystem. Dies ist ein Pseudo-Dateisystem,
das auf /proc eingehangen wird und es Programmen
wie &man.ps.1; erlaubt, mehr Informationen über laufende Prozesse
auszugeben. Ab &os; 5.0 sollte PROCFS
nicht mehr benötigt werden, da die meisten Debug- und
Überwachungs-Werkzeuge nicht mehr darauf angewiesen sind.
Im Gegensatz zu &os; 4.X Systemen hängen neu
installierte &os; 5.X Systeme das Prozessdateisystem
nicht automatisch ein. In 6.X-CURRENT Kerneln wird zu
der Option PROCFS noch die Option
PSEUDOFS benötigt:options PSEUDOFS # Pseudo-filesystem frameworkPSEUDOFS steht unter &os; 4.X nicht
zur Verfügung.options GEOM_GPT # GUID Partition Tables.Diese Option ermöglicht eine große Anzahl
Partitionen auf einem einzelnen Laufwerk.options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]Stellt die Kompatibilität zu 4.3BSD sicher. Belassen Sie
diese Option, da sich manche Programme recht sonderbar verhalten
werden, wenn Sie diese auskommentieren.options COMPAT_FREEBSD4 # Compatible with FreeBSD4Mit &os; 5.X stellt diese Option auf &i386;- und
Alpha-Systemen sicher, dass Anwendungen, die auf älteren &os;
Versionen übersetzt wurden und alte Systemaufrufe verwenden,
noch lauffähig sind. Wir empfehlen, diese Option auf allen
&i386;- und Alpha-Systemen zu verwenden, auf denen vielleicht noch
ältere Anwendungen laufen sollen. Auf Plattformen, die erst ab
&os; 5.0 unterstützt werden (wie ia64 und &sparc;),
wird diese Option nicht benötigt.options SCSI_DELAY=15000 # Delay (in ms) before probing SCSIDies weist den Kernel an, 15 Sekunden zu warten, bevor er
anfängt nach SCSI-Geräten auf dem System zu suchen. Wenn
Sie nur IDE-Geräte besitzen, können Sie die Anweisung
ignorieren. Sie können versuchen, den Wert auf 5 Sekunden
senken, um den Startvorgang zu beschleunigen. Wenn
&os; dann Schwierigkeiten hat, Ihre SCSI-Geräte zu erkennen,
sollten Sie den Wert natürlich wieder erhöhen.options KTRACE # ktrace(1) supportDies schaltet die Kernel-Prozessverfolgung
(engl. kernel process tracing) ein,
die sehr nützlich bei der Fehlersuche ist.options SYSVSHM # SYSV-style shared memoryDiese Option aktiviert die Unterstützung für
System V Shared-Memory. Die XSHM-Erweiterung von X
benötigt diese Option und viele Graphik-Programme
werden die Erweiterung automatisch benutzen und schneller
laufen. Wenn Sie X benutzen, sollten Sie diese Option auf
jeden Fall aktivieren.options SYSVMSG # SYSV-style message queuesUnterstützung für System V Messages.
Diese Option vergrößert den Kernel nur um
einige hundert Bytes.options SYSVSEM # SYSV-style semaphoresUnterstützung für System V Semaphoren.
Dies wird selten gebraucht, vergrößert aber den
Kernel nur um einige hundert Bytes.Die Option des Kommandos
&man.ipcs.1; zeigt Programme an, die diese System V
Erweiterungen benutzen.options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensionsEchtzeit-Erweiterungen, die 1993 zu &posix;
hinzugefügt wurden. Bestimmte Programme wie
&staroffice; benutzen
diese Erweiterungen.options KBD_INSTALL_CDEV # install a CDEV entry in /devDiese Option erstellt für die Tastatur einen
Eintrag im Verzeichnis /dev.options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.Diese Option hilft bei der Fehlersuche, da sie leichter
zu lesende Registerinhalte ausgibt.options ADAPTIVE_GIANT # Giant mutex is adaptive.Giant ist der Name einer Sperre (Mutex) die viele
Kernel-Ressourcen schützt. Heutzutage ist Giant ein
unannehmbarer Engpass, der die Leistung eines Systems
beeinträchtigt. Daher wird Giant durch Sperren ersetzt,
die einzelne Ressourcen schützen. Die Option
ADAPTIVE_GIANT fügt Giant zu den
Sperren hinzu, auf die gewartet werden kann. Ein Thread,
der die Sperre Giant von einem anderen Thread benutzt
vorfindet, kann nun weiterlaufen und auf die Sperre Giant
warten. Früher wäre der Prozess in den schlafenden
Zustand (sleep) gewechselt
und hätte darauf warten müssen, dass er wieder
laufen kann. Wenn Sie sich nicht sicher sind, belassen
Sie diese Option.KerneloptionenSMPdevice apic # I/O APICDas apic-Gerält ermöglicht die Benutzung
des I/O APIC für die Interrupt-Auslieferung.
Das apic-Gerält kann mit Kerneln für
Einprozessorsysteme und Mehrprozessorsysteme benutzt
werden. Kernel für Mehrprozessorsysteme benötigen
diese Option zwingend. Die Unterstützung für
Mehrprozessorsysteme aktivieren Sie mit der Option
options SMP.device isaAlle von &os; unterstützten PCs benötigen diese
Zeile, entfernen Sie diese Zeile auch dann nicht, wenn Ihre
Hauptplatine keine ISA-Steckplätze hat.
&os; unterstützt den IBM PS/2 (Microchannel
Architektur) nur eingeschränkt. Weitere Informationen über
die Microchannel Unterstützung entnehmen Sie bitte
/usr/src/sys/i386/conf/NOTES.device eisaFügen Sie diese Zeile ein, wenn Sie ein EISA-Motherboard
besitzen. Dies aktiviert die Erkennung und Konfiguration von allen
Geräten auf dem EISA Bus.device pciWenn Sie ein PCI-Motherboard besitzen, fügen Sie diese Zeile
ein. Dies aktiviert die Erkennung von PCI-Karten und die PCI-ISA
bridge.# Floppy drives
device fdcDer Floppy-Controller.# ATA and ATAPI devices
device ataDieser Treiber unterstützt alle ATA und ATAPI Geräte.
Eine device ata Zeile reicht aus und der
Kernel wird auf modernen Maschinen alle PCI ATA/ATAPI Geräte
entdecken.device atadisk # ATA disk drivesFür ATA-Plattenlaufwerke brauchen Sie diese Zeile zusammen
mit device ata.device ataraid # ATA RAID drivesFür ATA-RAID brauchen Sie diese Zeile zusammen
mit device ata.
device atapicd # ATAPI CDROM drivesZusammen mit device ata wird dies für
ATAPI CD-ROM Laufwerke benötigt.device atapifd # ATAPI floppy drivesZusammen mit device ata wird dies für
ATAPI Floppy Laufwerke benötigt.device atapist # ATAPI tape drivesZusammen mit device ata wird dies für
ATAPI Bandlaufwerke benötigt.options ATA_STATIC_ID # Static device numberingErzwingt eine statische Gerätenummer für
den Controller; ohne diese Option werden die Nummern
dynamisch zugeteilt.# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
device ahd # AHA39320/29320 and onboard AIC79xx devices
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic family
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets)
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50SCSI-Controller. Kommentieren Sie alle Controller aus, die sich
nicht in Ihrem System befinden. Wenn Sie ein IDE-System besitzen,
können Sie alle Einträge entfernen.# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)SCSI Peripheriegeräte. Kommentieren Sie wieder alle
Geräte aus, die Sie nicht besitzen. Besitzer von IDE-Systemen
können alle Einträge entfernen.Der USB-&man.umass.4;-Treiber und einige andere
Treiber benutzen das SCSI-Subsystem obwohl sie keine
SCSI-Geräte sind. Belassen Sie die SCSI-Unterstützung
im Kernel, wenn Sie solche Treiber verwenden.# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAIDUnterstützte RAID Controller. Wenn Sie keinen der
aufgeführten Controller besitzen, kommentieren Sie die
Einträge aus oder entfernen sie.# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controllerDer Tastatur-Controller (atkbdc) ist für
die Ein- und Ausgabe von AT-Tastaturen und PS/2 Zeigegeräten (z.B.
einer Maus) verantwortlich. Dieser Controller wird vom
Tastaturtreiber (atkbd) und dem PS/2
Gerätetreiber (psm) benötigt.device atkbd # AT keyboardZusammen mit dem atkbdc Controller bietet der
atkbd Treiber Zugriff auf AT-Tastaturen.device psm # PS/2 mouseBenutzen Sie dieses Gerät, wenn Sie eine Maus mit PS/2
Anschluss besitzen.device vga # VGA video card driverDer Grafikkartentreiber.# splash screen/screen saver
device splash # Splash screen and screen saver supportZeigt einen Splash Screen beim Booten. Diese
Zeile wird auch von den Bildschirmschonern benötigt.
Unter &os; 4.X verwenden Sie bitte
pseudo-device splash.# syscons is the default console driver, resembling an SCO console
device scsc ist in der Voreinstellung der Treiber
für die Konsole, die der SCO-Konsole ähnelt. Da die
meisten bildschirmorientierten Programme auf die Konsole mit Hilfe
einer Datenbank wie termcap zugreifen, sollte es
keine Rolle spielen, ob Sie diesen Treiber oder
vt, den VT220 kompatiblen
Konsolentreiber einsetzen. Wenn Sie Probleme mit
bildschirmorientierten Anwendungen unter dieser Konsole haben, setzen
Sie beim Anmelden die Variable TERM auf den Wert
VT220.# Enable this for the pcvt (VT220 compatible) console driver
#device vt
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursorDer VT220 kompatible Konsolentreiber ist kompatibel zu VT100/102.
Auf einigen Laptops, die aufgrund der Hardware inkompatibel zum
sc Treiber sind, funktioniert dieser Treiber gut.
Beim Anmelden sollten Sie die Variable TERM auf den
Wert vt100 setzen. Dieser Treiber kann sich als
nützlich erweisen, wenn Sie sich über das Netzwerk auf
vielen verschiedenen Maschinen anmelden, da dort oft Einträge in
termcap oder terminfo
für das sc Gerät fehlen. Dagegen
sollte vt100 auf jeder Plattform unterstützt
werden.device agpFügen Sie diese Zeile ein, wenn Sie eine AGP-Karte
besitzen. Damit werden Motherboards mit AGP und AGP GART
unterstützt.# Floating point support - do not disable.
device npxnpx ist die Schnittstelle zur
Fließkomma-Einheit in &os;. Dies kann entweder ein
Coprozessor oder eine mathematische Software-Emulation sein. Die
Angabe dieser Option ist verpflichtend.APM# Power management support (see NOTES for more options)
#device apmUnterstützung zur Energieverwaltung. Diese
Option ist nützlich für Laptops, allerdings
ist sie in GENERIC ab &os; 5.X
deaktiviert.# Add suspend/resume support for the i8254.
device pmtimerZeitgeber für Ereignisse der Energieverwaltung
(APM und ACPI).# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) busPCMCIA Unterstützung. Wenn Sie einen Laptop benutzen,
brauchen Sie diese Zeile.# Serial (COM) ports
device sio # 8250, 16[45]50 based serial portsDie seriellen Schnittstellen, die in der &ms-dos;-
und &windows;-Welt COM
genannt werden.Wenn Sie ein internes Modem, das COM4
benutzt, besitzen und eine serielle Schnittstelle haben,
die auf COM2 liegt, müssen
Sie den IRQ des Modems auf 2 setzen (wegen undurchsichtigen
technischen Gründen ist IRQ2 gleich IRQ9). Wenn Sie
eine serielle Multiport-Karte besitzen, entnehmen Sie bitte
die Werte, die Sie in die Datei
/boot/device.hints einfügen
müssen, der Hilfeseite &man.sio.4;. Einige Graphikkarten,
besonders die auf S3-Chips basierten, benutzen IO-Adressen
der Form 0x*2e8 und manche billige
serielle Karten dekodieren den 16-Bit IO-Adressraum
nicht sauber. Dies führt zu Konflikten und blockiert
dann die COM4-Schnittstelle.Jeder seriellen Schnittstelle muss ein eigener IRQ zugewiesen
werden (wenn Sie eine Multiport-Karte verwenden, bei der das Teilen
von Interrupts unterstützt wird, muss das nicht der Fall
sein), daher können in der Voreinstellung
COM3 und COM4
nicht benutzt werden.# Parallel port
device ppcDie parallele Schnittstelle auf dem ISA Bus.device ppbus # Parallel port bus (required)Unterstützung für den Bus auf der parallelen
Schnittstelle.device lpt # PrinterUnterstützung für Drucker über die parallele
Schnittstelle.Sie brauchen jede der drei Zeilen, um die Unterstützung
für einen Drucker an der parallelen Schnittstelle zu
aktivieren.device plip # TCP/IP over parallelDer Treiber für das Netzwerkinterface über die
parallele Schnittstelle.device ppi # Parallel port interface deviceAllgemeine I/O (geek port) und IEEE1284 I/O
Unterstützung.#device vpo # Requires scbus and daZip LaufwerkDies aktiviert den Treiber für ein Iomega Zip Laufwerk.
Zusätzlich benötigen Sie noch die Unterstützung
für scbus und da. Die
beste Performance erzielen Sie, wenn Sie die Schnittstelle im EPP 1.9
Modus betreiben.#device pucAktivieren Sie diesen Treiber, wenn Sie eine serielle
oder parallele PCI-Karte besitzen, die vom Treiber
&man.puc.4; unterstützt wird.# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (Tulip)
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device ixgb # Intel PRO/10GbE Ethernet Card
device txp # 3Com 3cR990 (Typhoon)
device vx # 3Com 3c590, 3c595 (Vortex)Verschiedene Treiber für PCI-Netzwerkkarten. Geräte,
die sich nicht in Ihrem System befinden, können Sie entfernen oder
auskommentieren.# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus supportEinige PCI 10/100 Ethernet Netzwerkkarten, besonders die, die
MII-fähige Transceiver verwenden oder Transceiver-Steuerungen
implementieren, die ähnlich wie MII funktionieren,
benötigen die Unterstützung für den MII-Bus. Die
Zeile device miibus fügt dem Kernel die
Unterstützung für das allgemeine miibus API und allen
PHY-Treibern hinzu.device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device lge # Level 1 LXT1001 gigabit ethernet
device nge # NatSemi DP83820 gigabit ethernet
device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 EPIC)
device vge # VIA VT612x gigabit ethernet
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang, Cyclone)Treiber, die den MII Bus Controller Code benutzen.# ISA Ethernet NICs. pccard NICs included.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
device lnc # NE2100, NE32-VL Lance Ethernet cards
device sn # SMC's 9000 series of Ethernet chips
device xe # Xircom pccard Ethernet
# ISA devices that use the old ISA shims
#device leTreiber für ISA Ethernet Karten. Schauen Sie in
/usr/src/sys/i386/conf/NOTES
nach, um zu sehen, welche Karte von welchem Treiber
unterstützt wird.# Wireless NIC cards
device wlan # 802.11 support
device an # Aironet 4500/4800 802.11 wireless NICs.
device awi # BayStack 660 and others
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.Treiber für drahtlose Netzwerkkarten (WLAN).# Pseudo devices
device loop # Network loopbackDas TCP/IP Loopback Device. Wenn Sie eine Telnet oder FTP
Verbindung zu localhost (alias 127.0.0.1) aufbauen, erstellen Sie eine
Verbindung zu sich selbst durch dieses Device. Die Angabe
dieser Option ist verpflichtend.
Unter &os; 4.X müssen Sie die Zeile
pseudo-device loop verwenden.device mem # Memory and kernel memory devicesGeräte für den Systemspeicher.device io # I/O deviceDiese Option ermöglicht es einem Prozess
I/O-Privilegien zu erlangen. Dies nutzt Benutzerprogrammen,
die Hardware direkt ansteuern können. Die Option
wird für das X Window System
benötigt.device random # Entropy deviceKryptographisch sicherer Zufallszahlengenerator.device ether # Ethernet supportether brauchen Sie nur, wenn Sie eine
Ethernet-Karte besitzen. Der Treiber unterstützt das
Ethernet-Protokoll. Unter &os; 4.X verwenden
Sie die Zeile pseudo-device ether.device sl # Kernel SLIPsl aktiviert die SLIP-Unterstützung.
SLIP ist fast vollständig von PPP verdrängt
worden, da letzteres leichter zu konfigurieren, besser
geeignet für Modem zu Modem Kommunikation und
mächtiger ist. Unter &os; 4.X verwenden Sie
die Zeile pseudo-device sl.device ppp # Kernel PPPDies ist Kernel Unterstützung für
PPP-Wählverbindungen. Es existiert auch eine
PPP-Version im Userland, die den tun
Treiber benutzt. Die Userland-Version ist flexibler
und bietet mehr Option wie die Wahl auf Anforderung.
Unter &os; 4.X müssen Sie die Zeile
pseudo-device ppp verwenden.device tun # Packet tunnel.Dies wird vom der Userland PPP benutzt. Die
Zahl hinter tun gibt
die Anzahl der unterstützten gleichzeitigen Verbindungen an.
Weitere Informationen erhalten Sie im Abschnitt
PPP
dieses Handbuchs. Unter &os; 4.X verwenden Sie
die Zeile pseudo-device tun.
device pty # Pseudo-ttys (telnet etc)Dies ist ein Pseudo-Terminal oder simulierter
Login-Terminal. Er wird von einkommenden telnet
und rlogin Verbindungen,
xterm und anderen Anwendungen wie
Emacs benutzt.Unter &os; 4.X müssen Sie die Zeile
pseudo-device pty number
verwenden. Die Zahl
hinter pty gibt die Anzahl der zu
erstellenden ptys an. Wenn Sie
mehr Verbindungen als die 16 erlaubten in der
Voreinstellung brauchen, erhöhen Sie diesen
Wert bis zu einem Maximum von 256.device md # Memory disksPseudo-Gerät für Speicher-Laufwerke.
Unter &os; 4.X verwenden Sie die Zeile
pseudo-device md.device gif # IPv6 and IPv4 tunnelingDieses Gerät tunnelt IPv6 über IPv4, IPv4 über
IPv6, IPv4 über IPv4 oder IPv6 über IPv6.
Die Anzahl der benötigten Geräte wird automatisch
vom System bestimmt. Auf Systemen des 4.X-Zweiges ab
&os; 4.4 verwenden Sie die Zeile
pseudo-device gif. Vor &os; 4.4
müssen Sie die Anzahl der benötigten Geräte
angeben, zum Beispiel:
pseudo-device gif 4.device faith # IPv6-to-IPv4 relaying (translation)Dieses Pseudo-Gerät fängt zu ihm gesendete Pakete ab
und leitet Sie zu einem Dæmon weiter, der Verkehr zwischen IPv4
und IPv6 vermittelt. Unter &os; 4.X verwenden Sie die Zeile
pseudo-device faith 1.# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filterDas ist der Berkeley Paketfilter. Dieses Pseudo-Gerät kann
Netzwerkkarten in den promiscuous Modus setzen und
erlaubt es damit, Pakete auf einem Broadcast Netzwerk (z.B. einem
Ethernet) einzufangen. Die Pakete können auf der Festplatte
gespeichert und mit &man.tcpdump.1; untersucht werden.
Unter &os; 4.X müssen Sie die Zeile
pseudo-device bpf verwenden.Das &man.bpf.4;-Gerät wird von
&man.dhclient.8; genutzt, um die IP-Adresse des Default-Routers
zu bekommen. Wenn Sie DHCP benutzen, lassen Sie diese Option bitte
aktiviert.# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
#device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # Human Interface Devices
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet, requires mii
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB EthernetUnterstützung für verschiedene USB Geräte.# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)Verschiedene Firewire-Geräte.Mehr Informationen und weitere von &os; unterstützte
Geräte entnehmen Sie bitte
/usr/src/sys/i386/conf/NOTES.Hohe Speicheranforderungen (PAE)Physical Address Extensions (PAE)hohe SpeicheranforderungenSysteme mit hohen Speicheranforderungen benötigen
mehr Speicher als den auf 4 Gigabyte beschränkten
User- und Kernel-Adressraum (KVA).
Mit dem &pentium; Pro und neueren CPUs hat
Intel den Adressraum auf 36-Bit erweitert.Die Physical-Address-Extension (PAE)
von &intel;s &pentium; Pro und neueren Prozessoren
unterstützt bis zu 64 Gigabyte Speicher.
&os; kann diesen Speicher mit der Option
in der Kernelkonfiguration nutzen. Die Option gibt es
in &os; 4.X seit 4.9-RELEASE und in &os; 5.X seit
5.1-RELEASE. Wegen Beschräkungen der
Intel-Speicherarchitektur wird keine Unterscheidung
zwischen Speicher oberhalb oder unterhalb von 4 Gigabyte
getroffen. Speicher über 4 Gigabyte wird
einfach dem zur Verfügung stehenden Speicher
zugeschlagen.Sie aktivieren PAE im Kernel, indem
Sie die folgende Zeile in die Kernelkonfigurationsdatei
einfügen:options PAE&os; unterstützt PAE nur
auf IA-32 Prozessoren. Die
PAE-Unterstützung wurde
zudem noch nicht hinreichend getestet und befindet
sich im Vergleich zu anderen Komponenten von &os; noch
im Beta-Stadium.Die PAE-Unterstützung in &os;
ist mit den nachstehenden Einschränkungen verbunden:Ein Prozess kann nicht mehr als 4 Gigabyte
virtuellen Speicher benutzen.KLD-Module können nicht in
einen PAE-Kernel geladen werden,
da sich das Bausystem der Module vom Bausystem des
Kernels unterscheidet.Gerätetreiber, die nicht die
&man.bus.dma.9;-Schnittstelle benutzen, führen
zusammen mit einem PAE-Kernel zu
Datenverlusten. Diese Treiber sollen nicht mit
einem PAE-Kernel verwendet werden.
Daher wird die PAE-Kernelkonfigurationsdatei
von &os; 5.X nur mit Treibern ausgeliefert,
die mit einem PAE-Kernel
funktionieren.Einige Systemvariablen werden abhängig von
der Speichergröße eingestellt. In einem
PAE-System mit viel Speicher
können die Werte daher zu hoch eingestellt sein.
Ein Beispiel ist die sysctl-Variable
, die die maximale
Anzahl von vnodes im Kernel bestimmt. Solche
Variablen sollten auf einen angemessenen Wert
eingestellt werden.Es kann erforderlich sein, den virtuellen Adressraum
des Kernels (KVA) zu vergrößern
oder, wie oben beschrieben, den Wert einer häufig
gebrauchten Kernelvariablen zu verringern. Dies
verhindert einen Überlauf des KVAs.
Der Adressraum des Kernels kann mit der Kerneloption
vergrößert
werden.Hinweise zur Leistungssteigerung und Stabilität
entnehmen Sie bitte der Hilfeseite &man.tuning.7;.
Die PAE-Unterstützung von &os;
wird in der Hilfeseite &man.pae.4; beschrieben.Gerätedateien erstellenGerätedateiMAKEDEVAb &os; 5.0 werden die Gerätedateien automatisch
von &man.devfs.5; erzeugt. Überspringen Sie diesen Abschnitt,
wenn Sie &os; 5.0 oder eine neuere Version benutzen.Zu fast jedem Gerät gehört eine Datei in
/dev, die zwar wie eine reguläre Datei
aussieht, tatsächlich aber eine Schnittstelle zum Kernel ist, die
Programme benutzen, um Zugriff auf das Gerät zu erlangen.
Das Shellskript /dev/MAKEDEV, das auch bei der
Installation des Systems ausgeführt wird, erstellt fast alle
unterstützten Gerätedateien. Es legt aber nicht
alle Gerätedateien an, das heißt, wenn
Sie im Kernel Unterstützung für ein neues Gerät
hinzugefügt haben, sollten Sie überprüfen, ob die
entsprechenden Einträge in dev vorhanden
sind. Wenn nicht, dann legen Sie sie, wie im folgenden Beispiel
einfach an.Angenommen, Sie wollen den Kernel um Unterstützung für
IDE-CD-ROMs erweitern. Dann müssen Sie folgende Zeile in der
Konfigurationsdatei einfügen:device acd0Nun suchen Sie in /dev nach Dateien, die
mit acd0 beginnen, möglicherweise mit
c enden oder ein r vorgestellt
haben (der Eintrag für das rohe Gerät).
Wenn Sie die Einträge nicht finden, wechseln Sie in
/dev und führen dort das folgende Kommando
aus:MAKEDEV&prompt.root; sh MAKEDEV acd0Nun sollten die Einträge acd0c und
racd0c in /dev vorhanden
sein.Das folgende Kommando legt die passenden Einträge für
Soundkarten an:&prompt.root; sh MAKEDEV snd0Wenn Sie Gerätedateien für Geräte wie
Soundkarten erstellen und andere Leute Zugriff auf Ihren Rechner
haben, wollen Sie vielleicht diese Geräte vor Zugriffen von
außen schützen. Sie erreichen dies, in dem Sie das
Gerät in /etc/fbtab aufnehmen. Weitere
Informationen stellt &man.fbtab.5; zur Verfügung.Folgen Sie dieser Prozedur für alle Geräte, die nicht
in GENERIC eingetragen sind.Da alle SCSI Controller die gleichen Einträge in
/dev benutzen, brauchen Sie diese nicht erstellen.
Weiterhin haben Netzwerkkarten sowie SLIP/PPP-Pseudo-Geräte keine
Einträge in /dev.Wenn etwas schiefgehtEs gibt fünf Hauptfehlerquellen beim Erstellen eines
angepassten Kernels:config verursacht Fehler:Wenn &man.config.8; misslingt, liegen Fehler
in der Kernelkonfigurationsdatei vor. Zum Glück
gibt &man.config.8; die die Zeilennummer der
Fehlerstelle an, sodass Sie den Fehler schnell
finden können. Beispielsweise könnten
Sie folgende Fehlermeldung sehen:config: line 17: syntax errorVergleichen Sie die angegebene Zeile mit
GENERIC und stellen Sie sicher,
dass das Schlüsselwort richtig geschrieben
ist.make verursacht Fehler:Wenn make misslingt, liegen
meistens Fehler in der Konfigurationsdatei vor,
die aber nicht schwerwiegend genug für
&man.config.8; waren. Überprüfen Sie
wiederum Ihre Konfiguration und wenn Sie keinen
Fehler entdecken können, schicken Sie eine
E-Mail mit Ihrer Kernelkonfiguration an die Mailingliste
&a.de.questions;. Sie sollten dann schnell Hilfe erhalten.Der neue Kernel lässt sich nicht
installieren:Wenn das Übersetzen des Kernels geklappt hat aber die
Installation nicht, weil make install oder
make installkernel fehlgeschlagen ist,
sollten Sie zuerst überprüfen, ob Ihr System in der
Sicherheitsstufe 1 (engl.
secure level) läuft (siehe
&man.init.8;). Ihr alter Kernel ist durch die
-Option
vor Veränderungen geschützt und die
Installationsprozedur versucht, diese Option vom alten Kernel
zu entfernen und auf den neuen Kernel zu setzen. Da in der
Sicherheitsstufe 1 die -Option nicht
gesetzt werden kann, muss die Installation des Kernels in der
Sicherheitsstufe 0 oder einer niedrigeren stattfinden.Der obige Absatz gilt nur für &os; 4.X
und frühere Versionen. Ab &os; 5.X wird
der Kernel nicht mit der -Option
installiert. Wenn sich der Kernel nicht installieren
lässt, zeigt dies wahrscheinlich ein mehr
grundsätzliches Problem an.Der Kernel bootet nicht:Wenn der Kernel nicht booten will, ist das noch
lange kein Grund zur Panik. Denn &os; besitzt exzellente
Mechanismen zur Wiederherstellung nach dem Einsatz
inkompatibler Kernel. Den Kernel, mit dem Sie booten
wollen, können Sie sich im &os; Boot-Loader
aussuchen. In den Loader gelangen Sie, in dem Sie
einfach eine Taste außer Enter
drücken, wenn das System im Boot-Menü von 10
herunterzählt. Geben Sie dann unload
ein und mit
boot /boot/kernel.old
booten Sie den alten Kernel. Sie können hier
natürlich auch den Dateinamen eines anderen Kernels, der
sauber bootet angeben. Für alle Fälle sollten Sie
immer einen Kernel, der garantiert bootet, bereit
halten.Nun können Sie die Konfiguration noch einmal
überprüfen und den Kernel neu kompilieren. Dazu
ist /var/log/messages sehr nützlich,
da hier sämtliche Kernelmeldungen von jedem erfolgreichen
Bootvorgang gespeichert werden. &man.dmesg.8; gibt Ihnen die
Kernelmeldungen vom letzten Bootvorgang aus.Für den Fall, dass Sie Probleme bei dem
Kernelbau bekommen, heben Sie sich immer einen
GENERIC oder einen anderen
Kernel, der garantiert bootet, auf. Der Name
dieses Kernels sollte so gewählt sein, dass
er beim nächsten Bau nicht überschrieben
wird. Sie können sich nicht auf
kernel.old verlassen, da
dieser Kernel durch den zuletzt installierten
Kernel, der vielleicht schon kaputt war, während
der Installation ersetzt wird. Kopieren Sie den
funktionierenden Kernel so schnell wie möglich
in das richtige Verzeichnis
(/boot/kernel).
Ansonsten funktionieren Kommandos wie &man.ps.1;
nicht. Benennen Sie dazu einfach das Verzeichnis
des funktionierenden Kernels um:&prompt.root; mv /boot/kernel /boot/kernel.bad
&prompt.root; mv /boot/kernel.good /boot/kernelVor &os; 5.X müssen Sie zuerst die
-Option vom installierten
Kernel entfernen, bevor Sie den funktionierenden
Kernel zuäck kopieren können:&prompt.root; chflags noschg /kernelWenn Sie den Befehl nicht ausführen können,
befinden Sie sich in einer höheren Sicherheitsstufe als 0.
Setzen Sie in /etc/rc.conf die Variable
kern_securelevel auf -1
und booten Sie danach. Wenn der neue Kernel funktioniert,
können Sie die Variable wieder auf Ihren alten Wert
zurücksetzen.Wenn Sie den neuen Kernel, oder allgemein eine Datei,
mit der -Option versehen wollen,
um sie vor Veränderungen zu schützen, führen Sie
folgenden Befehl aus:&prompt.root; chflags schg /kernelDer Kernel ist in Ordnung, aber ps geht
nicht mehr:Wenn Sie eine andere Version des Kernels installiert
haben als die, mit der Ihre Systemwerkzeuge gebaut
wurden (beispielsweise einen 5.X Kernel auf einem
4.X System), werden Programme wie &man.ps.1; und
&man.vmstat.8; nicht mehr funktionieren. Sie
sollten nun das komplette
System neu bauen und installieren. Achten
Sie darauf, dass die Quellen, aus denen Sie das
System bauen, zum installierten Kernel passen.
Das ist ein Grund dafür, warum man nie einen
Kernel, der nicht zur Systemversion passt, benutzen
sollten.
diff --git a/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
index 03c447f14a..27b9bdfc1f 100644
--- a/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
@@ -1,3727 +1,3727 @@
JimMockRestrukturiert und teilweise aktualisiert von Brian N.HandyBeigetragen von RichMurpheyJohannKoisÜbersetzt von Linux-BinärkompatibilitätÜbersichtLinux-BinärkompatibilitätBinärkompatibilitätLinuxFreeBSD bietet Binärkompatibilität zu verschiedenen
anderen &unix; Betriebssystemen, darunter auch Linux. Nun
könnten Sie sich fragen, warum FreeBSD in der Lage sein
muss, Linux-Binärprogramme auszuführen? Die Antwort
auf diese Frage ist sehr einfach. Viele Unternehmen und Entwickler
programmieren bzw. entwickeln nur für Linux, da es
das Neueste und Beste in der Computerwelt ist.
Für uns FreeBSD-Anwender heißt dies, genau diese Unternehmen
und Entwickler zu bitten, FreeBSD-Versionen ihrer Programme
herauszubringen. Das Problem dabei ist nur, dass die meisten dieser
Firmen trotzdem nicht erkennen, wie viele zusätzliche
Anwender ihre Produkte benutzen würden, wenn es auch
FreeBSD-Versionen gäbe, und daher weiterhin
ausschließlich für Linux entwickeln. Was also kann ein
FreeBSD-Anwender tun? Genau an diesem Punkt kommt die Linux-
Binärkompatibilität ins Spiel.Um es auf den Punkt zu bringen, genau diese Kompatibilität
erlaubt es FreeBSD-Anwendern, etwa 90 % aller Linux-Anwendungen
ohne Code-Änderungen zu verwenden. Dies schließt
solche Anwendungen wie &staroffice;,
Open Office, die Linux-Versionen von
&netscape;,
&adobe; &acrobat;,
RealPlayer,
VMWare, &oracle;,
WordPerfect, Doom,
Quake und viele andere ein. Es wird
sogar berichtet, dass diese Linux-Anwendungen in manchen
Fällen unter FreeBSD eine bessere Leistung als unter
Linux aufweisen.Allerdings gibt es nach wie vor einige Linux-spezifische
Betriebssystem-Eigenschaften, die unter FreeBSD nicht
unterstützt werden. Linux-Anwendungen, die
&i386;-spezifische Aufrufe (wie die Aktivierung des
virtuellen 8086-Modus) verwenden, funktionieren
unter FreeBSD leider nicht.Nach dem Lesen dieses Kapitels werden Siewissen, wie Sie die Linux-Binärkompatibilität
installieren bzw. aktivieren.Wissen, wie man zusätzliche Linux-Systembibliotheken
unter FreeBSD installiert.Linux-Anwendungen unter FreeBSD installieren können.Wissen, wie die Linux-Binärkompatibilität
unter FreeBSD verwirklicht wurde.Bevor Sie dieses Kapitel lesen, sollten Siewissen, wie man Software Dritter installiert
().InstallationKLD (kernel loadable object)Die Linux-Binärkompatibilität ist per Voreinstellung
nicht aktiviert. Der einfachste Weg, dies zu tun, ist das
Linux KLD (Kernel LoaDable object)
zu laden. Dies erreichen Sie durch die Eingabe des folgenden
Befehls:&prompt.root; kldload linuxWollen Sie die Linux-Binärkompatibilität dauerhaft
aktivieren, sollten Sie die folgende Zeile in
/etc/rc.conf einfügen:linux_enable="YES"Der &man.kldstat.8;-Befehl kann benutzt werden, um
festzustellen, ob KLD geladen wurde:&prompt.user; kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.koKerneloptionenLINUXWenn Sie das KLD nicht laden können oder wollen, besteht
auch die Möglichkeit, die Linux-Binärkompatibiltät
statisch in den Kernel einzubinden. Dazu fügen Sie Ihrer
Kernelkonfigurationsdatei den Eintrag
options COMPAT_LINUX
hinzu. Anschließend installieren Sie Ihren neuen Kernel
wie in beschrieben.Linux-Laufzeitbibliotheken installierenLinuxLinux-Laufzeitbibliotheken installierenDies kann auf zwei Arten geschehen, entweder über den
linux_base-Port,
oder durch manuelle Installation der Bibliotheken
.Installation unter Verwendung des linux_base-PortsPorts-SammlungDies ist die einfachste Methode, um die Laufzeitbibliotheken
zu installieren. Sie funktioniert genauso wie die
Installation eines beliebigen anderen Ports aus der
Ports-Sammlung.
Dazu machen Sie einfach folgendes:&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanSie sollten nun über eine funktionierende
Linux-Binärkompatibilität verfügen. Einige
Programme könnten sich zwar über falsche
Unterversionsnummern der Systembibliotheken beschweren, dies ist
im Allgemeinen aber kein Problem.Unter Umständen gibt es mehrere Versionen des
Ports emulators/linux_base.
Die Ports entsprechen unterschiedlichen Versionen
verschiedener Linux-Distributionen Sie sollten den
Port installieren, der am besten die Anforderungen
der Linux-Anwendung erfüllt.Manuelle Installation der BibliothekenWenn Sie die Ports-Sammlung nicht installiert
haben, können Sie die Bibliotheken auch manuell
installieren. Dazu brauchen Sie die jeweiligen
Linux-Systembibliotheken, die das zu installierende Programm
verwendet sowie den Laufzeit-Linker. Zusätzlich müssen
Sie auf Ihrem FreeBSD-System einen
virtuellen Verzeichnisbaum für die
Linux-Bibliotheken einrichten. Alle unter FreeBSD gestarteten
Linux-Programme suchen zuerst in diesem Verzeichnisbaum
nach Systembibliotheken. Wenn also ein Linuxprogramm beispielsweise
/lib/libc.so lädt, versucht FreeBSD
zuerst, /compat/linux/lib/libc.so laden.
Ist diese Datei nicht vorhanden, wird
/lib/libc.so geladen. Systembibliotheken
sollten daher besser in den virtuellen Verzeichnisbaum
/compat/linux/lib als in den vom
Linux-ld.so vorgeschlagenen installiert
werden.Im Allgemeinen müssen Sie nur zu Beginn nach den
Systembibliotheken suchen, die von Linuxprogrammen
benötigt werden. Nach den ersten Installationen von
Linuxprogrammen auf Ihrem FreeBSD-System verfügen Sie
über eine Sammlung von Linux-Systembibliotheken,
die es Ihnen ermöglichen wird, neue Linuxprogramme
ohne Zusatzarbeit zu installieren.Installation zusätzlicher SystembibliothekenShared-LibrariesWas passiert, wenn Sie den linux_base-Port
installieren, und Ihr Programm beschwert sich trotzdem
über fehlende Systembibliotheken? Woher wissen Sie,
welche Systembibliotheken von Linux-Binärprogrammen
benötigt werden, und wo Sie diese finden? Grundsätzlich
gibt es dafür zwei Möglichkeiten (um dieser
Anleitung zu folgen, müssen Sie unter
FreeBSD als Benutzer root angemeldet
sein):Wenn Sie Zugriff auf ein Linux-System haben, können
Sie dort nachsehen, welche Systembibliotheken eine Anwendung
benötigt, und diese auf Ihr FreeBSD-System kopieren.
Dazu folgendes Beispiel:Nehmen wir an, Sie haben FTP verwendet, um die
Linux-Binärversion von Doom
zu bekommen und haben sie auf Ihrem Linux-System installiert.
Nun können Sie überprüfen, welche
Systembibliotheken das Programm benötigt, indem Sie
ldd linuxdoom eingeben. Das Resultat
sieht dann so aus:&prompt.user; ldd linuxdoom
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29symbolische LinksSie müssten nun alle Dateien aus der
letzten Spalte kopieren und sie unter
/compat/linux speichern, wobei
die Namen der ersten Spalte als symbolische Links auf
diese Dateien zeigen. Damit haben Sie schließlich
folgende Dateien auf Ihrem FreeBSD-System:/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Beachten Sie, dass wenn Sie bereits eine
Linux-Systembibliothek einer zur ersten Spalte
passenden Hauptversionsnummer (laut
ldd-Ausgabe) besitzen, Sie die Datei
aus der zweiten Spalte nicht mehr kopieren müssen,
da die bereits vorhandene Version funktionieren sollte.
Hat die Systembibliothek jedoch eine neuere
Versionsnummer, sollten Sie sie dennoch kopieren.
Sie können die alte Version löschen, solange
Sie einen symbolischen Link auf die neue
Version anlegen. Wenn Sie also folgende Bibliotheken
auf Ihrem System installiert haben:/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -> libc.so.4.6.27und Sie haben eine neue Binärdatei, die
laut ldd
eine neuere Bibliothek benötigt:libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29Wenn diese sich nur um ein oder zwei Stellen
in der Unterversionsnummer unterscheiden, müssen
Sie /lib/libc.so.4.6.29
nicht auf Ihr System kopieren, da das Programm auch
mit der etwas älteren Version ohne Probleme
funktionieren sollte. Wenn Sie wollen,
können Sie libc.so aber
dennoch ersetzen (das heißt aktualisieren), was dann zu
folgender Ausgabe führt:/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Der Mechanismus der symbolischen Links wird
nur für Linux-Binärdateien
benötigt. Der FreeBSD-Laufzeitlinker sucht
sich die passenden Hauptversionsnummern selbst,
das heißt Sie müssen sich nicht darum
kümmern.
Linux ELF-Binärdateien installierenLinuxELF-BinärdateiELF-Binärdateien benötigen manchmal eine zusätzliche
Kennzeichnung. Wenn Sie versuchen, eine nicht
gekennzeichnete ELF-Binärdatei auszuführen,
werden Sie eine Fehlermeldung ähnlich der folgenden
erhalten:&prompt.user; ./my-linux-elf-binary
ELF binary type not known
AbortDamit der FreeBSD-Kernel eine Linux-ELF-Datei von einer
FreeBSD-ELF-Datei unterscheiden kann, gibt es das Werkzeug
&man.brandelf.1;:&prompt.user; brandelf -t Linux my-linux-elf-binaryGNU WerkzeugeDie GNU Werkzeuge schreiben nun automatisch die
passende Kennzeichnungsinformation in die ELF-Binärdateien,
so dass Sie diesen Schritt in Zukunft nur noch selten benötigen
werden.Namensauflösung konfigurierenWenn DNS nicht funktioniert, oder Sie folgende Fehlermeldung
erhalten:resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keywordmüssen sie /compat/linux/etc/host.conf
wie folgt anlegen:order hosts, bind
multi onDiese Reihenfolge legt fest, dass zuerst
/etc/hosts und anschließend DNS
durchsucht werden. Wenn
/compat/linux/etc/host.conf nicht vorhanden
ist, finden Linux-Anwendungen FreeBSD's
/etc/host.conf und
beschweren sich über die inkompatible FreeBSD-Syntax. Wenn Sie
keinen Nameserver (in /etc/resolv.conf)
konfiguriert haben, sollten Sie den Eintrag
bind entfernen.BorisHollasFür Mathematica 5.x aktualisiert von &mathematica; installierenLinux-AnwendungenMathematicaDieses Dokument beschreibt die Installation der Linux-Version von
&mathematica; 5.x auf einem
FreeBSD-System.Die Linux-Version von &mathematica;
oder &mathematica; für Studenten kann
direkt von Wolfram unter
bestellt werden.Den &mathematica;-Installer startenZuerst müssen Sie &os; mitteilen, dass die
Linux-Binärversion von
&mathematica; die Linux-ABI
verwendet. Dies erreichen Sie am einfachsten, indem Sie die
Standard-ELF-Kennzeichnung für alle ungekennzeichneten
Binärdateien auf Linux festlegen:&prompt.root; sysctl kern.fallback_elf_brand=3Danach wird FreeBSD annehmen, dass alle ungekennzeichneten
ELF-Binärdateien die Linux-ABI verwenden und es wäre
nun möglich, das Installationsprogramm direkt von der
CD-ROM zu starten.Unter &os; müssen allerdings die Datei
MathInstaller in ein lokales Verzeichnis
Ihrer Festplatte kopieren:&prompt.root; mount /cdrom
&prompt.root; cp /cdrom/Unix/Installers/Linux/MathInstaller /LokalesVerzeichnis/In dieser Datei ersetzen Sie in der ersten Zeile den Wert
/bin/sh durch
/compat/linux/bin/sh. Dadurch wird
sichergestellt, dass der Installer von der Linux-Version von
&man.sh.1; aufgerufen wird. Danach ersetzen Sie durch das
im nächsten Abschnitt zu findende Skript oder über
einen Texteditor alle Vorkommen von Linux)
durch FreeBSD). Dadurch ist es dem
&mathematica;-Installer möglich,
durch den Einsatz von uname -s das
Betriebssystem zu bestimmen. &os; wird dabei als
Linux-artiges Betriebssystem behandelt. Durch den Aufruf von
MathInstaller kann
&mathematica; anschließend
installiert werden.Die &mathematica;-Programmdateien anpassenDas von &mathematica; während
der Installation erzeugte Shell-Skript muss angepasst werden,
bevor Sie es einsetzen können. Wenn Sie die
&mathematica;-Programmdateien unter
/usr/local/bin installieren,
finden Sie in diesem Verzeichnis die symbolische Links
math, mathematica,
Mathematica, sowie
MathKernel. In jeder dieser Dateien
müssen Sie jedes Vorkommen von Linux)
durch FreeBSD) ersetzen (entweder über
einen Texteditor oder durch das folgende Shellskript):#!/bin/sh
cd /usr/local/bin
for i in math mathematica Mathematica MathKernel
do sed 's/Linux)/FreeBSD)/g' $i > $i.tmp
sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i
rm $i.tmp
chmod a+x $i
doneIhr &mathematica;-Passwort anfordernEthernetMAC-AdresseWenn Sie &mathematica; das erste
Mal starten, werden Sie nach einem Passwort gefragt. Haben Sie
noch kein Passwort von Wolfram erhalten, müssen Sie zuerst
im Installationsverzeichnis mathinfo
aufrufen, um Ihre Rechner-ID zu bestimmen. Diese
Rechner-ID basiert ausschließlich auf der MAC-Adresse
Ihrer ersten Netzwerkkarte. Daher ist es nicht möglich,
Ihre &mathematica;-Kopie auf
verschiedenen Rechnern zu installieren.Wenn Sie sich bei Wolfram registrieren (durch E-Mail,
Telefon oder Fax), teilen Sie
Ihre Rechner-ID mit und erhalten dafür
ein aus Zahlengruppen bestehendes Passwort.Das &mathematica;-Frontend über ein Netzwerk
ausführen&mathematica; verwendet einige
spezielle Schriftarten, um Zeichen anzuzeigen, die in den
Standardzeichensätzen nicht vorhanden
sind (z.B. Integrale, Summen, griechische Buchstaben). Das
X-Protokoll verlangt allerdings, dass diese Schriftarten
lokal installiert sind.
Das bedeutet, dass Sie diese Schriftarten von der CD-ROM oder
von einem Rechner, auf dem &mathematica;
installiert ist, auf Ihren Rechner kopieren müssen.
Diese Schriftarten befinden sich normalerweise in
/cdrom/Unix/Files/SystemFiles/Fonts
(&mathematica;-CD) oder in
/usr/local/mathematica/SystemFiles/Fonts
(Festplatte). Die aktuellen Schriftarten befinden sich dabei
in den Unterverzeichnissen Type1 und
X. Um diese Schriftarten zu verwenden,
gibt es mehrere Möglichkeiten, die nun beschrieben werden:Die erste Möglichkeit besteht darin, die Schriftarten
in eins der bereits existierenden Schriftartenverzeichnisse unter
/usr/X11R6/lib/X11/fonts zu kopieren.
Dies bedeutet, dass Sie fonts.dir editieren
müssen, indem Sie die Schriftnamen hinzufügen und
die Anzahl der Schriftarten in der ersten Zeile ändern.
Alternativ ist es auch möglich, im Verzeichnis, in das
Sie die Schriftarten kopiert haben, das Kommando
&man.mkfontdir.1; auszuführen.Die zweite Möglichkeit, besteht darin,
die Verzeichnisse nach
/usr/X11R6/lib/X11/fonts zu kopieren:&prompt.root; cd /usr/X11R6/lib/X11/fonts
&prompt.root; mkdir X
&prompt.root; mkdir MathType1
&prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts
&prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X
&prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; cd /usr/X11R6/lib/X11/fonts/X
&prompt.root; mkfontdir
&prompt.root; cd ../MathType1
&prompt.root; mkfontdirNun fügen Sie die neuen Schriftartenverzeichnisse in
Ihren Pfad ein:&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X
&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; xset fp rehashWenn Sie den &xorg;-Server verwenden, können Sie die
Schriftarten-Verzeichnisse automatisch laden lassen, wenn Sie sie
in Ihrer xorg.conf angeben.Für den &xfree86;-Server
verwenden Sie die Datei XF86Config.SchriftartenWenn Sie noch kein/usr/X11R6/lib/X11/fonts/Type1-Verzeichnis
haben, können Sie das
MathType1-Verzeichnis im vorherigen
Beispiel in Type1 umbenennen.AaronKaplanBeigetragen von RobertGetschmannMit Unterstützung durch &maple; installierenLinux-AnwendungenMaple&maple; ist ein mit
&mathematica; vergleichbares kommerzielles
Mathematikprogramm. Sie können dieses Programm unter
kaufen und sich
anschließend registrieren, um eine Lizenz zu erhalten. Um
dieses Programm unter FreeBSD zu installieren, gehen Sie wie
folgt vor:Führen Sie das
INSTALL-Shell-Skript
der Softwaredistribution aus. Wählen Sie die
RedHat-Option aus, wenn Sie das
Installationsprogramm danach fragt. Ein typisches
Installationsverzeichnis wäre z.B.
/usr/local/maple.Wenn Sie dies noch nicht gemacht haben, besorgen Sie
sich nun eine &maple;-Lizenz von
Maple Waterloo Software
()
und kopieren Sie diese nach
/usr/local/maple/license/license.dat.Installieren Sie den
FLEXlm-Lizenz-Manager, indem Sie
das INSTALL_LIC-Installations-Shellskript
ausführen, das mit &maple;
ausgeliefert wird. Geben Sie Ihren primären
Rechnernamen für den Lizenz-Server an.Verändern Sie
/usr/local/maple/bin/maple.system.type
wie folgt: ----- snip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
--- maple.system.type Sun Jul 8 16:35:51 2001
***************
*** 72,77 ****
--- 72,78 ----
# the IBM RS/6000 AIX case
MAPLE_BIN="bin.IBM_RISC_UNIX"
;;
+ "FreeBSD"|\
"Linux")
# the Linux/x86 case
# We have two Linux implementations, one for Red Hat and
----- snip end of patch -----Bitte beachten Sie, dass nach
"FreeBSD"|\ kein anderes
Zeichen eingefügt werden darf.Dieser Patch weist &maple; an,
FreeBSD als eine Art von Linux-System zu erkennen.
Das Shell-Skript bin/maple ruft das
Shell-Skript bin/maple.system.type auf,
welches wiederum uname -a verwendet,
um den Namen des Betriebssystems herauszufinden.
Abhängig vom Betriebssystem weiß das System nun,
welche Binärdateien verwendet werden sollen.Starten Sie den Lizenz-Server.Das folgende, als
/usr/local/etc/rc.d/lmgrd.sh
installierte Shell-Skript ist ein komfortabler Weg,
um lmgrd zu starten: ----- snip ------------
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
export PATH
LICENSE_FILE=/usr/local/maple/license/license.dat
LOG=/var/log/lmgrd.log
case "$1" in
start)
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
echo -n " lmgrd"
;;
stop)
lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
;;
*)
echo "Usage: `basename $0` {start|stop}" 1>&2
exit 64
;;
esac
exit 0
----- snip ------------Versuchen Sie, &maple;
zu starten:&prompt.user; cd /usr/local/maple/bin
&prompt.user; ./xmapleNun sollte das Programm laufen und alles funktionieren.
Falls ja, vergessen Sie nicht, an Maplesoft zu schreiben
und sie wissen zu lassen, dass Sie gerne eine native
FreeBSD-Version hätten.Häufige FehlerquellenDer
FLEXlm-Lizenzmanager kann schwierig
zu bedienen sein. Zusätzliche Dokumentation
zu diesem Thema finden Sie unter .Es ist bekannt, dass lmgrd
sehr pingelig ist, wenn es um die Lizenzdatei geht. Gibt
es Probleme, führt dies zu einem Speicherauszug
(core dump). Ein
korrekte Lizenzdatei sollte ähnlich der
folgenden aussehen:# =======================================================
# License File for UNIX Installations ("Pointer File")
# =======================================================
SERVER chillig ANY
#USE_SERVER
VENDOR maplelmg
FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXXSeriennummer und Schlüssel wurden durch mehrere
X unkenntlich gemacht. chillig ist ein
Rechnername.Veränderungen an der Lizenzdatei sind möglich,
solange Sie die FEATURE-Zeile nicht
verändern (diese ist durch den Lizenzschlüssel
geschützt).DanPellegBeigesteuert von &matlab; installierenLinux-AnwendungenMATLABIm Folgenden wird die Installation der Linux-Anwendung
&matlab; Version 6.5 auf
&os; beschrieben. Mit Ausnahme der
&java.virtual.machine; (siehe
) läuft die Anwendung
auch ganz gut.Die Linux-Version von &matlab;
können Sie direkt bei The MathWorks bestellen.
Vergewissern Sie sich, dass Sie die Lizenz-Datei
oder eine Anleitung zum Erstellen der Lizenz-Datei erhalten
haben. Wenn Sie mit MathWorks in Kontakt stehen, weisen
Sie bitte auf die fehlende &os;-Version der Software hin.Das &matlab;-InstallationsskriptUm &matlab; zu installieren,
gehen Sie wie folgt vor:Hängen Sie die Installations-CD ein und
wechseln Sie zu root, wie im
Installations-Skript gefordert. Starten Sie die
Installation mit dem folgenden Kommando:&prompt.root; /compat/linux/bin/sh /cdrom/installDie Installation erfordert eine graphische
Benutzeroberfläche. Wenn Sie die Fehlermeldung
erhalten, dass das Display nicht geöffnet werden
konnte, führen Sie das folgende Kommando aus:&prompt.root; setenv HOME ~USERFür USER setzen Sie
den Benutzer ein, von dem aus Sie root
geworden sind.Beantworten Sie die Frage nach dem
&matlab;-Root-Verzeichnis mit:
/compat/linux/usr/local/matlab.Den langen Pfad werden Sie noch öfter brauchen.
Die Tipparbeit können Sie sich mit dem folgenden
Befehl erleichtern:&prompt.root; set MATLAB=/compat/linux/usr/local/matlabEditieren Sie die Lizenz-Datei entsprechend der
Anweisung, die Sie beim Erwerb der Lizenz
erhalten haben.Sie können die Datei schon vorher mit Ihrem
Lieblingseditor bearbeiten. Kopieren Sie die Lizenz-Datei
nach $MATLAB/license.dat
bevor das Installationsprogramm Sie auffordert, die
Datei zu editieren.Schließen Sie die Installation ab.Die &matlab;-Installation
ist jetzt abgeschlossen. Die folgenden Schritte passen
&matlab; an &os; an.Den Lizenzmanager startenErstellen Sie symbolische Links zu den Startskripten
des Lizenzmanagers:&prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW
&prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMWErstellen Sie das Startskript
/usr/local/etc/rc.d/flexlm.sh. Das
folgende Beispiel ist eine geänderte Version des
mitgelieferten Skripts
$MATLAB/etc/rc.lm.glnx86.
Angepasst wurden die Pfade zu den Dateien und der
Start des Lizenzmanagers unter der Linux-Emulation.#!/bin/sh
case "$1" in
start)
if [ -f /usr/local/etc/lmboot_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd'
fi
;;
stop)
if [ -f /usr/local/etc/lmdown_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0Machen Sie Datei ausführbar:&prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.shErsetzen Sie im Skript username
durch einen existierenden Benutzer Ihres Systems
(bitte keinesfalls root).Starten Sie den Lizenzmanager:&prompt.root; /usr/local/etc/rc.d/flexlm.sh startEinrichten der &java;-LaufzeitumgebungErstellen Sie einen symbolischen Link auf eine
unter &os; laufende &java;-Laufzeitumgebung (JRE):&prompt.root; cd $MATLAB/sys/java/jre/glnx86/
&prompt.root; unlink jre; ln -s ./jre1.1.8 ./jreEin &matlab;-Startskript erstellenKopieren Sie das folgende Skript nach
/usr/local/bin/matlab:#!/bin/sh
/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"Machen Sie das Skript ausführbar:&prompt.root; chmod +x /usr/local/bin/matlabAbhängig von der Version des Ports
emulators/linux_base
kann das Skript auf Fehler laufen. Die Fehler können
Sie vermeiden, indem Sie die Datei
/compat/linux/usr/local/matlab/bin/matlab
editieren. Ändern Sie die nachstehende Zeileif [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then(mit Version 13.0.1 in der Zeile 410) in
die folgende um:if test -L $newbase; thenStopp-Skript für &matlab; erstellenDas nachstehende Skript beendet &matlab;
ordnungsgemäß.Erstellen Sie die Datei
$MATLAB/toolbox/local/finish.m mit
dem nachstehenden Inhalt:! $MATLAB/bin/finish.shÜbernehmen Sie die Zeichenkette
$MATLAB unverändert.Im selben Verzeichnis befinden sich die
Dateien finishsav.m und
finishdlg.m. Die Dateien
sichern die Einstellungen der Arbeitsfläche
bevor &matlab; beendet wird. Wenn Sie eine
der beiden Dateien benutzen, fügen Sie
die obige Zeile unmittelbar nach dem
save-Kommando ein.Erstellen Sie die Datei
$MATLAB/bin/finish.sh mit
nachstehendem Inhalt:#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &
exit 0Machen Sie die Datei ausführbar:&prompt.root; chmod +x $MATLAB/bin/finish.sh&matlab; benutzenJetzt können Sie &matlab;
mit dem matlab starten.MarcelMoolenaarBeigetragen von &oracle; installierenLinux-AnwendungenOracleÜbersichtDieses Dokument beschreibt die Installation von
&oracle; 8.0.5
und &oracle; 8.0.5.1 Enterprise Edition
für Linux auf einem FreeBSD-Rechner.Installation der Linux-UmgebungStellen Sie sicher, dass Sie sowohl
emulators/linux_base und
devel/linux_devtools
aus der Ports-Sammlung installiert haben. Wenn Sie mit
diesen Ports Schwierigkeiten haben, müssen Sie
vielleicht ältere Versionen der Linux-Umgebung aus
der Ports-Sammlung installieren.Wenn Sie den Intelligent-Agent verwenden wollen,
müssen Sie zusätzlich das RedHat Tcl-Paket
installieren: tcl-8.0.3-20.i386.rpm.
Zur Installation von RPM-Paketen wir der Port
archivers/rpm benötigt.
Ist der Port installiert, lassen sich RPM-Pakete
anschließend mit dem nachstehenden Befehl
installieren:&prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm packageDie Installation der RPM-Pakete sollte ohne
Fehlermeldung ablaufen.Die &oracle;-Umgebung erzeugenBevor Sie &oracle; installieren
können, müssen Sie eine entsprechende Umgebung erzeugen.
Dieses Dokument beschreibt nur, was Sie
im Speziellen tun müssen, um die
Linux-Version von &oracle; unter FreeBSD
zu installieren, nicht aber, was bereits in der Installationsanleitung
von &oracle; beschrieben wird.Kernel-TuningKernel TuningWie in der Installationsanleitung von
&oracle; beschrieben,
müssen Sie die maximale Shared-Memory Größe
festlegen. Verwenden Sie
SHMMAX nicht unter FreeBSD.
SHMMAX wird lediglich aus
SHMMAXPGS und PGSIZE
berechnet. Definieren Sie stattdessen
SHMMAXPGS. Alle anderen Optionen
können wie in der Anleitung beschrieben verwendet werden.
Zum Beispiel:options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61Passen Sie diese Optionen entsprechend dem von Ihnen
gewünschten Einsatzzweck von
&oracle; an.Stellen Sie außerdem sicher, dass Sie folgende
Optionen in Ihren Kernel kompilieren:options SYSVSHM #SysV shared memory
options SYSVSEM #SysV semaphores
options SYSVMSG #SysV interprocess communication&oracle;-Benutzer anlegenLegen Sie den Account oracle an.
Der Account unterschiedet sich von normalen Accounts
dadurch, dass er eine Linux-Shell zugeordnet bekommen muss.
Fügen Sie /compat/linux/bin/bash in die
Datei /etc/shells ein und setzen Sie die
Shell für den oracle-Account auf
/compat/linux/bin/bash.UmgebungNeben den normalen
&oracle;-Variablen, wie z.B.
ORACLE_HOME und ORACLE_SID
müssen Sie die folgenden Variablen setzen:VariableWertLD_LIBRARY_PATH$ORACLE_HOME/libCLASSPATH$ORACLE_HOME/jdbc/lib/classes111.zipPATH/compat/linux/bin
/compat/linux/sbin
/compat/linux/usr/bin
/compat/linux/usr/sbin
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
$ORACLE_HOME/binEs ist empfehlenswert, alle Variablen in der Datei
.profile zu setzen. Ein komplettes
Beispiel sieht folgendermaßen aus:ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
export PATH&oracle; installierenAuf Grund einer kleinen Unregelmäßigkeit
im Linux-Emulator müssen Sie das Verzeichnis
.oracle unter /var/tmp
erzeugen, bevor Sie das Installationsprogramm starten.
Das Verzeichnis muss dem Account oracle
gehören. Sie sollten &oracle; nun
ohne Probleme installieren können. Treten dennoch Probleme
auf, überprüfen Sie zuerst Ihre
&oracle;-Distribution und Ihre
Konfiguration. Nachdem Sie &oracle;
erfolgreich installiert haben, installieren Sie die Patches
wie in den zwei folgenden Abschnitten beschrieben:Ein häufiges Problem ist, dass der
TCP Protokoll-Adapter nicht korrekt installiert wird.
Daraus folgt, dass Sie keine TCP-Listener starten können.
Dieses Problem kann durch folgende Schritte behoben werden:&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk ntcontab.o
&prompt.root; cd $ORACLE_HOME/lib
&prompt.root; ar r libnetwork.a ntcontab.o
&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk installVergessen Sie nicht, root.sh
nochmals auszuführen!root.sh patchenWährend der
&oracle;-Installation werden einige
Aktionen, die als root
ausgeführt werden müssen, in ein Shell-Skript
mit dem Namen root.sh gespeichert.
Dieses Skript befindet sich im Verzeichnis
orainst. Verwenden Sie folgenden
Patch für root.sh, damit es
das richtige chown Kommando
verwendet, oder lassen Sie das
Skript alternativ unter einer Linux-Shell ablaufen:*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown
#
# Define variables to be used in this script
--- 31,37 ----
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown
#
# Define variables to be used in this scriptWenn Sie &oracle; nicht
von CD-ROM installieren, können
Sie Quelldatei für root.sh
verändern. Sie heißt rthd.sh
und befindet sich im orainst-Verzeichnis
des Quellcodebaums.genclntsh patchenDas Skript genclntsh wird verwendet,
um eine Shared-Library für Clients zu erzeugen.
Diese wird bei der Erzeugung der Demos verwendet. Verwenden
Sie folgenden Patch, um die Definition von PATH
auszukommentieren:*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst&oracle; startenWenn Sie den Anweisungen gefolgt sind, sollten Sie nun
in der Lage sein, &oracle; zu starten,
genau so, wie Sie dies auch unter Linux tun würden.HolgerKippBeigetragen von ValentinoVaschettoOriginalversion nach SGML konvertiert durch: &sap.r3; installierenLinux-AnwendungenSAP R/3Installationen von &sap;
unter FreeBSD werden vom &sap; Support-Team
nicht unterstützt – und &sap; bietet Support nur
für zertifizierte Plattformen an! ÜbersichtDieses Dokument beschreibt einen möglichen Weg, um ein
&sap.r3;-System mit
&oracle; Datenbank
für Linux auf einem FreeBSD-Rechner zu installieren,
einschließlich der Installation von FreeBSD und
&oracle;. Zwei verschiedene Konfigurationen
werden beschrieben:&sap.r3; 4.6B (IDES) mit
&oracle; 8.0.5 unter
FreeBSD 4.3-STABLE&sap.r3; 4.6C mit
&oracle; 8.1.7 unter
FreeBSD 4.5-STABLEObwohl dieses Dokument versucht, alle wichtigen Schritte
ausführlich zu beschreiben, besteht nicht die Absicht,
die originalen Installationsanleitungen von
&oracle; und
&sap.r3; zu ersetzen.Benutzen Sie die mit
&sap.r3; Linux Edition
gelieferte Dokumentation für &sap;-
und &oracle;-spezifische Fragen,
sowie die Ressourcen von &oracle; und
&sap;-OSS.Software/ProgrammeFolgende CD-ROMs wurden für die Installation von
&sap; verwendet:&sap.r3; 4.6B, &oracle; 8.0.5BezeichnungNummerBeschreibungKERNEL51009113&sap; Kernel &oracle; / Installation / AIX, Linux,
&solaris;RDBMS51007558&oracle; / RDBMS 8.0.5.X / LinuxEXPORT151010208IDES / DB-Export / Disc 1 of 6EXPORT251010209IDES / DB-Export / Disc 2 of 6EXPORT351010210IDES / DB-Export / Disc 3 of 6EXPORT451010211IDES / DB-Export / Disc 4 of 6EXPORT551010212IDES / DB-Export / Disc 5 of 6EXPORT651010213IDES / DB-Export / Disc 6 of 6Zusätzlich wurde die
&oracle; 8 Server CD-ROM
(Pre-production Version 8.0.5 für Linux, Kernel Version 2.0.33)
verwendet, die allerdings nicht unbedingt nötig ist
und FreeBSD 4.3-STABLE (die Installation wurde kurz
nach dem Erscheinen von 4.3-RELEASE durchgeführt).&sap.r3; 4.6C SR2, &oracle; 8.1.7BezeichnungNummerBeschreibungKERNEL51014004&sap; Kernel &oracle; / &sap; Kernel Version 4.6D / DEC,
LinuxRDBMS51012930&oracle; 8.1.7/ RDBMS / LinuxEXPORT151013953Release 4.6C SR2 / Export / Disc 1 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 2 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 3 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 4 of 4LANG151013954Release 4.6C SR2 / Language / DE, EN, FR /
Disc 1 of 3Abhängig von den zu installierenden Sprachen kann
es sein, dass zusätzliche Sprach-CDs nötig sind.
Da hier nur Deutsch und Englisch verwendet wurden, ist die
erste Sprachen-CD ausreichend. Nebenbei bemerkt sind
die Nummern aller vier Export-CDs identisch. Das heißt alle
drei Sprachen-CDs haben diesselbe Nummer (das unterscheidet
sie von der Nummerierung der 4.6B IDES-Version).
Zum Zeitpunkt der Erstellung dieses Dokuments lief das
System unter FreeBSD 4.5-STABLE (20.03.2002).&sap;-NotesDie folgenden Anmerkungen sollten vor der Installation
von &sap.r3; gelesen werden, da sie
sich während der Installation als nützlich
erwiesen haben.&sap.r3; 4.6B, &oracle; 8.0.5NummerBezeichnung0171356&sap; Software on Linux: Essential Comments0201147INST: 4.6C R/3 Inst. on UNIX - &oracle;0373203Update / Migration &oracle; 8.0.5 --> 8.0.6/8.1.6
LINUX0072984Release of Digital UNIX 4.0B for &oracle;0130581R3SETUP step DIPGNTAB terminates0144978Your system has not been installed correctly0162266Questions and tips for R3SETUP on
Windows NT/W2K&sap.r3; 4.6C, &oracle; 8.1.7NummerBezeichnung0015023Initializing table TCPDB (RSXP0004) (EBCDIC)0045619R/3 with several languages or typefaces0171356&sap; Software on Linux: Essential Comments0195603RedHat 6.1 Enterprise version: Known problems0212876The new archiving tool SAPCAR0300900Linux: Released DELL Hardware0377187RedHat 6.2: important remarks0387074INST: R/3 4.6C SR2 Installation on UNIX0387077INST: R/3 4.6C SR2 Inst. on UNIX - &oracle;0387078&sap; Software on UNIX: OS Dependencies 4.6C SR2Hardware-AnforderungenDie folgende Ausstattung reicht für die Installation eines
&sap.r3; Systems aus. Für
Produktionszwecke benötigt man natürlich eine
exakte Bestimmung dieser Größen:Komponente4.6B4.6CProzessor2 x 800MHz &pentium; III2 x 800MHz &pentium; IIIHauptspeicher1GB ECC2GB ECCFestplattenplatz50-60GB (IDES)50-60GB (IDES)Für Produktionszwecke sind &xeon; Prozessoren mit
großem Cache, Hochgeschwindigkeitsspeicher (SCSI,
RAID Hardware Controller), USV (unterbrechungsfreie
Stromversorgung) und ECC-RAM empfehlenswert. Der große
Bedarf an Festplattenplatz ergibt sich durch das vorkonfigurierte
IDES System, welches während der Installation
27 GB Datenbankdateien erzeugt. Dieser Speicher ist
auch für neue Produktionssysteme und Anwendungsdaten
ausreichend.&sap.r3; 4.6B, &oracle; 8.0.5Folgende Standard-Hardware wurde verwendet: Ein
Doppelprozessorboard mit zwei 800 MHz &pentium; III
Prozessoren, Adaptec 29160 Ultra160 SCSI Adaptern
(zum Anschluß eines 40/80 GB DLT Bandlaufwerks und eines
CD-ROM-Laufwerks), &mylex; &acceleraid; (2 Kanäle,
Firmware 6.00-1-00 mit 32 MB RAM). An den
&mylex; RAID-Controller wurden 2 (gespiegelte) 17 GB
Festplatten sowie vier 36 GB Festplatten (RAID level 5)
angeschlossen.&sap.r3; 4.6C, &oracle; 8.1.7Für diese Installation wurde ein DELL PowerEdge 2500
verwendet: Ein Doppelprozessorboard mit zwei
1000 MHz &pentium; III Prozessoren
(256 kB Cache), 2 GB PC133 ECC SDRAM, PERC/3 DC PCI
RAID-Controller mit 128 MB, und einem EIDE DVD-ROM Laufwerk.
An den RAID-Controller sind zwei (gespiegelte) 18 GB Festplatten
sowie vier 36 GB Festplatten (RAID level 5) angeschlossen.Installation von FreeBSDAls erstes müssen Sie FreeBSD installieren.
Dazu gibt es mehrere Möglichkeiten: In den Beispielen
wurde FreeBSD 4.3 via FTP, FreeBSD 4.5 hingegen direkt
von CD installiert. Weitere Hinweise zur Installation
von &os; finden Sie in
.Aufteilung der FestplatteUm das Ganze zu vereinfachen, wurde sowohl für die
&sap.r3; 46B- als auch die
&sap.r3; 46C SR2-Installation die
gleiche Platteneinteilung verwendet. Nur die Gerätenamen
änderten sich, da die Installationen auf verschiedenen
Hardwareplattformen durchgeführt wurden (Insbesondere
/dev/da sowie
/dev/amr; wenn also jemand z.B.
ein AMI &megaraid; verwendet, so wird er
/dev/amr0s1a anstelle von
/dev/da0s1a vorfinden.):DateisystemGröße (1k-blocks)HDD-Größe (GB)Gemountet nach/dev/da0s1a1.016.3031//dev/da0s1b6Swap/dev/da0s1e2.032.6232/var/dev/da0s1f8.205.3398/usr/dev/da1s1e45.734.36145/compat/linux/oracle/dev/da1s1f2.032.6232/compat/linux/sapmnt/dev/da1s1g2.032.6232/compat/linux/usr/sapKonfigurieren und initialisieren Sie die zwei
logischen Platten mit der &mylex;- oder PERC/3 RAID Software,
bevor Sie beginnen. Diese kann während der BIOS-Bootphase
gestartet werden.Beachten Sie bitte, dass sich diese Platteneinteilung
etwas von den &sap;-Empfehlungen unterscheidet, da &sap;
vorschlägt, die &oracle;-Unterverzeichnisse
(und einige andere) separat einzuhängen – es
ist jedoch einfacher, diese als reale Unterverzeichnisse
zu erzeugen.make world und ein neuer KernelLaden Sie die neuesten STABLE-Quellen herunter.
Aktualisieren Sie das System und erzeugen Sie einen
neuen Kernel, nachdem Sie die Kernelkonfigurationsdatei
angepasst haben. Zusätzlich sollten Sie
die Kernel Parameter
einfügen, die sowohl von &sap.r3;
als auch von &oracle;
benötigt werden.Installation der Linux-UmgebungDas Linux-Basissystem installierenZuerst muss der Port
linux_base
als root installiert werden:&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make packageDie Linux-Entwicklungsumgebung installierenDie Linux-Entwicklungsumgebung wird benötigt, wenn Sie
&oracle; auf Ihrem FreeBSD-System
installieren wollen (siehe ):&prompt.root; cd /usr/ports/devel/linux_devtools
&prompt.root; make install distcleanDie Linux-Entwicklungsumgebung wurde hier jedoch nur für
die &sap.r3; 46B IDES-Installation
verwendet. Sie wird nicht benötigt, wenn die
&oracle;-Datenbank auf dem FreeBSD
System nicht neu gebunden wird. Dies ist dann der Fall,
wenn Sie den &oracle;
Tarball eines Linux-Systems verwenden.Notwendige RPMs installierenRPMsUm das R3SETUP-Programm
zu starten, wird PAM-Unterstützung benötigt.
Während der ersten Installation von
&sap; unter
FreeBSD 4.3-STABLE wurde versucht, zuerst alle von PAM
benötigten Pakete zu installieren. Anschließend
wurde die Installation von PAM erzwungen, was auch ohne
Probleme funktionierte. Für die folgende Installation
von &sap.r3; 4.6C SR2
wurde die Installation von PAM ohne die abhängigen
Pakete direkt erzwungen und es funktionierte ebenfalls.
Es sieht so aus, als würden die abhängigen Pakete
nicht benötigt.&prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
pam-0.68-7.i386.rpmUm den Intelligent-Agent von
&oracle; 8.0.5 auszuführen,
musste das RedHat Tcl-Paket
tcl-8.0.5-30.i386.rpm installiert werden,
da sonst das Binden (link)
während der &oracle;-Installation
nicht funktionierte. Es gibt noch weitere Punkte beim
Binden von &oracle;, die aber die Kombination
&oracle;-Linux
betreffen und nicht FreeBSD spezifisch sind.Zusätzliche HinweiseEine gute Idee ist es, linprocfs
in /etc/fstab einzufügen;
weitere Informationen dazu erhalten Sie in der Hilfeseite
&man.linprocfs.5;. Weiterhin sollten Sie in
der Datei /etc/sysctl.conf
die Zeile kern.fallback_elf_brand=3
einfügen.Die &sap.r3;-Umgebung erzeugenDie nötigen Dateisysteme erzeugenFür eine einfache Installation reicht es aus,
folgende Dateisysteme zu erzeugen:DateisystemeGröße in GB/compat/linux/oracle45 GB/compat/linux/sapmnt2 GB/compat/linux/usr/sap2 GBAußerdem müssen einige Links angelegt werden.
Ansonsten beschwert sich der
&sap;-Installer, wenn er die
erzeugten Links überprüft:&prompt.root; ln -s /compat/linux/oracle /oracle
&prompt.root; ln -s /compat/linux/sapmnt /sapmnt
&prompt.root; ln -s /compat/linux/usr/sap /usr/sapEine Fehlermeldung während der Installation (hier unter dem
PRD-System und
&sap.r3; 4.6C SR2 könnte
beispielsweise so aussehen:INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
/sapmnt/PRD/exe. Creating if it does not exist...
WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
/compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
program cannot go on as long as this link exists at this
location. Move the link to another location.
ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
'/sapmnt/PRD/exe'Benutzer und Verzeichnisse anlegen&sap.r3; benötigt zwei
Benutzer und drei Benutzergruppen. Die Benutzernamen
hängen von der (aus drei Buchstaben bestehenden)
SAP-System-ID (SID) ab. Einige
dieser SIDs sind von &sap;
reserviert (z.B. SAP und
NIX. Für eine komplette
Übersicht schlagen Sie bitte in der
&sap;-Dokumentation
nach. Für die IDES-Installation wurde IDS
verwendet, für die 4.6C-SR2-Installation
PRD, da das System für
Produktionszwecke eingesetzt werden sollte. Daraus ergaben
sich folgende Gruppen (die Gruppen-IDs können variieren,
es handelt sich nur um Werte, die für diese spezielle
Installation verwendet wurden):Gruppen-IDGruppen-NameBeschreibung100dbaDatenbank-Administrator101sapsysSAP System102operDatenbank-OperatorBei einer
Standard-&oracle;-Installation
wird nur die Gruppe dba verwendet.
Für die Gruppe oper wird
ebenfalls die Gruppe dba verwendet
(weitere Informationen finden sich in der
&oracle;- und
&sap;-Dokumentation).Zusätzlich werden auch folgende Benutzer
benötigt:Benutzer-IDBenutzernameGenerischer NameGruppeZusätzliche GruppenBeschreibung1000idsadm/prdadmsidadmsapsysoperSAP Administrator1002oraids/oraprdorasiddbaoper&oracle; AdministratorFür das Anlegen des &sap;-Administrators mittels
&man.adduser.8; werden folgende Einträge
(beachten Sie bitte die Shell und das Heimatverzeichnis)
benötigt:Name: sidadm
Password: ******
Fullname: SAP Administrator SID
Uid: 1000
Gid: 101 (sapsys)
Class:
Groups: sapsys dba
HOME: /home/sidadm
Shell: bash (/compat/linux/bin/bash)und für den Datenbank-Administrator:Name: orasid
Password: ******
Fullname: Oracle Administrator SID
Uid: 1002
Gid: 100 (dba)
Class:
Groups: dba
HOME: /oracle/sid
Shell: bash (/compat/linux/bin/bash)Wenn Sie beide Gruppen (dba und
oper) verwenden, sollte auch die Gruppe
oper hinzugefügt werden.Verzeichnisse erzeugenDiese Verzeichnisse werden gewöhnlich als eigene
Dateisysteme erzeugt und gemountet. Letztlich liegt dies
aber an Ihren Anforderungen an das System. Hier wurden
sie als einfache Verzeichnisse angelegt, die sich alle im
gleichen RAID5 befinden:Zuerst werden die Eigentümer und Rechte für
einige Verzeichnisse (als Benutzer root)
gesetzt:&prompt.root; chmod 775 /oracle
&prompt.root; chmod 777 /sapmnt
&prompt.root; chown root:dba /oracle
&prompt.root; chown sidadm:sapsys /compat/linux/usr/sap
&prompt.root; chmod 775 /compat/linux/usr/sapDanach werden (als Benutzer
orasid) einige
Verzeichnisse erzeugt, die alle Unterverzeichnisse von
/oracle/SID sind:&prompt.root; su - orasid
&prompt.root; cd /oracle/SID
&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB
&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6
&prompt.root; mkdir saparch sapreorg
&prompt.root; exitFür die &oracle; 8.1.7-Installation
werden ebenfalls zusätzliche Verzeichnisse benötigt:&prompt.root; su - orasid
&prompt.root; cd /oracle
&prompt.root; mkdir 805_32
&prompt.root; mkdir client stage
&prompt.root; mkdir client/80x_32
&prompt.root; mkdir stage/817_32
&prompt.root; cd /oracle/SID
&prompt.root; mkdir 817_32Das Verzeichnis client/80x_32
muss genau so genannt werden. Versuchen Sie nicht,
das x durch eine Zahl oder
einen Buchstaben zu ersetzen.Im dritten Schritt werden wiederum Verzeichnisse (als Benutzer
sidadm) erzeugt:&prompt.root; su - sidadm
&prompt.root; cd /usr/sap
&prompt.root; mkdir SID
&prompt.root; mkdir trans
&prompt.root; exitEinträge in /etc/services&sap.r3; benötigt
einige Einträge in /etc/services,
die während der Installation unter FreeBSD nicht
richtig gesetzt werden. Sie benötigen mindestens
die zur Instanzennummer, in diesem Fall 00,
passenden Einträge. Es ist auch möglich,
direkt alle Einträge für
dp, gw,
sp und ms
von 00 bis 99
einzufügen. Wenn Sie einen
SAP-Router verwenden, oder
den Zugang zu &sap;-OSS benötigen,
müssen Sie auch 99 einfügen,
da der Port 3299 normalerweise für den
SAP-Router-Prozess auf
dem Zielsystem benötigt wird:sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number
sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number
sapsp00 3400/tcp # 3400 + Instance-Number
sapms00 3500/tcp # 3500 + Instance-Number
sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number
sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-NumberNotwendige LokalisierungenLocale&sap; benötigt
mindestens zwei Lokalisierungen, die nicht Teil der
RedHat-Standardinstallation sind. &sap; bietet
diese als RPMs auf ihrem FTP-Server als Downloads
an (diese sind aber nur dann zugänglich, wenn Sie
ein Kunde mit OSS-Zugang sind). Für eine
Übersicht der notwendigen RPMs lesen Sie bitte den
&sap;-Hinweis 0171356.Es ist auch möglich, nur die passenden Links
(z.B. von de_DE und en_US)
zu erzeugen, diese Vorgehensweise wird aber nicht nicht
empfohlen (obwohl es bisher beim IDES-System ohne Probleme
funktioniert hat). Folgende Lokalisationen werden
benötigt:
- de_DE.ISO-8859-1
-en_US.ISO-8859-1
+ de_DE.ISO8859-1
+en_US.ISO-88591Erzeugen Sie die Links wie folgt:&prompt.root; cd /compat/linux/usr/share/locale
-&prompt.root; ln -s de_DE de_DE.ISO-8859-1
-&prompt.root; ln -s en_US en_US.ISO-8859-1
+&prompt.root; ln -s de_DE de_DE.ISO8859-1
+&prompt.root; ln -s en_US en_US.ISO8859-1Sind diese nicht vorhanden, wird es während
der Installation zu einigen Problemen kommen. Wenn diese
konsequent ignoriert werden (indem der fehlgeschlagene
Schritt in CENTRDB.R3S auf
OK gesetzt wird), ist es ohne
größeren Aufwand nicht mehr möglich, sich am
&sap;-System anzumelden.Kernel-TuningKernel Tuning&sap.r3;-Systeme verbrauchen
sehr viele Ressourcen. Deshalb wurden folgende Parameter
in die Kernelkonfigurationsdatei eingefügt:# Set these for memory pigs (SAP and Oracle):
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
# System V options needed.
options SYSVSHM #SYSV-style shared memory
options SHMMAXPGS=262144 #max amount of shared mem. pages
#options SHMMAXPGS=393216 #use this for the 46C inst.parameters
options SHMMNI=256 #max number of shared memory ident if.
options SHMSEG=100 #max shared mem.segs per process
options SYSVMSG #SYSV-style message queues
options MSGSEG=32767 #max num. of mes.segments in system
options MSGSSZ=32 #size of msg-seg. MUST be power of 2
options MSGMNB=65535 #max char. per message queue
options MSGTQL=2046 #max amount of msgs in system
options SYSVSEM #SYSV-style semaphores
options SEMMNU=256 #number of semaphore UNDO structures
options SEMMNS=1024 #number of semaphores in system
options SEMMNI=520 #number of semaphore indentifiers
options SEMUME=100 #number of UNDO keysDie minimalen Werte sind in der von &sap; kommenden
Dokumentation festgelegt. Da es keine Beschreibung für
Linux (und daher auch nicht für FreeBSD) gibt,
entnehmen Sie weitere Informationen dem HP-UX-Abschnitt (32-Bit).
Da das System für die 4.6C SR2-Installation über
mehr Hauptspeicher verfügte, können die
Shared-Segments für &sap; und
&oracle; größer sein.
Wählen Sie daher eine größere Anzahl von
Shared-Memory-Pages.Bei einer Standard-Installation von
FreeBSD 4.5 auf &i386;-Systemen belassen Sie
MAXDSIZ und DFLDSIZ
auf dem Maximum von 1 GB. Ansonsten könnten
seltsame Fehlermeldungen, wie
ORA-27102: out of memory oder
Linux Error: 12: Cannot allocate memory
auftreten.&sap.r3; installierenDie &sap; CD-ROMs vorbereitenFür eine Installation werden viele CD-ROMs benötigt,
die gemountet und ungemountet werden müssen. Wenn
Sie genügend CD-ROM-Laufwerke haben, können Sie
alle gleichzeitig gemountet werden. Ansonsten kopiert man die
CD-ROM-Inhalte einfach in die entsprechenden Verzeichnisse,/oracle/SID/sapreorg/cd-namewobei cd-nameKERNEL,
RDBMS, EXPORT1,
EXPORT2, EXPORT3,
EXPORT4, EXPORT5 und
EXPORT6 bei einer 4.6B/IDES-Installation und
KERNEL, RDBMS,
DISK1, DISK2,
DISK3, DISK4 und
LANG bei einer 4.6C SR2-Installation
entspricht. Die Dateinamen auf den gemounteten CDs sollten
aus Großbuchstaben bestehen. Ist dies nicht der Fall,
verwenden Sie zum Mounten die Option . Für das
Kopieren der CD-Inhalte verwenden Sie folgenden Befehle:&prompt.root; mount_cd9660 -g /dev/cd0a /mnt
&prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/cd-name
&prompt.root; umount /mntDas Installations-Skript ausführenAls erstes müssen Sie ein Installationsverzeichnis
anlegen:&prompt.root; cd /oracle/SID/sapreorg
&prompt.root; mkdir install
&prompt.root; cd installAnschließend wird das Installations-Skript gestartet,
das nahezu alle relevanten Daten in das Installationsverzeichnis
kopiert:&prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SHDie IDES-Installation (4.6B) wird mit einem vollständig
angepassten &sap.r3; Demo-System geliefert, das heißt
es gibt sechs statt drei Export-CDs. Da
CENTRDB.R3S
für eine Standard-Zentralinstanz
(&r3; plus Datenbank)
ausgelegt ist, aber nicht für eine IDES-Zentralinstanz,
muss die passende CENTRDB.R3S-Datei
manuell aus dem Verzeichnis
EXPORT1 in das
Installationsverzeichnis kopiert werden, da
R3SETUP ansonsten nur nach drei
EXPORT-CDs verlangt.Die aktuellere Version &sap; 4.6C SR2
wird mit vier EXPORT-CDs geliefert. Die die Installation
überwachende Parameter-Datei heißt hier
CENTRAL.R3S. Im Gegensatz zu früheren
Versionen gibt es nun keine separaten Vorlagen für
die Installation von Zentralinstanzen mit und ohne Datenbank mehr.
&sap; verwendet eine
eigene Vorlage für die
Datenbankinstallation. Um die Installation später
erneut starten, ist es jedoch ausreichend,
die Installation mit der ursprünglichen Datei zu starten.Während und nach der Installation benötigt
&sap;hostname,
um den Rechnernamen, aber nicht den vollständigen
Domain-Namen zu erhalten. Setzen Sie also entweder den
Rechnernamen entsprechend, oder setzen Sie einen Alias mit
alias hostname='hostname -s'
für die Benutzer
orasid und
sidadm
(Und zusätzlich für root.
Dies zumindest für die Installationsschritte, die als
root ausgeführt werden müssen.).
Außerdem ist es möglich, nur die während
der &sap;-Installation erstellten
Dateien .profile und
.login beider Benutzer anzupassen.R3SETUP 4.6B startenStellen Sie sicher, dass LD_LIBRARY_PATH korrekt
gesetzt wurde:&prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/libGehen Sie in das Installationsverzeichnis und starten Sie
R3SETUP als root:&prompt.root; cd /oracle/IDS/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRDB.R3SDas Skript stellt anschließend einige Fragen
(Vorgaben stehen dabei in Klammern, gefolgt von den
aktuellen Eingaben):FrageVorgabeEingabeEnter SAP System ID[C11]IDSEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[troubadix.domain.de]EnterEnter name of SAP db host[troubadix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (1) Oracle 8.0.5,
(2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.61EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/IDS/sapreorg/KERNELEnter path to RDBMS CD[/sapcd]/oracle/IDS/sapreorg/RDBMSEnter path to EXPORT1 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT1Directory to copy EXPORT1 CD[/oracle/IDS/sapreorg/CD4_DIR]EnterEnter path to EXPORT2 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT2Directory to copy EXPORT2 CD[/oracle/IDS/sapreorg/CD5_DIR]EnterEnter path to EXPORT3 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT3Directory to copy EXPORT3 CD[/oracle/IDS/sapreorg/CD6_DIR]EnterEnter path to EXPORT4 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT4Directory to copy EXPORT4 CD[/oracle/IDS/sapreorg/CD7_DIR]EnterEnter path to EXPORT5 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT5Directory to copy EXPORT5 CD[/oracle/IDS/sapreorg/CD8_DIR]EnterEnter path to EXPORT6 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT6Directory to copy EXPORT6 CD[/oracle/IDS/sapreorg/CD9_DIR]EnterEnter amount of RAM for SAP + DB850Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[101]EnterEnter Group-ID of oper[102]EnterEnter Group-ID of dba[100]EnterEnter User-ID of sidadm[1000]EnterEnter User-ID of orasid[1002]EnterNumber of parallel procs[2]EnterWenn Sie die CD-Inhalte nicht in verschiedene
Verzeichnisse kopiert haben, findet das
&sap;-Installationsprogramm
die benötigten CDs nicht (diese sind durch die Datei
LABEL.ASC gekennzeichnet) und
würde von Ihnen verlangen, entweder die CD einzulegen
und zu mounten oder den entsprechenden mount-Pfad
einzugeben.CENTRDB.R3S ist möglicherweise
nicht fehlerfrei. Im vorliegenden Fall wurde die CD EXPORT4
zwar erneut verlangt, dennoch wurde der richtige Schlüssel
(6_LOCATION, danach 7_LOCATION) vorgeschlagen.
Daher ist es problemlos möglich, durch Eingabe der
korrekten Werte fortzufahren.Abgesehen von einigen kleineren (unten angeführten)
Problemen, sollte nun bis zur Installation der
&oracle;-Datenbank alles ohne Probleme
ablaufen.R3SETUP 4.6C SR2 startenStellen Sie sicher, dass LD_LIBRARY_PATH
korrekt gesetzt ist. Dieser Wert unterscheidet sich von dem der
4.6B-&oracle; 8.0.5-Installation:&prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/libGehen Sie in das Installationsverzeichnis und führen
Sie R3SETUP als
root aus:&prompt.root; cd /oracle/PRD/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRAL.R3SDas Skript stellt anschließend einige Fragen
(Vorgaben in Klammern, gefolgt von den aktuellen Eingaben):FrageVorgabeEingabeEnter SAP System ID[C11]PRDEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[majestix]EnterEnter Database System ID[PRD]PRDEnterEnter name of SAP db host[majestix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (2) Oracle 8.1.72EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/PRD/sapreorg/KERNELEnter amount of RAM for SAP + DB20441800Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[100]EnterEnter Group-ID of oper[101]EnterEnter Group-ID of dba[102]EnterEnter User-ID of oraprd[1002]EnterEnter User-ID of prdadm[1000]EnterLDAP support3Enter (no support)Installation step completed[1] (continue)EnterChoose installation service[1] (DB inst,file)EnterBisher verursacht das Anlegen von Benutzern eine
Fehlermeldung während der Installation, und zwar
in den Stadien OSUSERDBSID_IND_ORA (beim Anlegen
des Benutzers orasid),
sowie in OSUSERSIDADM_IND_ORA (beim Anlegen des Benutzers
sidadm).Abgesehen von einigen kleineren (unten angeführten)
Problemen, sollte nun bis zur Installation der
&oracle;-Datenbank alles ohne
Probleme ablaufen.&oracle; 8.0.5 installierenLesen Sie bitte die entsprechenden
&sap;-Hinweise und
&oracle;-Readmes für Probleme,
die Linux
und die &oracle;-Datenbank betreffen.
Die meisten (wenn nicht alle) Probleme
werden durch inkompatible Bibliotheken verursacht.Weiteres zur
&oracle;-Installation
finden Sie im Kapitel Installation
von &oracle;.&oracle; 8.0.5 mit orainst installierenWenn &oracle; 8.0.5 verwendet
wird, werden einige zusätzliche Bibliotheken benötigt,
da &oracle; 8.0.5 mit einer
alten Version von glibc verlinkt wurde, RedHat 6.1 aber
bereits eine aktuellere Version verwendet. Daher müssen
Sie folgende zusätzliche Pakte installieren, um sicherzustellen,
dass die Verlinkung ordnungsgemäß erfolgt:compat-libs-5.2-2.i386.rpmcompat-glibc-5.2-2.0.7.2.i386.rpmcompat-egcs-5.2-1.0.3a.1.i386.rpmcompat-egcs-c++-5.2-1.0.3a.1.i386.rpmcompat-binutils-5.2-2.9.1.0.23.1.i386.rpmLesen Sie bitte die entsprechenden &sap;-Hinweise
und die &oracle;-Readmes.
Ist dies nicht möglich (z.B. aus Zeitmangel, oder bei
Nichtvorhandensein dieser Unterlagen), besteht auch die
Möglichkeit, die originalen Binärdateien oder die
verlinkten Binärdateien eines RedHat-Systems zu
verwenden.Um den Intelligent-Agent zu kompilieren, muss
das RedHat Tcl-Paket installiert sein. Wenn Sie
tcl-8.0.3-20.i386.rpm nicht bekommen
können, sollte es auch problemlos möglich sein,
eine neuere Version, z.B.
tcl-8.0.5-30.i386.rpm für
RedHat 6.1, zu verwenden.Vom Binden abgesehen, läuft die Installation
wie folgt ab:&prompt.root; su - oraids
&prompt.root; export TERM=xterm
&prompt.root; export ORACLE_TERM=xterm
&prompt.root; export ORACLE_HOME=/oracle/IDS
&prompt.root; cd $ORACLE_HOME/orainst_sap
&prompt.root; ./orainstBestätigen Sie alle Meldungen mit Enter,
bis die Software installiert ist. Einzige Ausnahme ist die
Frage nach der Installation des &oracle; On-Line
Text Viewers. Dieser ist unter Linux (noch)
nicht verfügbar. Daher muss diese Option deaktiviert werden.
Anschließend will sich &oracle;
unter Verwendung von i386-glibc20-linux-gcc
anstelle der verfügbaren gcc,
egcs oder
i386-redhat-linux-gcc verlinken.Auf Grund zeitlicher Einschränkungen wurden
für die Installation die Binärdateien der
&oracle; 8.0.5 PreProduction-Version
verwendet, nachdem sich der erste Versuch, die Version
von der RDBMS-CD zum Laufen zu bringen, sowie die
richtigen RPMs zu finden und zu installieren,
zum Alptraum entwickelt hatte.&oracle; 8.0.5 Pre-Production für
Linux (Kernel 2.0.33) installierenDiese Installation ist relativ einfach. Mounten Sie die
CD und starten Sie den Installer. Danach wählen Sie
das &oracle;-Heimatverzeichnis und kopieren Sie die
Binärdateien dorthin. Die Überreste der
vorherigen RDBMS-Installationsversuche werden dabei nicht
entfernt.Danach konnte die
&oracle;-Datenbank
ohne Probleme gestartet werden.Das &oracle; 8.1.7-Linux-Archiv entpackenNehmen Sie das aus dem Installationsverzeichnis eines
Linux-Systems erstellte Archiv oracle81732.tgz
und entpacken Sie es nach
/oracle/SID/817_32/.Mit der &sap.r3;-Installation fortfahrenÜberprüfen Sie als Erstes die
Umgebungseinstellungen der Benutzer
idsamd(sidadm) und
oraids (orasid).
Beide sollten nun die Dateien .profile,
.login und .cshrc
enthalten, die alle hostname benutzen.
Falls der Rechnername Ihres Systems der vollständige Rechnername
ist, müssen Sie in allen drei Dateien
hostname in hostname -s
ändern.Datenbanken ladenDanach kann R3SETUP entweder erneut
gestartet oder fortgesetzt werden (je nachdem, ob Sie das
Programm zuvor beendet hatten oder nicht).
R3SETUP erzeugt nun die Tablespaces und
lädt die Daten (für 46B IDES von EXPORT1 bis
EXPORT6, für 46C von DISK1 bis DISK4) mittels
R3load in die Datenbank.Wenn das Laden der Datenbank abgeschlossen ist
(dieser Vorgang kann einige Stunden dauern!), werden
einige Passwörter angefordert. Für
Testinstallationen können auch
Standard-Passwörter verwendet werden. Liegt
Ihnen allerdings etwas an der Sicherheit Ihres Systems,
so verwenden Sie andere Passwörter.FrageEingabeEnter Password for sapr3sapEnterConfirum Password for sapr3sapEnterEnter Password for syschange_on_installEnterConfirm Password for syschange_on_installEnterEnter Password for systemmanagerEnterConfirm Password for systemmanagerEnterAn diesem Punkt gab es während der 4.6B-Installation
einige Probleme mit dipgntab.ListenerStarten Sie den &oracle;-Listener als Benutzer
orasid
wie folgt:&prompt.user; umask 0; lsnrctl startAnsonsten könnten Sie die Meldung
ORA-12546 erhalten,
da die Sockets nicht über die korrekten Berechtigungen
verfügen werden. Lesen Sie dazu auch den
&sap;-Hinweis 072984.MNLS-Tabellen aktualisierenWenn Sie Nicht-Latin-1-Sprachen in das
&sap;-System
einbauen wollen, müssen Sie die MNLS
(Multi National Language Support)-Tabellen aktualisieren.
Dies wird in den SAP-OSS-Hinweisen 15023 und 45619 beschrieben.
Ansonsten können Sie diese Frage während der
&sap;-Installation
überspringen.Wenn Sie MNLS nicht benötigen, ist es
trotzdem nötig, die Tabelle TCPDB zu überprüfen
und zu initialisieren, falls dies nicht bereits geschehen ist.
Lesen Sie die &sap;-Hinweise 0015023 und 0045619, falls Sie
weitere Informationen benötigen.Abschließende Aufgaben&sap.r3;-Lizenzschlüssel anfordernSie müssen Ihren
&sap.r3;-Lizenzschlüssel anfordern,
da die zur Installation verwendete Lizenz nur für
vier Wochen gültig ist. Dazu ermitteln Sie zuerst Ihren
Hardwareschlüssel. Melden Sie sich als
idsadm an und rufen
Sie saplicense auf:&prompt.root; /sapmnt/IDS/exe/saplicense -getWird saplicense ohne Optionen aufgerufen,
so erhalten Sie eine Übersicht der möglichen Optionen.
Nach Erhalt des Lizenzschlüssels kann dieser
installiert werden:&prompt.root; /sapmnt/IDS/exe/saplicense -installNun müssen Sie folgende Daten eingeben:SAP SYSTEM ID = SID, 3 Zeichen
CUSTOMER KEY = Hardware-Schlüssel, 11 Zeichen
INSTALLATION NO = Installation, 10 Ziffern
EXPIRATION DATE = JJJJMMTT, normalerweise "99991231"
LICENSE KEY = Lizenzschlüssel, 24 ZeichenBenutzer anlegenErzeugen Sie einen Benutzer innerhalb von client 000
(für einige Aufgaben muss dies innerhalb von
client 000 erfolgen, aber nicht als Benutzer
sap* und ddic).
Als Benutzername empfiehlt sich beispielsweise
wartung (oder auf Englisch
service). Benötigte
Profile sind sap_new und
sap_all. Aus Sicherheitsgründen
sollten die Passwörter der Standardbenutzer in allen
Clients geändert werden (dies gilt auch für die Benutzer
sap* und ddic).Transportsystem, Profile, Betriebsarten usw.
konfigurierenInnerhalb von client 000 führen andere Benutzer als
ddic und sap*
normalerweise folgende Aufgaben durch:AufgabeTransaktionKonfiguration des Transportsystems, beispielsweise als
Stand-Alone Transport Domain EntitySTMSErstellen und Editieren von ProfilenRZ10Pflege von Betriebsarten und InstanzenRZ04Diese sowie alle anderen Post-Installationsschritte
sind ausführlich in den &sap;-Installationsanleitungen
beschrieben.initsid.sap (initIDS.sap) anpassenDie Datei /oracle/IDS/dbs/initIDS.sap
enthält das &sap;-Sicherungsprofil. Hier sind die
Größe des verwendeten Band(laufwerks),
die Kompressionsart und so weiter festgelegt. Um dieses
Profil mit sapdba oder brbackup
auszuführen, wurden folgende Werte geändert:compress = hardware
archive_function = copy_delete_save
cpio_flags = "-ov --format=newc --block-size=128 --quiet"
cpio_in_flags = "-iuv --block-size=128 --quiet"
tape_size = 38000M
tape_address = /dev/nsa0
tape_address_rew = /dev/sa0Erklärungen:compress: Das verwendete Bandlaufwerk
war ein HP DLT1. Dieses unterstützt Hardware-Kompression.archive_function: Hier wird das
Standardverhalten beim Sichern von &oracle;-Archivprotokollen
festgelegt. Neue Protokolldateien werden auf Band
gespeichert, bereits gespeicherte erneut gespeichert und
anschließend gelöscht. Dies verhindert eine Vielzahl
von Problemen, falls Sie Ihre Datenbank wiederherstellen
müssen und dabei feststellen, dass eins Ihrer
Archivbänder defekt ist.cpio_flags: Standardmäßig
wird verwendet. Dies setzt die Blockgröße
auf 5120 Bytes. Für DLT-Bänder
werden von HP mindestens 32 K Blockgröße
empfohlen, daher wurde hier
verwendet, um 64 KB-blöcke zu erzeugen.
wurde benötigt, da das
Installationssystem über mehr als 65535 Inodes
verfügt. Die letzte Option ist notwendig, weil
brbackup sich sonst beschwert, wenn
die cpio die Anzahl der gespeicherten
Blöcke ausgibt.cpio_in_flags: Flags, die zum Laden
der Daten vom Band benötigt werden. Das Format wird
dabei automatisch erkannt.tape_size: Damit wird die maximale
Speicherkapazität des Bandes angegeben. Aus
Sicherheitsgründen (das Bandlaufwerk unterstützt
Hardware-Kompression) ist dieser Wert geringfügig kleiner
als der aktuelle Wert.tape_address: Nicht zurückspulendes
Gerät für cpio.tape_address_rew: Zurückspulendes
Gerät für cpio.Konfiguration nach InstallationsendeDie folgenden &sap;-Parameter sollten nach der
Installation optimiert werden (die Beispiele gelten
für IDES 46B, 1 GB Hauptspeicher):NameWertztta/roll_extension250000000abap/heap_area_dia300000000abap/heap_area_nondia400000000em/initial_size_MB256em/blocksize_kB1024ipc/shm_psize_4070000000&sap;-Hinweis 0013026:NameWertztta/dynpro_area2500000&sap;-Hinweis 0157246:NameWertrdisp/ROLL_MAXFS16000rdisp/PG_MAXFS30000Mit obigen Parametern und einem System mit 1 Gigabyte
Hauptspeicher, könnte der Speicherverbrauch in etwa
so aussehen:Mem: 547M Active, 305M Inactive, 109M Wired, 40M Cache, 112M Buf, 3492K FreeWährend der Installation auftretende ProblemeNeustarten von R3SETUP nach Behebung eines ProblemsR3SETUP bricht ab, wenn ein Fehler auftritt. Wenn Sie
(nach Durchsicht der jeweiligen Protokolldateien) den Fehler
behoben haben, müssen Sie R3SETUP erneut aufrufen,
indem Sie für den fehlerhaften Schritt als Option
REPEAT eingeben.Um R3SETUP erneut zu starten, rufen Sie die Datei
einfach mit der entsprechenden R3S-Datei
auf:&prompt.root; ./R3SETUP -f CENTRDB.R3Sfür 4.6B, oder mit&prompt.root; ./R3SETUP -f CENTRAL.R3Sfür 4.6C, unabhängig davon, ob der Fehler mit
CENTRAL.R3S oder mit
DATABASE.R3S auftrat.Zu bestimmten Zeitpunkten nimmt R3SETUP an, dass
sowohl der Datenbank- als auch die &sap;-Prozesse vorhanden
sind und laufen (da dies Schritte sind, die es bereits
ausgeführt hat). Sollten Fehler auftreten (z.B.
wenn sich die Datenbank nicht starten lässt),
müssen Sie sowohl die Datenbank als auch &sap; manuell
neu starten, nachdem Sie die Fehler behoben haben. Erst danach
darf R3SETUP erneut gestartet werden.Achten Sie auch darauf, den &oracle;-Listener erneut
zu starten (als Benutzer orasid
mittels umask 0; lsnrctl start), wenn
dieser beendet wurde (z.B. durch einen notwendigen
Neustart des Systems).Fehler im Stadium OSUSERSIDADM_IND_ORA bei der Ausführung von R3SETUPWenn sich R3SETUP in diesem Stadium beschwert, editieren
Sie die bei der Installation verwendete Version der
Vorlage (CENTRDB.R3S (4.6B) oder
entweder CENTRAL.R3S oder
DATABASE.R3S (4.6C)). Finden Sie
[OSUSERSIDADM_IND_ORA] oder suchen Sie nach dem einzigen
STATUS=ERROR-Eintrag und ändern
Sie die folgenden Werte:HOME=/home/sidadm (war voher leer)
STATUS=OK (hatte den Status ERROR)
Danach können Sie R3SETUP erneut aufrufen.Fehler im Stadium OSUSERDBSID_IND_ORA bei der
Ausführung von R3SETUPWahrscheinlich beschwert sich R3SETUP auch in diesem Stadium.
Der hier auftretende Fehler ähnelt dem im Abschnitt
OSUSERSIDADM_IND_ORA. Editieren Sie einfach die bei
der Installation verwendete Version der Vorlage
(das heißt CENTRDB.R3S (4.6B) oder
entweder CENTRAL.R3S oder
DATABASE.R3S (4.6C)). Finden Sie
[OSUSERDBSID_IND_ORA] oder suchen Sie nach dem einzigen
STATUS=ERROR-Eintrag und ändern
Sie folgenden Eintrag:STATUS=OKDanach können Sie R3SETUP erneut aufrufen.Fehler oraview.vrf FILE NOT FOUND bei der
&oracle;-InstallationSie haben die Option
&oracle; On-Line Text Viewer nicht deaktiviert,
bevor Sie die Installation gestartet haben. Per Voreinstellung
ist diese Option aktiviert, obwohl sie unter Linux gar nicht
verfügbar ist. Deaktivieren Sie daher diese Option im
&oracle;-Installationsmenü und starten Sie die Installation
erneut.Fehler TEXTENV_INVALID bei der Ausführung von R3SETUP,
RFC oder beim Start von SAPGUITritt dieser Fehler auf, so fehlt die korrekte Lokalisierung.
&sap;-Hinweis 0171356 führt die notwendigen RPMs auf,
die installiert sein müssen (zum Beispiel
saplocales-1.0-3,
saposcheck-1.0-1 für
RedHat 6.1). Falls Sie alle damit verbundenen Fehler
ignoriert haben, und bei der Ausführung von R3SETUP
den STATUS jeweils von ERROR auf OK (in CENTRDB.R3S)
gesetzt haben, um R3SETUP anschließend neu zu starten,
wurde das &sap;-System nicht ordnungsgemäß
konfiguriert. Das bedeutet, dass Sie nicht via
SAPgui am System anmelden können,
obwohl das System trotzdem gestartet werden kann. Ein Versuch,
sich über die alte Linux-SAPgui
anzumelden, führte zu folgenden Fehlermeldungen:Sat May 5 14:23:14 2001
*** ERROR => no valid userarea given [trgmsgo. 0401]
Sat May 5 14:23:22 2001
*** ERROR => ERROR NR 24 occured [trgmsgi. 0410]
*** ERROR => Error when generating text environment. [trgmsgi. 0435]
*** ERROR => function failed [trgmsgi. 0447]
*** ERROR => no socket operation allowed [trxio.c 3363]
SpeicherzugriffsfehlerDieses Verhalten kommt daher, weil &sap.r3; nun nicht
in der Lage ist, eine korrekte Lokalisierung zuzuweisen, und
sich daher nicht ordnungsgemäß konfigurieren kann
(durch fehlende Einträge in einigen Datenbank-Tabellen).
Um sich in &sap; anmelden zu können, müssen Sie
folgende Einträge zur Datei DEFAULT.PFL
(lesen Sie dazu auch Hinweis 0043288) hinzufügen:abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0BStarten Sie nun das &sap;-System neu. Sie sind nun in der Lage,
sich anzumelden, obwohl einige länderspezifische
Spracheinstellungen fehlerhaft sein könnten. Nachdem Sie diese
Ländereinstellungen korrigiert (und die korrekten
Lokalisierungen installiert) haben, können
Sie diese Einträge wieder aus
DEFAULT.PFL löschen und das
&sap;-System anschließend neu starten.ORA-00001Dieser Fehler trat nur bei einer Installation von
&oracle; 8.1.7 unter FreeBSD 4.5
auf. Dies geschah deshalb, weil sich die &oracle;-Datenbank nicht
initialisieren konnte und daher abstürzte. Dadurch
verblieben Semaphore und Shared-Memory
im System. Der nächste Startversuch führte dann
zur Meldung ORA-00001.Suchen Sie diese Semaphore mittels ipcs -a
und entfernen Sie sie mit ipcrm.ORA-00445 (Hintergrundprozess PMON wurde nicht gestartet)Dieser Fehler trat bei &oracle; 8.1.7
auf. Die Meldung erscheint, wenn die Datenbank mit dem
normalen startsap-Skript (zum Beispiel
startsap_majestix_00) aber als Benutzer
prdadm gestartet wird.Dies kann vermieden werden, indem die Datenbank als Benutzer
oraprd über svrmgrl
gestartet wird:&prompt.user; svrmgrl
SVRMGR> connect internal;
SVRMGR> startup;
SVRMGR> exitORA-12546 (den Listener mit den richtigen
Berechtigungen starten)Starten Sie den &oracle;-Listener als Benutzer
oraids mit folgendem Befehl:&prompt.root; umask 0; lsnrctl startAnsonsten könnten Sie die Meldung ORA-12546 erhalten,
da die Sockets nun nicht die richtigen Berechtigungen aufweisen.
Lesen Sie dazu auch den &sap;-Hinweis 0072984.ORA-27102 (kein freier Speicher mehr)Dieser Fehler trat auf, wenn versucht wurde, für
MAXDSIZ und DFLDSIZ
Werte über 1 GB (1024x1024x1024) festzulegen.
Zusätzlich führte dies zur Fehlermeldung
Linux Error 12: Cannot allocate memory.Fehler im Stadium [DIPGNTAB_IND_IND] bei der
Ausführung von R3SETUPFür allgemeine Informationen lesen Sie bitte den
&sap;-Hinweis 0130581 # (R3SETUP - Abbruch im Stadium
DIPGNTAB). Bei der IDES-spezifischen
Installation verwendete der Installationsprozess aus
irgendwelchen Gründen nicht den
korrekten &sap;-Systemnamen IDS, sondern den leeren
String "". Dies führte zu einigen kleineren Problemen
beim Zugriff auf bestimmte Verzeichnisse, da die Pfade durch
SID (in diesem Fall IDS) dynamisch
generiert werden. Das heißt anstatt auf/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00zuzugreifen, wurden folgende Pfade verwendet:/usr/sap//SYS/...
/usr/sap/D00Um dennoch mit der Installation fortfahren zu können,
wurden ein Link sowie ein zusätzliches Verzeichnis
erzeugt:&prompt.root; pwd
/compat/linux/usr/sap
&prompt.root; ls -l
total 4
drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00
drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS
lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 transDieses Verhalten wird auch in den &sap;-Hinweisen 0029227
und 0008401 beschrieben. Bei der Installtion von
&sap; 4.6C trat allerdings keines dieser
Probleme auf.Fehler im Stadium [RFCRSWBOINI_IND_IND] bei der
Ausführung von R3SETUPBei der Installation von &sap; 4.6C
trat dieser Fehler als Folge eines anderen, bereits vorher
aufgetretenen Fehlers auf. Daher müssen Sie sich
die entsprechenden Protokolldateien durchsehen, und danach das
wirkliche (bereits vorher aufgetretene) Problem beheben.Wenn Sie nach dem Durchsehen der Protokolldateien feststellen,
dass dieser Fehler wirklich der eigentliche Fehler ist
(lesen Sie dazu wiederum die &sap;-Hinweise), können
Sie den STATUS des betreffenden Schritts von ERROR auf OK
setzen (und zwar in der Datei CENTRDB.R3S).
Anschließend starten Sie R3SETUP erneut. Nach
der Installation müssen Sie den Report
RSWBOINS der Transaktion
SE38 ausführen. Lesen Sie den &sap;-Hinweis 0162266,
um weitere Informationen zu den Stadien
RFCRSWBOINI und RFCRADDBDIF
zu erhalten.Fehler im Stadium [RFCRADDBDIF_IND_IND] bei der
Ausführung von R3SETUPHier gilt das Gleiche wie für den letzten Fehler.
Stellen Sie durch Überprüfen der Protokolldateien
sicher, dass dieser Fehler nicht durch ein früheres
Problem verursacht wird.Wenn Sie sicher sind, dass &sap;-Hinweis 0162266 auf
Ihr System zutrifft, setzen Sie den STATUS des betreffenden
Stadiums von ERROR auf OK (und zwar in der Datei
CENTRDB.R3S). Anschließend starten
Sie R3SETUP erneut. Nach der Installation müssen Sie den
Report RADDBDIF der Transaktion SE38
ausführen.sigaction sig31: File size limit exceededDieser Fehler trat beim Start des &sap;-Prozesses
disp+work auf. Wird &sap; mit
startsap-Skript gestartet, werden Subprozesse gestartet,
deren Aufgabe es ist, alle anderen &sap;-Prozesse zu starten.
Als Folge davon erkennt startsap dabei auftretende
Fehler nicht.Um zu überprüfen, ob die &sap;-Prozesse korrekt
gestartet wurden, überprüfen Sie den Prozessstatus
mit ps ax | grep SID.
Sie erhalten dadurch eine Liste aller &oracle;- und &sap;-Prozesse.
Wenn einige Prozesse fehlen, oder Sie sich nicht mit dem
&sap;-System verbinden können, überprüfen Sie
wiederum die entsprechenden Protokolldateien, die sich unter
/usr/sap/SID/DVEBMGSnr/work/
befinden. Die zu durchsuchenden Dateien heißen
dev_ms und dev_disp.Wenn &oracle; und &sap; mehr Speicher anfordern als in der
Kernelkonfigurationsdatei festgelegt wurde, wird das
Signal 31 ausgeliefert. Der Fehler
kann behoben werden, indem im Kernel
ein größerer Wert verwendet wird.# larger value for 46C production systems:
options SHMMAXPGS=393216
# smaller value sufficient for 46B:
#options SHMMAXPGS=262144Der Start von saposcol schlug fehlDas Programm saposcol (Version 4.6D) kann
einige Probleme verursachen. Das
&sap;-System verwendet
saposcol,
um Daten über die Systemleistung zu sammeln.
Für die Benutzung des &sap;-Systems hingegen ist es es
nicht erforderlich. Daher handelt es sich hier auch
nur um ein kleineres Problem. Ältere Versionen
von saposcol (z.B. 4.6B) funktionieren, sammeln
allerdings nicht alle Daten (viele Aufrufe geben,
zum Beispiel die CPU-Nutzung, einfach
0 (Null) zurück.Weiterführende ThemenWenn Sie sich fragen, wie die Linux-Binärkompatibilität
unter FreeBSD realisiert wurde, sollten Sie diesen Abschnitt lesen.
Der Großteil der folgenden Informationen stammt aus einer
E-Mail, die von Terry Lambert (tlambert@primenet.com)
an die FreeBSD-Chat-Mailingliste
(freebsd-chat@FreeBSD.org) geschrieben wurde
(Message ID: <199906020108.SAA07001@usr09.primenet.com>).Wie funktioniert es?execution class loaderFreeBSD verfügt über eine execution class
loader genannte Abstraktion. Dabei handelt es sich um einen
Eingriff in den &man.execve.2; Systemaufruf.FreeBSD verfügt über eine Liste von Ladern, anstelle
eines einzigen, auf #!
zurückgreifenden Laders, um Shell-Interpreter oder Shell-Skripte
auszuführen.Historisch gesehen untersuchte der einzige, auf
UNIX-Plattformen vorhandene Lader die "magische Zahl"
(in der Regel die ersten 4 oder 8 Bytes der Datei), um
festzustellen, ob der Binärtyp dem System bekannt war.
War dies der Fall, wurde der Binärlader aufgerufen.Wenn es sich nicht um den zum System gehörigen Binärtyp
handelte, gab &man.execve.2; einen Fehler zurück,
und die Shell versuchte stattdessen, die Datei als Shell-Befehl
auszuführen.Dabei wurde als Standardeinstellung was auch immer die
aktuelle Shell ist festgelegt.Später wurde ein Hack in &man.sh.1; eingefügt,
der die zwei ersten Zeichen untersuchte. Wenn diese
:\n entsprachen,
wurde stattdessen die &man.csh.1;-Shell aufgerufen
(wir glauben, dass dies zuerst von SCO umgesetzt wurde).FreeBSD versucht heute eine Liste von Ladern, unter denen
sich ein allgemeiner Lader für Interpreter befindet. Der
auszuführende Interpreter wird im ersten, durch
Leerzeichen getrennten Feld, der #!-Zeile
- angegeben. Läßt sich der Interpreter nicht ermitteln,
+ angegeben. Lässt sich der Interpreter nicht ermitteln,
wird auf /bin/sh zurückgegriffen.ELFFür die Linux ABI-Unterstützung erkennt FreeBSD
die magische Zahl als ELF-Binärdatei (Zu diesem Zeitpunkt wird
nicht zwischen FreeBSD, &solaris;, Linux oder anderen Systemen
unterschieden, die über ELF-Binärdateien
verfügen.).SolarisDer ELF-Lader sucht nach einer speziellen
Kennzeichnung, die aus einem Kommentarabschnitt
in der ELF-Datei besteht, und die in SVR4/&solaris; ELF
Binärdateien nicht vorhanden ist.Damit Linux-Binärdateien (unter FreeBSD) funktionieren,
müssen sie als Linuxgekennzeichnet werden, und zwar durch
&man.brandelf.1;:&prompt.root; brandelf -t Linux fileNachdem dies geschehen ist, erkennt der ELF-Lader die
Linux-Kennzeichnung der Datei.ELFbrandelfWenn der ELF-Lader die Linux-Kennzeichnung
sieht, wird ein Zeiger in der proc-Struktur
ersetzt. Alle Systemaufrufe werden durch diesen Zeiger indiziert
(in einem traditionellen &unix; System wäre das ein
sysent[]-Strukturfeld, das die Systemaufrufe
enthält). Der Prozess wird weiterhin speziell gekennzeichnet,
so dass der Trap-vector im Signal-trampoline-code eine spezielle
Behandlung erfährt und das Linux-Kernelmodul verschiedene
kleinere Korrekturen vornehmen kann.Der Linux-Systemaufrufvektor enthält neben anderen
Dingen eine Liste der sysent[]-Einträge,
deren Adressen sich im Kernelmodul befinden.Wenn ein Linux-Programm einen Systemaufruf ausführt,
dereferenziert die Trap-Behandlungsroutine den Zeiger auf die
Eintrittspunkte für die Systemaufrufe und erhält damit die
Linux-Eintrittspunkte und nicht die FreeBSD-Eintrittspunkte.Zusätzlich verändert der
Linuxmodus die Systempfade dynamisch; genauso, wie dies die
Option beim Einbinden von Dateisystemen
macht (Achtung: nicht das Dateisystem unionfs!).
Zuerst wird die Datei im Verzeichnis /compat/linux/Originalpfad
gesucht, danach, wenn sie dort nicht gefunden
wurde, wird sie im FreeBSD-Verzeichnis
/Originalpfad
gesucht. Dadurch wird sichergestellt, dass
Binärdateien, die zur Ausführung andere
Binärdateien benötigen, ausgeführt
werden können (so dass alle Linux-Werkzeuge unter der
ABI laufen). Dies bedeutet auch,
dass Linux-Binärdateien FreeBSD-Binärdateien
laden und ausführen können, wenn keine passenden
Linux-Binärdateien vorhanden sind. Ein in
/compat/linux plaziertes &man.uname.1; kann
damit Linux-Programmen vorgaukeln, dass sie auf einem Linux-System
laufen.Im Endeffekt gibt es einen Linux-Kernel innerhalb des
FreeBSD-Kernels. Die Sprungtabellen für Linux-
beziehungsweise FreeBSD-Systemaufrufe verweisen allerdings auf
dieselben Funktionen, die Kerneldienste wie Dateisystemoperationen,
Operationen für den virtuellen Speicher,
Signalübermittlung und System V IPC bereitstellen,
Der einzige Unterschied ist, dass Binärdateien unter FreeBSD
FreeBSD-glue-Funktionen verwenden.
Linux-Binärdateien hingegen verwenden die
Linux-glue-Funktionen. Die meisten
älteren Betriebssysteme hatten ihre eigenen
glue-Funktionen: Funktionsadressen
in einem globalen, statischen sysent[]
Strukturfeld an Stelle von Funktionsadressen, die durch
einen dynamisch initialisierten Zeiger aus der
proc Struktur, die den Aufruf gemacht hatte,
dereferenziert wurden.Welche ist die echte FreeBSD-ABI? Das spielt keine Rolle.
Grundsätzlich ist der einzige Unterschied (zurzeit
ist das so; dies könnte sich in zukünftigen
Versionen leicht ändern und wird sich wahrscheinlich
auch ändern), dass die
FreeBSD-glue-Funktionen statisch in
den Kernel gelinkt sind, und dass die
Linux-glue-Funktionen statisch gelinkt
oder über ein Modul eingebunden werden können.Ja, aber ist das wirkliche eine Emulation? Nein. Es ist eine
Implementierung eines ABIs, keine Emulation. Es ist kein Emulator
(oder Simulator, um der nächsten Frage zuvorzukommen)
beteiligt.Warum wird es manchmal Linux-Emulation genannt?
Um es schwerer zu machen, FreeBSD zu verkaufen. Wirklich, das kommt
daher, weil dies zu einer Zeit implemtiert wurde,
in der es kein anderes Wort
(als Emulation) gab, das beschrieb, was vor sich ging.
Wenn der Kernel nicht entsprechend konfiguriert wurde oder das
Modul geladen wurde, war es falsch zu behaupten, FreeBSD würde
Linux-Binärprogramme ausführen. Man benötigte
ein Wort, das beschrieb, was da geladen
wurde – daher Der Linux-Emulator.
diff --git a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
index 7d36204140..ced2877a9b 100644
--- a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
@@ -1,3252 +1,3250 @@
Bezugsquellen für FreeBSDCD-ROM und DVD Verleger
- FreeBSD Pakete
+ FreeBSD-PaketeFreeBSD-Pakete (FreeBSD-CDs, zusätzliche Software und
gedruckte Dokumentation) erhalten Sie von mehreren
Händlern:CompUSA
WWW: Frys Electronics
WWW: FreeBSD-CDs und -DVDsDie FreeBSD-CDs und -DVDs werden von vielen Online-Händlern
angeboten:BSD Mall by Daemon NewsPO Box 161Nauvoo, IL62354USA
Telefon: +1 866 273-6255
Fax: +1 217 453-9956
E-Mail: sales@bsdmall.com
WWW: BSD-Systems
E-Mail: info@bsd-systems.co.uk
WWW: fastdiscs.com6 Eltham CloseLeeds, LS6 2TYUnited Kingdom
Telefon: +44 870 1995 171
E-Mail: sales@fastdiscs.com
WWW: FreeBSD Mall, Inc.3623 Sanford StreetConcord, CA94520-1405USA
Telefon: +1 925 674-0783
Fax: +1 925 674-0821
E-Mail: info@freebsdmall.com
WWW: Hinner EDVSt. Augustinus-Str. 10D-81825MünchenGermany
Telefon: (089) 428 419
WWW: Ikarios22-24 rue Voltaire92000NanterreFrance
WWW: JMC SoftwareIreland
Telefon: 353 1 6291282
WWW: Linux CD MallPrivate Bag MBE N348Auckland 1030New Zealand
Telefon: +64 21 866529
WWW: The Linux EmporiumHilliard House, Lester WayWallingfordOX10 9TAUnited Kingdom
Telefon: +44 1491 837010
Fax: +44 1491 837016
WWW: Linux+ DVD MagazineLewartowskiego 6Warsaw00-190Poland
Telefon: +48 22 860 18 18
E-Mail: editors@lpmagazine.org
WWW: Linux System Labs Australia21 Ray DriveBalwyn NorthVIC - 3104Australia
Telefon: +61 3 9857 5918
Fax: +61 3 9857 8974
WWW: LinuxCenter.RuGalernaya Street, 55Saint-Petersburg190000Russia
Telefon: +7-812-3125208
E-Mail: info@linuxcenter.ru
WWW: LieferantenWenn Sie FreeBSD-CD-ROM-Produkte weiterverkaufen möchten,
kontaktieren Sie einen der folgenden Lieferanten:Cylogistics809B Cuesta Dr., #2149Mountain View, CA94040USA
Telefon: +1 650 694-4949
Fax: +1 650 694-4953
E-Mail: sales@cylogistics.com
WWW: Ingram Micro1600 E. St. Andrew PlaceSanta Ana, CA92705-4926USA
Telefon: 1 (800) 456-8000
WWW: Kudzu, LLC7375 Washington Ave. S.Edina, MN55439USA
Telefon: +1 952 947-0822
Fax: +1 952 947-0876
E-Mail: sales@kudzuenterprises.comLinuxCenter.RuGalernaya Street, 55Saint-Petersburg190000Russia
Telefon: +7-812-3125208
E-Mail: info@linuxcenter.ru
WWW: Navarre Corp7400 49th Ave SouthNew Hope, MN55428USA
Telefon: +1 763 535-8333
Fax: +1 763 535-0341
WWW: FTP-ServerDie offiziellen Quellen von FreeBSD sind mit anonymous FTP
über ein weltweites Netz von FTP-Spiegeln erhältlich.
Obwohl
über eine gute Anbindung verfügt, sollten Sie einen
Spiegel in Ihrer Nähe verwenden (insbesondere, wenn Sie
selber einen Spiegel einrichten wollen).Die Datenbank
der FreeBSD-Spiegel ist aktueller als die folgende Liste, da
sie im Gegensatz zu einer statischen Liste die Informationen aus
dem DNS erhält.Sie können FreeBSD auch über anonymous FTP von den
folgenden Spiegeln beziehen. Wenn Sie FreeBSD über anonymous
FTP beziehen wollen, wählen Sie bitte einen Spiegel in Ihrer
Nähe. Die unter Haupt-Spiegel aufgeführten
Spiegel stellen normalerweise das komplette FreeBSD-Archiv
(alle momentan erhältlichen Versionen für jede
unterstützte Architektur) zur Verfügung. Wahrscheinlich
geht es aber schneller, wenn Sie einen Spiegel in Ihrer
Nähe benutzen. Die Länder-Spiegel stellen die neusten
Versionen für die beliebtesten Architekturen bereit,
sie stellen aber unter Umständen nicht das komplette
FreeBSD-Archiv bereit. Auf alle Server kann mit
anonymous FTP zugegriffen werden, einige Server bieten
auch andere Zugriffsmethoden an. Die zur Verfügung
stehenden Zugriffsmethoden sind bei jedem Server in Klammern
angegeben.
&chap.mirrors.ftp.inc;
Anonymous CVSEinführungCVSanonymousAnonymous CVS (oder anoncvs) dient zum
Synchronisieren mit entfernten Repositories und steht mit
den CVS Werkzeugen, die im FreeBSD
Basissystem enthalten sind, zur Verfügung. Benutzer von
FreeBSD können damit unter anderem lesende Operationen
auf den Anoncvs Servern des
FreeBSD-Projekts durchführen,
ohne über besondere Berechtigungen zu verfügen. Um es
zu benutzen, setzen Sie einfach die CVSROOT
Umgebungsvariable auf einen Anoncvs Server
und geben beim Login mit cvs login das
Passwort anoncvs an. Danach können
Sie mit &man.cvs.1; wie auf jedes lokale Repository (allerdings nur
lesend) zugreifen.cvs login speichert Passwörter
zur Authentifizierung an einem CVS Server in der Datei
.cvspass in Ihrem
HOME-Verzeichnis. Wenn diese Datei beim ersten
Benutzen von cvs login nicht existiert,
erhalten Sie vielleicht eine Fehlermeldung. In diesem Fall
legen Sie einfach eine leere .cvspass
Datei an und melden sich erneut an.CVSup und
Anoncvs bieten dieselbe
Funktionalität, die folgenden Kriterien helfen Ihnen zu
entscheiden, welche Methode Sie benutzen sollen.
CVSup
geht wesentlich effizienter mit Netzwerk-Ressourcen um und ist
auch technisch ausgereifter. Allerdings müssen Sie zuerst
einen speziellen Client installieren und konfigurieren, bevor Sie
CVSup benutzen können. Weiterhin
können Sie mit CVSup nur relativ
große Teile der Quellen, die Sammlungen
genannt werden, synchronisieren.Im Gegensatz dazu können Sie mit
Anoncvs jede beliebige Datei oder
indem Sie einfach den CVS Namen des
Moduls angeben, ein beliebiges Programm, wie ls
oder grep, bearbeiten. Natürlich
können Sie mit Anoncvs nur lesend
auf ein CVS Repository zugreifen.
Wenn Sie lokal mit dem FreeBSD-Repository entwickeln wollen, dann
ist CVSup die einzige Wahl.Benutzen von Anonymous CVSSetzen Sie einfach die CVSROOT
Umgebungsvariable, um &man.cvs.1; das
CVS Repository eines FreeBSD
- Anoncvs Servers bekannt zu geben.
+ Anoncvs-Servers bekannt zu geben.
Zurzeit stehen folgende Server zur Verfügung:Deutschland:
:pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs
(Benutzen Sie cvs login und das
Passwort anoncvs.)Deutschland:
:pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs
(rsh, pserver, ssh, ssh/2022)Frankreich:
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
(Das Passwort für pserver ist
anoncvs, ssh-Zugriffe
verwenden kein Passwort.)Japan:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
(Benutzen Sie cvs login und das
Passwort anoncvs.)Österreich:
:pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs
Benutzen Sie cvs login und ein
beliebiges Passwort.
-
- Schweden:
- freebsdanoncvs@anoncvs.se.FreeBSD.org:/home/ncvs
- (nur ssh ohne Passwort).
-
- SSH HostKey: 1024 a7:34:15:ee:0e:c6:65:cf:40:78:2d:f3:cd:87:bd:a6 root@apelsin.fruitsalad.org
-SSH2 HostKey: 1024 21:df:04:03:c7:26:3e:e8:36:1a:50:2d:c7:ae:b8:5f ssh_host_dsa_key.pub
-
-
USA:
freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
(nur ssh ohne Passwort).SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu
SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pubUSA:
anoncvs@anoncvs1.FreeBSD.org:/home/ncvs
(nur ssh ohne Passwort).SSH HostKey: 1024 4b:83:b6:c5:70:75:6c:5b:18:8e:3a:7a:88:a0:43:bb root@ender.liquidneon.com
SSH2 HostKey: 1024 80:a7:87:fa:61:d9:25:5c:33:d5:48:51:aa:8f:b6:12 ssh_host_dsa_key.pubMit CVS können Sie praktisch
jede Version von FreeBSD, die schon einmal existiert hat (oder in
manchen Fällen existieren wird) auschecken. Sie sollten
daher damit vertraut sein, wie Sie mit Tags unter &man.cvs.1;
arbeiten (die Option). Zudem müssen Sie
die Namen der Tags im FreeBSD-Repository kennen.Es gibt zwei verschiedene TagsTags sind
symbolische Namen, die im Repository vergeben werden.
: Tags, die Revisionen bezeichnen und Tags, die
Zweige bezeichnen. Die Ersten sind statisch und fest an eine
Revision gebunden. Ein Tag, das einen Zweig bezeichnet,
bezieht sich dagegen zu einem gegebenen Zeitpunkt immer auf die
aktuellste Revision. Da ein Tag eines Zweiges nicht an eine
bestimmte Revision gebunden ist, kann sich dessen Bedeutung von
heute auf morgen ändern.In finden Sie eine Liste der
gültigen Tags. Beachten Sie bitte, dass keines der
Tags auf die Ports-Sammlung anwendbar ist, da diese nicht
über Zweige verfügt.Wenn Sie ein Tag eines Zweiges verwenden, erhalten Sie die
aktuellsten Dateien dieses Entwicklungszweiges. Wenn Sie eine
frühere Revision erhalten möchten, können Sie zum
Beispiel einen Zeitpunkt mit der Option
angeben. Weitere Informationen dazu entnehmen Sie bitte
&man.cvs.1;.BeispieleIm Folgenden finden Sie einige Beispiele für den Umgang
mit Anonymous CVS. Sie sollten sich
aber die Manualpage von &man.cvs.1; sorgfältig durchlesen,
bevor Sie anfangen.&man.ls.1; von -CURRENT auschecken&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs co lsDen src/-Baum über
SSH auschecken&prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be establiestablished.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.&man.ls.1; aus dem 6-STABLE-Zweig auschecken&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs co -rRELENG_6 lsÄnderungen in &man.ls.1; zwischen 5.3 RELEASE und
5.4 RELEASE (als unified diff)&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE lsGültige Modulnamen herausfinden&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs co modules
&prompt.user; more modules/modulesWeitere RessourcenDie folgenden Ressourcen sind nützlich, um den Umgang
mit CVS zu lernen:CVS Tutorial von Cal Poly.
- CVS Home,
- die Homepage des CVS
- Projekts.
+ CVS Home,
+ die Homepage des CVS-Projekts.CVSweb das
Web Interface zu CVS des FreeBSD
Projekts.CTMCTMMit CTM
Abkürzung für CVS Through eMail
können Sie einen
entfernten Verzeichnisbaum mit einem zentralen Baum
synchronisieren. Es wurde extra zum Synchronisieren der FreeBSD
Quellen entwickelt, obwohl es mit der Zeit vielleicht auch andere
Anwendungen geben wird. Zurzeit existiert leider so gut wie keine
Dokumentation zum Erstellen der Deltas. Wenn Sie Hilfe
benötigen oder CTM für
andere Zwecke einsetzen wollen, wenden Sie sich bitte an
die Mailingliste &a.ctm-users.name;.Warum soll ich CTM benutzen?Mit CTM erhalten Sie eine lokale
Kopie des FreeBSD-Quellbaums, den es in mehreren
Varianten gibt. Sie können das ganze
Repository oder nur einen Zweig spiegeln. Wenn Sie ein aktiver
FreeBSD-Entwickler mit einer schlechten oder gar keiner TCP/IP
Verbindung sind, oder die Änderungen einfach automatisch
zugesandt bekommen wollen, dann ist CTM
das Richtige für Sie. Für die Zweige mit der
meisten Aktivität müssen Sie sich täglich bis zu drei
Deltas beschaffen, Sie sollten allerdings erwägen, die
Deltas automatisch über E-Mail zu beziehen. Die
Größe der Updates wird so klein wie möglich
gehalten. Normalerweise sind sie kleiner als 5 kB, manchmal
sind sie 10-50 kB groß (etwa jedes 10. Update) und ab
und an werden Sie auch einmal ein Update mit 100 kB oder
mehr erhalten.Sie sollten sich über die Vorbehalte gegen die
Verwendung der Quellen anstelle eines offiziellen Releases
bewusst sein. Das trifft besonders auf &os.current; zu, lesen
Sie dazu bitte den Abschnitt
&os.current;.Was brauche ich, um CTM zu
benutzen?Zwei Sachen: Das CTM Programm und
die initialen Deltas, von denen aus Sie auf die
aktuellen Stände kommen.CTM ist schon seit der
Version 2.0 Teil des FreeBSD-Basissystems. Sie finden es in
/usr/src/usr.sbin/ctm, wenn Sie eine Kopie
der Quellen besitzen.Die Deltas, die CTM verarbeitet,
können Sie über FTP oder E-Mail beziehen. Wenn Sie
über einen FTP Zugang zum Internet verfügen, erhalten
Sie die Deltas unter der folgenden URL:Die Deltas werden auch von
CTM Spiegeln
bereitgehalten.Wechseln Sie in das passende Verzeichnisse zum Beispiel
src-cur für &os.current; und laden Sie
sich von dort die Deltas herunter.Sie können die Deltas auch über E-Mail
beziehen.Abonnieren Sie dazu eine der
CTM-Verteilerlisten.
Über &a.ctm-cvs-cur.name; erhalten Sie den kompletten
CVS-Baum, über
&a.ctm-src-cur.name; erhalten Sie &os.current; und über
&a.ctm-src-4.name; erhalten Sie den FreeBSD
4.X-Zweig. Wenn Sie nicht wissen, wie Sie eine der
Mailinglisten abonnieren, folgen Sie einem der Verweise
von oben oder besuchen Sie die Seite &a.mailman.lists.link;.
Weitere Informationen erhalten Sie, wenn Sie dort
auf die gewünschte Liste klicken.Benutzen Sie ctm_rmail, um die
CTM Updates, die Sie per
E-Mail empfangen, auszupacken und anzuwenden. Wenn Sie diesen
Prozess automatisiert ablaufen lassen möchten,
können Sie dazu einen Eintrag in
/etc/aliases verwenden. Genauere
Informationen finden Sie in der Manualpage von
ctm_rmail.Sie sollten die Mailingliste &a.ctm-announce.name;
abonnieren, egal wie Sie die
CTM-Deltas erhalten.
Ankündigungen, die den Betrieb des
CTM-Systems betreffen, werden
nur auf dieser Liste bekannt gegeben. Klicken Sie
auf den Namen der Liste oder besuchen Sie die Seite
&a.mailman.lists.link;, um diese Liste zu abonnieren.Initialisieren von CTMBevor Sie die CTM Deltas benutzen
können, brauchen Sie einen Startpunkt, auf den die
nachfolgenden Deltas angewendet werden.Sie können natürlich mit einem leeren Verzeichnis
beginnen. In diesem Fall benötigen Sie ein
XEmpty-Delta, mit dem Sie den
CTM-Verzeichnisbaum initialisieren.
Wenn Sie Glück haben, finden Sie ein
XEmpty-Delta, mit dem sie beginnen können,
auf einer der CDs Ihrer Distribution.Da die Verzeichnisbäume mehrere Megabyte groß
sind, sollten Sie nach Möglichkeit etwas schon vorhandenes
benutzen. Wenn Sie eine -RELEASE CD besitzen, können Sie
die Quellen von dieser CD benutzen. Sie ersparen sich damit das
Übertragen großer Datenmengen.Die Deltas, mit denen Sie beginnen können, enthalten ein
X in ihrem Namen, wie in
src-cur.3210XEmpty.gz. Hinter dem
X wird der Startpunkt der Deltas
angegeben, in diesem Fall steht Empty
für ein leeres Verzeichnis. Nach etwa 100 Deltas wird ein
neues XEmpty-Delta erstellt.
Mit ungefähr 75 Megabyte komprimierter Daten sind diese
XEmpty-Deltas übrigens sehr
groß.Nachdem Sie Ihren Startpunkt festgelegt haben, benötigen
Sie alle Deltas mit einer höheren Nummer.Benutzen von CTMUm ein Delta einzuspielen, benutzen Sie das folgende
Kommando:&prompt.root; cd /Pfad/zu/den/Quellen
&prompt.root; ctm -v -v /Pfad/zu/den/Deltas/src-xxx.*CTM kann mit Deltas arbeiten, die
mit gzip komprimiert wurden. Sie brauchen die
Deltas vorher nicht mit gunzip zu
dekomprimieren und sparen damit Plattenplatz.Ihr Quellbaum wird erst dann verändert, wenn
CTM die Deltas sauber verarbeiten
kann. Die Integrität der Deltas und ihre Anwendbarkeit auf
den Quellbaum lassen sich durch die Angabe des Schalters
-c überprüfen,
CTM ändert in diesem Fall Ihren
Quellbaum nicht.CTM verfügt über weitere
Kommandozeilenoptionen, Informationen dazu finden Sie in der
Manualpage oder dem Quellcode.Das war schon alles. Um Ihre Quellen aktuell zu halten,
verwenden Sie CTM jedes Mal, wenn Sie
neue Deltas bekommen.Löschen Sie die Deltas nicht, wenn Sie diese nur schwer
wieder beschaffen können. Behalten Sie sie für den
Fall, das etwas passiert. Auch wenn Sie nur Disketten besitzen,
sollten Sie erwägen, die Deltas mit
fdwrite zu sichern.Umgang mit lokalen ÄnderungenEntwickler wollen mit den Dateien im Quellbaum
experimentieren und diese verändern. In beschränkter
Weise werden lokale Änderungen von
CTM unterstützt. Wenn
CTM die Datei foo
bearbeiten will, überprüft es zuerst ob die Datei
foo.ctm existiert. Wenn diese Datei
existiert, werden Änderungen in ihr anstatt in
foo vorgenommen.Mit diesem Verfahren ist eine leichte Handhabung lokaler
Änderungen möglich. Kopieren Sie die Dateien, die Sie
ändern möchten, in Dateien, die das Suffix
.ctm tragen. Sie können dann
ungestört mit dem Quellcode arbeiten, während
CTM die
.ctm Dateien aktualisiert.Weitere CTM-OptionenWas wird aktualisiert?Eine Liste der Änderungen, die
CTM an Ihrem Quellbaum vornehmen
wird, erhalten Sie, wenn Sie die Option
angeben.Das ist nützlich, wenn Sie Logs über die
Änderungen führen wollen, geänderte Dateien vor-
oder nachbearbeiten wollen, oder einfach ein bisschen
paranoid sind.Sicherungen vor einer Aktualisierung erstellenSie wollen vielleicht die Dateien, die durch eine
CTM Aktualisierung verändert
werden, sichern.Mit weisen Sie
CTM an, alle Dateien, die durch ein
CTM Delta verändert
würden, nach backup-file zu
sichern.Dateien ausschließenManchmal wollen Sie nur bestimmte Teile aktualisieren
oder nur bestimmte Dateien aus einer Folge
von Deltas extrahieren.Sie können die Liste der Dateien, mit denen
CTM arbeitet, einschränken,
indem Sie reguläre Ausdrücke mit den Optionen
und angeben.Wenn Sie eine aktuelle Kopie von
lib/libc/Makefile aus den gesicherten
CTM Deltas erhalten wollen, setzen
Sie das folgende Kommando ab:&prompt.root; cd /wo/Sie/es/auspacken/wollen/
&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*Die Optionen und
werden in der Reihenfolge angewandt, in der sie auf der
Kommandozeile angegeben wurden. Eine Datei wird nur dann von
CTM verarbeitet, wenn dies nach der
Anwendung der Optionen und
noch erlaubt ist.Pläne für CTMMehrere:Hinzufügen eines Authentifizierungsmechanismus,
damit gefälschte CTM-Deltas
erkannt werden können.Aufräumen der
CTM-Optionen, die mit der Zeit
unübersichtlich und irreführend wurden.VerschiedenesEs gibt Deltas für die Ports-Sammlung, die
aber nicht intensiv genutzt werden.CTM-SpiegelDie CTM-Deltas können Sie mit anonymous FTP von den folgenden
Spiegeln beziehen. Versuchen Sie bitte einen Spiegel in Ihrer
Nähe zu benutzen.Bei Problemen wenden Sie sich bitte an die
Mailingliste &a.ctm-users.name;.Kalifornien, Bay Area, Offizieller ServerSüdafrika, Backup-Server für alte DeltasTaiwan/R.O.C.Wenn die Liste keinen Spiegel in Ihrer Nähe enthält
oder Sie Probleme mit dem ausgewählten Spiegel haben, versuchen
Sie einen Spiegel mit einer Suchmaschine, wie
alltheweb, zu
finden.Benutzen von CVSupEinführungCVSup ist eine Anwendung, die
Verzeichnisbäume von einem entfernten
CVS-Server bereitstellt und
aktualisiert. Die Quellen von FreeBSD werden in einem
CVS-Repository auf einer
Entwicklungsmaschine in Kalifornien gepflegt. Mit
CVSup können sich FreeBSD-Benutzer
den eigenen Quellbaum auf aktuellem Stand halten.Zum Aktualisieren benutzt CVSup die
Pull-Methode, bei der die Aktualisierungen vom Client angefragt
werden. Der Server wartet dabei passiv auf Anfragen von Clients,
das heißt er verschickt nicht unaufgefordert
Aktualisierungen. Somit gehen alle Anfragen vom Client aus und die
Benutzer müssen CVSup entweder
manuell starten oder einen cron Job einrichten, um
regelmäßig Aktualisierungen zu erhalten.CVSup in genau dieser Schreibweise
bezeichnet die Anwendung, die aus dem Client cvsup
und dem Server cvsupd besteht.
cvsup läuft auf den Maschinen der Benutzer,
cvsupd läuft auf jedem der
FreeBSD-Spiegel.Wenn Sie die FreeBSD-Dokumentation und die Mailinglisten lesen,
werden Sie oft auf Sup, dem
Vorgänger von CVSup stoßen.
CVSup wird in gleicher Weise wie
Sup benutzt und verfügt sogar
über Konfigurationsdateien, die kompatibel zu denen von
Sup sind. Da
CVSup schneller und flexibler als
Sup ist, wird
Sup vom FreeBSD-Projekt nicht mehr
benutzt.Installation von CVSupCVSup können Sie leicht
installieren, wenn Sie das vorkompilierte Paket
net/cvsup aus der
Ports-Sammlung benutzen.
Alternativ können Sie
net/cvsup auch ausgehend von
den Quellen bauen, doch seien Sie gewarnt:
net/cvsup hängt vom
Modula-3 System ab, das viel Zeit und
Platz zum Herunterladen und Bauen braucht.Wenn Sie CVSup auf einer
Maschine ohne &xfree86;
oder &xorg;,
beispielsweise einem Server, benutzen, stellen Sie sicher,
dass Sie den Port ohne das
CVSup-GUI,
net/cvsup-without-gui
verwenden.Konfiguration von CVSupDas Verhalten von CVSup wird mit
einer Konfigurationsdatei gesteuert, die
supfile genannt wird. Beispiele für
Konfigurationsdateien finden Sie in dem Verzeichnis
.Ein supfile enthält die folgenden
Informationen:Welche Dateien Sie
erhalten wollen.Welche Versionen der
Dateien Sie benötigen.Woher Sie die Dateien
beziehen wollen.Wo Sie die erhaltenen
Dateien speichern.Wo Sie die
Status-Dateien aufbewahren wollen.In den folgenden Abschnitten erstellen wir ein typisches
supfile indem wir nach und nach diese Punkte
klären. Zuerst beschreiben wir aber den Aufbau dieser
Konfigurationsdatei.Ein supfile ist eine Textdatei.
Kommentare beginnen mit einem # und gelten bis zum
Zeilenende. Leerzeilen und Zeilen, die nur Kommentare enthalten,
werden ignoriert.Die anderen Zeilen legen die Dateien fest, die ein Benutzer
erhalten will. Der Server organisiert verschiedene Dateien in
einer Sammlung, deren Name auf einer Zeile angegeben
wird. Nach dem Namen der Sammlung können mehrere durch
Leerzeichen getrennte Felder folgen, die die oben angesprochenen
Informationen festlegen. Es gibt zwei Arten von Feldern: Felder,
die Optionen festlegen und Felder mit Parametern.
Optionen bestehen aus einem Schlüsselwort, wie
oder und
stehen alleine. Ein Parameterfeld beginnt mit einem
Schlüsselwort, dem = und ein Parameter,
wie in ,
folgt. Dieses Feld darf keine Leerzeichen enthalten.In einem supfile werden normalerweise
mehrere Sammlungen angefordert. Die erforderlichen Felder
können explizit für jede Sammlung angegeben werden,
dann werden jedoch die Zeilen ziemlich lang. Außerdem ist
dieses Vorgehen sehr unhandlich, da die meisten Felder für
alle Sammlungen gleich sind. CVSup
bietet die Möglichkeit, Vorgaben für die Felder der
Sammlungen festzulegen. Zeilen, die mit der Pseudo-Sammlung
*default beginnen, legen Optionen und Parameter
für nachfolgende Sammlungen im supfile
fest. Der Vorgabewert kann in der Zeile einer bestimmten Sammlung
überschrieben werden. Durch Hinzufügen weiterer
*default Zeilen können die Vorgaben auch
mitten im supfile überschrieben oder
erweitert werden.Mit diesem Wissen können wir nun ein
supfile erstellen, das den Quellbaum von
FreeBSD-CURRENT anfordert und
aktualisiert.Welche Dateien wollen Sie
empfangen?Dateien werden von CVSup in
Sammlungen organisiert. Die erhältlichen
Sammlungen werden später
beschrieben. Wir wollen den Quellbaum von FreeBSD empfangen,
der in der Sammlung src-all enthalten ist.
Das supfile enthält pro Zeile eine
Sammlung, in diesem Fall also nur eine einzige Zeile:src-allWelche Versionen der Dateien
werden benötigt?Mit CVSup können Sie jede
Version der Quellen bekommen, da der
cvsupd-Server seine Daten direkt aus
dem CVS-Repository bezieht. Sie
können die benötigten Versionen in den
Parameterfeldern tag= und
angeben.Achten Sie darauf, dass Sie das richtige
tag=-Feld angeben. Einige Tags sind nur
für spezielle Sammlungen gültig. Wenn Sie ein
falsches Tag angeben oder sich verschreiben, wird
CVSup Dateien löschen, die
Sie wahrscheinlich gar nicht löschen wollten.
Achten Sie insbesondere bei den
ports-*-Sammlungen darauf,
ausschließlichtag=. zu verwenden.Mit tag= wird ein symbolischer Name aus
dem Repository angegeben. Es gibt zwei verschiedene Tags:
Tags, die Revisionen bezeichnen und Tags, die Zweige
bezeichnen. Die ersteren sind statisch und fest an eine
Revision gebunden. Ein Tag, das einen Zweig bezeichnet,
bezieht sich dagegen zu einem gegebenen Zeitpunkt immer auf
die aktuellste Revision. Da ein Tag eines Zweiges nicht an
eine bestimmte Revision gebunden ist, kann sich dessen
Bedeutung von heute auf morgen ändern. zählt für Benutzer
relevante Tags auf. Wenn Sie in der Konfigurationsdatei ein
Tag, wie RELENG_4, angeben, müssen Sie
diesem tag= vorstellen:
tag=RELENG_4. Denken Sie daran, dass
es für die Ports-Sammlung nur tag=.
gibt.Achten Sie darauf, dass Sie den Namen eines Tags
richtig angeben. CVSup kann nicht
zwischen richtigen und falschen Tags unterscheiden. Wenn Sie
sich bei der Angabe eines Tags vertippen, nimmt
CVSup an, Sie hätten ein
gültiges Tag angegeben, dem nur keine Dateien zugeordnet
sind. Die Folge davon ist, dass Ihre vorhandenen Quellen
gelöscht werden.Wenn Sie ein Tag angeben, das sich auf einen Zweig bezieht,
erhalten Sie die aktuellsten Revisionen der Dateien auf diesem
Zweig. Wenn Sie eine frühere Revision erhalten
möchten, können Sie diese im
Feld angeben. Einzelheiten dazu finden Sie in der Manualpage
von cvsup.Wir möchten gerne FreeBSD-CURRENT beziehen und
fügen die folgende Zeile am Anfang
der Konfigurationsdatei ein:*default tag=.Eine wichtige Ausnahme ist wenn Sie weder ein
tag=-Feld noch ein date=-Feld
angeben. In diesem Fall erhalten Sie anstelle einer speziellen
Revision die wirklichen RCS-Dateien aus dem CVS-Repository
des Servers. Diese Vorgehensweise wird von Entwicklern
bevorzugt, da sie mit einem eigenen Repository leicht die
Entwicklungsgeschichte und Veränderungen von Dateien
verfolgen können. Dieser Vorteil muss allerdings mit
sehr viel Plattenplatz bezahlt werden.Woher sollen die Dateien
bezogen werden?Im host=-Feld wird angegeben, woher
cvsup die Dateien holen soll. Sie
können hier jeden der CVSup-Spiegel angeben, doch
sollten Sie einen Server in Ihrer Nähe auswählen.
Für dieses Beispiel wollen wir den erfundenen Server
cvsup99.FreeBSD.org
verwenden:*default host=cvsup99.FreeBSD.orgBevor Sie CVSup laufen
lassen, sollten Sie hier einen existierenden Server
einsetzen. Den zu verwendenden Server können Sie auf der
Kommandozeile mit
überschreiben.Wo sollen die Dateien
gespeichert werden?Im prefix=-Feld teilen Sie
cvsup mit, wo die Dateien gespeichert werden
sollen. In diesem Beispiel werden wir die Quelldateien direkt
im Verzeichnisbaum für Quellen
/usr/src ablegen. Das Verzeichnis
src ist schon in der Sammlung, die wir
beziehen enthalten, so dass wir die folgende Zeile
angeben:*default prefix=/usrWo sollen die
Statusinformationen von cvsup gespeichert
werden?cvsup legt in einem Verzeichnis
Statusinformationen ab, die festhalten, welche Versionen schon
empfangen wurden. Wir verwenden das Verzeichnis
/var/db:*default base=/var/dbWenn das Verzeichnis für die Statusinformationen nicht
existiert, sollten Sie es jetzt anlegen, da
cvsup ohne dieses Verzeichnis nicht
startet.Verschiedene Einstellungen:Eine weitere Zeile sollte normalerweise in jedem
supfile sein:*default release=cvs delete use-rel-suffix compressMit release=cvs wird angegeben,
dass der Server das FreeBSD-Haupt-Repository abfragen soll,
was praktisch immer der Fall ist (die Ausnahmen werden in
diesem Text nicht diskutiert).delete erlaubt es
CVSup, Dateien zu löschen.
Diese Option sollten Sie immer angeben, damit
CVSup Ihren Quellbaum auch wirklich
aktuell halten kann. CVSup
löscht nur Dateien für die es auch verantwortlich
ist. Andere Dateien, die sich in einem Baum unter Kontrolle
von CVSup befinden, werden nicht
verändert.Wenn Sie wirklich etwas über das obskure
use-rel-suffix erfahren wollen, lesen Sie
bitte in der Manualpage nach, ansonsten geben Sie es einfach an
und vergessen es.Wenn Sie compress angeben, werden Daten
auf dem Kommunikationskanal komprimiert. Wenn Sie über
eine T1-Leitung oder eine schnellere Netzanbindung
verfügen, brauchen Sie diese Option vielleicht nicht. In
allen anderen Fällen beschleunigt sie aber den
Ablauf.Zusammenfassung:Das vollständige supfile unseres
Beispiels sieht nun so aus:*default tag=.
*default host=cvsup99.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress
src-allDie refuse DateiCVSup benutzt die Pull-Methode, das
heißt wenn sich ein Client mit einem Server verbindet,
erhält er eine Liste der verfügbaren Sammlungen und
wählt aus diesen die herunterzuladenden Dateien aus. In der
Voreinstellung wählt der Client alle Dateien aus, die zu
einer gegebenen Sammlung und zu einem gegebenen Tag passen.
Dieses Verhalten ist aber nicht immer erwünscht, besonders
wenn Sie die doc, ports
oder www Verzeichnisbäume
synchronisieren. Die wenigsten Leute beherrschen vier oder fünf
Sprachen und benötigen Dateien mit speziellen Anpassungen
für eine Sprache. Wenn Sie die Ports-Sammlung
synchronisieren, können Sie anstelle von
ports-all einzelne Ports, wie
ports-astrology oder
ports-biology angeben. Die
doc und www
Verzeichnisbäume verfügen aber nicht über
Sammlungen für spezielle Sprachen. In diesem Fall
müssen Sie eines der vielen eleganten Merkmale von
CVSup benutzen: Die
refuse Datei.Mit einer refuse Datei können Sie
bestimmte Dateien einer Sammlung von der Übertragung
ausschließen. Der Ort der refuse ist
base/sup/refuse,
wobei base in Ihrem
supfile festgelegt wurde.
Wir verwenden das Verzeichnis
/var/db, der Ort der
refuse Datei ist daher
/var/db/sup/refuse.Das Format der refuse Datei ist einfach:
Sie enthält eine Liste der Dateien und Verzeichnisse, die Sie
nicht herunterladen wollen. Wenn Sie zum Beispiel die
Dokumentation nicht in anderen Sprachen als Englisch
lesen wollen, könnte Ihre
refuse-Datei wie folgt aussehen:doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*Die Aufzählung setzt sich für andere Sprachen fort.
Eine vollständige Liste finden Sie im
FreeBSD
CVS Repository.Die refuse Datei spart Anwendern von
CVSup, die über eine langsame
Internetanbindung verfügen oder deren Internetverbindung
zeitlich abgerechnet wird, wertvolle Zeit, da sie Dateien, die sie
nicht benötigen, nicht mehr herunterladen müssen.
Weitere Informationen zu refuse Dateien und
anderen Eigenschaften von CVSup
entnehmen Sie bitte der Manualpage.Ausführen von CVSupWir können nun eine Aktualisierung mit der folgenden
Kommandozeile starten:&prompt.root; cvsup supfilesupfile gibt
dabei das eben erstelle supfile an. Wenn Sie
X11 benutzen, wird
cvsup ein GUI starten.
Drücken Sie go und schauen Sie
zu.Das Beispiel aktualisiert die Dateien im Verzeichnisbaum
/usr/src. Sie müssen
cvsup als root starten,
damit Sie die nötigen Rechte haben, die Dateien zu
aktualisieren. Sie sind vielleicht ein bisschen nervös
weil Sie das Programm zum ersten Mal anwenden und möchten
zuerst einmal einen Testlauf durchführen. Legen Sie dazu ein
temporäres Verzeichnis an und übergeben es auf der
Kommandozeile von cvsup:&prompt.root; mkdir /var/tmp/dest
&prompt.root; cvsup supfile /var/tmp/destAktualisierungen werden dann nur in dem angegebenen Verzeichnis
vorgenommen. CVSup untersucht die
Dateien in /usr/src, wird aber keine dieser
Dateien verändern. Die veränderten Dateien finden Sie
stattdessen in /var/tmp/dest/usr/src. Die
Statusdateien von CVSup werden ebenfalls
nicht geändert, sondern in dem angegebenen Verzeichnis
abgelegt. Wenn Sie Leseberechtigung in
/usr/src haben, brauchen Sie das Programm
noch nicht einmal unter root laufen zu
lassen.Wenn Sie X11 nicht benutzen wollen
oder keine GUIs mögen, sollten Sie
cvsup wie folgt aufrufen:&prompt.root; cvsup -g -L 2 supfile verhindert den Start des
GUIs. Wenn Sie kein
X11 laufen haben, passiert das
automatisch, ansonsten müssen Sie diesen Schalter
angeben.Mit gibt CVSup
Einzelheiten zu jeder Aktualisierung aus. Die Wortfülle der
Meldungen können Sie von bis
einstellen. In der Voreinstellung
werden nur Fehlermeldungen ausgegeben.Eine Zusammenfassung der Optionen von
CVSup erhalten Sie mit
cvsup -H. Genauere Informationen finden Sie in
der Manualpage von CVSup.Wenn Sie mit dem Ablauf der Aktualisierung zufrieden sind,
können Sie CVSup
regelmäßig aus &man.cron.8; ausführen. In diesem
Fall sollten Sie natürlich nicht das GUI
benutzen.CVSup SammlungenDie CVSup Sammlungen sind
hierarchisch organisiert. Es gibt wenige große Sammlungen,
die in kleinere Teilsammlungen unterteilt sind. Wenn Sie eine
große Sammlung beziehen, entspricht das dem Beziehen aller
Teilsammlungen. Der Hierarchie der Sammlung wird in der folgenden
Aufzählung durch Einrückungen dargestellt.Die am häufigsten benutzen Sammlungen sind
src-all und ports-all. Die
anderen Sammlungen werden von wenigen Leuten zu speziellen Zwecken
benutzt und es kann sein, dass diese nicht auf allen Spiegeln
zur Verfügung stehen.cvs-all release=cvsDas FreeBSD-Haupt-Repository einschließlich der
Kryptographie-Module.distrib release=cvsDateien, die zum Verteilen und Spiegeln von FreeBSD
benötigt werden.doc-all release=cvsQuellen des FreeBSD-Handbuchs und weiterer
Dokumentation. Diese Sammlung enthält nicht die
FreeBSD-Webseite.ports-all release=cvsDie FreeBSD-Ports-Sammlung.Wenn Sie nicht die gesamte Ports-Sammlung
(ports-all) aktualisieren wollen,
sondern nur eine der nachstehend aufgeführten
Teilsammlungen, aktualisieren Sie
immer die Teilsammlung
ports-base. Diese Teilsammlung
enthält das Bausystem der Ports. Immer wenn
ports-base geändert wird,
ist es so gut wie sicher, dass diese Änderung
auch tatsächlich von einem Port benutzt wird.
Der Bau eines Ports, der auf Änderungen
im Bausystem angewiesen wird, wird fehlschlagen,
wenn das Bausystem noch auf einem alten Stand ist.
Aktualisieren Sie vor allen Dingen
ports-base, wenn Sie bei
einem Bau merkwürdige Fehlermeldungen
erhalten und kein aktuelles Bausystem benutzen.Wenn Sie die Datei
ports/INDEX selbst
erzeugen, brauchen Sie unbedingt die
Sammlung ports-all (den
ganzen Ports-Baum). Es ist nicht möglich,
ports/INDEX nur mit
einem Teilbaum zu erstellen. Lesen Sie dazu
bitte die FAQ.ports-accessibility
release=cvsWerkzeuge für behinderte Benutzer.ports-arabic
release=cvsArabische Sprachunterstützung.ports-archivers
release=cvsWerkzeuge zum Archivieren.ports-astro
release=cvsAstronomie-Programme.ports-audio
release=cvsAudio-Programme.ports-base
release=cvsDas Bausystem der Ports-Sammlung.
Dazu gehören verschiedene Dateien in den
Unterverzeichnissen Mk/
und Tools/ von
/usr/ports.Aktualisieren Sie diese Teilsammlung
jedes Mal, wenn Sie
einen Teil der Ports-Sammlung aktualisieren.
Lesen Sie dazu auch den obigen
Hinweis zur Ports-Sammlung.ports-benchmarks
release=cvsBenchmarks.ports-biology
release=cvsBiologie.ports-cad
release=cvsComputer Aided Design Werkzeuge.ports-chinese
release=cvsChinesische Sprachunterstützung.ports-comms
release=cvsProgramme zur Datenkommunikation.ports-converters
release=cvsZeichensatz Konvertierer.ports-databases
release=cvsDatenbanken.ports-deskutils
release=cvsSachen, die sich vor dem Computer-Zeitalter
auf dem Schreibtisch befanden.ports-devel
release=cvsWerkzeuge für Entwickler.ports-dns
release=cvsSoftware für DNS.ports-editors
release=cvsEditoren.ports-emulators
release=cvsProgramme, die andere Betriebssysteme
emulieren.ports-finance
release=cvsFinanz-Anwendungen.ports-ftp
release=cvsWerkzeuge für FTP Clients und Server.ports-games
release=cvsSpiele.ports-german
release=cvsDeutsche Sprachunterstützung.ports-graphics
release=cvsGraphik-Programme.ports-hebrew
release=cvsHebräische Sprachunterstützung.ports-hungarian
release=cvsUngarische Sprachunterstützung.ports-irc
release=cvsInternet Relay Chat Werkzeuge.ports-japanese
release=cvsJapanische Sprachunterstützung.ports-java
release=cvs&java; Werkzeuge.ports-korean
release=cvsKoreanische Sprachunterstützung.ports-lang
release=cvsProgrammiersprachen.ports-mail
release=cvsE-Mail Programme.ports-math
release=cvsProgramme zur numerischen Mathematik.ports-mbone
release=cvsMBone Anwendungen.ports-misc
release=cvsVerschiedene Werkzeuge.ports-multimedia
release=cvsMultimedia-Anwendungen.ports-net
release=cvsNetzwerk-Programme.ports-net-im
release=cvsDiverse Instant-Messenger.ports-net-mgmt
release=cvsSoftware zum Verwalten von Netzwerken.
+
+ ports-net-p2p
+ release=cvs
+
+
+ Software für die Nutzung von
+ Peer-to-Peer-Netzwerken.
+
+
+
ports-news
release=cvsUSENET News Werkzeuge.ports-palm
release=cvsProgramme für den
Palm.ports-polish
release=cvsPolnische Sprachunterstützung.ports-portuguese
release=cvsPortugiesische Sprachunterstützung.ports-print
release=cvsDruckprogramme.ports-russian
release=cvsRussische Sprachunterstützung.ports-science
release=cvsWissenschaft.ports-security
release=cvsWerkzeuge zum Thema Sicherheit.ports-shells
release=cvsKommandozeilen-Shells.ports-sysutils
release=cvsSystem-Werkzeuge.ports-textproc
release=cvsProgramme zur Textverarbeitung (ohne Desktop
Publishing).ports-ukrainian
release=cvsUkrainische Sprachunterstützung.ports-vietnamese
release=cvsVietnamesische
Sprachunterstützung.ports-www
release=cvsSoftware rund um das World Wide Web.ports-x11
release=cvsX-Window Programme.ports-x11-clocks
release=cvsX11-Uhren.ports-x11-fm
release=cvsX11-Dateiverwalter.ports-x11-fonts
release=cvsX11-Zeichensätze und Werkzeuge dazu.ports-x11-toolkits
release=cvsX11-Werkzeuge.ports-x11-servers
release=cvsX11-Server.ports-x11-themes
release=cvsX11-Themes.ports-x11-wm
release=cvsX11-Fensterverwalter.src-all release=cvsDie FreeBSD-Quellen einschließlich der
Kryptographie-Module.src-base
release=cvsVerschiedene Dateien unter
/usr/src.src-bin
release=cvsBenutzer-Werkzeuge die im Einzelbenutzermodus
gebraucht werden
(/usr/src/bin).src-contrib
release=cvsWerkzeuge und Bibliotheken, die nicht aus dem
FreeBSD-Projekt stammen und wenig verändert
übernommen werden.
(/usr/src/contrib).src-crypto release=cvsKryptographische Werkzeuge und Bibliotheken,
die nicht aus dem FreeBSD-Projekt stammen und
wenig verändert übernommen werden.
(/usr/src/crypto).src-eBones release=cvsKerberos und DES
(/usr/src/eBones). Wird
in aktuellen Releases von FreeBSD nicht
benutzt.src-etc
release=cvsKonfigurationsdateien des Systems
(/usr/src/etc).src-games
release=cvsSpiele
(/usr/src/games).src-gnu
release=cvsWerkzeuge, die unter der GNU Public License
stehen (/usr/src/gnu).src-include
release=cvsHeader Dateien
(/usr/src/include).src-kerberos5
release=cvsKerberos5
(/usr/src/kerberos5).src-kerberosIV
release=cvsKerberosIV
(/usr/src/kerberosIV).src-lib
release=cvsBibliotheken
(/usr/src/lib).src-libexec
release=cvsSystemprogramme, die von anderen Programmen
ausgeführt werden
(/usr/src/libexec).src-release
release=cvsDateien, die zum Erstellen eines FreeBSD
Releases notwendig sind
(/usr/src/release).src-sbin release=cvsWerkzeuge für den Einzelbenutzermodus
(/usr/src/sbin).src-secure
release=cvsKryptographische Bibliotheken und Befehle
(/usr/src/secure).src-share
release=cvsDateien, die von mehreren Systemen
gemeinsam benutzt werden können
(/usr/src/share).src-sys
release=cvsDer Kernel
(/usr/src/sys).src-sys-crypto
release=cvsKryptographie Quellen des Kernels
(/usr/src/sys/crypto).src-tools
release=cvsVerschiedene Werkzeuge zur Pflege von FreeBSD
(/usr/src/tools).src-usrbin
release=cvsBenutzer-Werkzeuge
(/usr/src/usr.bin).src-usrsbin
release=cvsSystem-Werkzeuge
(/usr/src/usr.sbin).www release=cvsDie Quellen der FreeBSD-WWW-Seite.distrib release=selfDie Konfigurationsdateien des
CVSup Servers. Diese werden von
den CVSup benutzt.gnats release=currentDie GNATS Datenbank, in der Problemberichte verwaltet
werden.mail-archive release=currentDas Archiv der FreeBSD-Mailinglisten.www release=currentDie formatierten Dateien der FreeBSD-WWW-Seite (nicht die
Quellen). Diese werden von den WWW-Spiegeln benutzt.Weiterführende InformationenDie CVSup FAQ und weitere
Informationen über CVSup finden Sie
auf The
CVSup Home Page.FreeBSD spezifische Diskussionen über
CVSup finden auf der Mailingliste
&a.hackers; statt. Dort und auf der Liste &a.announce; werden neue
Versionen von CVSup
angekündigt.Fragen und Problemberichte sollten an den Autor des Programms
cvsup-bugs@polstra.com weitergeleitet werden.CVSup-ServerDie folgende Aufzählung enthält
CVSup Server für FreeBSD:
&chap.mirrors.cvsup.inc;
Portsnap einsetzenEinführungBei Portsnap handelt es sich um
ein System für die sichere Distribution der
&os;-Ports-Sammlung. Dazu wird in der Regel stündlich
ein Snapshot des Ports-Baumes erzeugt, der
anschließend komprimiert und kryptografisch signiert
wird. Die dabei erzeugten Dateien werden danach über HTTP
verteilt.Analog zu CVSup verwendet auch
auch Portsnap das
Pull-Prinzip, um die Ports-Sammlung zu
aktualisieren: Der komprimierte und signierte Ports-Baum
wird auf einem Webserver abgelegt, der danach passiv auf
Client-Anforderungen wartet. Ein Anwender muss daher
&man.portsnap.8; manuell starten, um seine
Ports-Sammlung zu aktualisieren. Eine Alternative ist das
Erstellen eines &man.cron.8; -Jobs, der den
Ports-Baum regelmäßig automatisch aktualisiert.Beachten Sie, dass Portsnapnicht mit der echten
Ports-Sammlung unter /usr/ports/, sondern
mit einer komprimierten Kopie des Ports-Baumes arbeitet, die
in der Voreinstellung unter
/var/db/portsnap/ angelegt wird. Diese
komprimierte Version wird danach dazu verwendet, den
tatsächlichen Ports-Baum zu aktualisieren.Haben Sie Portsnap über
die &os;-Ports-Sammlung installiert, wird der komprimierte
Ports-Baum statt unter /var/db/portsnap/
unter /usr/local/portsnap/ angelegt.InstallationSeit &os; 6.0 ist Portsnap
im &os;-Basissystem enthalten. Verwenden Sie eine ältere
&os;-Version, können Sie zur Installation den Port
sysutils/portsnap
verwenden.portsnap konfigurierenportsnap kann über die
Datei /etc/portsnap.conf konfiguriert
werden. In der Regel kann allerdings die
Standardkonfiguration unverändert übernommen werden.
Wollen Sie die Datei dennoch anpassen, sollten Sie zuvor
&man.portsnap.conf.5; lesen.Wurde Portsnap über
die &os;-Ports-Sammlung installiert, so wird statt
/etc/portsnap.conf/usr/local/etc/portsnap.conf als
Konfigurationsdatei verwendet. Diese Datei wird
während der Installation nicht angelegt, allerdings
wird eine Beispielkonfigurationsdatei mitgeliefert, die
Sie in dieses Verzeichnis kopieren können:&prompt.root; cd /usr/local/etc && cp portsnap.conf.sample portsnap.confDer erste Aufruf von portsnapWenn Sie &man.portsnap.8; das erste
Mal aufrufen, müssen Sie einen komprimierten Snapshot
des kompletten Ports-Baumes nach
/var/db/portsnap/ herunterladen (oder
nach /usr/local/portsnap/ Sie
Portsnap über die
Ports-Sammlung installiert haben). Die ungefähre
Größe des komprimierten Ports-Baumes beträgt
etwa 38 MB.&prompt.root; portsnap fetchNachdem der komprimierte Snapshot heruntergeladen wurde,
kann eine Live-Version des Ports-Baumes nach
/usr/ports/ extrahiert werden. Dieser
Schritt ist selbst dann nötig, wenn sich bereits ein
Ports-Baum in diesem Verzeichnis befindet (der beispielsweise
von CVSup angelegt wurde), weil
portsnap einen Ausgangszustand
des Ports-Baumes benötigt, um festzustellen, welche Teile
- des Baums aktualisiert werden müssen.
+ des Baums aktualisiert werden müssen:
+
+ &prompt.root; portsnap extractBei einer &os;-Standardinstallation wird das Verzeichnis
/usr/ports nicht
angelegt. Dies sollten Sie vor der ersten Ausführung
- von Portsnap nachholen.
-
- &prompt.root; mkdir /usr/ports
+ von portsnap nachholen.
-
- &prompt.root; portsnap extractDen Ports-Baum aktualisierenNachdem der originale komprimierte Snapshot des Ports-Baumes
heruntergeladen und nach /usr/ports/
extrahiert wurde, können Sie den Ports-Baum aktualisieren.
Dazu sind zwei Schritte nötig: Mit
fetch laden Sie Aktualisierungen herunter,
mit update aktualisieren Sie die
Live-Version des Ports-Baumes. Beide Parameter können
gleichzeitig an portsnap
übergeben werden:&prompt.root; portsnap fetch updateEinige ältere
portsnap-Versionen unterstützen
diese Syntax nicht. In diesem Fall gehen Sie wie folgt
vor:&prompt.root; portsnap fetch
&prompt.root; portsnap updatePortsnap als cron-Job startenUm eine Überlastung der
Portsnap-Server zu vermeiden,
kann portsnap fetch nicht als
normaler &man.cron.8;-Job ausgeführt werden.
Als Alternative gibt es den Befehl
portsnap cron, der eine zufällige
Zeitspanne (bis zu 3600 Sekunden) wartet, bevor Aktualisierungen
heruntergeladen werden.portsnap update sollte ebenfalls
nicht als cron-Job ausgeführt werden,
da es zu massiven Problemen kann, wenn parallel zur
Aktualisierung ein Port gebaut oder installiert wird. Die
Aktualisierung des Ports-INDEX stellt hingegen kein Problem
dar. Um die INDEX-Datei zu aktualisieren, übergeben
Sie zusätzlich die Option an
portsnap. (Wenn Sie
portsnap -I update als
cron-Job definiert haben, müssen Sie
portsnap update ohne die Option
aufrufen, um den Rest des Ports-Baumes
zu aktualisieren.)Wenn Sie die folgende Zeile in
/etc/crontab aufnehmen, aktualisiert
portsnap den komprimierten
Snapshot sowie die INDEX-Dateien unter
/usr/ports/ und verschickt eine
E-Mail, wenn Ihre installierten Ports veraltet sind:0 3 * * * root portsnap -I cron update && pkg_version -vIL=Ist Ihre Systemuhr nicht auf Ihre lokale Zeitzone
eingestellt, ersetzen Sie bitte 3
durch eine beliebige Zahl zwischen 0 und 23, damit die
Last der Portsnap-Server
gleichmäßiger verteilt wird.Einige ältere
portsnap-Versionen unterstützen
die Angabe von mehreren Befehlen (etwa
cron update) für
einen einzigen portsnap-Aufruf nicht. Ist
dies bei Ihnen der Fall, ersetzen Sie bitte
portsnap -I cron update durch
portsnap cron && portsnap -I update.CVS-TagsWenn Sie Quellen mit CVS oder
CVSup erhalten oder aktualisieren wollen,
müssen Sie ein Tag angeben. Ein Tag kann einen bestimmten
&os;-Zweig oder einen bestimmten Zeitpunkt
(Release-Tag) bestimmen.Tags für ZweigeMit Ausnahme von HEAD (das immer
ein gültiges Tag ist), können die folgenden
Tags nur im src/-Quellbaum verwendet
werden. Die Quellbäume ports/,
doc/ und www/
sind nicht verzweigt.HEADSymbolischer Name für den Hauptzweig, auch
&os.current; genannt. Dies ist die Vorgabe, wenn keine
Revision angegeben wird.In CVSup wird dieses Tag mit
einem . (Punkt) bezeichnet.In CVS ist das die Vorgabe,
wenn Sie kein Tag oder eine Revision angeben. Außer
Sie wollen einen -STABLE Rechner auf -CURRENT aktualisieren,
ist es nicht ratsam, die -CURRENT
Quellen auf einem -STABLE Rechner einzuspielen.RELENG_6Der Entwicklungszweig für FreeBSD-6.X, auch als
FreeBSD 6-STABLE bekannt.RELENG_6_0Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 6.0
durchgeführt werden.RELENG_5Der &os; 5.X Entwicklungszweig, der
auch &os; 5-STABLE genannt wird.RELENG_5_4Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 5.4
durchgeführt werden.RELENG_5_3Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 5.3
durchgeführt werden.RELENG_5_2Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 5.2 und
&os; 5.2.1 durchgeführt werden.RELENG_5_1Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 5.1 durchgeführt
werden.RELENG_5_0Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 5.0 durchgeführt
werden.RELENG_4Der &os; 4.X Entwicklungszweig,
der auch &os; 4-STABLE genannt wird.RELENG_4_11Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.11 durchgeführt
werden.RELENG_4_10Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.10 durchgeführt
werden.RELENG_4_9Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.9 durchgeführt
werden.RELENG_4_8Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.8 durchgeführt
werden.RELENG_4_7Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.7 durchgeführt
werden.RELENG_4_6Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.6 und
FreeBSD 4.6.2 durchgeführt werden.RELENG_4_5Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.5 durchgeführt
werden.RELENG_4_4Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.4 durchgeführt
werden.RELENG_4_3Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.3 durchgeführt
werden.RELENG_3Der FreeBSD-3.X Entwicklungszweig, der auch 3.X-STABLE
genannt wird.RELENG_2_2Der FreeBSD-2.2.X Entwicklungszweig, der auch 2.2-STABLE
genannt wird.Release-TagsDiese Tags geben den Zeitpunkt an, an dem eine bestimme
&os;-Version veröffentlicht wurde. Das Erstellen einer
Release ist in den Dokumenten
Release Engineering
Information und
Release
Process beschrieben. Der
src-Baum benutzt
Tags, deren Namen mit RELENG_ anfangen.
Die Bäume ports
und doc benutzen
Tags, deren Namen mit RELEASE anfangen.
Im Baum www werden
keine Release-Tags verwendet.RELENG_6_0_0_RELEASEFreeBSD 6.0RELENG_5_4_0_RELEASEFreeBSD 5.4RELENG_4_11_0_RELEASEFreeBSD 4.11RELENG_5_3_0_RELEASEFreeBSD 5.3RELENG_4_10_0_RELEASEFreeBSD 4.10RELENG_5_2_1_RELEASEFreeBSD 5.2.1RELENG_5_2_0_RELEASEFreeBSD 5.2RELENG_4_9_0_RELEASEFreeBSD 4.9RELENG_5_1_0_RELEASEFreeBSD 5.1RELENG_4_8_0_RELEASEFreeBSD 4.8RELENG_5_0_0_RELEASEFreeBSD 5.0RELENG_4_7_0_RELEASEFreeBSD 4.7RELENG_4_6_2_RELEASEFreeBSD 4.6.2RELENG_4_6_1_RELEASEFreeBSD 4.6.1RELENG_4_6_0_RELEASEFreeBSD 4.6RELENG_4_5_0_RELEASEFreeBSD 4.5RELENG_4_4_0_RELEASEFreeBSD 4.4RELENG_4_3_0_RELEASEFreeBSD 4.3RELENG_4_2_0_RELEASEFreeBSD 4.2RELENG_4_1_1_RELEASEFreeBSD 4.1.1RELENG_4_1_0_RELEASEFreeBSD 4.1RELENG_4_0_0_RELEASEFreeBSD 4.0RELENG_3_5_0_RELEASEFreeBSD-3.5RELENG_3_4_0_RELEASEFreeBSD-3.4RELENG_3_3_0_RELEASEFreeBSD-3.3RELENG_3_2_0_RELEASEFreeBSD-3.2RELENG_3_1_0_RELEASEFreeBSD-3.1RELENG_3_0_0_RELEASEFreeBSD-3.0RELENG_2_2_8_RELEASEFreeBSD-2.2.8RELENG_2_2_7_RELEASEFreeBSD-2.2.7RELENG_2_2_6_RELEASEFreeBSD-2.2.6RELENG_2_2_5_RELEASEFreeBSD-2.2.5RELENG_2_2_2_RELEASEFreeBSD-2.2.2RELENG_2_2_1_RELEASEFreeBSD-2.2.1RELENG_2_2_0_RELEASEFreeBSD-2.2.0AFS-ServerDie folgende Aufzählung enthält AFS Server für
FreeBSD:SchwedenDie Dateien sind unter dem Pfad
/afs/stacken.kth.se/ftp/pub/FreeBSD/
erreichbar.stacken.kth.se # Stacken Computer Club, KTH, Sweden
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.seBetreuer ftp@stacken.kth.sersync-Serverrsync wird ähnlich wie
&man.rcp.1; verwendet, besitzt aber mehr Optionen und
verwendet das rsync remote-update Protokoll, das nur
geänderte Dateien überträgt und damit viel schneller
als ein normaler Kopiervorgang ist. rsync
ist sehr nützlich, wenn Sie einen FreeBSD-FTP-Spiegel oder einen
CVS-Spiegel betreiben. Das Programm ist für viele
Betriebssysteme erhältlich, mit FreeBSD können Sie den
Port net/rsync oder das fertige
Paket benutzen. Die folgenden Server stellen FreeBSD über das
rsync Protokoll zur Verfügung:Deutschlandrsync://grappa.unix-ag.uni-kl.de/Verfügbare Sammlungen:freebsd-cvs: Das vollständige
CVS-Repository von &os;.Neben anderen Repositories spiegelt diese Maschine auch die
Repositories der NetBSD- und OpenBSD-Projekte.Großbritannienrsync://rsync.mirror.ac.uk/Verfügbare Sammlungen:ftp.FreeBSD.org: Kompletter Spiegel des
FreeBSD-FTP-Servers.Niederlandersync://ftp.nl.FreeBSD.org/Verfügbare Sammlungen:vol/4/freebsd-core: Kompletter Spiegel des
FreeBSD-FTP-Servers.Tschechische Republikrsync://ftp.cz.FreeBSD.org/Verfügbare Sammlungen:ftp: Unvollständiger Spiegel des
FreeBSD-FTP-Servers.FreeBSD: Vollständiger Spiegel des
FreeBSD-FTP-Servers.USArsync://ftp-master.FreeBSD.org/Dieser Server darf nur von primären Spiegeln benutzt
werden.Verfügbare Sammlungen:FreeBSD: Das Hauptarchiv des FreeBSD
FTP Servers.acl: Die primäre ACL-Liste.rsync://ftp13.FreeBSD.org/Verfügbare Sammlungen:FreeBSD: Kompletter Spiegel des
FreeBSD-FTP-Servers.
diff --git a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
index 6834400de1..5ff9946cc8 100644
--- a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
@@ -1,2031 +1,2031 @@
RossLippertÜberarbeitet von MultimediaÜbersichtFreeBSD unterstützt viele unterschiedliche Soundkarten,
die Ihnen den Genuss von Highfidelity-Klängen auf Ihrem
Computer ermöglichen. Dazu gehört unter anderem die
Möglichkeit, Tonquellen in den Formaten MPEG Audio Layer 3
(MP3), WAV, Ogg Vorbis und vielen weiteren Formaten aufzunehmen
und wiederzugeben. Darüber hinaus enthält die FreeBSD
Ports-Sammlung Anwendungen, die Ihnen das Bearbeiten Ihrer
aufgenommenen Tonspuren, das Hinzufügen von Klangeffekten
und die Kontrolle der angeschlossenen MIDI-Geräte
erlauben.Wenn Sie etwas Zeit investieren, können Sie
mit &os; auch Videos und DVDs abspielen. Im Vergleich
zu Audio-Anwendungen gibt es weniger Anwendungen zum
Kodieren, Konvertieren und Abspielen von Video-Formaten.
Es gab, als dieses Kapitel geschrieben wurde, keine
Anwendung, die einzelne Video-Formate ähnlich wie
audio/sox konvertieren
konnte. Allerdings ändert sich die Software in
diesem Umfeld sehr schnell.In diesem Kapitel wird das Einrichten von Soundkarten
besprochen. beschreibt die Installation
und Konfiguration von X11 und das Einrichten von Videokarten.
Hinweise zur Verbesserung der Wiedergabe finden sich
in diesem Kapitel.Dieses Kapitel behandelt die folgenden Punkte:Die Konfiguration des Systems damit Ihre
Soundkarte erkannt wird.Wie Sie mit Beispielanwendungen die
Funktion einer Soundkarte prüfen.Wie Sie Fehler in den Einstellungen von
Soundkarten finden.Wie Sie MP3s und andere Audio-Formate wiedergeben
und erzeugen.Die Video-Unterstützung des X-Servers.Gute Anwendungen, die Videos abspielen und
kodieren.Die Wiedergabe von DVDs, .mpg-
und .avi-Dateien.Wie Sie CDs und DVDs in Dateien rippen.Die Konfiguration von TV-Karten.Das Einrichten von Scannern.Bevor Sie dieses Kapitel lesen, sollten Sie:Wissen, wie Sie einen neuen Kernel konfigurieren
und installieren ().Der Versuch eine Audio-CD mit &man.mount.8;
einzuhängen erzeugt mindestens einen Fehler;
schlimmstenfalls kann es zu einer Kernel-Panic
kommen. Die Medien besitzen eine andere Kodierung
als normale ISO-Dateisysteme.MosesMooreVon MarcFonvieilleAktualisiert für &os; 5.X von BenediktKöhlerÜbersetzt von UwePierauSoundkarten einrichtenDen Soundtreiber einrichtenPCIISASoundkartenZunächst sollten Sie in Erfahrung bringen,
welches Soundkartenmodell Sie besitzen, welchen Chip
die Karte benutzt und ob es sich um eine PCI- oder
ISA-Karte handelt. &os; unterstützt eine Reihe
von PCI- als auch von ISA-Karten. Die
Hardware-Notes
zählen alle unterstützten Karten und deren
Treiber auf.KernelKonfigurationUm Ihre Soundkarte benutzen zu können, müssen Sie
den richtigen Gerätetreiber laden. Sie haben zwei
Möglichkeiten, den Treiber zu laden: Am einfachsten
ist es, das Modul mit &man.kldload.8; zu laden. Sie
können dazu die Kommandozeile verwenden:&prompt.root; kldload snd_emu10k1Alternativ können Sie auch einen Eintrag
in der Datei /boot/loader.conf
erstellen:snd_emu10k1_load="YES"Beide Beispiele gelten für eine Creative &soundblaster;
Live! Soundkarte. Weitere ladbare Soundmodule sind in
der Datei /boot/defaults/loader.conf
aufgeführt. Wenn Sie nicht sicher sind, welchen
Gerätetreiber Sie laden müssen, laden Sie den
Treiber snd_driver:&prompt.root; kldload snd_driverDer Treiber snd_driver ist ein
Meta-Treiber, der alle gebräuchlichen Treiber lädt
und die Suche nach dem richtigen Treiber vereinfacht.
Weiterhin können alle Treiber über
/boot/loader.conf geladen werden.Wollen Sie feststellen, welcher Treiber für Ihre
Soundkarte vom Metatreiber snd_driver
geladen wurde, sollten Sie sich mit
cat /dev/sndstat den Inhalt der Datei
/dev/sndstat ansehen.Um unter &os; 4.X alle Treiber zu laden,
müssen Sie das Modul snd
anstelle von snd_driver
verwenden.Alternativ können Sie die Unterstützung
für die Soundkarte direkt in den Kernel einkompilieren.
Diese Methode im nächsten Abschnitt beschrieben.
Weiteres über den Bau eines Kernels
erfahren Sie im Kapitel
Kernelkonfiguration.Soundkarten in der Kernelkonfiguration
einrichtenZuerst müssen Sie den allgemeinen Audio-Treiber
&man.sound.4; in die Kernelkonfiguration aufnehmen.
Fügen Sie dazu die folgende Zeile in die
Kernelkonfigurationsdatei ein:device soundUnter &os; 4.X benutzen Sie bitte stattdessen
die nachstehende Zeile:device pcmAls nächstes müssen Sie den richtigen
Treiber in die Kernelkonfiguration einfügen.
Den Treiber entnehmen Sie bitte der Liste der
unterstützen Soundkarten aus den
Hardware-Notes.
Zum Beispiel wird die Creative &soundblaster; Live!
Soundkarte vom Treiber &man.snd.emu10k1.4;
unterstützt. Für diese Karte verwenden
Sie die nachstehende Zeile:
- device "snd_emu10k1"
+ device snd_emu10k1Die richtige Syntax für die Zeile lesen
Sie bitte in der Hilfeseite des entsprechenden
Treibers nach. Die Syntax finden Sie ebenfalls
in der Datei /usr/src/sys/conf/NOTES
(/usr/src/sys/i386/conf/LINT
unter &os; 4.X).Nicht PnP-fähige ISA-Karten benötigen
weiterhin Angaben zu den Karteneinstellungen
(IRQ, I/O-Port). Die Karteneinstellungen tragen
Sie in die Datei /boot/device.hints
ein. Während des Systemstarts liest der
&man.loader.8; diese Datei und reicht die Einstellungen
an den Kernel weiter. Für eine alte Creative
&soundblaster; 16 ISA-Karte, die sowohl den
&man.snd.sbc.4;- als auch den snd_sb16(4)-Treiber
benötigt, fügen Sie folgende Zeilen in die
Kernelkonfigurationsdatei ein:device snd_sbc
device snd_sb16In die Datei /boot/device.hints
tragen Sie beispielsweise die folgenden Einstellungen
ein:hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"In diesem Beispiel benutzt die Karte den
I/O-Port 0x220 und den
IRQ 5.Die Hilfeseite des jeweiligen Treibers beschreibt
die Syntax der Einträge in der Datei
/boot/device.hints. Unter
&os; 4.X werden diese Einstellungen direkt in
der Kernelkonfigurationsdatei vorgenommen. Für
die oben gezeigte ISA-Karte wird die nachstehende
Zeile in die Kernelkonfiguration eingefügt:device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15Das Beispiel verwendet die vorgegebenen Werte.
Falls Ihre Karteneinstellungen andere Werte vorgeben,
müssen Sie die Werte in der Kernelkonfiguration
anpassen. Weiteres entnehmen Sie bitte der Hilfeseite
&man.snd.sbc.4;.Unter &os; 4.X benötigen manche Systeme
mit einer auf der Hauptplatine integrierten Soundkarte
noch die nachstehende Zeile in der
Kernelkonfiguration:options PNPBIOSDie Soundkarte testenNachdem Sie den neuen Kernel gestartet oder das
erforderliche Modul geladen haben, sollte Ihre
Soundkarte in den Systemmeldungen (&man.dmesg.8;)
auftauchen. Zum Beispiel:pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4205 AC97 Codec>Den Status der Karte können Sie über
die Datei /dev/sndstat
prüfen:&prompt.root; cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz
16384
kld snd_ich (1p/2r/0v channels duplex default)Die Ausgaben können auf Ihrem System anders
aussehen. Wenn das Gerät pcm
nicht erscheint, prüfen Sie bitte Ihre Konfiguration.
Stellen sie sicher, dass Sie den richtigen Treiber
gewählt haben.
beschreibt häufig auftretende Probleme.Wenn alles glatt lief, haben Sie nun eine
funktionierende Soundkarte. Wenn ein CD-ROM
oder DVD-ROM-Laufwerk an Ihrer Soundkarte angeschlossen
ist, können Sie jetzt mit &man.cdcontrol.1; eine
CD abspielen:&prompt.user; cdcontrol -f /dev/acd0 play 1Es gibt viele Anwendungen, wie
audio/workman, die
eine bessere Benutzerschnittstelle besitzen. Um sich
MP3-Audiodateien anzuhören, können Sie
eine Anwendung wie
audio/mpg123 installieren.
Eine schnelle Möglichkeit die Karte zu prüfen,
ist es, Daten an das Gerät /dev/dsp
zu senden:&prompt.user; cat Datei > /dev/dspFür Datei können
Sie eine beliebige Datei verwenden. Wenn Sie einige
Geräusche hören, funktioniert die Soundkarte.Unter &os; 4.X müssen Sie noch
Gerätedateien für die Soundkarte erstellen.
Wenn die Karte als pcm0
erkannt wurde, führen Sie als root
die nachstehenden Befehle aus:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Wenn auf den vorigen Befehl pcm1
als Ausgabe erschienen ist, dann müssen Sie dieselben
Befehle ausführen, nur dass Sie
snd0 durch
snd1 ersetzen.Der Befehl MAKEDEV erzeugt
mehrere Gerätedateien, die von Anwendungen
benutzt werden.Die Einstellungen des Mixers können Sie
mit dem Kommando &man.mixer.8; verändern.
Weiteres lesen Sie bitte in der Hilfeseite
&man.mixer.8; nach.Häufige ProblemeDevice NodeGerätedateiI/O portIRQDSPFehlerLösungunsupported subdevice XXEin oder mehrere Device Nodes wurden nicht
korrekt angelegt. Wiederholen Sie die oben angegebenen
Schritte.sb_dspwr(XX) timed outDer I/O Port ist nicht korrekt angegeben.bad irq XXDer IRQ ist falsch angegeben. Stellen Sie
sicher, dass der angegebene IRQ mit dem Sound IRQ
übereinstimmt.xxx: gus pcm not attached, out of memoryEs ist nicht genug Speicher verfügbar,
um das Gerät zu betreiben.xxx: can't open /dev/dsp!Überprüfen Sie mit fstat |
grep dsp ob eine andere Anwendung das
Gerät geöffnet hat. Häufige
Störenfriede sind esound
oder die Sound-Unterstützung von
KDE.MunishChopraBeigetragen von Mehrere Tonquellen abspielenOft sollen mehrere Tonquellen gleichzeitig
abgespielt werden, auch wenn
beispielsweise esound oder
artsd das Audiogerät
nicht mit einer anderen Anwendung teilen können.Unter FreeBSD können mit &man.sysctl.8;
virtuelle Tonkanäle
eingerichtet werden. Virtuelle Kanäle mischen
die Tonquellen im Kernel (so können mehr
Kanäle als von der Hardware unterstützt
benutzt werden).Die Anzahl der virtuellen Kanäle können
Sie als Benutzer root wie folgt
einstellen:&prompt.root; sysctl hw.snd.pcm0.vchans=4
&prompt.root; sysctl hw.snd.maxautovchans=4Im Beispiel werden vier virtuelle Kanäle
eingerichtet, eine im Normalfall ausreichende Anzahl.
hw.snd.pcm0.vchans ist die Anzahl
der virtuellen Kanäle des Geräts
pcm0. Die Anzahl kann konfiguriert
werden, sobald das Gerät existiert.
hw.snd.maxautovchans ist die Anzahl der
virtuellen Kanäle, die einem Gerät zugewiesen
werden, wenn es durch &man.kldload.8; eingerichtet
wird. Da das Modul pcm
unabhängig von den Hardware-Treibern geladen werden kann,
gibt hw.snd.maxautovchans die Anzahl
der virtuellen Kanäle an, die später eingerichtete
Geräte erhalten.Sie können die Anzahl der virtuellen Kanäle
nur ändern, wenn das Gerät nicht genutzt wird.
Schließen Sie daher zuerst alle Programme (etwa
Musikabspielprogramme oder Sound-Daemonen), die auf
dieses Gerät zugreifen.Wenn Sie ein System ohne &man.devfs.5; einsetzen,
müssen Anwendungen die Geräte
/dev/dsp0.x
verwenden. Wenn hw.snd.pcm.0.vchans wie
oben auf 4 gesetzt wurde, läuft
x von 0
bis 4. Auf Systemen mit
&man.devfs.5; werden die Geräte automatisch
zugeteilt.
-
-
-
-
-
-
- Josef
- El-Rayes
- Beigetragen von
-
-
-
-
- Den Mixer einstellen
-
- Die Voreinstellungen des Mixers sind im Treiber
- &man.pcm.4; fest kodiert. Es gibt zwar viele Anwendungen
- und Dienste, die den Mixer einstellen können
- und die eingestellten Werte bei jedem Start wieder
- setzen, am einfachsten ist es allerdings, die Werte
- direkt im Treiber einzustellen. Der Mixer kann in
- der Datei /boot/device.hints
- eingestellt werden:
-
- hint.pcm.0.vol="100"
-
- Die Zeile setzt die Lautstärke des Mixers
- auf den Wert 100, sobald das Modul
- &man.pcm.4; geladen wird.
-
-
- Diese Einstellungen funktionieren erst ab
- &os; 5.3.
-
-
+
+
+
+
+
+
+ Josef
+ El-Rayes
+ Beigetragen von
+
+
+
+
+ Den Mixer einstellen
+
+
+ Diese Einstellungen funktionieren erst ab
+ &os; 5.3.
+
+
+ Die Voreinstellungen des Mixers sind im Treiber
+ &man.pcm.4; fest kodiert. Es gibt zwar viele Anwendungen
+ und Dienste, die den Mixer einstellen können
+ und die eingestellten Werte bei jedem Start wieder
+ setzen, am einfachsten ist es allerdings, die Werte
+ direkt im Treiber einzustellen. Der Mixer kann in
+ der Datei /boot/device.hints
+ eingestellt werden:
+
+ hint.pcm.0.vol="100"
+
+ Die Zeile setzt die Lautstärke des Mixers
+ beim Laden des Moduls &man.pcm.4; auf den Wert
+ 100.
+ ChernLeeEin Beitrag von BenediktKöhlerÜbersetzt von MP3-AudioMP3 (MPEG Layer 3 Audio) ermöglicht eine
Klangwiedergabe in CD-ähnlicher Qualität, was Sie sich
auf Ihrem FreeBSD-Rechner nicht entgehen lassen sollten.MP3-PlayerXMMS (X Multimedia System) ist
bei weitem der beliebteste MP3-Player für X11.
WinAmp-Skins können auch mit
XMMS genutzt werden, da die
Benutzerschnittstelle fast identisch mit der von Nullsofts
WinAmp ist. Daneben
unterstützt XMMS auch eigene
Plugins.XMMS kann als
multimedia/xmms Port oder Package installiert
werden.Die Benutzerschnittstelle von
XMMS ist leicht zu erlernen und
enthält eine Playlist, einen graphischen Equalizer und
vieles mehr. Diejenigen, die mit WinAmp vertraut sind, werden
XMMS sehr leicht zu benutzen
finden.Der Port audio/mpg123 ist
ein alternativer, kommandozeilenorientierter MP3-Player.mpg123 kann ausgeführt
werden, indem man das zu benutzende Sound Device und die
abzuspielende MP3-Datei auf der Kommandozeile wie unten
angibt:&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
/dev/dsp1.0 sollten Sie dabei mit dem
dsp-Device Ihres Systems ersetzen.CD-Audio Tracks rippenBevor man eine ganze CD oder einen CD-Track in das
MP3-Format umwandeln kann, müssen die Audiodaten von der
CD auf die Festplatte gerippt werden. Dabei werden die CDDA
(CD Digital Audio) Rohdaten in WAV-Dateien kopiert.Die Anwendung cdda2wav die im
sysutils/cdrtools Paket enthalten
ist, kann zum Rippen der Audiodaten und anderen Informationen von CDs
genutzt werden.Wenn die Audio CD in dem Laufwerk liegt, können Sie
mit folgendem Befehl (als root) eine
ganze CD in einzelne WAV-Dateien (eine Datei für jeden
Track) rippen:&prompt.root; cdda2wav -D 0,1,0 -Bcdda2wav unterstützt
auch ATAPI (IDE) CD-ROM-Laufwerke. Um von einem IDE-Laufwerk
zu rippen, übergeben Sie auf der Kommandozeile
statt der SCSI-IDs den Gerätenamen. Das folgende
Kommando rippt den 7. Track:&prompt.root; cdda2wav -D /dev/acd0a -t 7Der Schalter bezieht sich auf
das SCSI Device 0,1,0, das sich aus
dem Ergebnis des Befehls cdrecord -scanbus
ergibt.Um einzelne Tracks zu rippen, benutzen Sie den
Schalter wie folgt:&prompt.root; cdda2wav -D 0,1,0 -t 7Dieses Beispiel rippt den siebten Track der Audio
CD-ROM. Um mehrere Tracks zu rippen, zum Beispiel die Tracks
eins bis sieben, können Sie wie folgt einen Bereich
angeben:&prompt.root; cdda2wav -D 0,1,0 -t 1+7Mit &man.dd.1; können Sie ebenfalls Audio-Stücke
von ATAPI-Laufwerken kopieren. Dies wird in
erläutert.MP3-Dateien kodierenGegenwärtig ist Lame der
meistbenutzte MP3-Encoder. Lame
finden Sie unter audio/lame im
Ports-Verzeichnis.Benutzen Sie die WAV-Dateien, die sie von CD gerippt
haben, und wandeln sie mit dem folgenden Befehl die Datei
audio01.wav in
audio01.mp3 um:&prompt.root; lame -h -b 128 \
--tt "Foo Liedtitel" \
--ta "FooBar Künstler" \
--tl "FooBar Album" \
--ty "2001" \
--tc "Geripped und kodiert von Foo" \
--tg "Musikrichtung" \
audio01.wav audio01.mp3128 kbits ist die gewöhnliche MP3-Bitrate. Viele
bevorzugen mit 160 oder 192 kbits eine höhere Qualität.
Je höher die Bitrate ist, desto mehr Speicherplatz
benötigt die resultierende MP3-Datei, allerdings wird die
Qualität dadurch auch besser. Der Schalter
verwendet den higher quality but a
little slower (höhere Qualität, aber etwas
langsamer) Modus. Die Schalter, die mit
beginnen, sind ID3-Tags, die in der Regel
Informationen über das Lied enthalten und in die
MP3-Datei eingebettet sind. Weitere Optionen können in
der Manualpage von Lame nachgelesen
werden.MP3-Dateien dekodierenUm aus MP3-Dateien eine Audio CD zu erstellen, müssen
diese in ein nicht komprimiertes WAV-Format umgewandelt
werden. Sowohl XMMS als auch
mpg123 unterstützen die Ausgabe
der MP3-Dateien in unkomprimierte Dateiformate.Dekodieren mit XMMS:Starten Sie XMMS.Klicken Sie mit der rechten Maustaste, um das
XMMS-Menu zu öffnen.Wählen Sie Preference im
Untermenü Options.Ändern Sie das Output-Plugin in Disk
Writer Plugin.Drücken Sie Configure.Geben Sie ein Verzeichnis ein (oder wählen Sie
browse), in das Sie die unkomprimierte Datei schreiben
wollen.Laden Sie die MP3-Datei wie gewohnt in
XMMS mit einer Lautstärke
von 100% und einem abgeschalteten EQ.Drücken Sie Play und es wird
so aussehen, als spiele XMMS
die MP3-Datei ab, aber keine Musik ist zu hören. Der
Player überspielt die MP3-Datei in eine Datei.Vergessen Sie nicht, das Output-Plugin wieder in den
Ausgangszustand zurückzusetzen um wieder MP3-Dateien
anhören zu können.Mit mpg123 nach stdout schreiben:Geben Sie mpg123 -s
audio01.mp3 > audio01.pcm
ein.XMMS schreibt die Datei im
WAV-Format aus während mpg123 die
MP3-Datei in rohe PCM-Audiodaten umwandelt.
cdrecord kann mit beiden Formaten
Audio-CDs erstellen, &man.burncd.8; kann nur rohe
PCM-Audiodaten verarbeiten. Der Dateikopf von WAV-Dateien
erzeugt am Anfang des Stücks ein Knacken. Sie können
den Dateikopf mit dem Werkzeug SoX,
das sich als Paket oder aus dem Port
audio/sox installieren
lässt, entfernen:&prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.rawLesen Sie in diesem Handbuch,
um mehr Informationen zur Benutzung von CD-Brennern mit FreeBSD zu
erhalten.RossLippertBeigetragen von Videos wiedergebenDie Wiedergabe von Videos ist ein neues, sich schnell
entwickelndes, Anwendungsgebiet. Seien Sie geduldig, es
wird nicht alles so glatt laufen, wie bei den
Audio-Anwendungen.Bevor Sie beginnen, sollten Sie das Modell Ihrer
Videokarte und den benutzten Chip kennen. Obwohl
&xorg; und
&xfree86; viele Vidiokarten
unterstützt, können nur einige Karten Videos
schnell genug wiedergeben. Eine Liste der Erweiterungen,
die der X-Server für eine Videokarte unterstützt,
erhalten Sie unter laufendem X11 mit dem Befehl
&man.xdpyinfo.1;.Halten Sie eine kurze MPEG-Datei bereit, mit der
Sie Wiedergabeprogramme und deren Optionen testen
können. Da einige DVD-Spieler in der Voreinstellung
das DVD-Gerät mit /dev/dvd ansprechen
oder diesen Namen fest einkodiert haben, wollen Sie
vielleicht symbolische Links auf die richtigen
Geräte anlegen:&prompt.root; ln -sf /dev/acd0c /dev/dvd
&prompt.root; ln -sf /dev/racd0c /dev/rdvdAuf FreeBSD 5.X mit &man.devfs.5; werden
andere symbolische Links benötigt:&prompt.root; ln -sf /dev/acd0 /dev/dvd
&prompt.root; ln -sf /dev/acd0 /dev/rdvdWegen &man.devfs.5; gehen gesondert angelegte Links
wie diese bei einem Neustart des Systems verloren.
Damit die symbolischen Links automatisch beim Neustart
des Systems angelegt werden, fügen Sie die
folgenden Zeilen in /etc/devfs.conf
ein:link acd0 dvd
link acd0 rdvdZum Entschlüsseln von DVDs müssen bestimmte
DVD-ROM-Funktionen aufgerufen werden und schreibender
Zugriff auf das DVD-Gerät erlaubt sein.KerneloptionenCPU_ENABLE_SSEKerneloptionenUSER_LDTEinige Ports sind auf die nachstehenden Kerneloptionen
angewiesen. Bevor Sie einen dieser Ports bauen, fügen
Sie die Kerneloptionen zu Ihrer Kernelkonfiguration hinzu.
Bauen und installieren Sie dann einen neuen Kernel und
starten Sie das System neu.option CPU_ENABLE_SSEUnter &os; 4.X sollte Sie zusätzlich die
Zeile options USER_LDT in Ihre
Kernelkonfigurationsdatei aufnehmen. Unter &os; 5.X
und neuer existiert diese Option hingegen nicht.X11 benutzt Shared-Memory und Sie sollten die
nachstehenden &man.sysctl.8;-Variablen auf die
gezeigten Werte erhöhen:kern.ipc.shmmax=67108864
kern.ipc.shmall=32768Video-SchnittstellenXVideoSDLDGAEs gibt einige Möglichkeiten, Videos unter
X11 abzuspielen. Welche Möglichkeit funktioniert,
hängt stark von der verwendeten Hardware ab.
Ebenso hängt die erzielte Qualität von der
Hardware ab. Die Videowiedergabe unter X11 ist ein
aktuelles Thema, sodass jede neue Version von
&xorg; oder von
&xfree86; wahrscheinlich
erhebliche Verbesserung enthält.Gebräuchliche Video-Schnittstellen sind:X11: normale X11-Ausgabe über Shared-Memory.XVideo: Eine Erweiterung der X11-Schnittstelle,
die Videos in jedem X11-Drawable anzeigen kann.SDL: Simple Directmedia Layer.DGA: Direct Graphics Access.SVGAlib: Eine Schnittstelle zur Grafikausgabe auf
der Konsole.XVideoDie Erweiterung XVideo (auch Xvideo,
Xv oder xv) von &xorg; und
&xfree86; 4.X,
erlaubt die beschleunigte Wiedergabe von Videos in
jedem Drawable. Diese Erweiterung liefert auch auf
weniger leistungsfähigen Systemen
(beispielsweise einem PIII 400 MHz Laptop)
eine gute Wiedergabe.Ob die Erweiterung läuft, entnehmen Sie der
Ausgabe von xvinfo:&prompt.user; xvinfoXVideo wird untertsützt, wenn die Ausgabe wie
folgt aussieht:X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_SATURATION" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_HUE" (range -180 to 180)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 1024 x 1024
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x36315652 (RV16)
guid: 52563135-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x3e0, 0x7c00
id: 0x35315652 (RV15)
guid: 52563136-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x7e0, 0xf800
id: 0x31313259 (Y211)
guid: 59323131-0000-0010-8000-00aa00389b71
bits per pixel: 6
number of planes: 3
type: YUV (packed)
id: 0x0
guid: 00000000-0000-0000-0000-000000000000
bits per pixel: 0
number of planes: 0
type: RGB (packed)
depth: 1
red, green, blue masks: 0x0, 0x0, 0x0Einige der aufgeführten Formate (wie YUV2 oder YUV12)
existieren in machen XVideo-Implementierungen nicht.
Dies kann zu Problemen mit einigen Spielern führen.XVideo wird wahrscheinlich von Ihrer Karte
nicht unterstützt, wenn die die Ausgabe wie
folgt aussieht:X-Video Extension version 2.2
screen #0
no adaptors presentWenn die XVideo-Erweiterung auf Ihrer Karte nicht
läuft, wird es nur etwas schwieriger, die
Anforderungen für die Wiedergabe von Videos zu
erfüllen. Abhängig von Ihrer Videokarte
und Ihrem Prozessor können Sie dennoch zufriedenstellende
Ergebnisse erzielen. Sie sollten vielleicht die
weiterführenden Quellen in zu Rate ziehen,
um die Geschwindigkeit Ihres Systems zu steigern.Simple Directmedia LayerDie Simple Directmedia Layer, SDL,
ist eine zwischen µsoft.windows;, BeOS und &unix;
portable Schnittstelle. Mit dieser Schnittstelle
können Anwendungen plattformunabhängig und
effizient Ton und Grafik benutzen. SDL
bietet eine hardwarenahe Schnittstelle, die manchmal
schneller als die X11-Schnittstelle sein kann.SDL finden Sie in den Ports
im Verzeichnis devel/sdl12.Direct Graphics AccessDie X11-Erweiterung
Direct Graphics Access (DGA) erlaubt es
Anwendungen, am X-Server vorbei direkt in den Framebuffer
zu schreiben. Da die Anwendung und der X-Server auf gemeinsame
Speicherbereiche zugreifen, müssen die Anwendungen
unter dem Benutzer root laufen.Die DGA-Erweiterung kann mit &man.dga.1; getestet
werden. Das Kommando dga wechselt,
jedes Mal wenn eine Taste gedrückt wird, die Farben
der Anzeige. Sie können das Programm mit der
Taste q verlassen.Video-AnwendungenVideo-AnwendungenDieser Abschnitt behandelt Anwendungen aus der
&os;-Ports-Sammlung, die Videos abspielen. An der
Videowiedergabe wird derzeit aktiv gearbeitet, sodass
der Funktionsumfang der Anwendungen von dem hier beschriebenen
abweichen kann.Viele unter &os; laufende Videoanwendungen wurden
unter Linux entwickelt und befinden
sich noch im Beta-Status. Der Betrieb dieser Anwendungen
unter &os; stößt vielleicht auf einige der
nachstehenden Probleme:Eine Anwendung kann eine Datei einer anderen
Anwendung nicht abspielen.Eine Anwendung kann eine selbst produzierte
Datei nicht abspielen.Wenn dieselbe Anwendung auf unterschiedlichen
Maschinen gebaut wird, wird ein Video unterschiedlich
wiedergegeben.Ein vergleichsweise einfacher Filter, wie die
Skalierung eines Bildes, führt zu deutlichen
Artefakten in der Darstellung.Eine Anwendung stürzt häufig ab.Die Dokumentation wird bei der Installation des Ports
nicht installiert. Sie befindet sich entweder auf
dem Internet oder im Verzeichnis
work des Ports.Viele Anwendungen sind zudem sehr Linux-lastig.
Probleme entstehen durch die Implementierung von
Standard-Bibliotheken in Linux-Distributionen oder
dadurch, dass die Anwendung bestimmte Linux-Kernelfunktionen
voraussetzt. Diese Probleme werden nicht immer
vom Betreuer eines Ports bemerkt und umgangen.
In der Praxis entstehen dadurch folgende Probleme:Eigenschaften des Prozessors werden über
/proc/cpuinfo ermittelt.Die falsche Anwendung von Threads führt dazu,
dass sich ein Programm aufhängt statt sich
zu beenden.Die Anwendung hängt von anderen Anwendungen
ab, die sich noch nicht in der &os;-Ports-Sammlung
befinden.Allerdings arbeiten die Anwendungsentwickler bislang mit
den Betreuern der Ports zusammen, sodass zusätzlicher
Portierungsaufwand minimiert wird.MPlayerMPlayer ist ein kürzlich
entstandener und sich stark weiterentwickelnder Video-Spieler.
Das Hauptaugenmerk des MPlayer-Teams
liegt auf Geschwindigkeit und Flexibilität auf
Linux und anderen &unix; Systemen. Das Projekt entstand
weil der Gründer des Teams unzufrieden mit der
Geschwindigkeit bestehender Video-Spieler war. Kritiker
behaupten, dass die Benutzeroberfläche der einfachen
Gestaltung zum Opfer fiel. Wenn Sie sich allerdings erstmal
an die Kommandozeilenoptionen und die Tastensteuerung
gewöhnt haben, funktioniert die Anwendung sehr gut.MPlayer bauenMPlayerbauenMPlayer finden Sie in der
Ports-Sammlung unter
multimedia/mplayer.
Der Bau von MPlayer
berücksichtigt die vorhandene Harware und erzeugt
ein Programm, das nicht auf ein anderes System übertragbar
ist. Es ist daher wichtig, dass Sie das Programm aus
den Ports bauen und nicht das fertige Paket installieren.
Zusätzlich können Sie auf der Kommandozeile
von make noch einige Optionen angeben,
die im Makefile beschrieben sind
und am die Anfang des Baus ausgegeben werden:&prompt.root; cd /usr/ports/multimedia/mplayer
&prompt.root; make
N - O - T - E
Take a careful look into the Makefile in order
to learn how to tune mplayer towards you personal preferences!
For example,
make WITH_GTK1
builds MPlayer with GTK1-GUI support.
If you want to use the GUI, you can either install
/usr/ports/multimedia/mplayer-skins
or download official skin collections from
http://www.mplayerhq.hu/homepage/dload.htmlFür die meisten Benutzer sind die
voreingestellten Option in Ordnung. Wenn Sie
den XviD-Codec benötigen, müssen
Sie auf der Kommandozeile die Option
WITH_XVID angeben. Das
DVD-Gerät können Sie mit der
Option WITH_DVD_DEVICE
angeben. Wenn Sie die Option nicht angeben,
wird /dev/acd0 benutzt.Als dieser Abschnitt verfasst wurde, baute der
MPlayer-Port die
HTML-Dokumentation sowie die beiden Programme
mplayer und
mencoder. Mit
mencoder können Sie
Videodateien umwandeln.Die HTML-Dokumentation von
MPlayer ist sehr lehrreich.
Wenn Sie in diesem Kapitel Informationen über
Video-Hardware oder Schnittstellen vermissen, ist
die MPlayer-Dokumentation
eine ausgezeichnete Quelle. Wenn Sie Informationen
über die Video-Unterstützung unter &unix;
benötigen, sollten Sie die
MPlayer-Dokumentation
auf jeden Fall lesen.MPlayer benutzenMPlayerbenutzenJeder Benutzer von MPlayer
muss in seinem Heimatverzeichnis das Verzeichnis
.mplayer
anlegen. Dieses Verzeichnis können Sie
wie folgt anlegen:&prompt.user; cd /usr/ports/multimedia/mplayer
&prompt.user; make install-userDie Kommandozeilenoptionen von mplayer
sind in der Hilfeseite aufgeführt. Eine genaue
Beschreibung befindet sich in der HTML-Dokumentation.
In diesem Abschnitt wird nur der normale Gebrauch
von mplayer beschrieben.Um eine Datei, wie
testfile.avi,
unter verschiedenen Video-Schnittstellen abzuspielen,
benutzen Sie die Option :&prompt.user; mplayer -vo xv testfile.avi&prompt.user; mplayer -vo sdl testfile.avi&prompt.user; mplayer -vo x11 testfile.avi&prompt.root; mplayer -vo dga testfile.avi&prompt.root; mplayer -vo 'sdl:dga' testfile.aviEs lohnt sich, alle Option zu testen. Die
erzielte Geschwindigkeit hängt von vielen
Faktoren ab und variiert beträchtlich je nach
eingesetzter Hardware.Wenn Sie eine DVD abspielen wollen, ersetzen Sie
testfile.avi durch
.
N ist die Nummer des
Stücks, das Sie abspielen wollen und
Gerät gibt den
Gerätenamen des DVD-ROMs an. Das nachstehende
Kommando spielt das dritte Stück von
/dev/dvd:&prompt.root; mplayer -vo dga -dvd://3 /dev/dvdDas standardmäßig verwendete
DVD-Laufwerk kann beim Bau des
MPlayer-Ports
mit der Option WITH_DVD_DEVICE
festgelegt werden. Die Voreinstellung verwendet
das Gerät /dev/acd0.
Genaueres finden Sie im Makefile
des Ports.Die Tastenkombinationen zum Abbrechen, Anhalten
und Weiterführen der Wiedergabe entnehmen Sie
bitte der Ausgabe von mplayer -h
oder der Hilfeseite.Weitere nützliche Optionen für die
Wiedergabe sind zur Wiedergabe
im Vollbild-Modus und
zur Steigerung der Geschwindigkeit.Damit die Kommandozeile von mplayer
kurz bleibt, kann ein Benutzer Vorgaben in der Datei
.mplayer/config hinterlegen:vo=xv
fs=yes
zoom=yesSchließlich kann mplayer
noch DVD-Stücke in .vob-Dateien
rippen. Das zweite Stück einer DVD wandeln Sie
wie folgt in eine Datei um:&prompt.root; mplayer -dumpstream -dumpfile out.vob -dvd://2 /dev/dvdDie Ausgabedatei out.vob
wird im MPEG-Format abgespeichert und kann mit
anderen Werkzeugen aus diesem Abschnitt bearbeitet
werden.mencodermencoderSie sollten die HTML-Dokumentation lesen, bevor
Sie mencoder benutzen. Es gibt
zwar eine Hilfeseite, die aber ohne die HTML-Dokumentation
nur eingeschräkt nützlich ist. Es gibt
viele Möglichkeiten die Qualität zu verbessern,
die Bitrate zu verringern und Formate zu konvertieren.
Einige davon haben erhebliche Auswirkungen auf die
Geschwindigkeit der Wiedergabe. Zum Start finden
Sie im Folgenden einige Kommandozeilen. Die erste
kopiert einfach eine Datei:&prompt.user; mencoder input.avi -oac copy -ovc copy -o output.aviFalsche Kombinationen von Kommandozeilenparametern
ergeben eventuell Dateien, die selbst
mplayer nicht mehr abspielen kann.
Wenn Sie in eine Datei rippen, sollten Sie daher auf
jeden Fall die Option von
mplayer verwenden.Die nachstehende Kommandozeile wandelt die Datei
input.avi nach MPEG4 mit MPEG3
für den Ton um (hierfür wird der Ports
audio/lame
benötigt):&prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.aviDie Ausgabedatei lässt sowohl mit
mplayer als auch
xine abspielen.Wenn Sie input.avi durch
ersetzen und das
Kommando unter root laufen lassen,
können Sie ein DVD-Stück direkt konvertieren.
Da Sie wahrscheinlich beim ersten Mal unzufrieden mit
den Ergebnissen sind, sollten Sie das Stück zuerst
in eine Datei schreiben und anschließend
die Datei weiterverarbeiten.Der Video-Spieler xineDer Video-Spieler xine
ist ein Projekt mit großem Umfang. Das Projekt
will nicht nur ein Programm für alle Video-Anwendungen
bieten, sondern auch eine wiederverwendbare Bibliothek
und ein Programm, das durch Plugins erweiterbar ist.
Das Programm steht als fertiges Paket oder als Port
unter multimedia/xine
zur Verfügung.Der multimedia/xine-Spieler
hat noch ein paar Ecken und Kanten, macht aber insgesamt
einen guten Eindruck. Für einen reibungslosen
Betrieb benötigt xine
entweder eine schnelle CPU oder
die XVideo-Erweiterung. Das GUI
ist etwas schwerfällig.Zurzeit gibt es kein xine-Modul,
das CSS-kodierte DVDs abspielen kann und sich in
der &os; Ports-Sammlung befindet.xine ist benutzerfreundlicher
als MPlayer, bietet allerdings
nicht soviele Möglichkeiten. Am schnellsten läuft
xine mit der
XVideo-Erweiterung.In der Voreinstellung startet xine
eine grafische Benutzeroberfläche. Über
Menüs können Sie Dateien öffnen:&prompt.user; xineAlternativ können Sie das Programm auch ohne
GUI aufrufen und Dateien direkt abspielen:&prompt.user; xine -g -p mymovie.aviDie transcode-Werkzeugetranscode ist kein Spieler,
sondern eine Sammlung von Werkzeugen zur Umwandlung von
Video- und Sounddateien.
transcode mischt Video-Dateien
und kann kaputte Video-Dateien reparieren. Die
Werkzeuge werden als Filter verwendet, das heißt
die Ein- und Ausgaben verwenden
stdin/stdout.Beim Bau von transcode
über den Port multimedia/transcode können
zwar zahreiche Optionen angegeben werden. Empfehlenswert
ist es aber, den Bau mit folgendem Befehl zu starten:&prompt.root; make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \
WITH_MJPEG=yes -DWITH_XVID=yesDiese Einstellungen sollen für die meisten Anwender
ausreichend sein.Um die Fähigkeiten von
transcode zu illustrieren, wird im
folgenden Beispiel eine DivX-Datei in eine PAL MPEG-1-Datei
konvertiert:&prompt.user; transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
&prompt.user; mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpaDie daraus resultierende MPEG-Datei,
output_vcd.mpg, kann beispielsweise mit
MPlayer abgespielt werden. Sie
können sie sogar als Video-CD auf eine CD-R brennen.
Wenn Sie diese Funktion benötigen, müssen Sie
zusätzlich die beiden Programme multimedia/vcdimager und sysutils/cdrdao installieren.Zwar gibt es eine Manualpage zu
transcode, Sie sollen aber auf jeden Fall
auch die Informationen und Beispiele im
transcode-Wiki lesen.Weiterführende QuellenDie Video-Software für &os; entwickelt sich
sehr schnell. Es ist wahrscheinlich, dass die hier
angesprochenen Probleme bald gelöst sind. Bis dahin
müssen Anwender, die das meiste aus den Audio- und
Video-Fähigkeiten von &os; machen wollen, Informationen
aus mehreren FAQs und Tutorien zusammensuchen und
verschiedene Anwendungen nebeneinander betreiben. Dieser
Abschnitt weist auf weitere Informationsquellen hin.Die
MPlayer-Dokumentation
ist sehr aufschlussreich. Die Dokumente sollten wahrscheinlich
von jedem gelesen werden, der hohe Fachkenntnisse über
Video auf &unix; Systemen erlangen will. Die
MPlayer-Mailinglisten reagiert
feindselig auf Personen, die es nicht für nötig
halten, die Dokumentation zu lesen. Wenn Sie Fehlerberichte
an die Liste schicken wollen, lesen Sie bitte vorher die
ausgezeichnete Dokumentation (RTFM).Das
xine HOWTO
enthält allgemein gültige Hinweise zur
Verbesserung der Wiedergabegeschwindigkeit.Schließlich gibt es noch weitere vielversprechende
Anwendungen, die Sie vielleicht ausprobieren wollen:Avifile
gibt es schon als Port
multimedia/avifile.Ogle
wurde ebenfalls schon portiert:
multimedia/ogle.Xtheater.multimedia/dvdauthor,
ist ein Open-Source-Paket, mit dem Sie DVDs erstellen
können.JosefEl-RayesBeigetragen von MarcFonvieilleÜberarbeitet von TV-Karten einrichtenTV-KartenEinführungMit TV-Karten können Sie mit Ihrem Rechner
über Kabel oder Antenne fernsehen. Die meisten
Karten besitzen einen RCA- oder S-Video-Eingang.
Einige Karten haben auch einen FM-Radio-Empfänger.Der &man.bktr.4;-Treiber von &os; unterstützt
PCI-TV-Karten mit einem Brooktree Bt848/849/878/879 oder
einem Conexant CN-878/Fusion 878a Chip. Die Karte sollte
einen der unterstützten Empfänger besitzen, die in
der Hilfeseite &man.bktr.4; aufgeführt sind.Den Treiber einrichtenUm Ihre Karte zu benutzen, müssen Sie den
&man.bktr.4;-Treiber laden. Fügen Sie die
nachstehende Zeile in die Datei
/boot/loader.conf ein:bktr_load="YES"Sie können den Treiber für die TV-Karte
auch fest in den Kernel compilieren. Erweitern Sie
dazu Ihre Kernelkonfiguration um die folgenden Zeilen:device bktr
device iicbus
device iicbb
device smbusDie zusätzlichen Treiber werden benötigt,
da die Komponenten der Karte über einen I2C-Bus
verbunden sind. Bauen und installieren Sie dann den
neuen Kernel.Anschließend müssen Sie Ihr System
neu starten. Während des Neustarts sollte
Ihre TV-Karte erkannt werden:bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.Abhängig von Ihrer Hardware können die
Meldungen natürlich anders aussehen. Sie sollten
aber prüfen, dass der Empfänger richtig erkannt wird.
Die entdeckten Geräte lassen sich mit &man.sysctl.8;
oder in der Kernelkonfigurationsdatei überschreiben.
Wenn Sie beispielsweise einen Philips-SECAM-Empfänger
erzwingen wollen, fügen Sie die folgende Zeile
zur Kernelkonfigurationsdatei hinzu:options OVERRIDE_TUNER=6Alternativ können Sie direkt &man.sysctl.8; benutzen:&prompt.root; sysctl hw.bt848.tuner=6Weiteres zu den Optionen entnehmen Sie bitte der
Hilfeseite &man.bktr.4; und der Datei
/usr/src/sys/conf/NOTES.
Unter &os; 4.X schauen Sie bitte in der Datei
/usr/src/sys/i386/conf/LINT nach.Nützliche AnwendungenUm die TV-Karte zu benutzen, müssen Sie eine
der nachstehenden Anwendungen installieren:multimedia/fxtv
lässt das Fernsehprogramm in einem Fenster laufen
und kann Bilder, Audio und Video aufzeichnen.multimedia/xawtv
eine weitere TV-Anwendung, mit den gleichen Funktionen
wie fxtv.misc/alevt dekodiert
und zeigt Videotext/Teletext an.Mit audio/xmradio
lässt sich der FM-Radio-Empfänger, der sich
auf einigen TV-Karten befindet, benutzen.audio/wmtune
ein leicht zu bedienender Radio-Empfänger.Weitere Anwendungen finden Sie in der &os;
Ports-Sammlung.FehlersucheWenn Sie Probleme mit Ihrer TV-Karte haben, prüfen
Sie zuerst, ob der Video-Capture-Chip und der Empfänger
auch wirklich vom &man.bktr.4;-Treiber unterstützt
werden. Prüfen Sie dann, ob Sie die richtigen
Optionen verwenden. Weitere Hilfe erhalten Sie auf
der Mailingliste &a.multimedia.name; und in deren
Archiven.MarcFonvieilleBeigetragen von ScannerScannerEinführungUnter &os; können Sie, wie unter jedem anderen
modernen Betriebssystem, Scanner benutzen. Die Anwendung
SANE (Scanner Access Now Easy)
aus der Ports-Sammlung stellt eine einheitliche Schnittstelle
(API)
für den Zugriff auf Scanner bereit.
SANE greift auf Scanner
mithilfe einiger &os;-Treiber zu.&os; unterstützt sowohl SCSI- als auch USB-Scanner.
Prüfen Sie vor der Konfiguration mithilfe der
Liste
der unterstützten Geräte ob Ihr Scanner
von SANE unterstützt wird.
Die Hilfeseite &man.uscanner.4; zählt ebenfalls die
unterstützten USB-Scanner auf.Den Kernel für Scanner einrichtenDa sowohl SCSI- als auch USB-Scanner unterstützt
werden, werden abhängig von der Schnittstelle
unterschiedliche Treiber benötigt.USB-ScannerIm GENERIC-Kernel sind
schon alle, für einen USB-Scanner notwendigen,
Treiber enthalten. Wenn Sie einen angepassten Kernel
benutzen, prüfen Sie, dass die Kernelkonfiguration
die nachstehenden Zeilen enthält:device usb
device uhci
device ohci
device uscannerAbhängig vom Chipsatz Ihrer Systemplatine
benötigen Sie in der Kernelkonfiguration entweder
die Option device uhci oder die
Option device ohci. Die
Kernelkonfiguration kann allerdings auch beide Optionen
enthalten.Wenn Sie den Kernel nicht neu bauen wollen
und einen angepassten Kernel verwenden, können
Sie den Treiber &man.uscanner.4; direkt mit dem
Kommando &man.kldload.8; laden:&prompt.root; kldload uscannerWenn Sie das Modul bei jedem Systemstart laden
wollen, fügen Sie in der Datei
/boot/loader.conf die nachstehende
Zeile hinzu:uscanner_load="YES"Nachdem Sie das System mit dem richtigen Kernel
neu gestartet oder das Modul geladen haben, stecken
Sie den USB-Scanner ein. In den Systemmeldungen
(&man.dmesg.8;) sollte ein Eintrag wie der folgende
erscheinen:uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2Die Meldung besagt, dass der Scanner die
Gerätedatei /dev/uscanner0
benutzt.Unter &os; 4.X muss der USB-Daemon (&man.usbd.8;)
laufen, damit manche USB-Geräte erkannt werden.
Um den USB-Daemon zu aktivieren, fügen Sie in
der Datei /etc/rc.conf die Anweisung
usbd_enable="YES" ein und starten
die Maschine neu.SCSI-ScannerWenn Ihr Scanner eine SCSI-Schnittstelle besitzt,
ist die Kernelkonfiguration abhängig vom
verwendeten SCSI-Controller. Der
GENERIC-Kernel unterstützt
die gebräuchlichen SCSI-Controller. Den richtigen
Treiber finden Sie in der Datei NOTES
(LINT unter &os; 4.X).
Neben dem Treiber muss Ihre Kernelkonfiguration
noch die nachstehenden Zeilen enthalten:device scbus
device passNachdem Sie einen Kernel gebaut haben, sollte
der Scanner beim Neustart in den Systemmeldungen
erscheinen:pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfersWenn der Scanner während des Systemstarts
ausgeschaltet war, können Sie die Geräteerkennung
erzwingen, indem Sie den SCSI-Bus erneut absuchen.
Verwenden Sie dazu das Kommando &man.camcontrol.8;:&prompt.root; camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successfulDer Scanner wird anschließend in der
SCSI-Geräteliste angezeigt:&prompt.root; camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)Weiteres über SCSI-Geräte lesen Sie
bitte in den Hilfeseiten &man.scsi.4; und &man.camcontrol.8;
nach.SANE konfigurierenSANE besteht aus zwei
Teilen: den Backends
(graphics/sane-backends)
und den Frontends
(graphics/sane-frontends).
Das Backend greift auf den Scanner zu. Welches Backend
welchen Scanner unterstützt, entnehmen Sie der
Liste
der unterstützten Geräte..
Der Betrieb eines Scanners ist nur dem richtigen
Backend möglich. Die Frontends sind die Anwendungen,
mit denen gescannt wird (xscanimage).Installieren Sie zuerst den Port oder das Paket
graphics/sane-backends.
Anschließend können Sie mit dem Befehl
sane-find-scanner prüfen, ob
SANE Ihren Scanner erkennt:&prompt.root; sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3Die Ausgabe zeigt die Schnittstelle und die verwendete
Gerätedatei des Scanners. Der Hersteller und das
Modell können in der Ausgabe fehlen.Bei einigen USB-Scannern müssen Sie die
Firmware aktualisieren, dies wird in der Hilfeseite
des Backends erklärt. Lesen Sie bitte auch
die Hilfeseiten &man.sane-find-scanner.1; und
&man.sane.7;.Als nächstes müssen Sie prüfen, ob
der Scanner vom Frontend erkannt wird. Die
SANE-Backends werden
mit dem Kommandozeilenwerkzeug &man.scanimage.1;
geliefert. Mit diesem Werkzeug können Sie
sich Scanner anzeigen lassen und den Scan-Prozess
von der Kommandozeile starten. Die Option
zeigt die Scanner an:&prompt.root; scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scannerErscheint die Meldung, dass kein Scanner gefunden
wurde oder wird gar keine Ausgabe erzeugt, konnte
&man.scanimage.1; keinen Scanner erkennen. In diesem
Fall müssen Sie in der Konfigurationsdatei des Backends
das zu benutzende Gerät eintragen. Die
Konfigurationsdateien der Backends befinden sich
im Verzeichnis
/usr/local/etc/sane.d/.
Erkennungsprobleme treten bei bestimmten USB-Scannern
auf.Mit dem USB-Scanner aus
zeigt sane-find-scanner die
folgende Ausgabe:&prompt.root; sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0Der Scanner wurde richtig erkennt, er benutzt eine
USB-Schnittstelle und verwendet die Gerätedatei
/dev/uscanner0. Ob der Scanner
vom Frontend erkannt wird, zeigt das nachstehende
Kommando:&prompt.root; scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).Da der Scanner nicht erkannt wurde, muss die Datei
/usr/local/etc/sane.d/epson.conf editiert
werden. Der verwendete Scanner war ein
&epson.perfection; 1650, daher wird das
epson-Backend benutzt. Lesen Sie
bitte alle Kommentare in der Konfigurationsdatei des
Backends. Die durchzuführenden Änderungen
sind einfach. Kommentieren Sie zunächst alle
Zeilen mit der falschen Schnittstelle aus. Da der
Scanner eine USB-Schnittstelle besitzt, wurden im
Beispiel alle Zeilen, die mit scsi
anfingen, auskommentiert. Fügen Sie dann die
Schnittstelle und den Gerätenamen am Ende der
Datei ein. In diesem Beispiel wurde die nachstehende
Zeile eingefügt:usb /dev/uscanner0Weitere Hinweise entnehmen Sie bitte der Hilfeseite
des Backends. Jetzt können Sie prüfen,
ob der Scanner richtig erkannt wird:&prompt.root; scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scannerDer Scanner wurde nun erkannt. Es ist nicht wichtig,
ob der Hersteller oder das Modell richtig angezeigt werden.
Wichtig ist die Ausgabe `epson:/dev/uscanner0',
die das richtige Backend und den richtigen Gerätenamen
anzeigt.Wenn scanimage -L den Scanner erkannt
hat, ist der Scanner eingerichtet und bereit, zu
scannen.Obwohl wir mit &man.scanimage.1; von der Kommandozeile
scannen können, ist eine graphische Anwendung
zum Scannen besser geeignet. SANE
bietet ein einfaches und effizientes Werkzeug:
xscanimage (graphics/sane-frontends).Xsane
(graphics/xsane)
ist eine weitere beliebte graphische Anwendung.
Dieses Frontend besitzt erweiterte Funktionen
wie den Scan-Modus (beispielsweise Photo, Fax),
eine Farbkorrektur und Batch-Scans. Beide Anwendungen
lassen sich als
GIMP-Plugin verwenden.Den Scanner für Benutzerkonten freigebenVorher wurden alle Tätigkeiten mit
root-Rechten ausgeführt.
Wenn andere Benutzer den Scanner benutzen sollen,
müssen sie Lese- und Schreibrechte auf die
Gerätedatei des Scanners besitzen. Im
Beispiel wird die Datei /dev/uscanner0
verwendet, die der Gruppe operator
gehört. Damit der Benutzer joe
auf den Scanner zugreifen kann, muss das Konto in
die Gruppe operator aufgenommen
werden:&prompt.root; pw groupmod operator -m joeWeiteres entnehmen Sie bitte der Hilfeseite
&man.pw.8;. Da Mitglieder der Gruppe
operator in der Voreinstellung nur
Leserechte für die Gerätedatei
/dev/uscanner0 besitzen, müssen
Sie ebenfalls die Schreibbrechtigung (0660
oder 0664) vergeben. Dazu fügen Sie
in die Datei /etc/devfs.rules
die nachstehenden Zeilen ein:[system=5]
add path uscanner0 mode 660In die Datei /etc/rc.conf
fügen Sie noch die folgende Zeile ein:devfs_system_ruleset="system"Starten Sie anschließend Ihr System neu.Weiteres entnehmen Sie bitte der Hilfeseite &man.devfs.8;.
Unter &os; 4.X können Mitglieder der Gruppe
operator per Voreinstellung die Datei
/dev/uscanner0 lesen und schreiben.Aus Sicherheitsgründen sollten Sie genau darauf
achten, wen Sie in eine Gruppe aufnehmen, besonders
wenn es sich um die Gruppe operator
handelt.
diff --git a/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml b/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml
index 13855e1e2f..6e05f19a09 100644
--- a/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml
@@ -1,5629 +1,5635 @@
MurrayStokelyÜberarbeitet von JohannKoisÜbersetzt von NetzwerkserverÜbersichtDieses Kapitel beschreibt einige der häufiger verwendeten
Netzwerkdienste auf &unix;-Systemen. Beschrieben werden
Installation und Konfiguration sowie Test und Wartung
verschiedener Netzwerkdienste. Zusätzlich sind im ganzen
Kapitel Beispielkonfigurationsdateien vorhanden, von denen Sie
sicherlich profitieren werden.Nachdem Sie dieses Kapitel gelesen haben, werden SieDen inetd-Daemon konfigurieren
können.Wissen, wie man ein Netzwerkdateisystem einrichtet.Einen Network Information
Server einrichten können, um damit
Benutzerkonten im Netzwerk zu verteilen.Rechner durch Nutzung von DHCP automatisch für ein
Netzwerk konfigurieren können.In der Lage sein, einen Domain Name
Server einzurichten.Den Apache HTTP-Server
konfigurieren können.Wissen, wie man einen File Transfer
Protocol (FTP)-Server einrichtet.Mit Samba einen Datei- und
Druckserver für &windows;-Clients konfigurieren
können.Unter Nutzung des NTP-Protokolls Datum und Uhrzeit
synchronisieren sowie einen Zeitserver installieren
können.Bevor Sie dieses Kapitel lesen, sollten SieDie Grundlagen der /etc/rc-Skripte
verstanden haben.Mit der grundlegenden Netzwerkterminologie vertraut sein.Wissen, wie man zusätzliche Softwarepakete von
Drittherstellern installiert ().ChernLeeBeigetragen von
+
+
+ Aktualisiert für &os; 6.1-RELEASE vom
+ &os; Documentation Project
+
+ Der inetdSuper-ServerÜberblick
- &man.inetd.8; wird auch als Internet
+ &man.inetd.8; wird manchmal auch als Internet
Super-Server bezeichnet, weil er Verbindungen für
mehrere Dienste verwaltet. Wenn eine Verbindung eintrifft,
bestimmt inetd, welches Programm
für die eingetroffene Verbindung zuständig ist,
aktiviert den entsprechenden Prozess und reicht den Socket an
ihn weiter (der Socket dient dabei als Standardein- und -ausgabe
- sowie zur Fehlerbehandlung). Durch die Nutzung einer einzigen
- Instanz des inetd-Daemons an Stelle
- viele einzelner Daemonen lässt sich die Systemlast
- verringern.
+ sowie zur Fehlerbehandlung). Der Einsatz des
+ inetd-Daemons an Stelle
+ viele einzelner Daemonen kann auf nicht komplett ausgelasteten
+ Servern zu einer Verringerung der Systemlast führen.inetd wird vor allem dazu
verwendet, andere Daemonen zu aktivieren, einige Protokolle
werden aber auch direkt verwaltet. Dazu gehören
chargen,
auth, sowie
daytime.Dieser Abschnitt beschreibt die Konfiguration von
inetd durch Kommandozeilenoptionen
sowie die Konfigurationsdatei
/etc/inetd.conf.Einstellungen
- inetd wird durch
- /etc/rc.conf initialisiert. Die Option
- inetd_enable ist in der Voreinstellung auf
- NO gesetzt, wird aber oft von
- sysinstall aktiviert, wenn man das
- mittlere Sicherheitsprofil auswählt. Die Verwendung von
+ inetd wird durch das
+ &man.rc.8;-System initialisiert. Die Option
+ inetd_enable ist in der Voreinstellung zwar
+ auf NO gesetzt, sie kann aber in
+ Abhängigkeit von der vom Benutzer bei der Installation
+ gewählten Konfiguration von
+ sysinstall aktiviert werden.
+ Die Verwendung von
inetd_enable="YES" oder
inetd_enable="NO" in
/etc/rc.conf deaktiviert oder startet
- inetd beim Systemstart.
+ inetd beim Systemstart. Über
+ den Befehl /etc/rc.d/inetd rcvar
+ können Sie die aktuelle Konfiguration abfragen.Weitere Optionen können über die Option
inetd_flags an
inetd übergeben werden.Kommandozeilenoptionen
- inetd verwendet folgende
- Syntax:
-
-
-
-
-
- -d
-
-
- Debugging aktivieren.
-
-
-
-
- -l
-
-
- Die Protokollierung von erfolgreich aufgebauten
- Verbindungen aktivieren.
-
-
-
-
- -w
+ Wie die meisten anderen Server-Daemonen lässt
+ sich auch inetd über
+ verschiedene Optionen steuern. Die vollständige Syntax
+ für inetd lautet:
-
- TCP-Wrapping für externe Dienste aktivieren
- (Voreinstellung).
-
-
+ inetd
-
- -W
-
-
- TCP-Wrapping für interne, in
- inetd eingebaute Dienste
- aktivieren (Voreinstellung).
-
-
+ Die verschiedenen Optionen können über die Option
+ inetd_flags der Datei
+ /etc/rc.conf an
+ inetd übergeben werden. In
+ der Voreinstellung hat diese Option den Wert
+ -wW -C 60. Durch das Setzen dieser Werte
+ wird das TCP-Wrapping für alle
+ inetd-Dienste aktiviert.
+ Zusätzlich kann eine einzelne IP-Adresse jeden Dienst
+ nur maximal 60 Mal pro Minute anfordern.
+
+ Für Einsteiger ist es erfreulich, dass diese Parameter
+ in der Regel nicht angepasst werden müssen. Da diese
+ Parameter aber dennoch von Interesse sein können
+ (beispielsweise, wenn Sie eine enorme Anzahl von
+ Verbindungsanfragen erhalten), werden einige dieser
+ einschränkenden Parameter im Folgenden näher
+ erläutert. Eine vollständige Auflistung aller
+ Optionen finden Sie hingegen in &man.inetd.8;.
+ -c maximumLegt die maximale Anzahl von parallen Aufrufen eines
Dienstes fest; in der Voreinstellung gibt es keine
Einschränkung. Diese Einstellung kann für jeden
Dienst durch Setzen des
-Parameters festgelegt werden.-C rateLegt fest, wie oft ein Dienst von einer einzelnen
IP-Adresse in einer Minute aufgerufen werden kann; in der
Voreinstellung gibt es keine Einschränkung. Dieser
Wert kann für jeden Dienst durch Setzen des
Parameters
festgelegt werden.-R rateLegt fest, wie oft ein Dienst in der Minute aktiviert
werden kann; in der Voreinstellung sind dies 256
Aktivierungen pro Minute. Ein Wert von 0 erlaubt
unbegrenzt viele Aktivierungen.
- -a
+ -s maximum
- Legt die IP-Adresse fest, an die ein Dienst gebunden
- wird. Alternativ kann auch ein Rechnername angegeben
- werden. In diesem Fall wird die IPv4- oder IPv6-Adresse
- des Rechners verwendet. Ein Rechnername wird meist dann
- festgelegt, wenn inetd
- innerhalb eines &man.jail.8;s läuft. In diesem Fall
- entspricht der Rechnername der &man.jail.8;-Umgebung.
-
- Wenn ein Rechnername angegeben wird, und sowohl IPv4
- als auch IPv6 benötigt werden, muss jedes Protokoll
- durch einen Eintrag in
- /etc/inetd.conf an jeden einzelnen
- benötigten Dienst gebunden werden. Ein TCP-basierter
- Dienst benötigt also zwei Einträge, einen
- für tcp4, den anderen für
- tcp6.
-
-
-
-
- -p
-
-
- Legt eine alternative Datei fest, in der Prozess-IDs
- gespeichert werden sollen.
+ Legt fest, wie oft ein Dienst in der Minute von einer
+ einzelnen IP-Adresse aus aktiviert werden kann; in der
+ Voreinstellung gibt es hier keine Beschränkung. Diese
+ Einstellung kann für jeden Dienst durch die Angabe
+ angepasst werden.
-
- Diese Argumente können durch das Setzen der Option
- inetd_flags in der Datei
- /etc/rc.conf an
- inetd übergeben werden. In der
- Voreinstellung hat inetd_flags den Wert
- -wW. TCP-Wrapping ist also für interne
- und externe Dienste von inetd
- aktiviert. Im Normalfall müssen diese Parameter weder
- geändert noch in /etc/rc.conf
- eingetragen werden.
-
-
- Ein externer Dienst ist ein Daemon ausserhalb von
- inetd, der nur aktiviert wird, wenn
- eine Verbindung für ihn ankommt. Ein interner Dienst
- wird hingegen von inetd selbst
- bereitgestellt.
-
+
inetd.confDie Konfiguration von inetd
erfolgt über die Datei
/etc/inetd.conf.Wenn /etc/inetd.conf geändert
- wird, kann inetd durch Senden eines
- HangUP-Signals an den inetd-Prozess
- veranlasst werden, seine Konfigurationsdatei neu einzulesen.
-
+ wird, kann inetd veranlasst werden,
+ seine Konfigurationsdatei neu einzulesen.
-
- Ein HangUP-Signal an inetd
- senden
+
+ Die inetd-Konfiguration neu
+ einlesen
- &prompt.root; kill -HUP `cat /var/run/inetd.pid`
+ &prompt.root; /etc/rc.d/inetd reloadJede Zeile der Konfigurationsdatei beschreibt jeweils einen
- Daemon. Kommentare beginnen mit einem #.
- /etc/inetd.conf hat folgenden Aufbau:
-
+ Daemon. Kommentare beginnen mit einem #. Ein
+ Eintrag der Datei /etc/inetd.conf hat
+ folgenden Aufbau:
service-name
socket-type
protocol
-{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]
+{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]
server-program
server-program-argumentsEin Eintrag für den IPv4 verwendenden
- ftpd-Daemon könnte so
- aussehen:
+ &man.ftpd.8;-Daemon könnte so aussehen:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lservice-nameDer Dienstname eines bestimmten Daemons. Er muss
einem in /etc/services aufgelisteten
Dienst entsprechen. In dieser Datei wird festgelegt,
welchen Port inetd abhören
muss. Wenn ein neuer Dienst erzeugt wird, muss er zuerst
in die Datei /etc/services
eingetragen werden.socket-typeEntweder stream,
dgram, raw, oder
seqpacket. stream
muss für verbindungsorientierte TCP-Daemonen
verwendet werden, während dgram
das UDP-Protokoll verwaltet.protocolEines der folgenden:ProtokollBedeutungtcp, tcp4TCP (IPv4)udp, udp4UDP (IPv4)tcp6TCP (IPv6)udp6UDP (IPv6)tcp46TCP sowohl unter IPv4 als auch unter IPv6udp46UDP sowohl unter IPv4 als auch unter IPv6
- {wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]
+ {wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] gibt an, ob der von
inetd aktivierte Daemon seinen
eigenen Socket verwalten kann oder nicht.
-Sockets müssen die Option
verwenden, während Daemonen mit
Stream-Sockets, die normalerweise auch aus mehreren
Threads bestehen, die Option
verwenden sollten. Die Option
gibt in der Regel mehrere Sockets an einen einzelnen
Daemon weiter, während
für jeden neuen Socket einen Childdaemon erzeugt.
- Die maximale Anzahl an Childdaemonen, die
+ Die maximale Anzahl an Child-Daemonen, die
inetd erzeugen kann, wird durch
die Option festgelegt. Wenn
ein bestimmter Daemon 10 Instanzen benötigt, sollte
der Wert /10 hinter die Option
- gesetzt werden.
+ gesetzt werden. Geben Sie
+ hingegen den Wert /0 an, gibt es
+ keine Beschränkung.Zusätzlich zu kann
die maximale Anzahl von Verbindungen eines Rechners mit
- einem bestimmten Daemon durch die Option
+ einem bestimmten Daemon durch zwei weitere Optionen
+ beschränkt werden. Die Option
- beschränkt werden. Ein Wert von zehn würde
- die maximale Anzahl von Verbindungsversuchen einer
- IP-Adresse mit einem bestimmten Dienst auf zehn Versuche
- in der Minute beschränken. Dadurch lassen sich ein
- absichtlicher oder unabsichtlicher Ressourcenverbrauch
- sowie die Auswirkungen eines
+ legt die maximale Anzahl von Verbindungsversuchen fest,
+ die von einer bestimmten IP-Adresse aus unternommen werden
+ können. Ein Wert von zehn würde die maximale
+ Anzahl von Verbindungsversuchen einer IP-Adresse mit einem
+ bestimmten Dienst auf zehn Versuche in der Minute
+ beschränken. Durch die Angabe der Option
+ können Sie hingegen
+ festlegen, wieviele Child-Daemonen von einer bestimmten
+ IP-Adresse aus gestartet werden können. Durch diese
+ Optionen lassen sich ein absichtlicher oder unabsichtlicher
+ Ressourcenverbrauch sowie die Auswirkungen eines
Denial of Service (DoS)-Angriffs auf
einen Rechner begrenzen.
- oder
- sind in diesem Fall obligatorisch.
- und
- sind
- hingegen optional.
+ Sie müssen hier entweder
+ oder angeben. Die Angabe von
+ ,
+ und
+ ist hingegen
+ optional.Ein multithread-Daemon vom Streamtyp ohne die Optionen
- oder
- sieht
- so aus: nowait
+ ,
+ oder
+ sieht so aus:
+ nowaitDer gleiche Daemon mit einer maximal möglichen
Anzahl von 10 parallelen Daemonen würde so aussehen:
nowait/10Wird zusätzlich die Anzahl der möglichen
Verbindungen pro Minute für jede IP-Adresse auf
20 sowie die mögliche Gesamtzahl von Childdaemonen
auf 10 begrenzt, so sieht der Eintrag so aus:
nowait/10/20All diese Optionen werden vom
- fingerd-Daemon bereits in der
- Voreinstellung verwendet:
+ &man.fingerd.8;-Daemon bereits in der Voreinstellung
+ verwendet:
finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s
+
+ Will man die maximale Anzahl von Child-Daemonen auf
+ 100 beschränken, wobei von jeder IP-Adresse aus
+ maximal 5 Child-Daemonen gestartet werden dürfen,
+ verwendet man den folgenden Eintrag:
+ nowait/100/0/5.userDer Benutzername, unter dem der jeweilige Daemon
laufen soll. Meistens laufen Daemonen als User
root. Aus Sicherheitsgründen
laufen einige Server aber auch als User
daemon, oder als am wenigsten
privilegierter User nobody.server-programDer vollständige Pfad des Daemons, der eine
Verbindung entgegennimmt. Wird der Daemon von
inetd intern bereitgestellt,
sollte die Option verwendet
werden.server-program-argumentsDieser Eintrag legt (gemeinsam mit
und beginnend mit
argv[0]), die Argumente fest, die bei
der Aktivierung an den Daemon übergeben werden.
Wenn die Anweisung auf der Kommandozeile also
mydaemon -d lautet, wäre
mydaemon -d auch der Wert der Option
. Wenn es sich
beim Daemon um einen internen Dienst handelt, sollte
wiederum die Option verwendet
werden.Sicherheit
- Abhängig von dem bei der Installation ausgewählten
- Sicherheitsprofil werden viele der von
- inetd verwalteten Daemonen automatisch
+ Abhängig von der bei der Installation festgelegten
+ Konfiguration werden viele der von
+ inetd verwalteten Dienste automatisch
aktiviert! Wenn Sie einen bestimmten Daemon nicht
- benötigen, deaktivieren Sie ihn! Dazu kommentieren Sie den
- jeweiligen Daemon in /etc/inetd.conf mit
- einem # aus, und senden ein
- Hangup-Signal (HUP) an
- inetd. Einige Daemonen, zum Beispiel
+ benötigen, sollten Sie ihn deaktivieren! Dazu kommentieren
+ Sie den jeweiligen Daemon in /etc/inetd.conf
+ mit einem # aus, um danach die
+ inetd-Konfiguration neu
+ einzulesen. Einige Daemonen, zum Beispiel
fingerd, sollten generell deaktiviert
- werden, da sie einen potentiellen Angreifer mit zu viel
- Informationen versorgen.
+ werden, da sie zu viele Informationen an einen potentiellen
+ Angreifer liefern.Einige Daemonen haben unsichere Einstellungen, etwa
große oder nichtexistierende Timeouts für
Verbindungsversuche, die es einem Angreifer erlauben, über
lange Zeit langsam Verbindungen zu einem bestimmten Daemon
aufzubauen, um dessen verfügbare Ressourcen zu verbrauchen.
Es ist daher eine gute Idee, diese Daemonen durch die Optionen
- und
- zu beschränken.
+ ,
+ sowie
+ zu beschränken, wenn
+ Sie sehr viele Verbindungsversuche mit Ihrem System
+ registrieren.
TCP-Wrapping ist in der Voreinstellung aktiviert. Lesen Sie
&man.hosts.access.5;, wenn Sie weitere Informationen zum
Setzen von TCP-Beschränkungen für verschiedene von
inetd aktivierte Daemonen
benötigen.VerschiedenesBei daytime,
time,
echo,
discard,
chargen, und
auth handelt es sich um intern
von inetd bereitgestellte Dienste.
Der auth-Dienst bietet
- Identifizierungsdienste (ident,
- identd) über das Netzwerk
- an und ist bis zu einem bestimmten Grad konfigurierbar.
+ Identifizierungsdienste über das Netzwerk
+ an und ist bis zu einem bestimmten Grad konfigurierbar,
+ während die meisten anderen Dienste nur aktiviert
+ oder deaktiviert werden können.
Eine ausführliche Beschreibung finden Sie in
&man.inetd.8;.TomRhodesReorganisiert und erweitert von BillSwingleGeschrieben von NFS – Network File SystemNFSEines der vielen von FreeBSD unterstützten Dateisysteme
ist das Netzwerkdateisystem, das auch als NFS
bekannt ist. NFS
ermöglicht es einem System, Dateien und Verzeichnisse
über ein Netzwerk mit anderen zu teilen. Über
NFS können
Benutzer und Programme auf Daten entfernter Systeme zugreifen, und
zwar genauso, wie wenn es sich um lokale Daten handeln würde.
Einige der wichtigsten Vorteile von NFS
sind:Lokale Arbeitsstationen benötigen weniger
Plattenplatz, da gemeinsam benutzte Daten nur auf einem
einzigen Rechner vorhanden sind. Alle anderen Stationen
greifen über das Netzwerk auf diese Daten zu.Benutzer benötigen nur noch ein zentrales
Heimatverzeichnis auf einem NFS-Server.
Diese Verzeichnisse sind über das Netzwerk auf allen
Stationen verfügbar.Speichergeräte wie Disketten-, CD-ROM- oder
&iomegazip;-Laufwerke können über das Netzwerk von
anderen Arbeitstationen genutzt werden. Dadurch sind für
das gesamte Netzwerk deutlich weniger Speichergeräte
nötig.Wie funktioniert NFS?NFS besteht aus zwei Hauptteilen: Einem
Server und einem oder mehreren Clients. Der Client greift
über das Netzwerk auf die Daten zu, die auf dem Server
gespeichert sind. Damit dies korrekt funktioniert, müssen
einige Prozesse konfiguriert und gestartet werden:&os; 4.X verwendet portmap
an Stelle von rpcbind. Benutzer
von &os; 4.X müssen daher in den folgenden
Beispielen rpcbind durch
portmap ersetzen.Der Server benötigt folgende Daemonen:NFSServerDateiserverUnix-ClientsrpcbindportmapmountdnfsdDaemonBeschreibungnfsdDer NFS-Daemon. Er bearbeitet
Anfragen der NFS-Clients.mountdDer NFS-Mount-Daemon. Er
bearbeitet die Anfragen, die &man.nfsd.8; an ihn
weitergibt.rpcbind Der Portmapper-Daemon. Durch ihn erkennen die
NFS-Clients, welchen Port der
NFS-Server verwendet.Der Client kann ebenfalls einen Daemon aufrufen, und zwar
den nfsiod-Daemon. Der
nfsiod-Daemon bearbeitet Anfragen vom
NFS-Server. Er ist optional und verbessert
die Leistung des Netzwerks. Für eine normale und korrekte
Arbeit ist er allerdings nicht erforderlich. Mehr erfahren
Sie in der Hilfeseite &man.nfsiod.8;.NFS einrichtenNFSeinrichtenNFS lässt sich leicht
einrichten. Die nötigen Prozesse werden durch einige
Änderungen in /etc/rc.conf bei
jedem Systemstart gestartet.Stellen Sie sicher, dass auf dem
NFS-Server folgende Optionen in der Datei
/etc/rc.conf gesetzt sind:rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"mountd läuft automatisch,
wenn der NFS-Server aktiviert ist.Auf dem Client muss in /etc/rc.conf
folgende Option gesetzt sein:nfs_client_enable="YES"/etc/exports legt fest, welche
Dateisysteme NFS exportieren (manchmal auch
als teilen bezeichnet) soll. Jede Zeile in
/etc/exports legt ein Dateisystem sowie
die Arbeitsstationen, die darauf Zugriff haben, fest.
Außerdem ist es möglich, Zugriffsoptionen
festzulegen. Es gibt viele verschiedene Optionen, allerdings
werden hier nur einige von ihnen erwähnt. Wenn Sie
Informationen zu weiteren Optionen benötigen, lesen Sie
&man.exports.5;.Nun folgen einige Beispieleinträge für
/etc/exports:NFSExport von DateisystemenDie folgenden Beispiele geben Ihnen Anhaltspunkte zum
Exportieren von Dateisystemen, obwohl diese Einstellungen
natürlich von Ihrer Arbeitsumgebung und Ihrer
Netzwerkkonfiguration abhängen. Das nächste
Beispiel exportiert das Verzeichnis /cdrom
für drei Rechner, die sich in derselben Domäne wie
der Server befinden oder für die entsprechende
Einträge in /etc/hosts existieren.
Die Option kennzeichnet das
exportierte Dateisystem als schreibgeschützt. Durch dieses
Flag ist das entfernte System nicht in der Lage, das exportierte
Dateisystem zu verändern./cdrom -ro host1 host2 host3Die nächste Zeile exportiert /home
auf drei durch IP-Adressen bestimmte Rechner. Diese Einstellung
ist nützlich, wenn Sie über ein privates Netzwerk ohne
DNS-Server verfügen. Optional
könnten interne Rechnernamen auch in
/etc/hosts konfiguriert werden.
Benötigen Sie hierzu weitere Informationen, lesen Sie bitte
&man.hosts.5;. Durch das Flag wird es
möglich, auch Unterverzeichnisse als Mountpunkte
festzulegen. Dies bedeutet aber nicht, dass alle
Unterverzeichnisse eingehängt werden, vielmehr wird es dem
Client ermöglicht, nur diejenigen Verzeichnisse
einzuhängen, die auch benötigt werden./home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4Die nächste Zeile exportiert /a,
damit Clients von verschiedenen Domänen auf das Dateisystem
zugreifen können. Das -Flag
erlaubt es dem Benutzer root des entfernten
Systems, als root auf das exportierte
Dateisystem zu schreiben. Wenn dieses Flag nicht gesetzt ist,
kann selbst root nicht auf das exportierte
Dateisystem schreiben./a -maproot=root host.example.com box.example.orgDamit ein Client auf ein exportiertes Dateisystem zugreifen
kann, muss ihm dies explizit gestattet werden. Stellen Sie also
sicher, dass der Client in /etc/exports
aufgeführt wird.Jede Zeile in /etc/exports entspricht
der Exportinformation für ein Dateisystem auf einen
Rechner. Ein entfernter Rechner kann für jedes Dateisystem
nur einmal festgelegt werden, und kann auch nur einen
Standardeintrag haben. Nehmen wir an, dass
/usr ein einziges Dateisystem ist. Dann
wären folgende Zeilen ungültig:#Nicht erlaubt, wenn /usr ein einziges Dateisystem ist
/usr/src client
/usr/ports clientDas Dateisystem /usr wird hier zweimal
auf den selben Rechner (client)
exportiert. Dies ist aber nicht zulässig. Der korrekte
Eintrag sieht daher so aus:/usr/src /usr/ports clientDie Eigenschaften eines auf einen anderen Rechner
exportierten Dateisystems müssen alle in einer Zeile
stehen. Zeilen, in denen kein Rechner festgelegt wird, werden
als einzelner Rechner behandelt. Dies schränkt die
Möglichkeiten zum Export von Dateisystemen ein, für
die meisten Anwender ist dies aber kein Problem.Eine gültige Exportliste, in der
/usr und /exports
lokale Dateisysteme sind, sieht so aus:# Export src and ports to client01 and client02, but only
# client01 has root privileges on it
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# The client machines have root and can mount anywhere
# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=root client01 client02
/exports/obj -roSie müssen mountd nach jeder
Änderung von /etc/exports neu
starten, damit die Änderungen wirksam werden. Dies
kann durch das Senden des HUP-Signals an den
mountd-Prozess erfolgen:&prompt.root; kill -HUP `cat /var/run/mountd.pid`Alternativ können Sie auch das System neu starten.
Dies ist allerdings nicht nötig. Wenn Sie die folgenden
Befehle als root ausführen, sollte
alles korrekt gestartet werden.Auf dem NFS-Server:&prompt.root; rpcbind
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rAuf dem NFS-Client:&prompt.root; nfsiod -n 4Nun sollte alles bereit sein, um ein entferntes Dateisystem
einhängen zu können. In unseren Beispielen nennen wir
den Server server, den Client
client. Wenn Sie ein entferntes Dateisystem
nur zeitweise einhängen wollen, oder nur Ihre Konfiguration
testen möchten, führen Sie auf dem Client als
root einen Befehl ähnlich dem
folgenden aus:NFSDateisysteme einhängen&prompt.root; mount server:/home /mntDadurch wird das Verzeichnis /home des
Servers auf dem Client unter /mnt
eingehängt. Wenn alles korrekt konfiguriert wurde, sehen
Sie auf dem Client im Verzeichnis /mnt alle
Dateien des Servers.Wenn Sie ein entferntes Dateisystem nach jedem Systemstart
automatisch einhängen wollen, fügen Sie das
Dateisystem in /etc/fstab ein. Dazu ein
Beispiel:server:/home /mnt nfs rw 0 0Eine Beschreibung aller Optionen enthält
die Hilfeseite &man.fstab.5;.Praktische AnwendungenNFS ist in vielen Situationen
nützlich. Einige Anwendungsbereiche finden Sie in der
folgenden Liste:NFSAnwendungsbeispieleMehrere Maschinen können sich ein CD-ROM-Laufwerk
oder andere Medien teilen. Dies ist billiger und
außerdem praktischer, um Programme auf mehreren
Rechnern zu installieren.In größeren Netzwerken ist es praktisch,
einen zentralen NFS-Server einzurichten,
auf dem die Heimatverzeichnisse der Benutzer gespeichert
werden. Diese Heimatverzeichnisse werden über das
Netzwerk exportiert. Dadurch haben die Benutzer immer das
gleiche Heimatverzeichnis zur Verfügung,
unabhängig davon, an welchem Arbeitsplatz sie sich
anmelden.Verschiedene Rechner können auf ein gemeinsames
Verzeichnis /usr/ports/distfiles
zugreifen. Wenn Sie nun einen Port auf mehreren Rechnern
installieren wollen, greifen Sie einfach auf dieses
Verzeichnis zu, ohne die Quelldateien auf jede Maschine
zu kopieren.WylieStilwellBeigetragen von ChernLeeÜberarbeitet von AMDamdAutomatic Mounter Daemon&man.amd.8; (Automatic Mounter Daemon) hängt ein
entferntes Dateisystem automatisch ein,
wenn auf eine Datei oder ein Verzeichnis in diesem Dateisystem
zugegriffen wird. Dateisysteme, die über einen gewissen
Zeitraum inaktiv sind, werden von amd
automatisch abgehängt.
amd ist eine einfache
Alternative zum dauerhaften Einhängen von Dateisystemen
in /etc/fstab.In der Voreinstellung stellt amd
die Verzeichnisse /host und
/net als NFS-Server bereit. Wenn auf eine
Datei in diesen Verzeichnissen zugegriffen wird, sucht
amd den entsprechenden Mountpunkt
und hängt das Dateisystem automatisch ein.
/net wird zum Einhängen von
exportierten Dateisystemen von einer IP-Adresse verwendet,
während /host zum Einhängen
von exportierten Dateisystemen eines durch seinen Namen
festgelegten Rechners dient.Ein Zugriff auf eine Datei in
/host/foobar/usr würde
amd veranlassen,
das von foobar exportierte Dateisystem
/usr einzuhängen.Ein exportiertes Dateisystem mit
amd in den Verzeichnisbaum
einhängenSie können sich die verfügbaren Mountpunkte
eines entfernten Rechners mit showmount
ansehen. Wollen Sie sich die Mountpunkte des Rechners
foobar ansehen, so verwenden Sie:&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usrWie Sie an diesem Beispiel erkennen können, zeigt
showmount/usr
als exportiertes Dateisystem an. Wenn man in das Verzeichnis
/host/foobar/usr wechselt, versucht
amd den Rechnernamen
foobar aufzulösen und den gewünschten
Export in den Verzeichnisbaum einzuhängen.amd kann durch das Einfügen
der folgenden Zeile in /etc/rc.conf
automatisch gestartet werden:amd_enable="YES"Mit der Option amd_flags kann
amd angepasst werden.
Die Voreinstellung für amd_flags sieht
so aus:amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"/etc/amd.map legt die Standardoptionen
fest, mit denen exportierte Dateisysteme in den Verzeichnisbaum
eingehängt werden. /etc/amd.conf
hingegen legt einige der erweiterten Optionen von
amd fest.Weitere Informationen finden Sie in den Hilfeseiten
&man.amd.8; und &man.amd.conf.5;.JohnLindBeigetragen von Integrationsprobleme mit anderen SystemenBestimmte ISA-Ethernetadapter haben Beschränkungen, die
zu ernsthaften Netzwerkproblemen, insbesondere mit NFS
führen können. Es handelt sich dabei nicht um ein
FreeBSD-spezifisches Problem, aber FreeBSD-Systeme sind davon
ebenfalls betroffen.Das Problem tritt fast ausschließlich dann auf, wenn
(FreeBSD)-PC-Systeme mit Hochleistungsrechnern verbunden werden,
wie Systemen von Silicon Graphics, Inc. oder
Sun Microsystems, Inc. Das Einhängen via NFS
funktioniert problemlos, auch einige Dateioperationen
können erfolgreich sein. Plötzlich aber wird der
Server nicht mehr auf den Client reagieren, obwohl Anfragen von
anderen Rechnern weiterhin bearbeitet werden. Dieses
Problem betrifft stets den Client, egal ob es sich beim Client
um das FreeBSD-System oder den Hochleistungsrechner handelt.
Auf vielen Systemen gibt es keine Möglichkeit mehr, den
Client ordnungsgemäß zu beenden. Die einzige
Lösung ist es oft, den Rechner neu zu starten, da dieses
NFS-Problem nicht mehr behoben werden kann.Die korrekte Lösung für dieses
Problem ist es, sich eine schnellere Ethernetkarte für
FreeBSD zu kaufen. Allerdings gibt es auch eine einfache und
meist zufriedenstellende Lösung, um dieses Problem zu
umgehen. Wenn es sich beim FreeBSD-System um den
Server handelt, verwenden Sie beim
Einhängen in den Verzeichnisbaum auf der Clientseite
zusätzlich die Option . Wenn es
sich beim FreeBSD-System um den Client
handelt, dann hängen Sie das NFS-Dateisystem mit der
zusätzlichen Option ein.
Diese Optionen können auf der Clientseite auch durch
das vierte Feld der Einträge in
/etc/fstab festgelegt werden, damit die
Dateisysteme automatisch eingehängt werden. Um die
Dateisysteme manuell einzuhängen, verwendet man bei
&man.mount.8; zusätzlich die Option
.Es gibt ein anderes Problem, das oft mit diesem verwechselt
wird. Dieses andere Problem tritt auf, wenn sich über NFS
verbundene Server und Clients in verschiedenen Netzwerken
befinden. Wenn dies der Fall ist, stellen Sie
sicher, dass Ihre Router die
nötigen UDP-Informationen weiterleiten,
oder Sie werden nirgends hingelangen, egal was Sie machen.In den folgenden Beispielen ist fastws der
Name des Hochleistungsrechners (bzw. dessen Schnittstelle),
freebox hingegen ist der Name des
FreeBSD-Systems, das über eine Netzkarte mit geringer
Leistung verfügt. /sharedfs ist das
exportierte NFS -Dateisystem (lesen Sie dazu auch
&man.exports.5;). Bei /project handelt es
sich um den Mountpunkt, an dem das exportierte Dateisystem auf
der Clientseite eingehängt wird. In allen Fällen
können zusätzliche Optionen, wie z.B.
, oder
wünschenswert sein.FreeBSD als Client (eingetragen in
/etc/fstab auf freebox):
fastws:/sharedfs /project nfs rw,-r=1024 0 0Manuelles Einhängen auf
freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project&os; als Server (eingetragen in
/etc/fstab auf fastws):
freebox:/sharedfs /project nfs rw,-w=1024 0 0Manuelles Einhängen auf fastws:&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /projectNahezu alle 16-bit Ethernetadapter erlauben Operationen
ohne obengenannte Einschränkungen auf die Lese- oder
Schreibgröße.Für alle technisch Interessierten wird nun beschrieben,
was passiert, wenn dieser Fehler auftritt, und warum er
irreversibel ist. NFS arbeitet üblicherweise mit einer
Blockgröße von 8 kByte (obwohl
es kleinere Fragmente zulassen würde). Da die maximale
Rahmengröße von Ethernet 1500 Bytes
beträgt, wird der NFS-Block in einzelne
Ethernetrahmen aufgeteilt, obwohl es sich nach wie vor um eine
Einheit handelt, die auch als Einheit empfangen, verarbeitet
und bestätigt werden muss. Der
Hochleistungsrechner verschickt die Pakete, aus denen der
NFS-Block besteht, so eng hintereinander, wie es der Standard
erlaubt. Auf der anderen Seite (auf der sich die langsamere
Netzkarte befindet), überschreiben die späteren
Pakete ihre Vorgänger, bevor diese vom System verarbeitet
werden (Überlauf!). Dies hat zur Folge, dass der NFS-Block
nicht mehr rekonstruiert und bestätigt werden kann. Als
Folge davon glaubt der Hochleistungsrechner, dass der andere
Rechner nicht erreichbar ist (Timeout!) und versucht die
Sendung zu wiederholen. Allerdings wird wiederum der komplette
NFS-Block verschickt, so dass sich der ganze Vorgang wiederholt,
und zwar immer wieder (oder bis zum Systemneustart).Indem wir die Einheitengröße unter der maximalen
Größe der Ethernetpakete halten, können wir
sicherstellen, dass jedes vollständig erhaltene
Ethernetpaket individuell angesprochen werden kann und vermeiden
die Blockierung des Systems.Überläufe können zwar nach wie vor auftreten,
wenn ein Hochleistungsrechner Daten auf ein PC-System
transferiert. Durch die besseren (und schnelleren) Netzkarten
treten solche Überläufe allerdings nicht mehr
zwingend auf, wenn
NFS-Einheiten übertragen werden. Tritt nun
ein Überlauf auf, wird die betroffene Einheit erneut
verschickt, und es besteht eine gute Chance, dass sie nun
erhalten, verarbeitet und bestätigt werden kann.BillSwingleBeigetragen von EricOgrenErweitert von UdoErdelhoffNIS/YP – Network Information ServiceWas ist NIS?NISSolarisHP-UXAIXLinuxNetBSDOpenBSDNIS
wurde von Sun Microsystems entwickelt, um &unix;-Systeme
(ursprünglich &sunos;) zentral verwalten zu können.
Mittlerweile hat es sich zu einem Industriestandard entwickelt,
der von allen wichtigen &unix;-Systemen (&solaris;, HP-UX,
&aix;, Linux, NetBSD, OpenBSD, FreeBSD und anderen)
unterstützt wird.yellow pagesNISNIS war
ursprünglich als Yellow Pages bekannt,
aus markenrechtlichen Gründen wurde der Name aber
geändert. Die alte Bezeichnung (sowie die Abkürzung YP)
wird aber nach wie vor häufig verwendet.NISDomänenBei NIS handelt es sich um ein RPC-basiertes
Client/Server-System. Eine Gruppe von Rechnern greift dabei
innerhalb einer NIS-Domäne auf gemeinsame
Konfigurationsdateien zu. Ein Systemadministrator wird dadurch
in die Lage versetzt, NIS-Clients mit minimalem Aufwand
einzurichten, sowie Änderungen an der Systemkonfiguration
von einem zentralen Ort aus durchzuführen.Windows NTDie Funktion entspricht dem Domänensystem von
&windowsnt;; auch wenn sich die interne Umsetzung unterscheidet,
sind die Basisfunktionen vergleichbar.Wichtige Prozesse und BegriffeEs gibt verschiedene Begriffe und Anwenderprozesse, auf die
Sie stoßen werden, wenn Sie NIS unter FreeBSD einrichten,
egal ob Sie einen Server oder einen Client konfigurieren:rpcbindportmapBegriffBeschreibungNIS-DomänennameEin NIS-Masterserver sowie alle Clients
(inklusive der Slaveserver) haben einen
NIS-Domänennamen. Dieser hat (ähnlich den
&windowsnt;-Domänennamen) nichts mit DNS zu tun.
rpcbindMuss laufen, damit RPC (Remote Procedure Call, ein
von NIS verwendetes Netzwerkprotokoll) funktioniert.
NIS-Server sowie Clients funktionieren ohne
rpcbind nicht. Unter
&os; 4.X ersetzen Sie
rpcbind durch
portmap.ypbindBindet einen NIS-Client an seinen
NIS-Server. Der Client bezieht den
NIS-Domänennamen vom System und stellt über
das RPC-Protokoll eine Verbindung zum NIS-Server her.
ypbind ist der zentrale
Bestandteil der Client-Server-Kommunikation in einer
NIS-Umgebung. Wird >ypbind
auf einem Client beendet, ist dieser nicht mehr in der
Lage, auf den NIS-Server zuzugreifen.ypservSollte nur auf dem NIS-Server laufen, da es sich um
den Serverprozess selbst handelt. Wenn &man.ypserv.8;
nicht mehr läuft, kann der Server nicht mehr auf
NIS-Anforderungen reagieren (wenn ein Slaveserver
existiert, kann dieser als Ersatz fungieren). Einige
NIS-Systeme (allerdings nicht das von FreeBSD) versuchen
allerdings erst gar nicht, sich mit einem anderen Server
zu verbinden, wenn der bisher verwendete Server nicht
mehr reagiert. Die einzige Lösung dieses Problems
besteht dann darin, den Serverprozess (oder gar den
Server selbst) oder den
ypbind-Prozess auf dem Client
neu zu starten.rpc.yppasswddEin weiterer Prozess, der nur auf dem
NIS-Masterserver laufen sollte. Es handelt sich um einen
Daemonprozess, der es NIS-Clients ermöglicht, sich
auf dem NIS-Masterserver anzumelden, um ihr Passwort zu
ändern.Wie funktioniert NIS?In einer NIS-Umgebung gibt es drei Rechnerarten:
Masterserver, Slaveserver und Clients. Server dienen als
zentraler Speicherort für Rechnerkonfigurationen.
Masterserver speichern die maßgebliche Kopie dieser
Informationen, während Slaveserver diese Informationen
aus Redundanzgründen spiegeln. Die Clients beziehen
ihre Informationen immer vom Server.Auf diese Art und Weise können Informationen aus
verschiedenen Dateien von mehreren Rechnern gemeinsam
verwendet werden. master.passwd,
group, und hosts
werden oft gemeinsam über NIS verwendet. Immer, wenn
ein Prozess auf einem Client auf Informationen zugreifen will,
die normalerweise in lokalen Dateien vorhanden wären,
wird stattdessen eine Anfrage an den NIS-Server gestellt, an
den der Client gebunden ist.Arten von NIS-RechnernNISMasterserverEin NIS-Masterserver verwaltet,
ähnlich einem &windowsnt;-Domänencontroller, die
von allen NIS-Clients gemeinsam verwendeten Dateien.
passwd, group,
sowie verschiedene andere von den Clients verwendete
Dateien existieren auf dem Masterserver.Ein Rechner kann auch für mehrere
NIS-Domänen als Masterserver fungieren. Dieser
Abschnitt konzentriert sich im Folgenden allerdings auf
eine relativ kleine NIS-Umgebung.NISSlaveserverNIS-Slaveserver. Ähnlich
einem &windowsnt;-Backupdomänencontroller, verwalten
NIS-Slaveserver Kopien der Daten des NIS-Masterservers.
NIS-Slaveserver bieten die Redundanz, die für
kritische Umgebungen benötigt wird. Zusätzlich
entlasten Slaveserver den Masterserver: NIS-Clients
verbinden sich immer mit dem NIS-Server, der zuerst
reagiert. Dieser Server kann auch ein Slaveserver sein.
NISClientNIS-Clients. NIS-Clients
identifizieren sich gegenüber dem NIS-Server
(ähnlich den &windowsnt;-Workstations), um sich am
Server anzumelden.NIS/YP konfigurierenDieser Abschnitt beschreibt an Hand eines Beispiels die
Einrichtung einer NIS-Umgebung.Es wird dabei davon ausgegangen, dass Sie
FreeBSD 3.3 oder eine aktuellere Version verwenden.
Wahrscheinlich funktioniert diese Anleitung
auch für FreeBSD-Versionen ab 3.0, es gibt dafür aber
keine Garantie.PlanungNehmen wir an, Sie seien der Administrator eines kleinen
Universitätsnetzes. Dieses Netz besteht aus
fünfzehn FreeBSD-Rechnern, für die derzeit keine
zentrale Verwaltung existiert, jeder Rechner hat also eine
eigene Version von /etc/passwd und
/etc/master.passwd. Diese Dateien werden
manuell synchron gehalten; legen Sie einen neuen Benutzer an,
so muss dies auf allen fünfzehn Rechnern manuell
erledigt werden (unter Verwendung von
adduser). Da diese Lösung sehr
ineffizient ist, soll das Netzwerk in Zukunft NIS verwenden,
wobei zwei der Rechner als Server dienen sollen.In Zukunft soll das Netz also wie folgt aussehen:RechnernameIP-AdresseRechneraufgabeellington10.0.0.2NIS-Mastercoltrane10.0.0.3NIS-Slavebasie10.0.0.4Workstation der Fakultätbird10.0.0.5Clientrechnercli[1-11]10.0.0.[6-17]Verschiedene andere ClientsWenn Sie NIS das erste Mal einrichten, ist es ratsam, sich
zuerst über die Vorgangsweise Gedanken zu machen.
Unabhängig von der Größe Ihres Netzwerks
müssen Sie stets einige Entscheidungen treffen.Einen NIS-Domänennamen wählenNISDomänennameDies muss nicht der Domainname sein. Es
handelt sich vielmehr um den NIS-Domainnamen.
Wenn ein Client Informationen anfordert, ist in dieser
Anforderung der Name der NIS-Domäne enthalten.
Dadurch weiß jeder Server im Netzwerk, auf welche
Anforderung er antworten muss. Stellen Sie sich den
NIS-Domänennamen als den Namen einer Gruppe von
Rechnern vor, die etwas gemeinsam haben.Manchmal wird der Name der Internetdomäne auch
für die NIS-Domäne verwendet. Dies ist allerdings
nicht empfehlenswert, da dies bei der Behebung von Problemen
verwirrend sein kann. Der Name der NIS-Domäne sollte
innerhalb Ihres Netzwerks einzigartig sein. Hilfreich ist
es, wenn der Name die Gruppe der in ihr zusammengefassten
Rechner beschreibt. Die Kunstabteilung von Acme Inc.
hätte daher die NIS-Domäne
acme-art. Für unser Beispiel verwenden
wir den NIS-Domänennamen
test-domain.SunOSEs gibt jedoch auch Betriebssysteme (vor allem &sunos;),
die als NIS-Domänennamen den Name der
Internetdomäne verwenden. Wenn dies für einen
oder mehrere Rechner Ihres Netzwerks zutrifft,
müssen Sie den Namen der
Internetdomäne als Ihren NIS-Domänennamen
verwenden.Anforderungen an den ServerWenn Sie einen NIS-Server einrichten wollen, müssen
Sie einige Dinge beachten. Eine unangenehme Eigenschaft
von NIS ist die Abhängigkeit der Clients vom Server.
Wenn sich der Client nicht über den Server mit seiner
NIS-Domäne verbinden kann, wird der Rechner oft
unbenutzbar, da das Fehlen von Benutzer- und
Gruppeninformationen zum Einfrieren des Clients führt.
Daher sollten Sie für den Server einen Rechner
auswählen, der nicht regelmäßig neu
gestartet werden muss und der nicht für Testversuche
verwendet wird. Idealerweise handelt es sich um einen
alleinstehenden Rechner, dessen einzige Aufgabe es ist, als
NIS-Server zu dienen. Wenn Sie ein Netzwerk haben, das
nicht zu stark ausgelastet ist, ist es auch möglich,
den NIS-Server als weiteren Dienst auf einem anderen Rechner
laufen zu lassen. Denken Sie aber daran, dass ein Ausfall
des NIS-Servers alle NIS-Clients
betrifft.NIS-ServerDie verbindlichen Kopien aller NIS-Informationen befinden
sich auf einem einzigen Rechner, dem NIS-Masterserver. Die
Datenbanken, in denen die Informationen gespeichert sind,
bezeichnet man als NIS-Maps. Unter FreeBSD werden diese
Maps unter /var/yp/[domainname]
gespeichert, wobei [domainname] der
Name der NIS-Domäne ist. Ein einzelner NIS-Server
kann gleichzeitig mehrere NIS-Domänen verwalten, daher
können auch mehrere Verzeichnisse vorhanden sein. Jede
Domäne verfügt über ein eigenes Verzeichnis
sowie einen eigenen, von anderen Domänen
unabhängigen Satz von NIS-Maps.NIS-Master- und Slaveserver verwenden den
ypserv-Daemon, um NIS-Anfragen zu
bearbeiten. ypserv empfängt
eingehende Anfragen der NIS-Clients, ermittelt aus der
angeforderten Domäne und Map einen Pfad zur
entsprechenden Datenbank, und sendet die angeforderten
Daten von der Datenbank zum Client.Einen NIS-Masterserver einrichtenNISServerkonfigurationAbhängig von Ihren Anforderungen ist die
Einrichtung eines NIS-Masterservers relativ einfach, da
NIS von FreeBSD bereits in der Standardkonfiguration
unterstützt wird. Sie müssen nur folgende
Zeilen in /etc/rc.conf einfügen:
nisdomainname="test-domain"Diese Zeile setzt den NIS-Domänennamen auf
test-domain, wenn Sie das Netzwerk
initialisieren (beispielsweise nach einem Systemstart).
nis_server_enable="YES"
Dadurch werden die NIS-Serverprozesse gestartet.nis_yppasswdd_enable="YES"
Durch diese Zeile wird der
rpc.yppasswdd-Daemon aktiviert, der,
wie bereits erwähnt, die Änderung von
NIS-Passwörtern von einem Client aus
ermöglicht.In Abhängigkeit von Ihrer NIS-Konfiguration
können weitere Einträge erforderlich sein.
Weitere Informationen finden Sie im Abschnitt
NIS-Server, die
auch als NIS-Clients arbeiten.Nun müssen Sie nur noch
/etc/netstart als Superuser
ausführen, um alles entsprechend Ihren Vorgaben in
/etc/rc.conf einzurichten.Die NIS-Maps initialisierenNISmapsNIS-Maps sind Datenbanken, die
sich im Verzeichnis /var/yp befinden.
Sie werden am NIS-Masterserver aus den Konfigurationsdateien
unter /etc erzeugt. Einzige Ausnahme:
/etc/master.passwd. Dies ist auch
sinnvoll, da Sie die Passwörter für Ihr
root- oder andere
Administratorkonten nicht an alle Server der NIS-Domäne
verteilen wollen. Bevor Sie also die NIS-Maps des
Masterservers einrichten, sollten Sie Folgendes tun:&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
&prompt.root; vi master.passwdEntfernen Sie alle Systemkonten
(wie bin, tty,
kmem oder games),
sowie alle Konten, die Sie nicht an die NIS-Clients
weitergeben wollen (beispielsweise root
und alle Konten mit der UID 0 (=Superuser).Stellen Sie sicher, dass
/var/yp/master.passwd weder von der
Gruppe noch von der Welt gelesen werden kann (Zugriffsmodus
600)! Ist dies nicht der Fall, ändern Sie dies mit
chmod.Tru64 UNIXNun können Sie die NIS-Maps initialisieren.
FreeBSD verwendet dafür das Skript
ypinit (lesen Sie dazu auch
&man.ypinit.8;). Dieses Skript ist auf fast allen
UNIX-Betriebssystemen verfügbar. Bei
Digitals Unix/Compaq Tru64 UNIX nennt es sich allerdings
ypsetup. Da wir Maps für einen
NIS-Masterserver erzeugen, verwenden wir
ypinit mit der Option
. Nachdem Sie die beschriebenen
Aktionen durchgeführt haben, erzeugen Sie nun die
NIS-Maps:ellington&prompt.root; ypinit -m test-domain
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a <control D>.
master server : ellington
next host to add: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..output from map generation..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.Dadurch erzeugt ypinit/var/yp/Makefile aus der Datei
/var/yp/Makefile.dist.
Durch diese Datei wird festgelegt, dass Sie in einer
NIS-Umgebung mit nur einem Server arbeiten und dass alle
Clients unter FreeBSD laufen. Da
test-domain aber auch über einen
Slaveserver verfügt, müssen Sie
/var/yp/Makefile entsprechend anpassen:
ellington&prompt.root; vi /var/yp/MakefileSie sollten die ZeileNOPUSH = "True"auskommentieren (falls dies nicht bereits der Fall ist).Einen NIS-Slaveserver einrichtenNISSlaveserverEin NIS-Slaveserver ist noch einfacher einzurichten als
ein Masterserver. Melden Sie sich am Slaveserver an und
ändern Sie /etc/rc.conf analog
zum Masterserver. Der einzige Unterschied besteht in der
Verwendung der Option , wenn Sie
ypinit aufrufen. Die Option
erfordert den Namen des
NIS-Masterservers, daher sieht unsere Ein- und Ausgabe wie
folgt aus:coltrane&prompt.root; ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
Don't forget to update map ypservers on ellington.Sie sollten nun über das Verzeichnis
/var/yp/test-domain verfügen.
Die Kopien der NIS-Masterserver-Maps sollten sich in diesem
Verzeichnis befinden. Allerdings müssen Sie diese
auch aktuell halten. Die folgenden Einträge in
/etc/crontab erledigen diese Aufgabe:
20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuidDiese zwei Zeilen zwingen den Slaveserver, seine Maps
mit denen des Masterservers zu synchronisieren. Diese
Einträge sind nicht zwingend, da der Masterserver
versucht, alle Änderungen seiner NIS-Maps an seine
Slaveserver weiterzugeben. Da Passwortinformationen aber
für vom Server abhängige Systeme vital sind, ist
es eine gute Idee, diese Aktualisierungen zu erzwingen.
Besonders wichtig ist dies in stark ausgelasteten Netzen,
in denen Map-Aktualisierungen unvollständig sein
könnten.Führen Sie nun /etc/netstart
auch auf dem Slaveserver aus, um den NIS-Server erneut zu
starten.NIS-ClientsEin NIS-Client bindet sich unter
Verwendung des ypbind-Daemons an einen
NIS-Server. ypbind prüft die
Standarddomäne des Systems (die durch
domainname gesetzt wird), und beginnt
RPCs über das lokale Netzwerk zu verteilen (broadcast).
Diese Anforderungen legen den Namen der Domäne fest,
für die ypbind eine Bindung erzeugen
will. Wenn der Server der entsprechenden Domäne eine
solche Anforderung erhält, schickt er eine Antwort an
ypbind. ybind speichert
daraufhin die Adresse des Servers. Wenn mehrere Server
verfügbar sind (beispielsweise ein Master- und mehrere
Slaveserver), verwendet ypbind die erste
erhaltene Adresse. Ab diesem Zeitpunkt richtet der Client alle
Anfragen an genau diesen Server. ypbindpingt den Server gelegentlich an, um
sicherzustellen, dass der Server funktioniert. Antwortet der
Server innerhalb eines bestimmten Zeitraums nicht (Timeout),
markiert ypbind die Domäne als
ungebunden und beginnt erneut, RPCs über das Netzwerk zu
verteilen, um einen anderen Server zu finden.Einen NIS-Client konfigurierenNISClient konfigurierenEinen FreeBSD-Rechner als NIS-Client einzurichten, ist
recht einfach.Fügen Sie folgende Zeilen in
/etc/rc.conf ein, um den
NIS-Domänennamen festzulegen, und um
ypbind bei der Initialisierung des
Netzwerks zu starten:nisdomainname="test-domain"
nis_client_enable="YES"Um alle Passworteinträge des NIS-Servers zu
importieren, löschen Sie alle Benutzerkonten in
/etc/master.passwd und fügen
mit vipw folgende Zeile am Ende der
Datei ein:+:::::::::Diese Zeile legt für alle gültigen
Benutzerkonten der NIS-Server-Maps einen Zugang an.
Es gibt verschiedene Wege, Ihren NIS-Client durch
Änderung dieser Zeile zu konfigurieren. Lesen
Sie dazu auch den Abschnitt über
Netzgruppen weiter
unten. Weitere detaillierte Informationen finden Sie
im Buch Managing NFS and NIS von
O'Reilly.Sie sollten zumindest ein lokales Benutzerkonto,
das nicht über NIS importiert wird, in Ihrer
/etc/master.passwd behalten.
Dieser Benutzer sollte außerdem ein Mitglied der
Gruppe wheel sein. Wenn es
mit NIS Probleme gibt, können Sie diesen Zugang
verwenden, um sich anzumelden,
root zu werden und das Problem
zu beheben.Um alle möglichen Gruppeneinträge vom
NIS-Server zu importieren, fügen sie folgende Zeile
in /etc/group ein:+:*::Nachdem Sie diese Schritte erledigt haben, sollten Sie
mit ypcat passwd die
passwd-Map des NIS-Servers anzeigen
können.Sicherheit unter NISNISSicherheitIm Allgemeinen kann jeder entfernte Anwender einen RPC an
&man.ypserv.8; schicken, um den Inhalt Ihrer NIS-Maps abzurufen,
falls er Ihren NIS-Domänennamen kennt. Um solche
unautorisierten Transaktionen zu verhindern, unterstützt
&man.ypserv.8; securenets, durch die man den
Zugriff auf bestimmte Rechner beschränken kann.
&man.ypserv.8; versucht, beim Systemstart die Informationen
über securenets aus der Datei
/var/yp/securenets zu laden.Die Datei securenets kann auch
in einem anderen Verzeichnis stehen, das mit der Option
angegeben wird. Diese Datei
enthält Einträge, die aus einer Netzwerkadresse und
einer Netzmaske bestehen, die durch Leerzeichen getrennt
werden. Kommentarzeilen beginnen mit #.
/var/yp/securnets könnte
beispielsweise so aussehen:# allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
10.0.0.0 255.255.240.0Wenn &man.ypserv.8; eine Anforderung von einer zu diesen
Regeln passenden Adresse erhält, wird die Anforderung
bearbeitet. Gibt es keine passende Regel, wird die
Anforderung ignoriert und eine Warnmeldung aufgezeichnet. Wenn
/var/yp/securenets nicht vorhanden ist,
erlaubt ypserv Verbindungen von jedem Rechner
aus.ypserv unterstützt auch das
TCP-Wrapper-Paket von Wietse Venema.
Mit diesem Paket kann der Administrator für
Zugriffskontrollen die Konfigurationsdateien von
TCP-Wrapper anstelle von
/var/yp/securenets verwenden.Während beide Kontrollmechanismen einige Sicherheit
gewähren, beispielsweise durch privilegierte Ports, sind
sie gegenüber IP spoofing-Attacken
verwundbar. Jeder NIS-Verkehr sollte daher von Ihrer Firewall
blockiert werden.Server, die /var/yp/securenets
verwenden, können Schwierigkeiten bei der Anmeldung von
Clients haben, die ein veraltetes TCP/IP-Subsystem
besitzen. Einige dieser TCP/IP-Subsysteme setzen alle
Rechnerbits auf Null, wenn Sie einen
Broadcast durchführen und/oder
können die Subnetzmaske nicht auslesen, wenn sie die
Broadcast-Adresse berechnen. Einige Probleme können
durch Änderungen der Clientkonfiguration behoben werden.
Andere hingegen lassen sich nur durch das Entfernen des
betreffenden Rechners aus dem Netzwerk oder den Verzicht auf
/var/yp/securenets umgehen.Die Verwendung von /var/yp/securenets
auf einem Server mit einem solch veralteten
TCP/IP-Subsystem ist eine sehr schlechte Idee, die zu
einem Verlust der NIS-Funktionalität für große
Teile Ihres Netzwerks führen kann.TCP-WrapperDie Verwendung der TCP-Wrapper
verlangsamt die Reaktion Ihres NIS-Servers. Diese
zusätzliche Reaktionszeit kann in Clientprogrammen zu
Timeouts führen. Dies vor allem in Netzwerken, die
stark ausgelastet sind, oder nur über langsame NIS-Server
verfügen. Wenn ein oder mehrere Ihrer Clientsysteme
dieses Problem aufweisen, sollten Sie die betreffenden Clients
in NIS-Slaveserver umwandeln, und diese an sich selbst binden.
Bestimmte Benutzer an der Anmeldung hindernNISBenutzer blockierenIn unserem Labor gibt es den Rechner basie,
der nur für Mitarbeiter der Fakultät bestimmt ist.
Wir wollen diesen Rechner nicht aus der NIS-Domäne
entfernen, obwohl passwd des
NIS-Masterservers Benutzerkonten sowohl für
Fakultätsmitarbeiter als auch für Studenten
enthält. Was können wir also tun?Es gibt eine Möglichkeit, bestimmte Benutzer an der
Anmeldung an einem bestimmten Rechner zu hindern, selbst wenn
diese in der NIS-Datenbank vorhanden sind. Dazu müssen
Sie lediglich an diesem Rechner den Eintrag
-Benutzername an
das Ende von /etc/master.passwd setzen,
wobei Benutzername der zu
blockierende Benutzername ist. Diese Änderung sollte
bevorzugt durch vipw erledigt werden, da
vipw Ihre Änderungen an
/etc/master.passwd auf Plausibilität
überprüft und nach erfolgter Änderung die
Passwortdatenbank automatisch aktualisiert. Um also den
Benutzer bill an der Anmeldung am Rechner
basie zu hindern, gehen wir wie folgt vor:
basie&prompt.root; vipw[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
basie&prompt.root;UdoErdelhoffBeigetragen von Netzgruppen verwendenNetzgruppenDie im letzten Abschnitt beschriebene Methode eignet sich
besonders, wenn Sie spezielle Regeln für wenige
Benutzer oder wenige Rechner benötigen. In großen
Netzwerken werden Sie allerdings
mit Sicherheit vergessen, einige Benutzer
von der Anmeldung an bestimmten Rechnern auszuschließen.
Oder Sie werden gezwungen sein, jeden Rechner einzeln zu
konfigurieren. Dadurch verlieren Sie aber den Hauptvorteil von
NIS, die zentrale Verwaltung.Die Lösung für dieses Problem sind
Netzgruppen. Ihre Aufgabe und Bedeutung
ist vergleichbar mit normalen, von UNIX-Dateisystemen
verwendeten Gruppen. Die Hauptunterschiede sind das Fehlen
einer numerischen ID sowie die Möglichkeit, Netzgruppen
zu definieren, die sowohl Benutzer als auch andere Netzgruppen
enthalten.Netzgruppen wurden entwickelt, um große, komplexe
Netzwerke mit Hunderten Benutzern und Rechnern zu verwalten.
Sie sind also von Vorteil, wenn Sie von dieser Situation
betroffen sind. Andererseits ist es dadurch beinahe
unmöglich, Netzgruppen mit einfachen Beispielen zu
erklären. Das hier verwendete Beispiel veranschaulicht
dieses Problem.Nehmen wir an, dass Ihre erfolgreiche Einführung von
NIS die Aufmerksamkeit Ihrer Vorgesetzten geweckt hat. Ihre
nächste Aufgabe besteht nun darin, Ihre NIS-Domäne
um zusätzliche Rechner zu erweitern. Die folgenden
Tabellen enthalten die neuen Benutzer und Rechner inklusive
einer kurzen Beschreibung.Benutzername(n)Beschreibungalpha,
betaBeschäftigte der IT-Abteilungcharlie,
deltaDie neuen Lehrlinge der IT-Abteilungecho,
foxtrott,
golf, ...Normale Mitarbeiterable,
baker, ...Externe MitarbeiterRechnername(n)Beschreibungwar, death,
famine, pollutionIhre wichtigsten Server. Nur IT-Fachleute
dürfen sich an diesen Rechnern anmelden.pride, greed,
envy, wrath,
lust, slothWeniger wichtige Server. Alle Mitarbeiter der
IT-Abteilung dürfen sich auf diesen Rechnern
anmelden.one, two,
three, four, ...Gewöhnliche Arbeitsrechner. Nur die
wirklichen Mitarbeiter dürfen
diese Rechner verwenden.trashcanEin sehr alter Rechner ohne kritische Daten. Sogar
externe Mitarbeiter dürfen diesen Rechner
verwenden.Wollten Sie diese Einschränkungen umsetzen, indem Sie
jeden Benutzer einzeln blockieren, müssten Sie auf jedem
System für jeden Benutzer eine entsprechende Zeile in
passwd einfügen. Wenn Sie nur einen
Eintrag vergessen, haben Sie ein Problem. Es mag noch angehen,
dies während der ersten Installation zu erledigen, im
täglichen Betrieb werden Sie allerdings
mit Sicherheit einmal vergessen, die
entsprechenden Einträge anzulegen. Vergessen Sie nicht:
Murphy war Optimist.Die Verwendung von Netzgruppen hat in dieser Situation
mehrere Vorteile. Sie müssen nicht jeden Benutzer einzeln
verwalten; weisen Sie stattdessen den Benutzer einer Netzgruppe
zu und erlauben oder verbieten Sie allen Mitglieder dieser
Gruppe die Anmeldung an einem Server. Wenn Sie einen neuen
Rechner hinzufügen, müssen Sie
Zugangsbeschränkungen nur für die Netzgruppen
festlegen. Legen Sie einen neuen Benutzer an, müssen Sie
ihn nur einer oder mehrere Netzgruppen zuweisen. Diese
Veränderungen sind voneinander unabhängig; Anweisungen
der Form für diese Kombination aus Benutzer und
Rechner mache Folgendes ... sind nicht mehr nötig.
Wenn Sie die Einrichtung von NIS sorgfältig geplant haben,
müssen Sie nur noch eine zentrale Konfigurationsdatei
bearbeiten, um den Zugriff auf bestimmte Rechner zu erlauben
oder zu verbieten.Der erste Schritt ist die Initialisierung der NIS-Maps
der Netzgruppe. &man.ypinit.8; kann dies unter FreeBSD nicht
automatisch durchführen. Sind die Maps aber erst einmal
erzeugt, werden sie jedoch von NIS problemlos unterstützt.
Um eine leere Map zu erzeugen, geben Sie Folgendes ein:ellington&prompt.root; vi /var/yp/netgroupDanach legen Sie die Einträge an. Für unser
Beispiel benötigen wir mindestens vier Netzgruppen:
IT-Beschäftige, IT-Lehrlinge, normale Beschäftigte
sowie Externe.IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
INTERNS (,able,test-domain) (,baker,test-domain)Bei IT_EMP, IT_APP
usw. handelt es sich um Netzgruppennamen. In den Klammern
werden diesen Netzgruppen jeweils ein oder mehrere
Benutzerkonten hinzugefügt. Die drei Felder in der
Klammer haben folgende Bedeutung:Der Name des Rechners, auf dem die folgenden Werte
gültig sind. Legen Sie keinen Rechnernamen fest, ist
der Eintrag auf allen Rechnern gültig. Dadurch
gehen Sie vielen Problemen aus dem Weg.Der Name des Benutzerkontos, der zu dieser Netzgruppe
gehört.Die NIS-Domäne für das Benutzerkonto. Sie
können Benutzerkonten von anderen NIS-Domänen in
Ihre Netzgruppe importieren, wenn Sie mehrere
NIS-Domänen verwalten.Jedes Feld kann Wildcards enthalten. Die Einzelheiten
entnehmen Sie bitte &man.netgroup.5;.NetzgruppenNetzgruppennamen sollten nicht länger als 8 Zeichen
sein, vor allem dann, wenn Sie Rechner mit verschiedenen
Betriebssystemen in Ihrer NIS-Domäne haben. Es wird
zwischen Groß- und Kleinschreibung unterschieden.
Die Verwendung von Großbuchstaben für
Netzgruppennamen ermöglicht eine leichte Unterscheidung
zwischen Benutzern, Rechnern und Netzgruppen.Einige NIS-Clients (dies gilt nicht für FreeBSD)
können keine Netzgruppen mit einer großen Anzahl
von Einträgen verwalten. Einige ältere Versionen
von &sunos; haben beispielsweise Probleme, wenn Netzgruppen
mehr als fünfzehn Einträge
enthalten. Sie können dieses Problem umgehen, indem Sie
mehrere Subnetzgruppen mit weniger als fünfzehn Benutzern
anlegen und diese Subnetzgruppen wiederum in einer Netzgruppe
zusammenfassen:BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3Sie können diesen Vorgang wiederholen, wenn Sie mehr
als 255 Benutzer in einer einzigen Netzgruppe benötigen.
Das Aktivieren und Verteilen Ihre neuen NIS-Map ist
einfach:ellington&prompt.root; cd /var/yp
ellington&prompt.root; makeDadurch werden die NIS-Maps netgroup,
netgroup.byhost und
netgroup.byuser erzeugt. Prüfen Sie
die Verfügbarkeit Ihrer neuen NIS-Maps mit &man.ypcat.1;.
ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
ellington&prompt.user; ypcat -k netgroup.byuserDie Ausgabe des ersten Befehls gibt den Inhalt von
/var/yp/netgroup wieder. Der zweite Befehl
erzeugt nur dann eine Ausgabe, wenn Sie rechnerspezifische
Netzgruppen erzeugt haben. Der dritte Befehl gibt die
Netzgruppen nach Benutzern sortiert aus.Die Einrichtung der Clients ist einfach. Sie müssen
lediglich auf dem Server war
&man.vipw.8; aufrufen und die Zeile+:::::::::durch+@IT_EMP:::::::::ersetzen.Ab sofort werden nur noch die Daten der in der Netzgruppe
IT_EMP vorhandenen Benutzer in die
Passwortdatenbank von war importiert.
Nur diese Benutzer dürfen sich am Server anmelden.Unglücklicherweise gilt diese Einschränkung auch
für die ~-Funktion der Shell und
für alle Routinen, die auf Benutzernamen und numerische
Benutzer-IDs zugreifen. Oder anders formuliert,
cd ~user ist nicht
möglich, ls -l zeigt die numerische
Benutzer-ID statt dem Benutzernamen und
find . -user joe -print erzeugt die
Fehlermeldung No such user. Um dieses
Problem zu beheben, müssen Sie alle Benutzereinträge
importieren, ohne ihnen jedoch zu erlauben, sich an
Ihrem Server anzumelden.Dazu fügen Sie eine weitere Zeile in
/etc/master.passwd ein. Diese Zeile sollte
ähnlich der folgenden aussehen:+:::::::::/sbin/nologin, was in etwa
Importiere alle Einträge, aber ersetze die Shell in
den importierten Einträgen durch
/sbin/nologin entspricht. Sie
können jedes Feld dieses Eintrages ersetzen, indem Sie
einen Standardwert in /etc/master.passwd
eintragen.Stellen Sie sicher, dass die Zeile
+:::::::::/sbin/nologinnach der Zeile
+@IT_EMP::::::::: eingetragen ist. Sonst
haben alle via NIS importierten Benutzerkonten
/sbin/nologin als Loginshell.Danach müssen Sie nur mehr eine einzige NIS-Map
ändern, wenn ein neuer Mitarbeiter berücksichtigt
werden muss. Für weniger wichtige Server gehen Sie analog
vor, indem Sie den alten Eintrag +:::::::::
in den lokalen Versionen von
/etc/master.passwd durch folgende
Einträge ersetzen:+@IT_EMP:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologinDie entsprechenden Zeilen für normale Arbeitsplätze
lauten:+@IT_EMP:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologinAb jetzt wäre alles wunderbar, allerdings ändert
sich kurz darauf die Firmenpolitik: Die IT-Abteilung beginnt
damit, externe Mitarbeiter zu beschäftigen. Externe
dürfen sich an normalen Arbeitsplätzen sowie an den
weniger wichtigen Servern anmelden. Die IT-Lehrlinge
dürfen sich nun auch an den Hauptservern anmelden. Sie
legen also die neue Netzgruppe IT_INTERN an,
weisen Ihr die neuen IT-Externen als Benutzer zu und beginnen
damit, die Konfiguration auf jedem einzelnen Rechner zu
ändern ... Halt. Sie haben gerade die alte Regel
Fehler in der zentralisierten Planung führen zu
globaler Verwirrung. bestätigt.Da NIS in der Lage ist, Netzgruppen aus anderen Netzgruppen
zu bilden, lassen sich solche Situationen leicht vermeiden.
Eine Möglichkeit ist die Erzeugung rollenbasierter
Netzgruppen. Sie könnten eine Netzgruppe
BIGSRV erzeugen, um den Zugang zu
den wichtigsten Servern zu beschränken, eine weitere
Gruppe SMALLSRV für die weniger
wichtigen Server und eine dritte Netzgruppe
USERBOX für die normalen
Arbeitsplatzrechner. Jede dieser Netzgruppen enthält die
Netzgruppen, die sich auf diesen Rechnern anmelden dürfen.
Die Einträge der Netzgruppen in der NIS-Map sollten
ähnlich den folgenden aussehen:BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERSDiese Methode funktioniert besonders gut, wenn Sie
Rechner in Gruppen mit identischen Beschränkungen einteilen
können. Unglücklicherweise ist dies die Ausnahme und
nicht die Regel. Meistens werden Sie die Möglichkeit zur
rechnerspezischen Zugangsbeschränkung benötigen.
Rechnerspezifische Netzgruppen sind die zweite
Möglichkeit, um mit den oben beschriebenen Änderungen
umzugehen. In diesem Szenario enthält
/etc/master.passwd auf jedem Rechner zwei
mit + beginnende Zeilen. Die erste Zeile
legt die Netzgruppe mit den Benutzern fest, die sich auf diesem
Rechner anmelden dürfen. Die zweite Zeile weist allen
anderen Benutzern /sbin/nologin als Shell
zu. Verwenden Sie auch hier (analog zu den Netzgruppen)
Großbuchstaben für die Rechnernamen. Die Zeilen
sollten also ähnlich den folgenden aussehen:+@BOXNAME:::::::::
+:::::::::/sbin/nologinWenn Sie dies für alle Rechner erledigt haben, werden
Sie die lokalen Versionen von
/etc/master.passwd nie mehr verändern
müssen. Alle weiteren Änderungen geschehen über
die NIS-Maps. Nachfolgend ein Beispiel für eine
mögliche Netzgruppen-Map, die durch einige Besonderheiten
erweitert wurde:# Define groups of users first
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITINTERN (,kilo,test-domain) (,lima,test-domain)
D_INTERNS (,able,test-domain) (,baker,test-domain)
#
# Now, define some groups based on roles
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
#
# And a groups for a special tasks
# Allow echo and golf to access our anti-virus-machine
SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
#
# machine-based netgroups
# Our main servers
WAR BIGSRV
FAMINE BIGSRV
# User india needs access to this server
POLLUTION BIGSRV (,india,test-domain)
#
# This one is really important and needs more access restrictions
DEATH IT_EMP
#
# The anti-virus-machine mentioned above
ONE SECURITY
#
# Restrict a machine to a single user
TWO (,hotel,test-domain)
# [...more groups to follow]
Wenn Sie eine Datenbank verwenden, um Ihre Benutzerkonten zu
verwalten, sollten Sie den ersten Teil der NIS-Map mit Ihren
Datenbanktools erstellen können. Auf diese Weise haben
neue Benutzer automatisch Zugriff auf die Rechner.Eine letzte Warnung: Es ist nicht immer ratsam,
rechnerbasierte Netzgruppen zu verwenden. Wenn Sie Dutzende
oder gar Hunderte identische Rechner einrichten müssen,
sollten Sie rollenbasierte Netzgruppen verwenden, um die
Grösse der NISs-Maps in Grenzen zu halten.Weitere wichtige PunkteNachdem Sie Ihre NIS-Umgebung eingerichtet haben,
müssen Sie einige Dinge anders als bisher erledigen.Jedes Mal, wenn Sie einen neuen Benutzer anlegen wollen,
tun Sie dies ausschließlich am
NIS-Masterserver. Außerdem
müssen Sie anschließend die
NIS-Maps neu erzeugen. Wenn Sie diesen Punkt vergessen,
kann sich der neue Benutzer nur am
NIS-Masterserver anmelden. Wenn Sie also den neuen Benutzer
jsmith anlegen, gehen Sie
folgerndermassen vor:&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domainStatt pw useradd jsmith könnten
Sie auch adduser jsmith verwenden.Tragen Sie die Administratorkonten nicht
in die NIS-Maps ein. Administratorkonten und
Passwörter dürfen nicht auf Rechnern verbreitet
werden, auf denen sich Benutzer anmelden können, die
auf diese Konten keine Zugriff haben sollen.Sichern Sie die NIS-Master- und Slaveserver
und minimieren Sie die Ausfallzeiten. Wenn
diese Rechner gehackt oder einfach nur ausgeschaltet werden,
haben viele Leute keinen Netzwerkzugriff mehr.Dies ist die größte Schwäche
jeder zentralen Verwaltung. Wenn Sie Ihre NIS-Server nicht
schützen, werden Sie viele verärgerte Anwender
haben.Kompatibilität zu NIS v1NISKompatibilität zu NIS v1ypserv unterstützt NIS v1
unter FreeBSD nur eingeschränkt. Die NIS-Implementierung
von FreeBSD verwendet nur NIS v2, andere Implementierungen
unterstützen aus Gründen der
Abwärtskompatibilität mit älteren Systemen auch
NIS v1. Die mit diesen Systemen gelieferten
ypbind-Daemonen versuchen, sich an
einen NIS-v1-Server zu binden (Dies selbst dann, wenn sie ihn
nie benötigen. Außerdem versuchen Sie auch dann,
einen v1-Server zu erreichen, wenn Sie zuvor eine Antwort von
einem v2-Server erhalten.). Während normale Clientaufrufe
unter FreeBSD unterstützt werden, sind Anforderungen zum
Transfer von v1-Maps nicht möglich. Daher kann FreeBSD
nicht als Client oder Server verwendet werden, wenn ein
NIS-Server vorhanden ist, der nur NIS v1 unterstützt.
Glücklicherweise sollte es heute keine Server mehr geben,
die nur NIS v1 unterstützen.NIS-Server, die auch als NIS-Clients arbeitenWenn Sie ypserv in einer
Multi-Serverdomäne verwenden, in der NIS-Server
gleichzeitig als NIS-Clients arbeiten, ist es eine gute Idee,
diese Server zu zwingen, sich an sich selbst zu binden. Damit
wird verhindert, dass Bindeanforderungen gesendet werden und
sich die Server gegenseitig binden. Sonst könnten seltsame
Fehler auftreten, wenn ein Server ausfällt, auf den andere
Server angewiesen sind. Letztlich werden alle Clients einen
Timeout melden, und versuchen, sich an andere Server zu binden.
Die dadurch entstehende Verzögerung kann beträchtlich
sein. Außerdem kann der Fehler erneut auftreten, da sich
die Server wiederum aneinander binden könnten.Sie können einen Rechner durch die Verwendung von
ypbind sowie der Option
zwingen, sich an einen bestimmten Server zu binden. Um diesen
Vorgang zu automatisieren, können Sie folgende Zeilen in
/etc/rc.conf einfügen:nis_client_enable="YES" # run client stuff as well
nis_client_flags="-S NIS domain,server"Lesen Sie &man.ypbind.8;, wenn Sie weitere Informationen
benötigen.PasswortformateNISPasswortformateUnterschiedliche Passwortformate sind das Hauptproblem,
das beim Einrichten eines NIS-Servers auftreten kann.
Wenn der NIS-Server mit DES verschlüsselte Passwörter
verwendet, werden nur Clients unterstützt, die ebenfalls
DES benutzen. Wenn sich auf Ihrem Netzwerk beispielsweise
&solaris; NIS-Clients befinden, müssen die Passwörter
mit DES verschlüsselt werden.Welches Format die Server und Clients verwenden,
steht in /etc/login.conf. Wenn ein
System Passwörter mit DES verschlüsselt,
enthält die default-Klasse einen
Eintrag wie den folgenden:default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[weitere Einträge]Mögliche Werte für
passwd_format sind unter anderem
blf und md5 (mit
Blowfish und MD5 verschlüsselte Passwörter).Wenn die Datei /etc/login.conf
geändert wird, muss die Login-Capability Datenbank
neu erstellt werden. Geben Sie dazu als
root den folgenden Befehl ein:&prompt.root; cap_mkdb /etc/login.confDas Format der schon in
/etc/master.passwd befindlichen
Passwörter wird erst aktualisiert, wenn ein Benutzer
sein Passwort ändert, nachdem
die Datenbank neu erstellt wurde.Damit die Passwörter auch im gewählten
Format abgespeichert werden, muss mit
crypt_default in der Datei
/etc/auth.conf die richtige
Priorität der Formate eingestellt werden. Das
gewählte Format sollte als Erstes in der Liste
stehen. Sollen die Passwörter mit DES verschlüsselt
werden, verwenden Sie den folgenden Eintrag:crypt_default = des blf md5Wenn Sie alle &os; NIS-Server und NIS-Clients entsprechend
den obigen Schritten eingestellt haben, wird im ganzen
Netzwerk dasselbe Passwortformat verwendet. Falls Sie
Probleme mit der Authentifizierung eines NIS-Clients
haben, kontrollieren Sie die verwendeten Passwortformate.
In einer heterogenen Umgebung werden Sie DES benutzen
müssen, da dies der meist unterstützte Standard
ist.GregSutterGeschrieben von Automatische Netzwerkkonfiguration mit DHCPWas ist DHCP?Dynamic Host Configuration ProtocolDHCPInternet Software Consortium (ISC)Über DHCP, das Dynamic Host Configuration Protocol,
kann sich ein System mit einem Netzwerk verbinden und die
für die Kommunikation mit diesem Netzwerk nötigen
Informationen beziehen. &os;-Versionen vor 6.0 verwenden
die DHCP-Client-Implementierung (&man.dhclient.8;) von ISC
(Internet Software Consortium). Ab 6.0 wird der von
OpenBSD 3.7 stammende dhclient
zum Einsatz kommen. Die Informationen in diesem Abschnitt
beziehen sich daher sowohl auf den dhclient
von ISC als auch auf den von OpenBSD. Als DHCP-Server wird
in beiden Fällen der DHCP-Server der ISC-Distribution
verwendet.ÜbersichtDieser Abschnitt beschreibt sowohl die Clientseite des
ISC- als auch des OpenBSD-Clients sowie die
Serverseite des DHCP-Systems von ISC. Das Clientprogramm
dhclient ist in FreeBSD integriert, das
Serverprogramm kann über den Port
net/isc-dhcp3-server
installiert werden. Weiter Informationen finden Sie in
&man.dhclient.8;, &man.dhcp-options.5; sowie
&man.dhclient.conf.5;.Wie funktioniert DHCP?UDPDer DHCP-Client dhclient beginnt von
einem Clientrechner aus über den UDP-Port 68
Konfigurationsinformationen anzufordern. Der Server antwortet
auf dem UDP-Port 67, indem er dem Client eine IP-Adresse
zuweist und ihm weitere wichtige Informationen über das
Netzwerk, wie Netzmasken, Router und DNS-Server mitteilt. Diese
Informationen werden als
DHCP-Lease bezeichnet und
sind nur für eine bestimmte Zeit, die vom Administrator des
DHCP-Servers vorgegeben wird, gültig. Dadurch fallen
verwaiste IP-Adressen, deren Clients nicht mehr mit dem Netzwerk
verbunden sind, automatisch an den Server zurück.DHCP-Clients können sehr viele Informationen von einem
DHCP-Server erhalten. Eine ausführliche Liste finden Sie
in &man.dhcp-options.5;.Integration in FreeBSDIn Abhängigkeit von der eingesetzten &os;-Version wird
entweder der ISC-DHCP-Client oder der DHCP-Client von OpenBSD
in FreeBSD integriert. Sowohl während der Installation als
auch im Basissystem steht der DHCP-Client zur Verfügung.
In Netzen mit DHCP-Servern wird dadurch die Konfiguration von
Systemen erheblich vereinfacht. dhclient
ist seit der Version 3.2 in &os; enthalten.sysinstallDHCP wird von sysinstall
unterstützt. Wenn Sie eine Netzwerkkarte mit
sysinstall konfigurieren, lautet
die zweite Frage Do you want to try DHCP configuration
of the interface?. Wenn Sie diese Frage bejahen, wird
dhclient aufgerufen, und die Netzkarte wird
automatisch eingerichtet.Um DHCP beim Systemstart zu aktivieren, müssen Sie zwei
Dinge erledigen:DHCPAnforderungenStellen Sie sicher, dass bpf in
Ihren Kernel kompiliert ist. Dazu fügen Sie die Zeile
device bpf
(pseudo-device bpf unter &os; 4.X)
in Ihre Kernelkonfigurationsdatei ein und erzeugen einen
neuen Kernel. Weitere Informationen zur Kernelkonfiguration
finden Sie in des Handbuchs.
Das Gerät bpf ist im
GENERIC-Kernel bereits enthalten.
Für die Nutzung von DHCP muss also kein angepasster
Kernel erzeugt werden.Wenn Sie um die Sicherheit Ihres Systems besorgt
sind, sollten Sie wissen, dass
bpf auch zur Ausführung
von Paketsniffern erforderlich ist (obwohl diese dennoch
als root ausgeführt werden
müssen). bpfmuss vorhanden sein, damit DHCP
funktioniert. Sind Sie sehr sicherheitsbewusst, sollten
Sie bpf aus Ihrem Kernel
entfernen, wenn Sie DHCP nicht verwenden.Fügen Sie folgende Zeile in
/etc/rc.conf ein:ifconfig_fxp0="DHCP"Ersetzen Sie fxp0 durch den
Eintrag für die Netzkarte, die Sie dynamisch
einrichten wollen. Lesen Sie dazu auch
.Wenn Sie dhclient an einem anderen
Ort installiert haben, oder zusätzliche Flags an
dhclient übergeben wollen,
fügen Sie auch folgende (entsprechend angepasste)
Zeilen ein:dhcp_program="/sbin/dhclient"
dhcp_flags=""DHCPServerDer DHCP-Server dhcpd ist als
Teil des Ports
net/isc-dhcp3-server
verfügbar. Dieser Port enthält die komplette
ISC-DHCP-Distribution, inklusive der Dokumentation.DateienDHCPKonfigurationsdateien/etc/dhclient.confdhclient benötigt die
Konfigurationsdatei /etc/dhclient.conf.
Diese Datei enthält normalerweise nur Kommentare, da
die Vorgabewerte zumeist ausreichend sind. Lesen Sie dazu
auch &man.dhclient.conf.5;./sbin/dhclientdhclient ist statisch gelinkt und
befindet sich in /sbin. Weitere
Informationen finden Sie in &man.dhclient.8;./sbin/dhclient-scriptBei dhclient-script handelt es sich
um das FreeBSD-spezifische Konfigurationsskript des
DHCP-Clients. Es wird in &man.dhclient-script.8;
beschrieben und kann meist unverändert übernommen
werden./var/db/dhclient.leasesDer DHCP-Client verfügt über eine Datenbank,
die alle derzeit gültigen Leases enthält und als
Logdatei erzeugt wird. Weitere Informationen finden Sie in
&man.dhclient.8;.Weitere InformationenDas DHCP-Protokoll wird vollständig im
RFC 2131
beschrieben. Eine weitere, lehrreiche Informationsquelle
existiert unter
.Einen DHCP-Server installieren und einrichtenÜbersichtDieser Abschnitt beschreibt die Einrichtung eines
FreeBSD-Systems als DHCP-Server. Dazu wird die
DHCP-Implementation von ISC (Internet Software Consortium)
verwendet.Der DHCP-Server ist nicht im Basissystem von FreeBSD
enthalten, daher müssen Sie als Erstes den Port
net/isc-dhcp3-server
installieren. Lesen Sie , wenn Sie
- weitere Informationen zur Portssammlung benötigen.
+ weitere Informationen zur Ports-Sammlung benötigen.
Den DHCP-Server installierenDHCPinstallierenStellen Sie sicher, dass &man.bpf.4; in Ihren Kernel
kompiliert ist. Dazu fügen Sie die Zeile
device bpf
(pseudo-device bpf unter &os; 4.X)in
Ihre Kernelkonfigurationsdatei ein und erzeugen einen neuen
Kernel. Die Kernelkonfiguration wird in
beschrieben.Das Gerät bpf ist im
GENERIC-Kernel bereits enthalten.
Für die Nutzung von DHCP muss also kein angepasster
Kernel erzeugt werden.Wenn Sie um die Sicherheit Ihres Systems besorgt
sind, sollten Sie wissen, dass
bpf auch zur Ausführung
von Paketsniffern erforderlich ist (obwohl diese dennoch
als root ausgeführt werden
müssen). bpfmuss vorhanden sein, damit DHCP
funktioniert. Sind Sie sehr sicherheitsbewusst, sollten
Sie bpf aus Ihrem Kernel
entfernen, wenn Sie DHCP nicht verwenden.Danach müssen Sie die vom Port
net/isc-dhcp3-server
erzeugte Vorlage für dhcpd.conf
anpassen. Die bei der Installation erzeugte Datei
/usr/local/etc/dhcpd.conf.sample
sollten Sie nach
/usr/local/etc/dhcpd.conf kopieren,
bevor Sie Veränderungen vornehmen.Den DHCP-Server einrichtenDHCPdhcpd.confdhcpd.conf besteht aus Festlegungen
zu Subnetzen und Rechnern und lässt sich am besten an
einem Beispiel erklären:option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}Diese Option beschreibt die Domäne, die den
Clients als Standardsuchdomäne zugewiesen wird.
Weitere Informationen finden Sie in man.resolv.conf.5;.
Diese Option legt eine, durch Kommata getrennte
Liste von DNS-Servern fest, die von den Clients
verwendet werden sollen.Die den Clients zugewiesene Netzmaske.Ein Client kann eine Lease einer bestimmten Dauer
anfordern. Geschieht dies nicht, weist der Server eine
Lease mit einer vorgegebenen Ablaufdauer (in Sekunden)
zu.Die maximale Zeitdauer, für die der Server
Konfigurationsinformationen vergibt. Sollte ein Client
eine längere Zeitspanne anfordern, wird dennoch
nur der Wert max-lease-time in
Sekunden zugewiesen.Diese Option legt fest, ob der DHCP-Server eine
DNS-Aktualisierung versuchen soll, wenn
Konfigurationsdateien vergeben oder zurückgezogen
werden. In der ISC-Implementation
muss diese Option gesetzt sein.
Dadurch werden die IP-Adressen festgelegt, die den
Clients zugewiesen werden können. IP-Adressen
zwischen diesen Grenzen sowie die einschließenden
Adressen werden den Clients zugewiesen.Legt das Standard-Gateway fest, das den Clients
zugewiesen wird.Die (Hardware-)MAC-Adresse eines Rechners (durch die
der DHCP-Server den Client erkennt, der eine Anforderung
an ihn stellt).Einem Rechner soll immer die gleiche IP-Adresse
zugewiesen werden. Beachten Sie, dass hier auch ein
Rechnername gültig ist, da der DHCP-Server den
Rechnernamen auflöst, bevor er die
Konfigurationsinformationen zuweist.Nachdem Sie dhcpd.conf fertig
konfiguriert haben, können Sie den DHCP-Server starten:
&prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh startSollten Sie die Konfiguration Ihres Servers einmal
verändern müssen, reicht es nicht aus, ein
SIGHUP-Signal an
dhcpd zu senden, weil damit die
Konfiguration nicht erneut geladen wird
(im Gegensatz zu den meisten Daemonen). Sie müssen
den Prozess vielmehr mit dem Signal
SIGTERM stoppen, um ihn
anschließend neu zu starten.DateienServerKonfigurationsdateien/usr/local/sbin/dhcpddhcpd ist statisch
gelinkt und befindet sich in
/usr/local/sbin. Lesen Sie auch die
mit dem Port installierte Hilfeseite &man.dhcpd.8;, wenn
Sie weitere Informationen zu
dhcpd benötigen./usr/local/etc/dhcpd.confdhcpd benötigt die
Konfigurationsdatei
/usr/local/etc/dhcpd.conf, damit
der Server den Clients seine Dienste anbieten kann.
Diese Datei muss alle Informationen enthalten, die an
die Clients weitergegeben werden soll. Außerdem
sind hier Informationen zur Konfiguration des Servers
enthalten. Die mit dem Port installierte Hilfeseite
&man.dhcpd.conf.5; enthält weitere Informationen.
/var/db/dhcpd.leasesDer DHCP-Server hat eine Datenbank, die alle
vergebenen Leases enthält. Diese wird als Logdatei
erzeugt. Weitere Informationen finden Sie in der vom
Port installierten Hilfeseite &man.dhcpd.leases.5;./usr/local/sbin/dhcrelaydhcrelay wird in
komplexen Umgebungen verwendet, in denen ein DHCP-Server
eine Anfrage eines Clients an einen DHCP-Server in einem
separaten Netzwerk weiterleitet. Wenn Sie diese
Funktion benötigen, müssen Sie den Port
net/isc-dhcp3-relay
installieren. Weitere Informationen zu diesem Thema
finden Sie in &man.dhcrelay.8;.ChernLeeBeigetragen von DNS – Domain Name ServiceÜberblickBINDDNS ist das für die Umwandlung von Rechnernamen in
IP-Adressen zuständige Protokoll. FreeBSD verwendet dazu
BIND (Berkeley Internet Name Domain), die am häufigsten
verwendete Implementierung von DNS. Eine Anfrage nach
www.FreeBSD.org gibt die
IP-Adresse des &os;-Webservers, eine Anfrage nach
ftp.FreeBSD.org die IP-Adresse des
entsprechenden FTP-Servers zurück. Der umgekehrte Weg
ist ebenso möglich, eine IP-Adresse kann also auch in ihren
Rechnernamen aufgelöst werden. Um eine DNS-Abfrage
durchzuführen, muss auf dem jeweiligen Rechner kein Nameserver
installiert sein.DNSIm Internet wird DNS durch ein komplexes System von
autoritativen Root-Nameservern sowie anderen kleineren
Nameservern verwaltet, die individuelle Rechnerinformationen
speichern und untereinander abgleichen.Dieses Dokument beschreibt die unter &os; verwendete
stabile Version BIND 8.x. Seit &os; 5.3 ist BIND 9.x
im Basissystem enthalten, dessen Konfiguration weiter hinten
im diesem Abschnitt besprochen wird. Nutzer von &os; 5.2
und älter können BIND9 über den Port
net/bind9 installieren.Das DNS-Protokoll wird in den RFCs 1034 und 1035
beschrieben.Derzeit wird BIND vom Internet Software Consortium
() verwaltet.BegriffsbestimmungenUm dieses Dokument besser verstehen zu können,
müssen einige DNS-spezifische Begriffe genauer definiert
werden.ResolverReverse-DNSroot zoneBegriffBedeutungForward-DNSRechnernamen in IP-Adressen umwandelnOrigin (Ursprung)Die in einer bestimmten Zonendatei beschriebene
Domäne.named, BIND,
NameserverGebräuchliche Namen für das unter FreeBSD
verwendete BIND-NameserverpaketResolverEin Systemprozess, durch den ein Rechner
Zoneninformationen von einem Nameserver anfordert.
Reverse-DNSDas Gegenteil von Forward-DNS; die Umwandlung von
IP-Adressen in RechnernamenRoot-ZoneDer Beginn der Internet-Zonenhierarchie. Alle
Zonen befinden sich innerhalb der Root-Zone. Dies ist
analog zu einem Dateisystem, in dem sich alle Dateien
und Verzeichnisse innerhalb des Wurzelverzeichnisses
befinden.ZoneEine individuelle Domäne, Unterdomäne,
oder ein Teil von DNS, der von der gleichen
Autorität verwaltet wird.ZonenBeispieleEs folgen nun einige Zonenbeispiele:. ist die Root-Zone.org. ist eine Zone innerhalb der
Root-Zone.example.org.
ist eine Zone innerhalb der
org.-Zone.foo.example.org.
ist eine Unterdomäne, eine Zone innerhalb der Zone
example.org.1.2.3.in-addr.arpa. ist die Zone mit
allen IP-Adressen des 3.2.1.*-IP-Adressraums.Wie man an diesen Beispielen erkennen kann, befindet sich
der spezifischere Teil eines Rechnernamens auf der linken Seite
der Adresse. example.org.
beschreibt einen Rechner also genauer als org.,
während org. genauer als die Root-Zone
ist. Jeder Teil des Rechnernamens hat Ähnlichkeiten mit
einem Dateisystem, in dem etwa /dev dem
Wurzelverzeichnis untergeordnet ist.Gründe für die Verwendung eines
NameserversEs gibt zwei Arten von Nameservern: Autoritative Nameserver
sowie zwischenspeichernde (cachende) Nameserver.Ein autoritativer Nameserver ist notwendig, wennSie anderen verbindliche DNS-Auskünfte erteilen
wollen.eine Domain, beispielsweise
example.org, registriert
wird, und den zu dieser Domain gehörenden Rechnern
IP-Adressen zugewiesen werden müssen.ein IP-Adressblock reverse-DNS-Einträge
benötigt, um IP-Adressen in Rechnernamen auflösen
zu können.ein Backup-Nameserver (auch Slaveserver genannt) auf
Anfragen antworten muss, weil der Hauptserver nicht
erreichbar ist.Ein cachender Nameserver ist notwendig, weilein lokaler DNS-Server Daten zwischenspeichern und daher
schneller auf Anfragen reagieren kann als ein entfernter
Server.die Datenmenge reduziert werden muss
(DNS-Verkehr macht etwa 5 % des gesamten Datenverkehrs im
Internet aus).Wird nach www.FreeBSD.org
gesucht, leitet der Resolver diese Anfrage an den Nameserver des
ISPs weiter und nimmt danach das Ergebnis der
Abfrage entgegen. Existiert ein lokaler, zwischenspeichernder
DNS-Server, muss dieser die Anfrage nur einmal nach außen
weitergeben. Für alle weiteren Anfragen ist dies nicht
mehr nötig, da diese Information nun lokal gespeichert
ist.Wie funktioniert DNS?Unter FreeBSD wird der BIND-Daemon als
named bezeichnet.DateiBeschreibungnamedDer BIND-Daemon.ndcDas Steuerprogramm für
named./etc/namedbDas Verzeichnis, in dem sich die Zoneninformationen
für BIND befinden./etc/namedb/named.confDie Konfigurationsdatei für
named.Zonendateien befinden sich normalerweise im Verzeichnis
/etc/namedb und enthalten die vom
Nameserver angebotenen DNS-Zoneninformationen.BIND startenBINDStartDa BIND automatisch installiert wird, ist die Konfiguration
relativ einfach.Um den named-Daemon beim
Systemstart automatisch zu starten, fügen Sie folgende
Zeile in /etc/rc.conf ein:named_enable="YES"Um den Daemon (nach der Konfiguration) manuell zu starten,
geben Sie Folgendes ein:&prompt.root; ndc startKonfigurationsdateienBINDKonfigurationsdateienmake-localhost verwendenUm die lokale reverse-DNS-Zonendatei
/etc/namedb/master/localhost.rev korrekt zu
erzeugen, machen Sie Folgendes:&prompt.root; cd /etc/namedb
&prompt.root; sh make-localhost/etc/namedb/named.conf// $FreeBSD$
//
// Refer to the named(8) manual page for details. If you are ever going
// to setup a primary server, make sure you've understood the hairy
// details of how DNS is working. Even with simple mistakes, you can
// break connectivity for affected parties, or cause huge amount of
// useless Internet traffic.
options {
directory "/etc/namedb";
// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
// forward only;
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the
Internet.
/*
forwarders {
127.0.0.1;
};
*/ Um vom Cache Ihres Internetproviders zu profitieren,
können hier forwarders aktiviert
werden. Normalerweise sucht ein Nameserver das Internet
rekursiv ab, bis er die gesuchte Antwort findet. Durch
diese Option wird stets der Nameserver Ihres
Internetproviders zuerst abgefragt, um von dessen
Cache zu profitieren. Wenn es sich um einen schnellen,
viel benutzten Nameserver handelt, kann dies zu einer
Geschwindigkeitssteigerung führen.127.0.0.1 funktioniert
hier nicht. Ändern Sie diese
Adresse in einen Nameserver Ihres Einwahlproviders./*
* If there is a firewall between you and name servers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
/*
* If running in a sandbox, you may have to specify a different
* location for the dumpfile.
*/
// dump-file "s/named_dump.db";
};
// Note: the following will be supported in a future release.
/*
host { any; } {
topology {
127.0.0.0/8;
};
};
*/
// Setting up secondaries is way easier and the rough picture for this
// is explained below.
//
// If you enable a local name server, don't forget to enter 127.0.0.1
// into your /etc/resolv.conf so this server will be queried first.
// Also, make sure to enable it in /etc/rc.conf.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example secondary config entries. It can be convenient to become
// a secondary at least for the zone where your own domain is in. Ask
// your network administrator for the IP address of the responsible
// primary.
//
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is the first bytes of the respective IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
//
// Before starting to setup a primary zone, better make sure you fully
// understand how DNS and BIND works, however. There are sometimes
// unobvious pitfalls. Setting up a secondary is comparably simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
//
// NOTE!!! FreeBSD runs BIND in a sandbox (see named_flags in rc.conf).
// The directory containing the secondary zones must be write accessible
// to BIND. The following sequence is suggested:
//
// mkdir /etc/namedb/s
// chown bind:bind /etc/namedb/s
// chmod 750 /etc/namedb/sWenn Sie BIND innerhalb einer Sandbox betreiben wollen,
lesen Sie bitte den
./*
zone "example.com" {
type slave;
file "s/example.com.bak";
masters {
192.168.1.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "s/0.168.192.in-addr.arpa.bak";
masters {
192.168.1.1;
};
};
*/ Hierbei handelt es sich um Slave-Einträge für
eine Reverse- und Forward-DNS-Zone, die in der Datei
named.conf definiert sind.Für jede neue Zone muss ein zusätzlicher Eintrag
in named.conf erstellt werden.Ein einfacher Eintrag für eine Zone
example.org könnte
beispielsweise so aussehen:zone "example.org" {
type master;
file "example.org";
}; Die Option legt fest, dass es sich
um eine Master-Zone handelt, deren Zoneninformationen sich in
der Datei /etc/namedb/example.org
befinden. Diese Datei wird durch die Option
festgelegt.zone "example.org" {
type slave;
file "example.org";
}; Hier handelt es sich um einen Slaveserver, der seine
Informationen vom Masterserver der betreffenden Zone bezieht
und diese in der angegebenen Datei speichert. Wenn der
Masterserver nicht erreichbar ist, verfügt der
Slaveserver über die transferierten Zoneninformationen
und kann diese an andere Rechner weitergeben.ZonendateienDie in der Datei
/etc/namedb/example.org definierte
Zonendatei für
example.org könnte
etwa so aussehen:$TTL 3600
example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; DNS Servers
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30
; Aliases
www IN CNAME @
; MX Record
@ IN MX 10 mail.example.org.Beachten Sie, dass jeder mit einem .
endende Rechnername ein exakter Rechnername ist, während
sich alles ohne einen abschließenden .
auf den Ursprung bezieht. www steht daher
für
www.Ursprung.
In unserer fiktiven Zonendatei ist
example.org. der Ursprung, daher steht
www für
www.example.org.Eine Zonendatei hat folgenden Aufbau:recordname IN recordtype valueDNSEinträgeDie am häufigsten verwendeten DNS-Einträge sind:SOAStart der ZonenautoritätNSEin autoritativer NameserverAEine RechneradresseCNAMEDer kanonische Name eines AliasMXMail ExchangerPTREin (bei Reverse-DNS verwendeter) Domain Name
Pointerexample.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 dayexample.org.Der Name der Domäne und damit der
Ursprung dieser Zonendatei.ns1.example.org.Der primäre/autoritative Nameserver
dieser Zone.admin.example.org.Die für diese Zone verantwortliche
Person. Das Zeichen @ wird dabei
ersetzt (admin@example.org wird also zu
admin.example.org).5Die Seriennummer der Datei. Sie muss
stets inkrementiert werden, wenn die Zonendatei
geändert wird. Viele Administratoren bevorzugen
ein JJJJMMTTRR-Format, um die
Seriennummer festzulegen.
2001041002 steht also für
den 10.04.2001, die beiden letzten Stellen für die
zweite Modifikation der Zonendatei an diesem Tag. Die
Seriennummer ist von großer Bedeutung, da
Slaveserver daran eine aktualisierte Zonendatei erkennen
können.@ IN NS ns1.example.org.Ein NS-Eintrag. Jeder Nameserver, der für eine Zone
verantwortlich ist, muss über einen solchen Eintrag
verfügen. Das Zeichen @ steht in
unserem Beispiel für
example.org.,
@ verweist also auf den Ursprung.localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30Der Eintrag A bezieht sich auf
Rechnernamen. ns1.example.org
würde also zu 3.2.1.2
aufgelöst werden. Da das (Ursprungs-)Symbol
@ verwendet wird, wird
example.org zu
3.2.1.30 aufgelöst.www IN CNAME @Der Eintrag für den kanonischen Namen wird dazu
verwendet, Aliase für einen Rechner zu vergeben. Im
Beispiel ist www ein Alias für den
Ursprungsrechner
(example.org oder
3.2.1.30). Durch die Option
CNAME können Aliasnamen vergeben werden. Ein Rechnername
kann aber auch abwechselnd verschiedenen Rechnern zugewiesen
werden.MX-Eintrag@ IN MX 10 mail.example.org.Die Option MX legt fest, welcher Mailserver für
eintreffende Mails der Zone verantwortlich ist.
mail.example.org ist der
Rechnername des Mailservers, der eine Priorität von 10
hat.Es können auch mehrere Mailserver mit verschiedener
Priorität vorhanden sein. Ein Mailserver, der eine Mail
an example.org verschicken
will, verwendet zuerst den MX mit der höchsten
Priorität, danach den mit der nächsthöheren,
bis die E-Mail zugestellt werden kann.Für (bei Reverse-DNS verwendete)
in-addr.arpa-Zonendateien wird das gleiche
Format verwendet. Der einzige Unterschied besteht in der
Verwendung der Option PTR an Stelle der Optionen A und
CNAME.$TTL 3600
1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
10 IN PTR mail.example.org.
30 IN PTR example.org.Durch diese Datei werden den Rechnernamen der fiktiven
Domäne IP-Adressen zugewiesen.Zwischenspeichernde (cachende) NameserverBINDZwischenspeichernde NameserverEin cachender Nameserver ist für keine Zonen
verantwortlich. Er stellt lediglich eigene Anfragen und
speichert deren Ergebnisse ab. Um einen solchen Nameserver
einzurichten, gehen Sie wie gewohnt vor, allerdings definieren
Sie keine Zonen.named in einer Sandbox
ausführenBINDSandboxchrootEs ist möglich, &man.named.8; als nicht privilegierter
Benutzer in einer mit &man.chroot.8; definierten Sandbox
auszuführen. Dadurch hat der
named-Daemon keinen Zugriff auf
Verzeichnisse und Dateien außerhalb der Sandbox. Sollte
named kompromittiert werden,
lässt sich dadurch der mögliche Schaden begrenzen.
FreeBSD erzeugt dazu automatisch einen Benutzer und eine
Gruppe namens bind.Manchmal wird auch empfohlen, statt mit
chroot das Wurzelverzeichnis für
named zu ändern,
named innerhalb eines &man.jail.8;s
auszuführen. Diese Situation wird hier jedoch nicht
beschrieben.Da named keinen Zugriff auf
Dateien außerhalb der Sandbox (wie Systembibliotheken oder
Protokolldateien) hat, sind einige Vorbereitungen notwendig,
damit named korrekt funktioniert.
Im Folgenden wird angenommen, dass die Sandbox unter
/etc/namedb eingerichtet wird. Außerdem
befinden sich die Dateien in diesem Verzeichnis noch im
Originalzustand. Alle Schritte müssen als
root durchgeführt werden.Erzeugen Sie alle Verzeichnisse, die
named benötigt:&prompt.root; cd /etc/namedb
&prompt.root; mkdir -p bin dev etc var/tmp var/run master slave
&prompt.root; chown bind:bind slave var/*Da named nur schreibend
auf diese Verzeichnisse zugreifen muss, werden auch
keine weiteren Rechte zugeteilt.Erzeugen Sie die Basiszonen sowie die nötigen
Konfigurationsdateien:&prompt.root; cp /etc/localtime etc
&prompt.root; mv named.conf etc && ln -sf etc/named.conf
&prompt.root; mv named.root master
&prompt.root; sh make-localhost
&prompt.root; cat > master/named.localhost
$ORIGIN localhost.
$TTL 6h
@ IN SOA localhost. postmaster.localhost. (
1 ; serial
3600 ; refresh
1800 ; retry
604800 ; expiration
3600 ) ; minimum
IN NS localhost.
IN A 127.0.0.1
^DDadurch ist es named
möglich, die korrekte Systemzeit an &man.syslogd.8;
weiterzugeben.syslogLogdateiennamedWenn Sie FreeBSD in einer Version vor 4.9-RELEASE
verwenden, erzeugen Sie eine statisch gelinkte Kopie von
named-xfer und kopieren diese
in Ihre Sandbox:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandir && make cleandir && make depend && make NOSHARED=yes all
&prompt.root; cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xferNachdem Sie ihre statische gelinkte Version von
named-xfer installiert haben,
müssen Sie etwas aufräumen, damit keine
veralteten Kopien von Bibliotheken oder Programmen in Ihrem
Quellbaum verbleiben:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandirDieser Schritt kann manchmal fehlschlagen. Wenn
dies passiert, machen Sie Folgendes:&prompt.root; cd /usr/src && make cleandir && make cleandirDanach löschen Sie
/usr/obj inklusive aller
Unterverzeichnisse:&prompt.root; rm -fr /usr/obj && mkdir /usr/objDadurch entfernen Sie den ganzen
Müll aus Ihrem Quellbaum und die
fehlgeschlagenen Schritte sollten nun ebenfalls
funktionieren.Wenn Sie &os; in der Version 4.9-RELEASE oder neuer
verwenden, wird die in /usr/libexec
vorhandene Kopie von named-xfer
automatisch statisch gelinkt und Sie können die Datei
einfach mit &man.cp.1; in Ihre Sandbox kopieren.Erzeugen Sie ein dev/null, auf
das named lesend und schreibend
zugreifen kann:&prompt.root; cd /etc/namedb/dev && mknod null c 2 2
&prompt.root; chmod 666 nullLinken Sie /etc/namedb/var/run/ndc
symbolisch nach /var/run/ndc:&prompt.root; ln -sf /etc/namedb/var/run/ndc /var/run/ndcDadurch können Sie auf die Option
verzichten, wenn Sie &man.ndc.8;
aufrufen. Der Inhalt von /var/run
wird beim Systemstart automatisch gelöscht. Diese
Anweisung kann unter Nutzung der Option
in die
crontab von root
eingebaut werden. Lesen Sie dazu auch die Hilfeseite
&man.crontab.5;.syslogLogdateiennamedWeisen Sie &man.syslogd.8; an, einen zusätzlichen
log-Socket zu erzeugen, auf den
named Schreibzugriff hat. Dazu
hängen Sie in der Datei
/etc/rc.conf an den Eintrag
syslogd_flags die Option
-l /etc/namedb/dev/log an.chrootStellen Sie sicher, dass
named gestartet wird und sein
Wurzelverzeichnis mittels chroot in die
Sandbox setzt, indem Sie folgende Einträge in
/etc/rc.conf einfügen:named_enable="YES"
named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf"Beachten Sie, dass die Konfigurationsdatei
/etc/named.conf durch einen
absoluten Pfad (aber relativ zur
Sandbox) festgelegt wird. Bei der im obigen Beispiel
angesprochenen Datei handelt es sich also um
/etc/namedb/etc/named.conf.Danach bearbeiten Sie
/etc/namedb/etc/named.conf, damit
named weiß, welche Zonen geladen
werden müssen und wo sich diese befinden. Es folgt nun
ein kommentiertes Beispiel (alle nicht dokumentierten
Einträge gelten auch für einen DNS-Server, der nicht
in einer Sandbox läuft):options {
directory "/";
named-xfer "/bin/named-xfer";
version ""; // Don't reveal BIND version
query-source address * port 53;
};
// ndc control socket
controls {
unix "/var/run/ndc" perm 0600 owner 0 group 0;
};
// Zones follow:
zone "localhost" IN {
type master;
file "master/named.localhost";
allow-transfer { localhost; };
notify no;
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "master/localhost.rev";
allow-transfer { localhost; };
notify no;
};
zone "." IN {
type hint;
file "master/named.root";
};
zone "private.example.net" in {
type master;
file "master/private.example.net.db";
allow-transfer { 192.168.10.0/24; };
};
zone "10.168.192.in-addr.arpa" in {
type slave;
masters { 192.168.10.2; };
file "slave/192.168.10.db";
}; directory wird als
/ festgelegt, da sich alle von
named benötigten Dateien in
diesem Verzeichnis befinden (analog zur
/etc/namedb eines
normalen Benutzers.Legt den vollständigen Pfad zur Binärdatei
named-xfer aus der Sicht von
named fest. Das ist nötig,
weil named per Voreinstellung
im Verzeichnis /usr/libexec nach
named-xfer sucht.Legt die Datei (relativ zum
directory-Statement) fest, in der
named die Zonendatei für
diese Zone findet.Legt die Datei (relativ zum
directory-Statement) fest, in die
named eine Kopie der Zonendatei
dieser Zone schreibt, nachdem diese erfolgreich vom
Masterserver angefordert wurde. Aus diesem Grund musste in
den vorherigen Schritten auch bind
der Eigentümer des Verzeichnisses
slave sein.Nachdem Sie diese Schritte erledigt haben, müssen Sie
entweder den Rechner oder &man.syslogd.8; neu starten. Danach
starten Sie &man.named.8; unter Verwendung der neuen, unter
syslogd_flags und
named_flags festgelegten Optionen. Sie
verwenden nun eine Sandboxversion von
named!SicherheitObwohl BIND die am meisten verwendete (und kontrollierte)
Implementierung von DNS darstellt, werden dennoch manchmal neue
Sicherheitsprobleme entdeckt.Es ist daher eine gute Idee, die Sicherheitshinweise von
CERT zu lesen sowie
die Mailingliste &a.security-notifications; zu abonnieren, um
sich über Sicherheitsprobleme im Zusammenhang mit dem
Internet und FreeBSD zu informieren.Tritt ein Problem auf, kann es nie schaden, die
Quellen zu aktualisieren und named
neu zu kompilieren.Weitere InformationsquellenHilfeseiten zu BIND/named:
&man.ndc.8;, &man.named.8;, &man.named.conf.5;Offizielle ISC-Seite
zu BIND
BIND FAQsO'Reilly
DNS and BIND 4th EditionRFC1034
- Domain Names - Concepts and FacilitiesRFC1035
- Domain Names - Implementation and SpecificationTomRhodesGeschrieben von BIND9 und &os;bind9KonfigurationMit &os; 5.3 wurde der DNS-Server
BIND9 in das Basissystem aufgenommen. Vorteile
der neuen Version sind die verbesserte Sicherheit, ein neues
Dateisystem sowie eine automatisierte Konfiguration von
&man.chroot.8;. Der erste Teil dieses Abschnitts beschreibt diese
Neuerungen inklusive ihrer Konfiguration, der zweite Teil
konzentriert sich auf den Umstieg auf &os; 5.3. Der
BIND-Server wird im Folgenden als &man.named.8;
bezeichnet. Die Grundlagen von DNS wurden
bereits im letzten Abschnitt beschrieben. Lesen Sie sich diesen
Abschnitt noch einmal durch, bevor Sie fortfahren.Die Konfigurationsdateien für
named befinden sich unter
/var/named/etc/namedb/ und
müssen von Ihnen angepasst werden, bevor sie verwendet werden
können. Ein Großteil der Änderungen betrifft
Dateien in diesem Verzeichnis.Eine Master-Zone einrichtenUm eine Master-Zone einzurichten, wechseln Sie ins
Verzeichnis
/var/named/etc/namedb/
und geben den folgenden Befehl ein:&prompt.root; sh make-localhostWenn alles klappt, wird die lokale reverse-DNS-Zonendatei
localhost.rev
(localhost-v6.rev bei Verwendung von
IPv6) im Verzeichnis
master angelegt. Da es
sich dabei um die Standardkonfigurationsdatei handelt, wird
diese automatisch in named.conf
eingebunden.Eine Slave-Zone einrichtenWeitere Domains oder Subdomains werden konfiguriert, indem
man sie als Slave-Zonen einrichtet. In den meisten Fällen
kann die Datei master/localhost.rev einfach in das
Verzeichnis slave kopiert
und angepasst werden. Danach werden die Dateien in
named.conf eingebunden. Das folgende
Beispiel beschreibt die Konfiguration der Domain
example.com:zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
}; Beachten Sie, dass die Master-IP-Adresse
nur den primären Domainserver festlegt, von dem die Zonen
transferiert werden. Das heißt aber nicht, dass dieser
Server auch als DNS-Server arbeitet.BIND automatisch startenUm den named-Daemon beim
Systemstart automatisch zu starten, fügen Sie
folgende Zeile in rc.conf ein:named_enable="YES"Obwohl es noch weitere Optionen gibt, sollten
Sie named bereits jetzt starten können.
Zusätzliche Konfigurationsoptionen werden in
&man.rc.conf.5; beschrieben. Wenn Sie named
nicht über die Datei rc.conf starten
wollen, können Sie auch den folgenden Befehl eingeben:&prompt.root; /etc/rc.d/named startBIND9 absichern&os; führt named automatisch in
einer &man.chroot.8;-Umgebung (Sandbox) aus, es gibt aber
noch weitere Möglichkeiten, potentielle Angriffe auf Ihren
DNS-Server abzuwehren.Zugriffskontrolllisten
(Access Control Lists)
verwendenDurch Zugriffskontrolllisten können Sie die Abfrage
von Zoneninformationen einschränken. Dazu definieren Sie
das entsprechende Netzwerk im acl-Abschnitt
und fügen anschließend die
IP-Adressen in die Zonenkonfigurationsdatei
ein. Um den Zugriff auf Zoneninformationen zu erlauben,
fügen Sie Zeilen ähnlich den folgenden ein:acl "example.com" {
192.168.0.0/24;
};
zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
allow-query { example.com; };
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
allow-query { example.com; };
}; Die Ausgabe der Versionsnummer unterbindenDie Abfrage der Versionsnummer des DNS-
Servers kann einem Angreifer den Zugriff auf das System
ermöglichen. Er ist dadurch in der Lage, gezielt nach
bekannten Sicherheitslücken dieser Version zu suchen und
diese auf Ihr System anzuwenden.Die Angabe einer falschen Versionsnummer behebt keine
Sicherheitslücken. Nur die Aktualisierung auf eine
Version, die nicht mehr angreifbar ist, schützt Ihren
Server.Dennoch ist es eine gute Idee, eine falsche Angabe im
Abschitt options der Datei
named.conf anzugeben:options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
version "None of your business";
}; MurrayStokelyBeigetragen von Der Apache HTTP-ServerWebserverkonfigurierenApacheÜberblickEinige der weltgrößten Internetauftritte laufen
unter &os;. Die Mehrzahl der Webserver im Internet nutzt
den Apache HTTP-Server. Die
Installationspakete für den
Apache sollten auf Ihrem
Installationsmedium vorhanden sein. Wenn Sie den
Apache noch nicht installiert haben,
können Sie dies jederzeit über den Port
www/apache13 oder
- www/apache2 nachholen.
+ www/apache20 nachholen.
Nachdem der Apache erfolgreich
installiert wurde, muss er noch konfiguriert werden.Dieser Abschnitt beschreibt die Version 1.3.X des
Apache HTTP-Servers, da diese Version
unter &os; am häufigsten verwendet wird.
Apache 2.X bringt zwar viele
Verbesserungen mit sich, wird hier aber nicht beschrieben.
Sollten Sie an Apache 2.X
interessiert sein, informieren Sie sich bitte auf
.KonfigurationApacheKonfigurationsdateiDer Apache HTTP-Server wird unter
&os; primär über die Datei
/usr/local/etc/apache/httpd.conf
konfiguriert. Bei dieser Datei handelt es sich um eine typische
&unix;-Konfigurationsdatei, in der Kommentarzeilen mit einem
#-Zeichen beginnen. Eine komplette
Beschreibung aller Optionen würde den Rahmen dieses
Handbuchs sprengen, daher beschreiben wir hier nur die am
häufigsten verwendeten Optionen.ServerRoot "/usr/local"Legt das Standardwurzelverzeichnis für die
Apache-Installation fest.
Binärdateien werden in die Verzeichnisse
bin und
sbin unterhalb des
Serverwurzelverzeichnisses installiert, während sich
Konfigurationsdateien im Verzeichnis
etc/apache
befinden.ServerAdmin you@your.addressDie E-Mail-Adresse, an die Mitteilungen über
Serverprobleme geschickt werden sollen. Diese Adresse
erscheint auf vom Server erzeugten Seiten, beispielsweise
auf Fehlerseiten.ServerName www.example.comÜber die Option ServerName
können Sie einen Rechnernamen festlegen, den Ihr
Server an die Clients sendet, wenn sich dieser von
tatsächlichen Rechnernamen unterscheidet (sie
könnten etwa www statt des richtigen
Rechnernamens verwenden).DocumentRoot "/usr/local/www/data"DocumentRoot: Das Verzeichnis, in
dem Sie Ihre Dokumente ablegen. In der Voreinstellung
befinden sich alle Seiten in diesem Verzeichnis, durch
symbolische Links oder Aliase lassen sich aber auch andere
Orte festlegen.Es ist empfehlenswert, eine Sicherungskopie Ihrer
Konfigurationsdatei anzulegen, bevor Sie Änderungen
durchführen. Nachdem Sie die Konfiguration beendet
haben, können Sie den
Apache starten.Den Apache betreibenApacheStarten oder BeendenDer Apache wird, im Gegensatz zu
vielen anderen Netzwerkservern, nicht vom
inetd-Super-Server verwaltet, sondern
wird als eigenständiger Server betrieben, um die
Leistung für eintreffende HTTP-Anfragen von den Clients
(also von Internetbrowsern) zu verbessern. Gestartet, beendet
oder neu gestartet wird der Server über einen
Shellskript-Wrapper. Um den Apache
erstmals zu starten, geben Sie einfach Folgendes ein:&prompt.root; /usr/local/sbin/apachectl startWenn Sie den Server beenden wollen, geben Sie Folgendes ein:&prompt.root; /usr/local/sbin/apachectl stopWenn Sie die Konfigurationsdatei verändern, müssen
Sie den Server neu starten:&prompt.root; /usr/local/sbin/apachectl restartUm den Apache ohne den Abbruch
bestehender Verbindungen neu zu starten, geben Sie Folgendes
ein:&prompt.root; /usr/local/sbin/apachectl gracefulDiese und weitere Optionen werden in
&man.apachectl.8; beschrieben.Um den Apache beim Systemstart
zu starten, fügen Sie folgende Zeile in
/etc/rc.conf ein:apache_enable="YES"Wenn Sie während des Systemstarts weitere Parameter an
den
Apache-httpd-Daemon
übergeben wollen, können Sie diese durch eine
zusätzliche Zeile in rc.conf
angeben:apache_flags=""Nachdem der Webserver gestartet ist, können Sie sich
Ihre Internetseite ansehen, indem Sie in Ihren Browser die
Adresse http://localhost/ eingeben. Die
vordefinierte Standardstartseite ist
/usr/local/www/data/index.html.Virtual HostingDer Apache unterstützt zwei
Formen des Virtual Hostings. Die
erste Möglichkeit bezeichnet man als namenbasiertes
virtuelles Hosting. Dabei wird der HTTP/1.1-Header der Clients
dazu verwendet, den Rechnernamen zu bestimmen. Dadurch wird es
möglich, mehrere Domains unter der gleichen IP-Adresse zu
betreiben.Damit der Apache namenbasierte
virtuelle Domains verwalten kann, fügen Sie die folgende
Zeile in httpd.conf ein:NameVirtualHost *Wenn Ihr Webserver
www.domain.tld heißt und Sie die
virtuelle Domain
www.someotherdomain.tld einrichten
wollen, ergänzen Sie httpd.conf um
folgende Einträge:<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain.tld
</VirtualHost>
<VirtualHost *>
ServerName www.someotherdomain.tld
DocumentRoot /www/someotherdomain.tld
</VirtualHost>Ersetzen Sie dabei die Adressen sowie den Pfad zu den
Dokumenten durch Ihre eigenen Einstellungen.Ausführliche Informationen zum Einrichten von
virtuellen Domains finden Sie in der offiziellen
Apache-Dokumentation unter
.Häufig verwendete Apache-ModuleApacheModuleEs gibt viele verschiedene
Apache-Module, die den Server
um zusätzliche Funktionen erweitern. Die
- FreeBSD-Portssammlung ermöglicht es Ihnen, den
+ FreeBSD-Ports-Sammlung ermöglicht es Ihnen, den
Apache gemeinsam mit einigen der
beliebtesten Zusatzmodule zu installieren.mod_sslWebserverVerschlüsselungSSLVerschlüsselungDas Modul mod_ssl verwendet die
OpenSSL-Bibliothek, um, unter Nutzung der Protokolle Secure
Sockets Layer (SSL v2/v3) sowie Transport Layer Security
(TLS v1) starke Verschlüsselung zu ermöglichen.
Durch dieses Modul können Sie ein signiertes Zertifikat
von einer Zertifizierungsstelle anfordern, damit Sie einen
sicheren Webserver unter &os; betreiben können.Wenn Sie den Apache 1.3.X noch
nicht installiert haben, können Sie über den
Port www/apache13-modssl eine
Apache-Version installieren, in die
mod_ssl als Modul einkompiliert
wurde. Bevorzugen Sie den
Apache 2.X, installieren Sie
stattdessen den Port
- www/apache2, bei dem die
+ www/apache20, bei dem die
SSL-Unterstützung bereits in der Voreinstellung aktiviert
ist.
+ Dynamische Webseiten mit Perl & PHP
+
+ In den vergangenen Jahren haben immer mehr Unternehmen
+ das Internet als Mittel für die Steigerung ihrer
+ Einnahmen sowie für die Erhöhung ihrer Reichweite
+ entdeckt. Dadurch stieg auch die Nachfrage nach interaktiven
+ Internetinhalten. Neben einigen Unternehmen, darunter
+ µsoft;, die dafür proprietäre Produkte
+ entwickelt haben, hat auch die Open Source Community auf
+ diesen Umstand reagiert und unter anderem mit
+ mod_perl und
+ mod_php Möglichkeiten zur
+ Generierung dynamischer Internetseiten geschaffen.
+
+ mod_perl
- Perl
+
+ mod_perl
+ Perl
+ Die Kombination Apache/Perl
vereinigt die Vorteile der Programmiersprache Perl und des
Apache HTTP-Servers. Durch
das Modul mod_perl ist es
möglich, vollständig in Perl geschriebene
Apache-Module zu erzeugen.
Da der Perl-Interpreter in den Server eingebettet wird,
müssen Sie weder einen externen Interpreter noch
Perl zusätzlich aufrufen.
- Wenn Sie den Apache noch
- nicht installiert haben, können Sie über den
- Port www/apache13-modperl eine
- Apacheversion installieren, in die
- mod_perl als Modul
- einkompiliert wurde.
-
-
-
-
+ mod_perl ist in verschiedenen
+ Versionen erhältlich. Bevor Sie
+ mod_perl einsetzen,denken Sie
+ bitte daran, dass mod_perl 1.0
+ nur mit Apache 1.3 und
+ mod_perl 2.0 nur mit
+ Apache 2 zusammenarbeitet.
+ mod_perl 1.0 kann über
+ den Port www/mod_perl,
+ eine statisch kompilierte Version hingegen über den
+ Port www/apache13-modperl
+ installiert werden. Für die Installation von
+ mod_perl 2.0 schließlich
+ verwenden Sie den Port www/mod_perl2.
+
+
+
+ TomRhodesGeschrieben von
-
+
- PHP
+ mod_php
- PHP
-
- In den vergangenen Jahren haben immer mehr Unternehmen
- das Internet als Mittel für die Steigerung ihrer
- Einnahmen sowie für die Erhöhung ihrer Reichweite
- entdeckt. Dadurch stieg auch die Nachfrage nach interaktiven
- Internetinhalten. Neben einigen Unternehmen, darunter
- µsoft;, die dafür proprietäre Produkte
- entwickelt haben, hat auch die Open Source Community auf
- diesen Umstand reagiert. Eine der am weitesten verbreiteten
- Lösungen ist PHP.
+
+ mod_php
+ PHP
+ Bei PHP, dem Hypertext Preprocessor,
handelt es sich um eine vielseitig verwendbare Skriptsprache,
die besonders für die Internetprogrammierung geeignet
ist. PHP kann in HTML eingebettet werden
und ähnelt von der Syntax her Sprachen wie C, &java; und
Perl. Das Hauptanliegen von PHP ist es, Internetprogrammierern
die rasche Erstellung von dynamisch erzeugten Internetseiten zu
ermöglichen.Damit Ihr System PHP5 unterstützt,
müssen Sie als Erstes den Apache
Webserver über den Port
www/mod_php5
installieren.Dieser Port installiert und konfiguriert die Module, die
für die Unterstützung von dynamischen
- Internetanwendungen benötigt werden. Stellen Sie danach
- sicher, dass Ihre
+ PHP-Anwendungen benötigt werden.
+ Stellen Sie danach sicher, dass Ihre
/usr/local/etc/apache/httpd.conf die
- folgenden Zeilen enthält:
+ folgenden Abschnitte enthält:
+
+ LoadModule php5_module libexec/apache/libphp5.so
- LoadModule php5_module libexec/apache/libphp5.so
-AddModule mod_php5.c
+ AddModule mod_php5.c
<IfModule mod_php5.c>
DirectoryIndex index.php index.html
</IfModule>
-
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>Nachdem dies erledigt ist, rufen Sie
- apachectl auf, um den Webserver neu zu
- starten:
+ apachectl auf, um das
+ PHP-Modul zu laden:
&prompt.root; apachectl gracefulDie PHP-Unterstützung von &os; ist
- modular aufgebaut. Benötigen Sie ein weiteres Modul,
- reicht es aus, den entsprechenden Port zu installieren und den
- Apache wie oben beschrieben neu zu
- starten.
+ stark modular aufgebaut, daher verfügt eine
+ Basisinstallation nur über wenige Funktionen. Eine
+ Erweiterung um zusätzliche Funktionen ist allerdings sehr
+ einfach über den Port lang/php5-extensions möglich.
+ Der Port bietet Ihnen ein Auswahlmenü, über das Sie
+ verschiedene PHP-Erweiterungen installieren
+ können. Alternativ können Sie einzelne Erweiterungen
+ aber weiterhin direkt über den jeweiligen Port
+ installieren.
Um beispielsweise die Unterstützung des
Datenbankservers MySQL in
PHP5 zu aktivieren, installieren Sie
- den Port databases/php5-mysql
- und starten danach den Webserver neu:
+ den Port databases/php5-mysql.
+
+ Nachdem Sie eine Erweiterung installiert haben,
+ müssen Sie den
+ Apache-Server neu starten, damit
+ die Erweiterung auch erkannt wird:&prompt.root; apachectl gracefulAb nun wird MySQL von
PHP unterstützt.
+
MurrayStokelyBeigetragen von FTP – File Transfer ProtocolFTP-ServerÜberblickDas File Transfer Protocol (FTP) ermöglicht
auf einfache Art und Weise den Dateiaustausch mit einem
FTP-Server.
Der
FTP-Server
ftpd ist bei &os; bereits im
Basisystem enthalten. Daher sind Konfiguration und Betrieb
eines
FTP-Servers
unter FreeBSD relativ einfach.KonfigurationDer wichtigste Punkt ist hier die Entscheidung darüber,
welche Benutzer auf Ihren FTP-Server zugreifen dürfen.
Ein FreeBSD-System verfügt über diverse
Systembenutzerkonten, um einzelnen Daemonen den Zugriff auf
das System zu ermöglichen. Anonyme Benutzer sollten sich
allerdings nicht über diese Benutzerkonten anmelden
dürfen. Die Datei /etc/ftpusers
enthält alle Benutzer, die vom FTP-Zugriff ausgeschlossen
sind. In der Voreinstellung gilt dies auch die gerade
erwähnten Systembenutzerkonten. Sie können über
diese Datei weitere Benutzer vom FTP-Zugriff
ausschließen.Sie können den Zugriff für einige Benutzer
einschränken, ohne FTP komplett zu verbieten. Dazu
passen Sie /etc/ftpchroot entsprechend an.
Diese Datei enthält Benutzer und Gruppen sowie die für
sie geltenden FTP-Einschränkungen und wird in
&man.ftpchroot.5; ausführlich beschrieben.FTPanonymousWenn Sie einen anonymen FTP-Zugriff auf Ihren Server
ermöglichen wollen, müssen Sie den Benutzer
ftp auf Ihrem &os;-System anlegen.
Danach können sich Benutzer mit dem Benutzernamen
ftp oder anonymous
auf Ihrem FTP-Server anmelden. Das Passwort ist dabei
beliebig (allerdings wird dazu in der Regel eine E-Mail-Adresse
verwendet). Meldet sich ein anonymer Benutzer an, aktiviert
der FTP-Server &man.chroot.2;, um den Zugriff auf das
Heimatverzeichnis des Benutzers ftp
zu beschränken.Es gibt zwei Textdateien, deren Inhalt Sie bei der Anmeldung
an Ihrem FTP-Server anzeigen lassen können. Der Inhalt von
/etc/ftpwelcome wird angezeigt, bevor der
Login-Prompt erscheint. Nach einer erfolgreichen Anmeldung wird
der Inhalt von /etc/ftpmotd angezeigt.
Beachten Sie aber, dass es dabei um einen Pfad relativ zur
Umgebung des anzumeldenden Benutzers handelt. Bei einer
anonymen Anmeldung würde also die Datei
~ftp/etc/ftpmotd angezeigt.Nachdem Sie den FTP-Server konfiguriert haben, müssen
Sie Ihn in /etc/inetd.conf aktivieren.
Dazu müssen Sie lediglich das Kommentarsymbol
# am Beginn der bereits vorhandenen
ftpd-Zeile entfernen:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lNachdem Sie diese Änderung durchgeführt haben,
- müssen Sie, wie in
- beschrieben, ein HangUP-Signal an
- inetd senden.
+ müssen Sie, wie in
+ beschrieben, die inetd-Konfiguration
+ neu einlesen.
Danach können Sie sich auf Ihrem FTP-Server anmelden:&prompt.user; ftp localhostWartungsyslogLogdateienFTPDer ftpd-Daemon verwendet
&man.syslog.3;, um Protokolldateien zu erstellen. In der
Voreinstellung werden alle FTP betreffenden Nachrichten
in die Datei /var/log/xferlog
geschrieben. Dies lässt sich aber durch das Einfügen
der folgenden Zeile in /etc/syslog.conf
ändern:ftp.info /var/log/xferlogFTPanonymousBeachten Sie, dass mit dem Betrieb eines anonymen
FTP-Servers verschiedene Sicherheitsrisiken verbunden sind.
Problematisch ist hier vor allem die Erlaubnis zum anonymen
Upload von Dateien. Dadurch könnte Ihr Server zur
Verbreitung von illegaler oder nicht lizensierter Software
oder noch Schlimmeren missbraucht werden. Wollen Sie
anonyme Uploads dennoch erlauben, sollten Sie die
Zugriffsrechte so setzen, dass solche Dateien erst nach Ihrer
Zustimmung von anderen Benutzern heruntergeladen werden
können.MurrayStokelyBeigetragen von Mit Samba einen Datei- und Druckserver für
µsoft.windows;-Clients einrichtenSamba-ServerMicrosoft WindowsDateiserverWindows-ClientsDruckserverWindows-ClientsÜberblickSamba ist ein beliebtes
Open Source-Softwarepaket, das es Ihnen ermöglicht,
einen Datei- und Druckserver für
µsoft.windows;-Clients einzurichten. Clients können
sich dadurch mit einem FreeBSD-System verbinden und dessen
Speicherplatz oder dessen Drucker verwenden. Dies genauso, als
wenn es sich um lokale Drucker oder Festplatten handeln
würde.Samba sollte als Softwarepaket
auf Ihren Installationsmedien vorhanden sein. Wenn Sie
Samba noch nicht installiert haben,
können Sie dies jederzeit über den Port oder das
Paket net/samba3
nachholen.KonfigurationDie Standardkonfigurationsdatei von
Samba heißt
/usr/local/etc/smb.conf.default. Diese
Datei muss nach /usr/local/etc/smb.conf
kopiert und angepasst werden, bevor
Samba verwendet werden kann.Die Datei smb.conf enthält
Laufzeitinformationen für
Samba, beispielsweise
Druckerdefinitionen oder
filesystem shares, also Bereiche
des Dateisystems, die Sie mit &windows;-Clients teilen wollen.
Die Konfiguration der Datei smb.conf
erfolgt webbasiert über das im
Samba-Paket enthaltene Programm
swat.Das Samba Web Administration Tool (SWAT) verwendenDas
Samba Web Administration Tool
(SWAT) wird als Daemon von inetd
aktiviert. Daher müssen Sie den Kommentar vor der
folgenden Zeile in /etc/inetd.conf
entfernen, bevor Sie swat zur
Konfiguration von Samba verwenden
können:swat stream tcp nowait/400 root /usr/local/sbin/swat
- Wie bereits in
- beschrieben, müssen Sie ein HangUP-Signal an
- inetd senden, nachdem Sie diese
- Änderung durchgeführt haben.
+ Wie bereits in
+ beschrieben, müssen Sie die
+ inetd-Konfiguration neu einlesen,
+ nachdem Sie diese Änderung durchgeführt haben.Nachdem swat in der Datei
inetd.conf aktiviert wurde, rufen Sie
in Ihrem Internetbrowser die Adresse
auf und melden sich
mit dem root-Benutzerkonto an.Nachdem Sie sich erfolgreich angemeldet haben, wird die
Hauptkonfigurationseite von Samba
geladen. Sie können nun die Dokumentation lesen, oder
durch einen Klick auf die
Globals-Karteikarte mit der Konfiguration
beginnen. Die Einstellungen, die Sie hier vornehmen
können, entsprechen denen des Abschnitts
[global] von
/usr/local/etc/smb.conf.Globale EinstellungenUnabhängig davon, ob Sie
swat verwenden, oder
/usr/local/etc/smb.conf direkt
editieren, sollten Sie zuerst folgende Einstellungen
anpassen:workgroupDer NT-Domänenname oder der Arbeitsgruppenname der
Rechner, die auf den Server Zugriff haben sollen.netbios nameNetBIOSLegt den NetBIOS-Namen fest, unter dem der
Samba-Server bekannt ist.
In der Regel handelt es sich dabei um den ersten
Teil des DNS-Namens des Servers.server stringLegt die Beschreibung fest, die angezeigt werden
soll, wenn mit net view oder
über andere Netzwerkprogramme Informationen
über den Server angefordert werden.Samba absichernZwei der wichtigsten Einstellungen in
/usr/local/etc/smb.conf betreffen
das zu verwendende Sicherheitsmodell sowie das
Backend-Passwortformat für die Benutzer der
Samba-Clients. Folgende Optionen sind dafür
verantwortlich:securityDie häufigsten Optionen sind
security = share und
security = user. Wenn Ihre Clients
Benutzernamen verwenden, die den Benutzernamen auf Ihrem
&os;-Rechner entsprechen, dann sollten Sie die
Einstellung user level
verwenden. Dies ist auch die Standardeinstellung.
Allerdings ist es dazu erforderlich, dass sich die
Clients auf Ihrem Rechner anmelden, bevor sie auf
gemeinsame Ressourcen zugreifen können.In der Einstellung
share level müssen
sich Clients nicht unter Verwendung eines gültigen
Logins auf Ihrem Rechner anmelden, bevor sie auf
gemeinsame Ressourcen zugreifen können. In
früheren Samba-Versionen
war dies die Standardeinstellung.passdb backendNIS+LDAPSQL databaseSamba erlaubt
verschiedene Backend-Authentifizierungsmodelle. Sie
können Clients durch LDAP, NIS+, eine SQL-Datenbank
oder eine Passwortdatei authentifizieren. In der
Voreinstellung wird smbpasswd
verwendet. Diese Methode wird im folgenden Abschnitt
näher beschrieben.Wenn Sie smbpasswd verwenden, müssen
Sie die Datei /usr/local/private/smbpasswd
erzeugen, damit Samba in der Lage
ist, Clients zu authentifizieren. Wenn Sie allen auf Ihrem
&unix;-Rechner vorhandenen Benutzern den Zugriff von einem
&windows;-Client aus ermöglichen wollen, verwenden Sie den
folgenden Befehl:&prompt.root; grep -v "^#" /etc/passwd | make_smbpasswd > /usr/local/private/smbpasswd
&prompt.root; chmod 600 /usr/local/private/smbpasswdFür ausführliche Informationen zur Konfiguration
von Samba sollten Sie die
mitinstallierte Dokumentation lesen. Sie sollten aber nach dem
Lesen dieses Abschnitts in der Lage sein,
Samba zu starten.Samba startenUm Samba beim Systemstart zu
aktivieren, fügen Sie folgende Zeile in
/etc/rc.conf ein:samba_enable="YES"Danach können Sie Samba
jederzeit durch folgenden Befehl starten:&prompt.root; /usr/local/etc/rc.d/samba.sh start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.Samba verwendet drei Daemonen.
Beachten Sie, dass sowohl nmbd als
auch smbd durch das Skript
samba.sh gestartet werden. Wenn Sie die
winbind name resolution services
in smb.conf aktiviert haben, wird
zusätzlich der winbindd-Daemon
gestartet.Sie können Samba jederzeit
durch den folgenden Befehl beenden:&prompt.root; /usr/local/etc/rc.d/samba.sh stopSamba ist ein komplexes
Softwarepaket mit umfassenden Funktionen, die eine weitreichende
Integration von µsoft.windows;-Netzwerken ermöglichen.
Für eine Beschreibung dieser Zusatzfunktionen sollten Sie
sich auf umsehen.TomHukinsBeigetragen von Die Uhrzeit mit NTP synchronisierenNTPÜberblickDa die interne Uhrzeit eines Computers nie ganz exakt ist,
wurde mit NTP
(Network Time Protocol) eine
Möglichkeit geschaffen, die exakte Uhrzeit zu ermitteln
und festzulegen.Viele Internetdienste sind von einer exakten Uhrzeit
abhängig. Ein Webserver könnte beispielsweise die
Anforderung erhalten, eine Datei zu versenden, wenn sich diese
in einer bestimmten Zeitspanne geändert hat. In einem
lokalen Netzwerk ist es unbedingt notwendig, dass Rechner, die
Dateien von einem gemeinsamen Dateiserver beziehen, ihre
Uhrzeit synchronisieren, damit die Zeitstempel der Dateien
konstistent bleiben. Dienste wie &man.cron.8; führen
Befehle zu einem bestimmten Zeitpunkt aus. Ist die Uhrzeit
nicht korrekt, kann dies zu Problemen führen.NTPntpd&os; verwendet den &man.ntpd.8;-
NTP-Server,
um die genaue Uhrzeit von anderen
NTP-Servern
abzufragen, die eigene Systemzeit zu setzen, oder um diese
anderen Rechnern anzubieten.Einen passenden NTP-Server auswählenNTPServerwahlUm die Uhrzeit zu synchronisieren, müssen Sie sich mit
einem
NTP-Server
verbinden. Ihr Netzwerkadministrator oder Ihr Internetprovider
haben vielleicht schon einen NTP-Server eingerichtet. Lesen Sie
deren Dokumentation, um dies zu überprüfen. Es gibt
im Internet eine
Liste mit frei zugänglichen NTP-Servern, aus der
Sie sich einen in Ihrer Nähe gelegenen Server
auswählen können. Beachten Sie aber auf jeden Fall
die Nutzungsbedingungen des entsprechenden Servers, und fragen
Sie um Erlaubnis, wenn dies nötig ist.Die Auswahl von mehreren NTP-Servern kann sinnvoll sein,
wenn ein Server ausfällt oder falsche Zeiten liefert.
&man.ntpd.8; verwendet die Antworten anderer Server, um
zuverlässige Server zu bestimmen, die dann bevorzugt
abgefragt werden.NTP unter &os; einrichtenNTPKonfigurationNTP aktivierenntpdateWenn Sie Ihre Uhrzeit nur beim Systemstart
synchronisieren wollen, können Sie &man.ntpdate.8;
verwenden. Für Desktoprechner, die regelmäßig
neu gestartet werden und keine ständige Synchronisation
benötigen, ist dies akzeptabel. In allen anderen
Fällen sollten Sie jedoch &man.ntpd.8; verwenden.Die Ausführung von &man.ntpdate.8; während des
Systemstarts ist aber auch für Rechner, die &man.ntpd.8;
verwenden, sinnvoll. &man.ntpd.8; passt die Systemzeit nur
bei größeren Abweichungen an, während
&man.ntpdate.8; die Zeit immer synchronisiert, egal wie
groß die Differenz zwischen Systemzeit und korrekter
Zeit ist.Um &man.ntpdate.8; beim Systemstart zu aktivieren,
fügen Sie den Eintrag
ntpdate_enable="YES" in
/etc/rc.conf ein. Außerdem müssen
Sie alle Server, mit denen Sie sich synchronisieren wollen,
sowie alle an &man.ntpdate.8; zu übergebenden Optionen
in den ntpdate_flags angeben.NTPntp.confNTP einrichtenDie Konfiguration von NTP erfolgt über die Datei
/etc/ntp.conf, und wird in der
Hilfeseite &man.ntp.conf.5; beschrieben. Dazu ein
einfaches Beispiel:server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.driftDie Option server legt die zu
verwendenden Server fest, wobei jeder Server in einer eigenen
Zeile steht. Wenn ein Server mit der Option
prefer versehen ist, wie dies hier bei
ntplocal.example.com der Fall
ist, wird dieser Server bevorzugt verwendet. Eine Antwort von
einem bevorzugten Server wird nur dann verworfen, wenn sie
signifikant von denen anderer Server abweicht, ansonsten wird
sie ohne Abfrage weiterer Server verwendet. Die Option
prefer wird gewöhnlich nur für
sehr zuverlässige und genaue Server verwendet, die
über spezielle Hardware zur Zeitüberwachung
verfügen.Die Option driftfile legt fest, in
welcher Datei die Abweichungen der Systemuhr protokolliert
werden. &man.ntpd.8; verwendet diese Datei, um die Systemzeit
automatisch anzupassen, selbst wenn kurzzeitig kein NTP-Server
zur Synchronisation verfügbar ist.Weiterhin legt die Option driftfile fest,
wo Informationen über frühere Antworten des von
Ihnen verwendeten NTP-Servers gespeichert werden sollen.
Diese Datei enthält NTP-interne Informationen, sie sollte
daher von anderen Prozessen nicht verändert werden.Den Zugang zu Ihrem NTP-Server beschränkenIn der Voreinstellung ist Ihr NTP-Server für alle
Rechner im Internet erreichbar. Über die Option
restrict in der Datei
/etc/ntp.conf können Sie den
Zugang zu Ihrem Server beschränken.Wenn Sie alle Rechner vom Zugriff auf Ihren NTP-Server
ausschließen wollen, fügen Sie folgende Zeile in
/etc/ntp.conf ein:restrict default ignoreWenn Sie nur Rechnern Ihres eigenen Netzwerks die
Synchronisation mit Ihrem NTP-Server erlauben, gleichzeitig
aber verhindern wollen, dass diese den NTP-Server
konfigurieren oder als Server für andere Rechner dienen
können, fügen Sie folgende Zeile ein:restrict 192.168.1.0 mask 255.255.255.0 nomodify notrapBei 192.168.1.0 handelt es
sich um einen Rechner Ihres Netzwerks.
255.255.255.0 ist die
Netzmaske Ihres Netzwerks./etc/ntp.conf kann verschiedene
restrict-Optionen enthalten.
Weiteres erfahren Sie im Abschnitt
Access Control Support der
Hilfeseite &man.ntp.conf.5;.Den NTP-Server startenDamit der NTP-Server beim Systemstart automatisch gestartet
wird, fügen Sie den Eintrag
ntpd_enable="YES" in
/etc/rc.conf ein. Wenn Sie weitere
Argumente an &man.ntpd.8; übergeben wollen, passen Sie
die Option ntpd_flags in der Datei
/etc/rc.conf entsprechend an.Um den NTP-Server ohne einen Systemneustart zu starten,
rufen Sie ntpd mit den unter
ntpd_flags in
/etc/rc.conf festgelegten Parametern auf.
Hierzu ein Beispiel:&prompt.root; ntpd -p /var/run/ntpd.pidUnter &os; 4.X
müssen Sie alle Vorkommen von ntpd
durch xntpd ersetzen.ntpd mit einer Einwahlverbindung verwenden&man.ntpd.8; benötigt keine ständige
Internetverbindung. Wenn Sie sich ins Internet einwählen,
ist es sinnvoll, zu verhindern, dass NTP-Verkehr eine Verbindung
aufbauen oder aufrechterhalten kann. Wenn Sie user-PPP
verwenden, können Sie dies in den
filter-Direktiven von
/etc/ppp/ppp.conf festlegen. Sehen Sie
sich dazu das folgende Beispiel ein:set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0Weitere Informationen finden Sie im Abschnitt
PACKET FILTERING von &man.ppp.8; sowie in den
Beispielen unter /usr/share/examples/ppp/.Einige Internetprovider blockieren Ports mit niedrigen
Nummern. In solchen Fällen funktioniert NTP leider
nicht, da Antworten eines NTP-Servers Ihren Rechner nicht
erreichen werden.Weitere InformationenWeiterführende Dokumentation (im HTML-Format)
zum NTP-Server finden Sie unter
/usr/share/doc/ntp/.
diff --git a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
index 1002f6eea3..6a334e0f2f 100644
--- a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
@@ -1,5465 +1,5472 @@
MatthewDillonViel von diesem Kapitel stammt aus der security(7)
Manualpage von MartinHeinenÜbersetzt von SicherheitSicherheitÜbersichtDieses Kapitel bietet eine Einführung in die Konzepte
der Systemsicherheit. Neben einigen Daumenregeln werden
weiterführende Themen wie S/Key, OpenSSL und Kerberos
diskutiert. Die meisten der hier besprochenen Punkte treffen
sowohl auf die Systemsicherheit sowie die Internetsicherheit zu.
Das Internet hat aufgehört ein friedlicher
Ort zu sein, an dem Sie nur nette Leute finden werden. Es ist
unumgänglich, dass Sie Ihre Daten, Ihr geistiges Eigentum,
Ihre Zeit und vieles mehr vor dem Zugriff von Hackern
schützen.&os; besitzt eine Reihe von Werkzeugen und Mechanismen, um die
Integrität und die Sicherheit Ihrer Systeme und Netzwerke
zu gewährleisten.Nach dem Sie dieses Kapitel durchgearbeitet haben, werden
Sie:Grundlegende auf &os; bezogene Sicherheitsaspekte
kennen.Die verschiedenen Verschlüsselungsmechanismen
von &os;, wie DES oder
MD5, kennen.Wissen, wie Sie ein Einmalpasswörter
zur Authentifizierung verwenden.TCP-Wrapper für
inetd einrichten können.Wissen, wie Sie KerberosIV
vor 5.0-Release einrichten.Wissen, wie Sie Kerberos5
ab 5.0-Release einrichten.Firewalls mit IPFW
erstellen können.Wissen, wie Sie IPsec konfigurieren und ein
VPN zwischen &os;/&windows;
Systemen einrichten,OpenSSH, &os;s
Implementierung von SSH, konfigurieren
und benutzen können.Portaudit anwenden können,
um Softwarepakete Dritter, die Sie über die
Ports-Sammlung installieren, auf bekannte
Sicherheitslücken hin zu überprüfen.Mit &os;-Sicherheitshinweisen umgehen können.Eine Vorstellung davon haben, was Prozessüberwachung
(Process Accounting) ist und wie
Sie diese Funktion unter &os; aktivieren können.Bevor Sie dieses Kapitel lesen, sollten SieGrundlegende Konzepte von &os; und dem Internet
verstehen.Dieses Buch behandelt weitere Sicherheitsthemen.
Beispielsweise werden vorgeschriebene Zugriffskontrollen
in und Firewalls in
besprochen.EinführungSicherheit ist ein Konzept, das beim Systemadministrator anfängt
und aufhört. Obwohl alle BSD &unix; Mehrbenutzersysteme über
Sicherheitsfunktionen verfügen, ist es wohl eine der
größten Aufgaben eines Systemadministrators zusätzliche
Sicherheitsmechanismen zu erstellen und zu pflegen. Maschinen sind
nur so sicher wie sie gemacht werden und Sicherheitsanforderungen
stehen oft der Benutzerfreundlichkeit entgegen. Auf &unix; Systemen
können sehr viele Prozesse gleichzeitig laufen und viele dieser
Prozesse sind Server, das heißt von außen kann auf sie
zugegriffen werden. In einer Zeit, in der die Minicomputer und
Mainframes von gestern die Desktops von heute sind und Rechner
immer mehr vernetzt werden, kommt der Sicherheit eine große
Bedeutung zu.Sicherheit wird am besten in mehreren Schichten implementiert.
Kurz gesagt wollen Sie eine angemessene Anzahl Schichten einrichten,
und dann das System auf Einbrüche hin beobachten. Die
Sicherheitsmaßnahmen sollten nicht überzogen werden,
da sie sonst das Entdecken von Einbrüchen stören und die
Möglichkeit, Einbrüche zu entdecken, ist einer der wichtigsten
Aspekte einer Sicherheitsmaßnahme. Es macht zum Beispiel wenig
Sinn, jedes Programm mit der schg Option (siehe auch
&man.chflags.1;) zu schützen, weil dies verhindert, dass ein
Angreifer eine leicht zu entdeckende Veränderung vornimmt und
vielleicht dazu führt, dass Ihre Sicherheitsvorkehrungen den
Angreifer überhaupt nicht entdecken.Zur Systemsicherheit gehört auch die Beschäftigung mit
verschiedenen Arten von Angriffen, auch solchen, die versuchen,
ein System still zu legen, oder sonst unbrauchbar zu machen ohne
root zu kompromittieren. Sicherheitsaspekte
lassen sich in mehrere Kategorien unterteilen:Denial-of-Service Angriffe.Kompromittierte Accounts.Kompromittierter root-Account durch
zugreifbare Server.Kompromittierter root-Account durch
kompromittierte Accounts.Einrichten von Hintertüren.DoS AngriffeDenial-of-Service (DoS)SicherheitDoS AngriffeDenial-of-Service (DoS)Denial-of-Service (DoS)Ein Denial-of-Service (Verhinderung von Diensten, DoS) Angriff
entzieht einer Maschine Ressourcen, die sie zur Bereitstellung
von Diensten benötigt. Meist versuchen Denial-of-Service Angriffe
die Dienste oder den Netzwerkstack einer Maschine zu überlasten,
um so die Maschine auszuschalten oder nicht nutzbar zu machen. Einige
Angriffe versuchen, Fehler im Netzwerkstack auszunutzen, und die
Maschine mit einem einzigen Paket auszuschalten. Diese Art des
Angriffs kann nur verhindert werden, indem der entsprechende Fehler
im Kernel behoben wird. Oft können Angriffe auf Dienste durch
die Angabe von Optionen verhindert werden, die die Last, die ein
Dienst auf das System unter widrigen Umständen ausüben kann,
begrenzt. Angriffen auf das Netzwerk ist schwerer zu begegnen.
Außer durch Trennen der Internetverbindung ist zum Beispiel
einem Angriff mit gefälschten Paketen nicht zu begegnen.
Diese Art von Angriff wird Ihr System zwar nicht unbrauchbar machen,
kann aber die Internetverbindung sättigen.Sicherheitkompromittierte AccountsKompromittierte Accounts kommen noch häufiger als
DoS Angriffe vor. Viele Systemadministratoren lassen auf ihren
Maschinen noch die Dienste telnetd,
rlogind, rshd
und ftpd laufen. Verbindungen zu diesen
Servern werden nicht verschlüsselt. Wenn Sie eine
größere Benutzerzahl auf Ihrem System haben, die sich von
einem entfernten System anmelden, ist die Folge davon, dass
das Passwort eines oder mehrerer Benutzer ausgespäht wurde.
Ein aufmerksamer Systemadministrator wird die Logs über Anmeldungen
von entfernten Systemen auf verdächtige Quelladressen, auch
für erfolgreiche Anmeldungen, untersuchen.Es ist immer davon auszugehen, dass ein Angreifer, der
Zugriff auf einen Account hat, Zugang zum
root-Account erlangt. Allerdings gibt der
Zugriff auf einen Account auf einem gut gesicherten und
gepflegten System nicht notwendig Zugriff auf den
root-Account. Diese Unterscheidung ist wichtig,
da ein Angreifer, der keinen Zugang zu root
besitzt, seine Spuren nicht verwischen kann. Er kann höchstens
die Dateien des betreffenden Benutzers verändern oder die
Maschine stilllegen. Kompromittierte Accounts sind sehr
häufig, da Benutzer meist nicht dieselben Vorsichtsmaßnahmen
wie Administratoren treffen.SicherheitHintertürenEs gibt viele Wege, Zugang zum root-Account
eines Systems zu bekommen: Ein Angreifer kann das Passwort von
root kennen, er kann einen Fehler in einem
Server entdecken, der unter root läuft und
dann über eine Netzwerkverbindung zu diesem Server einbrechen.
Oder er kennt einen
Fehler in einem SUID-root Programm, der es
ihm erlaubt, root zu werden, wenn er einmal
einen Account kompromittiert hat. Wenn ein Angreifer einen
Weg gefunden hat, root zu werden, braucht er
vielleicht keine Hintertür auf dem System installieren.
Viele der heute
bekannten und geschlossenen Sicherheitslöcher, die zu einem
root Zugriff führen, verlangen vom Angreifer
einen erheblichen Aufwand, um seine Spuren zu verwischen. Aus diesem
Grund wird er sich wahrscheinlich entschließen, eine Hintertür
(engl. Backdoor) zu installieren.
Eine Hintertür erlaubt es
dem Angreifer leicht auf den root-Account
zuzugreifen. Einem klugen Systemadministrator erlaubt sie allerdings
auch, den Einbruch zu entdecken. Wenn Sie es einem Angreifer verwehren,
Hintertüren zu installieren, kann das schädlich für
Ihre Sicherheit sein, da es vielleicht verhindert, dass die
Lücke, die der Angreifer für den Einbruch ausgenutzt hat,
entdeckt wird.Sicherheitsmaßnahmen sollten immer in mehreren Schichten
angelegt werden. Die Schichten können wie folgt eingeteilt
werden:Absichern von root und
Accounts.Absichern von unter root laufenden
Servern und SUID/SGID Programmen.Absichern von Accounts.Absichern der Passwort-Datei.Absichern des Kernels, der Geräte und von
Dateisystemen.Schnelles Aufdecken von unbefugten Veränderungen des
Systems.Paranoia.Die einzelnen Punkte der obigen Liste werden im nächsten
Abschnitt genauer behandelt.Absichern von &os;Sicherheit&os; absichernKommandos und ProtokolleIn diesem Abschnitt werden Anwendungen
fett gekennzeichnet, spezifische
Kommandos werden in einer Fixschrift
dargestellt und Protokolle verwenden die normale Schriftart.
Diese typographische Konvention hilft, Begriffe wie ssh
zu unterscheiden, die sowohl Protokoll als auch Kommando
sein können.Die folgenden Abschnitte behandeln die im
letzten Abschnitt erwähnten
Methoden Ihr &os;-System zu sichern.Absichern von root und
AccountssuZuallererst, kümmern Sie sich nicht um die Absicherung
von Accounts, wenn Sie root
noch nicht abgesichert haben. Auf den meisten Systemen ist
root ein Passwort zugewiesen. Sie
sollten immer davon ausgehen, dass
dieses Passwort kompromittiert ist. Das heißt nicht,
dass Sie das Passwort entfernen sollten, da es meist
für den Konsolenzugriff notwendig ist. Vielmehr heißt
es, dass Sie das Passwort nicht außerhalb der
Konsole, auch nicht zusammen mit &man.su.1;, verwenden sollten.
Stellen Sie sicher, dass Ihre PTYs in ttys als
unsicher markiert sind und damit Anmeldungen von
root mit telnet oder
rlogin verboten sind. Wenn Sie andere
Anwendungen wie SSH zum Anmelden
benutzen, vergewissern Sie sich, dass dort ebenfalls
Anmeldungen als root verboten sind. Für
SSH editieren Sie
/etc/ssh/sshd_config und überprüfen,
dass PermitRootLogin auf NO
gesetzt ist. Beachten Sie jede Zugriffsmethode – Dienste
wie FTP werden oft vergessen. Nur an der Systemkonsole sollte
ein direktes Anmelden als root möglich
sein.wheelNatürlich müssen Sie als Systemadministrator
root-Zugriff erlangen können. Dieser
sollte aber durch zusätzliche Passwörter
geschützt sein. Ein Weg, Zugang zu root
zu ermöglichen, ist es, berechtigte Mitarbeiter in
/etc/group in die Gruppe
wheel aufzunehmen. Die Personen, die
Mitglieder in der Gruppe wheel sind,
können mit su zu root
wechseln. Ihre Mitarbeiter sollten niemals die Gruppe
wheel als primäre Gruppe in
/etc/passwd besitzen. Mitarbeiter sollten
der Gruppe staff angehören und über
/etc/group in wheel
aufgenommen werden. Es sollten auch nur die Mitarbeiter, die
wirklich root Zugriff benötigen in
wheel aufgenommen werden. Mit anderen
Authentifizierungsmethoden müssen Sie niemanden in
wheel aufnehmen. Wenn Sie z.B.
Kerberos benutzen, wechseln Sie mit
&man.ksu.1; zu root und der Zugriff wird
mit der Datei .k5login geregelt. Dies ist
vielleicht eine bessere Lösung, da es der
wheel-Mechanismus einem Angreifer immer
noch möglich macht, den root-Account
zu knacken, nachdem er einen Mitarbeiter-Account geknackt hat.
Obwohl der wheel-Mechanismus besser als
gar nichts ist, ist er nicht unbedingt die sicherste Lösung.Indirekt können Sie die Accounts von Mitarbeitern und
damit auch den Zugriff auf root schützen,
indem Sie eine alternative Zugangsmethode verwenden und die
Accounts der Mitarbeiter mit einem ungültigen verschlüsselten
Passwort versehen. Mit &man.vipw.8; können Sie jedes
verschlüsselte Passwort mit einem
* Zeichen ersetzen. Das Kommando
wird /etc/master.passwd und die
Benutzer/Passwort Datenbank aktualisieren und die Passwort
Authentifizierung abstellen.Ein Account wiefoobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshsollte wie folgt abgeändert werden:foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshDa ein verschlüsseltes Passwort niemals
ein * sein kann, verhindert dies
die normale Anmeldung. Damit müssen sich die Mitarbeiter
mit anderen Mechanismen wie &man.kerberos.1; oder &man.ssh.1;
authentifizieren. Wenn Sie etwas wie
Kerberos benutzen, müssen Sie
die Maschinen, die die Kerberos-Server
beheimaten und die Maschinen der Benutzer absichern. Wenn Sie
öffentliche/private Schlüssel mit
SSH benutzen, muss die Maschine
von der die Anmeldung gestartet wird, gesichert
werden. Als zusätzliche Sicherheitsschicht können Sie
das Schlüsselpaar beim Erstellen mit &man.ssh-keygen.1; durch
ein Passwort schützen. Dadurch, dass Sie die
Passwörter Ihrer Mitarbeiter als ungültig markiert
haben, stellen Sie sicher, dass sich die Mitarbeiter nur mit
den sicheren Methoden, die Sie aufgesetzt haben, anmelden können.
Dies zwingt alle Mitarbeiter, verschlüsselte Verbindungen
für ihre Sitzungen zu verwenden, und schließt ein
wichtiges Loch, dass gerne von Angreifern ausgenutzt wird:
Das Abhören des Netzwerks von einer anderen weniger gesicherten
Maschine.Die indirekten Sicherheitsmechanismen setzen voraus, dass
Sie sich von einer restriktiven Maschine auf einer weniger restriktiven
Maschine anmelden. Wenn zum Beispiel auf Ihrem Hauptrechner alle
möglichen Arten von Servern laufen, so sollten auf Ihrer
Workstation keine Server laufen. Um Ihre Workstation vernünftig
abzusichern, sollten auf Ihr so wenig Server wie möglich bis hin
zu keinem Server laufen. Sie sollten zudem über einen
Bildschirmschoner verfügen, der mit einem Passwort
gesichert ist. Natürlich kann ein Angreifer, der physikalischen
Zugang zu einer Maschine hat, jede Art von Sicherheitsmechanismen
umgehen. Dieses Problem sollten Sie daher auch in Ihren
Überlegungen berücksichtigen. Beachten Sie dabei aber,
dass der Großteil der Einbrüche über das
Netzwerk erfolgt und die Einbrecher keinen Zugang zu der Maschine
besitzen.KerberosIVMit Kerberos können Sie das
Passwort eines Mitarbeiters an einer Stelle ändern
und alle Maschinen, auf denen der Mitarbeiter einen Account hat,
beachten die Änderung sofort. Wird der Account eines
Mitarbeiters einmal kompromittiert, so sollte die Fähigkeit, das
Passwort mit einem Schlag auf allen Maschinen zu ändern,
nicht unterschätzt werden. Mit einzelnen Passwörtern
wird es schwierig, das Passwort auf N Maschinen zu ändern.
Mit Kerberos können Sie auch
Beschränkungen für Passwörter festlegen:
Nicht nur das Ticket kann nach einiger Zeit ungültig werden,
Sie können auch festlegen, dass ein Benutzer nach einer
bestimmten Zeit, z.B. nach einem Monat, das Passwort wechseln
muss.Absichern von unter root laufenden
Servern und SUID/SGID ProgrammenntalkcomsatfingerSandkästensshdtelnetdrshdrlogindEin kluger Systemadministrator lässt nur die
Dienste, die er wirklich braucht, laufen; nicht mehr und auch
nicht weniger. Beachten Sie, dass Server von Dritten die
fehleranfälligsten sind. Wenn Sie z.B. eine alte Version von
imapd oder popper
laufen lassen, ist das so, als würden Sie der ganzen Welt
freien Zugang zu root geben. Lassen Sie keine
Server laufen, die Sie vorher nicht genau überprüft haben.
Viele Server müssen nicht unter root
laufen, zum Beispiel können ntalk,
comsat und finger
in speziellen Sandkästen unter
einem Benutzer laufen. Ein Sandkasten ist keine perfekte Lösung,
wenn Sie nicht eine Menge Arbeit in die Konfiguration investieren,
doch bewährt sich hier das Prinzip, die Sicherheit in Schichten
aufzubauen. Wenn es einem Angreifer gelingt, in einen Server,
der in einem Sandkasten läuft, einzubrechen, dann muss
er immer noch aus dem Sandkasten selber ausbrechen. Je mehr Schichten
der Angreifer zu durchbrechen hat, desto kleiner sind seine Aussichten
auf Erfolg. In der Vergangenheit wurden praktisch in jedem
Server, der unter root läuft, Lücken
gefunden, die zu einem root Zugriff führten.
Dies betrifft selbst die grundlegenden Systemdienste. Wenn Sie eine
Maschine betreiben, auf der man sich nur mit
SSH anmelden kann, dann stellen Sie die
Dienste telnetd,
rshd oder rlogind
ab!In der Voreinstellung laufen unter &os;
ntalkd, comsat
und finger nun in einem Sandkasten. Ein
weiteres Programm, das in einem Sandkasten laufen sollte, ist
&man.named.8;. In /etc/defaults/rc.conf sind
die notwendigen Argumente, um named in
einem Sandkasten laufen zu lassen, in kommentierter Form schon
enthalten. Abhängig davon, ob Sie ein neues System installieren
oder ein altes System aktualisieren, sind die hierfür
benötigten Benutzer noch nicht installiert.
Ein kluger Systemadministrator sollte immer nach Möglichkeiten
suchen, Server in einem Sandkasten laufen zu lassen.sendmailEinige Server wie sendmail,
popper, imapd
und ftpd werden normalerweise nicht in
Sandkästen betrieben. Zu einigen Servern gibt es Alternativen,
aber diese wollen Sie vielleicht wegen der zusätzlich nötigen
Arbeit nicht installieren (ein weiteres Beispiel für den
Widerspruch zwischen Sicherheit und Benutzerfreundlichkeit).
In diesem Fall müssen Sie die
Server unter root laufen lassen und auf die
eingebauten Mechanismen vertrauen, Einbrüche zu entdecken.Weitere potentielle Löcher, die zu einem
root-Zugriff führen können, sind
die auf dem System installierten SUID- und SGID-Programme. Die
meisten dieser Programme wie rlogin stehen
in /bin, /sbin,
/usr/bin, oder /usr/sbin.
Obwohl nichts 100% sicher ist, können Sie davon ausgehen,
dass die SUID- und SGID-Programme des Basissystems ausreichend
sicher sind. Allerdings werden ab und an in diesen Programmen
Löcher gefunden. 1998 wurde in Xlib ein
Loch gefunden, das xterm, der
normal mit SUID installiert wird, verwundbar machte. Es ist besser
auf der sicheren Seite zu sein, als sich später zu beklagen,
darum wird ein kluger Systemadministrator den Zugriff auf
SUID-Programme mit einer Gruppe, auf die nur Mitarbeiter zugreifen
können, beschränken. SUID-Programme, die niemand benutzt,
sollten mit chmod 000 deaktiviert werden. Zum
Beispiel braucht ein Server ohne Bildschirm kein
xterm Programm. SGID-Programme sind
vergleichbar gefährlich. Wenn ein Einbrecher Zugriff auf
SGID-kmem Programm erhält, kann er
vielleicht /dev/kmem und damit die
verschlüsselte Passwortdatei lesen. Dies kompromittiert
unter Umständen jeden Account, der mit einem Passwort
geschützt ist. Alternativ kann ein Einbrecher, der in die
Gruppe kmem eingebrochen ist, die
Tastendrücke auf PTYs verfolgen. Dies schließt
auch PTYs mit ein, auf denen sich ein Benutzer mit sicheren
Methoden anmeldet. Ein Einbrecher, der Zugriff auf die
tty Gruppe hat, kann auf fast jeden Terminal
anderer Benutzer schreiben. Wenn der Benutzer einen Terminal-Emulator
benutzt, der über eine Tastatur-Simulation verfügt,
könnte der Angreifer Daten generieren, die den Terminal
veranlassen, ein Kommando unter diesem Benutzer laufen zu lassen.Absichern von AccountsAccounts sind für gewöhnlich sehr schwierig
abzusichern. Während Sie drakonische Beschränkungen
für Ihre Mitarbeiter einrichten und deren Passwörter
als ungültig markieren können, werden Sie das
vielleicht bei den normalen Accounts nicht durchsetzen.
Wenn Sie über ausreichend Macht verfügen, gelingt es Ihnen
vielleicht doch, ansonsten müssen Sie diese Accounts
aufmerksam überwachen. Wegen der zusätzlichen
Administrationsarbeit und der nötigen technischen
Unterstützung ist die Verwendung von
SSH und Kerberos
mit normalen Accounts erschwert, obwohl das natürlich
sicherer als die Verwendung von verschlüsselten
Passwörtern ist.Absichern der Passwort-DateiDer einzig sichere Weg ist, so viele Accounts wie möglich als
ungültig zu markieren und SSH oder
Kerberos zu benutzen, um auf sie
zuzugreifen. Obwohl die Datei /etc/spwd.db,
die die verschlüsselten Passwörter enthält,
nur von root gelesen werden kann, mag ein
Angreifer lesenden Zugriff auf diese Datei erlangen, ohne die
Fähigkeit sie auch zu beschreiben.Ihre Überwachungsskripten sollten Änderungen
an der Passwort-Datei melden (siehe Überprüfen der
Integrität von Dateien weiter unten).Absichern des Kernels, der Geräte und von
DateisystemenWenn ein Angreifer root-Zugriff erlangt,
kann er so ziemlich alles mit Ihrem System anstellen, doch sollten Sie
es ihm nicht zu leicht machen. Die meisten modernen Kernel haben
zum Beispiel einen Gerätetreiber, der es erlaubt, Pakete
abzuhören. Unter &os; wird das Gerät
bpf genannt. Für gewöhnlich
wird ein Angreifer versuchen, dieses Gerät zu nutzen, um
Pakete abzuhören. Sie sollten ihm diese Gelegenheit nicht
geben und auf den meisten Systemen ist das Gerät
bpf nicht nötig.sysctlAuch wenn Sie bpf nicht verwenden,
müssen Sie sich immer noch um /dev/mem
und /dev/kmem sorgen. Außerdem
kann der Angreifer immer noch auf die rohen Geräte
(raw devices)
schreiben. Weiterhin gibt es ein Programm zum Nachladen von
Modulen in den Kernel: &man.kldload.8;. Ein unternehmungslustiger
Angreifer kann dies benutzen, um sein eigenes
bpf oder ein anderes zum Abhören
geeignetes Gerät in den laufenden Kernel einzubringen. Um diese
Probleme zu vermeiden, müssen Sie den Kernel auf einer
höheren Sicherheitsstufe, mindestens 1,
laufen lassen. Die Sicherheitsstufe wird durch die Variable
kern.securelevel, die mit sysctl
gesetzt werden kann, angegeben. Nachdem Sie die Sicherheitsstufe
auf 1 gesetzt haben, sind schreibende Zugriffe
auf rohe Geräte verboten und die speziellen
chflags Optionen, wie schg
werden erzwungen. Sie müssen sicherstellen, dass die
schg Option auf allen kritischen Programmen,
Verzeichnissen und Skripten, die bis zum Setzen der Option laufen,
aktiviert ist. Das mag übertrieben sein da eine Migration
des Systems erschwert wird, wenn Sie auf einer höheren
Sicherheitsstufe arbeiten. Sie können einen Kompromiss
erreichen, indem Sie das System auf einer erhöhten
Sicherheitsstufe laufen lassen, aber die schg
Option nicht für jede Datei und jedes Verzeichnis auf der Welt
setzen. Eine andere Möglichkeit besteht darin,
/ und /usr einfach
schreibgeschützt einzuhängen. Bedenken Sie, dass
Sie das Aufdecken eines Einbruchs vielleicht verhindern, wenn
Sie zu drastische Maßnahmen zum Schutz Ihres Systems
verwenden.Überprüfen der Integrität von DateienSie können die Systemkonfiguration und die Dateien
nur so weit schützen, wie es die Benutzbarkeit des
Systems nicht einschränkt. Wenn Sie zum Beispiel
mit chflags die Option schg
auf die meisten Dateien in / und
/usr setzen, kann das Ihre Arbeit mehr behindern
als nützen. Die Maßnahme schützt zwar die
Dateien, schließt aber auch eine Möglichkeit,
Veränderungen zu entdecken, aus. Die letzte Schicht des
Sicherheitsmodells – das Aufdecken von Einbrüchen –
ist sicherlich die wichtigste. Alle Sicherheitsmaßnahmen sind
nichts wert, oder wiegen Sie in falscher Sicherheit, wenn Sie
nicht in der Lage sind, einen möglichen Einbruch zu entdecken.
Die Hälfte der Sicherheitsmaßnahmen hat die Aufgabe,
einen Einbruch zu verlangsamen, um es zu ermöglichen, den
Einbrecher auf frischer Tat zu ertappen.Der beste Weg, einen Einbruch zu entdecken, ist es, nach
veränderten, fehlenden oder unerwarteten Dateien zu suchen.
Der wiederum beste Weg, nach veränderten Dateien zu suchen, ist
es, die Suche von einem anderen (oft zentralen) besonders
geschützten System durchzuführen. Es ist wichtig, dass
Ihre Sicherheitsüberprüfungen vor einem Angreifer
verborgen bleiben und daher sind sie auf einem besonders
geschützten System gut aufgehoben. Um dies optimal auszunutzen,
müssen Sie dem besonders geschützten System Zugriffsrechte
auf die zu schützenden Systeme geben. Sie können die
Dateisysteme der zu schützenden Systeme schreibgeschützt
für das besonders geschützte System exportieren, oder
Sie können der besonders geschützten Maschine
SSH auf die anderen Maschinen erlauben,
indem Sie SSH Schlüsselpaare
installieren. Mit Ausnahme des verursachten Netzwerkverkehrs
ist die NFS-Methode die am wenigsten sichtbare. Sie erlaubt es Ihnen,
nahezu unentdeckt die Dateisysteme der Clients zu beobachten. Wenn
Ihr besonders geschütztes System mit den Clients über
einen Switch verbunden ist, ist die NFS-Methode oft das Mittel der
Wahl. Wenn das besonders geschützte System allerdings
mit einem Hub verbunden ist, oder der Zugriff über mehrere
Router geschieht, ist die NFS-Methode aus der Netzwerksicht zu
unsicher. In einem solchen Fall ist SSH
besser geeignet, auch wenn es deutliche Spuren
hinterlässt.Wenn das besonders geschützte System lesenden Zugriff
auf die Clients hat, müssen Sie Skripten schreiben, die die
Überwachung durchführen. Wenn Sie die NFS-Methode
verwenden, können Sie dazu einfache Systemwerkzeuge wie
&man.find.1; und &man.md5.1; benutzen. Am besten berechnen
Sie einmal am Tag MD5-Prüfsummen der Dateien, Konfigurationsdateien
in /etc und /usr/local/etc
sollten öfter überprüft werden. Wenn Unstimmigkeiten
zwischen den auf der besonders geschützten Maschine gehaltenen
MD5-Prüfsummen und den ermittelten Prüfsummen festgestellt
werden, sollte Ihr System einen Systemadministrator benachrichtigen,
der den Unstimmigkeiten dann nachgehen sollte. Ein gutes Skript
überprüft das System auch auf verdächtige
SUID-Programme sowie gelöschte oder neue Dateien in
/ und /usr.Wenn Sie SSH anstelle von NFS
benutzen, wird das Erstellen der Skripten schwieriger. Sie müssen
die Skripten und die Programme wie find mit
scp auf den Client kopieren. Damit machen
Sie die Überprüfung für einen Angreifer sichtbar.
Außerdem kann der SSH-Client auf dem
Zielsystem schon kompromittiert sein. Zusammenfassend, kann der
Einsatz von SSH nötig sein,
wenn Sie über ungesicherte Verbindungen arbeiten, aber
der Umgang mit dieser Methode ist auch sehr viel schwieriger.Ein gutes Sicherheitsskript wird auch Dateien von Benutzern,
die den Zugriff auf ein System ermöglichen, wie
.rhosts, .shosts,
.ssh/authorized_keys usw., auf
Veränderungen untersuchen, die über die Möglichkeiten
einer Überprüfung mit MD5,
die ja nur Veränderungen feststellen kann, hinausgehen.Wenn Sie über große Partitionen verfügen, kann
es zu lange dauern, jede Datei zu überprüfen. In diesem
Fall sollten Sie beim Einhängen des Dateisystems Optionen
setzen, die das Ausführen von SUID-Programmen und den
Zugriff auf Geräte verbieten. &man.mount.8; stellt dazu
die Optionen und
zur Verfügung. Sie sollten diese Dateien aber trotzdem
mindestens einmal die Woche überprüfen, da das Ziel
dieser Schicht das Aufdecken eines Einbruchs, auch wenn er nicht
erfolgreich war, ist.Die Prozessüberwachung (siehe &man.accton.8;)
des Betriebssystems steht ein günstiges Werkzeug zur
Verfügung, dass sich bei der Analyse eines Einbruchs
als nützlich erweisen kann. Insbesondere können Sie
damit herausfinden, wie der Einbrecher in das System eingedrungen ist,
vorausgesetzt die Dateien der Prozessüberwachung sind
noch alle intakt.Schließlich sollten die Sicherheitsskripten die Logdateien
analysieren. Dies sollte so sicher wie möglich durchgeführt
werden, nützlich ist das Schreiben von Logdateien auf
entfernte Systeme mit syslog. Ein Einbrecher
wird versuchen, seine Spuren zu verwischen. Die Logdateien
sind wichtig für den Systemadministrator, da er aus ihnen
den Zeitpunkt und die Art des Einbruchs bestimmen kann. Eine
Möglichkeit, die Logdateien unverändert aufzuheben,
ist es, die Systemkonsole auf einen seriellen Port zu legen
und die Informationen dort von einer gesicherten Maschine
auszulesen.ParanoiaEs schadet nicht, ein bisschen paranoid zu sein.
Grundsätzlich darf ein Systemadministrator jede
Sicherheitsmaßnahme treffen, die die Bedienbarkeit des
Systems nicht einschränkt. Er kann auch Maßnahmen
treffen, die die Bedienbarkeit einschränken,
wenn er diese vorher genau durchdacht hat. Was noch wichtiger
ist: Halten Sie sich nicht sklavisch an dieses Dokument, sondern
führen Sie eigene Maßnahmen ein, um nicht einem
künftigen Angreifer, der auch Zugriff auf dieses Dokument
hat, alle Ihre Methoden zu verraten.Denial-of-Service AngriffeDenial-of-Service (DoS)Dieser Abschnitt behandelt Denial-of-Service Angriffe (DoS).
Ein DoS-Angriff findet typischerweise auf der Paketebene statt.
Während Sie nicht viel gegen moderne Angriffe mit falschen
Paketen, die das Netzwerk sättigen, ausrichten können,
können Sie allerdings den Schaden in der Hinsicht begrenzen,
dass Ihre Server von einem solchen Angriff nicht gestoppt
werden.Begrenzen von fork() Aufrufen.Begrenzen von Sprungbrett-Angriffen (ICMP response Angriffen,
ping zu Broadcast-Adressen usw.).Kernel-Cache für Routen.Ein häufiger DoS-Angriff gegen forkende Server versucht
den Server dazu zu bringen, möglichst viele Prozesse, viele
Dateideskriptoren und viel Speicher zu verbrauchen, bis hin zu
dem Punkt, an dem die Maschine ausfällt. &man.inetd.8;
besitzt einige Optionen, um diese Art von Angriffen zu begrenzen.
Beachten Sie bitte, dass es möglich ist, einen
Ausfall einer Maschine zu verhindern, doch ist es generell nicht
möglich, den Ausfall eines Dienstes bei dieser Art
von Angriffen zu verhindern. Lesen Sie sich bitte die Manualpages
von inetd gut durch und achten Sie speziell
auf die Optionen , und
. Angriffe mit gefälschten IP-Adressen
umgehen , so dass normalerweise eine
Kombination der Optionen benutzt werden muss. Manche Server,
die nicht von inetd gestartet werden,
besitzen Optionen, um den Start über fork()
einzuschränken.Sendmail besitzt die Option
, die besser als die
eingebauten Optionen zur Begrenzung der Systemauslastung funktioniert.
Sie sollten beim Start von sendmailMaxDaemonChildren so hoch setzen, dass Sie
die erwartete Auslastung gut abfangen können. Allerdings
sollten Sie den Wert nicht so hoch setzen, dass der
Rechner über seine eigenen Füße fällt.
Es ist auch klug, sendmail im
Queue-Modus () laufen zu
lassen. Der Dæmon (sendmail -bd) sollte
getrennt von den Queue-Läufen (sendmail -q15m)
laufen. Wenn Sie trotzdem eine sofortige Auslieferung der Post
wünschen, können Sie die Queue in einem geringeren
Intervall, etwa , abarbeiten. Geben Sie
für diesessendmail aber einen vernünftigen
Wert für MaxDaemonChildren an, um
Fehler zu verhindern.Syslogd kann direkt angegriffen
werden. Daher empfehlen wir Ihnen unbedingt die Option
zu benutzen. Sollte das nicht möglich
sein, benutzen Sie bitte .Vorsicht ist auch mit Diensten geboten, die automatisch
eine Rückverbindung eröffnen, wie der
reverse-identd der TCP-Wrapper.
Diese Funktion der TCP-Wrapper
sollten Sie normalerweise nicht benutzen.Es empfiehlt sich sehr, interne Dienste vor externen Zugriffen
durch eine Firewall an der Grenze Ihres Netzwerks zu schützen.
Dahinter steckt mehr die Idee, das Netzwerk vor Überlastung
durch Angriffe von außen zu schützen, als interne
Dienste vor einem root-Zugriff aus dem Netz
zu schützen. Konfigurieren Sie immer eine Firewall, die
alle Zugriffe blockiert, das heißt blockieren Sie
alles außer den Ports A, B, C, D
und M-Z. Damit können Sie Zugriffe auf alle niedrigen
Ports blockieren und Zugriffe auf spezielle Dienste wie
named, wenn Sie den primären
Namensdienst für eine Zone anbieten,
ntalkd oder
sendmail erlauben. Wenn Sie die
Firewall so konfigurieren, das sie in der Voreinstellung alle
Zugriffe erlaubt, ist es sehr wahrscheinlich, dass Sie
vergessen, eine Reihe von Diensten zu blockieren bzw. einen
internen Dienst einführen und dann vergessen die Firewall
zu aktualisieren. Sie können immer die höheren
Portnummern öffnen, ohne die niedrigen Portnummern,
die nur von root benutzt werden dürfen,
zu kompromittieren. Beachten Sie bitte auch, dass es
&os; erlaubt, die Portnummern, die für dynamische
Verbindungen zur Verfügung stehen, zu konfigurieren.
Mit sysctl lassen sich verschiedene
Bereiche der net.inet.ip.portrange Variablen
setzen (eine Liste erhalten Sie mit sysctl -a | fgrep
portrange).
So können Sie zum Beispiel die Portnummern 4000 bis 5000
für den normalen Bereich und die Nummern 49152 bis 65535
für den hohen Bereich vorsehen. Dies erleichtert Ihnen
die Konfiguration der Firewall, da Sie nun Zugriffe auf Ports
unterhalb von 4000, mit Ausnahme der Dienste, die von außen
erreichbar sein sollen, blockieren können.Eine andere Form eines DoS-Angriffs nutzt einen Server
als Sprungbrett, der Server wird dabei so angegriffen, dass
seine Antworten ihn selber, das lokale Netzwerk oder einen
anderen Server überlasten. Der am häufigsten verwendete
Angriff dieser Art ist der ICMP ping broadcast
Angriff. Der Angreifer fälscht dazu
ping-Pakete, die zu der Broadcast-Adresse
Ihres LANs gesendet werden, indem er darin als Quelladresse
die Adresse des Opfers einsetzt. Wenn die Router an der Grenze
Ihres Netzwerks ping-Pakete auf
Broadcast-Adressen nicht abwehren, wird Ihr LAN genügend
Netzwerkverkehr generieren, um das Ziel des Angriffs zu
überlasten. Dies kann besonders effektiv sein, wenn der
Angreifer diese Methode mit mehreren Dutzend Broadcast-Adressen
über mehrere Netzwerke einsetzt. Es wurden schon
Broadcast-Angriffe mit über 120 Megabit pro Sekunde
gemessen. Ein zweiter Sprungbrett-Angriff wird gegen
das Fehlerbehandlungssystem von ICMP eingesetzt. Indem ein Angreifer
Pakete konstruiert, die eine ICMP-Fehlermeldung hervorrufen, kann
er das einkommende Netzwerk des Servers sättigen und diesen
wiederum veranlassen sein ausgehendes Netzwerk mit ICMP-Antworten
zu sättigen. Diese Art des Angriffs kann alle mbuf-Strukturen
auf dem Server aufbrauchen und damit den Server stilllegen,
insbesondere wenn der Server nicht in der Lage ist, die generierten
ICMP-Antworten schnell genug abzuführen. &os;-4.X-Kernel
kennen die Option , die die
Auswirkungen von solchen Angriffen begrenzen kann. Neuere Kernel
verwenden hingegen die sysctl-Variable
net.inet.icmp.icmplim. Die letzte
weit verbreitete Form von Sprungbrett-Angriffen verwendet
interne inetd-Dienste wie den
UDP echo-Dienst. Der Angreifer fälscht
dazu einfach ein UDP-Paket, indem er als Quellport den
echo-Port von Server A
und als Zielport den echo-Port von
Server B angibt, wobei beide
Server in Ihrem LAN stehen. Die beiden Server werden nun
dieses Paket zwischen sich hin und her schicken. Der Angreifer
kann die beiden Server und das LAN einfach damit überlasten,
dass er mehrere Pakete dieser Art generiert. Ähnliche
Probleme gibt es mit dem internen
chargen-Port, daher sollten Sie
die internen inetd-Testdienste
abstellen.Gefälschte IP-Pakete können dazu benutzt werden,
den Kernel-Cache für Routen zu überlasten. Schauen Sie
sich bitte die sysctl-Parameter
net.inet.ip.rtexpire, rtminexpire
und rtmaxcache an. Ein Angriff der gefälschte
Pakete mit zufälligen Quelladressen einsetzt, bewirkt, dass
der Kernel eine Route im Route-Cache anlegt, die Sie sich mit
netstat -rna | fgrep W3 ansehen können.
Diese Routen verfallen für gewöhnlich nach 1600 Sekunden.
Wenn der Kernel feststellt, dass die Routingtabelle im Cache
zu groß geworden ist, wird er dynamisch den Wert von
rtexpire verringern. Dieser Wert wird aber nie
kleiner werden als rtminexpire. Daraus
ergeben sich zwei Probleme:Der Kernel reagiert nicht schnell genug, wenn ein
Server mit einer niedrigen Grundlast plötzlich angegriffen
wird.rtminexpire ist nicht klein genug,
um einen anhaltenden Angriff zu überstehen.Wenn Ihre Server über eine T3 oder eine noch schnellere
Leitung mit dem Internet verbunden sind, ist es klug, mit
&man.sysctl.8; die Werte für rtexpire und
rtminexpire händisch zu setzen. Setzen
Sie bitte keinen der Werte auf Null, außer Sie wollen die
Maschine zum Erliegen bringen. Ein Wert von 2 Sekunden für
beide Parameter sollte ausreichen, um die Routingtabelle vor
einem Angriff zu schützen.Anmerkungen zum Zugriff mit Kerberos und SSHsshKerberosIVEs gibt ein paar Punkte, die Sie beachten sollten, wenn Sie
Kerberos oder SSH
einsetzen wollen. Kerberos V ist ein
ausgezeichnetes Authentifizierungsprotokoll. Leider gibt es
Fehler, in den für Kerberos
angepassten Versionen von telnet und
rlogin, die sie ungeeignet für den
Umgang mit binären Datenströmen machen. Weiterhin
verschlüsselt Kerberos Ihre Sitzung
nicht, wenn Sie nicht die Option verwenden,
mit SSH wird dagegen alles
verschlüsselt.Ein Problem mit SSH sind Weiterleitungen von Verbindungen.
Wenn Sie von einer sicheren Maschine, auf der sich Ihre
Schlüssel befinden, eine Verbindung zu einer
ungesicherten Maschine aufmachen, wird für die Dauer der
Sitzung ein Port für Weiterleitungen geöffnet.
Ein Angreifer, der auf der unsicheren Maschine Zugang zu
root hat, kann diesen Port
benutzen, um Zugriff auf andere Maschinen zu
erlangen, die mit Ihren Schlüsseln zugänglich
sind.Wir empfehlen Ihnen, für die Logins Ihrer Mitarbeiter immer
SSH zusammen mit
Kerberos einzusetzen. Damit reduzieren
Sie die Abhängigkeit von potentiell gefährdeten
Schlüsseln und schützen gleichzeitig die Passwörter
mit Kerberos.
SSH-Schlüsselpaare sollten nur
für automatisierte Aufgaben von einem besonders gesicherten
Server eingesetzt werden (Kerberos
kann für diese Art von Aufgaben nicht eingesetzt werden).
Weiterhin empfehlen wir Ihnen, das Weiterreichen von Schlüsseln
in der SSH-Konfiguration abzustellen bzw.
die from=IP/DOMAIN Option in
authorized_keys zu verwenden, die den
Schlüssel nur von bestimmten Maschinen aus nutzbar macht.BillSwingleTeile umgeschrieben und aktualisiert von DES, MD5, und crypt()Sicherheitcrypt()crypt()DESMD5Jedem Benutzer eines &unix; Systems ist ein Passwort zugeordnet.
Es scheint offensichtlich, dass das Passwort nur dem Benutzer
und dem System bekannt sein muss. Um die Passwörter
geheim zu halten, werden sie mit einer nicht umkehrbaren Hash-Funktion
verschlüsselt, das heißt sie können leicht
verschlüsselt aber nicht entschlüsselt werden. Was wir
gerade als offensichtlich dargestellt haben, ist also nicht wahr: Das
Betriebssystem kennt das Passwort wirklich
nicht, es kennt nur das verschlüsselte
Passwort. Die einzige Möglichkeit, das originale Passwort
herauszufinden, besteht darin, alle möglichen Passwörter
auszuprobieren (brute force Suche).Zu der Zeit als &unix; entstanden ist, war die einzig sichere
Möglichkeit Passwörter zu verschlüsseln, leider
DES (Data Encryption Standard). Für die Einwohner der USA
stellte das kein Problem dar, aber da der Quellcode von DES nicht aus
den USA exportiert werden durfte, musste ein Weg gefunden werden,
der die Gesetze der USA nicht verletzte und gleichzeitig die
Kompatibilität mit anderen &unix; Systemen, die immer noch DES
benutzten, wahrte.Die Lösung bestand darin, die Verschlüsselungsbibliotheken
aufzuspalten. Benutzer in den USA konnten die DES-Bibliotheken
installieren und nutzen. In der Grundeinstellung benutzt &os;
MD5 als Verschlüsselungsmethode, das exportiert werden durfte
und damit von jedem genutzt werden konnte. Es wird davon ausgegangen,
dass MD5 sicherer als DES ist, so dass DES nur aus
Kompatibilitätsgründen installiert werden sollte.Erkennen der VerschlüsselungsmethodeVor &os; 4.4 war libcrypt.a ein
symbolischer Link, der auf die Library zeigte, die die
Verschlüsselungsroutinen enthielt. Seit &os; 4.4 enthält
libcrypt.a verschiedene Hash-Funktionen, deren
Anwendung sich konfigurieren lässt. Momentan werden
DES-, MD5- und Blowfish-Hash Funktionen unterstützt. In der
Voreinstellung benutzt &os; die MD5-Hash Funktion.Sie können leicht herausfinden, welche
Verschlüsselungsmethode von &os; verwendet wird. Ein Weg
besteht darin, die verschlüsselten Passwörter in
/etc/master.passwd zu untersuchen.
Passwörter, die mit MD5 verschlüsselt wurden,
sind länger als die mit DES verschlüsselten und
beginnen mit den Zeichen $1$.
Passwörter, die mit $2a$
anfangen, wurden mit der Blowfish-Funktion verschlüsselt.
DES Passwörter besitzen keine offensichtlichen Merkmale,
an denen sie identifiziert werden könnten. Sie sind aber
kürzer als MD5-Passwörter und sind in einem
64 Zeichen umfassenden Alphabet kodiert, das das
$-Zeichen nicht enthält. Ein relativ
kurzes Passwort, das nicht mit einem
$-Zeichen anfängt, ist wahrscheinlich
ein DES-Passwort.Die Verschlüsselungsmethode für neue
Passwörter wird durch passwd_format in
/etc/login.conf bestimmt. Der Wert dieser
Variablen kann entweder des, md5
oder blf sein. Näheres schlagen Sie bitte
in &man.login.conf.5; nach.EinmalpasswörterEinmalpasswörterSicherheitEinmalpasswörterS/Key ist ein Einmalpasswort System, das auf einer nicht
umkehrbaren Hash-Funktion beruht. Aus Kompatibilitätsgründen
benutzt &os; MD4-Hashes, andere Systeme benutzen MD5 und DES-MAC.
S/Key ist seit Version 1.1.5 Teil des &os;-Basissystems und wird
auf einer wachsenden Anzahl anderer Systeme benutzt. S/Key
ist eine geschützte Warenmarke von
Bell Communications Research, Inc.Ab &os; 5.0 wurde S/Key durch OPIE
(One-time Passwords In Everything), das die gleichen Funktionen
bietet, abgelöst. OPIE benutzt MD5 Hash-Funktionen.Im Folgenden werden drei verschiedene
Passwörter verwendet. Das Erste ist Ihr normales System- oder
Kerberos-Passwort und wird im Folgenden System-Passwort
genannt. Das Zweite ist das Einmalpasswort, das bei S/Key
von key oder bei OPIE von
opiekey generiert wird. Dieses Passwort wird von
den Programmen keyinit oder
opiepasswd und dem Login-Programm akzeptiert. Im
Folgenden wird es Einmalpasswort genannt. Das Dritte
Passwort ist das geheime Passwort, das Sie mit den Programmen
key/opiekey (manchmal auch mit
keyinit/opiepasswd) zum Erstellen
der Einmalpasswörter verwenden. Dieses Passwort
werden wir im Folgenden geheimes Passwort
oder schlicht Passwort nennen.Das geheime Passwort steht in keiner Beziehung zu Ihrem
System-Passwort, beide können gleich sein, obwohl das nicht
empfohlen wird. Die geheimen Passwörter von S/Key oder
OPIE sind nicht auf eine Länge von 8 Zeichen,
wie alte &unix; PasswörterUnter &os; darf das System-Passwort maximal
128 Zeichen lang sein., beschränkt.
Sie können so lang sein, wie Sie wollen. Gebräuchlich sind
Passwörter, die sich aus sechs bis sieben Wörtern
zusammensetzen. Das S/Key oder OPIE System arbeitet
größtenteils unabhängig von den
auf &unix; Systemen verwendeten Passwort-Mechanismen.Neben dem Passwort gibt es noch zwei Werte, die für
S/Key und OPIE wichtig sind. Der erste ist der
Initialwert (engl. seed
oder key), der aus zwei Buchstaben
und fünf Ziffern besteht. Der zweite Wert ist der
Iterationszähler, eine Zahl zwischen
1 und 100. S/Key generiert das Einmalpasswort, indem
es den Initialwert und das geheime Passwort aneinander hängt
und dann die MD4/MD5 Hash-Funktion so oft, wie durch den
Iterationszähler gegeben, anwendet. Das Ergebnis wird in
sechs englische Wörter umgewandelt, die Ihr Einmalpasswort
sind. Das Authentifizierungssystem (meistens PAM) merkt sich das
zuletzt benutzte Einmalpasswort und Sie sind authentisiert,
wenn die Hash-Funktion des Passworts dem vorigen Passwort
entspricht. Da nicht umkehrbare Hash-Funktionen benutzt werden,
ist es unmöglich, aus einem bekannten Passwort weitere
gültige Einmalpasswörter zu berechnen. Der
Iterationszähler wird nach jeder erfolgreichen Anmeldung um
eins verringert und stellt so die Synchronisation zwischen Benutzer
und Login-Programm sicher. Wenn der Iterationszähler den
Wert 1 erreicht, müssen S/Key und OPIE neu initialisiert
werden.In jedem System werden drei Programme verwendet, die weiter unten
beschrieben werden. Die Programme key und
opiekey verlangen einen Iterationszähler,
einen Initialwert und ein geheimes Passwort. Daraus generieren
sie ein Einmalpasswort oder eine Liste von
Einmalpasswörtern. Die Programme keyinit
und opiepasswd werden benutzt, um S/Key bzw.
OPIE zu initialisieren. Mit ihnen können Passwörter,
Iterationszähler oder Initialwerte geändert werden.
Als Parameter verlangen sie entweder ein geheimes Passwort
oder einen Iterationszähler oder einen Initialwert und ein
Einmalpasswort. Die Programme keyinfo
und opieinfo geben den momentanen
Iterationszähler und Initialwert eines Benutzers aus. Diese
werden aus den Dateien /etc/skeykeys bzw.
/etc/opiekeys ermittelt.Im Folgenden werden vier verschiedene Tätigkeiten beschrieben.
Zuerst wird erläutert, wie keyinit oder
opiepasswd über eine gesicherte Verbindung
eingesetzt werden, um Einmalpasswörter das erste Mal
zu konfigurieren oder das Passwort oder den Initialwert
zu ändern. Als nächstes wird erklärt, wie
keyinit oder opiepasswd
über eine nicht gesicherte Verbindung, zusammen mit
key oder opiekey über eine
gesicherte Verbindung, eingesetzt werden, um dasselbe zu erreichen.
Als drittes wird beschrieben, wie
key/opiekey genutzt werden,
um sich über eine nicht gesicherte Verbindung anzumelden.
Die vierte Tätigkeit beschreibt, wie mit key
oder opiekey eine Reihe von Schlüsseln
generiert werden, die Sie sich aufschreiben oder ausdrucken können,
um sich von Orten anzumelden, die über keine gesicherten
Verbindungen verfügen.Einrichten über eine gesicherte VerbindungBenutzen Sie keyinit um S/Key das erste
Mal einzurichten, das Passwort oder den Initialwert
zu ändern, während Sie über eine gesicherte
Verbindung, das heißt an der Konsole oder über
SSH angemeldet, sind:&prompt.user; keyinit
Adding unfurl:
Reminder - Only use this method if you are directly connected.
If you are using telnet or rlogin exit with no password and use keyinit -s.
Enter secret password:
Again secret password:
ID unfurl s/key is 99 to17757
DEFY CLUB PRO NASH LACE SOFTMit OPIE benutzen Sie stattdessen
opiepasswd:&prompt.user; opiepasswd -c
[grimreaper] ~ $ opiepasswd -f -c
Adding unfurl:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:
ID unfurl OTP key is 499 to4268
MOS MALL GOAT ARM AVID COED
Nach der Aufforderung Enter new secret pass phrase:
oder Enter secret password: geben Sie bitte Ihr
Passwort ein. Dies ist nicht das Passwort, mit dem Sie sich
anmelden, sondern es wird genutzt, um das Einmalpasswort
zu generieren. Die Zeile, die mit ID anfängt,
enthält Ihren Login-Namen, den Iterationszähler und den
Initialwert. Diese Werte müssen Sie sich nicht behalten, da
das System sie zeigen wird, wenn Sie sich anmelden. In der letzten
Zeile steht das Einmalpasswort, das aus diesen Parametern
und Ihrem geheimen Passwort ermittelt wurde. Wenn sie sich jetzt
wieder anmelden wollten, dann müssten Sie dieses
Passwort benutzen.Einrichten über eine nicht gesicherte VerbindungUm Einmalpasswörter über eine nicht gesicherte
Verbindung einzurichten, oder das geheime Passwort zu ändern,
müssen Sie über eine gesicherte Verbindung zu einer Stelle
verfügen, an der Sie die Kommandos key
oder opiekey ausführen. Dies kann
ein Desk Accessory auf einem &macintosh; oder
die Eingabeaufforderung auf einer Maschine, der Sie vertrauen, sein.
Zudem müssen Sie einen Iterationszähler vorgeben (100
ist ein guter Wert) und einen Initialwert wählen, wobei
Sie auch einen zufällig generierten benutzen können.
Benutzen Sie keyinit -s über die ungesicherte
Verbindung zu der Maschine, die Sie einrichten wollen:&prompt.user; keyinit -s
Updating unfurl:
Old key: to17758
Reminder you need the 6 English words from the key command.
Enter sequence count from 1 to 9999: 100
Enter new key [default to17759]:
s/key 100 to 17759
s/key access password:
s/key access password:CURE MIKE BANE HIM RACY GOREMit OPIE benutzen Sie opiepasswd:&prompt.user; opiepasswd
Updating unfurl:
You need the response from an OTP generator.
Old secret pass phrase:
otp-md5 498 to4268 ext
Response: GAME GAG WELT OUT DOWN CHAT
New secret pass phrase:
otp-md5 499 to4269
Response: LINE PAP MILK NELL BUOY TROY
ID mark OTP key is 499 gr4269
LINE PAP MILK NELL BUOY TROY
Drücken Sie Return, um die Vorgabe
für den Initialwert, der von keyinitkey genannt wird, zu akzeptieren. Bevor
Sie nun das Zugriffspasswort
(engl. access password)
eingeben, rufen Sie über die gesicherte Verbindung
key mit denselben Parametern auf:&prompt.user; key 100 to17759
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <secret password>
CURE MIKE BANE HIM RACY GOREMit OPIE benutzen Sie opiekey:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT
Gehen Sie nun zurück zu der nicht gesicherten Verbindung
und geben dort das eben generierte Einmalpasswort ein.Erzeugen eines einzelnen EinmalpasswortesNachdem Sie S/Key oder OPIE eingerichtet haben, werden Sie beim
nächsten Anmelden wie folgt begrüßt:&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
s/key 97 fw13894
Password: OPIE begrüßt Sie wie folgt:&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
otp-md5 498 gr4269 ext
Password: Anmerkung: S/Key und OPIE besitzen eine nützliche Eigenschaft,
die hier nicht gezeigt ist. Wenn Sie an der Eingabeaufforderung
Return eingeben, wird die echo-Funktion eingeschaltet,
das heißt Sie sehen, was Sie tippen. Dies ist besonders
nützlich, wenn Sie ein generiertes Passwort von einem
Ausdruck abtippen müssen.MS-DOSWindowsMacOSJetzt müssen Sie Ihr Einmalpasswort generieren,
um der Anmeldeaufforderung nachzukommen. Dies muss auf
einem gesicherten System geschehen, auf dem Sie key
oder opiekey ausführen können.
Diese Programme gibt es übrigens auch für DOS, &windows; und
&macos;. Beide Programme benötigen den Iterationszähler
sowie den Initialwert als Parameter, die Sie mittels
cut-and-paste direkt von der Login Aufforderung
nehmen können.Auf dem sicheren System:&prompt.user; key 97 fw13894
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password:
WELD LIP ACTS ENDS ME HAAGMit OPIE:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHATMit dem jetzt generierten Einmalpasswort können
Sie die Anmeldeprozedur fortsetzen:login: <username>
s/key 97 fw13894
Password: <return to enable echo>
s/key 97 fw13894
Password [echo on]: WELD LIP ACTS ENDS ME HAAG
Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ...Erzeugen von mehreren EinmalpasswörternManchmal müssen Sie sich an Orte begeben, an denen
Sie keinen Zugriff auf eine sichere Maschine oder eine
sichere Verbindung haben. In diesem Fall können Sie
vorher mit key oder opiekey
einige Einmalpasswörter generieren, die Sie sich
ausdrucken und mitnehmen können. Zum Beispiel:&prompt.user; key -n 5 30 zz99999
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <secret password>
26: SODA RUDE LEA LIND BUDD SILT
27: JILT SPY DUTY GLOW COWL ROT
28: THEM OW COLA RUNT BONG SCOT
29: COT MASH BARR BRIM NAN FLAG
30: CAN KNEE CAST NAME FOLK BILKMit OPIE:&prompt.user; opiekey -n 5 30 zz99999
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase: <secret password>
26: JOAN BORE FOSS DES NAY QUIT
27: LATE BIAS SLAY FOLK MUCH TRIG
28: SALT TIN ANTI LOON NEAL USE
29: RIO ODIN GO BYE FURY TIC
30: GREW JIVE SAN GIRD BOIL PHIMit fordern Sie fünf
Passwörter der Reihe nach an. Der letzte
Iterationszähler wird durch gegeben.
Beachten Sie bitte, dass die Passwörter in der
umgekehrten Reihenfolge, in der sie
zu benutzen sind, ausgeben werden. Wenn Sie wirklich paranoid
sind, schreiben Sie sich jetzt die Passwörter auf,
ansonsten drucken Sie sie mit lpr aus.
Beachten Sie, dass jede Zeile den Iterationszähler
und das Einmalpasswort zeigt, trotzdem finden Sie es
vielleicht hilfreich, eine Zeile nach Gebrauch durchzustreichen.Einschränken der Benutzung von
System-PasswörternMit S/Key können Sie die Verwendung von
System-Passwörtern, basierend auf dem Hostnamen,
Benutzernamen, Terminal oder IP-Adresse, einschränken.
Die Beschränkungen werden in
/etc/skey.access definiert. Die
Manualpage &man.skey.access.5; beschreibt das Format dieser
Datei sowie einige Vorsichtsmaßnahmen, die Sie treffen
sollten, bevor Sie diese Datei einsetzen.Wenn /etc/skey.access nicht existiert
(wie auf &os; 4.X Systemen), dann dürfen sich
alle Benutzer mit ihren System-Passwörtern anmelden.
Wenn die Datei existiert, dann müssen alle Benutzer
S/Key zum Anmelden benutzen. Ausnahmen müssen explizit
in skey.access konfiguriert werden.
In allen Fällen werden System-Passwörter
beim Anmelden auf der Konsole erlaubt.Das folgende Beispiel für skey.access
zeigt die drei geläufigsten Konfigurationsoptionen:Das folgende Beispiel zeigt die drei häufigsten
Ausnahmen:permit internet 192.168.0.0 255.255.0.0
permit user fnord
permit port ttyd0Die erste Zeile (permit internet) erlaubt
es Benutzern, deren IP-Adresse, die immer noch gefälscht werden
kann, mit dem angegebenen Wert und der angegebenen Maske
übereinstimmt, System-Passwörter zu benutzen. Dies
sollte nicht als Sicherheitsmechanismus missverstanden werden,
sondern sollte autorisierte Benutzer daran erinnern, dass sie
ein ungesichertes Netzwerk benutzen und sich mit S/Key anmelden
müssen.Die zweite Zeile (permit user) erlaubt
es dem angegebenen Benutzer, hier fnord,
jederzeit System-Passwörter zu verwenden. Dies sollte
allerdings nur für Benutzer konfiguriert werden, die das
key Programm nicht benutzen können (Leute
mit dumb Terminals oder wirklich uneinsichtige).Die dritte Zeile (permit port) erlaubt allen
Benutzern, die sich an dem angegebenen Terminal anmelden,
System-Passwörter zu benutzen. Sie sollte für
Einwählverbindungen genutzt werden.Wie S/Key kann OPIE die Verwendung von System-Passwörtern
abhängig von der Quell-IP-Adresse einschränken.
Die dazu nötigen Einstellungen werden in der Datei
/etc/opieaccess vorgenommen, die
auf Systemen ab &os; 5.0 vorhanden ist. Weitere
Informationen über diese Datei und Sicherheitshinweise
zu ihrer Verwendung entnehmen Sie bitte der Hilfeseite
&man.opieaccess.5;.Die Datei opieaccess könnte
beispielsweise die folgende Zeile enthalten:permit 192.168.0.0 255.255.0.0Diese Zeile erlaubt es Benutzern, die sich von einer der
angegebenen Quell-IP-Adressen anmelden, ihr System-Passwort
zu verwenden. Beachten Sie bitte, dass eine Quell-IP-Adresse
leicht gefälscht werden kann.Findet sich in opieaccess kein
passender Eintrag, muss die Anmeldung mit OPIE erfolgen.TomRhodesBeigetragen von TCP-WrapperTCP-WrapperWahrscheinlich hat jeder, der &man.inetd.8; kennt,
schon mal von den TCP-Wrappern gehört. Die
wenigsten erkennen den vollen Nutzen der TCP-Wrapper
in einer Netzumgebung. Es scheint, dass die meisten
Leute Netzverbindungen mit einer Firewall absichern
wollen. Auch wenn eine Firewall ein mächtiges
Instrument ist, gibt es Sachen, die eine Firewall
nicht kann. Eine Firewall kann beispielsweise keine
Nachricht an den Verbindungsursprung senden. Genau
das und mehr können aber die
TCP-Wrapper. Im Folgenden werden
die Funktionen der TCP-Wrapper
und Beispiele für deren Konfiguration vorgestellt.Die TCP-Wrapper erweitern die
Steuerungsmöglichkeiten, die inetd
über die Dienste unter seiner Kontrolle hat.
Beispielsweise können Verbindungen protokolliert,
Nachrichten zurückgesandt oder nur interne Verbindungen
angenommen werden. Die TCP-Wrapper
bieten nicht nur eine weitere Sicherheitsschicht, die
teilweise auch von Firewalls geboten wird, sie bieten
darüber hinaus Funktionen zur Steuerung von
Verbindungen, die eine Firewall nicht bietet.Die erweiterten Funktionen der
TCP-Wrapper sind kein Firewall-Ersatz.
Sie sollten zusammen mit einer Firewall und anderen
Sicherheitsvorkehrungen eingesetzt werden. Die
TCP-Wrapper sind eine weitere
Sicherheitsschicht zum Schutz eines Systems.Da die Wrapper die Funktion von inetd
erweitern, wird im Folgenden vorausgesetzt, dass Sie den
Abschnitt über die
inetd-Konfiguration
schon gelesen haben.Streng genommen handelt es sich bei den von &man.inetd.8;
gestarteten Programmen nicht um Daemonen. Da
sich diese Bezeichnung aber eingebürgert hat, wird sie auch
in diesem Abschnitt verwendet.TCP-Wrapper einrichtenUm die TCP-Wrapper unter &os;
zu benutzen, muss nur der inetd
aus rc.conf mit den voreingestellten
Optionen gestartet werden.
Die Konfigurationsdatei /etc/hosts.allow
darf keine Fehler enthalten; falls doch, werden die
Fehler mit &man.syslogd.8; protokolliert.Im Gegensatz zu anderen Implementationen der
TCP-Wrapper wird vom Gebrauch
der Datei hosts.deny abgeraten.
Die Konfiguration sollte sich vollständig in der
Datei /etc/hosts.allow befinden.In der einfachsten Konfiguration werden Dienste
abhängig vom Inhalt der Datei
/etc/hosts.allow erlaubt oder
gesperrt. Unter &os; wird in der Voreinstellung
jeder von inetd gestartete Dienst
erlaubt. Sehen wir uns zunächst die Grundkonfiguration
an.Eine Konfigurationszeile ist wie folgt aufgebaut:
Dienst : Adresse : Aktion.
Dienst ist der von inetd
gestartete Dienst (auch Daemon genannt). Die
Adresse kann ein gültiger
Rechnername, eine IP-Adresse oder
eine IPv6-Adresse in Klammern
([]) sein.
Der Wert allow im Feld
Aktion erlaubt Zugriffe, der Wert
deny verbietet Zugriffe.
Die Zeilen in hosts.allow
werden für jede Verbindung der Reihe nach
abgearbeitet. Trifft eine Zeile auf eine Verbindung
zu, wird die entsprechende Aktion ausgeführt
und die Abarbeitung ist beendet.Es gibt noch weitere Konfigurationsoptionen, die
gleich erläutert werden. Das bisher Gesagte
reicht, um eine einfache Regel aufzustellen. Wenn
Sie einkommende POP3-Verbindungen
für den Dienst
mail/qpopper
erlauben wollen, erweitern Sie
hosts.allow um die nachstehende
Zeile:# This line is required for POP3 connections:
qpopper : ALL : allowNachdem Sie die Zeile hinzugefügt haben, muss der
inetd neu gestartet werden. Sie
können dazu das Kommando &man.kill.1; verwenden
oder /etc/rc.d/inetd restart
ausführen.Erweiterte Konfiguration der TCP-WrapperDie TCP-Wrapper besitzen
weitere Optionen, die bestimmen, wie Verbindungen
behandelt werden. In einigen Fällen ist es
gut, wenn bestimmten Rechnern oder Diensten eine
Nachricht geschickt wird. In anderen Fällen
soll vielleicht der Verbindungsaufbau protokolliert
oder eine E-Mail an einen Administrator versandt
werden. Oder ein Dienst soll nur für das
lokale Netz bereitstehen. Dies alles ist mit so genannten
Wildcards, Metazeichen und der Ausführung externer
Programme möglich und wird in den nächsten
zwei Abschnitten erläutert.Externe Kommandos ausführenStellen Sie sich vor, eine Verbindung soll
verhindert werden und gleichzeitig soll demjenigen,
der die Verbindung aufgebaut hat, eine Nachricht
geschickt werden. Auf welche Art müssen
die TCP-Wrapper konfiguriert werden?
Die Option führt beim
Verbindungsaufbau ein Kommando aus. In der Datei
hosts.allow ist ein Beispiel
für diese Option enthalten:# Alle anderen Dienste sind geschützt
ALL : ALL \
: severity auth.info \
: twist /bin/echo "You are not welcome to use %d from %h."Für jeden Dienst, der nicht vorher in
der Datei hosts.allow konfiguriert
wurde, wird die Meldung You are not allowed to use
daemon from
hostname. zurückgegegeben.
Dies ist besonders nützlich, wenn Sie die
Gegenstelle sofort benachrichtigen wollen, nachdem
die Verbindung getrennt wurde. Beachten Sie, dass
der Text der Meldung in Anführungszeichen
(") stehen muss,
es gibt keine Ausnahmen zu dieser Regel.Ein so konfigurierter Server ist anfällig
für Denial-of-Service-Angriffe. Ein Angreifer
kann die gesperrten Dienste mit Verbindungsanfragen
überfluten.Um einem Denial-of-Service-Angriff zu entgehen,
benutzen Sie die Option .
Wie die Option verbietet
die Verbindung und führt
externe Kommandos aus. Allerdings sendet die
Option der Gegenstelle
keine Rückmeldung. Sehen Sie sich die
nachstehende Konfigurationsdatei an:# Verbindungen von example.com sind gesperrt:
ALL : .example.com \
: spawn (/bin/echo %a from %h attempted to access %d >> \
/var/log/connections.log) \
: denyDamit sind Verbindungen von der Domain
*.example.com gesperrt.
Jeder Verbindungsaufbau wird zudem in der Datei
/var/log/connections.log
protokolliert. Das Protokoll enthält den
Rechnernamen, die IP-Adresse
und den Dienst, der angesprochen wurde.In der Konfigurationsdatei wurde beispielsweise
das Metazeichen %a verwendet. Es gibt weitere
Metazeichen, die in der Hilfeseite &man.hosts.access.5;
beschrieben werden.WildcardsBisher verwendeten die Beispiele immer die
Wildcard ALL. Die Wildcard
ALL passt beispielsweise auf
jeden Dienst, jede Domain oder jede
IP-Adresse. Eine andere
Wildcard ist PARANOID. Sie passt
auf jeden Rechner dessen IP-Adresse
möglicherweise gefälscht ist. Dies ist dann
der Fall, wenn der Verbindungsaufbau von einer
IP-Adresse erfolgt, die nicht
zu dem übermittelten Rechnernamen passt.
Für solche Fälle werden mit der
Wildcard PARANOID Aktionen
festgelegt, beispielsweise:# Block possibly spoofed requests to sendmail:
sendmail : PARANOID : denyIn diesem Beispiel werden alle Verbindungen zu
sendmail verboten, die von einer
IP-Adresse ausgehen, die nicht zum
Rechnernamen passt.Die Wildcard PARANOID
kann einen Dienst unbrauchbar machen, wenn der
Client oder der Server eine fehlerhafte
DNS-Konfiguration besitzt.
Setzen Sie die Wildcard bitte umsichtig ein.Weiteres über Wildcards und deren Funktion
lesen Sie bitte in der Hilfeseite &man.hosts.access.5;
nach.In der Voreinstellung sind alle Dienste erlaubt.
Damit die gezeigten Beispiele funktionieren, müssen
Sie die erste Konfigurationszeile in der Datei
hosts.allow auskommentieren.MarkMurrayBeigesteuert von MarkDapozBasiert auf einem Beitrag von KerberosIVKerberosIVKerberos ist ein zusätzliches Netzwerkprotokoll, das es
Benutzern erlaubt, sich über einen sicheren Server zu
authentifizieren. Dienste wie rlogin,
rcp oder das sichere Kopieren von Dateien
zwischen Systemen und andere risikoreiche Tätigkeiten werden
durch Kerberos erheblich sicherer und kontrollierbarer.Die folgende Anleitung kann nur als Wegweiser dazu dienen, wie
Sie Kerberos für &os; konfigurieren. Eine komplette
Beschreibung des Systems finden Sie in den entsprechenden
Hilfeseiten.Installation von KerberosIVMITKerberosIVinstallierenKerberos ist eine optionale Komponente von &os;. Am
leichtesten installieren Sie die Software, wenn Sie bei
der ersten Installation von &os; in
sysinstall die Distribution
krb4 oder krb5
auswählen. Damit installieren Sie entweder die
eBones (KerberosIV) oder Heimdal
(Kerberos5) Version von Kerberos. Beide Versionen werden
mit &os; ausgeliefert, da sie außerhalb von den
USA oder Kanada entwickelt werden.
Sie unterliegen deshalb auch nicht den restriktiven
Exportbeschränkungen der USA und sind auch für
Bewohner anderer Länder zugänglich.Als Alternative steht die MIT Variante von Kerberos in der
- Ports-Kollektion unter security/krb5 zur
+ Ports-Sammlung unter security/krb5 zur
Verfügung.Erstellen der initialen DatenbankDie folgenden Schritte werden nur auf dem Kerberos-Server
durchgeführt. Stellen Sie bitte vorher sicher, dass
keine alten Kerberos-Datenbanken mehr vorhanden sind. Im
Verzeichnis /etc/kerberosIV sollten sich nur
die folgenden Dateien befinden:&prompt.root; cd /etc/kerberosIV
&prompt.root; ls
README krb.conf krb.realmsWenn noch andere Dateien, wie principal.*
oder master_key, existieren, müssen
Sie die alte Kerberos-Datenbank mit kdb_destroy
löschen. Wenn Kerberos nicht läuft, können Sie
die Dateien auch einfach löschen.Sie sollten nun die Dateien krb.conf und
krb.realms editieren, um Ihr Kerberos-Realm zu
definieren. Das folgende Beispiel zeigt dies für das Realm
EXAMPLE.COM auf dem Server
grunt.example.com.
krb.conf sollte wie folgt aussehen:&prompt.root; cat krb.conf
EXAMPLE.COM
EXAMPLE.COM grunt.example.com admin server
CS.BERKELEY.EDU okeeffe.berkeley.edu
ATHENA.MIT.EDU kerberos.mit.edu
ATHENA.MIT.EDU kerberos-1.mit.edu
ATHENA.MIT.EDU kerberos-2.mit.edu
ATHENA.MIT.EDU kerberos-3.mit.edu
LCS.MIT.EDU kerberos.lcs.mit.edu
TELECOM.MIT.EDU bitsy.mit.edu
ARC.NASA.GOV trident.arc.nasa.govDie zusätzlich aufgeführten Realms brauchen Sie nicht
anzulegen. Sie zeigen hier nur, wie man Kerberos dazu bringt, andere
Realms zu erkennen. Sie können Sie also auch weglassen.Die erste Zeile benennt das Realm, in dem das System arbeitet.
Die anderen Zeilen enthalten Realm/Host Paare. Der erste Wert jeder
Zeile ist das Realm, der zweite Teil ein Host, der in diesem
Realm Key Distribution Center ist. Die
Schlüsselwörter admin server nach einem
Hostnamen bedeuten, dass dieser Host auch einen administrativen
Datenbankserver zur Verfügung stellt. Weitere Erklärungen zu
diesen Begriffen finden Sie in den Kerberos Manualpages.Als nächstes muss
grunt.example.com in das Realm
EXAMPLE.COM aufgenommen werden. Des Weiteren
erstellen wir einen Eintrag, der alle Rechner der Domäne
.example.com in das Realm
EXAMPLE.COM aufnimmt.
krb.realms sollte danach so aussehen:&prompt.root; cat krb.realms
grunt.example.com EXAMPLE.COM
.example.com EXAMPLE.COM
.berkeley.edu CS.BERKELEY.EDU
.MIT.EDU ATHENA.MIT.EDU
.mit.edu ATHENA.MIT.EDUDie zusätzlichen Realms sind hier wieder als Beispiel
gedacht. Sie können sie der Einfachheit halber auch
weglassen.Die erste Zeile nimmt ein einzelnes System
in das Realm auf. Die anderen Zeilen zeigen, wie bestimmte
Subdomänen einem bestimmten Realm zugeordnet werden.Das folgende Kommando muss nur auf dem Kerberos-Server
(oder Key Distribution Center) laufen. Mit
kdb_init können wir die Datenbank
anlegen:&prompt.root; kdb_initRealm name [default ATHENA.MIT.EDU ]:EXAMPLE.COM
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter Kerberos master key:Anschließend muss der Schlüssel gespeichert
werden, damit Server auf der lokalen Maschine darauf zugreifen
können. Dies geschieht mit kstash:&prompt.root; kstashEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!Das verschlüsselte Master-Passwort wurde in
/etc/kerberosIV/master_key gesichert.Anlegen von PrinzipalsFür jedes System, das mit Kerberos
gesichert werden soll, müssen zwei Prinzipale in die
Datenbank eingetragen werden. Ihre Namen sind
kpasswd und rcmd. Beide
Prinzipale müssen für jedes System angelegt werden, wobei
die Instanz der Name des jeweiligen Systems ist.Die Dæmonen kpasswd und
rcmd erlauben es anderen Systemen,
Kerberos-Passwörter zu ändern und Kommandos wie
&man.rcp.1;, &man.rlogin.1; und &man.rsh.1;
laufen zu lassen.Beide Einträge werden im Folgenden angelegt:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:passwdInstance:grunt
<Not found>, Create [y] ?y
Principal: passwd, Instance: grunt, kdc_key_ver: 1
New Password: <---- geben Sie hier Zufallswerte ein
Verifying password
New Password: <---- geben Sie hier Zufallswerte ein
Random password [y] ?y
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name:rcmdInstance:grunt
<Not found>, Create [y] ?
Principal: rcmd, Instance: grunt, kdc_key_ver: 1
New Password: <---- geben Sie hier Zufallswerte ein
Verifying password
New Password: <---- geben Sie hier Zufallswerte ein
Random password [y] ?
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- geben Sie nichts an, um das Programm zu verlassenErstellen der Server-DateiWir müssen nun für jede Maschine die Instanzen,
die Dienste definieren, aus der Datenbank mit
ext_srvtab extrahieren. Die erstelle Datei
muss auf einem sicheren Weg in das
/etc/kerberosIV Verzeichnis jedes Clients
kopiert werden. Die Datei muss auf jedem Server und auf
jedem Client vorhanden sein und ist unabdingbar für
Kerberos.&prompt.root; ext_srvtab gruntEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Generating 'grunt-new-srvtab'....Das Kommando erzeugt Dateien mit einem temporären Namen,
der es anderen Servern erlaubt, ihre Datei abzuholen. Die Datei
muss auf dem entsprechenden System in srvtab
umbenannt werden. Auf dem originalen System können Sie
&man.mv.1; benutzen, um die Datei umzubenennen:&prompt.root; mv grunt-new-srvtab srvtabWenn die Datei für ein Client-System bestimmt ist und das
Netzwerk nicht sicher ist, kopieren Sie die Datei auf ein bewegliches
Medium und transportieren sie physikalisch. Kopieren Sie die Datei
auf den Client in das Verzeichnis /etc/kerberosIV.
Benennen Sie die Datei in srvtab um und setzen Sie
schließlich noch die Berechtigungen auf 600:&prompt.root; mv grumble-new-srvtab srvtab
&prompt.root; chmod 600 srvtabFüllen der DatenbankWir können nun Benutzer in der Datenbank anlegen. Mit
kdb_edit legen wir zuerst die Benutzerin
jane an:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:janeInstance:
<Not found>, Create [y] ?y
Principal: jane, Instance: , kdc_key_ver: 1
New Password: <---- geben Sie ein sicheres Passwort ein
Verifying password
New Password: <---- wiederholen Sie die Eingabe
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- geben Sie nichts an, um das Programm zu verlassenTestenZuerst müssen die Kerberos-Dæmonen gestartet sein.
Wenn Sie /etc/rc.conf richtig angepasst haben,
passiert das automatisch, wenn Sie booten. Dieser Schritt ist nur
auf dem Kerberos-Server notwendig, die Clients bekommen alles
was sie brauchen aus dem /etc/kerberosIV
Verzeichnis.&prompt.root; kerberos &
Kerberos server starting
Sleep forever on error
Log file is /var/log/kerberos.log
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Current Kerberos master key version is 1
Local realm: EXAMPLE.COM
&prompt.root; kadmind -n &
KADM Server KADM0.0A initializing
Please do not use 'kill -9' to kill this job, use a
regular kill instead
Current Kerberos master key version is 1.
Master key entered. BEWARE!Jetzt können wir mit kinit versuchen,
ein Ticket für die ID jane, die wir
oben angelegt haben, zu erhalten:&prompt.user; kinit jane
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane"
Password:Mit klist können Sie sich vergewissern,
dass Sie die Tickets auch erhalten haben:&prompt.user; klist
Ticket file: /tmp/tkt245
Principal: jane@EXAMPLE.COM
Issued Expires Principal
Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COMVersuchen Sie nun das Passwort mit &man.passwd.1;
zu ändern, um zu überprüfen, dass der
kpasswd Dæmon auch auf der
Kerberos-Datenbank autorisiert ist:&prompt.user; passwd
realm EXAMPLE.COM
Old password for jane:New Password for jane:
Verifying password
New Password for jane:
Password changed.Anlegen von su PrivilegienMit Kerberos kann jedem Benutzer, der
root-Privilegien braucht, ein
eigenes Passwort für
&man.su.1; zugewiesen werden. Dies wird dadurch
erreicht, dass die Instanz eines Prinzipals
root ist. Mit kbd_edit
legen wir nun den Eintrag jane.root in der
Kerberos-Datenbank an:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:janeInstance:root
<Not found>, Create [y] ? y
Principal: jane, Instance: root, kdc_key_ver: 1
New Password: <---- geben Sie ein sicheres Passwort ein
Verifying password
New Password: <---- geben Sie das Passwort erneut ein
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?12 <--- Keep this short!
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- geben Sie nichts an, um das Programm zu verlassenVersuchen Sie nun, für diesen Prinzipal Tickets zu
bekommen:&prompt.root; kinit jane.root
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane.root"
Password:Als nächstes fügen wir den Prinzipal in
.klogin von root ein:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMJetzt benutzen wir &man.su.1;:&prompt.user; su
Password:und kontrollieren, welche Tickets wir haben:&prompt.root; klist
Ticket file: /tmp/tkt_root_245
Principal: jane.root@EXAMPLE.COM
Issued Expires Principal
May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COMWeitere KommandosIn einem der Beispiele haben wir einen Prinzipal mit
dem Namen jane und der Instanz
root angelegt. Der Prinzipal entstand aus
einem Benutzer mit dem gleichen Namen. Unter Kerberos ist es
Standard, dass ein
principal.instance der Form
username.root es dem
Benutzer username erlaubt, mit
&man.su.1; root zu werden, wenn die
entsprechenden Einträge in .klogin von
root existieren:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMDas gilt auch für die .klogin-Datei
im Heimatverzeichnis eines Benutzers:&prompt.user; cat ~/.klogin
jane@EXAMPLE.COM
jack@EXAMPLE.COMDie Einträge erlauben jedem, der sich im Realm
EXAMPLE.COM als jane oder
jack mit kinit authentifiziert
hat, mittels &man.rlogin.1;, &man.rsh.1; oder &man.rcp.1;
auf den Account jane und dessen
Dateien zuzugreifen.Im folgenden Beispiel meldet sich jane
mit Kerberos auf grunt an:&prompt.user; kinit
MIT Project Athena (grunt.example.com)
Password:
&prompt.user; rlogin grunt
Last login: Mon May 1 21:14:47 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995Im folgenden Beispiel wurde der Prinzipal jack
mit einer Instanz null angelegt. Mit der obigen
.klogin-Datei kann er sich nun auf derselben
Maschine als jane anmelden:&prompt.user; kinit
&prompt.user; rlogin grunt -l jane
MIT Project Athena (grunt.example.com)
Password:
Last login: Mon May 1 21:16:55 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995TillmanHodgsonBeigetragen von MarkMurrayBeruht auf einem Beitrag von Kerberos5Das Basissystem enthält ab &os; 5.1
nur noch Kerberos5. Die
Konfiguration von Kerberos5
ist der Konfiguration von KerberosIV
sehr ähnlich. Wenn Sie KerberosIV
benötigen, installieren Sie den Port
security/krb4.
Der folgende Abschnitt beschreibt ausschließlich
Kerberos5 für &os;-Releases
ab 5.0.Kerberos ist ein Netzwerk-Protokoll,
das Benutzer mithilfe eines sicheren Servers authentifiziert.
Mit Risiken behaftete Dienste, wie das Anmelden an entfernten
Systemen oder das Kopieren von Daten auf entfernte Systeme,
werden durch Kerberos erheblich
sicherer und lassen sich leichter steuern.Kerberos hat eine Aufgabe:
Die sichere Prüfung der Identität eines Benutzers
(Authentifizierung) über das Netzwerk. Das System
überprüft weder die Berechtigungen der Benutzer
(Autorisierung), noch verfolgt es die durchgeführten
Aktionen (Audit). Daher sollte Kerberos
zusammen mit anderen Sicherheits-Systemen eingesetzt werden, die
diese Funktionen bereitstellen. Die Daten einer Kommunikation
können verschlüsselt werden, nachdem die
Kommunikationspartner mit Kerberos
ihre Identität geprüft haben.Die folgenden Anweisungen beschreiben, wie Sie das mit
&os; gelieferte Kerberos einrichten.
Eine vollständige Beschreibung des Systems entnehmen
Sie bitte den entsprechenden Hilfeseiten.Die Beschreibung der
Kerberos-Installation benutzt
folgende Namensräume:Die DNS-Domain (Zone) heißt
example.org.Das Kerberos-Realm
heißt EXAMPLE.ORG.Benutzen Sie echte Domain-Namen, wenn Sie
Kerberos einrichten. Damit
vermeiden Sie DNS-Probleme und stellen
die Zusammenarbeit mit anderen
Kerberos-Realms sicher.GeschichteKerberos5GeschichteDas MIT entwickelte
Kerberos, um Sicherheitsprobleme
auf dem Netzwerk zu lösen. Das
Kerberos-Protokoll verwendet
starke Kryptographie, sodass ein Server die Identität
eines Clients (der umgekehrte Vorgang ist auch möglich)
über ein unsicheres Netzwerk feststellen kann.Der Begriff Kerberos wird sowohl für das Protokoll
als auch für Programme verwendet, die
Kerberos benutzen (wie
Kerberos-Telnet). Die aktuelle
Protokollversion ist 5 und wird in
RFC 1510 beschrieben.Mehrere Implementierungen des Protokolls stehen frei
zur Verfügung und decken viele Betriebssysteme ab.
Das Massachusetts Institute of Technology
(MIT), an dem Kerberos
ursprünglich entwickelt wurde, entwickelt seine
Kerberos-Version weiter. In den
USA wird diese Version häufig
eingesetzt, unterlag aber Export-Beschränkungen,
da sie in den USA entwickelt wurde.
Die MIT-Version von
Kerberos befindet sich im Port
security/krb5.
Heimdal ist eine weitere Implementierung der Protokollversion 5.
Sie wurde außerhalb der USA entwickelt
und unterliegt daher keinen Export-Beschränkungen.
Heimdal-Kerberos befindet sich
im Port security/heimdal
und das Basissystem von &os; enthält eine minimale
Installation von Heimdal.Um möglichst viele Benutzer anzusprechen, verwenden
die folgenden Beispiele die in &os; enthaltene
Heimdal-Distribution.Das Heimdal KDC einrichtenKerberos5Key Distribution CenterKerberos authentifiziert
Benutzer an einer zentralen Stelle: dem Key Distribution
Center (KDC). Das KDC
verteilt Tickets, mit denen ein
Dienst die Identität eines Benutzers feststellen kann.
Alle Mitglieder eines Kerberos-Realms
vertrauen dem KDC, daher gelten für
das KDC erhöhte
Sicherheitsanforderungen.Obwohl das KDC wenig Ressourcen eines
Rechners benötigt, sollte es wegen der
Sicherheitsanforderungen auf einem separaten Rechner
installiert werden.Das KDC wird in
/etc/rc.conf wie folgt aktiviert:kerberos5_server_enable="YES"
kadmind5_server_enable="YES"
kerberos_stash="YES"Die Option gibt es
nur in &os; 4.X.Danach wird die Konfigurationsdatei von
Kerberos,
/etc/krb5.conf, erstellt:[libdefaults]
default_realm = EXAMPLE.ORG
[realms]
EXAMPLE.ORG = {
kdc = kerberos.example.org
admin_server = kerberos.example.org
}
[domain_realm]
.example.org = EXAMPLE.ORGDiese Einstellungen setzen voraus, dass der voll
qualifizierte Name des KDCs
kerberos.example.org ist.
Wenn Ihr KDC einen anderen Namen hat,
müssen Sie in der DNS-Zone einen Alias-Eintrag (CNAME-Record)
für das KDC hinzufügen.Auf großen Netzwerken mit einem ordentlich
konfigurierten BIND
DNS-Server kann die Datei verkürzt
werden:[libdefaults]
default_realm = EXAMPLE.ORGDie Zonendatei von example.org
muss dann die folgenden Zeilen enthalten:_kerberos._udp IN SRV 01 00 88 kerberos.example.org.
_kerberos._tcp IN SRV 01 00 88 kerberos.example.org.
_kpasswd._udp IN SRV 01 00 464 kerberos.example.org.
_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org.
_kerberos IN TXT EXAMPLE.ORGDamit Klienten die
Kerberos-Dienste benutzen
können, muss die Datei /etc/krb5.conf
entweder die vollständige Konfiguration enthalten
oder eine minimale Konfiguration enthalten
und zusätzlich ein DNS-Server
richtig eingerichtet sein.Im nächsten Schritt wird die
Kerberos-Datenbank eingerichtet.
Die Datenbank enthält die Schlüssel aller Prinzipale
und ist mit einem Passwort geschützt. Dieses Passwort
brauchen Sie nicht zu behalten, da ein davon abgeleiteter
Schlüssel in der Datei /var/heimdal/m-key
gespeichert wird. Den Schlüssel erstellen Sie, indem
Sie das Programm kstash aufrufen und
ein Passwort eingeben.Nachdem Sie den Schlüssel in
/var/heimdal/m-key erstellt haben,
können Sie die Datenbank mit dem Kommando
kadmin initialisieren. Verwenden
Sie hierbei die Option (lokal). Mit
dieser Option wird die Datenbank lokal modifiziert. Normal
würde der kadmind-Dienst benutzt,
der aber zu diesem Zeitpunkt noch nicht läuft. An
der Eingabeaufforderung von kadmin
können Sie mit dem Kommando init
die Datenbank des Realms einrichten.Zuletzt erstellen Sie mit dem Kommando add
Ihren ersten Prinzipal. Benutzen Sie die voreingestellten
Optionen; Sie können die Einstellungen später
mit dem Kommando modify ändern.
An der Eingabeaufforderung zeigt das Kommando
? Hilfetexte an.Zusammengefasst wird die Datenbank wie folgt
eingerichtet:&prompt.root; kstash
Master key: xxxxxxxx
Verifying password - Master key: xxxxxxxx
&prompt.root; kadmin -l
kadmin> init EXAMPLE.ORG
Realm max ticket life [unlimited]:
kadmin> add tillman
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
Password: xxxxxxxx
Verifying password - Password: xxxxxxxxJetzt kann das KDC gestartet werden.
Führen Sie zum Start der Dienste die Kommandos
/etc/rc.d/kerberos start und
/etc/rc.d/kadmind start aus. Obwohl
zu diesem Zeitpunkt noch keine kerberisierten Dienste
laufen, können Sie die Funktion des KDCs
schon überprüfen. Für den eben angelegten
Benutzer können Sie sich vom KDC
Tickets holen und diese Tickets anzeigen:&prompt.user; k5init tillman
tillman@EXAMPLE.ORG's Password:
&prompt.user; k5list
Credentials cache: FILE: /tmp/krb5cc_500
Principal: tillman@EXAMPLE.ORG
Issued Expires Principal
Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORGKerberos-Dienste
einrichtenKerberos5Dienste einrichtenAlle Rechner, die kerberisierte Dienste anbieten,
müssen eine Kopie der
Kerberos-Konfigurationsdatei
/etc/krb5.conf besitzen. Sie
können die Datei einfach vom KDC
kopieren.Anschließend müssen Sie die Datei
/etc/krb5.keytab erzeugen. Im
Gegensatz zu normalen Workstations benötigt jeder
Server eine keytab.
Diese Datei enthält den Schlüssel des
Servers, mit dem sich der Server und das
KDC gegenseitig authentifizieren
können. Die Datei muss sicher auf den Server
transportiert werden (beispielsweise mit &man.scp.1;
oder einer Diskette). Unter keinen Umständen
darf die Datei im Klartext, zum Beispiel mit
FTP, übertragen werden,
da sonst die Sicherheit des Servers gefährdet
ist.Sie können die keytab auch
mit dem Programm kadmin übertragen.
Da Sie mit kadmin sowieso einen Host-Prinzipal
für den Server einrichten müssen, ist das ganz
praktisch.Sie müssen allerdings schon ein Ticket
besitzen und berechtigt sein, kadmin
auszuführen. Die Berechtigung erhalten Sie durch
einen Eintrag in der Zugriffskontrollliste
kadmind.acl. Weitere Informationen
über Zugriffskontrolllisten erhalten Sie in den
Heimdal-Info-Seiten (info heimdal)
im Abschnitt Remote administration. Wenn
der Zugriff auf kadmin von entfernten
Maschinen verboten ist, müssen Sie sich sicher
auf dem KDC anmelden (lokale Konsole,
&man.ssh.1; oder kerberisiertes Telnet) und die
keytab lokal mit
kadmin -l erzeugen.Nachdem Sie die Datei /etc/krb5.conf
installiert haben, können Sie das Kommando
kadmin benutzen. An der Eingabeaufforderung
von kadmin erstellt das Kommando
add --random-key den Host-Prinzipal
und das Kommando ext extrahiert den
Schlüssel des Prinzipals in eine Datei:&prompt.root; kadmin
kadmin> add --random-key host/myserver.example.org
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
kadmin> ext host/myserver.example.org
kadmin> exitDas Kommando ext (von
extract) speichert den
extrahierten Schlüssel in der Datei
/etc/krb5.keytab.Wenn auf dem KDC, vielleicht aus
Sicherheitsgründen, kadmind
nicht läuft, können Sie das Kommando
kadmin von entfernten Rechnern nicht
benutzen. In diesem Fall legen Sie den Host-Prinzipal
host/myserver.EXAMPLE.ORG direkt
auf dem KDC an. Den Schlüssel
extrahieren Sie in eine temporäre Datei (damit
die Datei /etc/krb5.keytab nicht
überschrieben wird):&prompt.root; kadmin
kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org
kadmin> exitAnschließend müssen Sie die erzeugte
example.keytab sicher auf den
Server kopieren (mit scp oder
mithilfe einer Diskette). Geben Sie auf jeden Fall
einen anderen Namen für die keytab
an, weil sonst die keytab des
KDCs überschrieben würde.Wegen der Datei krb5.conf kann
der Server nun mit dem KDC kommunizieren
und seine Identität mithilfe der Datei
krb5.keytab nachweisen. Jetzt
können wir kerberisierte Dienste aktivieren.
Für telnet muss die folgende
Zeile in /etc/inetd.conf eingefügt
werden:telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a userAusschlaggebend ist, dass die Authentifizierungs-Methode
mit auf user gesetzt
wird. Weitere Details entnehmen Sie bitte der Hilfeseite
&man.telnetd.8;.Nachdem sie die Zeile in /etc/inetd.conf
eingefügt haben, starten Sie &man.inetd.8; mit
dem Kommando /etc/rc.d/inetd restart
durch.Kerberos-Clients
einrichtenKerberos5Clients einrichtenEin Client lässt sich leicht einrichten.
Sie benötigen nur die
Kerberos-Konfigurationsdatei
/etc/krb5.conf. Kopieren Sie
die Konfigurationsdatei einfach vom KDC
auf den Client.Sie können jetzt mit kinit
Tickets anfordern, mit klist Tickets
anzeigen und mit kdestroy Tickets
löschen. Sie können mit
Kerberos-Anwendungen kerberisierte
Server ansprechen. Wenn das nicht funktioniert,
Sie aber Tickets anfordern können, hat wahrscheinlich
der kerberisierte Server ein Problem und nicht der
Client oder das KDC.Wenn Sie eine Anwendung wie telnet
testen, können Sie mit einem Paket-Sniffer
(beispielsweise &man.tcpdump.1;) überprüfen,
dass Passwörter verschlüsselt übertragen
werden. Probieren Sie auch die Option
von telnet, die den gesamten Datenverkehr
verschlüsselt (analog zu ssh).Die Kerberos-Basisanwendungen
kinit, klist,
kdestroy und kpasswd
gehören zum &os;-Basissystem. Beachten Sie, dass
die Programme vor &os; 5.0 in k5init,
k5list, k5destroy,
k5passwd und k5stash
umbenannt wurden.Zu Heimdal gehören noch weitere Anwendungen.
Allerdings enthält das &os;-Basissystem eine
minimale Heimdal-Installation und nur eine
kerberisierte Anwendung: telnet.Der Heimdal-Port enthält noch mehr kerberisierte
Anwendungen wie ftp, rsh,
rcp und rlogin.
Der MIT-Port enthält ebenfalls
weitere kerberisierte Anwendungen..k5login und
.k5users.k5login.k5usersNormalerweise wird ein
Kerberos-Prinzipal wie
tillman@EXAMPLE.ORG auf ein lokales
Benutzerkonto, beispielsweise tillman,
abgebildet. Daher benötigen Client-Anwendungen (zum
Beispiel telnet) keinen Benutzernamen.Manchmal wird aber Zugriff auf ein lokales Benutzerkonto
benötigt, zu dem es keinen passenden
Kerberos-Prinzipal gibt.
Der Prinzipal tillman@EXAMPLE.ORG
bräuchte beispielsweise Zugriff auf das Konto
webdevelopers. Ebenso könnten
andere Prinzipale auf dieses Konto zugreifen wollen.Die Dateien .k5login und
.k5users im Heimatverzeichnis eines
Benutzerkontos gewähren Zugriffe ähnlich wie
die Dateien .hosts und
.rhosts. Um den Prinzipalen
tillman@example.org und
jdoe@example.org auf das Konto
webdevelopers zu geben, wird im
Heimatverzeichnis von webdevelopers
die Datei .k5login mit folgendem
Inhalt angelegt:tillman@example.org
jdoe@example.orgDie angegebenen Prinzipale haben nun ohne ein gemeinsames
Passwort Zugriff auf das Konto.Einzelheiten entnehmen Sie bitte den Hilfeseiten
zu diesen Dateien. Die Datei .k5users
wird in der Hilfeseite des Kommandos ksu
beschrieben.Tipps und FehlersucheKerberos5FehlersucheWenn Sie den Heimdal-Port oder den
MIT-Port benutzen, muss in der
Umgebungsvariable PATH der Pfad zu
den Programmen des Ports vor dem Pfad zu den
Kerberos-Programmen des Systems
stehen.Sind die Uhrzeiten der Systeme synchronisiert?
Wenn nicht, schlägt vielleicht die Authentifizierung
fehl. beschreibt, wie
Sie mithilfe von NTP die Uhrzeiten
synchronisieren.Die MIT- und Heimdal-Systeme
arbeiten bis auf kadmin gut zusammen.
Für kadmin wurde das Protokoll
nicht normiert.Wenn Sie den Namen eines Rechners ändern,
müssen Sie auch den host/-Prinzipal
ändern und die Datei keytab
aktualisieren. Dies betrifft auch spezielle Einträge
wie den Prinzipal für Apaches www/mod_auth_kerb.Die Rechnernamen müssen vor- und
rückwärts aufgelöst werden (im
DNS oder in
/etc/hosts).
CNAME-Einträge im
DNS funktionieren, aber die
entsprechenden A- und PTR-Einträge müssen
vorhanden und richtig sein. Wenn sich Namen nicht
auflösen lassen, ist die Fehlermeldung nicht
gerade selbstsprechend: Kerberos5 refuses
authentication because Read req
failed: Key table entry not found.Einige Betriebssysteme installieren
ksu mit falschen Zugriffsrechten;
es fehlt das Set-UID-Bit für root.
Das mag aus Sicherheitsgründen richtig sein,
doch funktioniert ksu dann nicht.
Dies ist kein Fehler des KDCs.Wenn Sie für einen Prinzipal unter
MIT-Kerberos
Tickets mit einer längeren Gültigkeit als
der vorgegebenen zehn Stunden einrichten wollen,
müssen Sie zwei Sachen ändern. Benutzen
Sie das modify_principal von
kadmin, um die maximale
Gültigkeitsdauer für den Prinzipal selbst
und den Prinzipal krbtgt
zu erhöhen.Mit einem Packet-Sniffer können Sie feststellen,
dass Sie sofort nach dem Aufruf von kinit
eine Antwort vom KDC
bekommen – noch bevor Sie überhaupt ein
Passwort eingegeben haben! Das ist in Ordnung:
Das KDC händigt
ein Ticket-Granting-Ticket (TGT)
auf Anfrage aus, da es durch einen vom Passwort
des Benutzers abgeleiteten Schlüssel
geschützt ist. Wenn das Passwort
eingegeben wird, wird es nicht zum KDC
gesendet, sondern zum Entschlüsseln der
Antwort des KDCs benutzt, die
kinit schon erhalten hat.
Wird die Antwort erfolgreich entschlüsselt,
erhält der Benutzer einen Sitzungs-Schlüssel
für die künftige verschlüsselte
Kommunikation mit dem KDC und das
Ticket-Granting-Ticket. Das Ticket-Granting-Ticket
wiederum ist mit dem Schlüssel des KDCs
verschlüsselt. Diese Verschlüsselung ist
für den Benutzer völlig transparent und
erlaubt dem KDC,
die Echtheit jedes einzelnen TGT
zu prüfen.Wenn Sie OpenSSH verwenden
und Tickets mir einer langen Gültigkeit
(beispielsweise einer Woche) benutzen, setzen Sie die Option
in der Datei
sshd_config auf no.
Ansonsten werden Ihre Tickets gelöscht, wenn Sie
sich abmelden.Host-Prinzipale können ebenfalls Tickets mit
längerer Gültigkeit besitzen. Wenn der
Prinzipal eines Benutzers über ein Ticket verfügt,
das eine Woche gültig ist, das Ticket des
Host-Prinzipals aber nur neun Stunden gültig ist,
funktioniert der Ticket-Cache nicht wie erwartet.
Im Cache befindet sich dann ein abgelaufenes Ticket
des Host-Prinzipals.Wenn Sie mit krb5.dict die
Verwendung schlechter Passwörter verhindern wollen,
geht das nur mit Prinzipalen, denen eine Passwort-Policy
zugewiesen wurde. Die Hilfeseite von
kadmind beschreibt kurz, wie
krb5.dict verwendet wird. Das
Format von krb5.dict ist
einfach: Die Datei enthält pro Zeile ein Wort.
Sie können daher einen symbolischen Link auf
/usr/share/dict/words erstellen.Unterschiede zum MIT-PortDer Hauptunterschied zwischen
MIT-Kerberos
und Heimdal-Kerberos
ist das Kommando kadmin.
Die Befehlssätze des Kommandos (obwohl funktional
gleichwertig) und das verwendete
Protokoll unterscheiden sich in beiden Varianten.
Das KDC lässt sich nur mit
dem kadmin Kommando der passenden
Kerberos-Variante verwalten.Für dieselbe Funktion können auch die
Client-Anwendungen leicht geänderte Kommandozeilenoptionen
besitzen. Folgen Sie bitte der Anleitung auf der
Kerberos-Seite
() des
MITs. Achten Sie besonders auf den
Suchpfad für Anwendungen. Der MIT-Port
wird standardmäßig in /usr/local/
installiert. Wenn die Umgebungsvariable PATH
zuerst die Systemverzeichnisse enthält, werden die
Systemprogramme anstelle der MIT-Programme
ausgeführt.Wenn Sie den MIT-Port
security/krb5 verwenden,
erscheint bei der Anmeldung mit telnetd
und klogind die Fehlermeldung
incorrect permissions on cache file.
Lesen Sie dazu bitte die im Port enthaltene Datei
/usr/local/share/doc/krb5/README.FreeBSD.
Wichtig ist, dass zur Authentifizierung die Binärdatei
login.krb5 verwendet wird, die
für durchgereichte Berechtigungen die Eigentümer
korrekt ändert.Beschränkungen von
KerberosKerberos5BeschränkungenKerberos muss ganzheitlich
verwendet werdenJeder über das Netzwerk angebotetene Dienst
muss mit Kerberos
zusammenarbeiten oder auf anderen Wegen gegen Angriffe
aus dem Netzwerk geschützt sein. Andernfalls
können Berechtigungen gestohlen und wiederverwendet
werden. Es ist beispielsweise nicht sinnvoll, für
Anmeldungen mit rsh und
telnetKerberos
zu benutzen, dagegen aber POP3-Zugriff
auf einen Mail-Server zu erlauben, da POP3
Passwörter im Klartext versendet.Kerberos ist für
Einbenutzer-Systeme gedachtIn Mehrbenutzer-Umgebungen ist
Kerberos unsicherer als in
Einbenutzer-Umgebungen, da die Tickets im für alle
lesbaren Verzeichnis /tmp
gespeichert werden. Wenn ein Rechner von mehreren
Benutzern verwendet wird, ist es möglich, dass
Tickets gestohlen werden.Dieses Problem können Sie lösen, indem Sie mit
der Kommandozeilenoption oder besser
mit der Umgebungsvariablen KRB5CCNAME einen
Ort für die Tickets vorgeben. Diese Vorgehensweise
wird leider selten benutzt. Es reicht, die Tickets
im Heimatverzeichnis eines Benutzers zu speichern und
mit Zugriffsrechten zu schützen.Das KDC ist verwundbarDas KDC muss genauso abgesichert
werden wie die auf ihm befindliche Passwort-Datenbank.
Auf dem KDC dürfen keine anderen
Dienste laufen und der Rechner sollte physikalisch
gesichert sein. Die Gefahr ist groß, da
Kerberos alle Passwörter
mit einem Schlüssel, dem Haupt-Schlüssel,
verschlüsselt. Der Haupt-Schlüssel wiederum
wird in einer Datei auf dem KDC
gespeichert.Ein kompromittierter Haupt-Schlüssel ist nicht
ganz so schlimm wie allgemein angenommen. Der
Haupt-Schlüssel wird nur zum Verschlüsseln
der Passwort-Datenbank und zum Initialisieren des
Zufallsgenerators verwendet. Solange der Zugriff
auf das KDC abgesichert ist, kann
ein Angreifer wenig mit dem Haupt-Schlüssel
anfangen.Wenn das KDC nicht zur Verfügung
steht, vielleicht wegen eines Denial-of-Service Angriffs
oder wegen eines Netzwerkproblems, ist eine Authentifizierung
unmöglich. Damit können die Netzwerk-Dienste
nicht benutzt werden; das KDC ist
also ein optimales Ziel für einen Denial-of-Service
Angriff. Sie können diesem Angriff ausweichen,
indem Sie mehrere KDCs (einen Master
und einen oder mehrere Slaves) verwenden. Der Rückfall
auf ein sekundäres KDC oder
eine andere Authentifizierungs-Methode (dazu ist
PAM bestens geeignet) muss sorgfältig
eingerichtet werden.Mängel von
KerberosMit Kerberos können
sich Benutzer, Rechner und Dienste gegenseitig
authentifizieren. Allerdings existiert kein Mechanismus,
der das KDC gegenüber Benutzern,
Rechnern oder Diensten authentifiziert. Ein verändertes
kinit könnte beispielsweise alle
Benutzernamen und Passwörter abfangen. Die von
veränderten Programmen ausgehende Gefahr können
Sie lindern, indem Sie die Integrität von Dateien
mit Werkzeugen wie
security/tripwire
prüfen.Weiterführende DokumentationKerberos5weiterführende DokumentationThe
Kerberos FAQDesigning
an Authentication System: a Dialogue in Four
ScenesRFC 1510,
The Kerberos Network
Authentication Service (V5)MIT
Kerberos-SeiteHeimdal
Kerberos-SeiteTomRhodesBeigetragen von OpenSSLSicherheitOpenSSLOpenSSLEs wird oft übersehen, dass
OpenSSL Teil des &os;-Basissystems
ist. OpenSSL bietet eine
verschlüsselte Transportschicht oberhalb der
normalen Kommunikationsschicht und kann daher zusammen
mit vielen Netzdiensten benutzt werden.Anwendungsbeispiele für OpenSSL
sind die verschlüsselte Authentifizierung von
E-Mail-Clients oder Web-Transaktionen wie das Bezahlen mit
einer Kreditkarte. OpenSSL
kann während des Baus in viele Ports, wie
www/apache13-ssl und
mail/sylpheed-claws,
integriert werden.Ist beim Aufruf von make die
Variable WITH_OPENSSL_BASE nicht
explizit auf yes gesetzt, baut
die Ports-Sammlung meist den Port
security/openssl.Das OpenSSL von &os; stellt
die Protokolle Secure Sockets Layer v2/v3 (SSLv2/SSLv3) und
Transport Layer Security v1 (TLSv1) zur Verfügung.
Die OpenSSL-Bibliotheken stellen
kryptographische Funktionen bereit.Mit OpenSSL kann der
IDEA-Algorithmus verwendet werden,
wegen Patenten in den USA ist der Algorithmus in der
Voreinstellung allerdings deaktiviert. Wenn Sie die
IDEA-Lizenz akzeptieren, können
Sie den IDEA-Algorithmus aktivieren,
indem Sie die Variable MAKE_IDEA
in make.conf setzen.Meist wird OpenSSL eingesetzt,
um Zertifikate für Anwendungen bereitzustellen. Die
Zertifikate stellen die Identität einer Firma oder
eines Einzelnen sicher. Wenn ein Zertifikat nicht von
einer Zertifizierungsstelle (Certificate
Authority, CA)
gegengezeichnet wurde, erhalten Sie normalerweise eine
Warnung. Eine Zertifizierungsstelle ist eine Firma
wie VeriSign,
die Zertifikate von Personen oder Firmen
gegenzeichnet und damit die Korrektheit der Zertifikate
bestätigt. Diese Prozedur kostet Geld, ist aber
keine Voraussetzung für den Einsatz von Zertifikaten,
beruhigt aber sicherheitsbewusste Benutzer.Zertifikate erzeugenOpenSSLZertifikate erzeugenEin Zertifikat erzeugen Sie mit dem nachstehenden
Kommando:&prompt.root; openssl req -new -nodes -out req.pem -keyout cert.pem
Generating a 1024 bit RSA private key
................++++++
.......................................++++++
writing new private key to 'cert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Pittsburgh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Systems Administrator
Common Name (eg, YOUR name) []:localhost.example.org
Email Address []:trhodes@FreeBSD.org
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:SOME PASSWORD
An optional company name []:Another NameBeachten Sie bitte, dass die Eingabe bei
Common Name ein gültiger Domain-Name
sein muss. Eine andere Eingabe erzeugt ein unbrauchbares
Zertifikat. Das Zertifikat kann mit einer
Gültigkeitsdauer und anderen
Verschlüsselungsalgorithmen erzeugt werden.
Die Hilfeseite &man.openssl.1; beschreibt die zur
Verfügung stehenden Optionen.Das Verzeichnis, in dem Sie den letzten Befehl ausgeführt
haben, enthält nun zwei Dateien: Die Anforderung für
ein neues Zertifikat wurde in req.pem
gespeichert. Diese Datei können Sie an eine
Zertifizierungsstelle senden, wo Ihre Angaben geprüft werden.
Nach erfolgreicher Prüfung wird das Zertifikat an Sie
zurückgesandt. Die zweite Datei, cert.pem,
enthält den privaten Schlüssel für Ihr Zertifikat
und darf auch keine Fall in fremde Hände geraten, da ein
Angreifer sonst in der Lage ist, anderen Personen oder Rechnern
vorzugaukeln, dass es sich bei ihm um Sie handelt.Wenn Sie keine Signatur einer Zertifizierungsstelle
benötigen, können Sie ein selbst-signiertes
Zertifikat erstellen. Erzeugen Sie dazu zuerst einen
RSA-Schlüssel:&prompt.root; openssl dsaparam -rand -genkey -out myRSA.key 1024Erzeugen Sie dann den CA-Schlüssel:&prompt.root; openssl gendsa -des3 -out myca.keymyRSA.keyErstellen Sie mit diesem Schlüssel das
Zertifikat:&prompt.root; openssl req -new -x509 -days 365 -key myca.key -out new.crtZwei neue Dateien befinden sich nun im Verzeichnis:
Der Schlüssel der Zertifizierungsstelle
myca.key und das Zertifikat selbst,
new.crt. Sie sollten in einem
Verzeichnis, vorzugsweise unterhalb von
/etc abgelegt
werden, das nur von root lesbar
ist. Setzen Sie die Zugriffsrechte der Dateien mit
chmod auf 0700.Beispiel für ZertifikateWas fangen Sie mit einem Zertifikat an? Sie
könnten damit beispielsweise die Verbindungen zu
Sendmail verschlüsseln.
Dies würde die Klartext-Authentifizierung
für Benutzer des lokalen MTA
überflüssig machen.Das ist nicht unbedingt die beste Lösung,
da einige MUAs Warnungen ausgeben,
wenn ein Zertifikat nicht lokal installiert ist.
Die Installation von Zertifikaten wird in der
Dokumentation der MUAs
beschrieben.Ergänzen Sie die Konfigurationsdatei von
sendmail (.mc)
um die nachstehenden Zeilen:dnl SSL Options
define(`confCACERT_PATH',`/etc/certs')dnl
define(`confCACERT',`/etc/certs/new.crt')dnl
define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
define(`confTLS_SRV_OPTIONS', `V')dnlIm Verzeichnis
/etc/certs
befindet sich der Schlüssel und das Zertifikat.
Bauen Sie danach im Verzeichnis
/etc/mail
mit dem Kommando make install
die .cf-Datei und starten
Sie anschließend sendmail
mit make restart neu.Wenn alles gut ging, erscheinen keine Fehlermeldungen
in der Datei /var/log/maillog und
Sie sehen sendmail in der
Prozessliste.Testen Sie nun den Mailserver mit dem Kommando
&man.telnet.1;:&prompt.root; telnet example.com 25
Trying 192.0.34.166...
Connected to example.com.
Escape character is '^]'.
220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
ehlo example.com
250-example.com Hello example.com [192.0.34.166], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP
quit
221 2.0.0 example.com closing connection
Connection closed by foreign host.Wenn in einer Zeile STARTTLS
erscheint, hat alles funktioniert.NikClaytonnik@FreeBSD.orgGeschrieben von VPNs mit IPsecIPsecDieser Abschnitt beschreibt, wie Sie mit &os;-Gateways
ein Virtual-Private-Network
(VPN) einrichten. Als Beispiel wird ein
VPN zwischen zwei Netzen verwendet,
die über das Internet miteinander verbunden sind.Hiten M.Pandyahmp@FreeBSD.orgGeschrieben von IPsec GrundlagenDieser Abschnitt zeigt Ihnen, wie Sie IPsec einrichten
und damit &os;-Systeme und µsoft.windows; 2000/XP Systeme
sicher miteinander verbinden. Um IPsec einzurichten,
sollten Sie einen neuen Kernel erzeugen können (siehe
).IPsec ist ein Protokoll, das auf dem Internet-Protokoll
(IP) aufbaut. Mit IPsec können mehrere Systeme
geschützt miteinander kommunizieren. Das in
&os; realisierte IPsec-Protokoll baut auf der
KAME-Implementierung
auf und unterstützt sowohl IPv4 als auch IPv6.&os; 5.X enthält eine von Hardware
beschleunigte Variante des IPsec-Protokolls. Diese
Variante wurde von OpenBSD übernommen und wird
Fast-IPsec genannt. Das
&man.crypto.4;-Subsystem arbeitet mit Kryptographie-Hardware
zusammen, die IPsec beschleunigt. Das Subsystem
ist neu und bietet noch nicht alle Funktionen, die
KAME-IPsec bietet. Wenn Sie die Hardware-Beschleunigung
nutzen wollen, fügen Sie folgende Zeile der
Kernelkonfiguration hinzu:KerneloptionFAST_IPSECoptions FAST_IPSEC # new IPsec (cannot define w/ IPSEC)Momentan können Sie Fast-IPsec
nicht zusammen mit KAME-IPsec benutzen. Weiteres zu
Fast-IPsec erfahren Sie in der
Hilfeseite &man.fast.ipsec.4;.IPsecESPIPsecAHIPsec besteht wiederum aus zwei Protokollen:Encapsulated Security Payload (ESP)
verschlüsselt IP-Pakete mit einem symmetrischen Verfahren
(beispielsweise Blowfish oder 3DES). Damit werden
die Pakete vor Manipulationen Dritter geschützt.Der Authentication Header (AH)
enthät eine kryptographische Prüsumme,
die sicher stellt, dass ein IP-Paket nicht verändert
wurde. Der Authentication-Header folgt nach dem
normalen IP-Header und erlaubt dem Empfänger
eines IP-Paketes, dessen Integrität zu
prüfen.ESP und AH
können, je nach Situation, zusammen oder einzeln
verwendet werden.VPNVirtual Private NetworkVPNIPsec kann in zwei Modi betrieben werden: Der
Transport-Modus verschlüsselt
die Daten zwischen zwei Systemen. Der
Tunnel-Modus verbindet zwei
Subnetze miteinander. Durch einen Tunnel können
dann beispielsweise verschlüsselte Daten übertragen
werden. Ein Tunnel wird auch als Virtual-Private-Network (VPN)
bezeichnet. Detaillierte Informationen über
das IPsec-Subsystem von &os; enthält die
Hilfeseite &man.ipsec.4;.Die folgenden Optionen in der Kernelkonfiguration
aktivieren IPsec:KerneloptionIPSECKerneloptionIPSEC_ESPoptions IPSEC #IP security
options IPSEC_ESP #IP security (crypto; define w/ IPSEC)KerneloptionIPSEC_DEBUGWenn Sie zur Fehlersuche im IPsec-Subsystem
Unterstützung wünschen, sollten Sie die
folgende Option ebenfalls aktivieren:options IPSEC_DEBUG #debug for IP securityWas ist ein VPN?Es gibt keinen Standard, der festlegt, was ein
Virtual-Private-Network ist. VPNs können mit
verschiedenen Techniken, die jeweils eigene Vor- und
Nachteile besitzen, implementiert werden.
Dieser Abschnitt stellt eine Möglichkeit vor,
ein VPN aufzubauen.VPN zwischen zwei Netzen über das InternetVPNeinrichtenDieses Szenario hat die folgenden Vorausetzungen:Es müssen zwei Netzwerke vorhanden sein.Beide Netzwerke müssen intern IP benutzen.Beide Netzwerke sind über einen &os;-Gateway
mit dem Internet verbunden.Der Gateway jedes Netzwerks besitzt mindestens
eine öffentliche IP-Adresse.Die intern verwendeten IP-Adressen können
private oder öffentliche Adressen sein.
Der Gateway kann, wenn nötig, IP-Adressen mit
NAT umschreiben.Die IP-Adressen der internen Netzwerke
dürfen nicht überlappen.
Mit NAT ließe sich diese Anforderung zwar umgehen, doch
wäre die Konfiguration und Pflege des resultierenden
Netzwerks zu aufwändig.Wenn die zu verbindenden Netzwerke intern dieselben
IP-Adressen benutzen (beispielsweise
192.168.1.x), müssen
einem der Netzwerke neue IP-Adressen zugewiesen werden.Die Netzwerktopologie sieht wie folgt aus:Netzwerk #1 [ Interne Rechner ] Privates Netz, 192.168.1.2-254
[ Win9x/NT/2K ]
[ UNIX ]
|
|
.---[fxp1]---. Private IP, 192.168.1.1
| FreeBSD |
`---[fxp0]---' Öffentliche IP, A.B.C.D
|
|
-=-=- Internet -=-=-
|
|
.---[fxp0]---. Öffentliche IP, W.X.Y.Z
| FreeBSD |
`---[fxp1]---' Private IP, 192.168.2.1
|
|
Netzwerk #2 [ Interne Rechner ]
[ Win9x/NT/2K ] Privates Netz, 192.168.2.2-254
[ UNIX ]Beachten Sie die beiden öffentlichen IP-Adressen.
Im Folgenden werden sie durch Buchstaben (als Platzhalter)
gekennzeichnet. Setzen Sie hierfür Ihre eigenen
öffentlichen IP-Adressen ein. Beide Gateways
besitzen die interne Adresse
x.x.x.1 und beide
Netzwerke besitzen unterschiedliche private IP-Adressen:
192.168.1.x und
192.168.2.x. Die Default-Route
aller internen Systeme ist jeweils die Gateway-Maschine
(x.x.x.1).Aus der Sicht der Systeme sollen jetzt beide
Netzwerke wie über einen Router, der in diesem
Fall etwas langsamer ist, verbunden werden.Auf dem Rechner 192.168.1.20
soll also beispielsweise der folgende Befehl funktionieren:ping 192.168.2.34&windows;-Systeme sollen die Systeme auf dem anderen
Netzwerk erkennen und Shares sollen funktionieren. Alles
soll genauso wie in lokalen Netzwerken funktionieren.Zusätzlich soll die Kommunikation zwischen beiden
Netzwerken noch verschlüsselt werden.Das VPN wird in mehreren Schritten aufgebaut:Zuerst wird eine virtuelle Verbindung zwischen
beiden Netzwerken über das Internet eingerichtet.
Die virtuelle Verbindung können Sie mit Werkzeugen
wie &man.ping.8; prüfen.Danach wird eine Sicherheitsrichtlinie
(Security-Policy) festgelegt,
die automatisch den Datenverkehr zwischen beiden
Netzwerken verschlüsselt und entschlüsselt.
Mit Werkzeugen wie &man.tcpdump.1; können Sie
überprüfen, dass die Daten tatsächlich
verschlüsselt werden.Wenn sich &windows;-Systeme im VPN gegenseitig
erkennen sollen, so sind noch weitere
Konfigurationsschritte notwendig, die aber nicht
in diesem Abschnitt beschrieben werden.Schritt 1: Die virtuelle Verbindung einrichtenNehmen wir an, sie wollten von der Gateway-Maschine
im Netzwerk #1 (öffentliche IP-Adresse
A.B.C.D, private IP-Adresse
192.168.1.1) das Kommando
ping 192.168.2.1 absetzen.
192.168.2.1 ist die private
IP-Adresse des Systems W.X.Y.Z
im Netzwerk #2. Welche Voraussetzungen müssen
erfüllt sein, damit der Befehl funktioniert?Die Gateway-Maschine muss das System
192.168.2.1 erreichen
können. Das heißt, eine Route zu diesem
System muss existieren.Private IP-Adressen, wie der Bereich
192.168.x, sollten im
Internet nicht verwendet werden. Jedes Paket zu
192.168.2.1 muss daher
in ein anderes Paket gepackt werden, das von
A.B.C.D kommt und
zu W.X.Y.Z geschickt
wird. Das erneute Verpacken der Pakete wird als
Kapselung bezeichnet.Wenn das Paket W.X.Y.Z
erreicht, muss es dort ausgepackt und an
192.168.2.1 ausgeliefert
werden.Sie können sich diese Prozedur so vorstellen,
dass ein Tunnel zwischen beiden Netzwerken existiert.
Die beiden Tunnel-Enden besitzen die IP-Adressen
A.B.C.D und
W.X.Y.Z. Der Tunnel
muss zudem Verkehr zwischen den privaten IP-Adressen
erlauben und transportiert so Daten zwischen privaten
IP-Adressen über das Internet.Unter &os; wird der Tunnel mit
gif-Geräten (generic
interface) erstellt. Auf jedem Gateway
muss das gif-Gerät mit
vier IP-Adressen eingerichtet werden: Zwei öffentliche
IP-Adressen und zwei private IP-Adressen.Die gif-Geräte werden vom
Kernel bereitgestellt und müssen in der
Kernelkonfigurationsdatei auf beiden Maschinen angegeben
werden:device gifWie gewöhnlich müssen Sie danach einen
neuen Kernel erstellen, installieren und das System
neu starten.Der Tunnel wird in zwei Schritten aufgebaut. Mit
&man.gifconfig.8; werden zuerst die öffentlichen
IP-Adressen konfiguriert. Anschließend werden
die privaten IP-Adressen mit &man.ifconfig.8; eingerichtet.In &os; 5.X sind die Funktionen von
&man.gifconfig.8; in das Kommando &man.ifconfig.8;
integriert.Auf der Gateway-Maschine im Netzwerk #1 bauen
Sie den Tunnel mit den folgenden Kommandos auf:gifconfig gif0 A.B.C.D W.X.Y.Z
ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffffAuf dem anderen Gateway benutzen Sie dieselben Kommandos,
allerdings mit vertauschten IP-Adressen:gifconfig gif0 W.X.Y.Z A.B.C.D
ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffffDie Konfiguration können Sie anschließend mit
dem folgenden Kommando überprüfen:gifconfig gif0Auf dem Gateway in Netzwerk #1 sollten Sie
beispielsweise die nachstehende Ausgabe erhalten:&prompt.root; gifconfig gif0
gif0: flags=8011<UP,POINTTOPOINT,MULTICAST> mtu 1280
inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff
physical address inet A.B.C.D --> W.X.Y.ZWie Sie sehen, ist ein Tunnel zwischen den IP-Adressen
A.B.C.D und
W.X.Y.Z aufgebaut worden,
der Verkehr zwischen den Adressen
192.168.1.1 und
192.168.2.1 zulässt.Gleichzeitig wurde ein Eintrag in der Routing-Tabelle
erstellt, den Sie sich mit netstat -rn
ansehen können. Auf der Gateway-Maschine in Netzwerk #1
sieht das so aus:&prompt.root; netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
...
192.168.2.1 192.168.1.1 UH 0 0 gif0
...Die Route ist eine Host-Route, wie in der Spalte
Flags angegeben. Das heißt
die beiden Gateways wissen wie sie einander erreichen,
sie kennen allerdings nicht das Netzwerk auf der
anderen Seite. Dieses Problem werden wir gleich
angehen.Wahrscheinlich ist auf beiden Gateways eine Firewall
eingerichtet. Für den VPN-Verkehr muss die Firewall
umgegangen werden. Sie können generell den Verkehr
zwischen beiden Netzwerken erlauben oder Regeln erstellen,
die beide Tunnel-Enden des VPNs voreinander schützen.Der Test des VPNs wird erheblich leichter, wenn Sie
jeden Verkehr zwischen den Tunnel-Enden in der Firewall
erlauben. Wenn Sie auf der Gateway-Maschine &man.ipfw.8;
einsetzen, erlaubt die folgende Regel jeden Verkehr
zwischen den Tunnel-Enden, ohne die anderen Regeln zu
beeinflussen:ipfw add 1 allow ip from any to any via gif0Diese Regel muss offensichtlich auf beiden Gateway-Maschinen
existieren.Damit sollten Sie das Kommando ping
jetzt absetzen können. Auf dem System
192.168.1.1 sollte der
nachstehende Befehl Antworten erhalten:ping 192.168.2.1Denselben Test können Sie auch auf der anderen
Gateway-Maschine ausführen.Allerdings können Sie noch nicht die anderen
internen Maschinen auf den Netzwerken erreichen. Die Ursache
ist das Routing – die Gateway kennen sich zwar
gegenseitig, wissen aber noch nichts von den Netzwerken
hinter dem anderen Gateway.Um die Netzwerke bekannt zu geben, muss auf jeder
Gateway-Maschine noch eine statische Route hinzugefügt
werden. Auf der ersten Gateway-Maschine setzen Sie dazu
das folgende Kommando ab:route add 192.168.2.0 192.168.2.1 netmask 0xffffff00Dies entspricht der Anweisung: Um Rechner
auf dem Netz 192.168.2.0
zu erreichen, schicke die Pakete zum System
192.168.2.1. Auf
dem anderen Gateway muss das analoge Kommando (mit den
IP-Adressen 192.168.1.x)
abgesetzt werden.Damit ist jetzt der IP-Verkehr zwischen beiden
Netzwerken möglich.Zwei Drittel des VPNs zwischen beiden Netzen
ist nun eingerichtet. Es ist virtuell und
es ist ein Netzwerk. Es ist allerdings
noch nicht privat. Dies können Sie
mit &man.ping.8; und &man.tcpdump.1; überprüfen.
Setzen Sie auf dem ersten Gateway den folgenden Befehl ab:tcpdump dst host 192.168.2.1Starten Sie dann, ebenfalls auf dem ersten Gateway, den
folgenden Befehl:ping 192.168.2.1Sie werden die nachstehende Ausgabe erhalten:16:10:24.018080 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:24.018109 192.168.1.1 > 192.168.2.1: icmp: echo reply
16:10:25.018814 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:25.018847 192.168.1.1 > 192.168.2.1: icmp: echo reply
16:10:26.028896 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:26.029112 192.168.1.1 > 192.168.2.1: icmp: echo replyDie ICMP-Nachrichten werden unverschlüsselt
übertragen. Mit der Option
von &man.tcpdump.1; können Sie sich weitere Daten
der Pakete anzeigen lassen.Die Daten sollen aber automatisch verschlüsselt
werden. Wie das geht, wird im nächsten Abschnitt
erläutert.Zusammenfassung
- Richten sie in beiden Kerneln das
- gif-Gerät ein.
+ Fügen Sie in beiden Kerneln die Zeile
+ device gif ein und bauen Sie die Kernel
+ neu.Fügen Sie auf dem Gateway in Netzwerk #1
folgende Zeilen in /etc/rc.conf
ein:gifconfig_gif0="A.B.C.D W.X.Y.Z"
ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff"
static_routes="vpn"
route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00"Setzen Sie dabei die richtigen IP-Adressen für
die Platzhalter ein.Fügen Sie auf beiden Gateways die nachstehende
Regel in das Firewall-Skript (zum Beispiel
/etc/rc.firewall) ein:ipfw add 1 allow ip from any to any via gif0Nehmen Sie in /etc/rc.conf auf dem
Gateway #2 analoge Änderungen, die IP-Adressen
müssen vertauscht werden, vor.Schritt 2: Die Verbindung mit IPsec schützenUm die Verbindung zu schützen, verwenden wir IPsec.
IPsec bietet einen Mechanismus, mit dem sich zwei
Systeme auf einen Schlüssel einigen können.
Mit diesem Schlüssel wird dann der Datenverkehr zwischen
beiden Systemen verschlüsselt.Es gibt hierbei zwei Sachen die konfiguriert werden
müssen:Die Security-Association bestimmt,
mit welchen Methoden der Verkehr zwischen beiden Systemen
verschlüsselt wird.Die Security-Policy bestimmt,
was verschlüsselt wird. Es soll ja nicht der
gesamte Datenverkehr nach außen verschlüsselt
werden, sondern nur der Teil des Verkehrs, der zum
VPN gehört.Die Security-Association wie auch die Security-Policy
werden vom Kernel verwaltet und können von Anwendungen
verändert werden. Dazu müssen allerdings zuerst
IPsec und das Encapsulated-Security-Payload (ESP) Protokoll
in die Kernelkonfigurationsdatei eingetragen werden:KerneloptionIPSECoptions IPSEC
options IPSEC_ESPWie üblich, müssen Sie danach den Kernel
übersetzen, installieren und das System neu starten.
Die Kernel müssen auf beiden Gateway-Maschinen
neu erstellt werden.IKESie können die Security-Association auf zwei
Arten konfigurieren: Manuell, dann müssen Sie
den Verschlüsselungsalgorithmus, die Schlüssel
und alles Weitere selbst konfigurieren. Oder automatisch,
mithilfe eines Dæmons, der das Internet-Key-Exchange
Protokoll (IKE) beherrscht.Im Allgemeinen wird die letzte Variante bevorzugt.
Sie ist auch wesentlich leichter einzurichten.IPsecSecurity-PolicysetkeyMit &man.setkey.8; können Sie Security-Policies
editieren und anzeigen. Die Beziehung von
setkey und der Tabelle der
Security-Policies im Kernel entspricht
dem Verhältnis von &man.route.8; und der Routing-Tabelle.
Die momentanen Security-Associations lassen sich ebenfalls
mit setkey anzeigen;
setkey verhält sich in diesem Fall
wie netstat -r, um die Analogie
fortzuführen.Sie haben die Wahl zwischen mehreren Programmen,
wenn Sie Security-Associations mit &os; verwalten
wollen. Im Folgenden wird racoon
beschrieben, das Sie über den Port security/ipsec-tools
installieren können.racoonAuf beiden Gateway-Maschinen muss
racoon laufen.
Konfiguriert wird jeweils die IP-Adresse der Gegenstelle
sowie der geheime Schlüssel. Dabei muss auf beiden
Gateway-Maschinen der gleiche Schlüssel verwendet
werden.Die beiden raccon-Daemonen prüfen mithilfe des
geheimen Schlüssels gegenseitig ihre Identität.
Anschließend generieren Sie einen neuen geheimen
Schlüssel, mit dem dann der Datenverkehr im VPN
verschlüsselt wird. Dieser Schlüssel wird
von Zeit zu Zeit geändert. Ein Angreifer,
der einen der Schlüssel geknackt hat – das ist
schon ziemlich unwahrscheinlich – kann somit nicht
viel mit diesem Schlüssel anfangen, da schon wieder ein
anderer Schlüssel verwendet wird.Die Konfiguration von racoon befindet sich in
${PREFIX}/etc/racoon. In der
dort befindlichen Konfigurationsdatei sollten Sie nicht
allzu viele Änderungen vornehmen müssen.
Sie müssen allerdings den so genannten
Pre-Shared-Key (den vorher ausgetauschten
Schlüssel) ändern.In der Voreinstellung befindet sich dieser Schlüssel
in der Datei ${PREFIX}/etc/racoon/psk.txt.
Dieser Schlüssel wird nicht zum
Verschlüsseln des Datenverkehrs verwendet. Er dient
lediglich der Authentifizierung der beiden racoon-Daemonen.Für jeden entfernten Kommunikationspartner enthält
psk.txt eine Zeile. Damit besteht die
Datei psk.txt in unserem Beispiel
aus einer Zeile (wir verwenden einen entfernten
Kommunikationspartner).Auf dem Gateway #1 sieht diese Zeile wie
folgt aus:W.X.Y.Z geheimDie Zeile besteht aus der öffentlichen IP-Adresse
der Gegenstelle, Leerzeichen und dem geheimen Schlüssel.
Sie sollten natürlich nicht geheim
verwenden. Für den geheimen Schlüssel gelten
dieselben Regeln wie für Passwörter.Auf dem anderen Gateway sieht die Zeile
folgendermaßen aus:A.B.C.D geheimDie Zeile besteht aus der öffentlichen IP-Adresse
der Gegenstelle, Leerzeichen und dem geheimen Schlüssel.
Die Zugriffsrechte von psk.txt müssen
auf 0600 (Lese- und Schreibzugriff nur
für root) gesetzt sein, bevor
racoon gestartet wird.Auf beiden Gateway-Maschinen muss racoon laufen. Sie
brauchen ebenfalls Firewall-Regeln, die IKE-Verkehr
erlauben. IKE verwendet UDP, um Nachrichten zum
ISAKMP-Port (Internet Security Association Key Management Protocol)
zu schicken. Die Regeln sollten früh in der
Regelkette auftauchen:ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmpWenn racoon läuft, können Sie versuchen,
mit ping von einem Gateway-Rechner aus
den anderen Gateway zu erreichen. Die Verbindung wird zwar immer
noch nicht verschlüsselt, aber racoon wird die
Security-Association zwischen beiden Systemen einrichten.
Dies kann eine Weile dauern, und Sie bemerken vielleicht
eine kleine Verzögerung, bevor die Antworten von
der Gegenstelle kommen.Die Security-Association können Sie sich auf einem
der beiden Gateway-Systeme mit &man.setkey.8; ansehen:setkey -DDamit ist die erste Hälfte der Arbeit getan.
Jetzt muss noch die Security-Policy konfiguriert werden.Damit wir eine sinnvolle Security-Policy erstellen
können, fassen wir das bisher geleistete zusammen.
Die Diskussion gilt für beide Enden des Tunnels.Jedes gesendete IP-Paket enthält im Header
Informationen über das Paket selbst. Im Header
befinden sich die IP-Adressen des Senders und des
Empfängers. Wie wir bereits wissen, dürfen
private IP-Adressen, wie
192.168.x.y nicht auf
das Internet gelangen. Pakete zu privaten IP-Adressen
müssen zuerst in einem anderen Paket gekapselt
werden. In diesem Paket werden die privaten IP-Adressen
durch öffentliche IP-Adressen ersetzt.Das ausgehende Paket hat beispielsweise wie folgt
ausgesehen:
.----------------------.
| Src: 192.168.1.1 |
| Dst: 192.168.2.1 |
| <other header info> |
+----------------------+
| <packet data> |
`----------------------'Es wird in ein anderes Paket umgepackt (gekapselt)
und sieht danach wie folgt aus:
.--------------------------.
| Src: A.B.C.D |
| Dst: W.X.Y.Z |
| <other header info> |
+--------------------------+
| .----------------------. |
| | Src: 192.168.1.1 | |
| | Dst: 192.168.2.1 | |
| | <other header info> | |
| +----------------------+ |
| | <packet data> | |
| `----------------------' |
`--------------------------'Die Kapselung wird vom gif-Gerät
vorgenommen. Das neue Paket enthält im Header eine
öffentliche IP-Adresse und der Datenteil des Pakets
enthält das ursprüngliche Paket.Natürlich soll der gesamte Datenverkehr des VPNs
verschlüsselt werden. Dies kann man wie folgt
ausdrücken:Wenn ein Paket von A.B.C.D
zu W.X.Y.Z geschickt wird,
verschlüssele es entsprechend der
Security-Association.Wenn ein Paket von W.X.Y.Z
kommt und für A.B.C.D
bestimmt ist, entschlüssele es entsprechend der
Security-Association.Das ist fast richtig. Mit diesen Regeln würde
der ganze Verkehr von und zu W.X.Y.Z
verschlüsselt, auch wenn er nicht zum VPN gehört.
Die richtige Formulierung lautet:Wenn ein Paket, das ein gekapseltes Paket enthält,
von A.B.C.D zu
W.X.Y.Z geschickt wird,
verschlüssele es entsprechend der
Security-Association.Wenn ein Paket, das ein gekapseltes Paket enthält,
von W.X.Y.Z kommt und für
A.B.C.D bestimmt ist,
entschlüssele es entsprechend der
Security-Association.Dies ist eine zwar subtile aber eine
notwendige Änderung.Die Security-Policy können Sie mit &man.setkey.8;
erstellen. &man.setkey.8; besitzt eine Konfigurations-Syntax
zur Erstellung der Security-Policy. Sie können die
Konfiguration über die Standardeingabe oder in einer
Datei, die Sie mit der Option angeben,
erstellen.Gateway #1 (öffentliche IP-Adresse:
A.B.C.D) muss
folgendermaßen konfiguriert werden, um alle
ausgehenden Pakete an W.X.Y.Z
zu verschlüsseln:spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;Speichern Sie dieses Kommando in einer Datei, beispielsweise
/etc/ipsec.conf ab. Rufen Sie
anschließend das nachstehende Kommando auf:&prompt.root; setkey -f /etc/ipsec.conf weist &man.setkey.8; an,
der Security-Policy-Datenbank eine Regel hinzuzufügen.
Der Rest der Zeile gibt an, auf welche Pakete diese
Regel zutrifft. A.B.C.D/32
und W.X.Y.Z/32 sind
die IP-Adressen und Netzmasken, die Systeme angeben,
auf die diese Regel zutrifft. Im Beispiel gilt die
Regel für die beiden Gateway-Systeme.
zeigt an, dass die Regel nur
für Pakete gilt, die gekapselte Pakete enthalten.
legt fest, dass die Regel nur
für ausgehende Pakete gilt. gibt an, dass die Pakete
geschützt werden. Das benutzte Protokoll
wird durch angegeben.
kapselt das Paket in ein
IPsec-Paket. Die nochmalige Angabe von
A.B.C.D und
W.X.Y.Z gibt die
Security-Association an. Das abschließende
erzwingt die Verschlüsselung
der Pakete.Diese Regel gilt nur für ausgehende Pakete.
Sie brauchen eine analoge Regel für eingehende
Pakete:spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;In dieser Regel wird anstelle
von benutzt und die IP-Adressen
sind notwendigerweise umgekehrt angegeben.Das zweite Gateway-System mit der IP-Adresse
W.X.Y.Z braucht
entsprechende Regeln:spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;Schließlich brauchen Sie auf beiden Gateway-Systemen
noch Firewall-Regeln, die ESP- und IPENCAP-Pakete in beide
Richtungen erlauben:ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.DDa die Regeln symmetrisch sind, können sie auf
beiden Systemen verwendet werden.Damit sehen ausgehende Pakete wie folgt aus:
.------------------------------. --------------------------.
| Src: A.B.C.D | |
| Dst: W.X.Y.Z | |
| < weitere Header > | | Encrypted
+------------------------------+ | packet.
| .--------------------------. | -------------. | contents
| | Src: A.B.C.D | | | | are
| | Dst: W.X.Y.Z | | | | completely
| | < weitere Header > | | | |- secure
| +--------------------------+ | | Encap'd | from third
| | .----------------------. | | -. | packet | party
| | | Src: 192.168.1.1 | | | | Original |- with real | snooping
| | | Dst: 192.168.2.1 | | | | packet, | IP addr |
| | | < weitere Header > | | | |- private | |
| | +----------------------+ | | | IP addr | |
| | | <Paket-Daten> | | | | | |
| | `----------------------' | | -' | |
| `--------------------------' | -------------' |
`------------------------------' --------------------------'
Am anderen Ende des VPNs werden die Pakete zuerst
entsprechend der von racoon ausgehandelten Security-Association
entschlüsselt. Das gif-Interface
entfernt dann die zweite Schicht, damit das ursprüngliche
Paket zum Vorschein kommt. Dieses kann dann in das interne
Netzwerk transportiert werden.Dass die Pakete wirklich verschlüsselt werden,
können Sie wieder mit &man.ping.8; überprüfen.
Melden Sie sich auf dem Gateway
A.B.C.D an und rufen
das folgende Kommando auf:tcpdump dst host 192.168.2.1Auf demselben Rechner setzen Sie dann noch das
nachstehende Kommando ab:ping 192.168.2.1Dieses Mal wird die Ausgabe wie folgt aussehen:XXX tcpdump outputJetzt zeigt &man.tcpdump.1; ESP-Pakete an. Auch wenn
Sie diese mit der Option untersuchen,
werden Sie wegen der Verschlüsselung nur
unverständliche Zeichen sehen.Herzlichen Glückwunsch. Sie haben soeben ein
VPN zwischen zwei entfernten Netzen eingerichtet.ZusammenfassungIPsec muss in beiden Kernelkonfigurationsdateien
enthalten sein:options IPSEC
options IPSEC_ESPInstallieren Sie den Port security/ipsec-tools. Tragen Sie
auf beiden Rechnern in
${PREFIX}/etc/racoon/psk.txt jeweils
die IP-Adresse des entfernten Gateways und den geheimen
Schlüssel ein. Setzen Sie die Zugriffsrechte der
Datei auf 0600.Fügen Sie auf jedem Rechner die folgenden
Zeilen zu /etc/rc.conf hinzu:ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"Erstellen Sie auf jedem Rechner die Datei
/etc/ipsec.conf mit den nötigen
-Zeilen. Auf dem Gateway #1
hat die Datei folgenden Inhalt:spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec
esp/tunnel/A.B.C.D-W.X.Y.Z/require;
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec
esp/tunnel/W.X.Y.Z-A.B.C.D/require;Auf dem Gateway #2 sieht die Datei so aus:spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec
esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec
esp/tunnel/A.B.C.D-W.X.Y.Z/require;Fügen Sie auf beiden Rechnern Firewall-Regeln
hinzu, die IKE-, ESP- und IPENCAP-Verkehr erlauben:ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.DDas VPN wurde in zwei Schritten eingerichtet. Maschinen
auf beiden Netzen können miteinander kommunizieren
und der Datenverkehr zwischen beiden Netzen wird automatisch
verschlüsselt.ChernLeeBeigetragen von OpenSSHOpenSSHSicherheitOpenSSHOpenSSH stellt Werkzeuge bereit,
um sicher auf entfernte
Maschinen zuzugreifen. Die Kommandos rlogin,
rsh, rcp und
telnet können durch
OpenSSH ersetzt werden.
- Zusätzlich können andere TCP/IP-Verbindungen sicher durch
+ Zusätzlich können TCP/IP-Verbindungen sicher durch
SSH weitergeleitet (getunnelt) werden. Mit SSH werden alle
Verbindungen verschlüsselt, dadurch wird verhindert, dass
die Verbindung zum Beispiel abgehört oder übernommen
(Hijacking) werden kann.OpenSSH wird vom OpenBSD-Projekt
gepflegt und basiert auf SSH v1.2.12 mit allen aktuellen
Fixen und Aktualisierungen. OpenSSH
ist mit den SSH-Protokollen der Versionen 1 und 2 kompatibel. Seit
&os; 4.0 ist die OpenSSH Teil
des Basissystems.Vorteile von OpenSSHMit &man.telnet.1; oder &man.rlogin.1; werden Daten in
einer unverschlüsselten Form über das Netzwerk
gesendet. Daher besteht die Gefahr, das Benutzer/Passwort
Kombinationen oder alle Daten an beliebiger Stelle zwischen
dem Client und dem Server abgehört werden. Mit
OpenSSH stehen eine Reihe von
Authentifizierungs- und Verschlüsselungsmethoden zur
Verfügung, um das zu verhindern.Aktivieren von sshdOpenSSHaktivierenUnter &os; 4.X ist der
sshd-Daemon bereits in der
- Voreinstellung aktiviert. Unter &os; 5.X hat der Anwender
- die Wahl, ob der Daemon aktiviert werden soll oder nicht.
- Um zu überprüfen, ob der Daemon bei Ihnen
- aktiviert ist, suchen Sie in rc.conf
- nach der folgenden Zeile:
+ Voreinstellung aktiviert. Unter &os; 5.X entscheidet der
+ Anwender bei einer Standard-Installation, ob
+ der sshd-Daemon aktiviert werden soll.
+ Um zu überprüfen, ob sshd
+ auf Ihrem System aktiviert ist, suchen Sie in
+ rc.conf nach der folgenden Zeile:
sshd_enable="YES"
- Dadurch wird &man.sshd.8;, der Dæmon von
- OpenSSH beim nächsten Neustart
- geladen. Alternativ können Sie den Dæmon auch
- direkt starten, indem Sie auf der Kommandozeile das Kommando
- sshd absetzen.
+ Ist diese Zeile vorhanden, wird &man.sshd.8;, der
+ OpenSSH-Dæmon, beim
+ Systemstart automatisch aktiviert. Alternativ können Sie
+ den Dæmon auch durch die Eingabe von
+ sshd auf der Kommandozeile starten.SSH ClientOpenSSHClient&man.ssh.1; arbeitet ähnlich wie &man.rlogin.1;:&prompt.root; ssh user@example.com
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? yes
Host 'example.com' added to the list of known hosts.
user@example.com's password: *******Der Anmeldevorgang wird danach, wie von
rlogin oder telnet gewohnt,
weiterlaufen. SSH speichert einen Fingerabdruck des
Serverschlüssels. Die Aufforderung, yes
einzugeben, erscheint nur bei der ersten Verbindung zu einem
Server. Weitere Verbindungen zu dem Server werden gegen den
gespeicherten Fingerabdruck des Schlüssels geprüft und
der Client gibt eine Warnung aus, wenn sich der empfangene
Fingerabdruck von dem gespeicherten unterscheidet. Die
Fingerabdrücke der Version 1 werden in
~/.ssh/known_hosts, die der Version 2 in
~/.ssh/known_hosts2 gespeichert.In der Voreinstellung akzeptieren aktuelle
OpenSSH-Server nur SSH v2
Verbindungen. Wenn möglich, wird Version 2 verwendet,
ist dies nicht möglich, fällt der Server auf
Version 1 zurück. Der Client kann gezwungen werden,
nur eine der beiden Versionen zu verwenden, indem die Option
(für die Version 1) oder
(für die Version 2) übergeben
wird. Die Unterstützung für Version 1 ist nur
noch aus Kompatibilitätsgründen zu älteren
Versionen enthalten.Secure CopyOpenSSHsecure copyscpMit &man.scp.1; lassen sich Dateien analog wie mit
&man.rcp.1; auf entfernte Maschinen kopieren. Mit
scp werden die Dateien allerdings in einer
sicheren Weise übertragen.&prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT
user@example.com's password:
COPYRIGHT 100% |*****************************| 4735
00:00
&prompt.root;Da der Fingerabdruck schon im vorigen Beispiel abgespeichert
wurde, wird er bei der Verwendung von scp in
diesem Beispiel überprüft. Da die Fingerabdrücke
übereinstimmen, wird keine Warnung ausgegeben.Die Argumente, die scp übergeben
werden, gleichen denen von cp in der Beziehung,
dass die ersten Argumente die zu kopierenden Dateien sind und
das letzte Argument den Bestimmungsort angibt. Da die Dateien
über das Netzwerk kopiert werden, können ein oder mehrere
Argumente die Form
besitzen.KonfigurationOpenSSHKonfigurationDie für das ganze System gültigen
Konfigurationsdateien des
OpenSSH-Dæmons und des Clients
finden sich in dem Verzeichnis
/etc/ssh.Die Client-Konfiguration befindet sich in
ssh_config, die des Servers befindet sich in
sshd_config.Das SSH-System lässt sich weiterhin über die
Anweisungen (Vorgabe ist
/usr/sbin/sshd) und
in /etc/rc.conf
konfigurieren.ssh-keygenMit &man.ssh-keygen.1; können DSA- oder RSA-Schlüssel
für einen Benutzer erzeugt werden, die anstelle von
Passwörtern verwendet werden können:&prompt.user; ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com
&man.ssh-keygen.1; erzeugt einen öffentlichen und einen
privaten Schlüssel für die Authentifizierung. Der private
Schlüssel wird in ~/.ssh/id_dsa oder
~/.ssh/id_rsa gespeichert, während
sich der öffentliche Schlüssel in
~/.ssh/id_dsa.pub oder
~/.ssh/id_rsa.pub befindet, je nachdem,
ob es sich um einen DSA- oder einen RSA-Schlüssel handelt.
Der öffentliche Schlüssel muss in die Datei
~/.ssh/authorized_keys auf dem entfernten
Rechner aufgenommen werden, damit der Schlüssel
funktioniert. Analog muss auch ein
RSA-Version 1-Schlüssel nach
~/.ssh/authorized_keys kopiert werden.Damit werden Verbindungen zu der entfernten Maschine über
SSH-Schlüsseln anstelle von Passwörtern
authentifiziert.Wenn bei der Erstellung der Schlüssel mit
&man.ssh-keygen.1; ein Passwort angegeben wurde, wird der
Benutzer bei jeder Anmeldung zur Eingabe des Passworts
aufgefordert. Um den Umgang mit SSH-Schlüsseln zu
erleichtern, kann &man.ssh-agent.1; die Verwaltung dieser
Schlüssel für Sie übernehmen. Lesen Sie dazu
den weiter unten.Die Kommandozeilenoptionen und Dateinamen sind
abhängig von der OpenSSH-Version.
Die für Ihr System gültigen Optionen finden Sie
in der Hilfeseite &man.ssh-keygen.1;.ssh-agent und ssh-addMit &man.ssh-agent.1; und &man.ssh-add.1; ist es
möglich, SSH-Schlüssel
in den Speicher zu laden, damit die Passphrase nicht jedesmal
eingegeben werden muss.&man.ssh-agent.1; übernimmt die Authentifizierung
von ihm geladener privater Schlüssel.
&man.ssh-agent.1; sollte nur dazu verwendet werden, ein
anderes Programm zu starten, beispielsweise eine Shell oder
- einen Window-Manager.
+ einen Window-Manager.Um &man.ssh-agent.1; in einer Shell zu verwenden, muss
es mit einer Shell als Argument aufgerufen werden.
Zusätzlich müssen die zu verwaltende Identität
(durch &man.ssh-add.1;) sowie deren Passphrase für den
privaten Schlüssel übergeben werden. Nachdem dies
erledigt ist, kann sich ein Benutzer über &man.ssh.1;
auf jedem Rechner anmelden, der einen entsprechenden
öffentlichen Schlüssel besitzt. Dazu ein
Beispiel:&prompt.user; ssh-agent csh
&prompt.user; ssh-add
Enter passphrase for /home/user/.ssh/id_dsa:
Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
&prompt.user;Um &man.ssh-agent.1; unter X11 zu verwenden, müssen
Sie &man.ssh-agent.1; in Ihre ~/.xinitrc
aufnehmen. Dadurch können alle unter X11 gestarteten
Programme die Dienste von &man.ssh-agent.1; nutzen. Ihre
~/.xinitrc könnte dazu etwas so
aussehen:exec ssh-agent startxfce4Dadurch wird bei jedem Start von X11 zuerst
&man.ssh-agent.1; aufgerufen, das wiederum
XFCE startet. Nachdem Sie diese
Änderung durchgeführt haben, müssen Sie X11
neu starten. Danach können Sie mit &man.ssh-add.1;
Ihre SSH-Schlüssel laden.SSH-TunnelOpenSSHTunnelMit OpenSSH ist es möglich,
einen Tunnel zu erstellen, in dem ein anderes Protokoll
verschlüsselt übertragen wird.Das folgende Kommando erzeugt einen Tunnel für
telnet:&prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
&prompt.user;Dabei wurden die folgenden Optionen von ssh
verwendet:Erzwingt die Version 2 des Protokolls (Benutzen Sie die
Option nicht mit langsamen
SSH-Servern).Zeigt an, dass ein Tunnel erstellt werden soll.
Ohne diese Option würde ssh eine
normale Sitzung öffnen.Zwingt ssh im Hintergrund zu
laufen.Ein lokaler Tunnel wird in der Form
localport:remotehost:remoteport
angegeben. Die Verbindung wird dabei von dem lokalen Port
localport auf einen entfernten
Rechner weitergeleitet.Gibt den entfernten SSH server an.Ein SSH-Tunnel erzeugt ein Socket auf
localhost und dem angegebenen Port. Jede
Verbindung, die auf dem angegebenen Socket aufgemacht wird, wird
dann auf den spezifizierten entfernten Rechner und Port
weitergeleitet.Im Beispiel wird der Port 5023 auf
die entfernte Maschine und dort auf localhost
Port 23 weitergeleitet. Da der Port
23 für
Telnet reserviert ist,
erzeugt das eine sichere
Telnet-Verbindung durch einen
SSH-Tunnel.Diese Vorgehensweise kann genutzt werden, um jedes unsichere
TCP-Protokoll wie SMTP, POP3, FTP, usw. weiterzuleiten.Mit SSH einen sicheren Tunnel für SMTP erstellen&prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
user@mailserver.example.com's password: *****
&prompt.user; telnet localhost 5025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mailserver.example.com ESMTPZusammen mit &man.ssh-keygen.1; und zusätzlichen
Benutzer-Accounts können Sie leicht benutzbare SSH-Tunnel
aufbauen. Anstelle von Passwörtern können Sie
Schlüssel benutzen und jeder Tunnel kann unter einem eigenen
Benutzer laufen.Beispiel für SSH-TunnelSicherer Zugriff auf einen POP3-ServerNehmen wir an, an Ihrer Arbeitsstelle gibt es einen
SSH-Server, der Verbindungen von außen akzeptiert. Auf
dem Netzwerk Ihrer Arbeitsstelle soll sich zudem noch ein
Mail-Server befinden, der POP3 spricht. Das Netzwerk oder die
Verbindung von Ihrem Haus zu Ihrer Arbeitsstelle ist unsicher
und daher müssen Sie Ihre E-Mail über eine gesicherte
Verbindung abholen können. Die Lösung zu diesem
Problem besteht darin, eine SSH-Verbindung von Ihrem Haus zu
dem SSH-Server an Ihrer Arbeitsstelle aufzubauen, und von dort
weiter zum Mail-Server zu tunneln.&prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
user@ssh-server.example.com's password: ******Wenn Sie den Tunnel eingerichtet haben, konfigurieren Sie
Ihren Mail-Client so, dass er POP3 Anfragen zu
localhost Port 2110 sendet. Die Verbindung
wird dann sicher zu mail.example.com
weitergeleitet.Umgehen einer strengen FirewallEinige Netzwerkadministratoren stellen sehr drakonische
Firewall-Regeln auf, die nicht nur einkommende Verbindungen
filtern, sondern auch ausgehende. Es kann sein, dass Sie
externe Maschinen nur über die Ports 22 und 80 (SSH und
Web) erreichen.Sie wollen auf einen Dienst, der vielleicht nichts mit
Ihrer Arbeit zu tun hat, wie einen Ogg Vorbis Musik-Server,
zugreifen. Wenn der Ogg Vorbis Server nicht auf den Ports 22
oder 80 läuft, können Sie aber nicht auf ihn
zugreifen.Die Lösung hier ist es, eine SSH-Verbindung zu einer
Maschine außerhalb der Firewall aufzumachen und durch
diese zum Ogg Vorbis Server zu tunneln.&prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org
user@unfirewalled-system.example.org's password: *******Konfigurieren Sie Ihren Client so, dass er
localhost und Port 8888 benutzt. Die Verbindung
wird dann zu music.example.com Port 8000
weitergeleitet und Sie haben die Firewall erfolgreich
umgangen.Die Option AllowUsersEs ist in der Regel ein gute Idee, festzulegen, welche
Benutzer sich von welchem Rechner aus anmelden können.
Dies lässt sich beispielsweise über die Option
AllowUsers festlegen. Soll sich etwa
nur root vom Rechner mit der IP-Adresse
192.168.1.32 aus einwählen
dürfen, würden Sie folgenden Eintrag in
/etc/ssh/sshd_config aufnehmen:AllowUsers root@192.168.1.32Damit sich admin von jedem Rechner aus
anmelden kann, geben Sie nur den Benutzernamen an:AllowUsers adminSie können auch mehrere Benutzer in einer Zeile
aufführen:AllowUsers root@192.168.1.32 adminNur ein Benutzer, der in dieser Liste aufgeführt ist,
darf sich auf diesem Rechner anmelden.Nachdem Sie /etc/ssh/sshd_config
angepasst haben, muss &man.sshd.8; seine Konfigurationsdateien
neu einlesen. Dazu geben Sie Folgendes ein:&prompt.root; /etc/rc.d/sshd reloadWeiterführende InformationenOpenSSH&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
&man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5;&man.sshd.8; &man.sftp-server.8; &man.sshd.config.5;TomRhodesBeigetragen von ACLZugriffskontrolllisten für DateisystemeZusammen mit anderen Verbesserungen des Dateisystems wie
Schnappschüsse gibt es ab &os; 5.0
Zugriffskontrolllisten (access
control list, ACL).Zugriffskontrolllisten erweitern die normalen Zugriffsrechte
von &unix; Systemen auf eine kompatible (&posix;.1e) Weise
und bieten feiner granulierte Sicherheitsmechanismen.Zugriffskontrolllisten für Dateisysteme werden mit der
nachstehenden Zeile in der Kernelkonfiguration aktiviert:options UFS_ACLDiese Option ist in der GENERIC-Konfiguration
aktiviert. Das System gibt eine Warnung aus, wenn ein Dateisystem mit
ACLs eingehangen werden soll und die
Unterstützung für ACLs nicht im Kernel
aktiviert ist. Das Dateisystem muss weiterhin erweiterte Attribute
zur Verfügung stellen, damit ACLs verwendet
werden können. Das neue UNIX-Dateisystem
UFS2 stellt diese Attribute
standardmäßig zur Verfügung.Die Konfiguration erweiterter Attribute auf
UFS1 ist mit einem höheren Aufwand als die
Konfiguration erweiterter Attribute auf UFS2
verbunden. Zudem ist UFS2 mit erweiterten
Attributen leistungsfähiger als UFS1.
Zugriffskontrolllisten sollten daher mit UFS2
verwendet werden.Die Angabe der Option in
/etc/fstab aktiviert Zugriffskontrolllisten
für ein Dateisystem. Die bevorzugte Möglichkeit ist
die Verwendung von Zugriffskontrolllisten mit &man.tunefs.8; (Option
), im Superblock des Dateisystems festzuschreiben.
Diese Möglichkeit hat mehrere Vorteile:Nochmaliges Einhängen eines Dateisystems (Option
von &man.mount.8;) verändert den Status
der Zugriffskontrolllisten nicht. Die Verwendung von
Zugriffskontrolllisten kann nur durch Abhängen und erneutes
Einhängen eines Dateisystems verändert werden. Das
heißt auch, dass Zugriffskontrolllisten nicht
nachträglich auf dem Root-Dateisystem aktiviert werden
können.Die Zugriffskontrolllisten auf den Dateisystemen sind,
unabhängig von den Option in /etc/fstab
oder Namensänderungen der Geräte, immer aktiv. Dies
verhindert auch, dass Zugriffskontrolllisten aus Versehen
auf Dateisystem ohne Zugriffskontrolllisten aktiviert werden und
durch falsche Zugriffsrechte Sicherheitsprobleme entstehen.Es kann sein, dass sich der Status von Zugriffskontrolllisten
später durch nochmaliges Einhängen des Dateisystems
(Option von &man.mount.8;) ändern
lässt. Die momentane Variante ist aber sicherer, da der
Status der Zugriffskontrolllisten nicht versehentlich geändert
werden kann. Allgemein sollten Zugriffskontrolllisten auf einem
Dateisystem, auf dem sie einmal verwendet wurden, nicht deaktiviert
werden, da danach die Zugriffsrechte falsch sein können.
Werden Zugriffskontrolllisten auf einem solchen Dateisystem wieder
aktiviert, werden die Zugriffsrechte von Dateien, die sich
zwischenzeitlich geändert haben, überschrieben, was zu
erneuten Problemen führt.Die Zugriffsrechte einer Datei werden durch ein
+ (Plus) gekennzeichnet, wenn die Datei durch
Zugriffskontrolllisten geschützt ist:drwx------ 2 robert robert 512 Dec 27 11:54 private
drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1
drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2
drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3
drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_htmlDie Verzeichnisse directory1,
directory2 und directory3
sind durch Zugriffskontrolllisten geschützt, das Verzeichnis
public_html nicht.Zugriffskontrolllisten benutzenDas Werkzeug &man.getfacl.1; zeigt Zugriffskontrolllisten
an. Das folgende Kommando zeigt die ACLs
auf der Datei test:&prompt.user; getfacl test
#file:test
#owner:1001
#group:1001
user::rw-
group::r--
other::r--Das Werkzeug &man.setfacl.1; ändert oder entfernt
ACLs auf Dateien. Zum Beispiel:&prompt.user; setfacl -k testDie Option entfernt alle
ACLs einer Datei oder eines Dateisystems.
Besser wäre es, die Option
zu verwenden, da sie die erforderlichen Felder
beibehält.&prompt.user; setfacl -m u:trhodes:rwx,g:web:r--,o::--- testMit dem vorstehenden Kommando werden die eben
entfernten Zugriffskontrolllisten wiederhergestellt.
Der Befehl gibt die Fehlermeldung
Invalid argument aus,
wenn Sie nicht existierende Benutzer oder Gruppen
als Parameter angeben.TomRhodesBeigetragen von PortauditSicherheitsprobleme in Software Dritter überwachenIn den letzten Jahren wurden zahlreiche Verbesserungen in
der Einschätzung und dem Umgang mit Sicherheitsproblemen
erzielt. Die Gefahr von Einbrüchen in ein System wird
aber immer größer, da Softwarepakete von Dritten
auf nahezu jedem Betriebssystem installiert und konfiguriert
werden.Die Einschätzung der Verletzlichkeit eines Systems ist
ein Schlüsselfaktor für dessen Sicherheit. &os;
veröffentlicht zwar Sicherheitshinweise
(security advisories) für
das Basissystem, das Projekt ist allerdings nicht dazu in der
Lage, dies auch für die zahlreichen Softwarepakete von
Dritten zu tun. Dennoch gibt es einen Weg, auch diese
Programmpakete zu überwachen. Das in der Ports-Sammlung
enthaltene Programm Portaudit wurde
gezielt dafür entwickelt.Der Port security/portaudit
fragt dazu eine Datenbank, die vom &os; Security Team sowie
den Ports-Entwicklern aktualisiert und gewartet wird, auf
bekannte Sicherheitsprobleme ab.Bevor Sie Portaudit verwenden
können, müssen Sie es über die Ports-Sammlung
installieren:&prompt.root; cd /usr/ports/security/portaudit && make install cleanWährend der Installation werden die
Konfigurationsdateien für &man.periodic.8; aktualisiert, was
es Portaudit erlaubt, seine Ausgabe
in den täglichen Sicherheitsbericht einzufügen.
Stellen Sie auf jeden Fall sicher, dass diese (an das
E-Mail-Konto von root gesendeten)
Sicherheitsberichte auch gelesen werden. An dieser Stelle
ist keine weitere Konfiguration nötig.
- Nach der Installation muss ein Administrator die unter
+ Nach der Installation kann ein Administrator die unter
/var/db/portaudit lokal
- gespeicherte Datenbank aktualisieren:
+ gespeicherte Datenbank aktualisieren und sich danach durch
+ folgenden Befehl über mögliche Sicherheitslücken
+ der von ihm installierten Softwarepakete informieren:
- &prompt.root; portaudit -F
+ &prompt.root; portaudit -FdaDie Datenbank wird automatisch aktualisiert, wenn
&man.periodic.8; ausgeführt wird. Der eben genannte
Befehl ist daher optional, er wird aber für das
folgende Beispiel benötigt.
- Um über die Ports-Sammlung installierte
- Softwarepakete Dritter zu überprüfen, muss ein
- Administrator nur den folgenden Befehl eingeben:
+ Nach erfolgter Installation der Datenbank kann ein
+ Administrator über die Ports-Sammlung installierte
+ Softwarepakete Dritter jederzeit überprüfen. Dazu
+ muss er lediglich folgenden Befehl eingeben:&prompt.root; portaudit -a
- Eine Ausgabe könnte beispielsweise so aussehen:
+ Existiert in Ihren installierten Softwarepaketen eine
+ Sicherheitslücke, wird Portaudit
+ eine Ausgabe ähnlich der folgenden produzieren:Affected package: cups-base-1.1.22.0_1
Type of problem: cups-base -- HPGL buffer overflow vulnerability.
Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html>
1 problem(s) in your installed packages found.
You are advised to update or deinstall the affected package(s) immediately.Wenn Sie die angegebene URL über einen
Internetbroswer aufrufen, erhalten Sie weitere Informationen
über die bestehende Sicherheitslücke, wie die betroffenen
Versionen, die Version des &os;-Ports sowie Hinweise auf weitere
Seiten, die ebenfalls Sicherheitshinweise zu diesem Problem
bieten.Portaudit ist ein mächtiges
Werkzeug und insbesondere in Zusammenarbeit mit dem
Port Portupgrade äußerst
hilfreich.TomRhodesBeigesteuert von Sicherheitshinweise&os; SicherheitshinweiseWie für andere hochwertige Betriebssysteme auch
werden für &os; Sicherheitshinweise herausgegeben.
Die Hinweise werden gewöhnlich auf den Sicherheits-Mailinglisten
und in den Errata veröffentlicht, nachdem das
Sicherheitsproblem behoben ist. Dieser Abschnitt beschreibt
den Umgang mit den Sicherheitshinweisen.Wie sieht ein Sicherheitshinweis aus?Der nachstehende Sicherheitshinweis stammt von
der Mailingliste &a.security-notifications.name;:=============================================================================
&os;-SA-XX:XX.UTIL Security Advisory
The &os; Project
Topic: denial of service due to some problem
Category: core
Module: sys
Announced: 2003-09-23
Credits: Person@EMAIL-ADDRESS
Affects: All releases of &os;
&os; 4-STABLE prior to the correction date
Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE)
2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6)
2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15)
2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8)
2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18)
2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21)
2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33)
2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43)
2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39)
&os; only: NO
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
http://www.FreeBSD.org/security/.
I. Background
II. Problem Description
III. Impact
IV. Workaround
V. Solution
VI. Correction details
VII. ReferencesDas Feld Topic enthält eine
Beschreibung des Sicherheitsproblems und benennt das
betroffene Programm.Das Feld Category beschreibt den
betroffenen Systemteil. Mögliche Werte für dieses
Feld sind core, contrib
oder ports. Die Kategorie
core gilt für Kernkomponenten
des &os;-Betriebssystems, die Kategorie
contrib beschreibt zum Basissystem
gehörende Software Dritter beispielsweise
sendmail. Die Kategorie
ports beschreibt Software, die
Teil der Ports-Sammlung ist.Das Feld Module beschreibt die
betroffene Komponente. Im Beispiel ist
sys angegeben, das heißt
dieses Problem betrifft eine Komponente, die vom
Kernel benutzt wird.Das Feld Announced gibt den
Zeitpunkt der Bekanntgabe des Sicherheitshinweises
an. Damit existiert das Sicherheitsproblem,
ist vom Sicherheits-Team bestätigt worden
und eine entsprechende Korrektur wurde in das
Quellcode-Repository von &os; gestellt.Das Feld Credits gibt die Person
oder Organisation an, die das Sicherheitsproblem
bemerkte und gemeldet hat.Welche &os;-Releases betroffen sind, ist im Feld
Affects angegeben. Die Version einer
Datei, die zum Kernel gehört, können Sie
schnell mit ident ermitteln. Bei Ports
ist die Versionsnummer angegeben, die Sie im Verzeichnis
/var/db/pkg finden.
Wenn Sie Ihr System nicht täglich aktualisieren,
ist Ihr System wahrscheinlich betroffen.Wann das Problem in welchem Release behoben wurde,
steht im Feld Corrected.Im Feld &os; only wird angegeben,
ob das Sicherheitsproblem nur &os; oder auch andere
Betriebssysteme betrifft.Im Feld Background wird
das betroffene Werkzeug beschrieben. Meist finden Sie
hier warum das Werkzeug Bestandteil von &os; ist,
wofür es benutzt wird und eine kurze
Darstellung der Herkunft des Werkzeugs.Im Feld Problem Description befindet
sich eine genaue Darstellung des Sicherheitsproblems.
Hier wird fehlerhafter Code beschrieben oder geschildert,
wie ein Werkzeug ausgenutzt wird.Das Feld Impact beschreibt die
Auswirkungen des Sicherheitsproblems auf ein System,
beispielsweise erweiterte Rechte oder gar
Superuser-Rechte für normale Benutzer.Im Feld Workaround wird
eine Umgehung des Sicherheitsproblems beschrieben.
Die Umgehung ist für Administratoren gedacht,
die ihr System aus Zeitnot, Netzwerk-technischen oder
anderen Gründen nicht aktualisieren können.
Nehmen Sie Sicherheitsprobleme ernst: Auf einem
betroffenen System sollte das Problem entweder behoben
oder, wie hier beschrieben, umgangen werden.Im Feld Solution enthält eine
getestete Schritt-für-Schritt Anleitung, die das
Sicherheitsproblem behebt.Das Feld Correction Details
enthält die CVS-Tags der betroffenen Dateien
zusammen mit zugehörigen Revisionsnummern.Im Feld References finden sich
Verweise auf weitere Informationsquellen. Dies können
URLs zu Webseiten, Bücher, Mailinglisten und Newsgroups
sein.TomRhodesBeigetragen von Prozess-ÜberwachungProzess-ÜberwachungProzess-Überwachung
(Process accounting) ist ein
Sicherheitsverfahren, bei dem ein Administrator verfolgt,
welche Systemressourcen verwendet werden und wie sich diese
auf die einzelnen Anwender verteilen. Dadurch kann das
System überwacht werden und es ist sogar möglich,
zu kontrollieren, welche Befehle ein Anwender eingibt.Diese Fähigkeiten haben sowohl Vor- als auch Nachteile.
Positiv ist, dass man ein Einbruchsversuch bis an den Anfang
zurückverfolgen kann. Von Nachteil ist allerdings,
dass durch diesen Prozess Unmengen an Protokolldateien erzeugt
werden, die auch dementsprechenden Plattenplatz benötigen.
Dieser Abschnitt beschreibt die Grundlagen der
Prozess-Überwachung.Die Prozess-Überwachung aktivieren und
konfigurierenBevor Sie die Prozess-Überwachung verwenden können,
müssen Sie diese aktivieren. Dazu führen Sie als
root die folgenden Befehle aus:&prompt.root; touch /var/account/acct
&prompt.root; accton /var/account/acct
&prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.confEinmal aktiviert, wird sofort mit der Überwachung von
CPU-Statistiken, Befehlen und anderen
Vorgängen begonnen. Protokolldateien werden in einem
nur von Maschinen lesbaren Format gespeichert, daher müssen
Sie diese über &man.sa.8; aufrufen. Geben Sie keine
Optionen an, gibt sa Informationen wie
die Anzahl der Aufrufe pro Anwender, die abgelaufene Zeit in
Minuten, die gesamte CPU- und Anwenderzeit
in Minuten, die durchschnittliche Anzahl der Ein- und
Ausgabeoperationen und viel andere mehr aus.Um Informationen über ausgeführte Befehle zu
erhalten, verwenden Sie &man.lastcomm.1;. So können Sie
etwa ermittlen, welche Befehle von wem auf welchem &man.ttys.5;
ausgeführt wurden:&prompt.root; lastcomm ls
trhodes ttyp1Das Ergebnis sind alle bekannten Einsätze von
ls durch trhodes
auf dem Terminal ttyp1.Zahlreiche weitere nützliche Optionen finden Sie in den
Manualpages zu &man.lastcomm.1;, &man.acct.5; sowie
&man.sa.8;.
diff --git a/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml b/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
index 20a8e88d7e..323ed53ec2 100644
--- a/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
@@ -1,3077 +1,3077 @@
MartinHeinenÜbersetzt von Serielle DatenübertragungÜbersichtserielle Datenübertragung&unix; Systeme unterstützten schon immer die serielle
Datenübertragung. Tatsächlich wurden Ein- und Ausgaben auf
den ersten &unix; Maschinen über serielle Leitungen
durchgeführt. Seit der Zeit, in der ein durchschnittlicher
Terminal aus einem seriellen Drucker mit
10 Zeichen/Sekunde und einer Tastatur bestand, hat sich viel
verändert. Dieses Kapitel behandelt einige Möglichkeiten,
serielle Datenübertragung unter FreeBSD zu verwenden.Nachdem Sie dieses Kapitel durchgearbeitet haben, werden
Sie Folgendes wissen:Wie Sie Terminals an Ihr FreeBSD anschließen.
Wie Sie sich mit einem Modem auf einem entfernten
Rechner einwählen.Wie Sie entfernten Benutzern erlauben, sich mit einem
Modem in Ihr System einzuwählen.Wie Sie Ihr System über eine serielle Konsole
booten.Bevor Sie dieses Kapitel lesen, sollten Sieeinen neuen Kernel konfigurieren und installieren
können ().Das Berechtigungskonzept von &unix; und Prozesse
verstehen ().Zudem sollten Sie Zugriff auf die Handbücher der
seriellen Komponenten (Modem oder Multiportkarte) haben, die Sie
mit FreeBSD verwenden wollen.EinführungBegriffebits-per-secondbpsBits pro Sekunde – Einheit für die
Übertragungsgeschwindigkeit.DEE (DTE)DEEDTEDatenendeinrichtung (Data Terminal Equipment) –
zum Beispiel Ihr Computer.DÜE (DCE)DÜEDCEDatenübertragungseinrichtung (Data Communications
Equipment) – Ein Modem.RS-232RS-232C KabelEIA (Electronic Industries Association) Norm für
die serielle Datenübertragung.In diesem Abschnitt wird der Begriff Baud nicht
für Übertragungsgeschwindigkeiten gebraucht. Baud
bezeichnet elektrische Zustandswechsel pro Zeiteinheit, die Taktfrequenz,
während bps (Bits pro Sekunde) der
richtige Begriff für die
Übertragungsgeschwindigkeit ist (die meisten Pedanten sollten
damit zufrieden sein).Kabel und SchnittstellenUm ein Modem oder einen Terminal an Ihr FreeBSD-System
anzuschließen, muss Ihr Computer über eine serielle
Schnittstelle verfügen. Zusätzlich brauchen Sie noch das
passende Kabel, um das Gerät mit der Schnittstelle zu
verbinden. Wenn Sie mit Ihren Geräten und den nötigen
Kabeln schon vertraut sind, können Sie diesen Abschnitt
überspringen.KabelEs gibt verschiedene serielle Kabel. Die zwei häufigsten
sind Nullmodemkabel und Standard-RS-232-Kabel. Die
Dokumentation Ihrer Hardware sollte beschreiben, welchen Kabeltyp
Sie benötigen.NullmodemkabelNullmodemkabelEin Nullmodemkabel verbindet einige Signale, wie die
Betriebserde, eins zu eins, andere Signale werden getauscht:
Die Sende- und Empfangsleitungen werden zum Beispiel
gekreuzt.Sie können das Kabel für die Anbindung eines
Terminals auch selbst herstellen. Die folgende Tabelle
enthält die Signalnamen von
RS-232C sowie die Pinbelegung für einen Stecker vom
Typ DB-25. Beachten Sie dabei aber, dass der Standard
zwar eine direkte Verbindung beider Pin 1
(Protective Ground) vorschreibt, diese
aber in vielen Fällen nicht vorhanden ist. Einige
Terminals benötigen nur die Pins 2, 3 und 7 für
eine korrekte Funktion, während andere eine
unterschiedliche Konfiguration als die in den folgenden
Beispielen gezeigte benötigen.
Nullmodemkabel vom Typ DB-25-zu-DB-25SignalPin #Pin #SignalSG7verbunden mit7SGTD2verbunden mit3RDRD3verbunden mit2TDRTS4verbunden mit5CTSCTS5verbunden mit4RTSDTR20verbunden mit6DSRDTR20verbunden mit8DCDDSR6verbunden mit20DTRDCD8verbunden mit20DTR
Die folgenden zwei Schemata werden heutzutage ebenfalls
häufig eingesetzt:
Nullmodemkabel vom Typ DB-9-zu-DB-9SignalPin #Pin #SignalRD2verbunden mit3TDTD3verbunden mit2RDDTR4verbunden mit6DSRDTR4verbunden mit1DCDSG5verbunden mit5SGDSR6verbunden mit4DTRDCD1verbunden mit4DTRRTS7verbunden mit8CTSCTS8verbunden mit7RTS
Nullmodemkabel vom Typ DB-9-zu-DB-25SignalPin #Pin #SignalRD2verbunden mit2TDTD3verbunden mit3RDDTR4verbunden mit6DSRDTR4verbunden mit8DCDSG5verbunden mit7SGDSR6verbunden mit20DTRDCD1verbunden mit20DTRRTS7verbunden mit5CTSCTS8verbunden mit4RTS
Wird ein Pin eines Kabels mit zwei Pins des anderen
Kabels verbunden, werden dazu in der Regel zuerst die
beiden Pins mit einem kurzem Draht verbunden. Danach
wird dieser Draht mit dem Pin des anderen Endes
verbunden.Die eben besprochenen Schemata scheinen die beliebtesten
zu sein. Es gibt aber noch weitere Varianten. Im Buch
RS-232 Made Easy wird beispielsweise
SG mit SG verbunden, TD mit RD, RTS und CTS mit DCD, DTR
mit DSR, und umgekehrt.Standard RS-232C KabelRS-232C KabelEin Standard-RS-232C-Kabel verbindet alle Signale direkt,
das heißt das Signal Transmitted Data wird mit
dem Signal Transmitted Data der Gegenstelle verbunden.
Dieses Kabel wird benötigt, um ein Modem mit einem
FreeBSD-System zu verbinden. Manche Terminals benötigen dieses
Kabel ebenfalls.SchnittstellenÜber serielle Schnittstellen werden Daten zwischen dem
FreeBSD-System und dem Terminal übertragen. Dieser
Abschnitt beschreibt die verschiedenen Schnittstellen und wie sie
unter FreeBSD angesprochen werden.Arten von SchnittstellenDa es verschiedene Schnittstellen gibt, sollten Sie vor
dem Kauf oder Selbstbau eines Kabels sicherstellen, dass
dieses zu den Schnittstellen Ihres Terminals und
FreeBSD-Systems passt.Die meisten Terminals besitzen DB-25-Stecker.
Personal Computer haben DB-25- oder DB-9-Stecker. Wenn
Sie eine serielle Multiportkarte für Ihren PC besitzen,
haben Sie vielleicht RJ-12- oder RJ-45-Anschlüsse.Die Dokumentation Ihrer Geräte sollte Aufschluss
über den Typ der benötigten Anschlüsse geben.
Oft hilft es, wenn Sie sich den Anschluss einfach
ansehen.SchnittstellenbezeichnungUnter FreeBSD sprechen Sie die serielle Schnittstelle
(Port) über einen Eintrag im /dev
Verzeichnis an. Es gibt dort zwei verschiedene
Einträge:Schnittstellen für eingehende Verbindungen werden
/dev/ttydN
genannt. Dabei ist N die Nummer
der Schnittstelle, deren Zählung bei Null beginnt.
Allgemein wird diese Schnittstelle für Terminals
benutzt. Diese Schnittstelle funktioniert nur, wenn ein
Data Carrier Detect Signal (DCD)
vorliegt.Für ausgehende Verbindungen wird
/dev/cuadN
verwendet. Dieser Port wird normalerweise nur von
Modems genutzt. Sie können ihn allerdings für
Terminals benutzen, die das Data Carrier Detect
Signal nicht unterstützen.Unter &os;5.X wurden Ports für ausgehende
Verbindungen mit
/dev/cuaaN
bezeichnet.Wenn Sie einen Terminal an die erste serielle Schnittstelle
(COM1 in &ms-dos;), angeschlossen haben,
sprechen Sie ihn über /dev/ttyd0 an.
Wenn er an der zweiten seriellen Schnittstelle angeschlossen
ist, verwenden Sie /dev/ttyd1, usw.KernelkonfigurationIn der Voreinstellung benutzt FreeBSD vier serielle
Schnittstellen, die in &ms-dos;-Kreisen als
COM1, COM2,
COM3 und COM4
bekannt sind. Momentan unterstützt FreeBSD einfache
Multiportkarten (z.B. die BocaBoard 1008 und 2016) und bessere wie
die von Digiboard und Stallion Technologies. In der Voreinstellung
sucht der Kernel allerdings nur nach den
Standardanschlüssen.Um zu überprüfen, ob der Kernel eine Ihrer seriellen
Schnittstellen erkennt, achten Sie auf die Meldungen beim Booten,
oder schauen sich diese später mit
/sbin/dmesg an. Insbesondere sollten Sie auf
Meldungen achten, die mit den Zeichen sio
anfangen.Das folgende Kommando zeigt Ihnen nur die Meldungen an,
die die Folge sio enthalten:&prompt.root; /sbin/dmesg | grep 'sio'Auf einem System mit vier seriellen Schnittstellen sollte der
Kernel die folgenden Meldungen ausgeben:sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550AWenn Ihr Kernel nicht alle seriellen Schnittstellen erkennt,
müssen Sie Ihren Kernel über die Datei
/boot/device.hints konfigurieren.
Zusätzlich können Sie Einträge für
Geräte, die auf Ihrem System nicht vorhanden sind, aus dem
Kernel entfernen.Verwenden Sie &os; 4.X, müssen Sie hingegen Ihre
Kernelkonfigurationsdatei anpassen und den Kernel, wie im
Abschnitt des Handbuchs beschrieben,
neu bauen. Die relevanten Zeilen sehen dabei ähnlich den
folgenden aus:device sio0 at isa? port IO_COM1 tty irq 4
device sio1 at isa? port IO_COM2 tty irq 3
device sio2 at isa? port IO_COM3 tty irq 5
device sio3 at isa? port IO_COM4 tty irq 9Die Hilfeseite &man.sio.4; enthält weitere Informationen
zu seriellen Schnittstellen und Multiportkarten.
Seien Sie vorsichtig, wenn Sie Konfigurationsdateien
von älteren FreeBSD-Versionen verwenden, da sich die Syntax
und die Bedeutung der Optionen zwischen verschiedenen
Versionen geändert hat.port IO_COM1 ist ein Ersatz für
port 0x3f8, IO_COM2
bedeutet port 0x2f8, IO_COM3
bedeutet port 0x3e8 und IO_COM4
steht für port 0x2e8. Die angegebenen
IO-Adressen sind genau wie die Interrupts 4, 3, 5 und 9
üblich für serielle Schnittstellen. Beachten Sie
bitte, dass sich normale serielle Schnittstellen auf ISA-Bussen
keine Interrupts teilen können.
Multiportkarten besitzen zusätzliche Schaltkreise, die es
allen 16550As auf der Karte erlauben, sich einen oder zwei
Interrupts zu teilen.GerätedateienDie meisten Geräte im Kernel werden durch
Gerätedateien in /dev angesprochen. Die
sio Geräte werden durch
/dev/ttydN
für eingehende Verbindungen und durch
/dev/cuadN für
ausgehende Verbindungen angesprochen. Zum Initialisieren der
Geräte stellt FreeBSD die Dateien
/dev/ttydN und
/dev/cuadN (unter
&os; 6.X) beziehungsweise
/dev/ttyidN und
- /dev/cuaidN
+ /dev/cuaiaN
(unter &os; 5.X und älter) zur Verfügung.
Zusätzlich existieren Dateien für das Sperren von
Gerätedateien (Locking).
Dabei handelt es sich um die Dateien
/dev/ttydN.lock
und
/dev/cuadN.lock
(unter &os; 6.X) beziehungsweise um die Dateien
/dev/ttyldN und
- /dev/cualdN
+ /dev/cualaN
(unter &os; 5.X und älter). Diese Dateien werden
benutzt, um Kommunikationsparameter beim Öffnen eines Ports
vorzugeben. Für Modems, die zur Flusskontrolle
RTS/CTS benutzen, kann damit
crtscts gesetzt werden. Die Geräte
/dev/ttyldN und
/dev/cualaN (locking
devices) werden genutzt, um bestimmte Parameter festzuschreiben und
vor Veränderungen zu schützen. Weitere Informationen
zu Terminals finden Sie in &man.termios.4;, &man.sio.4; erklärt
die Dateien zum Initialisieren und Sperren der Geräte,
&man.stty.1; beschreibt schließlich
Terminal-Einstellungen.Erstellen von GerätedateienUnter FreeBSD 5.0 werden Gerätedateien im Dateisystem
&man.devfs.5; bei Bedarf automatisch angelegt. Wenn
Sie eine FreeBSD-Version mit devfs benutzen,
können Sie diesen Abschnitt überspringen.MAKEDEVZum Anlegen der Gerätedateien in
/dev wird MAKEDEV
benutzt. Um die Geräte der ersten seriellen Schnittstelle
für eingehende Verbindungen zu erstellen, wechseln Sie nach
/dev und setzen dort den Befehl
MAKEDEV ttyd0 ab. Für die zweite
serielle Schnittstelle (COM2 bzw. die
Schnittstelle mit der Nummer 1 führen Sie
analog MAKEDEV ttyd1 aus.Dabei erstellt MAKEDEV nicht nur die
/dev/ttydN
Gerätedateien, sondern auch die folgenden Dateien:
/dev/cuaaN,
/dev/cuaiaN,
/dev/cualaN,
/dev/ttyldN
und
/dev/ttyidN.Nachdem Sie die Gerätedateien erstellt haben, sollten
Sie die Zugriffsrechte der neuen Dateien, besonders die der
/dev/cua* Dateien überprüfen, um
sicherzustellen, dass wirklich nur jene Benutzer, die auf
diese Geräte zugreifen sollen, Schreib- und Leseberechtigungen
haben. Die Vorgabe der Zugriffsrechte sollte ausreichend
sein:crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1
crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1
crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1Auf die Geräte für ausgehende Verbindungen
dürfen uucp und Mitglieder der Gruppe
dialer zugreifen.Konfiguration der seriellen SchnittstellettydcuadAnwendungen benutzen normalerweise die Geräte
ttydN oder
cuadN. Das
Gerät besitzt einige Voreinstellungen für Terminal-I/O,
wenn es von einem Prozess geöffnet wird. Mit dem folgenden
Kommando können Sie sich diese Einstellungen ansehen:&prompt.root; stty -a -f /dev/ttyd1Sie können diese Einstellungen verändern, sie bleiben
allerdings nur solange wirksam, bis das Gerät geschlossen wird.
Wenn das Gerät danach wieder geöffnet wird, sind die
Voreinstellungen wieder wirksam. Um die Voreinstellungen zu
ändern, öffnen Sie das Gerät, das zum Initialisieren
dient und verändern dessen Einstellungen. Um beispielsweise
für ttyd5 den
Modus, 8-Bit Kommunikation und
Flusssteuerung einzuschalten, setzen Sie das folgende
Kommando ab:&prompt.root; stty -f /dev/ttyd5.init clocal cs8 ixon ixoffrc-Dateienrc.serialIn /etc/rc.serial werden die
Voreinstellungen für seriellen Geräte vorgenommen.Um zu verhindern, dass Einstellungen von Anwendungen
verändert werden, können Sie die Geräte zum
Festschreiben von Einstellungen (locking devices)
benutzen. Wenn sie beispielsweise die Geschwindigkeit von
ttyd5 auf 57600 bps festlegen wollen,
benutzen Sie das folgende Kommando:&prompt.root; stty -f /dev/ttyld5 57600Eine Anwendung, die ttyd5 öffnet,
kann nun nicht mehr die Geschwindigkeit ändern und muss
57600 bps benutzen.Die Geräte zum Initialisieren und Festschreiben von
Einstellungen sollten selbstverständlich nur von
root beschreibbar sein.SeanKellyBeigetragen von TerminalsTerminalsWenn Sie sich nicht an der Konsole oder über ein Netzwerk an
Ihrem FreeBSD-System anmelden können, sind Terminals ein
bequemer und billiger Weg auf Ihr System zuzugreifen. Dieser
Abschnitt beschreibt wie Sie Terminals mit FreeBSD benutzen.TerminaltypenDas ursprüngliche &unix; System besaß keine Konsolen.
Zum Anmelden und Starten von Programmen wurden stattdessen
Terminals benutzt, die an den seriellen Schnittstellen des Rechners
angeschlossen waren. Dies entspricht der Benutzung eines Modems
zum Anmelden auf einem entfernten System, um dort mit einem
Terminalemulator im Textmodus zu arbeiten.Die Konsolen heutiger PCs besitzen sehr gute
Grafikfähigkeiten, trotzdem gibt es in fast jedem &unix; System
die Möglichkeit, sich über die serielle Schnittstelle
anzumelden; FreeBSD ist da keine Ausnahme. Sie können sich an
einem Terminal anmelden und dort jedes Textprogramm, das Sie
normalerweise an der Konsole oder in einem xterm
Fenster im X Window System benutzen, laufen lassen.Im kommerziellen Umfeld können Sie viele Terminals an ein
FreeBSD-System anschließen und diese auf den
Arbeitsplätzen Ihrer Angestellten aufstellen. Im privaten
Umfeld kann ein älterer IBM PC oder &macintosh; als Terminal
dienen. Damit verwandeln Sie einen Einzelarbeitsplatz in ein
leistungsfähiges Mehrbenutzersystem.FreeBSD kennt drei verschiedene Terminals:Dumb terminals,PCs, die als Terminals
fungieren,X Terminals.Die folgenden Abschnitte beschreiben jeden dieser Terminals.Dumb-TerminalsDumb-Terminals (unintelligente Datenstationen) sind
Geräte, die über die serielle Schnittstelle mit einem
Rechner verbunden werden. Sie werden
unintelligent genannt, weil sie nur Text senden
und empfangen und keine Programme laufen lassen können.
Alle Programme, wie Texteditoren, Compiler oder Spiele befinden
sich auf dem Rechner, der mit dem Terminal verbunden ist.Es gibt viele Dumb-Terminals, die von verschiedenen
Herstellern produziert werden, wie zum Beispiel der VT-100 von
Digital Equipment Corporation oder der WY-75 von Wyse. So gut
wie jeder der verschiedenen Terminals sollte mit FreeBSD
zusammenarbeiten. Manche High-End Geräte verfügen
sogar über Grafikfähigkeiten, die allerdings nur von
spezieller Software genutzt werden kann.Dumb-Terminals sind in Umgebungen beliebt, in denen keine
Grafikanwendungen, wie zum Beispiel X-Programme, laufen
müssen.PCs, die als Terminal fungierenJeder PC kann die Funktion eines
Dumb-Terminals, der ja nur
Text senden und empfangen kann, übernehmen. Dazu brauchen
Sie nur das richtige Kabel und eine
Terminalemulation, die auf dem PC
läuft.Diese Konfiguration ist im privaten Umfeld sehr beliebt. Wenn
Ihr Ehepartner zum Beispiel gerade an der FreeBSD-Konsole arbeitet,
können Sie einen weniger leistungsstarken PC, der als
Terminal mit dem FreeBSD-System verbunden ist, benutzen, um dort
gleichzeitig im Textmodus zu arbeiten.X-TerminalsX-Terminals sind die ausgereiftesten der verfügbaren
Terminals. Sie werden nicht mit der seriellen Schnittstelle
sondern mit einem Netzwerk, wie dem Ethernet, verbunden. Diese
Terminals sind auch nicht auf den Textmodus beschränkt,
sondern können jede X-Anwendung darstellen.X-Terminals sind hier nur der Vollständigkeit halber
aufgezählt. Die Einrichtung von X-Terminals wird in diesem
Abschnitt nicht beschrieben.KonfigurationIm Folgenden wird beschrieben, wie Sie Ihr FreeBSD-System
konfigurieren müssen, um sich an einem Terminal anzumelden.
Dabei wird vorausgesetzt, dass der Kernel bereits die
serielle Schnittstelle, die mit dem Terminal verbunden ist,
unterstützt. Weiterhin sollte der Terminal schon
angeschlossen sein.Aus wissen Sie, dass
init für das Initialisieren des Systems und
den Start von Prozessen zum Zeitpunkt des Systemstarts
verantwortlich ist. Unter anderem liest init/etc/ttys ein und startet für jeden
verfügbaren Terminal einen getty
Prozess. getty wiederum fragt beim
Anmelden den Benutzernamen ab und startet
login.Um Terminals auf Ihrem FreeBSD-System einzurichten, führen
Sie folgenden Schritte als root durch:Wenn er noch nicht da ist, fügen Sie einen Eintrag in
/etc/ttys für die serielle
Schnittstelle aus /dev ein.Geben Sie /usr/libexec/getty als
auszuführendes Programm an. Als Parameter für
getty geben Sie den passenden Verbindungstyp
aus /etc/gettytab an.Geben Sie den Terminaltyp an.Aktivieren Sie den Anschluss.Geben Sie die Sicherheit des Anschlusses an.Veranlassen Sie init/etc/ttys erneut zu lesen.Optional können Sie in /etc/gettytab
auch einen auf Ihre Zwecke angepassten Terminaltyp erstellen.
Die genaue Vorgehensweise wird in diesem Abschnitt nicht
erklärt, aber die Manualpages von &man.gettytab.5; und
&man.getty.8; enthalten dazu weitere Informationen.Hinzufügen eines Eintrags in
/etc/ttysIn /etc/ttys werden alle Terminals
aufgeführt, an denen Sie sich auf dem FreeBSD-System
anmelden können. Hier findet sich zum Beispiel ein Eintrag
für die erste virtuelle Konsole
/dev/ttyv0, der es Ihnen ermöglicht,
sich dort anzumelden. Die Datei enthält des Weiteren
Einträge für andere virtuelle Konsolen, serielle
Schnittstellen und Pseudoterminals. Wenn Sie einen Terminal
konfigurieren wollen, fügen sie einen Eintrag für den
Namen des Gerätes aus /dev ohne das
Präfix /dev hinzu. Zum Beispiel wird
/dev/ttyv0 als
ttyv0 aufgeführt.In der Voreinstellung enthält
/etc/ttys Einträge für die ersten
vier seriellen Schnittstellen. Wenn Sie an eine von diesen einen
Terminal anschließen, brauchen Sie keinen weiteren Eintrag
hinzuzufügen.Einträge in /etc/ttys
hinzufügenAngenommen, wir wollen an ein System zwei Terminals
anschließen: Einen Wyse-50 und einen alten 286 IBM PC,
der mit Procomm einen VT-100
Terminal emuliert. Den Wyse-Terminal verbinden wir mit der
zweiten seriellen Schnittstelle und den 286 mit der sechsten
seriellen Schnittstelle (einem Anschluss auf einer
Multiportkarte). Die entsprechenden Einträge in
/etc/ttys würden dann wie folgt
aussehen:ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
Das erste Feld gibt normalerweise den Namen der
Gerätedatei aus /dev an.Im zweiten Feld wird das auszuführende Kommando,
normal ist das &man.getty.8;, angegeben.
getty initialisiert und öffnet die
Verbindung, setzt die Geschwindigkeit und fragt den
Benutzernamen ab. Danach führt es &man.login.1;
aus.getty akzeptiert einen optionalen
Parameter auf der Kommandozeile, den Verbindungstyp, der
die Eigenschaften der Verbindung, wie die Geschwindigkeit
und Parität, festlegt. Die Typen und die damit
verbundenen Eigenschaften liest getty
aus /etc/gettytab./etc/gettytab enthält viele
Einträge sowohl für neue wie auch alte
Terminalverbindungen. Die meisten Einträge, die mit
std beginnen, sollten mit einem
festverdrahteten Terminal funktionieren. Für jede
Geschwindigkeit zwischen 110 bps und 115200 bps
gibt es einen std Eintrag. Natürlich
können Sie auch eigene Einträge erstellen,
Informationen dazu finden Sie in &man.gettytab.5;.Wenn Sie den Verbindungstyp in
/etc/ttys eintragen, stellen Sie
bitte sicher, dass die Kommunikationseinstellungen
auch mit denen des Terminals übereinstimmen.In unserem Beispiel verwendet der Wyse-50 keine
Parität und 38400 bps, der 286 PC benutzt ebenfalls
keine Parität und arbeitet mit 19200 bps.Das dritte Feld gibt den Terminaltyp an, der
normalerweise mit diesem Anschluss verbunden ist.
Für Einwählverbindungen wird oft
unknown oder dialup
benutzt, da sich die Benutzer praktisch mit beliebigen
Terminals oder Emulatoren anmelden können. Bei
festverdrahteten Terminals ändert sich der Typ nicht,
so dass Sie in diesem Feld einen richtigen Typ aus der
&man.termcap.5; Datenbank angeben können.In unserem Beispiel benutzen wir für den Wyse-50
den entsprechenden Typ aus &man.termcap.5;, der 286 PC
wird als VT-100, den er ja emuliert, angegeben.Das vierte Feld gibt an, ob der Anschluss
aktiviert werden soll. Wenn Sie hier on
angeben, startet init das Programm, das
im zweiten Feld angegeben wurde (normal
getty). Wenn Sie off
angeben, wird das Kommando aus dem zweiten Feld nicht
ausgeführt und folglich können Sie sich dann an
dem betreffenden Terminal nicht anmelden.Im letzten Feld geben Sie die Sicherheit des
Anschlusses an. Wenn Sie hier secure
angeben, darf sich root (oder jeder
Account mit der UID 0) über diese
Verbindung anmelden. Wenn Sie insecure
angeben, dürfen sich nur unprivilegierte Benutzer
anmelden. Diese können später mit &man.su.1;
oder einem ähnlichen Mechanismus zu
root wechseln.Es wird dringend empfohlen, insecure
nur für Terminals hinter verschlossenen Türen
zu verwenden, da Sie mit su leicht zum
Superuser werden können.init zwingen,
/etc/ttys erneut zu lesenNachdem Sie die nötigen Änderungen in
/etc/ttys vorgenommen haben, schicken Sie
init ein SIGHUP-Signal (hangup), um es zu
veranlassen, seine Konfigurationsdatei neu zu lesen:&prompt.root; kill -HUP 1Da init immer der erste Prozess auf
einem System ist, besitzt es immer die PID
1.Wenn alles richtig eingerichtet ist, alle Kabel angeschlossen
und die Terminals eingeschaltet sind, sollte für jeden
Terminal ein getty Prozess laufen und auf
jedem Terminal sollten Sie eine Anmeldeaufforderung sehen.FehlersucheSelbst wenn Sie den Anweisungen akribisch gefolgt sind, kann es
immer noch zu Fehlern beim Einrichten eines Terminals kommen. Die
folgende Aufzählung von Symptomen beschreibt mögliche
Lösungen:Es erscheint kein AnmeldepromptStellen Sie sicher, dass der Terminal verbunden und
eingeschaltet ist. Wenn ein PC als Terminal fungiert,
überprüfen Sie, dass die Terminalemulation auf
den richtigen Schnittstellen läuft.Stellen Sie sicher, dass Sie das richtige Kabel
verwenden und dass das Kabel fest mit dem Terminal und
dem FreeBSD-Rechner verbunden ist.Stellen Sie sicher, dass die Einstellungen für
die Geschwindigkeit (bps) und Parität auf dem FreeBSD
System und dem Terminal gleich sind. Wenn Ihr Terminal einen
Bildschirm besitzt, überprüfen Sie die richtige
Einstellung von Helligkeit und Kontrast. Wenn Ihr Terminal
druckt, stellen Sie die ausreichende Versorgung mit Papier
und Tinte sicher.Überprüfen Sie mit ps,
dass der getty Prozess für
den Terminal läuft:&prompt.root; ps -axww|grep gettyFür jeden Terminal sollten Sie einen Eintrag sehen.
Aus dem folgenden Beispiel erkennen Sie, dass
getty auf der zweiten seriellen
Schnittstelle läuft und den Verbindungstyp
std.38400 aus
/etc/gettytab benutzt:22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1Wenn getty nicht läuft,
überprüfen Sie, ob der Anschluss in
/etc/ttys aktiviert ist. Haben Sie
kill -HUP 1 abgesetzt, nachdem Sie
/etc/ttys geändert hatten?Wenn getty läuft, aber der
Terminal immer noch kein Anmeldeprompt ausgibt, oder Sie am
Anmeldeprompt nichts eingeben können, kann es sein,
dass Ihr Terminal oder Kabel keinen Hardware-Handshake
unterstützt. Ändern Sie dann den Eintrag
std.38400 in /etc/ttys
zu 3wire.38400. Nachdem Sie
/etc/ttys geändert haben, setzen
Sie das Kommando kill -HUP 1 ab. Der
Eintrag 3wire besitzt ähnliche
Eigenschaften wie der Eintrag std,
ignoriert aber den Hardware-Handshake. Wenn Sie den Eintrag
3wire verwenden, müssen Sie
vielleicht die Geschwindigkeit verkleinern oder die
Software-Flusssteuerung aktivieren, um
Pufferüberläufe zu vermeiden.Es erscheinen nur unverständliche ZeichenStellen Sie sicher, dass die Einstellungen für
die Geschwindigkeit (bps) und Parität auf dem FreeBSD
System und dem Terminal gleich sind. Kontrollieren Sie den
getty Prozess und stellen Sie sicher,
dass der richtige Verbindungstyp aus
/etc/gettytab benutzt wird. Wenn das
nicht der Fall ist, editieren Sie
/etc/ttys und setzen das Kommando
kill-HUP 1 ab.Zeichen erscheinen doppelt und eingegebene
Passwörter erscheinen im KlartextStellen Sie den Terminal oder die Terminalemulation von
half duplex oder local echo auf
full duplex. um.GuyHelmerBeigetragen von SeanKellyMit Anmerkungen von EinwählverbindungenEinwählverbindungenDas Einrichten von Einwählverbindungen ähnelt dem
Anschließen von Terminals, nur dass Sie anstelle eines
Terminals ein Modem verwenden.Externe und interne ModemsExterne Modems sind für Einwählverbindungen besser
geeignet, da sie die Konfiguration in nicht flüchtigem RAM
speichern können. Zudem verfügen Sie über
Leuchtanzeigen, die den Status wichtiger RS-232 Signale
anzeigen und unter Umständen Besucher beeindrucken
können.Interne Modems verfügen normalerweise nicht über
nicht flüchtiges RAM und lassen sich meist nur über
DIP-Schalter konfigurieren. Selbst wenn ein internes Modem
Leuchtanzeigen besitzt, sind diese meist schwer einzusehen, wenn
das Modem eingebaut ist.Modems und KabelModemMit einem externen Modem müssen Sie das richtige Kabel
benutzen: Ein Standard RS-232C Kabel, bei dem die folgenden
Signale miteinander verbunden sind, sollte ausreichen:
- Signal Names
+ Signalnamen
-
+ AbkürzungBedeutungRDReceived DataTDTransmitted DataDTRData Terminal ReadyDSRData Set ReadyDCDData Carrier Detect (dadurch erkennt RS-232
das Signal Received Line)SGSignal GroundRTSRequest to SendCTSClear to Send
Ab Geschwindigkeiten von 2400 bps benötigt FreeBSD die
Signale RTS und CTS
für die Flusssteuerung. Das Signal
CD zeigt an, ob ein Träger vorliegt, das
heißt ob die Verbindung aufgebaut ist oder beendet wurde.
DTR zeigt an, dass das Gerät
betriebsbereit ist. Es gibt einige Kabel, bei denen nicht alle
nötigen Signale verbunden sind. Wenn Sie Probleme der Art
haben, dass zum Beispiel die Sitzung nicht beendet wird,
obwohl die Verbindung beendet wurde, kann das an einem solchen
Kabel liegen.Wie andere &unix; Betriebssysteme auch, benutzt FreeBSD
Hardwaresignale, um festzustellen, ob ein Anruf
beantwortet wurde, eine Verbindung beendet wurde, oder um die
Verbindung zu schließen und das Modem zurückzusetzen.
FreeBSD vermeidet es, dem Modem Kommandos zu senden, oder den
Statusreport des Modems abzufragen. Falls Sie ein Benutzer
von PC-basierenden Bulletin Board Systemen sind, mag Sie das
verwundern.SchnittstellenbausteineFreeBSD unterstützt EIA RS-232C (CCITT V.24) serielle
Schnittstellen, die auf den NS8250, NS16450, NS16550 oder NS16550A
Bausteinen basieren. Die Bausteine der Serie 16550 verfügen
über einen 16 Byte großen Puffer, der als FIFO angelegt
ist. Wegen Fehler in der FIFO-Logik kann der Puffer in einem 16550
Baustein allerdings nicht genutzt werden, das heißt der
Baustein muss als 16450 betrieben werden. Bei allen
Bausteinen ohne Puffer und dem 16550 Baustein muss jedes
Byte einzeln von dem Betriebssystem verarbeitet werden, was
Fehler bei hohen Geschwindigkeiten oder großer Systemlast
erzeugt. Es sollten daher nach Möglichkeit serielle
Schnittstellen, die auf 16550A Bausteinen basieren, eingesetzt
werden.ÜberblickgettyWie bei Terminals auch, startet init für
jede serielle Schnittstelle, die eine Einwählverbindung zur
Verfügung stellt, einen getty Prozess.
Wenn das Modem beispielsweise an /dev/ttyd0
angeschlossen ist, sollte in der Ausgabe von ps
ax eine Zeile wie die folgende erscheinen: 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0Wenn sich ein Benutzer einwählt und die Verbindung
aufgebaut ist, zeigt das Modem dies durch das CD
Signal (Carrier Detect) an. Der Kernel merkt, dass ein Signal
anliegt und vollendet das Öffnen der Schnittstelle durch
getty. Dann sendet getty das
Anmeldeprompt mit der ersten für die Verbindung vereinbarten
Geschwindigkeit und wartet auf eine Antwort. Wenn die Antwort
unverständlich ist, weil zum Beispiel die Geschwindigkeit des
Modems von gettys Geschwindigkeit abweicht,
versucht getty die Geschwindigkeit solange
anzupassen, bis es eine verständliche Antwort
erhält./usr/bin/logingetty führt, nachdem der Benutzer seinen
Namen eingegeben hat, /usr/bin/login aus,
welches das Passwort abfragt und danach die Shell des
Benutzers startet.KonfigurationsdateienDrei Konfigurationsdateien in /etc
steuern, ob eine Einwahl in Ihr FreeBSD-System möglich ist.
Die erste, /etc/gettytab, konfiguriert den
/usr/libexec/getty Dæmon. In
/etc/ttys wird festgelegt, auf welchen
Schnittstellen /sbin/init einen
getty Prozess startet. Schließlich
haben Sie in /etc/rc.d/serial die
Möglichkeit, Schnittstellen zu initialisieren.Es gibt zwei Ansichten darüber, wie Modems für
Einwählverbindungen unter &unix; zu konfigurieren sind. Zum
einen kann die Geschwindigkeit zwischen dem Modem und dem Computer
fest eingestellt werden. Sie ist damit unabhängig von der
Geschwindigkeit, mit der sich der entfernte Benutzer einwählt.
Dies hat den Vorteil, dass der entfernte Benutzer das
Anmeldeprompt sofort bekommt. Der Nachteil bei diesem Verfahren
ist, dass das System die tatsächliche Geschwindigkeit
der Verbindung nicht kennt. Damit können bildschirmorientierte
Programme wie Emacs ihren
Bildschirmaufbau nicht an langsame Verbindungen anpassen,
um die Antwortzeiten zu verbessern.Die andere Möglichkeit besteht darin, die Geschwindigkeit
der RS-232 Schnittstelle des lokalen Modems an die Geschwindigkeit
des entfernten Modems anzupassen. Bei einer V.32bis (14400 bps)
Verbindung kann das lokale Modem die RS-232 Schnittstelle mit
19200 bps betreiben, während bei einer Verbindung mit
2400 bps die RS-232 Schnittstelle mit 2400 bps
betrieben wird. Da getty die
Verbindungsgeschwindigkeit des Modems nicht kennt, startet es
den Anmeldevorgang mit der Ausgabe
von login: und wartet auf eine Antwort. Wenn der
Benutzer der Gegenstelle nun nur unverständliche Zeichen
erhält, muss er solange Enter
drücken, bis das Anmeldeprompt erscheint. Solange die
Geschwindigkeiten nicht übereinstimmen, sind die Antworten der
Gegenstelle für getty ebenfalls
unverständlich. In diesem Fall wechselt
getty zur nächsten Geschwindigkeit und gibt
wieder login: aus. In aller Regel erhält der
Benutzer der Gegenstelle nach ein bis zwei Tastendrücken
eine erkennbare Anmeldeaufforderung. Diese Anmeldeprozedur sieht
nicht so sauber wie die Methode mit einer festen Geschwindigkeit
aus, bietet dem Benutzer einer langsamen Verbindung allerdings den
Vorteil, dass sich bildschirmorientierte Programme an die
Geschwindigkeit anpassen können.Im Folgenden wird die Konfiguration für beide Methoden
besprochen, doch die Methode der angepassten Geschwindigkeit
wird bei der Diskussion bevorzugt./etc/gettytab/etc/gettytabMit /etc/gettytab wird &man.getty.8; im
Stil von &man.termcap.5; konfiguriert. Das Format dieser Datei und
die Bedeutung der Einträge wird in &man.gettytab.5;
beschrieben.Konfiguration für feste GeschwindigkeitWenn Sie die Modemgeschwindigkeit vorgeben, werden Sie in
/etc/gettytab nichts ändern
müssen.Konfiguration für angepasste GeschwindigkeitIn /etc/gettytab müssen
Einträge für die Geschwindigkeiten, die Sie benutzen
wollen, sein. Wenn Sie ein 2400 bps Modem besitzen,
können Sie wahrscheinlich den schon vorhandenen
D2400 Eintrag benutzen.#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
#
D2400|d2400|Fast-Dial-2400:\
:nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
:nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
:nx=D2400:tc=300-baud:Wenn Sie ein Modem mit einer höheren Geschwindigkeit
besitzen, müssen Sie wahrscheinlich in
/etc/gettytab weitere Einträge
erstellen. Hier ist ein Beispiel, das Sie mit einem 14400 bps
Modem benutzen können:#
# Additions for a V.32bis Modem
#
um|V300|High Speed Modem at 300,8-bit:\
:nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
:nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
:nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
:nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
:nx=V9600:tc=std.19200:Die damit erzeugten Verbindungen verwenden 8 Bit und keine
Parität.Im obigen Beispiel startet die Geschwindigkeit bei
19200 bps (eine V.32bis Verbindung) und geht dann
über 9600 bps (V.32), 400 bps, 1200 bps
und 300 bps wieder zurück zu 19200 bps.
Das Schlüsselwort nx=
(next table) sorgt für
das zyklische Durchlaufen der Geschwindigkeiten. Jede Zeile
zieht zudem noch mit tc=
(table continuation)
die Vorgabewerte für die jeweilige Geschwindigkeit an.Wenn Sie ein 28800 bps Modem besitzen und/oder Kompression
mit einem 14400 bps Modem benutzen wollen, brauchen Sie
höhere Geschwindigkeiten als 19200 bps. Das folgende
Beispiel startet mit 57600 bps:#
# Additions for a V.32bis or V.34 Modem
# Starting at 57600 bps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
:nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
:nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
:nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
:nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
:nx=VH9600:tc=std.57600:Wenn Sie eine langsame CPU oder ein stark ausgelastetes
System besitzen und sich kein 16550A in Ihrem System befindet,
erhalten Sie bei 57600 bps vielleicht
sio Fehlermeldungen der Form silo
overflow./etc/ttys/etc/ttys/etc/ttys wurde bereits in besprochen. Die Konfiguration für
Modems ist ähnlich, allerdings braucht
getty ein anderes Argument und es muss
ein anderer Terminaltyp angegeben werden. Der Eintrag für
beide Methoden (feste und angepasste Geschwindigkeit) hat die
folgende Form:ttyd0 "/usr/libexec/getty xxx" dialup onDas erste Feld der obigen Zeile gibt die Gerätedatei
für diesen Eintrag an – ttyd0
bedeutet, dass getty mit
/dev/ttyd0 arbeitet. Das zweite Feld
"/usr/libexec/getty xxx"
gibt das Kommando an, das init für dieses
Gerät startet (xxx wird durch
einen passenden Eintrag aus /etc/gettytab
ersetzt). Die Vorgabe für den Terminaltyp, hier
dialup, wird im dritten Feld angegeben. Das
vierte Feld, on, zeigt
init an, dass die Schnittstelle aktiviert
ist. Im fünften Feld könnte noch
secure angegeben werden, um Anmeldungen von
root zu erlauben, doch sollte das wirklich
nur für physikalisch sichere Terminals, wie die
Systemkonsole, aktiviert werden.Die Vorgabe für den Terminaltyp,
dialup im obigen Beispiel, hängt von lokalen
Gegebenheiten ab. Traditionell wird dialup
für Einwählverbindungen verwendet, so dass die
Benutzer in ihren Anmeldeskripten den Terminaltyp auf ihren
Terminal abstimmen können, wenn der Typ auf
dialup gesetzt ist. Wenn Sie aber
beispielsweise nur VT102 Terminals oder Emulatoren einsetzen,
können Sie den Terminaltyp hier auch fest auf
vt102 setzen.Nachdem Sie /etc/ttys geändert
haben, müssen Sie init ein
HUP Signal schicken, damit es die Datei wieder
einliest. Sie können dazu das folgende Kommando
verwenden:&prompt.root; kill -HUP 1Wenn Sie das System zum ersten Mal konfigurieren, sollten Sie
dieses Kommando erst ausführen, wenn Sie Ihr Modem richtig
konfiguriert und angeschlossen haben.Konfiguration für feste GeschwindigkeitDas Argument von getty muss in
diesem Fall eine feste Geschwindigkeit vorgeben. Der Eintrag
für ein Modem, das fest auf 19200 bps eingestellt ist,
könnte wie folgt aussehen:ttyd0 "/usr/libexec/getty std.19200" dialup onWenn Ihr Modem auf eine andere Geschwindigkeit eingestellt
ist, setzen Sie anstelle von std.19200 einen
passenden Eintrag der Form
std.speed ein.
Stellen Sie sicher, dass dies auch ein gültiger
Verbindungstyp aus /etc/gettytab
ist.Konfiguration für angepasste GeschwindigkeitDas Argument von getty muss hier auf
einen der Einträge aus /etc/gettytab
zeigen, der zu einer Kette von Einträgen gehört, die
die zu probierenden Geschwindigkeiten beschreiben. Wenn Sie
dem obigen Beispiel gefolgt sind und zusätzliche
Einträge in /etc/gettytab erzeugt
haben, können Sie die folgende Zeile verwenden:ttyd0 "/usr/libexec/getty V19200" dialup on/etc/rc.d/serialrc-Dateienrc.serialModems, die höhere Geschwindigkeiten unterstützen,
zum Beispiel V.32, V.32bis und V.34 Modems, benutzen
Hardware-Flusssteuerung (RTS/CTS). Für
die entsprechenden Schnittstellen können Sie die
Flusssteuerung mit stty in
/etc/rc.d/serial einstellen.Um beispielsweise die Hardware-Flusssteuerung
für die Geräte zur Ein- und Auswahl der zweiten
seriellen Schnittstelle (COM2)
zu aktivieren, benutzen Sie die Dateien zur Initialisierung der
entsprechenden Geräte und fügen die folgenden Zeilen in
/etc/rc.d/serial hinzu:# Serial port initial configuration
stty -f /dev/ttyd1.init crtscts
stty -f /dev/cuad1.init crtsctsModemkonfigurationWenn Sie ein Modem besitzen, das seine Konfiguration in nicht
flüchtigem RAM speichert, werden Sie ein Terminalprogramm wie
Telix unter &ms-dos; oder tip unter FreeBSD
benötigen, um die Parameter einzustellen. Verbinden Sie sich
mit derselben Geschwindigkeit, die getty
zuerst benutzen würde, mit dem Modem und treffen Sie folgende
Einstellungen:DCD ist eingeschaltet, wenn das
Trägersignal des entfernten Modems erkannt wird.Im Betrieb liegt DTR an. Bei einem Verlust
von DTR legt das Modem auf und setzt sich zurück.CTS Flusssteuerung ist für
ausgehende Daten aktiviert.XON/XOFF Flusssteuerung ist
ausgeschaltet.RTS Flusssteuerung ist für
eingehende Daten aktiviert.Keine Rückmeldungen ausgeben.Die Echo-Funktion ist deaktiviert.In der Dokumentation Ihres Modems finden Sie die nötigen
Befehle, die Sie absetzen müssen, und/oder nötigen
DIP-Schalterstellungen, um die obigen Einstellungen zu
treffen.Für ein externes 14400 &usrobotics; &sportster; gelten zum
Beispiel die folgenden Befehle:ATZ
AT&C1&D2&H1&I0&R2&WBei dieser Gelegenheit können Sie auch gleich andere
Einstellungen, zum Beispiel ob Sie V42.bis und/oder MNP5
Kompression benutzen wollen, an Ihrem Modem vornehmen.Bei einem externen 14400 &usrobotics; &sportster;
müssen Sie auch noch einige DIP-Schalter einstellen.
Die folgenden Einstellungen können Sie vielleicht
als Beispiel für andere Modems verwenden:Schalter 1: OBEN – DTR normalSchalter 2: N/A (Rückmeldungen als Text/numerische
Rückmeldungen)Schalter 3: OBEN – Keine Rückmeldungen
ausgebenSchalter 4: UNTEN – Echo-Funktion ausSchalter 5: OBEN – Rufannahme aktiviertSchalter 6: OBEN – Carrier Detect normalSchalter 7: OBEN – Einstellungen aus dem NVRAM ladenSchalter 8: N/A (Smart Mode/Dumb Mode)Für Einwählverbindungen sollten die
Rückmeldungen deaktiviert sein, da sonst
getty dem Modem das Anmeldeprompt
login: schickt und das Modem im Kommandomodus das
Prompt wieder ausgibt (Echo-Funktion) oder eine Rückmeldung gibt.
Das führt dann zu einer länglichen und fruchtlosen
Kommunikation zwischen dem Modem und
getty.Konfiguration für feste GeschwindigkeitDie Geschwindigkeit zwischen Modem und Computer muss auf
einen festen Wert eingestellt werden. Mit einem externen 14400
&usrobotics; &sportster; Modem setzen die folgenden Kommandos die
Geschwindigkeit auf den Wert der Datenendeinrichtung fest:ATZ
AT&B1&WKonfiguration für angepasste GeschwindigkeitIn diesem Fall muss die Geschwindigkeit der seriellen
Schnittstelle des Modems der eingehenden Geschwindigkeit
angepasst werden. Für ein externes
14400 &usrobotics; &sportster;
Modem erlauben die folgenden Befehle eine Anpassung der
Geschwindigkeit der seriellen Schnittstelle für
Verbindungen, die keine Fehlerkorrektur verwenden:ATZ
AT&B2&WVerbindungen mit Fehlerkorrektur (V.42, MNP) verwenden die
Geschwindigkeit der Datenendeinrichtung.Überprüfen der ModemkonfigurationDie meisten Modems verfügen über Kommandos, die die
Konfiguration des Modems in lesbarer Form ausgeben. Auf einem
externen 14400 &usrobotics; &sportster; zeigt
ATI5 die Einstellungen im nicht
flüchtigen RAM an. Um die wirklichen
Einstellungen unter Berücksichtigung der DIP-Schalter zu
sehen, benutzen Sie ATZ gefolgt von
ATI4.Wenn Sie ein anderes Modem benutzen, schauen Sie bitte in der
Dokumentation Ihres Modems nach, wie Sie die Konfiguration des
Modems überprüfen können.FehlersucheBei Problemen können Sie die Einwählverbindung anhand
der folgenden Punkte überprüfen:Überprüfen des FreeBSD-SystemsSchließen Sie das Modem an das FreeBSD-System an und
booten Sie das System. Wenn Ihr Modem über
Statusindikatoren verfügt, überprüfen Sie, ob der
DTR Indikator leuchtet, wenn das Anmeldeprompt
erscheint. Dies zeigt an, dass das FreeBSD-System einen
getty Prozess auf der entsprechenden
Schnittstelle gestartet hat und das Modem auf einkommende
Verbindungen wartet.Wenn der DTR-Indikator nicht leuchtet,
melden Sie sich an dem FreeBSD-System an und überprüfen mit
ps ax, ob FreeBSD einen
getty-Prozess auf der entsprechenden
Schnittstelle gestartet hat. Unter den angezeigten Prozessen
sollten Sie ähnliche wie die folgenden finden: 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1Wenn das Modem noch keinen Anruf entgegengenommen hat und Sie
stattdessen die folgende Zeile sehen 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0bedeutet dies, dass getty die
Schnittstelle schon geöffnet hat und zeigt Kabelprobleme
oder eine falsche Modemkonfiguration an, da
getty die Schnittstelle erst dann öffnen
kann, wenn das CD Signal (Carrier Detect) vom
Modem anliegt.Wenn Sie keine getty-Prozesse auf den
gewünschten ttydN
Ports finden, untersuchen Sie bitte /etc/ttys
auf Fehler. Suchen Sie auch in /var/log/messages
nach Meldungen von init oder
getty. Wenn Sie dort Meldungen finden,
sollten Sie noch einmal die beiden Konfigurationsdateien
/etc/ttys und /etc/gettytab
nach Fehlern durchsehen. Überprüfen Sie auch, ob die
Gerätedateien
/dev/ttydN
vorhanden sind.EinwählversuchVersuchen Sie, sich in Ihr System einzuwählen. Auf dem
entfernten System stellen Sie bitte die folgenden
Kommunikationsparameter ein: 8 Bit, keine Parität, ein
Stop-Bit. Wenn Sie kein Anmeldeprompt erhalten oder nur
unleserliche Zeichen sehen, drücken Sie mehrmals, in
Abständen von ungefähr einer Sekunde,
Enter. Wenn Sie immer noch nicht die
login: Meldung sehen, schicken Sie ein
BREAK Kommando. Wenn Sie zur Einwahl ein
Highspeed-Modem benutzen, verwenden Sie eine feste
Geschwindigkeit auf der seriellen Schnittstelle des Modems
(AT&B1 für ein
&usrobotics; &sportster;).Wenn Sie jetzt immer noch kein Anmeldeprompt erhalten,
überprüfen Sie nochmals /etc/gettytab
und stellen sicher, dassder Verbindungstyp in /etc/ttys zu
einem gültigen Eintrag in /etc/gettytab
gehört,jeder der nx= Einträge in
gettytab gültig ist undjeder tc= Eintrag auf einen
gültigen Eintrag in gettytab
verweist.Wenn das Modem an Ihrem FreeBSD-System auf einen eingehenden Anruf
nicht antwortet, stellen Sie sicher, dass das Modem so
konfiguriert ist, dass es einen Anruf beantwortet, wenn
DTR anliegt. Wenn Ihr Modem Statusindikatoren
besitzt, können Sie das Anliegen von DTR
anhand der Leuchten überprüfen.Wenn Sie alles schon mehrfach überprüft haben und
es immer noch noch nicht funktioniert, machen Sie erst einmal
eine Pause, bevor Sie weitermachen. Wenn es immer noch nicht
funktioniert, können Sie eine Mail an die Mailingliste
&a.de.questions; schicken, in der Sie Ihr Modem und Ihr Problem
beschreiben und Ihnen sollte geholfen werden.Verbindungen nach AußenDie folgenden Ratschläge beschreiben, wie Sie mit einem
Modem eine Verbindung zu einem anderen Computer herstellen. Dies
können Sie nutzen, um sich auf einem entfernten Computer
anzumelden, oder um eine Verbindung zu einem BBS (Bulletin Board
System) herzustellen.Weiterhin ist diese Art von Verbindungen nützlich, wenn mal
Ihr PPP nicht funktioniert. Wenn Sie zum Beispiel eine Datei
mit FTP übertragen wollen und das über PPP gerade nicht
möglich ist, melden Sie sich auf dem entfernten Rechner an und
führen dort die FTP-Sitzung durch. Die Dateien können Sie
danach mit zmodem auf den lokalen Rechner übertragen.Mein Hayes Modem wird nicht unterstützt – was kann
ich tun?Eigentlich ist die Onlinehilfe für tip
nicht mehr aktuell. Es gibt einen eingebauten, allgemeinen
Hayes Wähler. Verwenden Sie einfach at=hayes
in /etc/remote.Der Hayes-Treiber ist nicht schlau genug, um ein paar der
erweiterten Funktionen von neueren Modems zu erkennen –
Nachrichten wie BUSY,
NO DIALTONE oder CONNECT 115200
verwirren ihn nur. Sie sollten diese Nachrichten mit Hilfe von
ATX0&W abschalten, wenn Sie
tip benutzen.Der Anwahl-Timeout von tip beträgt 60
Sekunden. Ihr Modem sollte weniger verwenden, oder
tip denkt, dass ein Kommunikationsfehler
vorliegt. Versuchen Sie es mit
ATS7=45&W.Tatsächlich unterstützt die ausgelieferte Version
von tip Hayes Modems noch nicht
vollständig. Die Lösung ist,
tipconf.h in
/usr/src/usr.bin/tip/tip zu editieren.
Dafür benötigen Sie natürlich die Quellcode
Distribution.Ändern Sie die Zeile #define HAYES 0
zu #define HAYES 1. Dann führen Sie
make und make install aus.
Es sollte jetzt funktionieren.Wie soll ich die AT-Befehle eingeben?/etc/remoteErstellen Sie einen so genannten direct
Eintrag in /etc/remote. Wenn Ihr Modem zum
Beispiel an der ersten seriellen Schnittstelle,
/dev/cuad0, angeschlossen ist, dann
fügen Sie die folgende Zeile hinzu:cuad0:dv=/dev/cuad0:br#19200:pa=noneVerwenden Sie die höchste bps-Rate, die Ihr Modem in der
br Fähigkeit unterstützt. Geben Sie dann tip
cuad0 ein und Sie sind mit Ihrem
Modem verbunden.Oder benutzen Sie cu als
root mit dem folgenden Befehl:&prompt.root; cu -lline -sspeedline steht für die serielle
Schnittstelle (/dev/cuad0) und
speed für die Geschwindigkeit
(57600). Wenn Sie mit dem Eingeben der AT
Befehle fertig sind, beenden Sie mit ~..Wieso funktioniert das @ Zeichen für
die pn Fähigkeit nicht?Das @ Zeichen in der
Telefonnummerfähigkeit sagt tip, dass
es in der Datei /etc/phones nach einer Nummer
suchen soll. Aber @ ist auch ein spezielles
Zeichen in den Dateien, in denen Fähigkeiten beschrieben
werden, wie /etc/remote. Schreiben Sie es mit
einem Backslash:pn=\@Wie kann ich von der Kommandozeile eine Telefonnummer
wählen?Stellen Sie einen allgemeinen Eintrag in
/etc/remote. Zum Beispiel:tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuad0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuad0:br#57600:at=hayes:pa=none:du:Mit dem folgenden Befehl können Sie dann
wählen:&prompt.root; tip -115200 5551234Sollten Sie cu gegenüber
tip bevorzugen, verwenden Sie einen allgemeinen
cu-Eintrag:cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuad1:br#57600:at=hayes:pa=none:du:und benutzen zum Wählen das Kommando:&prompt.root; cu 5551234 -s 115200Muss ich dabei jedes Mal die bps-Rate angeben?Schreiben Sie einen tip1200- oder einen
cu1200-Eintrag, aber geben Sie auch die bps-Rate
an, die Ihr Modem wirklich unterstützt. Leider denkt
&man.tip.1;, dass 1200 bps ein guter Standardwert ist und
deswegen sucht es nach einem tip1200-Eintrag.
Natürlich müssen Sie nicht 1200 bps
benutzen.Wie kann ich möglichst komfortabel über einen
Terminal-Server auf verschiedene Rechner zugreifen?Sie müssen nicht warten bis Sie verbunden sind, und
jedes Mal CONNECT Rechner
eingeben, benutzen Sie tips
cm-Fähigkeit. Sie können diese
Einträge in /etc/remote verwenden:pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuad2:br#38400:at=hayes:du:pa=none:pn=5551234:Mit den Befehlen tip pain oder tip
muffin können Sie eine Verbindungen zu den Rechnern
pain oder muffin herstellen; mit
tip deep13 verbinden Sie sich mit dem
Terminalserver.Kann tip mehr als eine Verbindung für
jede Seite ausprobieren?Das ist oft ein Problem, wenn eine Universität mehrere
Telefonleitungen hat und viele tausend Studenten diese benutzen
wollen.Erstellen Sie einen Eintrag für Ihre Universität in
/etc/remote und benutzen Sie
@ für die
pn-Fähigkeit:big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuad3:br#9600:at=courier:du:pa=none:Listen Sie die Telefonnummern der Universität in
/etc/phones auf:big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114tip probiert jede der Nummern in der
aufgelisteten Reihenfolge und gibt dann auf. Möchten Sie,
dass tip beim Versuchen eine Verbindung
herzustellen nicht aufgibt, lassen Sie es in einer while-Schleife
laufen.Warum muss ich zweimal
CtrlP
tippen, um ein
CtrlP
zu senden?CtrlP
ist das voreingestellte Zeichen, mit dem eine Übertragung
erzwungen werden kann und wird benutzt, um tip
zu sagen, dass das nächste Zeichen direkt gesendet werden
soll und nicht als Fluchtzeichen interpretiert werden soll. Mit
Hilfe der Fluchtsequenz ~s, mit der man
Variablen setzen kann, können Sie jedes andere Zeichen als
force-Zeichen definieren.Geben Sie
~sforce=Zeichen
gefolgt von Enter ein. Für
Zeichen können Sie ein beliebiges
einzelnes Zeichen einsetzen. Wenn Sie
Zeichen weglassen, ist das
force-Zeichen nul, das Sie mit
Ctrl2
oder
CtrlLeertaste eingeben können. Ein guter Wert für
Zeichen ist
ShiftCtrl6, welches nur auf wenigen Terminal Servern benutzt
wird.Sie können das force-Zeichen auch
bestimmen, indem Sie in $HOME/.tiprc das
Folgende einstellen:force=<single-char>Warum ist auf einmal alles was ich schreibe in
GROSSBUCHSTABEN??Sie müssen
CtrlA, eingegeben haben, das raise-Zeichen von
tip, das speziell für Leute mit defekten
caps-lock Tasten eingerichtet wurde. Benutzen Sie
~s wie oben und setzen Sie die Variable
raisechar auf etwas, das Ihnen angemessen
erscheint. Tatsächlich kann die Variable auf das gleiche
Zeichen wie das force-Zeichen gesetzt werden, wenn
Sie diese Fähigkeiten niemals benutzen wollen.Hier ist ein Muster der .tiprc Datei,
perfekt für Emacs Benutzer, die oft
Ctrl2
und
CtrlA
tippen müssen:force=^^
raisechar=^^Geben Sie für ^^ShiftCtrl6 ein.Wie kann ich Dateien mit tip
übertragen?Wenn Sie mit einem anderen &unix; System kommunizieren,
können Sie mit ~p (put) und
~t (take) Dateien senden und empfangen. Diese
Befehle lassen cat und echo
auf dem entfernten System laufen, um Dateien zu empfangen und zu
senden. Die Syntax ist:~plocal-fileremote-file~tremote-filelocal-fileEs gibt keine Fehlerkontrolle, deshalb sollten Sie besser ein
anderes Protokoll, wie zmodem, benutzen.Wie kann ich zmodem mit tip laufen
lassen?Um Dateien zu empfangen, starten Sie das Programm zum Senden
auf dem entfernten Computer. Geben Sie dann
~C rz ein, um die Dateien lokal zu empfangen.Um Dateien zu senden, starten Sie das Programm zum Empfangen
auf dem entfernten Computer. Geben Sie dann
~C sz Dateien ein,
um Dateien auf das entfernte System zu senden.KazutakaYOKOTABeigesteuert von BillPaulAuf Grundlage eines Dokuments von Einrichten der seriellen Konsoleserielle KonsoleEinführungFreeBSD kann ein System mit einem Dumb-Terminal (unintelligente
Datenstation) an einer seriellen Schnittstelle als Konsole booten.
Diese Konfiguration ist besonders nützlich für
Systemadministratoren, die FreeBSD auf Systemen ohne Tastatur oder
Monitor installieren wollen, und Entwickler, die den Kernel oder
Gerätetreiber debuggen.Wie in beschrieben, besitzt FreeBSD drei
Bootphasen. Der Code für die ersten beiden Bootphasen befindet
sich im Bootsektor am
Anfang der FreeBSD-Slice der Bootplatte. Dieser Bootblock
lädt den Bootloader (/boot/loader) in
Phase drei.Um eine serielle Konsole einzurichten, müssen Sie den
Bootblock, den Bootloader und den Kernel konfigurieren.Serielle Konsole einrichten, KurzfassungDieser Abschnitt fasst zusammen, wie Sie eine
serielle Konsole einrichten. Es wird vorausgesetzt, dass
Sie die Voreinstellungen verwenden und wissen, wie
serielle Schnittstellen verbunden werden.Verbinden Sie die serielle Konsole mit COM1 sowie
dem Kontrollterminal.Um die Startmeldungen der seriellen Konsole zu sehen,
geben Sie als root Folgendes ein:&prompt.root; echo 'console="comconsole"' >> /boot/loader.confÄndern Sie in /etc/ttys
den Eintrag für ttyd0 von
off auf on.
Zusätzlich sollten Sie den Wert
dialup auf vt100
ändern. Nur so wird auf der seriellen Konsole
eine Eingabeaufforderung mit einer Passwortabfrage
aktiviert.Starten Sie nun das System neu, damit die serielle
Konsole aktiviert wird.Wenn Sie eine unterschiedliche Konfiguration benötigen,
sollten Sie lesen.Konfiguration der KonsoleBereiten Sie ein serielles Kabel vor.NullmodemkabelSie benötigen entweder ein Nullmodemkabel oder ein
serielles Standard Kabel mit einem Nullmodemkabel-Adapter. In
wurden serielle Kabel
beschrieben.Trennen Sie die Tastatur vom Computer.Die meisten PC Systeme suchen beim Power On Self Test
(POST) nach einer Tastatur und geben eine Fehlermeldung aus,
wenn sie keine finden. Einige Maschinen werden sich sogar
weigern, ohne Tastatur zu booten.Wenn Ihr Rechner trotz einer Fehlermeldung normal
weiterbootet, brauchen Sie weiter nichts zu tun.
Beispielsweise geben einige Maschinen mit einem Phoenix BIOS
nur Keyboard failed aus und booten dann
normal weiter.Wenn Ihr System ohne Tastatur nicht booten will,
müssen Sie das BIOS so konfigurieren, das es diesen Fehler
ignoriert (wenn das möglich ist). Das Handbuch zu Ihrem
Motherboard sollte beschreiben, wie das zu bewerkstelligen
ist.Selbst wenn Sie im BIOS Not installed
für die Tastatur einstellen, können Sie eine
Tastatur angeschlossen haben und diese auch weiterhin
benutzen, da sie mit dieser Anweisung das BIOS
lediglich anweisen, nach dem Einschalten des Rechners nicht
nach einer Tastatur zu suchen und den Rechner ohne
entsprechende Fehlermeldung zu starten.Wenn Ihr System über eine &ps2; Maus verfügt,
müssen Sie diese wahrscheinlich auch abziehen. Da sich
die &ps2; Maus und die Tastatur einige Hardwarekomponenten
teilen, kann das dazu führen, dass die
Hardwareerkennung fälschlicherweise eine Tastatur findet,
wenn eine &ps2; Maus angeschlossen ist. Gateway 2000
Pentium 90 MHz Systemen wird dieses Verhalten nachgesagt.
Normalerweise ist das kein Problem, da eine Maus ohne
Tastatur sowieso nicht sinnvoll einsetzbar ist.Schließen Sie einen Dumb-Terminal an
COM1 (sio0)
an.Wenn Sie keinen Dumb-Terminal besitzen, können Sie
einen alten PC/XT mit einem Terminalemulator oder die serielle
Schnittstelle eines anderen &unix; Rechners benutzen. Sie
benötigen auf jeden Fall eine freie erste serielle
Schnittstelle (COM1). Zurzeit ist es
nicht möglich, in den Bootblöcken eine andere
Schnittstelle zu konfigurieren, ohne diese neu zu kompilieren.
Wenn Sie COM1 bereits für ein
anderes Gerät benutzen, müssen Sie dieses Gerät
temporär entfernen und einen neuen Bootblock sowie Kernel
installieren, wenn Ihr FreeBSD erst einmal installiert ist.
Auf einem Server sollte COM1 ohnehin
verfügbar sein. Wenn Sie die Schnittstelle für ein
anderes Gerät benutzen und Sie dieses nicht auf
COM2 (sio1)
legen können, sollten Sie sich nicht an erster Stelle mit
dem Aufsetzen einer seriellen Konsole beschäftigen.Stellen Sie sicher, dass Ihre Kernelkonfiguration die
richtigen Optionen für COM1
(sio0) enthält.Relevante Optionen sind:0x10Aktiviert die Konsolenunterstützung für
dieses Gerät. Zurzeit kann nur ein Gerät die
Konsolenunterstützung aktiviert haben. Das erste,
in der Konfigurationsdatei aufgeführte Gerät,
mit dieser Option, verfügt über eine aktivierte
Konsolenunterstützung. Beachten Sie, dass
diese Option alleine nicht ausreicht, um die serielle
Konsole zu aktivieren. Setzen Sie entweder noch die
nachfolgend diskutierte Option oder verwenden Sie beim
Booten, wie unten beschrieben, den Schalter
.0x20Das erste Gerät in der Kernelkonfigurationsdatei
mit dieser Option wird, unabhängig von dem unten
diskutierten Schalter , zur Konsole.
Die Option muss zusammen mit
verwendet werden.0x40Reserviert dieses Gerät und sperrt es für
normale Zugriffe. Sie sollten diese Option nicht auf dem
Gerät setzen, das Sie als serielle Konsole verwenden
wollen. Der Zweck dieser Option ist es, dieses
Gerät für das Remote-Debuggen zu reservieren.
Das
FreeBSD Developers' Handbook enthält dazu weitere
Informationen.Unter FreeBSD 4.0 und späteren Versionen hat sich
die Bedeutung dieser Option leicht geändert und es
existiert eine weitere Option, um ein Gerät zum
Remote-Debuggen zu verwenden.Beispiel:device sio0 at isa? port IO_COM1 tty flags 0x10 irq 4Weitere Einzelheiten entnehmen Sie bitte
&man.sio.4;.Wenn diese Optionen nicht gesetzt sind, müssen Sie auf
einer anderen Konsole beim Booten UserConfig starten oder den
Kernel neu kompilieren.Erstellen Sie boot.config im
Rootverzeichnis der a-Partition des
Bootlaufwerks.Der Code des Bootblocks entnimmt dieser Datei, wie Sie Ihr
System booten möchten. Um die serielle Konsole zu
aktivieren, müssen Sie hier eine oder mehrere Optionen
(alle in derselben Zeile) angeben. Die folgenden Optionen
stehen zur Auswahl der Konsole zur Verfügung:Schaltet zwischen der internen und der seriellen
Konsole um. Wenn Sie beispielsweise von der internen
Konsole (Bildschirm) booten, weist
den Bootloader und den Kernel an, die serielle
Schnittstelle als Konsole zu nehmen. Wenn die Konsole
normal auf der seriellen Schnittstelle liegt, wählen
Sie mit den Bildschirm aus.Schaltet zwischen Einzelkonsole und Dual-Konsole um.
Die Einzelkonsole ist entweder die interne Konsole
(der Bildschirm) oder die serielle Schnittstelle, je nach
dem Stand von . Im
Dual-Konsolen Betrieb ist die Konsole, unabhängig
von , gleichzeitig der Bildschirm und
die serielle Schnittstelle. Dies trifft aber nur zu,
wenn der Bootblock ausgeführt wird. Sobald der
Bootloader ausgeführt wird, wird die durch
gegebene Konsole die alleinige
Konsole.Veranlasst den Bootblock nach einer Tastatur zu
suchen. Wenn keine Tastatur gefunden wird, werden
und automatisch
gesetzt.Wegen Platzbeschränkungen in den
Bootblöcken kann nur
erweiterte Tastaturen erkennen. Tastaturen mit weniger
als 101 Tasten (und ohne F11 und F12 Tasten) werden
wahrscheinlich, wie vielleicht auch die Tastaturen
einiger Laptops, nicht erkannt. Wenn dies bei Ihrem
System der Fall ist, können Sie
nicht verwenden, da es leider noch keine Umgehung
für dieses Problem gibt.Benutzen Sie also entweder , um die
Konsole automatisch zu setzen, oder , um die
serielle Konsole zu verwenden.In boot.config können Sie auch
andere, in &man.boot.8; beschriebene Optionen,
aufnehmen.Mit Ausnahme von werden die Optionen an
den Bootloader (/boot/loader)
weitergegeben. Der Bootloader untersucht dann einzig
um festzustellen, welches Gerät die
Konsole wird. Wenn Sie also nur angegeben
haben, können Sie die serielle Schnittstelle nur als
Konsole verwenden während der Bootblock ausgeführt
wird. Danach wird der Bootloader, da ja
fehlt, den Bildschirm zur Konsole machen.Booten Sie die Maschine.Wenn Sie das FreeBSD-System starten, werden die
Bootblöcke den Inhalt von /boot.config
auf der Konsole ausgeben:/boot.config: -P
Keyboard: noDie zweite Zeile sehen Sie nur, wenn Sie in
/boot.config angegeben
haben. Sie zeigt an, ob eine Tastatur angeschlossen ist oder
nicht. Die Meldungen gehen je nach den Einstellungen in
/boot.config auf die interne Konsole, die
serielle Konsole, oder beide Konsolen.OptionenMeldungen erscheinen aufkeineder internen Konsoleder seriellen Konsoleder seriellen und der internen Konsoleder seriellen und der internen Konsole, mit Tastaturder internen Konsole, ohne Tastaturder seriellen KonsoleNach den oben gezeigten Meldungen gibt es eine kleine
Verzögerung bevor die Bootblöcke den Bootloader
laden und weitere Meldungen auf der Konsole erscheinen. Sie
können die Ausführung der Bootblöcke
unterbrechen, um zu überprüfen, ob auch alles richtig
aufgesetzt ist, brauchen das aber unter normalen Umständen
nicht zu tun.Drücken Sie eine Taste außer
Enter um den Bootvorgang zu unterbrechen. Sie
erhalten dann ein Prompt, an dem Sie weitere Eingaben
tätigen können:>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:Je nach Inhalt von /boot.config
erscheint das Prompt auf der seriellen Konsole, der internen
Konsole oder beiden Konsolen. Wenn die Meldung auf der
richtigen Konsole erscheint, drücken Sie
Enter um fortzufahren.Wenn Sie das Prompt auf der seriellen Konsole erwartet
haben, dort aber nichts sehen, liegt ein Fehler in Ihren
Einstellungen vor. Als Umgehung geben Sie an der momentanen
Konsole ein, um den Bootblock und den
Bootloader auf die serielle Konsole umzustellen. Führen
Sie dann den Bootvorgang mit Enter weiter
und wenn das System gebootet hat, können Sie die
fehlerhaften Einstellungen korrigieren.Nachdem der Bootloader geladen wurde und Sie sich in der
dritten Bootphase befinden, können Sie immer noch zwischen der
internen und der seriellen Konsole auswählen. Setzen Sie dazu,
wie in beschrieben, die
entsprechenden Variablen des Bootloaders.ZusammenfassungDie folgende Übersicht zeigt, welche Konsole, abhängig
von den getroffenen Einstellungen, ausgewählt wird.Fall 1: Option 0x10 für
sio0device sio0 at isa? port IO_COM1 tty flags 0x10 irq 4Optionen in /boot.configKonsole in den BootblöckenKonsole im BootloaderKonsole im Kernelkeineinterneinterneinterneserielleserielleserielleserielle und interneinterneinterneserielle und interneserielleserielle, mit Tastaturinterneinterneinterne, ohne Tastaturserielle und interneserielleserielleFall 2: Option 0x30 für
sio0device sio0 at isa? port IO_COM1 tty flags 0x30 irq 4Optionen in /boot.configKonsole in den BootblöckenKonsole im BootloaderKonsole im Kernelkeineinterneinterneserielleserielleserielleserielleserielle und interneinterneserielleserielle und interneserielleserielle, mit Tastaturinterneinterneserielle, ohne Tastaturserielle und interneserielleserielleHinweise zur seriellen KonsoleVerwenden einer höheren GeschwindigkeitDie Vorgabewerte für die Kommunikationsparameter der
seriellen Schnittstelle sind: 9600 baud, 8 Bit, keine
Parität und ein Stopp-Bit. Wenn Sie die Geschwindigkeit
ändern wollen, müssen Sie mindestens die
Bootblöcke neu kompilieren. Fügen Sie die folgende
Zeile in /etc/make.conf hinzu und
kompilieren Sie Bootblöcke neu:BOOT_COMCONSOLE_SPEED=19200Der Bau und die Installation eines neuen Bootblocks
wird in
beschrieben.Wenn die serielle Konsole auf einem anderen Weg als durch die
Verwendung von konfiguriert wird, oder die
serielle Konsole des Kernels eine andere als die der
Bootblöcke ist, müssen der Kernelkonfiguration zudem
noch die folgende Option hinzufügen und einen neuen Kernel
kompilieren:options CONSPEED=19200Eine andere Schnittstelle als sio0
benutzenWenn Sie, warum auch immer, ein anderes Gerät als
sio0 für die serielle Konsole
einsetzen wollen, kompilieren Sie bitte die Bootblöcke, den
Bootloader und den Kernel nach dem folgenden Verfahren
neu.Installieren Sie die Kernelquellen (siehe
).Setzen Sie in /etc/make.confBOOT_COMCONSOLE_PORT auf die Adresse der
Schnittstelle (0x3F8, 0x2F8, 0x3E8 oder 0x2E8), die Sie
benutzen möchten. Sie können nur
sio0 bis
sio3 (COM1
bis COM4) benutzen, Multiportkarten
können Sie nicht als Konsole benutzen. Interrupts
müssen Sie hier nicht angeben.Erstellen Sie eine angepasste Kernelkonfiguration
und geben Sie dort die richtigen Optionen für die
Schnittstelle, die Sie benutzen möchten, an. Wenn Sie
zum Beispiel sio1
(COM2) zur Konsole machen wollen,
geben Sie dort entwederdevice sio1 at isa? port IO_COM2 tty flags 0x10 irq 3oderdevice sio1 at isa? port IO_COM2 tty flags 0x30 irq 3an. Keine andere serielle Schnittstelle sollte als
Konsole definiert werden.Übersetzen und installieren Sie die
Bootblöcke und den Bootloader:&prompt.root; cd /sys/boot
&prompt.root; make clean
&prompt.root; make
&prompt.root; make installBauen und installieren Sie einen neuen Kernel.Schreiben Sie die Bootblöcke mit &man.disklabel.8;
auf die Bootplatte und booten Sie den neuen Kernel.DDB Debugger über die serielle SchnittstelleWenn Sie den Kerneldebugger über eine serielle
Verbindung bedienen möchten (nützlich, kann aber
gefährlich sein, wenn auf der Leitung falsche BREAK-Signale
generiert werden), sollten Sie einen Kernel mit
den folgenden Optionen erstellen:options BREAK_TO_DEBUGGER
options DDBBenutzung der seriellen Konsole zum AnmeldenDa Sie schon die Bootmeldungen auf der Konsole verfolgen
können und den Kerneldebugger über die Konsole bedienen
können, wollen Sie sich vielleicht auch an der Konsole
anmelden.Öffnen Sie /etc/ttys in einem
Editor und suchen Sie nach den folgenden Zeilen:ttyd0 "/usr/libexec/getty std.9600" unknown off secure
ttyd1 "/usr/libexec/getty std.9600" unknown off secure
ttyd2 "/usr/libexec/getty std.9600" unknown off secure
ttyd3 "/usr/libexec/getty std.9600" unknown off securettyd0 bis ttyd3
entsprechen COM1 bis
COM4. Ändern Sie für die
entsprechende Schnittstelle off zu
on. Wenn Sie auch die Geschwindigkeit der
seriellen Schnittstelle geändert haben, müssen Sie
std.9600 auf die momentane Geschwindigkeit, zum
Beispiel std.19200, anpassen.Sie sollten auch den Terminaltyp von
unknown auf den tatsächlich verwendeten
Terminal setzen.Damit die Änderungen an der Datei wirksam werden,
müssen Sie noch kill -HUP 1
absetzen.Die Konsole im Bootloader ändernIn den vorigen Abschnitten wurde beschrieben, wie Sie die
serielle Konsole durch Änderungen im Bootblock aktivieren.
Dieser Abschnitt zeigt Ihnen, wie Sie mit Kommandos und
Umgebungsvariablen die Konsole im Bootloader definieren. Da der
Bootloader die dritte Phase im Bootvorgang ist und nach den
Bootblöcken ausgeführt wird, überschreiben
seine Einstellungen die des Bootblocks.Festlegen der KonsoleMit einer einzigen Zeile in
/boot/loader.rc können Sie den
Bootloader und den Kernel anweisen, die serielle Schnittstelle
zur Konsole zu machen:set console="comconsole"Unabhängig von den Einstellungen im Bootblock legt dies
die Konsole fest.Die obige Zeile sollte die erste Zeile in
/boot/loader.rc sein, so dass Sie die
Bootmeldungen so früh wie möglich auf der Konsole
sehen.Analog können Sie die interne Konsole verwenden:set console="vidconsole"Wenn Sie console nicht setzen, bestimmt der
Bootloader (und damit auch der Kernel) die Konsole über
die Option des Bootblocks.Ab FreeBSD 3.2 können Sie die Bootkonsole in
/boot/loader.conf.local oder
/boot/loader.conf anstatt in
/boot/loader.rc angeben. In
/boot/loader.rc finden Sie bei dieser Methode
den folgenden Inhalt:include /boot/loader.4th
startErstellen Sie /boot/loader.conf.local
und fügen die Zeileconsole=comconsoleoderconsole=vidconsoleein. Weitere Informationen erhalten Sie in
&man.loader.conf.5;.Momentan gibt es im Bootloader nichts vergleichbares zu
im Bootblock. Damit kann die Konsole nicht
automatisch über das Vorhandensein einer Tastatur
festgelegt werden.Eine andere Schnittstelle als sio0
benutzenSie müssen den Bootloader neu kompilieren, wenn Sie eine
andere Schnittstelle als sio0 benutzen
wollen. Folgen Sie der Anleitung aus
.VorbehalteHinter dem ganzen steckt die Idee, Server ohne Hardware
für Grafik und ohne Tastatur zu betreiben. Obwohl es die
meisten Systeme erlauben, ohne Tastatur zu booten, gibt es leider
nur wenige Systeme, die ohne eine Grafikkarte booten. Maschinen
mit einem AMI BIOS können ohne Grafik booten, indem Sie den
Grafikadapter im CMOS-Setup auf Not installed
setzen.Viele Maschinen unterstützen diese Option allerdings nicht.
Damit diese Maschinen booten, müssen sie über eine
Grafikkarte, auch wenn es nur eine alte Monochromkarte ist,
verfügen. Allerdings brauchen Sie keinen Monitor an die Karte
anzuschließen. Sie können natürlich auch
versuchen, auf diesen Maschinen ein AMI BIOS zu
installieren.
diff --git a/de_DE.ISO8859-1/books/handbook/users/chapter.sgml b/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
index d95ac39b05..f33e40d008 100644
--- a/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
@@ -1,1192 +1,1182 @@
NeilBlakey-MilnerBeigetragen von RobertDrehmelÜbersetzt von Benutzer und grundlegende Account-VerwaltungÜbersichtEinen FreeBSD-Computer können mehrere Benutzer zur selben
Zeit benutzen, allerdings kann immer nur einer vor der Konsole sitzen
Außer Sie verwenden, wie in besprochen, zusätzliche Terminals, über das Netzwerk können beliebig viele
Benutzer angemeldet sein. Jeder Benutzer muss einen Account
haben, um das System benutzen zu können.Nachdem Sie dieses Kapitel gelesen haben, werden Siedie verschiedenen Account-Typen von FreeBSD kennen,wissen, wie Accounts angelegt werden,wissen, wie Sie Accounts löschen,wie Sie Attribute eines Accounts, wie den Loginnamen oder
die Login-Shell ändern,wissen, wie Sie Limits für einen Account setzen, um
beispielsweise Ressourcen, wie Speicher oder CPU-Zeit,
einzuschränken,wie Sie mit Gruppen die Verwaltung der Accounts
vereinfachen.Vor dem Lesen dieses Kapitels sollten Siedie Grundlagen von &unix; und FreeBSD ()
verstanden haben.EinführungJeder Zugriff auf das System geschieht über Accounts und alle
Prozesse werden von Benutzern gestartet, also sind Benutzer- und
Account-Verwaltung von wesentlicher Bedeutung in FreeBSD-Systemen.Mit jedem Account eines FreeBSD-Systems sind bestimmte Informationen
verknüpft, die diesen Account identifizieren.LoginnamenDen Loginnamen geben Sie bei der Anmeldung ein, wenn Sie
dazu mit login: aufgefordert werden.
Loginnamen müssen auf dem System eindeutig sein, das
heißt auf einem System kann es nicht zwei Accounts mit
demselben Loginnamen geben. In &man.passwd.5; wird
beschrieben, wie ein gültiger Loginname gebildet wird.
Normalerweise sollten Sie Namen verwenden, die aus
Kleinbuchstaben bestehen und bis zu acht Zeichen lang sind.PasswortMit jedem Account ist ein Passwort verknüpft. Wenn
das Passwort leer ist, wird es bei der Anmeldung nicht
abgefragt. Das ist allerdings nicht zu empfehlen, daher sollte
jeder Account ein Passwort besitzen.User ID (UID)Die UID ist üblicherweise eine Zahl zwischen
0 und 65535Für UIDs und GIDs können Zahlen bis
einschließlich 4294967295 verwendet werden.
Allerdings können solche IDs erhebliche
Probleme mit Anwendungen verursachen, die
Annahmen über den Wertebereich der IDs
treffen., die einen
Account eindeutig identifiziert. Intern verwendet FreeBSD nur
die UID, Loginnamen werden zuerst in eine UID umgewandelt,
mit der das System dann weiter arbeitet. Das bedeutet, dass
Sie Accounts mit unterschiedlichen Loginnamen aber gleicher
UID einrichten können. Vom Standpunkt des Systems handelt
es sich dabei um denselben Account. In der Praxis werden Sie
diese Eigenschaft des Systems wahrscheinlich nicht
benutzen.Group ID (GID)Die GID ist üblicherweise eine Zahl zwischen 0 und
65536, die eine Gruppe
eindeutig identifiziert. Mit Gruppen kann der Zugriff auf
Ressourcen über die GID anstelle der UID geregelt werden.
Einige Konfigurationsdateien werden durch diesen Mechanismus
deutlich kleiner. Ein Account kann mehreren Gruppen
zugehören.Login-KlasseLogin-Klassen erweitern das Gruppenkonzept. Sie
erhöhen die Flexibilität des Systems in der Handhabung
der verschiedenen Accounts.Gültigkeit von PasswörternEin regelmäßiges Ändern des Passworts wird in
der Voreinstellung von FreeBSD nicht erzwungen. Sie
können allerdings einen Passwortwechsel nach einer
gewissen Zeit auf Basis einzelner Accounts erzwingen.Verfallszeit eines AccountsIn der Voreinstellung verfallen unter FreeBSD keine
Accounts. Wenn Sie Accounts einrichten, die nur für eine
bestimmte Zeit gültig sein sollen, beispielsweise Accounts
für Teilnehmer eines Praktikums, können Sie angeben,
wie lange der Account gültig sein soll. Nachdem die
angegebene Zeitspanne verstrichen ist, kann dieser Account
nicht mehr zum Anmelden verwendet werden, obwohl alle
Verzeichnisse und Dateien, die diesem Account gehören,
noch vorhanden sind.vollständiger BenutzernameFreeBSD identifiziert einen Account eindeutig über
den Loginnamen, der aber keine Ähnlichkeit mit dem
richtigen Namen des Benutzers haben muss. Der
vollständige Benutzername kann daher beim Einrichten eines
Accounts angegeben werden.HeimatverzeichnisDas Heimatverzeichnis gibt den vollständigen Pfad zu
dem Verzeichnis an, in dem sich der Benutzer nach erfolgreicher
Anmeldung befindet. Es ist üblich, alle
Heimatverzeichnisse unter
/home/Loginname
oder
/usr/home/Loginname
anzulegen. Im Heimatverzeichnis oder in dort angelegten
Verzeichnissen werden die Dateien eines Benutzers
gespeichert.Login-ShellGrundsätzlich ist die Schnittstelle zum System eine
Shell, von denen es viele unterschiedliche gibt. Die
bevorzugte Shell eines Benutzers kann seinem Account zugeordnet
werden.Es gibt drei Haupttypen von Accounts: Der
Superuser,
Systembenutzer und
Benutzer-Accounts. Der
Superuser-Account, normalerweise root genannt, wird
benutzt, um das System ohne Beschränkungen auf Privilegien zu
verwalten. Systembenutzer starten Dienste. Abschließend werden
Benutzer-Accounts von echten Menschen genutzt, die sich einloggen, Mails
lesen und so weiter.Der Superuser-AccountAccountsSuperuser (root)Der Superuser-Account, normalerweise root
genannt, ist vorkonfiguriert und erleichtert die Systemverwaltung, sollte
aber nicht für alltägliche Aufgaben wie das Verschicken und
Empfangen von Mails, Entdecken des Systems oder Programmierung benutzt
werden.Das ist so, da der Superuser im Gegensatz zu normalen
Benutzer-Accounts ohne Beschränkungen operiert und falsche
Anwendung des Superuser-Accounts in spektakulären Katastrophen
resultieren kann. Benutzer-Accounts sind nicht in der Lage, das System
versehentlich zu zerstören, deswegen ist es generell am besten
normale Benutzer-Accounts zu verwenden, solange man nicht
hauptsächlich die extra Privilegien benötigt.Kommandos, die Sie als Superuser eingeben, sollten Sie immer
doppelt und dreifach überprüfen, da ein
zusätzliches Leerzeichen oder ein fehlender Buchstabe irreparablen
Datenverlust bedeuten kann.Das erste, das Sie tun sollten, nachdem Sie dieses Kapitel gelesen
haben, ist einen unprivilegierten Benutzer für Ihre eigene normale
Benutzung zu erstellen, wenn Sie das nicht bereits getan haben. Das
trifft immer zu, egal ob Sie ein Mehrbenutzersystem oder ein System
laufen haben, welches Sie alleine benutzen. Später in diesem
Kapitel besprechen wir, wie man zusätzliche Accounts erstellt und
wie man zwischen dem normalen Benutzer und dem Superuser wechselt.System-AccountsAccountsSystem-AccountsSystembenutzer starten Dienste wie DNS, Mail-Server, Web-Server und so
weiter. Der Grund dafür ist die Sicherheit; wenn die Programme
von dem Superuser gestartet werden, können Sie ohne
Einschränkungen handeln.AccountsdaemonAccountsoperatorBeispiele von Systembenutzern sind daemon,
operator, bind (für den
Domain Name Service) und news und
www.Accountsnobodynobody ist der generische unprivilegierte
Systembenutzer. Bedenken Sie aber, dass je mehr Dienste
nobody benutzen, desto mehr Dateien und Prozesse
diesem Benutzer gehören und dieser Benutzer damit umso
privilegierter wird.Benutzer-AccountsAccountsBenutzer-AccountsBenutzer-Accounts sind das primäre Mittel des Zugriffs für
Menschen auf das System und isolieren Benutzer und Umgebung,
schützen die Benutzer davor, das System oder Daten anderer Benutzer
zu beschädigen und erlauben Benutzern ihre Umgebung selbst
einzurichten, ohne das sich dies auf andere auswirkt.Jede Person, die auf Ihr System zugreift, sollte ihren eigenen
Account besitzen. Das erlaubt Ihnen herauszufinden, wer was macht
und hält Leute davon ab, die Einstellungen der anderen zu
verändern oder Mails zu lesen, die nicht für sie bestimmt
waren.Jeder Benutzer kann sich eine eigene Umgebung mit alternativen
Shells, Editoren, Tastaturbelegungen und Sprachen einrichten.Accounts verändernAccountsverändernUnter &unix; gibt es verschiedene Kommandos, um Accounts zu
verändern. Die gebräuchlichsten Kommandos sind unten,
gefolgt von einer detaillierten Beschreibung, zusammengefasst.KommandoZusammenfassung&man.adduser.8;Das empfohlene Werkzeug, um neue Accounts zu
erstellen.&man.rmuser.8;Das empfohlene Werkzeug, um Accounts zu
löschen.&man.chpass.1;Ein flexibles Werkzeug, um Informationen in der
Account-Datenbank zu verändern.&man.passwd.1;Ein einfaches Werkzeug, um Passwörter von Accounts
zu ändern.&man.pw.8;Ein mächtiges und flexibles Werkzeug um alle
Informationen über Accounts zu ändern.adduserAccountserstellenadduser/usr/share/skel&man.adduser.8; ist ein einfaches Programm
um neue Benutzer hinzuzufügen. Es erstellt
passwd und group
Einträge für den
Benutzer, genauso wie ein home Verzeichnis, kopiert ein paar
vorgegebene Dotfiles aus /usr/share/skel und kann
optional dem Benutzer eine ,,Willkommen``-Nachricht zuschicken.Für &os; 5.0 wurde das Skript &man.adduser.8;
von Perl nach Shell portiert. Das Skript ruft nun das
Kommando &man.pw.8; auf. Daher unterscheidet sich
&man.adduser.8; unter &os; 5.X leicht von
&man.adduser.8; unter &os; 4.X.Um die anfängliche Konfigurationsdatei zu erstellen,
benutzen Sie: adduser -s -config_create.
Das bringt &man.adduser.8;
dazu, weniger Fragen und Fehlermeldungen auszugeben.
Wir benutzen später, wenn wir die
Voreinstellungen ändern wollen.
Zunächst konfigurieren wir Voreinstellungen von
&man.adduser.8; und erstellen unseren ersten
Benutzer-Account, da es böse und unangenehm ist,
root für normale Aufgaben zu
verwenden.adduser konfigurieren und Benutzer
unter &os; 4.X hinzufügen&prompt.root; adduser -v
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh zsh [sh]: zsh
Your default shell is: zsh -> /usr/local/bin/zsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message no
[/etc/adduser.message]: no
Do not send message
Use passwords (y/n) [y]: y
Write your changes to /etc/adduser.conf? (y/n) [n]: y
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: jru
Enter full name []: J. Random User
Enter shell csh date no sh tcsh zsh [zsh]:
Enter home directory (full path) [/home/jru]:
Uid [1001]:
Enter login class: default []:
Login group jru [jru]:
Login group is ``jru''. Invite jru into other groups: guest no
[no]: wheel
Enter password []:
Enter password again []:
Name: jru
Password: ****
Fullname: J. Random User
Uid: 1001
Gid: 1001 (jru)
Class:
Groups: jru wheel
HOME: /home/jru
Shell: /usr/local/bin/zsh
OK? (y/n) [y]: y
Added user ``jru''
Copy files from /usr/share/skel to /home/jru
Add another user? (y/n) [y]: n
Goodbye!
&prompt.root;Zusammengefasst haben wir die vorgegebene Shell in
zsh (eine zusätzliche Shell aus
der Ports-Sammlung) geändert und das Senden einer
,,Willkommen``-Nachricht an neue Benutzer abgeschaltet.
Danach haben wir die Konfiguration abgespeichert und anschließend
einen Account für jru eingerichtet
und sichergestellt, dass jru in der
Gruppe wheel ist, so dass Sie mit
&man.su.1; zu root wechseln
kann.Wenn Sie das Passwort eingeben, werden weder Passwort noch
Sternchen angezeigt. Passen Sie auf, dass Sie das Passwort
korrekt eingeben.Benutzen Sie ab jetzt &man.adduser.8; ohne Argumente,
dann müssen Sie nicht jedes mal die Vorgaben neu einstellen.
Wenn das Programm Sie fragt, ob Sie die Vorgaben ändern wollen,
verlassen und starten Sie es erneut mit der
Option.Benutzer unter &os; 5.X hinzufügen&prompt.root; adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : jru
Password : ****
Full Name : J. Random User
Uid : 1001
Class :
Groups : jru wheel
Home : /home/jru
Shell : /usr/local/bin/zsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
&prompt.root;rmuserrmuserAccountslöschenBenutzen Sie &man.rmuser.8;, um einen Account
vollständig aus dem System zu entfernen.
&man.rmuser.8; führt die folgenden Schritte
durch:Entfernt den &man.crontab.1; Eintrag des Benutzers
(wenn dieser existiert).Entfernt alle &man.at.1; jobs, die dem Benutzer gehören.
Schließt alle Prozesse des Benutzers.Entfernt den Benutzer aus der lokalen Passwort-Datei des
Systems.Entfernt das Heimatverzeichnis des Benutzers (falls es dem
Benutzer gehört).Entfernt eingegange E-Mails des Benutzers
aus /var/mail.Entfernt alle Dateien des Benutzers aus temporären
Dateispeicherbereichen wie /tmp.Entfernt den Loginnamen von allen Gruppen, zu denen er
gehört, aus /etc/group.
Wenn eine Gruppe leer wird und der Gruppenname mit dem
Loginnamen identisch ist, wird die Gruppe entfernt; das
ergänzt sich mit den einzelnen Benutzer-Gruppen, die von
&man.adduser.8; für jeden neuen Benutzer erstellt werden.
Der Superuser-Account kann nicht mit &man.rmuser.8; entfernt
werden, da dies in den meisten Fällen das System unbrauchbar
macht.Als Vorgabe wird ein interaktiver Modus benutzt, der
sicherzustellen versucht, dass Sie wissen, was Sie tun.Interaktives Löschen von Account mit
rmuser&prompt.root; rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
&prompt.root;chpasschpass&man.chpass.1; ändert Informationen der
Benutzerdatenbank wie Passwörter, Shells und persönliche
Informationen.Nur Systemadministratoren, mit Superuser-Rechten, können die
Informationen und Passwörter der anderen Benutzer mit
&man.chpass.1; verändern.Werden keine Optionen neben dem optionalen Loginnamen
angegeben, zeigt &man.chpass.1; einen Editor
mit Account-Informationen an und aktualisiert die
Account-Datenbank, wenn dieser verlassen wird.Unter &os; 5.X wird nach dem Verlassen des Editors
nach dem Passwort gefragt, es sei denn, man ist als Superuser
angemeldet.Interaktives chpass des Superusers#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:Der normale Benutzer kann nur einen kleinen Teil dieser
Informationen verändern und natürlich nur die Daten des
eigenen Accounts.Interaktives chpass eines normalen
Benutzers#Changing user database information for jru.
Shell: /usr/local/bin/tcsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:&man.chfn.1; und &man.chsh.1; sind
nur Verweise auf &man.chpass.1; genauso wie
&man.ypchpass.1;, &man.ypchfn.1; und
&man.ypchsh.1;. NIS wird automatisch unterstützt,
deswegen ist es nicht notwendig das yp vor dem
Kommando einzugeben. NIS wird später
in besprochen.passwdpasswdAccountsPasswort wechseln&man.passwd.1; ist der übliche Weg, Ihr
eigenes Passwort als Benutzer zu ändern oder das Passwort eines
anderen Benutzers als Superuser.Um unberechtigte Änderungen zu verhindern,
muss bei einem Passwortwechsel zuerst das ursprüngliche
Passwort eingegeben werden.Wechseln des Passworts&prompt.user; passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done
&prompt.root; passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneAls Superuser das Passwort eines anderen Accounts
verändern&prompt.root; passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneWie bei &man.chpass.1; ist &man.yppasswd.1;
nur ein Verweis auf &man.passwd.1;. NIS wird von
jedem dieser Kommandos unterstützt.pwpw&man.pw.8; ist ein Kommandozeilenprogramm, mit
dem man Accounts und Gruppen erstellen, entfernen, verändern
und anzeigen kann. Dieses Kommando dient als Schnittstelle zu den
Benutzer- und Gruppendateien des Systems. &man.pw.8;
besitzt eine Reihe mächtiger Kommandozeilenschalter, die es
für die Benutzung in Shell-Skripten geeignet machen, doch
finden neue Benutzer die Bedienung des Kommandos komplizierter, als
die der anderen hier vorgestellten Kommandos.Benutzer einschränkenBenutzer einschränkenAccountseinschränkenWenn ein System von mehreren Benutzern verwendet wird, ist es
vielleicht notwendig, den Gebrauch des Systems zu beschränken.
FreeBSD bietet dem Systemadministrator mehrere Möglichkeiten
die System-Ressourcen, die ein einzelner Benutzer verwenden kann,
einzuschränken. Diese Limitierungen sind in zwei Kategorien
eingeteilt: Festplattenkontingente und andere
Ressourcenbeschränkungen.QuotasBenutzer einschränkenQuotasFestplatten QuotasFestplatten-Kontingente schränken den Plattenplatz, der
einem Benutzer zur Verfügung steht, ein. Sie bieten zudem,
ohne aufwändige Berechnung, einen schnellen Überblick
über den verbrauchten Plattenplatz.
Kontingente werden in diskutiert./etc/login.confDie Login-Klassen werden in /etc/login.conf
definiert. Auf die präzisen Semantiken gehen wir hier nicht
weiter ein, sie können jedoch in &man.login.conf.5;
nachgelesen werden. Es ist ausreichend zu sagen, dass jeder
Benutzer einer Login-Klasse zugewiesen wird (standardmäßig
default) und dass jede Login-Klasse mit einem Satz
von Login-Fähigkeiten verbunden ist. Eine Login-Fähigkeit
ist ein Name=Wert
Paar, in dem Name
die Fähigkeit bezeichnet und Wert
ein willkürlicher Text ist, der je nach Name
entsprechend verarbeitet wird. Login-Klassen und
-Fähigkeiten zu definieren, ist fast schon selbsterklärend
und wird auch in &man.login.conf.5; beschrieben.Das System verwendet die Datei
- /etc/login.conf nicht direkt sondern
- die Datenbank /etc/login.conf.db.
- Das nachstehende Kommando erzeugt die Datenbank
- /etc/login.conf.db aus der Datei
+ /etc/login.conf normalerweise nicht direkt,
+ sondern nur über die Datenbank
+ /etc/login.conf.db, da diese eine
+ schnellere Abfrage erlaubt. Der nachstehende Befehl erzeugt die
+ Datenbank /etc/login.conf.db aus der Datei
/etc/login.conf:&prompt.root; cap_mkdb /etc/login.confRessourcenbeschränkungen unterscheiden sich von normalen
Login-Fähigkeiten zweifach. Erstens gibt es für jede
Beschränkung ein aktuelles und ein maximales Limit. Das
aktuelle Limit kann vom Benutzer oder einer Anwendung beliebig
bis zum maximalen Limit verändert werden. Letzteres kann
der Benutzer nur heruntersetzen. Zweitens gelten die meisten
Ressourcenbeschränkungen für jeden vom Benutzer
gestarteten Prozess, nicht für den Benutzer selbst.
Beachten Sie jedoch, dass diese Unterschiede durch das spezifische
Einlesen der Limits und nicht durch das System der
Login-Fähigkeiten entstehen (das heißt,
Ressourcenbeschränkungen sind keine
Login-Fähigkeiten).Hier befinden sich die am häufigsten benutzten
Ressourcenbeschränkungen (der Rest kann zusammen mit den
anderen Login-Fähigkeiten in &man.login.conf.5; gefunden
werden):coredumpsizecoredumpsizeBenutzer einschränkencoredumpsizeDas Limit der Größe einer core-Datei, die
von einem Programm generiert wird, unterliegt aus
offensichtlichen Gründen anderen Limits der
Festplattenbenutzung (zum Beispiel filesize
oder Festplattenkontingenten). Es wird aber trotzdem
oft als weniger harte Methode zur Kontrolle des
Festplattenplatz-Verbrauchs verwendet: Da Benutzer die
core-Dateien nicht selbst erstellen, und sie oft nicht
löschen, kann sie diese Option davor retten, dass
ihnen kein Festplattenspeicher mehr zur Verfügung
steht, sollte ein großes Programm, wie
emacs, abstürzen.cputimecputimeBenutzer einschränkencputimeDie maximale Rechenzeit, die ein Prozess eines Benutzers
verbrauchen darf. Überschreitet der Prozess diesen Wert,
wird er vom Kernel beendet.
Die Rechenzeit wird limitiert,
nicht die prozentuale Prozessorenbenutzung, wie es in
einigen Feldern in &man.top.1; und &man.ps.1; dargestellt
wird. Letzteres war zu der Zeit, als dies hier geschrieben
wurde nicht möglich und würde eher nutzlos sein:
Ein Compiler – ein wahrscheinlich legitimer
Vorgang – kann leicht fast 100% des Prozessors in
Anspruch nehmen.filesizefilesizeBenutzer einschränkenfilesizeHiermit lässt sich die maximale Größe einer Datei
bestimmen, die der Benutzer besitzen darf. Im Gegensatz zu
Festplattenkontingenten ist diese
Beschränkung nur für jede einzelne Datei gültig
und nicht für den Platz, den alle Dateien eines Benutzers
verwenden.maxprocmaxprocBenutzer einschränkenmaxprocDas ist die maximale Anzahl von Prozessen, die ein
Benutzer starten darf, und beinhaltet sowohl Vordergrund-
als auch Hintergrundprozesse. Natürlich darf dieser
Wert nicht höher sein als das System-Limit, das in
kern.maxproc angegeben ist. Vergessen
Sie auch nicht, dass ein zu kleiner Wert den Benutzer in
seiner Produktivität einschränken könnte;
es ist oft nützlich, mehrfach eingeloggt zu sein, oder
PipelinesPipeline =
Leitung.
Mit Pipes sind Verbindungen
zwischen zwei Sockets in meistens zwei verschiedenen
Prozessen gemeint.
zu verwenden. Ein paar Aufgaben, wie die Kompilierung eines
großen Programms, starten mehrere Prozesse (zum Beispiel
&man.make.1;, &man.cc.1; und andere).memorylockedmemorylockedBenutzer einschränkenmemorylockedDieses Limit gibt an, wie viel virtueller Speicher von einem
Prozess maximal im Arbeitsspeicher festgesetzt werden kann.
(siehe auch &man.mlock.2;). Ein paar systemkritische Programme,
wie &man.amd.8;, verhindern damit einen Systemzusammenbruch, der
auftreten könnte, wenn sie aus dem Speicher genommen werden.
memoryusememoryuseBenutzer einschränkenmemoryuseBezeichnet den maximalen Speicher, den ein Prozess benutzen
darf und beinhaltet sowohl Arbeitsspeicher-, als auch Swap-
Benutzung. Es ist kein allübergreifendes Limit für
den Speicherverbrauch, aber ein guter Anfang.openfilesopenfilesBenutzer einschränkenopenfilesMit diesem Limit lässt sich die maximale Anzahl
der von einem Prozess des Benutzers geöffneten Dateien
festlegen. In FreeBSD werden Dateien auch verwendet, um Sockets
und IPC-Kanäle
IPC steht für
Interprocess Communication.
darzustellen. Setzen Sie es deshalb nicht zu niedrig. Das
System-Limit ist im kern.maxfiles
&man.sysctl.8; definiert.sbsizesbsizeBenutzer einschränkensbsizeDieses Limit beschränkt den Netzwerk-Speicher, und damit
die mbufs, die ein Benutzer verbrauchen darf. Es stammt aus einer
Antwort auf einen DoS-Angriff, bei dem viele Netzwerk-Sockets
geöffnet wurden, kann aber generell dazu benutzt werden
Netzwerk-Verbindungen zu beschränken.stacksizeDas ist die maximale Größe, auf die der Stack
eines Prozesses heranwachsen darf. Das allein ist natürlich
nicht genug, um den Speicher zu beschränken, den ein Programm
verwenden darf. Es sollte deshalb in Verbindung mit anderen
Limits gesetzt werden.Beim Setzen von Ressourcenbeschränkungen sind noch andere
Dinge zu beachten. Nachfolgend ein paar generelle Tipps, Empfehlungen
und verschiedene Kommentare.Von /etc/rc beim Hochfahren des Systems
gestartete Prozesse werden der daemon
Login-Klasse zugewiesen.Obwohl das mitgelieferte /etc/login.conf
eine Quelle von vernünftigen Limits darstellt, können nur
Sie, der Administrator, wissen, was für Ihr System angebracht
ist. Ein Limit zu hoch anzusetzen könnte Ihr System für
Missbrauch öffnen, und ein zu niedriges Limit der
Produktivität einen Riegel vorschieben.Benutzer des X-Window Systems (X11) sollten wahrscheinlich
mehr Ressourcen zugeteilt bekommen als andere Benutzer. X11
beansprucht selbst schon eine Menge Ressourcen, verleitet die
Benutzer aber auch, mehrere Programme gleichzeitig laufen zu
lassen.Bedenken Sie, dass viele Limits für einzelne Prozesse
gelten und nicht für den Benutzer selbst. Setzt man
zum Beispiel openfiles auf 50, kann jeder
Prozess des Benutzers bis zu 50 Dateien öffnen. Dadurch
ist die maximale Anzahl von Dateien, die von einem Benutzer
geöffnet werden können, openfiles
mal maxproc. Das gilt auch für den
Speicherverbrauch.Weitere Informationen über
Ressourcenbeschränkungen, Login-Klassen und -Fähigkeiten
enthalten die Hilfeseiten
&man.cap.mkdb.1;, &man.getrlimit.2; und &man.login.conf.5;.
-
- Benutzer personalisieren
-
- Die Lokalisierung ist eine Umgebung, die vom Systemadministrator
- oder Benutzer eingerichtet wird, um verschiedene Sprachen,
- Zeichensätze, Datum- und Zeitstandards und so weiter
- unterzubringen. Dies wird im Kapitel über die
- Lokalisierung
- besprochen.
-
-
GruppenGruppen/etc/groupsAccountsGruppenEine Gruppe ist einfach eine Zusammenfassung von Accounts.
Gruppen werden durch den Gruppennamen und die GID (group ID)
identifiziert. Der Kernel von FreeBSD (und den meisten anderen &unix;
Systemen) entscheidet anhand der UID und der Gruppenmitgliedschaft
eines Prozesses, ob er dem Prozess etwas erlaubt oder nicht. Im
Unterschied zur UID kann ein Prozess zu einer Reihe von Gruppen
gehören. Wenn jemand von der GID eines
Benutzers oder Prozesses spricht, meint er damit meistens die erste
Gruppe der Gruppenliste.Die Zuordnung von Gruppennamen zur GID steht in
/etc/group, einer Textdatei mit vier durch
Doppelpunkte getrennten Feldern. Im ersten Feld steht der
Gruppenname, das zweite enthält ein verschlüsseltes
Passwort, das dritte gibt die GID an und das vierte besteht aus einer
Komma separierten Liste der Mitglieder der Gruppe. Diese Datei kann
einfach editiert werden (natürlich nur, wenn Sie dabei keine
Syntaxfehler machen). Eine ausführliche Beschreibung der Syntax
dieser Datei finden Sie in &man.group.5;.Wenn Sie /etc/group nicht händisch
editieren möchten, können Sie &man.pw.8; zum Editieren
benutzen. Das folgende Beispiel zeigt das Hinzufügen einer
Gruppe mit dem Namen teamtwo:Hinzufügen einer Gruppe mit pw&prompt.root; pw groupadd teamtwo
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:Die Zahl 1100 ist die GID der Gruppe
teamtwo. Momentan hat
teamtwo noch keine Mitglieder und ist daher
ziemlich nutzlos. Um das zu ändern, nehmen wir nun
jru in teamtwo
auf.Ein Gruppenmitglied mit pw
hinzufügen&prompt.root; pw groupmod teamtwo -M jru
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:jruAls Argument von geben Sie eine Komma
separierte Liste von Mitgliedern an, die Sie in die Gruppe aufnehmen
möchten. Aus den vorherigen Abschnitten ist bekannt, dass die
Passwort-Datei ebenfalls eine Gruppe für jeden Benutzer
enthält. Das System teilt dem Benutzer automatisch eine Gruppe
zu, die aber vom Kommando von &man.pw.8;
nicht angezeigt wird. Diese Information wird allerdings von
&man.id.1; und ähnlichen Werkzeugen angezeigt. Das heißt,
dass &man.pw.8; nur /etc/group manipuliert,
es wird nicht versuchen, zusätzliche Informationen aus
/etc/passwd zu lesen.Mit id die Gruppenzugehörigkeit
bestimmen&prompt.user; id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)Wie Sie sehen, ist jru Mitglied von
jru und teamtwo.Weitere Informationen entnehmen Sie bitte &man.pw.8;.