Index: head/de_DE.ISO8859-1/books/faq/book.xml
===================================================================
--- head/de_DE.ISO8859-1/books/faq/book.xml (revision 48706)
+++ head/de_DE.ISO8859-1/books/faq/book.xml (revision 48707)
@@ -1,12117 +1,12117 @@
10-CURRENT">
X">
HEAD">
X">
9-STABLE">
RELENG_9">
X">
8-STABLE">
RELENG_8">
X">
7-STABLE">
RELENG_7">
]>
Häufig gestellte Fragen zu &os;
&rel3.relx;, &rel2.relx; und &rel.relx;Frequently Asked Questions zu &os;
&rel3.relx;, &rel2.relx; und &rel.relx;The &os; German Documentation
ProjectRobert S. F.DrehmelÜbersetzt von DirkGoudersUdoErdhoffJohannKoisBenedictReuschling199519961997199819992000200120022003200420052006200720082009201020112012The &os; Documentation Project2000 - 2011The &os; German Documentation Project
&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.general;
$FreeBSD$Dies ist die FAQ für die &os;-Versionen &rel3.relx;
&rel2.relx; und &rel.relx;. Alle Einträge sollten
für &os; ab Version &rel3.relx; relevant sein,
andernfalls wird darauf explizit hingewiesen. Falls Sie daran
interessiert sein sollten, an diesem Projekt mitzuarbeiten,
senden Sie eine Mail an die Mailingliste &a.de.translators;. Die
aktuelle Version dieses Dokuments ist ständig auf dem &os; World-Wide-Web-Server
verfügbar. Sie kann aber auch als eine einzige große HTML-Datei, als Textdatei, als &postscript;-
oder PDF-Datei sowie in verschiedenen anderen Formaten vom &os; FTP-Server
heruntergeladen werden. Alternativ können Sie die FAQ auch durchsuchen.EinleitungWillkommen zur &os; &rel3.relx;-&rel2.relx;- und &rel.relx;
FAQ!Wie auch bei den Usenet FAQs üblich, wird mit diesem
Dokument beabsichtigt, die am häufigsten gestellten Fragen
bezüglich des Betriebssystems &os; 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 die Mailingliste des
&a.de.translators;.Was ist &os;?&os; ist, kurz gesagt, ein &unix; ähnliches
Betriebssystem für die Plattformen AMD64
sowie &intel; EM64T, &i386;, IA-64, &arm;, &powerpc;, 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 &os; ist und wie Sie es
für Ihre Zwecke verwenden können, finden Sie auf
den Internetseiten des &os; Projects.Unternehmen, Internet Service Provider, Forscher,
Computerfachleute, Studenten und Privatnutzer auf der
ganzen Welt benutzen &os; für die Arbeit, die
Ausbildung oder zur Freizeitgestaltung.Ausführlichere Informationen zu &os;, finden
Sie im &os; Handbuch.Welches Ziel hat das &os; Project?Die Ziel von &os; 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 &os;
Lizenz unterliegt, zu ersetzen.Beinhaltet das &os;-Copyright irgendwelche
Einschränkungen?Ja. Diese Einschränkungen regeln aber nicht, wie
Sie mit dem Sourcecode umgehen, sondern betreffen nur den
Umgang mit dem &os; Project an sich. Wenn Sie sich
ernsthaft damit auseinandersetzen wollen, lesen Sie
einfach die
&os;-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 &os; 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. &os; 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 &os; 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 &os; genau das sein. Viele Anwender auf der
ganzen Welt, vom Anfänger bis zum erfahrenen
Administrator, benutzen an Ihren Arbeitsplätzen
ausschließlich &os;.Wenn Sie von einem anderen &unix; System zu &os;
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 &os;
Handbuch sind die besten Startpunkte.Warum heißt es &os;?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 &os;-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 &os;, NetBSD, OpenBSD
und andere Open-Source BSD-Systeme?James Howards Artikel, genannt The
BSD Family Tree, beschreibt sehr gut die Geschichte
und die Unterschiede der BSD-Varianten.Welches ist die aktuelle &os;-Version?Momentan gibt es zwei Entwicklungszweige,
die für die Erstellung von Releases verwendet werden.
Die &rel.relx;-RELEASEs werden auf dem &rel.stable;-Zweig erstellt,
die &rel2.relx;-RELEASEs auf dem &rel2.stable;-Zweig.Bis zur Veröffentlichung von &os; 8.0 galt
die &rel3.relx;-Serie als -STABLE. Seither
gibt es für den Zweig &rel3.relx; nur mehr
eine erweiterte Unterstützung in der Form
von Korrekturen von größeren Problemen, wie
neu entdeckten Sicherheitsheitslücken. Aus dem Zweig
&rel3.stable; werden zwar noch RELEASEs erzeugt, er gilt aber
als ausgereift. Aktive Weiterentwicklungen
konzentrieren sich daher auf den Zweig &rel.stable; und
&rel2.stable;.Version &rel.current;
ist das aktuelle Release des &rel.stable;-Zweigs und ist im
Januar 2009 erschienen.
Version &rel2.current;
ist das aktuelle Release aus dem
&rel2.stable;-Zweig und ist im
November 2008 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 &os;-CURRENT und
&os;-STABLE), aber das
erfordert ein erhöhtes Engagement, da die Sourcen
sich ständig verändern.Weitere Informationen über &os;-Releases entnehmen
Sie der Seite Release
Engineering des &os; Webauftritts.Was ist &os;-CURRENT?
&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 &os.current; nicht verwenden.
Dieser Zweig entwickelt sich manchmal sehr schnell weiter
und kann gelegentlich nicht installierbar sein. Von Personen, die
&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 &a.current;
Mailingliste manchmal nicht beachtet.Jeden Monat wird der aktuelle Entwicklungsstand in den
Zweigen -CURRENT und
-STABLE in einer Snapshot
Release festgehalten. 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 auf der Snapshots-Seite
verfügbar.Offizielle Snapshots werden in der Regel jeden Monat für
jeden aktiven Zweig erstellt. Es gibt auch täglich erstellte
Snapshots der populären &arch.i386; und &arch.amd64; Zweige,
die auf http://snapshots.us.freebsd.org/ bereitliegen.Was ist das Konzept von &os;-STABLE?Zur der Zeit, als &os; 2.0.5 herausgegeben wurde,
wurde entschieden, die Entwicklung von &os; zweizuteilen.
Ein Zweig wurde -STABLE,
der andere -CURRENT
genannt. &os;-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. &os;-CURRENT ist eine
ununterbrochene Linie seitdem die Version 2.0 herausgegeben
worden ist. Sie führt zu &rel.current;-RELEASE (und darüber
hinaus). Weitere Informationen zu diesen Zweigen finden Sie unter
&os; Release Engineering: Creating the Release
Branch, der Status der Zweige und der Zeitplan zur
anstehenden Veröffentlichung kann unter der Seite Release Engineering
Information gefunden werden.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, der Zweig
4.X endete mit der Version 4.11,
der letzten 4.X-Version. Änderungen
in diesen Zweigen beschränken sich im allgemeinen auf die
Korrektur von sicherheitsrelevanten Fehlern. Der Zweig 5-STABLE
wurde mit 5.5, der letzten 5.X Version,
beendet. &rel3.stable; wird 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.&rel.current;-STABLE ist der Zweig, auf den sich die
Entwicklung von -STABLE zur Zeit konzentriert.
Das neueste Release aus dem &rel.current;-STABLE-Zweig ist
&rel.current;-RELEASE und ist im Januar 2007
erschienen.Aus dem &rel.head;-Zweig entsteht die nächste
&os;-Generation. Weitere Informationen über diesen
Zweig finden Sie unter Was ist &os;-CURRENT?.Wann werden &os;-Versionen erstellt?Im Schnitt gibt das &a.re; alle 18 Monate eine neue
Haupt-Version und etwa alle 8 Monate eine Unter-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 &os;, 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,
erhalten Sie auf den Release
Engineering Seiten der &os; 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 &os; verantwortlich?Schlüsseldiskussionen, die das &os; Project
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
Teams von 9 Personen geführt. Es gibt
ein weitaus größeres Team von über 350
Committern,
die dazu autorisiert sind, Änderungen am &os;
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 &os; beziehen?Jede bedeutende Ausgabe von &os; ist per
Anonymous-FTP vom &os; FTP
Server erhältlich:Das aktuelle &rel.stable;-Release, &rel.current;-RELEASE,
finden Sie im Verzeichnis &rel.current;-RELEASE.Snapshots-Releases werden
monatlich aus dem -CURRENT-Zweig sowie aus dem -STABLE-Zweig erzeugt.
Sie sollten aber nur von Entwicklern und sehr erfahrenen
Testern verwendet werden.Das aktuelle Release von &rel2.stable;,
&rel2.current;-RELEASE finden Sie im Verzeichnis &rel2.current;-RELEASE.Das aktuelle Release von &rel3.stable;,
&rel3.current;-RELEASE finden Sie im Verzeichnis &rel3.current;-RELEASE.Wo und wie Sie &os; 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
&os; 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 &os;-Webseite.Dokumentation und SupportGibt es gute Bücher über &os;?Im Zuge des &os; Projekts sind diverse gute
Dokumente entstanden, die unter der
folgenden URL abgerufen werden können: http://www.FreeBSD.org/docs.html. Zusätzlich
enthält die Bibliographie am Ende
dieser FAQ und diejenige 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 &os; 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 &os;-System im
Verzeichnis /usr/share/locale
finden. Zurzeit werden die folgenden Sprachen und
Zeichensätze benutzt:NameBedeutungbn_BD.ISO10646-1Bengalisch oder Bangla (Bangladesh) da_DK.ISO8859-1Dänisch (Dänemark)de_DE.ISO8859-1Deutsch (Deutschland)en_US.ISO8859-1Englisch (Vereinigte Staaten)el_GR.ISO8859-7Griechisch (Griechenland)es_ES.ISO8859-1Spanisch (Spanien)fr_FR.ISO8859-1Französisch (Frankreich)it_IT.ISO8859-15Italienisch (Italien)hu_HU.ISO8859-2Ungarisch (Ungarn)ja_JP.eucJPJapanisch (Japan, EUC-kodiert)mn_MN.UTF-8Mongolisch (Mongolei, UTF-8-kodiert)nl_NL.ISO8859-1Niederländisch (Holland)no_NO.ISO8859-1Norwegisch (Norwegen)pl_PL.ISO8859-2Polnisch (Polen)pt_BR.ISO8859-1Brasilianisches Portugiesisch (Brasilien)ru_RU.KOI8-RRussisch (Russland, KOI8-R-kodiert)sr_YU.ISO8859-2Serbisch (Serbien)tr_TR.ISO8859-9Türkisch (Türkei)zh_CN.GB2312Vereinfachtes Chinesisch (China,
GB2312-kodiert)zh_TW.Big5Chinesisch (Taiwan, 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.pdfAdobe's Portable Document Formatps&postscript;rtfMicrosoft's Rich Text FormattxtGanz normaler TextDie Seitennummern werden nicht automatisch aktualisiert,
wenn Sie das Rich Text Format in Word laden. Wenn Sie das
Dokument geladen haben, müssen Sie Sie CtrlA,
CtrlEnd,
F9 eingeben, um die Seitennummern
aktualisieren zu lassen.Das 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
type.format
(z.B. article.pdf,
book.html, und so
weiter).Diese Dateien werden mit zwei verschiedenen
Programmen komprimiert.ProgrammBeschreibungzipDas zip-Format. Wenn Sie
diese Dateien unter &os; entpacken 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 die komprimierten Dateien
selber herunterladen, entpacken und an 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 &os;
Mailinglisten?Vollständige Informationen finden Sie im Handbucheintrag
über Mailinglisten.Welche Newsgruppen existieren zu &os;?Sie finden alle Informationen hierzu im Handbucheintrag zu
Newsgruppen.Gibt es &os; IRC (Internet Relay Chat)
Kanäle?Ja, die meisten großen IRC Netze bieten einen
&os; Chat-Channel:Channel FreeBSD im EFNet ist
ein &os;-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 &os;. Sie wurden gewarnt! Der Channel ist auf
dem Server irc.efnet.org
verfügbar.Der Channel #FreeBSDhelp im
EFNet hat
sich dagegen auf die Unterstützung der Benutzer
von &os; spezialisiert. In diesem Channel sind
Fragen deutlich willkommener als im Channel
#FreeBSD.Der Channel ##FreeBSD auf
Freenode bietet allgemeine
Hilfe zu &os;-Themen. Es sind immer viele Benutzer online.
Zwar werden auch nicht-&os;-spezifische Themen diskutiert, den
Hauptteil der Diskussionen dreht sich aber um die Lösung
der Probleme von &os;-Anwendern. Die Teilnehmer dieses
Channels helfen Ihnen auch bei Fragen zu elementaren Dingen und
zeigen Ihnen auch, wo Sie die entsprechenden Erklärungen
im &os;-Handbuch oder anderen Ressourcen finden können.
Obwohl die Teilnehmer des Channels über die ganze Welt
verstreut sind, werden alle Diskussionen auf Englisch
geführt. Wollen Sie die Diskussion in Ihrer Sprache
führen, sollten Sie Ihre Frage trotzdem auf Englisch
stellen und danach gegebenenfalls einen neuen Channel in der
Form
##freebsd-Ihre_Sprache
eröffnen.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 #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.Der Channel #bsdchat auf Freenode
(Sprache: traditionelles Chinesisch, UTF-8-kodiert)
hat sich der Unterstützung von &os;-Anwendern verschrieben.
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 irgendwelche webbasierten Foren, in denen &os;
diskutiert wird?Die offiziellen &os; Foren befinden sich unter http://forums.FreeBSD.org/.Gibt es Firmen, die Training und Support für
&os; anbieten?iXsystems, Inc.,
die Muttergesellschaft der &os; Mall,
bietet kommerziellen Software-Support
für &os; und PC-BSD sowie &os;-spezische
Softwareentwicklung und Hilfe bei Optimierung Ihrer
vorhandenen Installationen.Die BSD Certification Group, Inc. bietet Zertifizierungen zur
Systemadministration für DragonFly BSD, &os;, NetBSD und
OpenBSD. Wenn Sie daran interessiert sind, besuchen Sie
deren Webseite.Wenn Ihre Firma oder Organisation ebenfalls Training
und Support anbietet und hier genannt werden möchte,
wenden Sie sich bitte an das &os; Project.InstallationNikClaytonnik@FreeBSD.orgWelche Dateien muss ich herunterladen, um &os;
zu bekommen?Sie benötigen drei Floppy-Images:
floppies/boot.flp,
floppies/kern1.flp sowie
floppies/kern2.flp. Diese Images
müssen mit Hilfe von Werkzeugen wie
fdimage oder &man.dd.1; auf Disketten
kopiert werden.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/manpagescompat*docsrc/ssys.*Vollständige Instruktionen für dieses
Vorgehen und ein wenig mehr zur Installation generell
finden Sie im Handbucheintrag zur
Installation von &os;.Was soll ich tun, wenn das Floppy-Image nicht auf eine
Diskette passt?Eine 3,5-Zoll (1,44 MB) Diskette kann 1.474.560 Byte
an Daten fassen und das Boot-Image ist exakt 1.474.560 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 &os; beschrieben ist.Wo befinden sich die Instruktionen zur Installation
von &os;?Installationsanleitungen finden Sie im Handbucheintrag zur
Installation von &os;.Was benötige ich zum Betrieb von &os;?Der Betrieb von &os; 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 &xorg; benötigen Sie allerdings
eine VGA- oder eine bessere Videokarte.Lesen Sie auch den Abschnitt
Hardwarekompatibilität.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
&os; Release Engineering.Kann &windows; neben &os; existieren?Installieren Sie zuerst &windows;, dann &os;.
Der Bootmanager von &os; kann dann entweder &windows;
oder &os; booten. Falls Sie &windows; nach &os;
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
&os;-Bootmanager neu zu installieren:Unter DOS wechseln Sie in das Verzeichnis
tools/ Ihrer &os;-Distribution und
suchen nach bootinst.exe. Rufen sie es so
auf:...\TOOLS>bootinst.exe boot.binund der Bootmanager wird neu installiert.Booten Sie &os; 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, drücken Sie als aller
erstes (nehmen Sie z.B. keine Änderungen vor)
(W)rite. Sie werden nach einer Bestätigung
gefragt, wählen Sie &gui.yes; und vergessen Sie nicht, in der
Bootmanager-Auswahl den &os; 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 &os; wieder mit der Bootdiskette
(oder der CD-ROM) und wählen Sie den
Menüpunkt Fixit. Wählen
Sie die für Sie passende Option, entweder die
Fixit-Diskette oder die CD-ROM 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 &os; 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 &os;
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 &a.nectar; auf der
Mailingliste &a.mobile; beschreibt eine Technik,
die Ihnen weiterhelfen könnte, wenn Ihr IBM Laptop
mit &os; 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, &os; 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
&os;-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
&os;-Installation erhalten.Beschaffen Sie sich boot1 und
boot2 von http://people.FreeBSD.org/~bmah/ThinkPad/.
Legen Sie diese Dateien so ab, dass Sie
während der Installation darauf zugreifen
können.Installieren Sie ganz wie gewohnt &os; 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 &os; 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 &os;-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 &os;
gestartet.Was Sie machen müssen, wenn Sie &os; und
OpenBSD parallel installieren wollen, sollten Sie zu
Übungszwecken einfach einmal selbst
herausfinden.Kann ich &os; 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 CD-ROM
gebootet, aber das Installationsprogramm sagt mir,
dass es kein CD-ROM gefunden hat. Was geht hier
ab?Dieses Problem wird üblicherweise durch ein
falsch konfiguriertes CD-ROM verursacht. Bei vielen PCs
ist das CD-ROM der Slave am zweiten IDE-Controller, ein
Master ist nicht vorhanden. Laut Spezifikation ist diese
Konfiguration ungültig, aber &windows; verletzt die
Spezifikation und das BIOS ignoriert sie, wenn es von
einem CD-ROM booten soll. Daher konnten Sie zwar vom
CD-ROM booten, während &os; es nicht für die
Installation benutzen kann.Um dieses Problem zu lösen, müssen Sie
entweder das CD-ROM als Master an den IDE-Controller
anschließen oder dafür sorgen, dass an dem
vom CD-ROM 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 &os; 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 &os; 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 &os;
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 2 GB 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
1 GB 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 2 GB Beispielplatte
261 Zylinder, 63 Sektoren/Spur und 255 Köpfe haben.Falls Sie sich hier nicht sicher sind oder &os;
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 &os; CD-ROM
und allen &os; 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 &os;).Für ein SCSI-Laufwerk bedeutet dies
normalerweise, dass sich die Rootpartition in den
ersten 1024 MB befindet (oder in den ersten 4096 MB,
falls die Extended Translation eingeschaltet ist - siehe die
vorherige Frage). Der entsprechende Wert für IDE ist
504 MB.Verträgt sich &os; mit Plattenmanagern?&os; erkennt den Ontrack Disk
Manager und berücksichtigt ihn. Andere
Plattenmanager werden nicht unterstützt.Falls Sie die Festplatte nur mit &os; 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 &os; erkennen, wie viel
Platz Sie tatsächlich haben. Falls Sie eine alte
Festplatte mit einem MFM-Controller verwenden, könnte
es sein, dass Sie &os; explizit angeben
müssen, wie viele Zylinder es benutzen soll.Falls Sie die Festplatte mit &os; 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
&os; 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 &os; erscheint
Missing Operating System. Was ist
passiert?Dies ist ein klassischer Fall von Konflikten bei den
verwendeten Plattengeometrien von &os;
und DOS oder anderen Betriebssystemen. Sie werden &os;
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 &os; stimmen
nicht überein! Falls Ihr Controller oder BIOS
Zylinderumsetzung (oft als >1GB drive
support bezeichnet), probieren Sie eine Umsetzung
dieser Einstellung und Neuinstallation von &os;.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
irgendwo anders 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 &os; 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 &os;
erforderlich, aber neuere Ausgaben haben von der
Einführung weitaus benutzerfreundlicherer
Kernelkonfigurationswerkzeuge profitiert. Die Kernelkonfiguration
erfolgt in der Regel durch die die deutlich flexibleren
hints, 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, Blowfish oder MD5 zur Verschlüsselung der
Passwörter benutzen?&os; 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. &os; erlaubt es Ihnen, auch das sichere
Blowfish-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 &os; 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
set root_disk_unit="disk_number"
ein. disk_number hat den Wert
0, wenn &os; auf dem Master des
ersten IDE-Controllers installiert wurde;
1, wenn &os; auf dem Slave des
ersten IDE-Controllers installiert wurde;
2, wenn &os; auf dem Master des
zweiten IDE-Controllers installiert wurde; und
3, wenn &os; 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 &os;-Platte am
ersten IDE-Controller anschließen.Gibt es eine Hauptspeicherbegrenzung?Hauptspeicherbegrenzung sind von der verwendeten Plattform
abhängig. Bei einer &i386;-Standardinstallation werden
maximal 4 GB Hauptspeicher unterstützt, mehr Speicher
ist mittels &man.pae.4; verfügbar. Lesen Sie dazu die Anleitung, um 4 GB oder mehr
Speicher auf &i386; zu verwenden.&os;/pc98 unterstützt maximal 4 GB Hauptspeicher,
daher kann PAE auf diesen Systemen nicht verwendet werden.
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 (2 G-Blöcke) oder 16 TB für
die Standard-Blockgröße von 8 KB. In der Praxis
setzt die Software das Limit auf 1 TB herab, aber
durch Modifikationen sind auch Dateisysteme mit 4 TB
möglich (und existieren auch).Die maximale Größe einer einzelnen
FFS-Datei liegt bei ungefähr 1 G Blöcken (4 TB,
falls die Blockgröße 4 KB beträgt).
Wenn die im Dateisystem verwendete
Blockgröße 4 KB 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
10243 + 10242 + 1024).
In Wirklichkeit liegt das Limit aber bei der (falschen) Anzahl von
1 G - 1 Blocknummern im Dateisystem.
Die maximale Anzahl der Blocknummern müsste
2 G - 1 sein. Es gibt einige Fehler für
Blocknummern nahe 2 G - 1, aber solche Blocknummern
sind bei einer Blockgröße von 4 KB
unerreichbar.Bei Blocknummern von 8 KB und größer sollte
das Limit bei 2 G - 1 Blocknummern liegen,
tatsächlich liegt es aber bei 1 G - 1
Blocknummern. Die Verwendung der korrekten Grenze von
2 G - 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.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 zeigt folgendes an:OKGeben Sie nununset acpi_loadund danachbootein.Hardware-KompatibilitätAllgemeinesIch will mir neue Hardware für mein
&os;-System zulegen, was soll ich kaufen? Diese Frage wird ständig auf den
&os;-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 &a.mobile;
werfen. Ansonsten empfiehlt sich ein Blick in das Archiv
von &a.questions; oder auch einer spezialisierte
Mailingliste für diese Art von Hardware.HauptspeicherUnterstützt &os; mehr als 4 GB Speicher
(RAM)? Mehr als 16 GB? Mehr als 48 GB?Ja. Generell unterstützt &os; als
Betriebssystem so viel physischen Speicher (RAM), wie
die Plattform auf der es läuft. Achten Sie darauf,
dass verschiedene Plattformen unterschiedliche
Speichergrenzen besitzen. So wird z.B. &i386; ohne
PAE höchstens 4 GB Speicher
(normalerweise weniger als das wegen des
PCI-Addressraums), dagegen wird &i386; mit PAE
höchstens 64 GB Speicher bereitstellen.
Momentan erhältliche AMD64 Plattformen können
bis zu 1 TB physischen Speicher ansprechen.Warum zeigt &os; weniger als 4 GB Speicher an,
wenn es auf einer &i386; Maschine installiert
wird?Der Gesamtadressraum beträgt auf &i386;
Maschinen 32-Bit, was bedeutet, dass maximal
4 GB Speicher addressiert (verwaltet) werden
kann. Weiterhin sind viele Adressen in diesem Bereich
von der Hardware für bestimmte Aufgaben reserviert,
um z.B. PCI-Geräte zu benutzen und zu steuern, auf
Videospeicher zuzugreifen und so weiter. Aus diesem
Grund ist die Gesamtmenge an Speicher, die vom
Betriebssystem für den Kernel und Anwendungen
verwendet werden kann, auf wesentlich weniger als
4 GB begrenzt. Normalerweise sind 3.2 GB bis
3.7 GB das Maximum an verfügbarem Speicher in
dieser Konfiguration.Um auf mehr als 3.2 GB bis 3.7 GB
des installierten Speichers (was bis zu 4 GB, aber
aber auch mehr als 4 GB bedeuten kann)
zuzugreifen, muss eine spezielle Manipulation, genannt
PAE, benutzt werden. PAE steht
für Physical Address Extension und ist eine
Möglichkeit für 32-Bit x86-CPUs mehr als
4 GB Speicher zu addressieren. Es organisiert
den Speicher, der andererseits wegen
Addressreservierungen für Hardwaregeräte
oberhalb der 4 GB Grenze liegt, um und benutzt
diesen als zusätzlichen physischen Speicher (lesen
Sie dazu &man.pae.4;). Der Einsatz von PAE ist mit ein
paar Nachteilen verbunden: diese Speicherzugriffsmethode
ist ein bisschen langsamer als die normale Methode (ohne
PAE) und ladbare Module (beschrieben in &man.kld.4;)
werden nicht unterstützt. Das bedeutet, dass alle
Treiber in den Kernel eingebaut sein müssen.Die am häufigsten verwendete Vorgehensweise,
PAE zu aktivieren ist die, einen neuen Kernel mit der
speziell dafür vorgesehenen
Kernelkonfigurationsdatei, PAE
genannt, zu bauen, die bereits so eingestellt ist, dass
ein funktionierender Kernel erstellt wird. Beachten
Sie, dass manche Einträge in dieser
Kernelkonfigurationsdatei zu konservativ eingestellt
sind und dass manche Treiber, die nicht für den
Einsatz mit PAE vorgesehen sind, trotzdem funktionieren.
Als Faustregel kann man sagen, dass wenn der Treiber
auf 64-Bit Architekturen (like AMD64) läuft, er
auch mit PAE lauffähig ist. Wenn Sie ihre eigene
Kernelkonfigurationsdatei erstellen möchten,
können Sie PAE aktivieren, indem Sie die folgende
Zeile zu ihrer Konfiguration hinzufügen:options PAEPAE wird heutzutage nicht sehr häufig
angewendet, da die Mehrzahl an neuer x86-Hardware auch
den Betrieb im 64-Bit Modus erlaubt, auch als AMD64 oder
&intel; 64 bekannt. Es hat viel mehr Adressraum
und benötigt solche Manipulationen nicht. &os;
unterstützt AMD64 und es wird empfohlen, diese
&os; Version anstatt der &i386; Version einzusetzen,
wenn 4 GB oder mehr Speicher gebraucht
werden.Architekturen und ProzessorenUnterstützt &os; neben x86 auch andere
Architekturen?Ja. &os; ist zurzeit für die Intel x86 und
AMD64 Architekturen verfügbar.
Intel EM64T, IA-64, &arm;, &powerpc; und &sparc64;
werden ebenfalls unterstützt. Die Neuzugänge
auf der Liste der in Zukunft unterstützten Plattformen
sind &mips; und &s390;. Abonnieren Sie die Mailingliste
&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 &os; Symmetric-Multiproccessing
(SMP)?Symmetric-Multiproccessing (SMP) Systeme werden generell
von &os; unterstützt, obwohl in manchen Fällen durch
Fehler im BIOS oder Mainboard Probleme auftreten.&os; nutzt die Vorteile von HyperThreading (HTT)
Unterstützung von Intel-Prozessoren, die diese Eigenschaft
besitzen. Ein Kernel mit der options SMP
Zeile wird automatisch die zusätzlichen logischen
Prozessoren erkennen. Der Standard &os;-Scheduler behandelt die
logischen Prozessoren auf die gleiche Weise wie zusätzliche
physische Prozessoren. Mit anderen Worten, es wird nicht der
Versuch unternommen, die Entscheidungen des Schedulers zu
optimieren, da sich die logischen Prozessoren innerhalb der
gleichen CPU die Ressourcen teilen. Weil diese naive Planung
in schlechterer Leistung resultieren kann, ist es unter
Umständen hilfreich, die logischen Prozessoren über die
sysctl Variable machdep.hlt_logical_cpus zu
deaktivieren. Es ist auch möglich, jede CPU in der
Warteschleife mit der sysctl Variable
machdep.hlt_cpus anzuhalten. Weitere
Informationen finden Sie in der Manualpage &man.smp.4;.Festplatten, Bandlaufwerke, sowie CD- und DVD-LaufwerkeWelche Arten von Festplatten werden von &os;
unterstützt?&os; unterstützt EIDE-, SATA-, SCSI- und
SAS-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- oder SAS-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?&os; 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
&os; nicht einwandfrei funktionieren.Unterstützt &os; 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 CD-ROM-Laufwerke werden von &os;
unterstützt?Jedes an einem unterstützten Controller
angeschlossene SCSI-Laufwerk wird
unterstützt.Welche CD-Brenner werden von &os; unterstützt?&os; unterstützt alle ATAPI-kompatiblen IDE
CD-R und CD-RW Brenner. Lesen Sie dazu auch
&man.burncd.8;.&os; 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.Tastaturen und MäuseUnterstützt &os; meine Tastatur mit
USB-Anschluss?Ja. &os; unterstützt USB-Tastaturen.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/console > /dev/nullWenn Sie nur die USB-Tastatur angeschlossen haben, ist
diese als /dev/ukbd0 verfügbar;
daher muss in diesem Fall das folgende Kommando
benutzt werden:&prompt.root; kbdcontrol -k /dev/ukbd0 < /dev/console > /dev/nullUm diese Änderung auch noch nach dem Neustarten
verfügbar zu haben, nehmen Sie den Eintrag
keyboard="/dev/ukbd0" in die Datei
/etc/rc.conf auf.Sobald Sie diese Schritte durchgeführt haben,
sollte die USB-Tastatur ohne weitere Änderungen auch
unter X benutzbar sei.Benutzen Sie dieses Kommando, wenn Sie wieder zur
Standardtastatur wechseln wollen:&prompt.root; kbdcontrol -k /dev/kbd0 > /dev/nullUm die gleichzeitige Verwendung der zweiten USB-Tastatur und
der AT-Tastatur auf der selben Konsole mittels des &man.kbdmux.4;
Treibers zu ermöglichen, geben Sie folgendes ein:&prompt.root; kbdcontrol -K < /dev/console > /dev/null
&prompt.root; kbdcontrol -a atkbd0 < /dev/kbdmux0 > /dev/null
&prompt.root; kbdcontrol -a ukbd1 < /dev/kbdmux0 > /dev/null
&prompt.root; kbdcontrol -k /dev/kbdmux0 < /dev/console > /dev/nullLesen Sie die &man.ukbd.4;, &man.kbdcontrol.1; und
&man.kbdmux.4; Manualpages, um weitere Informationen zu
erhalten.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.Ich habe eine unübliche Busmaus. Wie muss
ich sie konfigurieren?&os; 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 &os; 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.Kann man die Maus irgendwie außerhalb des X
Window Systems benutzen?Falls Sie den normalen Konsolentreiber &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 &os; 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.Wie kann ich die Delete-Taste in der sh und
csh einsetzen?Für die Bourne Shell
fügen Sie die folgende Zeile in die Datei
.shrc ein (lesen Sie dazu auch die
Manualpages &man.sh.1; sowie &man.editrc.5;).bind ^? ed-delete-next-char # for console
bind ^[[3~ ed-delete-next-char # for xtermFür die C Shell nehmen
Sie hingegen die folgende Zeile in die Datei
.cshrc auf (lesen Sie dazu auch die
Manualpage &man.csh.1;).bindkey ^? delete-char # for console
bindkey ^[[3~ delete-char # for xtermWeitere Informationen zu diesem Thema finden sich auch
hier.Netzkarten und serielle GeräteWelche Netzwerkkarten unterstützt &os;?In den Hardware Informationen zu jedem &os; Release
werden die unterstützten Karten aufgezählt.Gibt es einen &os;-Treiber für die Karten der
Serie 43xx von Broadcom?Ja. Zahlreiche Broadcom 43xx-Karten werden von den Treibern
&man.bwn.4; sowie &man.bwi.4; unterstützt.Welche seriellen Multi-Port-Karten werden von &os;
unterstützt?Es existiert eine Liste der unterstützten Karten
im Abschnitt Serielle
Datenübertragung des Handbuchs.Von einigen 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?Lesen Sie
diesen Abschnitt des Handbuchs.SoundkartenWelche Soundkarten werden von &os; unterstützt?&os; unterstützt verschiedene Soundkarten.
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 CD-ROMs, SCSI oder Joysticks auf
diesen Karten, außer der &soundblaster;. Die
&soundblaster;-SCSI-Schnittstelle und einige
Nicht-SCSI-CD-ROMs 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 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 HardwareUnterstützt &os; Power-Management auf meinem
Laptop?&os; unterstützt APM
auf einigen Systemen. Lesen Sie dazu auch &man.apm.4;.&os; unterstützt 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?Lesen Sie die vorherige Antwort.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 &os;
bootet.Deaktivieren Sie die Option Plug and Play
Operating System im BIOS, um das Problem zu
umgehen.FehlerbehebungWarum zeigt &os; eine falsche Speichergröße auf
&i386; Hardware an?Das liegt sehr wahrscheinlich an den Unterschieden zwischen
physikalischen und virtuellen Speicheraddressen.Bei moderner PC-Hardware ist es üblich, den
Speicherbereich zwischen 3,5 und 4 Gigabyte für
spezielle Aufgaben (normalerweise für PCI) zu
reservieren. Dieser Adressbereich wird dabei dazu
verwendet, um auf PCI-Hardware zuzugreifen. Dadurch
kann in diesem Speicherbereich kein physikalischer
Speicher verwaltet werden.Was mit dem in diesen Bereich gehörenden
physikalischen Speicher passiert, hängt von der von
Ihnen eingesetzten Hardware ab. Unglücklicherweise
gibt es noch immer Hardware, die hier gar nichts macht.
In diesem Fall ist Ihr System nicht in der Lage, auf diese
500 Megabyte des RAMs zuzugreifen.Ein Großteil der heute existierenden Hardware
ist aber inzwischen in der Lage, diesen Speicherbereich
in einen höheren Speicherbereich umzulenken, damit
Sie weiterhin darauf zugreifen können. Allerdings
kann es durch dieses Umlenken zu verwirrende Meldungen
während des Systemstarts kommen.Unter 32-Bit-Versionen von &os; scheint dieser
Speicherbereich nicht verfügbar zu sein, da er in einen
Bereich oberhalb von 4 Gigabyte übertragen wurde, auf den
ein 32-Bit-Kernel allerdings nicht zugreifen kann. Ist dies
bei Ihnen der Fall, müssen Sie die PAE-Unterstützung
in Ihren Kernel kompilieren. Lesen Sie dazu auch die
entsprechenden Einträge über
Speicherbegrenzungen und unterschiedliche
Speicherbegrenzungen auf verschiedenen Plattformen.Verwenden Sie hingegen eine 64-Bit-Version von &os;
oder einen 32-Bit-Kernel mit aktivierter
PAE-Unterstützung, ist &os; in der Lage, diesen
Speicherbereich korrekt zu erkennen und umzulenken, damit Sie
weiterhin darauf zugreifen können. Allerdings wird, aufgrund
der beschriebenen Umbelegung, in diesem Fall beim Systemstart mehr
Speicher angezeigt, als tatsächlich auf Ihrem System vorhanden
ist. Dies ist aber normal und wird nach dem Ende des Systemstarts
automatisch korrigiert.Was 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 &os;
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 &os; 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 den folgenden
Befehl am Prompt ein und Sie können Ihr System ganz
normal installieren:eisa 12
quit
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
und ändern Sie die Einträge zu
ed0/de0/...
(d.h. 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 &os;
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
&os; 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.
&man.gdb.1; 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,
zumindest 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 CD-ROMs 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
250 W-Netzteil benutzen, sollten Sie testweise ein
300 W-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 &os;
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-FAQ.Mein 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 &os; 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 Mach64
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 &man.sio.4;-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/sio/sio.c (oder in
/usr/src/sys/pc98/cbus/sio.c für pc98)
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.Wieso verwendet &os; nur 64 MB Hauptspeicher,
obwohl in meinem Rechner 128 MB sind?Aufgrund der Art und Weise, wie &os; die
Hauptspeichergröße vom BIOS mitgeteilt bekommt,
kann es lediglich 16-Bit Werte in kByte-Größe
(65535 kByte = 64 MB) erkennen (oder weniger... einige
BIOSe setzen die Hauptspeichergröße auf 16 MB).
Falls Sie mehr als 64 MB besitzen, wird &os; 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=nHierbei 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 &os; 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 &os;-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 (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 in den 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 Logikbausteine,
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 &man.ahc.4;-Treiber 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 sendmailmail loops back to myself?Dies wird in der
Sendmail FAQ wie folgt beantwortet. Es wird
empfohlen, diese FAQ zu lesen, wenn an der Feinabstimmung
des Systems gearbeitet wird.Ich erhalte folgende Fehlermeldungen:
553 MX list for domain.net points back to relay.domain.net
554 <user@domain.net>... Local configuration error
Wie kann ich dieses Problem lösen?
Sie haben durch die Benutzung eines MX-Eintrags 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
[die Datei hieß vor der Version 8.10 /etc/sendmail.cw]
(falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net"
in /etc/mail/sendmail.cf ein.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 &os; 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
&os;-Konsole. 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 &os;-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.Warum wird meine PnP-Karte nicht (oder nur noch als
unknown) erkannt?Die Gründe für dieses Verhalten werden in
der unten zitierten Mail von &a.peter;
erklärt. Diese Mail stammt von der Mailingliste
&a.questions; und war eine Antwort auf eine Frage
bezüglich eines internen Modem, das nach dem Update
auf &os; 4.X nicht mehr
erkannt wurde.Die mit [] gekennzeichneten Kommentare
wurden eingefügt, um an einigen Stellen die Bezüge
klarzustellen.
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-Erkennungsroutine
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 am 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 Vendor ID oder
chip-ID müssen in die
Datei /usr/src/sys/dev/sio/sio_isa.c
eingetragen werden.Sie sollten zunächst ein Backup von
sio_isa.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_isa.c mit einem
Editor und suchen Sie nach der Zeile:static struct isa_pnp_id sio_ids[] = {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 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 &os;) 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 den Wert von
MAX_STRAY_LOG von 5
auf 0 in der für ihre Plattform
(z.B. &i386;) zuständigen Datei
intr_machdep.c ändern. Bauen Sie
anschliessend den Kernel neu, 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 &man.dmesg.8; 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 werden ständig Meldungen wie
calcru: negative runtime oder
calcru: runtime went backwards auf die
Konsole geschrieben?Es existiert ein bekanntes Problem wenn &intel; Enhanced
SpeedStep im BIOS aktiviert wird. Das führt dazu, dass der
Kernel calcru-Nachrichten wie die folgende
ausgibt:calcru: runtime went backwards from 6 usec to 3 usec for pid 37 (pagezero)
calcru: runtime went backwards from 6 usec to 3 usec for pid 36 (vmdaemon)
calcru: runtime went backwards from 170 usec to 138 usec for pid 35 (pagedaemon)
calcru: runtime went backwards from 553 usec to 291 usec for pid 15 (swi6: task queue)
calcru: runtime went backwards from 15521 usec to 10366 usec for pid 2 (g_event)
calcru: runtime went backwards from 25 usec to 12 usec for pid 11 (swi1: net)
calcru: runtime went backwards from 4417 usec to 3960 usec for pid 1 (init)
calcru: runtime went backwards from 2084385 usec to 1793542 usec for pid 1 (init)
calcru: runtime went backwards from 408 usec to 204 usec for pid 0 (swapper)Der Grund dafür besteht darin, dass &intel; SpeedStep
(EIST) in manchen Mainboards inkompatibel ist.Abhilfe: Deaktivieren Sie die EIST-Eigenschaft im BIOS. Sie
können trotzdem noch ihre Prozessorfrequenz ACPI-basiert
mittels &man.powerd.8; drosseln.Warum ist die Uhrzeit auf meinem Computer immer
falsch?Ihr Computer verfügt über mehr als eine Uhr
und &os; benutzt leider die falsche.Starten Sie &man.dmesg.8; und achten Sie auf die
Zeilen, in denen das Wort Timecounter
vorkommt. Die von &os; benutzte Uhr findet sich in der Zeile
mit dem höchsten quality-Wert.&prompt.root; dmesg | grep Timecounter
Timecounter "i8254" frequency 1193182 Hz quality 0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
Timecounter "TSC" frequency 2998570050 Hz quality 800
Timecounters tick every 1.000 msecSie können das überprüfen, indem Sie
den Wert der Systemvariablen
kern.timecounter.hardware
abfragen.&prompt.root; sysctl kern.timecounter.hardware
kern.timecounter.hardware: ACPI-fastEs kann sich um einen defekten ACPI Timer handeln. Die
einfachste Lösung besteht darin, den ACPI Timer in
/boot/loader.conf zu deaktivieren:debug.acpi.disabled="timer"Es ist aber auch 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 &os; 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 Computers 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 &man.pccardd.8; 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 &os; nach dem BIOS-Bildschirm
mit der Meldung Read error
auf?Der Bootloader von &os; erkennt die Geometrie Ihrer
Festplatte nicht richtig. Sie müssen die Geometrie
manuell festlegen, wenn sie mit &man.fdisk.8; &os;-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?Eine Antwort auf diese Frage findet sich im &os;-Glossar
unter LOR.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
&os; 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 &man.witness.4;-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 &os;-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 &os; sehr positiven
Einfluss auf ein langfristiges Bestehen von &os; 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 &os;-Versionen der klassischen
Büro-Anwendungen?Die als Open Source verfügbaren Office-Pakete
OpenOffice.org
und LibreOffice
laufen nativ unter &os;. Die um zusätzliche
Funktionen erweiterte kommerzielle OpenOffice.org-Version
Oracle Open Office
läuft in der &linux;-Version ebenfalls problemlos
unter &os;.In der Ports-Sammlung sind weitere
Textbearbeitungsprogramme, Tabellenkalkulationen und
Zeichenprogramme enthalten.Woher kann ich &motif; für
&os; bekommen?Der Quelltext für &motif; 2.2.2
wurde von der Open Group herausgegeben. Sie können
entweder das Package x11-toolkits/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;-Pakete, 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 &os; (&i386;) 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 &os;-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-8775Woher kann ich CDE für
&os; bekommen?Xi Graphics hat einmal
CDE für &os; 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 &os; verfügbar.Gibt es irgendwelche Datenbanksysteme für
&os;?Ja! Lesen Sie den Abschnitt
kommerzielle Anbieter auf der &os;-Web-Seite.Schauen Sie auch im Abschnitt Datenbanken
der Ports-Sammlung nach.Kann ich &oracle; unter &os; laufen lassen?Ja. Informationen zur Installation von
&linux;-&oracle; unter &os;
finden Sie unter http://www.shadowcom.net/freebsd-oracle9i/.BenutzerprogrammeNun, wo sind die ganzen Benutzerprogramme?Werfen Sie bitte einen Blick auf die Ports-Seite,
um Informationen über die nach &os;
portierten Softwarepakete zu erhalten. Die Liste
enthält zurzeit &os.numports; Einträge und
wächst täglich. Informieren Sie sich daher
regelmäßig auf dieser Seite oder abonnieren
Sie die Mailingliste &a.announce;, um sich über
Änderungen zu informieren.Die meisten Ports sollten auf den &rel3.relx;, &rel2.relx;
und &rel.relx;-Systemen laufen. Jedes Mal, wenn ein
&os;-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 Packages Menü
in &man.sysinstall.8; (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 CD-ROM-Distribution
verfügen, haben auf ihrer CD ein Verzeichnis packages/All, das solche Dateien
enthält. Für verschiedene &os;-Versionen
können sie von folgenden Adressen auch über das
Netz heruntergeladen werden:für &rel3.relx;-RELEASE/&rel3.stable;
ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stablefür &rel2.relx;-RELEASE/&rel2.stable;
ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-stablefür &rel.relx;-RELEASE/&rel.stable;
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-8-stableoder 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 &os; &java;?Ja. Informieren Sie sich bitte unter http://www.de.FreeBSD.org/java/.Warum kann ich manche Ports auf meiner
&rel3.relx;, &rel2.relx; oder
&rel.relx;-STABLE-Maschine nicht erstellen?Wenn Sie eine &os;-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.csup.1; (oder &man.csup.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
&os;-Basisquellbaum enthalten?Das Basissystem von &os; 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 &os; 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 &os;-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.Wie dem auch sei, &os;-Benutzer müssen seit
&os; 6.2-RELEASE nicht mehr ohne einen kompatiblen
CVSup-Client auskommen. Dank &a.mux;
wurde CVSup als &man.csup.1; in C neu
geschrieben und ist mittlerweile Teil des Basissystems. Obwohl zur
Zeit noch nicht alle Eigenschaften von
CVSup implementiert sind, ist es gut
genug (und sehr schnell!) darin, ihre Quellen zu synchronisieren.
Für &os;-Systeme vor 6.2 kann es als Port oder Paket
(siehe net/csup) installiert werden.Ich habe die Sourcen aktualisiert, wie aktualisiere
ich jetzt die installierten Ports?&os; 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, siehe Ports
aktualisieren im &os; Handbuch.Muss ich nach der Aktualisierung einer &os;-Hauptversionsnummer
jedes Mal alle Ports neu erstellen lassen?Auf jeden Fall! Während ein aktuelles System mit Software
für eine ältere Version funktionieren wird, werden Sie
mit zufälligen Abstürzen und nicht funktionierenden Ports
zurückbleiben, sobald Sie anfangen, andere Ports zu
installieren oder diejenigen, die Sie bereits haben, aktualisieren
möchten.Wenn das System aktualisiert wird, werden verschiedene
Shared-Libraries, ladbare Module und andere Systembestandteile
mit neueren Versionen ersetzt. Anwendungen, die gegen die älteren Versionen gelinkt sind, werden nicht starten oder in anderen
Fällen nicht korrekt funktionieren.Für weitere Informationen, lesen Sie den Abschnitt über
Betriebssystemupgrades im &os; Handbuch.Muss ich nach der Aktualisierung einer &os;-Unterversionsnummer
jedes Mal alle Ports neu erstellen lassen?Generell nicht. Die &os;-Entwickler tun ihr möglichstes,
um die Binärkompatibilität über alle
Veröffentlichungen mit der gleichen Hauptversionsnummer zu
garantieren. Ausnahmen werden in den Release Notes dokumentiert
und die darin enthaltenen Hinweise sollten befolgt werden.Warum ist /bin/sh so spartanisch?
Warum benutzt &os; 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 lassen, 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 http://alleg.sourceforge.net/digmid.html
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 (wie im &os;-Handbuch
beschrieben) auf Audio-CDs gebrannt werden.KernelkonfigurationIch möchte meinen Kernel anpassen. Ist das
schwierig?Überhaupt nicht! Lesen Sie den Abschnitt zur
Kernelkonfiguration im Handbuch.Der neue kernel wird zusammen mit seinen
Modulen im Verzeichnis /boot/kernel installiert werden.
Der alte Kernel und dessen Module wird in das Verzeichnis
/boot/kernel.old
verschoben, damit Sie, wenn Sie einen Fehler beim
herumexperimentieren mit Ihrer Konfiguration gemacht haben, die
vorherige Version Ihres Kernels starten können.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 &os; 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
&rel.current;-RELEASE auf einem System mit
&rel2.current;-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 &os;-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 &os;-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, benutzen Sie daher testweise
auch einmal einen anderen Server.Wie kann ich prüfen, welchen Scheduler das
System benutzt?Überprüfen Sie dazu, ob auf Ihrem System die
sysctl-Variable kern.sched.quantum
existiert. Ist dies bei Ihnen der Fall, werden Sie eine
Ausgabe ähnlich der folgenden sehen:&prompt.user; sysctl kern.sched.quantum
kern.sched.quantum: 99960Wenn die sysctl-Variable kern.sched.quantum
existiert, dann verwenden Sie den 4BSD-Scheduler
(&man.sched.4bsd.4;). 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.sched.quantum?kern.sched.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.Platten, Dateisysteme und Boot LoaderWie kann ich meine neue Festplatte in mein
&os;-System einbinden?Lesen Sie den Abschnitt Hinzufügen
von Laufwerken im Handbuch.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
&man.sysinstall.8; 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.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 rf -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 rf -
&prompt.root; cd var
&prompt.root; dump 0af - /var | restore rf -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 rf -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
&man.fdisk.8;-Tabelleneinträge (unter &os;
slices genannt) mit einem &os;-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 &os; 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
&man.fdisk.8;-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 &os; 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 &os;-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 &os;
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 &os; 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 &os; 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 &os; sich problemlos
zurechtfinden.Wenn Sie es geschafft haben, dass das BIOS und
&os; 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 mit diesem Befehl 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 &os;-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
/boot/kernel/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. Wenn Sie das Verzeichnis
/tmp direkt auf
/ und 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 &man.ccd.4; 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
&man.ccd.4;-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 &man.ccd.4; 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
(editieren, speichern, beenden)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial labelDer Grund ist, dass der von &man.ccd.4;
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 &os;
mounten?&os; unterstützt verschiedene fremde
Dateisysteme.UFSUFS-CD-ROMs können unter &os; 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.ext2/ext3&os; unterstützt
ext2fs und
ext3fs-Partitionen. Unter
&man.mount.ext2fs.8; finden Sie weitere
Informationen.NTFSEin NTFS-Treiber, der nur Lesezugriffe gestattet,
ist Teil von &os;. Weitere Informationen entnehmen
Sie bitte der Hilfeseite &man.mount.ntfs.8;. Ein Port von
ntfs-3g
unterstützt Schreiboperationen auf NTFS (siehe sysutils/fusefs-ntfs).FAT&os; enthält ein FAT-Treiber, der Lese-
und Schreibzugriffe ermöglicht. Weitere
Informationen entnehmen Sie bitte der Hilfeseite
&man.mount.msdosfs.8;.ZFSZum jetzigen Zeitpunkt enthält &os; eine
Portierung von &sun;s ZFS Treiber. Die aktuelle Empfehlung
ist, es nur auf &arch.amd64; Plattformen mit ausreichend
Hauptspeicher zu verwenden. Mehr Informationen
finden Sie in der Manualpage &man.zfs.8;.&os; 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;). In Ports die auf FUSE
(sysutils/fusefs-kmod) basieren,
können Sie viele weitere Dateisysteme finden.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,
wird eine Gerätedatei für
Slice 5 im Verzeichnis /dev erstellt, also mounten Sie diese
einfach:&prompt.root; mount -t msdosfs /dev/da1s5 /dos/eGibt es ein verschlüsselndes Dateisystem
für &os;?Ja. Sie können entweder &man.gbde.8; oder &man.geli.8;
einsetzen. Lesen Sie dazu auch den Abschnitt
Partitionen
verschlüsseln des Handbuchs.Wie kann ich den &windowsnt;-Loader zum Booten von
&os; verwenden?Das grundsätzliche Vorgehen besteht darin,
dass Sie den ersten Sektor Ihrer eigentlichen
&os;-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="&os;"
C:\="DOS"
Falls &os; auf derselben Platte, wie die
&windowsnt;-Bootpartition installiert ist, kopieren Sie
einfach /boot/boot1 nach
C:\BOOTSECT.BSD. Falls &os; auf
einer anderen Platte installiert ist, wird
/boot/boot1 nicht funktionieren; Sie
brauchen in diesem Fall
/boot/boot0./boot/boot0 muss mit
&man.sysinstall.8; installiert werden. Wählen Sie dazu den
&os;-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 &man.sysinstall.8;
mit NULL-Zeichen 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 &os; 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 &os; und &linux; mit LILO?Falls sich &os; 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=&os;(hierbei wird angenommen, dass Ihre
&os;-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 &os; 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=&os;In einigen Fällen könnte es sein, dass
Sie beim &os;-Bootloader die BIOS-Laufwerksnummer
angeben müssen, um von der zweiten Platte booten zu
können. Wenn Ihre &os;-SCSI-Platte vom BIOS zum
Beispiel als BIOS-Platte 1 erkannt wird, müssen Sie
am Prompt des &os;-Bootloaders eingeben:Boot: 1:da(0,a)/boot/kernel/kernelSie können &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 &os; und &linux;.Wie boote ich &os; und &linux; mit GRUB?Es ist sehr einfach, GRUB zum Starten von &os;
einzusetzen. Dazu müssen Sie lediglich die folgenden
Zeilen in die Konfigurationsdatei
/boot/grub/menu.lst (oder
/boot/grub/grub.conf bei manchen Systemen wie
z.B. Red Hat Linux und dessen Abkömmlinge) aufnehmen.title &os; 6.1
root (hd0,a)
kernel /boot/loader
Dabei steht hd0,a für die
root-Partition Ihrer ersten Festplatte. Benötigen
Sie auch die Slice-Nummer, so verwenden Sie einen Eintrag
der Form (hd0,2,a). In der
Voreinstellung ist die Angabe der Slice-Nummer aber nicht
nötig, da GRUB automatisch das erste Slice (das die
Bezeichnung a hat) nutzt.Wie boote ich &os; 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; 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; neu installieren (&windows; 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 msdosfs /dev/fd0c /floppyoder diesen:&prompt.root; mount -t msdosfs /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 &man.sysinstall.8;
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 &man.disklabel.8; oder
&man.sysinstall.8; 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 CD-ROM?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 CD-ROM
mounte?Das bedeutet im allgemeinen, dass sich keine
CD-ROM 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 &os; benutze?Wahrscheinlich werden auf der CD-ROM 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 &os; gebrannt und kann sie
nicht mit anderen Betriebssystemen lesen. Warum?Sie haben wahrscheinlichste eine Datei direkt auf CD
geschrieben, statt ein ISO 9660-Dateisystem 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
+ 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, CD-ROMs 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
CD-ROM zu gestatten:&prompt.root; chgrp operator /dev/acd0c
&prompt.root; chmod 640 /dev/acd0cSie müssen
zusätzlich /etc/devfs.conf
anpassen, weil diese Einstellungen ansonsten beim
Systemneustart verloren gehen.Damit normale Benutzer beispielsweise 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 msdosfs /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
&os; 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
&man.named.8; 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 Dateiberechtigungen 555 besitzen.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 cron
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
suroot werden will?Das ist ein Sicherheits-Feature. Wenn Sie mit
su 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 suroot 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?Starten Sie das System mittels boot -s
an der Loader-Eingabeaufforderung neu, um in den Single-User-Modus
zu gelangen. Wenn Sie aufgefordert werden, den Pfadnamen
der Shell einzugeben, drücken Sie einfach
Enter. Geben Sie danach mount -urw
/ 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?Lesen sie den Handbucheintrag über
Drucker. Es sollte die meisten Ihrer Probleme
behandeln.Einige Drucker benötigen einen auf dem Rechner
laufenden Treiber, um drucken zu können. Diese
so genannten WinPrinter oder
GDI-Drucker werden von &os; nicht
unterstützt und an diesem Zustand wird sich wohl auch
nichts ändern. Wenn Ihr Drucker nicht unter DOS oder
&windows; verwendet werden kann, handelt es sich um
einen WinPrinter und wird in der Regel auch
nicht unter &os; 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 &a.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 QUOTAWeitere 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.:File SystemQuota file/usr/usr/admin/quotas/home/home/admin/quotas……Unterstützt &os; IPC-Grundfunktionen von
System V?Ja, &os; 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 &os;
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
Single-User-Modus 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 -urw /
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.Wenn Sie immer noch dazu aufgefordert werden, das
root Passwort beim Betreten des
Single-User-Modus einzugeben, bedeutet das, dass die Konsole
als insecure in
/etc/ttys markiert wurde. In diesem Fall
ist es notwendig, von einem &os; Installationsmedium zu booten,
die Fixit-Shell auszuwählen und
die oben beschriebenen Befehle einzugeben.Wenn Sie ihre root Partition im Single-User-Modus
nicht mounten können, liegt es möglicherweise
daran, dass die Partionen verschlüsselt sind und es
damit unmöglich ist, sie ohne die
dazugehörigen Schlüssel zu mounten. Ihre
Chancen hängen von der jeweiligen Implementierung
ab. Für weitere Informationen lesen Sie den
Abschnittt über verschlüsselte Partitionen im
&os; Handbuch.Wie verhindere ich, dass das System mit CtrlAltDelete
rebootet werden kann?Falls Sie &man.syscons.4; (der Standard-Treiber für die
Konsole) benutzen, fügen Sie folgende Zeile in Ihre
Kernelkonfigurationsdatei ein:options SC_DISABLE_REBOOTAlternativ können Sie auch die folgende
&man.sysctl.8;-Variable setzen (die aktiviert wird, ohne dass Sie
Ihr System dazu neu starten oder einen angepassten Kernel
erstellen müssen):&prompt.root; sysctl hw.syscons.kbd_reboot=0Die beiden oben genannten Methoden schliessen sich
gegenseitig aus: &man.sysctl.8; existiert nicht, wenn Sie ihren
Kernel mit der Option SC_DISABLE_REBOOT
bauen.Falls Sie den &man.pcvt.4; Konsolentreiber verwenden, fügen
Sie die folgende Zeile in die Kernelkonfigurationsdatei hinzu und
bauen Sie einen neuen Kernel: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(s)Wobei file(s) eine oder mehrere
zu verarbeitende(n) Datei(en) ist/sind. 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.Die Verwendung des Ports converters/dosunix aus der Ports-Sammlung
stellt eine weitere Möglichkeit dar, DOS-Textdateien neu zu
formatieren. Konsultieren Sie die Dokumentation für weitere
Informationen.Wie beende ich Prozesse namentlich?Benutzen Sie &man.pkill.1;.Warum nervt &man.su.1; 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
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 base-Distribution
der von Ihnen benutzten RELEASE neu installieren. Wenn Sie die
CD-ROM besitzen, können Sie sie mounten (wir nehmen an, unter
/cdrom) und folgende Befehle
ausführen:&prompt.root; cd /cdrom/base
&prompt.root; ./install.shAlternativ können Sie mit der Option
NO_KERBEROS in der
/etc/make.conf ein make world
durchführen.Wie füge ich Pseudo-Terminals zum System
hinzu?Wenn Sie viele Benutzer von telnet,
ssh, X oder screen haben,
werden Ihnen eventuell die Pseudo-Terminals ausgehen.
Standardmässig unterstützt &os; 6.2 und vorherige
Versionen 256 Pseudo-Terminals, während &os; 6.3 und
höher 512 Pseudo-Terminals zur Verfügung stellt.Wenn nötig, können mehr Pseudo-Terminals
hinzugefügt werden. Allerdings muss dafür die
C-Blibliothek, der Kernel und /etc/ttys
erweitert werden. Zum Beispiel erhöht http://www.freebsd.org/~jhb/patches/pty_1152.patch
die Anzahl an Pseudo-Terminals auf 1152. Beachten Sie, dass die
Erweiterung nur für &os; 6.3 oder höher problemlos
funktioniert.Wie lade ich /etc/rc.conf und
starte /etc/rc neu, ohne zu
rebooten?Gehen Sie in den Single-User-Modus und dann
zurück in den Multi-User-Modus.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 &os; normalerweise, dass die Sourcen zur Vorbereitung auf eine
Release eingefroren wurden (in einigen
Releases wurde -BETA anstelle von
-PRERELEASE verwendet).Ausführliche Antwort: Bei &os; gibt es zwei
Quellen für Releases. Die Major Releases wie
7.0-RELEASE und 8.0-RELEASE werden aus dem aktuellen Stand
des Hauptzweiges der Entwicklung (besser und kürzer
als -CURRENT bekannt)
erzeugt. Minor Releases wie 6.3-RELEASE oder 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 6.2-STABLE genannt
wurde, wird der Name in 6.3-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 6.3-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
6.3-RELEASE) erfolgt ist, wird der Zweig in 6.3-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 &man.chflags.1; 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 installieren.Ausführliche Antwort: Wenn die
Sicherheitseinstellung größer als 0 ist,
erlaubt Ihnen &os; 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-Modus installieren oder die
Sicherheitseinstellung in
/etc/rc.conf ändern und dann das
System neu starten. Weitere Details zu
securelevel 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 &os; 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-Modus ändern oder die
Sicherheitseinstellung in
/etc/rc.conf ändern und dann das
System neu starten. Weitere Details zu
securelevel 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 MB
Speicher?Nein, das Programm hat keinen Fehler und es verbraucht
auch nicht 256 MB 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
Versionen von &os; nicht mehr?Die .shosts
Authentifizierung funktioniert nicht mehr, weil
&man.ssh.1; in neueren Versionen von &os; 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 danach &man.ssh.1; 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 (oder auch nur X11)
ist das am häufigsten verwendete
Window System für &unix;- und &unix;-ähnliche Systeme,
zu denen auch &os; gehört.
Der X
Protokollstandard wird von der
X.org Foundation
definiert und liegt
aktuell in Version 11 Release &xorg.version; vor und wird
häufig 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.Ich möchte X benutzen, was muss ich tun?Wenn Sie X auf einem existierenden System installieren
wollen, sollten Sie entweder den Meta-Port
x11/xorg verwenden, der alle
benötigen Komponenten baut und installiert, oder
Sie installieren die &os; &xorg;-Pakete:&prompt.root; pkg_add -r xorgEs ist auch möglich, &xorg; aus &man.sysinstall.8; heraus
zu installieren, indem Sie Configure,
dann Distributions und anschliessend
The X.Org Distribution aufrufen.Lesen Sie nach erfolgreicher Installation von &xorg; den
Abschnitt X11
konfigurieren im &os; Handbuch.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
&man.io.4; 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 &man.syscons.4; (den Standard-Konsolentreiber)
benutzen, können Sie &os; so konfigurieren,
dass auf jedem virtuellen Bildschirm ein Mauszeiger
unterstützt wird. Um Konflikte mit X zu vermeiden,
unterstützt &man.syscons.4; ein virtuelles Gerät mit dem
Namen /dev/sysmouse. Alle Mausbewegungen
und Mausklicks werden in das &man.sysmouse.4; Gerät über
&man.moused.8; geschrieben. Falls Sie Ihre Maus auf einer oder
mehreren virtuellen Konsolen und X
benutzen wollen, sollten Sie zunächst lesen und dann
&man.moused.8; installieren.Die Datei /etc/X11/xorg.conf sollte
die folgenden Einträge enthalten:Section "InputDevice"
Option "Protocol" "SysMouse"
Option "Device" "/dev/sysmouse"
.....Beginnend mit &xorg; 7.4 werden Angaben im Abschnitt
InputDevice von
xorg.conf ignoriert. Stattdessen wird
die automatisch detektierten Werte zurückgegriffen. Um
das alte Verhalten zu reaktivieren, fügen Sie die
folgende Zeile entweder in den Abschnitt
ServerLayout oder
ServerFlags ein:Option "AutoAddDevices" "false"Einige Leute ziehen es vor, unter X
/dev/mouse zu benutzen. Hierzu
sollte /dev/mouse nach
/dev/sysmouse
(lesen Sie &man.sysmouse.4;) gelinkt werden, indem Sie die folgende
Zeile in /etc/devfs.conf (siehe auch
&man.devfs.conf.5;) hinzufügen:link sysmouse mouseDie Verknüpfung kann durch Neustart von &man.devfs.5;
über das folgende Kommando (als root)
erzeugt werden:&prompt.root; /etc/rc.d/devfs restartKann 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/X11/xorg.conf ein. Das
Beispiel zeigt, wie ein solcher Abschnitt aussehen
könnte.Abschnitt InputDevice für
Rad-Mäuse in der Konfigurationsdatei von
&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_tcpWas 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 &os; 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 (siehe &man.ttys.5;) und fügen
Einträge für ttyv8 bis
zu ttyvc nach dem Kommentar zu
virtuellen Terminals ein:
# Edit the existing entry for ttyv8 in /etc/ttys and change
# "off" to "on".
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 so viele, wie Sie
möchten. Je mehr virtuelle Terminals Sie benutzen,
desto mehr Ressourcen werden gebraucht; das kann wichtig
sein, wenn Sie 8 MB 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.)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 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 &man.ttys.5;-Methode hat den Vorteil, dass
dokumentiert ist, auf welchem vty X gestartet wird und der
Neustart des X-Servers beim Abmelden an &man.init.8;
übergeben wird. Die &man.rc.8;-Methode erleichtert
den Aufruf von killxdm,
falls Probleme beim Start des X-Servers auftreten sollten.Beim Laden von &man.rc.8; sollte xdm
ohne irgendwelche Argumente (das heißt als Daemon)
gestartet werden. Das Kommando xdm muss
gestartet werden nachdem &man.getty.8;
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/local/lib/X11/xdm/Xservers
eintragen::0 local /usr/local/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
&os;-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
in der Datei /etc/fbtab eine nicht
auskommentierte Zeile der folgenden Art befindet:/dev/ttyv0 0600 /dev/consoleDas sorgt dafür, dass wer auch immer sich auf
/dev/ttyv0 anmeldet, auch die Konsole
besitzt.Früher konnte ich &xorg; 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.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 &xorg;
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
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.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?Die detaillierte Antwort auf diese Frage können Sie im
Abschnitt Splash-Screens
während des Systemstarts des Handbuchs
nachlesen.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 Tasten wie folgt:115 - Windows-Taste
zwischen den Ctrl- und
Alt-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 den x11-wm/fvwm2 Port 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 &xorg; und welche
Grafikkarte Sie verwenden. Wenn Sie eine Karte mit NVIDIA-Chipsatz
besitzen, benutzen Sie die binären Treiber für &os;,
indem Sie einen der folgenden Ports installieren:Die aktuelle Version von NVIDIA-Karten wird durch den Port
x11/nvidia-driver
unterstützt.NVIDIA Karten wie die GeForce2 MX/3/4 Serie wird durch
die 96XX Treiber unterstützt, die im x11/nvidia-driver-96xx Port
bereitgestellt werden.Sogar ältere Karten wie die GeForce und RIVA TNT
sind durch die 71XX Treiberserie verfügbar, die im Port
x11/nvidia-driver-71xx enthalten
ist.Tatsächlich liefert NVIDIA detaillierte Informationen
darüber, welche Karte von welchem Treiber unterstützt
wird. Diese Information finden Sie auf der Website von NVIDIA:
http://www.nvidia.com/object/IO_32667.html.Für Matrox G200/400 sehen Sie sich den Port x11-servers/mga_hal an.Bei ATI Rage 128 und Radeon lesen Sie die
Anleitungen &man.ati.4x;, &man.r128.4x; und &man.radeon.4x;.Fü 3dfx Vodoo 3, 4, 5 und Banshee Karten gibt es einen
x11-servers/driglide Port.NetzwerkeWoher kann ich Informationen über Diskless
Booting bekommen?Diskless Booting bedeutet, dass
die &os;-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 &os;-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 &os; ans
Internet anbinden?Personen, die diese Frage stellen, haben
typischerweise zwei PCs zu Hause: einen mit &os; und
einen mit einer &windows;-Variante. Die Idee ist, die
&os;-Maschine an das Internet anzubinden, um in der
Lage zu sein, von der &windows;-Maschine über die
&os;-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 &os; 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 &os; 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-Abschnitt
des Handbuchs.Wie verbinde ich zwei &os;-Maschinen mit PLIP
über die parallele Schnittstelle?Dieses Thema wird im Handbuch-Kapitel PLIP
behandelt.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 192.0.2.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 0xffffff00Sie können mehr darüber im &os; Handbuch
nachlesen.Wie 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 &os;?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 den folgenden Befehl:&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 dieses Kommando:&prompt.root; mount -o -P sunbox:/blah /mntWarum meldet mir mountd auf meinem
&os; 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
von &os; 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 &os;-Systemstarts automatisch gestartet.In aktuellen Versionen von &os; sind die Programme
&man.mrouted.8;, der Multicast Routing Dienst, &man.map-mbone.8;
und &man.mrinfo.8; nicht mehr im Basissystem enthalten. In der
&os; Ports-Sammlung sind diese Programme unter net/mrouted erhältlich.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?Lesen Sie die Antwort im &os; Handbook.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 &os;-Firewall finden Sie im Kapitel Firewalls
des Handbuchs.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 Port sysutils/socket umleiten. 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 &os; gibt es drei
Bandbreiten-Managementtools. &man.dummynet.4; ist als
Teil von &man.ipfw.4; in &os; integriert.
ALTQ
ist in &os; Bestandteil von &man.pf.4;. 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:device bpf # Berkeley Packet FilterHabe 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
&man.mount.smbfs.8; im Basissystem verfügbar.Was bedeutet die Meldung
Limiting icmp/open port/closed port response
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 &os; 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.Warum sehe ich ständig Nachrichten wie:
192.168.0.10 is on fxp1 but got reply from
00:15:17:67:cf:82 on rl0 und wie stelle ich
das ab?Weil ein Paket unerwartet von ausserhalb des Netzwerks
empfangen wurde. Um die Nachrichten abzustellen, ändern Sie
net.link.ether.inet.log_arp_wrong_iface auf
0.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 detaillierte 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 &man.inetd.8;).
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:Zurücksetzen 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 zumindest 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) auf hohen Ports
auf Anfragen?&os; benutzt eine Version von BIND, die einen Port mit einer
hohen, zufälligen Nummer für den Versand von Anfragen
nutzt. Aktuelle Versionen wählen einen neuen, zufälligen
UDP-Port für jeden Query. Das kann für manche
Netzwerkkonfigurationen Probleme verursachen, besonders wenn eine
Firewall eingehende UDP-Pakete auf bestimmten Ports blockiert.
Wenn Sie durch eine solche Firewall wollen, können Sie die
avoid-v4-udp-ports und
avoid-v6-udp-ports Optionen ausprobieren, um
ein zufälliges Auswählen von Portnummern innerhalb eines
blockierten Bereiches zu verhindern.Wenn eine Portnummer (wie 53) über die Optionen
query-source oder
query-source-v6 in
/etc/namedb/named.conf spezifiziert ist,
wird zufällige Portauswahl nicht verwendet. Es wird
dringend empfohlen, dass diese Optionen nicht für die
Spezifikation von festen Portnummern verwendet wird.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 der sendmail-Dienst
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 steigender
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 &os; 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 nicht installiert. Wenn 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 perl bauen.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 und die Datei
/var/log/ppp.log existiert:!ppp
*.* /var/log/ppp.log
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
vergessen haben, die Zeile HISADDR in der Datei
ppp.conf hinzuzufügen.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 in Ihrer Datei
/etc/ppp/ppp.linkup:MYADDR:
delete ALL
add 0 0 HISADDR
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 folgende Zeile eingestellt werden,
wobei NNN die Inaktivität in
Sekunden angibt, bevor die Verbindung geschlossen wird:set timeout NNNFalls 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. Das &man.ppp.8;-Programm folgert daraus, dass die
Verbindung nicht in Ordnung ist und schließt sie.
Vor &os; Version 2.2.5 war LQR standardmäßig
aktiviert; nun ist es standardmäßig
deaktiviert. Es kann durch die 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
&usrobotics; &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 µsoft; 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 µsoft;-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;
mit Debugging-Informationen neu und benutzen dann &man.gdb.1;, um
von dem hängenden ppp Prozess eine
Aufzeichnung des Stacks zu erstellen. Um die
ppp Anwendung mit
Debugging-Informationen zu übersetzen, geben Sie folgendes
ein:&prompt.root; cd /usr/src/usr.sbin/ppp&prompt.root; env DEBUG_FLAGS='-g' make clean
&prompt.root; env DEBUG_FLAGS='-g' make installAnschliessend sollten Sie ppp neu
starten und darauf warten, dass es wieder hängt. Wenn die
Debug-Version von ppp hängt,
starten Sie gdb für den
steckengebliebenen Prozess, indem Sie folgendes eingeben:&prompt.root; gdb ppp `pgrep ppp`An der Eingabeaufforderung von gdb
können Sie die Befehle bt oder
where benutzen, um eine Aufzeichnung des Stacks
zu erhalten. Speichern Sie die Ausgabe der
gdb-Sitzung und
trennen Sie den laufenden Prozess über den
quit Befehl von
gdb.Schicken Sie zum Schluss das Log der
gdb-Sitzung an &a.brian;.Warum passiert nach der Nachricht Login
OK! nichts?Bei &os;-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.
Es wurde auch schon berichtet, dass dies bei der
Benutzung von slirp regelmäßig auftritt. Der
Grund hierfür ist, dass das &man.ppp.8; auf der
Client-Seite in der Zeit, die benötigt wird, &man.getty.8; zu
beenden und &man.ppp.8; 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 folgenden Befehl geschehen:set openmode passiveDiese 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 folgende Befehl (wobei
N die Wartezeit in Sekunden vor Beginn
der Verhandlungen angibt) benutzt werden:set openmode active NWeitere 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). Das Programm
ppp 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 mit der
folgenden Zeile aktiviert werden:enable lqrLQR wird standardmäßig akzeptiert, wenn es
vom Partner ausgehandelt wird.Warum wählt &man.ppp.8; im Modus
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 expect-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?Das Programm 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 ppp noch andere Programme
sollten Core-Dumps erzeugen. Da &man.ppp.8; mit der effektiven
Benutzerkennung 0 ausgeführt wird, wird das
Betriebssystem das Coreimage von &man.ppp.8; 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 die Systemquellen installieren und
folgendes tun:&prompt.root; cd /usr/src/usr.sbin/ppp
&prompt.root; echo STRIP= >> /etc/make.conf
&prompt.root; echo CFLAGS+=-g >> /etc/make.conf
&prompt.root; make install cleanNun 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 &man.gdb.1; vertraut sind,
könnten Sie weitere Einzelheiten herausfinden, z.B.
wodurch der Fehler tatsächlich hervorgerufen wurde
oder die Adressen und Werte der betreffenden Variablen.Warum bekommt das Programm, das eine Anwahl im Modus
ausgelöst hat, keine Verbindung?Dies war ein bekanntes Problem bei
&man.ppp.8;-Konfigurationen, bei denen im Modus
dynamische, lokale IP-Adressen mit dem
Partner ausgehandelt werden. Das Problem ist bereits seit einiger
Zeit 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
&man.tun.4;-Schnittstelle dem Socketendpunkt zugeordnet wird. Der
Kernel erstellt das erste ausgehende Paket und schreibt es
in das &man.tun.4;-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
&man.tun.4;-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, die
bind()-Funktion 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 &man.ioctl.2; 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 &man.libalias.3; 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 &man.tcpdump.1; auf der &man.tun.4;-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
&man.libalias.3;. Beispiele für spezielle
Fälle finden Sie in
/usr/src/sys/netinet/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
6112Quake 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
µsoft;) 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.Eine der möglichen Lösungen für dieses
Problem ist die Erzeugung des folgenden Schlüssels in
der Registry des Windows-Clients mit
regedit: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
DWORDTcpip\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, mit denen man die
TCP/IP-Einstellungen bearbeiten kann. Wenn Sie als
&macos;-Anwender NAT benutzen, suchen Sie ihre MTU-Einstellungen
und geben Sie dort 1450 statt
1500 ein.&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 net/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 &os;. PPP und SLIP werden im
Abschnitt Netzwerke behandelt.Wie kann ich feststellen, ob &os; meine seriellen
Schnittstellen gefunden hat?Wenn der &os; 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 folgenden Befehl aus, nachdem Ihr System
hochgefahren ist und läuft:&prompt.user; dmesg | grep -E "^sio[0-9]"Hier ist ein Beispiel einer Ausgabe nach dem oben
genannten Befehl:
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550AEs 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 &os; meine Modemkarten
gefunden hat?Die vorherige Frage sollte darauf eine Antwort geben.Wie kann ich auf die seriellen Schnittstellen in
&os; zugreifen?Die in &man.sio.4; beschriebene serielle Schnittstelle
sio2 (COM3
unter &ms-dos;/&windows;), ist
/dev/cuad2 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
cuadX
Gerät inaktiv und der Empfangssignalpegel
Mit Empfangssignalpegel oder
Trägersignalerkennung wird hier
die carrier detect
Leitung bezeichnet.
aktiv ist. Wird das
cuadX
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
cuadX
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 Datei
&man.device.hints.5;. Aber achten Sie darauf, den
IRQ nur in einem der Einträge zu platzieren. 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 folgende Option in der
Kernelkonfigurationsdatei:options COM_MULTIPORTDas folgende /boot/device.hints Beispiel
ist geeignet für eine AST Karte mit 4 seriellen
Schnittstellen, die IRQ 12 benutzt:hint.sio.4.at="isa"
hint.sio.4.port="0x2a0"
hint.sio.4.flags="0x701"
hint.sio.5.at="isa"
hint.sio.5.port="0x2a8"
hint.sio.5.flags="0x701"
hint.sio.6.at="isa"
hint.sio.6.port="0x2b0"
hint.sio.6.flags="0x701"
hint.sio.7.at="isa"
hint.sio.7.port="0x2b8"
hint.sio.7.flags="0x701"
hint.sio.7.irq="12"Die Flags zeigen an, dass die Master-Schnittstelle die
Minor-Nummer 7 (0x700) hat
und dass sich alle Schnittstellen einen IRQ teilen
(0x001).Kann &os; 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?Lesen Sie den Abschnitt Serielle
Datenübertragung im &os; Handbuch.Wie kann ich Einwahl-Logins über mein Modem
aktivieren?Lesen Sie dazu bitte den Abschnitt über Einwählverbindungen
im &os; Handbuch.Wie kann ich ein Hardware-Terminal mit meiner &os; Box
verbinden?Diese Information können Sie im Abschnitt Terminals im &os;
Handbuch finden.Warum kann ich tip oder
cu nicht laufen lassen?Auf Ihrem System können die Programme
&man.tip.1; und &man.cu.1; auf das Verzeichnis /var/spool/lock nur über den
Benutzer uucp und die Gruppe
dialer zugreifen. 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?Lesen Sie diese
Antwort im &os; Handbuch.Wie soll ich die AT Befehle eingeben?Im &os; Handbuch finden Sie dazu diese
Antwort.Wieso funktioniert das @
Zeichen für die pn Fähigkeit
nicht?Lesen Sie dazu diese
Antwort im &os; Handbuch.Wie kann ich von der Kommandozeile eine Telefonnummer
wählen?Lesen Sie diese
Antwort im &os; Handbuch.Muss ich dabei jedes Mal die bps Rate
angeben?Im &os; Handbuch finden Sie dazu diese
Antwort.Wie kann ich möglichst komfortabel über
einen Terminal-Server auf verschiedene Rechner
zugreifen?Lesen Sie im &os; Handbuch diese
Antwort.Kann tip mehr als eine Verbindung für jede Seite
ausprobieren?Lesen Sie diese
Antwort im &os; Handbuch.Warum muss ich zweimal CtrlP
tippen, um ein CtrlP
zu senden?Im &os; Handbuch finden Sie dazu diese
Antwort.Warum ist auf einmal alles was ich schreibe in
GROSSBUCHSTABEN??Lesen Sie im &os; Handbuch diese
Antwort.Wie kann ich Dateien mit tip
übertragen?Lesen Sie diese
Antwort im &os; Handbuch.Wie kann ich zmodem mit tip
laufen lassen?Sie finden dazu diese
Antwort im &os; Handbuch.Verschiedene Fragen&os; benutzt viel mehr Swap-Speicher als &linux;.
Warum?Es sieht nur so aus, als ob &os; mehr Swap benutzt,
als &linux;. Tatsächlich ist dies nicht der Fall. In
dieser Hinsicht besteht der Hauptunterschied zwischen
&os; und &linux; darin, dass &os; 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 &os; 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 &os; 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, wenn möglich; die Zugriffsrechte
für die Datei, auf die der symbolische Link zeigt, werden also
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
bar nicht geändert.Wenn Sie die Zugriffsrechte in der Dateihierarchie an der
Wurzeldatei anstatt der Datei selbst ändern möchten,
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 &os; ausführen?Ja. Sie können
emulators/doscmd
verwenden, das über die Ports-Sammlung verfügbar
ist.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.Sie können auch emulators/dosbox aus der &os; Ports
Sammlung ausprobieren. Der Hauptaugenmerk liegt bei dieser
Anwendung auf der Emulation alter DOS Spiele, deren Dateien sich im
lokalen Dateisystem befinden.Was muss ich tun, um die &os;-Dokumentation in
meine Muttersprache zu übersetzen?Informationen zu diesem Thema finden Sie auf der Webseite des
&os; 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 &os; 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 &os;-Account bekommen?Das &os; Project 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
&os;. M-Net bietet Zugang mit
Telnet und
SSH
und den Zugang zur gesamten Software von &os;. 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.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. Es wurde benutzt, um entfernte
Sites mit den zentralen Quellcodeentwicklungen des Projekts 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 &a.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
&os;-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 &a.hackers.name;,
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 &os;?Q. Hat irgend jemand Temperaturmessungen
durchgeführt, während &os; läuft? Ich
weiss, dass &linux; cooler läuft, als DOS, habe
aber niemals gesehen, dass &os; 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 &os;
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, &os; 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 &os; Ihre CPU auch in einen Low-Power-Modus bringen.Wer kratzt in meinen Speicherbänken??Q. Gibt es irgend etwas seltsames, das
&os; 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 &os;-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 &os;
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, &os; 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 &os; 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
:-)&a.tabthorpe; sagt: Keine,
echte &os; Hacker fürchten sich nicht
vor der Dunkelheit!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 &os;
erfahren?Zurzeit gibt es nur ein Buch über die Interna von
&os;, The Design and Implementation of the &os;
Operating System von Marshall Kirk McKusick und
George V. Neville-Neil, ISBN 0-201-70245-2, das sich auf
&os; 5.X konzentriert.Allgemeines Wissen über &unix; kann
allerdings in den meisten Fällen auf &os;
angewendet werden.Eine Liste finden Sie im entsprechenden Abschnitt der
Bibliographie.Wie kann ich bei der Entwicklung von &os; mitarbeiten?Genauere Informationen finden Sie im Artikel &os;
unterstützen. Wir können Hilfe
immer gut gebrauchen!Was sind Snapshots und RELEASEs?Derzeit existieren vier aktive/halbaktive Zweige im
&os;-CVS-Repository. In früheren Zweigen
ändert sich wenig, daher gibt es nur vier
aktive Entwicklungszweige:&rel3.releng; bzw. &rel3.stable;&rel2.releng; bzw. &rel2.stable;&rel.releng; bzw. &rel.stable;&rel.head.releng; bzw.
-CURRENT oder
&rel.head;HEAD ist keine wirkliche
Bezeichnung für einen Zweig, wie die anderen.
Es ist lediglich eine symbolische Konstante für
den aktuellen, nicht verzweigten
Entwicklungsstrom, auf den wir uns
einfach als -CURRENT beziehen.Derzeit steht -CURRENT für den
&rel.head.relx;-Entwicklungsstrom. Der &rel.stable;-Zweig
(&rel.releng;) wurde von -CURRENT im
&rel.relengdate; und der &rel2.stable;-Zweig (&rel2.releng;) im
&rel2.relengdate; von -CURRENT
abgespalten.Wie kann ich meine eigene, angepasstes Release
erstellen?Eine Anleitung dazu finden Sie im Artikel
&os; 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.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 1392 KB-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/release/Makefile.ZIPNSPLIT= gzip --no-name -9 -c | split -b 1392k -Ich habe eine Kernelerweiterung geschrieben. An wen
sende ich sie?Lesen Sie bitte den Artikel
&os; 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
µsoft;/&intel;) kleiner als Xoff-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. Die
Erkennungsroutine wird daraufhin anfragen, ob Karten unterhalb
X vorhanden sind. Schließlich 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
264.Die IDs bestehen aus zwei 32-Bit-Feldern (daher
264) + 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 oder etwas
anderes, 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.µsoft; 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 µsoft;
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; Versionen stellen seit Februar 2003
Major-Numbers für Geräte automatisch zur Laufzeit
bereit (lesen Sie &man.devfs.5;), damit ist das nicht mehr
nötig.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.&a.mckusick;, September 1998Wie kann ich optimalen Nutzen aus einer kernel panic
ziehen?Hier ist eine typische Kernel-PanicFatal 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 faultWenn Sie eine Meldung wie diese sehen, reicht es
nicht, sie einfach zu reproduzieren und sie einzusenden.
Der Wert des Instruktionszeigers 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 Instruktionszeigers 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 noch einmal, 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.Wie dem auch sei, der beste Weg, den Grund für eine Panik
herauszufinden, ist der, einen Crash-Dump festzuhalten und
dann &man.kgdb.1; zu benutzen, um den Stack im Crash-Dump
zurückzuverfolgen.Jedenfalls ist die Methode, die ich normalerweise
benutze, folgende:Sorgen Sie dafür, dass die folgende Zeile in der
Kernelkonfigurationsdatei
(/usr/src/sys/arch/conf/MYKERNEL) enthalten ist:makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbolsWechseln Sie in das Verzeichnis usr/src:&prompt.root; cd /usr/srcErstellen Sie den Kernel:&prompt.root; make buildkernel KERNCONF=MYKERNELWarten Sie, bis &man.make.1; den Kernel fertig kompiliert
hat.&prompt.root; make installkernel KERNCONF=MYKERNELStarten Sie das System neu.Falls Sie die make-Variable KERNCONF
nicht verwenden, wird ein GENERIC Kernel
gebaut und installiert.Der &man.make.1;-Prozess wird zwei Kernel
erstellt haben:
/usr/obj/usr/src/sys/MYKERNEL/kernel
und
/usr/obj/usr/src/sys/MYKERNEL/kernel.debug.
kernel wurde als
/boot/kernel installiert, während
kernel.debug als Quelle für
Debuggersymbole für &man.kgdb.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 &os; sind für
gewöhnlich genauso groß wie der physikalische
Hauptspeicher Ihres Rechners. Das heißt, wenn Sie
512MB RAM haben, werden sie einen 512MB 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=N, wobei
N die Größe des verwendeten
Kernelspeichers in KBs ist. Wenn Sie z.B. 1 GB RAM haben,
können Sie die Speicherbenutzung des Kernels damit auf
128 MB begrenzen, so dass die Größe Ihres
Crash-Dumps 128 MB anstatt 1 GB betragen wird.Wenn Sie den Crash-Dump wiederhergestellt haben,
können Sie den Stack mit &man.kgdb.1; so
zurückverfolgen:&prompt.user; kgdb /usr/obj/usr/src/sys/MYKERNEL/kernel.debug /var/crash/vmcore.0(kgdb)backtraceBeachten 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.kgdb.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.kgdb.1; auch
für entferntes Debugging konfigurieren, so dass
Sie &man.kgdb.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.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.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 auf i386
vergrössern oder verkleinern?Standardmäßig beträgt der
Adressraum des Kernels 1 GB (2 GB für PAE)
auf i386. Wenn Sie einen netzwerkintensiven Server
(z.B. einen großen FTP- oder HTTP-Server) betreiben, oder
ZFS verwenden möchten, kann es sein, dass Sie der Meinung
sind, dass das nicht ausreichen.Fügen Sie die folgende Zeile zu ihrer
Kernelkonfigurationsdatei hinzu, um den verfügbaren Speicher
zu erhöhen und erstellen Sie dann einen neuen Kernel:options KVA_PAGES=NUm den richtigen Wert von N zu
bestimmen, teilen Sie den gewünschte Größe
des Addressraumes (in Megabyte) durch vier (z.B. beträgt er
512 für 2 GB).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;
Index: head/de_DE.ISO8859-1/books/handbook/disks/chapter.xml
===================================================================
--- head/de_DE.ISO8859-1/books/handbook/disks/chapter.xml (revision 48706)
+++ head/de_DE.ISO8859-1/books/handbook/disks/chapter.xml (revision 48707)
@@ -1,3991 +1,3979 @@
SpeichermedienBerndWarkenÜbersetzt von MartinHeinenÜbersichtDieses Kapitel behandelt die Benutzung von Laufwerken unter
&os;. Hierzu zählen speichergestützte Laufwerke, Netzlaufwerke,
SCSI/IDE-Geräte und
Geräte, die die USB-Schnittstelle
benutzen.Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes
wissen:Die Begriffe, die &os; verwendet, um die
Organisation der Daten auf einem physikalischen Laufwerk
zu beschreiben.Wie Sie zusätzliche Laufwerke zu einem &os;-System
hinzufügen.Wie Sie &os; zur Verwendung von
USB-Speichermedien konfigurieren.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 &os; CDs und
DVDs gebrannt werden.Wie Sie die unter &os; erhältlichen
Backup-Programme benutzen.Was Dateisystem-Schnappschüsse sind und wie sie
eingesetzt werden.Bevor Sie dieses Kapitel lesen,sollten Sie wissen, wie Sie einen
neuen &os;-Kernel konfigurieren
und installieren können.GerätenamenDie folgende Tabelle zeigt die von &os; unterstützten
Speichergeräte und deren Gerätenamen.
Namenskonventionen von physikalischen LaufwerkenLaufwerkstypGerätenameIDE-Festplattenad oder
adaIDE-CD-ROM-Laufwerkeacd oder
cdSATA-Festplattenad oder
adaSATA-CD-ROM-Laufwerkeacd oder
cdSCSI-Festplatten und
USB-SpeichermediendaSCSI-CD-ROM-LaufwerkecdVerschiedene proprietäre CD-ROM-Laufwerkemcd für Mitsumi
CD-ROM und scd für
Sony CD-ROMDiskettenlaufwerkefdSCSI-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.
Hinzufügen von LaufwerkenDavidO'BrianIm Original von LaufwerkehinzufügenDieser Abschnitt beschreibt, wie Sie ein neues
SATA-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 des Laufwerkherstellers. Starten Sie das System neu und
melden Sie sich als Benutzer
root an.Kontrollieren Sie /var/run/dmesg.boot,
um sicherzustellen, dass das neue Laufwerk gefunden wurde. In
diesem Beispiel erscheint das neu hinzugefügte
SATA-Laufwerk als
ada1.PartitionengpartIn diesem Beispiel wird eine einzige große Partition auf der
Festplatte erstellt. Verwendet wird das GPT-Partionsschema,
welches gegenüber dem älteren und weniger vielseitigen
MBR-Schema bevorzug wird.Wenn die hinzugefügte Festplatte nicht leer ist, können
alte Partitionsinformationen mit
gpart delete entfernt werden. Details
finden Sie in &man.gpart.8;.Zuerst wird das Partitionsschema erstellt und dann eine
einzelne Partition angefügt:&prompt.root; gpart create -s GPT ada1
&prompt.root; gpart add -t freebsd-ufs ada1Je nach Anwendung kann es wünschenswert sein, mehrere
kleinere Partitionen zu haben. In &man.gpart.8; finden Sie
Optionen zum Erstellen von kleineren Partitionen.Ein Dateisystem wird auf der neuen, leeren Festplatte
erstellt:&prompt.root; newfs -U /dev/ada1p1Ein leeres Verzeichnis wird als Mountpunkt erstellt, also
ein Speicherort für die Montage der neuen Festplatte im
originalen Dateisystem:&prompt.root; mkdir /newdiskAbschließend wird ein Eintrag in
/etc/fstab hinzugefügt, damit die neue
Festplatte automatisch beim Start eingehängt wird:/dev/ada1p1 /newdisk ufs rw 2 2Die neue Festplatte kann manuell montiert werden, ohne das
System neu zu starten:&prompt.root; mount /newdiskPartitionen vergrößernAllanJudeBeigetragen von BjörnHeidottingÜbersetzt von PartitionenvergrößernDie Kapazität einer Festplatte kann sich ohne Änderungen
an bereits vorhandenen Daten erhöhen. Dies geschieht
üblicherweise mit virtuellen Maschinen, wenn sich herausstellt,
dass die virtuelle Festplatte zu klein ist und vergrößert werden
soll. Zuweilen wird auch ein Abbild einer Platte auf einen
USB-Stick geschrieben, ohne dabei die volle
Kapazität zu nutzen. Dieser Abschnitt beschreibt, wie man
Platten vergrößert, bzw. erweitert, um die
Vorteile der erhöhten Kapazität zu nutzen.Überprüfen Sie /var/run/dmesg.boot, um
den Gerätenamen der Festplatte zu bestimmen, die vergrößert
werden soll. In diesem Beispiel gibt es nur eine
SATA-Festplatte im System, so dass die Platte
als ada0 angezeigt wird.PartitionengpartUm die aktuelle Konfiguration der Partitionen auf der
Festplatte anzuzeigen:&prompt.root; gpart show ada0
=> 34 83886013 ada0 GPT (48G) [CORRUPT]
34 128 1 freebsd-boot (64k)
162 79691648 2 freebsd-ufs (38G)
79691810 4194236 3 freebsd-swap (2G)
83886046 1 - free - (512B)Wenn die Festplatte mit dem
GPT-Partitionsschema formatiert
wurde kann es vorkommen, dass sie als
corrupted angezeigt wird, weil sich die
Sicherung der GPT-Partitionstabellen nicht
mehr am Ende des Laufwerks befinden. Reparieren Sie in so
einem Fall die Partitionstabelle mit
gpart:&prompt.root; gpart recover ada0
ada0 recoveredNun steht der zusätzliche Speicherplatz zur Verfügung und
kann verwendet werden, um eine neue Partition anzulegen oder
eine bestehende Partition zu erweitern:&prompt.root; gpart show ada0
=> 34 102399933 ada0 GPT (48G)
34 128 1 freebsd-boot (64k)
162 79691648 2 freebsd-ufs (38G)
79691810 4194236 3 freebsd-swap (2G)
83886046 18513921 - free - (8.8G)Partitionen können nur auf zusammenhängenden, freien
Speicherplatz vergrößert werden. In diesem Beispiel wird die
letzte Partition der Platte als Swap-Speicher genutzt, aber die
zweite Partition ist die, dessen Größe verändert werden soll.
Weil der Swap-Speicher nur temporäre Daten enthält, kann er
gefahrlos ausgehangen, gelöscht und nachdem die Partition
vergrößert wurde, neu erstellt werden.&prompt.root; swapoff /dev/ada0p3
&prompt.root; gpart delete -i 3ada0
ada0p3 deleted
&prompt.root; gpart show ada0
=> 34 102399933 ada0 GPT (48G)
34 128 1 freebsd-boot (64k)
162 79691648 2 freebsd-ufs (38G)
79691810 22708157 - free - (10G)Es besteht die Gefahr von Datenverlust, wenn die
Partitionstabelle eines eingehangenen Dateisystems verändert
wird. Es empfiehlt sich daher, die folgenden Schritte auf
einem ausgehangenen Dateisystem durchzuführen, während die
Umsetzung über eine Live-CD-ROM oder
von einem USB-Gerät erfolgt. Wenn es
jedoch absolut notwendig ist, kann ein eingehangenes
Dateisystem auch vergrößert werden, nachdem die
Sicherheitsfunktionen von GEOM deaktiviert wurden:&prompt.root; sysctl kern.geom.debugflags=16Vergrößern Sie die Partition und lassen Sie Platz, um die
Swap-Partition in der gewünschten Größe neu erstellen zu können.
Dies ändert nur die Größe der Partition. Das Dateisystem
innerhalb der Partition wird in einem separaten Schritt
erweitert.&prompt.root; gpart resize -i 2 -a 4k -s 47Gada0
ada0p2 resized
&prompt.root; gpart show ada0
=> 34 102399933 ada0 GPT (48G)
34 128 1 freebsd-boot (64k)
162 98566144 2 freebsd-ufs (47G)
98566306 3833661 - free - (1.8G)Erstellen Sie die Swap-Partition neu:&prompt.root; gpart add -t freebsd-swap -a 4k ada0
ada0p3 added
&prompt.root; gpart show ada0
=> 34 102399933 ada0 GPT (48G)
34 128 1 freebsd-boot (64k)
162 98566144 2 freebsd-ufs (47G)
98566306 3833661 3 freebsd-swap (1.8G)
&prompt.root; swapon /dev/ada0p3Erweitern Sie das UFS-Dateisystem, um die
Kapazität der vergrößerten Partition zu nutzen:Ab &os; 10.0-RELEASE ist es möglich, ein eingehangenes
Dateisystem zu erweitern. Bei älteren Versionen muss das
Dateisystem zuvor ausgehangen werden.&prompt.root; growfs /dev/ada0p2
Device is mounted read-write; resizing will result in temporary write suspension for /.
It's strongly recommended to make a backup before growing the file system.
OK to grow file system on /dev/ada0p2, mounted on /, from 38GB to 47GB? [Yes/No] Yes
super-block backups (for fsck -b #) at:
80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752,
89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432Sowohl die Partition als auch das Dateisystem wurden jetzt
vergrößert, um den neu zur Verfügung stehenden Speicherplatz zu
nutzen.USB SpeichermedienMarcFonvieilleBeigetragen von USBSpeichermedienDer Universal Serial Bus (USB) wird
von vielen externen Speichern benutzt: Festplatten,
USB-Thumbdrives sowie von
CD- und DVD-Brennern.
&os; bietet Unterstützung für Geräte mit USB
1.x, 2.0 und 3.0.Die Unterstützung fürUSB 3.0 ist mit
einiger Hardware, einschließlich Haswell (Lynx Point)
Chipsätzen, nicht kompatibel. Wenn &os; beim Booten mit dem
Fehler failed with error 19 abbricht,
müssen Sie xHCI/USB3 im BIOS
deaktivieren.Unterstützung für USB-Massenspeicher ist
im GENERIC-Kernel enthalten. Für einen
angepassten Kernel müssen die nachstehenden Zeilen in der
Kernelkonfigurationsdatei enthalten sein:device scbus>>>>>>>># SCSI bus (required for ATA/SCSI)
device da>>>>>>># Direct Access (disks)
device pass>>>>># Passthrough device (direct ATA/SCSI access)
device uhci>>>>># provides USB 1.x support
device ohci>>>>># provides USB 1.x support
device ehci>>>>># provides USB 2.0 support
device xhci>>>>># provides USB 3.0 support
device usb>>>>>># USB Bus (required)
device umass>>>># Disks/Mass storage - Requires scbus and da
device cd>>>>>>># needed for CD and DVD burners&os; benutzt den &man.umass.4;-Treiber, der das
SCSI-Subsystem verwendet um auf
USB-Geräte zuzugreifen. Da alle
USB-Geräte vom System als
SCSI-Geräte erkannt werden, dürfen Sie
nicht
in die Kernelkonfigurationsdatei aufnehmen, wenn es sich bei
dem Gerät um einen CD- oder
DVD-Brenner handelt.Der übrige Abschnitt beschreibt, wie Sie überprüfen können
ob ein USB-Gerät von &os; erkannt wird und
wie Sie das Gerät so konfigurieren, dass es verwendet werden
kann.Konfiguration von GerätenUm die USB-Konfiguration zu testen,
schließen Sie das USB-Gerät an. Verwenden
Sie dmesg um zu überprüfen, ob das Gerät in
den Systemmeldungen erscheint. Dies sollte in etwa so
aussehen:umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0
umass0: SCSI over Bulk-Only; quirks = 0x0100
umass0:4:0:-1: Attached to scbus4
da0 at umass-sim0 bus 0 scbus4 target 0 lun 0
da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device
da0: Serial Number WD-WXE508CAN263
da0: 40.000MB/s transfers
da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)
da0: quirks=0x2<NO_6_BYTE>Fabrikat, Gerätedatei (da0),
Geschwindigkeit und Kapazität werden je nach Gerät
unterschiedlich sein.Da ein USB-Gerät als
SCSI-Gerät erkannt wird, kann
camcontrol benutzt werden, um die mit dem
System verbundenen USB-Massenspeicher
anzuzeigen:&prompt.root; camcontrol devlist
<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0)Alternativ kann usbconfig benutzt
werden, um die Geräte aufzulisten. Weitere Informationen zu
diesem Kommando finden Sie in &man.usbconfig.8;.&prompt.root; usbconfig
ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)Wenn das Gerät noch nicht formatiert ist, finden Sie in
Informationen, wie Sie
USB-Laufwerke formatieren und Partitionen
einrichten. Wenn das Laufwerk bereits ein Dateisystem
enthält, kann es von root nach den Anweisungen in
eingehängt werden.Aus Sicherheitsgründen sollten Sie Benutzern, denen Sie
nicht vertrauen, das Einhängen (z.B. durch die unten
beschriebene Aktivierung von vfs.usermount)
beliebiger Medien verbieten. Die meisten Dateisysteme
wurden nicht entwickelt, um sich vor böswilligen Geräten
zu schützen.Um auch normalen Anwendern das Einhängen des Laufwerks zu
gestatten, könnten Sie beispielsweise mit &man.pw.8; alle
potentiellen Benutzer dieser Gerätedateien in die Gruppe
operator aufnehmen.
Außerdem muss sichergestellt werden, dass operator
Schreib- und Lesezugriff auf diese Gerätedateien haben.
Hierfür werden die folgenden Zeilen in
/etc/devfs.rules hinzugefügt:[localrules=5]
add path 'da*' mode 0660 group operatorVerfügt das System über interne
SCSI-Laufwerke, so verändern Sie die
zweite Zeile wie folgt:add path 'da[3-9]*' mode 0660 group operatorDies wird die ersten drei
SCSI-Laufwerke (da0
bis da2) davon ausschließen, in die
Gruppe operator
aufgenommen zu werden. Ersetzen Sie 3
durch die Anzahl der SCSI-Laufwerke.
Weitere Informationen zu dieser Datei finden Sie in
&man.devfs.rules.5;.Aktivieren Sie nun die Regeln
in /etc/rc.conf:devfs_system_ruleset="localrules"Als nächstes müssen Sie das System anweisen, auch
normalen Benutzern das mounten von Dateisystemen zu erlauben,
indem Sie die folgende Zeile in
/etc/sysctl.conf hinzufügen:vfs.usermount=1Da diese Einstellung erst nach einem Neustart wirksam
wird, können Sie diese Variable mit sysctl
auch direkt setzen:&prompt.root; sysctl vfs.usermount=1
vfs.usermount: 0 -> 1Zuletzt müssen Sie noch ein Verzeichnis anlegen, in
das das USB-Laufwerk eingehängt werden
soll. Dieses Verzeichnis muss dem Benutzer gehören, der das
USB-Laufwerk in den Verzeichnisbaum
einhängen will. Dazu legen Sie als root ein
Unterverzeichnis
/mnt/username
an, wobei Sie username
durch den Login des jeweiligen Benutzers sowie
usergroup durch die primäre
Gruppe des Benutzers ersetzen:&prompt.root; mkdir /mnt/username
&prompt.root; chown username:usergroup /mnt/usernameWenn Sie nun beispielsweise einen
USB-Stick
anschließen, wird automatisch die Gerätedatei
/dev/da0s1 erzeugt. Ist das Gerät mit
einem FAT-Dateisystem formatiert, kann es
der Benutzer mit dem folgenden Befehl in den Verzeichnisbaum
einhängen:&prompt.user; mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/usernameBevor das Gerät entfernt werden kann,
muss es abgehängt werden:&prompt.root; umount /mnt/usernameNach Entfernen des Geräts stehen in den Systemmeldungen
Einträge, ähnlich der folgenden:umass0: at uhub3, port 2, addr 3 (disconnected)
da0 at umass-sim0 bus 0 scbus4 target 0 lun 0
da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached
(da0:umass-sim0:0:0:0): Periph destroyedErstellen und Verwenden
von CDsMikeMeyerBeigesteuert von CD-ROMsbrennenCDs besitzen einige Eigenschaften, die
sie von konventionellen Laufwerken unterscheiden. Sie wurden
so entworfen, dass sie ununterbrochen, ohne Verzögerungen
durch Kopfbewegungen zwischen den Spuren, gelesen werden
können. CDs besitzen Spuren, aber damit
ist der Teil Daten gemeint, der ununterbrochen gelesen wird,
und nicht eine physikalische Eigenschaft der
CD. Das ISO
9660-Dateisystem wurde entworfen, um mit diesen Unterschieden
umzugehen.ISO 9660DateisystemeISO 9660CD-BrennerATAPIDie &os; Ports-Sammlung bietet einige Werkzeuge zum
Brennen und Kopieren von Audio- und
Daten-CDs. Dieses Kapitel beschreibt die
Verwendung von mehreren Kommandozeilen-Werkzeugen. Wenn Sie
eine graphische Oberfläche zum Brennen von
CDs benutzen, können Sie
sysutils/xcdroast oder
sysutils/k3b installieren.Unterstützte GeräteMarcFonvielleBeigetragen von CD-BrennerATAPI/CAM TreiberDer GENERIC-Kernel enthält
Unterstützung für SCSI,
USB und ATAPI
CD Lesegeräte und Brenner. Wird ein
angepasster Kernel erstellt, unterscheiden sich die Optionen
für die Kernelkonfigurationsdatei je nach Art des
Geräts.Für einen SCSI-Brenner müssen
folgende Optionen vorhanden sein:device scbus # SCSI bus (required for ATA/SCSI)
device da # Direct Access (disks)
device pass # Passthrough device (direct ATA/SCSI access)
device cd # needed for CD and DVD burnersFür einen USB-Brenner müssen folgende
Optionen vorhanden sein:device scbus # SCSI bus (required for ATA/SCSI)
device da # Direct Access (disks)
device pass # Passthrough device (direct ATA/SCSI access)
device cd> # needed for CD and DVD burners
device uhci # provides USB 1.x support
device ohci # provides USB 1.x support
device ehci # provides USB 2.0 support
device xhci # provides USB 3.0 support
device usb # USB Bus (required)
device umass # Disks/Mass storage - Requires scbus and daFür einen ATAPI-Brenner müssen
folgende Optionen vorhanden sein:device ata # Legacy ATA/SATA controllers
device scbus # SCSI bus (required for ATA/SCSI)
device pass # Passthrough device (direct ATA/SCSI access)
device cd # needed for CD and DVD burnersUnter &os; Versionen kleiner 10.x wird auch diese
Option in der Kernelkonfigurationsdatei benötigt, falls
der Brenner ein ATAPI-Gerät ist:device atapicamAlternativ kann folgende Zeile in
/boot/loader.conf hinzugefügt werden,
um den Treiber beim Booten automatisch zu laden:atapicam_load="YES"Hierzu ist ein Neustart des Systems erforderlich, da
dieser Treiber nur beim Booten geladen werden kann.Mit dmesg können Sie prüfen, ob das
Gerät von &os; erkannt wurde. Unter &os; Versionen kleiner
10.x lautet der Gerätename acd0
anstelle von cd0.&prompt.user; dmesg | grep cd
cd0 at ahcich1 bus 0 scbus1 target 0 lun 0
cd0: <HL-DT-ST DVDRAM GU70N LT20> Removable CD-ROM SCSI-0 device
cd0: Serial Number M3OD3S34152
cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closedEine CD brennenUnter &os; kann cdrecord zum Brennen
von CDs benutzt werden. Dieses Programm
wird aus dem Port oder Paket
sysutils/cdrecordinstalliert.Obwohl cdrecord viele Optionen besitzt,
ist die grundlegende Benutzung sehr einfach. Geben Sie den
Namen der zu brennenden ISO-Datei an. Wenn das System über
mehrere Brenner verfügt, müssen Sie auch den Namen des
Gerätes angeben:
- &prompt.root; cdrecord dev=deviceimagefile.iso
+ &prompt.root; cdrecord dev=deviceimagefile.iso
- Der Knackpunkt in der Benutzung von
- cdrecord besteht darin, das richtige
- Argument zu zu finden. Benutzen Sie
- , das eine ähnliche Ausgabe
- wie die folgende produziert:
+ Benutzen Sie um den Gerätenamen
+ des Brenners zu bestimmen. Die Ausgabe könnte wie folgt
+ aussehen:CD-ROMbrennen&prompt.root; cdrecord -scanbus
-Cdrecord 1.9 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jörg Schilling
-Using libscg version 'schily-0.1'
+ProDVD-ProBD-Clone 3.00 (amd64-unknown-freebsd10.0) Copyright (C) 1995-2010 Jörg Schilling
+Using libscg version 'schily-0.9'
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 zum
- 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 ist. Einfachere Wege das
+ Benutzen Sie die drei durch Kommas separierten Zahlen, die
+ für den CD-Brenner angegeben sind, als
+ Argument für . Im Beispiel ist das
+ Yamaha-Gerät 1,5,0, so dass die passende
+ Eingabe ist. Einfachere Wege das
Argument anzugeben, sowie Informationen über Audiospuren und
- das Einstellen der Geschwindigkeit, sind in &man.cdrecord.1;
- beschrieben.
+ das Einstellen der Geschwindigkeit, sind in der Manualpage von
+ cdrecord beschrieben.Alternativ können Sie den folgenden Befehl ausführen, um
die Geräteadresse des Brenners zu ermitteln:&prompt.root; camcontrol devlist
<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0)Verwenden Sie die numerischen Werte für
scbus, target und
lun. Für dieses Beispiel wäre
1,0,0 als Gerätename zu verwenden.
- Ein ISO-Dateisystem erstellen
+ Daten auf ISO-Dateisystem
+ schreibenDie Datendateien müssen vorbereitet sein, bevor sie auf
eine CD gebrannt werden. In &os; wird
mkisofs vom Paket oder Port
sysutils/cdrtools installiert. Dieses
Programm kann aus einem &unix; Verzeichnisbaum ein
ISO 9660-Dateisystem erzeugen. Im
einfachsten Fall müssen Sie lediglich den Namen der zu
erzeugenden ISO-Datei und den Pfad zu den
Dateien angeben, die auf dem ISO
9660-Dateisystem platziert werden:&prompt.root; mkisofs -o imagefile.iso/path/to/tree
-
DateisystemeISO 9660
- Dieses Kommando erstellt
- imagefile.iso, 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.
+ Bei diesem Kommando werden die Dateinamen auf Namen
+ abgebildet, die den Restriktionen des ISO
+ 9660-Dateisystem entsprechen. Dateien, die diesem Standard
+ nicht entsprechen bleiben unberücksichtigt.
+
Dateisysteme
- HFS
-
-
- DateisystemeJoliet
- Es 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.
+ Es gibt einige Optionen, um die Beschränkungen dieses
+ Standards zu überwinden. Die unter &unix; Systemen üblichen
+ Rock-Ridge-Erweiterungen werden durch
+ aktiviert und aktiviert die von Microsoft
+ Systemen benutzten Joliet-Erweiterungen.
+
Für CDs, die nur auf &os;-Systemen verwendet werden
sollen, kann genutzt werden, um alle
Beschränkungen für Dateinamen aufzuheben. Zusammen mit
wird ein Abbild des Dateisystems,
- identisch zu angegebenen &os;-Dateibaum, erstellt, obwohl dies
- den ISO 9660 Standard verletzen kann.
+ identisch zu angegebenen &os;-Dateibaum erstellt, selbst wenn
+ dies den ISO 9660 Standard verletzt.
CD-ROMbootbare erstellen
+
Die 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
+ soll. In der Voreinstellung erzeugt
+ mkisofs ein ISO-Image im
+ Diskettenemulations-Modus. Dabei
muss das Image genau 1200, 1440 oder 2880 KB groß
- sein. Einige Bootloader, darunter der auf den &os;-Disks
- verwendete, kennen keinen Emulationsmodus. Daher sollten Sie
- in diesen Fällen verwenden.
+ sein. Einige Bootloader, darunter der auf den &os; Installationsmedien
+ verwendete, kennen keinen Emulationsmodus. Daher sollte
+ in diesen Fällen verwendet werden.
Wenn /tmp/myboot ein bootbares
&os;-System enthält, dessen Bootimage sich in
- /tmp/myboot/boot/cdboot befindet, können
- Sie ein Abbild eines ISO 9660-Dateisystems in
+ /tmp/myboot/boot/cdboot befindet, dann
+ würde folgendes Kommando
/tmp/bootable.iso erstellen:&prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot
- Wenn md im Kernel konfiguriert ist,
- kann das Dateisystem als speicherbasiertes Laufwerk
- eingehängt werden:
+ Das resultierende ISO-Abbild kann als
+ speicherbasiertes Laufwerk eingehängt werden:&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;
+ Sie können das Verhalten von mkisofs
mit einer Vielzahl von Optionen beeinflussen. Details dazu
entnehmen Sie bitte &man.mkisofs.8;.
+
+
+ Es ist möglich eine Daten-CD in eine
+ Datei zu kopieren, die einem Image entspricht, das mit
+ mkisofs erstellt wurde. Verwenden Sie
+ dazu dd mit dem Gerätenamen als
+ Eingabedatei und den Namen der ISO als
+ Ausgabedatei:
+
+ &prompt.root; dd if=/dev/cd0 of=file.iso bs=2048
+
+ Das resultierende Abbild kann auf eine
+ CD gebrannt werden, wie in beschrieben.
+ 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 -vall -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 wie in
ermittelt werden kann.ATAPI-LaufwerkeÜber das Modul
ATAPI/CAM kann
cdda2wav auch mit
ATAPI-Laufwerken
verwendet werden. Diese Methode ist für die meisten
Anwender besser geeignet als die im folgenden
beschriebenen Methoden (Jitter-Korrektur,
Big-/Little-Endian-Probleme und anderes mehr spielen
hierbei eine Rolle).Der
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 werden mit &man.dd.1; kopiert.
Achten Sie darauf, eine Blockgröße anzugeben:&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
cdrecord brennen. Geben Sie an, dass es
sich um Audio-Daten handelt und dass cdrecord
das Medium am Ende fixieren soll.
-
-
-
- Kopieren von Daten-CDs
-
- Es ist möglich eine Daten-CD in eine
- Datei zu 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. Wird ein anderes Laufwerk
- benutzt, muss der Name entsprechend ersetzt werden.
-
- &prompt.root; dd if=/dev/acd0 of=file.iso bs=2048
-
- Danach existiert ein Image, das wie oben beschrieben, auf
- CD gebrannt werden kann.Einhängen von Daten-CDsÜber den Gerätenamen /dev/cd0 kann
nun auf das Laufwerk zugegriffen werden. Um beispielsweise
eine CD-ROM in /mnt
einzuhängen, geben Sie folgendes ein:&prompt.root; mount -t cd9660 /dev/cd0 /mntEs ist möglich, eine Daten-CD zu
mounten und die Daten zu lesen. Standardmäßig erwartet
&man.mount.8; ein Dateisystem vom Typ ufs.
Wenn Sie das folgende Kommando ausführen:&prompt.root; mount /dev/cd0 /mnterhalten Sie die Fehlermeldung
Incorrect super block, und die
CD konnte nicht eingehängt werden. Die
CD benutzt nicht das
UFS-Dateisystem, deshalb schlägt der
Versuch fehl, sie als solches einzuhängen. Sie müssen
&man.mount.8; durch die Angabe von
sagen, dass es sich um ein Dateisystem vom Typ
ISO9660 handelt. 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/cd0 /mntErsetzen Sie /dev/cd0 durch den
Gerätenamen des CD-Gerätes. Die Angabe von
führt &man.mount.cd9660.8; aus,
was äquivalent zu folgendem Befehl ist:&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
ISO9660-Erweiterungen benutzen. So speichern
Joliet-CDs alle Dateinamen unter
Verwendung von zwei Byte langen Unicode-Zeichen. Zwar
unterstützt der &os;-Kernel derzeit noch kein Unicode, der
CD9660-Treiber erlaubt es aber, zur Laufzeit eine
Konvertierungstabelle zu laden. Tauchen
also statt bestimmter Zeichen nur Fragezeichen auf, so
müssen Sie über die Option den
benötigten Zeichensatz angeben. Weitere Informationen zu
diesem Problem finden Sie in der Manualpage
&man.mount.cd9660.8;.Damit der Kernel diese Zeichenkonvertierung (festgelegt
durch die Option ) erkennt, müssen Sie
das Kernelmodul cd9660_iconv.ko laden.
Dazu fügen Sie folgende Zeile in
loader.conf ein:cd9660_iconv_load="YES"Danach müssen Sie allerdings Ihr System neu starten.
Alternativ können Sie das Kernelmodul auch direkt
über &man.kldload.8; laden.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 die 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 CDsEs ist möglich eine Datei auch direkt auf eine
CD zu 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.Um die Daten einer solchen CD
abzurufen, müssen die Daten direkt von dem rohen Gerät gelesen
werden:&prompt.root; tar xzvf /dev/acd1Eine auf diese Weise gefertigte CD kann
nicht in das Dateisystem eingehangen werden. Sie kann auch
nicht auf einem anderen Betriebssystem gelesen werden. 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.DVDs benutzenMarcFonvieilleBeigetragen von AndyPolyakovMit Beiträgen von DVDbrennenNach 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 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 ein
wiederbeschreibbares Format, das wie ein Wechsellaufwerk
betrachtet werden kann. Allerdings sind die Medien nicht
kompatibel zu den meisten
DVD-ROM-Laufwerken und
DVD-Video-Spielern, da das
DVD-RAM-Format nur von wenigen Brennern
unterstützt wird. Informationen zur Nutzung von
DVD-RAM finden Sie in
.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,
beispielsweise 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 mit dem Medium umgehen können.KonfigurationBenutzen Sie &man.growisofs.1;, um DVDs
zu beschreiben. Das Kommando ist Bestandteil von
sysutils/dvd+rw-tools, und kann mit allen
DVD-Medien umgehen.Diese Werkzeuge verwenden das
SCSI-Subsystem, um auf die Geräte
zuzugreifen. Daher muss ATAPI/CAM-Unterstützung
geladen, oder statisch in den Kernel kompiliert werden.
Sollte der Brenner jedoch die
USB-Schnittstelle nutzen, wird diese
Unterstützung nicht benötigt. Weitere Informationen zur
Konfiguration von USB-Geräten finden Sie in
.Für ATAPI-Geräte müssen ebenfalls
DMA-Zugriffe aktiviert werden. Dazu wird die folgende Zeile
in /boot/loader.conf eingefügt:hw.ata.atapi_dma="1"Bevor Sie dvd+rw-tools
benutzen, lesen Sie bitte die
Hardware-Informationen auf der Seite Hardware
Compatibility Notes.Für eine grafische Oberfläche sollten Sie sich
sysutils/k3b ansehen, das eine
benutzerfreundliche Schnittstelle zu &man.growisofs.1; und
vielen anderen Werkzeugen bietet.Daten-DVDs brennen&man.growisofs.1; erstellt mit dem Programm
mkisofs das Dateisystem
und brennt anschließend die DVD. Vor dem
Brennen braucht daher kein Abbild der Daten erstellt zu
werden.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/dataIn diesem Beispiel wird an
&man.mkisofs.8; durchgereicht und dient 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 Single- oder Multisession benötigt. Ersetzen
Sie /dev/cd0 mit dem Gerätenamen
des DVD-Gerätes. Die Nutzung von
schließt das Medium, weitere
Daten können danach nicht mehr angehängt werden. Dies sollte
auch eine eine bessere Kompatibilität mit anderen
DVD-ROM-Laufwerken bieten.Um ein vorher erstelltes Abbild der Daten zu brennen,
beispielsweise imagefile.iso,
verwenden Sie:&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. Um die
Schreibgeschwindigkeit vorzugeben, verwenden Sie
. Beispiele finden Sie in
&man.growisofs.1;.Um größere Dateien als 4.38GB zu unterstützen, ist es
notwendig ein UDF/ISO-9660 Hybrid-Dateisystem zu erstellen.
Dieses Dateisystem muss mit zusätzlichen Parametern
bei &man.mkisofs.8; und
allen relevanten Programmen, wie beispielsweise
&man.growisofs.1;) erzeugt werden. Dies ist nur notwendig,
wenn Sie ein ISO-Image erstellen oder direkt auf eine DVD
schreiben wollen. DVDs, die in dieser Weise hergestellt
worden sind, müssen als UDF-Dateisystem mit
&man.mount.udf.8; eingehangen werden. Sie sind nur auf
Betriebssystemen, die UDF unterstützen brauchbar, ansonsten
sieht es so aus, als ob sie kaputte Dateien enthalten
würden.Um diese Art von ISO-Datei zu erstellen:&prompt.user; mkisofs -R -J -udf -iso-level 3 -o imagefile.iso/path/to/dataUm Daten direkt auf eine DVD zu brennen, geben Sie den
folgenden Befehl ein:&prompt.root; growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/dataWenn ein ISO-Abbild bereits große Dateien enthält, sind
keine weiteren Optionen für &man.growisofs.1; notwendig, um
das Abbild auf die DVD zu brennen.Achten Sie darauf, eine aktuelle Version von
sysutils/cdrtools zu verwenden, welche
&man.mkisofs.8; enthält, da ältere Versionen keinen Support
für große Dateien enthalten. Falls die neueste Version
nicht funktioniert, installieren Sie
sysutils/cdrtools-devel und lesen Sie
&man.mkisofs.8;.DVD-Videos brennenDVDDVD-VideoEin DVD-Video ist eine spezielle Anordnung von Dateien,
die auf den ISO-9660 und den micro-UDF (M-UDF) Spezifikationen
beruht. Da DVD-Video auf eine bestimmte Datei-Hierarchie
angewiesen ist, müssen DVDs mit speziellen
Programmen wie multimedia/dvdauthor
erstellt werden.Ist bereits ein Abbild des Dateisystems eines
DVD-Videos vorhanden, kann es auf die gleiche Weise wie jedes
andere Abbild gebrannt werden. Wenn
dvdauthor verwendet wurde, um die
DVD zu erstellen und die Resultate in
/path/to/video liegen, kann das folgende
Kommando verwendet werden, um ein DVD-Video zu brennen:&prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/video wird an &man.mkisofs.8;
weitergereicht, um die Datei-Hierarchie für ein DVD-Video zu
erstellen. Weiterhin bewirkt diese Option, dass
&man.growisofs.1; mit aufgerufen
wird.DVD+RW-Medien benutzenDVDDVD+RWIm Gegensatz zu CD-RW-Medien müssen
DVD+RW-Medien
erst formatiert werden, bevor sie benutzt werden können.
Es wird empfohlen &man.growisofs.1;
einzusetzen, da das Programm Medien automatisch formatiert,
wenn es erforderlich ist. Es ist jedoch möglich, auch
dvd+rw-format zu nutzen, um die
DVD+RW zu formatieren:&prompt.root; dvd+rw-format /dev/cd0Dieser Vorgang muss nur einmal durchgeführt werden. Denken
Sie daran, dass nur neue DVD+RWs formatiert werden müssen.
Anschließend können DVD+RWs, wie gewohnt
gebrannt werden.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/newdataDas DVD+RW-Format erlaubt es, 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.Verwenden Sie , um bessere
Kompatibilität mit DVD-ROM-Laufwerken zu
gewährleisten. Zu einem DVD+RW-Medium
können Sie mit dieser Option auch weiterhin Daten
hinzufügen.Um das Medium zu löschen, verwenden Sie:&prompt.root; growisofs -Z /dev/cd0=/dev/zeroDVD-RW-Medien benutzenDVDDVD-RWEine 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 mit
dauert mit einem
1x Medium ungefähr eine Stunde. Wenn die
DVD-RW im Disk-At-Once-Modus (DAO)
aufgenommen wurde, kann sie mit
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 automatisch 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 wiefür die anderen
DVD-Formate:&prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/dataUm weitere Daten zu einer Aufnahme hinzuzufügen, benutzen
Sie mit &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. Das Medium kann einfach mit
überschrieben werden. Mit
kann das ISO-9660-Dateisystem, wie mit
einer DVD+RW, vergrößert werden.
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
unterstützen Multi-Session-DVDs und lesen meist 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 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 dieses Kommando 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. Nutzen Sie diese Methode, um
neue Daten zu einer bestehenden Session hinzuzufügen.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ührendesdvd+rw-mediainfo
/dev/cd0 zeigt
Informationen über eine im Laufwerk liegende
DVD an.Weiteres zu dvd+rw-tools
finden Sie in &man.growisofs.1;, auf der dvd+rw-tools
Web-Seite und in den Archiven der cdwrite-Mailingliste.Wenn Sie einen Problembericht zur Nutzung der
dvd+rw-tools erstellen, fügen Sie
immer die Ausgabe von dvd+rw-mediainfo
hinzu.DVD-RAMDVDDVD-RAMDVD-RAM-fähige Brenner nutzten die
SCSI- oder
ATAPI-Schnittstelle. Für
ATAPI-Geräte muss der DMA-Modus
aktiviert werden, indem die folgende Zeile in
/boot/loader.conf hinzugefügt
wird:hw.ata.atapi_dma="1"Eine DVD-RAM kann mit einer
Wechselplatte verglichen werden. Wie diese, muss auch eine
DVD-RAM vor dem ersten
Einsatz formatiert werden. In diesem Beispiel wird das
gesamte Medium mit dem Standard-UFS2-Dateisystem
formatiert:&prompt.root; dd if=/dev/zero of=/dev/acd0 bs=2k count=1
&prompt.root; bsdlabel -Bw acd0
&prompt.root; newfs /dev/acd0Denken Sie dabei daran, dass Sie gegebenenfalls die
Gerätedatei (hier acd0) an
Ihre Konfiguration anpassen müssen.Nachdem die DVD-RAM formatiert ist,
kann sie wie eine normale Festplatte gemountet
werden:&prompt.root; mount /dev/acd0/mntDanach kann schreibend und lesend auf das
DVD-RAM Medium zugegriffen werden.Disketten benutzenDieser Abschnitt beschreibt die Formatierung von
3,5 Zoll Disketten in &os;.Disketten formatierenBevor 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. Benutzen Sie &man.fdformat.1;, um Disketten
unter &os; zu formatieren. Achten Sie dabei auf
Fehlermeldungen, die schlechte Speichermedien
anzeigen.Um eine Diskette zu formatieren, legen Sie eine
3,5 Zoll Diskette in das erste Diskettenlaufwerk ein
und führen das folgende Kommando aus:&prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0Nach dem Formatieren muss auf der Diskette ein
Disklabel erstellt werden, um die Größe und Geometrie der
Diskette zu erkennen. Eine Liste der unterstützten
Geometrien finden Sie in
/etc/disktab.Erstellen Sie nun das Label mit &man.bsdlabel.8;:&prompt.root; /sbin/bsdlabel -B -w /dev/fd0 fd1440Auf der Diskette kann nun ein Dateisystem erstellt
werden (high-level Formatierung). Das Dateisystem der
Diskette kann entweder UFS oder FAT sein, wobei FAT für
Disketten in der Regel die bessere Wahl ist.Um die Diskette mit FAT zu formatieren, geben Sie
folgendes Kommando ein:&prompt.root; /sbin/newfs_msdos /dev/fd0Die Diskette kann nun benutzt werden. Um die Diskette
zu verwenden, kann sie mit &man.mount.msdosfs.8; eingehängt
werden. Man kann auch emulators/mtools aus
der Ports-Sammlung installieren, um mit der Diskette zu
arbeiten.DatensicherungDie Planung und Umsetzung einer Backup-Strategie ist
unerlässlich, um Daten in bestimmten Situationen
wiederherstellen zu können, zum Beispiel bei Plattendefekten,
versehentlichem Löschen von Dateien, willkürlicher Korrumpierung
von Dateien oder der vollständigen Zerstörung des Systems und
der Backups, die am gleichen Ort aufbewahrt werden.Die Art und der Zeitplan des Backups kann variieren,
abhängig von der Wichtigkeit der Daten, der benötigten
Granularität zur Wiederherstellung von Dateien und der
Dauer einer akzeptablen Ausfallzeit. Zu den möglichen
Backup-Strategien gehören unter anderem:Die Archivierung des kompletten Systems auf externen
Datenträgern. Dieser Ansatz schützt zwar vor allen oben
aufgeführten Problemen, ist aber zeitaufwändig und unbequem
bei der Wiederherstellung, insbesondere für nicht
privilegierte Benutzer.Dateisystem-Snapshots sind nützlich bei der
Wiederherstellung von gelöschten Dateien, bzw. früheren
Versionen von Dateien.Kopien ganzer Dateisysteme oder Festplatten, die mit
einem anderen System im Netzwerk mittels
net/rsync synchronisiert werden.Hardware oder Software RAID, was im
Falle von Plattendefekten die Ausfallzeit minimiert oder
vermeidet.Üblicherweise wird eine Mischung aus verschiedenen
Strategien verwendet. Es kann zum Beispiel ein Sicherungsplan
erstellt und automatisiert werden, um eine wöchentliche,
vollständige Systemsicherung, ergänzt mit stündlichen
ZFS-Snapshots, zu erstellen. Darüber hinaus könnte man
eine manuelle Sicherung einzelner Verzeichnisse oder Dateien
machen, bevor diese bearbeitet oder gelöscht werden.Dieser Abschnitt beschreibt einige Programme, die zur
Erstellung und Verwaltung von Sicherungen unter &os; verwendet
werden können.Sicherung von DateisystemenBackup-Softwaredump / restoredumprestoreDie traditionellen &unix;-Programme zum Sichern und
Wiederherstellen von Dateisystemen sind &man.dump.8; und
&man.restore.8;. Diese Programme arbeiten auf der Block-Ebene
der Festplatte, also unterhalb des Abstraktionslevels von
Dateien, Links und Verzeichnissen, die die Grundlage des
Dateisystemkonzepts bilden. Im Gegensatz zu anderen
Backup-Programmen sichert dump ein ganzes
Dateisystem und nicht nur einen Teil des Dateisystems, oder
einen Verzeichnisbaum, der mehr als ein Dateisystem umfasst.
Anstatt Dateien oder Verzeichnisse zu schreiben, schreibt
dump die Blöcke, aus denen die Dateien und
Verzeichnisse bestehen.Wird dump benutzt, um das
Root-Verzeichnis zu 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.Wenn restore zum Extrahieren von Daten
verwendet wird, werden temporäre Dateien standardmäßig in
/tmp abgelegt. Wenn Sie von einer Platte
mit einem kleinen /tmp-Verzeichnis
zurücksichern, setzen Sie die Umgebungsvariable
TMPDIR auf ein Verzeichnis mit mehr freiem
Speicherplatz, damit die Wiederherstellung gelingt.Beachten Sie bei der Verwendung von
dump, dass es einige Eigenarten aus den
frühen Tagen der Version 6 von AT&T &unix; (ca. 1975)
beibehalten hat. Die Standardparameter gehen davon aus, dass
auf einem 9-Spur-Band gesichert wird, und nicht auf ein
anderes Medium oder auf Sicherungsbänder mit hoher Dichte.
Diese Standardwerte müssen auf der Kommandozeile überschrieben
werden..rhostsEs ist möglich, das Dateisystem über das Netzwerk auf
einem anderen Rechner zu sichern, oder auf einem Bandlaufwerk
eines anderen Rechners. Obwohl die Programme &man.rdump.8;
und &man.rrestore.8; für diese Zwecke benutzt werden können,
gelten sie als nicht sicher.Verwenden Sie stattdessen dump und
restore in einer sichereren Weise über eine
SSH-Verbindung. In diesem Beispiel wird
eine vollständige, komprimierte Sicherung des
/usr Dateisystems erstellt, das
anschließend an einen bestimmten Host über eine
SSH-Verbindung gesendet wird.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.gzIn diesem Beispiel wird RSH gesetzt, um
über eine SSH-Verbindung eine Sicherung auf
ein Bandlaufwerk eines entfernten Systems zu schreiben:dump über ssh
mit gesetzter RSH benutzen&prompt.root; env RSH=/usr/bin/ssh /sbin/dump -0uan -f tatargetuser@targetmachine.example.com:/dev/sa0 /usrSicherung von VerzeichnissenBackup-SoftwaretarEinige integrierte Werkzeuge stehen zur Sicherung
und Wiederherstellung von bestimmten Dateien und
Verzeichnissen bei Bedarf zur Verfügung.Wenn es um die Sicherung von Dateien in einem Verzeichnis
geht, ist &man.tar.1; eine gute Wahl. Dieses Werkzeug stammt
aus Version 6 von AT&T &unix; und erwartet standardmäßig
eine rekursive Sicherung auf ein lokales Band. Es können
jedoch Optionen angegeben werden, um den Namen einer
Sicherungsdatei zu bestimmen.tarIn diesem Beispiel wird eine komprimierte Sicherung des
aktuellen Verzeichnisses nach
/tmp/mybackup.tgz gespeichert. Achten
Sie bei der Sicherungsdatei darauf, dass sie nicht in dem
Verzeichnis gepeichert wird, welches gesichert werden
soll.Das aktuelle Verzeichnis mit tar
sichern&prompt.root; tar czvf /tmp/mybackup.tgz .Um eine komplette Sicherung wiederherzustellen, wechseln
Sie mit cd in das Verzeichnis, in dem Sie
die Daten wiederherstellen möchten und geben Sie den Namen der
Sicherungsdatei an. Beachten Sie, dass dabei alle Dateien in
dem Verzeichnis überschrieben werden. Im Zweifel sichern Sie
besser in einem temporären Verzeichnis, oder geben Sie den
Verzeichnisnamen bei der Wiederherstellung an.Wiederherstellung mit tar in das
aktuelle Verzeichnis&prompt.root; tar xzvf /tmp/mybackup.tgzEs gibt dutzende Optionen, die in &man.tar.1; beschrieben
werden. Das Programm unterstützt auch die Verwendung von
Ausschlußmustern, um bestimmte Dateien von der Sicherung oder
Wiederherstellung von Verzeichnissen auszuschließen.Backup-SoftwarecpioUm bestimmte, aufgelistete Dateien und Verzeichnisse zu
sichern, ist &man.cpio.1; eine gute Wahl. Im Gegensatz zu
tar weiß cpio nicht
wie ein Verzeichnisbaum durchlaufen wird. Daher ist es auf
eine Liste von zu sichernden Dateien angewiesen.So kann beispielsweise eine Liste von Dateien mit
ls oder find erzeugt
werden. Dieses Beispiel erstellt eine rekursive Liste des
aktuellen Verzeichnisses, die dann über eine Pipe an
cpio übergeben wird, um eine Sicherung
namens /tmp/mybackup.cpio zu
erstellen.Rekursive Sicherung des aktuellen Verzeichnisses mit
ls und cpio&prompt.root; ls -R | cpio -ovF /tmp/mybackup.cpioBackup-SoftwarepaxpaxPOSIXIEEE&man.pax.1; ist ein Programm, welches versucht die
Funktionen von tar und
cpio zu kombinieren. Über die Jahre
hinweg sind die verschiedenen Versionen von
tar und cpio leicht
inkompatibel geworden. Daher hat &posix;
pax geschaffen, welches versucht viele
der unterschiedlichen cpio- und
tar-Formate zu lesen und zu schreiben,
außerdem einige neue, eigene Formate.Für die vorangegangenen Beispiele wäre ein äquivalenter
Aufruf von pax:Das aktuelle Verzeichnis mit pax
sichern&prompt.root; pax -wf /tmp/mybackup.pax .Bandmedien benutzenBandmedienObwohl sich Bandmedien mit der Zeit weiterentwickelt
haben, verwenden moderne Backup-Systeme in der Regel
Offsite-Backups in Verbindung
mit lokalen Wechseldatenträgern. &os; unterstützt alle
SCSI-Bandlaufwerke, wie etwa
LTO und DAT. Zusätzlich
gibt es begrenzte Unterstützung für SATA-
und USB-Bandlaufwerke.Für SCSI-Bandlaufwerke nutzt &os; den
&man.sa.4; Treiber, der die Schnittstellen
/dev/sa0, /dev/nsa0
und /dev/esa0 bereitstellt. Der Name des
physikalischen Geräts ist /dev/sa0.
Wird /dev/nsa0 benutzt, dann wird die
Backup-Anwendung nach dem Schreibvorgang das Band nicht
zurückspulen, was es ermöglicht, mehr als eine Datei auf das
Band zu schreiben. Die Verwendung von
/dev/esa0 wirft das Band aus, nachdem das
Gerät geschlossen wurde.&os; nutzt mt für die Steuerung der
Operationen des Bandlaufwerks, wie die Suche nach Dateien auf
einem Band, oder um Kontrollmarkierungen auf ein Band zu
schreiben. Beispielsweise können die ersten drei Dateien auf
einem Band erhalten bleiben, indem sie übersprungen werden,
bevor eine neue Datei auf das Band geschrieben wird&prompt.root; mt -f /dev/nsa0 fsf 3Dieses Werkzeug unterstützt viele Operationen. Weitere
Einzelheiten finden Sie in &man.mt.1;.Um eine Datei mit tar auf ein Band zu
schreiben, geben Sie den Namen des Bandlaufwerks und den
Dateinamen an:&prompt.root; tar cvf /dev/sa0 fileWiederherstellung von Dateien aus dem
tar-Archiv von Band in das aktuelle
Verzeichnis:&prompt.root; tar xvf /dev/sa0Benutzen Sie dump, um ein
UFSDateisystem zu sichern. Dieses Beispiel
sichert /usr, ohne danach das Band
zurückzuspulen:&prompt.root; dump -0aL -b64 -f /dev/nsa0 /usrInteraktive Wiederherstellung von Dateien aus einer
&man.dump.8;-Datei von Band in das aktuelle
Verzeichnis:&prompt.root; restore -i -f /dev/nsa0Backup-Software von DrittanbieternBackup-SoftwareDie &os; Ports-Sammlung enthält viele Programme von
Drittanbietern, die verwendet werden können um die zeitliche
Erstellung von Sicherungen zu planen, zu vereinfachen und
bequemer zu machen. Viele dieser Programme basieren auf dem
Client-Server-Modell und können benutzt werden, um die
Sicherung von einzelnen Systemen oder allen Rechnern in einem
Netzwerk zu automatisieren.Zu den bekannten Programmen gehören
Amanda,
Bacula,
rsync und
duplicity.Die Wiederherstellung in einem NotfallZusätzlich zu den regelmäßigen Sicherungen empfiehlt es
sich, die folgenden Schritte im Rahmen eines Notfallplans
durchzuführen.bsdlabelErstellen Sie einen Ausdruck der Ausgabe
der folgenden Kommandos:gpart showmore /etc/fstabdmesgLive-CDBewahren Sie diesen Ausdruck und eine Kopie des
Installationsmediums an einem sicheren Ort auf. Im Falle
einer Wiederherstellung im Notfall, starten Sie von dem
Installationsmedium und wählen Sie
Live CD, um eine Rettungs-Shell zu
starten. Dieser Rettungmodus kann verwendet werden, um den
aktuellen Stand des Systems anzuzeigen, und wenn nötig,
Festplatten zu formatieren und Daten aus den Sicherungen
wiederherzustellen.Das Installationsmedium für
&os;/&arch.i386; &rel2.current;-RELEASE enthält
keine Rettungs-Shell. Laden Sie für diese Version ein
Abbild der Livefs CD von ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/ISO
IMAGES/&rel2.current;/&os;-&rel2.current;-RELEASE-&arch.i386;-livefs.iso.Als nächstes testen Sie die Rettungs-Shell und die
Sicherungen. Dokumentieren Sie diesen Ablauf. Bewahren
Sie diese Notizen zusammen mit den Medien, den Ausdrucken
und den Sicherungen auf. Diese Notizen können Ihnen im
Notfall helfen eine versehentliche Zerstörung der
Sicherungen zu verhindern, während Sie unter Stress eine
Wiederherstellung durchführen.Als zusätzliche Sicherheitsvorkehrung kann jeweils
die letzte Sicherung an einem entfernten Standort
aufbewahrt werden. Dieser Standort sollte räumlich von
den Computern und Festplatten durch eine erhebliche
Entfernung getrennt sein.Netzwerk-, speicher- und dateibasierte DateisystemeMarcFonvieilleVerbessert und neu strukturiert von LaufwerkevirtuelleNeben physikalischen Laufwerken, wie Disketten,
CDs und Festplatten, unterstützt &os;
auch virtuelle Laufwerke.NFSLaufwerkespeicherbasierteLaufwerkeRAM-DisksDazu zählen Netzwerkdateisysteme wie
Network Filesystem, sowie
speicher- und dateibasierte Dateisysteme.Abhängig von der verwendeten &os; Version werden
speicher- und dateibasierte Dateisysteme mit unterschiedlichen
Werkzeugen angelegt.Gerätedateien werden unter &os; automatisch
von &man.devfs.5; angelegt.Dateibasierte Laufwerke unter FreeBSDLaufwerkedateibasierteUnter &os; werden virtuelle Laufwerke, &man.md.4;,
mit &man.mdconfig.8; erzeugt. Dazu muss das Modul
&man.md.4; geladen sein. Bei der Verwendung einer eigenen
Kernelkonfiguration, muss diese Zeile enthalten sein:device md&man.mdconfig.8; unterstützt verschiedene Arten von
speicherbasierten virtuellen Laufwerken: speicherbasierte
Laufwerke, deren Speicher von &man.malloc.9; zur Verfügung
gestellt wird, und 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
CDs.Das Abbild eines Dateisystems wird wie folgt
eingehangen:Einhängen eines existierenden Abbildes unter
&os;&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; bsdlabel -w md0 auto
&prompt.root; newfs md0a
/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
super-block backups (for fsck -b #) at:
160, 2720, 5280, 7840
&prompt.root; mount /dev/md0a /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0a 4710 4 4330 0% /mntWenn keine Gerätenummer mit angegeben
ist, 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 finden Sie
in &man.mdconfig.8;.Obwohl &man.mdconfig.8; sehr nützlich ist, benötigt es
einige Kommandos, um ein dateibasiertes Dateisystem zu
erstellen. &os; enthält auch &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 UFS-Dateisystem und
hängt es anschließend mit &man.mount.8; ein. Das virtuelle
Laufwerk aus dem obigen Beispiel kann 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 4718 4 4338 0% /mntWenn ohne Gerätenummer verwendet wird,
wählt &man.md.4; automatisch ein ungenutztes
Gerät aus. Weitere Einzelheiten entnehmen Sie bitte der
Hilfeseite &man.mdmfs.8;.Speicherbasierte Laufwerke unter FreeBSDLaufwerkespeicherbasierteBei einem speicherbasierten Dateisystem sollte
swap backing aktiviert werden. Das heißt
allerdings nicht, dass das speicherbasierte Laufwerk
automatisch auf die Festplatte ausgelagert wird, vielmehr
wird der Speicherplatz danach aus einem Speicherpool
angefordert, der bei Bedarf auf die Platte ausgelagert werden
kann. Zusätzlich ist es möglich, &man.malloc.9;-gestützte
speicherbasierte Laufwerke zu erstellen. Das Anlegen solcher
Laufwerke kann allerdings zu einer System-Panic führen, wenn
der Kernel danach über zu wenig Speicher verfügt.Erstellen eines speicherbasierten Laufwerks mit
mdconfig&prompt.root; mdconfig -a -t swap -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, 192 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 2752, 5344, 7936
&prompt.root; mount /dev/md1/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md1 4718 4 4338 0% /mntErstellen eines speicherbasierten Laufwerks mit
mdmfs&prompt.root; mdmfs -s 5m md2/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md2 4846 2 4458 0% /mntVirtuelle Laufwerke freigebenLaufwerkeFreigabe von virtuellen LaufwerkenWenn ein virtuelles Laufwerk nicht mehr in Gebrauch ist,
sollten seine belegten Ressourcen an das System zurückgegeben
werden. Zuerst wird das Dateisystem abgehängt und dann die
benutzten Ressourcen mit &man.mdconfig.8; freigegeben.Alle von /dev/md4 belegten Ressourcen
werden mit dem nachstehenden Kommando freigegeben:&prompt.root; mdconfig -d -u 4Informationen zu eingerichteten &man.md.4;-Geräten werden
mit mdconfig -l angezeigt.Schnappschüsse von DateisystemenTomRhodesBeigetragen von Schnappschüssevon DateisystemenZusammen mit
Soft Updates bietet &os;
eine weitere Funktion: Schnappschüsse von Dateisystemen.UFS-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 ein Schnappschuss nicht mehr benötigt wird, kann er
mit &man.rm.1; gelöscht werden. 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 /varAlternativ kann der Schnappschuss auch mit
&man.mksnap.ffs.8; erstellt werden.&prompt.root; mksnap_ffs /var /var/snapshot/snapUm Schnappschüsse auf einem Dateisystem, beispielsweise
/var zu finden, kann man &man.find.1;
verwenden:&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.Die Intigrität des Schnappschusses kann mit &man.fsck.8;
geprüft werden. 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 /mntDer eingefrorene Stand des
/var-Dateisystems ist nun unterhalb von
/mnt verfügbar. 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. Der Schnappschuss kann wie folgt abgehängt
werden:&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.Disk QuotasAccountingPlattenplatzDisk QuotasDisk Quotas erlauben dem Administrator, den Plattenplatz
und/oder die Anzahl der Dateien eines Benutzers oder der
Mitglieder einer Gruppe, auf Dateisystemebene zu beschränken.
Dadurch wird verhindert, dass ein Benutzer oder eine Gruppe von
Benutzern den ganzen verfügbaren Plattenplatz belegt.Dieser Abschnitt beschreibt die Konfiguration von Disk
Quotas für UFS-Dateisysteme. Lesen Sie
, wenn Sie Disk Quotas auf einem
ZFS-Dateisystem einrichten möchten.Disk Quotas aktivierenPrüfen Sie zunächst, ob der &os;-Kernel Disk Quotas
unterstützt:&prompt.user; sysctl kern.features.ufs_quota
kern.features.ufs_quota: 1In diesem Beispiel zeigt die 1 an, das
Quotas unterstützt werden. Falls 0
ausgegeben wird, fügen Sie folgende Zeile in die
Kernelkonfigurationsdatei ein, und folgen Sie den Anweisungen
in um den Kernel zu
aktualisieren:options QUOTAAls nächstes aktivieren Sie Disk Quotas in
/etc/rc.conf:quota_enable="YES"Disk QuotasüberprüfenNormalerweise wird beim Booten die Integrität der Quotas
auf allen Dateisystemen mit &man.quotacheck.8;
überprüft. Dieses Programm stellt sicher, dass die
Quota-Datenbank mit den Daten auf einem Dateisystem
übereinstimmt. Dies ist allerdings ein zeitraubender Prozess,
der die Zeit, die das System zum Booten braucht, signifikant
beeinflusst. Eine Variable in
/etc/rc.config erlaubt es, diesen Schritt
zu überspringen:check_quotas="NO"Zuletzt muss noch /etc/fstab
bearbeitet werden, um die Plattenquotas auf Dateisystemebene
zu aktivieren. Um Quotas pro Benutzer für ein Dateisystem zu
aktivieren, geben Sie für dieses Dateisystem
im Feld Optionen von
/etc/fstab an. Zum Beispiel:/dev/da1s2g /home ufs rw,userquota 1 2Um Quotas für Gruppen einzurichten, verwenden
Sie . Um Quotas für Benutzer
und Gruppen einzurichten, trennen Sie die Optionen durch
Kommata:/dev/da1s2g /home ufs rw,userquota,groupquota 1 2Quota-Dateien werden standardmäßig im Rootverzeichnis
des Dateisystems unter quota.user und
quota.group abgelegt. Weitere
Informationen finden Sie in &man.fstab.5;. Es wird nicht
empfohlen, Quota-Dateien an anderen Stellen zu
speichern.Sobald die Konfiguration abgeschlossen ist, starten Sie
das System neu.
/etc/rc wird dann automatisch die
richtigen Kommandos aufrufen, um die Quota-Dateien für
alle in /etc/rc.conf definierten Quotas
anzulegen.Normalerweise brauchen die Kommandos
&man.quotacheck.8;, &man.quotaon.8; oder
&man.quotaoff.8; nicht händisch aufgerufen werden,
obwohl man die entsprechenden Seiten im
Manual lesen sollte, um sich mit ihnen vertraut
zu machen.Setzen von Quota-LimitsDisk QuotasLimitsStellen Sie sicher, dass Quotas auch tatsächlich
aktiviert sind:&prompt.root; quota -vFür jedes Dateisystem, auf dem Quotas aktiviert sind,
sollte eine Zeile mit der Plattenauslastung und den
aktuellen Quota-Limits zu sehen sein.Mit edquota können nun
Quota-Limits zugewiesen werden.Mehrere Möglichkeiten stehen zur Verfügung, um 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), der Anzahl der Dateien (Inode-Quotas) oder
einer Kombination von beiden basieren.
Jedes Limit 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.SoftlimitSoftlimits können 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.Im folgenden Beispiel wird das Quota des Benutzerkonto
test bearbeitet.
Wenn edquota aufgerufen wird,
wird der in EDITOR definierte Editor
aufgerufen, um die Quota-Limts zu konfigurieren. Der
Standard-Editor ist vi.&prompt.root; edquota -u test
Quotas 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,
sind zwei Zeilen zu sehen. Eine repräsentiert die
Block-Quotas und die andere die Inode-Quotas. Um ein Limit zu
modifizieren, ändern Sie einfach den angezeigten Wert. Um
beispielsweise das Blocklimit von /usr
auf ein Softlimit von 500 und ein Hardlimit
von 600 zu erhöhen, ändern Sie die Zeile
wie folgt:/usr: kbytes in use: 65, limits (soft = 500, hard = 600)Die neuen Limits sind wirksam, sobald der Editor verlassen
wird.Manchmal ist es wünschenswert, die Limits für eine Reihe
von Benutzern zu setzen. Dazu weisen Sie zunächst einem
Benutzer das gewünschte Quota-Limit zu. Anschließend benutzen
Sie , um das Quota auf einen bestimmten
Bereich von Benutzer-IDs (UID) zu
duplizieren. Der folgende Befehl dupliziert die Quota-Limits
auf die UIDs 10000 bis
19999:&prompt.root; edquota -p test 10000-19999Weitere Informationen finden Sie in
&man.edquota.8;.Überprüfen von Quota-Limits und PlattennutzungDisk QuotasüberprüfenUm 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.In der Ausgabe von &man.quota.1; werden Dateisysteme, auf
denen ein Benutzer keinen Platz verbraucht, nicht angezeigt,
auch wenn diesem Quotas zugewiesen wurden. Benutzen Sie
um solche Dateisysteme ebenfalls
anzuzeigen. 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 60grace periodIm 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.Quotas über NFSNFSQuotas werden von dem Quota-Subsystem auf dem
NFS-Server erzwungen. Der
&man.rpc.rquotad.8; Daemon stellt quota die
Quota Informationen auf dem NFS-Client
zur Verfügung, so dass Benutzer auf diesen Systemen ihre
Quotas abfragen können.Sie aktivieren rpc.rquotad auf dem
NFS-Server, indem Sie das Zeichen
# auf folgender Zeile in
/etc/inetd.conf entfernen:rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotadAnschließend starten Sie inetd
neu:&prompt.root; service inetd restartPartitionen verschlüsselnLuckyGreenBeigetragen von shamrock@cypherpunks.toPartitionenverschlüsseln&os; 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 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
gbde&man.gbde.8; benutzt 128-Bit AES im
CBC-Modus, um die Daten eines Sektors zu
verschlüsseln. Jeder Sektor einer Festplatte wird mit einem
anderen AES-Schlüssel verschlüsselt.
Weitere Informationen zum kryptographischen Design und wie die
Schlüssel für einen Sektor aus der gegebenen Passphrase
ermittelt werden, finden Sie in &man.gbde.4;.&man.sysinstall.8; kann nicht mit verschlüsselten
gbde-Geräten umgehen. Vor
dem Start von &man.sysinstall.8; müssen alle
*.bde-Geräte deaktiviert werden, da
&man.sysinstall.8; sonst bei der Suche nach abstürzt. Das
im Beispiel verwendete Gerät wird mit dem folgenden Befehl
deaktiviert:&prompt.root; gbde detach /dev/ad4s1c&os; enthält ein Kernelmodul für
gbde, das wie folgt geladen werden
kann:&prompt.root; kldload geom_bdeWenn Sie einen angepassten Kernel verwenden, stellen Sie
sicher, dass folgende Zeile in der Kernelkonfigurationsdatei
enthalten ist:options GEOM_BDEDas folgende Beispiel beschreibt, wie eine Partition
auf einer neuen Festplatte verschlüsselt wird. Die
Partition 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 &os;-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.lock&man.gbde.8; öffnet eine Vorlage im Standard-Editor,
um verschiedene Optionen einstellen zu können.
Setzen Sie sector_size auf
2048, wenn Sie
UFS1 oder UFS2 benutzen.# $FreeBSD: src/sbin/gbde/template.txt,v 1.1.36.1 2009/08/03 08:13:06 kensmith 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 zweimal die Passphrase zum Schutz
der Daten ab. Die Passphrase muss beide Mal gleich
eingegeben werden. Die Sicherheit der Daten hängt allein
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.lock
angelegt. gbde-Lockdateien
müssen die Dateiendung .lock aufweisen,
damit sie von /etc/rc.d/gbde, dem
Startskript von gbde, erkannt
werden.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 nicht
&man.gbde.8; wird.Einbinden der verschlüsselten Partition
in den Kernel&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lockDieses Kommando fragt die Passphrase ab, die bei der
Initialisierung der verschlüsselten Partition eingegeben
wurde. Das neue verschlüsselte Gerät erscheint danach in
/dev als
/dev/device_name.bde:&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
anlegenNachdem die verschlüsselte Partition im Kernel
eingebunden ist, kann mit &man.newfs.8; ein Dateisystem
erstellt werden. Dieses Beispiel erstellt ein
UFS2-Dateisystem mit aktivierten Soft Updates.&prompt.root; newfs -U -O2 /dev/ad4s1c.bde&man.newfs.8; muss auf einer eingebundenen
gbde-Partition ausgeführt
werden, welche durch das Suffix
*.bde
identifiziert wird.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
DateisystemsDas 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/ad4s1c.lockDieses Kommando fragt nach der Passphrase, die
während der Initialisierung der verschlüsselten
gbde-Partition festgelegt
wurde.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.Mit 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.Alternativ existiert ein
rc.d-Skript, an das über
Einträge in &man.rc.conf.5; Argumente übergeben werden
können:gbde_autoattach_all="YES"
gbde_devices="ad4s1c"
gbde_lockdir="/etc/gbde"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
nützlich, wenn gbde auf
einem Laptop eingesetzt wird.Plattenverschlüsselung mit geliDanielGerzoBeigetragen von Mit geli ist eine alternative
kryptografische GEOM-Klasse verfügbar.
geli unterscheidet sich von
gbde durch unterschiedliche Fähigkeiten und
einen unterschiedlichen Ansatz für die Verschlüsselung.Die wichtigsten Merkmale von &man.geli.8; sind:Die Nutzung des &man.crypto.9;-Frameworks. Wenn das
System über kryptografische Hardware verfügt, wird diese
von geli automatisch verwendet.Die Unterstützung verschiedener kryptografischer
Algorithmen, wie beispielsweise AES, Blowfish, und
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 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 für Swap-Partitionen und
temporäre Dateisysteme interessant ist.Weitere Merkmale von
geli finden Sie in &man.geli.8;.Dieser Abschnitt beschreibt, wie geli
im &os;-Kernel aktiviert wird und wie ein
geli-Verschlüsselungs-Provider
angelegt wird.Da der Kernel angepasst werden muss, werden
root-Privilegien
benötigt.Aufnahme der geli-Unterstützung
in Ihre KernelkonfigurationsdateiStellen Sie bei einer angepassten
Kernelkonfigurationsdatei sicher, dass diese Zeile
enthalten ist:options GEOM_ELI
device cryptoAlternativ kann auch das
geli-Kernelmodul beim Systemstart
geladen werden, indem folgende Zeile in
/boot/loader.conf eingefügt
wird:geom_eli_load="YES"Ab sofort wird &man.geli.8; vom Kernel
unterstützt.Erzeugen des Master-KeysDas folgende Beispiel beschreibt, wie eine
Schlüsseldatei erzeugt wird, die als Teil des
Master-Keys für den Verschlüsselungs-Provider
verwendet wird, der unter /private
in den Verzeichnisbaum eingehängt wird. Die
Schlüsseldatei liefert zufällige Daten, die für die
Verschlüsselung des Master-Keys benutzt werden.
Zusätzlich wird der Master-Key durch eine Passphrase
geschützt. Die Sektorgröße des Providers beträgt
4 KB. Das Beispiel beschreibt, 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, wird eine
größere Sektorgröße, beispielsweise 4 KB,
empfohlen.Der Master-Key wird durch eine Passphrase sowie, den
Daten der Schlüsseldatei aus
/dev/random geschützt.
Die Sektorgröße des Providers
/dev/da2.eli
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
- angegeben, wird dafür die
Standardeingabe verwendet. Das folgende Beispiel zeigt,
dass auch mehr als eine Schlüsseldatei verwendet werden
kann:&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;.Der Einsatz des geli-
rc.d-Skriptsgeli verfügt über ein
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="-k /root/da2.key"Dies konfiguriert /dev/da2 als
geli-Provider mit dem Master-Key
/root/da2.key. Das System wird den
Provider automatisch deaktivieren, bevor es heruntergefahren
wird. Während des Startvorgangs fordert das Skript die
Passphrase an, bevor der Provider aktiviert wird. Vor und
nach der Eingabeaufforderung für die Passphrase werden noch
weitere Kernelmeldungen angezeigt. Achten Sie sorgfältig
auf die Eingabeaufforderung zwischen den anderen Meldungen,
falls es zu Problemen beim Startvorgang kommt. Sobald die
richtige Passphrase eingegeben wurde, wird der Provider
aktiviert. Anschließend werden die Dateisysteme gemäß
/etc/fstab eingehängt. Lesen Sie
wenn Sie wissen möchten,
wie Sie ein Dateisystem konfigurieren, sodass es beim
booten automatisch gestartet wird.Weitere Informationen zur Konfiguration der
rc.d-Skripten
finden Sie im Abschnitt rc.d des Handbuchs.Den Auslagerungsspeicher verschlüsselnChristianBrüfferGeschrieben von AuslagerungsspeicherverschlüsselnWie die Verschlüsselung von Partitionen, wird auch der
Auslagerungsspeicher verschlüsselt, um sensible Informationen
zu schützen. Stellen Sie sich eine Anwendung vor, die mit
Passwörtern umgeht. Solange sich diese Passwörter im
Arbeitsspeicher befinden, werden sie nicht auf die Festplatte
geschrieben und nach einem Neustart gelöscht. Falls &os; jedoch
damit beginnt Speicher auszulagern, um Platz für andere
Anwendungen zu schaffen, können die Passwörter unverschlüsselt
auf die Festplatte geschrieben werden. Die Verschlüsselung des
Auslagerungsspeichers kann in solchen Situationen Abhilfe
schaffen.Dieser Abschnitt zeigt die Konfiguration eines
verschlüsselten Auslagerungsspeichers mittels &man.gbde.8; oder
&man.geli.8;. In den Beispielen repräsentiert
/dev/ada0s1b die Swap-Partition.Konfiguration eines verschlüsselten
AuslagerungsspeichersSwap-Partitionen werden standardmäßig nicht verschlüsselt.
Sie sollten daher alle sensiblen Daten im Auslagerungsspeicher
löschen, bevor Sie fortfahren. Führen Sie folgenden Befehl aus,
um die Swap-Partition mit Zufallsdaten zu überschreiben:&prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1mUm den Auslagerungsspeicher mit &man.gbde.8; zu
verschlüsseln, fügen Sie in /etc/fstab
das Suffix .bde an den Gerätenamen der
Swap-Partition hinzu:# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.bde none swap sw 0 0Wenn Sie &man.geli.8; benutzen, verwenden Sie stattdessen
das Suffix .eli, um den
Auslagerungsspeicher zu verschlüsseln:# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.eli none swap sw 0 0In der Voreinstellung verschlüsselt &man.geli.8; mit
dem AES-Algorithmus und einer
Schlüssellänge von 128 Bit. Diese Voreinstellungen
können mittels geli_swap_flags in
/etc/rc.conf angepasst werden. Die
folgende Zeile weist das rc.d-Skript
encswap an, &man.geli.8;-Swap-Partitionen
mit dem Blowfish-Algorithmus und einer Schlüssellänge von
128 Bit zu verschlüsseln. Zusätzlich wird die
Sektorgröße auf 4 Kilobyte gesetzt und
detach on last close aktiviert:geli_swap_flags="-e blowfish -l 128 -s 4096 -d"Eine Auflistung möglicher Optionen für
onetime finden Sie in der Manualpage von
&man.geli.8;.Überprüfung des verschlüsselten
AuslagerungsspeichersNachdem das System neu gestartet wurde, kann die korrekte
Funktion des verschlüsselten Auslagerungsspeichers mit
swapinfo geprüft werden.Wenn Sie &man.gbde.8; einsetzen, erhalten Sie eine
Meldung ähnlich der folgenden:&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.bde 542720 0 542720 0%Wenn Sie &man.geli.8; einsetzen, erhalten Sie hingegen
eine Ausgabe ähnlich der folgenden:&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.eli 542720 0 542720 0%Highly Available Storage
(HAST)DanielGerzoBeigetragen von FreddieCashMit Beiträgen von Pawel JakubDawidekMichael W.LucasViktorPeterssonBenedictReuschlingÜbersetzt von HASThigh availabilityHochverfügbarkeit ist eine der Hauptanforderungen von
ernsthaften Geschäftsanwendungen und hochverfügbarer Speicher
ist eine Schlüsselkomponente in solchen Umgebungen. Highly
Available STorage (HAST) ist ein Framework
in &os;, welches die transparente Speicherung der gleichen
Daten über mehrere physikalisch getrennte Maschinen ermöglicht,
die über ein TCP/IP-Netzwerk verbunden sind.
HAST kann als ein netzbasiertes RAID1
(Spiegel) verstanden werden und ist dem DRBD®-Speichersystem
der GNU/&linux;-Plattform ähnlich. In Kombination mit anderen
Hochverfügbarkeitseigenschaften von &os; wie
CARP, ermöglicht es HAST,
hochverfügbare Speichercluster zu bauen, die in der Lage sind,
Hardwareausfällen zu widerstehen.Die Hauptmerkmale von HAST sind:Es kann zur Maskierung von
I/O-Fehlern auf lokalen Festplatten
eingesetzt werden.Dateisystem-unabhängig, was es erlaubt, jedes von &os;
unterstützte Dateisystem zu verwenden.Effiziente und schnelle Resynchronisation: es werden nur die
Blöcke synchronisiert, die während der Ausfallzeit eines
Knotens geändert wurden.Es kann in einer bereits bestehenden Umgebung eingesetzt
werden, um zusätzliche Redundanz zu erreichen.Zusammen mit CARP,
Heartbeat, oder anderen Werkzeugen, ist
es möglich, ein robustes und dauerhaftes Speichersystem zu
bauen.Nachdem Sie diesen Abschnitt gelesen haben, werden Sie
folgendes wissen:Was HAST ist, wie es funktioniert und
welche Eigenschaften es besitzt.Wie man HAST unter &os; aufsetzt und
verwendet.Wie man CARP und &man.devd.8;
kombiniert, um ein robustes Speichersystem zu bauen.Bevor Sie diesen Abschnitt lesen, sollten Sie:die Grundlagen von &unix; und &os; verstanden haben
().wissen, wie man Netzwerkschnittstellen und andere
Kernsysteme von &os; konfiguriert ().ein gutes Verständnis der &os;-Netzwerkfunktionalität
besitzen ().Das HAST-Projekt wurde von der &os;
Foundation mit Unterstützung der OMCnet Internet Service GmbH
und TransIP BV
gesponsert.HAST im EinsatzHAST bietet eine synchrone Replikation
auf Blockebene zwischen zwei Maschinen: einem
primary, auch bekannt als
master Knoten, sowie dem
secondary, oder slave
Knoten. Diese beiden Maschinen zusammen werden als Cluster
bezeichnet.Da HAST in einer
primär-sekundär-Konfiguration funktioniert, ist immer nur ein
Knoten des Clusters zu jeder Zeit aktiv. Der primäre Knoten,
auch active genannt, ist derjenige, der
alle I/O-Anfragen verarbeitet, die an die
HAST-Schnittstelle gesendet werden. Der
sekundäre Knoten wird automatisch vom primären Knoten aus
synchronisiert.Die physischen Komponenten des
HAST-Systems sind die lokale Platte am
Primärknoten und die entfernte Platte am
Sekundärknoten.HAST arbeitet synchron auf Blockebene,
was es für Dateisysteme und Anwendungen transparent macht.
HAST stellt gewöhnliche
GEOM-Provider in
/dev/hast/ für die Verwendung durch
andere Werkzeuge oder Anwendungen zur Verfügung. Es gibt
keinen Unterschied zwischen dem Einsatz von
HAST bereitgestellten Geräten und
herkömmlichen Platten oder Partitionen.Jede Schreib-, Lösch- oder Entleerungsoperation wird an
die lokale und über TCP/IP zu der entfernt
liegenden Platte gesendet. Jede Leseoperation wird von der
lokalen Platte durchgeführt, es sei denn, die lokale Platte
ist nicht aktuell oder es tritt ein
I/O-Fehler auf. In solchen Fällen wird die
Leseoperation an den Sekundärknoten geschickt.HAST versucht, eine schnelle
Fehlerbereinigung zu gewährleisten. Aus diesem Grund ist es
wichtig, die Synchronisationszeit nach dem Ausfall eines
Knotens zu reduzieren. Um eine schnelle Synchronisation zu
ermöglichen, verwaltet HAST eine Bitmap von
unsauberen Bereichen auf der Platte und synchronisiert nur
diese während einer regulären Synchronisation (mit Ausnahme
der initialen Synchronisation).Es gibt viele Wege, diese Synchronisation zu behandeln.
HAST implementiert mehrere Replikationsarten, um
unterschiedliche Methoden der Synchronisation zu realisieren:memsync: Dieser Modus meldet Schreiboperationen als
vollständig, wenn die lokale Schreiboperation beendet ist
und der entfernt liegende Knoten die Ankunft der Daten
bestätigt hat, jedoch bevor die Daten wirklich gespeichert
wurden. Die Daten werden auf dem entfernt liegenden Knoten
direkt nach dem Senden der Bestätigung gespeichert. Dieser
Modus ist dafür gedacht, Latenzen zu verringern und
zusätzlich eine gute Verlässlichkeit zu bieten.fullsync: Dieser Modus meldet
Schreiboperationen als vollständig, wenn sowohl die
lokale, als auch die entfernte Schreiboperation
abgeschlossen wurde. Dies ist der sicherste und
zugleich der langsamste Replikationsmodus. Er stellt
den momentanen Standardmodus dar.async: Dieser Modus meldet
Schreiboperationen als vollständig, wenn lokale
Schreibvorgänge abgeschlossen wurden. Dies ist der
schnellste und gefährlichste Replikationsmodus. Er
sollte nur verwendet werden, wenn die Latenz zu einem
entfernten Knoten bei einer Replikation zu hoch ist
für andere Modi.HAST-KonfigurationDas HAST-Framework besteht aus mehreren
Komponenten:Dem &man.hastd.8;-Daemon, welcher für
Datensynchronisation verantwortlich ist. Wenn dieser
Daemon gestartet wird, wird automatisch
geom_gate.ko geladen.Dem &man.hastctl.8; Management-Werkzeug.Der Konfigurationsdatei &man.hast.conf.5;. Diese
Datei muss vorhanden sein, bevor
hastd gestartet wird.Alternativ lässt sich die
GEOM_GATE-Unterstützung in den Kernel
statisch einbauen, indem folgende Zeile zur
Kernelkonfigurationsdatei hinzugefügt wird. Anschließend muss
der Kernel, wie in beschrieben,
neu gebaut werden:options GEOM_GATEDas folgende Beispiel beschreibt, wie man zwei Knoten als
master-slave / primary-secondary mittels
HAST konfiguriert, um Daten zwischen diesen
beiden auszutauschen. Die Knoten werden als
hasta mit der IP-Adresse
172.16.0.1 und hastb mit
der IP-Adresse
172.16.0.2 bezeichnet. Beide Knoten
besitzen eine dedizierte Festplatte
/dev/ad6 mit der gleichen Größe für den
HAST-Betrieb. Der
HAST-Pool, manchmal auch Ressource genannt,
oder der GEOM-Provider in
/dev/hast/ wird als
test bezeichnet.Die Konfiguration von HAST wird in
/etc/hast.conf vorgenommen. Diese Datei
sollte auf beiden Knoten gleich sein. Die einfachste Konfiguration
ist folgende:resource test {
on hasta {
local /dev/ad6
remote 172.16.0.2
}
on hastb {
local /dev/ad6
remote 172.16.0.1
}
}Fortgeschrittene Konfigurationsmöglichkeiten finden Sie in
&man.hast.conf.5;.Es ist ebenfalls möglich, den Hostnamen in den
remote-Anweisungen zu verwenden, falls
die Rechner aufgelöst werden können und in
/etc/hosts, oder im lokalen
DNS definiert sind.Sobald die Konfiguration auf beiden Rechnern vorhanden
ist, kann ein HAST-Pool erstellt werden.
Lassen Sie diese Kommandos auf beiden Knoten ablaufen, um die
initialen Metadaten auf die lokale Platte zu schreiben und
starten Sie anschliessend &man.hastd.8;:&prompt.root; hastctl create test
&prompt.root; service hastd onestartEs ist nicht möglich,
GEOM-Provider
mit einem bereits bestehenden Dateisystem zu verwenden, um
beispielsweise einen bestehenden Speicher in einen von
HAST verwalteten Pool zu konvertieren.
Dieses Verfahren muss einige Metadaten auf den Provider
schreiben und dafür würde nicht genug freier Platz zur
Verfügung stehen.Die Rolle eines HAST Knotens, primary
oder secondary, wird vom einem
Administrator, oder einer Software wie
Heartbeat, mittels
&man.hastctl.8; festgelegt. Auf dem primären Knoten
hasta geben Sie diesen Befehl ein:&prompt.root; hastctl role primary testGeben Sie folgendes Kommando auf dem sekundären Knoten
hastb ein:&prompt.root; hastctl role secondary testÜberprüfen Sie das Ergebnis mit hastctl
auf beiden Knoten:&prompt.root; hastctl status testÜberprüfen Sie die status-Zeile. Wird
hier degraded angezeigt, dann ist etwas mit
der Konfigurationsdatei nicht in Ordnung. Auf jedem Konten
sollte complete angezeit werden, was
bedeutet, dass die Synchronisation zwischen den beiden Knoten
gestartet wurde. Die Synchronisierung ist abgeschlossen, wenn
hastctl status meldet, dass die
dirty-Bereiche 0 Bytes betragen.Der nächste Schritt ist, ein Dateisystem auf dem
GEOM-Provider anzulegen und dieses ins
System einzuhängen. Dies muss auf dem
primary-Knoten durchgeführt werden.
Die Erstellung des Dateisystems kann ein paar Minuten dauern,
abhängig von der Größe der Festplatte. Dieses Beispiel
erstellt ein UFS-Dateisystem auf
/dev/hast/test:&prompt.root; newfs -U /dev/hast/test
&prompt.root; mkdir /hast/test
&prompt.root; mount /dev/hast/test/hast/testSobald das HAST-Framework richtig
konfiguriert wurde, besteht der letzte Schritt nun darin,
sicherzustellen, dass HAST während des
Systemstarts automatisch gestartet wird. Fügen Sie diese
Zeile in /etc/rc.conf hinzu:hastd_enable="YES"Failover-KonfigurationDas Ziel dieses Beispiels ist, ein robustes
Speichersystem zu bauen, welches Fehlern auf einem
beliebigen Knoten widerstehen kann. Wenn der
primary-Knoten ausfällt, ist der
secondary-Knoten da, um nahtlos
einzuspringen, das Dateisystem zu prüfen, einzuhängen und
mit der Arbeit fortzufahren, ohne dass auch nur ein
einzelnes Bit an Daten verloren geht.Um diese Aufgabe zu bewerkstelligen, wird das
Common Address Redundancy
Protocol (CARP)
benutzt, welches ein automatisches Failover auf der
IP-Schicht ermöglicht.
CARP erlaubt es mehreren Rechnern im
gleichen Netzsegment, die gleiche
IP-Adresse zu verwenden. Setzen Sie
CARP auf beiden Knoten des Clusters
anhand der Dokumentation in auf.
In diesem Beispiel hat jeder Knoten seine eigene
Management IP-Adresse und die geteilte
IP-Adresse
172.16.0.254. Der primäre
HAST-Knoten des Clusters muss der
CARP-Masterknoten sein.Der HAST-Pool, welcher im vorherigen Abschnitt
erstellt wurde, ist nun bereit für den Export über das
Netzwerk auf den anderen Rechner. Dies kann durch den Export
über NFS oder Samba
erreicht werden, indem die geteilte IP-Addresse
172.16.0.254 verwendet wird. Das einzige
ungelöste Problem ist der automatische Failover, sollte der
primäre Knoten einmal ausfallen.Falls die CARP-Schnittstelle
aktiviert oder deaktiviert wird, generiert das
&os;-Betriebssystem ein &man.devd.8;-Ereignis, was es
ermöglicht, Zustandsänderungen auf den
CARP-Schnittstellen zu überwachen. Eine
Zustandsänderung auf der
CARP-Schnittstelle ist ein Indiz dafür,
dass einer der Knoten gerade ausgefallen oder wieder
verfügbar ist. Diese Zustandsänderungen machen es möglich,
ein Skript zu starten, welches automatisch den HAST-Failover
durchführt.Um Zustandsänderungen auf der
CARP-Schnittstelle abzufangen, müssen
diese Zeilen in /etc/devd.conf auf
jedem Knoten hinzugefügt werden:notify 30 {
match "system" "IFNET";
match "subsystem" "carp0";
match "type" "LINK_UP";
action "/usr/local/sbin/carp-hast-switch master";
};
notify 30 {
match "system" "IFNET";
match "subsystem" "carp0";
match "type" "LINK_DOWN";
action "/usr/local/sbin/carp-hast-switch slave";
};Wenn auf dem System &os; 10 oder höher eingesetzt
wird, ersetzen Sie carp0 durch den
Namen der konfigurierten Schnittstelle für
CARP.Starten Sie &man.devd.8; auf beiden Knoten neu, um
die neue Konfiguration wirksam werden zu lassen:&prompt.root; service devd restartWenn die Schnittstelle
aktiviert oder deaktiviert wird, erzeugt das System eine
Meldung, was es dem &man.devd.8;-Subsystem ermöglicht, ein
automatisches Failover-Skript zu starten,
/usr/local/sbin/carp-hast-switch.
Weitere Informationen zu dieser Konfiguration finden Sie in
&man.devd.conf.5;.Es folgt ein Beispiel für ein automatisches
Failover-Skript:#!/bin/sh
# Original script by Freddie Cash <fjwcash@gmail.com>
# Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org>
# and Viktor Petersson <vpetersson@wireload.net>
# The names of the HAST resources, as listed in /etc/hast.conf
resources="test"
# delay in mounting HAST resource after becoming master
# make your best guess
delay=3
# logging
log="local0.debug"
name="carp-hast"
# end of user configurable stuff
case "$1" in
master)
logger -p $log -t $name "Switching to primary provider for ${resources}."
sleep ${delay}
# Wait for any "hastd secondary" processes to stop
for disk in ${resources}; do
while $( pgrep -lf "hastd: ${disk} \(secondary\)" > /dev/null 2>&1 ); do
sleep 1
done
# Switch role for each disk
hastctl role primary ${disk}
if [ $? -ne 0 ]; then
logger -p $log -t $name "Unable to change role to primary for resource ${disk}."
exit 1
fi
done
# Wait for the /dev/hast/* devices to appear
for disk in ${resources}; do
for I in $( jot 60 ); do
[ -c "/dev/hast/${disk}" ] && break
sleep 0.5
done
if [ ! -c "/dev/hast/${disk}" ]; then
logger -p $log -t $name "GEOM provider /dev/hast/${disk} did not appear."
exit 1
fi
done
logger -p $log -t $name "Role for HAST resources ${resources} switched to primary."
logger -p $log -t $name "Mounting disks."
for disk in ${resources}; do
mkdir -p /hast/${disk}
fsck -p -y -t ufs /dev/hast/${disk}
mount /dev/hast/${disk} /hast/${disk}
done
;;
slave)
logger -p $log -t $name "Switching to secondary provider for ${resources}."
# Switch roles for the HAST resources
for disk in ${resources}; do
if ! mount | grep -q "^/dev/hast/${disk} on "
then
else
umount -f /hast/${disk}
fi
sleep $delay
hastctl role secondary ${disk} 2>&1
if [ $? -ne 0 ]; then
logger -p $log -t $name "Unable to switch role to secondary for resource ${disk}."
exit 1
fi
logger -p $log -t $name "Role switched to secondary for resource ${disk}."
done
;;
esacIm Kern führt das Skript die folgenden Aktionen durch,
sobald ein Knoten zum Master wird:Es ernennt den HAST-Pool als den
primären für einen gegebenen Knoten.Es prüft das Dateisystem, dass auf dem
HAST-Pool erstellt wurde.Es hängt den Pool ins System ein.Wenn ein Knoten zum Sekundären ernannt wird:Hängt es den HAST-Pool aus dem
Dateisystem aus.Degradiert es den HAST-Pool zum
sekundären.Dieses Skript ist nur ein Beispiel für eine mögliche
Lösung. Es behandelt
nicht alle möglichen Szenarien, die auftreten können und
sollte erweitert bzw. abgeändert werden, so dass z.B.
benötigte Dienste gestartet oder gestoppt werden.Für dieses Beispiel wurde ein
UFS-Dateisystem verwendet. Um die Zeit
für die Wiederherstellung zu verringern, kann ein
UFS mit Journal oder ein
ZFS-Dateisystem benutzt werden.Weitere detaillierte Informationen mit zusätzlichen
Beispielen können unter
http://wiki.FreeBSD.org/HAST abgerufen
werden.FehlerbehebungHAST sollte generell ohne Probleme
funktionieren. Jedoch kann es, wie bei jeder anderen Software auch,
zu gewissen Zeiten sein, dass sie sich nicht so verhält wie
angegeben. Die Quelle dieser Probleme kann unterschiedlich sein,
jedoch sollte als Faustregel gewährleistet werden, dass die
Zeit für alle Knoten im Cluster synchron läuft.Für die Fehlersuche bei HAST sollte
die Anzahl an Debugging-Meldungen von &man.hastd.8; erhöht
werden. Dies kann durch das Starten von
hastd mit -d erreicht
werden. Diese Option kann mehrfach angegeben werden, um die
Anzahl an Meldungen weiter
zu erhöhen. Sie sollten ebenfalls die Verwendung von
-F in Erwägung ziehen, was
hastd im Vordergrund startet.Auflösung des Split-brain-Zustandssplit-brain bezeichnet eine
Situation, in der beide Knoten des Clusters nicht in der
Lage sind, miteinander zu kommunizieren und dadurch beide
als primäre Knoten fungieren. Dies ist ein
gefährlicher Zustand, weil es beiden Knoten erlaubt ist,
Änderungen an den Daten vorzunehmen, die miteinander nicht
in Einklang gebracht werden können. Diese Situation muss
vom Systemadministrator händisch bereinigt werden.Der Administrator muss entscheiden, welcher Knoten die
wichtigeren Änderungen besitzt, oder die Zusammenführung
manuell durchführen. Anschließend kann
HAST die volle Synchronisation mit
dem Knoten durchführen, der die beschädigten Daten enthält.
Um dies zu tun, geben Sie folgende Befehle auf dem Knoten
ein, der neu synchronisiert werden muss:&prompt.root; hastctl role init test
&prompt.root; hastctl create test
&prompt.root; hastctl role secondary test