diff --git a/de_DE.ISO8859-1/books/faq/book.sgml b/de_DE.ISO8859-1/books/faq/book.sgml index 750bc1020b..53065648ea 100644 --- a/de_DE.ISO8859-1/books/faq/book.sgml +++ b/de_DE.ISO8859-1/books/faq/book.sgml @@ -1,13627 +1,13637 @@ %books.ent; ]> Häufig gestellte Fragen zu FreeBSD 4.X, 5.X und 6.X Frequently Asked Questions für FreeBSD 4.X, 5.X und 6.X The FreeBSD German Documentation Project Deutsche Übersetzung von Robert S. F. Drehmel, Dirk Gouders und Udo Erdelhoff - $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.589 2007/03/01 16:20:17 jkois Exp $ + $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.590 2007/03/31 10:33:23 jkois Exp $ 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The FreeBSD Documentation Project 2000 2001 2002 2003 2004 2005 2006 The FreeBSD German Documentation Project &bookinfo.legalnotice; &tm-attrib.freebsd; &tm-attrib.3com; &tm-attrib.adobe; &tm-attrib.creative; &tm-attrib.cvsup; &tm-attrib.ibm; &tm-attrib.ieee; &tm-attrib.intel; &tm-attrib.iomega; &tm-attrib.linux; &tm-attrib.microsoft; &tm-attrib.mips; &tm-attrib.netscape; &tm-attrib.opengroup; &tm-attrib.oracle; &tm-attrib.sgi; &tm-attrib.sparc; &tm-attrib.sun; &tm-attrib.usrobotics; &tm-attrib.xfree86; &tm-attrib.general; Dies ist die FAQ für die FreeBSD-Versionen 4.X, 5.X und 6.X. Alle Einträge sollten für FreeBSD ab Version 4.0 relevant sein, andernfalls wird darauf explizit hingewiesen. Falls Sie daran interessiert sein sollten, an diesem Projekt mitzuhelfen, senden Sie eine Mail an die Mailingliste &a.de.translators;. Die aktuelle Version dieses Dokuments ist ständig auf dem FreeBSD World-Wide-Web-Server verfügbar. Es kann auch per HTTP als eine große HTML-Datei heruntergeladen werden oder als Textdatei, im &postscript;, PDF- und anderen Formaten vom FreeBSD FTP-Server. Sie können die FAQ auch durchsuchen. Einleitung Willkommen zur FreeBSD 4.X-6.X FAQ! Wie auch bei den Usenet FAQs üblich, wird mit diesem Dokument beabsichtigt, die am häufigsten gestellten Fragen bezüglich des Betriebssystems FreeBSD zu erfassen und sie natürlich auch zu beantworten. Obwohl FAQs ursprünglich lediglich dazu dienen sollten, die Netzbelastung zu reduzieren und das ständige Wiederholen derselben Fragen zu vermeiden, haben sie sich als wertvolle Informationsquellen etabliert. Wir haben uns die größte Mühe gegeben, diese FAQ so lehrreich wie möglich zu gestalten; falls Sie irgendwelche Vorschläge haben, wie sie verbessert werden kann, senden Sie diese bitte an den &a.de.translators;. Was ist FreeBSD? FreeBSD ist, kurz gesagt, ein &unix; ähnliches Betriebssystem für die Plattformen Alpha/AXP, AMD64 sowie &intel; EM64T, &i386;, IA-64, PC-98 und &ultrasparc;, das auf der 4.4BSD-Lite-Release der University of California at Berkeley (UCB) basiert; außerdem flossen einige Erweiterungen aus der 4.4BSD-Lite2-Release mit ein. Es basiert außerdem indirekt auf der von William Jolitz unter dem Namen 386BSD herausgebrachten Portierung der Net/2-Release der UCB auf die &i386;-Plattform - allerdings ist nur wenig vom 386BSD-Code übriggeblieben. Eine umfassendere Beschreibung darüber, was FreeBSD ist und wie Sie es für Ihre Zwecke verwenden können, finden Sie auf den Internetseiten des FreeBSD Projects. Unternehmen, Internet Service Provider, Forscher, Computerfachleute, Studenten und Privatnutzer auf der ganzen Welt benutzen FreeBSD für die Arbeit, die Ausbildung oder zur Freizeitgestaltung. Ausführlichere Informationen zu FreeBSD, finden Sie im FreeBSD Handbuch. Welches Ziel hat das FreeBSD-Projekt? Die Ziel von FreeBSD ist es, Software zur Nutzung für beliebige Zwecke, bedingungslos zur Verfügung zu stellen. Viele von uns haben erheblich zur Erstellung des Codes (und zum Projekt) beigetragen und hätten jetzt oder in Zukunft sicherlich nichts gegen einen geringen finanziellen Ausgleich einzuwenden, aber wir beabsichtigen definitiv nicht, darauf zu bestehen. Wir sind der Meinung, dass unsere Mission zuerst und vorderst darin besteht, allen und jedem Kommenden Code für welchen Zweck auch immer zur Verfügung zu stellen, damit der Code möglichst weit eingesetzt wird und den größtmöglichen Nutzen liefert. Das ist, so glauben wir, eines der fundamentalsten Ziele von freier Software und eines, das wir enthusiastisch unterstützen. Der Code in unserem Quellbaum, der der GNU General Public License (GPL) oder der GNU Library General Public License (LGPL) unterliegt, ist mit zusätzlichen, geringfügigen Bedingungen verknüpft, jedoch handelt es sich dabei lediglich um erzwungene Bereitstellung statt des sonst üblichen Gegenteils. Auf Grund der zusätzlichen Komplexität, die durch den kommerziellen Einsatz von GPL Software entstehen kann, bemühen wir uns jedoch, solche Software, wo möglich, durch solche, die der etwas lockereren FreeBSD Lizenz unterliegt, zu ersetzen. Beinhaltet das FreeBSD-Copyright irgendwelche Einschränkungen? Ja. Diese Einschränkungen regeln aber nicht, wie Sie mit dem Sourcecode umgehen, sondern betreffen nur den Umgang mit dem FreeBSD Project an sich. Wenn Sie sich ernsthaft damit auseinandersetzen wollen, lesen Sie einfach die FreeBSD-Lizenz. Wenn Sie einfach nur neugierig sind, sollte diese Zusammenfassung ausreichen: Behaupten Sie nicht, Sie hätten es geschrieben. Verklagen Sie uns nicht, wenn irgend etwas nicht funktioniert. Kann FreeBSD mein bisher verwendetes Betriebssystem ersetzen? In den meisten Fällen lautet die Antwort ja. Allerdings ist diese Frage nicht ganz so einfach, wie sie scheint. Die meisten Anwender benutzen kein Betriebssystem, sondern Anwendungen. Die Anwendungen sind es, die das Betriebssystem benutzen. FreeBSD ist dazu gedacht, eine stabile und vielfältige Umgebung für Anwendungen bereitzustellen. Es unterstützt viele unterschiedliche Web-Browser, Büroanwendungen, E-Mail-Programme, Grafik-Programme, Entwicklungsumgebungen, Netzwerk-Server, und so ziemlich alles andere, was Sie sich wünschen können. Die meisten dieser Anwendungen sind in der Ports-Sammlung verfügbar. Wenn Sie Anwendung benutzen müssen, die es nur für ein bestimmtes Betriebssystem gibt, dann kommen Sie an diesem Betriebssystem nicht vorbei. Allerdings stehen die Chancen nicht schlecht, dass es eine vergleichbare Anwendung für FreeBSD gibt. Wenn Sie einen verläßlichen Server für ihr Büro oder das Internet brauchen, oder eine stabilen Arbeitsplatz, oder einfach nur die Fähigkeit, ihre Arbeit ohne dauernde Abstürze machen zu können, dann kann FreeBSD genau das sein. Viele Anwender auf der ganzen Welt, vom Anfänger bis zum erfahrenen Administrator, benutzen an Ihren Arbeitsplätzen ausschließlich FreeBSD. Wenn Sie von einem anderen &unix; System zu FreeBSD wechseln, dürfte Ihnen vieles bekannt vorkommen. Wenn Ihr Hintergrund ein Grafik-orientiertes Betriebssystem wie &windows; oder ein älteres &macos; ist, werden Sie zusätzliche Zeit investieren müssen, um den &unix; Stil zu verstehen. Dieser FAQ und das FreeBSD Handbuch sind die besten Startpunkte. Warum heißt es FreeBSD? Es darf kostenlos genutzt werden - sogar von kommerziellen Benutzern. Der komplette Quellcode für das Betriebssystem ist frei verfügbar und die Benutzung, Verbreitung und Einbindung in andere (kommerzielle und nicht-kommerzielle) Arbeiten sind mit den geringstmöglichen Einschränkungen versehen worden. Jedem ist es freigestellt, Code für Verbesserungen oder die Behebung von Fehlern einzusenden und ihn zum Quellbaum hinzufügen zu lassen (dies ist natürlich Gegenstand von ein oder zwei offensichtlichen Klauseln). Es wird darauf hingewiesen, dass das englische Wort free hier in den Bedeutungen umsonst und Sie können tun, was immer Sie möchten genutzt wird. Abgesehen von ein oder zwei Dingen, die Sie mit dem FreeBSD-Code nicht tun können (z.B. vorgeben, ihn geschrieben zu haben), können Sie damit tatsächlich tun, was auch immer Sie möchten. Wie unterschieden sich FreeBSD, NetBSD, OpenBSD und andere Open-Source BSD-Systeme? James Howards Artikel The BSD Family Tree, der in DaemonNews erschienen ist, beschreibt sehr gut die Geschichte und die Unterschiede der BSD-Varianten. Welches ist die aktuelle FreeBSD-Version? Momentan gibt es drei Entwicklungszweige, von den zwei für die Erstellung von Releases verwendet werden. Die 5.X-RELEASEs werden auf dem 5-STABLE-Zweig erstellt, die 6.X-RELEASEs auf dem 6-STABLE-Zweig. Bis zur Veröffentlichung von &os; 5.3 galt die 4.X-Serie als -STABLE. Seither gibt es für den Zweig 4.X nur mehr eine erweiterte Unterstützung in der Form von Korrekturen von größeren Problemen, wie neu entdeckten Sicherheitsheitslücken. Aus dem Zweig 5-STABLE werden zwar noch RELEASEs erzeugt, er gilt aber als ausgereift. Aktive Weiterentwicklungen konzentrieren sich daher auf den Zweig 6-STABLE. Version &rel.current; ist das aktuelle Release des 6-STABLE-Zweigs und ist im &rel.current.date; erschienen. Version &rel2.current; ist das aktuelle Release aus dem 5-STABLE-Zweig und ist im &rel2.current.date; erschienen. Kurz gesagt, -STABLE ist für ISPs und andere Benutzer gedacht, die mehr Wert auf Stabilität und eine niedrige Änderungsfrequenz als auf die neuesten und möglicherweise unstabilen Features im aktuellen -CURRENT Snapshot legen. Releases können aus jedem Zweig entstehen, Sie sollten -CURRENT allerdings nur dann benutzen, wenn Sie auf ein erhöhtes Fehlverhalten im Vergleich zu -STABLE auch vorbereitet sind. Releases entstehen nur alle paar Monate. Viele Leute halten ihre Systeme aktueller (lesen Sie die Fragen zu &os;-CURRENT und &os;-STABLE), aber das erfordert ein erhöhtes Engagement, da die Sourcen sich ständig verändern. Weitere Informationen über Releases entnehmen Sie der Seite Release Engineering des FreeBSD Webauftritts. Was ist FreeBSD-CURRENT? &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 für mehrere Tage hintereinander 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 -CURRENT Mailingliste manchmal nicht beachtet. Jeden Tag wird der aktuelle Entwicklungsstand in den Zweigen -CURRENT und -STABLE in einer Snapshot Release festgehalten. Mittlerweile werden sogar CDROM Distributionen dieser gelegentlichen Snapshots zur Verfügung gestellt. Die Ziele dieser Snapshot Releases sind: Die aktuelle Version der Installationssoftware zu testen. Personen, die -CURRENT oder -STABLE benutzen möchten, aber nicht über die nötige Zeit oder Bandbreite verfügen, um tagesaktuell zu bleiben, soll eine bequeme Möglichkeit geboten werden, es auf ihr System zu bringen. Die Erhaltung von Referenzpunkten des fraglichen Codes, für den Fall, dass wir später einmal ernsthaften Schaden anrichten sollten (obwohl CVS verhindern sollte, dass solche Situationen entstehen :) Sicherzustellen, dass alle zu testenden, neuen Merkmale und Fehlerbehebungen zu möglichst vielen potentiellen Testern gelangen. Von keinem -CURRENT Snapshot kann Produktionsqualität für beliebige Zwecke erwartet werden. Wenn Sie eine stabile und ausgetestete Version benötigen, sollten Sie eine vollständige Release oder einen -STABLE Snapshot verwenden. Snapshot-Releases sind unter ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/ verfügbar. In der Regel wird jeden Tag ein Snapshot jedes zur Zeit aktiven Zweiges erstellt. Was ist das Konzept von FreeBSD-STABLE? Zur der Zeit, als FreeBSD 2.0.5 herausgegeben wurde, wurde entschieden, die Entwicklung von FreeBSD zweizuteilen. Ein Zweig wurde -STABLE der andere -CURRENT genannt. FreeBSD-STABLE ist für Anbieter von Internetdiensten und andere kommerzielle Unternehmen gedacht, für die plötzliche Veränderungen und experimentelle Features unerwünscht sind. In diesem Zweige werden nur ausgetestete Fehlerbehebungen und kleine, inkrementelle Änderungen aufgenommen. FreeBSD-CURRENT ist eine ununterbrochene Linie seitdem die Version 2.0 herausgegeben worden ist. Sie führt zu 6.0-RELEASE (und darüber hinaus). Unmittelbar vor der Veröffentlichung von 6.0-RELEASE wurde der 6-STABLE-Zweig erschaffen und &os.current; wurde zu 7-CURRENT. Weitere Informationen zu diesem Thema finden Sie unter FreeBSD Release Engineering: Creating the Release Branch. Der Zweig 2.2-STABLE wurde mit der Veröffentlichung der Version 2.2.8 eingestellt. Der Zweig 3-STABLE endete mit Version 3.5.1, der letzten 3.X-Version. Änderungen in diesen Zweigen beschränken sich im allgemeinen auf die Korrektur von sicherheitsrelevanten Fehlern. Die Zweige 4-STABLE und 5-STABLE werden zwar noch unterstützt, die Unterstützung beschränkt sich allerdings auf das Schließen von neu entdeckten Sicherheitslücken und die Behebung von anderen ernsten Problemen. &rel.current;-STABLE ist der Zweig, auf den sich die Entwicklung von -STABLE zurzeit konzentriert. Das neueste Release aus dem &rel.current;-STABLE-Zweig ist &rel.current;-RELEASE und ist im &rel.current.date; erschienen. Aus dem 7-CURRENT-Zweig entsteht die nächste &os;-Generation. Weitere Informationen über diesen Zweig finden Sie unter Was ist FreeBSD-CURRENT?. Wann werden FreeBSD-Versionen erstellt? Im Schnitt gibt das &a.re; alle vier Monate eine neue FreeBSD-Version frei. Das Erscheinungsdatum einer neuer Version wird frühzeitig bekanntgegeben, damit die am System arbeitenden Personen wissen, bis wann ihre Projekte abgeschlossen und ausgetestet sein müssen. Vor jedem Release gibt es eine Testperiode um sicherzustellen, dass die neu hinzugefügten Features nicht die Stabilität des Releases beeinträchtigen. Viele Benutzer halten dies für einen großen Vorteil von FreeBSD, obwohl es manchmal frustrierend sein kann, so lange auf die Verfügbarkeit der aktuellsten Leckerbissen zu warten. Weitere Informationen über die Entwicklung von Releases, sowie eine Übersicht über kommende Releases, erhlaten Sie auf den release engineering Seiten der FreeBSD Webseite. Für diejenigen, die ein wenig mehr Spannung brauchen (oder möchten), werden täglich Snapshots herausgegeben, wie oben beschrieben. Wer ist für FreeBSD verantwortlich? Schlüsseldiskussionen, die das FreeBSD-Projekt betreffen, wie z.B. über die generelle Ausrichtung des Projekts und darüber, wem es erlaubt sein soll, Code zum Quellbaum hinzuzufügen, werden innerhalb eines Core Teams von 9 Personen geführt. Es gibt ein weitaus größeres Team von über 300 Committern, die dazu autorisiert sind, Änderungen am FreeBSD Quellbaum durchzuführen. Jedoch werden die meisten nicht-trivialen Änderungen zuvor in den Mailinglisten diskutiert und es bestehen keinerlei Einschränkungen darüber, wer sich an diesen Diskussionen beteiligen darf. Wie kann ich FreeBSD beziehen? Jede bedeutende Ausgabe von FreeBSD ist per Anonymous-FTP vom FreeBSD FTP Server erhältlich: Das aktuelle 6-STABLE-Release, &rel.current;-RELEASE, finden Sie im Verzeichnis &rel.current;-RELEASE. Snapshots-Releases werden täglich aus dem -CURRENT-Zweig erzeugt. Sie sollten aber nur von Entwicklern und sehr erfahrenen Testern verwendet werden. Das aktuelle Release von 5-STABLE, &rel2.current;-RELEASE finden Sie im Verzeichnis &rel2.current;-RELEASE. 5.X Snapshots werden in der Regel täglich erstellt. Wo und wie Sie FreeBSD auf CD, DVD, und anderen Medien beziehen können, erfahren Sie im Handbuch. Wie greife ich auf die Datenbank mit Problemberichten zu? Die Datenbank mit Problemberichten (PR, problem report) und Änderungsanfragen von Benutzern kann über die webbasierte PR-Abfrage-Schnittstelle abgefragt werden. Mit dem Programm &man.send-pr.1; können Sie Problemberichte oder Änderungsanträge per E-Mail einsenden. Alternativ können Sie Problemberichte auch über Ihren Browser und die webbasierte PR-Eingabe-Schnittstelle erstellen. Bevor Sie einen Fehler melden, sollten Sie sich zuerst den Artikel Writing FreeBSD Problem Reports durchlesen, damit Sie wissen, wie Sie eine gute Fehlermeldung verfassen. Gibt es weitere Informationsquellen? Sie finden eine umfassende Liste unter Documentation auf der FreeBSD-Webseite. Dokumentation und Support Gibt es gute Bücher über FreeBSD? Im Zuge des FreeBSD Projekts sind diverse gute Dokumente entstanden, die unter der folgenden URL abgerufen werden können: . Die Dokumente stehen auch als Pakete, die Sie leicht installieren können, zur Verfügung. In den nächsten Abschnitten erfahren Sie mehr über diese Pakete. Zusätzlich enthalten die Bibliographien am Ende dieser FAQ und im Handbuch Verweise auf weitere empfohlene Bücher. Ist die Dokumentation auch in anderen Formaten verfügbar? Zum Beispiel als einfacher Text (ASCII) oder als &postscript;? Ja. Werfen Sie einen Blick auf das Verzeichnis /pub/FreeBSD/doc/ auf dem FreeBSD FTP-Server. Dort finden sie Dokumentation in vielen verschiedenen Format. Die Dokumentation wurde nach vielen verschiedenen Kriterien sortiert. Die Kriterien sind: Der Name des Dokumentes, z.B. FAQ oder Handbuch. Die Sprache und der Zeichensatz, die in dem Dokument verwendet werden. Diese entsprechen den Anpassungen, die Sie auf Ihrem FreeBSD-System im Verzeichnis /usr/share/locale finden. Zurzeit werden die folgenden Sprachen und Zeichensätze benutzt: Name Bedeutung en_US.ISO8859-1 US Englisch es_ES.ISO8859-1 Spanisch fr_FR.ISO8859-1 Französisch de_DE.ISO8859-1 Deutsch it_IT.ISO8859-15 Italienisch ja_JP.eucJP Japanisch (EUC-kodiert) ru_RU.KOI8-R Russisch (KOI8-R-kodiert) zh_CN.GB2312 Vereinfachtes Chinesisch (GB2312-kodiert) zh_TW.Big5 Chinesisch (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: Format Erklärung html-split Viele kleine HTML-Dateien, die sich gegenseitig referenzieren. html Eine große HTML-Datei, die das komplette Dokument enthält. pdb Palm Pilot Datenbank für das Programm iSilo. pdf Adobe's Portable Document Format ps &postscript; rtf Microsoft's Rich Text Format Die Seitennummern werden nicht automatisch aktualisiert, wenn Sie diese Datei in Word laden. Wenn Sie das Dokument geladen haben, müssen Sie Sie Ctrl A , Ctrl End , F9 eingeben, um die Seitennummern aktualisieren zu lassen. txt Ganz normaler Text 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 book.format (z.B., book.pdb, book.html, und so weiter). Diese Dateien werden mit zwei verschiedenen Programmen komprimiert. Programm Beschreibung zip Das Zip-Format. Wenn Sie diese Dateien unter FreeBSD auspacken wollen, müssen sie vorher den Port archivers/unzip installieren. bz2 Das BZip2-Format. Es wird seltener als das Zip-Format benutzt, erzeugt aber normalerweise kleinere Archive. Sie müssen den Port archivers/bzip2 installieren, um diese Dateien entpacken zu können. Ein Beispiel: Die mit BZip2 gepackte Version des Handbuchs im &postscript;-Format hat den Namen book.ps.bz2 und ist im Verzeichnis handbook/ zu finden. Nachdem Sie das Format und das Kompressionsverfahren ausgewählt haben, müssen Sie sich entscheiden, ob Sie das Dokument in Form eines FreeBSD Package herunterladen möchten. Der Vorteil dieser Variante, dass Sie die Dokumentation mit normalen Tools wie &man.pkg.add.1; und &man.pkg.delete.1; verwalten können. Wenn Sie das Package herunterladen und installieren wollen, müssen Sie den richtigen Dateinamen kennen. Die Dateien liegen in einem separaten Verzeichnis mit dem Namen packages und werden nach dem Schema Dokument-Name.Sprache.Zeichensatz.Format.tgz benannt. Ein Beispiel: Die englische Version der FAQ im PDF-Format ist in dem Package mit dem Namen faq.en_US.ISO8859-1.pdf.tgz enthalten. Sie können daher das englische PDF FAQ Package mit den folgenden Befehlen installieren. &prompt.root; pkg_add ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz Danach können Sie mit &man.pkg.info.1; nachsehen, wo die Datei installiert wurde. &prompt.root; pkg_info -f faq.en_US.ISO8859-1.pdf Information for faq.en_US.ISO8859-1.pdf: Packing list: Package name: faq.en_US.ISO8859-1.pdf CWD to /usr/share/doc/en_US.ISO8859-1/books/faq File: book.pdf CWD to . File: +COMMENT (ignored) File: +DESC (ignored) Wie Sie sehen können, wurde die Datei book.pdf im Verzeichnis /usr/share/doc/en_US.ISO8859-1/books/faq installiert. Wenn sie die Packages nicht benutzen, müssen Sie die komprimierten selber herunterladen, auspacken und die richtigen Stellen kopieren. Wenn Sie zum Beispiel die mit &man.bzip2.1; gepackte split HTMLVersion der englischen FAQ herunterladen und installieren wollten, bräuchten Sie die Datei doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2. Um diese Datei herunterzuladen und auszupacken, wären die folgenden Schritte notwendig. &prompt.root; fetch ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2 &prompt.root; gzip -d book.html-split.tar.bz2 &prompt.root; tar xvf book.html-split.tar Danach haben Sie eine Sammlung vieler kleiner .html Datei. Die wichtigste Datei hat Namen index.html und enthält das Inhaltsverzeichnis, eine Einleitung und Verweise auf die anderen Teile des Dokumentes. Falls notwendig, können Sie die diversen Dateien jetzt an ihren endgültigen Bestimmungsort verschieben oder kopieren. Woher bekomme ich Informationen zu den FreeBSD Mailinglisten? Vollständige Informationen finden Sie im Handbucheintrag über Mailinglisten. Welche Newsgruppen existieren zu FreeBSD? Sie finden alle Informationen hierzu im Handbucheintrag zu Newsgruppen. Gibt es FreeBSD IRC (Internet Relay Chat) Kanäle? Ja, die meisten großen IRC Netze bieten einen FreeBSD Chat-Channel: Channel FreeBSD im EFNet ist ein FreeBSD-Forum, aber gehen Sie nicht dorthin, um technische Unterstützung zu suchen, oder, um zu versuchen, die Leute dort dazu zu bringen, Ihnen dabei zu helfen, das mühselige Lesen von Manuals zu ersparen oder eigene Nachforschungen zu betreiben. Es ist in erster Linie ein Chat-Channel und die Themen dort umfassen Sex, Sport oder Kernwaffen ebensogut, wie FreeBSD. Sie wurden gewarnt! Der Channel ist auf dem Server irc.chat.org verfügbar. Der Channel #FreeBSDhelp im EFNet hat sich dagegen auf die Unterstützung der Benutzer von FreeBSD spezialisiert. In diesem Channel sind Fragen deutlich willkommener als im Channel #FreeBSD. Der Channel #FreeBSD im DALNET ist in den USA unter irc.dal.net und in Europa unter irc.eu.dal.net verfügbar. Der Channel #FreeBSDHelp im DALNET ist in den USA unter irc.dal.net sowie in Europa unter irc.eu.dal.net verfügbar. Der Channel #FreeBSD im UNDERNET ist in den USA unter us.undernet.org und in Europa unter eu.undernet.org verfügbar. Es handelt sich hierbei um einen Hilfe-Channel, man wird Sie daher auf Dokumente verweisen, die Sie selbst lesen müssen. Der Channel #FreeBSD im RUSNET ist ein russischsprachiger Channel, der sich der Unterstützung von &os;-Anwendern verschrieben hat. Er ist auch ein guter Startpunkt für nichttechnische Diskussionen. Alle diese Kanäle unterscheiden sich voneinander und sind nicht miteinander verbunden. Ebenso unterscheiden sich Ihre Chat-Stile, weshalb es sein kann, dass Sie zunächst alle Kanäle ausprobieren müssen, um den zu Ihrem Chat-Stil passenden zu finden. Hier gilt, was für jeden IRC-Verkehr gilt: falls sie sich leicht angegriffen fühlen oder nicht mit vielen jungen (und einigen älteren) Leuten, verbunden mit dem nutzlosen Gezanke umgehen können, dann ziehen Sie es gar nicht erst in Erwägung. Gibt es Firmen, die Training und Support für FreeBSD anbieten? DaemonNews bietet Training und Support für FreeBSD an. Weitergehende Informationen finden Sie in der BSD Mall. Die FreeBSD Mall bietet ebenfalls professionellen FreeBSD support an. Weitergehende Informationen finden Sie auf ihrer Webseite. Wenn Ihre Firma oder Organisation ebenfalls Training und Support anbietet und hier genannt werden möchte, wenden Sie sich bitte an das FreeBSD Project. Nik Clayton
nik@FreeBSD.org
Installation Welche Dateien muss ich herunterladen, um FreeBSD zu bekommen? Für 4.X werden zwei Floppy-Images benötigt: floppies/kernel.flp und floppies/mfsroot.flp. Diese Images müssen mit Hilfe von Werkzeugen wie fdimage oder &man.dd.1; auf Disketten kopiert werden. Seit &os; 5.3 weisen die Bootdisketten eine neue Struktur auf. Sie benötigen nun das Image floppies/boot.flp sowie alle Dateien mit den Namen floppies/kernX (von denen es derzeit zwei gibt). Falls Sie selbst die einzelnen Distributionen herunterladen müssen (um z.B. von einem DOS-Dateisystem aus zu installieren), empfehlen wir, sich die folgenden Distributionen zu besorgen: base/ (bin/ unter 4.X) manpages compat* doc src/ssys.* Vollständige Instruktionen für dieses Vorgehen und ein wenig mehr zur Installation generell finden Sie im Handbucheintrag zur Installation von FreeBSD. Was soll ich tun, wenn das Floppy-Image nicht auf eine Diskette passt? Eine 3,5-Zoll (1,44MB) Diskette kann 1474560 Byte an Daten fassen und das Boot-Image ist exakt 1474560 Byte groß. Häufige Fehler bei der Erstellung der Boot-Diskette sind: Bei der Benutzung von FTP das Floppy-Image nicht im Binär-Modus herunterzuladen. Einige FTP-Clients benutzen als Voreinstellung den ASCII-Modus und versuchen, alle Zeilenendezeichen an das Zielsystem anzupassen. Dadurch wird das Boot-Image in jedem Fall unbrauchbar. Überprüfen Sie die Größe des heruntergeladenen Boot-Images: falls sie nicht exakt mit der auf dem Server übereinstimmt, hat das Herunterladen nicht richtig funktioniert. Abhilfe: geben Sie binary an der FTP-Eingabeaufforderung ein, nach dem Sie mit dem Server verbunden sind und bevor Sie das Image herunterladen. Die Benutzung des DOS-Befehls copy (oder eines entsprechendes Werkzeugs der grafischen Benutzeroberfläche), um das Boot-Image auf die Diskette zu übertragen. Programme wie copy sind hier unbrauchbar, weil das Image zur direkten Übertragung erstellt wurde. Das Image stellt den gesamten Disketteninhalt dar, Spur für Spur, und nicht eine gewöhnliche Datei. Sie müssen es roh mit speziellen Werkzeugen (z.B. fdimage oder rawrite) übertragen, wie es in der Installationsanleitung zu FreeBSD beschrieben ist. Wo befinden sich die Instruktionen zur Installation von FreeBSD? Installationsanleitungen finden Sie im Handbucheintrag zur Installation von FreeBSD. Was benötige ich zum Betrieb von FreeBSD? Für &os;-Versionen vor 5.X benötigen Sie mindestens einen 386er Prozessor mit mindestens 5 MB Hauptspeicher und mindestens 60 MB Festplattenspeicher. Für die Installation von &os; ist dabei mehr Hauptspeicher als für den eigentlichen Betrieb nötig, daher sollten 16 RAM als Minimum für ein Standardsystem ausreichen. Der Betrieb von &os; 5.X und neuer erfordert mindestens einen 486er Prozessor mit mindestens 24 MB RAM sowie mindestens 150 MB an Festplattenspeicher. Alle &os;-Versionen laufen mit einer einfachen MDA-Grafikkarte, für X11R6 benötigen Sie allerdings eine VGA- oder eine bessere Videokarte. Lesen Sie auch den Abschnitt Hardwarekompatibilität. Ich besitze nur 4 MB Hauptspeicher. Kann ich FreeBSD installieren? Für die Installation von FreeBSD 4.X benötigen Sie mindestens 5MB RAM, seit &os; 5.X mindestens 8 MB für die Installation eines neuen Systems. Alle FreeBSD-Versionen vor 5.X laufen zwar mit 4MB Hauptspeicher, lediglich ihr Installationsprogramm läuft nicht mit 4MB. Wenn Sie möchten, können Sie für den Installationsvorgang zusätzlichen Hauptspeicher hinzufügen, den Sie nach der Installation wieder entfernen. Alternativ können Sie Ihre Platte in ein System mit genügend Hauptspeicher transferieren und die Platte nach erfolgreicher Installation wieder in Ihr System einbauen. Wenn Sie nur über 4 MB Hauptspeicher verfügen, müssen Sie einen angepassten Kernel erzeugen. Irgend jemand hat es sogar geschafft, mit 2 MB RAM zu booten, allerdings war dieses System nahezu unbrauchbar. Wie kann ich eine angepasste Installationsdiskette erstellen? Zurzeit gibt es keine Möglichkeit, nur die angepassten Installationsdisketten zu erstellen. Sie müssen sich eine ganz neues Release erstellen, das Ihre Installationsdiskette enthält. Wenn Sie eine modifizierte Ausgabe erstellen wollen, finden Sie eine Anleitung im Artikel FreeBSD Release Engineering. Kann ich mehr als ein Betriebssystem auf meinem PC unterbringen? Sehen Sie sich Die Multi-OS-Seite an. Kann &windows; neben FreeBSD existieren? Installieren Sie zuerst &windows;, dann FreeBSD. Der Bootmanager von FreeBSD kann dann entweder &windows; oder FreeBSD booten. Falls Sie &windows; nach FreeBSD installieren, wird es, ohne zu fragen, Ihren Bootmanager überschreiben. Lesen Sie den nächsten Abschnitt, falls das passieren sollte. &windows; hat meinen Bootmanager zerstört! Wie stelle ich ihn wieder her? Es gibt drei Möglichkeiten, den FreeBSD-Bootmanager neu zu installieren: Unter DOS wechseln Sie in das Verzeichnis tools/ Ihrer FreeBSD-Distribution und suchen nach bootinst.exe. Rufen sie es so auf: ...\TOOLS> bootinst.exe boot.bin und der Bootmanager wird neu installiert. Booten Sie FreeBSD wieder mit der Bootdiskette und wählen Sie den Menüeintrag Custom Installation. Wählen Sie Partition. Wählen Sie das Laufwerk, auf dem sich der Bootmanager befand (wahrscheinlich der erste Eintrag) und wenn Sie in den Partitioneditor gelangen, wählen Sie als aller erstes (nehmen Sie z.B. keine Änderungen vor) (W)rite. Sie werden nach einer Bestätigung gefragt, antworten ja und vergessen Sie nicht, in der Bootmanager-Auswahl Boot Manager auszuwählen. Hierdurch wird der Bootmanager wieder auf die Festplatte geschrieben. Verlassen Sie nun das Installationsmenü und rebooten wie gewöhnlich von der Festplatte. Booten Sie FreeBSD wieder mit der Bootdiskette (oder der CDROM) und wählen Sie den Menüpunkt Fixit. Wählen Sie die für Sie passende Option, entweder die Fixit-Diskette oder die CD Nummer 2 (die Option live Filesystem). Wechseln Sie zur Fixit-Shell und geben Sie den folgenden Befehl ein: Fixit# fdisk -B -b /boot/boot0 bootdevice Als bootdevice müssen Sie das von Ihrem System verwendete Gerät angeben, z.B. ad0 (erste IDE-Platte), ad4 (erste IDE-Platte an einem zusätzlichen Controller), da0 (erste SCSI-Platte), usw. Mein IBM Thinkpad Modell A, T oder X, hängt sich auf, wenn ich FreeBSD zum ersten Mal starte. Was soll ich machen? Ein Fehler in den ersten BIOS-Versionen dieser Geräte führt dazu, dass sie die von FreeBSD genutzte Partition für eine Suspend-To-Disk-Partition halten. Wenn das BIOS dann versucht, diese Partition auszuwerten, hängt sich das System auf. Laut IBM In einer Mail von Keith Frechette kfrechet@us.ibm.com. wurde der Fehler wurde in den folgenden BIOS-Versionen behoben: Gerät BIOS Version T20 IYET49WW oder neuer T21 KZET22WW oder neuer A20p IVET62WW oder neuer A20m IWET54WW oder neuer A21p KYET27WW oder neuer A21m KXET24WW oder neuer A21e KUET30WW Es ist möglich, dass neuere Version des IBM BIOS den Fehler wieder enthalten. Dieser Beitrag von Jacques Vidrine auf der Mailingliste &a.mobile; beschreibt eine Technik, die Ihnen weiterhelfen könnte, wenn Ihr IBM Laptop mit FreeBSD nicht bootet und Sie eine neuere oder ältere BIOS-Version einspielen können. Wenn Ihr Thinkpad über eine ältere BIOS-Version verfügt und Sie das BIOS nicht aktualisieren können, ist eine der möglichen Lösungen, FreeBSD zu installieren, die Partitions-ID zu ändern und danach neue Bootblocks zu installieren, die mit der geänderten ID umgehen können. Zunächst müssen Sie die Maschine so weit wiederherstellen, dass sie über den Selbst-Test hinauskommt. Dazu ist es erforderlich, dass das System beim Start keine Partitions-ID auf seiner primären Festplatte findet. Eine Variante ist, die Platte auszubauen und vorübergehend in einem älteren Thinkpad (z.B. dem Thinkpad 600) oder (mit einem passenden Adapter) in einen normalen PC einzubauen. Sobald dies erfolgt ist, können Sie die FreeBSD-Partition löschen und die Festplatte wieder in das Thinkpad einbauen. Das Thinkpad sollte jetzt wieder starten können. Danach können Sie mit der nachfolgend beschriebenen Anleitung eine funktionsfähige FreeBSD-Installation erhalten. Beschaffen Sie sich boot1 und boot2 von . Legen Sie diese Dateien so ab, dass Sie während der Installation darauf zugreifen können. Installieren Sie ganz wie gewohnt FreeBSD auf dem Thinkpad. Allerdings dürfen Sie den Dangerously Dedicated-Modus nicht benutzen. Nach dem Abschluss der Installation dürfen Sie die Maschine nicht neu starten. Wechseln Sie zur Emergency Holographic Shell ( Alt F4 ) oder starten Sie eine fixit Shell. Benutzen Sie &man.fdisk.8;, um die Partitions-ID von FreeBSD von 165 in 166 zu ändern (dieser Wert wird von OpenBSD benutzt). Kopieren Sie die Dateien boot1 und boot2 auf die lokale Festplatte. Installieren Sie boot1 und boot2 mit &man.disklabel.8; auf die FreeBSD-Slice. &prompt.root; disklabel -B -b boot1 -s boot2 ad0sn Setzen Sie für n die Nummer der Slice ein, auf der sie FreeBSD installiert haben. Starten Sie das System neu. Am Boot-Prompt sollten Sie die Auswahl OpenBSD erhalten. Damit wird in Wirklichkeit FreeBSD gestartet. Was Sie machen müssen, wenn Sie FreeBSD und OpenBSD parallel installieren wollen, sollten Sie zu Übungszwecken einfach einmal selbst herausfinden. Kann ich FreeBSD auf einer Festplatte mit beschädigten Blöcken installieren? Prinzipiell ja. Allerdings ist das keine gute Idee. Wenn Ihnen bei einer modernen IDE-Platte defekte Sektoren gemeldet werden, wird die Platte mit großer Wahrscheinlichkeit innerhalb kurzer Zeit vollständig ausfallen, da die Meldung ein Zeichen dafür ist, dass die für die Korrektur reservierten Sektoren bereits verbraucht wurden. Wir raten Ihnen, die Platte auszutauschen. Falls Sie ein SCSI-Laufwerk mit beschädigten Blöcken besitzen, lesen Sie diese Antwort. Wenn ich von der Installationsdiskette boote, geschehen merkwürdige Dinge! Was sollte ich tun? Falls Sie beobachten, dass ihr Rechner sich bis zum Stillstand abmüht oder spontan rebootet, während Sie versuchen, von der Installationsdiskette zu booten, sollten Sie sich drei Fragen stellen: Haben Sie eine brandneue, frisch formatierte, fehlerfreie Diskette benutzt (günstigerweise eine brandneue, direkt aus dem Karton und nicht eine Diskette aus einem Magazin, das schon seit drei Jahren unter Ihrem Bett lag)? Haben Sie das Floppy-Image im Binär- (oder Image) Modus heruntergeladen? (Schämen Sie sich nicht. Sogar die besten unter uns haben wenigstens einmal Binärdateien versehentlich im ASCII-Modus heruntergeladen!) Falls Sie &windows; 95 oder &windows; 98 benutzen, haben Sie es heruntergefahren und fdimage bzw. rawrite in einfachem, reinem DOS neu gestartet? Es scheint, dass diese Betriebssysteme Programme stören, die direkt auf Hardware schreiben, wie es das Erstellungsprogramm für die Diskette tut; selbst bei der Ausführung des Programms in einem DOS-Fenster in der grafischen Benutzeroberfläche kann dieses Problem auftreten. Es wurde auch darüber berichtet, dass &netscape; Probleme beim Herunterladen der Bootdisketten verursacht. Es ist also wahrscheinlich besser, einen anderen FTP-Client zu benutzen. Ich habe zur Installation von meinem ATAPI CDROM gebootet, aber das Installationsprogramm sagt mir, dass es kein CDROM gefunden hat. Was geht hier ab? Dieses Problem wird üblicherweise durch ein falsch konfiguriertes CDROM verursacht. Bei vielen PCs ist das CDROM der Slave am zweiten IDE-Controller, ein Master ist nicht vorhanden. Laut Spezifikation ist diese Konfiguration illegal, aber &windows; verletzt die Spezifikation und das BIOS ignoriert sie, wenn es von einem CDROM booten soll. Daher konnten Sie zwar vom CDROM booten, während FreeBSD es nicht für die Installation benutzen kann. Um dieses Problem zu lösen, müssen Sie entweder das CDROM als Master an den IDE-Controller anschließen oder dafür sorgen, dass an dem vom CDROM genutzten IDE-Controller das CD-ROM als Slave und ein anderes Gerät als Master angeschlossen ist. Kann ich auf meinem Laptop per PLIP (Parallel Line IP) installieren? Ja, Sie brauchen dazu nur ein ganz normales Laplink-Kabel. Weitere Informationen zum Thema Netzwerke am Druckerport finden sie im Kapitel PLIP des Handbuchs. Welche Geometrie sollte ich für ein Festplattenlaufwerk verwenden? Unter der Geometrie einer Festplatte verstehen wir die Anzahl Zylinder, Schreib-/Leseköpfen und Sektoren/Spur auf einer Festplatte. Im folgenden wird dafür der Übersichtlichkeit halber der Begriff C/H/S verwendet. Das BIOS des PCs berechnet mit diesen Angaben, auf welche Bereiche der Festplatte es für Schreib-/Lesezugriffe zugreifen muss). Aus einigen Gründen scheint dies gerade bei frischgebackenen Systemadministratoren für sehr viel Verwirrung zu sorgen. Zunächst einmal ist die physikalische Geometrie eines SCSI-Laufwerks vollkommen irrelevant, da FreeBSD mit Blöcken arbeitet. Tatsächlich gibt es die physikalische Geometrie nicht, da die Sektordichte auf einer Festplatte variiert. Was die Hersteller als die wahre physikalische Geometrie bezeichnen, ist im allgemeinen die Geometrie, die aufgrund ihrer Ergebnisse im geringsten ungenutzten Speicher resultiert. Bei IDE-Platten arbeitet FreeBSD mit C/H/S-Angaben, aber alle modernen Laufwerke wandeln diese intern ebenfalls in Blocknummern um. Wichtig ist nur die logische Geometrie. Das BIOS kann die logische Geometrie der Festplatte abfragen; die erhaltenen Daten werden dann vom BIOS bei Zugriffen auf die Festplatte genutzt. Da FreeBSD das BIOS benutzt, während es bootet, ist es sehr wichtig, dass diese Angaben richtig sind. Insbesondere müssen alle Betriebssysteme mit derselben Geometrie arbeiten, falls Sie mehr als ein Betriebssystem auf einer Festplatte haben. Andernfalls werden Sie ernsthafte Bootprobleme bekommen! Bei SCSI-Festplatten hängt die zu verwendende Geometrie davon ab, ob der Extended Translation Support auf Ihrem Controller eingeschaltet ist (oft auch als Unterstützung für DOS-Platten >1GB oder ähnlich bezeichnet). Falls sie ausgeschaltet ist, benutzen Sie N Zylinder, 64 Köpfe und 32 Sektoren/Spur, wobei N die Kapazität der Festplatte in MB ist. Zum Beispiel sollten für eine 2GB Festplatte 2048 Zylinder, 64 Köpfe und 32 Sektoren/Spur angegeben werden. Falls sie eingeschaltet ist (was oft der Fall ist, um bestimmte Einschränkungen von &ms-dos; zu umgehen) und die Plattenkapazität mehr als 1GB beträgt, benutzen Sie M Zylinder, 63 Sektoren/Spur (nicht 64) und 255 Köpfe, wobei M der Plattenkapazität in MB, dividiert durch 7,844238 entspricht (!). Also würde unsere 2GB Beispielplatte 261 Zylinder, 63 Sektoren/Spur und 255 Köpfe haben. Falls Sie sich hier nicht sicher sind oder FreeBSD während der Installation die Geometrie nicht richtig erkennt, hilft es normalerweise, eine kleine DOS-Partition auf der Festplatte anzulegen. Das BIOS sollte dann in der Lage sein, die richtige Geometrie zu erkennen. Sie können die Partition jederzeit im Partitioneditor entfernen, falls Sie sie nicht behalten möchten. Allerdings kann Sie ganz nützlich sein, um Netzwerkkarten zu programmieren und ähnliches. Alternativ können Sie das frei verfügbare Programm pfdisk.exe verwenden. Sie finden es im Unterverzeichnis tools auf der FreeBSD-CDROM und allen FreeBSD FTP-Servern). Mit diesem Programm können Sie herausfinden, welche Geometrie die anderen Betriebssysteme auf der Festplatte verwenden. Diese Geometrie können Sie im Partitioneditor eingeben. Gibt es irgendwelche Einschränkungen, wie ich die Festplatte aufteilen darf? Ja. Sie müssen sicherstellen, dass Ihre Rootpartition innerhalb der ersten 1024 Zylinder liegt, damit das BIOS den Kernel von Ihr booten kann. (Beachten Sie, dass es sich um eine Einschränkung durch das BIOS des PCs handelt und nicht durch FreeBSD). Für ein SCSI-Laufwerk bedeutet dies normalerweise, dass sich die Rootpartition in den ersten 1024MB befindet (oder in den ersten 4096MB, falls die Extended Translation eingeschaltet ist - siehe die vorherige Frage). Der entsprechende Wert für IDE ist 504MB. Verträgt sich FreeBSD mit Plattenmanagern? FreeBSD erkennt den Ontrack Plattenmanager und berücksichtigt ihn. Andere Plattenmanager werden nicht unterstützt. Falls Sie die Festplatte nur mit FreeBSD benutzen wollen, brauchen Sie keinen Plattenmanager. Wenn Sie Sie die Platte einfach in der vom BIOS maximal unterstützten Größe (normalerweise 504 Megabyte) konfigurieren, sollte FreeBSD erkennen, wie viel Platz Sie tatsächlich haben. Falls Sie eine alte Festplatte mit einem MFM-Controller verwenden, könnte es sein, dass Sie FreeBSD explizit angeben müssen, wie viele Zylinder es benutzen soll. Falls Sie die Festplatte mit FreeBSD und einem anderen Betriebssystem benutzen wollen, sollten Sie auch in der Lage sein, ohne einen Plattenmanager auszukommen: stellen sie einfach sicher, dass sich die Bootpartition von FreeBSD und der Bereich für das andere Betriebssystem in den ersten 1024 Zylindern befinden. Eine 20 Megabyte Bootpartition sollte völlig genügen, wenn Sie einigermaßen sorgfältig arbeiten. Beim ersten Booten von FreeBSD erscheint Missing Operating System. Was ist passiert? Dies ist ein klassischer Fall von Konflikten bei den verwendeten Plattengeometrien von FreeBSD und DOS oder anderen Betriebssystemen. Sie werden FreeBSD neu installieren müssen. Bei Beachtung obiger Instruktionen wird in den meisten Fällen alles funktionieren. Wieso komme ich nicht weiter als bis zum F?-Prompt des Bootmanagers? Dies ist ein weiteres Symptom für das bereits in der vorherigen Frage beschriebene Problem. Ihre Einstellungen zur Geometrie im BIOS und in FreeBSD stimmen nicht überein! Falls Ihr Controller oder BIOS Zylinderumsetzung (oft als >1GB drive support bezeichnet), probieren Sie eine Umsetzung dieser Einstellung und Neuinstallation von FreeBSD. Muss ich den vollständigen Quellcode installieren? Im allgemeinen nicht. Wir empfehlen jedoch dringend die Installation des base Source-Kit, das viele der hier erwähnten Dateien enthält und des sys (Kernel) Source-Kit, das den Quellcode für den Kernel enthält. Außer dem Programm zur Konfiguration des Kernels (&man.config.8;) gibt es im System nichts, zu dessen Funktion der Quellcode erforderlich ist. Mit Ausnahme der Kernelquellen ist unsere Build-Struktur so aufgebaut, dass Sie den Quellcode von überall her per NFS read-only mounten und dennoch neue Binaries erstellen können. (Wegen der Einschränkung bezüglich der Kernelquellen empfehlen wir, diese nicht direkt nach /usr/src zu mounten, sondern irgendwoanders hin mit passenden symbolischen Links, um die Toplevel-Struktur des Quellbaumes zu duplizieren.) Die Quellen verfügbar zu haben und zu wissen, wie man ein System mit ihnen erstellt, wird es Ihnen wesentlich einfacher machen, zu zukünftigen Ausgaben von FreeBSD zu wechseln. Um einen Teil der Quellen auszuwählen, verwenden Sie den Menüpunkt Custom, wenn Sie sich im Menü Distributions des Systeminstallationstools befinden. Muss ich einen Kernel erstellen? Ursprünglich war die Erstellung eines neuen Kernels bei fast jeder Installation von FreeBSD erforderlich, aber neuere Ausgaben haben von der Einführung weitaus benutzerfreundlicherer Kernelkonfigurationswerkzeuge profitiert. Unter 4.X und älter geben Sie am FreeBSD Boot-Prompt (boot:) ein, um in ein visuelles Konfigurationsmenü zu gelangen. Dieses Programm ermöglicht Ihnen die Konfiguration der Kerneleinstellungen für die gebräuchlichsten ISA-Karten. Ab &os; 5.X wurde dieses Konzept durch die deutlich flexibleren hints ersetzt, die am Loader-Prompt eingegeben werden können. Es kann dennoch sinnvoll sein, einen neuen Kernel zu erstellen, der nur die benötigten Treiber enthält, um ein wenig Hauptspeicher zu sparen, für die meisten Systeme ist dies aber nicht mehr länger erforderlich. Soll ich DES, Blowfisch oder MD5 zur Verschlüsselung der Passwörter benutzen? FreeBSD benutzt standardmäßig MD5 zur Verschlüsselung der Passwörter. Es wird angenommen, dass diese Methode sicherer ist als das traditionell benutzte Verfahren, das auf dem DES Algorithmus basierte. Es ist immer noch möglich, DES-Passwörter zu benutzen, wenn Sie die Datei mit den Passwörtern mit älteren System austauschen müssen. Ältere System verstehen meist nur das unsichere Verfahren, dieses steht Ihnen zur Verfügung, wenn Sie mit sysinstall die crypto Distribution installieren. Sie können auch die crypto Sourcecodes installieren, wenn Sie Ihr System über die Sourcen aktualisieren. Die crypto Bibliotheken erlauben es Ihnen das sichere Blowfisch Verfahren für die Verschlüsselung der Passwörter einzusetzen. Das für neue Passwörter benutzte Verschlüsselungsverfahren wird über die Einstellung passwd_format in /etc/login festgelegt. Die möglichen Werte sind entweder des, blf (falls sie zur Verfügung stehen) oder md5. Weitere Informationen über die Einstellungen für den Login erhalten Sie in &man.login.conf.5;. Woran kann es liegen, dass ich zwar von der Diskette booten kann, aber nicht weiter als bis zur Meldung Probing Devices... komme? Falls Sie ein IDE &iomegazip;- oder &jaz;-Laufwerk eingebaut haben, entfernen Sie es und versuchen Sie es erneut. Solche Laufwerke könnten dem Bootvorgang stören. Nach der Installation des Systems können Sie das Laufwerk wieder einbauen. Dieser Fehler wird hoffentlich in einer späteren Version behoben werden. Wieso wird mit der Fehler panic: cant mount root gemeldet, wenn ich das System nach der Installation reboote? Dieser Fehler beruht auf Unstimmigkeiten zwischen den Festplatteninformationen im Bootblock und denen im Kernel. Der Fehler tritt normalerweise auf IDE-Systemen mit zwei Festplatten auf, bei denen die Festplatten als Master- oder Single-Device auf separaten IDE-Controllern angeschlossen sind und FreeBSD auf der Platte am zweiten Controller installiert wurde. Der Bootblock vermutet, dass das System auf ad0 (der zweiten BIOS-Platte) installiert ist, während der Kernel der ersten Platte auf dem zweiten Controller die Gerätekennung ad2 zuteilt. Der Kernel versucht nach der Geräteüberprüfung die vom Bootblock angenommene Bootdisk ad0 zu mounten, obwohl sie in Wirklichkeit ad2 heißt - und scheitert. Tun Sie folgendes, um dieses Problem zu beheben: Rebooten Sie das System und drücken Sie Enter, wenn die Meldung Booting kernel in 10 seconds; hit [Enter] to interrupt erscheint. Dadurch gelangen Sie in den Boot Loader. Geben Sie nun root_disk_unit="disk_number" ein. disk_number hat den Wert 0, wenn FreeBSD auf dem Master des ersten IDE-Controllers installiert wurde; 1, wenn FreeBSD auf dem Slave des ersten IDE-Controllers installiert wurde; 2, wenn FreeBSD auf dem Master des zweiten IDE-Controllers installiert wurde; und 3, wenn FreeBSD auf dem Slave des zweiten IDE-Controllers installiert wurde. Nach der Eingabe von boot sollte Ihr System jetzt korrekt starten. Damit Sie dieses Ritual nicht bei jedem Start des Systems durchführen müssen, sollten Sie die Zeile root_disk_unit="disk_number" in die Datei /boot/loader.conf.local eintragen. Stellen Sie eine ununterbrochene Folge der Festplatten her, indem Sie die FreeBSD-Platte am ersten IDE-Controller anschließen. Gibt es eine Hauptspeicherbegrenzung? Bei einer &i386;-Standardinstallation werden maximal 4 Gigabyte Hauptspeicher unterstützt. Seit &os; 4.9 und 5.1 wird auch ein größerer Hauptspeicher unterstützt. Dazu müssen Sie die zusätzliche Option PAE (&man.pae.4;) in Ihren Kernel kompilieren: options PAE &os;/pc98 unterstützt maximal 4 GB Hauptspeicher, daher kann PAE auf diesen Systemen nicht verwendet werden. Unter &os;/alpha hängt dieses Limit von der verwendeten Hardware ab - lesen Sie daher die Alpha Hardware Release Notes für weitere Informationen. Sonstige von &os; unterstützte Architekturen haben ein sehr viel höheres theoretisches Speicherlimit (viele Terabytes). Wo liegen die Grenzen für ffs-Dateisysteme? Theoretisch liegt das Limit für ffs-Dateisysteme bei 8 Terabyte (2G-Blöcke) oder 16TB für die Standard-Blockgröße von 8k. In der Praxis setzt die Software das Limit auf 1 Terabyte herab, aber durch Modifikationen sind auch Dateisysteme mit 4 Terabyte möglich (und existieren auch). Die maximale Größe einer einzelnen ffs-Datei liegt bei ungefähr 1G Blöcken (4TB, falls die Blockgröße 4k beträgt). Maximale Dateigröße Blockgröße geht sollte gehen 4K 4T-1 >4T 8K >32G 32T-1 16K >128G 32T-1 32K >512G 64T-1 64K >2048G 128T-1
Wenn die im Dateisystem verwendete Blockgröße 4k beträgt, wird mit dreifacher Indirektion gearbeitet und die Limitierung sollte durch die höchste Blocknummer erfolgen, die mit dreifacher Indirektion dargestellt werden kann (ungefähr 1k^3 + 1k^2 + 1k). In Wirklichkeit liegt das Limit aber bei der (falschen) Anzahl von 1G-1 Blocknummern im Dateisystem. Die maximale Anzahl der Blocknummern müsste 2G-1 sein. Es gibt einige Fehler für Blocknummern nahe 2G-1, aber solche Blocknummern sind bei einer Blockgröße von 4k unerreichbar. Bei Blocknummern von 8k und größer sollte das Limit bei 2G-1 Blocknummern liegen, tatsächlich liegt es aber bei 1G-1 Blocknummern. Die Verwendung der korrekten Grenze von 2G-1 verursacht Probleme.
Wieso erhalte ich die Fehlermeldung archsw.readin.failed beim Start des Systems, nachdem ich einen neuen Kernel erstellt habe? Ihr System und Ihr Kernel sind nicht synchron - dies ist nicht erlaubt. Sie müssen Ihren Kernel mit make buildworld und make buildkernel aktualisieren. Sie können den zu bootenden Kernel direkt im zweiten Schritt angeben, indem Sie eine beliebige Taste drücken, wenn das | erscheint und bevor der Loader startet. Was sind die Sicherheits-Profile? In einem Sicherheits-Profil werden verschiedene Einstellungen zusammengefasst, mit denen das gewünschte Verhältnis zwischen Sicherheit und Benutzerfreundlichkeit hergestellt werden soll. Um dies zu erreichen, werden bestimmte Dienste und Features entweder aktiviert oder deaktiviert. Die Details sind im Abschnitt Security Profile des Handbuch-Kapitels Post-Installation enthalten. Mein System stürzt beim Booten ab! Was kann ich tun? Deaktivieren Sie die ACPI-Unterstützung. Dazu drücken Sie beim Start des Bootloaders die Leertaste. Das System antwortet darauf mit OK Geben Sie nun unset acpi_load und danach boot ein.
Hardware-Kompatibilität Allgemeines Ich will mir neue Hardware für mein FreeBSD-System zulegen, was soll ich kaufen? Diese Frage wird ständig auf den FreeBSD-Mailinglisten diskutiert. Da sich die Hardware ständig ändert, ist das allerdings keine Überraschung. Trotzdem sollten Sie unbedingt die Hardware-Informationen von &os; (&rel.current; oder &rel2.current;) und die Archive der Mailinglisten durchsehen, bevor Sie nach der neuesten/besten Hardware fragen. Normalerweise gab es kurz zuvor eine Diskussion über genau die Hardware, die Sie sich zulegen wollen. Wenn Sie sich einen Laptop zulegen wollen, sollten Sie einen Blick in das Archiv der Mailingliste FreeBSD-mobile werfen. Ansonsten empfiehlt sich ein Blick in das Archiv von FreeBSD-questions oder auch einer spezialisierte Mailingliste für diese Art von Hardware. Architekturen und Prozessoren Unterstützt FreeBSD neben x86 auch andere Architekturen? Ja. FreeBSD ist zurzeit für die Intel x86 und DEC (jetzt Compaq) Alpha Architekturen verfügbar. Seit FreeBSD 5.0 werden auch AMD64 sowie Intel EM64T, IA-64 und &sparc64; unterstützt. Die Neuzugänge auf der Liste der in Zukunft unterstützten Plattformen sind &mips; und &powerpc;. Abonnieren Sie die Mailinglisten &a.ppc; oder &a.mips; wenn Sie mehr über den Stand der Entwicklung erfahren wollen. Schließen Sie sich der Mailingliste &a.platforms; an, wenn Sie an grundsätzlichen Diskussionen über neue Architekturen interessiert sind. Falls Ihre Maschine eine andere Architektur aufweist und Sie unbedingt sofort etwas benötigen, schlagen wir vor, dass Sie sich einmal NetBSD oder OpenBSD ansehen. Unterstützt FreeBSD Symmetric-Multiproccessing (SMP)? Ja, seit &os;-Version 5.2 wurde SMP bereits im GENERIC-Kernel aktiviert. Dies sollte eigentlich auch für &os; 5.3 gelten. Allerdings traten bei der Entwicklung des Kernels auf einigen Rechnern Probleme auf. Daher entschloss man sich, SMP in der Voreinstellung zu deaktivieren, bis diese Probleme behoben sind. Dies ist eine der vordringlichen Aufgaben für &os; 5.4. Unter &os; 4.X ist SMP im Standardkernel nicht aktiviert. Sie müssen daher einen neuen Kernel mit SMP-Unterstützung bauen. Die dazu nötigen Optionen entnehmen Sie bitte der Datei /sys/i386/conf/LINT. Festplatten, Bandlaufwerke, sowie CD- und DVD-Laufwerke Welche Arten von Festplatten werden von FreeBSD unterstützt? FreeBSD unterstützt EIDE- und SCSI-Laufwerke (mit kompatiblen Controllern - siehe folgenden Abschnitt), sowie alle Laufwerke, die die original Western Digital-Schnittstelle (MFM, RLL, ESDI und natürlich IDE) benutzen. Ein paar Controller mit proprietären Schnittstellen könnten nicht laufen: halten Sie sich an WD1002/3/6/7-Schnittstellen und Clones. Welche SCSI-Controller werden unterstützt? Sie finden eine vollständige und aktuelle Liste in den Hardware-Informationen zu &os; (&rel.current; oder &rel2.current;). Welche Arten von Bandlaufwerken werden unterstützt? FreeBSD unterstützt SCSI-, QIC-36- (mit QIC-02-Schnittstelle) und QIC-40/80-Bandlaufwerke (diskettenbasiert). Hierzu gehören auch 8-mm (aka Exabyte) und DAT-Laufwerke. Die QIC-40/80-Laufwerke sind bekanntlich sehr langsam. Einige der frühen 8-mm-Laufwerke sind nicht besonders kompatibel zu SCSI-2 und könnten unter FreeBSD nicht einwandfrei funktionieren. Unterstützt FreeBSD Bandwechsler? Das Gerät &man.ch.4; und das Kommando chio unterstützen Bandwechsler. Details zum Betrieb des Wechslers finden Sie in der Hilfeseite &man.chio.1;. Falls Sie nicht AMANDA oder ein anderes Produkt benutzen, das den Wechsler bereits kennt, bedenken Sie, dass die Programme nur wissen, wie sie ein Band von einem Punkt zu einem anderen bewegen müssen. Sie selbst müssen sich also merken, in welchem Einschub sich ein Band befindet und zu welchem Einschub das Band, das sich gerade im Laufwerk befindet, zurück muss. Welche CDROM-Laufwerke werden von FreeBSD unterstützt? Jedes an einem unterstützten Controller angeschlossene SCSI-Laufwerk wird unterstützt. Die folgenden proprietären CDROM-Schnittstellen werden ebenfalls unterstützt: Mitsumi LU002 (8bit), LU005 (16bit) und FX001D (16bit 2x Speed). Sony CDU 31/33A Sound Blaster Non-SCSI CDROM Matsushita/Panasonic CDROM ATAPI compatible IDE CDROMs Von allen Nicht-SCSI-Laufwerken ist bekannt, dass sie im Vergleich zu SCSI-Laufwerken extrem langsam sind. Einige ATAPI-CDROMs könnten nicht funktionieren. FreeBSD kann direkt von der offiziellen &os; CD-ROM, sowie den CD-ROMs von Daemon News und &os; Mall, gebootet werden. Welche CD-Brenner werden von FreeBSD unterstützt? FreeBSD unterstützt alle ATAPI-kompatiblen IDE CD-R und CD-RW Brenner. Lesen Sie dazu auch &man.burncd.8;. FreeBSD unterstützt ebenfalls SCSI CD-R und CD-RW Brenner. Installieren und benutzen Sie das Paket cdrecord aus der Ports-Sammlung. Dazu müssen Sie allerdings das Gerät pass mit in Ihren Kernel aufnehmen. Unterstützt FreeBSD &iomegazip;-Laufwerke? FreeBSD unterstützt alle gängigen SCSI- und ATAPI-&iomegazip;-Laufwerke. Ihr SCSI-ZIP-Laufwerk darf nur mit den SCSI-Ziel-IDs 5 oder 6 laufen, aber Sie können sogar davon booten, falls das BIOS Ihres Hostadapters dies unterstützt. Es ist nicht bekannt, welche Hostadapter das Booten von anderen Zielen als 0 oder 1 erlauben; daher werden Sie in ihren Handbüchern nachsehen müssen, wenn Sie dieses Merkmal benutzen möchten. FreeBSD unterstützt ZIP-Laufwerke, die an der parallelen Schnittstelle angeschlossen sind. Der Kernel sollte die folgenden Treiber enthalten: scbus0, da0, ppbus0 und vp0 (der GENERIC-Kernel enthält alle, außer vp0). Wenn diese Treiber vorhanden sind, sollte das Laufwerk an der parallelen Schnittstelle als /dev/da0s4 verfügbar sein. Zip-Datenträger können mit mount /dev/da0s4 /mnt ODER (DOS-formatierte) mount_msdos /dev/da0s4 /mnt gemountet werden. Lesen Sie auch den FAQ-Eintrag zu Wechseldatenträgern und die Anmerkungen zum Thema Formatierung im Kapitel Administration. Unterstützt FreeBSD &jaz;, EZ und andere Wechsellaufwerke? Ja. Bei den meisten dieser Geräte handelt es sich um SCSI-Geräte, die von FreeBSD auch als solche angesprochen werden. Lediglich das IDE-EZ-Laufwerk wird als IDE-Laufwerk angesprochen. Schalten Sie die Laufwerke ein, bevor Sie Ihr System booten. Müssen Sie Medien im laufenden Betrieb wechseln, sollten Sie zuvor &man.mount.8;, &man.umount.8;, sowie &man.camcontrol.8; (für SCSI-Laufwerke) oder &man.atacontrol.8; (für IDE-Laufwerke), sowie den Abschnitt zur Nutzung von Wechsellaufwerken dieser FAQ lesen. Tastaturen und Mäuse Unterstützt FreeBSD meine Tastatur mit USB-Anschluss? Ja. FreeBSD unterstützt USB-Tastaturen, wenn Sie die USB-Unterstützung in /etc/rc.conf aktivieren. Wenn Sie die Unterstützung für USB-Tastaturen konfiguriert haben, ist die AT-Tastatur als /dev/kbd0 und die USB-Tastatur als /dev/kbd1 verfügbar. Dies gilt natürlich nur, wenn beide Tastaturen angeschlossen sind; falls nur die USB-Tastatur angeschlossen ist, ist diese als /dev/ukbd0 verfügbar. Wenn Sie die USB-Tastatur an der Systemkonsole benutzen wollen, müssen Sie dies dem System explizit mitteilen. Dazu muss das folgende Kommando während des Systemstarts ausgeführt werden: &prompt.root; kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null Wenn 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/ttyv0 > /dev/null Tragen Sie dieses Kommando in Datei /etc/rc.i386 ein. Sobald Sie diese Schritte durchgeführt haben, sollte die USB-Tastatur ohne weitere Änderungen auch unter X benutzbar sei. Zurzeit kann es noch Probleme geben, wenn Sie eine USB-Tastatur im laufenden Betrieb einstecken oder abziehen. Um Probleme zu vermeiden, sollten Sie die Tastatur anschließen, bevor Sie das System anschalten und die Tastatur nicht abziehen, solange das System noch läuft. Weitere Informationen erhalten Sie in &man.ukbd.4;. Ich habe eine unübliche Busmaus. Wie muss ich sie konfigurieren? FreeBSD unterstützt die Busmaus und InPort-Busmaus von Herstellern wie Microsoft, Logitech und ATI. Der Gerätetreiber ist im GENERIC-Kernel allerdings nicht eingebunden. Wenn Sie den Bus-Gerätetreiber benötigen, müssen Sie daher einen angepassten Kernel erstellen. Dazu fügen Sie die folgende Zeile in Ihre Kernelkonfigurationsdatei ein: device mse0 at isa? port 0x23c irq5 Die Busmaus wird üblicherweise zusammen mit einer speziellen Karte ausgeliefert. Sie könnte es Ihnen ermöglichen, andere Werte für die Port-Adresse und den Interrupt zu setzen. Weitere Informationen finden Sie in Handbuch zu Ihrer Maus und in der &man.mse.4; Manualpage. Wie benutze ich meine PS/2 (Mouse-Port oder Tastatur)-Maus? PS/2 Mäuse werden von FreeBSD unterstützt. Der notwendige Gerätetreiber, psm, ist bereits im GENERIC-Kernel enthalten. Wenn Sie einen angepassten Kernel ohne diesen Treiber benutzen, müssen Sie folgende Zeile in Ihre Kernelkonfigurationsdatei einfügen und den Kernel neu kompilieren: device psm0 at atkbdc? irq 12 Wenn der Kernel das Gerät psm0 beim Booten korrekt erkennt, stellen Sie sicher, dass sich im Verzeichnis /dev ein Eintrag für psm0 befindet. Durch die Eingabe von &prompt.root; cd /dev; sh MAKEDEV psm0 können Sie diesen Eintrag auch selbst erstellen. Dazu müssen Sie allerdings als root angemeldet sind. Lassen Sie diesen Schritt aus, wenn Sie FreeBSD 5.0-RELEASE oder eine neuere Version mit &man.devfs.5; verwenden. Die Gerätedateien werden in diesem Fall automatisch in /dev erstellt. Kann man die Maus irgendwie außerhalb des X Window Systems benutzen? Falls Sie den normalen Konsoltreiber &man.syscons.4; benutzen, können Sie den Mauszeiger auf Textkonsolen zum Kopieren und Einfügen von Text verwenden. Starten Sie den Mausdämon &man.moused.8; und schalten Sie den Mauszeiger auf der virtuellen Konsole ein: &prompt.root; moused -p /dev/xxxx -t yyyy &prompt.root; vidcontrol -m on xxxx ist der Gerätename der Maus und yyyy ist das Protokoll. Der Mausdämon erkennt die Protokolle der meisten Mäuse (mit Ausnahme alter serieller Mäuse) automatisch, wenn Sie auto für das Protokoll angeben. Falls das Protokoll nicht automatisch erkannt wird, finden Sie die unterstützten Protokolle in der &man.moused.8; Manualpage. Wenn Sie eine PS/2-Maus besitzen und diese beim Systemstart aktivieren wollen, tragen Sie die Zeile moused_enable="YES" in die Datei /etc/rc.conf ein. Falls Sie den Mausdämon auf allen virtuellen Bildschirmen anstatt nur auf der Konsole benutzen wollen, tragen Sie außerdem allscreens_flags="-m on" in /etc/rc.conf ein. Während der Mausdämon läuft, muss der Zugriff auf die Maus zwischen dem Mausdämon und anderen Programmen, wie X Windows, koordiniert werden. Die FAQ Warum funktioniert meine meine Maus unter X nicht? enthält weitere Details. Wie funktioniert das Kopieren und Einfügen von Text mit der Maus auf einer Textkonsole? Wenn Sie es geschafft haben, den Mausdämon zu starten (wie im vorherigen Abschnitt gezeigt), halten Sie die linke Maustaste gedrückt und bewegen Sie die Maus, um einen Textabschnitt zu markieren. Dann drücken Sie die mittlere Maustaste, um den Text an der Cursorposition einzufügen. Wenn Sie keine 3-Tasten-Maus besitzen, können Sie die mittlere Maustaste mit einer Tastenkombination emulieren oder die Funktion der mittleren Taste auf eine andere Taste legen. Einzelheiten dazu enthält die Hilfeseite &man.moused.8;. Meine Maus hat ein neumodisches Rad und mehr Knöpfe. Kann ich sie in FreeBSD benutzen? Unglücklicherweise lautet die Antwort: Vielleicht. Solche Mäuse mit zusätzlichen Extras erfordern in den meisten Fällen spezielle Treiber. Wenn der Gerätetreiber für die Maus oder das Anwendungsprogramm keine spezielle Unterstützung für die Maus bietet, wird sie sich wie eine gewöhnliche Maus mit zwei oder drei Knöpfen verhalten. Ob und wie Sie das Rad unter X benutzen können, können Sie im passenden Abschnitt der FAQ erfahren. Wie benutze ich Maus/Trackball/Touchpad auf meinem Laptop? Bitte lesen Sie die Antwort zur vorherigen Frage. Netzkarten und serielle Geräte Welche Netzwerkkarten unterstützt FreeBSD? In den Hardware Informationen zu jedem FreeBSD Release werden die unterstützten Karten aufgezählt. Wieso erkennt FreeBSD mein internes Plug & Play-Modem nicht? Sie werden die PnP-ID Ihres Modems in die PnP-ID-Liste des seriellen Treibers aufnehmen müssen. Erstellen Sie einen neuen Kernel mit dem Eintrag controller pnp0 in der Konfigurationsdatei und rebooten Sie Ihr System, um die Plug & Play-Unterstützung zu aktivieren. Der Kernel wird nun alle PnP-IDs der gefundenen Geräte ausgeben. In der Datei /sys/i386/isa/sio.c finden Sie ab Zeile 2777 (ca.) eine Tabelle, in der Sie die PnP-ID des Modems eintragen müssen. Suchen Sie die Zeichenfolge SUP1310 in der Struktur siopnp_ids[], um die Tabelle zu finden. Erstellen Sie den Kernel nochmals, installieren Sie ihn, rebooten Sie, und Ihr Modem sollte erkannt werden. Möglicherweise müssen Sie in der boot-time-Konfiguration die PnP-Geräte manuell mit einem pnp-Befehl ähnlich pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8 konfigurieren, damit das Modem erkannt wird. Unterstützt FreeBSD Software Modems, wie die Winmodems? FreeBSD unterstützt viele Software-Modems, wenn Sie zusätzliche Software installieren. Der Port comms/ltmdm bietet Unterstützung für Modems, die auf dem oft verwendeten Lucent LT Chipsatz basieren. Der Port comms/mwavem bietet Unterstützung für die Modems im IBM Thinkpad 600 und 700. Sie können FreeBSD nicht über ein Software-Modem installieren, diese Software kann nur installiert werden, nachdem das Betriebssystem installiert wurde. Gibt es einen FreeBSD-Treiber für die Karten der Serie 43xx von Broadcom? Nein, und es wird wohl auch nie einen geben. Broadcom weigert sich, Informationen zu ihren drahtlosen Chipsätzen zu veröffentlichen. Wahrscheinlich liegt dies daran, dass Broadcom auch softwaregesteuerte Radios herstellt. Damit ihre Produkte von der FCC zugelassen werden, muss sichergestellt sein, dass Benutzer nicht in der Lage sind, Betriebsfrequenzen, Modulationsparameter, Ausgangsleistung und andere Werte nach Belieben einzustellen. Ohne solche Informationen ist es aber nahezu unmöglich, einen Treiber zu programmieren. Welche seriellen Multi-Port-Karten werden von FreeBSD unterstützt? Es existiert eine Liste der unterstützten Karten im Abschnitt Verschiedene Geräte des Handbuchs. Von einigen nicht NoName-Nachbauten ist ebenfalls bekannt, dass sie funktionieren, speziell von den AST-kompatiblen. In &man.sio.4; finden Sie weitere Informationen zur Konfiguration solcher Karten. Wie kann ich den boot:-Prompt auf einer seriellen Konsole erscheinen lassen? Erstellen Sie einen Kernel mit options COMCONSOLE. Erstellen Sie /boot.config mit als einzigem Text in der Datei. Ziehen Sie das Tastaturkabel aus dem Rechner. Lesen Sie /usr/src/sys/i386/boot/biosboot/README.serial zur Information. Soundkarten Welche Soundkarten werden von FreeBSD unterstützt? &os; unterstützt verschiedene Soundkarten wie &soundblaster;, &soundblaster; Pro, &soundblaster; 16, Pro Audio Spectrum 16, AdLib und Gravis UltraSound. Lesen Sie die &os; Release Informationen sowie &man.snd.4;, wenn Sie genauere Informationen benötigen. MPU-401 und kompatible MIDI-Karten werden begrenzt unterstützt. Ebenso unterstützt werden Karten, die der µsoft; Sound System-Spezifikation entsprechen. Das gilt nur für Sound! Dieser Treiber unterstützt keine CDROMs, SCSI oder Joysticks auf diesen Karten, außer der &soundblaster;. Die &soundblaster;-SCSI-Schnittstelle und einige Nicht-SCSI-CDROMs werden unterstützt, Sie können von diesen Geräten aber nicht booten. Abhilfen für fehlenden Sound bei Verwendung des &man.pcm.4;-Treibers? Einige Soundkarten, darunter solche mit es1370-Chip, setzen die Lautstärke bei jedem Systemstart auf 0. In diesem Fall müssen Sie nach jedem Bootvorgang den folgenden Befehl ausführen: &prompt.root; mixer pcm 100 vol 100 cd 100 Sonstige Hardware Welche Geräte werden noch von FreeBSD unterstützt? Im Handbuch finden Sie eine Liste von anderen unterstützten Geräten. Unterstützt FreeBSD Power-Management auf meinem Laptop? FreeBSD 4.X unterstützt APM auf einigen Systemen. Lesen Sie dazu auch &man.apm.4;. FreeBSD 5.X und neuer unterstützen einen Großteil der ACPI-Funktionen moderner Hardware. Lesen Sie dazu auch &man.acpi.4;. Unterstützt Ihr System sowohl APM als auch ACPI, können Sie beide Systeme testen und sich für das System entscheiden, das Ihren Anforderungen am besten entspricht. Wie kann ich ACPI deaktivieren? Fügen Sie die Zeile hint.acpi.0.disabled="1" in die Datei /boot/device.hints ein. Wieso hängt sich mein Micron-System beim Booten auf? Einige Micron Motherboards besitzen eine nicht-konforme PCI-BIOS-Implementierung. Sie bereitet Kummer, wenn FreeBSD bootet, weil PCI-Geräte nicht an der angegebenen Adresse konfiguriert werden. Deaktivieren Sie Plug and Play Operating System im BIOS, um dieses Problem zu beheben. Wenn ich ein System mit einem ASUS K7V Mainboard von der Bootdiskette starte, hängt sich das System auf. Wie kann ich dieses Problem lösen? Schalten Sie im BIOS die Option boot virus protection aus. Warum arbeitet meine &tm.3com; PCI-Netzwerkkarte in meinem Micron-Computer nicht? Einige Micron Motherboards besitzen eine nicht-konforme PCI-BIOS-Implementierung, die die PCI-Geräte nicht an den angegebenen Adressen konfiguriert. Hierdurch entstehen Probleme, wenn FreeBSD bootet. Deaktivieren Sie die Option Plug and Play Operating System im BIOS, um das Problem zu umgehen. Meine PCMCIA-Karte funktioniert nicht und ich erhalte die Meldung: cbb0: unsupported card type detected.. Was kann ich tun? Sie können die ursprüngliche OLDCARD-Implementierung verwenden. Dazu entfernen Sie die folgenden Zeilen aus Ihrer Kernelkonfigurationsdatei: device cbb device pccard device cardbus Danach fügen Sie die folgenden Zeilen ein: device pcic device card 1 Um die Änderungen zu aktivieren, müssen Sie den neuen Kernel noch wie im Abschnitt Konfiguration des FreeBSD-Kernels des Handbuchs beschrieben bauen und installieren. Fehlerbehebung Warum zeigt &os; eine falsche Speichergröße an? Das liegt 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 existieren. 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 den entsprechenden FAQ-Eintrag. 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 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 FreeBSD können Sie das (als root) mit folgendem Befehl tun &prompt.root; camcontrol modepage sd0 -m 1 -e -P 3 und die Werte für AWRE und ARRE von 0 auf 1 ändern:- AWRE (Auto Write Reallocation Enbld): 1 ARRE (Auto Read Reallocation Enbld): 1 Moderne IDE-Controller sind in der Lage, fehlerhafte Blöcke automatisch zu verlagern. Diese Funktionen sind bereits ab Werk aktiviert. Werden dennoch fehlerhafte Blöcke gemeldet (egal auf welchem Laufwerk), sollten Sie über den Kauf einer neuen Platte nachdenken. Zwar könnte es Ihnen mit Diagnoseprogrammen des Plattenherstellers gelingen, diese fehlerhaften Blöcke zu sperren. Allerdings können Sie damit den endgültigen Ausfall der Platte bestenfalls hinauszögern. Wieso wird der SCSI-Controller meines HP Netserver nicht erkannt? Hierbei handelt es sich um ein bekanntes Problem. Der auf dem Board befindliche EISA-SCSI-Controller auf dem HP Netserver belegt die EISA-Slotnummer 11, wodurch sich alle wirklichen EISA-Slots vor ihm befinden. Leider kollidiert der Adressraum von EISA-Slots >=10 mit dem Adressraum, der PCI zugeordnet ist und die Autokonfiguration von FreeBSD kann mit dieser Situation derzeit nicht besonders gut umgehen. Die einfachste Alternative ist, diese Kollision einfach zu leugnen. Setzen Sie dazu die Kerneloption EISA_SLOTS auf den Wert 12. Konfigurieren und kompilieren Sie den Kernel, wie im Handbucheintrag zur Kernelkonfiguration beschrieben. Dies bringt Ihnen natürlich das klassische Huhn-Ei-Problem, wenn Sie auf einer solchen Maschine installieren wollen. Um dieses Problem zu umgehen, existiert ein spezieller Hack in UserConfig. Benutzen Sie nicht die visuelle Schnittstelle, sondern die rohe Kommandozeilenschnittstelle. Geben Sie einfach eisa 12 quit am Prompt ein und Sie können Ihr System ganz normal installieren. Sie sollten auf jeden Fall einen angepassten Kernel zu kompilieren und installieren. Zukünftige Versionen werden hoffentlich eine passende Lösung für dieses Problem beinhalten. Sie können keine dangerously dedicated Platte auf einem HP Netserver verwenden. Lesen Sie weitere Informationen finden Sie in diesem Hinweis. Was bedeuten die ständigen Meldungen ed1: timeout? Dies wird meistens durch einen Interruptkonflikt verursacht (z.B., wenn zwei Karten den selben Interrupt benutzen). Booten Sie mit der Option -c und ändern Sie die Einträge zu ed0/de0/... Ihrem Board entsprechend. Wenn Sie den BNC-Anschluss Ihrer Netzwerkkarte benutzen, könnte es auch sein, dass es sich Geräte-Timeouts aufgrund fehlerhafter Terminierung handelt. Um dies zu überprüfen, verbinden Sie einen Terminator direkt mit der Netzwerkkarte (ohne Kabel) und beobachten Sie, ob die Fehlermeldungen verschwinden. Einige NE2000 kompatible Karten melden diesen Fehler, wenn keine Verbindung am UTP-Eingang existiert oder wenn das Kabel nicht eingesteckt ist. Warum funktioniert meine &tm.3com; 3C509 plötzlich nicht mehr? Diese Karte ist dafür berüchtigt, ihre Konfiguration zu vergessen. Sie müssen die Karte mit dem DOS-Programm 3c5x9.exe neu konfigurieren. Mein an der parallel Schnittstelle angeschlossener Drucker ist unglaublich langsam. Was kann ich tun? Falls das einzige Problem ist, dass er schrecklich langsam ist, dann sollte Sie versuchen, die Kommunikationseinstellungen der parallelen Schnittstellen zu ändern, wie es im Kapitel Drucken des Handbuchs beschrieben ist. Wieso brechen meine Programme gelegentlich mit Signal 11-Fehlern ab? Das Signal 11 wird generiert, wenn ein Prozess versucht, auf Speicher zuzugreifen, obwohl er vom Betriebssystem dazu nicht befugt wurde. Wenn Ihnen das scheinbar zufällig immer wieder passiert, sollten Sie der Sache einmal auf der Grund gehen. Das Problem hat in der Regel eine der folgenden Ursachen: Wenn das Problem nur in einer bestimmten Anwendung auftritt, die Sie selbst entwickeln, dann ist es wahrscheinlich ein Fehler in Ihren Sourcen. Wenn das Problem in einem Teil von FreeBSD auftritt, könnte es natürlich auch ein Fehler sein; aber in den meisten Fällen werden diese Probleme gefunden und behoben, bevor die typischen Leser der FAQ (wir) diese Teile der Sourcen benutzen können (dafür gibt es schließlich -CURRENT). Wenn der Fehler auftritt, wenn Sie ein Programm compilieren aber dabei immer wieder an anderer Stelle auftritt, dann ist das ein ganz eindeutiger Hinweis, dass das Problem nicht bei FreeBSD liegt. Nehmen wir zum Beispiel an, dass Sie make buildworld ausführen und die Compilierung von ls.c in ls.o abbricht. Wenn Sie nochmal "make buildworld" durchführen und die Compilierung an der gleichen Stelle abbricht, handelt es sich um einen Fehler in den Sourcen. Aktualisieren Sie Ihre Sourcen und versuchen Sie es noch einmal. Wenn der Fehler jedoch an einer anderen Stelle auftritt, liegt das Problem mit an Sicherheit grenzender Wahrscheinlichkeit bei Ihrer Hardware. Was Sie tun sollten: Im ersten Fall können Sie einen Debugger wie z.B. gdb benutzen, um die Stelle im Programm zu finden, an der auf eine falsche Adresse zugegriffen wird und danach den Fehler beheben. Im zweiten Fall müssen Sie sicherstellen, dass das Problem nicht von Ihrer Hardware verursacht wird. Typische Ursachen dafür sind unter anderem: Es könnte sein, dass Ihren Festplatten zu warm werden: Überprüfen Sie, ob die Lüfter in Ihrem Gehäuse noch funktionieren, damit Ihre Festplatten (und andere Hardware) nicht heißlaufen. Der Prozessor überhitzt, weil Sie Ihn übertaktet haben oder der CPU-Kühler ausgefallen ist. Sie müssen sicherstellen, dass Sie Ihre Hardware unter den Bedingungen betreiben, für die sie spezifiziert ist, zumindestens während Sie versuchen, das Problem zu lösen. Mit anderen Worten: Betreiben Sie Ihre CPU mit der normalen Taktfrequenz. Wenn Sie übertakten, sollten Sie daran denken, dass ein langsames System deutlich billiger ist als ein defektes System. Die große Masse hat nicht sehr häufig Mitgefühl mit Problemen bei übertakteten System, auch wenn Sie es für ungefährlich halten. Unzuverlässiger Speicher: Wenn Sie mehr als ein SIMM/DIMM installiert haben, sollten Sie sie alle ausbauen und die Maschine testweise mit jedem SIMM oder DIMM einzeln betreiben. So können Sie feststellen, ob die Ursache ein einzelnes SIMM/DIMM oder auch eine Kombination von Modulen ist. Zu optimistische Einstellung des Mainboards: In Ihrem BIOS und mit den Jumpern auf dem Mainboard können Sie diverse Timings ändern. In den meisten Fällen reichen die Defaults aus, aber manchmal kann es durch zu wenig wait states, die Einstellung RAM Speed: Turbo oder ähnliches zu merkwürdigen Problemen kommen. Ein möglicher Ansatz ist, die BIOS defaults zu laden, allerdings könnte es sinnvoll sein, die aktuellen Einstellungen vorher zu notieren. Schlechte oder fehlerhafte Stromversorgung des Mainboards: Wenn Sie unbenutzte Steckkarten, Platten oder CDROMs in Ihrem System haben, sollten Sie sie testweise ausbauen oder die Stromversorgung abziehen. Dadurch können Sie prüfen, ob Ihr Netzteil eventuell mit einer geringeren Last besser zurechtkommt. Sie können auch testweise ein anderes, am besten ein leistungsfähigeres, Netzteil ausprobieren. Wenn Sie zurzeit ein 250W-Netzteil benutzen, sollten Sie testweise ein 300W-Netzteil einbauen. Die sollten ebenfalls die SIG11 FAQ (unten aufgeführt) lesen, da sie gute Erklärungen für alle diese Probleme enthält (allerdings aus &linux;-Sicht). Sie erklärt ebenfalls, warum sowohl Programme als auch Geräte zur Speicherprüfung fehlerhaften Speicher teilweise nicht erkennen. Wenn alle diese Schritte nicht helfen, ist es möglich, dass Sie einen Fehler in FreeBSD gefunden haben. Folgen Sie einfach den Anweisungen für die Erstellung eines Problem Reports. Es existiert eine ausführliche FAQ hierzu unter der SIG11-Problem-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 FreeBSD interessieren sich für solchen Meldungen, allerdings brauchen Sie deutlich mehr Informationen als die, die Ihnen angezeigt werden. Kopieren Sie die komplette Meldungen und lesen Sie nun den FAQ-Eintrag über kernel panics. Erzeugen sie einen Kernel mit den zusätzlichen Daten zur Fehlersuche, und dann einen backtrace. Das hört sich komplizierter an, als es ist. Sie brauchen keine Programmier-Erfahrung, Sie müssen einfach nur den Anweisungen folgen. Wieso wird beim Booten der Bildschirm schwarz und reagiert nicht mehr? Dies ist ein bekanntes Problem mit der ATI Mach 64 Videokarte. Das Problem besteht darin, dass diese Karte die Adresse 2e8 benutzt und die vierte serielle Schnittstelle ebenfalls. Aufgrund eines Fehlers (einer Besonderheit?) im &man.sio.4;-Treiber wird diese Schnittstelle angesprochen, auch wenn Sie gar keine vierte serielle Schnittstelle besitzen und sogar, wenn sie sio3 (die vierte Schnittstelle), die normalerweise diese Adresse verwendet, deaktivieren. Bis der Fehler behoben ist, können Sie folgende Abhilfe verwenden: Geben Sie am Bootprompt ein. (Dies bringt den Kernel in den Konfigurationsmodus). Deaktivieren Sie sio0, sio1, sio2 und sio3 (alle). Auf diese Weise wird der sio-Treiber nicht aktiviert und das Problem tritt nicht mehr auf. Geben Sie exit ein, um den Bootvorgang fortzusetzen. Falls sie in der Lage sein wollen Ihre seriellen Schnittstellen zu benutzen, müssen Sie einen neuen Kernel mit folgenden Modifikationen erstellen: suchen Sie in /usr/src/sys/i386/isa/sio.c nach der Zeichenkette 0x2e8 und löschen Sie sie und das vorhergehende Komma (nicht das folgende Komma). Nun folgen Sie der normalen Prozedur zur Erstellung eines neuen Kernels. Auch nach Anwendung dieser Maßnahmen könnte es sein, dass Ihr X Windows-System nicht einwandfrei funktioniert. Wenn dies der Fall ist, stellen Sie sicher, dass es sich bei der von Ihnen benutzten X Windows-Version mindestens um &xfree86; 3.3.3 oder höher handelt. Diese Version und höhere besitzen eine integrierte Unterstützung für Mach64-Karten und sogar einen dedizierten X-Server für sie. Wieso verwendet FreeBSD nur 64 MB Hauptspeicher, obwohl in meinem Rechner 128 MB sind? Aufgrund der Art und Weise, wie FreeBSD die Hauptspeichergröße vom BIOS mitgeteilt bekommt, kann es lediglich 16-Bit Werte in kByte-Größe (65535 kByte = 64MB) erkennen (oder weniger... einige BIOSe setzen die Hauptspeichergröße auf 16MB). Falls Sie mehr als 64MB besitzen, wird FreeBSD versuchen, das zu erkennen, was aber nicht immer funktioniert. Um dieses Problem zu umgehen, müssen Sie die untenstehende Kerneloption verwenden. Es gibt einen Weg, vollständige Hauptspeicherinformationen vom BIOS zu erhalten, aber in den Bootblöcken ist nicht genügend Platz dafür vorhanden. Wenn der Platzmangel in den Bootblöcken eins Tages behoben ist, werden wir die erweiterten BIOS-Funktionen dazu nutzen, die vollständigen Hauptspeicherinformationen zu erhalten... aber zurzeit sind wir auf die Kerneloption angewiesen. options "MAXMEM=n" Hierbei ist n Ihre Hauptspeichergröße in Kilobyte. Bei einer 128 MB-Maschine müßten Sie 131072 benutzen. Ich habe mehr als 1 GB RAM. Trotzdem stürzt mein System mit der Meldung kmem_map too small ab. Was läuft hier schief? Im Normalfall bestimmt FreeBSD einige Kernelparameter, darunter die maximale Anzahl der Dateien, die gleichzeitig geöffnet sein können, aus der Größe des im System installierten Hauptspeichers. Auf Systemen mit mindestens 1 GB Hauptspeicher kann dieser auto sizing-Mechanismus diese Werte fälschlicherweise zu hoch ansetzen: Beim Systemstart fordert der Kernel dann verschiedene Tabellen und andere Strukturen an, die den Großteil des verfügbaren Kernelspeichers verbrauchen. Dies führt dazu, dass der Kernel während des Betriebs keine dynamischen Speicheranforderungen mehr ausführen kann und mit einer Kernelpanik abstürzt. Bauen Sie in diesem Fall Ihren eigenen Kernel. Dazu setzen Sie in Ihrer Kernelkonfigurationsdatei auf 400 MB (). 400 MB sollten für Maschinen bis 6 GB Hauptspeicher ausreichend sein. Ich habe weniger als 1 GB Hauptspeicher. Dennoch stürzt mein System mit der Meldung kmem_map too small! ab? Diese Meldung zeigt an, dass der virtuelle Speicher für Netzwerkpuffer (spezieller mbuf-Cluster) aufgebraucht ist. Sie können die für mbuf verfügbare Größe an VM erhöhen, indem Sie den Anweisungen des Abschnitts Netzwerk-Limits des Handbuchs folgen. Wieso erhalte ich die Meldung /kernel: proc: table is full? Der FreeBSD-Kernel beschränkt die Anzahl der gleichzeitig laufenden Prozesse. Die Anzahl errechnet sich aus dem Wert der Variablen MAXUSERS in der Konfigurationsdatei des Kernels. Auch andere Einstellungen wie die Anzahl der Puffer für Netzwerkoperationen (Details dazu finden Sie in diesem Abschnitt). werden durch MAXUSERS beeinflusst. Wenn Ihr System stark belastet ist, sollten Sie den Wert von MAXUSERS erhöhen. Dadurch werden diverse Einstellung des Systems angepasst und die maximale Anzahl gleichzeitig laufender Prozesse erhöht. Um den Wert von MAXUSERS anzupassen, folgen Sie den Anweisungen des Abschnitts Datei- und Prozesslimits des Handbuchs. Dieser Abschnitt spricht zwar nur von Dateien, für Prozesse gelten aber die gleichen Beschränkungen. Wenn Ihr System nicht besonders stark ausgelastet ist und Sie einfach nur mehr gleichzeitig laufende Prozesse erlauben wollen, können Sie den Wert der Variable kern.maxproc in der Datei /boot/loader.conf anpassen. Um die Änderung zu aktivieren, müssen Sie Ihr System neu starten. Wollen Sie Ihr System zusätzlich optimieren, sollten Sie &man.loader.conf.5; und &man.sysctl.conf.5; lesen. Wenn diese Prozesse von einem einzigen Benutzer ausgeführt werden, müssen Sie den Wert von kern.maxprocperuid ebenfalls erhöhen. Dieser Wert muss immer mindestens um eins geringer sein als der Wert von kern.maxproc value. (Der Grund für diese Einschränkung ist, dass ein Systemprogramm, &man.init.8;, immer ausgeführt werden muss.) Damit Änderungen einer sysctl-Variable dauerhaft erhalten bleiben, nehmen Sie diese in /etc/sysctl.conf auf. Weitere Informationen zur Optimierung Ihres Systems finden Sie im Abschnitt Einstellungen mit sysctl des Handbuchs. Wieso erhalte ich die Meldung CMAP busy panic, wenn ich mein System mit einem neuen Kernel starte? Die Logik, die versucht, veraltete /var/db/kvm_*.db-Dateien zu erkennen, versagt manchmal und die Benutzung einer unpassenden Datei kann zu Paniksituationen führen. Falls das passiert, rebooten Sie im Single-User-Modus und löschen Sie die Dateien: &prompt.root; rm /var/db/kvm_*.db Was soll mir die Meldung ahc0: brkadrint, Illegal Host Access at seqaddr 0x0 sagen? Dies ist ein Konflikt mit einem Ultrastor SCSI Hostadapter. Rufen Sie während des Bootprozesses das Kernelkonfigurationsmenü auf und deaktivieren Sie uha0, welches das Problem verursacht. Wenn ich mein System starte, erhalte ich die Meldung ahc0: illegal cable configuration, obwohl die Verkabelung korrekt ist. Woran liegt das? Auf Ihrem Mainboard fehlen ein paar Logikbausteinen, die für die Unterstützung der automatischen Terminierung notwendig sind. Stellen Sie in Ihrem SCSI-BIOS manuell die korrekte Terminierung für Ihr System ein, anstatt sich auf die automatische Terminierung zu verlassen. Der Treiber für den AIC7XXX kann nicht erkennen, ob die externen Logikbausteine für die Erkennung der Kabel (und damit automatische Terminierung) vorhanden sind. Der Treiber muss sich darauf verlassen, dass diese vorhanden sind, wenn in der Konfiguration automatische Terminierung eingestellt ist. Ohne die externen Bausteine ist es sehr wahrscheinlich, dass der Treiber die Terminierung falsch einstellt, was die Zuverlässigkeit des SCSI-Busses herabsetzen kann. Wieso meldet Sendmail mail loops back to myself? Dies wird in der Sendmail-FAQ wie folgt beantwortet:- * Ich erhalte "Local configuration error" Meldungen, wie: 553 relay.domain.net config error: mail loops back to myself 554 <user@domain.net>... Local configuration error Wie kann ich dieses Problem lösen? Sie haben durch die Benutzung einer MX-Zeile eingestellt, dass Mail für die Domäne (z.B. domain.net) an einen speziellen Host (in diesem Fall relay.domain.net) weitergeleitet wird, aber der Relay-Host erkennt sich selbst nicht als domain.net. Fügen Sie domain.net in /etc/mail/local-host-names (falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net" in /etc/mail/sendmail.cf ein. Die aktuelle Version der Sendmail-FAQ wird nicht mehr mit dem Sendmail-Release verwaltet. Sie wird jedoch regelmäßig nach comp.mail.sendmail, comp.mail.misc, comp.mail.smail, comp.answers und news.answers gepostet. Sie können auch eine Kopie per E-Mail bekommen, indem Sie eine Mail mit dem Inhalt send usenet/news.answers/mail/sendmail-faq an mail-server@rtfm.mit.edu schicken. Wieso funktionieren bildschirmorientierte Anwendungen beim Zugriff über ein Netzwerk nicht richtig? Die entfernte Maschine scheint den Terminaltyp auf etwas anderes als den Typ cons25, der von FreeBSD verlangt wird, zu setzen. Es gibt mehrere mögliche Abhilfen für dieses Problem: Setzen Sie die Shell-Variable TERM nach dem Einloggen auf der entfernten Maschine auf ansi oder sco, sofern die entfernte Maschine diese Terminaltypen kennt. Benutzen Sie einen VT100-Emulator wie screen auf der FreeBSD-Console. screen bietet Ihnen die Möglichkeit, mehrere gleichzeitige Sitzungen von einem Bildschirm aus laufen zu lassen. Es ist ein sehr nettes Programm. Jedes screen-Fenster verhält sich, wie ein VT100-Terminal, weshalb die Variable TERM am entfernten Ende auf vt100 gesetzt werden sollte. Installieren Sie den Eintrag cons25 in der Bildschirmdatenbank der entfernten Maschine. Wie das zu geschehen hat, hängt vom Betriebssystem der entfernten Maschine ab. Das Systemadministrationshandbuch für das entfernte System sollte Ihnen hierbei helfen können. Starten Sie einen X-Server auf der FreeBSD-Seite und benutzen Sie einen X-basierten Terminalemulator wie xterm oder rxvt, um sich auf der entfernten Maschine einzuloggen. Die Variable TERM auf dem entfernten Host sollte auf xterm oder vt100 gesetzt werden. Wieso meldet mein Rechner calcru: negative time...? Dies kann durch verschiedene Hardware- oder Softwareprobleme in Verbindung mit Interrupts verursacht werden. Das kann aufgrund von Fehlern sein, aber es kann auch durch die Eigenarten bestimmter Geräte passieren. TCP/IP über die parallele Schnittstelle mit einer großen MTU laufen zu lassen, ist ein sicherer Weg, um dieses Problem hervorzurufen. Grafikbeschleuniger können es auch verursachen. In diesem Fall sollten Sie zunächst die Interrupteinstellungen der Karte überprüfen. Ein Seiteneffekt dieses Problems sind Prozesse, die mit der Meldung SIGXCPU exceeded cpu time limit abbrechen. Falls das Problem nicht anders gelöst werden kann, besteht die Lösung darin, diese sysctl-Variable zu setzen: &prompt.root; sysctl -w kern.timecounter.method=1 Die Option von &man.sysctl.8; sollte nicht mehr benutzt werden. Ab FreeBSD 4.4 wird die Option ignoriert. Sie können die Option auch weglassen, wenn Sie mit sysctl Variablen setzen. Das bedeutet zwar Performanceeinbußen, aber in Anbetracht der Ursache für dieses Problem werden Sie das wahrscheinlich nicht bemerken. Fall das Problem weiter bestehen bleibt, lassen sie die sysctl-Variable auf 1 stehen und setzen Sie die Option NTIMECOUNTER im Kernel auf immer höhere Werte. Wenn Sie irgendwann NTIMECOUNTER=20 erreicht haben sollten, ist das Problem nicht gelöst. Die Interrupts auf Ihrer Maschine sind für eine verlässliche Zeiterhaltung nicht zu gebrauchen. Warum wird meine PnP-Karte nicht mehr (oder nur noch als unknown) erkannt, seit ich FreeBSD 4.X benutze? FreeBSD 4.X ist deutlich PnP-orientierter und das führt leider dazu, dass einige PnP-Geräte (wie z.B. Soundkarten und interne Modems) nicht mehr funktionieren, obwohl Sie von FreeBSD 3.X noch erkannt wurden. Die Gründe für dieses Verhalten werden in der unten zitierten Mail von Mail von Peter Wemm erklärt. Diese Mail stammt von der Mailingliste freebsd-questions und war eine Antwort auf eine Frage bezüglich eines internen Modem, das nach dem Update auf FreeBSD 4.X nicht mehr erkannt wurde. Die mit [] gekennzeichneten Kommentare wurden eingefügt, um an einigen Stellen die Bezüge klarstellen.
Das PnP-BIOS hat es [das Modem] vorkonfiguriert und es dann im Adressraum liegenlassen, daher haben es die alten ISA-Erkennungsroutinen [in 3.X] gefunden. In 4.0 sind die ISA-Routinen deutlich PnP-orientierter. Es war möglich [in 3.X], dass eine ISA-Erkennungsroutinen ein zugelaufenes Gerät fand; während die PnP-Treiber zwar die ID erkannten, das Gerät aber wegen des Ressourcekonfliktes nicht benutzen konnten. Daher werden die programmierbaren Karten zunächst einmal abgeschaltet, um diese doppelte Erkennung vermeiden zu können. Das bedeutet allerdings auch, dass die Treiber die PnP-ID kennen muss, um PnP-Hardware unterstützen zu können. Wir haben uns vorgenommen, den Benutzern eine einfachere Möglichkeit zur Manipulation dieser Informationen zur Verfügung zu stellen.
Damit Ihr Gerät wieder funktioniert, müssen Sie seine PnP-ID herausfinden und die ID in die Listen eintragen, die zur Erkennung von PnP-Geräten genutzten werden. Zu diesem Zweck wird das Gerät mit &man.pnpinfo.8; analysiert. Das Beispiel zeigt die Ausgaben von &man.pnpinfo.8; für ein internes Modem: &prompt.root; pnpinfo Checking for Plug-n-Play devices... Card assigned CSN #1 Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff PnP Version 1.0, Vendor Version 0 Device Description: Pace 56 Voice Internal Plug & Play Modem Logical Device ID: PMC2430 0x3024a341 #0 Device supports I/O Range Check TAG Start DF I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8 [16-bit addr] IRQ: 4 - only one type (true/edge) [weitere TAG Zeilen gestrichen] TAG End DF End Tag Successfully got 31 resources, 1 logical fdevs -- card select # 0x0001 CSN PMC2430 (0x3024a341), Serial Number 0xffffffff Logical device #0 IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 IRQ 5 0 DMA 4 0 IO range check 0x00 activate 0x01 Sie benötigen die Information aus der Zeile Vendor ID ganz im Anfang. Die in Klammern ausgegebene hexadezimale Zahl (0x3024a341 in diesem Beispiel) ist die PnP ID und die unmittelbar davor stehende Zeichenkette (PMC2430) ist eine eindeutige Herstellerkennung. Benutzen Sie &man.pciconf.8; wenn &man.pnpinfo.8; die Karte nicht anzeigt. Der Teil der Ausgabe von pciconf -vl für eine auf dem Motherboard integrierte Soundkarte sieht zum Beispiel so aus: &prompt.root; pciconf -vl chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00 vendor = 'Intel Corporation' device = '82801AA 8xx Chipset AC'97 Audio Controller' class = multimedia subclass = audio Sie benötigen die Chip-ID 0x24158086, die hinter chip aufgeführt ist. Die Herstellerkennung oder die Chip-ID müssen in die Datei /usr/src/sys/isa/sio.c eingetragen werden. Sie sollten zunächst ein Backup von sio.c anlegen, falls etwas schief gehen sollte. Sie werden auch einen Patch erzeugen müssen, um ihn zusammen mit Ihrem PR einzusenden. (Sie wollten doch einen PR schreiben, oder etwa nicht?) Öffnen Sie nun sio.c mit einem Editor und suchen Sie nach der Zeile static struct isa_pnp_id sio_ids[] = { und blättern Sie dann nach unten, um die passende Stelle für Ihr Gerät zu finden. Unten finden Sie Beispiel für die Einträge, diese sind nach der Herstellerkennung sortiert. Diese sollte in dem Kommentar auf der rechten Seite aufgenommen werden, dazu kommt die Gerätebeschreibung (Device Description) aus der Ausgabe von &man.pnpinfo.8;: {0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */ {0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */ {0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */ {0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */ {0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */ Fügen Sie die hexadezimale Gerätekennung an der richtigen Stelle ein, speichern Sie die Datei ab, erzeugen Sie einen neuen Kernel und starten Sie Ihr System neu. Ihr Gerät sollte nun wie bei FreeBSD 3.X als sio Gerät erkannt werden.
Warum erhalte ich die Meldung nlist failed, wenn ich Programme wie top oder systat benutze? Das Programm sucht nach einem speziellen Symbol im Kernel, kann es aber aus irgendeinem Grunde nicht finden. Dieser Fehler wird von einem dieser Probleme verursacht: Ihr Kernel und die sonstigen Programme (das Userland) sind nicht mehr auf dem gleichen Stand. Mit anderen Worten, Sie haben zwar einen neuen Kernel erzeugt, aber kein installworld (oder umgekehrt); darum weicht die Symboltabelle von dem ab, was die Anwendung erwartet. Wenn dies der Fall ist, müssen Sie lediglich die noch fehlenden Schritte des Upgrades durchführen. Die richtige Vorgehensweise kann /usr/src/UPDATING entnommen werden. Um Ihren Kernel zu laden, benutzen Sie nicht /boot/loader, sondern laden ihn direkt mit boot2 (siehe &man.boot.8;). Es ist zwar nicht immer ein Fehler, /boot/loader zu umgehen; allerdings ist er in der Regel besser dazu geeignet, die Symbole des Kernels für normale Anwendungen verfügbar zu machen. Wieso dauert es so lange, bis eine Verbindung (&man.ssh.1; oder &man.telnet.1;) aufgebaut wird? Das Symptom: Nach dem Aufbau des TCP-Verbindung vergeht einige Zeit, bis endlich die Abfrage des Passwortes (bzw. der Login-Prompt bei Telnet) erscheint. Das Problem: In den meisten Fällen versucht der Server in der Zwischenzeit, die IP-Adresse des Clients in einen Rechnernamen zu übersetzen. Viele Server (darunter die Telnet und SSH Server von FreeBSD) machen das, um den Hostnamen z.B. für spätere Verwendung durch den Systemadministrator in eine Protokolldatei schreiben zu können. Die Lösung: wenn das Problem bei jedem Server auftritt, den Sie von Ihrem Computer (dem Client) ansprechen, dann wird das Problem vom Client verursacht. Wenn das Problem aber nur auftritt, wenn jemand Ihren Rechner (den Server) anspricht, dann liegt die Ursache beim Server. Wenn das Problem vom Client verursacht wird, müsssen Sie die Einträge im DNS korrigieren, damit der Server Ihre IP-Adresse übersetzen kann. Wenn das Problem in Ihrem lokalen Netzwerk auftritt, sollten Sie es als Problem des Servers behandeln und weiterlesen; wenn es allerdings im Internet auftritt, werden Sie sich wahrscheinlich an Ihrem ISP wenden müssen, damit dieser das Problem für Sie korrigiert. Wenn das Problem vom Server verursacht wird und Sie sich in einem lokalen Netzwerk befinden, dann müssen Sie Ihren Server so konfigurieren, dass er die lokal genutzten IP-Adressen in Rechnernamen übersetzen kann. Weitere Informationen erhalten Sie in den Onlinehilfen zu &man.hosts.5; und &man.named.8;. Wenn dieses Problem im Internet auftritt, könnte die Ursache auch darin liegen, dass die Namensauflösung auf dem Server nicht funktioniert. Versuchen Sie, einen anderen Hostnamen wie z.B. www.yahoo.com aufzulösen. Wenn das nicht funktioniert, liegt das Problem bei Ihrem System. Haben Sie &os; gerade erst installiert, kann es auch sein, dass die Domänen- und Nameserverinformationen noch nicht in /etc/resolv.conf vorhanden sind. Dadurch kommt es häufig zu Verzögerungen beim Einsatz von SSH, weil die Option UseDNS in der Voreinstellung auf yes gesetzt ist (in der Datei sshd_config im Verzeichnis /etc/ssh). Ist dies bei Ihnen der Fall, müssen Sie entweder die fehlenden Informationen in /etc/resolv.conf eintragen oder als temporäre Maßnahme UseDNS auf no setzen. Was bedeutet stray IRQ? Stray IRQs sind ein Zeichen für Probleme bei der Behandlung von Hardware-IRQs. Sie werden meistens von Geräten verursacht, die ihren Interrupt Request zurückziehen, obwohl gerade der interrupt request acknowledge-Zyklus läuft. Sie können drei Dinge tun: Ertragen Sie die Warnungen. Sie erhalten nur die ersten 5 für jeden IRQ, alle anderen werden unterdrückt. Eliminieren Sie die Meldungen, indem Sie in isa_strayintr() den Wert 5 auf 0 ändern, um alle Meldungen zu unterdrücken. Eliminieren Sie die Meldungen, indem Sie Hardware für den Parallelport installieren, die IRQ 7 nutzt und vom PPP Treiber verwendet wird (das passiert auf den meisten Systemen), und installieren Sie eine IDE-Platte oder andere Hardware sowie einen dazu passenden Treiber, um IRQ 15 zu nutzen. Warum sehe ich in der Ausgabe von dmesg häufig die Meldung file: table is full? Diese Fehlermeldung besagt, dass Sie die zur Verfügung stehenden File-Handles des Systems verbraucht haben. Was das genau bedeutet und wie Sie dieses Problem lösen können, steht im Abschnitt kern.maxfiles im Kapitel Anpassung der Kernelkonfiguration des Handbuchs. Warum ist die Uhrzeit auf meinem Laptop immer falsch? Ihr Laptop verfügt über mehr als eine Uhr und FreeBSD benutzt leider die falsche. Starten Sie &man.dmesg.8; und achten Sie auf die Zeilen, in denen das Wort Timecounter vorkommt. Die von FreeBSD benutzte Uhr steht in der letzten Zeile, mit an Sicherheit grenzender Wahrscheinlichkeit wird es TSC sein. &prompt.root; dmesg | grep Timecounter Timecounter "i8254" frequency 1193182 Hz Timecounter "TSC" frequency 595573479 Hz Sie können das überprüfen, indem Sie den Wert der Systemvariablen kern.timecounter.hardware abfragen. &prompt.root; sysctl kern.timecounter.hardware kern.timecounter.hardware: TSC Es ist durchaus möglich, dass das BIOS die TSC Uhr ändert, um beispielsweise den CPU-Takt zu während des Batteriebetrieb zu ändern, oder im Stromsparmodus; leider bemerkt FreeBSD diese Änderungen nicht und daher scheint die Uhr falsch zu gehen. In diesem Beispiel ist die Uhr i8254 ebenfalls verfügbar; um sie auszuwählen, muss ihr Name in die Systemvariable kern.timecounter.hardware geschrieben werden. &prompt.root; sysctl -w kern.timecounter.hardware=i8254 kern.timecounter.hardware: TSC -> i8254 Die Uhrzeit Ihres Laptops sollte nun genauer funktionieren. Damit diese Änderung automatisch beim Start des Systems durchgeführt wird, müssen Sie die folgende Zeile in die /etc/sysctl.conf eintragen. kern.timecounter.hardware=i8254 Warum erkennt mein Laptop PC-Cards nicht? Dieses Problem tritt häufig auf Laptops mit mehreren Betriebssystemen auf. Einige nicht-BSD Betriebssysteme lassen die Hardware in einem inkonsistenten Zustand. Die Karte wird dann von pccardd als "(null)""(null)" anstelle des tatsächlichen Modells gefunden. Um dies zu beheben, müssen Sie die Hardware zurücksetzen, das heißt der PC-Card Einschub muss stromlos sein. Gehen Sie dazu nicht in den Standby- oder Suspend-Modus und stellen Sie sicher, dass der Laptop wirklich ausgeschaltet ist. Warten Sie einen Moment und booten dann, Ihre PC-Card sollte jetzt funktionieren. Einige Laptops schalten sich nicht wirklich aus. Wenn der obige Vorschlag nichts genutzt hat, entfernen Sie bitte die Batterie, warten einen Moment und booten erneut. Wieso hängt sich FreeBSD nach dem BIOS-Bildschirm mit der Meldung Read error auf? Der Bootloader von FreeBSD erkennt die Geometrie Ihrer Festplatte nicht richtig. Sie müssen die Geometrie manuell festlegen, wenn sie mit fdisk FreeBSD-Bereiche erzeugen oder ändern. Die richtigen Werte für die Geometrie können Sie im BIOS des Rechners ablesen. Achten Sie auf die Anzahl der Zylinder, Köpfe und Sektoren für Ihre Festplatte. Im fdisk von &man.sysinstall.8; müssen Sie G eingeben, um die Geometrie zu definieren. Sie erhalten eine Dialogbox, in der Sie die Anzahl der Zylinder, Köpfe und Sektoren eingeben können. Verwenden Sie die Angaben des BIOS und setzen Sie Schrägstriche zwischen die Zahlen. 5000 Zylinder, 250 Köpfe und 60 Sektoren würden also als 5000/250/60 eingegeben. Schließen Sie die Eingabe mit Enter ab und drücken Sie W, um die neue Partitionstabelle auf die Festplatte schreiben zu lassen. Ein anderes Betriebssystem hat meinen Bootmanager zerstört. Wie kann ich ihn wiederherstellen? Starten Sie &man.sysinstall.8; und wählen Sie Configure, dann Fdisk. Wählen Sie die Platte, auf der sich der Boot Manager befand, mit der Leertaste aus. Drücken Sie W, um die Änderungen auf die Platten schreiben zu lassen. Nun erscheint eine Abfrage, welcher Bootmanager installiert werden soll. Wählen Sie diesen an und er wird wieder installiert. Was soll mir die Meldung swap_pager: indefinite wait buffer: sagen? Ein Programm wollte Speicher auf Platte auslagern, und dieser Vorgang konnte nicht innerhalb von 20 Sekunden durchgeführt werden. Mögliche Gründe sind defekte Blöcke auf der Platte, falsche oder fehlerhafte Verkabelung sowie Probleme mit anderen Komponenten, die am Zugriff auf die Festplatte beteiligt sind. Wenn die Festplatte selbst fehlerhaft sind, sollten Sie entsprechende Meldungen in /var/log/messages und den Ausgaben von dmesg finden. Andernfalls sollten Sie die Kabel und Verbindungen überprüfen. Was sind UDMA ICRC Fehler und wie behebe ich sie? Der &man.ata.4;-Treiber meldet UDMA ICRC Fehler wenn eine DMA-Übertragung zu oder von einem Laufwerk fehlgeschlagen ist. Der Treiber versucht die Übertragung mehrmals durchzuführen und schaltet, wenn die Versuche fehlschlagen, vom DMA-Modus auf den langsameren PIO-Modus um. Der Fehler kann viele Ursachen haben, häufig ist ein Kabel kaputt oder die Geräte sind falsch verkabelt. Prüfen Sie, ob die ATA-Kabel unbeschädigt sind und für den verwendeten Ultra-DMA-Modus tauglich sind. Ebenso müssen Wechselrahmen für den verwendeten Modus geeignet sein. Stellen Sie sicher, dass alle Kabel fest angeschlossen sind. Es gab auch schon Probleme, wenn ein altes Laufwerk zusammen mit einem Ultra-DMA-66 oder einem schnelleren Laufwerk auf einem Kanal betrieben wurde. Es kann aber auch sein, dass das Laufwerk kaputt ist. Die meisten Hersteller stellen Test-Programme für ihre Laufwerke zur Verfügung. Überprüfen Sie damit Ihr Laufwerk und wenn nötig, sichern Sie Ihre Daten und ersetzen das Laufwerk. &man.atacontrol.8; zeigt für jedes ATA-Gerät den verwendeten DMA- oder PIO-Modus an. Das Kommando atacontrol mode Kanal zeigt die auf einem Kanal verwendeten Modi (die Kanäle werden von 0 an nummeriert). Was ist ein lock order reversal? &a.rwatson; hat diese Frage auf der Mailingliste freebsd-current ausführlich beantwortet. Das Original seiner Antwort finden Sie über den Thread lock order reversals - what do they mean?.
&a.rwatson; am 14. Dezember 2003 auf freebsd-current Diese Warnungen werden von Witness, einem Diagnosesystem, das Verklemmungen (deadlocks) zur Laufzeit erkennen kann, ausgegeben. Dieses System ist in FreeBSD -CURRENT-Kerneln vorhanden (aber nicht in Release-Kerneln) und wird in &man.witness.4; beschrieben. Unter anderem ist Witness in der Lage, die korrekte Reihenfolge von bekannten sowie zur Laufzeit entdeckten Ressource-Locks zu überprüfen, und eine Warnung auszugeben, wenn diese Reihenfolge verletzt wird. Dadurch wird es möglich, potentielle Verklemmungen (deadlocks) zu entdecken. Beachten Sie, dass Witness sehr vorsichtig ist und daher Falschmeldungen ausgeben kann. Falls Witness ein Verklemmungsproblem meldet, bedeutet dies: Wenn Sie Pech gehabt hätten, wäre es jetzt zu einer Verklemmung gekommen. Es sind einige falsch positive Meldungen bekannt, die noch besser dokumentiert werden müssten, um unnötige Problemmeldungen zu vermeiden. Neu auftretende Meldungen beruhen in der Regel auf Bugs in neu hinzugefügten Ressource-Locks, und werden meist rasch behoben, weil Witness laufend Fehlermeldungen produziert. :-).
+ + "Falsch-positiv"-Meldungen bedeuten, dass Witness + auf ein sehr viel ernsteres Problem gestoßen ist. + Ursachen für eine derartige Meldung können + beispielsweise Seitenfehler + (page faults) oder eine + Speicherverletzung innerhalb des Kernels sein, aber + auch Namenskollisionen mit einem Mutex. + + Lesen Sie auch die lock order reversal page von Bjoern Zeeb, um sich über den Status bekannter lock order reversals zu informieren.
Warum erhalte ich die Meldung Called ... with the following non-sleepable locks held? Diese Meldung erscheint, wenn eine Funktion, die sich im Ruhemodus befindet, aufgerufen wird, während ein Mutex oder eine andere (nicht in den Ruhemodus versetzbare) Sperre aktiv war. Der Grund dafür ist, dass ein Mutex nicht für längere Zeitspannen aktiv sein soll, sondern nur für die Synchronisation von Gerätetreibern mit dem Rest des Kernels während eines Interrupts. Unter FreeBSD dürfen Interrupts nicht in den Ruhemodus versetzt werden. Daher ist es von entscheidender Bedeutung, dass während des Bestehens eines Mutex kein Kernelsubsystem für einen längeren Zeitraum blockiert ist. Um solche Fehler abzufangen, können Sicherungen (Assertions) in den Kernel eingebaut werden, die danach mit dem Witness-Subsystem interagieren. Dadurch wird (in Abhängigkeit von Ihrer Systemkonfiguration) eine Warnung oder eine Fehlermeldung ausgegeben, falls der Aufruf einer Funktion während des Bestehens eines Mutex zu einer Blockierung führen kann. Zusammenfassend kann man sagen, dass diese Warnungen in der Regel zwar nicht bedrohlich sind. Unter bestimmten Umständen kann es aber dennoch zu unerwünschten Nebenwirkungen, angefangen von einer Erhöhung der Reaktionszeit bis hin zu einem kompletten Einfrieren des Systems kommen. Warum bricht buildworld/installworld mit der Meldung touch: not found ab? Dieser Fehler bedeutet nicht, dass &man.touch.1; nicht auf Ihrem System vorhanden ist. Vielmehr sind Dateien die Ursache, deren Erzeugungsdatum in der Zukunft liegt. Wenn Ihre CMOS-Uhr auf Ihre lokale Zeit eingestellt ist, müssen Sie adjkerntz -i verwenden, um die Kerneluhr anzupassen, wenn Sie in den Single-User-Modus booten.
Kommerzielle Anwendungen Dieser Abschnitt ist immer noch sehr dürftig, aber wir hoffen natürlich, dass Unternehmen einen Beitrag leisten werden! :) Die FreeBSD-Gruppe hat keinerlei finanzielle Interessen an einem der hier aufgelisteten Unternehmen, sondern listet sie lediglich als öffentlichen Service auf (und ist der Meinung, dass ein kommerzielles Interesse an FreeBSD sehr positiven Einfluss auf ein langfristiges Bestehen von FreeBSD haben kann). Wir möchten Anbieter kommerzieller Software dazu aufrufen, ihren Eintrag hier aufnehmen zu lassen. Auf der Anbieter-Seite finden Sie eine längere Liste. Wo bekomme ich FreeBSD-Versionen der klassischen Büro-Anwendungen? Das als Open Source verfügbare Office-Paket OpenOffice.org läuft nativ unter FreeBSD. Die um zusätzliche Funktionen erweiterte kommerzielle OpenOffice.org-Version StarOffice läuft in der &linux;-Version ebenfalls problemlos unter FreeBSD. In der Ports-Sammlung sind weitere Textbearbeitungsprogramme, Tabellenkalkulationen und Zeichenprogramme enthalten. Woher kann ich &motif; für FreeBSD bekommen? Der Quelltext für &motif; 2.2.2 wurde von der Open Group herausgegeben. Sie können entweder das Package open-motif installieren oder es mit dem entsprechenden Port selbst compilieren. Weitere Informationen über die Benutzung der Ports erhalten Sie im Kapitel Ports des Handbuchs. Die Open &motif; Distribution darf nur weitergegeben werden, wenn sie auf einem Open Source Betriebssystem benutzt wird. Weiterhin gibt es auch kommerzielle &motif;-Paket, die zwar nicht kostenlos sind, aber dafür auch mit closed source Software benutzt werden dürfen. Um die günstigste ELF-&motif; 2.1.20 Distribution für FreeBSD (entweder &i386; oder Alpha) zu bekommen, wenden Sie sich bitte an Apps2go. Es gibt zwei Distributionen, die development edition und die runtime edition (wesentlich günstiger). Diese Distributionen enthalten: OSF/&motif; manager, xmbind, panner, wsm. Development-Kit mit uil, mrm, xm, xmcxx, Include- und Imake-Dateien. Statische und dynamische ELF-Bibliotheken. Demonstrations-Applets. Achten Sie darauf, dass Sie bei der Bestellung angeben, dass Sie die FreeBSD-Version von &motif; möchten (vergessen Sie auch nicht, die Architektur anzugeben)! Von Apps2go werden auch Versionen für NetBSD und OpenBSD verkauft. Dieses Produkt ist zurzeit nur zum Download per FTP verfügbar. Weitere Informationen Apps2go Web-Seite oder sales@apps2go.com oder support@apps2go.com oder Telefon (817) 431 8775 oder +1 817 431-8775 Eine &motif; 2.0 Distribution für FreeBSD im a.out-Format gibt es bei Xi Graphics. Diese Distribution enthält:/ OSF/&motif; manager, xmbind, panner, wsm. Development-Kit mit uil, mrm, xm, xmcxx, Include- und Imake-Dateien. Statische und dynamische Bibliotheken (zur Verwendung unter FreeBSD 2.2.8 und frühere). Demonstrations-Applets. Vorformatierte Manualpages. Achten Sie darauf, bei der Bestellung anzugeben, dass Sie die FreeBSD-Version von &motif; möchten! Xi Graphics verkauft auch Versionen für BSDI und &linux;. Dieses Produkt ist derzeit ein Satz von vier Disketten... zukünftig wird es eine einheitliche CD-Distribution geben, wie beim CDE. Woher kann ich CDE für FreeBSD bekommen? Xi Graphics hat einmal CDE für FreeBSD verkauft, tut es aber nicht mehr. KDE ist ein Open-Source X11-Desktop, der CDE in vielen Punkten ähnelt. Eventuell gefällt Ihnen auch das "Look and Feel" von xfce. KDE und xfce sind über die Ports-Sammlung von FreeBSD verfügbar. Gibt es irgendwelche kommerzielle leistungsfähige X-Server? Ja, Xi Graphics vertreibt beschleunigte X-Produkte für FreeBSD und andere Intel-basierte Systeme. Das Angebot von Xi Graphics besteht aus einem leistungsfähigen X-Server, der einfache Konfiguration und Unterstützung für den parallelen Einsatz mehrerer Videokarten bietet. Es wird in binärer Form in einer einheitlichen Diskettendistribution für FreeBSD und Linux vertrieben. XI Graphics bietet auch leistungsfähige X-Server, die auf die Unterstützung von Laptops zugeschnitten sind. Es gibt ein kostenloses Kompatibilitäts-Demo der Version 5.0. Xi Graphics vertreibt auch &motif; und CDE für FreeBSD (siehe oben). Weitere Informationen Xi Graphics Web-Seite oder sales@xig.com oder support@xig.com oder Telefon (800) 946 7433 oder +1 303 298-7478. Gibt es irgendwelche Datenbanksysteme für FreeBSD? Ja! Lesen Sie den Abschnitt kommerzielle Anbieter auf der FreeBSD-Web-Seite. Schauen Sie auch im Abschnitt Datenbanken der Ports-Sammlung nach. Kann ich &oracle; unter FreeBSD laufen lassen? Ja. Die folgenden Seiten beschreiben genau, wie sich &linux;-&oracle; unter FreeBSD installieren lässt: Gibt es für &os; auch kommerzielle Webbrowser? Ja. Opera ist für verschiedene Plattformen, darunter auch &os;, verfügbar. Informieren Sie sich bitte auf www.opera.com. Eine werbefinanzierte Version von Opera ist in der Portssammlung enthalten. Benutzerprogramme Nun, wo sind die ganzen Benutzerprogramme? Werfen Sie bitte einen Blick auf die Ports-Seite, um Informationen über die nach FreeBSD portierten Softwarepakete zu erhalten. Die Liste enthält zurzeit &os.numports; Einträge und wächst täglich. Schauen Sie hier also öfter nach oder melden Sie sich bei der Mailinglistefreebsd-announce an, um sich regelmäßig über Änderungen zu informieren. Die meisten Ports sollten auf den 4.X, 5.X und 6.X-Systemen laufen. Jedes Mal, wenn ein FreeBSD-Release erstellt wird, wird auch ein Snapshot des Port-Baumes vom Zeitpunkt des Releases in das Verzeichnis ports/ eingefügt. Wir unterstützen auch das Konzept von Packages - im Grunde genommen nicht mehr als komprimierte Binärdistributionen mit ein wenig zusätzlicher Intelligenz zur Ermöglichung angepasster Installationen. Ein Package kann leicht installiert und wieder deinstalliert werden, ohne, dass man etwas über wissen muss, welche Dateien es enthält. Benutzen Sie das Paketinstallationsmenü in /stand/sysinstall (unter dem Menüpunkt post-configuration) oder führen Sie den Befehl &man.pkg.add.1; mit den speziellen Paketdateien aus, die Sie installieren möchten. Paketdateien können für gewöhnlich an der Endung .tgz oder .tbz erkannt werden und diejenigen, die über eine CDROM-Distribution verfügen, haben auf ihrer CD ein Verzeichnis packages/All, das solche Dateien enthält. Für verschiedene FreeBSD-Versionen können sie von folgenden Adressen auch über das Netz heruntergeladen werden: für 4.X-RELEASE/4-STABLE ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable für 5.X-RELEASE/5-STABLE ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable für 6.X-RELEASE/6-STABLE ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable für 7-CURRENT ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current oder von Ihrem nächstgelegenen Mirror. Beachten Sie, dass nicht alle Ports als Package verfügbar sind, da ständig neue hinzugefügt werden. Es ist immer eine gute Idee, sich regelmäßig auf der ftp.de.FreeBSD.org Masterseite darüber zu informieren, welche Packages verfügbar sind. Wie konfiguriere ich INN (Internet News) für meine Maschine? Ein idealer Startpunkt nach der Installation des Packages oder Ports news/inn ist Dave Barr's INN-Seite, wo Sie die INN-FAQ finden. Unterstützt FreeBSD &java;? Ja. Informieren Sie sich bitte unter http://www.de.FreeBSD.org/java/. Warum kann ich manche Ports auf meiner 4.X-STABLE-Maschine nicht erstellen? Wenn Sie eine FreeBSD-Version benutzen, die deutlich älter als das aktuelle -CURRENT oder -STABLE ist, könnte es sein, dass Sie vorher Ihre Ports-Sammlung aktualisieren müssen. Lesen Sie dazu den Abschnitt Keeping Up des Porters-Handbuch. Ist Ihre Ports-Sammlung aktuell, könnte es sein, dass jemand eine Änderung am Port durchgeführt hat, die für -CURRENT funktioniert, den Port für -STABLE aber unbrauchbar gemacht hat. Bitte senden Sie einen Fehlerbericht mit dem Befehl &man.send-pr.1;. Von der Ports-Sammlung wird nämlich erwartet, dass sie sowohl auf -CURRENT als auch auf -STABLE funktioniert. Ich habe gerade versucht, INDEX mit make index zu bauen, und es hat nicht geklappt. Woran liegt das? Stellen Sie zuerst sicher, dass Ihre Ports-Sammlung aktuell ist. Fehler, die einen Bau von INDEX aus einer aktuellen Ports-Sammlung verhindern, sind sofort sichtbar und werden daher fast immer umgehend behoben. Ist Ihre Ports-Sammlung jedoch aktuell, haben Sie vielleicht ein anderes Problem. make index hat einen Bug im Umgang mit unvollständigen Kopien der Ports-Sammlung. Es nimmt an, dass Sie über eine lokale Kopie aller Ports verfügen, von denen jeder lokale Port abhängt. Wenn Sie also beispielsweise eine Kopie von foo/bar auf Ihrem System haben, und foo/bar ist von baz/quux abhängig, dann muss auch eine Kopie von baz/quux auf Ihrem System vorhanden sein, sowie eine Kopie aller Ports, von denen baz/quux abhängt. Anderenfalls ist make index aufgrund fehlender Informationen nicht in der Lage, den Abhängigkeitsbaum zu erzeugen. Dieses Problem tritt vor allem dann auf, wenn &os;-Benutzer &man.cvsup.1; verwenden, um die Ports-Sammlung zu aktualisieren und dabei verschiedene Kategorien durch die Datei refuse von der Aktualisierung ausschließen. Theoretisch ist es zwar möglich, Kategorien auszuschließen, in der Praxis gibt es aber zu viele Ports, die von Ports in anderen Kategorien abhängen. Wenn Sie also INDEX bauen wollen, müssen Sie über eine komplette Kopie der Ports-Sammlung verfügen. Es gibt seltene Fälle, in denen INDEX nicht gebaut werden kann, wenn bestimmte WITH_* oder WITHOUT_* Variablen in make.conf gesetzt sind. Wenn Sie dieses Problem haben, sollten Sie diese make-Variablen deaktivieren und INDEX erneut bauen, bevor Sie das Problem an &a.ports; melden. Warum ist CVSup nicht im FreeBSD-Basisquellbaum enthalten? Das Basissystem von FreeBSD soll selbstverwaltend sein. Es soll also möglich sein, das komplette Betriebssystem mit einer beschränkten Anzahl von Werkzeugen zu starten. Daher werden die zum Bau von FreeBSD nötigen Werkzeuge mit dem Quelltext gekoppelt. Zu diesen Werkzeugen gehören ein C-Compiler (&man.gcc.1;), &man.make.1;, &man.awk.1; und andere. Da CVSup in Modula-3 geschrieben wurde, müsste ein Modula-3-Compiler ins Basissystem aufgenommen und auch gewartet werden. Dies würde einen gestiegenen Speicherbedarf für die FreeBSD-Quellen sowie einen erhöhten Wartungsaufwand verursachen. Daher ist es sowohl für Entwickler als auch Benutzer einfacher, CVSup bei Bedarf als Port oder als Paket von einer Installations-CD zu installieren. Ich habe die Sourcen aktualisiert, wie aktualisiere ich jetzt die installierten Ports? FreeBSD enthält zwar kein Programm, das die installierten Ports aktualisiert, allerdings existieren diverse Programme, die diesen Prozess etwas vereinfachen. Weiterhin können Sie zusätzliche Programme installieren, die Sie dabei unterstützen. Sie können mit &man.pkg.version.1; ein Script erzeugen, das die installieren Ports mit einer neueren Version aus der Ports-Sammlung ersetzt: &prompt.root; pkg_version -c > /tmp/myscript Das so erzeugte Script muss manuell geändert werden, bevor es benutzt wird. Neuere Versionen von &man.pkg.version.1; erzwingen dies, indem sie ein &man.exit.1; an den Anfang des Scripts setzen. Sie sollten die Ausgaben des Scripts abspeichern, da sie Ihnen melden werden, welche Ports von den dem gerade aktualisierten Port abhängen. Es ist möglich, dass diese auch aktualisiert werden müssen. Der typische Fall, in dem ein Update erforderlich ist, ist eine Änderung der Versionsnummer einer shared library; in diesem Fall müssen die abhängigen Ports neu übersetzt werden, damit sie die neue Library benutzen. Ab FreeBSD 5.0 steht die Option in &man.pkg.version.1; nicht mehr zur Verfügung. Falls Sie über genügend freien Plattenplatz verfügen, können Sie diesen Prozess mit portupgrade automatisieren. portupgrade umfasst diverse Programme, die die Arbeit mit Packages erleichtern und ist als ports-mgmt/portupgrade verfügbar. Da portupgrade in Ruby geschrieben wurde, wird es wahrscheinlich nie ein Bestandteil von FreeBSD werden. Allerdings sollte das niemanden davon abhalten, es trotzdem zu benutzen. Wenn Ihr System rund um die Uhr läuft, kann es jede Woche automatisch eine Liste der Ports erzeugen, die wahrscheinlich aktualisiert werden müssen. Fügen Sie dazu weekly_status_pkg_enable="YES" in /etc/periodic.conf ein. Warum ist /bin/sh so spartanisch? Warum benutzt FreeBSD nicht die bash oder eine ähnliche Shell? Weil der &posix;-Standard definiert, dass es so eine Shell geben muss. Die ausführlichere Antwort: Viele Leute müssen Shell-Programme schreiben, die auf vielen verschiedenen Systemen nutzbar sein müssen. Aus diesem Grund enthält der &posix;-Standard eine sehr detaillierte Definition der Shell und der Hilfsprogramme. Die meisten Programme werden für die Bourne Shell geschrieben; außerdem nutzen mehrere wichtige Schnittstellen (&man.make.1;, &man.system.3;, &man.popen.3; und ihre Entsprechungen in höheren Programmiersprachen wie Perl und Tcl) die Bourne Shell, um Befehle auszuführen. Da die Bourne Shell an so vielen Stellen und so häufig genutzt wird, muss sie die folgenden Anforderungen erfüllen: Schneller Start, ein klar definiertes Verhalten und ein möglichst geringer Speicherverbrauch. Wir haben bei der vorliegenden Implementierung versucht, möglichst viele dieser Anforderungen zu erfüllen. Um /bin/sh nicht zu groß werden zu lasen, haben wir viele der Annehmlichkeiten der anderen Shells weggelassen. Aus diesem Grund gibt es in den Ports die luxuriöseren Shells wie bash, scsh, tcsh und zsh. Vergleichen Sie einfach mal den Speicherverbrauch der verschiedenen Shells, indem Sie ps -u aufrufen und sich die Angaben in den Spalten VSZ und RSS ansehen. Wieso dauert es so lange, bis &netscape; und Opera starten? In den meisten Fällen liegt es daran, dass Ihre DNS-Einstellungen fehlerhaft sind. Sowohl &netscape; als auch Opera stellen Anfragen an DNS, wenn Sie gestartet werden. Das Fenster des Browsers erscheint erst, wenn das Programm eine Antwort erhalten hat oder es festgestellt hat, dass Ihr System nicht an ein Netzwerk angeschlossen ist. Ich habe die Ports-Sammlung mit CVSup aktualisiert. Viele Ports lassen sich danach nicht mehr bauen und geben seltsame Fehlermeldungen aus. Was ist passiert? Ist die Ports-Sammlung kaputt? Sie sollten immer die Teilsammlung ports-base aktualisieren, wenn Sie nur Teile der Ports-Sammlung mit Hilfe der CVSup-Teilsammlungen aktualisieren. Die Erklärung dazu finden Sie im Handbuch. Wie erzeuge ich Audio-CDs aus MIDI-Dateien? Installieren Sie zuerst den Port audio/timidity++. Danach müssen Sie manuell die GUS-Patche von Eric A. Welsh von installieren. Wenn timidity++ richtig installiert wurde, können Sie mit dem folgenden Kommando MIDI-Dateien in das WAV-Format konvertieren: &prompt.user; timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid Die WAV-Dateien können dann in andere Formate konvertiert werden oder auf Audio-CDs, wie im FreeBSD-Handbuch beschrieben, gebrannt werden. Kernelkonfiguration Ich möchte meinen Kernel anpassen. Ist das schwierig? Überhaupt nicht! Lesen Sie den Abschnitt zur Kernelkonfiguration im Handbuch. Sie sollten einen datierten Snapshot Ihres Kernels als kernel.YYMMDD zu erstellen, nachdem Sie alles zum Laufen gebracht haben. Außerdem sollten Sie eine Kopie des Verzeichnisses /modules erstellen, die den Namen /modules.YYMMDD hat. Auf diese Weise können Sie diesen Kernel hochfahren, anstatt den ganzen Weg zurück zu kernel.GENERIC gehen zu müssen, wenn Sie das nächste Mal mit Ihrer Konfiguration herumexperimentieren und dabei etwas falsch machen sollten. Das ist besonders wichtig, wenn Sie nun von einem Controller booten, der vom GENERIC-Kernel nicht unterstützt wird. Was kann ich machen, wenn meine Kernel-Kompilierungen fehlschlagen, weil _hw_float fehlt? Sie haben wahrscheinlich npx0 aus Ihrer Kernelkonfigurationsdatei entfernt, weil Sie keinen mathematischen Co-Prozessor besitzen. Die Gerätedatei npx0 ist allerdings VERPFLICHTEND. Ihre Hardware unterstützt Gleitkommaoperationen, selbst wenn dafür kein eigenes Bauteil (wie bei den 386er-Prozessoren) mehr verwendet wird. Daher müssen Sie die Gerätedatei npx0 einbinden. Selbst wenn es Ihnen gelingen sollte, einen Kernel ohne npx0-Unterstützung zu bauen, werden Sie diesen nicht booten können. Warum ist mein Kernel so groß (über 10 MByte)? Sie haben Ihren Kernel wahrscheinlich im Debug Modus erstellt. Ein Debug-Kernel enthält viele zusätzliche Informationen für die Fehlersuche, daher ist er so groß. Bitte beachten Sie, dass die Verwendung eines Debug-Kernels die Performance des Systems nicht oder nur minimal reduziert; außerdem ist es für den Fall einer system panic sehr praktisch, einen Debug-Kernel zur Hand zu haben. Wenn Ihnen allerdings der Plattenplatz ausgeht oder Sie einfach rein prinzipiell keinen Debug-Kernel benutzen wollen, müssen die beiden folgenden Bedingungen erfüllt sein: Die Konfigurationsdatei für Ihren Kernel darf die folgende Zeile nicht enthalten: makeoptions DEBUG=-g Sie dürfen &man.config.8; nicht mit dem Parameter starten. Sollten Sie sich nicht an diese Einschränkungen halten, wird Ihr Kernel im Debug-Modus erstellt. Solange Sie sich an diese Einschränkungen halten, können Sie Ihren Kernel ganz normal erstellen und die Größe des Kernels sollte deutlich sinken. Ein normaler Kernel ist nur 1.5 MByte bis 2 MByte groß. Wieso erhalte ich Meldungen über Interrupt-Konflikte, wenn ich eine Karte mit mehreren seriellen Schnittstellen einsetzen will? Wenn ich einen Kernel mit Unterstützung für serielle Multi-Port-Schnittstellen kompiliere, bekomme ich den Hinweis, dass nur der erste Port geprüft wird und die restlichen auf Grund von Interrupt-Konflikten übersprungen werden. Wie kann ich das Beheben? Das Problem besteht darin, dass in FreeBSD Code integriert ist, um den Kernel vor Abstürzen aufgrund von Hardware- oder Software-Konflikten zu bewahren. Behoben wird es, indem die IRQ-Angaben für alle Ports, bis auf einen ausgelassen werden. Hier ist ein Beispiel: # # Multiport high-speed serial line - 16550 UARTS # device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr Wieso kann ich nicht einmal den Standard-Kernel (GENERIC) bauen? Es gibt eine Reihe von möglichen Ursachen für dieses Problem: Sie benutzen die neuen Kommandos make buildkernel und make installkernel nicht, obwohl die Sourcen auf Ihrem System nicht zum laufenden System passen (z.B. benutzen Sie die Sourcen von 4.3-RELEASE auf einem System mit 4.0-RELEASE). Wenn Sie ein Upgrade durchführen wollen, sollten Sie /usr/src/UPDATING lesen, beachten Sie insbesondere den Abschnitt COMMON ITEMS gegen Ende des Dokuments. Sie benutzen zwar make buildkernel und make installkernel, aber Sie haben nicht darauf geachtet, dass vorher ein komplettes make buildworld durchgelaufen sein muss. Um seine Arbeit erledigen zu können, benötigt make buildkernel Dateien, die von make buildworld erzeugt werden. Auch wenn Sie FreeBSD-STABLE verwenden, ist es durchaus möglich, dass Sie die Sourcen genau zum falschen Zeitpunkt aktualisiert haben: Während Sie gerade modifiziert wurden oder kurzzeitig fehlerhaft waren. Eine absolute und vollständige Garantie, dass Sie die Sourcen compilieren können, gibt es nur für die Releases, bei FreeBSD-STABLE ist das nicht immer so. Wenn Sie es noch nicht versucht haben, sollten Sie ihre Source nochmals aktualisieren. Es ist denkbar, dass der von Ihnen genutzte Server zurzeit Probleme hat, benutzten Sie daher testweise auch einmal einen anderen Server. Wie kann ich prüfen, welchen Scheduler das System benutzt? Wenn Sie &os; 5.2.1 oder älter verwenden, überprüfen Sie dazu, ob auf Ihrem System die sysctl-Variable kern.quantum existiert. Ist dies bei Ihnen der Fall, werden Sie eine Ausgabe ähnlich der folgenden sehen: &prompt.user; sysctl kern.quantum kern.sched.quantum: 99960 Wenn die sysctl-Variable kern.quantum existiert, dann verwenden Sie den 4BSD-Scheduler. Existiert sie nicht, erzeugt &man.sysctl.8; eine Fehlermeldung (die Sie aber ignorieren können): &prompt.user; sysctl kern.sched.quantum sysctl: unknown oid 'kern.sched.quantum' Seit &os; 5.3-RELEASE wird der Name des verwendeten Schedulers direkt als Wert der sysctl-Variable kern.sched.name ausgegeben: &prompt.user; sysctl kern.sched.name kern.sched.name: 4BSD Was bedeutet kern.quantum? kern.quantum ist die maximale Anzahl Ticks, die ein Prozess ununterbrochen laufen kann. Die Variable ist charakteristisch für den 4BSD Scheduler, somit kann der verwendete Scheduler über die Existenz dieser Variablen bestimmt werden. Seit &os; 5.X wird kern.quantum als kern.sched.quantum bezeichnet. Was ist kern.sched.quantum? Lesen Sie den Abschnitt Platten, Dateisysteme und Boot Loader Wie kann ich meine neue Festplatte in mein FreeBSD-System einbinden? Lesen Sie das Tutorial zur Festplattenformatierung unter www.de.FreeBSD.org. Wie verschiebe ich mein System auf meine neue, große Platte? Die beste Methode ist, das Betriebssystem auf der neuen Platte neu zu installieren und danach die Daten zu verschieben. Wenn Sie -STABLE über eine Release hinaus genutzt haben oder eine Release aktualisiert haben, ist das sehr empfehlenswert. Sie können auf beiden Platten &man.boot0cfg.8; installieren und die beiden Versionen so lange parallel betreiben, bis Ihnen die neue Konfiguration gefällt. Wenn Sie dies tun wollen, können Sie im übernächsten Absatz erfahren, wie sie Ihre Daten verschieben können. Falls Sie sich entscheiden, das nicht zu tun, müssen Sie Ihre neue Platte partitionieren und labeln. Benutzen Sie dafür entweder /stand/sysinstall oder &man.fdisk.8; und &man.disklabel.8;. Weiterhin sollten Sie mit &man.boot0cfg.8; auf beiden Platten booteasy installieren, damit Sie in der Lage sind, das alte und das neue System abwechselnd zu starten, nachdem der Kopiervorgang abgeschlossen ist. Im Formatting-Media Tutorial finden Sie weitere Informationen zu diesen Schritten. Nachdem Sie die neue Platte eingerichtet haben, können Sie Ihre Daten verschieben. Dummerweise können Sie die Daten nicht einfach kopieren. Dinge wie Gerätedateien (in /dev), erweiterte Dateiattribute und symbolische Links führen dazu, dass das in die Hose geht. Sie müssen ein Programm benutzen, das damit umgehen kann, und das ist &man.dump.8;. Es wird oft empfohlen, die Daten im Single-User Modus zu verschieben, aber das ist nicht unbedingt notwendig. Sie sollten auf gar keinen Fall etwas anderes als &man.dump.8; und &man.restore.8; benutzen, um Ihr Root-Filesystem zu verschieben. Es könnte auch mit &man.tar.1; funktionieren - oder auch nicht. Sie sollten ebenfalls &man.dump.8; und &man.restore.8; benutzen, wenn Sie eine komplette Partition auf eine andere, leere Partition verschieben wollen. Um die Daten einer Partition mit dump auf eine andere Partition zu verschieben, müssen Sie die folgenden Schritte ausführen: Richten Sie in der neuen Partition mit newfs ein Dateisystem ein. Mounten Sie die Partition temporär an einer geeigneten Stelle. Wechseln Sie mit cd in dieses Verzeichnis. Lesen Sie die alte Partition mit dump aus und lenken Sie die Ausgabe auf die neue Partition um. Wenn Sie zum Beispiel root auf /dev/ad1s1a verschieben wollen und diese derzeit auf /mnt gemountet ist, bedeutet das: &prompt.root; newfs /dev/ad1s1a &prompt.root; mount /dev/ad1s1a /mnt &prompt.root; cd /mnt &prompt.root; dump 0af - / | restore xf - Wenn Sie Ihre Partitionen mit &man.dump.8; umorganisieren wollen, steht Ihnen etwas mehr Arbeit bevor. Wenn Sie eine Partition wie /var in die übergeordnete Partition verschieben wollen, müssen Sie zunächst eine neue Partition erzeugen, die die beiden alten Partitionen aufnehmen kann. Der zweite Schritt ist, wie oben beschrieben die übergeordnete Partition in die neue Partition zu verschieben. Im dritten und letzten Schritt verschieben Sie dann die untergeordnete Partition in das leere Verzeichnis, das im zweiten Schritt entstanden ist: &prompt.root; newfs /dev/ad1s1a &prompt.root; mount /dev/ad1s1a /mnt &prompt.root; cd /mnt &prompt.root; dump 0af - / | restore xf - &prompt.root; cd var &prompt.root; dump 0af - /var | restore xf - Wenn Sie ein Verzeichnis aus einer Partition herauslösen wollen, also z.B. /var auf eine eigene Partition verlegen wollen, dann müssen Sie zunächst beide Partitionen anlegen. Danach müssen Sie die untergeordnete Partition im passenden Verzeichnis unterhalb des temporären mount points mounten und zum Abschluß die alte Partition verschieben: &prompt.root; newfs /dev/ad1s1a &prompt.root; newfs /dev/ad1s1d &prompt.root; mount /dev/ad1s1a /mnt &prompt.root; mkdir /mnt/var &prompt.root; mount /dev/ad1s1d /mnt/var &prompt.root; cd /mnt &prompt.root; dump 0af - / | restore xf - Eventuell sagen Ihnen für Benutzerdaten &man.cpio.1;, &man.pax.1; oder &man.tar.1; eher zu als &man.dump.8;. Allerdings haben alle diese Programme den Nachteil, dass sie die erweiterten Dateiattribute nicht verstehen, daher sollten Sie bei ihrem Einsatz aufpassen. Gefährdet eine dangerously dedicated Festplatte meine Gesundheit? Die Installationsprozedur bietet Ihnen zwei verschiedene Methoden, Ihre Festplatte(n) zu partitionieren. Die Standardmethode macht sie kompatibel zu anderen Betriebssystemen auf derselben Maschine, indem fdisk-Tabelleneinträge (unter FreeBSD slices genannt) mit einem FreeBSD-Eintrag, in dem eigene Partitionen untergebracht werden, benutzt werden. Optional kann ausgewählt werden, ob ein Boot-Selektor installiert werden soll, um zwischen den möglichen Betriebssystemen auf der/den Platte(n) wechseln zu können. Bei der zweiten Methode wird die gesamte Platte für FreeBSD genutzt und nicht versucht, kompatibel zu anderen Betriebssystemen zu sein. Nun, warum wird es gefährlich genannt? Eine Platte in diesem Modus enthält nichts, was von normalen PC-Hilfsprogrammen als gültige fdisk-Tabelle betrachtet werden würde. Abhängig von der Qualität ihres Designs werden sie sich bei Ihnen beschweren, sobald sie mit einer solchen Platte in Kontakt kommen, oder noch schlimmer, sie könnten den Bootstrap von FreeBSD beschädigen, ohne Sie zu fragen oder darauf hinzuweisen. Hinzu kommt, dass vom Layout von dangerously dedicated Platten bekannt ist, dass es viele BIOSe verwirrt, einschließlich solcher von AWARD (wie es z.B. im HP Netserver oder Micronics-Systemen, sowie vielen anderen zu finden ist) und Symbios/NCR (für die bekannte 53C8xx-Reihe von SCSI-Controllern). Dies ist keine vollständige Liste - es gibt weitere. Symptome für diese Verwirrung sind read error-Meldungen, die vom FreeBSD-Bootstrap ausgegeben werden, wenn es sich selbst nicht finden kann, sowie Systemabstürze beim Booten. Warum gibt es diesen Modus dann überhaupt? Es spart ein paar kByte an Plattenplatz und kann echte Probleme verursachen, die zu einer Neuinstallation führen. Die Ursprünge des Dangerously dedicated Modus liegen in der Absicht, eines der häufigsten Probleme, das Erstinstallierer von FreeBSD plagt, zu verhindern - die BIOS-Werte für die Geometrie einer Festplatte auf der Festplatte selbst anzupassen. Geometrie ist ein veraltetes Konzept, das aber immer noch die Grundlage für die Interaktion zwischen dem PC-BIOS und den Festplatten ist. Wenn das Installationsprogramm von FreeBSD Slices erstellt, muss es sich die Lage dieser Slices auf der Festplatte in einer Art merken, die damit übereinstimmt, wie das BIOS erwartet, sie zu finden. Wenn das falsch geschieht, werden Sie nicht in der Lage sein, zu booten. Durch den Dangerously dedicated Modus wird versucht, dies zu umgehen, indem das Problem vereinfacht wird. In einigen Fällen klappt das zwar, aber er ist eher als allerletzter Ausweg gedacht - in 99 von 100 Fällen gibt es bessere Möglichkeiten, das Problem zu lösen. Wie vermeiden Sie also die Notwendigkeit zum DD Modus, wenn Sie installieren? Beginnen Sie, indem Sie sich notieren, welche Geometrie das BIOS für Ihre Platten benutzt. Sie können erreichen, dass der Kernel sie beim Booten ausgibt, indem Sie an der Eingabeaufforderung boot: angeben, oder boot -v im Loader verwenden. Kurz bevor das Installationsprogramm startet, wird der Kernel eine Liste mit den BIOS-Geometrien ausgeben. Keine Panik - warten Sie, bis das Installationsprogramm gestartet wurde und benutzen Sie Scrollback, um die Zahlen zu lesen. Typischerweise befinden sich die BIOS-Platten in derselben Reihenfolge, wie FreeBSD Ihre Platten auflistet - zuerst IDE, dann SCSI. Wenn Sie Ihre Festplatte in Slices unterteilen, überprüfen Sie, ob die Plattengeometrie, die im FDISK-Menü angegeben ist, korrekt ist (das heißt mit den Einstellungen im BIOS übereinstimmen). Falls die Werte nicht stimmen, benutzen Sie g, um sie zu korrigieren. Diese Schritte sind nötig, wenn sich absolut nichts auf der Festplatte befindet, oder, wenn die Festplatte vorher in einem anderen System benutzt worden ist. Beachten Sie, dass dies nur für die Festplatte nötig ist, von der Sie booten wollen. Mit weiteren vorhandenen Platten wird FreeBSD sich problemlos zurechtfinden. Wenn Sie es geschafft haben, dass das BIOS und FreeBSD in der Festplattengeometrie übereinstimmen, dann sind Ihre Probleme ziemlich sicher vorüber - ohne, dass es nötig gewesen wäre, den DD-Modus zu benutzen. Falls sie jedoch immer noch mit der gefürchteten read error-Meldung begrüßt werden sollten, wenn Sie versuchen, zu booten, wird es Zeit, dass Sie Ihre Finger kreuzen und es einfach versuchen - es gibt nichts mehr zu verlieren. Um eine dangerously dedicated Festplatte wieder für einen normalen PC brauchbar zu machen, gibt es zwei Möglichkeiten. Die erste ist, ausreichend viele NULL-Bytes in den MBR zu schreiben, um irgendwelche nachfolgenden Installation glauben zu machen, dass es sich um eine leere Festplatte handelt. Sie können das zum Beispiel so tun: &prompt.root; dd if=/dev/zero of=/dev/rda0 count=15 Alternativ installiert der undokumentierte DOS-Befehl C:\> fdisk /mbr einen neuen Master-Boot-Record, das heißt der BSD-Bootstrap wird zerstört. Auf welchen Partitionen kann ich problemlos Soft Updates einsetzen? Ich habe gehört, das der Einsatz von Soft Updates auf / Probleme verursachen kann. Die schnelle Antwort: Sie können Soft Updates bedenkenlos auf alle Partitionen benutzen. Die ausführliche Antwort: Es gab lange Zeit Bedenken, was den Einsatz von Soft Updates auf der root-Partition betrifft. Der Grund sind zwei Charakteristika der Soft Updates: Zum einen kann es bei einem Absturz des System auf einer Partition mit Soft Updates zum Datenverlust kommen. Die Partition ist zwar noch brauchbar, aber einige Daten können verloren gehen. Weiterhin kann es durch Soft Updates zu einem zeitweisen Mangel an Plattenplatz kommen. Bei der Benutzung von Soft Updates kann es bis zu dreißig Sekunden dauern, bis der Kernel Änderungen auf das physikalische Speichermedium schreibt. Wenn Sie eine große Datei löschen, ist diese Datei noch auf der Platte vorhanden, bis der Kernel die Löschoperation tatsächlich durchführt. Das kann zu einem sehr einfachen Problem führen: Stellen Sie sich vor, Sie löschen eine große Datei und legen gleich darauf eine andere große Datei an. Da die erste Datei noch nicht wirklich gelöscht wurde, ist eventuell nicht genug Platz für die zweite große Datei. Sie erhalten die Fehlermeldung, dass nicht genug freier Platz vorhanden ist, obwohl Sie ganz genau wissen, dass Sie gerade eben Platz geschaffen haben. Wenn Sie die Operation ein paar Sekunden später wiederholen, funktioniert alles wie von Geisterhand. Dieser Effekt hat mehr als einen Benutzer verwirrt und Zweifel an seiner geistigen Stabilität oder dem FreeBSD-Dateisystem aufkommen lassen. Wenn der Kernel ein Datenpaket annimmt und das System abstürzt, bevor er dies Daten auf die Platte geschrieben hat, kann es zum Verlust oder zur Zerstörung von Daten kommen. Dieses Risiko ist nur sehr gering und normalerweise tragbar. Wenn Sie allerdings einen IDE-Write-Cache verwenden, steigt das Risiko; daher wird normalerweise empfohlen, auf den Einsatz dieser Technik zu verzichten, wenn Sie Soft Updates benutzen. Diese beiden Probleme betreffen alle Partitionen, die Soft Updates verwenden. Was bedeutet das für die Root-Partition? Die wichtigen Daten auf der Root-Partition ändern sich nur sehr selten. Dateien wie /kernel und der Inhalt /etc werden nur bei der Wartung des Systems geändert, oder wenn Benutzer ihre Passwörter ändern. Wenn das System in den 30 Sekunden nach einer solchen Änderung abstürzt, ist es möglich, das Daten verloren gehen. Dieses Risiko ist in den meisten Fällen unerheblich, aber es ist vorhanden. Wenn das zu viel Risiko ist, dann sollten Sie Soft Updates nicht auf der Root-Partition einsetzen. / war schon immer eine der kleinsten Partitionen. Standardmäßig legt FreeBSD das Verzeichnis /tmp direkt auf /. Wenn in Ihrem /tmp viel Betrieb ist, kann es gelegentlich zu den oben beschriebenen Platzproblemen kommen. Um das Problem zu lösen, sollten sie einen symbolischen Link von /tmp nach /var/tmp legen. Was stimmt mit meinem ccd nicht? Das Symptom hierfür ist: &prompt.root; ccdconfig -C ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format Das geschieht für gewöhnlich, wenn Sie versuchen, die c Partitionen, die standardmäßig vom Typ unbenutzt sind, zu verbinden. Der ccd-Treiber verlangt Partitionen vom Typ FS_BSDFFS. Editieren Sie den Plattenlabel der Platten, die Sie zu verknüpfen versuchen und ändern Sie die Typen der Partitionen in 4.2BSD. Warum kann ich den Plattenlabel meines ccd nicht editieren? Das Symptom hierfür ist: &prompt.root; disklabel ccd0 (hier wird etwas vernünftiges ausgegeben; versuchen wir nun, es zu editieren) &prompt.root; disklabel -e ccd0 (editiern, speichern, beenden) disklabel: ioctl DIOCWDINFO: No disk label on disk; use "disklabel -r" to install initial label Der Grund ist, dass der von ccd zurückgelieferte Plattenlabel ein vorgetäuschter ist, der sich nicht wirklich auf der Platte befindet. Sie können das Problem beheben, indem Sie ihn explizit zurückschreiben, wie z.B. hier: &prompt.root; disklabel ccd0 > /tmp/disklabel.tmp &prompt.root; disklabel -Rr ccd0 /tmp/disklabel.tmp &prompt.root; disklabel -e ccd0 (nun wird es funktionieren) Kann ich andere fremde Dateisysteme unter FreeBSD mounten? FreeBSD unterstützt verschiedene fremde Dateisysteme. Digital UNIX UFS-CDROMs können unter FreeBSD direkt gemountet werden. Das Mounten von Partitionen von Digital &unix; und anderen Systemen, die UFS unterstützen, könnte schwieriger sein, abhängig von den Details der Plattenpartitionierung des betreffenden Betriebssystems. &linux; FreeBSD unterstützt ext2fs-Partitionen. Unter &man.mount.ext2fs.8; finden Sie weitere Informationen. &windowsnt; Ein NTFS-Treiber, der nur Lesezugriffe gestattet, ist Teil von &os;. Weitere Informationen entnehmen Sie bitte der Hilfeseite &man.mount.ntfs.8;. FAT FreeBSD enthält ein FAT-Treiber, der Lese- und Schreibzugriffe ermöglicht. Weitere Informationen entnehmen Sie bitte der Hilfeseite &man.mount.msdosfs.8;. ReiserFS FreeBSD enthält einen Treiber, der Lesezugriffe auf ReiserFS-Partitionen erlaubt. Weiter Informationen dazu finden Sie in der Manualpage &man.mount.reiserfs.8;. FreeBSD unterstützt auch verschiedene Netzwerk-Dateisysteme, wie NFS (&man.mount.nfs.8;), NetWare (&man.mount.nwfs.8;), sowie die SMB-Dateisysteme von Microsoft (&man.mount.smbfs.8;). Wie mounte ich eine erweiterte DOS-Partition? Die erweiterten DOS-Partitionen befinden sich hinter ALLEN primären Partitionen. Wenn sich zum Beispiel eine Partition E als sekundäre DOS-Partition auf Ihrem zweiten SCSI-Laufwerk befindet, müssen Sie die speziellen Dateien für Slice 5 im Verzeichnis /dev erstellen und dann /dev/da1s5 mounten: &prompt.root; cd /dev &prompt.root; ./MAKEDEV da1s5 &prompt.root; mount -t msdos /dev/da1s5 /dos/e Lassen Sie diesen Schritt aus, wenn Sie FreeBSD 5.0-RELEASE oder eine neuere Version mit &man.devfs.5; verwenden. Die Gerätedateien werden in diesem Fall automatisch in /dev erstellt. Gibt es ein verschlüsselndes Dateisystem für &os;? Seit FreeBSD 5.0 können Sie &man.gbde.8; einsetzen. Mit FreeBSD 6.0 kam &man.geli.8; hinzu. Für ältere Versionen gibt es den Port security/cfs. Wie kann ich den &windowsnt;-Loader zum Booten von FreeBSD verwenden? Das grundsätzliche Vorgehen besteht darin, dass Sie den ersten Sektor Ihrer eigentlichen FreeBSD-Rootpartition in eine Datei auf der DOS/&windowsnt;-Partition kopieren. Angenommen, sie nennen die Datei etwa c:\bootsect.bsd (durch c:\bootsect.dos inspiriert), dann können Sie die Datei c:\boot.ini etwa wie folgt editieren: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" C:\BOOTSECT.BSD="FreeBSD" C:\="DOS" Falls FreeBSD auf derselben Platte, wie die &windowsnt;-Bootpartition installiert ist, kopieren Sie einfach /boot/boot1 nach C:\BOOTSECT.BSD. Falls FreeBSD auf einer anderen Platte installiert ist, wird /boot/boot1 nicht funktionieren; Sie brauchen in diesem Fall /boot/boot0. /boot/boot0 muss mit sysinstall installiert werden. Wählen Sie dazu den FreeBSD-Bootmanager aus, wenn Sie gefragt werden, ob sie einen Bootmanager installieren wollen. Dieser Schritt ist notwendig, weil /boot/boot0 eine leere Partitionstabelle enthält, die von sysinstall ausgefüllt wird, bevor /boot/boot0 in den MBR kopiert wird. Sie dürfen auf gar keinen Fall einfach /boot/boot0 statt /boot/boot1 kopieren. Wenn Sie das doch tun sollten, wird Ihre Partitionstabelle überschrieben und Ihr Rechner wird nicht mehr starten! Wenn der Bootmanager von FreeBSD gestartet wird, merkt er sich das zuletzt gestartet Betriebssystem, indem er dessen Partition als aktiv markiert. Danach kopiert er sich selbst (alle 512 Bytes) in den MBR. Wenn Sie also einfach /boot/boot0 nach C:\BOOTSECT.BSD kopieren, würde der Bootmanager eine leere Partitionstabelle (mit einem als aktiv markiertem Eintrag) in den MBR kopieren. Wie boote ich FreeBSD und &linux; mit LILO? Falls sich FreeBSD und &linux; auf derselben Platte befinden, folgen Sie einfach den Installationsanweisungen von LILO zum Booten eines Nicht-&linux;-Betriebssystems. Ganz knapp sind dies: Booten Sie &linux; und fügen Sie die folgenden Zeilen in die Datei /etc/lilo.conf ein: other=/dev/hda2 table=/dev/hda label=FreeBSD (hierbei wird angenommen, dass Ihre FreeBSD-Partition &linux; unter /dev/hda2 bekannt ist; ändern Sie dies entsprechend Ihren Einstellungen). Führen Sie nun als root den Befehl lilo aus und Sie sind fertig. Falls FreeBSD sich auf einer anderen Platte befindet, müssen Sie loader=/boot/chain.b zu den LILO-Angaben hinzufügen. Zum Beispiel: other=/dev/dab4 table=/dev/dab loader=/boot/chain.b label=FreeBSD In einigen Fällen könnte es sein, dass Sie beim FreeBSD-Bootloader die BIOS-Laufwerksnummer angeben müssen, um von der zweiten Platte booten zu können. Wenn Ihre FreeBSD-SCSI-Platte vom BIOS zum Beispiel als BIOS-Platte 1 erkannt wird, müssen Sie am Prompt des FreeBSD-Bootloaders eingeben: Boot: 1:da(0,a)/kernel Sie 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 FreeBSD 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/grub.conf aufnehmen: title FreeBSD 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 FreeBSD und &linux; mit BootEasy? Installieren Sie LILO am Anfang Ihrer &linux;-Bootpartition, anstatt im Master Boot Record. Sie können LILO dann von BootEasy aus booten. Wenn Sie &windows; 95 und &linux; benutzen, wird das ohnehin empfohlen, um es einfacher zu machen, &linux; wieder zu booten, wenn es nötig werden sollte, dass Sie &windows; 95 neu installieren (&windows; 95 ist ein eifersüchtiges Betriebssystem, das kein anderes Betriebssystem im Master Boot Sektor duldet). Wie kann ich das ??? des Boot-Managers durch etwas Sinnvolles ersetzen? Solange Sie den Boot-Manager nicht komplett neu schreiben, gar nicht. Allerdings gibt es in der Kategorie sysutils der Ports diverse Boot-Manager, die diese Funktionalität bieten. Ich habe ein Wechsellaufwerk. Wie benutze ich es? Ob es sich um ein Wechsellaufwerk handelt, um ein &iomegazip; oder ein EZ-Laufwerk (oder sogar ein Diskettenlaufwerk, wenn Sie es auf diese Weise benutzen möchten), oder um eine neue Festplatte - wenn es einmal installiert und vom System erkannt ist und Sie Ihre Kassette/Diskette/was_auch_immer eingelegt haben, ist das Vorgehen bei allen Geräten ziemlich ähnlich. (dieser Abschnitt basiert auf Mark Mayo's ZIP-FAQ) Wenn es sich um ein ZIP- oder Diskettenlaufwerk handelt, und sich bereits ein DOS-Dateisystem darauf befindet, können Sie einen Befehl wie diesen für eine Diskette benutzen: &prompt.root; mount -t msdos /dev/fd0c /floppy oder diesen: &prompt.root; mount -t msdos /dev/da2s4 /zip für eine ZIP-Disk mit der Herstellerkonfiguration. Benutzen Sie bei anderen Platten &man.fdisk.8; oder &man.sysinstall.8;, um herauszufinden, wie sie konfiguriert sind. Die restlichen Beispiele sind für ein ZIP-Laufwerk unter da2, der dritten SCSI-Platte. Wenn es sich nicht um eine Diskette oder eine Wechselplatte handelt, die Sie mit anderen Leuten austauschen wollen, ist es wahrscheinlich besser, ein BSD-Dateisystem darauf zu installieren. Hierdurch bekommen Sie Unterstützung für lange Dateinamen, eine mindestens doppelt so hohe Leistungsausnutzung und wesentlich höhere Stabilität. Zunächst müssen Sie die Partitionen/Dateisysteme auf DOS-Ebene nochmals erstellen. Sie können entweder &man.fdisk.8; oder /stand/sysinstall benutzen, oder, bei einem kleinen Laufwerk, dem Sie eine Unterstützung für mehrere Betriebssysteme nicht zumuten wollen, entfernen Sie einfach die komplette FAT Partitionstabelle (Slices) und benutzen Sie einfach die BSD-Partitionierung: &prompt.root; dd if=/dev/zero of=/dev/rda2 count=2 &prompt.root; disklabel -Brw da2 auto Sie können disklabel oder /stand/sysinstall benutzen, um mehrere BSD-Partitionen zu erstellen. Dies werden Sie sicherlich bei einer fest eingebauten Platte wollen, aber bei einem Wechsellaufwerk wie einem ZIP ist das wahrscheinlich irrelevant. Zum Schluß erstellen Sie ein neues Dateisystem - dieses befindet sich auf unserem ZIP-Laufwerk und belegt die gesamte Platte: &prompt.root; newfs /dev/rda2c anschließend mounten Sie es: &prompt.root; mount /dev/da2c /zip Und 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 0 Wieso erhalte ich die Meldung Incorrect super block beim Mounten einer CDROM? Sie müssen &man.mount.8; mitteilen, was für ein Gerät Sie mounten wollen. Genauere Informationen dazu finden Sie im Kapitel Optische Speichermedien des Handbuch, genauer gesagt im Abschnitt Benutzung von Daten-CDs. Wieso erhalte ich die Meldung Device not configured, wenn ich eine CDROM mounte? Das bedeutet im allgemeinen, dass sich keine CDROM im Laufwerk befindet, oder, dass das Laufwerk auf dem Bus nicht sichtbar ist. Dieses Problem wird im Kapitel Benutzung von Daten-CDs des Handbuchs ausführlich diskutiert. Wieso werden alle Sonderzeichen in den Dateinamen auf meinen CDs durch ? ersetzt, wenn ich die CD unter FreeBSD benutze? Wahrscheinlich werden auf der CDROM die Joliet Erweiterungen für die Speicherung von Datei- und Verzeichnisnamen benutzt. Werfen Sie einen Blick in das Kapitel Erzeugung von CD-ROMs im Handbuch, speziell in den Abschnitt über Benutzung von Daten-CDs. [Anmerkung des Übersetzers: Es geht hier nicht um die deutschen Sonderzeichen, da diese schon im normalen ISO8859-1 enthalten sind. Die Probleme treten auf, wenn man z.B. russische CDs (ISO8859-5) verwendet.] Ich habe eine CD mit FreeBSD gebrannt und kann sie nicht mit anderen Betriebssystemen lesen. Warum? Sie haben wahrscheinlichste eine Datei direkt auf CD geschrieben, statt ein ISO 9660-Dateisystems erzeugt zu haben. Werfen Sie einen Blick in das Kapitel Erzeugung von CD-ROMs im Handbuch, speziell in den Abschnitt über reine Daten-CDs. Wie kann ich ein Image einer Daten-CD erzeugen? Diese Information finden Sie im Abschnitt Kopieren von CD-ROMs des Handbuchs. Weitere Informationen über die Arbeit mit CD-ROMs finden Sie im Abschnitt Erzeugen von CD-ROMs im Kapitel Speichermedien des Handbuchs. Wieso kommt mount nicht meiner Audio-CD zurecht? Wenn Sie versuchen sollten, eine Audio-CD zu mounten, erhalten Sie die Meldung cd9660: /dev/acd0c: Invalid argument. Der Grund dafür ist, dass mount nur für Dateisysteme vorgehen ist. Audio CDs habe kein Dateisystem, sondern nur Daten. Wenn Sie eine Audio CD auslesen wollen, brauchen Sie ein entsprechendes Programm wie z.B. audio/xmcd aus den Ports. Wie nutze ich mount für eine Multi-Session CD? Standardmäßig benutzt &man.mount.8; den letzten (aktuellsten) Daten-Track der CD. Wenn Sie eine ältere Session benutzen wollen, müssen Sie diese mit der Option definieren. Weitere Informationen finden Sie in der Onlinehilfe zu &man.mount.cd9660.8; Wie lasse ich normale Benutzer Disketten, CDROMs und andere Wechseldatenträger mounten? Normale Benutzer können dazu berechtigt werden, Geräte zu mounten. Das geht so: Setzen Sie als root die sysctl-Variable vfs.usermount auf 1: &prompt.root; sysctl -w vfs.usermount=1 Ordnen 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/fd0 Um den Mitgliedern der Gruppe operator den Zugriff auf das CDROM zu gestatten: &prompt.root; chgrp operator /dev/acd0c &prompt.root; chmod 640 /dev/acd0c Ab &os; 5.X müssen Sie zusätzlich /etc/devfs.conf anpassen, weil diese Einstellungen ansonsten beim Systemneustart verloren gehen. Damit normale Benutzer bespielsweise das erste Diskettenlaufwerk mounten können, fügen Sie als root folgende Zeilen in /etc/devfs.conf ein: # Allen Benutzern erlauben, das erste Diskettenlaufwerk zu mounten. own /dev/fd0 root:operator perm /dev/fd0 0666 Damit 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 0660 Fügen Sie zum Abschluss die Zeile vfs.usermount=1 in die Datei /etc/sysctl.conf ein, damit die Einstellung bei einem Neustart des Systems automatisch erhalten bleibt. Alle Benutzer können nun /dev/fd0 auf ein Verzeichnis, das ihnen gehört, mounten: &prompt.user; mkdir ~/my-mount-point &prompt.user; mount -t msdos /dev/fd0 ~/my-mount-point Die 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-point Das Unmounten des Gerätes ist simpel: &prompt.user; umount ~/my-mount-point Die Aktivierung von vfs.usermount hat jedoch negative Auswirkungen auf Sicherheitsaspekte. Ein besserer Weg, um auf &ms-dos;-formatierte Datenträger zuzugreifen, ist die Benutzung des Packages emulators/mtools. Denken Sie daran, dass Sie die Gerätenamen in diesen Beispielen an Ihre Konfiguration anpassen müssen. Wieso geben die Befehle du und df unterschiedliche Werte für den freien Plattenplatz aus? Der Grund ist die Funktionsweise von du und df. du geht durch einen Dateibaum, ermittelt die Größe jeder einzelnen Datei, und gibt die Summe aus. df fragt lediglich das Dateisystem wie viel Platz noch frei ist. Das scheint zwar auf den ersten Blick sehr ähnlich zu sein; allerdings wird sich ein leeres Verzeichnis auf die Ausgabe von df auswirken, während es auf das Ergebnis von du keinen Einfluss hat. Wenn Sie eine Datei löschen, während sie von einem Programm genutzt wird, wird diese Datei erst gelöscht, wenn sie vom Programm freigegeben wird. Allerdings wird die Datei sofort aus dem Verzeichnis entfernt. Sie können dieses Verhalten mit einem Programm wie more sehr einfach nachvollziehen. Dazu brauchen Sie nur eine Datei, die groß genug ist, um die Ausgabe von du und df zu beeinflussen. Bei der Größe aktueller Platten muss diese Datei schon sehr groß sein! Wenn Sie diese Datei löschen, während Sie sie sich in more anzeigen lassen, hat more kein Problem. Der Eintrag für die Datei wird lediglich aus dem Verzeichnis entfernt, damit kein anderes Programm mehr darauf zugreifen kann. Laut du ist die Datei verschwunden – es hat das Verzeichnis untersucht und die Datei nicht gefunden. Laut df ist die Datei aber vorhanden, da sie im Dateisystem immer noch Platz belegt. Sobald Sie more beenden, werden die Ergebnisse von du und df wieder übereinstimmen. Bitte beachten Sie, dass die Freigabe des Plattenplatzes durch die Soft Updates um bis zu 30 Sekunden verzögert werden kann. Die oben beschriebene Situation tritt sehr häufig auf Web-Servern auf. Viele Anwender installieren einen FreeBSD Web-Server und vergessen die Rotation der Logfiles, bis irgendwann die Partition /var überläuft. Der Administrator löscht die Datei, aber das System beschwert sich immer noch über fehlenden Plattenplatz. Die Datei wird erst freigegeben, wenn der Web-Server beendet und neu gestartet wird; dadurch kann das System den Plattenplatz freigeben. Um solche und ähnliche Unfälle zu verhindern, sollten Sie &man.newsyslog.8; einsetzen. Wie kann ich den Swap-Bereich vergrößern? Im Kapitel Konfiguration und Tuning des Handbuches gibt es einen Abschnitt mit einer Schritt-für-Schritt Anleitung. Warum ist meine Festplatte unter &os; kleiner, als sie laut Hersteller sein soll? Festplattenhersteller definieren ein Gigabyte als eine Milliarde Bytes, für &os; ist ein Gigabyte hingegen 1.073.741.824 Bytes groß. Aus diesem Grund wird für eine Platte, die laut Herstellerangaben 80 GB groß ist, während des Bootvorgangs eine Größe von 76.319 MB angezeigt. Beachten Sie auch, dass &os; (in der Voreinstellung) 8 % des Plattenplatzes für sich reserviert. Warum kann eine Partition zu mehr als 100% gefüllt sein? Ein Teil jeder UFS Partition, in der Vorgabe sind das 8%, ist für das Betriebssystem und den Benutzer root reserviert. &man.df.1; rechnet diesen Teil bei der Ausgabe der Capacity Spalte nicht ein, so dass dort Werte über 100% angezeigt werden können. Die Anzahl der Blöcke in der blocks Spalte ist ebenfalls um 8% größer als die Summe der benutzten und verfügbaren Blöcke (die Spalten Used und Avail). Wie viel Platz reserviert wird, können Sie mit der Option von &man.tunefs.8; einstellen. Systemadministration Wo befinden sich die Konfigurationsdateien für den Systemstart? /etc/defaults/rc.conf (siehe &man.rc.conf.5;) ist die primäre Konfigurationsdatei. Die Startskripten des Systems, wie /etc/rc und /etc/rc.d (siehe &man.rc.8;) inkludieren diese Datei. Ändern Sie diese Datei nicht! Wenn Sie den Wert einer der in /etc/defaults/rc.conf gesetzten Variablen ändern wollen, fügen Sie die entsprechende Zeile in die Datei /etc/rc.conf ein und ändern die Zeile dort. Wenn Sie zum Beispiel den mitgelieferten DNS-Server named aktivieren wollen, müssen Sie lediglich das folgende Kommando eingeben: &prompt.root; echo named_enable="YES" >> /etc/rc.conf Wenn Sie lokale Server starten wollen, müssen Sie passende Shellskripten im Verzeichnis /usr/local/etc/rc.d/ ablegen. Die Dateien müssen als ausführbar markiert sein und die Endung .sh haben. Wie kann ich am Einfachsten einen Benutzer hinzufügen? Benutzen Sie den Befehl &man.adduser.8; und für kompliziertere Fälle den Befehl &man.pw.8;. Benutzen Sie den Befehl &man.rmuser.8;, um einen Benutzer wieder zu löschen. Sie können, wenn nötig. auch &man.pw.8; benutzen. Warum erhalte ich Meldungen wie root: not found, nachdem ich meine crontab geändert habe? Die übliche Ursache dieses Problems ist, dass Sie die crontab des Systems (/etc/crontab) geändert und dann mit &man.crontab.1; installiert haben: &prompt.root; crontab /etc/crontab Diese 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 -r Wenn Sie /etc/crontab wieder ändern müssen, sollten Sie einfach gar nichts tun, um &man.cron.8; über die Änderung zu informieren, er erkennt die Änderung automatisch. Wenn Sie ein Kommando jeden Tag, jede Woche oder jeden Monat ausführen lassen wollen, ist es wahrscheinlich einfacher, wenn Sie entsprechende Shell-Scripte in /usr/local/etc/periodic ablegen. Diese werden dann von &man.periodic.8; zusammen mit den anderen regelmäßigen Tätigkeiten ausgeführt. Der eigentliche Grund für den Fehler ist die Tatsache, dass die crontab des Systems ein zusätzliches Feld enthält; dieses Feld gibt an, mit welcher Benutzerkennung der Befehl ausgeführt werden soll. In der mitgelieferten crontab ist das bei allen Einträgen die Benutzerkennung root. Wenn diese Datei als die crontab des Benutzers username (die nicht mit der crontab des Systems identisch ist) verwendet wird, hält &man.cron.8; die Zeichenkette root für den Namen des zu startenden Programmes, aber dieses Programm gibt es nicht. Wieso meldet mir &man.su.1; you are not in the correct group to su root, wenn ich mit &man.su.1; root werden will? Das ist ein Sicherheits-Feature. Wenn Sie mit &man.su.1; zum Account root (oder jedem anderen Account mit Super-User-Privilegien) wechseln wollen, müssen Sie ein Mitglied der Gruppe wheel sein. Wenn es dieses Feature nicht gäbe, könnte jeder, der einen Account auf dem System hat und zufällig das Passwort für root erfährt, mit Super-User-Rechten auf das System zugreifen. Durch dieses Feature ist die Lage anders, wenn Sie nicht Mitglied von wheel sind, können Sie nicht einmal versuchen, dass Passwort einzugeben. Um einem Benutzer zu erlauben, mit &man.su.1; root zu werden, müssen Sie ihn nur in die Gruppe wheel eintragen. Ich habe einen Fehler in der rc.conf oder einer der anderen Dateien für den Systemstart und jetzt kann ich sie nicht ändern, weil das Dateisystem read-only ist. Was kann ich tun? Wenn Sie aufgefordert werden, den Pfadnamen der Shell einzugeben, drücken Sie einfach ENTER. Geben Sie danach mount / ein, um das Root-Dateisystem im Schreib/Lese-Modus zu mounten. Sie werden wahrscheinlich auch mount -a -t ufs ausführen müssen, um das Dateisystem mit Ihrem Lieblingseditor zu mounten. Wenn Ihr Lieblingseditor auf einem Netzwerklaufwerk liegt, müssen Sie entweder das Netzwerk von Hand konfigurieren oder einen Editor benutzen, der auf einem lokalen Laufwerk vorhanden ist, z.B. &man.ed.1;. Wenn Sie einen bildschirmorientierten Editor wie zum Beispiel &man.vi.1; oder &man.emacs.1; benutzen wollen, werden Sie auch den Befehl export TERM=cons25 ausführen müssen, damit diese Editoren die richtigen Einstellungen aus der Datenbank &man.termcap.5; übernehmen. Sobald Sie diese Schritte ausgeführt, können Sie den Fehler in der /etc/rc.conf ganz normal beheben. Die Fehlermeldungen, die Ihnen unmittelbar nach den Startmeldungen des Kernels angezeigt wurden, sollten Ihnen die Nummer der Zeile mit dem Fehler melden. Wieso habe ich habe Probleme, meinen Drucker einzurichten? Bitte sehen Sie im Handbucheintrag über Drucker nach. Es sollte die meisten Ihrer Probleme behandeln. Lesen sie den Handbucheintrag über Drucker. Einige Drucker benötigen einen auf dem Rechner laufenden Treiber, um drucken zu können. Diese so genannten WinPrinter oder GDI-Drucker werden von FreeBSD nicht unterstützt und an diesem Zustand wird sich wohl auch nichts ändern. Wenn Ihr Drucker nicht unter DOS oder &windowsnt; 4.0 verwendet werden kann, handelt es sich um einen WinPrinter und wird in der Regel auch nicht unter FreeBSD funktionieren. Ihre einzige Chance, einen dieser Drucker benutzen können, ist der Port ports/print/pnm2ppa. Wie kann ich die Tastaturbelegung meines Systems korrigieren? Informationen dazu finden Sie im Kapitel länderspezifische Einstellungen des Handbuchs, insbesondere im Abschnitt Konfiguration der Konsole. Wieso erhalte ich beim Start des Systems Meldungen wie unknown: <PNP0303> can't assign resources? Die nachfolgende Erklärung stammt aus einer Mail auf der Mailingliste freebsd-current.
&a.wollman;, 24 April 2001 Die Geräte, für die can't assign resources-Meldungen ausgegeben werden, sind Legacy ISAGeräte, für die ein nicht PNP-fähiger Treiber in den Kernel eingebunden wurde. Dabei handelt es sich um Geräte wie den Tastaturkontroller, den programmierbaren Interrupt-Kontroller und diverse andere Standardkomponenten. Die Ressourcen können nicht zugewiesen werden, weil es schon einen Treiber gibt, der diese Ressourcen benutzt.
Wieso funktionieren die Benutzer-Quotas nicht richtig? Es kann sein, dass Ihr Kernel nicht für den Einsatz von Quotas konfiguriert ist. Damit Sie mit Quotas arbeiten können, müssen Sie folgende Zeile in Ihre Kernelkonfigurationsdatei aufnehmen und den Kernel neu bauen: options QUOTA Weitere Informationen zum Einsatz von Quotas finden Sie im entsprechenden Abschnitt des Handbuchs. Benutzen Sie keine Quotas für /. Erstellen Sie die Quotas-Datei in dem Dateisystem, für das die Quotas gelten sollen, z.B.: Filesystem Quota file /usr /usr/admin/quotas /home /home/admin/quotas Unterstützt FreeBSD IPC-Grundfunktionen von System V? Ja, FreeBSD unterstützt IPC im Stil von System V einschließlich gemeinsamen Speicher, Nachrichten und Semaphoren bereits mit dem GENERIC-Kernel. Wenn Sie einen angepassten Kernel verwenden, müssen Sie die folgenden Zeilen in Ihre Kernelkonfigurationsdatei einfügen: options SYSVSHM options SYSVSHM # enable shared memory options SYSVSEM # enable for semaphores options SYSVMSG # enable for messaging Danach kompilieren und installieren Sie den neuen Kernel. Welchen Mail-Server kann ich an Stelle von Sendmail benutzen? Sendmail ist zwar der Mail-Server, der bei FreeBSD standardmäßig installiert wird, aber Sie können Ihn problemlos durch einen anderen MTA (z.B. aus den Ports) ersetzen. In der Port-Sammlung gibt es bereits viele verschiedene MTAs, mail/exim, mail/postfix, mail/qmail, sowie mail/zmailer sind einige der beliebteren Alternativen. Konkurrenz belebt das Geschäft und die Tatsache, dass Sie die Qual der Wahl haben, ist ein Vorteil. Daher sollten Sie Fragen wie Ist Sendmail besser als Qmail? besser nicht auf den Mailinglisten stellen. Wenn Sie dieses Thema interessiert, sollten sie zunächst die Archive durchsehen. Die Vorteile und Nachteile jedes einzelnen der verfügbaren MTAs sind schon mehrere Male bis zur Erschöpfung diskutiert worden. Was kann ich machen, wenn ich das Rootpasswort vergessen habe? Keine Panik! Starten Sie Ihr System neu und geben Sie boot -s an der Eingabeaufforderung Boot: ein, um in den Einzelbenutzermodus zu gelangen. Bei der Frage danach, welche Shell benutzt werden soll, drücken Sie einfach ENTER. Nun erscheint die Eingabeaufforderung &prompt.root;. Geben Sie mount -u / ein, um Ihr Root-Dateisystem für Lese- und Schreibzugriffe zu remounten und dann mount -a, um alle Dateisysteme zu remounten. Mit passwd root können Sie das Rootpasswort ändern und mit &man.exit.1; können Sie mit dem Booten fortfahren. Wie verhindere ich, dass das System mit Ctrl Alt Delete rebootet werden kann? Falls Sie syscons (den Standard-Treiber für die Konsole) benutzen, fügen Sie folgende Zeile in Ihre Kernelkonfigurationsdatei ein: options SC_DISABLE_REBOOT Falls Sie den Konsolen-Treiber PCVT verwenden, benutzen Sie stattdessen die folgende Zeile: options PCVT_CTRL_ALT_DEL Wie kann ich Textdateien von DOS Systemen auf &unix; Systemen verwenden? Benutzen Sie diesen Perl-Befehl: &prompt.user; perl -i.bak -npe 's/\r\n/\n/g' file ... file ist/sind die zu verarbeitende(n) Datei(en). Die Änderungen erfolgen in der Originaldatei, die zuvor mit der Erweiterung .bak gesichert wird. Alternativ können Sie den Befehl &man.tr.1; benutzen: &prompt.user; tr -d '\r' < dos-text-file > unix-file dos-text-file ist die Datei, die den Text im DOS-Format enthält und unix-file wird die konvertierte Ausgabe enthalten. Diese Möglichkeit könnte etwas schneller sein, als die Benutzung von Perl. Wie beende ich Prozesse namentlich? Benutzen Sie &man.killall.1;. Warum nervt su mich damit, dass ich nicht in der ACL von root bin? Der Fehler stammt vom verteilten Authentifizierungssystem Kerberos. Das Problem ist nicht ernsthaft, aber störend. Sie können entweder su mit der Option -K benutzen, oder Kerberos deinstallieren, wie in der nächsten Frage beschrieben. Wie deinstalliere ich Kerberos? Um Kerberos aus dem System zu entfernen, müssen Sie die bin-Distribution der von Ihnen benutzen RELEASE neu installieren. Wenn Sie die CDROM besitzen, können Sie sie mounten (wir nehmen an, unter /cdrom) und folgende Schritte ausführen: &prompt.root; cd /cdrom/bin &prompt.root; ./install.sh Alternativ können Sie alle Zeilen mit MAKE_KERBEROS aus der /etc/make.conf entfernen und dann ein make world durchführen. Wo ist /dev/MAKEDEV hin? Ab FreeBSD 5.X werden Geräte automatisch von &man.devfs.8; zur Verfügung gestellt. Die Gerätetreiber erstellen die Gerätedateien, wenn diese benötigt werden. Das Skript /dev/MAKEDEV wird nicht mehr gebraucht. Wenn Sie FreeBSD 4.X oder eine frühere Version benutzen und /dev/MAKEDEV fehlt, dann haben Sie ein Problem. Kopieren Sie das Skript aus den Systemquellen. Es liegt wahrscheinlich unter /usr/src/etc/MAKEDEV. Wie füge ich Pseudo-Terminals zum System hinzu? Wenn Sie viele Benutzer von telnet, ssh, X oder screens haben, könnte es sein, dass Ihnen die Pseudo-Terminals ausgehen. So fügen Sie weitere hinzu: Erstellen und installieren Sie einen neuen Kernel mit der Zeile pseudo-device pty 256 in der Konfigurationsdatei. Führen Sie die Befehle &prompt.root; cd /dev &prompt.root; ./MAKEDEV pty{1,2,3,4,5,6,7} aus, um 256 Geräteeinträge für die neuen Terminals zu erstellen. Editieren Sie die Datei /etc/ttys und fügen Sie Zeilen für jeden der 256 Terminals ein. Sie sollten so aussehen, wie die existierenden Einträge, also etwa so: ttyqc none network Die Reihenfolge der Buchstabenzuordnung lautet mit einem regulären Ausdruck tty[pqrsPQRS][0-9a-v]. Starten Sie das System mit dem neuen Kernel erneut, wenn Sie bereit sind. Warum kann ich das Gerät snd0 nicht erstellen? Es gibt kein Gerät snd. Diese Bezeichnung ist nur ein Sammelbegriff für die diversen Geräte, die zusammen das Soundsystem von FreeBSD bilden, wie zum Beispiel mixer, sequencer, und dsp. So erzeugen Sie diese Geräte: &prompt.root; cd /dev &prompt.root; sh MAKEDEV snd0 Lassen Sie diesen Schritt aus, wenn Sie FreeBSD 5.0-RELEASE oder eine neuere Version mit &man.devfs.5; verwenden. Die Gerätedateien werden in diesem Fall automatisch in /dev erstellt. Wie lade ich /etc/rc.conf und starte /etc/rc neu, ohne zu rebooten? Gehen Sie in den Einzelbenutzermodus und dann zurück in den Mehrbenutzermodus. Geben Sie auf der Konsole folgendes ein: &prompt.root; shutdown now (Hinweis: ohne -r oder -h) &prompt.root; return &prompt.root; exit Ich wollte auf das aktuelle -STABLE updaten, und plötzlich läuft hier ein -BETAx, -RC oder -PRERELEASE. Was ist passiert? Kurze Antwort: Das ist nur ein anderer Name. RC ist die Abkürzung für Release Candidate. Es bedeutet, dass eine neue Release bevorsteht. Und -PRERELEASE bedeutet bei FreeBSD normalerweise, dass die Sourcen zur Vorbereitung auf eine Release eingefroren wurden (in einigen Releases wurde -BETA anstelle von -PRERELEASE verwendet). Ausführliche Antwort: Bei FreeBSD gibt es zwei Quellen für Releases. Die Major Releases wie 4.0-RELEASE und 5.0-RELEASE werden aus dem aktuellen Stand des Hauptzweiges der Entwicklung (besser und kürzer als -CURRENT bekannt) erzeugt. Minor Releases wie 4.1-RELEASE or 5.2-RELEASE stammen aus dem aktiven -STABLE Zweig. Seit 4.3-RELEASE gibt es es nun auch einen eigenen Zweig für jede Release, der für die Leute gedacht ist, die ein sehr konservativ weiterentwickeltes System benötigen (im Normalfall also nur Updates aus dem Bereich Sicherheit). Bevor in einem Zweig eine Release erfolgt, muss in diesem Zweig ein bestimmter Prozess ablaufen. Ein Teil dieses Prozesses ist der code freeze, der Stop der Weiterentwicklung. Sobald dieser Schritt erfolgt ist, wird der Name des Zweiges geändert, um anzuzeigen, dass demnächst eine Release erfolgen wird. Wenn der Zweig zum Beispiel 4.5-STABLE genannt wurde, wird der Name in 4.6-PRERELEASE geändert, um dies zu verdeutlichen. Weiterhin ist das ein Zeichen, dass jetzt besonders intensiv getestet werden sollte. In dieser Phase können Fehler im Sourcecode noch korrigiert werden. Wenn der Sourcecode so weit gereift ist, dass eine Release erstellt werden kann, wird der Name in 4.6-RC geändert, um genau dies anzuzeigen. In dieser Phase können nur noch extrem wichtige Korrekturen aufgenommen werden. Sobald die Release (in diesem Beispiel 4.6-RELEASE) erfolgt ist, wird der Zweig in 4.6-STABLE umbenannt. Weitere Informationen über Versionsnummern und die verschiedenen Entwicklungszweige enthält der Artikel Release Engineering. Als ich versucht habe, einen neuen Kernel zu installieren, ist das chflags fehlgeschlagen. Was mache ich jetzt? Kurze Antwort: Ihre Sicherheitseinstellung (der securelevel) ist wahrscheinlich größer als 0. Sie müssen das System neu starten und den Kernel im Single-User Modus installierten. Ausführliche Antwort: Wenn die Sicherheitseinstellung größer als 0 ist, erlaubt Ihnen FreeBSD nicht, die Systemflags zu ändern. Um den aktuellen Securelevel zu ermitteln, können Sie das folgende Kommando benutzen: &prompt.root; sysctl kern.securelevel Sie können die Sicherheitseinstellung nicht verringern, Sie müssen das System neu starten und den Kernel im Single-User Mode installieren oder die Sicherheitseinstellung in /etc/rc.conf ändern und dann das System neu starten. Weitere Detail zur Sicherheitseinstellung erhalten Sie in &man.init.8;, weitere Informationen zur rc.conf erhalten Sie in /etc/defaults/rc.conf und &man.rc.conf.5;. Ich kann die Systemzeit nicht um mehr als eine Sekunde verstellen. Was mache ich jetzt? Kurze Antwort: Ihre Sicherheitseinstellung (der securelevel) ist wahrscheinlich größer als 1. Sie müssen das System neu starten und die Systemzeit im Single-User Modus verstellen. Ausführliche Antwort: Wenn die Sicherheitseinstellung größer als 1 ist, erlaubt Ihnen FreeBSD nicht, die Systemzeit zu ändern. Um den aktuellen Securelevel zu ermitteln, können Sie das folgende Kommando benutzen: &prompt.root; sysctl kern.securelevel Sie können die Sicherheitseinstellung nicht verringern, Sie müssen das System neu starten und die Systemzeit im Single-User Mode ändern oder die Sicherheitseinstellung in /etc/rc.conf ändern und dann das System neu starten. Weitere Detail zur Sicherheitseinstellung erhalten Sie in &man.init.8;, weitere Informationen zur rc.conf erhalten Sie in /etc/defaults/rc.conf und &man.rc.conf.5;. Warum braucht &man.rpc.statd.8; 256 MByte Speicher? Nein, das Programm hat keinen Fehler und es verbraucht auch nicht 256 MByte Speicher. rpc.statd projiziert nur einen übertrieben großen Speicherbereich in seinen eigenen Adressraum. Von einem rein technischen Standpunkt aus ist das nichts verwerfliches, allerdings verwirrt es Programme wie &man.top.1; und &man.ps.1;. &man.rpc.statd.8; projiziert seine Statusdatei (die in /var liegt) in seinen Adressraum. Um die Probleme zu vermeiden, die bei einer Vergrößerung dieser Projektion entstehen könnten, wird gleich ein möglichst großer Speicherbereich benutzt. Dies kann man sehr schön im Sourcecode sehen: Die Längenangabe beim Aufruf von &man.mmap.2; ist 0x10000000, ein sechzehntel des Adressraums bei IA32, oder genau 256 MByte. Warum kann ich das Dateiattribut schg nicht löschen? Sie betreiben Ihr System mit einer erhöhten Sicherheitsstufe. Senken Sie die Sicherheitsstufe und versuchen Sie es dann noch einmal. Weitere Informationen erhalten Sie im FAQ Eintrag über Sicherheitsstufen und in der Online-Hilfe &man.init.8;. Warum funktioniert die .shosts Authentifizierung von SSH in neueren Version von FreeBSD nicht mehr? Die .shosts Authentifizierung funktioniert nicht mehr, weil &man.ssh.1; in neueren Versionen von FreeBSD nicht mehr SUID-root installiert wird. Um dieses Problem zu lösen, gibt es die folgenden Möglichkeiten: Um das Problem für immer zu lösen, müssen Sie in /etc/make.conf die Variable ENABLE_SUID_SSH auf true setzen und ssh neu übersetzen (oder make world ausführen. Übergangsweise können Sie auch die Dateirechte von /usr/bin/ssh auf 4555 setzen, indem Sie den Befehl chmod 4555 /usr/bin/ssh als root ausführen. Fügen Sie anschließend ENABLE_SUID_SSH= true in die Datei /etc/make.conf ein, damit diese Änderung erhalten bleibt, wenn Sie das nächste Mal make world ausführen. Was ist vnlru? vnlru schreibt vnodes auf Platte und gibt sie wieder frei, falls das System die Grenzwert kern.maxvnodes erreicht. Dieser Thread des Kernel tut meistens gar nichts und wird nur aktiv, wenn Sie extrem viel RAM haben und gleichzeitig auf viele zehntausende kleine Dateien zugreifen. Was bedeuten die Zustände, die top für Speicherseiten ausgibt? Speicherseiten werden vom Kernel in verschiedenen Listen verwaltet: Active: Seiten, die vor Kurzem benutzt wurden. Inactive: Seiten, die länger nicht benutzt wurden. Cache: Meistens Seiten, die vorher im Zustand Inactive waren und noch gültige Daten enthalten. Diese Seiten können sofort in ihrem alten Kontext oder in einem neuen Kontext verwendet werden. Wenn eine Seite unverändert (clean) ist, kann ein Zustandswechsel direkt von Active nach Cache erfolgen. Ob dieser Zustandswechsel möglich ist, wird durch die Seitenersetzungsstrategie bestimmt, die der Entwickler des VM-Systems festgelegt hat. Free: Seiten, die keine Daten enthalten. Diese Seiten können sofort benutzt werden, wenn Seiten im Zustand Cache nicht benutzt werden können. Seiten im Zustand Free können auch während eines Interrupts angefordert werden. Wired: Seiten, die fest im Speicher liegen und nicht ausgelagert werden können. Normalerweise werden solche Seiten vom Kernel benutzt, manchmal werden Sie aber auch für spezielle Zwecke von Prozessen verwendet. Seiten im Zustand Inactive werden oft auf Plattenspeicher geschrieben (sozusagen ein sync des VM-Systems). Wenn die CPU erkennen kann, das eine Seite unmodifiziert (clean) ist, kann auch eine Active-Seite auf den Plattenspeicher ausgeschrieben werden. In bestimmten Situationen ist es von Vorteil, wenn ein Block von VM-Seiten, unabhängig von seinem Zustand, ausgeschrieben werden kann. Die Inactive-Liste enthält wenig benutzte Seiten, die ausgeschrieben werden könnten. Seiten im Zustand Cached sind schon ausgeschrieben und stehen Prozessen für die Verwendung im alten oder in einem neuen Kontext zur Verfügung. Seiten im Zustand Cache sind nicht ausreichend geschützt und können während Unterbrechungen nicht benutzt werden. Die eben beschriebene Behandlung von Speicherseiten kann durch weitere Zustände (wie das das Busy-Flag) verändert werden. Wie viel freien Speicher hat mein System? Es gibt verschiedene Arten von freiem Speicher. Eine Art ist die Speichermenge, die sofort, ohne etwas auszulagern, zur Verfügung steht. Der gesamte VM-Bereich ist eine weitere Art des freien Speichers. Die Betrachtung ist komplex, hängt aber von der Größe des Swap-Bereichs und der Größe des Arbeitsspeichers ab. Es gibt weitere Definitionen für freien Speicher, die aber alle relativ nutzlos sind. Wichtig ist hingegen, dass wenig Seiten ausgelagert werden (paging) und der Swap-Bereich ausreichend groß ist. Ich kann /var/empty nicht löschen! Das Verzeichnis /var/empty wird von &man.sshd.8; benötigt, wenn es mit Privilege Separation läuft. Das Verzeichnis /var/empty ist leer, gehört root und ist durch das Dateiattribut schg geschützt. Wir empfehlen Ihnen, das Verzeichnis zu belassen. Sollten Sie es aber trotzdem löschen wollen, müssen Sie zuerst das schg-Attribut entfernen. Schauen Sie sich dazu die Hilfeseite &man.chflags.1; an und beachten Sie die Antwort auf die Frage wie das schg-Attribut entfernt wird.
Das X Window System und virtuelle Konsolen Was ist das X Window System? Das X Window System ist das am häufigsten verwendete Window System für &unix; oder ähnliche Systeme, zu denen auch &os; gehört. Der X  Protokollstandard wird von der X.org Foundation definiert. Die aktuelle Version 11.6 dieser Spezifikation wird als X11R6 oder auch nur als X11 bezeichnet. Das X Window System wurde für viele verschiedene Architekturen und Betriebssysteme implementiert. Eine serverseitige Implementierung wird dabei als X-Server bezeichnet. Welche X-Implementierungen sind für &os; verfügbar? Früher war &xfree86;, die X-Implementierung des XFree86 Projects, Inc., der Standard unter &os;. Dieser X-Server wurde bis einschließlich &os; Version 4.10 und 5.2 als Standard-X-Server installiert. Die von &xorg; veröffentlichte Implementierung diente nur als Referenzplattform, weil der verwendete Code über die Jahre sehr ineffizient geworden war. Anfang 2004 verließen einige Entwickler das XFree86 Project, um fortan &xorg; direkt zu unterstützen. Der Grund dafür waren Meinungsverschiedenheiten über die Geschwindigkeit der Weiterentwicklung, die zukünftige Ausrichtung des Projekts sowie persönliche Differenzen. Zur gleichen Zeit aktualisierte &xorg; ihren Quellcodebaum auf die &xfree86;-Version 4.3.99.903, brachte viele Änderungen, die bisher getrennt verwaltet worden waren, in das Projekt ein und veröffentlichte das Paket als X11R6.7.0, bevor &xfree86; die Lizenz änderte. Ein seperates, aber mit &xorg; verbundenes Projekt, freedesktop.org (oder fd.o), arbeitet an einer Überarbeitung des ursprünglichen &xfree86;-Codes, um einerseits mehr Rechenarbeit an die Grafikkarten zu übertragen (mit dem Ziel einer deutlich erhöhten Geschwindigkeit) und andererseits den Code zu modularisieren (mit dem Ziel einer verbesserten Wartung, einer schnelleren Entwicklung sowie einer vereinfachten Konfiguration). &xorg; plant, die Weiterentwicklungen von freedesktop.org in seine zukünftigen Versionen zu integrieren. Seit Juli 2004 ist &xorg; der Standard-X-Server für &os.current;. Die &xfree86;-Ports (x11/XFree86-4) verbleiben in der Ports-Sammlung und sind nach wie der Standard für &os.stable;. Der letzte Absatz beschreibt nur die Standardeinstellung. Es ist nach wie vor möglich, beide Implementierung unter &os; zu verwenden. Lesen Sie dazu die Anweisungen im Eintrag vom 23.07.2004 in der Datei /usr/ports/UPDATING. Beachten Sie, dass es derzeit nicht möglich ist, Teile aus beiden Implementierungen parallel zu verwenden. Sie müssen sich also für eine der beiden Implementierungen entscheiden. Die folgenden Abschnitte beziehen sich zwar auf die &xfree86;-Implementierung, sie sollten aber auch für die &xorg;-Implementierung anwendbar sein. Die Standardkonfigurationsdatei von &xorg; heißt xorg.conf. Ist diese nicht vorhanden, wird die Datei XF86Config verwendet. Funktionieren meine Programme auch mit der &xorg;-Implementierung noch? Der &xorg;-Server basiert auf der gleichen X11R6-Spezifikation, die auch &xfree86; verwendet, daher sollte ein Großteil der Anwendungen problemlos funktionieren. Einige selten verwendete Protokolle werden allerdings nicht mehr unterstützt (XIE, PEX, sowie lbxproxy). Die beiden ersten Protokolle wurden allerdings auch vom &xfree86;-Port nicht unterstützt. Warum hat sich das X Project überhaupt aufgespalten? Diese Frage ist nicht &os;-spezifisch. Es gibt zu diesem Thema umfangreiche Postings in diversen Mailinglist-Archiven. Suchen Sie daher über eine Suchmaschine danach, statt diese Frage auf einer &os;-Mailingliste zu stellen. Warum hat sich &os; für &xorg; als Standard-X-Server entschieden? Die Entwickler von &xorg; geben an, dass sie neue Versionen rascher veröffentlichen und neue Eigenschaften schneller implementieren wollen. Außerdem verwenden sie nach wie vor die traditionelle X-Lizenz, während &xfree86; nun eine veränderte Version benutzt. Diese Entscheidung wird nach wie vor heftig diskutiert. Nur die Zeit wird zeigen, welche Implementierung technisch überlegen ist. Jeder &os;-Benutzer hat aber die freie Wahl zwischen den beiden Implementierungen. Ich möchte X benutzen, was muss ich tun? Der einfachste Weg ist der, dass Sie während der Installation angeben, dass Sie X benutzen möchten. Wenn Sie X auf einem existierenden System installieren wollen, sollten Sie den Meta-Port x11/xorg verwenden, der alle benötigen Komponenten baut und installiert. Lesen Sie danach die Dokumentation zu &man.xorgconfig.1;, das Sie bei der Konfiguration des X-Servers für Ihre Grafikkarte, Maus usw. unterstützt. Bevorzugen Sie eine grafische Konfigurationsoberfläche, sollten Sie sich &man.xorgcfg.1; ansehen. Weitere Informationen finden sich im Abschnitt X11 des FreeBSD-Handbuchs. Evtentuell möchten Sie sich auch den Xaccel-Server ansehen. Nähere Details finden Sie im Abschnitt über Xi Graphics. Ich habe versucht, X zu starten, aber wenn ich startx eingebe, erhalte ich die Fehlermeldung KDENABIO failed (Operation not permitted). Was soll ich jetzt machen? Das System läuft auf einer erhöhten Sicherheitsstufe (securelevel). X kann auf einer erhöhten Sicherheitsstufe nicht gestartet werden, weil X dazu Schreibzugriff auf /dev/io benötigt. Lesen Sie dazu auch &man.init.8;. Die Frage ist also eigentlich, was Sie anders machen sollten. Sie haben zwei Möglichkeiten: Setzen Sie die Sicherheitsstufe wieder zurück auf 0 (die Einstellung erfolgt in der Regel in /etc/rc.conf) oder starten Sie &man.xdm.1; während des Starts des Systems, bevor die Sicherheitsstufe erhöht wird. Der Abschnitt enthält Informationen darüber, wie Sie &man.xdm.1; beim Start des Systems starten können. Warum funktioniert meine Maus unter X nicht? Wenn Sie syscons (den Standard-Konsoltreiber) benutzen, können Sie FreeBSD so konfigurieren, dass auf jedem virtuellen Bildschirm ein Mauszeiger unterstützt wird. Um Konflikte mit X zu vermeiden, unterstützt syscons ein virtuelles Gerät mit dem Namen /dev/sysmouse. Über dieses virtuelle Gerät können andere Programme alle Mausbewegungen und Mausclicks im MouseSystems-Format mitlesen. Falls Sie Ihre Maus auf einer oder mehreren virtuellen Konsolen und X benutzen wollen, sollten Sie zunächst lesen und dann moused installieren. Die Datei /etc/X11/XF86Config sollte die folgenden Einträge enthalten: Section Pointer Protocol "SysMouse" Device "/dev/sysmouse" ..... Diese Variante kann für &xfree86; 3.3.2 und neuer sowie für &xorg; 6.7.0 benutzt werden. Wenn Sie eine ältere Versionen verwenden, muss als Protocol hingegen MouseSystems benutzt werden. Verwenden Sie &xorg;, sollten Sie allerdings die Datei /etc/X11/xorg.conf anpassen. Obwohl aus Kompatibilitätsgründen auch das eben beschriebene Section Pointer erlaubt ist, sollte besser ein Section InputDevice ähnlich dem folgenden verwendet werden: Section "InputDevice" Option "Protocol" "SysMouse" Option "Device" "/dev/sysmouse" ..... Einige Leute ziehen es vor, unter X /dev/mouse zu benutzen. Hierzu sollte /dev/mouse nach /dev/sysmouse gelinkt werden: &prompt.root; cd /dev &prompt.root; rm -f mouse &prompt.root; ln -s sysmouse mouse Kann ich meine Rad-Maus auch unter X benutzen? Ja. Dazu müssen Sie X nur mitteilen, dass Sie eine Maus mit 5 Tasten haben. Dazu fügen Sie die Zeilen Buttons 5 sowie ZAxisMapping 4 5 in den Abschnitt InputDevice der Datei /etc/XF86Config ein. Das Beispiel zeigt, wie ein solcher Abschnitt aussehen könnte. Abschnitt <quote>InputDevice</quote> für Rad-Mäuse in den Konfigurationsdateien von &xfree86; 4.X und &xorg; Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection <quote>.emacs</quote> 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_tcp Wieso funktionieren Menüs und Dialoge in X nicht richtig? Versuchen Sie, die Num Lock-Taste auszustellen. Falls Ihre Num Lock-Taste beim Booten standardmäßig eingeschaltet ist, sollten Sie die folgende Zeile in den Abschnitt Keyboard der Datei XF86Config einfügen: # Let the server do the NumLock processing. This should only be # required when using pre-R6 clients ServerNumLock Was ist eine virtuelle Konsole und wie erstelle ich mehr? Mit virtuellen Konsolen können Sie mehrere simultane Sitzungen auf einer Maschine laufen lassen, ohne so komplizierte Dinge wie die Einrichtung eines Netzwerkes oder die Benutzung von X zu benötigen. Wenn das System startet, wird es nach der Anzeige aller Bootmeldungen eine Eingabeaufforderung auf dem Bildschirm anzeigen. Sie können dann auf der ersten virtuellen Konsole Ihren Benutzernamen und das Passwort eingeben und anfangen, zu arbeiten (oder zu spielen!). Gelegentlich möchten Sie möglicherweise eine weitere Sitzung starten wollen, vielleicht, um die Dokumentation zu einem Programm, das Sie gerade benutzen, einzusehen, oder, um Ihre Mails zu lesen, während Sie auf das Ende einer FTP-Übertragung warten. Drücken Sie einfach Alt F2 (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 Alt F1 . Die Standardinstallation von FreeBSD bietet acht aktivierte virtuelle Konsolen. Mit Alt F1 , Alt F2 , Alt F3 und so weiter wechseln Sie zwischen diesen virtuellen Konsolen. Um mehr von ihnen zu aktivieren, editieren Sie /etc/ttys und fügen Einträge für ttyv4 bis zu ttyvc nach dem Kommentar zu virtuellen Terminals ein: # Edit the existing entry for ttyv3 in /etc/ttys and change # "off" to "on". ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/libexec/getty Pc" cons25 on secure ttyv9 "/usr/libexec/getty Pc" cons25 on secure ttyva "/usr/libexec/getty Pc" cons25 on secure ttyvb "/usr/libexec/getty Pc" cons25 on secure Benutzen Sie so wenig oder soviele, wie Sie möchten. Je mehr virtuelle Terminals Sie benutzen, desto mehr Ressourcen werden gebraucht; das kann wichtig sein, wenn Sie 8MB RAM oder weniger besitzen. Sie können auch secure in insecure ändern. Wenn Sie einen X-Server benutzen möchten, müssen Sie mindestens ein virtuelles Terminal unbenutzt (oder ausgeschaltet) lassen damit der Server es benutzen kann. Das heißt, dass Sie Pech haben, wenn Sie für jede Ihrer 12 Alt-Funktionstasten eine Anmeldeaufforderung haben möchten - Sie können das nur für elf von ihnen tun, wenn Sie einen X-Server auf derselben Maschine laufen lassen möchten. Der einfachste Weg, eine Konsole zu deaktivieren, ist, sie auszuschalten. Wenn Sie zum Beispiel die oben erwähnte volle Zuordnung aller 12 Terminals hätten, müssten Sie die Einstellung für das virtuelle Terminal 12 von: ttyvb "/usr/libexec/getty Pc" cons25 on secure in: ttyvb "/usr/libexec/getty Pc" cons25 off secure ändern. Wenn Ihre Tastatur nur über zehn Funktionstasten verfügt, bedeutet das: ttyv9 "/usr/libexec/getty Pc" cons25 off secure ttyva "/usr/libexec/getty Pc" cons25 off secure ttyvb "/usr/libexec/getty Pc" cons25 off secure (Sie können diese Zeilen auch einfach löschen.) Nachdem Sie die Datei /etc/ttys geändert haben, besteht der nächste Schritt darin, sicherzustellen, dass Sie genügend Geräte für virtuelle Terminal haben. Der einfachste Weg, dies zu tun, ist: &prompt.root; cd /dev &prompt.root; sh MAKEDEV vty12 Wenn Sie FreeBSD 5.X oder neuer mit DEVFS benutzen, brauchen Sie die Gerätedateien nicht manuell anzulegen, da sie automatisch in /dev erstellt werden. Die einfachste (und sauberste) Möglichkeit, die virtuellen Konsolen zu aktivieren, ist, zu rebooten. Wenn Sie jedoch auf keinen Fall rebooten möchten, können Sie auch einfach das X Window System herunterfahren und als root &prompt.root; kill -HUP 1 ausfü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 Ctrl Alt Fn um auf eine virtuelle Konsole umzuschalten. Mit Ctrl Alt F1 würden Sie zur ersten virtuellen Konsole umschalten. Sobald Sie auf eine virtuelle Konsole umgeschaltet haben, können Sie ganz normal Alt Fn benutzen, um zwischen den einzelnen virtuellen Konsolen umzuschalten. Um zu Ihrer X-Sitzung zurückzukehren, müssen Sie auf die virtuelle Konsole umschalten, auf der X läuft. Wenn Sie X über der Eingabeaufforderung gestartet haben (z.B. mit startx), benutzt X die nächste freie virtuelle Konsole und nicht die Konsole, von der es gestartet wurde. Wenn Sie acht aktive virtuelle Konsole haben, dann wird X die neunte benutzen und Sie können mit AltF9 umschalten. Wie starte ich XDM beim Booten? Es gibt zwei Denkansätze, wie &man.xdm.1; zu starten ist. Bei dem einen wird xdm unter Nutzung des mitgelieferten Beispiels über /etc/ttys (&man.ttys.5;) gestartet, während beim zweiten Ansatz rc.local (&man.rc.8;) oder das Skript X.sh im Verzeichnis /usr/local/etc/rc.d verwendet wird. Beide Ansätze sind gleichwertig und der eine wird in Situationen funktionieren, in denen der andere es nicht tut. In beiden Fällen ist das Ergebnis das gleiche: X liefert eine graphische Anmeldeaufforderung. Die ttys-Methode hat den Vorteil, dass dokumentiert ist, auf welchem vty X gestartet wird und der Neustart des X-Servers beim Abmelden an init übergeben wird. Die rc.local-Methode erleichtert ein Killen von xdm, falls Probleme beim Start des X-Servers auftreten sollten. Beim Laden von rc.local sollte xdm ohne irgendwelche Argumente (das heißt als Daemon) gestartet werden. xdm muss gestartet werden NACHDEM getty läuft, andernfalls entsteht ein Konflikt zwischen getty und xdm und die Konsole bleibt gesperrt. Der beste Weg, um dies zu vermeiden, ist, das Skript für etwa zehn Sekunden anzuhalten und dann xdm zu starten. Wenn Sie xdm durch einen Eintrag in /etc/ttys starten lassen, kann es zu einem Konflikt zwischen xdm und &man.getty.8; kommen. Um dieses Problem zu vermeiden, sollten Sie die Nummer des vt in die Datei /usr/X11R6/lib/X11/xdm/Xservers eintragen. :0 local /usr/X11R6/bin/X vt4 Diese Zeile führt dazu, dass der X Server /dev/ttyv3 nutzt. Die beiden Zahlen weichen voneinander ab: Der X-Server beginnt die Zählung der vty bei 1, während der FreeBSD-Kernel bei 0 beginnt. Wieso erhalte ich die Meldung Couldn't open console, wenn ich xconsole benutze? Wenn Sie X mit startx starten, werden die Zugriffsrechte für /dev/console leider nicht geändert, was dazu führt, dass Dinge wie xterm -C und xconsole nicht funktionieren. Das hängt damit zusammen, wie die Zugriffsrechte für die Konsole standardmäßig gesetzt sind. Auf einem Mehrbenutzersystem möchte man nicht unbedingt, dass jeder Benutzer einfach auf die Systemkonsole schreiben kann. Für Benutzer, die sich auf einer Maschine direkt mit einem VTY anmelden, existiert die Datei &man.fbtab.5;, um derartige Probleme zu lösen. In Kürze: sorgen Sie dafür, dass sich eine nicht auskommentierte Zeile der Form /dev/ttyv0 0600 /dev/console in der Datei /etc/fbtab befindet. Das sorgt dafür, dass wer auch immer sich auf /dev/ttyv0 anmeldet, auch die Konsole besitzt. Früher konnte ich &xfree86; als normaler User starten. Warum sagt mir das System jetzt, dass ich root sein muss? Alle X-Server müssen mit der ID root laufen, um direkt auf die Videohardware zuzugreifen. Die älteren Versionen von &xfree86; (bis einschließlich 3.3.6) installierten alle mitgelieferten Server so, dass sie automatisch unter ID root ausgeführt werden (setuid to root). Dies stellt natürlich eine Gefahrenquelle dar, da die X-Server große, komplexe Programme sind. Alle neueren Versionen von &xfree86; installieren die Server aus genau diesem Grund nicht mehr "setuid root". Es ist natürlich nicht tragbar, den X-Server immer mit der ID root laufen zu lassen; auch aus Gründen der Sicherheit ist es keine gute Idee. Es gibt zwei Möglichkeiten, um X auch als normaler Benutzer starten zu können. Die erste ist die Verwendung von xdm oder eines ähnlichen Programms; die zweite ist die Benutzer von Xwrapper. xdm ist ein ständig laufendes Programm, mit dem Logins über eine graphische Benutzeroberfläche sind. Es wird normalerweise beim Systemstart initialisiert und für die Authentifizierung der Benutzer und den Start ihrer Sitzungen verantwortlich. Es ist also die graphische Entsprechung von &man.getty.8; und &man.login.1;. Weitere Informationen zum Thema xdm finden Sie in der &xfree86; Dokumentation und dem entsprechenden FAQ-Eintrag. Xwrapper ist eine Hülle für den X-Server. Mit diesem kleinen Utility ist es möglich, manuell den X-Server zu starten und weiterhin eine annehmbare Sicherheit zu haben. Das Tools prüft, ob die per Kommandozeile übergebenen Argumente halbwegs sinnvoll sind. Wenn dies der Fall ist, startet es den entsprechenden X-Server. Wenn Sie (aus welchem Grund auch immer) keine graphische Anmeldung wollen, ist Xwrapper die optimale Lösung. Wenn Sie die vollständige Ports-Sammlung installiert haben, finden Sie das Tool im Verzeichnis /usr/ports/x11/wrapper. Warum funktioniert meine PS/2-Maus nicht richtig? Ihre Maus und der Maustreiber sind etwas aus der Synchronisation geraten. In seltenen Fällen kann es jedoch sein, dass der Treiber fälschlicherweise Synchronisationsprobleme meldet und Sie in den Kernelmeldungen folgendes sehen: psmintr: out of sync (xxxx != yyyy) und Ihre Maus nicht richtig zu funktionieren scheint. Falls das passiert, deaktivieren Sie den Code zur Überprüfung der Synchronisation, indem Sie die Treiberangaben für den PS/2-Maustreiber auf 0x100 setzen. Rufen Sie UserConfig durch Angabe der Option am Boot-Prompt auf: boot: -c Geben sie dann in der Kommandozeile von UserConfig folgendes ein: UserConfig> flags psm0 0x100 UserConfig> quit Meine 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: -c Geben sie dann in der Kommandozeile von UserConfig folgendes ein: UserConfig> flags psm0 0x04 UserConfig> quit Lesen Sie den vorigen Abschnitt über eine andere mögliche Ursache für Probleme mit der Maus. Wenn ich eine X-Anwendung erstellen will, kann imake die Datei Imake.tmpl nicht finden. Wo befindet sie sich? Imake.tmpl ist Teil des Imake-Paketes, ein Standardwerkzeug zur Erstellung von X-Anwendungen. Imake.tmpl ist ebenso, wie viele Header-Dateien, die zur Erstellung von X-Anwendungen benötigt werden, in der Distribution xprog enthalten. Sie können Sie per sysinstall oder aber manuell mit den X Distributionsdateien installieren. Wie kann ich einen anderen X-Server installieren? &os;-Versionen vor 5.3 verwendeten &xfree86; 4.X als Standard-X-Server. Seither wird &xorg; als Standard-X-Server verwendet. Wenn Sie einen anderen X-Server installieren wollen, müssen Sie die folgende Zeile in Ihre /etc/make.conf einfügen. (Existiert die Datei nicht, müssen Sie sie zuvor anlegen.) X_WINDOW_SYSTEM= xorg Diese Variable kann die Werte xorg, xfree86-4, oder xfree86-3 annehmen. Wie vertausche ich die Maustasten? Benutzen Sie den Befehl xmodmap -e "pointer = 3 2 1" in Ihrer .xinitrc oder .xsession. Wie installiere ich einen Splash-Screen und wo finde ich sie? &os; erlaubt die Anzeige von Splash-Screens während des Bootvorganges. Die Splash-Screens dürfen Bitmaps mit 256 Farben (*.BMP) oder ZSoft-PCX-Dateien *.PCX) sein. Damit sie mit normalen VGA-Karten dargestellt werden können, darf die Größe 320x200 Bildpunkte nicht überschreiten. Wenn Sie in ihrem Kernel die VESA-Unterstützung eingebunden haben, beträgt die maximale Größe 1024x768 Pixel. Die derzeitige VESA-Unterstützung kann entweder direkt durch die Kernelkonfigurationsoption VESA in den Kernel eingebunden werden, oder durch das Laden des VESA-kld-Moduls während des Bootens. Um einen Splash-Screen zu benutzen, müssen Sie die Startdateien, die den Bootprozess von &os; kontrollieren, modifizieren. Dazu müssen Sie die Datei /boot/loader.rc erstellen, die die folgenden Zeilen enthält: include /boot/loader.4th start Außerdem benötigen Sie die Datei /boot/loader.conf, die die folgenden Zeilen enthält: splash_bmp_load="YES" bitmap_load="YES" Dies setzt voraus, dass Sie /boot/splash.bmp als Ihren Splash-Screen benutzen. Wenn Sie lieber eine PCX-Datei benutzen wollen, dann kopieren Sie sie nach /boot/splash.pcx, erstellen Sie eine Datei /boot/loader.rc, wie oben beschrieben und eine Datei /boot/loader.conf, die folgendes enthält: splash_pcx_load="YES" bitmap_load="YES" bitmap_name="/boot/splash.pcx" Alles, was Sie nun brauchen, ist ein Splash-Screen. Hierzu können Sie durch die Gallerie bei surfen. Kann ich die &windows;-Tasten unter X benutzen? Ja, Sie müssen lediglich mit &man.xmodmap.1; festlegen, welche Aktion diese Tasten auslösen sollen. Unter der Annahme, dass alle &windows; Tastaturen dem Standard entsprechen, lauten die Keycodes für die drei Tasten 115 - &windows;-Taste zwischen den Alt- und Strg-Tasten auf der linken Seite 116 - &windows;-Taste rechts von der AltGr-Taste 117 - Menü-Taste, links von der rechten Strg-Taste Nach 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/.xmodmaprc Sie könnten die drei Tasten zum Beispiel mit den Funktionen F13, F14 und F15 belegen. Dadurch ist es sehr einfach, diese Tasten mit nützlichen Funktionen eines Programmes oder Desktops zu verknüpfen. Falls Sie das auch tun wollen, sollten in Ihrer ~/.xmodmaprc die folgenden Anweisungen stehen. keycode 115 = F13 keycode 116 = F14 keycode 117 = F15 Falls Sie zum Beispiel fvwm2 benutzen, können Sie ihn so einstellen, dass F13 das Fenster unter dem Mauszeiger minimiert bzw. maximiert. F14 holt das Fenster unter dem Mauszeiger in den Vordergrund bzw. ganz nach hinten, wenn es bereits im Vordergrund ist. F15 öffnet das Arbeitsplatz (Programme) Menü, auch wenn der Cursor nicht auf den Hintergrund zeigt. Dies ist extrem praktisch, wenn der gesamte Bildschirm von Fenster belegt wird; als kleiner Bonus gibt es sogar einen Zusammenhang zwischen dem Symbol auf der Taste und der durchgeführten Aktion. Dieses Verhalten kann man mit den folgenden Einträgen in der Datei ~/.fvwmrc erhalten: Key F13 FTIWS A Iconify Key F14 FTIWS A RaiseLower Key F15 A A Menu Workplace Nop Wird 3D Hardware Beschleunigung für &opengl; unterstützt? Dies hängt davon ab, welche Version von &xfree86; oder &xorg; und welche Grafikkarte Sie verwenden. Wenn Sie eine Karte mit NVIDIA-Chipsatz besitzen, benutzen Sie die binären Treiber für FreeBSD, die Sie auf der Drivers-Seite von NVIDEA finden. Wenn Sie &xfree86;-4 oder &xorg; mit Grafikkarten wie der Matrox G200/G400, ATI Rage 128/Radeon, oder 3dfx Voodoo 3, 4, 5, und Banshee einsetzen, erhalten Sie weitere Informationen auf der Webseite &xfree86;-4 Direct Rendering on FreeBSD. Wenn Sie &xfree86; in der Version 3.3 einsetzen, erhalten Sie eingeschränkte Unterstützung von die Hardware-Beschleunigung bei &opengl; für die Matrox Gx00, ATI Rage Pro, SiS 6326, i810, Savage, und Karten, die auf älteren NVIDIA Chipsätzen beruhen, wenn Sie den Port graphics/utah-glx installieren. Netzwerke Woher kann ich Informationen über Diskless Booting bekommen? Diskless Booting bedeutet, dass die FreeBSD-Maschine über ein Netzwerk gebootet wird und die notwendigen Dateien von einem Server anstatt von der Festplatte liest. Vollständige Details finden Sie im Handbucheintrag über den plattenlosen Betrieb. Kann eine FreeBSD-Maschine als Netzwerkrouter genutzt werden? Ja. Genaue Informationen zu diesem Thema finden Sie im Abschnitt Gateways und Routen des Handbuchkapitels Weiterführende Netzwerkthemen. Kann ich meine &windows;-Maschine über FreeBSD ans Internet anbinden? Personen, die diese Frage stellen, haben typischerweise zwei PCs zu Hause: einen mit FreeBSD und einen mit einer &windows;-Variante. Die Idee ist, die FreeBSD-Maschine an das Internet anzubinden, um in der Lage zu sein, von der &windows;-Maschine über die FreeBSD-Maschine auf das Internet zuzugreifen. Das ist tatsächlich nur ein Spezialfall der vorherigen Frage. Das User-Mode &man.ppp.8; von &os; kennt die Option . Wenn Sie &man.ppp.8; mit der Option starten, in /etc/rc.conf die Variable gateway_enable auf YES setzen und Ihre &windows;-Maschine korrekt konfigurieren, sollte das hervorragend funktionieren. Weitere Informationen erhalten Sie in der Hilfeseite &man.ppp.8; oder im Abschnitt User-PPP des Handbuchs. Wenn Sie Kernel-Mode PPP verwenden oder ihre Verbindung zum Internet über Ethernet erstellt wurde, müssen Sie &man.natd.8; verwenden. Weitere Informationen dazu finden Sie im natd-Abschnitt des Handbuchs. Unterstützt FreeBSD SLIP und PPP? Ja. Lesen Sie die Manualpages &man.slattach.8;, &man.sliplogin.8;, &man.pppd.8; und &man.ppp.8;. &man.ppp.8; und &man.pppd.8; liefern Unterstützung sowohl für eingehende, als auch ausgehende Verbindungen. &man.sliplogin.8; behandelt ausschließlich eingehende Verbindungen und &man.slattach.8; behandelt ausschließlich ausgehende Verbindungen. Diese Programme werden im Abschnitt PPP und SLIP des Handbuchs beschrieben. Falls Sie nur durch einen Shell-Account Zugang zum Internet haben, sehen Sie sich einmal das Package net/slirp an. Es kann Ihnen (eingeschränkten) Zugang zu Diensten wie ftp und http direkt von Ihrer lokalen Maschine aus ermöglichen. Unterstützt FreeBSD NAT oder Masquerading? Ja. Wenn Sie NAT über eine User-PPP-Verbindung einsetzen wollen, lesen Sie bitte den User-PPP Abschnitt des Handbuchs. Wollen Sie NAT über eine andere Verbindung einsetzen, lesen Sie bitte den NATD Abschnit des Handbuchs. Wie verbinde ich zwei FreeBSD-Maschinen mit PLIP über die parallele Schnittstelle? Dieses Thema wird im Handbuch-Kapitel PLIP behandelt. Wieso kann ich das Gerät /dev/ed0 nicht erstellen? Weil das nicht notwendig ist. Bei Berkeley-basierten Netzwerkimplementationen kann nur vom Kernel-Code aus direkt auf Netzwerkkarten zugegriffen werden. Zur weiteren Information lesen Sie bitte die Datei /etc/rc.network und die Manualpages zu den unterschiedlichen Netzwerkprogrammen, die dort erwähnt werden. Falls Sie danach total verwirrt sind, sollten Sie sich ein Buch besorgen, das die Netzwerkadministration auf einem anderen BSD-ähnlichen Betriebssystem beschreibt; mit wenigen signifikanten Ausnahmen gleicht die Netzwerkadministration auf FreeBSD im Grunde der auf &sunos; 4.0 oder Ultrix. Wie kann ich Ethernet-Aliase einrichten? Wenn sich die zweite Adresse im gleichen Subnetz befindet wie eine der Adressen, die bereits auf dem Interface konfiguriert sind, benutzen Sie netmask 0xffffffff in Ihrer &man.ifconfig.8; Befehlszeile, wie z.B.: &prompt.root; ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff Andernfalls 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 0xffffff00 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 FreeBSD? Gewisse PC-Netzwerkkarten sind (um es gelinde auszudrücken) besser als andere und können manchmal Probleme mit netzwerkintensiven Anwendungen wie NFS verursachen. Weitere Informationen zu diesem Thema finden Sie im Handbucheintrag zu NFS. Warum kann ich per NFS nicht von einer &linux;-Maschine mounten? Einige Versionen des NFS-Codes von &linux; akzeptieren Mount-Requests nur von einem privilegierten Port. Versuchen Sie &prompt.root; mount -o -P linuxbox:/blah /mnt Warum kann ich per NFS nicht von einer Sun-Maschine mounten? Sun Workstations mit &sunos; 4.X akzeptieren Mount-Requests nur von einem privilegierten Port. Versuchen Sie &prompt.root; mount -o -P sunbox:/blah /mnt Warum meldet mir mountd auf meinem FreeBSD NFS-Server ständig can't change attributes und bad exports list? Die häufigste Ursache für dieses Problem ist, dass Sie den Aufbau der &man.exports.5; nicht oder nicht richtig verstanden haben. Überprüfen Sie Ihre &man.exports.5; und lesen das Kapitel NFS im Handbuch, speziell den Abschnitt Konfiguration. Warum habe ich Probleme, per PPP mit NeXTStep-Maschinen zu kommunizieren? Versuchen Sie, die TCP-Erweiterung in /etc/rc.conf zu deaktivieren, indem Sie die folgende Variable auf NO setzen: tcp_extensions=NO Xylogic's Annex-Maschinen arbeiten hier auch fehlerhaft und Sie müssen die obige Änderung benutzen, um über Sie Verbindungen herzustellen. Wie aktiviere ich die Unterstützung für IP-Multicast? Multicast-Host-Funktionen werden standardmäßig unterstützt. Wenn Sie Ihre Maschine als Multicast-Router betreiben wollen, müssen Sie Ihren Kernel mit der Option MROUTING neu kompilieren und &man.mrouted.8; starten. Wenn Sie die Variable mrouted_enable in der Datei /etc/rc.conf auf "YES" setzen, wird &man.mrouted.8; während des Systemstart automatisch gestartet. MBONE-Tools sind in ihrer eigenen Ports-Kategorie mbone verfügbar. Schauen Sie dort nach, wenn Sie die Konferenztools vic und vat suchen! Welche Netzwerkkarten basieren auf dem DEC-PCI-Chipsatz? Hier ist eine von Glen Foster gfoster@driver.nsta.org zusammengetragene Liste mit einigen aktuellen Ergänzungen: Netzwerkkarten mit DEC-PCI-Chipsatz Vendor Model ASUS PCI-L101-TB Accton ENI1203 Cogent EM960PCI Compex ENET32-PCI D-Link DE-530 Dayna DP1203, DP2100 DEC DE435, DE450 Danpex EN-9400P3 JCIS Condor JC1260 Linksys EtherPCI Mylex LNP101 SMC EtherPower 10/100 (Modell 9332) SMC EtherPower (Model 8432) TopWare TE-3500P Znyx (2.2.X) ZX312, ZX314, ZX342, ZX345, ZX346, ZX348 Znyx (3.X) ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd)
Warum muss ich für Hosts auf meiner Site den FQDN benutzen? Sie werden wahrscheinlich feststellen, dass der Host sich tatsächlich in einer anderen Domäne befindet; wenn Sie sich zum Beispiel in foo.example.org befinden und einen Host namens mumble in der Domäne example.org erreichen wollen, werden Sie den fully-qualified Domainnamen mumble.example.org, anstatt nur mumble benutzen müssen. Traditionell war dies bei BSD-BIND-Resolvern erlaubt. Die aktuelle Version von bind, die mit FreeBSD ausgeliefert wird, ermöglicht jedoch nicht mehr die standardmäßige Abkürzung von nicht-fully-qualified Domainnamen für andere als ihre eigene Domäne. Ein nicht-qualifizierter Host mumble muss also entweder als mumble.foo.example.org gefunden werden, oder er wird in der Hauptdomäne gesucht. Dies unterscheidet sich vom vorherigen Verhalten, wo die Suche über mumble.example.org und mumble.edu fortgesetzt wurde. Werfen Sie einen Blick in RFC 1535, um zu erfahren, warum dies als schlechter Stil oder sogar als eine Sicherheitslücke betrachtet wurde. Als Abhilfe können Sie die Zeile search foo.example.org example.org anstelle der vorherigen domain foo.example.org in Ihre Datei /etc/resolv.conf einfügen. Stellen Sie jedoch sicher, dass die Suchreihenfolge nicht über die Grenze zwischen lokaler und öffentlicher Administration, wie RFC 1535 sie nennt, hinausreicht. Wieso erhalte ich bei allen Netzwerkoperationen die Meldung Permission denied? Dieses Problem kann auftreten, wenn Sie einen Kernel mit der Option IPFIREWALL erstellt haben. In der Voreinstellung werden alle Pakete, die nicht explizit erlaubt wurden, blockiert. Falls sie Ihr System unbeabsichtigt als Firewall konfiguriert haben, können Sie die Netzwerkfunktionalität wiederherstellen, indem Sie als root folgendes eingeben: &prompt.root; ipfw add 65534 allow all from any to any Sie können in /etc/rc.conf auch firewall_type="open" setzen. Weitere Informationen über die Konfiguration einer FreeBSD-Firewall finden Sie im Kapitel Firewalls des Handbuchs. Wie viele Einbußen zieht IPFW nach sich? Diese Frage wird im Handbuch-Kapitel Firewalls im Abschnitt IPFW Overhead und Optimierung ausführlich behandelt. Warum kann ich bei &man.ipfw.8; einen Dienst nicht mit fwd auf eine andere Maschine umlenken? Der wahrscheinlichste Grund ist, dass Sie Network Address Translation (NAT) brauchen und nicht die einfache Weiterleitung von Pakete. Die fwd Anweisung macht genau das, was da steht: Sie leitet Pakete weiter; die Daten in den Paketen werden aber nicht verändert. Ein Beispiel: 01000 fwd 10.0.0.1 from any to foo 21 Wenn ein Paket mit dem Ziel foo die Maschine mit dieser Regel erreicht, wird das Paket an 10.0.0.1 weitergeleitet; die Zieladresse im Paket lautet aber immer noch foo! Die Zieladresse wird nicht in 10.0.0.1 geändert. Die meisten Rechner werden allerdings Pakete verwerfen, wenn die Zieladresse des Paketes nicht mit der Adresse des Rechners übereinstimmt. Das ist der Grund, warum eine fwd Regel oft nicht den Effekt hat, den der Benutzer wollte. Dieses Verhalten ist aber kein Fehler, sondern erwünscht. Wenn Sie einen Dienst auf eine andere Maschine umleiten wollen, sollten Sie sich den FAQ-Eintrag über die Umleitung von Diensten oder die Online-Hilfe zu &man.natd.8; durchlesen. Auch in der Ports Sammlung sind diverse Hilfsprogramme für diesen Zweck enthalten. Wie kann ich Service-Requests von einer Maschine auf eine andere umleiten? Sie können FTP-Requests (und andere Dienste) mit dem Package socket umleiten, das im Ports-Tree in der Kategorie sysutils verfügbar ist. Ersetzen sie die Befehlszeile für den Dienst einfach so, dass stattdessen socket aufgerufen wird, zum Beispiel so: ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp wobei ftp.example.com und ftp entsprechend der Host und der Port sind, wohin umgeleitet werden soll. Woher kann ich ein Bandbreiten-Managementtool bekommen? Für FreeBSD gibt es drei Bandbreiten-Managementtools. &man.dummynet.4; ist als Teil von &man.ipfw.4; in FreeBSD integriert. ALTQ ist für FreeBSD 4.X kostenlos verfügbar und seit FreeBSD 5.X als Bestandteil von &man.pf.4; im Basissystem enthalten. Bei Bandwidth Manager von Emerging Technologies handelt es sich hingegen um ein kommerzielles Produkt. Warum erhalte ich die Meldung /dev/bpf0: device not configured? Der Berkeley-Paket-Filter (&man.bpf.4;) muss in den Kernel eingebunden werden, bevor er von einem Programme aus genutzt werden kann. Fügen Sie folgendes zu Ihrer Kernelkonfigurationsdatei hinzu und erstellen Sie einen neuen Kernel: pseudo-device bpf # Berkeley Packet Filter Unter FreeBSD 4.X und früheren Versionen müssen Sie noch die Gerätedateien erstellen. Wechseln Sie dazu nach dem Neustart in das Verzeichnis /dev und führen Sie den folgenden Befehl aus: &prompt.root; sh MAKEDEV bpf0 Weitere Informationen über den Umgang mit Geräten finden Sie im Handbucheintrag über Device Nodes. Habe ich, analog zum smbmount von &linux;, eine Möglichkeit, auf ein freigegebenes Laufwerk einer &windows;-Maschine in meinem Netzwerk zuzugreifen? Benutzen Sie die Kernel-Erweiterungen und Benutzerprogramme aus dem Programmpaket SMBFS. Das Paket und weitergehende Informationen sind unter net/smbfs in den Ports verfügbar; ab der Version 4.5 ist SMBFS Bestandteil des Basissystems. Was bedeutet die Meldung icmp-response bandwidth limit 300/200 pps in meinen Logfiles? Mit dieser Meldung teilt Ihnen der Kernel mit, dass irgend jemand versucht, ihn zur Generierung von zu vielen ICMP oder TCP reset (RST) Antworten zu provozieren. ICMP Antworten sind oft das Ergebnis von Verbindungsversuchen zu unbenutzten UDP Ports. TCP Resets werden generiert, wenn jemand versucht, eine Verbindung zu einem ungenutzten TCP Port aufzubauen. Die Meldungen können unter anderem durch die folgenden Ereignisse ausgelöst werden: Denial of Service (DoS) Angriffe mit der Brechstange (und nicht durch Angriffe mit einzelnen Paketen, die gezielt eine Schwachstelle des Systems ausnutzen sollen). Port Scans, bei denen versucht wird, Verbindungen zu einer großen Anzahl von Ports (und nicht nur einigen bekannten Ports) herzustellen. Die erste Zahl gibt an, wie viele Pakete vom Kernel ohne das Limit versendet worden wären; die zweite Zahl gibt das Limit an. Sie können das Limit mit Hilfe der sysctl-Variable net.inet.icmp.icmplim einstellen. Im Beispiel wird das Limit auf 300 Pakete pro Sekunde gesetzt: &prompt.root; sysctl -w net.inet.icmp.icmplim=300 Wenn 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=0 Falls Sie die Begrenzung ganz abschalten wollen, können Sie die Sysctl-Variable net.inet.icmp.icmplim auf 0. Wir raten Ihnen aus den oben genannten Gründen dringend von diesem Schritt ab. Was bedeutet die Meldung arp: unknown hardware address format? Ein Gerät im lokalen Ethernet verwendet eine MAC-Adresse in einem Format, das FreeBSD nicht kennt. Der wahrscheinlichste Grund ist, dass jemand Experimente mit einer Ethernet-Karte anstellt. Die Meldung tritt sehr häufig in Netzwerken mit Cable Modems auf. Die Meldung ist harmlos und sollte die Performance Ihres Systems nicht negativ beeinflussen. Ich habe gerade CVSup installiert, aber das Programm bricht mit Fehlermeldungen ab. Was ist da schief gelaufen? Schauen Sie bitte zuerst nach, ob Sie eine Fehlermeldung wie die unten gezeigte erhalten. /usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found Solche Fehlermeldungen erhalten Sie, wenn Sie den net/cvsup Port auf einer Maschine installieren, die kein &xfree86;-System besitzt. Wenn Sie das GUI von CVSup benutzen wollen, müssen Sie &xfree86; installieren. Wenn Sie CVSup nur auf der Kommandozeile benutzen wollen, entfernen Sie bitte den Port, den Sie gerade installiert haben. Installieren Sie stattdessen den Port net/cvsup-without-gui. Genauere Informationen finden Sie im CVSup Abschnitt des Handbuchs.
Sicherheit Was ist ein Sandkasten (sandbox)? Sandkasten (sandbox) ist ein Ausdruck aus dem Bereich Sicherheit. Er hat zwei Bedeutungen: Ein Programm, das innerhalb virtueller Wände ausgeführt wird. Wenn ein Angreifer über eine Sicherheitslücke in diesen Programm einbricht, verhindern diese Wände ein tieferes Vordringen in das System. Man sagt: Der Prozess kann innerhalb der Wände spielen, das heißt nichts, was der Prozess in Bezug auf die Ausführung von Code tut, kann die Wände durchbrechen. Es ist also keine detailierte Revision des Codes erforderlich, um gewisse Aussagen über seine Sicherheit machen zu können. Die Wände könnten z.B. eine Benutzerkennung sein. Dies ist die Definition, die in den Hilfeseiten &man.security.7; und &man.named.8; benutzt wird. Nehmen Sie zum Beispiel den Dienst ntalk (siehe auch /etc/inetd.conf). Dieser Dienst ist früher mit der Benutzerkennung root gelaufen; nun läuft er mit der Benutzerkennung tty. Der Benutzer tty ist ein Sandkasten, der dazu gedacht ist, es jemandem, der über ntalk erfolgreich in das System eingebrochen ist, schwer zu machen, über diese Benutzerkennung hinaus vorzudringen. Ein Prozess, der sich innerhalb einer simulierten Maschine befindet. Dies ist etwas fortgeschrittener; grundsätzlich bedeutet es, dass jemand, der in der Lage ist, in einen Prozess einzudringen, annehmen könnte, er könnte weiter in die Maschine eindringen, tatsächlich aber nur in eine Simulation der Maschine einbricht und keine echten Daten verändert. Der gängigste Weg, dies zu erreichen, ist, in einem Unterverzeichnis eine simulierte Umgebung zu erstellen und den Prozess in diesem Verzeichnis mit chroot auszuführen (für diesen Prozess ist / dieses Verzeichnis und nicht das echte / des Systems). Eine weitere gebräuchliche Anwendung ist, ein untergeordnetes Dateisystem nur mit Leserechten zu mounten, und dann darüber eine Dateisystemebene zu erstellen, die einem Prozess einen scheinbar schreibberechtigten Blick in das Dateisystem gibt. Der Prozess mag glauben, dass er in der Lage ist, diese Dateien zu verändern, aber nur der Prozess sieht diesen Effekt - andere Prozess im System natürlich nicht. Es wird versucht, diese Art von Sandkasten so transparent zu gestalten, dass der Benutzer (oder Hacker) nicht merkt, dass er sich in ihm befindet. Ein &unix; System implementiert zwei Arten von Sandkästen - eine auf Prozessebene und die andere auf der Ebene der Benutzerkennung. Jeder Prozess auf einem &unix; System ist komplett von allen anderen Prozessen abgeschirmt. Ein Prozess kann den Adressraum eines anderen Prozesses nicht modifizieren. Das ist anders als bei &windows;, wo ein Prozess leicht den Adressraum eines anderen überschreiben kann, was zu einem Absturz führt. Ein Prozess gehört einer bestimmten Benutzerkennung. Falls die Benutzerkennung nicht die von root ist, dient sie dazu, den Prozess von Prozessen anderer Benutzer abzuschirmen. Die Benutzerkennung wird außerdem dazu genutzt, Daten auf der Festplatte abzuschirmen. Was sind die Sicherheitsstufen? Die Sicherheitsstufen sind ein Sicherheitsmechanismus, der im Kernel angesiedelt ist. Wenn die Sicherheitsstufe einen positiven Wert hat, verhindert der Kernel die Ausführung bestimmter Tätigkeiten; nicht einmal der Super-User (also root) darf sie durchführen. Zurzeit können über die Sicherheitsstufen unter anderem die folgenden Tätigkeiten geblockt werden: Änderungen bestimmter Dateiattribute, wie zum Beispiel schg (das "system immutable" Attribut) Schreibender Zugriff auf die Speicherbereiche des Kernels mittels /dev/mem und /dev/kmem. Laden von Kernel-Modulen. Änderungen an den Firewall-Regeln. Um die eingestellte Sicherheitsstufe eines aktiven Systems abzufragen, reicht das folgende einfache Kommando: &prompt.root; sysctl kern.securelevel Die Ausgaben wird den Namen der &man.sysctl.8;-Variablen (in diesem Fall kern.securelevel) und eine Zahl enthalten. Die Zahl ist der aktuelle Wert der Sicherheitsstufe. Wenn die Zahl positiv (größer als Null) ist, sind zumindestens einige der Schutzmaßnahmen aktiviert. Sie können die Sicherheitsstufe eines laufenden Systems nicht verringern, da dies den Mechanismus wertlos machen würden. Wenn Sie eine Tätigkeit ausführen müssen, bei der die Sicherheitsstufe nicht-positiv sein muss (z.B. ein installworld oder eine Änderung der Systemzeit), dann müssen Sie die entsprechende Einstellung in /etc/rc.conf ändern (suchen Sie nach den Variablen kern_securelevel und kern_securelevel_enable) und das System rebooten. Weitere Informationen über die Sicherheitsstufen und genaue Informationen, was die Einstellungen bewirken, können Sie der Online-Hilfe &man.init.8; entnehmen. Die Sicherheitsstufen sind kein magischer Zauberstab, der alle Ihre Problem löst; es gibt viele bekannte Probleme. Und in der Mehrzahl der Fälle vermitteln sie ein falsches Gefühl der Sicherheit. Eines der größten Probleme ist, dass alle für den Start des Systems benötigten Dateien geschützt sein müssen, damit die Sicherheitsstufe effektiv sein können. Wenn es ein Angreifer schafft, seine eigenen Programme ausführen zu lassen, bevor die Sicherheitsstufe gesetzt wird (was leider erst gegen Ende des Startvorgangs erfolgen kann, da viele der notwendigen Tätigkeiten für den Systemstart nicht mit einer gesetzten Sicherheitsstufe möglich wären), werden die Schutzmechanismen ausgehebelt. Es ist zwar nicht technisch unmöglich, alle beim Systemstart genutzten Dateien zu schützen; allerdings würde in einem so geschützten System die Administration zu einem Alptraum, da man das System neu starten oder in den Single-User Modus bringen müsste, um eine Konfigurationsdatei ändern zu können. Dieses und andere Probleme werden häufig auf den Mailinglisten diskutiert, speziell auf auf der Mailingliste &a.security;. Das verfügbare Archiv enthält ausgiebige Diskussionen. Einige Benutzer sind guter Hoffnung, dass das System der Sicherheitsstufen bald durch ein besser konfigurierbares System ersetzt wird, aber es gibt noch keine definitiven Aussagen. Fühlen Sie sich gewarnt. Wieso wartet BIND (named) sowohl auf Port 53 als auch auf einem hohen Port auf Anfragen? FreeBSD benutzt eine Version von BIND, die einen Port mit einer hohen, zufälligen Nummer für den Versand von Anfragen nutzt. Wenn Sie Port 53 für abgehende Anfragen benutzen wollen, um durch eine Firewall zu kommen oder sich einfach nur besser zu fühlen, können die folgenden Zeilen in /etc/namedb/named.conf eintragen. options { query-source address * port * 53; }; Wenn Sie möchten, können Sie statt * auch eine einzelne IP-Adresse eintragen, um die Dinge noch weiter einzuschränken. Ach übrigens, herzlichen Glückwunsch. Es ist eine sehr gute Angewohnheit, die Ausgaben von &man.sockstat.1; durchzusehen und auf merkwürdige Dinge zu achten. Wieso wartet Sendmail neuerdings sowohl auf Port 587 als auch auf dem Standard-Port 25 auf Anfragen? Aktuelle Sendmail-Versionen unterstützen eine neue Technik zur Einlieferung von Mails, die Port 587 nutzt. Diese Technik wird zwar noch nicht oft angewendet, erfreut sich aber ständig steigenden Popularität, Woher kommt dieser Benutzer toor mit UID 0? Ist mein System gehackt worden? Keine Panik. toor ist ein alternativer Account für den Super-User (wenn man root rückwärts schreibt, erhält man toor). Früher wurde er nur erzeugt, wenn die Shell &man.bash.1; installiert wurde, heute wird er auf jeden Fall erzeugt. Dieser Account ist für die Verwendung mit einer alternativen Shell vorgesehen; damit ist es nicht mehr erforderlich, die Shell von root zu ändern. Dies ist wichtig, wenn eine Shell verwendet wird, die nicht zum Lieferumfang von FreeBSD gehört, zum Beispiel aus einem Port oder einem Package. Diese Shells werden in der Regel in /usr/local/bin installiert und dieses Verzeichnis liegt standardmäßig auf einem anderem Filesystem. Wenn die Shell von root in /usr/local/bin liegt und /usr (oder das Filesystem, auf dem /usr/local/bin liegt) nicht gemountet werden kann, kann sich root nicht mehr einloggen, um das Problem zu beheben. Es ist allerdings möglich, das System zu rebooten und das Problem im Single-User Modus zu lösen, da man hier gefragt wird, welche Shell benutzt werden soll. Einige Anwender benutzen toor mit einer alternativen Shell für die tägliche Arbeit und benutzen root (mit der Standard-Shell) für den Single-User Modus und für Notfälle. Standardmäßig kann man sich nicht als toor anmelden, da der Account kein gültiges Passwort hat; Sie müssen sich also als root anmelden und ein Passwort für toor setzen, wenn Sie diesen Account benutzen wollen. Warum funktioniert suidperl nicht richtig? Aus Sicherheitsgründen wird suidperl standardmäßig ohne das SUID-Bit installiert. Der Systemadministrator kann das normale Verhalten mit dem folgenden Befehl herstellen: &prompt.root; chmod u+s /usr/bin/suidperl 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 make buildworld starten. PPP Ich 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 command Dieser Befehl kann an der Eingabeaufforderung von &man.ppp.8; eingegeben oder in die Konfigurationsdatei /etc/ppp/ppp.conf eingetragen werden (der beste Ort hierfür ist der Anfang des Abschnitts default. Stellen Sie sicher, dass die Datei /etc/syslog.conf die folgenden Zeilen enthält: !ppp *.* /var/log/ppp.log und, dass die Datei /var/log/ppp.log existiert. Sie können nun über die Logfiles eine Menge darüber herausfinden, was geschieht. Es macht nichts, wenn die Einträge in den Logfiles Ihnen gar nichts sagen. Wenn Sie jemandem um Hilfe bitten müssen, könnten sie für ihn von Nutzen sein. Warum hängt sich ppp auf, wenn ich es benutze? Das liegt meistens daran, dass Ihr Rechnername nicht aufgelöst werden kann. Um dieses Problem zu lösen, müssen Sie sicherstellen, dass die Datei /etc/hosts von Ihrem Resolver zuerst genutzt wird. Dazu muss in der Datei /etc/host.conf der Eintrag hosts an die erste Stelle gesetzt werden. Erstellen Sie dann einfach für Ihren lokalen Rechner einen Eintrag in der Datei /etc/hosts. Falls Sie kein lokales Netzwerk besitzen, ändern Sie die localhost-Zeile: 127.0.0.1 foo.example.com foo localhost Andernfalls fügen Sie einfach einen weiteren Eintrag für Ihren lokalen Rechner hinzu. Weitere Details finden Sie in den betreffenden Manualpages. Wenn Sie fertig sind sollten Sie ping -c1 `hostname` erfolgreich ausführen können. Warum wählt &man.ppp.8; im -auto-Modus nicht? Überprüfen Sie zunächst, ob Sie einen Standard-Gateway eingestellt haben. Wenn Sie netstat -rn ausführen, sollten Sie zwei Einträge ähnlich den folgenden sehen: Destination Gateway Flags Refs Use Netif Expire default 10.0.0.2 UGSc 0 0 tun0 10.0.0.2 10.0.0.1 UH 0 0 tun0 Hier wird angenommen, dass Sie die Adressen aus dem Handbuch, der Manualpage oder aus der Datei ppp.conf.sample benutzt haben. Falls Sie keine Standardroute haben, kann es daran liegen, dass Sie eine alte Version von &man.ppp.8; benutzen, die das Wort HISADDR in der Datei ppp.conf nicht versteht. Ein weiterer Grund dafür, dass die Zeile für die Standardroute fehlt, könnte der sein, dass Sie fälschlicherweise eine Standardroute in der Datei /etc/rc.conf eingetragen und die folgende Zeile in ppp.conf ausgelassen haben: delete ALL Lesen Sie in diesem Fall den Abschnitt Abschließende Systemkonfiguration des Handbuchs. Was bedeutet No route to host? Dieser Fehler beruht für gewöhnlich auf einem fehlenden Abschnitt MYADDR: delete ALL add 0 0 HISADDR in Ihrer Datei /etc/ppp/ppp.linkup. Er ist nur notwendig, wenn Sie eine dynamische IP-Adresse besitzen oder die Adresse Ihres Gateways nicht kennen. Wenn Sie den interaktiven Modus benutzen, können Sie folgendes eingeben, nachdem Sie in den packet mode gelangt sind (den Paket Modus erkennen Sie an PPP im Prompt): delete ALL add 0 0 HISADDR Weitere Details finden Sie im Abschnitt PPP und Dynamische IP-Adressen des Handbuchs. Wieso werden meine Verbindungen nach ca. drei Minuten beendet? Der Standardtimeout für &man.ppp.8; beträgt drei Minuten. Er kann durch die Zeile set timeout NNN eingestellt werden, wobei NNN die Inaktivität in Sekunden, bevor die Verbindung geschlossen wird, angibt. Falls NNN Null ist, wird die Verbindung niemals aufgrund eines Timeouts geschlossen. Es ist möglich, diesen Befehl in die Datei ppp.conf einzubinden, oder ihn an der Eingabeaufforderung im interaktiven Modus einzugeben. Durch eine Verbindung zum Server-Socket von ppp über &man.telnet.1; oder &man.pppctl.8; ist es auch möglich, den Timeout bei aktiver Verbindung anzupassen. Weitere Details finden Sie in der Manualpage &man.ppp.8;. Wieso bricht meine Verbindung bei hoher Auslastung ab? Falls Sie Link-Quality-Reporting (LQR) konfiguriert haben, ist es möglich, dass zu viele LQR-Pakete zwischen Ihrer Maschine und dem verbundenen Rechner verloren gehen. ppp folgert daraus, dass die Verbindung nicht in Ordnung ist und schließt sie. Vor FreeBSD Version 2.2.5 war LQR standardmäßig aktiviert; nun ist es standardmäßig deaktiviert. Es kann durch folgende Zeile deaktiviert werden: disable lqr Warum brechen meine Verbindungen nach unbestimmter Zeit zusammen? Wenn die Qualität Ihrer Telefonleitung zu schlecht oder bei Ihrem Anschluss die Option (Telekomdeutsch: das Leistungsmerkmal) Anklopfen aktiviert ist, kann es manchmal vorkommen, dass Ihr Modem auflegt, weil es (fälschlicherweise) annimmt, dass es das Trägersignal verloren hat. Bei den meisten Modems gibt es eine Einstellmöglichkeit, um anzugeben, wie tolerant es gegenüber vorübergehenden Verlusten des Trägersignals sein soll. Bei einem USR &sportster; wird dies zum Beispiel im Register S10 in Zehntelsekunden angegeben. Um Ihr Modem toleranter zu machen, können Sie zu Ihrem Wählbefehl die folgende Sende-Empfangs-Sequenz hinzufügen: set dial "...... ATS10=10 OK ......" Weitere Information sollten Sie dem Handbuch Ihres Modems entnehmen können. Warum hängen meine Verbindung nach einer unbestimmten Zeit? Viele Leute machen Erfahrungen mit hängenden Verbindungen ohne erkennbaren Grund. Als erstes muss festgestellt werden, welche Seite der Verbindung hängt. Wenn Sie ein externes Modem benutzen, können Sie einfach versuchen, &man.ping.8; zu benutzen, um zu sehen, ob die TD-Anzeige aufleuchtet, wenn Sie Daten übertragen. Falls sie aufleuchtet (und die RD-Anzeige nicht), liegt das Problem am anderen Ende. Falls TD nicht aufleuchtet, handelt es sich um ein lokales Problem. Bei einem internen Modem müssen Sie den Befehl set server in Ihrer Datei ppp.conf benutzen. Stellen Sie über &man.pppctl.8; eine Verbindung zu &man.ppp.8; her, wenn die Verbindung hängt. Falls Ihre Netzwerkverbindung plötzlich wieder funktioniert (ppp wurde durch die Aktivität auf dem Diagnose-Socket wiederbelebt) oder Sie keine Verbindung bekommen (vorausgesetzt, der Befehl set socket wurde beim Start erfolgreich ausgeführt), handelt es sich um ein lokales Problem. Falls Sie eine Verbindung bekommen und die externe Verbindung weiterhin hängt, aktivieren Sie lokales asynchrones Logging mit set log local async und benutzen Sie &man.ping.8; von einem anderen Fenster oder Bildschirm aus, um die externe Verbindung zu benutzen. Das asynchrone Logging zeigt Ihnen, welche Daten über die Verbindung gesendet und empfangen werden. Falls Daten hinausgehen, aber nicht zurückkommen, handelt es sich um ein externes Problem. Wenn Sie festgestellt haben, ob es sich um ein lokales oder um ein externes Problem handelt, haben Sie zwei Möglichkeiten: Wenn es ein externes Problem ist, lesen Sie bitte bei weiter. Handelt es sich um ein lokales Problem, lesen Sie bitte . Was kann ich machen, wenn die Gegenstelle nicht antwortet? Hier können Sie wenig tun. Die meisten ISPs werden ablehnen, Ihnen zu helfen, wenn Sie kein Betriebssystem von Microsoft benutzen. Sie können enable lqr in Ihrer Datei ppp.conf angeben, wodurch &man.ppp.8; ermöglicht wird, ein externes Versagen zu erkennen und aufzulegen, aber diese Erkennung ist relativ langsam und deshalb nicht besonders nützlich. Evtl. sagen Sie Ihrem ISP nicht, dass Sie user-PPP benutzen... Versuchen Sie zunächst, jegliche Datenkompression auszuschalten, indem Sie folgendes zu Ihrer Konfiguration hinzufügen: disable pred1 deflate deflate24 protocomp acfcomp shortseq vj deny pred1 deflate deflate24 protocomp acfcomp shortseq vj Stellen Sie nun wieder eine Verbindung her, um festzustellen, ob sich etwas geändert hat. Falls es nun besser läuft oder falls das Problem vollständig behoben ist, versuchen Sie durch schrittweises Ändern der Einstellungen festzustellen, welche Einstellung den Unterschied bewirkt. Hierdurch erhalten Sie schlüssige Fakten für ein Gespräch mit Ihrem ISP (andererseits wird hierdurch offensichtlich, dass Sie kein Microsoft-Produkt benutzen). Aktivieren Sie asynchrones Logging und warten Sie, bis die Verbindung wieder hängt, bevor Sie sich an Ihren ISP wenden. Hierzu kann einiges an Plattenplatz nötig sein. Die Daten, die als letztes von dem Port gelesen wurden, könnten von Interesse sein. Für gewöhnlich handelt es sich um ASCII-Text, der sogar den Fehler beschreiben kann (Memory fault, core dumped). Falls Ihr ISP hilfsbereit ist, sollte er in der Lage sein, an seinem Ende das Logging zu aktivieren und wenn das nächste Mal die Verbindung abbricht, könnte er Ihnen mitteilen, worin das Problem auf seiner Seite besteht. Gerne können Sie Details auch an &a.brian; schicken, oder Ihren ISP bitten, sich direkt an ihn zu wenden. Was kann ich tun, wenn sich &man.ppp.8; aufhängt? In diesem Fall erstellen Sie am besten &man.ppp.8; neu, indem Sie CFLAGS+=-g und STRIP= am Ende des Makefiles einfügen und dann make clean && make && make install ausführen. Suchen Sie die Prozessnummer von &man.ppp.8; mit ps ajxww | fgrep ppp, wenn &man.ppp.8; sich aufhängt und führen Sie gdb ppp PID aus. Am gdb-Prompt können Sie bt benutzen, um einen Auszug von Stack zu erhalten. Senden Sie die Ergebnisse an &a.brian;. Warum passiert nach der Nachricht Login OK! nichts? Bei Freebsd-Versionen vor 2.2.5 wartete &man.ppp.8; darauf, dass der Partner das Line Control Protocol (LCP) initiiert. Viele ISPs starten nicht mit der Initiierung, sondern erwarten dies vom Client. Benutzen Sie die folgende Zeile, um &man.ppp.8; zu veranlassen, LCP zu initiieren: set openmode active Für gewöhnlich schadet es nicht, wenn beide Seiten versuchen, Verhandlungen einzuleiten. Deshalb ist openmode nun standardmäßig aktiv. Im nächsten Abschnitt wird allerdings erklärt, in welchen Fällen es doch schadet. Ich sehe ständig Fehlermeldungen über gleiche Magic Numbers Was heißt das? Nach dem Aufbau einer Verbindung kann es sein, dass Sie in der Logdatei gelegentlich Meldungen mit dem Hinweis magic is the same sehen. Manchmal sind diese Meldungen harmlos und manchmal bricht die eine oder andere Seite die Verbindung ab. Die meisten Implementationen von PPP können dieses Problem nicht handhaben und Sie werden wiederholte Konfigurationsanforderungen und -bestätigungen in der Logdatei finden, bis &man.ppp.8; schließlich aufgibt und die Verbindung beendet. Dies geschieht normalerweise auf Servern mit langsamen Festplatten, bei denen ein getty auf dem Port ausgeführt und &man.ppp.8; nach dem Einloggen von einem Login-Skript oder einem Programm aus gestartet wird. Ich habe auch davon gehört, dass dies bei der Benutzung von slirp regelmäßig auftritt. Der Grund hierfür ist, dass das ppp auf der Client-Seite in der Zeit, die benötigt wird, getty zu beenden und ppp zu starten, bereits beginnt, Line Control Protocol (LCP) Pakete zu senden. Da ECHO auf dem Serverport weiterhin eingeschaltet ist, werden diese Pakete zum &man.ppp.8; auf der Client-Seite reflektiert. Ein Teil der LCP-Verhandlungen ist die Einrichtung einer Magic Number für jede Seite der Verbindung, damit Echos erkannt werden können. Das Protokoll besagt, dass, wenn der Partner versucht, die gleiche Magic Number auszuhandeln, ein NAK zurückgesendet und eine neue "Magic Number" gewählt werden soll. Während der Server das ECHO eingeschaltet hat, sendet der Client LCP Pakete, sieht die gleiche Magic Number im reflektierten Paket und erzeugt ein NAK. Er sieht auch das reflektierte NAK (was bedeutet, dass &man.ppp.8; seine "Magic Number" ändern muss). Hierdurch wird eine Vielzahl von Änderungen der Magic Number hervorgerufen, die sich allesamt im tty-Puffer des Servers ansammeln. Sobald &man.ppp.8; auf dem Server startet, wird es mit Änderungen der Magic Number überflutet und entscheidet, dass es sich zur Genüge mit den LCP-Verhandlungen beschäftigt hat und gibt auf. Und während sich der Client noch darüber freut, dass er keine weiteren Reflexionen sieht, wird ihm gemeldet, dass der Server auflegt. Dies kann verhindert werden, indem dem Partner durch die folgende Zeile in der Datei ppp.conf erlaubt wird, mit der Verhandlung zu beginnen: set openmode passive Hierdurch 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 3 Hierdurch 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 Befehl set openmode passive geschehen. Diese Option sollten Sie mit Vorsicht genießen. Folgenden Befehl sollten Sie benutzen, um die Wartezeit auf den Beginn der Verhandlungen des Partners von &man.ppp.8; zu begrenzen: set stopped N Alternativ kann der Befehl set openmode active N (wobei N die Wartezeit in Sekunden vor Beginn der Verhandlungen angibt) benutzt werden. Weitere Details finden Sie in den Manualpages. Warum reagiert &man.ppp.8; nicht mehr, wenn ich es mit shell verlassen habe? Wenn Sie den Befehl shell oder ! benutzen, führt &man.ppp.8; eine Shell aus (falls Sie Argumente übergeben haben, führt &man.ppp.8; diese Argumente aus). &man.ppp.8; wartet auf die Beendigung des Befehls, bevor es seine Arbeit fortsetzt. Falls Sie versuchen, die PPP-Verbindung während der Programmausführung zu benutzen, wird es so aussehen, als wäre die Verbindung eingefroren. Das liegt daran, dass &man.ppp.8; auf die Beendigung des Befehls wartet. Falls Sie solche Befehle verwenden möchten, benutzen Sie stattdessen den Befehl !bg. Hierdurch wird der angegebene Befehl im Hintergrund ausgeführt und &man.ppp.8; kann fortfahren, die Verbindung zu bedienen. Warum wird &man.ppp.8; niemals beendet, wenn ich es über ein Nullmodem-Kabel benutze? Es gibt keine Möglichkeit für &man.ppp.8;, automatisch festzustellen, ob eine direkte Verbindung beendet worden ist. Das liegt an den Leitungen, die bei einem seriellen Nullmodem-Kabel benutzt werden. Wenn Sie diese Art der Verbindung verwenden, sollte LQR immer aktiviert werden: enable lqr LQR wird standardmäßig akzeptiert, wenn es vom Partner ausgehandelt wird. Warum wählt &man.ppp.8; im Modus -auto ohne Grund? Falls &man.ppp.8; unerwarteterweise wählt, müssen Sie den Grund herausfinden und Wählfilter (dfilters) einsetzen, um dies zu verhindern. Benutzen Sie die folgende Zeile, um den Grund herauszufinden: set log +tcp/ip Dadurch 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')dnl Das 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 pred1 Warum loggt ppp die Geschwindigkeit meiner Verbindung nicht? Um alle Zeilen Ihrer Modemkonversation mitzuloggen, müssen Sie folgendes einstellen: set log +connect Dies veranlasst &man.ppp.8; dazu, alles bis zur letzten angeforderten expext-Zeile mitzuloggen. Falls Sie die Geschwindigkeit Ihrer Verbindung erfahren möchten und PAP oder CHAP (und deshalb nach dem CONNECT im Wählskript nichts mehr zu chatten haben - kein set login-Skript), müssen Sie sicherstellen, dass Sie &man.ppp.8; anweisen, die gesamte CONNECT-Zeile zu erwarten, etwa so: set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n" Hier bekommen wir unser CONNECT, senden nichts, erwarten dann einen Line-Feed, der &man.ppp.8; zwingt, die gesamte CONNECT-Antwort zu lesen. Warum ignoriert &man.ppp.8; das Zeichen \ in meinem Chat-Skript? ppp analysiert jede Zeile in Ihrer Konfigurationsdatei, damit es Zeichenketten wie z.B. set phone "123 456 789" korrekt interpretieren kann (und erkennen, dass es sich bei der Nummer tatsächlich nur um ein Argument handelt). Um das Zeichen " anzugeben, müssen Sie ihm einen Backslash (\) voranstellen. Wenn der Chat-Interpreter jedes Argument analysiert, reinterpretiert er die Argumente, um irgendwelche speziellen Escape-Sequenzen wie z.B. \P oder \T (sehen Sie in die Manualpage) zu finden. Das Ergebnis dieser Doppelanalyse ist, dass Sie daran denken müssen, die richtige Anzahl an Escape-Zeichen zu verwenden. Falls Sie tatsächlich das Zeichen \ z.B. zu Ihrem Modem senden möchten, brauchen Sie etwas ähnliches, wie: set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" woraus sich folgende Zeichen ergeben: ATZ OK AT\X OK oder set phone 1234567 set dial "\"\" ATZ OK ATDT\\T" was folgende Zeichen ergibt: ATZ OK ATDT1234567 Warum gibt es die Datei ppp.core nicht, wenn &man.ppp.8; einen Segmentation Fault erzeugt hat? Weder &man.ppp.8; noch andere Programme sollten Core-Dumps erzeugen. Da &man.ppp.8; mit der effektiven Benutzerkennung 0 ausgeführt wird, wird das Betriebssystem &man.ppp.8;'s Coreimage nicht auf die Festplatte schreiben, bevor es &man.ppp.8; beendet hat. Falls &man.ppp.8; jedoch tatsächlich aufgrund einer Speicherverletzung abbricht und Sie die aktuellste Version (siehe Anfang dieses Kapitels) benutzen, dann sollten Sie folgendes tun: &prompt.user; tar xfz ppp-*.src.tar.gz &prompt.user; cd ppp*/ppp &prompt.user; echo STRIP= >>Makefile &prompt.user; echo CFLAGS+=-g >>Makefile &prompt.user; make clean all &prompt.user; su &prompt.root; make install &prompt.root; chmod 555 /usr/sbin/ppp Nun ist die installierte Version von &man.ppp.8; mit einem Debugger ausführbar. Sie können &man.ppp.8; nun nur noch als root ausführen, da alle vorherigen Zugriffsrechte aufgehoben worden sind. Achten Sie darauf, in welchem Verzeichnis Sie sich gerade befinden, wenn Sie &man.ppp.8; starten. Wenn nun wieder eine Speicherverletzung auftreten sollte, wird &man.ppp.8; einen Speicherauszug erzeugen, den Sie in der Datei ppp.core finden. Sie sollten dann folgendes tun: &prompt.user; su &prompt.root; gdb /usr/sbin/ppp ppp.core (gdb) bt ..... (gdb) f 0 .... (gdb) i args .... (gdb) l ..... Mit Hilfe all dieser Informationen sollte es möglich sein, das Problem zu diagnostizieren. Falls Sie mit dem Umgang mit gdb vertraut sind, könnten Sie weitere Einzelheiten herausfinden, z.B. wodurch der Fehler tatsächlich hervorgerufen wurde und die Adressen & Werte der betreffenden Variablen. Warum bekommt das Programm, das eine automatische Anwahl ausgelöst hat, keine Verbindung? Dies war ein bekanntes Problem bei &man.ppp.8;-Konfigurationen, bei denen automatisch dynamische, lokale IP-Adressen mit dem Partner ausgehandelt werden. In der aktuellsten Version ist das Problem behoben - suchen Sie in den Manualpages nach iface. Das Problem bestand darin, dass, wenn das erste Programm &man.connect.2; aufruft, die IP-Adresse der tun-Schnittstelle dem Socketendpunkt zugeordnet wird. Der Kernel erstellt das erste ausgehende Paket und schreibt es in das tun-Gerät. &man.ppp.8; liest dann das Paket und baut eine Verbindung auf. Falls die Schnittstellenadresse sich nun aufgrund &man.ppp.8;s dynamischer Adresszuordnung ändert, wird der originale Socketendpunkt ungültig. Alle weiteren Pakete, die zum Partner gesendet werden, werden für gewöhnlich verworfen. Selbst wenn sie nicht verworfen werden würden, würden alle Antworten nicht an den betreffenden Rechner gelangen, weil die IP-Adresse nicht mehr zu diesem Rechner gehört. Theoretisch gibt es mehrere Möglichkeiten, dieses Problem anzugehen. Am schönsten wäre es, wenn der Partner die gleiche IP-Adresse wieder zuordnen würde, wenn möglich :-) Die derzeitige Version von &man.ppp.8; tut das, aber die meisten anderen Implementierungen nicht. Die einfachste Maßnahme von unserer Seite wäre die, niemals die IP-Adresse der tun-Schnittstelle zu ändern, sondern stattdessen alle ausgehenden Pakete so zu ändern, dass als Absender-IP-Adresse anstelle der IP-Adresse der Schnittstelle die ausgehandelte IP-Adresse gesetzt wird. Das ist im wesentlichen das, was durch die Option iface-alias in der aktuellsten Version von &man.ppp.8; bewirkt wird (mit Unterstützung von &man.libalias.3; und &man.ppp.8;'s Schalter) - alle Schnittstellenadressen werden beibehalten und auf die letzte ausgehandelte Adresse umgesetzt. Eine andere Alternative (und wahrscheinlich die zuverlässigste) wäre die, einen Systemaufruf zu implementieren der die IP-Adressen aller verbundenen Sockets von einer Adresse in eine andere ändert. &man.ppp.8; würde diesen Aufruf benutzen, um die Sockets aller laufenden Programme zu ändern, nachdem eine neue IP-Adresse ausgehandelt worden ist. Der gleiche Systemaufruf könnte von DHCP-Clients benutzt werden, wenn sie gezwungen werden, einen re-bind() auf ihren Sockets auszuführen. Noch eine andere Möglichkeit wäre die, das Aktivieren von Schnittstellen ohne IP-Adresse zu erlauben. Ausgehende Paketen würde die IP-Adresse 255.255.255.255 gegeben, bis der erste ioctl() mit SIOCAIFADDR erfolgt. Dies würde in der vollständigen Verbindung des Sockets resultieren. Es wäre die Aufgabe von &man.ppp.8;, die Absender-IP-Adresse zu ändern, allerdings nur dann, wenn sie 255.255.255.255 lautet und nur die IP-Adresse und IP-Prüfsumme müssten geändert werden. Dies wäre allerdings keine besonders elegante Lösung, da der Kernel fehlerhafte Pakete an eine unzureichend konfigurierte Schnittstelle senden würde, in der Annahme, dass andere Mechanismen in der Lage sind, diese Dinge rückwirkend zu beheben. Warum laufen die meisten Spiele mit dem Schalter nicht? Der Grund dafür, dass Spiele und andere Programme nicht funktionieren, wenn libalias benutzt wird, ist der, dass der Rechner außerhalb des lokalen Netzes versucht, eine Verbindung aufzubauen und (unaufgefordert) UDP-Pakete an den Rechner innerhalb des lokalen Netzes zu senden. Die Software, die für die NAT zuständig ist, weiß nicht, dass sie diese Pakete an den internen Rechner weiterleiten soll. Um dies zu beheben, stellen Sie zunächst sicher, dass die Software, mit der Sie Probleme haben, die einzige ist, die gerade läuft. Benutzen Sie dann entweder tcpdump auf der tun-Schnittstelle des Gateways oder aktivieren Sie auf dem Gateway das Logging von TCP/IP (set log +tcp/ip) unter &man.ppp.8;. Wenn Sie nun das betreffende Programm starten, sollten Sie sehen, wie Pakete den Gateway-Rechner passieren. Wenn von außen etwas zurückkommt, wird es ignoriert (das ist das Problem). Merken Sie sich die Portnummer dieser Pakete und beenden Sie das betreffende Programm. Wiederholen Sie diesen Schritt einige Male, um festzustellen, ob die Portnummern konsistent sind. Falls dem so ist, wird die folgende Zeile im entsprechenden Abschnitt von /etc/ppp/ppp.conf dafür sorgen, dass das Programm funktioniert: nat port proto internalmachine:port port wobei für proto entweder tcp oder udp zu setzen ist, internalmachine den Rechner bezeichnet, an den die Pakete geschickt werden sollen und port die betreffende Portnummer. Sie können das Programm nicht auf einem anderen Rechner benutzen, ohne die obige Zeile abzuändern und die Benutzung des Programms auf zwei internen Rechnern steht außer Frage - schließlich sieht die Außenwelt Ihr gesamtes internes Netz so, als wäre es ein einzelner Rechner. Falls die Portnummern nicht konsistent sind, gibt es drei weitere Optionen: Ermöglichen Sie die Unterstützung durch libalias. Beispiele für spezielle Fälle finden Sie in /usr/src/lib/libalias/alias_*.c (alias_ftp.c ist ein schöner Prototyp). Hierzu gehört für gewöhnlich das Lesen bestimmter, erkannter, ausgehender Pakete, die Identifizierung der Instruktion, die den entfernten Rechner dazu veranlasst, auf einem bestimmten (wahlfreien) Port eine Verbindung zurück zum lokalen Rechner herzustellen, sowie das Erstellen einer Route in der Aliastabelle, so dass nachfolgende Pakete wissen, wohin sie gehören. Dieses ist zwar die komplizierteste Lösung, aber die beste, die auch dafür sorgt, dass die Software auf mehreren Rechnern funktioniert. Benutzen Sie einen Proxy. Die Anwendung könnte z.B. socks5 unterstützen, oder (wie im Fall von cvsup) eine Option passiv besitzen, die stets verhindert, dass verlangt wird, dass der Partner eine Verbindung zurück zur lokalen Maschine aufbaut. Leiten Sie mit nat addr alles zur lokalen Maschine um. Dieses Vorgehen ähnelt dem mit einem Vorschlaghammer. Hat jemand eine Liste mit nützlichen Portnummern erstellt? Noch nicht, aber hieraus könnte eine solche entstehen (falls Interesse besteht). In jedem Beispiel sollte internal durch die IP-Adresse der Maschine ersetzt werden, auf der das Spiel laufen soll. Asheron's Call nat port udp internal:65000 65000 Konfigurieren 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 Life nat port udp internal:27005 27015 PCAnywhere 8.0 nat port udp internal:5632 5632 nat port tcp internal:5631 5631 Quake nat port udp internal:6112 6112 Quake 2 nat port udp internal:27901 27910 nat port udp internal:60021 60021 nat port udp internal:60040 60040 Red Alert nat port udp internal:8675 8675 nat port udp internal:5009 5009 Was sind FCS-Fehler? FCS steht für Frame Check Sequence. Jedes PPP-Paket besitzt eine Checksumme, um sicherzustellen, dass die empfangenen Daten dieselben sind, wie die versendeten. Falls die FCS eines ankommenden Paketes fehlerhaft ist, wird das Paket verworfen und der Zähler HDLC FCS wird erhöht. Der HDLC-Fehlerwert kann durch den Befehl show hdlc angezeigt werden. Falls Ihre Leitung schlecht ist (oder falls Ihr serieller Treiber Pakete verwirft), werden sie gelegentliche FCS-Fehler sehen. Normalerweise lohnt es sich nicht, sich hierüber Gedanken zu machen, obwohl das Kompressionsprotokoll hierdurch wesentlich langsamer wird. Wenn Sie ein externes Modem besitzen, stellen Sie sicher, dass Ihr Kabel ausreichend gegen Interferenzen abgeschirmt ist - das könnte das Problem beseitigen. Falls Ihre Leitung einfriert, sobald die Verbindung steht, und viele FCS-Fehler auftreten, könnte das daran liegen, dass Ihre Leitung nicht 8-Bit-rein ist. Stellen Sie sicher, dass Ihr Modem keinen Software-Flow-Control (XON/XOFF) verwendet. Falls Ihre Datenschnittstelle Software-Flow-Control verwenden muss, benutzen Sie den Befehl set accmap 0x000a0000, um &man.ppp.8; zu sagen, dass es die Zeichen ^Q und ^S maskieren soll. Ein weiterer Grund dafür, dass zu viele FCS-Fehler auftreten, könnte der sein, dass das andere Ende aufgehört hat, ppp zu sprechen. Aktivieren Sie async Logging, um festzustellen, ob es sich bei den eingehenden Daten tatsächlich um einen login- oder Shell-Prompt handelt. Wenn Sie am anderen Ende einen Shell-Prompt haben, ist es möglich, durch den Befehl close lcp &man.ppp.8; zu beenden, ohne die Verbindung zu beenden (ein folgender term-Befehl wird Sie wieder mit der Shell auf dem entfernten Rechner verbinden. Falls nichts in Ihrer Logdatei darauf hindeutet, warum die Verbindung beendet wurde, sollten Sie den Administrator des externen Rechners (Ihren ISP?) fragen, warum die Sitzung beendet worden ist. Wieso hängen die Verbindungen meiner &macos;- und &windows; 98-Maschinen (und eventuell auch andere µsoft; Betriebssysteme), wenn auf meinem Gateway PPPoE läuft? Vielen Dank an Michael Wozniak mwozniak@netcom.ca für die Erklärung und an Dan Flemming danflemming@mac.com für die Lösung für &macos;. Die Ursache des Problems ist ein so genannter Black Hole Router. &macos; und &windows; 98 (und wahrscheinlich auch die anderen Betriebssysteme von Microsoft) senden TCP Pakete, bei denen zum einen die angeforderte Segmentgröße zu groß für einen PPPoE-Rahmen ist (die Default-MTU für Ethernet beträgt 1500 Byte) und bei denen das don't fragment Bit gesetzt ist (das ist bei TCP allerdings Standard). Außerdem sendet der Router beim Provider nicht die eigentlich notwendigen must fragment-Meldungen zu dem Webserver, von dem Sie gerade eine Seite laden wollen. Es ist auch möglich, dass diese Meldung zwar erzeugt, aber danach von einem Firewall vor dem Webserver abgefangen wird. Wenn Ihnen dieser Webserver nun ein Paket schickt, das nicht in einen PPPoE-Rahmen passt, dann verwirft der Router dieses Paket und die Seite wird nicht geladen (einige Seiten/Grafiken werden geladen, weil ihre Größe kleiner ist als die MSS). Dies scheint leider der Normalfall zu sein (wenn die Leute doch nur wüssten, wie man einen Router konfiguriert... stöhn...) Eine der möglichen Lösungen für dieses Problem ist die Erzeugung des folgenden Schlüssels in der Registry des Windows-Clients: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU Der Schlüssels sollte vom Typ String sein und den Wert 1436 haben, da einige ADSL-Router nicht mit größeren Paketen umgehen können. Wenn Sie &windows; 2000 verwenden, müssen Sie hingegen den Schlüssel Tcpip\Parameters\Interfaces\ID der Netzwerkkarte\MTU benutzen, außerdem müssen Sie als Typ DWORD verwenden. Die Knowledge Base von µsoft; enthält weitere Informationen darüber, wie sie die MTU einer &windows;-Maschine ändern, damit diese mit einem NAT-Router korrekt zusammenarbeitet. Vom besonderen Interesse sind die Artikel Q158474 - &windows; TCPIP Registry Entries und Q120642 - TCPIP & NBT Configuration Parameters for &windowsnt;. Bei &windows; 2000 können Sie alternativ auch, wie im Artikel 120642 beschrieben, mit regedit das DWORD Tcpip\Parameters\Interfaces\ID der Netzwerkkarte\EnablePMTUBHDetect auf 1 setzen. Mit den Bordmitteln von &macos; ist es leider nicht möglich, die TCP/IP-Einstellungen zu verändern. Es gibt jedoch kommerzielle Lösungen wie zum Beispiel OTAdvancedTuner (OT steht für OpenTransport, den TCP/IP-Stack von &macos;) von Sustainable Softworks, mit denen man die TCP/IP-Einstellungen bearbeiten kann. Wenn Sie als &macos;-Anwender NAT benutzen, sollten Sie im entsprechenden drop-down Menü den Punkt ip_interface_MTU auswählen und in der Dialogbox 1450 statt 1500 eingeben. Aktivieren Sie den Punkt Save as Auto Configure und klicken Sie danach auf Make Active. &man.ppp.8; kennt seit Version 2.3 den Befehl enable tcpmssfixup, mit dem die MSS automatisch korrigiert wird. Wenn Sie einen ältere Version von &man.ppp.8; benutzen müssen, könnte der Port tcpmssd für Sie interessant sein. Nichts von alledem hilft - ich bin verzweifelt! Was soll ich machen? Falls alles andere fehlschlägt, senden Sie möglichst umfangreiche Informationen, einschließlich Ihrer Konfigurationsdateien, wie Sie &man.ppp.8; starten, die relevanten Teile Ihrer Logdateien und die Ausgabe des Befehls netstat -rn (vor und nach Aufbau der Verbindung) an die Mailingliste &a.de.questions; oder die Newsgroup de.comp.os.unix.bsd. Irgend jemand sollte Ihnen dann weiterhelfen. Serielle Verbindungen Dieses Kapitel beantwortet häufig gestellte Fragen zu seriellen Verbindungen mit FreeBSD. PPP und SLIP werden im Abschnitt Netzwerke behandelt. Wie kann ich feststellen, ob FreeBSD meine seriellen Schnittstellen gefunden hat? Wenn der FreeBSD Kernel bootet, testet er die seriellen Schnittstellen, für die er konfiguriert wurde. Sie können entweder Ihrem System aufmerksam beim Booten zusehen und die angezeigten Nachrichten lesen, oder Sie führen den Befehl &prompt.user; dmesg | grep sio aus, nachdem Ihr System hochgefahren ist und läuft. Hier ist ein Beispiel einer Ausgabe nach dem oben genannten Befehl: sio0: at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1: at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A Es zeigt zwei serielle Schnittstellen. Die erste verwendet Port-Adresse 0x3f8, IRQ 4 und hat einen 16550A UART Chip. Die zweite benutzt ebenfalls einen 16550A UART, jedoch Port-Adresse 0x2f8 und IRQ 3. Modemkarten werden wie serielle Schnittstellen behandelt. Der einzige Unterschied ist, dass an diesen Schnittstellen immer ein Modem angeschlossen ist. Der GENERIC Kernel beinhaltet Unterstützung für zwei serielle Schnittstellen, die den im Beispiel genannten Port und IRQ verwenden. Wenn diese Einstellungen nicht richtig für Ihr System sind, Sie Modemkarten hinzugefügt oder mehr serielle Schnittstellen haben als Ihre Kernelkonfiguration zulässt, konfigurieren Sie Ihren Kernel einfach neu. In dem Kapitel über die Kernelkonfiguration finden Sie mehr Details. Wie kann ich feststellen, ob FreeBSD meine Modemkarten gefunden hat? Die vorherige Frage sollte darauf eine Antwort geben. Wie kann ich auf die seriellen Schnittstellen in FreeBSD zugreifen? Die in &man.sio.4; beschriebene serielle Schnittstelle sio2 (COM3 unter &ms-dos;/&windows;), ist /dev/cuaa2 für Geräte mit abgehenden Verbindungen und /dev/ttyd2 für Geräte mit eingehenden Verbindungen. Was ist der Unterschied zwischen den beiden Geräteklassen? Sie benutzen ttydX für eingehende Verbindungen. Wird /dev/ttydX im blockierenden Modus geöffnet, wartet ein Prozess darauf, dass das entsprechende cuaaX Gerät inaktiv und der Empfangssignalpegel Mit Empfangssignalpegel oder Trägersignalerkennung wird hier die carrier detect Leitung bezeichnet. aktiv ist. Wird das cuaaX Gerät geöffnet, vergewissert es sich, dass die serielle Schnittstelle nicht bereits von dem ttydX Gerät in Gebrauch ist. Sollte die Schnittstelle verfügbar sein, stiehlt es sie von dem ttydX Gerät. Das cuaaX Gerät kümmert sich nicht um Trägersignalerkennung. Mit diesem Schema und einem automatisch antwortenden Modem, können sich Benutzer von aussen einloggen, Sie können weiterhin mit demselben Modem wählen und das System kümmert sich um die Konflikte. Wie kann ich die Unterstützung für eine Karte mit mehreren seriellen Schnittstellen aktivieren? Die Sektion über die Kernelkonfiguration bietet Informationen darüber, wie Sie Ihren Kernel konfigurieren. Für eine Karte mit mehreren seriellen Schnittstellen, schreiben Sie eine &man.sio.4; Zeile für jede serielle Schnittstelle auf der Karte in die Kernelkonfigurationsdatei. Aber achten Sie darauf, den IRQ und die Vektorbezeichnung nur in einem der Einträge zu plazieren. Alle seriellen Schnittstellen auf der Karte sollten sich einen IRQ teilen. Daher sollten Sie den IRQ nur beim letzten Eintrag angeben. Aktivieren Sie auch die COM_MULTIPORT Option. Das folgende Beispiel ist geeignet für eine AST Karte mit 4 seriellen Schnittstellen, die IRQ 7 benutzt: options "COM_MULTIPORT" device sio4 at isa? port 0x2a0 tty flags 0x781 device sio5 at isa? port 0x2a8 tty flags 0x781 device sio6 at isa? port 0x2b0 tty flags 0x781 device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr Die Flags zeigen an, dass die Master-Schnittstelle die Minor-Nummer 7 (0x700) hat, Diagnosen während des Bootens ermöglicht sind (0x080), und dass sich alle Schnittstellen einen IRQ teilen (0x001). Kann FreeBSD mehrere Karten mit mehreren seriellen Schnittstellen mit den gleichen IRQs verwalten? Noch nicht. Sie müssen für jede Karte einen anderen IRQ verwenden. Kann ich die vorgegebenen seriellen Parameter für eine Schnittstelle einstellen? Das ttydX (oder cuaaX) Gerät ist das reguläre Gerät, das man in Anwendungen öffnet. Wenn ein Prozess es öffnet, hat es die voreingestellten Terminal Eingabe/Ausgabe-Einstellungen. Sie können diese Einstellungen mit dem Befehl &prompt.root; stty -a -f /dev/ttyd1 ansehen. Wenn Sie die Einstellungen für dieses Gerät ändern, sind die Einstellungen gültig, bis das Gerät geschlossen wird. Wird es danach geöffnet, hat es wieder die vorgegebenen Einstellungen. Um Änderungen an den vorgegebenen Einstellungen vorzunehmen, können Sie das Anfangsstatus-Gerät öffnen und dessen Einstellungen anpassen. Um zum Beispiel den CLOCAL Modus, 8 Bits und XON/XOFF Datenflusskontrolle als Standard für ttyd5 einzustellen, geben Sie &prompt.root; stty -f /dev/ttyid5 clocal cs8 ixon ixoff ein. Eine gute Stelle um dies zu tun ist in /etc/rc.serial. Jetzt hat eine Anwendung diese Einstellungen als Standardwerte, wenn sie ttyd5 öffnet. Die Anwendung kann die Einstellungen jedoch immer noch nach Belieben verändern. Man aber kann auch bestimme Einstellungen davor schützen, von einer Anwendung verändert zu werden, indem man Veränderungen am lock state Gerät vornimmt. Um beispielsweise die Geschwindigkeit von ttyd5 auf 57600 bps festzusetzen: &prompt.root; stty -f /dev/ttyld5 57600 Wenn jetzt eine Anwendung ttyd5 öffnet und versucht die Geschwindigkeit zu verändern, wird diese bei 57600 bps bleiben. Natürlich sollten Sie das Schreiben auf die Anfangsstatus- und lock state-Geräte nur root erlauben. Das &man.MAKEDEV.8; Skript tut dies nicht, wenn es die Geräte-Einträge erstellt. Wie kann ich Einwahl-Logins über mein Modem aktivieren? Also Sie wollen ein Internet Service Provider werden, ja? Als erstes brauchen Sie eines oder mehrere Modems, die automatisches Antworten beherrschen. Ihr Modem sollte auf Trägersignalerkennung reagieren und nicht fortlaufend die Leitung offen halten. Es muss auflegen und sich neu initialisieren können, wenn die Data Terminal Ready (DTR) Leitung ausgeschaltet wird. Es sollte wahrscheinlich RTS/CTS oder gar keine lokale Datenflusskontrolle benutzen. Zuletzt muss es eine konstante Geschwindigkeit zwischen dem Computer und sich selbst verwenden, aber es sollte (um die Anrufer freundlich zu behandeln) eine Geschwindigkeit zwischen sich und dem entfernten Modem aushandeln können. Für viele Modems, die mit dem Hayes Befehlssatz kompatibel sind, erzeugt der folgende Befehl diese Einstellungen und legt sie im nicht-flüchtigen Speicher ab: AT &C1 &D3 &K3 &Q6 S0=1 &W Die Sektion über das Senden von AT-Befehlen bietet weitere Informationen, wie man diese Einstellungen vornimmt, ohne zu einem &ms-dos; Terminalprogramm zu flüchten. Als nächstes erstellen Sie einen Eintrag in /etc/ttys für das Modem. Diese Datei listet alle Schnittstellen auf, auf denen das Betriebssystem Einlogversuche erwartet. Fügen Sie eine solche Zeile hinzu: ttyd1 "/usr/libexec/getty std 57600" dialup on insecure Diese Zeile bedeutet, dass an der zweiten seriellen Schnittstelle (/dev/ttyd1) ein Modem angeschlossen ist, das mit 57600 bps läuft und keine Parität besitzt (std.57600 aus /etc/gettytab). Der Terminal-Typ für diese Schnittstelle ist dialup (Einwahl). Die Schnittstelle ist eingeschaltet (on) und unsicher (insecure) – das bedeutet, man kann sich über diese Schnittstelle nicht als root einloggen. Für Einwahlanschlüsse wie diesen, benutzen Sie den ttydX Eintrag. Es ist relativ geläufig, dialup als Terminal-Typ zu verwenden. Viele Benutzer richten in ihren .profile oder .login Dateien eine Abfrage für das eigentliche Terminal ein, wenn der Start-Typ dialup ist. Das Beispiel zeigt die Schnittstelle als unsicher und um über diese Schnittstelle root zu werden, müssen Sie sich als normaler Benutzer einloggen und &man.su.1;. Wenn sie secure (sicher) als Einstellung verwenden, kann sich root direkt einloggen. Nachdem Sie Modifikationen in /etc/ttys vorgenommen haben, müssen Sie ein hangup oder HUP Signal an &man.init.8; senden: &prompt.root; kill -HUP 1 Das bringt &man.init.8; dazu, die Datei /etc/ttys neu einzulesen. init startet dann an allen als eingeschaltet (on) markierten Schnittstellen die getty-Prozesse. Sie können herausfinden ob noch Logins für Ihre Schnittstelle verfügbar sind, wenn Sie folgendes eingeben: &prompt.user; ps -ax | grep '[t]tyd1' Sie sollten etwas sehen, das so ähnlich aussieht wie: 747 ?? I 0:00:04 /usr/libexec/getty std.57600 ttyd1 Wie kann ich ein Hardware-Terminal mit meiner FreeBSD Box verbinden? Wenn Sie einen anderen Computer als Terminal für Ihr FreeBSD System verwenden wollen, verbinden Sie die beiden seriellen Schnittstellen mit einem Nullmodem-Kabel. Wenn Sie ein echtes (Hardware-)Terminal benutzen, lesen Sie die Begleitinformationen. Ändern Sie /etc/ttys wie oben angegeben. Wenn Sie zum Beispiel ein WYSE-50 Terminal mit der fünften seriellen Schnittstelle verbinden wollen, schreiben Sie einen Eintrag wie diesen: ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure Das Beispiel zeigt, dass die Schnittstelle an /dev/ttyd4 mit einem wyse50 Terminal mit 38400 bps und ohne Parität (std.38400 aus /etc/gettytab) verbunden ist und root Logins möglich sind (secure). Warum kann ich tip oder cu nicht laufen lassen? Vielleicht sind auf Ihrem System die Programme &man.tip.1; und &man.cu.1; nur von uucp und der Gruppe dialer ausführbar. Sie können die Gruppe dialer verwenden, um zu kontrollieren wer Zugriff auf Ihr Modem oder entfernte Systeme hat. Fügen Sie sich einfach selbst zur Gruppe dialer hinzu. Als Alternative können Sie jeden Benutzer auf Ihrem System &man.tip.1; und &man.cu.1; verwenden lassen, dazu müssen Sie das folgende eingeben: &prompt.root; chmod 4511 /usr/bin/cu &prompt.root; chmod 4511 /usr/bin/tip Mein Hayes Modem wird nicht unterstützt – was kann ich tun? Eigentlich ist die Onlinehilfe für &man.tip.1; nicht mehr aktuell. Es gibt einen eingebauten, allgemeinen Hayes Wähler. Verwenden Sie einfach at=hayes in /etc/remote. Der Hayes Treiber ist nicht schlau genug, um ein paar der erweiterten Merkmale von neueren Modems zu erkennen – Nachrichten wie BUSY, NO DIALTONE oder CONNECT 115200 verwirren ihn nur. Sie sollten diese Nachrichten mit Hilfe von ATX0&W abschalten, wenn Sie tip benutzen. Das Anwahl-Timeout von &man.tip.1; beträgt 60 Sekunden. Ihr Modem sollte weniger verwenden, oder tip denkt, dass ein Kommunikationsfehler vorliegt. Versuchen Sie es mit ATS7=45&W. Tatsächlich unterstützt die ausgelieferte Version von &man.tip.1; es noch nicht vollständig. Die Lösung ist, tipconf.h im Verzeichnis /usr/src/usr.bin/tip/tip zu editieren. Dafür benötigen Sie natürlich die Quellcode Distribution. Editieren Sie die Zeile #define HAYES 0 in #define HAYES 1 um. Dann führen Sie make und make install aus. Es sollte jetzt funktionieren. Wie soll ich die AT Befehle eingeben? Erstellen Sie einen so genannten direct Eintrag in /etc/remote. Wenn Ihr Modem zum Beispiel an der ersten seriellen Schnittstelle, /dev/cuaa0, angeschlossen ist, dann fügen Sie die folgende Zeile hinzu: cuaa0:dv=/dev/cuaa0:br#19200:pa=none Verwenden Sie die höchste bps Rate, die Ihr Modem in der br Fähigkeit unterstützt. Geben Sie dann tip cuaa0 ein und Sie sind mit Ihrem Modem verbunden. Wenn auf Ihrem System keine /dev/cuaa0 Datei existiert, geben Sie folgendes ein: &prompt.root; cd /dev &prompt.root; sh MAKEDEV cuaa0 Oder benutzen Sie cu als root mit dem folgenden Befehl: &prompt.root; cu -lline -sspeed line steht für die serielle Schnittstelle (/dev/cuaa0) und speed für die Geschwindigkeit (57600). Wenn Sie mit dem Eingeben der AT Befehle fertig sind, beenden Sie mit ~.. Wieso funktioniert das <@> Zeichen für die pn Fähigkeit nicht? Das <@> Zeichen in der Telefonnummerfähigkeit sagt tip, dass es in der Datei /etc/phones nach einer Nummer suchen soll. Aber <@> ist auch ein spezielles Zeichen in den Dateien, in denen Fähigkeiten beschrieben werden, wie /etc/remote. Schreiben Sie es mit einem '\' (backslash): pn=\@ Wie kann ich von der Kommandozeile eine Telefonnummer wählen? Stellen Sie einen allgemeinen Eintrag in /etc/remote. Zum Beispiel: tip115200|Dial any phone number at 115200 bps:\ :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: tip57600|Dial any phone number at 57600 bps:\ :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: Mit einem Befehl wie tip -115200 5551234 können Sie dann wählen. Sollten Sie &man.cu.1; im Gegensatz zu &man.tip.1; bevorzugen, verwenden Sie einen allgemeinen cu-Eintrag: cu115200|Use cu to dial any number at 115200bps:\ :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: Zum Wählen können Sie dann cu 5551234 -s 115200 eingeben. Muss ich dabei jedes Mal die bps Rate angeben? Schreiben Sie einen tip1200 oder einen cu1200 Eintrag, aber geben Sie auch die bps Rate an, die Ihr Modem wirklich unterstützt. Leider denkt &man.tip.1;, dass 1200 bps ein guter Standardwert ist und deswegen sucht es nach einem tip1200-Eintrag. Natürlich müssen Sie nicht wirklich 1200 bps benutzen. Wie kann ich möglichst komfortabel über einen Terminal-Server auf verschiedene Rechner zugreifen? Sie müssen nicht warten bis Sie verbunden sind, und jedes Mal CONNECT Rechner eingeben, benutzen Sie tip's cm Fähigkeit. Sie können diese Einträge in /etc/remote verwenden: pain|pain.deep13.com|Forrester's machine:\ :cm=CONNECT pain\n:tc=deep13: muffin|muffin.deep13.com|Frank's machine:\ :cm=CONNECT muffin\n:tc=deep13: deep13:Gizmonics Institute terminal server:\ :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234: Mit den Befehlen tip pain oder tip muffin können Sie eine Verbindungen zu den Rechnern pain oder muffin herstellen; mit tip deep13 verbinden Sie sich mit dem Terminal Server. Kann tip mehr als eine Verbindung für jede Seite ausprobieren? Das ist oft ein Problem, wenn eine Universität mehrere Telefonleitungen hat und viele tausend Studenten diese benutzen wollen. Erstellen Sie einen Eintrag für Ihre Universität in /etc/remote und benutzen Sie <\@> für die pn Fähigkeit: big-university:\ :pn=\@:tc=dialout dialout:\ :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: Listen Sie die Telefonnummern der Universität in /etc/phones auf: big-university 5551111 big-university 5551112 big-university 5551113 big-university 5551114 &man.tip.1; probiert jede der Nummern in der aufgelisteten Reihenfolge und gibt dann auf. Möchten Sie, dass tip beim Versuchen eine Verbindung herzustellen nicht aufgibt, lassen Sie es in einer while-Schleife laufen. Warum muss ich zweimal Ctrl P tippen, um ein Ctrl P zu senden? Ctrl P ist das voreingestellte Zeichen, mit dem eine Übertragung erzwungen werden kann und wird benutzt, um &man.tip.1; zu sagen, dass das nächste Zeichen direkt gesendet werden soll und nicht als Fluchtzeichen interpretiert werden soll. Mit Hilfe der ~s Fluchtsequenz, mit der man Variablen setzen kann, können Sie jedes andere Zeichen als force-Zeichen definieren. Geben Sie ~sforce=zeichen ein und drücken Sie Enter. Für zeichen können Sie ein beliebiges einzelnes Zeichen einsetzen. Wenn Sie zeichen weglassen, ist das force-Zeichen nul, das Sie mit Ctrl 2 oder Ctrl SPACE eingeben können. Ein guter Wert für zeichen ist Shift Ctrl 6 , welches ich erst auf ein paar Terminal-Servern in Benutzung gesehen habe. Sie können das force-Zeichen auch bestimmen, indem Sie in $HOME/.tiprc das folgende einstellen: force=single-char Warum ist auf einmal alles was ich schreibe in GROSSBUCHSTABEN?? Sie müssen Ctrl A eingegeben haben, das raise-Zeichen von &man.tip.1; das speziell für Leute mit defekten Caps Lock Tasten eingerichtet wurde. Benutzen Sie ~s wie oben und setzen Sie die Variable raisechar auf etwas, das Ihnen angemessen erscheint. Tatsächlich kann die Variable auf das gleiche Zeichen wie das force-Zeichen gesetzt werden, wenn Sie diese Fähigkeiten niemals benutzen wollen. Hier ist ein Muster der .tiprc Datei, perfekt für Emacs Benutzer, die oft Ctrl 2 und Ctrl A tippen müssen: force=^^ raisechar=^^ Das ^^ steht für Shift Ctrl 6 . Wie kann ich Dateien mit tip übertragen? Wenn Sie mit einem anderen &unix; System kommunizieren, können Sie Dateien senden und empfangen – mit ~p (put) und ~t (take). Diese Befehle lassen &man.cat.1; und &man.echo.1; auf dem entfernten System laufen, um Dateien zu akzeptieren und zu senden. Die Syntax ist: ~p <local-file> [<remote-file>] ~t <remote-file> [<local-file>] Es gibt keine Fehlerkontrolle, deshalb sollten Sie besser ein anderes Protokoll benutzen, wie zmodem. Wie kann ich zmodem mit tip laufen lassen? Zuerst installieren Sie ein zmodem Programm aus der Ports-Sammlung (eines der beiden aus der comms-Kategorie, lrzsz oder rzsz). Um Dateien zu empfangen, starten Sie das Programm zum Senden auf dem entfernten Computer. Drücken Sie dann Enter gefolgt von ~C rz (oder ~C lrz, wenn Sie lrzsz installiert haben), um diese lokal zu empfangen. Um Dateien zu senden, starten Sie das Programm zum Empfangen auf dem entfernten Computer. Drücken Sie dann Enter gefolgt von ~C sz Dateien (oder ~C lsz Dateien), um sie zum entfernten System zu senden. Verschiedene Fragen FreeBSD benutzt viel mehr Swap-Speicher als &linux;. Warum? Es sieht nur so aus, als ob FreeBSD mehr Swap benutzt, als &linux;. Tatsächlich ist dies nicht der Fall. In dieser Hinsicht besteht der Hauptunterschied zwischen FreeBSD und &linux; darin, dass FreeBSD vorbeugend vollkommen untätige, unbenutzte Seiten aus dem Hauptspeicher in den Swap-Bereich auslagert, um mehr Hauptspeicher für die aktive Nutzung zur Verfügung zu stellen. &linux; tendiert dazu, nur als letzten Ausweg Seiten in den Swap-Bereich auszulagern. Die spürbar höhere Nutzung des Swap-Speichers wird durch die effizientere Nutzung des Hauptspeichers wieder ausgeglichen. Beachten Sie, dass FreeBSD in dieser Hinsicht zwar vorbeugend arbeitet, es entscheidet jedoch nicht willkürlich, Seiten auszulagern, wenn das System vollkommen untätig ist. Deshalb werden Sie feststellen, dass nicht alle Seiten Ihres Systems ausgelagert wurden, wenn Sie morgens aufstehen, nachdem das System eine Nacht lang nicht benutzt worden ist. Warum zeigt mir &man.top.1; so wenig freien Speicher an, obwohl nur wenige Programme laufen? Die Antwort ist ganz einfach: Freier Speicher ist verschwendeter Speicher. Der FreeBSD Kernel verwendet den von den Programmen nicht genutzten Speicher automatisch für den Plattencache. Die in &man.top.1; für Inact, Cache und Buf gemeldeten Werte stehen alle für zwischengespeicherte Daten mit unterschiedlichem Alter. Wenn das System wiederholt auf Daten zugreifen muss, braucht es nicht auf die langsame Platte zuzugreifen, da die Daten noch zwischengespeichert sind. Dadurch erhöht sich die Performance. Ganz generell ist es ein gutes Zeichen, wenn &man.top.1; einen kleinen Wert bei Free anzeigt, solange der Wert nicht extrem klein ist. Anmerkung des Übersetzers: Mit extrem klein sind hier Werte unterhalb 512 KByte gemeint. Warum ändert chmod die Zugriffsrechte auf symbolische Links nicht? Für symbolische Links gibt es keine separaten Zugriffsrechte und standardmäßig folgt &man.chmod.1; dem Link nicht; die Zugriffsrechte für die Datei, auf die der symbolische Link zeigt, werden also nicht verändert. Wenn Sie eine Datei mit dem Namen foo und einen auf diese Datei zeigenden symbolischen Link mit dem Namen bar haben, wird das folgende Kommando niemals einen Fehler melden. &prompt.user; chmod g-w bar Trotzdem werden die Zugriffsrechte für foo nicht geändert. Hierzu müssen Sie entweder oder zusammen mit der Option benutzen. Weitere Informationen finden Sie in den Manualpages &man.chmod.1; und &man.symlink.7;. Die Option bewirkt ein rekursives &man.chmod.1;. Seien Sie vorsichtig, wenn Sie bei &man.chmod.1; Verzeichnisse oder symbolische Links zu Verzeichnissen angeben. Wenn Sie die Zugriffsrechte eines Verzeichnisses ändern möchten, das durch einen symbolischen Link referenziert wird, benutzen Sie &man.chmod.1; ohne irgendwelche Optionen und folgen dem symbolischen Link durch einen abschließenden Schrägstrich (/). Falls z.B. foo ein symbolischer Link zum Verzeichnis bar ist und Sie die Zugriffsrechte von foo (tatsächlich bar) ändern möchten, dann benutzen Sie etwas ähnliches wie: &prompt.user; chmod 555 foo/ Durch den abschließenden Schrägstrich folgt &man.chmod.1; dem symbolischen Link foo, um die Zugriffsrechte für das Verzeichnis bar zu ändern. Kann ich DOS-Programme unter FreeBSD ausführen? Ja. Sie können emulators/doscmd verwenden, das über die Ports-Sammlung verfügbar ist. doscmd war früher Teil des Basissystems von &os;, es wurde aber vor der Veröffentlichung von &os; 5.3 daraus entfernt. Falls doscmd nicht ausreicht, können Sie den Port emulators/pcemu verwenden, der einen 8088 und genug BIOS-Funktionen emuliert, um DOS-Textanwendungen laufen zu lassen. Der Port benötigt das X-Window-System. Was muss ich tun, um die FreeBSD-Dokumentation in meine Muttersprache zu übersetzen? Informationen zu diesem Thema finden Sie in der FAQ des FreeBSD German Documentation Project. Warum kommen alle meine Mails, die ich an @FreeBSD.org schicke, wieder zurück? Das Mailsystem von FreeBSD.org verwendet einige der strengeren Überprüfungen von Postfix für eingehende Mails. Mails, bei denen es Anzeichen für Konfigurationsprobleme oder Spam gibt, werden nicht akzeptiert. Dies kann aus einem der folgenden Gründe geschehen: Die Mail kommt von einem System oder Netzwerk, dass für Spam-Aktivitäten bekannt ist. Die Mailserver von FreeBSD akzeptierten keine Mails von bekannten Spam-Quellen. Wenn Sie eine Firma oder Domain benutzen, die Spam erzeugt oder verteilt, sollten Sie sich einen anderen ISP suchen. Der Mailtext enthält HTML. Mail sollte immer im Klartext gesendet werden, Sie sollten ihr Mailprogramm entsprechend einstellen. Das Mailsystem kann die IP-Adresse des einliefernden Systems nicht in einen symbolischen Namen umwandeln. Funktionierendes reverse DNS ist eine Vorbedingung, damit ihre Mails angenommen wird. Sorgen Sie dafür, dass der reverse DNS für Ihren Mailserver korrekt konfiguriert wird. Viele Anbieter für Privatkunden geben Ihnen diese Möglichkeit nicht. In diesem Fall sollten Sie Ihre Mails über den Mailserver Ihres Providers versenden. Der Rechnername, der im EHLO/HELO Teil der SMTP Kommunikation übergeben wird, kann nicht zu einer IP-Adresse aufgelöst werden. Damit die E-Mail akzeptiert wird, brauchen Sie einen voll qualifizierten Rechnernamen, der im DNS eingetragen ist. Wenn Sie diesen nicht besitzen, benutzen Sie bitte den Mailserver Ihres Providers, um E-Mails zu verschicken. Die Message-ID Ihrer Mail endet in localhost. Einige Mail-Clients generieren eine Message-ID, die nicht akzeptiert wird. Sie müssen Ihren Mail-Client so konfigurieren, dass er eine gültige Message-ID generiert. Alternativ können Sie die Message-ID von Ihrem Mailserver umschreiben lassen. Wo kann ich einen freien FreeBSD-Account bekommen? Das FreeBSD-Projekt bietet zwar keinen freien Zugang zu seinen Servern an; andere Firmen bieten jedoch frei zugängliche &unix; Systeme. Die Kosten variieren und es kann sein, dass nicht alle Dienste zur Verfügung stehen. Arbornet, Inc, auch als M-Net bekannt, bietet seit 1983 uneingeschränkten Zugang zu &unix; Systemen. Zunächst wurde eine Altos-Maschine mit System III benutzt, 1991 erfolgte dann der Wechsel zu BSD/OS. Im Juni 2000 erfolgte ein erneuter Wechsel, diesmal zu FreeBSD. M-Net bietet Zugang mit Telnet und SSH und den Zugang zur gesamten Software von FreeBSD. Allerdings ist der Zugriff auf das Netzwerk auf Mitglieder und Gönner beschränkt, die eine Spende an die nicht-kommerzielle Organisation geleistet haben. M-Net stellt zusätzlich ein Mailbox-System und einen interaktiven Chat zur Verfügung. Grex bietet ein ganz ähnlichen Dienst wie M-Net an, dazu gehören auch das Mailbox-System und der interaktive Chat. Allerdings wird eine SUN4M mit &sunos; benutzt. Was ist sup und wie benutze ich es? Der Name SUP steht für Software Update Protocol und wurde von der CMU (Carnegie Mellon University) entwickelt, um ihre Entwicklungszweige zu synchronisieren. Wir haben es benutzt, um entfernte Sites mit unseren zentralen Quellcodeentwicklungen zu synchronisieren. SUP ist nicht sehr bandbreitenfreundlich und wurde abgelöst. Die derzeit empfohlene Methode, um Ihren Quellcode auf dem neuesten Stand zu halten ist CVSup. Wie heißt das niedliche rote Kerlchen? Er ist namenlos, es ist einfach der der BSD Daemon. Wenn Sie ihm unbedingt einen Namen geben wollen, rufen Sie ihn beastie. Beachten Sie aber, dass beastie wie BSD ausgesprochen wird. Weitere Informationen über den BSD daemon finden Sie auf seiner Homepage. Kann ich Bilder des BSD Daemon verwenden? Eventuell. Der BSD Daemon unterliegt dem Copyright von Marshall Kirk McKusick. Wenn Sie genaue Informationen über die Einschränkungen bei der Nutzung brauchen, sollten Sie sein Statement on the Use of the BSD Daemon Figure lesen. Kurz gesagt, können Sie den BSD Daemon benutzen, solange es für einen privaten Zweck ist und die Nutzung geschmackvoll bleibt. Für den kommerziellen Einsatz brauchen Sie die Zustimmung von Kirk McKusick. Weitere Informationen erhalten Sie auf der Webseite BSD Daemon's home page. Woher kann ich Bilder des BSD Daemon bekommen? Einige Bilder in den Format xfig und eps sind unter /usr/share/examples/BSD_daemon/ zu finden. Ich habe in den Mailinglisten eine Abkürzung oder einen Begriff gesehen, den ich nicht kenne. Wo erhalte ich eine Erklärung dazu? Sehen Sie bitte im FreeBSD-Glossar nach. Warum sollte mich die Farbe des Fahrradschuppens interessieren? Die ganz, ganz kurze Antwort ist: Überhaupt nicht. Die etwas längere Antwort lautet: Nur weil Sie in der Lage sind, einen Fahrradschuppen zu bauen, müssen Sie noch lange nicht andere davon abhalten, nur weil Ihnen die Farbe nicht gefällt. Dies ist natürlich eine Metapher dafür, dass Sie nicht eine Diskussion über jede kleine Änderung beginnen sollen, nur weil Sie das können. Einige Leute behaupten sogar, dass die Anzahl der (nutzlosen) Kommentare über eine Änderung umgekehrt proportional zur Komplexität der Änderung ist. Die noch längere und vollständigere Antwort ist, dass &a.phk; nach einen langen Diskussion über das Thema "Soll &man.sleep.1; Sekundenbruchteile als Parameter akzeptieren?" eine lange Mail mit dem Titel A bike shed (any colour will do) on greener grass... schrieb. Die einschlägigen Teile der Nachricht lauteten:
&a.phk; in freebsd-hackers, 2.10.1999 Einige 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 Fragen Wie cool ist FreeBSD? Q. Hat irgend jemand Temperaturmessungen durchgeführt, während FreeBSD läuft? Ich weiss, dass &linux; cooler läuft, als DOS, habe aber niemals gesehen, dass FreeBSD erwähnt wurde. Es scheint sehr heiß zu laufen. A. Nein, aber wir haben zahlreiche Geschmackstests mit verblendeten Freiwilligen durchgeführt, denen außerdem zuvor 250 Mikrogramm LSD-25 verabreicht wurden. 35% der Freiwilligen sagte, dass FreeBSD nach Orange schmeckte, &linux; hingegen schmecke wie purple haze (Anm. d. Übersetzers: Song von Jimmy Hendrix und LSD-Marke). Keine der Gruppen hat besondere Abweichungen der Temperatur erwähnt. Eventuell hätten wir sämtliche Ergebnisse dieser Untersuchung fortwerfen sollen, als wir festgestellt haben, dass zu viele der Freiwilligen den Raum während der Tests verlassen haben und dadurch die Ergebnisse verfälscht haben. Wir glauben, dass die meisten der Freiwilligen nun bei Apple sind und an ihrer neuen scratch and sniff Oberfläche arbeiten. Es ist ein lustiges, altes Geschäft, in dem wir uns befinden! Ernsthaft, FreeBSD und &linux; benutzen beide die Instruktion HLT (halt), wenn das System untätig ist, wodurch der Energieverbrauch und dadurch die produzierte Wärme reduziert wird. Falls Sie auch noch APM (Advanced Power Management) konfiguriert haben, kann FreeBSD Ihre CPU auch in einen Low-Power-Modus bringen. Wer kratzt in meinen Speicherbänken?? Q. Gibt es irgend etwas seltsames, das FreeBSD tut, wenn ich den Kernel kompiliere, das dazu führt, dass der Speicher ein kratzendes Geräusch macht? Bei der Kompilierung (und auch für einen kurzen Moment nach der Erkennung des Floppy-Laufwerks beim Hochfahren), kommt ein seltsames kratzendes Geräusch von etwas das die Speicherbänke zu sein scheinen. A. Ja! In der BSD-Dokumentation finden Sie häufige Verweise auf Daemons und was die meisten Leute nicht wissen, ist, dass diese sich auf echte, nicht-körperlichen Wesen beziehen, die Besitz von Ihrem Computer ergriffen haben. Das kratzende Geräusch, das von Ihrem Speicher kommt, ist in Wirklichkeit hochtöniges Flüstern, das unter den Daemons ausgetauscht wird, während Sie entscheiden, wie Sie die verschiedenen Systemadministrationsaufgaben, am besten erledigen. Wenn Sie das Geräusch stört, wird ein fdisk /mbr sie vertreiben, aber wundern Sie sich nicht, wenn sie feindlich reagieren und versuchen, Sie aufzuhalten. Wenn Sie während der Ausführung zu irgendeinem Zeitpunkt die teuflische Stimme von Bill Gates aus dem eingebauten Lautsprecher kommen hören, laufen Sie weg und sehen Sie sich auf keinen Fall um! Befreit von dem ausgleichenden Einfluss der BSD Dämonen sind die beiden Dämonen von DOS und &windows; oft dazu in der Lage, die totale Kontrolle über Ihre Maschine für die ewige Verdammung Ihrer Seele zurückzuerlangen. Da Sie jetzt die Wahrheit kennen, würden Sie es vorziehen, sich an die Geräusche zu gewöhnen, wenn Sie die Wahl hätten. Wie viele FreeBSD-Hacker braucht man, um eine Glühbirne auszuwechseln? Eintausendeinhundertundneunundsechzig: Dreiundzwanzig, die sich bei -CURRENT beschweren, dass das Licht aus ist; Vier, die behaupten, dass es sich um ein Konfigurationsproblem handelt und dass solche Dinge wirklich nach -questions gehören; Drei, die PRs hierzu einreichen, einer von ihnen wird falsch unter DOC abgelegt und fristet sein Dasein im Dunkeln; Einen, der eine ungetestete Glühbirne einreicht, wonach buildworld nicht mehr funktioniert, und sie dann fünf Minuten später wieder herausnimmt; Acht, die die PR-Erzeuger beschimpfen, weil sie zu ihren PRs keine Patche hinzugefügt haben; Fünf, die sich darüber beschweren, dass buildworld nicht mehr funktioniert; Einunddreißig, die antworten, dass es bei ihnen funktioniert und dass sie cvsup wohl zu einigem ungünstigen Zeitpunkt durchgeführt haben; Einen, der einen Patch für eine neue Glühbirne an -hackers schickt; Einen, der sich beschwert, dass es vor drei Jahren Patches hierfür hatte, aber als er sie nach -CURRENT schickte, sind sie einfach ignoriert worden und er hatte schlechte Erfahrungen mit dem PR-System; nebenbei ist die vorgeschlagene Glühbirne nicht reflexiv; Siebenunddreißig, die schreien, dass Glühbirnen nicht in das Basissystem gehören, dass Committer nicht das Recht haben, solche Dinge durchzuführen, ohne die Gemeinschaft zu konsultieren und WAS GEDENKT -CORE HIER ZU TUN!? Zweihundert, die sich über die Farbe des Fahrradschuppens beschweren; Drei, die darauf hinweisen, dass der Patch nicht mit &man.style.9; übereinstimmt; Siebzehn, die sich beschweren, dass die vorgeschlagene neue Glühbirne der GPL unterliegt; Fünfhundertundsechsundachtzig, die sich in einen Streit über die vergleichbaren Vorteile der GPL, der BSD-Lizenz, der MIT-Lizenz, der NPL und der persönlichen Hygiene nichtgenannter FSF-Gründer verwickeln; Sieben, die unterschiedliche Teile des Threads nach -chat und -advocacy weiterleiten; Einer, der die vorgeschlagene Glühbirne einbaut, obwohl sie dunkler leuchtet, als die alte; Zwei, die sie wieder ausbauen, und in einer wütenden Nachricht argumentieren, dass FreeBSD besser ganz im Dunkeln dasteht, als mit einer dämmerigen Glühbirne; Sechsundvierzig, die sich lärmend wegen des Wiederausbaus der dämmerigen Glühbirne streiten und eine Erklärung von -core verlangen; Elf, die eine kleinere Glühbirne beantragen, damit sie in ihr Tamagotchi passt, falls wir irgendwann beschließen, FreeBSD auf diese Plattform zu portieren; Dreiundsiebzig, die sich über die SNR auf -hackers und -chat beschweren und aus Protest abmelden; Dreizehn, die unsubscribe, How do I unsubscribe? oder Please remove me from the list gefolgt von der üblichen Fußzeile abschicken; Einen, der eine funktionierende Glühbirne einbaut, während alle zu beschäftigt damit sind, mit jedem zu streiten, um es zu bemerken; Einunddreißig, die herausstellen, dass die neue Glühbirne 0,364% heller leuchten würde, wenn sie mit TenDRA kompiliert werden würde (obwohl sie in einen Würfel umgeformt werden müsste) und dass FreeBSD deshalb nach TenDRA, anstatt nach GCC wechseln sollte; Einen, der sich beschwert, dass bei der neuen Glühbirne die Verkleidung fehlt; Neun (einschließlich der PR-Ersteller), die fragen Was ist MFC? Siebenundfünfzig, die sich zwei Wochen, nachdem die Birne gewechselt worden ist, darüber beschweren, dass das Licht aus war. &a.nik; hat hinzugefügt: Ich habe ziemlich hierüber gelacht. Und dann dachte ich: "Halt, sollte in dieser Liste nicht irgendwo 'Einer, der es dokumentiert' sein?" Und dann wurde ich erleuchtet :-) Was passiert mit den Daten, die nach /dev/null geschrieben werden? Sie werden in einer speziellen Datensenke der CPU in Wärme umgewandelt, die dann über den Kühlkörper und den Lüfter abgeführt wird. Dies ist einer der Gründe für die Kühlung von CPUs; die Anwender gewöhnen sich an die schnelleren Prozessoren, gehen nicht mehr so sorgfältig mit Ihren Daten um und so landen immer mehr Daten in /dev/null, was zur Überhitzung der CPU führt. Wenn Sie /dev/null löschen (was die Datensenke ziemlich sicher abschaltet), wird Ihre CPU zwar nicht mehr so heiß, dafür wird Ihr System aber sehr schnell von den überzähligen Daten überladen und merkwürdige Effekte zeigen. Wenn Sie eine sehr schnell Netzwerkverbindung haben, können Sie Ihre CPU kühlen, indem sie Daten aus /dev/random lesen und in die Weite des Netzwerkes schicken; allerdings besteht hier die Gefahr der Überhitzung von Netzwerk und /. Außerdem dürfte Ihr ISP ziemlich wütend werden, da der größte Teil der Daten von seinen Geräten in Hitze umgewandelt werden wird; da ISPs aber über Klimaanlagen verfügen, sollte das kein großes Problem sein, solange Sie es nicht übertreiben. Nachtrag Paul Robinson: Es gibt andere Mittel und Wege. Wie jeder gute Systemadministrator weiss, gehört es zum guten Ton, einigen Daten zum Bildschirm zu senden, damit die Leuchtkäferchen, die das Bild anzeigen, glücklich sind. Die Leuchtkäferchen werden nach der Farbe Ihrer Hüte (Rot, Grün, oder Blau) unterschieden und sie verstecken bzw. zeigen sich (wobei man die Farbe ihrer Hüte erkennen kann) bei jeder Nahrungsaufnahme. Grafikkarten wandeln Daten in Leuchkäfer-Nahrung um und schicken sie dann zu den Leuchtkäfern - teure Karten erzeugen bessere Nahrung und sorgen so für besseres Verhalten der Leuchtkäfer. Diese brauchen allerdings einen konstanten Stimulus - darum gibt es Bildschirmschoner. Darum lautet mein Vorschlag, die zufälligen Daten einfach zum Bildschirm zu schicken, damit sie von den Leuchtkäfern verzehrt werden. Dabei entsteht keine Hitze, die Leuchtkäfer bleiben glücklich und man wird seine überflüssigen Daten sehr schnell los, auch wenn der Bildschirm etwas merkwürdig aussieht. Übrigens: Als Ex-Admin eines großen ISPs, der so seine Probleme mit der Kühlung seines Rechenzentrums hatte, kann ich nur davon abraten, überflüssige Daten einfach in das Netzwerk zu schicken. Die Heinzelmännchen, die die Pakete verteilen und versenden, regen sich darüber ganz furchtbar auf. Weiterführende Themen Wie kann ich mehr über die Interna von FreeBSD erfahren? Zurzeit gibt es nur ein Buch über die Interna von FreeBSD, The Design and Implementation of the FreeBSD Operating System von Marshall Kirk McKusick und George V. Neville-Neil, ISBN 0-201-70245-2, das sich auf FreeBSD 5.X konzentriert. Allgemeines Wissen über &unix; kann allerdings in den meisten Fällen auf FreeBSD angewendet werden. Eine Liste finden Sie im entsprechenden Abschnitt der Bibliographie. Wie kann ich bei der Entwicklung von FreeBSD mitarbeiten? Genauere Informationen finden Sie im Artikel FreeBSD unterstützen. Wir können Hilfe immer gut gebrauchen! Was sind SNAPs und RELEASEs? Derzeit existieren drei aktive/halbaktive Zweige im FreeBSD-CVS-Repository. In früheren Zweigen ändert sich wenig, daher gibt es nur drei aktive Entwicklungszweige: RELENG_5 bzw. 5.X-STABLE RELENG_6 bzw. 6-STABLE HEAD bzw. -CURRENT oder 7.X-CURRENT HEAD ist keine wirkliche Bezeichnung für einen Zweig, wie die anderen beiden. Es ist lediglich eine symbolische Konstante für den aktuellen, nicht verzweigten Entwicklungsstrom, auf den wir uns einfach als -CURRENT beziehen. Derzeit steht -CURRENT für den 7.X-Entwicklungsstrom, der 5-STABLE-Zweig (RELENG_5) wurde im Oktober 2004, der 6-STABLE-Zweig (RELENG_6) im November 2005 von -CURRENT abgespalten. Wie kann ich meine eigene, angepasstes Release erstellen? Eine Anleitung dazu finden Sie im Artikel FreeBSD Release Engineering. Wieso überschreibt make world das installierte System? Das ist beabsichtigt. Wie der Name schon andeutet, erstellt make world alle Systemdateien von Grund auf neu. Sie können also sicher sein, am Ende eine saubere, konsistente Umgebung zu haben (das ist der Grund, warum es so lange dauert). Falls die Umgebungsvariable DESTDIR während der Ausführung von make world oder make install definiert ist, werden die neu erstellten Binaries unter ${DESTDIR} in einem zum installierten identischen Verzeichnisbaum abgelegt. Einige zufällige Kombinationen von Änderungen von Shared Libraries und Neuerstellungen von Programmen können hierbei jedoch ein Scheitern von make world verursachen. Warum ist cvsup.FreeBSD.org kein Round-Robin-Eintrag im DNS, so dass Anfragen auf alle CVsup-Server verteilt werden? Die CVsup-Server gleichen sich stündlich mit dem Hauptserver ab. Allerdings findet der Abgleich nicht zur gleichen Zeit statt, daher können einige Server neuere Quellen bereitstellen als andere Server. Alle Server stellen jedoch Quellen bereit, die maximal eine Stunde alt sind. Wäre cvsup.FreeBSD.org ein Round-Robin-Eintrag im DNS, der Benutzern einen zufälligen Server zuteilt, könnten beim zweiten Lauf von CVsup ältere Quellen als beim ersten Lauf heruntergeladen werden. Warum meldet mein System (bus speed defaulted) beim Start? Die Adaptec 1542 SCSI Hostadapter erlauben dem Benutzer die Buszugriffsgeschwindigkeit per Software zu konfigurieren. Ältere Versionen des 1542-Treibers versuchten, die schnellstmögliche Geschwindigkeit herauszufinden und konfigurierten den Adapter entsprechend. Wir haben festgestellt, dass dies auf einigen Systemen nicht funktioniert, weshalb Sie nun die Kernelkonfigurationsoption TUNE_1542 definieren müssen, um es zu aktivieren. Die Benutzung auf Systemen, auf denen es funktioniert, könnte Ihre Platten schneller machen, aber auf den Systemen, auf denen es nicht funktioniert, könnten Ihre Daten beschädigt werden. Kann ich -CURRENT mit begrenztem Internetzugang folgen? Ja, Sie können das tun, ohne den gesamten Quellbaum herunterzuladen, indem Sie die Einrichtung CTM benutzen. Wie haben Sie die Distribution in 240k-Dateien aufgespalten? Bei neueren BSD-basierten Systemen gibt es eine Option zu &man.split.1;, die das Splitten von Dateien an willkürlichen Bytegrenzen erlaubt. Hier ist ein Beispiel aus /usr/src/Makefile. bin-tarball: (cd ${DISTDIR}; \ tar cf - . \ gzip --no-name -9 -c | \ split -b 240640 - \ ${RELEASEDIR}/tarballs/bindist/bin_tgz.) Ich habe eine Kernelerweiterung geschrieben. An wen sende ich sie? Lesen Sie bitte den Artikel FreeBSD unterstützen. Und Danke, dass Sie darüber nachdenken! Wie werden Plug&Play ISA-Karten erkannt und initialisiert? Von: Frank Durda IV uhclem@nemesis.lonestar.org Kurz gesagt gibt es nur wenige I/O-Ports über die PnP-Karten antworten, wenn der Host fragt, ob jemand da ist. Wenn die PnP-Erkennungsroutine startet, fragt sie, ob irgendwelche PnP-Karten vorhanden sind und alle PnP-Karten antworten mit ihrer Modellnummer auf demselben Port, von dem sie auch gelesen haben. Die Erkennungsroutine erhält also ein geodertes Ja auf diese Frage. Mindestens ein Bit wird bei dieser Antwort gesetzt sein. Die Erkennungsroutine ist dann in der Lage, dafür zu sorgen, dass Karten mit Modellnummern (zugeordnet von Microsoft/Intel) kleiner als X off-line gesetzt werden. Sie prüft dann, ob immer noch Karten da sind, die auf die Frage antworten. Falls die Antwort 0 war, sind keine Karten mit IDs größer X vorhanden. Nun prüft die Erkennungsroutine, ob Karten unterhalb X vorhanden sind. Dann setzt die Erkennungsroutine alle Karten größer als X-(limit/4) off-line und wiederholt die Frage. Wenn diese halbbinäre Suche nach IDs in Folge genügend oft wiederholt worden ist, wird die Erkennungsroutine schließlich alle in einem Rechner befindlichen PnP-Karten identifiziert haben und das mit einer Iterationszahl sehr viel kleiner als 2^64. Die IDs bestehen aus zwei 32-Bit-Feldern (daher 2^64) + acht Bit Prüfsumme. Die ersten 32 Bit sind die Herstellerkennung. Es wurde zwar nicht bestätigt, aber es wird angenommen, dass unterschiedliche Kartentypen desselben Herstellers unterschiedliche 32-Bit Herstellerkennungen besitzen können. 32 Bit nur für eindeutige Hersteller zu benötigen, scheint etwas übertrieben. Die niedrigen 32 Bit sind eine Seriennummer, Ethernetadresse - etwas, das die betreffende Karte einzigartig macht. Die Hersteller dürfen niemals eine zweite Karte mit denselben niedrigen 32 Bit herstellen, es sei denn, die höheren 32 Bit sind unterschiedlich. Sie können also mehrere Karten des selben Typs im Rechner haben und die gesamten 64 Bit bleiben stets eindeutig. Die 32-Bit-Gruppen können niemals nur aus Nullen bestehen. Das erlaubt es, bei der binären Suche zu Beginn nur auf von Null verschiedene Bits zu achten. Wenn das System alle vorhandenen Karten-IDs identifiziert hat, reaktiviert es jede Karte - eine nach der anderen (über dieselben I/O-Ports) und ermittelt, welche Ressourcen von der jeweiligen Karte benötigt werden, welche Wahlmöglichkeiten für Interrupts bestehen usw. Alle Karten werden abgefragt, um diese Informationen zusammenzustellen. Diese Informationen werden dann mit Informationen aus allen ECU-Dateien auf der Festplatte oder mit im MLB-BIOS verdrahteten Informationen verknüpft. Die ECU- und BIOS-PnP-Unterstützung für Hardware auf dem MLB ist für gewöhnlich künstlich und was die Peripheriegeräte tun ist nicht wirklich echtes PnP. Durch die Untersuchung der BIOS-Informationen und der ECU-Informationen können die Erkennungsroutinen jedoch die von PnP-Geräten benutzten Ressourcen so ändern, dass vermieden wird, dass bereits von anderen Geräten benutzte Ressourcen verwendet werden. Dann werden die PnP-Geräte nochmals besucht und ihre I/O, DMA, IRQ und Memory-Map-Adressen werden zugeordnet. Die Geräte werden an diesen Stellen sichtbar werden und dort bis zum nächsten Reboot verbleiben. Allerdings hindert Sie auch nichts daran, sie zu verschieben, wohin Sie wollen. Im obigen Teil wurde sehr viel vereinfacht, aber die grundlegende Idee sollte klar geworden sein. Microsoft hat einige der primären Druckerstatusports für PnP übernommen, da keine Karte diese Adressen für die entgegengesetzten I/O-Zyklen decodiert. Ich habe während der frühen Überprüfungsperiode des PnP-Vorschlags eine echte IBM Druckerkarte gefunden, die Schreibzugriffe auf dem Statusport decodiert hat, aber MS hat nur tough gesagt. Also schreiben sie auf den Druckerstatusport, um Adressen zu setzen, benutzen zusätzlich diese Adresse + 0x800 und einen dritten I/O-Port zum Lesen, der irgendwo zwischen 0x200 und 0x3ff liegen kann. Wie bekomme ich eine Major-Number für einen Gerätetreiber, den ich geschrieben habe? &os.current; stellt seit Februar 2003 Major-Numbers für Geräte zur Laufzeit automatisch bereit. Nach Möglichkeit sollte diese neue Funktion benutzt werden, anstatt eine Major-Number statisch festzulegen. Weitere Hinweise finden Sie in src/sys/conf/majors. Wenn Sie eine statisch festgelegte Major-Number benötigen, hängt das weitere Verfahren davon ab, ob Sie den Treiber frei verfügbar machen wollen. Falls dem so ist, senden Sie uns bitte eine Kopie der Treiber-Sourcen und zusätzlich die entsprechenden Änderungen der Datei files.i386, ein Beispiel für einen Eintrag in der Konfigurationsdatei und den entsprechenden Code für &man.MAKEDEV.8;, der die Gerätedateien für Ihr Gerät erzeugt. Falls Sie nicht beabsichtigen, den Treiber frei verfügbar zu machen, oder es aufgrund von Lizenzbeschränkungen nicht können, dann ist die Major-Number 32 für zeichenorientierte und die Major-Number 8 für blockorientierte Geräte speziell für diesen Zweck reserviert. In jedem Fall würden wir uns freuen, auf der Mailingliste &a.hackers; etwas über Ihren neuen Treiber zu hören. Gibt es alternative Layoutverfahren für Verzeichnisse? Als Antwort auf die Frage nach alternativen Layoutverfahren für Verzeichnisse ist das Schema, das derzeit benutzt wird, unverändert von dem, das ich 1983 geschrieben habe. Ich habe das Vorgehen für das originale Fast-Filesystem geschrieben und es niemals überarbeitet. Es funktioniert gut, wenn es darum geht, zu verhindern, dass Zylindergruppen volllaufen. Wie viele von Ihnen angemerkt haben, funktioniert es schlecht für find. Die meisten Dateisysteme werden von Archiven erstellt, die mit einer Tiefensuche (also ftw) erstellt wurden. Diese Verzeichnisse werden über die Zylindergruppen hinweg entfaltet und erzeugen denkbar ungünstigste Voraussetzungen für zukünftige Tiefensuchen. Falls man die Gesamtzahl der zu erstellenden Verzeichnisse wüsste, wäre die Lösung die, (gesamt / fs_ncg) pro Zylindergruppe zu erstellen, bevor fortgefahren wird. Offensichtlich müsste man eine Heuristik erstellen, um die Zahl zu schätzen. Sogar die Benutzung einer kleinen, fixen Zahl, z.B. 10, würde eine Verbesserung um Größenordnungen ausmachen. Um Wiederherstellungen von normalem Betrieb (wo der derzeitige Algorithmus vermutlich sinnvoller ist) zu unterscheiden, könnten Sie die Clusterung von bis zu 10 benutzen, wenn sie alle innerhalb eines 10-Sekunden-Fensters durchgeführt würden. Jedenfalls ist mein Schluss, dass dies ein fruchtbares Gebiet für Experimente ist. Kirk McKusick, September 1998 Wie kann ich optimalen Nutzen aus einer kernel panic ziehen? [Dieser Abschnitt wurde von &a.des;, der einige Tippfehler korrigiert und die Kommentare in eckigen Klammern hinzugefügt hat, aus einer Mail von &a.wpaul; in der Mailingliste freebsd-current entnommen.] From: Bill Paul <wpaul@skynet.ctr.columbia.edu> Subject: Re: the fs fun never stops To: Ben Rosengart Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT) Cc: current@FreeBSD.org [<Ben Rosengart> sendete die folgende Panik-Meldung] > Fatal trap 12: page fault while in kernel mode > fault virtual address = 0x40 > fault code = supervisor read, page not present > instruction pointer = 0x8:0xf014a7e5 ^^^^^^^^^^ > stack pointer = 0x10:0xf4ed6f24 > frame pointer = 0x10:0xf4ed6f28 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, def32 1, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 80 (mount) > interrupt mask = > trap number = 12 > panic: page fault [Wenn] Sie eine Meldung wie diese sehen, reicht es nicht, sie einfach zu reproduzieren und sie einzusenden. Der Wert des Instruktionszeigers, den ich oben hervorgehoben habe, ist wichtig; leider ist er auch konfigurationsabhängig. Mit anderen Worten variieren die Werte abhängig von dem Kernel-Image, das Sie tatsächlich benutzen. Wenn Sie ein GENERIC Kernelimage von einem der Snapshots benutzen, dann ist es für jemand anderen möglich, die fehlerhafte Instruktion herauszufinden, aber wenn Sie einen angepassten Kernel benutzen, können nur Sie uns sagen, wo der Fehler auftrat. Was Sie tun sollten, ist folgendes: Notieren Sie sich den Wert des Instruktionszeigers. Beachten Sie, dass der Teil 0x8: am Anfang in diesem Fall nicht von Bedeutung ist; der Teil 0xf0xxxxxx ist der, den wir wollen. Tun Sie folgendes, wenn das System rebootet: &prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxxx wobei 0xf0xxxxxx der Wert des Instruktionszeigers ist. Es besteht die Möglichkeit, dass Sie keinen exakten Treffer erzielen, weil die Symbole in der Symboltabelle des Kernels Funktionseinstiegspunkte sind und die Adresse des Instruktionszeiger irgendwo innerhalb einer Funktion liegen wird und nicht am Anfang. Falls sie keinen exakten Treffer erzielen, lassen Sie den letzten Teil des Werts des Instruktionszeigers weg und versuchen es nocheinmal, z.B.: &prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxx Falls das kein Ergebnis liefert, hacken Sie eine weitere Ziffer ab. Wiederholen Sie die Schritte, bis Sie irgendeine Ausgabe erhalten. Das Ergebnis wird eine Liste möglicher Funktionen sein, die die Panik verursacht haben. Das ist zwar kein absolut genauer Mechanismus, um die Fehlerursache ausfindig zu machen, aber es ist besser als gar nichts. Ich sehe ständig Leute, die Panik-Meldungen wie diese zeigen, aber ich sehe kaum jemanden, der sich die Zeit nimmt, den Instruktionszeiger einer Funktion aus der Symboltabelle des Kernel zuzuordnen. Der beste Weg, den Grund für eine Panik herauszufinden, ist der, einen Crash-Dump festzuhalten und dann &man.gdb.1; zu benutzen, um den Stack im Crash-Dump zurückzuverfolgen. Jedenfalls ist die Methode, die ich normalerweise benutze, folgende: Richten Sie eine Kernelkonfigurationsdatei ein, fügen Sie optional options DDB hinzu, falls Sie glauben, dass Sie den Kerneldebugger benötigen. (Ich benutze ihn hauptsächlich zum Setzen von Haltepunkten, wenn ich eine Endlosschleife irgendeiner Art vermute.) Benutzen Sie config -g KERNELCONFIG, um das Erstellungsverzeichnis einzurichten. cd /sys/compile/KERNELCONFIG; make Warten Sie, bis der Kernel fertig kompiliert ist. make install reboot Der &man.make.1;-Prozess wird zwei Kernel erstellt haben: kernel und kernel.debug. kernel wurde als /kernel installiert, während kernel.debug als Quelle für Debuggersymbole für &man.gdb.1; benutzt werden kann. Um sicherzustellen, dass ein Crash-Dump erhalten bleibt, müssen Sie /etc/rc.config editieren und dumpdev so setzen, dass es auf Ihre Swap-Partition zeigt. Das bewirkt, dass die &man.rc.8;-Skripte den Befehl &man.dumpon.8; benutzen, um Crash-Dumps zu ermöglichen. Sie können &man.dumpon.8; auch manuell ausführen. Nach einer Panik kann der Crash-Dump mit &man.savecore.8; wiederhergestellt werden; wenn dumpdev in /etc/rc.conf gesetzt ist, werden die &man.rc.8;-Skripte &man.savecore.8; automatisch ausführen und den Crash-Dump unter /var/crash ablegen. Crash-Dumps von FreeBSD sind für gewöhnlich genauso groß wie der physikalische Hauptspeicher Ihres Rechners. Das heißt, wenn Sie 64MB RAM haben, werden sie einen 64MB Crash-Dump erhalten. Deshalb müssen Sie dafür sorgen, dass genügend Speicherplatz in /var/crash zur Verfügung steht, um den Dump aufnehmen zu können. Alternativ führen Sie &man.savecore.8; manuell aus und lassen es den Crash-Dump in einem anderen Verzeichnis wiederherstellen, in dem Sie mehr Platz haben. Es ist möglich, die Größe des Crash-Dumps zu begrenzen, indem options MAXMEM=(foo) benutzt wird, um den Speicher, den der Kernel benutzt, auf einen etwas vernünftigeren Wert zu setzen. Wenn Sie z.B. 128MB RAM haben, können Sie die Speicherbenutzung des Kernels auf 16MB begrenzen, so dass die Größe Ihres Crash-Dumps 16MB anstatt 128MB beträgen wird. Wenn Sie den Crash-Dump wiederhergestellt haben, können Sie den Stack mit &man.gdb.1; so zurückverfolgen: &prompt.user; gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0 (gdb) where Beachten Sie, dass es mehrere Seiten mit wertvollen Informationen geben könnte; idealerweise sollten Sie &man.script.1; benutzen, um sie alle festzuhalten. Wenn Sie das vollständige Kernelimage mit allen Debugginginformationen benutzen, müssten Sie exakt die Zeile des Kernel-Sourcecodes finden, wo die Panik aufgetreten ist. Für gewöhnlich müssen Sie den Stack von unten an zurückverfolgen, um die genaue Ereignisabfolge, die zum Crash führte, zurückzuverfolgen. Sie können &man.gdb.1; auch zum Ausdrucken der Inhalte verschiedener Variablen oder Strukturen benutzen, um den Systemstatus zum Zeitpunkt des Absturzes zu untersuchen. Wenn Sie nun wirklich verrückt sind und einen zweiten Computer haben, können Sie &man.gdb.1; auch für entferntes Debugging konfigurieren, so dass Sie &man.gdb.1; auf einem System benutzen können, um den Kernel auf einem anderen System zu debuggen, einschließlich dem Setzen von Haltepunkten und dem Bewegen in Einzelschritten durch den Kernelcode, genauso, wie Sie es mit einem normalen Benutzerprogramm tun können. Ich habe noch nicht damit gespielt weil ich nicht oft Gelegenheit habe, zwei Rechner nebeneinander für Debuggingzwecke einzurichten. [Bill hat hinzugefügt: "Ich vergaß, etwas zu erwähnen: wenn Sie DDB aktiviert haben und der Kernel im Debugger landet, können Sie eine Panik (und einen Crash-Dump) erzwingen, indem Sie einfach 'panic' am ddb-Prompt eingeben. Er könnte während der Panikphase wieder im Debugger stoppen. Falls er das tut, geben Sie 'continue' ein, dann wird er den Crash-Dump beenden." -ed] Wieso funktioniert dlsym() nicht mehr für ELF-Executables? Die ELF-Werkzeuge machen die in einem Executable definierten Symbole dem dynamischen Linker nicht standardmäßig sichtbar. Konsequenterweise werden dlsym()-Suchen nach Handlern aus Aufrufen von dlopen(NULL, flags) diese Symbole nicht finden können. Wenn Sie mit dlsym() nach im Hauptexecutable eines Prozesses vorhandenen Symbolen suchen wollen, müssen Sie das Executable mit der Option von &man.ld.1; linken. Wie kann ich den Adressraum des Kernels vergrössern oder verkleinern? Standardmäßig beträgt der Adressraum des Kernels 256MB (FreeBSD 3.X) bzw. 1 GB (FreeBSD 4.X). Wenn Sie einen netzwerkintensiven Server (z.B. einen großen FTP- oder HTTP-Server) betreiben, kann es sein, dass Sie der Meinung sind, dass 256MB nicht ausreichen. Wie also erhöhen Sie den Adressraum? Hier gibt es zwei Aspekte. Erstens müssen Sie dem Kernel sagen, dass er einen größeren Anteil des Adressraums für sich selbst reservieren soll. Da der Kernel am oberen Ende des Adressraums geladen wird, müssen Sie zweitens die Ladeadresse verringern, damit er mit dem Kopf nicht gegen die Obergrenze stößt. Das erste Ziel erreicht man, indem man den Wert von NKPDE in src/sys/i386/include/pmap.h erhöht. Für einen Adressraum von 1 GB sieht das so aus: #ifndef NKPDE #ifdef SMP #define NKPDE 254 /* addressable number of page tables/pde's */ #else #define NKPDE 255 /* addressable number of page tables/pde's */ #endif /* SMP */ #endif Dividieren Sie die gewünschte Adressraumgröße (in Megabyte) durch vier und subtrahieren Sie dann eins für UP und zwei für SMP, um den korrekten Wert für NKPDE zu finden. Um das zweite Ziel zu erreichen müssen Sie die korrekte Ladeadresse berechnen: subtrahieren Sie einfach die Größe des Adressraums (in Byte) von 0x100100000; für einen Adressraum von 1 GB lautet das Ergebnis 0xc0100000. Setzen Sie LOAD_ADDRESS in src/sys/i386/conf/Makefile.i386 auf diesen Wert; setzen Sie dann den Location-Counter am Anfang der Abschnittsliste in src/sys/i386/conf/kernel.script auf denselben Wert: OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(btext) SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0xc0100000 + SIZEOF_HEADERS; .interp : { *(.interp) } Konfigurieren und erstellen Sie Ihren Kernel dann neu. Sie werden vermutlich Probleme mit &man.ps.1;, &man.top.1; und ähnlichen Programmen haben. Ein make world sollte diese beheben; alternativ können Sie die gepatchte pmap.h in das Verzeichnis /usr/include/vm kopieren und danach libkvm, &man.ps.1; und &man.top.1; neu erzeugen. Hinweis: die Größe des Kernel-Adressraums muss ein Vielfaches von vier Megabyte betragen. [&a.dg; fügt hinzu: Ich glaube, der Kerneladressraum muss eine Zweierpotenz sein, aber ich bin mir dessen nicht sicher. Der alte (ältere) Bootcode pflegte die oberen Adressbits zu mißbrauchen und ich glaube, er erwartete mindestens 256MB Granularität.] Danksagung Dieses 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 Foster Oliver Fromme Frank Gruender Chris Hill James Howard &a.jkh; &a.alex; &a.jmas; Mike Meyer Dan O'Connor Eric Ogren &a.de.pierau; Oliver Schneider Christoph Sold Und an alle anderen, an die wir nicht gedacht haben. Entschuldigung und herzlichen Dank! &bibliography;
diff --git a/de_DE.ISO8859-1/books/handbook/install/chapter.sgml b/de_DE.ISO8859-1/books/handbook/install/chapter.sgml index 963939f238..54d0f6787e 100644 --- a/de_DE.ISO8859-1/books/handbook/install/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/install/chapter.sgml @@ -1,5855 +1,5855 @@ Jim Mock Überarbeitet und teilweise neu geschrieben von Randy Pratt Der Gang durch sysinstall und alle Bildschirmabzüge von Martin Heinen Übersetzt von &os; installieren Übersicht Installation &os; wird mit dem textorientierten Programm sysinstall installiert. Distributoren können ein anderes Installationsprogramm verwenden, voreingestellt ist jedoch sysinstall. Dieses Kapitel zeigt Ihnen, wie Sie mithilfe von sysinstall &os; installieren. Dieses Kapitel behandelt folgende Punkte: Das Erzeugen von &os;-Startdisketten. Wie &os; Platten anspricht und aufteilt. Wie sysinstall ausgeführt wird. Die Menüs von sysinstall und die erforderlichen Eingaben in den Menüs. Bevor Sie dieses Kapitel lesen, sollten Sie Die Hardware-Notes der &os;-Release, die Sie installieren wollen, lesen und sicherstellen, dass Ihre Hardware unterstützt wird. Diese Installationsanleitung gilt für Rechner mit &i386;-Architektur (PC-kompatible Rechner). Abweichende Anweisungen für andere Plattformen (beispielsweise Alpha) werden wo notwendig gegeben. Obwohl diese Anleitung so aktuell wie möglich ist, kann das Installationsverfahren von dem hier gezeigten geringfügig abweichen. Legen Sie bitte daher diese Anleitung nicht wortwörtlich aus, sondern lassen Sie sich von diesem Kapitel durch den Installationsprozess leiten. Hardware-Anforderungen Minimalkonfiguration Die zur Installation von &os; erforderliche Minimalkonfiguration hängt von der zu installierenden &os;-Version sowie von der Hardware-Architektur ab. Informationen zur jeweiligen Minimalkonfiguration finden Sie in Installation Notes auf der Unterseite Release Information der &os;-Internetseiten. Die folgenden Abschnitte fassen diese Informationen zusammen. Je nachdem, wie Sie &os; installieren, benötigen Sie eventuell auch ein Diskettenlaufwerk, ein unterstütztes CD-ROM-Laufwerk, oder auch eine Netzwerkkarte. des Handbuchs enthält weitere Informationen zu den verschiedenen Installationsarten. Die i386- und pc98-Architektur Sowohl &os;/i386 als auch &os;/pc98 benötigen jeweils mindestens einen 486-Prozessor sowie mindestens 24 MB RAM. Außerdem benötigen Sie für eine Minimalinstallation mindestens 150 MB freien Platz auf Ihrer Festplatte. In den meisten derartigen Konfigurationen ist es besser, für mehr RAM und mehr Plattenplatz zu sorgen, statt einen schnelleren Prozessor einzubauen. Die Alpha-Architektur Um &os;/alpha zu installieren, benötigen Sie eine unterstützte Plattorm (lesen Sie dazu auch des Handbuchs) sowie eine seperate Festplatte für die &os;-Installation. Es ist nicht derzeit möglich, die Platte mit einem weiteren Betriebssystem zu teilen. Diese seperate Platte muss an einen SCSI-Controller angeschlossen sein, der von der SRM-Firmware unterstützt wird. Alternativ können Sie auch eine IDE-Platte verwenden, wenn Ihr SRM das Starten von IDE-Platten unterstützt. Für die &os;-Installation benötigen Sie die SRM-Konsolen-Firmware für Ihre Plattform. Manchmal ist es möglich, zwischen der AlphaBIOS-Firmware (auch ARC genannt) und SRM zu wechseln. Ist dies bei Ihnen nicht möglich, müssen Sie sich die neue Firmware von der Internetseite Ihres Herstellers herunterladen. Die amd64-Architektur &os;/amd64 benötigt für den Betrieb mindestens einen AMD Athlon 64-, AMD Athlon 64-FX-, oder einen AMD Opteron-Prozessor. Wenn Sie einen auf dem Chipsatz nVidia nForce3 Pro-150 basierenden Rechner haben, müssen Sie im BIOS das IO-APIC deaktivieren. Erlaubt ihr BIOS dies nicht, müssen Sie stattdessen ACPI deaktivieren. Der Grund dafür sind Fehler im Pro-150-Chipsatz, die bis jetzt nicht behoben werden konnten. Die &sparc64;-Architektur Um &os;/&sparc64; zu installieren, benötigen Sie eine unterstützte Plattform (lesen Sie dazu auch des Handbuchs). Sie benötigen außerdem eine seperate Festplatte, wenn Sie &os;/&sparc64; installieren wollen, da es derzeit leider noch nicht möglich ist, die Platte mit einem weiteren Betriebssystem zu teilen. Unterstützte Hardware Die Hardware-Notes, die mit jedem &os;-Release ausgeliefert werden, enthalten eine Liste lauffähiger Hardware. Die Hardware-Notes befinden sich üblicherweise in der Datei HARDWARE.TXT im Wurzelverzeichnis der Distribution (CD-ROM oder FTP). Sie können die Hardware-Notes außerdem im Dokumentationsmenü von sysinstall oder auf der Webseite Release Information lesen. Vor der Installation Erstellen Sie eine Geräteliste Bevor Sie &os; installieren, erfassen Sie die Komponenten Ihres Rechners. Die &os;-Installation wird die Komponenten (Festplatten, Netzwerkkarten, CD-ROM-Laufwerke) zusammen mit der Modellbezeichnung und des Herstellers anzeigen. &os; wird auch versuchen, die richtige Konfiguration der Geräte zu ermitteln. Dazu gehören die benutzten Interrupts (IRQ) und IO-Ports. Wegen der Unwägbarkeiten von PC-Hardware kann die Konfiguration der Geräte allerdings fehlschlagen. In diesem Fall müssen Sie die von &os; ermittelte Konfiguration korrigieren. Wenn Sie schon ein anderes Betriebssystem, wie &windows; oder Linux installiert haben, können Sie die Hardware-Konfiguration mit den Mitteln dieses Betriebssystems bestimmen. Wenn Sie nicht sicher sind, welche Einstellungen eine Erweiterungskarte besitzt, sehen Sie auf der Karte selbst nach. Manchmal sind die Einstellungen dort aufgedruckt. Gebräuchliche IRQs sind 3, 5 und 7. Die Adressen von IO-Ports werden normalerweise hexadezimal, zum Beispiel 0x330, angegeben. Halten Sie die Gerätekonfiguration vor der Installation in einer Tabelle wie der nachstehenden fest: Gerätekonfiguration Gerät IRQ IO-Ports Anmerkung erste Festplatte - - 40 GB, Seagate, erster IDE-Master CD-ROM - - erster IDE-Slave zweite Festplatte - - 20 GB, IBM, zweiter IDE-Master erster IDE-Controller 14 0x1f0 Netzwerkkarte - - &intel; 10/100 Modem - - &tm.3com; 56K Faxmodem, an COM1
Nachdem Sie wissen, über welche Hardware Ihr Rechner verfügt, müssen Sie diese Informationen mit den Hardwareanforderungen der zu installierenden &os;-Version abgleichen.
Sichern Sie Ihre Daten Wenn der Rechner, auf dem Sie &os; installieren wollen, wichtige Daten enthält, sichern Sie bitte diese Daten. Prüfen Sie auch, dass Sie die Daten aus der Sicherung wiederherstellen können, bevor Sie &os; installieren. Die &os;-Installation fragt zwar nach, bevor Sie Daten auf Ihre Festplatte schreibt, Ihre Daten sind allerdings unwiderruflich verloren, wenn der Installationsvorgang einmal angelaufen ist. Den Installationsort von &os; festlegen Wenn Sie die gesamte Festplatte für &os; verwenden wollen, müssen Sie sich an dieser Stelle keine weiteren Gedanken machen – lesen Sie bitte im nächsten Abschnitt weiter. Wenn Sie allerdings &os; neben anderen Betriebssystemen betreiben wollen, müssen Sie wissen, wie Daten auf einer Festplatte abgelegt werden und welche Auswirkungen dies hat. Platteneinteilung von &i386;-Systemen Eine PC-Festplatte wird in einzelne Bereiche unterteilt, die Partitionen heißen. Auf einer PC-Festplatte können maximal vier Partitionen, die primäre Partitionen genannt werden, angelegt werden. Eine erweiterte Partition hebt diese Beschränkung auf. Eine Festplatte kann nur eine erweiterte Partition enthalten, die wiederum weitere so genannte logische Partitionen enthalten kann. Jede Partition besitzt eine Partitions-ID – eine Zahl, die den Typ der Partition festlegt. &os;-Partitionen tragen die Partitions-ID 165. Üblicherweise kennzeichnen Betriebssysteme Partitionen in einer besonderen Art und Weise. Beispielsweise werden jeder primären und logischen Partition unter DOS und dem verwandten &windows; Laufwerksbuchstaben beginnend mit C: zugewiesen. &os; muss auf einer primären Partition installiert werden. In dieser Partition hält &os; alle Daten einschließlich der Dateien, die Sie anlegen. Verfügt das System über mehrere Festplatten, können Sie auf allen oder einigen Platten eine &os;-Partition einrichten. Zur Installation von &os; benötigen Sie eine freie Partition: Dies kann eine extra für die Installation eingerichtete Partition sein oder eine existierende Partition, die nicht mehr benötigte Daten enthält. Wenn auf allen Platten bereits sämtliche Partitionen benutzt werden, müssen Sie eine der Partitionen für &os; frei machen. Benutzen Sie dazu die Werkzeuge des eingesetzten Betriebssystems (fdisk unter DOS oder &windows;). Verfügt das System über eine freie Partition, benutzen Sie diese Partition. Es kann allerdings sein, dass Sie eine oder mehrere der vorhandenen Partitionen vorher verkleinern müssen. Eine minimale &os;-Installation benötigt nur 100 MB Plattenplatz. Diese Installation ist allerdings sehr begrenzt und lässt wenig Platz für Ihre eigenen Dateien. Realistischer sind 250 MB für &os; ohne graphische Benutzeroberfläche und 350 MB für &os; mit einer graphischen Benutzeroberfläche. Sie benötigen weiteren Platz für die Installation zusätzlicher Software. Um die Partitionen zu verkleinern, können Sie beispielsweise das kommerzielle &partitionmagic; oder das freie GParted benutzen. Alternativ enthält das Verzeichnis tools der CD-ROM für diesen Zweck bereits die freien Werkzeuge FIPS und PResizer. Die Dokumentation zu beiden Werkzeugen befindet sich ebenfalls in diesem Verzeichnis. FIPS und PResizer können nur die Größen von FAT16- und FAT32-Partitionen verändern, während GParted und &partitionmagic; auch NTFS-Partitionen verändern können. Der falsche Gebrauch dieser Werkzeuge kann Daten auf der Festplatte löschen. Vor dem Einsatz dieser Werkzeuge stellen Sie bitte sicher, dass Sie frische, funktionierende Datensicherungen besitzen. Eine bestehende Partition verwenden Nehmen wir an, Sie haben einen Rechner mit einer 4 GB Festplatte auf der schon eine Version von &windows; installiert ist. Weiterhin haben Sie die Platte in zwei Laufwerke C: und D: unterteilt, die jeweils 2 GB groß sind. Auf C: wird 1 GB benutzt und 0,5 GB von Laufwerk D: werden benutzt. Sie haben also eine Festplatte mit zwei Partitionen und könnten alle Daten von Laufwerk D: auf das Laufwerk C: kopieren. Damit wäre die zweite Partition für &os; frei. Eine bestehende Partition verkleinern Nehmen wir an, Sie haben einen Rechner mit einer 4 GB Festplatte auf der schon eine Version von &windows; installiert ist. Während der Installation von &windows; haben sie eine große Partition C: angelegt, die 4 GB groß ist. Von den 4 GB werden 1,5 GB benutzt und Sie wollen 2 GB für &os; verwenden. Sie haben zwei Möglichkeiten, &os; zu installieren: Sichern Sie die Daten der &windows;-Partition und installieren Sie &windows; erneut auf einer 2 GB großen Partition. Verkleinern Sie die &windows;-Partition mit einem der oben aufgeführten Werkzeuge. Platteneinteilung von Alpha-Systemen Alpha Auf einer Alpha müssen Sie &os; auf einer eigenen Festplatte installieren. Zurzeit können Sie diese Festplatte nicht mit einem anderen Betriebssystem zusammen benutzen. Abhängig von der Alpha-Maschine, die Sie besitzen, können Sie eine SCSI- oder eine IDE-Festplatte verwenden; Voraussetzung ist, dass Sie das System von der gewählten Platte starten können. Entsprechend den Konventionen der Handbücher von Digital/Compaq werden Eingaben im SRM in Großbuchstaben dargestellt. Der SRM beachtet Groß- und Kleinschreibung nicht. Das SRM-Kommando SHOW DEVICE zeigt die Art und die Namen der Laufwerke des Systems an. Geben Sie das Kommando an der SRM-Eingabeaufforderung ein: >>>SHOW DEVICE dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476 dkc0.0.0.1009.0 DKC0 RZ1BB-BS 0658 dkc100.1.0.1009.0 DKC100 SEAGATE ST34501W 0015 dva0.0.0.0.1 DVA0 ewa0.0.0.3.0 EWA0 00-00-F8-75-6D-01 pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27 pqa0.0.0.4.0 PQA0 PCI EIDE pqb0.0.1.4.0 PQB0 PCI EIDE Die Ausgabe stammt von einer Digital Personal Workstation 433au und zeigt drei an das System angeschlossene Laufwerke. Das erste Laufwerk ist ein CD-ROM mit dem Namen DKA0, die anderen beiden sind Festplatten mit den Namen DKC0 und DKC100. Laufwerke mit Namen wie DKx sind SCSI-Laufwerke. Der Name DKA100 zeigt ein SCSI-Laufwerk mit der SCSI-ID 1 auf dem ersten SCSI-Bus (A) an. DKC300 zeigt ein SCSI-Laufwerk mit der SCSI-ID 3 auf dem dritten SCSI-Bus (C) an. SCSI Host-Bus-Adapter werden mit dem Namen PKx bezeichnet. Wie in der Ausgabe von SHOW DEVICE gezeigt, werden SCSI-CD-ROM-Laufwerke wie andere SCSI-Festplatten behandelt. IDE-Laufwerke werden mit DQx bezeichnet, der dazugehörige IDE-Controller heißt PQx. Netzwerkparameter ermitteln Wird während der Installation ein Netzwerk benötigt (weil Sie über FTP oder von einem NFS-Server installieren wollen), müssen Sie die Konfiguration des Netzwerks kennen. Während der Installation werden Netzwerkparameter abgefragt, damit sich &os; mit dem Netzwerk verbinden und die Installation abschließen kann. Verbindung über Ethernet oder ein Kabel/DSL-Modem Wenn Sie sich mit einem Ethernet verbinden oder eine Internet-Verbindung mit einem Ethernet-Adapter über Kabel oder DSL herstellen, benötigen Sie die nachstehenden Daten: IP-Adresse IP-Adresse des Default-Gateways Hostname IP-Adressen der DNS-Server Subnetzmaske Wenn Sie die Daten nicht besitzen, fragen Sie bitte Ihren Systemadministrator oder Ihren Service-Provider. Können die Daten über DHCP bezogen werden, merken Sie sich diese Tatsache. Verbindung über ein Modem Auch wenn Sie sich mit einem normalen Modem bei einem ISP einwählen, können Sie &os; aus dem Internet installieren. Die Installation über ein Modem dauert nur sehr lange. Sie benötigen die nachstehenden Daten: Die Telefonnummer des ISPs. Die COM-Schnittstelle, an der das Modem angeschlossen ist. Den Benutzernamen und das Passwort für Ihr Konto. Lesen Sie die &os;-Errata Auch wenn das &os;-Project bemüht ist, ein Release so stabil wie möglich herzustellen, treten ab und an Fehler auf. In seltenen Fällen betrifft ein Fehler die Installations-Prozedur. Die Fehler und deren Behebungen werden in den &os;-Errata festgehalten. Lesen Sie bitte die Errata bevor Sie &os; installieren, damit Sie nicht in frisch entdeckte Probleme laufen. Dokumentation zu jedem Release, inklusive der Errata zu jedem Release, finden Sie im Release-Abschnitt des FreeBSD Webauftritts.. Die Installationsdateien beschaffen &os; kann von Dateien aus irgendeiner der nachstehenden Quellen installiert werden: Lokale Medien von einer CD-ROM oder einer DVD von einer DOS-Partition auf demselben Rechner von einem SCSI- oder QIC-Bandlaufwerk von Disketten Netzwerk von einem FTP-Server, wenn erforderlich auch durch eine Firewall oder durch einen HTTP-Proxy von einem NFS-Server über eine feste serielle oder eine feste parallele Verbindung Wenn Sie eine &os;-CD oder &os;-DVD gekauft haben, besitzen Sie schon alles, was Sie zur Installation benötigen. Lesen Sie bitte im nächsten Abschnitt () weiter. Wenn Sie sich die &os;-Installationsdateien noch nicht besorgt haben, lesen Sie bitte zuerst den . Dort werden die notwendigen Vorbereitungen für eine Installation von den eben genannten Medien beschrieben. Wenn Sie den Abschnitt durchgearbeitet haben, lesen Sie bitte in weiter. Das Startmedium vorbereiten Um &os; zu installieren, müssen Sie Ihren Rechner mit einem speziellen Startmedium hochfahren, das die Installationsroutine startet. Sie können das Installationsprogramm nicht unter einem anderen Betriebssystem ausführen. Ein Rechner startet normalerweise das auf der Festplatte installierte Betriebssystem, er kann aber auch von Disketten gestartet werden. Heutige Rechner können ebenfalls mit einer CD-ROM gestartet werden. Wenn Sie eine &os; CD-ROM oder DVD besitzen (gekauft oder selbst erstellt) und Ihr Rechner von CD-ROM oder DVD starten kann (üblicherweise können Sie das mit der BIOS-Option einstellen), können Sie diesen Abschnitt überspringen. Eine &os; CD-ROM oder DVD lässt sich direkt starten; Sie können damit &os; ohne weitere Vorbereitungen installieren. Um Startdisketten zu erzeugen, benutzen Sie die nachstehende Anleitung: Abbilder der Startdisketten besorgen Die Abbilder Startdisketten befinden sich auf dem Installationsmedium im Verzeichnis floppies/; sie können auch aus dem Internet heruntergeladen werden: ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<arch>/<version>-RELEASE/floppies/. Ersetzen Sie <arch> und <version> durch die passende Architektur und die passende Version. Beispielsweise stehen die Startdisketten von &os; &rel.current;-RELEASE für &i386; unter . Die Abbilder besitzen die Dateinamenerweiterung .flp. Im Verzeichnis floppies/ befinden sich verschiedene Abbilder; welches Sie benutzen, hängt von der zu installierenden &os;-Version und in einigen Fällen vom Zielrechner ab. In den meisten Fällen werden Sie drei Disketten benötigen: boot.flp, kern1.flp, sowie kern2.flp. Lesen Sie bitte die Datei README.TXT im Verzeichnis floppies/, sie enthält aktuelle Informationen über die Abbilder. Für 5.X-Systeme vor &os; 5.3 sind eventuell zusätzliche Treiber erforderlich. Diese Treiber sind im Abbild drivers.flp enthalten. Wenn Sie die Abbilder aus dem Internet herunterladen, benutzen Sie bitte den Binärmodus des FTP-Programms. Einige Web-Browser verwenden den Textmodus (oder ASCII-Modus), was dazu führt, dass sich die erstellten Disketten nicht starten lassen. Die Disketten vorbereiten Pro Abbild benötigen Sie eine Diskette. Es ist wichtig, dass die verwendeten Disketten fehlerfrei sind. Sie können dies sicherstellen, indem Sie die Disketten selbst formatieren, verlassen Sie sich bitte nicht auf vorformatierte Disketten. Das Formatierprogramm von &windows; zeigt fehlerhafte Blöcke nicht an, es markiert die Blöcke einfach als fehlerhaft und ignoriert sie dann. Benutzen Sie neue Disketten, wenn Sie diese Installationsart verwenden. Wenn Sie &os; installieren und das Installationsprogramm abstürzt, einfriert oder sich merkwürdig verhält, sind oft fehlerbehaftete Disketten die Ursache. Schreiben Sie die Abbilder auf neue Disketten und versuchen Sie, noch mal zu installieren. Die Abbilder auf Disketten schreiben Die .flp-Dateien sind keine normalen Dateien, die Sie auf eine Diskette kopieren. Sie können die Abbilder nicht von einem Laufwerk auf ein anderes Laufwerk kopieren. Die Abbilder werden mit einem speziellen Werkzeug direkt auf die Diskette geschrieben. DOS Wenn Sie die Startdisketten unter &ms-dos; oder &windows; erstellen, können Sie das mitgelieferte Werkzeug fdimage verwenden. Wenn Sie die Abbilder auf der CD-ROM verwenden und das CD-ROM-Laufwerk den Laufwerksbuchstaben E: besitzt, führen Sie den nachstehenden Befehl aus: E:\> tools\fdimage floppies\kern.flp A: Führen Sie das Kommando für jede .flp-Datei aus. Wechseln Sie bitte jedes Mal die Diskette und beschriften Sie die Diskette mit dem Namen der kopierten Datei. Falls Sie die Abbilder an anderer Stelle liegen haben, passen Sie bitte die Kommandozeile an. Wenn Sie keine CD-ROM besitzen, können Sie fdimage aus dem Verzeichnis tools des &os;-FTP-Servers herunterladen. Wenn Sie Startdisketten auf einem &unix; System (zum Beispiel einem anderen &os; System) erstellen, schreiben Sie die Abbilder mit dem Befehl &man.dd.1; direkt auf die Disketten. Auf einem &os;-System lautet die Kommandozeile: &prompt.root; dd if=kern.flp of=/dev/fd0 Unter &os; spricht /dev/fd0 das erste Diskettenlaufwerk an (das Laufwerk A:), /dev/fd1 spricht das Laufwerk B: an. Andere &unix; Varianten verwenden unter Umständen andere Gerätenamen, die in der Dokumentation des jeweiligen Systems beschrieben sind. Nun ist alles für die &os;-Installation vorbereitet.
Die Installation starten Die Installationsprozedur lässt die Daten auf Ihren Laufwerken solange unverändert bis die nachstehende Meldung erscheint: Last Chance: Are you SURE you want continue the installation? If you're running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! Vor dieser Meldung kann die Installationsprozedur jederzeit abgebrochen werden, ohne die Daten auf der Festplatte zu verändern. Wenn Sie meinen, etwas falsch konfiguriert zu haben, können Sie vor diesem Zeitpunkt einfach den Rechner ausschalten. Der Systemstart Systemstart von &i386;-Systemen Schalten Sie zunächst Ihren Rechner aus. Schalten Sie den Rechner ein. Während des Starts sollte angezeigt werden, wie Sie das Systemeinstellungsmenü (oder BIOS) erreichen. Meist drücken Sie dazu die Tasten F2, F10, Del oder Alt S . Benutzen Sie die angezeigte Tastenkombination. Viele Rechner zeigen beim Systemstart eine Grafik an. Typischerweise können Sie die Grafik mit der Taste Esc entfernen und so die angezeigten Meldungen lesen. Suchen Sie Option, die einstellt von welchem Gerät der Rechner startet. Normalerweise wird die Option genannt und zeigt eine Geräteliste, beispielsweise Floppy, CD-ROM, First Hard Disk an. Wenn Sie Startdisketten erstellt haben, wählen Sie Floppy aus, wenn Sie von CD-ROM starten, stellen Sie sicher, dass die CD-ROM ausgewählt ist. Wenn Sie nicht sicher sind, lesen Sie bitte im Handbuch des Rechners oder im Handbuch der Systemplatine nach. Stellen Sie das gewünschte Startmedium ein und sichern Sie die Einstellungen. Der Rechner sollte dann neu starten. Wenn Sie, wie in beschrieben, Startdisketten vorbereitet haben, benötigen Sie nun die erste Diskette, die kern.flp enthält. Legen Sie diese Diskette in das Diskettenlaufwerk ein. Wenn Sie den Rechner von einer CD-ROM starten, legen Sie die CD-ROM so früh wie möglich in das Laufwerk ein. Wenn Ihr Rechner wie normal startet und das existierende Betriebssystem lädt, kann das folgende Ursachen haben: Das Startmedium (Diskette, CD-ROM) ist nicht schnell genug eingelegt worden. Belassen Sie das Startmedium im Laufwerk und starten Sie Ihren Rechner neu. Die BIOS-Einstellungen sind falsch vorgenommen worden. Wiederholen Sie diesen Schritt, bis Sie die richtige Einstellung gefunden haben. Das verwendete BIOS kann nicht von dem gewünschten Medium starten. &os; startet jetzt. Wenn Sie von einer CD-ROM starten, sehen Sie die folgenden Meldungen (Versionsangaben entfernt): Verifying DMI Pool Data ........ Boot from ATAPI CD-ROM : 1. FD 2.88MB System Type-(00) Uncompressing ... done BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive B: is disk1 BIOS drive C: is disk2 BIOS drive D: is disk3 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 /kernel text=0x277391 data=0x3268c+0x332a8 | | Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _ Wenn Sie mit Startdisketten hochfahren, sehen Sie folgende Meldungen (Versionsangaben entfernt): Verifying DMI Pool Data ........ BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive C: is disk1 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 /kernel text=0x277391 data=0x3268c+0x332a8 | Please insert MFS root floppy and press enter: Folgen Sie der Anweisung und entfernen Sie die kern.flp-Diskette, anschließend legen Sie die mfsroot.flp-Diskette ein und drücken Enter. Wie oben beschrieben, gibt es unter &os; 5.3 andere Disketten. Starten Sie das System mit der ersten Diskette und legen Sie, wenn Sie dazu aufgefordert werden, die anderen Disketten ein. Unabhängig davon, ob Sie von Disketten oder von CD-ROM gestartet haben, wird folgende Meldung erscheinen: Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _ Warten Sie entweder zehn Sekunden oder drücken Sie Enter. Systemstart von Alpha-Systemen Alpha Schalten Sie zunächst Ihren Rechner aus. Schalten Sie den Rechner ein und warten Sie auf die Eingabeaufforderung des Boot-Monitors. Wenn Sie, wie in beschrieben, Startdisketten vorbereitet haben, benötigen Sie nun die erste Diskette, die kern.flp enthält. Legen Sie diese Diskette in das Diskettenlaufwerk ein. Das nachstehende Kommando startet den Rechner von der Diskette (falls nötig, passen Sie den Gerätenamen der Diskette an): >>>BOOT DVA0 -FLAGS '' -FILE '' Wenn Sie den Rechner von einer CD-ROM starten, legen Sie die CD-ROM in das Laufwerk ein und führen das folgende Kommando aus (wenn nötig, passen Sie den Gerätenamen des CD-ROM-Laufwerks an): >>>BOOT DKA0 -FLAGS '' -FILE '' &os; wird jetzt starten. Wenn Sie den Rechner mit einer Diskette gestartet haben, wird irgendwann die nachstehende Meldung erscheinen: Please insert MFS root floppy and press enter: Folgen Sie der Anweisung und entfernen Sie die kern.flp-Diskette, anschließend legen Sie die mfsroot.flp-Diskette ein und drücken Enter. Unabhängig davon, ob Sie von Disketten oder von CD-ROM gestartet haben, wird folgende Meldung erscheinen: Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _ Warten Sie entweder zehn Sekunden oder drücken Sie Enter, danach erscheint das Kernelkonfigurationsmenü. Die Geräteerkennung prüfen Die letzten paar Hundert Zeilen der Bildschirmausgabe werden gesichert und können geprüft werden. Um sich den Bildschirmpuffer anzusehen, drücken Sie die Taste Scroll-Lock. Im Puffer können Sie mit den Pfeiltasten oder den Tasten PageUp und PageDown blättern. Um zur normalen Bildschirmausgabe zurückzukehren, drücken Sie nochmals die Taste Scroll-Lock. Prüfen Sie mit diesem Verfahren nun die Ausgaben der Geräteerkennung. Sie werden einen Text ähnlich wie in sehen. Die genauen Ausgaben sind abhängig von den in Ihrem System installierten Geräten.
Ausgabe der Geräteerkennung avail memory = 253050880 (247120K bytes) Preloaded elf kernel "kernel" at 0xc0817000. Preloaded mfs_root "/mfsroot" at 0xc0817084. md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4 md1: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <iSA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci 0 usb0: <VIA 83572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1 uhub0: 2 ports with 2 removable, self powered pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3 dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir q 11 at device 8.0 on pci0 dc0: Ethernet address: 00:04:5a:74:6b:b5 miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10. 0 on pci0 ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/@ mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold plip0: <PLIP network interface> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33 acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4 Mounting root from ufs:/dev/md0c /stand/sysinstall running as init on vty0
Prüfen Sie die Ausgabe der Geräteerkennung sorgfältig und stellen Sie sicher, dass &os; alle erwarteten Geräte gefunden hat. Wenn ein Gerät nicht gefunden wurde, wird es nicht angezeigt. Wurde der Gerätetreiber mit IRQ und Port-Adressen konfiguriert, prüfen Sie, ob die Werte richtig angezeigt werden. Wenn Sie noch Änderungen an der Kernelkonfiguration vornehmen müssen, können Sie sysinstall leicht verlassen und wieder neu anfangen. Das ist auch eine gute Übung, um sich mit dem Ablauf vertraut zu machen.
sysinstall beenden
Wählen Sie mit den Pfeiltasten den Punkt Exit Install des Hauptmenüs aus. Nach der Auswahl wird die folgende Meldung angezeigt: User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies from the drives). [ Yes ] No Wenn Sie die Auswahl mit &gui.yes; bestätigen, wird das Installationsprogramm erneut starten, falls sich die CD-ROM noch im Laufwerk befindet. Wenn Sie mit Disketten gestartet haben, müssen Sie vor dem Neustart die mfsroot.flp-Diskette gegen die kern.flp-Diskette tauschen.
Das Werkzeug sysinstall Zum Installieren von &os; stellt das &os;-Project das Werkzeug sysinstall zur Verfügung. Das Werkzeug arbeitet textorientiert und bietet eine Reihe von Menüs und Bildschirmen, um den Installationsprozess zu konfigurieren und zu steuern. Die Menüs von sysinstall werden mit Tasten wie den Pfeiltasten, Enter oder Space bedient. Eine ausführliche Beschreibung der Tastenbelegung ist in der Gebrauchsanweisung von sysinstall enthalten. Die Gebrauchsanweisung können Sie lesen, indem Sie den Menüpunkt Usage auswählen. Stellen Sie sicher, dass die Schaltfläche [Select], wie in gezeigt, aktiviert ist und drücken Sie die Taste Enter. Es erscheinen Anweisungen wie das Menüsystem zu bedienen ist. Wenn Sie diese gelesen haben, drücken Sie Enter, um in das Hauptmenü zurückzukehren.
Die Gebrauchsanweisung von sysinstall auswählen
Die Dokumentation abrufen Aus dem Hauptmenü wählen Sie mit den Pfeiltasten Doc aus und drücken Enter.
Die Dokumentation abrufen
Es wird das Dokumentationsmenü angezeigt.
Das Dokumentationsmenü von sysinstall
Lesen Sie bitte unbedingt die mitgelieferte Dokumentation. Um ein Dokument zu lesen, wählen Sie das Dokument mit den Pfeiltasten aus und drücken Enter. Wenn Sie das Dokument gelesen haben, kommen Sie mit der Taste Enter in das Dokumentationsmenü zurück. Um in das Hauptmenü zurückzukommen, wählen Sie mit den Pfeiltasten Exit aus und drücken die Taste Enter.
Die Tastaturbelegung ändern Um die Tastaturbelegung zu ändern, wählen Sie den Menüpunkt Keymap und drücken Enter. Dies ist nur erforderlich wenn Sie eine nicht standard-konforme Tastatur oder eine andere als eine amerikanische Tastatur einsetzen.
Das Hauptmenü von sysinstall
Eine andere Tastaturbelegung können Sie mit den Pfeiltasten markieren und der Taste Space auswählen. Wenn Sie die Taste Space nochmals drücken wird die Auswahl aufgehoben. Haben Sie eine Tastaturbelegung ausgewählt, markieren Sie mit den Pfeiltasten &gui.ok; und drücken Sie Enter. Der Bildschirmabzug zeigt nur einen der verfügbaren Belegungen an. Mit der Taste Tab markieren Sie die Schaltfläche &gui.cancel;, die mit der Vorgabe-Belegung wieder in das Hauptmenü zurückführt.
Sysinstall Keymap Menu
Installationsoptionen einstellen Wählen Sie Options aus und rücken die Taste Enter.
Das Hauptmenü von sysinstall
Optionen von sysinstall
Für die meisten Benutzer sind die voreingestellten Werte völlig ausreichend und brauchen daher nicht geändert werden. Der Name des Releases variiert mit der zu installierenden Version von &os;. Eine Beschreibung der ausgewählten Option erscheint blau hervorgehoben am unteren Ende des Bildschirms. Mit der Option Use Defaults können Sie alle Optionen auf die Vorgabewerte zurückstellen. Wenn Sie die Hilfeseite zu den verschiedenen Optionen lesen wollen, drücken Sie die Taste F1. Die Taste Q führt in das Hauptmenü zurück.
Eine Standard-Installation starten Die Standard-Installation sollte von allen &unix;- oder &os;-Anfängern benutzt werden. Markieren Sie mit den Pfeiltasten Standard und drücken Sie Enter, um die Installation zu starten.
Die Standard-Installation starten
Plattenplatz für &os; bereitstellen Ihre erste Aufgabe ist, &os; Plattenplatz bereitzustellen und den Plattenplatz für sysinstall kenntlich zu machen (label). Sie müssen daher wissen, wie &os; mit Platten umgeht. Nummerierung der Laufwerke im BIOS Bevor Sie &os; installieren und konfigurieren, sollten Sie Sie einen wichtigen Punkt beachten, besonders wenn Sie mehrere Festplatten besitzen. DOS Microsoft Windows In einem PC, der unter einem vom BIOS abhängigen Betriebssystem, wie &ms-dos; oder µsoft.windows; läuft, kann das BIOS die normale Reihenfolge der Laufwerke verändern und das Betriebssystem beachtet diese Änderung. Mit dieser Funktion kann der Rechner von einem anderen Laufwerk als dem so genannten primären Laufwerk gestartet werden. Die Funktion ist sehr zweckmäßig für Benutzer, die Datensicherungen auf einer zweiten Platte erstellen und dafür Werkzeuge wie Ghost oder xcopy einsetzen. Wenn die erste Platte ausfällt, von einem Virus befallen wird oder durch einen Fehler des Betriebssystems verunstaltet wird, können die Platten im BIOS logisch getauscht werden. Es sieht so aus, als wären die Laufwerke, ohne Öffnen des Gehäuses getauscht worden. SCSI BIOS Teurere Systeme mit SCSI-Controllern haben oft BIOS Erweiterungen, mit denen die Reihenfolge von bis zu sieben SCSI-Platten in ähnlicher Weise verändert werden kann. Ein Benutzer, der es gewohnt ist, diese BIOS-Funktionen zu benutzen, mag überrascht sein, dass &os; sich nicht wie erwartet verhält. &os; verwendet das BIOS nicht und weiß daher nichts von der logischen Plattenordnung im BIOS. Dies kann zu sehr verwirrenden Situationen führen, insbesondere wenn die Platten identische Geometrien besitzen und Kopien voneinander sind. Vor der Installation von &os; sollte im BIOS die normale Nummerierung der Laufwerke eingestellt und so belassen werden. Ist es nötig, die Reihenfolge der Laufwerke zu verändern, so sollte das immer auf dem schweren Weg, also durch Öffnen des Gehäuses und Verändern der Jumper und Kabel, erfolgen. Von Bills und Freds ungewöhnlichen Abenteuern Bill macht aus einer älteren Wintel Kiste ein neues &os;-System für Fred. Auf einer SCSI-Platte, die er mit der SCSI-ID 0 konfiguriert, installiert Bill &os;. Nachdem Fred das System einige Tage benutzt hat, bemerkt er, dass die ältere SCSI-Platte viele Fehler meldet und beschwert sich bei Bill. Nach einigen Tagen entschließt sich Bill, die Sache in die Hand zu nehmen. Er schnappt sich eine identische SCSI-Platte aus dem Lager im Hinterzimmer und baut diese, nachdem Sie einen Oberflächenscan überstanden hat, mit der SCSI-ID 4 ein. Anschließend kopiert er die Daten von der Platte mit der SCSI-ID 0 auf die Platte mit der SCSI-ID 4. Da die neue Platte zufriedenstellend läuft, stellt Bill im SCSI-BIOS die Reihenfolge der Platten so um, dass das System von der neuen Platte startet. Nach einem problemlosen Start von &os; läuft das System und Fred ist zufrieden. Nach einiger Zeit haben Bill und Fred Lust auf ein weiteres Abenteuer – Sie wollen das System auf eine neue &os;-Version aktualisieren. Bill ersetzt die angeschlagene Platte mit der SCSI-ID 0 durch eine gleiche Platte aus dem Lager. Auf der ausgetauschten Platte installiert er problemlos mithilfe von Freds Startdisketten die neue Version von &os;. Fred braucht ein paar Tage, um die neue &os;-Version zu testen und entscheidet, dass Sie für den produktiven Einsatz geeignet ist. Nun müssen die Daten von der alten Platte (mit der SCSI-ID 4) kopiert werden. Fred hängt dazu die alte Platte ein und stellt bestürzt fest, dass alle Daten verschwunden sind. Wo sind die Daten hin? Bill kopierte die Daten von der Platte mit der SCSI-ID 0 auf die Platte mit der SCSI-ID 4. Als Bill die Startreihenfolge im SCSI-BIOS änderte, führte er sich nur selbst an der Nase herum. &os; lief weiterhin auf der Platte mit der SCSI-ID 0. Durch die Änderung der Startreihenfolge wurde nur ein Teil des Boot- und Loader-Codes von der Platte mit der SCSI-ID 4 geladen. Die Kernel-Treiber von &os; ignorieren die BIOS-Einstellungen und benutzen die normale Nummerierung. Das System lief also weiterhin auf der Platte mit der SCSI-ID 0 und alle Daten von Fred befanden sich auf dieser Platte. Es schien nur so, als würde das System auf der Platte mit der SCSI-ID 4 laufen. Wir sind erleichtert zu bemerken, dass keine Daten verloren gingen oder verändert wurden. Die alte Platte wurde im Müll wiedergefunden und Freds Daten konnten wiederhergestellt werden (Bill weiß jetzt, dass er noch viel zu lernen hat). Obwohl in diesem Beispiel SCSI-Platten verwendet wurden, gelten die Konzepte gleichermaßen für IDE-Platten. Slices mit Fdisk erstellen Zu diesem Zeitpunkt werden noch keine Änderungen auf die Festplatte ausgeschrieben. Sie können daher sysinstall jederzeit verlassen, und erneut beginnen, wenn Sie denken, einen Fehler gemacht zu haben. Sie können sysinstall über die Menüs verlassen, die Taste U drücken oder die Option Undo wählen. Wenn Sie einmal nicht wissen, wie Sie ein Menü verlassen, können Sie den Rechner auch einfach ausschalten. Nachdem Sie in sysinstall die Standard-Installation ausgewählt haben, werden Sie folgende Meldung sehen: Message In the next menu, you will need to set up a DOS-style ("fdisk") partitioning scheme for your hard disk. If you simply wish to devote all disk space to FreeBSD (overwriting anything else that might be on the disk(s) selected) then use the (A)ll command to select the default partitioning scheme followed by a (Q)uit. If you wish to allocate only free space to FreeBSD, move to a partition marked "unused" and use the (C)reate command. [ OK ] [ Press enter or space ] Drücken Sie, wie angegeben, Enter. Im nächsten Bildschirm werden alle Festplatten angezeigt, die der Kernel während der Geräteerkennung gefunden hat. zeigt ein Beispiel von einem System mit zwei IDE-Platten, die als ad0 und ad2 erkannt wurden.
Ein Laufwerk für Fdisk aussuchen
Sie fragen sich vielleicht, warum ad1 nicht angezeigt wird. Wurde die Platte vielleicht nicht erkannt? Stellen Sie sich ein System mit zwei IDE-Platten vor. Eine Platte ist als Master am ersten Controller, die andere als Master am zweiten Controller angeschlossen. Wenn &os; die Platten in der Reihenfolge, in der sie gefunden werden, nummerieren würde, hießen die Platten ad0 und ad1 und alles würde funktionieren. Wenn Sie nun am ersten IDE-Controller eine dritte Platte als Slave anschließen würden, wäre diese Platte ad1. Die vorher ad1 genannte Platte würde nun ad2 heißen. Dateisysteme werden auf Geräten wie ad1s1a angelegt. Daher könnte es passieren, dass auf einmal Dateisysteme nicht mehr gefunden werden und Sie &os; umkonfigurieren müssten. Um diese Probleme zu umgehen, kann der Kernel so eingestellt werden, dass er Platten nach ihrem Anschlussort anstelle der gefundenen Reihenfolge benennt. Nach diesem Schema ist die Master-Platte am zweiten IDE-Controller immer ad2, auch wenn es die Geräte ad0 oder ad1 gar nicht gibt. Dieses Verhalten ist in &os; voreingestellt und der Grund warum im Beispiel die Geräte ad0 und ad2 angezeigt werden. Der Rechner, von dem die gezeigte Ausgabe stammt, hatte zwei IDE-Platten, die beide als Master konfiguriert waren, und keine Slave-Platten. Wählen Sie die Platte aus, auf die Sie &os; installieren wollen und drücken Sie &gui.ok;. Anschließend startet Fdisk und zeigt einen Bildschirm wie den in . Der Bildschirm von Fdisk ist in drei Abschnitte unterteilt. Der erste Abschnitt umfasst die ersten beiden Zeilen der Anzeige. Er enthält Einzelheiten über die aktuell ausgewählte Platte, unter anderem den &os;-Gerätenamen, die Plattengeometrie und die Kapazität der Platte. Der zweite Abschnitt zeigt die auf der Platte befindlichen Slices. Angezeigt wird der Anfang und das Ende der Slice, die Größe der Slice, der &os;-Gerätename, eine Beschreibung und der Subtyp. Im Beispiel sehen Sie zwei unbenutzte Slices, die durch die Plattenbelegung auf PCs entstehen. Weiterhin sehen Sie eine große FAT-Slice, die ziemlich sicher unter &ms-dos;/&windows; als Laufwerk C: auftaucht und eine erweiterte Slice, die unter &ms-dos;/&windows; weitere Laufwerke enthalten kann. Im dritten Abschnitt sind die Kommandos von Fdisk zusammengefasst.
Typischer Fdisk-Bildschirm vor dem Editieren
Die nächsten Schritte hängen von der beabsichtigten Einteilung der Festplatte ab. Wenn Sie die gesamte Festplatte für &os; verwenden wollen, drücken Sie die Taste A (entspricht dem Menüpunkt Use Entire Disk). Später im Installationsverlauf müssen Sie diese Auswahl bestätigen, danach werden alle bisherigen Daten von der Festplatte gelöscht. Diese Auswahl löscht vorher vorhandene Slices und ersetzt sie durch einen kleinen unbenutzten Bereich (der wieder durch das PC-Design bedingt ist) und eine große Slice für &os;. Wählen Sie dann die neu erstellte Slice mit den Pfeiltasten aus und drücken Sie die Taste S, um die Slice als startfähig (bootbar) zu markieren. zeigt den Bildschirm zu diesem Zeitpunkt. Beachten Sie das A in der Spalte Flags. Dies zeigt an, dass die Slice aktiv ist und das System von dieser Slice starten wird. Um Platz für &os; zu schaffen, können Sie auch bestehende Slices löschen. Markieren Sie dazu die Slice mit den Pfeiltasten und drücken Sie die Taste D. Danach legen Sie eine neue Slice mit der Taste C an. Sie werden nach der Größe der zu erstellenden Slice gefragt; der Vorgabewert entspricht der größten Slice, die angelegt werden kann (entspricht entweder dem größten freien Bereich auf der Festplatte oder der ganzen Festplatte). Wenn Sie schon Platz für &os; geschaffen haben (beispielsweise mit &partitionmagic;), können Sie eine neue Slice direkt mit der Taste C anlegen. Sie werden wieder nach der Größe der anzulegenden Slice gefragt.
Eine Partition über die gesamte Platte
Drücken Sie die Taste Q, wenn Sie fertig sind. Sysinstall merkt sich die Änderungen, schreibt sie aber noch nicht auf die Festplatte.
Einen Boot-Manager installieren Sie können nun einen Boot-Manager installieren. Unter folgenden Umständen sollten Sie den &os;-Boot-Manager installieren: Das System besitzt mehr als ein Laufwerk und &os; ist auf einem anderen Laufwerk als dem ersten Laufwerk installiert. &os; teilt sich das Laufwerk mit einem anderen Betriebssystem. Beim Systemstart wollen Sie auswählen, welches Betriebssystem gestartet wird. Wird der Rechner ausschließlich mit &os; betrieben und &os; ist auf dem ersten Laufwerk installiert, dann genügt der Standard-Boot-Manager. Wenn Sie einen anderen Boot-Manager benutzen, der &os; starten kann, wählen Sie bitte None aus. Nachdem Sie die Auswahl getroffen haben, drücken Sie die Taste Enter.
Sysinstall Boot-Manager-Menü
In der Hilfe, die Sie mit der Taste F1 aufrufen, werden Probleme beschrieben, die entstehen können, wenn sich zwei Betriebssysteme ein Laufwerk teilen.
Slices auf einem anderen Laufwerk anlegen Wenn das System mehr als ein Laufwerk besitzt, kehrt die Installationsprozedur nach der Auswahl des Boot-Managers zum Bildschirm Select Drives zurück. Sie können hier ein anderes Laufwerk auswählen und auf diesem Laufwerk mit Fdisk weitere Slices anlegen. Wenn Sie &os; auf einem anderen Laufwerk als dem ersten Laufwerk installieren, müssen Sie den &os;-Boot-Manager auf beiden Laufwerken installieren.
Die Laufwerksauswahl verlassen
Die Taste Tab wechselt zwischen dem zuletzt ausgewählten Laufwerk und den Schaltflächen &gui.ok; und &gui.cancel;. Drücken Sie einmal die Taste Tab, um &gui.ok; auszuwählen und drücken Sie anschließend Enter um die Installation weiterzuführen.
Partitionen mit <application>Bsdlabel</application> anlegen In jeder angelegten Slice müssen Sie Partitionen anlegen. Die Partitionen werden mit Buchstaben von a bis h gekennzeichnet. Die Buchstaben b, c und d haben eine besondere Bedeutung, die Sie beachten sollten. Einige Anwendungen profitieren von einer besonderen Aufteilung der Partitionen, insbesondere wenn das System mehr als ein Laufwerk besitzt. Bei der ersten &os;-Installation sollten Sie sich allerdings nicht zu viele Gedanken über die Partitionen machen. Wichtiger ist, dass Sie &os; installieren und benutzen. Wenn Sie mehr Erfahrung mit &os; gesammelt haben, können Sie &os; jederzeit mit anderen Partitionen installieren. Das folgende Schema legt vier Partitionen an: Eine Partition für den Auslagerungsbereich (swap space) und drei Partitionen für Dateisysteme. Partitionen auf dem ersten Laufwerk Partition Dateisystem Größe Beschreibung a / 100 MB Das Root-Dateisystem. Jedes andere Dateisystem wird irgendwo unterhalb von diesem Dateisystem eingehangen. 100 MB ist eine vernünftige Größe für dieses Dateisystem. Sie werden hier wenig Daten speichern und &os; benötigt ungefähr 40 MB Platz auf diesem Dateisystem. Der Rest ist für temporäre Daten und die Reserve, falls künftige Versionen von &os; mehr Platz in / benötigen. b N/A 2-3 x RAM Der Auslagerungsbereich. Es ist schon fast eine Kunst, die Größe des Auslagerungsbereichs richtig zu bestimmen. Eine gute Daumenregel ist, den Auslagerungsbereich zwei bis dreimal größer als den Hauptspeicher (RAM) anzulegen. Sie sollten mindestens 64 MB für den Auslagerungsbereich vorsehen. Wenn das System also weniger als 32 MB Hauptspeicher besitzt, richten Sie einen 64 MB großen Auslagerungsbereich ein. Besitzt das System mehr als ein Laufwerk, können Sie auf jedem Laufwerk Auslagerungsbereiche anlegen. Da &os; alle Auslagerungsbereiche benutzt, wird der Vorgang des Auslagerns durch mehrere Bereiche beschleunigt. Berechnen Sie in diesem Fall die Größe des benötigten Auslagerungsbereichs, beispielsweise 128 MB, und teilen Sie die Größe durch die Anzahl der Laufwerke. Dies gibt die Größe des Auslagerungsbereichs auf jedem Laufwerk. Mit zwei Platten ergibt das in diesem Beispiel 64 MB Auslagerungsbereich pro Platte. e /var 50 MB Das Verzeichnis /var enthält Dateien, die sich dauernd ändern (Protokolldateien und Dateien für Verwaltungszwecke) und auf die im Normalbetrieb oft zugegriffen wird. Liegen diese Dateien in einem gesonderten Dateisystem, kann &os; den Zugriff auf die Dateien optimieren, ohne den Zugriff auf Dateien mit einem anderen Zugriffmuster zu stören. f /usr Der Rest des Laufwerks Alle anderen Dateien werden normalerweise im Verzeichnis /usr oder einem Unterverzeichnis von /usr abgelegt.
Wenn Sie &os; auf mehr als einem Laufwerk installieren, müssen Sie noch weitere Partitionen in den Slices auf den anderen Laufwerken anlegen. Am einfachsten legen Sie pro Laufwerk zwei Partitionen an: eine für den Auslagerungsbereich und eine andere für ein Dateisystem. Partitionen auf weiteren Laufwerken Partition Dateisystem Größe Beschreibung b - - Wie schon besprochen, können Sie den Auslagerungsbereich auf mehrere Platten verteilen. Auch wenn die a-Partition frei ist, sollte der Auslagerungsbereich entsprechend der Konvention auf der b-Partition angelegt werden. e /diskn Der Rest des Laufwerks Der Rest der Platte wird von einer großen Partition eingenommen. Sie könnten für diese Partition die a-Partition anstelle der e-Partition benutzen. Allerdings ist die a-Partition per Konvention für das Root-Dateisystem (/) reserviert. Sie brauchen die Konvention nicht zu beachten, da aber sysinstall die Konvention beachtet, ist die Installation sauberer, wenn Sie das auch tun. Sie können das Dateisystem irgendwo einhängen. Das Beispiel schlägt die Verzeichnisse /diskn vor, wobei n die Laufwerke nummeriert. Sie können ein anderes Schema verwenden, wenn Sie möchten.
Wenn Sie die Aufteilung der Partitionen festgelegt haben, können Sie die Partitionen mit sysinstall anlegen. Es erscheint die nachstehende Meldung: Message Now, you need to create BSD partitions inside of the fdisk partition(s) just created. If you have a reasonable amount of disk space (200MB or more) and don't have any special requirements, simply use the (A)uto command to allocate space automatically. If you have more specific needs or just don't care for the layout chosen by (A)uto, press F1 for more information on manual layout. [ OK ] [ Press enter or space ] Drücken Sie Enter, um den &os;-Partitionseditor, der Disklabel heißt, zu starten. zeigt den Einstiegsbildschirm von Disklabel. Der Bildschirm ist in drei Bereiche geteilt. Die ersten Zeilen zeigen den Namen des Laufwerks, das Sie gerade bearbeiten und die Slice, die die erstellten Partitionen enthält (Disklabel spricht hier von Partitionen anstatt von Slices). Der freie Platz einer Slice, der noch keiner Partition zugeordnet ist, wird ebenfalls angezeigt. In der Mitte des Bildschirms werden die angelegten Partitionen, der Name des Dateisystems, das sich in der Partition befindet, dessen Größe und die Optionen zum Erstellen des Dateisystems angezeigt. Das untere Drittel des Bildschirms zeigt die in Disklabel gültigen Tastenkombinationen.
Sysinstall Disklabel-Editor
Disklabel kann für Sie automatisch Partitionen mit vorgegebenen Größen erstellen. Probieren Sie das bitte jetzt aus und drücken Sie die Taste A. Der Bildschirm sieht danach ähnlich wie in aus. Abhängig von der Größe des Laufwerks können die Vorgabewerte richtig oder falsch sein. Da Sie die Vorgaben nicht akzeptieren müssen, spielt das keine Rolle. &os; legt das Verzeichnis /tmp in einer eigenen Partition an. Dies verhindert, dass sich die Root-Partition mit temporären Dateien füllt.
Sysinstall Disklabel-Editor mit automatischen Vorgaben
Wollen Sie die vorgegebenen Partitionen nicht verwenden und durch eigene ersetzen, markieren Sie mit den Pfeiltasten die erste Partition und drücken Sie die Taste D, um die Partition zu löschen. Wiederholen Sie dies für alle vorgegebenen Partitionen. Um die erste Partition (a), die als / eingehangen wird, zu erstellen, drücken Sie die Taste C. Stellen Sie dabei sicher, dass die richtige Slice im oberen Teil des Bildschirms markiert ist. Wie in , erscheint ein Fenster, in dem Sie die Größe der Partition angeben müssen. Sie können die Größe in Blöcken oder einer Zahl gefolgt von M für Megabyte, G für Gigabyte oder C für Zylinder angeben. Ab &os; 5.X gibt es den Menüpunkt Custom Newfs (Taste Z). Sie können dort Dateisysteme vom Typ UFS2 anlegen (dies ist ab &os; 5.1 die Vorgabe), die Einstellungen von mit Auto Defaults angelegten Dateisystemen ändern oder die Option für zu erstellende Dateisysteme voreinstellen. Vergessen Sie nicht, Soft Updates mit der Option zu aktivieren.
Die Größe einer Partition festlegen
Die vorgegebene Größe erstellt eine Partition, die den Rest der Slice ausfüllt. Wenn Sie die Größen aus dem früheren Beispiel verwenden, löschen Sie die vorgeschlagene Größe mit der Taste Backspace und tragen Sie die neue Größe, wie in gezeigt, ein. Drücken Sie anschließend &gui.ok;.
Die Größe einer Partition ändern
Nachdem Sie die Größe der Partition festgelegt haben, werden Sie gefragt, ob die Partition ein Dateisystem oder einen Auslagerungsbereich enthalten soll (siehe ). Die erste Partition enthält ein Dateisystem, wählen Sie FS aus und drücken Sie die Taste Enter.
Den Partitionstyp festlegen
Abschließend müssen Sie, weil Sie ein Dateisystem erstellen, angeben, wo das Dateisystem eingehangen wird. Die Eingabe ist in dargestellt. Das Root-Dateisystem wird in / eingehangen, geben Sie daher / ein und drücken Sie die Taste Enter.
Den Mountpoint festlegen
Auf dem Bildschirm wird jetzt die neu angelegte Partition angezeigt. Wiederholen Sie diese Prozedur für die restlichen Partitionen. Beim Anlegen des Auslagerungsbereichs werden Sie nicht nach einem Mountpoint gefragt, da ein Auslagerungsbereich nie eingehangen wird. Wenn Sie die letzte Partition anlegen, /usr, können Sie die vorgeschlagene Größe stehen lassen. Das Dateisystem wird dann den Rest der Slice einnehmen. Der letzte Bildschirm von Disklabel sieht wie in aus (Ihre Werte werden von den gezeigten Werten abweichen). Drücken Sie die Taste Q, um Disklabel zu verlassen.
Sysinstall Disklabel-Editor
Den Installationsumfang bestimmen Die Distribution auswählen Welche Software Sie installieren, hängt hauptsächlich vom Zweck des Rechners und dem zur Verfügung stehenden Plattenplatz ab. Die vorgegebenen Distributionen reichen von der minimalen Installation bis hin zu einer kompletten Installation. Anfänger sollten eine der vorgegebenen Distributionen auswählen, erfahrene Benutzer können die zu installierende Distribution anpassen. Die Taste F1 führt zu einem Hilfebildschirm, der die Distributionen und deren Inhalte beschreibt. Drücken Sie Enter, um die Hilfe zu verlassen und zur Auswahl der Distribution zurückzukehren. Wenn Sie eine graphische Benutzeroberfläche installieren wollen, sollten Sie eine Distribution auswählen, deren Name mit X anfängt. Die Konfiguration des X-Servers und die Auswahl der Benutzeroberfläche ist Teil der Nacharbeiten. Die Konfiguration des X-Servers wird in besprochen. Welche Version von X11 installiert wird, hängt von der &os;-Version ab, die Sie installieren. Vor &os; 5.3 wird &xfree86; 4.X installiert, ab &os; 5.3 wird &xorg; installiert. Prüfen Sie auf der &xfree86; Website, ob Ihre Grafikkarte unterstützt wird. Falls Ihre Karte von der &xfree86;-Version, die &os; installiert, nicht unterstützt wird, wählen Sie bitte eine Distribution ohne X. Nach der Installation können Sie über die Ports-Sammlung eine &xfree86;-Version installieren, die Ihre Karte unterstützt. Wenn Sie einen angepassten Kernel erstellen wollen, wählen Sie eine Distribution aus, die den Quellcode (source code) enthält. Warum und wie Sie einen angepassten Kernel erstellen, erfahren Sie in . Natürlich ist das flexibelste System das, auf dem alles installiert ist. Wenn das System über ausreichend Plattenplatz verfügt, wählen Sie mit den Pfeiltasten die Option All aus (siehe ) und drücken die Taste Enter. Wenn Sie Bedenken haben, dass der Plattenplatz nicht ausreicht, wählen Sie eine Distribution, die weniger Software enthält. Machen Sie sich keine unnötigen Sorgen um die richtige Distribution, ausgelassene Distribution können später nachinstalliert werden.
Die Distribution auswählen
Die Ports-Sammlung installieren Nach der Auswahl der Distribution haben Sie Gelegenheit, die &os;-Ports-Sammlung zu installieren. Mit der Ports-Sammlung lässt sich Software Dritter auf einfache Art und Weise installieren. Der Quellcode der zu installierenden Software ist nicht in der Ports-Sammlung enthalten. Stattdessen enthält die Ports-Sammlung Dateien, die den Installationsprozess (herunterladen, übersetzen und installieren) automatisieren. Die Ports-Sammlung wird in besprochen. Der Installationsprozess prüft nicht, ob ausreichend Platz für die Ports-Sammlung vorhanden ist. Wählen Sie die Ports-Sammlung bitte nur aus, wenn das System über ausreichenden Platz verfügt. In &os; &rel.current; nimmt die Ports-Sammlung ungefähr &ports.size; Plattenplatz in Anspruch. Neuere Versionen von &os; benötigen mit Sicherheit noch mehr Platz. User Confirmation Requested Would you like to install the FreeBSD ports collection? This will give you ready access to over &os.numports; ported software packages, at a cost of around &ports.size; of disk space when "clean" and possibly much more than that if a lot of the distribution tarballs are loaded (unless you have the extra CDs from a FreeBSD CD/DVD distribution available and can mount it on /cdrom, in which case this is far less of a problem). The ports collection is a very valuable resource and well worth having on your /usr partition, so it is advisable to say Yes to this option. For more information on the ports collection & the latest ports, visit: http://www.FreeBSD.org/ports [ Yes ] No Wählen Sie mit den Pfeiltasten &gui.yes; aus, um die Ports-Sammlung zu installieren. Wählen Sie &gui.no; aus, um die Ports-Sammlung auszulassen. Drücken Sie danach die Taste Enter, es erscheint wieder das Distributionsmenü.
Die Distributionen bestätigen
Wenn Sie mit den ausgewählten Optionen zufrieden sind, wählen Sie mit den Pfeiltasten Exit aus (stellen Sie sicher, dass &gui.ok; aktiv ist) und drücken Sie die Taste Enter.
Das Installationsmedium auswählen Wenn Sie von einer CD-ROM oder einer DVD installieren, wählen Sie bitte Install from a FreeBSD CD/DVD aus. Stellen Sie sicher, dass &gui.ok; aktiv ist und drücken Sie dann die Taste Enter, um mit der Installation fortzufahren. Wenn Sie ein anderes Installationsmedium benutzen, wählen Sie die passende Option aus und folgen den angezeigten Anweisungen. Die Hilfeseiten über Installationsmedien erreichen Sie mit der Taste F1. Drücken Sie Enter, um zur Auswahl des Installationsmediums zurückzukehren.
Das Installationsmedium auswählen
FTP-Installationsmodi Installation FTP Sie können zwischen drei FTP-Installationsmodi wählen: Active-FTP, Passive-FTP oder über einen HTTP-Proxy. FTP Active: Install from an FTP server Diese Option führt alle FTP-Operationen im Active-Mode aus. Dieser Modus funktioniert nicht durch Firewalls, er funktioniert aber mit alten FTP-Servern, die den Passive-Mode nicht beherrschen. Wenn die Verbindung im Passive-Mode (das ist die Vorgabe) hängt, versuchen Sie den Active-Mode. FTP Passive: Install from an FTP server through a firewall FTP Passive-Mode Mit dieser Option benutzt sysinstall den Passive-Mode für alle FTP-Operationen. In diesem Modus funktionieren Verbindungen durch Firewalls, die einkommende Pakete auf beliebigen TCP-Ports blockieren. FTP via a HTTP proxy: Install from an FTP server through a http proxy FTP über einen HTTP-Proxy Diese Option weist sysinstall an, alle FTP-Operationen mit HTTP über einen Proxy (wie ein Web-Browser) durchzuführen. Der Proxy leitet die Anfragen an den richtigen FTP-Server weiter. Mit dieser Option passieren Sie eine Firewall, die FTP-Verbindungen verbietet, aber einen HTTP-Proxy anbietet. Neben dem FTP-Server müssen Sie in diesem Fall den Proxy-Server angeben. Bei einem FTP-Proxy-Server müssen Sie normalerweise den Ziel-FTP-Server als Teil des Benutzernamens hinter dem Klammeraffen (@) angeben. Der Proxy-Server übernimmt die Kommunikation mit dem Ziel-FTP-Server. Nehmen wir an, Sie wollen von ftp.FreeBSD.org über den FTP-Proxy foo.example.com - auf Port 1024 installieren. + auf Port 1234 installieren. Wählen Sie das Menü Options aus und setzen Sie dort den FTP-Benutzernamen (username) auf ftp@ftp.FreeBSD.org. Als Passwort geben Sie bitte Ihre E-Mail-Adresse an. Setzen Sie das Installationsmedium auf Active-FTP oder Passive-FTP, je nachdem welchen Modus der Proxy-Server unterstützt. Für die URL geben Sie ftp://foo.example.com:1234/pub/FreeBSD an. Der Proxy-Server foo.example.com leitet Zugriffe auf das Verzeichnis /pub/FreeBSD an den Server ftp.FreeBSD.org weiter. Daher können foo.example.com als FTP-Server angeben.
Die Installation festschreiben Wenn Sie wünschen, kann die Installation nun beginnen. Dies ist die letzte Gelegenheit, die Installation abzubrechen und Änderungen auf der Festplatte zu vermeiden. User Confirmation Requested Last Chance! Are you SURE you want to continue the installation? If you're running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! [ Yes ] No Wählen Sie &gui.yes; aus und drücken Sie Enter, um weiter zu machen. Die Installationsdauer hängt von den ausgewählten Distributionen, dem Installationsmedium und der Geschwindigkeit des Rechners ab. Während der Installation wird der Fortgang mit Statusmeldungen angezeigt. Die Installation ist beendet, wenn die folgende Meldung erscheint: Message Congratulations! You now have FreeBSD installed on your system. We will now move on to the final configuration questions. For any option you do not wish to configure, simply select No. If you wish to re-enter this utility after the system is up, you may do so by typing: /stand/sysinstall . [ OK ] [ Press enter to continue ] Drücken Sie die Taste Enter, um die Nacharbeiten durchzuführen. Wenn Sie &gui.no; auswählen und Enter drücken wird die Installation abgebrochen und das System wird nicht verändert. Die nachstehende Meldung wird angezeigt: Message Installation complete with some errors. You may wish to scroll through the debugging messages on VTY1 with the scroll-lock feature. You can also choose "No" at the next prompt and go back into the installation menus to retry whichever operations have failed. [ OK ] Die Meldung wird angezeigt, weil nichts installiert wurde. Drücken Sie Enter, um in das Hauptmenü zurückzukehren. Dort können Sie die Installationsprozedur verlassen. Arbeiten nach der Installation Nach einer erfolgreichen Installation wird das System konfiguriert. Sie können das System direkt konfigurieren oder nach einem Neustart. Nach einem Neustart rufen Sie sysinstall (vor &os; 5.2 /stand/sysinstall) auf und wählen den Menüpunkt Configure. Netzwerkkonfiguration Wenn Sie schon PPP für eine FTP-Installation konfiguriert haben, erscheint dieser Bildschirm nicht. Sie können die Konfiguration später in sysinstall vornehmen. Netzwerke und die Konfiguration von &os; als Gateway oder Router werden eingehend im Kapitel Weiterführende Netzwerkthemen behandelt. User Confirmation Requested Would you like to configure any Ethernet or SLIP/PPP network devices? [ Yes ] No Wenn Sie eine Netzwerkkarte konfigurieren wollen, wählen Sie &gui.yes; aus und drücken Sie die Taste Enter. Wählen Sie &gui.no;, um die Netzwerkkonfiguration zu überspringen.
Eine Netzwerkkarte auswählen
Wählen Sie die zu konfigurierende Karte mit den Pfeiltasten aus und drücken Sie die Taste Enter. User Confirmation Requested Do you want to try IPv6 configuration of the interface? Yes [ No ] Für das gezeigte Installationsbeispiel genügte das momentan verwendete Internet-Protokoll (IPv4). Daher wurde mit den Pfeiltasten &gui.no; ausgewählt und mit der Taste Enter bestätigt. Wenn Sie durch einen RA-Server mit einem IPv6-Netzwerk verbunden sind, wählen Sie bitte &gui.yes; und drücken die Taste Enter. Die Suche nach den RA-Servern dauert einige Sekunden. User Confirmation Requested Do you want to try DHCP configuration of the interface? Yes [ No ] Falls Sie das Dynamic Host Configuration Protocol (DHCP) nicht verwenden, wählen Sie &gui.no; aus und drücken Sie Enter. Wenn Sie &gui.yes; auswählen, wird das Programm dhclient ausgeführt und bei Erfolg die Netzwerkkarte konfiguriert. Mehr über DHCP können Sie in nachlesen. Der nächste Bildschirmabzug zeigt die Netzwerkkonfiguration eines Systems, das Gateway für das lokale Netz ist.
Die Netzwerkkarte ed0 konfigurieren
Tragen Sie in die Felder, die Sie mit der Taste Tab auswählen können, die richtige Konfiguration ein. Host Der vollständige Rechnername (fully-qualified hostname), wie in diesem Beispiel k6-2.example.com. Domain Der Domain-Name, in dem sich der Rechner befindet. Im Beispiel ist das example.com. IPv4 Gateway Die IP-Adresse des Rechners, der Pakete an entfernte Netze weiterleitet. Sie müssen dieses Feld ausfüllen, wenn der sich der Rechner in einem Netzwerk befindet. Lassen Sie das Feld leer, wenn der Rechner der Gateway in das Internet ist. Der IPv4-Gateway wird auch default gateway oder default route genannt. Name server Die IP-Adresse des lokalen DNS-Servers. Im Beispiel gibt es keinen lokalen DNS-Server, daher wurde der DNS-Server des Providers (208.163.10.2) benutzt. IPv4 address Die IP-Adresse der Netzwerkkarte (192.168.0.1). Netmask (Netzmaske) Im Beispiel werden Adressen aus einem Klasse C Netz (192.168.0.0 bis 192.168.0.255) benutzt. Standardmäßig besitzt ein Klasse C Netz die Netzmaske 255.255.255.0. Extra options to ifconfig (Optionen für ifconfig) Zusätzliche Optionen für den Befehl ifconfig, die spezifisch für die verwendete Netzwerkkarte sind. Im Beispiel sind keine Optionen angegeben. Wenn Sie alle Werte eingegeben haben, wählen Sie mit Tab &gui.ok; aus und drücken Sie Enter. User Confirmation Requested Would you like to Bring Up the ed0 interface right now? [ Yes ] No Wenn Sie &gui.yes; auswählen und Enter drücken, wird die Netzwerkkonfiguration aktiviert. Allerdings bringt dies zu diesem Zeitpunkt nicht viel, da der Rechner noch neu gestartet werden muss.
Gateway einrichten User Confirmation Requested Do you want this machine to function as a network gateway? [ Yes ] No Wählen Sie &gui.yes;, wenn der Rechner ein Gateway für ein lokales Netz ist und Pakete an andere Netze weiterleitet. Wenn der Rechner ein normaler Netzknoten ist, wählen Sie &gui.no; aus. Bestätigen Sie die auswahl mit der Taste Enter. IP-Dienste einrichten User Confirmation Requested Do you want to configure inetd and the network services that it provides? Yes [ No ] Wenn &gui.no; ausgewählt wird, werden Dienste wie telnetd nicht aktiviert. Benutzer können sich dann von entfernten Rechnern nicht mit telnet an dieser Maschine anmelden. Lokale Benutzer können aber auf entfernte Rechner mit telnet zugreifen. Die Dienste können Sie nach der Installation aktivieren, indem Sie die Datei /etc/inetd.conf editieren. Dies wird in beschrieben. Wenn Sie jetzt weitere Dienste aktivieren möchten, wählen Sie &gui.yes; aus. Es erscheint die nachstehende Rückfrage: User Confirmation Requested The Internet Super Server (inetd) allows a number of simple Internet services to be enabled, including finger, ftp and telnetd. Enabling these services may increase risk of security problems by increasing the exposure of your system. With this in mind, do you wish to enable inetd? [ Yes ] No Bestätigen Sie die Rückfrage mit &gui.yes;. User Confirmation Requested inetd(8) relies on its configuration file, /etc/inetd.conf, to determine which of its Internet services will be available. The default FreeBSD inetd.conf(5) leaves all services disabled by default, so they must be specifically enabled in the configuration file before they will function, even once inetd(8) is enabled. Note that services for IPv6 must be separately enabled from IPv4 services. Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to use the current settings. [ Yes ] No Wenn Sie &gui.yes; auswählen, können Sie Dienste aktivieren, in dem Sie das Zeichen # am Zeilenanfang entfernen.
<filename>inetd.conf</filename> editieren
Wenn Sie die gewünschten Dienste aktiviert haben, drücken Sie die Taste Esc. Es erscheint ein Menü, in dem Sie die Änderungen abspeichern und den Editor verlassen können.
Anonymous-FTP FTP anonymous User Confirmation Requested Do you want to have anonymous FTP access to this machine? Yes [ No ] Anonymous-FTP verbieten Wenn Sie die vorgegebene Auswahl &gui.no; mit der Taste Enter bestätigen, können Benutzer, die ein Konto und ein Passwort auf dem System besitzen, immer noch mit FTP auf das System zugreifen. Anonymous-FTP erlauben Wenn Sie Anonymous-FTP erlauben, darf jeder auf Ihr System zugreifen. Bedenken Sie die Folgen für die Systemsicherheit (siehe ) bevor Sie diese Option aktivieren. Um Anonymous-FTP zu aktivieren, wählen Sie mit den Pfeiltasten &gui.yes; aus und drücken Sie die Taste Enter. Es erscheint ein ähnlicher Bildschirm wie der folgende:
Anonymous-FTP konfigurieren
Mit der Taste F1 rufen Sie die Hilfe auf: This screen allows you to configure the anonymous FTP user. The following configuration values are editable: UID: The user ID you wish to assign to the anonymous FTP user. All files uploaded will be owned by this ID. Group: Which group you wish the anonymous FTP user to be in. Comment: String describing this user in /etc/passwd FTP Root Directory: Where files available for anonymous FTP will be kept. Upload subdirectory: Where files uploaded by anonymous FTP users will go. Das FTP-Wurzelverzeichnis wird per Voreinstellung in /var angelegt. Wenn in /var zu wenig Platz vorhanden ist, können Sie das FTP-Wurzelverzeichnis beispielsweise nach /usr/ftp verlegen. Wenn Sie mit den Einstellungen zufrieden sind, drücken Sie die Taste Enter. User Confirmation Requested Create a welcome message file for anonymous FTP users? [ Yes ] No Wenn Sie &gui.yes; auswählen und mit Enter bestätigen, können Sie die Begrüßungsmeldung des FTP-Servers in einem Editor ändern.
Begrüßungsmeldung des FTP-Servers editieren
Der Editor, in dem Sie sich befinden, heißt ee. Folgen Sie den Anweisungen, um die Meldung zu editieren. Sie können die Meldung auch später in einem Editor Ihrer Wahl editieren. Merken Sie sich dazu den Dateinamen, der im Editor unten angezeigt wird. Wenn Sie die Taste Esc drücken, erscheint ein Menü, in dem a) leave editor vorgewählt ist. Drücken Sie die Taste Enter, um den Editor zu verlassen. Falls Sie Änderungen vorgenommen haben, bestätigen Sie die Änderungen nochmals mit Enter.
Network-File-System einrichten Mit dem Network-File-System (NFS) können Sie über ein Netzwerk auf Dateien zugreifen. Ein Rechner kann NFS-Server, NFS-Client oder beides sein. NFS wird in besprochen. NFS-Server einrichten User Confirmation Requested Do you want to configure this machine as an NFS server? Yes [ No ] Wenn Sie keinen NFS-Server benötigen, wählen Sie &gui.no; aus und bestätigen Sie mit Enter. Wenn Sie &gui.yes; auswählen, erscheint der Hinweis, dass die Datei exports angelegt werden muss. Message Operating as an NFS server means that you must first configure an /etc/exports file to indicate which hosts are allowed certain kinds of access to your local filesystems. Press [Enter] now to invoke an editor on /etc/exports [ OK ] Drücken Sie Enter und es wird ein Editor gestartet, in dem Sie die Datei exports editieren können.
<filename>exports</filename> editieren
Folgen Sie den Anweisungen, um Dateisysteme zu exportieren. Sie können die Datei auch später in einem Editor Ihrer Wahl editieren. Merken Sie sich dazu den Dateinamen, der im Editor unten angezeigt wird. Drücken Sie die Taste Esc und es erscheint ein Menü, in dem a) leave editor vorgewählt ist. Drücken Sie die Taste Enter, um den Editor zu verlassen.
<acronym>NFS</acronym>-Client einrichten Mit einem NFS-Client können Sie auf NFS-Server zugreifen. User Confirmation Requested Do you want to configure this machine as an NFS client? Yes [ No ] Wählen Sie entweder &gui.yes; oder &gui.no; aus und drücken Sie Enter.
Die Systemkonsole einrichten Sie können verschiedene Merkmale der Systemkonsole anpassen. User Confirmation Requested Would you like to customize your system console settings? [ Yes ] No Wenn Sie die Merkmale der Systemkonsole anpassen wollen, wählen Sie &gui.yes; aus und drücken Sie die Taste Enter.
Merkmale der Systemkonsole
Oft wird ein Bildschirmschoner auf der Konsole aktiviert. Wälen Sie mit den Pfeiltasten Saver aus und drücken Sie die Taste Enter.
Bildschirmschoner auswählen
Wählen Sie den gewünschten Bildschirmschoner mit den Pfeiltasten aus und drücken Sie Enter. Das Konfigurationsmenü der Systemkonsole erscheint wieder. In der Voreinstellung wird der Bildschirmschoner nach 300 Sekunden aktiviert. Um diese Zeitspanne zu ändern, wählen Sie wieder Saver aus. Mit den Pfeiltasten wählen Sie dann Timeout aus und drücken Enter. Es erscheint ein Eingabefenster:
Den Bildschirmschoner einstellen
Ändern Sie die Zeitspanne und wählen Sie &gui.ok; aus. Mit Enter kehren Sie in das Konfigurationsmenü der Systemkonsole zurück.
Die Konfiguration der Systemkonsole verlassen
Um die Nacharbeiten fortzuführen, wählen Sie Exit aus und drücken Sie Enter.
Die Zeitzone einstellen Wenn Sie die Zeitzone richtig einstellen, kann Ihr Rechner automatisch regional bedingte Zeitumstellungen ausführen und andere von der Zeitzone abhängige Funktionen handhaben. Das folgende Beispiel gilt für den Osten der USA. Ihre Auswahl hängt vom geographischen Standort Ihres Rechners ab. User Confirmation Requested Would you like to set this machine's time zone now? [ Yes ] No Um die Zeitzone einzustellen, wählen Sie &gui.yes; und drücken Enter. User Confirmation Requested Is this machine's CMOS clock set to UTC? If it is set to local time or you don't know, please choose NO here! Yes [ No ] Je nachdem ob die Systemzeit die Zeitzone UTC verwendet, wählen Sie &gui.yes; oder &gui.no; aus. Bestätigen Sie die Auswahl mit der Taste Enter.
Das Gebiet auswählen
Wählen Sie mit den Pfeiltasten das richtige Gebiet aus und drücken Sie Enter.
Das Land auswählen
Wählen Sie mit den Pfeiltasten das richtige Land aus und drücken Sie Enter.
Die Zeitzone auswählen
Wählen Sie mit den Pfeiltasten die richtige Zeitzone aus drücken Sie Enter. Confirmation Does the abbreviation 'EDT' look reasonable? [ Yes ] No Wenn die angezeigte Abkürzung der Zeitzone richtig ist, bestätigen Sie diese mit der Taste Enter.
Linux-Kompatibilität User Confirmation Requested Would you like to enable Linux binary compatibility? [ Yes ] No Wenn Sie &gui.yes; auswählen und Enter drücken, können Sie Linux-Software auf &os; laufen lassen. Später wird dazu die notwendige Software installiert. Wenn Sie über FTP installieren, müssen Sie mit dem Internet verbunden sein. Einige FTP-Server bieten nicht alle verfügbare Software an. Es kann sein, dass die nötige Software für die Linux-Kompatibilität nicht installiert werden kann, dies können Sie später jedoch nachholen. Die Maus konfigurieren Mit einer 3-Tasten-Maus können Sie Texte auf der Konsole und in Programmen markieren und einfügen (cut and paste). Wenn Sie eine 2-Tasten-Maus besitzen, können Sie eine 3-Tasten-Maus emulieren. Lesen Sie dazu nach der Installation die Hilfeseite &man.moused.8;. Das folgende Beispiel zeigt die Konfiguration einer nicht-USB-Maus (PS/2 oder serielle Maus): User Confirmation Requested Does this system have a non-USB mouse attached to it? [ Yes ] No Wählen Sie &gui.no; für eine USB-Maus und &gui.yes; für eine andere Maus aus und drücken Sie Enter.
Das Mausprotokoll festlegen
Markieren Sie mit den Pfeiltasten Type und drücken Sie press Enter.
Das Mausprotokoll festlegen
Im Beispiel wurde eine PS/2-Maus verwendet, sodass die Vorgabe Auto passend war. Sie können das Protokoll mit den Pfeiltasten ändern. Stellen Sie sicher, dass &gui.ok; aktiviert ist und verlassen Sie das Menü mit der Taste Enter.
Den Mausport einstellen
Wählen Sie mit den Pfeiltasten Port und drücken Sie die Taste Enter.
Den Mausport einstellen
Im Beispiel wurde eine PS/2-Maus verwendet, sodass die Vorgabe PS/2 richtig war. Sie können den Port mit den Pfeiltasten ändern. Bestätigen Sie die Auswahl mit der Taste Enter.
Den Mouse-Daemon aktivieren
Wählen Sie nun mit den Pfeiltasten Enable aus und drücken Sie die Taste Enter, um den Mouse-Daemon zu aktivieren und zu testen.
Den Mouse-Daemon testen
Bewegen Sie die Maus hin und her und prüfen Sie, dass sich der Mauszeiger entsprechend bewegt. Wenn alles in Ordnung ist, wählen Sie &gui.yes; aus und drücken Sie Enter. Wenn sich die Maus nicht richtig verhält, wurde sie nicht korrekt konfiguriert. Wählen Sie in diesem Fall &gui.no; und versuchen Sie, die Einstellungen zu korrigieren. Um mit den Nacharbeiten fortzufahren, wählen Sie mit den Pfeiltasten Exit aus und drücken Sie Enter.
Tom Rhodes Beigetragen von Weitere Netzwerkdienste einrichten Anfänger ohne Vorwissen finden das Einrichten von Netzwerkdiensten oft deprimierend. Netzwerke und das Internet sind für moderne Betriebssysteme von entscheidender Bedeutung. Es ist daher wichtig, die Netzwerkfunktionen von &os; zu kennen. Die von &os; angebotenen Netzwerkdienste können Sie während der Installation kennen lernen. Netzwerkdienste sind Programme, die Eingaben aus dem Netzwerk entgegennehmen. Es wird große Mühe darauf verwendet, dass diese Programme keinen Schaden verursachen. Leider können auch Programmierern Fehler unterlaufen und es gibt Fälle, in denen Fehler in Netzwerkdiensten von Angreifern ausgenutzt wurden. Es ist daher wichtig, dass Sie nur Dienste aktivieren, die Sie benötigen. Im Zweifallsfall sollten Sie einen Dienst solange nicht aktivieren, bis Sie herausfinden, dass Sie den Dienst benötigen. Einen Dienst können Sie später immer noch mit sysinstall oder in der Datei /etc/rc.conf aktivieren. Wählen Sie den Menüpunkt Networking und es erscheint ein Menü wie das nachstehende:
Netzwerkdienste – obere Hälfte
Die erste Option, Interfaces, wurde schon in konfiguriert. Sie können daher diesen Punkt überspringen. Der Punkt AMD aktiviert einen Dienst, der automatisch Dateisysteme einhängt. Normalerweise wird der Dienst zusammen mit dem NFS-Protokoll (siehe unten) verwendet, um automatisch entfernte Dateisysteme einzuhängen. Dieser Menüpunkt erfordert keine weitere Konfiguration. Der nächste Menüpunkt ist AMD Flags. Wenn Sie den Punkt auswählen, erscheint ein Fenster, in dem Sie AMD-spezifische Optionen eingeben können. Die nachstehenden Optionen sind schon vorgegeben: -a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map Die Option legt das Verzeichnis fest (hier /.amd_mnt), unter dem Dateisysteme eingehangen werden. Die Option legt die Protokolldatei fest. Wenn syslogd verwendet wird, werden alle Meldungen an den Daemon syslogd gesendet. Das Verzeichnis /host dient zum Zugriff auf exportierte Verzeichnisse von entfernten Rechnern, das Verzeichnis /net dient zum Zugriff auf exportierte Verzeichnisse von entfernten IP-Adressen. Die Datei /etc/amd.map enthält die Einstellungen für von AMD verwaltete Dateisysteme. FTP anonymous Die Auswahl Anon FTP erlaubt Anonymous-FTP-Verbindungen. Wählen Sie diese Option, wenn Sie einen Anonymous-FTP-Server einrichten wollen. Seien Sie sich über die Sicherheitsrisiken bewusst, wenn Sie Anonymous-FTP erlauben. Die Sicherheitsrisiken und die Konfiguration von Anonymous-FTP werden in einem gesonderten Fenster erklärt, das aufgeht, wenn Sie diese Option auswählen. Der Menüpunkt Gateway konfiguriert das System, wie vorher erläutert, als Gateway. Wenn Sie während der Installation den Rechner aus Versehen als Gateway konfiguriert haben, können Sie dies hier wieder rückgängig machen. Der Menüpunkt Inetd konfiguriert, wie schon oben besprochen, den Daemon &man.inetd.8;. Die Auswahl Mail konfiguriert den Mail Transfer Agent (MTA) des Systems. Wenn Sie diesen Punkt auswählen, erscheint das folgende Menü:
Den <acronym>MTA</acronym> festlegen
In diesem Menü wählen Sie aus, welcher MTA installiert und benutzt wird. Ein MTA ist ein Mail-Server, der E-Mails an lokale Empfänger oder an Empfänger im Internet ausliefert. Die Auswahl Sendmail installiert das verbreitete sendmail (in &os; die Voreinstellung). Die Auswahl Sendmail local verwendet sendmail als MTA, deaktiviert aber den Empfang von E-Mails aus dem Internet. Postfix und Exim sind ähnlich wie Sendmail. Beide Programme liefern E-Mails aus und einige Anwender verwenden lieber eines der beiden Programme als MTA. Nachdem Sie einen MTA ausgewählt haben (oder beschlossen haben, keinen MTA zu benutzen), erscheint wieder das Menü Netzwerkdienste. Der nächste Menüpunkt ist NFS client. Die Auswahl NFS client erlaubt es dem System, mit einem NFS-Server zu kommunizieren. Ein NFS-Server stellt mithilfe des NFS-Protokolls Dateisysteme für andere Systeme auf dem Netzwerk bereit. Wenn der Rechner alleine für sich steht, können Sie diesen Menüpunkt auslassen. Wahrscheinlich müssen Sie noch weitere Einstellungen vornehmen; der beschreibt die Einstellungen für NFS-Server und NFS-Clients. Der Menüpunkt NFS server richtet einen NFS-Server auf dem Rechner ein. Durch die Auswahl dieses Punktes werden die für Remote-Procedure-Call (RPC) benötigten Dienste gestartet. Mit RPC werden Routinen auf entfernten Rechnern aufgerufen. Der nächste Punkt, Ntpdate, konfiguriert die Zeitsynchronisation. Wenn Sie diesen Punkt auswählen, erscheint das folgende Menü:
Ntpdate konfigurieren
Wählen Sie aus diesem Menü einen nahe liegenden Server aus. Die Zeitsynchronisation mit einem nahe liegenden Server ist, wegen der geringeren Latenzzeit, genauer als die Synchronisation mit einem weiter entfernten Server. Der nächste Menüpunkt ist PCNFSD. Wenn Sie diesen Punkt auswählen, wird net/pcnfsd aus der Ports-Sammlung installiert. Dieses nützliche Werkzeug stellt NFS-Authentifizierungsdienste für Systeme bereit, die diese Dienste nicht anbieten (beispielsweise Microsofts &ms-dos;). Um die nächsten Menüpunkte zu sehen, müssen Sie herunterblättern:
Netzwerkdienste – untere Hälfte
Die Programme &man.rpcbind.8;, &man.rpc.statd.8; und &man.rpc.lockd.8; werden für Remote-Procedure-Calls (RPC) benutzt. Das Programm rpcbind verwaltet die Kommunikation zwischen NFS-Servern und NFS-Clients und ist für den Betrieb eines NFS-Servers erforderlich. Der Daemon rpc.statd hält zusammen mit dem Daemon rpc.statd des entfernten Rechners den Status der Verbindung. Der Status einer Verbindung wird normalerweise in der Datei /var/db/statd.status festgehalten. Der nächste Menüpunkt ist rpc.lockd, der Dateisperren (file locks) bereitstellt. rpc.lockd wird normalerweise zusammen mit dem Daemon rpc.statd benutzt, der festhält welche Rechner Sperren anfordern und wie oft Sperren angefordert werden. Beide Dienste sind wunderbar zur Fehlersuche geeignet, doch werden Sie zum Betrieb von NFS-Servern und NFS-Clients nicht benötigt. Der nächste Punkt in der Auswahl ist Routed, der Routing-Daemon. Das Programm &man.routed.8; verwaltet die Routing-Tabelle, entdeckt Multicast-Router und stellt die Routing-Tabelle auf Anfrage jedem mit dem Netz verbundenen Rechner zur Verfügung. Der Daemon wird hauptsächlich auf Gateways eines lokalen Netzes eingesetzt. Wenn Sie den Punkt auswählen müssen Sie den Ort des Programms angeben. Die Vorgabe können Sie mit der Taste Enter übernehmen. Anschließend werden Sie nach den Kommandozeilenoptionen für routed gefragt. Vorgegeben ist die Option . Der nächste Menüpunkt ist Rwhod. Wenn Sie diesen Punkt auswählen, wird während des Systemstarts der Daemon &man.rwhod.8; gestartet. Das Kommando rwhod schickt Broadcast-Meldungen in das Netz oder empfängt diese im Consumer-Mode. Die Funktion der Werkzeuge wird in den Hilfeseiten &man.ruptime.1; und &man.rwho.1; beschrieben. Der vorletzte Menüpunkt aktiviert den Daemon &man.sshd.8;, den OpenSSH Secure-Shell-Server. Wo möglich sollte SSH anstelle von telnet und FTP eingesetzt werden. Der Secure-Shell-Server erstellt verschlüsselte und daher sichere Verbindungen zwischen zwei Rechnern. TCP Extensions ist der letzte Menüpunkt. Diese Auswahl aktiviert die TCP-Erweiterungen aus RFC 1323 und RFC 1644. Obwohl dies auf vielen Rechnern die Verbindungsgeschwindigkeit erhöht, können durch diese Option auch Verbindungsabbrüche auftreten. Auf Servern sollte diese Option nicht aktiviert werden, auf Einzelmaschinen kann diese Option nützlich sein. Wenn Sie die Netzwerkdienste eingerichtet haben, blättern Sie zum Menüpunkt Exit hoch, um die Nacharbeiten fortzusetzen.
Den X-Server einrichten Seit &os; 5.3-RELEASE ist die Konfiguration des X-Servers nicht mehr in sysinstall enthalten. Daher können Sie den X-Server erst nach der erfolgreichen Installation von &os; einrichten. Weitere Informationen zur Installation und Konfiguration des X-Servers enthält des Handbuchs. Sie können diesen Abschnitt überspringen, wenn Sie eine ältere Version als &os; 5.3-RELEASE installieren. Wenn Sie eine graphische Benutzeroberfläche, wie KDE oder GNOME verwenden wollen, müssen Sie einen X-Server einrichten. Damit &xfree86; unter einem anderen Benutzer als root läuft, muss das Paket x11/wrapper installiert sein. Ab &os; 4.7 wird das Paket in der Voreinstellung installiert, in früheren &os;-Versionen müssen Sie das Paket extra installieren. Prüfen Sie auf der Website von &xfree86;, ob Ihre Grafikkarte unterstützt wird. User Confirmation Requested Would you like to configure your X server at this time? [ Yes ] No Sie müssen die Spezifikationen Ihres Monitors und Ihrer Grafikkarte kennen. Wenn Sie falsche Werte eingeben, können die Geräte beschädigt werden. Wenn Sie die Spezifikationen nicht kennen, wählen Sie &gui.no; aus. Wenn Sie die nötigen Informationen haben, können Sie den X-Server nachträglich einrichten. Führen Sie dazu sysinstall (vor &os; 5.2 /stand/sysinstall) aus und wählen Configure und dann XFree86. Eine fehlerhafte Konfiguration des X-Servers kann dazu führen, dass der Rechner hängen bleibt. Daher wird oft empfohlen, den X-Server erst nach Abschluss der Installation einzurichten. Wenn Sie die Spezifikationen Ihres Monitors und Ihrer Grafikkarte kennen, wählen Sie &gui.yes; aus. Um den X-Server einzurichten, drücken Sie Enter.
Die Konfigurationsmethode auswählen
Es gibt verschiedene Methoden, den X-Server einzurichten. Wählen Sie mit den Pfeiltasten eine Methode aus und drücken Sie Enter. Lesen Sie die Anweisungen bitte sorgfältig. Bei den Methoden xf86cfg und xf86cfg -textmode kann der Bildschirm kurzfristig dunkel werden. Der Start dauert vielleicht einige Sekunden, seien Sie bitte geduldig. Im folgenden Beispiel wird das Werkzeug xf86config verwendet. Die Eingaben sind abhängig von der Hardware; Ihre Eingaben werden sich wahrscheinlich von den gezeigten unterscheiden. Message You have configured and been running the mouse daemon. Choose "/dev/sysmouse" as the mouse port and "SysMouse" or "MouseSystems" as the mouse protocol in the X configuration utility. [ OK ] [ Press enter to continue ] Dieser Bildschirm zeigt an, dass der vorher konfigurierte Maus-Daemon gefunden wurde. Um fortzufahren, drücken Sie die Taste Enter. Das Programm xf86config zeigt eine kurze Einführung an: This program will create a basic XF86Config file, based on menu selections you make. The XF86Config file usually resides in /usr/X11R6/etc/X11 or /etc/X11. A sample XF86Config file is supplied with XFree86; it is configured for a standard VGA card and monitor with 640x480 resolution. This program will ask for a pathname when it is ready to write the file. You can either take the sample XF86Config as a base and edit it for your configuration, or let this program produce a base XF86Config file for your configuration and fine-tune it. Before continuing with this program, make sure you know what video card you have, and preferably also the chipset it uses and the amount of video memory on your video card. SuperProbe may be able to help with this. Press enter to continue, or ctrl-c to abort. Nachdem Sie Enter gedrückt haben, können Sie die Maus einrichten. Folgen Sie den Anweisungen und wählen Sie für das Mausprotokoll Mouse Systems aus. Der Mausport ist /dev/sysmouse, auch wenn Sie eine PS/2-Maus benutzen. First specify a mouse protocol type. Choose one from the following list: 1. Microsoft compatible (2-button protocol) 2. Mouse Systems (3-button protocol) & FreeBSD moused protocol 3. Bus Mouse 4. PS/2 Mouse 5. Logitech Mouse (serial, old type, Logitech protocol) 6. Logitech MouseMan (Microsoft compatible) 7. MM Series 8. MM HitTablet 9. Microsoft IntelliMouse If you have a two-button mouse, it is most likely of type 1, and if you have a three-button mouse, it can probably support both protocol 1 and 2. There are two main varieties of the latter type: mice with a switch to select the protocol, and mice that default to 1 and require a button to be held at boot-time to select protocol 2. Some mice can be convinced to do 2 by sending a special sequence to the serial port (see the ClearDTR/ClearRTS options). Enter a protocol number: 2 You have selected a Mouse Systems protocol mouse. If your mouse is normally in Microsoft-compatible mode, enabling the ClearDTR and ClearRTS options may cause it to switch to Mouse Systems mode when the server starts. Please answer the following question with either 'y' or 'n'. Do you want to enable ClearDTR and ClearRTS? n You have selected a three-button mouse protocol. It is recommended that you do not enable Emulate3Buttons, unless the third button doesn't work. Please answer the following question with either 'y' or 'n'. Do you want to enable Emulate3Buttons? y Now give the full device name that the mouse is connected to, for example /dev/tty00. Just pressing enter will use the default, /dev/mouse. On FreeBSD, the default is /dev/sysmouse. Mouse device: /dev/sysmouse Als Nächstes wird die Tastatur konfiguriert. Im Beispiel wurde Generic 101-key PC ausgewählt. Die Frage nach der Variante können Sie mit einem beliebigen Namen beantworten. Um die voreingestellte Variante zu übernehmen, drücken Sie einfach die Taste Enter. Please select one of the following keyboard types that is the better description of your keyboard. If nothing really matches, choose 1 (Generic 101-key PC) 1 Generic 101-key PC 2 Generic 102-key (Intl) PC 3 Generic 104-key PC 4 Generic 105-key (Intl) PC 5 Dell 101-key PC 6 Everex STEPnote 7 Keytronic FlexPro 8 Microsoft Natural 9 Northgate OmniKey 101 10 Winbook Model XP5 11 Japanese 106-key 12 PC-98xx Series 13 Brazilian ABNT2 14 HP Internet 15 Logitech iTouch 16 Logitech Cordless Desktop Pro 17 Logitech Internet Keyboard 18 Logitech Internet Navigator Keyboard 19 Compaq Internet 20 Microsoft Natural Pro 21 Genius Comfy KB-16M 22 IBM Rapid Access 23 IBM Rapid Access II 24 Chicony Internet Keyboard 25 Dell Internet Keyboard Enter a number to choose the keyboard. 1 Please select the layout corresponding to your keyboard 1 U.S. English 2 U.S. English w/ ISO9995-3 3 U.S. English w/ deadkeys 4 Albanian 5 Arabic 6 Armenian 7 Azerbaidjani 8 Belarusian 9 Belgian 10 Bengali 11 Brazilian 12 Bulgarian 13 Burmese 14 Canadian 15 Croatian 16 Czech 17 Czech (qwerty) 18 Danish Enter a number to choose the country. Press enter for the next page 1 Please enter a variant name for 'us' layout. Or just press enter for default variant us Please answer the following question with either 'y' or 'n'. Do you want to select additional XKB options (group switcher, group indicator, etc.)? n Als Nächstes wird der Monitor konfiguriert. Überschreiten Sie die Werte Ihres Monitors nicht, da der Monitor sonst Schaden nehmen könnte. Im Zweifelsfall verschieben Sie die Konfiguration solange, bis Sie die richtigen Werte kennen. Now we want to set the specifications of the monitor. The two critical parameters are the vertical refresh rate, which is the rate at which the whole screen is refreshed, and most importantly the horizontal sync rate, which is the rate at which scanlines are displayed. The valid range for horizontal sync and vertical sync should be documented in the manual of your monitor. If in doubt, check the monitor database /usr/X11R6/lib/X11/doc/Monitors to see if your monitor is there. Press enter to continue, or ctrl-c to abort. You must indicate the horizontal sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry- standard monitor types, or give a specific range. It is VERY IMPORTANT that you do not specify a monitor type with a horizontal sync range that is beyond the capabilities of your monitor. If in doubt, choose a conservative setting. hsync in kHz; monitor type with characteristic modes 1 31.5; Standard VGA, 640x480 @ 60 Hz 2 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz 3 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600) 4 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz 5 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz 6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz 7 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz 8 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz 9 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz 10 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz 11 Enter your own horizontal sync range Enter your choice (1-11): 6 You must indicate the vertical sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry- standard monitor types, or give a specific range. For interlaced modes, the number that counts is the high one (e.g. 87 Hz rather than 43 Hz). 1 50-70 2 50-90 3 50-100 4 40-150 5 Enter your own vertical sync range Enter your choice: 2 You must now enter a few identification/description strings, namely an identifier, a vendor name, and a model name. Just pressing enter will fill in default names. The strings are free-form, spaces are allowed. Enter an identifier for your monitor definition: Hitachi Im nächsten Schritt müssen Sie einen Treiber für Ihre Grafikkarte auswählen. Wenn Sie Ihre Karte in der Liste überschlagen haben, drücken Sie weiter Enter; die Anzeige kehrt zum Anfang der Liste zurück. Nachstehend sehen Sie einen Auszug der Liste: Now we must configure video card specific settings. At this point you can choose to make a selection out of a database of video card definitions. Because there can be variation in Ramdacs and clock generators even between cards of the same model, it is not sensible to blindly copy the settings (e.g. a Device section). For this reason, after you make a selection, you will still be asked about the components of the card, with the settings from the chosen database entry presented as a strong hint. The database entries include information about the chipset, what driver to run, the Ramdac and ClockChip, and comments that will be included in the Device section. However, a lot of definitions only hint about what driver to run (based on the chipset the card uses) and are untested. If you can't find your card in the database, there's nothing to worry about. You should only choose a database entry that is exactly the same model as your card; choosing one that looks similar is just a bad idea (e.g. a GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of hardware as can be). Do you want to look at the card database? y 288 Matrox Millennium G200 8MB mgag200 289 Matrox Millennium G200 SD 16MB mgag200 290 Matrox Millennium G200 SD 4MB mgag200 291 Matrox Millennium G200 SD 8MB mgag200 292 Matrox Millennium G400 mgag400 293 Matrox Millennium II 16MB mga2164w 294 Matrox Millennium II 4MB mga2164w 295 Matrox Millennium II 8MB mga2164w 296 Matrox Mystique mga1064sg 297 Matrox Mystique G200 16MB mgag200 298 Matrox Mystique G200 4MB mgag200 299 Matrox Mystique G200 8MB mgag200 300 Matrox Productiva G100 4MB mgag100 301 Matrox Productiva G100 8MB mgag100 302 MediaGX mediagx 303 MediaVision Proaxcel 128 ET6000 304 Mirage Z-128 ET6000 305 Miro CRYSTAL VRX Verite 1000 Enter a number to choose the corresponding card definition. Press enter for the next page, q to continue configuration. 288 Your selected card definition: Identifier: Matrox Millennium G200 8MB Chipset: mgag200 Driver: mga Do NOT probe clocks or use any Clocks line. Press enter to continue, or ctrl-c to abort. Now you must give information about your video card. This will be used for the "Device" section of your video card in XF86Config. You must indicate how much video memory you have. It is probably a good idea to use the same approximate amount as that detected by the server you intend to use. If you encounter problems that are due to the used server not supporting the amount memory you have (e.g. ATI Mach64 is limited to 1024K with the SVGA server), specify the maximum amount supported by the server. How much video memory do you have on your video card: 1 256K 2 512K 3 1024K 4 2048K 5 4096K 6 Other Enter your choice: 6 Amount of video memory in Kbytes: 8192 You must now enter a few identification/description strings, namely an identifier, a vendor name, and a model name. Just pressing enter will fill in default names (possibly from a card definition). Your card definition is Matrox Millennium G200 8MB. The strings are free-form, spaces are allowed. Enter an identifier for your video card definition: Jetzt wird die Auflösung eingestellt. Üblich verwendete Auflösungen sind 640x480, 800x600 und 1024x768. Die verwendete Auflösung hängt von den Fähigkeiten der Grafikkarte, der Monitorgröße und Ihren Sehgewohnheiten ab. Wenn Sie eine Farbtiefe festlegen, wählen Sie die höchste aus, die von der Grafikkarte unterstützt wird. For each depth, a list of modes (resolutions) is defined. The default resolution that the server will start-up with will be the first listed mode that can be supported by the monitor and card. Currently it is set to: "640x480" "800x600" "1024x768" "1280x1024" for 8-bit "640x480" "800x600" "1024x768" "1280x1024" for 16-bit "640x480" "800x600" "1024x768" "1280x1024" for 24-bit Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server. 1 Change the modes for 8-bit (256 colors) 2 Change the modes for 16-bit (32K/64K colors) 3 Change the modes for 24-bit (24-bit color) 4 The modes are OK, continue. Enter your choice: 2 Select modes from the following list: 1 "640x400" 2 "640x480" 3 "800x600" 4 "1024x768" 5 "1280x1024" 6 "320x200" 7 "320x240" 8 "400x300" 9 "1152x864" a "1600x1200" b "1800x1400" c "512x384" Please type the digits corresponding to the modes that you want to select. For example, 432 selects "1024x768" "800x600" "640x480", with a default mode of 1024x768. Which modes? 432 You can have a virtual screen (desktop), which is screen area that is larger than the physical screen and which is panned by moving the mouse to the edge of the screen. If you don't want virtual desktop at a certain resolution, you cannot have modes listed that are larger. Each color depth can have a differently-sized virtual screen Please answer the following question with either 'y' or 'n'. Do you want a virtual screen that is larger than the physical screen? n For each depth, a list of modes (resolutions) is defined. The default resolution that the server will start-up with will be the first listed mode that can be supported by the monitor and card. Currently it is set to: "640x480" "800x600" "1024x768" "1280x1024" for 8-bit "1024x768" "800x600" "640x480" for 16-bit "640x480" "800x600" "1024x768" "1280x1024" for 24-bit Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server. 1 Change the modes for 8-bit (256 colors) 2 Change the modes for 16-bit (32K/64K colors) 3 Change the modes for 24-bit (24-bit color) 4 The modes are OK, continue. Enter your choice: 4 Please specify which color depth you want to use by default: 1 1 bit (monochrome) 2 4 bits (16 colors) 3 8 bits (256 colors) 4 16 bits (65536 colors) 5 24 bits (16 million colors) Enter a number to choose the default depth. 4 Schließlich müssen die Einstellungen gesichert werden. Speichern Sie die Einstellungen in der Datei /etc/X11/XF86Config. I am going to write the XF86Config file now. Make sure you don't accidently overwrite a previously configured one. Shall I write it to /etc/X11/XF86Config? y Eine fehlgeschlagene Konfiguration können Sie wiederholen, indem Sie [ Yes ] auswählen, wenn die nachstehende Meldung erscheint: User Confirmation Requested The XFree86 configuration process seems to have failed. Would you like to try again? [ Yes ] No Wenn Sie Schwierigkeiten haben, &xfree86; einzurichten, wählen Sie [ No ] und drücken Sie Enter, um mit den Nacharbeiten fortzufahren. Die Konfiguration können Sie später vornehmen, indem Sie das Kommando xf86cfg -textmode oder das Kommando xf86config als Benutzer root ausführen. Eine weitere Konfigurationsmethode wird in beschrieben. Wenn Sie &xfree86; jetzt nicht einrichten wollen, gelangen Sie zur Paketauswahl. Den X-Server können Sie jederzeit mit der Tastenkombination Ctrl Alt Backspace beenden. Benutzen Sie die Tastenkombination um Geräteschäden durch falsche Einstellungen zu vermeiden. Mit den Tastenkombinationen CtrlAlt+ oder CtrlAlt- können Sie die Auflösung eines laufenden X-Servers verändern. Nach der Installation können Sie, wenn &xfree86; läuft, mit xvidtune die Bildschirmhöhe und Bildschirmbreite einstellen und den Bildschirm zentrieren. Beachten Sie, dass falsche Einstellungen Ihre Geräte beschädigen können. Wenn Sie Zweifel haben, führen Sie xvidtune nicht aus und nehmen die Einstellungen am Monitor selbst vor. Dadurch kann zwar der Textmodus verstellt werden, aber Geräteschäden werden auf jeden Fall vermieden. Lesen Sie bitte die Hilfeseite &man.xvidtune.1; bevor Sie Einstellungen treffen. Nach der erfolgreichen &xfree86;-Konfiguration folgt die Auswahl der Arbeitsoberfläche.
Die X-Arbeitsoberfläche auswählen Seit &os; 5.3-RELEASE ist die Konfiguration der Arbeitsoberfläche nicht mehr in sysinstall enthalten. Daher können Sie die Arbeitsoberfläche erst nach der erfolgreichen Installation von &os; einrichten. Weitere Informationen zur Installation und Konfiguration der Arbeitsoberfläche enthält des Handbuchs. Sie können diesen Abschnitt überspringen, wenn Sie eine ältere Version als &os; 5.3-RELEASE installieren. Es existieren viele verschiedene Arbeitsoberflächen: von einfachen Arbeitsumgebungen bis zu voll ausgereiften Arbeitsoberflächen mit zahlreichen Programmen. Einige Oberflächen benötigen nur wenig Plattenplatz und Speicher, andere Oberflächen mit mehr Funktionen benötigen mehr Ressourcen. Probieren Sie einige der Oberflächen aus, um herauszufinden, welche Oberfläche Ihnen am besten gefällt. Die Oberflächen befinden sich in der Ports-Sammlung oder liegen als Paket vor und können nach der &os;-Installation hinzugefügt werden. Sie können eine Oberfläche als Standardoberfläche festlegen. Mit dieser Oberfläche können Sie sofort nach Abschluss der Installation arbeiten.
Die Standardoberfläche festlegen
Wählen Sie mit den Pfeiltasten eine Oberfläche aus und drücken Sie die Taste Enter. Die ausgewählte Oberfläche wird danach installiert.
Pakete installieren Pakete (packages) sind schon übersetzte Programme und sind ein zweckmäßiger Weg, Programme zu installieren. Beispielhaft wird im Folgenden die Installation eines Paketes gezeigt. In diesem Schritt können auch weitere Pakete installiert werden. Nach der Installation können Sie mit sysinstall (vor &os; 5.2 /stand/sysinstall) zusätzliche Pakete installieren. User Confirmation Requested The FreeBSD package collection is a collection of hundreds of ready-to-run applications, from text editors to games to WEB servers and more. Would you like to browse the collection now? [ Yes ] No Nachdem Sie [ Yes ] ausgewählt und Enter gedrückt haben, gelangen Sie in die Paketauswahl:
Die Paketkategorie aussuchen
Es stehen nur die Pakete zur Auswahl, die sich auf dem momentanen Installationsmedium befinden. Wenn Sie All auswählen, werden alle Pakete angezeigt. Sie können die Anzeige auf die Pakete einer Kategorie beschränken. Wählen Sie mit den Pfeiltasten die Kategorie aus und drücken Sie die Taste Enter. Ein Menü mit allen Paketen der ausgewählten Kategorie erscheint:
Pakete auswählen
Im gezeigten Bildschirm ist das Paket bash ausgewählt. Sie können weitere Pakete auswählen, indem Sie die Pakete mit den Pfeiltasten markieren und die Taste Space drücken. In der unteren linken Ecke des Bildschirms wird eine Kurzbeschreibung des ausgewählten Pakets angezeigt. Die Taste Tab wechselt zwischen dem zuletzt ausgesuchten Paket, &gui.ok; und &gui.cancel;. Wenn Sie die zu installierenden Pakete ausgewählt haben, drücken Sie einmal Tab, um &gui.ok; zu markieren. Drücken Sie dann Enter, um wieder in die Paketauswahl zu gelangen. Die rechte und die linke Pfeiltaste wechseln ebenfalls zwischen &gui.ok; und &gui.cancel;. Mit diesen Tasten können Sie auch &gui.ok; auswählen und dann mit Enter zur Paketauswahl zurückkehren.
Pakete installieren
Benutzen Sie die Taste Tab und die Pfeiltasten um [ Install ] auszuwählen. Drücken Sie anschließend die Taste Enter. Sie müssen jetzt die Installation der Pakete bestätigen:
Paketinstallation bestätigen
Die Paketinstallation wird gestartet, wenn Sie &gui.ok; auswählen und Enter drücken. Den Verlauf der Installation können Sie anhand der angezeigten Meldungen verfolgen; achten Sie dabei auf Fehlermeldungen. Nach der Paketinstallation können Sie die Nacharbeiten fortsetzen. Wenn Sie keine Pakete ausgewählt haben und die Nacharbeiten fortsetzen möchten, wählen Sie trotzdem [ Install ] aus.
Benutzer und Gruppen anlegen Während der Installation sollten Sie mindestens ein Benutzerkonto anlegen, sodass Sie das System ohne das Konto root benutzen können. Normalerweise ist die Root-Partition recht klein und läuft schnell voll, wenn Sie Anwendungen unter dem root-Konto laufen lassen. Vor der größten Gefahr warnt der nachstehende Hinweis: User Confirmation Requested Would you like to add any initial user accounts to the system? Adding at least one account for yourself at this stage is suggested since working as the "root" user is dangerous (it is easy to do things which adversely affect the entire system). [ Yes ] No Der Bildschirm auf Deutsch: Bestätigung erforderlich Wollen Sie Benutzerkonten anlegen? Wir empfehlen, mindestens ein Konto für sich selbst anzulegen, da es gefährlich ist, unter "root" zu arbeiten (es ist leicht, Befehle einzugeben, die das System nachhaltig beeinträchtigen). [ Yes ] No Um ein Benutzerkonto anzulegen, wählen Sie &gui.yes; aus und drücken Enter.
Benutzerkonto auswählen
Markieren Sie User mit den Pfeiltasten und drücken Sie die Taste Enter.
Benutzerkonto anlegen
Wählen Sie die Felder zum Ausfüllen mit der Taste Tab aus. Zur Hilfe werden die nachstehenden Beschreibungen werden im unteren Teil des Bildschirms angezeigt: Login ID Der Name des Benutzerkontos (verpflichtend). UID Die numerische ID dieses Kontos. Wenn Sie das Feld leer lassen, wird eine ID automatisch zugeteilt. Group Die diesem Konto zugeordnete Login-Gruppe. Wenn Sie das Feld leer lassen, wird automatisch eine Gruppe zugeteilt. Password Das Passwort des Benutzerkontos. Füllen Sie dieses Feld sehr sorgfätig aus. Full name Der vollständige Name des Benutzers (Kommentarfeld). Member groups Die Gruppen, in denen dieses Konto Mitglied ist (das Konto erhält Zugriffsrechte auf Dateien dieser Gruppe). Home directory Das Heimatverzeichnis des Benutzerkontos. Wenn Sie das Feld leer lassen, wird das Verzeichnis automatisch festgelegt. Login shell Die Login-Shell des Kontos. Wenn Sie das Feld leer lassen, wird /bin/sh als Login-Shell festgesetzt. Im Beispiel wurde die Login-Shell von /bin/sh zu der vorher installierten /usr/local/bin/bash geändert. Tragen Sie keine Shell ein, die nicht existiert, da sich sonst nicht anmelden können. In der BSD-Welt wird häufig die C-Shell benutzt, die Sie mit /bin/tcsh angeben können. Damit ein Wechsel auf den Superuser root möglich ist, wurde dem Benutzerkonto die Gruppe wheel zugeordnet. Wenn Sie zufrieden sind, drücken Sie &gui.ok;. Es erscheint wieder das Benutzer-Menü:
Benutzermenü verlassen
Weitere Gruppen können, wenn Sie die Anforderungen schon kennen, zu diesem Zeitpunkt angelegt werden. Nach der Installation können Sie Gruppen mit dem Werkzeug sysinstall (vor &os; 5.2 /stand/sysinstall) anlegen. Wenn Sie alle Benutzer angelegt haben, wählen Sie mit den Pfeiltasten Exit aus und drücken Sie die Taste Enter.
Das <username>root</username>-Passwort festlegen Message Now you must set the system manager's password. This is the password you'll use to log in as "root". [ OK ] [ Press enter to continue ] Um das root-Passwort festzulegen, drücken Sie die Taste Enter. Sie müssen das Passwort zweimal eingeben. Stellen Sie sicher, dass Sie das Passwort nicht vergessen. Beachten Sie, dass bei der Eingabe das Passwort weder ausgegeben wird noch Sterne angezeigt werden. Changing local password for root. New password : Retype new password : Nach der erfolgreichen Eingabe des Passworts kann die Installation fortgesetzt werden. Die Installation beenden Wenn Sie noch weitere Netzwerkkarten konfigurieren oder weitere Einstellungen vornehmen wollen, können Sie das jetzt tun. Sie können die Einstellungen auch nach der Installation mit sysinstall (/stand/sysinstall vor &os; 5.2) vornehmen. User Confirmation Requested Visit the general configuration menu for a chance to set any last options? Yes [ No ] Um in das Hauptmenü zurückzukehren, wählen Sie mit den Pfeiltasten &gui.no; aus und drücken Sie Enter.
Die Installation beenden
Wählen Sie mit den Pfeiltasten [X Exit Install] aus und drücken Sie die Taste Enter. Sie müssen das Beenden der Installation bestätigen: User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies from the drives). [ Yes ] No Wählen Sie &gui.yes; aus und entfernen Sie die Diskette aus dem Laufwerk, wenn Sie von einer Diskette gestartet haben. Das CD-Laufwerk ist bis zum Neustart des Systems verriegelt. Entfernen Sie die CD zügig wenn der Rechner startet. Achten Sie beim Neustart des Systems auf eventuell auftauchende Fehlermeldungen.
&os; starten Start von &os; auf einem &i386; Wenn alles funktioniert hat, laufen viele Meldungen über den Bildschirm und schließlich erscheint ein Anmeldeprompt. Um sich die Meldungen anzusehen. drücken Sie die Taste Scroll-Lock. Sie können dann mit den Tasten PgUp und PgDn blättern. Wenn Sie erneut Scroll-Lock drücken, kehren Sie zum Anmeldeprompt zurück. Es kann sein, dass der Puffer zu klein ist, um alle Meldungen anzuzeigen. Nachdem Sie sich angemeldet haben, können Sie sich mit dem Kommando dmesg alle Meldungen ansehen. Melden Sie sich bitte mit dem Benutzerkonto an (rpratt im Beispiel), das Sie während der Installation eingerichtet haben. Arbeiten Sie mit root nur dann wenn es erforderlich ist. Die nachfolgende Abbildung zeigt typische Startmeldungen (Versionsangaben entfernt): Copyright (c) 1992-2002 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. Timecounter "i8254" frequency 1193182 Hz CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU) Origin = "AuthenticAMD" Id = 0x580 Stepping = 0 Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX> AMD Features=0x80000800<SYSCALL,3DNow!> real memory = 268435456 (262144K bytes) config> di sn0 config> di lnc0 config> di le0 config> di ie0 config> di fe0 config> di cs0 config> di bt0 config> di aic0 config> di aha0 config> di adv0 config> q avail memory = 256311296 (250304K bytes) Preloaded elf kernel "kernel" at 0xc0491000. Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c. md0: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0 usb0: <VIA 83C572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0 ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at device 10.0 on pci0 ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/2 mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x1 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold ppbus0: IEEE1284 device found /NIBBLE Probing for PnP devices on ppbus0: plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33 ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33 acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4 Mounting root from ufs:/dev/ad0s1a swapon: adding /dev/ad0s1b as swap device Automatic boot in progress... /dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation) /dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation) /dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation) /dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS /dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation) Doing initial network setup: hostname. ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1 ether 52:54:05:de:73:1b lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 Additional routing options: IP gateway=YES TCP keepalive=YES routing daemons:. additional daemons: syslogd. Doing additional network setup:. Starting final network daemons: creating ssh RSA host key Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh/ssh_host_key. Your public key has been saved in /etc/ssh/ssh_host_key.pub. The key fingerprint is: cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com creating ssh DSA host key Generating public/private dsa key pair. Your identification has been saved in /etc/ssh/ssh_host_dsa_key. Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. The key fingerprint is: f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com. setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout starting standard daemons: inetd cron sshd usbd sendmail. Initial rc.i386 initialization:. rc.i386 configuring syscons: blank_time screensaver moused. Additional ABI support: linux. Local package initialization:. Additional TCP options:. FreeBSD/i386 (k6-2.example.com) (ttyv0) login: rpratt Password: Das Erzeugen der RSA- und DSA-Schlüssel kann auf langsamen Maschinen lange dauern. Die Schlüssel werden nur beim ersten Neustart erzeugt, spätere Neustarts sind schneller. Wenn der X-Server konfiguriert ist und eine Oberfläche ausgewählt wurde, können Sie X mit dem Kommando startx starten. Start von &os; auf einer Alpha Alpha Nach der Installation können Sie &os; von der SRM-Eingabeaufforderung mit einem Befehl wie dem folgenden starten: >>>BOOT DKC0 Der Befehl weist die Firmware an, von dem angegebenen Laufwerk zu starten. Damit &os; künftig automatisch startet, geben Sie die folgenden Befehle ein: >>> SET BOOT_OSFLAGS A >>> SET BOOT_FILE '' >>> SET BOOTDEF_DEV DKC0 >>> SET AUTO_ACTION BOOT Beim Start von &os; erscheinen ähnliche Meldungen, wie beim Start von &os; auf einem &i386;-System. &os; herunterfahren Es ist wichtig, dass Sie das Betriebssystem richtig herunterfahren. Wechseln Sie zunächst mit dem Befehl su zum Superuser; Sie müssen dazu das root-Passwort eingeben. Der Wechsel auf den Superuser gelingt nur, wenn der Benutzer ein Mitglied der Gruppe wheel ist. Ansonsten melden Sie sich direkt als Benutzer root an. Der Befehl shutdown -h now hält das System an. The operating system has halted. Please press any key to reboot. Sie können den Rechner ausschalten, nachdem die Meldung Please press any key to reboot erschienen ist. Wenn Sie stattdessen eine Taste drücken, startet das System erneut. Sie können das System auch mit der Tastenkombination Ctrl Alt Del neu starten. Sie sollten diese Tastenkombination allerdings nicht gewohnheitsmäßig benutzen.
Fehlersuche Installation Fehlersuche Dieser Abschnitt behandelt häufig auftretende Installationsprobleme. Weiterhin enthält er Hinweise wie &os; parallel mit &ms-dos; betrieben wird. Wenn etwas schief geht Aufgrund der Beschränkungen der PC-Architektur ist eine zuverlässige Geräteerkennung nicht möglich. Falls die Geräteerkennung fehlschlägt, können Sie einige Dinge versuchen. Prüfen Sie in den Hardware-Notes Ihrer &os;-Version, dass die Hardware lauffähig ist. Wenn Ihre Hardware unterstützt wird und sich der Installationsprozess aufhängt oder sonstige Probleme auftauchen, starten Sie den Rechner neu. Im Kernelkonfigurationsmenü können Sie Ihre Hardware einstellen. Der Kernel auf den Startdisketten verwendet die Werkseinstellungen für IRQs, IO-Adressen und DMA-Kanäle. Geänderte Einstellungen müssen Sie im Kernelkonfigurationsmenü eingeben, damit &os; die Geräte erkennt. Es ist auch möglich, dass die Suche nach einem nicht vorhandenen Gerät dazu führt, dass die Erkennung eines vorhandenen Geräts fehlschlägt. In diesem Fall sollten Sie nicht vorhandene Geräte, deren Einstellungen sich mit vorhandenen Geräten überschneiden, deaktivieren. Einige Installationsprobleme können Sie vermeiden oder umgehen, indem Sie die Firmware der Hardware, insbesondere die Firmware der Systemplatine, aktualisieren. Die Firmware der Systemplatine ist das BIOS. Die meisten Hardware-Hersteller bieten aktuelle Firmware und Anleitungen zur Aktualisierung der Firmware auf dem Internet an. Viele Hersteller raten davon ab, ohne guten Grund das BIOS zu aktualisieren. Die Aktualisierung kann fehlschlagen und den BIOS-Chip dauerhaft beschädigen. Deaktivieren Sie keine Treiber, die während der Installation benötigt werden (beispielsweise den Bildschirmtreiber sc0). Wenn die Installation aus unerklärlichen Gründen nach Verlassen des Kernelkonfigurationsmenüs fehlschlägt, haben Sie vielleicht eine Einstellung geändert oder entfernt, die Sie in Ruhe lassen sollten. Versuchen Sie es nach einem Neustart nochmal. Im Kernelkonfigurationsmenü können Sie die im Kernel enthaltenen Treiber ansehen, Treiber für nicht vorhandene Hardware deaktivieren, die IRQs, DRQs und IO-Adressen eines Treibers ändern. Nachdem Sie die Hardwareeinstellungen in den Kernel konfiguriert haben, drücken Sie Q, um den Installationsprozess mit den neuen Einstellungen zu starten. Nach der Installation sind die Einstellungen weiterhin wirksam und müssen daher nicht bei jedem Neustart vorgenommen werden. Wahrscheinlich wollen Sie einen angepassten Kernel erstellen. Vorhandene &ms-dos;-Partitionen bearbeiten Partitionen &ms-dos; Viele Benutzer wollen &os; auf PCs installieren, auf denen sich schon ein µsoft;-Betriebssystem befindet. Bei diesem Vorhaben unterstützt das Werkzeug FIPS. Das Werkzeug befindet sich auf der Installations-CD-ROM im Verzeichnis tools oder kann von den &os;-Spiegeln heruntergeladen werden. Das Werkzeug FIPS teilt eine bestehende &ms-dos;-Partition auf. Der erste Teil enthält die Daten der alten Partition, der zweite Teil steht für die Installation von &os; zur Verfügung. Vorher muss die &ms-dos;-Partition defragmentiert werden. Klicken Sie im Explorer mit der rechten Maustaste das Laufwerk an und wählen Sie Defragmentieren aus. Alternativ können Sie die Norton Disk Tools benutzen. Nachdem das Laufwerk defragmentiert ist, können Sie FIPS aufrufen. Folgen Sie einfach den Anweisungen des Werkzeugs. Nach einem Neustart können Sie &os; in die freie Slice installieren. Den Platzbedarf der Installation können Sie im Menü Distributions von sysinstall abschätzen. Von PowerQuest stammt das nützliche Werkzeug &partitionmagic;. Diese Anwendung bietet weit mehr Funktionen als FIPS. Benutzen Sie &partitionmagic;, wenn Sie die verwendeten Betriebssysteme oft wechseln wollen. Das Produkt kostet allerdings Geld; wenn Sie &os; installieren und beibehalten wollen, ist wahrscheinlich FIPS das Richtige für Sie. &ms-dos;- und &windows;-Dateisysteme benutzen Mit Double Space™ komprimierte Dateisysteme werden zurzeit von &os; nicht unterstützt. Damit &os; auf die Daten zugreifen kann, müssen Sie das Dateisystem daher dekomprimieren. Rufen Sie dazu den Compression Agent aus dem Menü Start > Programs > System Tools auf. Unter &os; hängen Sie &ms-dos;-Dateisysteme mit dem Kommando &man.mount.msdosfs.8; ein. Dazu ein Beispiel: &prompt.root; mount_msdosfs /dev/ad0s1 /mnt Das &ms-dos;-Dateisystem befindet sich hier auf der ersten Partition der primären Platte. Dies kann bei Ihnen anders sein. Die Anordnung der Partitionen entnehmen Sie den Ausgaben von dmesg und mount. Erweiterte &ms-dos;-Partitionen werden für gewöhnlich hinter die &os;-Partitionen gelegt: Die Nummern der von &ms-dos; benutzten Slices ist höher als die der Slices von &os;. Beispielsweise kann /dev/ad0s1 die erste &ms-dos; Partition sein, /dev/ad0s2 die &os;-Partition sein und /dev/ad0s3 eine erweiterte &ms-dos;-Partition. Einige Anfänger verwirrt diese Situation zunächst. Analog werden NTFS-Partitionen mit dem Kommando &man.mount.ntfs.8; eingehangen. Fragen und Antworten für Alpha-Benutzer Alpha Dieser Abschnitt beantwortet häufig gestellte Fragen zur &os;-Installation auf Alpha-Systemen. Kann ich &os; von der ARC- oder Alpha-BIOS-Konsole starten? ARC Alpha-BIOS SRM Nein, wie Compaq Tru64 und VMS startet &os; nur von der SRM-Konsole. Hilfe, ich habe keinen Platz! Muss ich zuerst alles löschen? Leider ja. Kann ich Compaq Tru64- oder VMS-Dateisysteme einhängen? Zurzeit nicht. Valentino Vaschetto Beigetragen von Anspruchsvollere Installationen Dieser Abschnitt beschreibt die Installation von &os; in besonderen Situationen. &os; auf einem System ohne Monitor oder Tastatur installieren Installation headless (serielle Konsole) serielle Konsole Diese Methode wird als headless install (kopflose Installation) bezeichnet, da die Maschine, auf die &os; installiert werden soll, entweder keinen Monitor angeschlossen hat oder über keine VGA-Karte verfügt. Wie kann &os; dennoch installiert werden? Eben mithilfe einer seriellen Konsole. Im Wesentlichen ist eine serielle Konsole eine andere Maschine, die Ein- und Ausgaben für eine andere Maschine bereitstellt. Um über eine serielle Konsole zu installieren, erstellen Sie zunächst die Startdisketten, wie in beschrieben. Damit ein Systemstart mit der seriellen Konsole möglich ist, müssen die Disketten entsprechend der nachstehenden Anleitung angepasst werden: Die Startdisketten für eine serielle Konsole anpassen mount Wenn Sie ein System mit den frisch erstellten Disketten starten, läuft der normale &os;-Installationsprozess an. Diese Installation soll aber über die serielle Konsole gesteuert werden. Hängen Sie mit dem Kommando &man.mount.8; die Diskette kern.flp ein: &prompt.root; mount /dev/fd0 /mnt Wechseln Sie in das Verzeichnis /mnt: &prompt.root; cd /mnt In diesem Verzeichnis können Sie den Start über eine serielle Konsole einstellen. Erstellen Sie die Datei boot.config mit dem Inhalt /boot/loader -h. Diese Zeile weist den Bootloader an, mit der seriellen Konsole zu starten. &prompt.root; echo "/boot/loader -h" > boot.config Nachdem Sie die Diskette angepasst haben, hängen Sie die Diskette mit dem Kommando &man.umount.8; wieder aus: &prompt.root; cd / &prompt.root; umount /mnt Sie können die Diskette nun aus dem Laufwerk entfernen. Das Nullmodemkabel anschließen Nullmodemkabel Sie müssen beide Maschinen mit einem Nullmodemkabel verbinden. Schließen Sie das Nullmodemkabel an die seriellen Schnittstellen beider Maschinen an. Sie können kein direktes serielles Kabel verwenden, Nullmodemkabel besitzen gekreuzte Leitungen. Die Installation starten Sie können die Installation jetzt starten. Legen Sie die kern.flp-Diskette in das Laufwerk der Maschine ein, auf der Sie &os; installieren wollen. Schalten Sie anschließend die Maschine ein. Die Verbindung mit der zur installierenden Maschine herstellen cu Mit dem Kommando &man.cu.1; verbinden Sie sich mit der zu installierenden Maschine: &prompt.root; cu -l /dev/cuaa0 Fertig! Über die cu-Sitzung können Sie nun die zu installierende Maschine steuern. Sie erhalten die Aufforderung die Diskette mfsroot.flp einzulegen. Anschließend legen Sie den Terminaltyp fest. Wählen Sie die FreeBSD color console aus und fahren wie gewohnt mit der Installation fort. Eigene Installationsmedien herstellen Im Folgenden ist mit Installations-CD eine CD-ROM oder DVD gemeint, die Sie gekauft oder selbst hergestellt haben. Oft müssen Sie eigene Installationsmedien erzeugen. Dies können physische Medien wie Bänder sein oder Installationsquellen sein, aus denen sysinstall Dateien herunterlädt, beispielsweise ein lokaler FTP-Server oder eine &ms-dos;-Partition. Beispiele: Im lokalen Netzwerk befinden sich viele Maschinen, Sie besitzen allerdings nur eine Installations-CD. Den Inhalt der Installations-CD wollen Sie auf einem lokalem FTP-Server bereitstellen. Zur Installation wird der lokale FTP-Server anstelle eines Internet-Servers benutzt. Sie haben eine Installations-CD, allerdings erkennt &os; im Gegensatz zu &ms-dos;/&windows; das CD- oder DVD-Laufwerk nicht. Sie können die Installationsdateien auf eine DOS-Partition desselben Rechners kopieren und &os; von der DOS-Partition installieren. Der Rechner, auf dem Sie &os; installieren wollen, besitzt kein CD- oder DVD-Laufwerk. Ein anderer Rechner, zu dem eine serielle oder parallele Verbindung besteht, besitzt allerdings ein CD- oder DVD-Laufwerk. Sie wollen ein Band erzeugen, mit dem Sie &os; installieren können. Eine Installations-CD-ROM erzeugen Mit jeder Release stellt das &os;-Project zwei CD-Abbilder (ISO-Images) zur Verfügung. Wenn Sie einen CD-Brenner besitzen, können Sie diese Abbilder brennen und damit &os; installieren. Wenn Sie einen CD-Brenner besitzen und über eine gute Internet-Verbindung verfügen, ist das die preiswerteste Art, &os; zu installieren. Das richtige Abbild herunterladen Die ISO-Abbilder für jedes Releases können Sie von ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-arch/version oder einem nahe gelegenen Spiegel herunterladen. Ersetzen Sie arch und version durch passende Werte. Das Verzeichnis enthält die folgenden Abbilder: &os; 4.<replaceable>X</replaceable>-ISO-Abbilder Dateiname Inhalt Version-RELEASE-Architektur-miniinst.iso Enthält alles, was Sie für eine &os;-Installation benötigen. Version-RELEASE-Architektur-disc1.iso Enthält alles, was Sie für eine &os;-Installation benötigen. Das Medium enthält zusätzlich so viel Software Dritter wie möglich. Version-disc2.iso Ein Live-Dateisystem, das von sysinstall aus zur Reparatur eines Systems eingesetzt wird. Enthält weiterhin eine Kopie des &os;-CVS-Baums und zusätzlich so viel Software Dritter wie möglich.
FreeBSD 5.<replaceable>X</replaceable> sowie 6.<replaceable>X</replaceable>-ISO-Abbilder Dateiname Inhalt Version-RELEASE-Architektur-bootonly.iso Enthält alles, was Sie benötigen, um um den FreeBSD-Kernel zu laden und die Installationsoberfläche zu starten. Die zu installierenden Dateien müssen über FTP oder eine andere geeignete Quelle bezogen werden. version-RELEASE-Architektur-disc1.iso Alles, was Sie für die Installation von FreeBSD benötigen. Zusätzlich ist ein Live-Dateisystem enthalten, das gemeinsam mit der Repair-Funktion von sysinstall verwendet werden kann. version-RELEASE-Architektur-disc2.iso Die &os;-Dokumentation und so viele Pakete Dritter, wie auf dem Installationsmedium Platz hatten.
Sie benötigen nur eines der beiden Abbilder mini.iso (falls es für Ihre &os;-Version verfügbar ist) oder disc1.iso. Laden Sie bitte nicht beide Abbilder herunter, das disc1.iso-Abbild enthält alles, was das mini.iso-Abbild enthält. Benutzen Sie das miniinst.iso-Abbild, wenn Sie eine preiswerte Internet-Anbindung besitzen. Mit diesem Abbild können Sie &os; installieren. Software Dritter können Sie anschließend mithilfe des Ports-Systems () herunterladen. Benutzen Sie das disc1.iso-Abbild, wenn Sie &os; installieren wollen und das Installationsmedium eine angemessene Auswahl an Software Dritter enthalten soll. Die zusätzlichen Abbilder sind nützlich aber nicht notwendig, insbesondere wenn Sie eine schnelle Internet-Verbindung besitzen.
Die CDs brennen Sie müssen die Abbilder auf eine CD brennen. Das Brennen von CDs unter &os; wird in erläutert (sehen Sie sich insbesondere und an). Wenn Sie die CDs unter einem anderen Betriebssystem erstellen, benutzen Sie die entsprechenden Werkzeuge des Betriebssystems. Die Abbilder sind Standard-ISO-Abbilder und können von vielen Brennprogrammen verarbeitet werden.
Wenn Sie eine angepasste Version von FreeBSD erstellen wollen, sollten Sie den Release Engineering Article lesen.
Einen lokalen FTP-Server einrichten Installation Netzwerkinstallation FTP Die Dateien auf der Installations-CD sind genauso angeordnet wie auf den &os;-FTP-Servern. Daher ist es einfach, einen lokalen FTP-Server für die &os;-Installation über ein Netzwerk einzurichten. Hängen Sie auf dem FTP-Server die CD-ROM in das Verzeichnis /cdrom ein: &prompt.root; mount /cdrom Legen Sie ein Konto für Anonymous-FTP an. Dazu editieren Sie die Datei /etc/passwd mit dem Kommando &man.vipw.8; und fügen die nachstehende Zeile hinzu: ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent Stellen Sie sicher, dass der FTP-Dienst in der Datei /etc/inetd.conf aktiviert ist. Jeder, der Ihren Rechner über das Netzwerk erreicht, kann nun &os; über FTP installieren. In sysinstall wird dazu FTP als Installationsmedium wählt. Der FTP-Server wird durch die Auswahl Other (andere als die vorgegebenen Server) und anschließende Eingabe von ftp://Ihr Rechner festgelegt. Wenn die Version der für die FTP-Installation Ihrer Clients verwendeten Bootmedien (normalerweise Disketten) nicht exakt der von Ihnen auf Ihrem lokalen FTP-Server angebotenen Version entspricht, ist sysinstall nicht in der Lage, die Installation abzuschließen. Sind die Versionsnummern unterschiedlich, können Sie durch das Aufrufen des Punktes Options sysinstall dazu zwingen, die Installation dennoch abzuschließen. Dazu setzen Sie den Namen der Distribution auf any. Diese Vorgehensweise ist in Ihrem lokalen Netzwerk, das durch eine Firewall geschützt ist, völlig in Ordnung. Wenn Sie FTP für Rechner auf dem Internet (und nicht für lokale Rechner) anbieten, zieht Ihr Server die Aufmerksamkeit von Crackern und andere Unannehmlichkeiten auf sich. Achten Sie in diesem Fall darauf, dass Sie gute Sicherheitsverfahren anwenden. Installationsdisketten erstellen Installation Disketten Wenn Sie, was wir nicht empfehlen, von Disketten installieren müssen, weil Disketten das einzig unterstützte Installationsmedium sind oder Sie es sich einfach schwer machen wollen, müssen Sie zunächst einige Disketten vorbereiten. Sie müssen mindestens den Inhalt des Verzeichnisses bin auf 1.44 MB oder 1.2 MB Disketten kopieren. Wenn Sie die Disketten unter &ms-dos; erstellen, müssen Sie die Disketten mit dem DOS-Kommando format formatieren. Unter &windows; können Sie Disketten mithilfe des Explorers formatieren (klicken Sie mit der rechten Maustaste auf das A:-Laufwerk und wählen Sie Format aus). Vertrauen Sie vorformatierten Disketten nicht; formatieren Sie die Disketten zur Sicherheit immer selbst. In der Vergangenheit waren vorformatierte Disketten der Verursacher vieler Probleme. Falls Sie die Disketten auf einer &os;-Maschine erstellen, sollten Sie immer noch formatieren. Allerdings brauchen Sie kein DOS-Dateisystem auf den Disketten anzulegen. Mit den Kommandos bsdlabel und newfs können Sie das Dateisystem UFS verwenden, wie im nachstehenden Beispiel für 3.5" 1.44 MB Disketten gezeigt: &prompt.root; fdformat -f 1440 fd0.1440 &prompt.root; bsdlabel -w fd0.1440 floppy3 &prompt.root; newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0 Für 5.25" 1.2 MB Disketten benutzen Sie das Gerät fd0.1200. Anschließend können Sie die Disketten wie ein normales Dateisystem einhängen und beschreiben. Nachdem Sie die Disketten formatiert haben, kopieren Sie die Dateien der Distribution auf die Disketten. Die Dateien der Distribution sind in Stücke geteilt, sodass fünf Dateien auf eine 1.44 MB Diskette passen. Kopieren Sie die gewünschten Distribution auf Disketten, wobei Sie so viele Dateien wie möglich auf eine Diskette kopieren. Jede Distribution wird auf der Diskette in einem eigenen Verzeichnis abgelegt, beispielsweise a:\bin\bin.aa, a:\bin\bin.ab. Im Installationsprozess wählen Sie als Installationsmedium Floppy aus. Folgen Sie dann den gegebenen Anweisungen. Von einer &ms-dos;-Partition installieren Installation von einer &ms-dos;-Partition Um eine Installation von einer &ms-dos;-Partition vorzubereiten, kopieren Sie Dateien der Distributionen in das Verzeichnis freebsd direkt unterhalb des Wurzelverzeichnisses (zum Beispiel c:\freebsd). In diesem Verzeichnis muss sich dieselbe Verzeichnisstruktur wie auf dem Installationsmedium befinden. Wenn Sie die Dateien von einer Installations-CD kopieren, empfehlen wir den DOS-Befehl xcopy. Das nachstehende Beispiel bereitet eine minimale Installation von &os; vor: C:\> md c:\freebsd C:\> xcopy e:\bin c:\freebsd\bin\ /s C:\> xcopy e:\manpages c:\freebsd\manpages\ /s Im Beispiel wurde angenommen, dass auf Laufwerk C: ausreichend Platz vorhanden ist und die CD-ROM Laufwerk E: ist. Wenn Sie kein CD-Laufwerk besitzen, können Sie die Distributionen von ftp.FreeBSD.org herunterladen. Jede Distribution liegt in einem eigenen Verzeichnis. Beispielsweise liegt die Base-Distribution im Verzeichnis &rel.current;/base/. Kopieren Sie jede Distribution, die Sie von einer &ms-dos;-Partition installieren wollen (und für die Platz ist) in das Verzeichnis c:\freebsd. Für eine minimale Installation benötigen Sie nur die Base-Distribution. Ein Installationsband erstellen Installation von einem QIC/SCSI-Band Falls Sie nicht über FTP oder von einer CD-ROM installieren können, ist die Installation von Band wahrscheinlich die einfachste Methode. Das Installationsprogramm erwartet, dass sich die Distributionen im tar-Format auf dem Band befinden. Von den Distributions-Dateien erstellen Sie das Installationsband einfach mit dem Kommando tar: &prompt.root; cd /freebsd/distdir &prompt.root; tar cvf /dev/rwt0 dist1 ... dist2 Stellen Sie während der Installation sicher, dass Sie über genügend freien Platz in einem temporären Verzeichnis (das Sie festlegen können) verfügen. Das temporäre Verzeichnis muss den gesamten Inhalt des Bands aufnehmen können. Da auf Bänder nicht wahlfrei zugegriffen werden kann, benötigt diese Installationsmethode temporär sehr viel Platz. Das Band muss sich vor dem Neustart mit der Startdiskette im Laufwerk befinden. Ansonsten wird das Band während der Geräteerkennung vielleicht nicht erkannt. Eine Netzwerkinstallation vorbereiten Installation Netzwerkinstallation seriell (SLIP oder PPP) Installation Netzwerkinstallation parallel (PLIP) Installation Netzwerkinstallation Ethernet Sie können drei Verbindungsarten für eine Netzwerkinstallation benutzen: Eine serielle Verbindung (SLIP oder PPP), eine parallele Verbindung (PLIP, Laplink-Kabel) oder eine Ethernet-Verbindung (mit Standard-Netzwerkkarten einschließlich PCMCIA-Karten). Die SLIP-Unterstützung ist recht einfach und auf feste Verbindungen, beispielsweise ein serielles Kabel zwischen einem Laptop und einem anderen Rechner, beschränkt. Die Verbindung muss fest sein, da die Installation mit SLIP keine Einwahl unterstützt. Eine Einwahl ist mit PPP möglich, das Sie, wenn möglich, gegenüber SLIP bevorzugen sollten. Wenn Sie ein Modem benutzen, ist PPP ziemlich sicher die einzige Wahl. Stellen Sie sicher, dass Sie die Daten Ihres Service Providers bereitliegen haben, da Sie während der Installation die Daten früh benötigen. Wenn Sie PAP oder CHAP benutzen, um sich mit Ihrem ISP zu verbinden (wenn Sie unter &windows; kein Skript benötigen, um die Verbindung herzustellen), brauchen Sie an der ppp-Eingabeaufforderung nur das Kommando dial abzusetzen. Ansonsten müssen Sie sich mit Modem-spezifischen AT-Kommandos bei Ihrem ISP einwählen (PPP stellt nur einen einfachen Terminal-Emulator zur Verfügung). Weiteres über PPP erfahren Sie im Abschnitt User-PPP des Handbuchs und im PPP-Abschnitt der FAQ. Bei Problemen können Sie mit dem Kommando set log local Meldungen auf den Bildschirm umleiten. Wenn eine feste Verbindung zu einer anderen &os;-Maschine besteht (2.0 Release oder neuer), sollten Sie ein paralleles Laplink-Kabel in Betracht ziehen. Über eine parallele Verbindung sind höhrere Geschwindigkeiten als über eine serielle Verbindung (typischerweise bis zu 50 kByte/s) möglich. Daher ist die Installation über eine parallele Verbindung schneller als eine Installation über eine serielle Verbindung. Die schnellste Netzwerkinstallation ist natürlich mit einer Netzwerkkarte möglich. &os; unterstützt die meisten der üblichen Netzwerkkarten. Eine Liste der unterstützten Netzwerkkarten ist in den Hardware-Notes jedes Releases enthalten. Wenn Sie eine unterstützte PCMCIA-Netzwerkkarte benutzen, stellen Sie sicher, dass die Karte eingesteckt ist, bevor der Laptop eingeschaltet wird. Leider unterstützt &os; das Einstecken von PCMCIA-Karten während der Installation noch nicht. Für eine Netzwerkinstallation müssen Sie Ihre IP-Adresse, die Netzwerkmaske und den Namen Ihres Rechner kennen. Wenn Sie über eine PPP-Verbindung installieren und keine feste IP-Adresse besitzen, braucht Sie der vorgehende Satz nicht zu beunruhigen. Sie können eine IP-Adresse dynamisch von Ihrem ISP beziehen. Fragen Sie Ihren Systemadministrator nach den richtigen Netzwerkeinstellungen. Wenn Sie andere Rechner über Namen anstatt über IP-Adressen erreichen wollen, brauchen Sie zudem einen Nameserver und möglicherweise die Adresse eines Gateways (mit PPP ist das die Adresse des ISPs), über den Sie den Nameserver erreichen. Wenn Sie von einem FTP-Server über einen HTTP-Proxy installieren wollen, benötigen Sie außerdem noch die Adresse des Proxy-Servers. Wenn Sie nicht alle oder zumindest die meisten der benötigten Daten kennen, sollten Sie wirklich vor der Installation mit Ihrem Systemadministrator oder ISP reden! Eine NFS-Installation vorbereiten Installation Netzwerkinstallation NFS Eine NFS-Installation ist unkompliziert. Kopieren Sie einfach die Distributionen auf einen NFS-Server und wählen Sie NFS als Installationsmedium aus. Wenn der NFS-Server nur Verbindungen über privilegierte Ports (Ports kleiner 1024) annimmt, setzen Sie vor der Installation die Option NFS Secure im Menü Options. Wenn Sie eine schlechte Netzwerkkarte besitzen, die sehr langsam ist, wählen Sie die Option NFS Slow. Damit die NFS-Installation funktioniert, muss der NFS-Server auch Unterverzeichnisse von exportierten Verzeichnissen zum Einhängen freigeben. Wenn beispielsweise die Distribution von &os; &rel.current; unter ziggy:/usr/archive/stuff/FreeBSD liegt, muss der Rechner ziggy erlauben, das Verzeichnis /usr/archive/stuff/FreeBSD einzuhängen. Es reicht nicht, dass ziggy erlaubt das Verzeichnis /usr oder /usr/archive/stuff einzuhängen. Unter &os; werden diese Freigaben in der Datei /etc/exports mit der Option eingestellt. Die nötigen Einstellungen können auf einem anderen NFS-Server unterschiedlich sein. Wenn Sie vom NFS-Server die Fehlermeldung permission denied erhalten, dann haben Sie wahrscheinlich die Freigaben nicht richtig konfiguriert.
diff --git a/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml b/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml index 3d3299c010..5f0bf024c6 100644 --- a/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml @@ -1,1228 +1,1226 @@ Jim Mock Neu zusammengestellt, umstrukturiert und um Abschnitte erweitert durch Sascha Edelburg Übersetzt von Einführung Übersicht Herzlichen Dank für Ihr Interesse an FreeBSD! Das folgende Kapitel behandelt verschiedene Aspekte des FreeBSD-Projekts wie dessen geschichtliche Entwicklung, dessen Ziele oder dessen Entwicklungsmodell. Nach dem Durcharbeiten des Kapitels wissen Sie über folgende Punkte Bescheid: Wo FreeBSD im Vergleich zu anderen Betriebssystemen steht Die Geschichte des FreeBSD-Projekts Die Ziele des FreeBSD-Projekts Die Grundlagen des FreeBSD-Open-Source-Entwicklungsmodells Und natürlich wo der Name FreeBSD herrührt Willkommen bei FreeBSD! 4.4BSD-Lite FreeBSD ist ein auf 4.4BSD-Lite basierendes Betriebssystem für Intel (x86 und &itanium;), AMD64, Alpha und Sun &ultrasparc; Rechner. An Portierungen zu anderen Architekturen wird derzeit gearbeitet. Mehr zu Geschichte von FreeBSD können Sie im kurzen geschichtlichen Abriss zu FreeBSD oder im Abschnitt Das aktuelle FreeBSD-Release nachlesen. Falls Sie das FreeBSD-Projekt unterstützen wollen (mit Quellcode, Hardware- oder Geldspenden), sollten Sie den Artikel FreeBSD unterstützen lesen. Was kann FreeBSD? FreeBSD hat zahlreiche bemerkenswerte Eigenschaften. Um nur einige zu nennen: Präemptives Multitasking Präemptives Multitasking mit dynamischer Prioritätsanpassung zum reibungslosen und ausgeglichenen Teilen der Systemressourcen zwischen Anwendungen und Anwendern, selbst unter schwerster Last. Mehrbenutzerbetrieb Der Mehrbenutzerbetrieb von FreeBSD erlaubt es, viele Anwender gleichzeitig am System mit verschiedenen Aufgaben arbeiten zu lassen. Beispielsweise Geräte wie Drucker oder Bandlaufwerke, die sich nur schwerlich unter allen Anwendern des Systems oder im Netzwerk teilen lassen, können durch Setzen von Verwendungsbeschränkungen auf Benutzer oder Benutzergruppen wichtige Systemressourcen vor Überbeanspruchung schützen. TCP/IP-Netzwerkfähigkeit Hervorragende TCP/IP-Netzwerkfähigkeit mit Unterstützung der Industriestandards wie SLIP, PPP, NFS, DHCP und NIS. Das heißt, Ihr FreeBSD-System kann in einfachster Weise mit anderen Systemen interagieren. Zudem kann es als Server-System im Unternehmen wichtige Aufgaben übernehmen, beispielsweise als NFS- oder E-Mail-Server oder es kann Ihren Betrieb durch HTTP- und FTP-Server beziehungsweise durch Routing und Firewalling Internet-fähig machen. Speicherschutz Der Speicherschutz stellt sicher, dass Anwendungen (oder Anwender) sich nicht gegenseitig stören. Stürzt eine Anwendung ab, hat das keine Auswirkung auf andere Prozesse. FreeBSD ist ein 32-Bit-Betriebssystem (64-Bit auf Alpha, &itanium;, AMD64, und &ultrasparc;) und wurde als solches von Grund auf neu entworfen. X-Window-System XFree86 Das X-Window-System (X11R6) als Industriestandard bietet eine grafische Benutzeroberfläche (GUI). Minimale Voraussetzung zur Verwendung ist lediglich eine Grafikkarte und ein Bildschirm, die beide den VGA-Modus unterstützen. Binärkompatibilität Linux Binärkompatibilität SCO Binärkompatibilität SVR4 Binärkompatibilität BSD/OS Binärkompatibilität NetBSD Binärkompatibilität mit vielen unter verschiedenen Betriebssystemen erstellten Programmen wie Linux, SCO, SVR4, BSDI und NetBSD. Tausende von sofort lauffähigen Anwendungen sind aus den Ports- und Packages-Sammlungen für FreeBSD verfügbar. Warum mühselig im Netz Software suchen, wenn sie bereits hier vorhanden ist? Tausende zusätzliche leicht zu portierende Anwendungen sind über das Internet zu beziehen. FreeBSD ist Quellcode-kompatibel mit den meisten kommerziellen &unix; Systemen. Daher bedürfen Anwendungen häufig nur geringer oder gar keiner Anpassung, um auf einem FreeBSD-System zu kompilieren. virtueller Speicher Seitenweise anforderbarer Virtueller Speicher und der merged VM/buffer cache-Entwurf bedient effektiv den großen Speicherhunger mancher Anwendungen bei gleichzeitigem Aufrechterhalten der Bedienbarkeit des Systems für weitere Benutzer. Symmetrisches Multi-Processing (SMP) SMP-Unterstützung für Mehrprozessorsysteme Kompiler C Kompiler C++ Kompiler FORTRAN Ein voller Satz von C, C++ und Fortran- Entwicklungswerkzeugen. Viele zusätzliche Programmiersprachen für Wissenschaft und Entwicklung sind aus der Ports- und Packages-Sammlung zu haben. Quellcode Quellcode für das gesamte System bedeutet größtmögliche Kontrolle über Ihre Umgebung. Warum sollte man sich durch proprietäre Lösungen knebeln und sich auf Gedeih und Verderb der Gnade eines Herstellers ausliefern, wenn man doch ein wahrhaft offenes System haben kann? Umfangreiche Online-Dokumentation. 4.4BSD-Lite Computer Systems Research Group (CSRG) U.C. Berkeley FreeBSD basiert auf dem 4.4BSD-Lite-Release der Computer Systems Research Group (CSRG) der Universität von Kalifornien in Berkeley und führt die namhafte Tradition der Entwicklung von BSD-Systemen fort. Zusätzlich zu der herausragenden Arbeit der CSRG hat das FreeBSD-Projekt tausende weitere Arbeitsstunden investiert, um das System zu verfeinern und maximale Leistung und Zuverlässigkeit bei Alltagslast zu bieten. Während viele kommerzielle Riesen Probleme haben PC-Betriebssysteme mit derartigen Funktionen, Leistungpotential und Zuverlässigkeit anzubieten, kann FreeBSD damit schon jetzt aufwarten! Die Anwendungsmöglichkeiten von FreeBSD werden nur durch Ihre Vorstellungskraft begrenzt. Von Software-Entwicklung bis zu Produktionsautomatisierung, von Lagerverwaltung über Abweichungskorrektur bei Satelliten; Falls etwas mit kommerziellen &unix; Produkten machbar ist, dann ist es höchstwahrscheinlich auch mit FreeBSD möglich. FreeBSD profitiert stark von tausenden hochwertigen Anwendungen aus wissenschaftlichen Instituten und Universitäten in aller Welt. Häufig sind diese für wenig Geld oder sogar kostenlos zu bekommen. Kommerzielle Anwendungen sind ebenso verfügbar und es werden täglich mehr. Durch den freien Zugang zum Quellcode von FreeBSD ist es in unvergleichbarer Weise möglich, das System für spezielle Anwendungen oder Projekte anzupassen. Dies ist mit den meisten kommerziellen Betriebssystemen einfach nicht möglich. Beispiele für Anwendungen, die unter FreeBSD laufen, sind: Internet-Dienste: Die robuste TCP/IP-Implementierung in FreeBSD macht es zu einer idealen Plattform für verschiedenste Internet-Dienste, wie zum Beispiel: FTP-Server FTP-Server HTTP-Server HTTP-Server (Standard-Web-Server oder mit SSL-Verschlüsselung) Firewall NAT Firewalls und NAT-Gateways (IP-Masquerading) E-Mail E-Mail-Server Usenet Usenet-News und Foren (BBS) Zum Betreiben von FreeBSD reicht schon ein günstiger 386-PC. Wenn es das Wachstum Ihres Unternehmens verlangt, kann FreeBSD aber auch auf einem hochgerüsteten 4-Wege-System mit Xeon-Prozessoren und RAID-Plattenspeicher Verwendung finden. Bildung: Sind Sie Informatikstudent oder Student eines verwandten Studiengangs? Die praktischen Einblicke in FreeBSD sind die beste Möglichkeit etwas über Betriebssysteme, Rechnerarchitektur und Netzwerke zu lernen. Einige frei erhältliche CAD-, mathematische und grafische Anwendungen sind sehr nützlich, gerade für diejenigen, die FreeBSD nicht zum Selbstzweck, sondern als Arbeitsmittel einsetzen. Wissenschaft: Mit dem frei verfügbaren Quellcode für das gesamte System bildet FreeBSD ein exzellentes Studienobjekt in der Disziplin der Betriebssysteme, wie auch in anderen Zweigen der Informatik. Es ist beispielsweise denkbar, das räumlich getrennte Gruppen gemeinsam an einer Idee oder Entwicklung arbeiten. Das Konzept der freien Verfügbarkeit und -nutzung von FreeBSD ermöglicht so einen Gebrauch, auch ohne sich groß Gedanken über Lizenzbedingungen oder -beschränkungen machen zu müssen. Router DNS-Server Netzwerkfähigkeit: Brauchen Sie einen neuen Router? Oder einen Name-Server (DNS)? Eine Firewall zum Schutze Ihres Intranets vor Fremdzugriff? FreeBSD macht aus dem in der Ecke verstaubenden 386- oder 486-PC im Handumdrehen einen leistungsfähigen Router mit anspruchsvollen Packet-Filter-Fähigkeiten. X-Window-System XFree86 X-Window-System Accelerated-X X-Window-Workstation: FreeBSD ist - eine gute Wahl als kostengünstiges X-Terminal, egal - ob mit einem der frei erhältlichen X11-Server oder mit - einem der exzellenten kommerziellen Server von - Xi Graphics. + eine gute Wahl für kostengünstige X-Terminals + mit dem frei verfügbaren X11-Server. Im Gegensatz zu einem X-Terminal erlaubt es FreeBSD, viele Anwendungen lokal laufen zu lassen, was die Last eines zentralen Servers erleichtern kann. FreeBSD kann selbst plattenlos starten, was einzelne Workstations noch günstiger macht und die Wartung erleichtert. GNU-Compiler-Collection Software-Entwicklung: Das Standard-System von FreeBSD wird mit einem kompletten Satz an Entwicklungswerkzeugen bereitgestellt, unter anderem mit dem bekannten GNU C/C++-Kompiler und -Debugger. &os; ist sowohl in Form von Quellcode als auch in Binärform auf CD-ROM, DVD und über anonymous FTP erhältlich. Näheres zum Bezug von FreeBSD enthält . Wer benutzt FreeBSD? Anwender Bekannte FreeBSD-Anwender Unter FreeBSD laufen einige der größten Internet-Auftritte, beispielsweise: Yahoo! Yahoo! Apache Apache Blue Mountain Arts Blue Mountain Arts Pair Networks Pair Networks Sony Japan Sony Japan Netcraft Netcraft Weathernews Weathernews Supervalu Supervalu TELEHOUSE America TELEHOUSE America Sophos Anti-Virus Sophos Anti-Virus JMA Wired JMA Wired Das FreeBSD-Projekt Der folgende Abschnitt bietet einige Hintergrundinformationen zum FreeBSD-Projekt, einschließlich einem kurzen geschichtlichen Abriss, den Projektzielen und dem Entwicklungsmodell. Jordan Hubbard Beigesteuert von Kurzer geschichtlicher Abriss zu FreeBSD 386BSD Patchkit Hubbard, Jordan Williams, Nate Grimes, Rod FreeBSD-Projekt Geschichte Das FreeBSD-Projekt erblickte das Licht der Welt Anfang 1993 teils als Auswuchs des Unofficial 386BSD Patchkit unter der Regie der letzten drei Koordinatoren des Patchkits: Nate Williams, Rod Grimes und mir. 386BSD Unser eigentliches Ziel war es, einen zwischenzeitlichen Abzug von 386BSD zu erstellen, um ein paar Probleme zu beseitigen, die das Patchkit-Verfahren nicht lösen konnte. Einige von Ihnen werden sich in dem Zusammenhang noch an die frühen Arbeitstitel 386BSD 0.5 oder 386BSD Interim erinnern. Jolitz, Bill 386BSD war das Betriebssystem von Bill Jolitz. Dieses litt bis zu diesem Zeitpunkt heftig unter fast einjähriger Vernachlässigung. Als das Patchkit mit jedem Tag anschwoll und unhandlicher wurde, waren wir einhellig der Meinung, es müsse etwas geschehen. Wir entschieden uns Bill Jolitz zu helfen, indem wir den übergangsweise bereinigten Abzug zur Verfügung stellten. Diese Pläne wurden unschön durchkreuzt als Bill Jolitz plötzlich seine Zustimmung zu diesem Projekt zurückzog, ohne einen Hinweis darauf, was stattdessen geschehen sollte. Greenman, David Walnut Creek CDROM Es hat nicht lange gedauert zu entscheiden, dass das Ziel es wert war, weiterverfolgt zu werden, selbst ohne Bills Unterstützung. Also haben wir den von David Greenman geprägten Namen FreeBSD angenommen. Unsere anfänglichen Ziele setzten wir nach Rücksprache mit den damaligen Benutzern des Systems fest. Und als deutlich wurde, das Projekt würde möglicherweise Realität, nahm ich Kontakt mit Walnut Creek CDROM auf, mit einem Auge darauf, den Vertriebsweg für die vielen Missbegünstigten zu verbessern, die keinen einfachen Zugang zum Internet hatten. Walnut Creek CDROM unterstützte nicht nur die Idee des CD-ROM-Vertriebs, sondern stellte sogar dem Projekt einen Arbeitsrechner und eine schnelle Internetverbindung zur Verfügung. Ohne den beispiellosen Glauben von Walnut Creek CDROM in ein zu der Zeit absolut unbekanntes Projekt, gäbe es FreeBSD in der heutigen Form wohl nicht. 4.3BSD-Lite Net/2 U.C. Berkeley 386BSD Free Software Foundation Die erste auf CD-ROM (und netzweit) verfügbare Veröffentlichung war FreeBSD 1.0 im Dezember 1993. Diese basierte auf dem Band der 4.3BSD-Lite (Net/2) der Universität von Kalifornien in Berkeley. Viele Teile stammten aus 386BSD und von der Free Software Foundation. Gemessen am ersten Angebot, war das ein ziemlicher Erfolg und wir ließen dem das extrem erfolgreiche FreeBSD 1.1 im Mai 1994 folgen. Novell U.C. Berkeley Net/2 AT&T Zu dieser Zeit formierten sich unerwartete Gewitterwolken am Horizont, als Novell und die Universität von Kalifornien in Berkeley (UCB) ihren langen Rechtsstreit über den rechtlichen Status des Berkeley Net/2-Bandes mit einem Vergleich beilegten. Eine Bedingung dieser Einigung war es, dass die UCB große Teile des Net/2-Quellcodes als belastet zugestehen musste, und dass diese Besitz von Novell sind, welches den Code selbst einige Zeit vorher von AT&T bezogen hatte. Im Gegenzug bekam die UCB den Segen von Novell, dass sich das 4.4BSD-Lite-Release bei seiner endgültigen Veröffentlichung als unbelastet bezeichnen darf. Alle Net/2-Benutzer sollten auf das neue Release wechseln. Das betraf auch FreeBSD. Dem Projekt wurde eine Frist bis Ende Juli 1994 eingeräumt, das auf Net/2-basierende Produkt nicht mehr zu vertreiben. Unter den Bedingungen dieser Übereinkunft war es dem Projekt noch erlaubt ein letztes Release vor diesem festgesetzten Zeitpunkt herauszugeben. Das war FreeBSD 1.1.5.1. FreeBSD machte sich dann an die beschwerliche Aufgabe, sich Stück für Stück, aus einem neuen und ziemlich unvollständigen Satz von 4.4BSD-Lite-Teilen, wieder aufzubauen. Die Lite-Veröffentlichungen waren deswegen leicht, weil Berkeleys CSRG große Code-Teile, die für ein start- und lauffähiges System gebraucht wurden, aufgrund diverser rechtlicher Anforderungen entfernen musste und weil die 4.4-Portierung für Intel-Rechner extrem unvollständig war. Das Projekt hat bis November 1994 gebraucht diesen Übergang zu vollziehen, was dann zu dem im Netz veröffentlichten FreeBSD 2.0 und zur CD-ROM-Version (im späten Dezember) führte. Obwohl FreeBSD gerade die ersten Hürden genommen hatte, war dieses Release ein maßgeblicher Erfolg. Diesem folgte im Juni 1995 das robustere und einfacher zu installierende FreeBSD 2.0.5. Im August 1996 veröffentlichten wir FreeBSD 2.1.5. Es schien unter ISPs und der Wirtschaft beliebt genug zu sein, ein weiteres Release aus dem 2.1-STABLE-Zweig zu rechtfertigen. Das war FreeBSD 2.1.7.1. Es wurde im Februar 1997 veröffentlicht und bildete das Ende des Hauptentwicklungszweiges 2.1-STABLE. Derzeit unterliegt dieser Zweig dem Wartungsmodus, das heißt, es werden nur noch Sicherheitsverbesserungen und die Beseitigung von kritischen Fehlern vorgenommen (RELENG_2_1_0). FreeBSD 2.2 entsprang dem Hauptentwicklungszweig (-CURRENT) im November 1996 als RELENG_2_2-Zweig und das erste komplette Release (2.2.1) wurde im April 1997 herausgegeben. Weitere Veröffentlichungen des 2.2-Zweiges gab es im Sommer und Herbst 1997. Das letzte Release des 2.2-Zweiges bildete die Version 2.2.8, die im November 1998 erschien. Das erste offizielle 3.0-Release erschien im Oktober 1998 und läutete das Endes des 2.2-Zweiges ein. Am 20. Januar 1999 teilte sich der Quellbaum in die Zweige 4.0-CURRENT und 3.X-STABLE. Auf dem 3.X-STABLE-Zweig wurden folgende Releases erstellt: 3.1 am 15. Februar 1999, 3.2 am 15. Mai 1999, 3.3 am 16. September 1999, 3.4 am 20. Dezember 1999 und 3.5 am 24. Juni 2000. Letzterem folgte ein paar Tage später das Release 3.5.1, welches einige akute Sicherheitslöcher von Kerberos stopfte und die letzte Veröffentlichung des 3.X-Zweiges darstellte. Eine weitere Aufspaltung, aus dem der 4.X-STABLE-Zweig hervorging, erfolgte am 13. März 2000. Bisher gab es mehrere Veröffentlichungen aus diesem Zweig: 4.0-RELEASE erschien im März 2000. Das letzte Release, 4.11-RELEASE, erschien im Januar 2005. Das lang erwartete 5.0-RELEASE wurde am 19. Januar 2003 veröffentlicht. Nach nahezu drei Jahren Entwicklungszeit brachte dieses Release die Unterstützung für Mehrprozessor-Systeme sowie für Multithreading. Mit diesem Release lief &os; erstmalig auf den Plattformen &ultrasparc; und ia64. Im Juni 2003 folgte 5.1-RELEASE. Das letzte 5.X-Release aus dem CURRENT-Zweig war 5.2.1-RELEASE, das im Februar 2004 veröffentlicht wurde. Der Zweig RELENG_5 wurde im August 2004 erzeugt. Als erstes Release dieses Zweiges wurde 5.3-RELEASE veröffentlicht, bei dem es sich gleichzeitig auch um das erste 5-STABLE-Release handelte. Das aktuelle &rel2.current;-RELEASE (dem keine RELENG_5-Versionen mehr folgen werden) erschien im Mai 2006. Der Zweig RELENG_6 wurde im Juli 2005 erzeugt. 6.0-RELEASE, das erste Release des 6.X-Zweiges, wurde im November 2005 veröffentlicht. Das aktuelle &rel.current;-RELEASE (dem weitere RELENG_6-Versionen folgen werden) erschien im Mai 2006. Zurzeit werden Projekte mit langem Entwicklungshorizont im Zweig 7.X-CURRENT verfolgt, Schnappschüsse von 7.X auf CD-ROM (und natürlich im Netz) werden bei fortlaufender Entwicklung auf dem Snapshot-Server zur Verfügung gestellt. Jordan Hubbard Beigesteuert von Ziele des FreeBSD-Projekts FreeBSD-Projekt Ziele Das FreeBSD-Projekt stellt Software her, die ohne Einschränkungen für beliebige Zwecke eingesetzt werden kann. Viele von uns haben beträchtlich in Quellcode und Projekt investiert und hätten sicher nichts dagegen, hin und wieder ein wenig finanziellen Ausgleich dafür zu bekommen. Aber in keinem Fall bestehen wir darauf. Wir glauben unsere erste und wichtigste Mission ist es, Software für jeden Interessierten und zu jedem Zweck zur Verfügung zu stellen, damit die Software größtmögliche Verbreitung erlangt und größtmöglichen Nutzen stiftet. Das ist, glaube ich, eines der grundlegenden Ziele freier Software, welche wir mit größter Begeisterung unterstützen. GNU General Public License (GPL) GNU Lesser General Public License (LGPL) BSD Copyright Der Code in unserem Quellbaum, der unter die General Public License (GPL) oder die Library General Public License (LGPL) fällt, stellt geringfügig mehr Bedingungen. Das aber vielmehr im Sinne von eingefordertem Zugriff, als das übliche Gegenteil der Beschränkungen. Aufgrund zusätzlicher Abhängigkeiten, die sich durch die Verwendung von GPL-Software bei kommerziellem Gebrauch ergeben, bevorzugen wir daher Software unter dem transparenteren BSD-Copyright, wo immer es angebracht ist. Satoshi Asami Beigesteuert von Das Entwicklungsmodell von FreeBSD FreeBSD-Projekt Entwicklungsmodell Die Entwicklung von FreeBSD ist ein offener und vielseitiger Prozess. FreeBSD besteht aus Beisteuerungen von Hunderten Leuten rund um die Welt, wie Sie aus der Liste der Beitragenden ersehen können. Die vielen Entwickler können aufgrund der Entwicklungs-Infrastruktur von &os; über das Internet zusammenarbeiten. Wir suchen ständig nach neuen Entwicklern, Ideen und jenen, die sich in das Projekt tiefer einbringen wollen. Nehmen Sie einfach auf der Mailingliste &a.hackers; Kontakt mit uns auf. Die Mailingliste &a.announce; steht für wichtige Ankündigungen, die alle FreeBSD-Benutzer betreffen, zur Verfügung. Unabhängig davon ob Sie alleine oder mit anderen eng zusammen arbeiten, enthält die folgende Aufstellung nützliche Informationen über das FreeBSD-Projekt und dessen Entwicklungsabläufe. Das CVS-Repository CVS Repository Concurrent-Versions-System CVS Der Hauptquellbaum von FreeBSD wird mit CVS gepflegt, einem frei erhältlichen Versionskontrollsystem, welches mit FreeBSD geliefert wird. Das Haupt- CVS-Repository läuft auf einer Maschine in Santa Clara, Kalifornien, USA. Von dort wird es auf zahlreiche Server in aller Welt gespiegelt. Der CVS-Quellbaum, der die Zweige -CURRENT und -STABLE enthält, kann einfach auf Ihr eigenes System gespiegelt werden. Näheres dazu können Sie im Handbuch unter Synchronisation der Quellen in Erfahrung bringen. Die Committer-Liste Committer Die Committer sind Personen mit Schreibzugriff auf den CVS-Quellbaum (der Begriff Committer stammt vom &man.cvs.1;-Befehl commit, der zum Einspeisen von Änderungen ins Repository gebraucht wird). Der beste Weg, Vorschläge zur Prüfung durch die Mitglieder der Committer-Liste einzureichen, bietet der Befehl &man.send-pr.1;. Sollte es unerwartete Probleme mit diesem Verfahren geben, besteht immer noch die Möglichkeit eine E-Mail an die Liste &a.committers; zu schicken. Das FreeeBSD-Core-Team Core-Team Würde man das FreeBSD-Projekt mit einem Unternehmen vergleichen, so wäre das FreeBSD-Core-Team das Gegenstück zum Vorstand. Die Hauptaufgabe des Core-Teams ist es, das Projekt als Ganzes in gesunder Verfassung zu halten und die weitere Entwicklung in die richtige Bahn zu lenken. Das Anwerben leidenschaftlicher und verantwortungsbewusster Entwickler ist eine Aufgabe des Core-Team, genauso wie die Rekrutierung neuer Mitglieder für das Core-Team, im Falle, dass Altmitglieder aus dem Projekt aussteigen. Das derzeitige Core-Team wurde im Juli 2006 aus einem Kreis kandidierender Committer gewählt. Wahlen werden alle zwei Jahre abgehalten. Einige Core-Team-Mitglieder haben auch spezielle Verantwortungsbereiche. Das bedeutet, sie haben sich darauf festgelegt, sicherzustellen, dass ein größerer Teil des Systems so funktioniert wie ausgewiesen. Eine vollständige Liste an FreeBSD beteiligter Entwickler und ihrer Verantwortungsbereiche kann in der Liste der Beitragenden eingesehen werden. Die Mehrzahl der Mitglieder des Core-Teams sind Freiwillige in Bezug auf die FreeBSD-Entwicklung und profitieren nicht finanziell vom Projekt. Daher sollte Verpflichtung nicht als garantierter Support fehlinterpretiert werden. Der oben angeführte Vergleich mit einem Vorstand hinkt und es wäre angebrachter zu erwähnen, dass diese Leute – wider besseres Wissen – ihr eigenes Leben für FreeBSD aufgegeben haben! Weitere Beitragende Beitragende Die größte Entwicklergruppe sind nicht zuletzt die Anwender selbst, die Rückmeldungen und Fehlerbehebungen in einem anhaltend hohen Maße an uns senden. Der bevorzugte Weg an dem weniger zentralisierten Bereich der FreeBSD-Entwicklung teilzuhaben, ist die Möglichkeit sich bei der Liste &a.hackers; anzumelden. Weitere Informationen über die verschiedenen FreeBSD-Mailinglisten erhalten Sie in . Die Liste der zu FreeBSD Beitragenden ist eine lange und wachsende. Also warum nicht selbst dort stehen, indem Sie gleich persönlich etwas zu FreeBSD beitragen? Quellcode ist nicht der einzige Weg, etwas zum Projekt beizusteuern. Eine genauere Übersicht über offene Aufgaben finden Sie auf der FreeBSD-Web-Site. Zusammengefasst bildet unser Entwicklungsmodell einen losen Verbund konzentrischer Kreise. Das zentralisierte Modell ist auf die Bedürfnisse der Anwender zugeschnitten, mit der einfachen Möglichkeit eine zentrale Code-Basis zu verfolgen und möglichen neuen Beitragenden nicht das Leben zu erschweren! Unser Ziel ist es, ein stabiles Betriebssystem mit einer großen Zahl passender Programme zu bieten, die der Anwender leicht installieren und anwenden kann. Und dieses Modell funktioniert für diese Aufgabe ziemlich gut. Das Einzige was wir von möglichen neuen Mitgliedern fordern, ist die gleiche Hingabe, mit der die jetzigen Mitglieder am dauerhaften Erfolg arbeiten! Das aktuelle FreeBSD-Release NetBSD OpenBSD 386BSD Free Software Foundation U.C. Berkeley Computer Systems Research Group (CSRG) FreeBSD ist ein (mit vollem Quellcode und ein frei erhältliches) auf 4.4BSD-Lite-basierendes Release für Intel &i386;, &i486;, &pentium;, &pentium; Pro, &celeron;, &pentium; II, &pentium; III, &pentium; 4 (oder ein dazu kompatibler Prozessor), &xeon;, DEC Alpha und Sun &ultrasparc; Systeme. Es stützt sich zum größten Teil auf Software der Computer Systems Research Group (CSRG) der Universität von Kalifornien in Berkeley mit einigen Verbesserungen aus NetBSD, OpenBSD, 386BSD und der Free Software Foundation. Seit unserem FreeBSD 2.0 vom Ende 1994, hat sich Leistung, Funktionsvielfalt und Stabilität dramatisch verbessert. Die größte Änderung erfuhr das virtuelle Speichermanagement durch eine Kopplung von virtuellem Speicher und dem Buffer-Cache, das nicht nur die Leistung steigert, sondern auch den Hauptspeicherverbrauch reduziert und ein 5 MB-System zu einem nutzbaren Minimal-System verhilft. Weitere Verbesserungen sind volle NIS-Client- und Server-Unterstützung, T/TCP, Dial-On-Demand-PPP, integriertes DHCP, ein verbessertes SCSI-Subsystem, ISDN-Support, Unterstützung für ATM-, FDDI-, Fast- und Gigabit-Ethernet-Karten (1000 Mbit), verbesserter Support der neusten Adaptec-Controller und tausende Fehlerkorrekturen. Zusätzlich zur Standard-Distribution bietet FreeBSD eine Sammlung von portierter Software mit tausenden begehrten Programmen. Zum Verfassungszeitpunkt waren über &os.numports; Anwendungen in der Ports-Sammlung! Das Spektrum der Ports-Sammlung reicht von HTTP-Servern über Spiele, Programmiersprachen, Editoren und so ziemlich allem dazwischen. Die gesamte Ports-Sammlung benötigt &ports.size; an Speicherplatz, wobei jeder Port anhand eines Deltas zu den Quellen angegeben wird. Das macht es für uns erheblich leichter, Ports zu aktualisieren und es verringert den Plattenbedarf im Vergleich zur älteren 1.0-Port-Sammlung. Um ein Port zu übersetzen, müssen Sie einfach ins Verzeichnis des Programms wechseln und ein make install absetzen. Den Rest erledigt das System. Die originalen Quellen jedes zu installierenden Port werden dynamisch von CD-ROM oder einem FTP-Server bezogen. Es reicht also für genügend Plattenplatz zu sorgen, um die gewünschten Ports zu erstellen. Allen, die Ports nicht selbst kompilieren wollen: Es gibt zu fast jedem Port ein vorkompiliertes Paket, das einfach mit dem Befehl (pkg_add) installiert wird. Pakete und Ports werden in beschrieben. Eine Reihe von weiteren Dokumenten, die sich als hilfreich bei der Installation oder dem Arbeiten mit FreeBSD erweisen könnten, liegen auf neueren &os;-Systemen im Verzeichnis /usr/share/doc. Die lokal installierten Anleitungen lassen sich mit jedem HTML-fähigen Browser unter folgenden Adressen betrachten: Das FreeBSD-Handbuch /usr/share/doc/handbook/index.html Die FreeBSD-FAQ /usr/share/doc/faq/index.html Es besteht auch die Möglichkeit, sich die jeweils aktuellste Version der Referenzdokumente unter anzusehen. diff --git a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml index 795720677c..bd61506b1b 100644 --- a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml @@ -1,3353 +1,3370 @@ Bezugsquellen für FreeBSD CD-ROM und DVD Verleger FreeBSD-Pakete FreeBSD-Pakete (FreeBSD-CDs, zusätzliche Software und gedruckte Dokumentation) erhalten Sie von mehreren Händlern:
CompUSA WWW:
Frys Electronics WWW:
FreeBSD-CDs und -DVDs Die FreeBSD-CDs und -DVDs werden von vielen Online-Händlern angeboten:
BSD Mall by Daemon News PO Box 161 Nauvoo, IL 62354 USA Telefon: +1 866 273-6255 Fax: +1 217 453-9956 E-Mail: sales@bsdmall.com WWW:
BSD-Systems E-Mail: info@bsd-systems.co.uk WWW:
FreeBSD Mall, Inc. 3623 Sanford Street Concord, CA 94520-1405 USA Telefon: +1 925 674-0783 Fax: +1 925 674-0821 E-Mail: info@freebsdmall.com WWW:
Dr. Hinner EDV St. Augustinus-Str. 10 D-81825 München Germany Telefon: (089) 428 419 WWW:
Ikarios 22-24 rue Voltaire 92000 Nanterre France WWW:
JMC Software Ireland Telefon: 353 1 6291282 WWW:
Linux CD Mall Private Bag MBE N348 Auckland 1030 New Zealand Telefon: +64 21 866529 WWW:
The Linux Emporium Hilliard House, Lester Way Wallingford OX10 9TA United Kingdom Telefon: +44 1491 837010 Fax: +44 1491 837016 WWW:
Linux+ DVD Magazine Lewartowskiego 6 Warsaw 00-190 Poland Telefon: +48 22 860 18 18 E-Mail: editors@lpmagazine.org WWW:
Linux System Labs Australia 21 Ray Drive Balwyn North VIC - 3104 Australia Telefon: +61 3 9857 5918 Fax: +61 3 9857 8974 WWW:
LinuxCenter.Ru Galernaya Street, 55 Saint-Petersburg 190000 Russia Telefon: +7-812-3125208 E-Mail: info@linuxcenter.ru WWW:
Lieferanten Wenn Sie FreeBSD-CD-ROM-Produkte weiterverkaufen möchten, kontaktieren Sie einen der folgenden Lieferanten:
Cylogistics 809B Cuesta Dr., #2149 Mountain View, CA 94040 USA Telefon: +1 650 694-4949 Fax: +1 650 694-4953 E-Mail: sales@cylogistics.com WWW:
Ingram Micro 1600 E. St. Andrew Place Santa Ana, CA 92705-4926 USA Telefon: 1 (800) 456-8000 WWW:
Kudzu, LLC 7375 Washington Ave. S. Edina, MN 55439 USA Telefon: +1 952 947-0822 Fax: +1 952 947-0876 E-Mail: sales@kudzuenterprises.com
LinuxCenter.Ru Galernaya Street, 55 Saint-Petersburg 190000 Russia Telefon: +7-812-3125208 E-Mail: info@linuxcenter.ru WWW:
Navarre Corp 7400 49th Ave South New Hope, MN 55428 USA Telefon: +1 763 535-8333 Fax: +1 763 535-0341 WWW:
FTP-Server Die offiziellen Quellen von FreeBSD sind mit anonymous FTP über ein weltweites Netz von FTP-Spiegeln erhältlich. Obwohl über eine gute Anbindung verfügt, sollten Sie einen Spiegel in Ihrer Nähe verwenden (insbesondere, wenn Sie selber einen Spiegel einrichten wollen). Die Datenbank der FreeBSD-Spiegel ist aktueller als die folgende Liste, da sie im Gegensatz zu einer statischen Liste die Informationen aus dem DNS erhält. Sie können FreeBSD auch über anonymous FTP von den folgenden Spiegeln beziehen. Wenn Sie FreeBSD über anonymous FTP beziehen wollen, wählen Sie bitte einen Spiegel in Ihrer Nähe. Die unter Haupt-Spiegel aufgeführten Spiegel stellen normalerweise das komplette FreeBSD-Archiv (alle momentan erhältlichen Versionen für jede unterstützte Architektur) zur Verfügung. Wahrscheinlich geht es aber schneller, wenn Sie einen Spiegel in Ihrer Nähe benutzen. Die Länder-Spiegel stellen die neusten Versionen für die beliebtesten Architekturen bereit, sie stellen aber unter Umständen nicht das komplette FreeBSD-Archiv bereit. Auf alle Server kann mit anonymous FTP zugegriffen werden, einige Server bieten auch andere Zugriffsmethoden an. Die zur Verfügung stehenden Zugriffsmethoden sind bei jedem Server in Klammern angegeben. &chap.mirrors.ftp.inc; Anonymous CVS <anchor id="anoncvs-intro">Einführung CVS anonymous Anonymous CVS (oder anoncvs) dient zum Synchronisieren mit entfernten Repositories und steht mit den CVS Werkzeugen, die im FreeBSD Basissystem enthalten sind, zur Verfügung. Benutzer von FreeBSD können damit unter anderem lesende Operationen auf den Anoncvs Servern des FreeBSD-Projekts durchführen, ohne über besondere Berechtigungen zu verfügen. Um es zu benutzen, setzen Sie einfach die CVSROOT Umgebungsvariable auf einen Anoncvs Server und geben beim Login mit cvs login das Passwort anoncvs an. Danach können Sie mit &man.cvs.1; wie auf jedes lokale Repository (allerdings nur lesend) zugreifen. cvs login speichert Passwörter zur Authentifizierung an einem CVS Server in der Datei .cvspass in Ihrem HOME-Verzeichnis. Wenn diese Datei beim ersten Benutzen von cvs login nicht existiert, erhalten Sie vielleicht eine Fehlermeldung. In diesem Fall legen Sie einfach eine leere .cvspass Datei an und melden sich erneut an. CVSup und Anoncvs bieten dieselbe Funktionalität, die folgenden Kriterien helfen Ihnen zu entscheiden, welche Methode Sie benutzen sollen. CVSup geht wesentlich effizienter mit Netzwerk-Ressourcen um und ist auch technisch ausgereifter. Allerdings müssen Sie zuerst einen speziellen Client installieren und konfigurieren, bevor Sie CVSup benutzen können. Weiterhin können Sie mit CVSup nur relativ große Teile der Quellen, die Sammlungen genannt werden, synchronisieren. Im Gegensatz dazu können Sie mit Anoncvs jede beliebige Datei oder indem Sie einfach den CVS Namen des Moduls angeben, ein beliebiges Programm, wie ls oder grep, bearbeiten. Natürlich können Sie mit Anoncvs nur lesend auf ein CVS Repository zugreifen. Wenn Sie lokal mit dem FreeBSD-Repository entwickeln wollen, dann ist CVSup die einzige Wahl. <anchor id="anoncvs-usage">Benutzen von Anonymous CVS Setzen Sie einfach die CVSROOT Umgebungsvariable, um &man.cvs.1; das CVS Repository eines FreeBSD Anoncvs-Servers bekannt zu geben. Zurzeit stehen folgende Server zur Verfügung: Deutschland: :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs (Benutzen Sie cvs login und das Passwort anoncvs.) Deutschland: :pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs (rsh, pserver, ssh, ssh/2022) Frankreich: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (Das Passwort für pserver ist anoncvs, ssh-Zugriffe verwenden kein Passwort.) Japan: :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (Benutzen Sie cvs login und das Passwort anoncvs.) Österreich: :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs (Benutzen Sie cvs login und ein beliebiges Passwort.) Taiwan: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs (Benutzen Sie cvs login und ein beliebiges Passwort.) USA: freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs (nur ssh ohne Passwort). SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pub USA: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (nur ssh ohne Passwort). SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub Mit CVS können Sie praktisch jede Version von FreeBSD, die schon einmal existiert hat (oder in manchen Fällen existieren wird) auschecken. Sie sollten daher damit vertraut sein, wie Sie mit Tags unter &man.cvs.1; arbeiten (die Option). Zudem müssen Sie die Namen der Tags im FreeBSD-Repository kennen. Es gibt zwei verschiedene TagsTags sind symbolische Namen, die im Repository vergeben werden. : Tags, die Revisionen bezeichnen und Tags, die Zweige bezeichnen. Die Ersten sind statisch und fest an eine Revision gebunden. Ein Tag, das einen Zweig bezeichnet, bezieht sich dagegen zu einem gegebenen Zeitpunkt immer auf die aktuellste Revision. Da ein Tag eines Zweiges nicht an eine bestimmte Revision gebunden ist, kann sich dessen Bedeutung von heute auf morgen ändern. In finden Sie eine Liste der gültigen Tags. Beachten Sie bitte, dass keines der Tags auf die Ports-Sammlung anwendbar ist, da diese nicht über Zweige verfügt. Wenn Sie ein Tag eines Zweiges verwenden, erhalten Sie die aktuellsten Dateien dieses Entwicklungszweiges. Wenn Sie eine frühere Revision erhalten möchten, können Sie zum Beispiel einen Zeitpunkt mit der Option angeben. Weitere Informationen dazu entnehmen Sie bitte &man.cvs.1;. Beispiele Im Folgenden finden Sie einige Beispiele für den Umgang mit Anonymous CVS. Sie sollten sich aber die Manualpage von &man.cvs.1; sorgfältig durchlesen, bevor Sie anfangen. &man.ls.1; von -CURRENT auschecken &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs &prompt.user; cvs login Wenn Sie dazu aufgefordert werden, benutzen Sie das Passwort anoncvs. &prompt.user; cvs co ls Den <filename>src/</filename>-Baum über SSH auschecken &prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be establiestablished. DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts. &man.ls.1; aus dem 6-STABLE-Zweig auschecken &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs &prompt.user; cvs login Wenn Sie dazu aufgefordert werden, benutzen Sie das Passwort anoncvs. &prompt.user; cvs co -rRELENG_6 ls Änderungen in &man.ls.1; zwischen 5.3 RELEASE und 5.4 RELEASE (als unified diff) &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs &prompt.user; cvs login Wenn Sie dazu aufgefordert werden, benutzen Sie das Passwort anoncvs. &prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls Gültige Modulnamen herausfinden &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs &prompt.user; cvs login Wenn Sie dazu aufgefordert werden, benutzen Sie das Passwort anoncvs. &prompt.user; cvs co modules &prompt.user; more modules/modules Weitere Ressourcen Die folgenden Ressourcen sind nützlich, um den Umgang mit CVS zu lernen: CVS Tutorial von Cal Poly. CVS Home, die Homepage des CVS-Projekts. CVSweb das Web Interface zu CVS des FreeBSD Projekts. CTM CTM Mit CTM Abkürzung für CVS Through eMail können Sie einen entfernten Verzeichnisbaum mit einem zentralen Baum synchronisieren. Es wurde extra zum Synchronisieren der FreeBSD Quellen entwickelt, obwohl es mit der Zeit vielleicht auch andere Anwendungen geben wird. Zurzeit existiert leider so gut wie keine Dokumentation zum Erstellen der Deltas. Wenn Sie Hilfe benötigen oder CTM für andere Zwecke einsetzen wollen, wenden Sie sich bitte an die Mailingliste &a.ctm-users.name;. Warum soll ich <application>CTM</application> benutzen? Mit CTM erhalten Sie eine lokale Kopie des FreeBSD-Quellbaums, den es in mehreren Varianten gibt. Sie können das ganze Repository oder nur einen Zweig spiegeln. Wenn Sie ein aktiver FreeBSD-Entwickler mit einer schlechten oder gar keiner TCP/IP Verbindung sind, oder die Änderungen einfach automatisch zugesandt bekommen wollen, dann ist CTM das Richtige für Sie. Für die Zweige mit der meisten Aktivität müssen Sie sich täglich bis zu drei Deltas beschaffen, Sie sollten allerdings erwägen, die Deltas automatisch über E-Mail zu beziehen. Die Größe der Updates wird so klein wie möglich gehalten. Normalerweise sind sie kleiner als 5 kB, manchmal sind sie 10-50 kB groß (etwa jedes 10. Update) und ab und an werden Sie auch einmal ein Update mit 100 kB oder mehr erhalten. Sie sollten sich über die Vorbehalte gegen die Verwendung der Quellen anstelle eines offiziellen Releases bewusst sein. Das trifft besonders auf &os.current; zu, lesen Sie dazu bitte den Abschnitt &os.current;. Was brauche ich, um <application>CTM</application> zu benutzen? Zwei Sachen: Das CTM Programm und die initialen Deltas, von denen aus Sie auf die aktuellen Stände kommen. CTM ist schon seit der Version 2.0 Teil des FreeBSD-Basissystems. Sie finden es in /usr/src/usr.sbin/ctm, wenn Sie eine Kopie der Quellen besitzen. Die Deltas, die CTM verarbeitet, können Sie über FTP oder E-Mail beziehen. Wenn Sie über einen FTP Zugang zum Internet verfügen, erhalten Sie die Deltas unter der folgenden URL: Die Deltas werden auch von CTM Spiegeln bereitgehalten. Wechseln Sie in das passende Verzeichnisse zum Beispiel src-cur für &os.current; und laden Sie sich von dort die Deltas herunter. Sie können die Deltas auch über E-Mail beziehen. Abonnieren Sie dazu eine der CTM-Verteilerlisten. Über &a.ctm-cvs-cur.name; erhalten Sie den kompletten CVS-Baum, über &a.ctm-src-cur.name; erhalten Sie &os.current; und über &a.ctm-src-4.name; erhalten Sie den FreeBSD 4.X-Zweig. Wenn Sie nicht wissen, wie Sie eine der Mailinglisten abonnieren, folgen Sie einem der Verweise von oben oder besuchen Sie die Seite &a.mailman.lists.link;. Weitere Informationen erhalten Sie, wenn Sie dort auf die gewünschte Liste klicken. Benutzen Sie ctm_rmail, um die CTM Updates, die Sie per E-Mail empfangen, auszupacken und anzuwenden. Wenn Sie diesen Prozess automatisiert ablaufen lassen möchten, können Sie dazu einen Eintrag in /etc/aliases verwenden. Genauere Informationen finden Sie in der Manualpage von ctm_rmail. Sie sollten die Mailingliste &a.ctm-announce.name; abonnieren, egal wie Sie die CTM-Deltas erhalten. Ankündigungen, die den Betrieb des CTM-Systems betreffen, werden nur auf dieser Liste bekannt gegeben. Klicken Sie auf den Namen der Liste oder besuchen Sie die Seite &a.mailman.lists.link;, um diese Liste zu abonnieren. Initialisieren von <application>CTM</application> Bevor Sie die CTM Deltas benutzen können, brauchen Sie einen Startpunkt, auf den die nachfolgenden Deltas angewendet werden. Sie können natürlich mit einem leeren Verzeichnis beginnen. In diesem Fall benötigen Sie ein XEmpty-Delta, mit dem Sie den CTM-Verzeichnisbaum initialisieren. Wenn Sie Glück haben, finden Sie ein XEmpty-Delta, mit dem sie beginnen können, auf einer der CDs Ihrer Distribution. Da die Verzeichnisbäume mehrere Megabyte groß sind, sollten Sie nach Möglichkeit etwas schon vorhandenes benutzen. Wenn Sie eine -RELEASE CD besitzen, können Sie die Quellen von dieser CD benutzen. Sie ersparen sich damit das Übertragen großer Datenmengen. Die Deltas, mit denen Sie beginnen können, enthalten ein X in ihrem Namen, wie in src-cur.3210XEmpty.gz. Hinter dem X wird der Startpunkt der Deltas angegeben, in diesem Fall steht Empty für ein leeres Verzeichnis. Nach etwa 100 Deltas wird ein neues XEmpty-Delta erstellt. Mit ungefähr 75 Megabyte komprimierter Daten sind diese XEmpty-Deltas übrigens sehr groß. Nachdem Sie Ihren Startpunkt festgelegt haben, benötigen Sie alle Deltas mit einer höheren Nummer. Benutzen von <application>CTM</application> Um ein Delta einzuspielen, benutzen Sie das folgende Kommando: &prompt.root; cd /Pfad/zu/den/Quellen &prompt.root; ctm -v -v /Pfad/zu/den/Deltas/src-xxx.* CTM kann mit Deltas arbeiten, die mit gzip komprimiert wurden. Sie brauchen die Deltas vorher nicht mit gunzip zu dekomprimieren und sparen damit Plattenplatz. Ihr Quellbaum wird erst dann verändert, wenn CTM die Deltas sauber verarbeiten kann. Die Integrität der Deltas und ihre Anwendbarkeit auf den Quellbaum lassen sich durch die Angabe des Schalters -c überprüfen, CTM ändert in diesem Fall Ihren Quellbaum nicht. CTM verfügt über weitere Kommandozeilenoptionen, Informationen dazu finden Sie in der Manualpage oder dem Quellcode. Das war schon alles. Um Ihre Quellen aktuell zu halten, verwenden Sie CTM jedes Mal, wenn Sie neue Deltas bekommen. Löschen Sie die Deltas nicht, wenn Sie diese nur schwer wieder beschaffen können. Behalten Sie sie für den Fall, das etwas passiert. Auch wenn Sie nur Disketten besitzen, sollten Sie erwägen, die Deltas mit fdwrite zu sichern. Umgang mit lokalen Änderungen Entwickler wollen mit den Dateien im Quellbaum experimentieren und diese verändern. In beschränkter Weise werden lokale Änderungen von CTM unterstützt. Wenn CTM die Datei foo bearbeiten will, überprüft es zuerst ob die Datei foo.ctm existiert. Wenn diese Datei existiert, werden Änderungen in ihr anstatt in foo vorgenommen. Mit diesem Verfahren ist eine leichte Handhabung lokaler Änderungen möglich. Kopieren Sie die Dateien, die Sie ändern möchten, in Dateien, die das Suffix .ctm tragen. Sie können dann ungestört mit dem Quellcode arbeiten, während CTM die .ctm Dateien aktualisiert. Weitere <application>CTM</application>-Optionen Was wird aktualisiert? Eine Liste der Änderungen, die CTM an Ihrem Quellbaum vornehmen wird, erhalten Sie, wenn Sie die Option angeben. Das ist nützlich, wenn Sie Logs über die Änderungen führen wollen, geänderte Dateien vor- oder nachbearbeiten wollen, oder einfach ein bisschen paranoid sind. Sicherungen vor einer Aktualisierung erstellen Sie wollen vielleicht die Dateien, die durch eine CTM Aktualisierung verändert werden, sichern. Mit weisen Sie CTM an, alle Dateien, die durch ein CTM Delta verändert würden, nach backup-file zu sichern. Dateien ausschließen Manchmal wollen Sie nur bestimmte Teile aktualisieren oder nur bestimmte Dateien aus einer Folge von Deltas extrahieren. Sie können die Liste der Dateien, mit denen CTM arbeitet, einschränken, indem Sie reguläre Ausdrücke mit den Optionen und angeben. Wenn Sie eine aktuelle Kopie von lib/libc/Makefile aus den gesicherten CTM Deltas erhalten wollen, setzen Sie das folgende Kommando ab: &prompt.root; cd /wo/Sie/es/auspacken/wollen/ &prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.* Die Optionen und werden in der Reihenfolge angewandt, in der sie auf der Kommandozeile angegeben wurden. Eine Datei wird nur dann von CTM verarbeitet, wenn dies nach der Anwendung der Optionen und noch erlaubt ist. Pläne für <application>CTM</application> Mehrere: Hinzufügen eines Authentifizierungsmechanismus, damit gefälschte CTM-Deltas erkannt werden können. Aufräumen der CTM-Optionen, die mit der Zeit unübersichtlich und irreführend wurden. Verschiedenes Es gibt Deltas für die Ports-Sammlung, die aber nicht intensiv genutzt werden. CTM-Spiegel Die CTM-Deltas können Sie mit anonymous FTP von den folgenden Spiegeln beziehen. Versuchen Sie bitte einen Spiegel in Ihrer Nähe zu benutzen. Bei Problemen wenden Sie sich bitte an die Mailingliste &a.ctm-users.name;. Kalifornien, Bay Area, Offizieller Server Südafrika, Backup-Server für alte Deltas Taiwan/R.O.C. Wenn die Liste keinen Spiegel in Ihrer Nähe enthält oder Sie Probleme mit dem ausgewählten Spiegel haben, versuchen Sie einen Spiegel mit einer Suchmaschine, wie alltheweb, zu finden. Benutzen von CVSup Einführung CVSup ist eine Anwendung, die Verzeichnisbäume von einem entfernten CVS-Server bereitstellt und aktualisiert. Die Quellen von FreeBSD werden in einem CVS-Repository auf einer Entwicklungsmaschine in Kalifornien gepflegt. Mit CVSup können sich FreeBSD-Benutzer den eigenen Quellbaum auf aktuellem Stand halten. Zum Aktualisieren benutzt CVSup die Pull-Methode, bei der die Aktualisierungen vom Client angefragt werden. Der Server wartet dabei passiv auf Anfragen von Clients, das heißt er verschickt nicht unaufgefordert Aktualisierungen. Somit gehen alle Anfragen vom Client aus und die Benutzer müssen CVSup entweder manuell starten oder einen cron Job einrichten, um regelmäßig Aktualisierungen zu erhalten. CVSup in genau dieser Schreibweise bezeichnet die Anwendung, die aus dem Client cvsup und dem Server cvsupd besteht. cvsup läuft auf den Maschinen der Benutzer, cvsupd läuft auf jedem der FreeBSD-Spiegel. Wenn Sie die FreeBSD-Dokumentation und die Mailinglisten lesen, werden Sie oft auf Sup, dem Vorgänger von CVSup stoßen. CVSup wird in gleicher Weise wie Sup benutzt und verfügt sogar über Konfigurationsdateien, die kompatibel zu denen von Sup sind. Da CVSup schneller und flexibler als Sup ist, wird Sup vom FreeBSD-Projekt nicht mehr benutzt. Mit csup gibt es in inzwischen auch eine in C geschriebene Neuimplementierung von CVSup. Der größte Vorteil dieser neuen Version ist neben einer höheren Geschwindigkeit der, dass dieses Programm nicht von der Sprache Modula-3 abhängig ist und Sie daher dieses Paket nicht mitinstallieren müssen. Ab &os; 6.2 ist csup bereits im Basissystem enthalten und kann sofort verwendet werden. Verwenden Sie hingegen eine ältere &os;-Version, können Sie &man.csup.1; über den Port net/csup installieren. Alternativ können Sie zur Installation auch ein vorkompiliertes Paket (Package) verwenden. csup unterstützt allerdings keinen CVS-Modus. Wollen Sie komplette Repositories spiegeln, müssen Sie also weiterhin CVSup einsetzen. Wollen Sie künftig csup einsetzen, überspringen Sie in den folgenden Ausführungen einfach den Abschnitt zur Installation von CVSup und ersetzen alle Vorkommen von CVSup durch csup. Installation von <application>CVSup</application> CVSup können Sie leicht installieren, wenn Sie das vorkompilierte Paket net/cvsup aus der Ports-Sammlung benutzen. Alternativ können Sie net/cvsup auch ausgehend von den Quellen bauen, doch seien Sie gewarnt: net/cvsup hängt vom Modula-3 System ab, das viel Zeit und Platz zum Herunterladen und Bauen braucht. Wenn Sie CVSup auf einer Maschine ohne &xfree86; oder &xorg;, beispielsweise einem Server, benutzen, stellen Sie sicher, dass Sie den Port ohne das CVSup-GUI, net/cvsup-without-gui verwenden. Wollen Sie csup unter &os; 6.1 oder älter installieren, können Sie dazu das vorkompilierte Paket net/csup oder den Port net/csup (zur Installation aus den Quellen) verwenden. Konfiguration von CVSup Das Verhalten von CVSup wird mit einer Konfigurationsdatei gesteuert, die supfile genannt wird. Beispiele für Konfigurationsdateien finden Sie in dem Verzeichnis . Ein supfile enthält die folgenden Informationen: Welche Dateien Sie erhalten wollen. Welche Versionen der Dateien Sie benötigen. Woher Sie die Dateien beziehen wollen. Wo Sie die erhaltenen Dateien speichern. Wo Sie die Status-Dateien aufbewahren wollen. In den folgenden Abschnitten erstellen wir ein typisches supfile indem wir nach und nach diese Punkte klären. Zuerst beschreiben wir aber den Aufbau dieser Konfigurationsdatei. Ein supfile ist eine Textdatei. Kommentare beginnen mit einem # und gelten bis zum Zeilenende. Leerzeilen und Zeilen, die nur Kommentare enthalten, werden ignoriert. Die anderen Zeilen legen die Dateien fest, die ein Benutzer erhalten will. Der Server organisiert verschiedene Dateien in einer Sammlung, deren Name auf einer Zeile angegeben wird. Nach dem Namen der Sammlung können mehrere durch Leerzeichen getrennte Felder folgen, die die oben angesprochenen Informationen festlegen. Es gibt zwei Arten von Feldern: Felder, die Optionen festlegen und Felder mit Parametern. Optionen bestehen aus einem Schlüsselwort, wie oder und stehen alleine. Ein Parameterfeld beginnt mit einem Schlüsselwort, dem = und ein Parameter, wie in , folgt. Dieses Feld darf keine Leerzeichen enthalten. In einem supfile werden normalerweise mehrere Sammlungen angefordert. Die erforderlichen Felder können explizit für jede Sammlung angegeben werden, dann werden jedoch die Zeilen ziemlich lang. Außerdem ist dieses Vorgehen sehr unhandlich, da die meisten Felder für alle Sammlungen gleich sind. CVSup bietet die Möglichkeit, Vorgaben für die Felder der Sammlungen festzulegen. Zeilen, die mit der Pseudo-Sammlung *default beginnen, legen Optionen und Parameter für nachfolgende Sammlungen im supfile fest. Der Vorgabewert kann in der Zeile einer bestimmten Sammlung überschrieben werden. Durch Hinzufügen weiterer *default Zeilen können die Vorgaben auch mitten im supfile überschrieben oder erweitert werden. Mit diesem Wissen können wir nun ein supfile erstellen, das den Quellbaum von FreeBSD-CURRENT anfordert und aktualisiert. Welche Dateien wollen Sie empfangen? Dateien werden von CVSup in Sammlungen organisiert. Die erhältlichen Sammlungen werden später beschrieben. Wir wollen den Quellbaum von FreeBSD empfangen, der in der Sammlung src-all enthalten ist. Das supfile enthält pro Zeile eine Sammlung, in diesem Fall also nur eine einzige Zeile: src-all Welche Versionen der Dateien werden benötigt? Mit CVSup können Sie jede Version der Quellen bekommen, da der cvsupd-Server seine Daten direkt aus dem CVS-Repository bezieht. Sie können die benötigten Versionen in den Parameterfeldern tag= und angeben. Achten Sie darauf, dass Sie das richtige tag=-Feld angeben. Einige Tags sind nur für spezielle Sammlungen gültig. Wenn Sie ein falsches Tag angeben oder sich verschreiben, wird CVSup Dateien löschen, die Sie wahrscheinlich gar nicht löschen wollten. Achten Sie insbesondere bei den ports-*-Sammlungen darauf, ausschließlich tag=. zu verwenden. Mit tag= wird ein symbolischer Name aus dem Repository angegeben. Es gibt zwei verschiedene Tags: Tags, die Revisionen bezeichnen und Tags, die Zweige bezeichnen. Die ersteren sind statisch und fest an eine Revision gebunden. Ein Tag, das einen Zweig bezeichnet, bezieht sich dagegen zu einem gegebenen Zeitpunkt immer auf die aktuellste Revision. Da ein Tag eines Zweiges nicht an eine bestimmte Revision gebunden ist, kann sich dessen Bedeutung von heute auf morgen ändern. zählt für Benutzer relevante Tags auf. Wenn Sie in der Konfigurationsdatei ein Tag, wie RELENG_4, angeben, müssen Sie diesem tag= vorstellen: tag=RELENG_4. Denken Sie daran, dass es für die Ports-Sammlung nur tag=. gibt. Achten Sie darauf, dass Sie den Namen eines Tags richtig angeben. CVSup kann nicht zwischen richtigen und falschen Tags unterscheiden. Wenn Sie sich bei der Angabe eines Tags vertippen, nimmt CVSup an, Sie hätten ein gültiges Tag angegeben, dem nur keine Dateien zugeordnet sind. Die Folge davon ist, dass Ihre vorhandenen Quellen gelöscht werden. Wenn Sie ein Tag angeben, das sich auf einen Zweig bezieht, erhalten Sie die aktuellsten Revisionen der Dateien auf diesem Zweig. Wenn Sie eine frühere Revision erhalten möchten, können Sie diese im Feld angeben. Einzelheiten dazu finden Sie in der Manualpage von cvsup. Wir möchten gerne FreeBSD-CURRENT beziehen und fügen die folgende Zeile am Anfang der Konfigurationsdatei ein: *default tag=. Eine wichtige Ausnahme ist wenn Sie weder ein tag=-Feld noch ein date=-Feld angeben. In diesem Fall erhalten Sie anstelle einer speziellen Revision die wirklichen RCS-Dateien aus dem CVS-Repository des Servers. Diese Vorgehensweise wird von Entwicklern bevorzugt, da sie mit einem eigenen Repository leicht die Entwicklungsgeschichte und Veränderungen von Dateien verfolgen können. Dieser Vorteil muss allerdings mit sehr viel Plattenplatz bezahlt werden. Woher sollen die Dateien bezogen werden? Im host=-Feld wird angegeben, woher cvsup die Dateien holen soll. Sie können hier jeden der CVSup-Spiegel angeben, doch sollten Sie einen Server in Ihrer Nähe auswählen. Für dieses Beispiel wollen wir den erfundenen Server cvsup99.FreeBSD.org verwenden: *default host=cvsup99.FreeBSD.org Bevor Sie CVSup laufen lassen, sollten Sie hier einen existierenden Server einsetzen. Den zu verwendenden Server können Sie auf der Kommandozeile mit überschreiben. Wo sollen die Dateien gespeichert werden? Im prefix=-Feld teilen Sie cvsup mit, wo die Dateien gespeichert werden sollen. In diesem Beispiel werden wir die Quelldateien direkt im Verzeichnisbaum für Quellen /usr/src ablegen. Das Verzeichnis src ist schon in der Sammlung, die wir beziehen enthalten, so dass wir die folgende Zeile angeben: *default prefix=/usr Wo sollen die Statusinformationen von cvsup gespeichert werden? cvsup legt in einem Verzeichnis Statusinformationen ab, die festhalten, welche Versionen schon empfangen wurden. Wir verwenden das Verzeichnis /var/db: *default base=/var/db Wenn das Verzeichnis für die Statusinformationen nicht existiert, sollten Sie es jetzt anlegen, da cvsup ohne dieses Verzeichnis nicht startet. Verschiedene Einstellungen: Eine weitere Zeile sollte normalerweise in jedem supfile sein: *default release=cvs delete use-rel-suffix compress Mit release=cvs wird angegeben, dass der Server das FreeBSD-Haupt-Repository abfragen soll, was praktisch immer der Fall ist (die Ausnahmen werden in diesem Text nicht diskutiert). delete erlaubt es CVSup, Dateien zu löschen. Diese Option sollten Sie immer angeben, damit CVSup Ihren Quellbaum auch wirklich aktuell halten kann. CVSup löscht nur Dateien für die es auch verantwortlich ist. Andere Dateien, die sich in einem Baum unter Kontrolle von CVSup befinden, werden nicht verändert. Wenn Sie wirklich etwas über das obskure use-rel-suffix erfahren wollen, lesen Sie bitte in der Manualpage nach, ansonsten geben Sie es einfach an und vergessen es. Wenn Sie compress angeben, werden Daten auf dem Kommunikationskanal komprimiert. Wenn Sie über eine T1-Leitung oder eine schnellere Netzanbindung verfügen, brauchen Sie diese Option vielleicht nicht. In allen anderen Fällen beschleunigt sie aber den Ablauf. Zusammenfassung: Das vollständige supfile unseres Beispiels sieht nun so aus: *default tag=. *default host=cvsup99.FreeBSD.org *default prefix=/usr *default base=/var/db *default release=cvs delete use-rel-suffix compress src-all Die <filename>refuse</filename> Datei CVSup benutzt die Pull-Methode, das heißt wenn sich ein Client mit einem Server verbindet, erhält er eine Liste der verfügbaren Sammlungen und wählt aus diesen die herunterzuladenden Dateien aus. In der Voreinstellung wählt der Client alle Dateien aus, die zu einer gegebenen Sammlung und zu einem gegebenen Tag passen. Dieses Verhalten ist aber nicht immer erwünscht, besonders wenn Sie die doc, ports oder www Verzeichnisbäume synchronisieren. Die wenigsten Leute beherrschen vier oder fünf Sprachen und benötigen Dateien mit speziellen Anpassungen für eine Sprache. Wenn Sie die Ports-Sammlung synchronisieren, können Sie anstelle von ports-all einzelne Ports, wie ports-astrology oder ports-biology angeben. Die doc und www Verzeichnisbäume verfügen aber nicht über Sammlungen für spezielle Sprachen. In diesem Fall müssen Sie eines der vielen eleganten Merkmale von CVSup benutzen: Die refuse Datei. Mit einer refuse Datei können Sie bestimmte Dateien einer Sammlung von der Übertragung ausschließen. Der Ort der refuse ist base/sup/refuse, wobei base in Ihrem supfile festgelegt wurde. Wir verwenden das Verzeichnis /var/db, der Ort der refuse Datei ist daher /var/db/sup/refuse. Das Format der refuse Datei ist einfach: Sie enthält eine Liste der Dateien und Verzeichnisse, die Sie nicht herunterladen wollen. Wenn Sie zum Beispiel die Dokumentation nicht in anderen Sprachen als Englisch lesen wollen, könnte Ihre refuse-Datei wie folgt aussehen: doc/bn_* doc/da_* doc/de_* doc/el_* doc/es_* doc/fr_* doc/it_* doc/ja_* doc/nl_* doc/no_* doc/pl_* doc/pt_* doc/ru_* doc/sr_* doc/tr_* doc/zh_* Die Aufzählung setzt sich für andere Sprachen fort. Eine vollständige Liste finden Sie im FreeBSD CVS Repository. Die refuse Datei spart Anwendern von CVSup, die über eine langsame Internetanbindung verfügen oder deren Internetverbindung zeitlich abgerechnet wird, wertvolle Zeit, da sie Dateien, die sie nicht benötigen, nicht mehr herunterladen müssen. Weitere Informationen zu refuse Dateien und anderen Eigenschaften von CVSup entnehmen Sie bitte der Manualpage. Ausführen von <application>CVSup</application> Wir können nun eine Aktualisierung mit der folgenden Kommandozeile starten: &prompt.root; cvsup supfile supfile gibt dabei das eben erstelle supfile an. Wenn Sie X11 benutzen, wird cvsup ein GUI starten. Drücken Sie go und schauen Sie zu. Das Beispiel aktualisiert die Dateien im Verzeichnisbaum /usr/src. Sie müssen cvsup als root starten, damit Sie die nötigen Rechte haben, die Dateien zu aktualisieren. Sie sind vielleicht ein bisschen nervös weil Sie das Programm zum ersten Mal anwenden und möchten zuerst einmal einen Testlauf durchführen. Legen Sie dazu ein temporäres Verzeichnis an und übergeben es auf der Kommandozeile von cvsup: &prompt.root; mkdir /var/tmp/dest &prompt.root; cvsup supfile /var/tmp/dest Aktualisierungen werden dann nur in dem angegebenen Verzeichnis vorgenommen. CVSup untersucht die Dateien in /usr/src, wird aber keine dieser Dateien verändern. Die veränderten Dateien finden Sie stattdessen in /var/tmp/dest/usr/src. Die Statusdateien von CVSup werden ebenfalls nicht geändert, sondern in dem angegebenen Verzeichnis abgelegt. Wenn Sie Leseberechtigung in /usr/src haben, brauchen Sie das Programm noch nicht einmal unter root laufen zu lassen. Wenn Sie X11 nicht benutzen wollen oder keine GUIs mögen, sollten Sie cvsup wie folgt aufrufen: &prompt.root; cvsup -g -L 2 supfile verhindert den Start des GUIs. Wenn Sie kein X11 laufen haben, passiert das automatisch, ansonsten müssen Sie diesen Schalter angeben. Mit gibt CVSup Einzelheiten zu jeder Aktualisierung aus. Die Wortfülle der Meldungen können Sie von bis einstellen. In der Voreinstellung werden nur Fehlermeldungen ausgegeben. Eine Zusammenfassung der Optionen von CVSup erhalten Sie mit cvsup -H. Genauere Informationen finden Sie in der Manualpage von CVSup. Wenn Sie mit dem Ablauf der Aktualisierung zufrieden sind, können Sie CVSup regelmäßig aus &man.cron.8; ausführen. In diesem Fall sollten Sie natürlich nicht das GUI benutzen. <application>CVSup</application> Sammlungen Die CVSup Sammlungen sind hierarchisch organisiert. Es gibt wenige große Sammlungen, die in kleinere Teilsammlungen unterteilt sind. Wenn Sie eine große Sammlung beziehen, entspricht das dem Beziehen aller Teilsammlungen. Der Hierarchie der Sammlung wird in der folgenden Aufzählung durch Einrückungen dargestellt. Die am häufigsten benutzen Sammlungen sind src-all und ports-all. Die anderen Sammlungen werden von wenigen Leuten zu speziellen Zwecken benutzt und es kann sein, dass diese nicht auf allen Spiegeln zur Verfügung stehen. cvs-all release=cvs Das FreeBSD-Haupt-Repository einschließlich der Kryptographie-Module. distrib release=cvs Dateien, die zum Verteilen und Spiegeln von FreeBSD benötigt werden. doc-all release=cvs Quellen des FreeBSD-Handbuchs und weiterer Dokumentation. Diese Sammlung enthält nicht die FreeBSD-Webseite. ports-all release=cvs Die FreeBSD-Ports-Sammlung. Wenn Sie nicht die gesamte Ports-Sammlung (ports-all) aktualisieren wollen, sondern nur eine der nachstehend aufgeführten Teilsammlungen, aktualisieren Sie immer die Teilsammlung ports-base. Diese Teilsammlung enthält das Bausystem der Ports. Immer wenn ports-base geändert wird, ist es so gut wie sicher, dass diese Änderung auch tatsächlich von einem Port benutzt wird. Der Bau eines Ports, der auf Änderungen im Bausystem angewiesen wird, wird fehlschlagen, wenn das Bausystem noch auf einem alten Stand ist. Aktualisieren Sie vor allen Dingen ports-base, wenn Sie bei einem Bau merkwürdige Fehlermeldungen erhalten und kein aktuelles Bausystem benutzen. Wenn Sie die Datei ports/INDEX selbst erzeugen, brauchen Sie unbedingt die Sammlung ports-all (den ganzen Ports-Baum). Es ist nicht möglich, ports/INDEX nur mit einem Teilbaum zu erstellen. Lesen Sie dazu bitte die FAQ. ports-accessibility release=cvs Werkzeuge für behinderte Benutzer. ports-arabic release=cvs Arabische Sprachunterstützung. ports-archivers release=cvs Werkzeuge zum Archivieren. ports-astro release=cvs Astronomie-Programme. ports-audio release=cvs Audio-Programme. ports-base release=cvs Das Bausystem der Ports-Sammlung. Dazu gehören verschiedene Dateien in den Unterverzeichnissen Mk/ und Tools/ von /usr/ports. Aktualisieren Sie diese Teilsammlung jedes Mal, wenn Sie einen Teil der Ports-Sammlung aktualisieren. Lesen Sie dazu auch den obigen Hinweis zur Ports-Sammlung. ports-benchmarks release=cvs Benchmarks. ports-biology release=cvs Biologie. ports-cad release=cvs Computer Aided Design Werkzeuge. ports-chinese release=cvs Chinesische Sprachunterstützung. ports-comms release=cvs Programme zur Datenkommunikation. ports-converters release=cvs Zeichensatz Konvertierer. ports-databases release=cvs Datenbanken. ports-deskutils release=cvs Sachen, die sich vor dem Computer-Zeitalter auf dem Schreibtisch befanden. ports-devel release=cvs Werkzeuge für Entwickler. ports-dns release=cvs Software für DNS. ports-editors release=cvs Editoren. ports-emulators release=cvs Programme, die andere Betriebssysteme emulieren. ports-finance release=cvs Finanz-Anwendungen. ports-ftp release=cvs Werkzeuge für FTP Clients und Server. ports-games release=cvs Spiele. ports-german release=cvs Deutsche Sprachunterstützung. ports-graphics release=cvs Graphik-Programme. ports-hebrew release=cvs Hebräische Sprachunterstützung. ports-hungarian release=cvs Ungarische Sprachunterstützung. ports-irc release=cvs Internet Relay Chat Werkzeuge. ports-japanese release=cvs Japanische Sprachunterstützung. ports-java release=cvs &java; Werkzeuge. ports-korean release=cvs Koreanische Sprachunterstützung. ports-lang release=cvs Programmiersprachen. ports-mail release=cvs E-Mail Programme. ports-math release=cvs Programme zur numerischen Mathematik. ports-mbone release=cvs MBone Anwendungen. ports-misc release=cvs Verschiedene Werkzeuge. ports-multimedia release=cvs Multimedia-Anwendungen. ports-net release=cvs Netzwerk-Programme. ports-net-im release=cvs Diverse Instant-Messenger. ports-net-mgmt release=cvs Software zum Verwalten von Netzwerken. ports-net-p2p release=cvs Software für die Nutzung von Peer-to-Peer-Netzwerken. ports-news release=cvs USENET News Werkzeuge. ports-palm release=cvs Programme für den Palm. ports-polish release=cvs Polnische Sprachunterstützung. ports-ports-mgmt release=cvs Werkzeuge zum Management von Ports und Paketen. ports-portuguese release=cvs Portugiesische Sprachunterstützung. ports-print release=cvs Druckprogramme. ports-russian release=cvs Russische Sprachunterstützung. ports-science release=cvs Wissenschaft. ports-security release=cvs Werkzeuge zum Thema Sicherheit. ports-shells release=cvs Kommandozeilen-Shells. ports-sysutils release=cvs System-Werkzeuge. ports-textproc release=cvs Programme zur Textverarbeitung (ohne Desktop Publishing). ports-ukrainian release=cvs Ukrainische Sprachunterstützung. ports-vietnamese release=cvs Vietnamesische Sprachunterstützung. ports-www release=cvs Software rund um das World Wide Web. ports-x11 release=cvs X-Window Programme. ports-x11-clocks release=cvs X11-Uhren. ports-x11-fm release=cvs X11-Dateiverwalter. ports-x11-fonts release=cvs X11-Zeichensätze und Werkzeuge dazu. ports-x11-toolkits release=cvs X11-Werkzeuge. ports-x11-servers release=cvs X11-Server. ports-x11-themes release=cvs X11-Themes. ports-x11-wm release=cvs X11-Fensterverwalter. projects-all release=cvs Quelltexte der verschiedenen FreeBSD-Projekte. src-all release=cvs Die FreeBSD-Quellen einschließlich der Kryptographie-Module. src-base release=cvs Verschiedene Dateien unter /usr/src. src-bin release=cvs Benutzer-Werkzeuge die im Einzelbenutzermodus gebraucht werden (/usr/src/bin). src-contrib release=cvs Werkzeuge und Bibliotheken, die nicht aus dem FreeBSD-Projekt stammen und wenig verändert übernommen werden. (/usr/src/contrib). src-crypto release=cvs Kryptographische Werkzeuge und Bibliotheken, die nicht aus dem FreeBSD-Projekt stammen und wenig verändert übernommen werden. (/usr/src/crypto). src-eBones release=cvs Kerberos und DES (/usr/src/eBones). Wird in aktuellen Releases von FreeBSD nicht benutzt. src-etc release=cvs Konfigurationsdateien des Systems (/usr/src/etc). src-games release=cvs Spiele (/usr/src/games). src-gnu release=cvs Werkzeuge, die unter der GNU Public License stehen (/usr/src/gnu). src-include release=cvs Header Dateien (/usr/src/include). src-kerberos5 release=cvs Kerberos5 (/usr/src/kerberos5). src-kerberosIV release=cvs KerberosIV (/usr/src/kerberosIV). src-lib release=cvs Bibliotheken (/usr/src/lib). src-libexec release=cvs Systemprogramme, die von anderen Programmen ausgeführt werden (/usr/src/libexec). src-release release=cvs Dateien, die zum Erstellen eines FreeBSD Releases notwendig sind (/usr/src/release). src-sbin release=cvs Werkzeuge für den Einzelbenutzermodus (/usr/src/sbin). src-secure release=cvs Kryptographische Bibliotheken und Befehle (/usr/src/secure). src-share release=cvs Dateien, die von mehreren Systemen gemeinsam benutzt werden können (/usr/src/share). src-sys release=cvs Der Kernel (/usr/src/sys). src-sys-crypto release=cvs Kryptographie Quellen des Kernels (/usr/src/sys/crypto). src-tools release=cvs Verschiedene Werkzeuge zur Pflege von FreeBSD (/usr/src/tools). src-usrbin release=cvs Benutzer-Werkzeuge (/usr/src/usr.bin). src-usrsbin release=cvs System-Werkzeuge (/usr/src/usr.sbin). www release=cvs Die Quellen der FreeBSD-WWW-Seite. distrib release=self Die Konfigurationsdateien des CVSup Servers. Diese werden von den CVSup benutzt. gnats release=current Die GNATS Datenbank, in der Problemberichte verwaltet werden. mail-archive release=current Das Archiv der FreeBSD-Mailinglisten. www release=current Die formatierten Dateien der FreeBSD-WWW-Seite (nicht die Quellen). Diese werden von den WWW-Spiegeln benutzt. Weiterführende Informationen Die CVSup FAQ und weitere Informationen über CVSup finden Sie auf The CVSup Home Page. FreeBSD spezifische Diskussionen über CVSup finden auf der Mailingliste &a.hackers; statt. Dort und auf der Liste &a.announce; werden neue Versionen von CVSup angekündigt. Fragen und Problemberichte sollten an den Autor des Programms cvsup-bugs@polstra.com weitergeleitet werden. CVSup-Server Die folgende Aufzählung enthält CVSup Server für FreeBSD: &chap.mirrors.cvsup.inc; Portsnap einsetzen Einführung Bei Portsnap handelt es sich um ein System für die sichere Distribution der &os;-Ports-Sammlung. Dazu wird in der Regel stündlich ein Snapshot des Ports-Baumes erzeugt, der anschließend komprimiert und kryptografisch signiert wird. Die dabei erzeugten Dateien werden danach über HTTP verteilt. Analog zu CVSup verwendet auch auch Portsnap das Pull-Prinzip, um die Ports-Sammlung zu aktualisieren: Der komprimierte und signierte Ports-Baum wird auf einem Webserver abgelegt, der danach passiv auf Client-Anforderungen wartet. Ein Anwender muss daher &man.portsnap.8; manuell starten, um seine Ports-Sammlung zu aktualisieren. Eine Alternative ist das Erstellen eines &man.cron.8; -Jobs, der den Ports-Baum regelmäßig automatisch aktualisiert. Beachten Sie, dass Portsnap nicht mit der echten Ports-Sammlung unter /usr/ports/, sondern mit einer komprimierten Kopie des Ports-Baumes arbeitet, die in der Voreinstellung unter /var/db/portsnap/ angelegt wird. Diese komprimierte Version wird danach dazu verwendet, den tatsächlichen Ports-Baum zu aktualisieren. Haben Sie Portsnap über die &os;-Ports-Sammlung installiert, wird der komprimierte Ports-Baum statt unter /var/db/portsnap/ unter /usr/local/portsnap/ angelegt. Installation Seit &os; 6.0 ist Portsnap im &os;-Basissystem enthalten. Verwenden Sie eine ältere &os;-Version, können Sie zur Installation den Port ports-mgmt/portsnap verwenden. <application>portsnap</application> konfigurieren portsnap kann über die Datei /etc/portsnap.conf konfiguriert werden. In der Regel kann allerdings die Standardkonfiguration unverändert übernommen werden. Wollen Sie die Datei dennoch anpassen, sollten Sie zuvor &man.portsnap.conf.5; lesen. Wurde Portsnap über die &os;-Ports-Sammlung installiert, so wird statt /etc/portsnap.conf /usr/local/etc/portsnap.conf als Konfigurationsdatei verwendet. Diese Datei wird während der Installation nicht angelegt, allerdings wird eine Beispielkonfigurationsdatei mitgeliefert, die Sie in dieses Verzeichnis kopieren können: &prompt.root; cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf Der erste Aufruf von <application>portsnap</application> Wenn Sie &man.portsnap.8; das erste Mal aufrufen, müssen Sie einen komprimierten Snapshot des kompletten Ports-Baumes nach /var/db/portsnap/ herunterladen (oder nach /usr/local/portsnap/ Sie Portsnap über die Ports-Sammlung installiert haben). Die ungefähre Größe des komprimierten Ports-Baumes beträgt derzeit (Anfang 2006) etwa 41 MB. &prompt.root; portsnap fetch Nachdem der komprimierte Snapshot heruntergeladen wurde, kann eine Live-Version des Ports-Baumes nach /usr/ports/ extrahiert werden. Dieser Schritt ist selbst dann nötig, wenn sich bereits ein Ports-Baum in diesem Verzeichnis befindet (der beispielsweise von CVSup angelegt wurde), weil portsnap einen Ausgangszustand des Ports-Baumes benötigt, um festzustellen, welche Teile des Baums aktualisiert werden müssen: &prompt.root; portsnap extract Bei einer &os;-Standardinstallation wird das Verzeichnis /usr/ports nicht angelegt. Verwenden Sie &os; 6.0-RELEASE, sollten Sie dies vor der ersten Ausführung von portsnap nachholen. Verwenden Sie hingegen eine aktuellere &os;-Version oder eine aktuellere Version von Portsnap, wird dies beim ersten Aufruf von portsnap automatisch erledigt. Den Ports-Baum aktualisieren Nachdem der originale komprimierte Snapshot des Ports-Baumes heruntergeladen und nach /usr/ports/ extrahiert wurde, können Sie den Ports-Baum aktualisieren. Dazu sind zwei Schritte nötig: Mit fetch laden Sie Aktualisierungen herunter, mit update aktualisieren Sie die Live-Version des Ports-Baumes. Beide Parameter können gleichzeitig an portsnap übergeben werden: &prompt.root; portsnap fetch update Einige ältere portsnap-Versionen unterstützen diese Syntax nicht. In diesem Fall gehen Sie wie folgt vor: &prompt.root; portsnap fetch &prompt.root; portsnap update Portsnap als cron-Job starten Um eine Überlastung der Portsnap-Server zu vermeiden, kann portsnap fetch nicht als normaler &man.cron.8;-Job ausgeführt werden. Als Alternative gibt es den Befehl portsnap cron, der eine zufällige Zeitspanne (bis zu 3600 Sekunden) wartet, bevor Aktualisierungen heruntergeladen werden. portsnap update sollte ebenfalls nicht als cron-Job ausgeführt werden, da es zu massiven Problemen kann, wenn parallel zur Aktualisierung ein Port gebaut oder installiert wird. Die Aktualisierung des Portsindex stellt hingegen kein Problem dar. Um die INDEX-Datei zu aktualisieren, übergeben Sie zusätzlich die Option an portsnap. (Wenn Sie portsnap -I update als cron-Job definiert haben, müssen Sie portsnap update ohne die Option aufrufen, um den Rest des Ports-Baumes zu aktualisieren.) Wenn Sie die folgende Zeile in /etc/crontab aufnehmen, aktualisiert portsnap den komprimierten Snapshot sowie die INDEX-Dateien unter /usr/ports/ und verschickt eine E-Mail, wenn Ihre installierten Ports veraltet sind: 0 3 * * * root portsnap -I cron update && pkg_version -vIL= Ist Ihre Systemuhr nicht auf Ihre lokale Zeitzone eingestellt, ersetzen Sie bitte 3 durch eine beliebige Zahl zwischen 0 und 23, damit die Last der Portsnap-Server gleichmäßiger verteilt wird. Einige ältere portsnap-Versionen unterstützen die Angabe von mehreren Befehlen (etwa cron update) für einen einzigen portsnap-Aufruf nicht. Ist dies bei Ihnen der Fall, ersetzen Sie bitte portsnap -I cron update durch portsnap cron && portsnap -I update. CVS-Tags Wenn Sie Quellen mit CVS oder CVSup erhalten oder aktualisieren wollen, müssen Sie ein Tag angeben. Ein Tag kann einen bestimmten &os;-Zweig oder einen bestimmten Zeitpunkt (Release-Tag) bestimmen. Tags für Zweige Mit Ausnahme von HEAD (das immer ein gültiges Tag ist), können die folgenden Tags nur im src/-Quellbaum verwendet werden. Die Quellbäume ports/, doc/ und www/ sind nicht verzweigt. HEAD Symbolischer Name für den Hauptzweig, auch &os.current; genannt. Dies ist die Vorgabe, wenn keine Revision angegeben wird. In CVSup wird dieses Tag mit einem . (Punkt) bezeichnet. In CVS ist das die Vorgabe, wenn Sie kein Tag oder eine Revision angeben. Außer Sie wollen einen -STABLE Rechner auf -CURRENT aktualisieren, ist es nicht ratsam, die -CURRENT Quellen auf einem -STABLE Rechner einzuspielen. RELENG_6 Der Entwicklungszweig für FreeBSD-6.X, auch als FreeBSD 6-STABLE bekannt. RELENG_6_2 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 6.1 durchgeführt werden. RELENG_6_1 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 6.1 durchgeführt werden. RELENG_6_0 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 6.0 durchgeführt werden. RELENG_5 Der &os; 5.X Entwicklungszweig, der auch &os; 5-STABLE genannt wird. RELENG_5_5 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 5.5 durchgeführt werden. RELENG_5_4 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 5.4 durchgeführt werden. RELENG_5_3 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 5.3 durchgeführt werden. RELENG_5_2 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 5.2 und &os; 5.2.1 durchgeführt werden. RELENG_5_1 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 5.1 durchgeführt werden. RELENG_5_0 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 5.0 durchgeführt werden. RELENG_4 Der &os; 4.X Entwicklungszweig, der auch &os; 4-STABLE genannt wird. RELENG_4_11 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 4.11 durchgeführt werden. RELENG_4_10 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 4.10 durchgeführt werden. RELENG_4_9 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 4.9 durchgeführt werden. RELENG_4_8 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 4.8 durchgeführt werden. RELENG_4_7 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 4.7 durchgeführt werden. RELENG_4_6 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 4.6 und FreeBSD 4.6.2 durchgeführt werden. RELENG_4_5 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 4.5 durchgeführt werden. RELENG_4_4 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 4.4 durchgeführt werden. RELENG_4_3 Der Zweig, auf dem sicherheitsrelevante oder kritische Fehlerbehebungen für FreeBSD 4.3 durchgeführt werden. RELENG_3 Der FreeBSD-3.X Entwicklungszweig, der auch 3.X-STABLE genannt wird. RELENG_2_2 Der FreeBSD-2.2.X Entwicklungszweig, der auch 2.2-STABLE genannt wird. Release-Tags Diese Tags geben den Zeitpunkt an, an dem eine bestimme &os;-Version veröffentlicht wurde. Das Erstellen einer Release ist in den Dokumenten Release Engineering Information und Release Process beschrieben. Der src-Baum benutzt Tags, deren Namen mit RELENG_ anfangen. Die Bäume ports und doc benutzen Tags, deren Namen mit RELEASE anfangen. Im Baum www werden keine Release-Tags verwendet. RELENG_6_2_0_RELEASE FreeBSD 6.2 RELENG_6_1_0_RELEASE FreeBSD 6.1 RELENG_6_0_0_RELEASE FreeBSD 6.0 RELENG_5_5_0_RELEASE FreeBSD 5.5 RELENG_5_4_0_RELEASE FreeBSD 5.4 RELENG_4_11_0_RELEASE FreeBSD 4.11 RELENG_5_3_0_RELEASE FreeBSD 5.3 RELENG_4_10_0_RELEASE FreeBSD 4.10 RELENG_5_2_1_RELEASE FreeBSD 5.2.1 RELENG_5_2_0_RELEASE FreeBSD 5.2 RELENG_4_9_0_RELEASE FreeBSD 4.9 RELENG_5_1_0_RELEASE FreeBSD 5.1 RELENG_4_8_0_RELEASE FreeBSD 4.8 RELENG_5_0_0_RELEASE FreeBSD 5.0 RELENG_4_7_0_RELEASE FreeBSD 4.7 RELENG_4_6_2_RELEASE FreeBSD 4.6.2 RELENG_4_6_1_RELEASE FreeBSD 4.6.1 RELENG_4_6_0_RELEASE FreeBSD 4.6 RELENG_4_5_0_RELEASE FreeBSD 4.5 RELENG_4_4_0_RELEASE FreeBSD 4.4 RELENG_4_3_0_RELEASE FreeBSD 4.3 RELENG_4_2_0_RELEASE FreeBSD 4.2 RELENG_4_1_1_RELEASE FreeBSD 4.1.1 RELENG_4_1_0_RELEASE FreeBSD 4.1 RELENG_4_0_0_RELEASE FreeBSD 4.0 RELENG_3_5_0_RELEASE FreeBSD-3.5 RELENG_3_4_0_RELEASE FreeBSD-3.4 RELENG_3_3_0_RELEASE FreeBSD-3.3 RELENG_3_2_0_RELEASE FreeBSD-3.2 RELENG_3_1_0_RELEASE FreeBSD-3.1 RELENG_3_0_0_RELEASE FreeBSD-3.0 RELENG_2_2_8_RELEASE FreeBSD-2.2.8 RELENG_2_2_7_RELEASE FreeBSD-2.2.7 RELENG_2_2_6_RELEASE FreeBSD-2.2.6 RELENG_2_2_5_RELEASE FreeBSD-2.2.5 RELENG_2_2_2_RELEASE FreeBSD-2.2.2 RELENG_2_2_1_RELEASE FreeBSD-2.2.1 RELENG_2_2_0_RELEASE FreeBSD-2.2.0 AFS-Server Die folgende Aufzählung enthält AFS Server für FreeBSD: Schweden Die Dateien sind unter dem Pfad /afs/stacken.kth.se/ftp/pub/FreeBSD/ erreichbar. stacken.kth.se # Stacken Computer Club, KTH, Sweden 130.237.234.43 #hot.stacken.kth.se 130.237.237.230 #fishburger.stacken.kth.se 130.237.234.3 #milko.stacken.kth.se Betreuer ftp@stacken.kth.se rsync-Server rsync wird ähnlich wie &man.rcp.1; verwendet, besitzt aber mehr Optionen und verwendet das rsync remote-update Protokoll, das nur geänderte Dateien überträgt und damit viel schneller als ein normaler Kopiervorgang ist. rsync ist sehr nützlich, wenn Sie einen FreeBSD-FTP-Spiegel oder einen CVS-Spiegel betreiben. Das Programm ist für viele Betriebssysteme erhältlich, mit FreeBSD können Sie den Port net/rsync oder das fertige Paket benutzen. Die folgenden Server stellen FreeBSD über das rsync Protokoll zur Verfügung: Deutschland rsync://grappa.unix-ag.uni-kl.de/ Verfügbare Sammlungen: freebsd-cvs: Das vollständige CVS-Repository von &os;. Neben anderen Repositories spiegelt diese Maschine auch die Repositories der NetBSD- und OpenBSD-Projekte. Großbritannien rsync://rsync.mirror.ac.uk/ Verfügbare Sammlungen: ftp.FreeBSD.org: Kompletter Spiegel des FreeBSD-FTP-Servers. Niederlande rsync://ftp.nl.FreeBSD.org/ Verfügbare Sammlungen: vol/4/freebsd-core: Kompletter Spiegel des FreeBSD-FTP-Servers. + + Taiwan + + + rsync://ftp.tw.FreeBSD.org/ + rsync://ftp2.tw.FreeBSD.org/ + rsync://ftp6.tw.FreeBSD.org/ + + Verfügbare Sammlungen: + + + FreeBSD: Kompletter Spiegel des + FreeBSD-FTP-Servers. + + + + Tschechische Republik rsync://ftp.cz.FreeBSD.org/ Verfügbare Sammlungen: ftp: Unvollständiger Spiegel des FreeBSD-FTP-Servers. FreeBSD: Vollständiger Spiegel des FreeBSD-FTP-Servers. USA rsync://ftp-master.FreeBSD.org/ Dieser Server darf nur von primären Spiegeln benutzt werden. Verfügbare Sammlungen: FreeBSD: Das Hauptarchiv des FreeBSD FTP Servers. acl: Die primäre ACL-Liste. rsync://ftp13.FreeBSD.org/ Verfügbare Sammlungen: FreeBSD: Kompletter Spiegel des FreeBSD-FTP-Servers.
diff --git a/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml b/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml index b7734f16be..26d9c068c0 100644 --- a/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml @@ -1,5284 +1,5284 @@ Murray Stokely Überarbeitet von Johann Kois Übersetzt von Netzwerkserver Übersicht Dieses Kapitel beschreibt einige der häufiger verwendeten Netzwerkdienste auf &unix;-Systemen. Beschrieben werden Installation und Konfiguration sowie Test und Wartung verschiedener Netzwerkdienste. Zusätzlich sind im ganzen Kapitel Beispielkonfigurationsdateien vorhanden, von denen Sie sicherlich profitieren werden. Nachdem Sie dieses Kapitel gelesen haben, werden Sie Den inetd-Daemon konfigurieren können. Wissen, wie man ein Netzwerkdateisystem einrichtet. Einen Network Information Server einrichten können, um damit Benutzerkonten im Netzwerk zu verteilen. Rechner durch Nutzung von DHCP automatisch für ein Netzwerk konfigurieren können. In der Lage sein, einen Domain Name Server einzurichten. Den Apache HTTP-Server konfigurieren können. Wissen, wie man einen File Transfer Protocol (FTP)-Server einrichtet. Mit Samba einen Datei- und Druckserver für &windows;-Clients konfigurieren können. Unter Nutzung des NTP-Protokolls Datum und Uhrzeit synchronisieren sowie einen Zeitserver installieren können. Bevor Sie dieses Kapitel lesen, sollten Sie Die Grundlagen der /etc/rc-Skripte verstanden haben. Mit der grundlegenden Netzwerkterminologie vertraut sein. Wissen, wie man zusätzliche Softwarepakete von Drittherstellern installiert (). Chern Lee Beigetragen von Aktualisiert für &os; 6.1-RELEASE vom &os; Documentation Project Der <application>inetd</application> <quote>Super-Server</quote> Überblick &man.inetd.8; wird manchmal auch als Internet Super-Server bezeichnet, weil er Verbindungen für mehrere Dienste verwaltet. Wenn eine Verbindung eintrifft, bestimmt inetd, welches Programm für die eingetroffene Verbindung zuständig ist, aktiviert den entsprechenden Prozess und reicht den Socket an ihn weiter (der Socket dient dabei als Standardein- und -ausgabe sowie zur Fehlerbehandlung). Der Einsatz des inetd-Daemons an Stelle viele einzelner Daemonen kann auf nicht komplett ausgelasteten Servern zu einer Verringerung der Systemlast führen. inetd wird vor allem dazu verwendet, andere Daemonen zu aktivieren, einige Protokolle werden aber auch direkt verwaltet. Dazu gehören chargen, auth, sowie daytime. Dieser Abschnitt beschreibt die Konfiguration von inetd durch Kommandozeilenoptionen sowie die Konfigurationsdatei /etc/inetd.conf. Einstellungen inetd wird durch das &man.rc.8;-System initialisiert. Die Option inetd_enable ist in der Voreinstellung zwar auf NO gesetzt, sie kann aber in Abhängigkeit von der vom Benutzer bei der Installation gewählten Konfiguration von sysinstall aktiviert werden. Die Verwendung von inetd_enable="YES" oder inetd_enable="NO" in /etc/rc.conf deaktiviert oder startet inetd beim Systemstart. Über den Befehl /etc/rc.d/inetd rcvar können Sie die aktuelle Konfiguration abfragen. Weitere Optionen können über die Option inetd_flags an inetd übergeben werden. Kommandozeilenoptionen Wie die meisten anderen Server-Daemonen lässt sich auch inetd über verschiedene Optionen steuern. Die vollständige Syntax für inetd lautet: inetd Die verschiedenen Optionen können über die Option inetd_flags der Datei /etc/rc.conf an inetd übergeben werden. In der Voreinstellung hat diese Option den Wert -wW -C 60. Durch das Setzen dieser Werte wird das TCP-Wrapping für alle inetd-Dienste aktiviert. Zusätzlich kann eine einzelne IP-Adresse jeden Dienst nur maximal 60 Mal pro Minute anfordern. Für Einsteiger ist es erfreulich, dass diese Parameter in der Regel nicht angepasst werden müssen. Da diese Parameter aber dennoch von Interesse sein können (beispielsweise, wenn Sie eine enorme Anzahl von Verbindungsanfragen erhalten), werden einige dieser einschränkenden Parameter im Folgenden näher erläutert. Eine vollständige Auflistung aller Optionen finden Sie hingegen in &man.inetd.8;. -c maximum Legt die maximale Anzahl von parallen Aufrufen eines Dienstes fest; in der Voreinstellung gibt es keine Einschränkung. Diese Einstellung kann für jeden Dienst durch Setzen des -Parameters festgelegt werden. -C rate Legt fest, wie oft ein Dienst von einer einzelnen IP-Adresse in einer Minute aufgerufen werden kann; in der Voreinstellung gibt es keine Einschränkung. Dieser Wert kann für jeden Dienst durch Setzen des Parameters festgelegt werden. -R rate Legt fest, wie oft ein Dienst in der Minute aktiviert werden kann; in der Voreinstellung sind dies 256 Aktivierungen pro Minute. Ein Wert von 0 erlaubt unbegrenzt viele Aktivierungen. -s maximum Legt fest, wie oft ein Dienst in der Minute von einer einzelnen IP-Adresse aus aktiviert werden kann; in der Voreinstellung gibt es hier keine Beschränkung. Diese Einstellung kann für jeden Dienst durch die Angabe angepasst werden. <filename>inetd.conf</filename> Die Konfiguration von inetd erfolgt über die Datei /etc/inetd.conf. Wenn /etc/inetd.conf geändert wird, kann inetd veranlasst werden, seine Konfigurationsdatei neu einzulesen. Die <application>inetd</application>-Konfiguration neu einlesen &prompt.root; /etc/rc.d/inetd reload Jede Zeile der Konfigurationsdatei beschreibt jeweils einen Daemon. Kommentare beginnen mit einem #. Ein Eintrag der Datei /etc/inetd.conf hat folgenden Aufbau: service-name socket-type protocol {wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] user[:group][/login-class] server-program server-program-arguments Ein Eintrag für den IPv4 verwendenden &man.ftpd.8;-Daemon könnte so aussehen: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l service-name Der Dienstname eines bestimmten Daemons. Er muss einem in /etc/services aufgelisteten Dienst entsprechen. In dieser Datei wird festgelegt, welchen Port inetd abhören muss. Wenn ein neuer Dienst erzeugt wird, muss er zuerst in die Datei /etc/services eingetragen werden. socket-type Entweder stream, dgram, raw, oder seqpacket. stream muss für verbindungsorientierte TCP-Daemonen verwendet werden, während dgram das UDP-Protokoll verwaltet. protocol Eines der folgenden: Protokoll Bedeutung tcp, tcp4 TCP (IPv4) udp, udp4 UDP (IPv4) tcp6 TCP (IPv6) udp6 UDP (IPv6) tcp46 TCP sowohl unter IPv4 als auch unter IPv6 udp46 UDP sowohl unter IPv4 als auch unter IPv6 {wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] gibt an, ob der von inetd aktivierte Daemon seinen eigenen Socket verwalten kann oder nicht. -Sockets müssen die Option verwenden, während Daemonen mit Stream-Sockets, die normalerweise auch aus mehreren Threads bestehen, die Option verwenden sollten. Die Option gibt in der Regel mehrere Sockets an einen einzelnen Daemon weiter, während für jeden neuen Socket einen Childdaemon erzeugt. Die maximale Anzahl an Child-Daemonen, die inetd erzeugen kann, wird durch die Option festgelegt. Wenn ein bestimmter Daemon 10 Instanzen benötigt, sollte der Wert /10 hinter die Option gesetzt werden. Geben Sie hingegen den Wert /0 an, gibt es keine Beschränkung. Zusätzlich zu kann die maximale Anzahl von Verbindungen eines Rechners mit einem bestimmten Daemon durch zwei weitere Optionen beschränkt werden. Die Option legt die maximale Anzahl von Verbindungsversuchen fest, die von einer bestimmten IP-Adresse aus unternommen werden können. Ein Wert von zehn würde die maximale Anzahl von Verbindungsversuchen einer IP-Adresse mit einem bestimmten Dienst auf zehn Versuche in der Minute beschränken. Durch die Angabe der Option können Sie hingegen festlegen, wieviele Child-Daemonen von einer bestimmten IP-Adresse aus gestartet werden können. Durch diese Optionen lassen sich ein absichtlicher oder unabsichtlicher Ressourcenverbrauch sowie die Auswirkungen eines Denial of Service (DoS)-Angriffs auf einen Rechner begrenzen. Sie müssen hier entweder oder angeben. Die Angabe von , und ist hingegen optional. Ein multithread-Daemon vom Streamtyp ohne die Optionen , oder sieht so aus: nowait Der gleiche Daemon mit einer maximal möglichen Anzahl von 10 parallelen Daemonen würde so aussehen: nowait/10 Wird zusätzlich die Anzahl der möglichen Verbindungen pro Minute für jede IP-Adresse auf 20 sowie die mögliche Gesamtzahl von Childdaemonen auf 10 begrenzt, so sieht der Eintrag so aus: nowait/10/20 All diese Optionen werden vom &man.fingerd.8;-Daemon bereits in der Voreinstellung verwendet: finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s Will man die maximale Anzahl von Child-Daemonen auf 100 beschränken, wobei von jeder IP-Adresse aus maximal 5 Child-Daemonen gestartet werden dürfen, verwendet man den folgenden Eintrag: nowait/100/0/5. user Der Benutzername, unter dem der jeweilige Daemon laufen soll. Meistens laufen Daemonen als User root. Aus Sicherheitsgründen laufen einige Server aber auch als User daemon, oder als am wenigsten privilegierter User nobody. server-program Der vollständige Pfad des Daemons, der eine Verbindung entgegennimmt. Wird der Daemon von inetd intern bereitgestellt, sollte die Option verwendet werden. server-program-arguments Dieser Eintrag legt (gemeinsam mit und beginnend mit argv[0]), die Argumente fest, die bei der Aktivierung an den Daemon übergeben werden. Wenn die Anweisung auf der Kommandozeile also mydaemon -d lautet, wäre mydaemon -d auch der Wert der Option . Wenn es sich beim Daemon um einen internen Dienst handelt, sollte wiederum die Option verwendet werden. Sicherheit Abhängig von der bei der Installation festgelegten Konfiguration werden viele der von inetd verwalteten Dienste automatisch aktiviert! Wenn Sie einen bestimmten Daemon nicht benötigen, sollten Sie ihn deaktivieren! Dazu kommentieren Sie den jeweiligen Daemon in /etc/inetd.conf mit einem # aus, um danach die inetd-Konfiguration neu einzulesen. Einige Daemonen, zum Beispiel fingerd, sollten generell deaktiviert werden, da sie zu viele Informationen an einen potentiellen Angreifer liefern. Einige Daemonen haben unsichere Einstellungen, etwa große oder nichtexistierende Timeouts für Verbindungsversuche, die es einem Angreifer erlauben, über lange Zeit langsam Verbindungen zu einem bestimmten Daemon aufzubauen, um dessen verfügbare Ressourcen zu verbrauchen. Es ist daher eine gute Idee, diese Daemonen durch die Optionen , sowie zu beschränken, wenn Sie sehr viele Verbindungsversuche mit Ihrem System registrieren. TCP-Wrapping ist in der Voreinstellung aktiviert. Lesen Sie &man.hosts.access.5;, wenn Sie weitere Informationen zum Setzen von TCP-Beschränkungen für verschiedene von inetd aktivierte Daemonen benötigen. Verschiedenes Bei daytime, time, echo, discard, chargen, und auth handelt es sich um intern von inetd bereitgestellte Dienste. Der auth-Dienst bietet Identifizierungsdienste über das Netzwerk an und ist bis zu einem bestimmten Grad konfigurierbar, während die meisten anderen Dienste nur aktiviert oder deaktiviert werden können. Eine ausführliche Beschreibung finden Sie in &man.inetd.8;. Tom Rhodes Reorganisiert und erweitert von Bill Swingle Geschrieben von NFS – Network File System NFS Eines der vielen von FreeBSD unterstützten Dateisysteme ist das Netzwerkdateisystem, das auch als NFS bekannt ist. NFS ermöglicht es einem System, Dateien und Verzeichnisse über ein Netzwerk mit anderen zu teilen. Über NFS können Benutzer und Programme auf Daten entfernter Systeme zugreifen, und zwar genauso, wie wenn es sich um lokale Daten handeln würde. Einige der wichtigsten Vorteile von NFS sind: Lokale Arbeitsstationen benötigen weniger Plattenplatz, da gemeinsam benutzte Daten nur auf einem einzigen Rechner vorhanden sind. Alle anderen Stationen greifen über das Netzwerk auf diese Daten zu. Benutzer benötigen nur noch ein zentrales Heimatverzeichnis auf einem NFS-Server. Diese Verzeichnisse sind über das Netzwerk auf allen Stationen verfügbar. Speichergeräte wie Disketten-, CD-ROM- oder &iomegazip;-Laufwerke können über das Netzwerk von anderen Arbeitstationen genutzt werden. Dadurch sind für das gesamte Netzwerk deutlich weniger Speichergeräte nötig. Wie funktioniert <acronym>NFS</acronym>? NFS besteht aus zwei Hauptteilen: Einem Server und einem oder mehreren Clients. Der Client greift über das Netzwerk auf die Daten zu, die auf dem Server gespeichert sind. Damit dies korrekt funktioniert, müssen einige Prozesse konfiguriert und gestartet werden: Der Server benötigt folgende Daemonen: NFS Server Dateiserver Unix-Clients rpcbind mountd nfsd Daemon Beschreibung nfsd Der NFS-Daemon. Er bearbeitet Anfragen der NFS-Clients. mountd Der NFS-Mount-Daemon. Er bearbeitet die Anfragen, die &man.nfsd.8; an ihn weitergibt. rpcbind Der Portmapper-Daemon. Durch ihn erkennen die NFS-Clients, welchen Port der NFS-Server verwendet. Der Client kann ebenfalls einen Daemon aufrufen, und zwar den nfsiod-Daemon. Der nfsiod-Daemon bearbeitet Anfragen vom NFS-Server. Er ist optional und verbessert die Leistung des Netzwerks. Für eine normale und korrekte Arbeit ist er allerdings nicht erforderlich. Mehr erfahren Sie in der Hilfeseite &man.nfsiod.8;. <acronym>NFS</acronym> einrichten NFS einrichten NFS lässt sich leicht einrichten. Die nötigen Prozesse werden durch einige Änderungen in /etc/rc.conf bei jedem Systemstart gestartet. Stellen Sie sicher, dass auf dem NFS-Server folgende Optionen in der Datei /etc/rc.conf gesetzt sind: rpcbind_enable="YES" nfs_server_enable="YES" mountd_flags="-r" mountd läuft automatisch, wenn der NFS-Server aktiviert ist. Auf dem Client muss in /etc/rc.conf folgende Option gesetzt sein: nfs_client_enable="YES" /etc/exports legt fest, welche Dateisysteme NFS exportieren (manchmal auch als teilen bezeichnet) soll. Jede Zeile in /etc/exports legt ein Dateisystem sowie die Arbeitsstationen, die darauf Zugriff haben, fest. Außerdem ist es möglich, Zugriffsoptionen festzulegen. Es gibt viele verschiedene Optionen, allerdings werden hier nur einige von ihnen erwähnt. Wenn Sie Informationen zu weiteren Optionen benötigen, lesen Sie &man.exports.5;. Nun folgen einige Beispieleinträge für /etc/exports: NFS Export von Dateisystemen Die folgenden Beispiele geben Ihnen Anhaltspunkte zum Exportieren von Dateisystemen, obwohl diese Einstellungen natürlich von Ihrer Arbeitsumgebung und Ihrer Netzwerkkonfiguration abhängen. Das nächste Beispiel exportiert das Verzeichnis /cdrom für drei Rechner, die sich in derselben Domäne wie der Server befinden oder für die entsprechende Einträge in /etc/hosts existieren. Die Option kennzeichnet das exportierte Dateisystem als schreibgeschützt. Durch dieses Flag ist das entfernte System nicht in der Lage, das exportierte Dateisystem zu verändern. /cdrom -ro host1 host2 host3 Die nächste Zeile exportiert /home auf drei durch IP-Adressen bestimmte Rechner. Diese Einstellung ist nützlich, wenn Sie über ein privates Netzwerk ohne DNS-Server verfügen. Optional könnten interne Rechnernamen auch in /etc/hosts konfiguriert werden. Benötigen Sie hierzu weitere Informationen, lesen Sie bitte &man.hosts.5;. Durch das Flag wird es möglich, auch Unterverzeichnisse als Mountpunkte festzulegen. Dies bedeutet aber nicht, dass alle Unterverzeichnisse eingehängt werden, vielmehr wird es dem Client ermöglicht, nur diejenigen Verzeichnisse einzuhängen, die auch benötigt werden. /home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4 Die nächste Zeile exportiert /a, damit Clients von verschiedenen Domänen auf das Dateisystem zugreifen können. Das -Flag erlaubt es dem Benutzer root des entfernten Systems, als root auf das exportierte Dateisystem zu schreiben. Wenn dieses Flag nicht gesetzt ist, kann selbst root nicht auf das exportierte Dateisystem schreiben. /a -maproot=root host.example.com box.example.org Damit ein Client auf ein exportiertes Dateisystem zugreifen kann, muss ihm dies explizit gestattet werden. Stellen Sie also sicher, dass der Client in /etc/exports aufgeführt wird. Jede Zeile in /etc/exports entspricht der Exportinformation für ein Dateisystem auf einen Rechner. Ein entfernter Rechner kann für jedes Dateisystem nur einmal festgelegt werden, und kann auch nur einen Standardeintrag haben. Nehmen wir an, dass /usr ein einziges Dateisystem ist. Dann wären folgende Zeilen ungültig: #Nicht erlaubt, wenn /usr ein einziges Dateisystem ist /usr/src client /usr/ports client Das Dateisystem /usr wird hier zweimal auf den selben Rechner (client) exportiert. Dies ist aber nicht zulässig. Der korrekte Eintrag sieht daher so aus: /usr/src /usr/ports client Die Eigenschaften eines auf einen anderen Rechner exportierten Dateisystems müssen alle in einer Zeile stehen. Zeilen, in denen kein Rechner festgelegt wird, werden als einzelner Rechner behandelt. Dies schränkt die Möglichkeiten zum Export von Dateisystemen ein, für die meisten Anwender ist dies aber kein Problem. Eine gültige Exportliste, in der /usr und /exports lokale Dateisysteme sind, sieht so aus: # Export src and ports to client01 and client02, but only # client01 has root privileges on it /usr/src /usr/ports -maproot=root client01 /usr/src /usr/ports client02 # The client machines have root and can mount anywhere # on /exports. Anyone in the world can mount /exports/obj read-only /exports -alldirs -maproot=root client01 client02 /exports/obj -ro Der Daemon mountd muss die Datei /etc/exports nach jeder Änderung neu einlesen, damit die Änderungen wirksam werden. Dies kann durch das Senden des HUP-Signals an den mountd-Prozess erfolgen: &prompt.root; kill -HUP `cat /var/run/mountd.pid` Alternativ können Sie das mountd-&man.rc.8;-Skript auch mit dem passenden Parameter aufrufen: &prompt.root; /etc/rc.d/mountd onereload Lesen Sie bitte des Handbuchs für Informationen zum Einsatz der rc-Skripte. Eine weitere Möglichkeit, diese Änderungen zu übernehmen, wäre der Neustart des Systems. Dies ist allerdings nicht nötig. Wenn Sie die folgenden Befehle als root ausführen, sollte alles korrekt gestartet werden. Auf dem NFS-Server: &prompt.root; rpcbind &prompt.root; nfsd -u -t -n 4 &prompt.root; mountd -r Auf dem NFS-Client: &prompt.root; nfsiod -n 4 Nun sollte alles bereit sein, um ein entferntes Dateisystem einhängen zu können. In unseren Beispielen nennen wir den Server server, den Client client. Wenn Sie ein entferntes Dateisystem nur zeitweise einhängen wollen, oder nur Ihre Konfiguration testen möchten, führen Sie auf dem Client als root einen Befehl ähnlich dem folgenden aus: NFS Dateisysteme einhängen &prompt.root; mount server:/home /mnt Dadurch wird das Verzeichnis /home des Servers auf dem Client unter /mnt eingehängt. Wenn alles korrekt konfiguriert wurde, sehen Sie auf dem Client im Verzeichnis /mnt alle Dateien des Servers. Wenn Sie ein entferntes Dateisystem nach jedem Systemstart automatisch einhängen wollen, fügen Sie das Dateisystem in /etc/fstab ein. Dazu ein Beispiel: server:/home /mnt nfs rw 0 0 Eine Beschreibung aller Optionen enthält die Hilfeseite &man.fstab.5;. Dateien sperren (<foreignphrase>Locking</foreignphrase>) Einige Anwendungen (beispielsweise mutt) erfordern die Sperrung von Dateien, damit sie korrekt arbeiten. Verwenden Sie NFS, so können Sie für die Sperrung von Dateien rpc.lockd einsetzen. Um diesen Daemon zu aktivieren, müssen Sie in /etc/rc.conf (sowohl auf Client- als auch auf Serverseite) folgende Zeilen aufnehmen (wobei vorausgesetzt wird, dasss NFS auf beiden Systemen bereits konfiguriert ist): rpc_lockd_enable="YES" rpc_statd_enable="YES" Danach starten Sie die Anwendung zur Verwaltung der Dateisperren durch folgenden Befehl: &prompt.root; /etc/rc.d/nfslocking start Benötigen Sie keine echten Dateisperren zwischen den NFS-Clients und dem NFS-Server, können Sie den NFS-Client durch die Übergabe der Option an &man.mount.nfs.8; zu einer lokalen Sperrung von Dateien zwingen. Lesen Sie dazu auch die Manualpage &man.mount.nfs.8;. Praktische Anwendungen NFS ist in vielen Situationen nützlich. Einige Anwendungsbereiche finden Sie in der folgenden Liste: NFS Anwendungsbeispiele Mehrere Maschinen können sich ein CD-ROM-Laufwerk oder andere Medien teilen. Dies ist billiger und außerdem praktischer, um Programme auf mehreren Rechnern zu installieren. In größeren Netzwerken ist es praktisch, einen zentralen NFS-Server einzurichten, auf dem die Heimatverzeichnisse der Benutzer gespeichert werden. Diese Heimatverzeichnisse werden über das Netzwerk exportiert. Dadurch haben die Benutzer immer das gleiche Heimatverzeichnis zur Verfügung, unabhängig davon, an welchem Arbeitsplatz sie sich anmelden. Verschiedene Rechner können auf ein gemeinsames Verzeichnis /usr/ports/distfiles zugreifen. Wenn Sie nun einen Port auf mehreren Rechnern installieren wollen, greifen Sie einfach auf dieses Verzeichnis zu, ohne die Quelldateien auf jede Maschine zu kopieren. Wylie Stilwell Beigetragen von Chern Lee Überarbeitet von <application>AMD</application> amd Automatic Mounter Daemon &man.amd.8; (Automatic Mounter Daemon) hängt ein entferntes Dateisystem automatisch ein, wenn auf eine Datei oder ein Verzeichnis in diesem Dateisystem zugegriffen wird. Dateisysteme, die über einen gewissen Zeitraum inaktiv sind, werden von amd automatisch abgehängt. amd ist eine einfache Alternative zum dauerhaften Einhängen von Dateisystemen in /etc/fstab. In der Voreinstellung stellt amd die Verzeichnisse /host und /net als NFS-Server bereit. Wenn auf eine Datei in diesen Verzeichnissen zugegriffen wird, sucht amd den entsprechenden Mountpunkt und hängt das Dateisystem automatisch ein. /net wird zum Einhängen von exportierten Dateisystemen von einer IP-Adresse verwendet, während /host zum Einhängen von exportierten Dateisystemen eines durch seinen Namen festgelegten Rechners dient. Ein Zugriff auf eine Datei in /host/foobar/usr würde amd veranlassen, das von foobar exportierte Dateisystem /usr einzuhängen. Ein exportiertes Dateisystem mit <application>amd</application> in den Verzeichnisbaum einhängen Sie können sich die verfügbaren Mountpunkte eines entfernten Rechners mit showmount ansehen. Wollen Sie sich die Mountpunkte des Rechners foobar ansehen, so verwenden Sie: &prompt.user; showmount -e foobar Exports list on foobar: /usr 10.10.10.0 /a 10.10.10.0 &prompt.user; cd /host/foobar/usr Wie Sie an diesem Beispiel erkennen können, zeigt showmount /usr als exportiertes Dateisystem an. Wenn man in das Verzeichnis /host/foobar/usr wechselt, versucht amd den Rechnernamen foobar aufzulösen und den gewünschten Export in den Verzeichnisbaum einzuhängen. amd kann durch das Einfügen der folgenden Zeile in /etc/rc.conf automatisch gestartet werden: amd_enable="YES" Mit der Option amd_flags kann amd angepasst werden. Die Voreinstellung für amd_flags sieht so aus: amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map" /etc/amd.map legt die Standardoptionen fest, mit denen exportierte Dateisysteme in den Verzeichnisbaum eingehängt werden. /etc/amd.conf hingegen legt einige der erweiterten Optionen von amd fest. Weitere Informationen finden Sie in den Hilfeseiten &man.amd.8; und &man.amd.conf.5;. John Lind Beigetragen von Integrationsprobleme mit anderen Systemen Bestimmte ISA-Ethernetadapter haben Beschränkungen, die zu ernsthaften Netzwerkproblemen, insbesondere mit NFS führen können. Es handelt sich dabei nicht um ein FreeBSD-spezifisches Problem, aber FreeBSD-Systeme sind davon ebenfalls betroffen. Das Problem tritt fast ausschließlich dann auf, wenn (FreeBSD)-PC-Systeme mit Hochleistungsrechnern verbunden werden, wie Systemen von Silicon Graphics, Inc. oder Sun Microsystems, Inc. Das Einhängen via NFS funktioniert problemlos, auch einige Dateioperationen können erfolgreich sein. Plötzlich aber wird der Server nicht mehr auf den Client reagieren, obwohl Anfragen von anderen Rechnern weiterhin bearbeitet werden. Dieses Problem betrifft stets den Client, egal ob es sich beim Client um das FreeBSD-System oder den Hochleistungsrechner handelt. Auf vielen Systemen gibt es keine Möglichkeit mehr, den Client ordnungsgemäß zu beenden. Die einzige Lösung ist es oft, den Rechner neu zu starten, da dieses NFS-Problem nicht mehr behoben werden kann. Die korrekte Lösung für dieses Problem ist es, sich eine schnellere Ethernetkarte für FreeBSD zu kaufen. Allerdings gibt es auch eine einfache und meist zufriedenstellende Lösung, um dieses Problem zu umgehen. Wenn es sich beim FreeBSD-System um den Server handelt, verwenden Sie beim Einhängen in den Verzeichnisbaum auf der Clientseite zusätzlich die Option . Wenn es sich beim FreeBSD-System um den Client handelt, dann hängen Sie das NFS-Dateisystem mit der zusätzlichen Option ein. Diese Optionen können auf der Clientseite auch durch das vierte Feld der Einträge in /etc/fstab festgelegt werden, damit die Dateisysteme automatisch eingehängt werden. Um die Dateisysteme manuell einzuhängen, verwendet man bei &man.mount.8; zusätzlich die Option . Es gibt ein anderes Problem, das oft mit diesem verwechselt wird. Dieses andere Problem tritt auf, wenn sich über NFS verbundene Server und Clients in verschiedenen Netzwerken befinden. Wenn dies der Fall ist, stellen Sie sicher, dass Ihre Router die nötigen UDP-Informationen weiterleiten, oder Sie werden nirgends hingelangen, egal was Sie machen. In den folgenden Beispielen ist fastws der Name des Hochleistungsrechners (bzw. dessen Schnittstelle), freebox hingegen ist der Name des FreeBSD-Systems, das über eine Netzkarte mit geringer Leistung verfügt. /sharedfs ist das exportierte NFS -Dateisystem (lesen Sie dazu auch &man.exports.5;). Bei /project handelt es sich um den Mountpunkt, an dem das exportierte Dateisystem auf der Clientseite eingehängt wird. In allen Fällen können zusätzliche Optionen, wie z.B. , oder wünschenswert sein. FreeBSD als Client (eingetragen in /etc/fstab auf freebox): fastws:/sharedfs /project nfs rw,-r=1024 0 0 Manuelles Einhängen auf freebox: &prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project &os; als Server (eingetragen in /etc/fstab auf fastws): freebox:/sharedfs /project nfs rw,-w=1024 0 0 Manuelles Einhängen auf fastws: &prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /project Nahezu alle 16-bit Ethernetadapter erlauben Operationen ohne obengenannte Einschränkungen auf die Lese- oder Schreibgröße. Für alle technisch Interessierten wird nun beschrieben, was passiert, wenn dieser Fehler auftritt, und warum er irreversibel ist. NFS arbeitet üblicherweise mit einer Blockgröße von 8 kByte (obwohl es kleinere Fragmente zulassen würde). Da die maximale Rahmengröße von Ethernet 1500 Bytes beträgt, wird der NFS-Block in einzelne Ethernetrahmen aufgeteilt, obwohl es sich nach wie vor um eine Einheit handelt, die auch als Einheit empfangen, verarbeitet und bestätigt werden muss. Der Hochleistungsrechner verschickt die Pakete, aus denen der NFS-Block besteht, so eng hintereinander, wie es der Standard erlaubt. Auf der anderen Seite (auf der sich die langsamere Netzkarte befindet), überschreiben die späteren Pakete ihre Vorgänger, bevor diese vom System verarbeitet werden (Überlauf!). Dies hat zur Folge, dass der NFS-Block nicht mehr rekonstruiert und bestätigt werden kann. Als Folge davon glaubt der Hochleistungsrechner, dass der andere Rechner nicht erreichbar ist (Timeout!) und versucht die Sendung zu wiederholen. Allerdings wird wiederum der komplette NFS-Block verschickt, so dass sich der ganze Vorgang wiederholt, und zwar immer wieder (oder bis zum Systemneustart). Indem wir die Einheitengröße unter der maximalen Größe der Ethernetpakete halten, können wir sicherstellen, dass jedes vollständig erhaltene Ethernetpaket individuell angesprochen werden kann und vermeiden die Blockierung des Systems. Überläufe können zwar nach wie vor auftreten, wenn ein Hochleistungsrechner Daten auf ein PC-System transferiert. Durch die besseren (und schnelleren) Netzkarten treten solche Überläufe allerdings nicht mehr zwingend auf, wenn NFS-Einheiten übertragen werden. Tritt nun ein Überlauf auf, wird die betroffene Einheit erneut verschickt, und es besteht eine gute Chance, dass sie nun erhalten, verarbeitet und bestätigt werden kann. Bill Swingle Beigetragen von Eric Ogren Erweitert von Udo Erdelhoff NIS/YP – Network Information Service Was ist NIS? NIS Solaris HP-UX AIX Linux NetBSD OpenBSD NIS wurde von Sun Microsystems entwickelt, um &unix;-Systeme (ursprünglich &sunos;) zentral verwalten zu können. Mittlerweile hat es sich zu einem Industriestandard entwickelt, der von allen wichtigen &unix;-Systemen (&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD, FreeBSD und anderen) unterstützt wird. yellow pages NIS NIS war ursprünglich als Yellow Pages bekannt, aus markenrechtlichen Gründen wurde der Name aber geändert. Die alte Bezeichnung (sowie die Abkürzung YP) wird aber nach wie vor häufig verwendet. NIS Domänen Bei NIS handelt es sich um ein RPC-basiertes Client/Server-System. Eine Gruppe von Rechnern greift dabei innerhalb einer NIS-Domäne auf gemeinsame Konfigurationsdateien zu. Ein Systemadministrator wird dadurch in die Lage versetzt, NIS-Clients mit minimalem Aufwand einzurichten, sowie Änderungen an der Systemkonfiguration von einem zentralen Ort aus durchzuführen. Windows NT Die Funktion entspricht dem Domänensystem von &windowsnt;; auch wenn sich die interne Umsetzung unterscheidet, sind die Basisfunktionen vergleichbar. Wichtige Prozesse und Begriffe Es gibt verschiedene Begriffe und Anwenderprozesse, auf die Sie stoßen werden, wenn Sie NIS unter FreeBSD einrichten, egal ob Sie einen Server oder einen Client konfigurieren: rpcbind Begriff Beschreibung NIS-Domänenname Ein NIS-Masterserver sowie alle Clients (inklusive der Slaveserver) haben einen NIS-Domänennamen. Dieser hat (ähnlich den &windowsnt;-Domänennamen) nichts mit DNS zu tun. rpcbind Muss laufen, damit RPC (Remote Procedure Call, ein von NIS verwendetes Netzwerkprotokoll) funktioniert. NIS-Server sowie Clients funktionieren ohne rpcbind nicht. ypbind Bindet einen NIS-Client an seinen NIS-Server. Der Client bezieht den NIS-Domänennamen vom System und stellt über das RPC-Protokoll eine Verbindung zum NIS-Server her. ypbind ist der zentrale Bestandteil der Client-Server-Kommunikation in einer NIS-Umgebung. Wird >ypbind auf einem Client beendet, ist dieser nicht mehr in der Lage, auf den NIS-Server zuzugreifen. ypserv Sollte nur auf dem NIS-Server laufen, da es sich um den Serverprozess selbst handelt. Wenn &man.ypserv.8; nicht mehr läuft, kann der Server nicht mehr auf NIS-Anforderungen reagieren (wenn ein Slaveserver existiert, kann dieser als Ersatz fungieren). Einige NIS-Systeme (allerdings nicht das von FreeBSD) versuchen allerdings erst gar nicht, sich mit einem anderen Server zu verbinden, wenn der bisher verwendete Server nicht mehr reagiert. Die einzige Lösung dieses Problems besteht dann darin, den Serverprozess (oder gar den Server selbst) oder den ypbind-Prozess auf dem Client neu zu starten. rpc.yppasswdd Ein weiterer Prozess, der nur auf dem NIS-Masterserver laufen sollte. Es handelt sich um einen Daemonprozess, der es NIS-Clients ermöglicht, sich auf dem NIS-Masterserver anzumelden, um ihr Passwort zu ändern. Wie funktioniert NIS? In einer NIS-Umgebung gibt es drei Rechnerarten: Masterserver, Slaveserver und Clients. Server dienen als zentraler Speicherort für Rechnerkonfigurationen. Masterserver speichern die maßgebliche Kopie dieser Informationen, während Slaveserver diese Informationen aus Redundanzgründen spiegeln. Die Clients beziehen ihre Informationen immer vom Server. Auf diese Art und Weise können Informationen aus verschiedenen Dateien von mehreren Rechnern gemeinsam verwendet werden. master.passwd, group, und hosts werden oft gemeinsam über NIS verwendet. Immer, wenn ein Prozess auf einem Client auf Informationen zugreifen will, die normalerweise in lokalen Dateien vorhanden wären, wird stattdessen eine Anfrage an den NIS-Server gestellt, an den der Client gebunden ist. Arten von NIS-Rechnern NIS Masterserver Ein NIS-Masterserver verwaltet, ähnlich einem &windowsnt;-Domänencontroller, die von allen NIS-Clients gemeinsam verwendeten Dateien. passwd, group, sowie verschiedene andere von den Clients verwendete Dateien existieren auf dem Masterserver. Ein Rechner kann auch für mehrere NIS-Domänen als Masterserver fungieren. Dieser Abschnitt konzentriert sich im Folgenden allerdings auf eine relativ kleine NIS-Umgebung. NIS Slaveserver NIS-Slaveserver. Ähnlich einem &windowsnt;-Backupdomänencontroller, verwalten NIS-Slaveserver Kopien der Daten des NIS-Masterservers. NIS-Slaveserver bieten die Redundanz, die für kritische Umgebungen benötigt wird. Zusätzlich entlasten Slaveserver den Masterserver: NIS-Clients verbinden sich immer mit dem NIS-Server, der zuerst reagiert. Dieser Server kann auch ein Slaveserver sein. NIS Client NIS-Clients. NIS-Clients identifizieren sich gegenüber dem NIS-Server (ähnlich den &windowsnt;-Workstations), um sich am Server anzumelden. NIS/YP konfigurieren Dieser Abschnitt beschreibt an Hand eines Beispiels die Einrichtung einer NIS-Umgebung. Planung Nehmen wir an, Sie seien der Administrator eines kleinen Universitätsnetzes. Dieses Netz besteht aus fünfzehn FreeBSD-Rechnern, für die derzeit keine zentrale Verwaltung existiert, jeder Rechner hat also eine eigene Version von /etc/passwd und /etc/master.passwd. Diese Dateien werden manuell synchron gehalten; legen Sie einen neuen Benutzer an, so muss dies auf allen fünfzehn Rechnern manuell erledigt werden (unter Verwendung von adduser). Da diese Lösung sehr ineffizient ist, soll das Netzwerk in Zukunft NIS verwenden, wobei zwei der Rechner als Server dienen sollen. In Zukunft soll das Netz also wie folgt aussehen: Rechnername IP-Adresse Rechneraufgabe ellington 10.0.0.2 NIS-Master coltrane 10.0.0.3 NIS-Slave basie 10.0.0.4 Workstation der Fakultät bird 10.0.0.5 Clientrechner cli[1-11] 10.0.0.[6-17] Verschiedene andere Clients Wenn Sie NIS das erste Mal einrichten, ist es ratsam, sich zuerst über die Vorgangsweise Gedanken zu machen. Unabhängig von der Größe Ihres Netzwerks müssen Sie stets einige Entscheidungen treffen. Einen NIS-Domänennamen wählen NIS Domänenname Dies muss nicht der Domainname sein. Es handelt sich vielmehr um den NIS-Domainnamen. Wenn ein Client Informationen anfordert, ist in dieser Anforderung der Name der NIS-Domäne enthalten. Dadurch weiß jeder Server im Netzwerk, auf welche Anforderung er antworten muss. Stellen Sie sich den NIS-Domänennamen als den Namen einer Gruppe von Rechnern vor, die etwas gemeinsam haben. Manchmal wird der Name der Internetdomäne auch für die NIS-Domäne verwendet. Dies ist allerdings nicht empfehlenswert, da dies bei der Behebung von Problemen verwirrend sein kann. Der Name der NIS-Domäne sollte innerhalb Ihres Netzwerks einzigartig sein. Hilfreich ist es, wenn der Name die Gruppe der in ihr zusammengefassten Rechner beschreibt. Die Kunstabteilung von Acme Inc. hätte daher die NIS-Domäne acme-art. Für unser Beispiel verwenden wir den NIS-Domänennamen test-domain. SunOS Es gibt jedoch auch Betriebssysteme (vor allem &sunos;), die als NIS-Domänennamen den Name der Internetdomäne verwenden. Wenn dies für einen oder mehrere Rechner Ihres Netzwerks zutrifft, müssen Sie den Namen der Internetdomäne als Ihren NIS-Domänennamen verwenden. Anforderungen an den Server Wenn Sie einen NIS-Server einrichten wollen, müssen Sie einige Dinge beachten. Eine unangenehme Eigenschaft von NIS ist die Abhängigkeit der Clients vom Server. Wenn sich der Client nicht über den Server mit seiner NIS-Domäne verbinden kann, wird der Rechner oft unbenutzbar, da das Fehlen von Benutzer- und Gruppeninformationen zum Einfrieren des Clients führt. Daher sollten Sie für den Server einen Rechner auswählen, der nicht regelmäßig neu gestartet werden muss und der nicht für Testversuche verwendet wird. Idealerweise handelt es sich um einen alleinstehenden Rechner, dessen einzige Aufgabe es ist, als NIS-Server zu dienen. Wenn Sie ein Netzwerk haben, das nicht zu stark ausgelastet ist, ist es auch möglich, den NIS-Server als weiteren Dienst auf einem anderen Rechner laufen zu lassen. Denken Sie aber daran, dass ein Ausfall des NIS-Servers alle NIS-Clients betrifft. NIS-Server Die verbindlichen Kopien aller NIS-Informationen befinden sich auf einem einzigen Rechner, dem NIS-Masterserver. Die Datenbanken, in denen die Informationen gespeichert sind, bezeichnet man als NIS-Maps. Unter FreeBSD werden diese Maps unter /var/yp/[domainname] gespeichert, wobei [domainname] der Name der NIS-Domäne ist. Ein einzelner NIS-Server kann gleichzeitig mehrere NIS-Domänen verwalten, daher können auch mehrere Verzeichnisse vorhanden sein. Jede Domäne verfügt über ein eigenes Verzeichnis sowie einen eigenen, von anderen Domänen unabhängigen Satz von NIS-Maps. NIS-Master- und Slaveserver verwenden den ypserv-Daemon, um NIS-Anfragen zu bearbeiten. ypserv empfängt eingehende Anfragen der NIS-Clients, ermittelt aus der angeforderten Domäne und Map einen Pfad zur entsprechenden Datenbank, und sendet die angeforderten Daten von der Datenbank zum Client. Einen NIS-Masterserver einrichten NIS Serverkonfiguration Abhängig von Ihren Anforderungen ist die Einrichtung eines NIS-Masterservers relativ einfach, da NIS von FreeBSD bereits in der Standardkonfiguration unterstützt wird. Sie müssen nur folgende Zeilen in /etc/rc.conf einfügen: nisdomainname="test-domain" Diese Zeile setzt den NIS-Domänennamen auf test-domain, wenn Sie das Netzwerk initialisieren (beispielsweise nach einem Systemstart). nis_server_enable="YES" Dadurch werden die NIS-Serverprozesse gestartet. nis_yppasswdd_enable="YES" Durch diese Zeile wird der rpc.yppasswdd-Daemon aktiviert, der, wie bereits erwähnt, die Änderung von NIS-Passwörtern von einem Client aus ermöglicht. In Abhängigkeit von Ihrer NIS-Konfiguration können weitere Einträge erforderlich sein. Weitere Informationen finden Sie im Abschnitt NIS-Server, die auch als NIS-Clients arbeiten. Nun müssen Sie nur noch /etc/netstart als Superuser ausführen, um alles entsprechend Ihren Vorgaben in /etc/rc.conf einzurichten. Die NIS-Maps initialisieren NIS maps NIS-Maps sind Datenbanken, die sich im Verzeichnis /var/yp befinden. Sie werden am NIS-Masterserver aus den Konfigurationsdateien unter /etc erzeugt. Einzige Ausnahme: /etc/master.passwd. Dies ist auch sinnvoll, da Sie die Passwörter für Ihr root- oder andere Administratorkonten nicht an alle Server der NIS-Domäne verteilen wollen. Bevor Sie also die NIS-Maps des Masterservers einrichten, sollten Sie Folgendes tun: &prompt.root; cp /etc/master.passwd /var/yp/master.passwd &prompt.root; cd /var/yp &prompt.root; vi master.passwd Entfernen Sie alle Systemkonten (wie bin, tty, kmem oder games), sowie alle Konten, die Sie nicht an die NIS-Clients weitergeben wollen (beispielsweise root und alle Konten mit der UID 0 (=Superuser). Stellen Sie sicher, dass /var/yp/master.passwd weder von der Gruppe noch von der Welt gelesen werden kann (Zugriffsmodus 600)! Ist dies nicht der Fall, ändern Sie dies mit chmod. Tru64 UNIX Nun können Sie die NIS-Maps initialisieren. FreeBSD verwendet dafür das Skript ypinit (lesen Sie dazu auch &man.ypinit.8;). Dieses Skript ist auf fast allen UNIX-Betriebssystemen verfügbar. Bei Digitals Unix/Compaq Tru64 UNIX nennt es sich allerdings ypsetup. Da wir Maps für einen NIS-Masterserver erzeugen, verwenden wir ypinit mit der Option . Nachdem Sie die beschriebenen Aktionen durchgeführt haben, erzeugen Sie nun die NIS-Maps: ellington&prompt.root; ypinit -m test-domain Server Type: MASTER Domain: test-domain Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n] n Ok, please remember to go back and redo manually whatever fails. If you don't, something might not work. At this point, we have to construct a list of this domains YP servers. rod.darktech.org is already known as master server. Please continue to add any slave servers, one per line. When you are done with the list, type a <control D>. master server : ellington next host to add: coltrane next host to add: ^D The current list of NIS servers looks like this: ellington coltrane Is this correct? [y/n: y] y [..output from map generation..] NIS Map update completed. ellington has been setup as an YP master server without any errors. Dadurch erzeugt ypinit /var/yp/Makefile aus der Datei /var/yp/Makefile.dist. Durch diese Datei wird festgelegt, dass Sie in einer NIS-Umgebung mit nur einem Server arbeiten und dass alle Clients unter FreeBSD laufen. Da test-domain aber auch über einen Slaveserver verfügt, müssen Sie /var/yp/Makefile entsprechend anpassen: ellington&prompt.root; vi /var/yp/Makefile Sie sollten die Zeile NOPUSH = "True" auskommentieren (falls dies nicht bereits der Fall ist). Einen NIS-Slaveserver einrichten NIS Slaveserver Ein NIS-Slaveserver ist noch einfacher einzurichten als ein Masterserver. Melden Sie sich am Slaveserver an und ändern Sie /etc/rc.conf analog zum Masterserver. Der einzige Unterschied besteht in der Verwendung der Option , wenn Sie ypinit aufrufen. Die Option erfordert den Namen des NIS-Masterservers, daher sieht unsere Ein- und Ausgabe wie folgt aus: coltrane&prompt.root; ypinit -s ellington test-domain Server Type: SLAVE Domain: test-domain Master: ellington Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n] n Ok, please remember to go back and redo manually whatever fails. If you don't, something might not work. There will be no further questions. The remainder of the procedure should take a few minutes, to copy the databases from ellington. Transferring netgroup... ypxfr: Exiting: Map successfully transferred Transferring netgroup.byuser... ypxfr: Exiting: Map successfully transferred Transferring netgroup.byhost... ypxfr: Exiting: Map successfully transferred Transferring master.passwd.byuid... ypxfr: Exiting: Map successfully transferred Transferring passwd.byuid... ypxfr: Exiting: Map successfully transferred Transferring passwd.byname... ypxfr: Exiting: Map successfully transferred Transferring group.bygid... ypxfr: Exiting: Map successfully transferred Transferring group.byname... ypxfr: Exiting: Map successfully transferred Transferring services.byname... ypxfr: Exiting: Map successfully transferred Transferring rpc.bynumber... ypxfr: Exiting: Map successfully transferred Transferring rpc.byname... ypxfr: Exiting: Map successfully transferred Transferring protocols.byname... ypxfr: Exiting: Map successfully transferred Transferring master.passwd.byname... ypxfr: Exiting: Map successfully transferred Transferring networks.byname... ypxfr: Exiting: Map successfully transferred Transferring networks.byaddr... ypxfr: Exiting: Map successfully transferred Transferring netid.byname... ypxfr: Exiting: Map successfully transferred Transferring hosts.byaddr... ypxfr: Exiting: Map successfully transferred Transferring protocols.bynumber... ypxfr: Exiting: Map successfully transferred Transferring ypservers... ypxfr: Exiting: Map successfully transferred Transferring hosts.byname... ypxfr: Exiting: Map successfully transferred coltrane has been setup as an YP slave server without any errors. Don't forget to update map ypservers on ellington. Sie sollten nun über das Verzeichnis /var/yp/test-domain verfügen. Die Kopien der NIS-Masterserver-Maps sollten sich in diesem Verzeichnis befinden. Allerdings müssen Sie diese auch aktuell halten. Die folgenden Einträge in /etc/crontab erledigen diese Aufgabe: 20 * * * * root /usr/libexec/ypxfr passwd.byname 21 * * * * root /usr/libexec/ypxfr passwd.byuid Diese zwei Zeilen zwingen den Slaveserver, seine Maps mit denen des Masterservers zu synchronisieren. Diese Einträge sind nicht zwingend, da der Masterserver versucht, alle Änderungen seiner NIS-Maps an seine Slaveserver weiterzugeben. Da Passwortinformationen aber für vom Server abhängige Systeme vital sind, ist es eine gute Idee, diese Aktualisierungen zu erzwingen. Besonders wichtig ist dies in stark ausgelasteten Netzen, in denen Map-Aktualisierungen unvollständig sein könnten. Führen Sie nun /etc/netstart auch auf dem Slaveserver aus, um den NIS-Server erneut zu starten. NIS-Clients Ein NIS-Client bindet sich unter Verwendung des ypbind-Daemons an einen NIS-Server. ypbind prüft die Standarddomäne des Systems (die durch domainname gesetzt wird), und beginnt RPCs über das lokale Netzwerk zu verteilen (broadcast). Diese Anforderungen legen den Namen der Domäne fest, für die ypbind eine Bindung erzeugen will. Wenn der Server der entsprechenden Domäne eine solche Anforderung erhält, schickt er eine Antwort an ypbind. ybind speichert daraufhin die Adresse des Servers. Wenn mehrere Server verfügbar sind (beispielsweise ein Master- und mehrere Slaveserver), verwendet ypbind die erste erhaltene Adresse. Ab diesem Zeitpunkt richtet der Client alle Anfragen an genau diesen Server. ypbind pingt den Server gelegentlich an, um sicherzustellen, dass der Server funktioniert. Antwortet der Server innerhalb eines bestimmten Zeitraums nicht (Timeout), markiert ypbind die Domäne als ungebunden und beginnt erneut, RPCs über das Netzwerk zu verteilen, um einen anderen Server zu finden. Einen NIS-Client konfigurieren NIS Client konfigurieren Einen FreeBSD-Rechner als NIS-Client einzurichten, ist recht einfach. Fügen Sie folgende Zeilen in /etc/rc.conf ein, um den NIS-Domänennamen festzulegen, und um ypbind bei der Initialisierung des Netzwerks zu starten: nisdomainname="test-domain" nis_client_enable="YES" Um alle Passworteinträge des NIS-Servers zu importieren, löschen Sie alle Benutzerkonten in /etc/master.passwd und fügen mit vipw folgende Zeile am Ende der Datei ein: +::::::::: Diese Zeile legt für alle gültigen Benutzerkonten der NIS-Server-Maps einen Zugang an. Es gibt verschiedene Wege, Ihren NIS-Client durch Änderung dieser Zeile zu konfigurieren. Lesen Sie dazu auch den Abschnitt über Netzgruppen weiter unten. Weitere detaillierte Informationen finden Sie im Buch Managing NFS and NIS von O'Reilly. Sie sollten zumindest ein lokales Benutzerkonto, das nicht über NIS importiert wird, in Ihrer /etc/master.passwd behalten. Dieser Benutzer sollte außerdem ein Mitglied der Gruppe wheel sein. Wenn es mit NIS Probleme gibt, können Sie diesen Zugang verwenden, um sich anzumelden, root zu werden und das Problem zu beheben. Um alle möglichen Gruppeneinträge vom NIS-Server zu importieren, fügen sie folgende Zeile in /etc/group ein: +:*:: Nachdem Sie diese Schritte erledigt haben, sollten Sie mit ypcat passwd die passwd-Map des NIS-Servers anzeigen können. Sicherheit unter NIS NIS Sicherheit Im Allgemeinen kann jeder entfernte Anwender einen RPC an &man.ypserv.8; schicken, um den Inhalt Ihrer NIS-Maps abzurufen, falls er Ihren NIS-Domänennamen kennt. Um solche unautorisierten Transaktionen zu verhindern, unterstützt &man.ypserv.8; securenets, durch die man den Zugriff auf bestimmte Rechner beschränken kann. &man.ypserv.8; versucht, beim Systemstart die Informationen über securenets aus der Datei /var/yp/securenets zu laden. Die Datei securenets kann auch in einem anderen Verzeichnis stehen, das mit der Option angegeben wird. Diese Datei enthält Einträge, die aus einer Netzwerkadresse und einer Netzmaske bestehen, die durch Leerzeichen getrennt werden. Kommentarzeilen beginnen mit #. /var/yp/securnets könnte beispielsweise so aussehen: # allow connections from local host -- mandatory 127.0.0.1 255.255.255.255 # allow connections from any host # on the 192.168.128.0 network 192.168.128.0 255.255.255.0 # allow connections from any host # between 10.0.0.0 to 10.0.15.255 # this includes the machines in the testlab 10.0.0.0 255.255.240.0 Wenn &man.ypserv.8; eine Anforderung von einer zu diesen Regeln passenden Adresse erhält, wird die Anforderung bearbeitet. Gibt es keine passende Regel, wird die Anforderung ignoriert und eine Warnmeldung aufgezeichnet. Wenn /var/yp/securenets nicht vorhanden ist, erlaubt ypserv Verbindungen von jedem Rechner aus. ypserv unterstützt auch das TCP-Wrapper-Paket von Wietse Venema. Mit diesem Paket kann der Administrator für Zugriffskontrollen die Konfigurationsdateien von TCP-Wrapper anstelle von /var/yp/securenets verwenden. Während beide Kontrollmechanismen einige Sicherheit gewähren, beispielsweise durch privilegierte Ports, sind sie gegenüber IP spoofing-Attacken verwundbar. Jeder NIS-Verkehr sollte daher von Ihrer Firewall blockiert werden. Server, die /var/yp/securenets verwenden, können Schwierigkeiten bei der Anmeldung von Clients haben, die ein veraltetes TCP/IP-Subsystem besitzen. Einige dieser TCP/IP-Subsysteme setzen alle Rechnerbits auf Null, wenn Sie einen Broadcast durchführen und/oder können die Subnetzmaske nicht auslesen, wenn sie die Broadcast-Adresse berechnen. Einige Probleme können durch Änderungen der Clientkonfiguration behoben werden. Andere hingegen lassen sich nur durch das Entfernen des betreffenden Rechners aus dem Netzwerk oder den Verzicht auf /var/yp/securenets umgehen. Die Verwendung von /var/yp/securenets auf einem Server mit einem solch veralteten TCP/IP-Subsystem ist eine sehr schlechte Idee, die zu einem Verlust der NIS-Funktionalität für große Teile Ihres Netzwerks führen kann. TCP-Wrapper Die Verwendung der TCP-Wrapper verlangsamt die Reaktion Ihres NIS-Servers. Diese zusätzliche Reaktionszeit kann in Clientprogrammen zu Timeouts führen. Dies vor allem in Netzwerken, die stark ausgelastet sind, oder nur über langsame NIS-Server verfügen. Wenn ein oder mehrere Ihrer Clientsysteme dieses Problem aufweisen, sollten Sie die betreffenden Clients in NIS-Slaveserver umwandeln, und diese an sich selbst binden. Bestimmte Benutzer an der Anmeldung hindern NIS Benutzer blockieren In unserem Labor gibt es den Rechner basie, der nur für Mitarbeiter der Fakultät bestimmt ist. Wir wollen diesen Rechner nicht aus der NIS-Domäne entfernen, obwohl passwd des NIS-Masterservers Benutzerkonten sowohl für Fakultätsmitarbeiter als auch für Studenten enthält. Was können wir also tun? Es gibt eine Möglichkeit, bestimmte Benutzer an der Anmeldung an einem bestimmten Rechner zu hindern, selbst wenn diese in der NIS-Datenbank vorhanden sind. Dazu müssen Sie lediglich an diesem Rechner den Eintrag -Benutzername an das Ende von /etc/master.passwd setzen, wobei Benutzername der zu blockierende Benutzername ist. Diese Änderung sollte bevorzugt durch vipw erledigt werden, da vipw Ihre Änderungen an /etc/master.passwd auf Plausibilität überprüft und nach erfolgter Änderung die Passwortdatenbank automatisch aktualisiert. Um also den Benutzer bill an der Anmeldung am Rechner basie zu hindern, gehen wir wie folgt vor: basie&prompt.root; vipw [add -bill to the end, exit] vipw: rebuilding the database... vipw: done basie&prompt.root; cat /etc/master.passwd root:[password]:0:0::0:0:The super-user:/root:/bin/csh toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin operator:*:2:5::0:0:System &:/:/sbin/nologin bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin news:*:8:8::0:0:News Subsystem:/:/sbin/nologin man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin +::::::::: -bill basie&prompt.root; Udo Erdelhoff Beigetragen von Netzgruppen verwenden Netzgruppen Die im letzten Abschnitt beschriebene Methode eignet sich besonders, wenn Sie spezielle Regeln für wenige Benutzer oder wenige Rechner benötigen. In großen Netzwerken werden Sie allerdings mit Sicherheit vergessen, einige Benutzer von der Anmeldung an bestimmten Rechnern auszuschließen. Oder Sie werden gezwungen sein, jeden Rechner einzeln zu konfigurieren. Dadurch verlieren Sie aber den Hauptvorteil von NIS, die zentrale Verwaltung. Die Lösung für dieses Problem sind Netzgruppen. Ihre Aufgabe und Bedeutung ist vergleichbar mit normalen, von UNIX-Dateisystemen verwendeten Gruppen. Die Hauptunterschiede sind das Fehlen einer numerischen ID sowie die Möglichkeit, Netzgruppen zu definieren, die sowohl Benutzer als auch andere Netzgruppen enthalten. Netzgruppen wurden entwickelt, um große, komplexe Netzwerke mit Hunderten Benutzern und Rechnern zu verwalten. Sie sind also von Vorteil, wenn Sie von dieser Situation betroffen sind. Andererseits ist es dadurch beinahe unmöglich, Netzgruppen mit einfachen Beispielen zu erklären. Das hier verwendete Beispiel veranschaulicht dieses Problem. Nehmen wir an, dass Ihre erfolgreiche Einführung von NIS die Aufmerksamkeit Ihrer Vorgesetzten geweckt hat. Ihre nächste Aufgabe besteht nun darin, Ihre NIS-Domäne um zusätzliche Rechner zu erweitern. Die folgenden Tabellen enthalten die neuen Benutzer und Rechner inklusive einer kurzen Beschreibung. Benutzername(n) Beschreibung alpha, beta Beschäftigte der IT-Abteilung charlie, delta Die neuen Lehrlinge der IT-Abteilung echo, foxtrott, golf, ... Normale Mitarbeiter able, baker, ... Externe Mitarbeiter Rechnername(n) Beschreibung war, death, famine, pollution Ihre wichtigsten Server. Nur IT-Fachleute dürfen sich an diesen Rechnern anmelden. pride, greed, envy, wrath, lust, sloth Weniger wichtige Server. Alle Mitarbeiter der IT-Abteilung dürfen sich auf diesen Rechnern anmelden. one, two, three, four, ... Gewöhnliche Arbeitsrechner. Nur die wirklichen Mitarbeiter dürfen diese Rechner verwenden. trashcan Ein sehr alter Rechner ohne kritische Daten. Sogar externe Mitarbeiter dürfen diesen Rechner verwenden. Wollten Sie diese Einschränkungen umsetzen, indem Sie jeden Benutzer einzeln blockieren, müssten Sie auf jedem System für jeden Benutzer eine entsprechende Zeile in passwd einfügen. Wenn Sie nur einen Eintrag vergessen, haben Sie ein Problem. Es mag noch angehen, dies während der ersten Installation zu erledigen, im täglichen Betrieb werden Sie allerdings mit Sicherheit einmal vergessen, die entsprechenden Einträge anzulegen. Vergessen Sie nicht: Murphy war Optimist. Die Verwendung von Netzgruppen hat in dieser Situation mehrere Vorteile. Sie müssen nicht jeden Benutzer einzeln verwalten; weisen Sie stattdessen den Benutzer einer Netzgruppe zu und erlauben oder verbieten Sie allen Mitglieder dieser Gruppe die Anmeldung an einem Server. Wenn Sie einen neuen Rechner hinzufügen, müssen Sie Zugangsbeschränkungen nur für die Netzgruppen festlegen. Legen Sie einen neuen Benutzer an, müssen Sie ihn nur einer oder mehrere Netzgruppen zuweisen. Diese Veränderungen sind voneinander unabhängig; Anweisungen der Form für diese Kombination aus Benutzer und Rechner mache Folgendes ... sind nicht mehr nötig. Wenn Sie die Einrichtung von NIS sorgfältig geplant haben, müssen Sie nur noch eine zentrale Konfigurationsdatei bearbeiten, um den Zugriff auf bestimmte Rechner zu erlauben oder zu verbieten. Der erste Schritt ist die Initialisierung der NIS-Maps der Netzgruppe. &man.ypinit.8; kann dies unter FreeBSD nicht automatisch durchführen. Sind die Maps aber erst einmal erzeugt, werden sie jedoch von NIS problemlos unterstützt. Um eine leere Map zu erzeugen, geben Sie Folgendes ein: ellington&prompt.root; vi /var/yp/netgroup Danach legen Sie die Einträge an. Für unser Beispiel benötigen wir mindestens vier Netzgruppen: IT-Beschäftige, IT-Lehrlinge, normale Beschäftigte sowie Externe. IT_EMP (,alpha,test-domain) (,beta,test-domain) IT_APP (,charlie,test-domain) (,delta,test-domain) USERS (,echo,test-domain) (,foxtrott,test-domain) \ (,golf,test-domain) INTERNS (,able,test-domain) (,baker,test-domain) Bei IT_EMP, IT_APP usw. handelt es sich um Netzgruppennamen. In den Klammern werden diesen Netzgruppen jeweils ein oder mehrere Benutzerkonten hinzugefügt. Die drei Felder in der Klammer haben folgende Bedeutung: Der Name des Rechners, auf dem die folgenden Werte gültig sind. Legen Sie keinen Rechnernamen fest, ist der Eintrag auf allen Rechnern gültig. Dadurch gehen Sie vielen Problemen aus dem Weg. Der Name des Benutzerkontos, der zu dieser Netzgruppe gehört. Die NIS-Domäne für das Benutzerkonto. Sie können Benutzerkonten von anderen NIS-Domänen in Ihre Netzgruppe importieren, wenn Sie mehrere NIS-Domänen verwalten. Jedes Feld kann Wildcards enthalten. Die Einzelheiten entnehmen Sie bitte &man.netgroup.5;. Netzgruppen Netzgruppennamen sollten nicht länger als 8 Zeichen sein, vor allem dann, wenn Sie Rechner mit verschiedenen Betriebssystemen in Ihrer NIS-Domäne haben. Es wird zwischen Groß- und Kleinschreibung unterschieden. Die Verwendung von Großbuchstaben für Netzgruppennamen ermöglicht eine leichte Unterscheidung zwischen Benutzern, Rechnern und Netzgruppen. Einige NIS-Clients (dies gilt nicht für FreeBSD) können keine Netzgruppen mit einer großen Anzahl von Einträgen verwalten. Einige ältere Versionen von &sunos; haben beispielsweise Probleme, wenn Netzgruppen mehr als fünfzehn Einträge enthalten. Sie können dieses Problem umgehen, indem Sie mehrere Subnetzgruppen mit weniger als fünfzehn Benutzern anlegen und diese Subnetzgruppen wiederum in einer Netzgruppe zusammenfassen: BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...] BIGGRP2 (,joe16,domain) (,joe17,domain) [...] BIGGRP3 (,joe31,domain) (,joe32,domain) BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3 Sie können diesen Vorgang wiederholen, wenn Sie mehr als 255 Benutzer in einer einzigen Netzgruppe benötigen. Das Aktivieren und Verteilen Ihre neuen NIS-Map ist einfach: ellington&prompt.root; cd /var/yp ellington&prompt.root; make Dadurch werden die NIS-Maps netgroup, netgroup.byhost und netgroup.byuser erzeugt. Prüfen Sie die Verfügbarkeit Ihrer neuen NIS-Maps mit &man.ypcat.1;. ellington&prompt.user; ypcat -k netgroup ellington&prompt.user; ypcat -k netgroup.byhost ellington&prompt.user; ypcat -k netgroup.byuser Die Ausgabe des ersten Befehls gibt den Inhalt von /var/yp/netgroup wieder. Der zweite Befehl erzeugt nur dann eine Ausgabe, wenn Sie rechnerspezifische Netzgruppen erzeugt haben. Der dritte Befehl gibt die Netzgruppen nach Benutzern sortiert aus. Die Einrichtung der Clients ist einfach. Sie müssen lediglich auf dem Server war &man.vipw.8; aufrufen und die Zeile +::::::::: durch +@IT_EMP::::::::: ersetzen. Ab sofort werden nur noch die Daten der in der Netzgruppe IT_EMP vorhandenen Benutzer in die Passwortdatenbank von war importiert. Nur diese Benutzer dürfen sich am Server anmelden. Unglücklicherweise gilt diese Einschränkung auch für die ~-Funktion der Shell und für alle Routinen, die auf Benutzernamen und numerische Benutzer-IDs zugreifen. Oder anders formuliert, cd ~user ist nicht möglich, ls -l zeigt die numerische Benutzer-ID statt dem Benutzernamen und find . -user joe -print erzeugt die Fehlermeldung No such user. Um dieses Problem zu beheben, müssen Sie alle Benutzereinträge importieren, ohne ihnen jedoch zu erlauben, sich an Ihrem Server anzumelden. Dazu fügen Sie eine weitere Zeile in /etc/master.passwd ein. Diese Zeile sollte ähnlich der folgenden aussehen: +:::::::::/sbin/nologin, was in etwa Importiere alle Einträge, aber ersetze die Shell in den importierten Einträgen durch /sbin/nologin entspricht. Sie können jedes Feld dieses Eintrages ersetzen, indem Sie einen Standardwert in /etc/master.passwd eintragen. Stellen Sie sicher, dass die Zeile +:::::::::/sbin/nologin nach der Zeile +@IT_EMP::::::::: eingetragen ist. Sonst haben alle via NIS importierten Benutzerkonten /sbin/nologin als Loginshell. Danach müssen Sie nur mehr eine einzige NIS-Map ändern, wenn ein neuer Mitarbeiter berücksichtigt werden muss. Für weniger wichtige Server gehen Sie analog vor, indem Sie den alten Eintrag +::::::::: in den lokalen Versionen von /etc/master.passwd durch folgende Einträge ersetzen: +@IT_EMP::::::::: +@IT_APP::::::::: +:::::::::/sbin/nologin Die entsprechenden Zeilen für normale Arbeitsplätze lauten: +@IT_EMP::::::::: +@USERS::::::::: +:::::::::/sbin/nologin Ab jetzt wäre alles wunderbar, allerdings ändert sich kurz darauf die Firmenpolitik: Die IT-Abteilung beginnt damit, externe Mitarbeiter zu beschäftigen. Externe dürfen sich an normalen Arbeitsplätzen sowie an den weniger wichtigen Servern anmelden. Die IT-Lehrlinge dürfen sich nun auch an den Hauptservern anmelden. Sie legen also die neue Netzgruppe IT_INTERN an, weisen Ihr die neuen IT-Externen als Benutzer zu und beginnen damit, die Konfiguration auf jedem einzelnen Rechner zu ändern ... Halt. Sie haben gerade die alte Regel Fehler in der zentralisierten Planung führen zu globaler Verwirrung. bestätigt. Da NIS in der Lage ist, Netzgruppen aus anderen Netzgruppen zu bilden, lassen sich solche Situationen leicht vermeiden. Eine Möglichkeit ist die Erzeugung rollenbasierter Netzgruppen. Sie könnten eine Netzgruppe BIGSRV erzeugen, um den Zugang zu den wichtigsten Servern zu beschränken, eine weitere Gruppe SMALLSRV für die weniger wichtigen Server und eine dritte Netzgruppe USERBOX für die normalen Arbeitsplatzrechner. Jede dieser Netzgruppen enthält die Netzgruppen, die sich auf diesen Rechnern anmelden dürfen. Die Einträge der Netzgruppen in der NIS-Map sollten ähnlich den folgenden aussehen: BIGSRV IT_EMP IT_APP SMALLSRV IT_EMP IT_APP ITINTERN USERBOX IT_EMP ITINTERN USERS Diese Methode funktioniert besonders gut, wenn Sie Rechner in Gruppen mit identischen Beschränkungen einteilen können. Unglücklicherweise ist dies die Ausnahme und nicht die Regel. Meistens werden Sie die Möglichkeit zur rechnerspezischen Zugangsbeschränkung benötigen. Rechnerspezifische Netzgruppen sind die zweite Möglichkeit, um mit den oben beschriebenen Änderungen umzugehen. In diesem Szenario enthält /etc/master.passwd auf jedem Rechner zwei mit + beginnende Zeilen. Die erste Zeile legt die Netzgruppe mit den Benutzern fest, die sich auf diesem Rechner anmelden dürfen. Die zweite Zeile weist allen anderen Benutzern /sbin/nologin als Shell zu. Verwenden Sie auch hier (analog zu den Netzgruppen) Großbuchstaben für die Rechnernamen. Die Zeilen sollten also ähnlich den folgenden aussehen: +@BOXNAME::::::::: +:::::::::/sbin/nologin Wenn Sie dies für alle Rechner erledigt haben, werden Sie die lokalen Versionen von /etc/master.passwd nie mehr verändern müssen. Alle weiteren Änderungen geschehen über die NIS-Maps. Nachfolgend ein Beispiel für eine mögliche Netzgruppen-Map, die durch einige Besonderheiten erweitert wurde: # Define groups of users first IT_EMP (,alpha,test-domain) (,beta,test-domain) IT_APP (,charlie,test-domain) (,delta,test-domain) DEPT1 (,echo,test-domain) (,foxtrott,test-domain) DEPT2 (,golf,test-domain) (,hotel,test-domain) DEPT3 (,india,test-domain) (,juliet,test-domain) ITINTERN (,kilo,test-domain) (,lima,test-domain) D_INTERNS (,able,test-domain) (,baker,test-domain) # # Now, define some groups based on roles USERS DEPT1 DEPT2 DEPT3 BIGSRV IT_EMP IT_APP SMALLSRV IT_EMP IT_APP ITINTERN USERBOX IT_EMP ITINTERN USERS # # And a groups for a special tasks # Allow echo and golf to access our anti-virus-machine SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain) # # machine-based netgroups # Our main servers WAR BIGSRV FAMINE BIGSRV # User india needs access to this server POLLUTION BIGSRV (,india,test-domain) # # This one is really important and needs more access restrictions DEATH IT_EMP # # The anti-virus-machine mentioned above ONE SECURITY # # Restrict a machine to a single user TWO (,hotel,test-domain) # [...more groups to follow] Wenn Sie eine Datenbank verwenden, um Ihre Benutzerkonten zu verwalten, sollten Sie den ersten Teil der NIS-Map mit Ihren Datenbanktools erstellen können. Auf diese Weise haben neue Benutzer automatisch Zugriff auf die Rechner. Eine letzte Warnung: Es ist nicht immer ratsam, rechnerbasierte Netzgruppen zu verwenden. Wenn Sie Dutzende oder gar Hunderte identische Rechner einrichten müssen, sollten Sie rollenbasierte Netzgruppen verwenden, um die Grösse der NISs-Maps in Grenzen zu halten. Weitere wichtige Punkte Nachdem Sie Ihre NIS-Umgebung eingerichtet haben, müssen Sie einige Dinge anders als bisher erledigen. Jedes Mal, wenn Sie einen neuen Benutzer anlegen wollen, tun Sie dies ausschließlich am NIS-Masterserver. Außerdem müssen Sie anschließend die NIS-Maps neu erzeugen. Wenn Sie diesen Punkt vergessen, kann sich der neue Benutzer nur am NIS-Masterserver anmelden. Wenn Sie also den neuen Benutzer jsmith anlegen, gehen Sie folgerndermassen vor: &prompt.root; pw useradd jsmith &prompt.root; cd /var/yp &prompt.root; make test-domain Statt pw useradd jsmith könnten Sie auch adduser jsmith verwenden. Tragen Sie die Administratorkonten nicht in die NIS-Maps ein. Administratorkonten und Passwörter dürfen nicht auf Rechnern verbreitet werden, auf denen sich Benutzer anmelden können, die auf diese Konten keine Zugriff haben sollen. Sichern Sie die NIS-Master- und Slaveserver und minimieren Sie die Ausfallzeiten. Wenn diese Rechner gehackt oder einfach nur ausgeschaltet werden, haben viele Leute keinen Netzwerkzugriff mehr. Dies ist die größte Schwäche jeder zentralen Verwaltung. Wenn Sie Ihre NIS-Server nicht schützen, werden Sie viele verärgerte Anwender haben. Kompatibilität zu NIS v1 NIS Kompatibilität zu NIS v1 ypserv unterstützt NIS v1 unter FreeBSD nur eingeschränkt. Die NIS-Implementierung von FreeBSD verwendet nur NIS v2, andere Implementierungen unterstützen aus Gründen der Abwärtskompatibilität mit älteren Systemen auch NIS v1. Die mit diesen Systemen gelieferten ypbind-Daemonen versuchen, sich an einen NIS-v1-Server zu binden (Dies selbst dann, wenn sie ihn nie benötigen. Außerdem versuchen Sie auch dann, einen v1-Server zu erreichen, wenn Sie zuvor eine Antwort von einem v2-Server erhalten.). Während normale Clientaufrufe unter FreeBSD unterstützt werden, sind Anforderungen zum Transfer von v1-Maps nicht möglich. Daher kann FreeBSD nicht als Client oder Server verwendet werden, wenn ein NIS-Server vorhanden ist, der nur NIS v1 unterstützt. Glücklicherweise sollte es heute keine Server mehr geben, die nur NIS v1 unterstützen. NIS-Server, die auch als NIS-Clients arbeiten Wenn Sie ypserv in einer Multi-Serverdomäne verwenden, in der NIS-Server gleichzeitig als NIS-Clients arbeiten, ist es eine gute Idee, diese Server zu zwingen, sich an sich selbst zu binden. Damit wird verhindert, dass Bindeanforderungen gesendet werden und sich die Server gegenseitig binden. Sonst könnten seltsame Fehler auftreten, wenn ein Server ausfällt, auf den andere Server angewiesen sind. Letztlich werden alle Clients einen Timeout melden, und versuchen, sich an andere Server zu binden. Die dadurch entstehende Verzögerung kann beträchtlich sein. Außerdem kann der Fehler erneut auftreten, da sich die Server wiederum aneinander binden könnten. Sie können einen Rechner durch die Verwendung von ypbind sowie der Option zwingen, sich an einen bestimmten Server zu binden. Um diesen Vorgang zu automatisieren, können Sie folgende Zeilen in /etc/rc.conf einfügen: nis_client_enable="YES" # run client stuff as well nis_client_flags="-S NIS domain,server" Lesen Sie &man.ypbind.8;, wenn Sie weitere Informationen benötigen. Passwortformate NIS Passwortformate Unterschiedliche Passwortformate sind das Hauptproblem, das beim Einrichten eines NIS-Servers auftreten kann. Wenn der NIS-Server mit DES verschlüsselte Passwörter verwendet, werden nur Clients unterstützt, die ebenfalls DES benutzen. Wenn sich auf Ihrem Netzwerk beispielsweise &solaris; NIS-Clients befinden, müssen die Passwörter mit DES verschlüsselt werden. Welches Format die Server und Clients verwenden, steht in /etc/login.conf. Wenn ein System Passwörter mit DES verschlüsselt, enthält die default-Klasse einen Eintrag wie den folgenden: default:\ :passwd_format=des:\ :copyright=/etc/COPYRIGHT:\ [weitere Einträge] Mögliche Werte für passwd_format sind unter anderem blf und md5 (mit Blowfish und MD5 verschlüsselte Passwörter). Wenn die Datei /etc/login.conf geändert wird, muss die Login-Capability Datenbank neu erstellt werden. Geben Sie dazu als root den folgenden Befehl ein: &prompt.root; cap_mkdb /etc/login.conf Das Format der schon in /etc/master.passwd befindlichen Passwörter wird erst aktualisiert, wenn ein Benutzer sein Passwort ändert, nachdem die Datenbank neu erstellt wurde. Damit die Passwörter auch im gewählten Format abgespeichert werden, muss mit crypt_default in der Datei /etc/auth.conf die richtige Priorität der Formate eingestellt werden. Das gewählte Format sollte als Erstes in der Liste stehen. Sollen die Passwörter mit DES verschlüsselt werden, verwenden Sie den folgenden Eintrag: crypt_default = des blf md5 Wenn Sie alle &os; NIS-Server und NIS-Clients entsprechend den obigen Schritten eingestellt haben, wird im ganzen Netzwerk dasselbe Passwortformat verwendet. Falls Sie Probleme mit der Authentifizierung eines NIS-Clients haben, kontrollieren Sie die verwendeten Passwortformate. In einer heterogenen Umgebung werden Sie DES benutzen müssen, da dies der meist unterstützte Standard ist. Greg Sutter Geschrieben von Automatische Netzwerkkonfiguration mit DHCP Was ist DHCP? Dynamic Host Configuration Protocol DHCP Internet Software Consortium (ISC) Über DHCP, das Dynamic Host Configuration Protocol, kann sich ein System mit einem Netzwerk verbinden und die für die Kommunikation mit diesem Netzwerk nötigen Informationen beziehen. &os;-Versionen vor 6.0 verwenden die DHCP-Client-Implementierung (&man.dhclient.8;) von ISC (Internet Software Consortium). Ab 6.0 wird der von OpenBSD 3.7 stammende dhclient zum Einsatz kommen. Die Informationen in diesem Abschnitt beziehen sich daher sowohl auf den dhclient von ISC als auch auf den von OpenBSD. Als DHCP-Server wird in beiden Fällen der DHCP-Server der ISC-Distribution verwendet. Übersicht Dieser Abschnitt beschreibt sowohl die Clientseite des ISC- als auch des OpenBSD-Clients sowie die Serverseite des DHCP-Systems von ISC. Das Clientprogramm dhclient ist in FreeBSD integriert, das Serverprogramm kann über den Port net/isc-dhcp3-server installiert werden. Weiter Informationen finden Sie in &man.dhclient.8;, &man.dhcp-options.5; sowie &man.dhclient.conf.5;. Wie funktioniert DHCP? UDP Der DHCP-Client dhclient beginnt von einem Clientrechner aus über den UDP-Port 68 Konfigurationsinformationen anzufordern. Der Server antwortet auf dem UDP-Port 67, indem er dem Client eine IP-Adresse zuweist und ihm weitere wichtige Informationen über das Netzwerk, wie Netzmasken, Router und DNS-Server mitteilt. Diese Informationen werden als DHCP-Lease bezeichnet und sind nur für eine bestimmte Zeit, die vom Administrator des DHCP-Servers vorgegeben wird, gültig. Dadurch fallen verwaiste IP-Adressen, deren Clients nicht mehr mit dem Netzwerk verbunden sind, automatisch an den Server zurück. DHCP-Clients können sehr viele Informationen von einem DHCP-Server erhalten. Eine ausführliche Liste finden Sie in &man.dhcp-options.5;. Integration in FreeBSD In Abhängigkeit von der eingesetzten &os;-Version wird entweder der ISC-DHCP-Client oder der DHCP-Client von OpenBSD in FreeBSD integriert. Sowohl während der Installation als auch im Basissystem steht der DHCP-Client zur Verfügung. In Netzen mit DHCP-Servern wird dadurch die Konfiguration von Systemen erheblich vereinfacht. dhclient ist seit der Version 3.2 in &os; enthalten. sysinstall DHCP wird von sysinstall unterstützt. Wenn Sie eine Netzwerkkarte mit sysinstall konfigurieren, lautet die zweite Frage Do you want to try DHCP configuration of the interface?. Wenn Sie diese Frage bejahen, wird dhclient aufgerufen, und die Netzkarte wird automatisch eingerichtet. Um DHCP beim Systemstart zu aktivieren, müssen Sie zwei Dinge erledigen: DHCP Anforderungen Stellen Sie sicher, dass bpf in Ihren Kernel kompiliert ist. Dazu fügen Sie die Zeile device bpf in Ihre Kernelkonfigurationsdatei ein und erzeugen einen neuen Kernel. Weitere Informationen zur Kernelkonfiguration finden Sie in des Handbuchs. Das Gerät bpf ist im GENERIC-Kernel bereits enthalten. Für die Nutzung von DHCP muss also kein angepasster Kernel erzeugt werden. Wenn Sie um die Sicherheit Ihres Systems besorgt sind, sollten Sie wissen, dass bpf auch zur Ausführung von Paketsniffern erforderlich ist (obwohl diese dennoch als root ausgeführt werden müssen). bpf muss vorhanden sein, damit DHCP funktioniert. Sind Sie sehr sicherheitsbewusst, sollten Sie bpf aus Ihrem Kernel entfernen, wenn Sie DHCP nicht verwenden. Fügen Sie folgende Zeile in /etc/rc.conf ein: ifconfig_fxp0="DHCP" Ersetzen Sie fxp0 durch den Eintrag für die Netzkarte, die Sie dynamisch einrichten wollen. Lesen Sie dazu auch . Wenn Sie dhclient an einem anderen Ort installiert haben, oder zusätzliche Flags an dhclient übergeben wollen, fügen Sie auch folgende (entsprechend angepasste) Zeilen ein: dhcp_program="/sbin/dhclient" dhcp_flags="" DHCP Server Der DHCP-Server dhcpd ist als Teil des Ports net/isc-dhcp3-server verfügbar. Dieser Port enthält die komplette ISC-DHCP-Distribution, inklusive der Dokumentation. Dateien DHCP Konfigurationsdateien /etc/dhclient.conf dhclient benötigt die Konfigurationsdatei /etc/dhclient.conf. Diese Datei enthält normalerweise nur Kommentare, da die Vorgabewerte zumeist ausreichend sind. Lesen Sie dazu auch &man.dhclient.conf.5;. /sbin/dhclient dhclient ist statisch gelinkt und befindet sich in /sbin. Weitere Informationen finden Sie in &man.dhclient.8;. /sbin/dhclient-script Bei dhclient-script handelt es sich um das FreeBSD-spezifische Konfigurationsskript des DHCP-Clients. Es wird in &man.dhclient-script.8; beschrieben und kann meist unverändert übernommen werden. /var/db/dhclient.leases Der DHCP-Client verfügt über eine Datenbank, die alle derzeit gültigen Leases enthält und als Logdatei erzeugt wird. Weitere Informationen finden Sie in &man.dhclient.8;. Weitere Informationen Das DHCP-Protokoll wird vollständig im RFC 2131 beschrieben. Eine weitere, lehrreiche Informationsquelle existiert unter . Einen DHCP-Server installieren und einrichten Übersicht Dieser Abschnitt beschreibt die Einrichtung eines FreeBSD-Systems als DHCP-Server. Dazu wird die DHCP-Implementation von ISC (Internet Software Consortium) verwendet. Der DHCP-Server ist nicht im Basissystem von FreeBSD enthalten, daher müssen Sie als Erstes den Port net/isc-dhcp3-server installieren. Lesen Sie , wenn Sie weitere Informationen zur Ports-Sammlung benötigen. Den DHCP-Server installieren DHCP installieren Stellen Sie sicher, dass &man.bpf.4; in Ihren Kernel kompiliert ist. Dazu fügen Sie die Zeile device bpf Ihre Kernelkonfigurationsdatei ein und erzeugen einen neuen Kernel. Die Kernelkonfiguration wird in beschrieben. Das Gerät bpf ist im GENERIC-Kernel bereits enthalten. Für die Nutzung von DHCP muss also kein angepasster Kernel erzeugt werden. Wenn Sie um die Sicherheit Ihres Systems besorgt sind, sollten Sie wissen, dass bpf auch zur Ausführung von Paketsniffern erforderlich ist (obwohl diese dennoch als root ausgeführt werden müssen). bpf muss vorhanden sein, damit DHCP funktioniert. Sind Sie sehr sicherheitsbewusst, sollten Sie bpf aus Ihrem Kernel entfernen, wenn Sie DHCP nicht verwenden. Danach müssen Sie die vom Port net/isc-dhcp3-server erzeugte Vorlage für dhcpd.conf anpassen. Die bei der Installation erzeugte Datei /usr/local/etc/dhcpd.conf.sample sollten Sie nach /usr/local/etc/dhcpd.conf kopieren, bevor Sie Veränderungen vornehmen. Den DHCP-Server einrichten DHCP dhcpd.conf dhcpd.conf besteht aus Festlegungen zu Subnetzen und Rechnern und lässt sich am besten an einem Beispiel erklären: option domain-name "example.com"; option domain-name-servers 192.168.4.100; option subnet-mask 255.255.255.0; default-lease-time 3600; max-lease-time 86400; ddns-update-style none; subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254; option routers 192.168.4.1; } host mailhost { hardware ethernet 02:03:04:05:06:07; fixed-address mailhost.example.com; } Diese Option beschreibt die Domäne, die den Clients als Standardsuchdomäne zugewiesen wird. Weitere Informationen finden Sie in man.resolv.conf.5;. Diese Option legt eine, durch Kommata getrennte Liste von DNS-Servern fest, die von den Clients verwendet werden sollen. Die den Clients zugewiesene Netzmaske. Ein Client kann eine Lease einer bestimmten Dauer anfordern. Geschieht dies nicht, weist der Server eine Lease mit einer vorgegebenen Ablaufdauer (in Sekunden) zu. Die maximale Zeitdauer, für die der Server Konfigurationsinformationen vergibt. Sollte ein Client eine längere Zeitspanne anfordern, wird dennoch nur der Wert max-lease-time in Sekunden zugewiesen. Diese Option legt fest, ob der DHCP-Server eine DNS-Aktualisierung versuchen soll, wenn Konfigurationsdateien vergeben oder zurückgezogen werden. In der ISC-Implementation muss diese Option gesetzt sein. Dadurch werden die IP-Adressen festgelegt, die den Clients zugewiesen werden können. IP-Adressen zwischen diesen Grenzen sowie die einschließenden Adressen werden den Clients zugewiesen. Legt das Standard-Gateway fest, das den Clients zugewiesen wird. Die (Hardware-)MAC-Adresse eines Rechners (durch die der DHCP-Server den Client erkennt, der eine Anforderung an ihn stellt). Einem Rechner soll immer die gleiche IP-Adresse zugewiesen werden. Beachten Sie, dass hier auch ein Rechnername gültig ist, da der DHCP-Server den Rechnernamen auflöst, bevor er die Konfigurationsinformationen zuweist. Nachdem Sie dhcpd.conf fertig konfiguriert haben, sollten Sie den DHCP-Server aktivieren, indem Sie folgende Zeilen in /etc/rc.conf aufnehmen: dhcpd_enable="YES" dhcpd_ifaces="dc0" Dabei müssen Sie den Geräteeintrag dc0 durch die Gerätedatei (mehrere Gerätedateien müssen durch Leerzeichen getrennt werden) ersetzen, die Ihr DHCP-Server auf Anfragen von DHCP-Clients hin überwachen soll. Danach können Sie den Server durch Eingabe des folgenden Befehls starten: &prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh start Sollten Sie die Konfiguration Ihres Servers einmal verändern müssen, reicht es nicht aus, ein SIGHUP-Signal an dhcpd zu senden, weil damit die Konfiguration nicht erneut geladen wird (im Gegensatz zu den meisten Daemonen). Sie müssen den Prozess vielmehr mit dem Signal SIGTERM stoppen, um ihn anschließend neu zu starten. Dateien Server Konfigurationsdateien /usr/local/sbin/dhcpd dhcpd ist statisch gelinkt und befindet sich in /usr/local/sbin. Lesen Sie auch die mit dem Port installierte Hilfeseite &man.dhcpd.8;, wenn Sie weitere Informationen zu dhcpd benötigen. /usr/local/etc/dhcpd.conf dhcpd benötigt die Konfigurationsdatei /usr/local/etc/dhcpd.conf, damit der Server den Clients seine Dienste anbieten kann. Diese Datei muss alle Informationen enthalten, die an die Clients weitergegeben werden soll. Außerdem sind hier Informationen zur Konfiguration des Servers enthalten. Die mit dem Port installierte Hilfeseite &man.dhcpd.conf.5; enthält weitere Informationen. /var/db/dhcpd.leases Der DHCP-Server hat eine Datenbank, die alle vergebenen Leases enthält. Diese wird als Logdatei erzeugt. Weitere Informationen finden Sie in der vom Port installierten Hilfeseite &man.dhcpd.leases.5;. /usr/local/sbin/dhcrelay dhcrelay wird in komplexen Umgebungen verwendet, in denen ein DHCP-Server eine Anfrage eines Clients an einen DHCP-Server in einem separaten Netzwerk weiterleitet. Wenn Sie diese Funktion benötigen, müssen Sie den Port net/isc-dhcp3-relay installieren. Weitere Informationen zu diesem Thema finden Sie in &man.dhcrelay.8;. Chern Lee Beigetragen von Tom Rhodes Daniel Gerzo <acronym>DNS</acronym> – Domain Name Service Überblick BIND DNS ist das für die Umwandlung von Rechnernamen in IP-Adressen zuständige Protokoll. &os; verwendet dazu BIND (Berkeley Internet Name Domain), die am häufigsten verwendete Implementierung von DNS). Eine Anfrage nach www.FreeBSD.org gibt die IP-Adresse des &os;-Webservers, eine Anfrage nach ftp.FreeBSD.org die IP-Adresse des entsprechenden FTP-Servers zurück. Der umgekehrte Weg ist ebenso möglich, eine IP-Adresse kann also auch in ihren Rechnernamen aufgelöst werden. Um eine DNS-Abfrage durchzuführen, muss auf dem jeweiligen Rechner kein Nameserver installiert sein. &os; verwendet derzeit in der Voreinstellung BIND9 als DNS-Serversoftware. Unsere Installation bietet Ihnen eine erhöhte Sicherheit, ein neues Dateisystemlayout sowie eine automatisierte &man.chroot.8;-Konfiguration. DNS Im Internet wird DNS durch ein komplexes System von autoritativen Root-Nameservern, Top Level Domain-Servern (TLD) sowie anderen kleineren Nameservern verwaltet, die individuelle Rechnerinformationen speichern und untereinander abgleichen. Derzeit wird BIND vom Internet Software Consortium () verwaltet. Begriffsbestimmungen Um dieses Dokument besser verstehen zu können, müssen einige DNS-spezifische Begriffe genauer definiert werden. Resolver Reverse-DNS Root-Zone Begriff Bedeutung Forward-DNS Rechnernamen in IP-Adressen umwandeln. Origin (Ursprung) Die in einer bestimmten Zonendatei beschriebene Domäne. named, BIND, Nameserver Gebräuchliche Namen für das unter &os; verwendete BIND-Nameserverpaket. Resolver Ein Systemprozess, durch den ein Rechner Zoneninformationen von einem Nameserver anfordert. Reverse-DNS Das Gegenteil von Forward-DNS; die Umwandlung von IP-Adressen in Rechnernamen Root-Zone Der Beginn der Internet-Zonenhierarchie. Alle Zonen befinden sich innerhalb der Root-Zone. Dies ist analog zu einem Dateisystem, in dem sich alle Dateien und Verzeichnisse innerhalb des Wurzelverzeichnisses befinden. Zone Eine individuelle Domäne, Unterdomäne, oder ein Teil von DNS, der von der gleichen Autorität verwaltet wird. Zonen Beispiele Es folgen nun einige Zonenbeispiele: . ist die Root-Zone. org. ist eine Top level Domain (TLD) innerhalb der Root-Zone. example.org. ist eine Zone innerhalb der org.-TLD. 1.168.192.in-addr.arpa. ist die Zone mit allen IP-Adressen des 192.168.1.*-IP-Adressraums. Wie man an diesen Beispielen erkennen kann, befindet sich der spezifischere Teil eines Rechnernamens auf der linken Seite der Adresse. example.org. beschreibt einen Rechner also genauer als org., während org. genauer als die Root-Zone ist. Jeder Teil des Rechnernamens hat Ähnlichkeiten mit einem Dateisystem, in dem etwa /dev dem Wurzelverzeichnis untergeordnet ist. Gründe für die Verwendung eines Nameservers Es gibt zwei Arten von Nameservern: Autoritative Nameserver sowie zwischenspeichernde (cachende) Nameserver. Ein autoritativer Nameserver ist notwendig, wenn Sie anderen verbindliche DNS-Auskünfte erteilen wollen. eine Domain, beispielsweise example.org, registriert wird, und den zu dieser Domain gehörenden Rechnern IP-Adressen zugewiesen werden müssen. ein IP-Adressblock reverse-DNS-Einträge benötigt, um IP-Adressen in Rechnernamen auflösen zu können. ein Backup-Nameserver (auch Slaveserver genannt) oder ein zweiter Nameserver auf Anfragen antworten soll. Ein cachender Nameserver ist notwendig, weil ein lokaler DNS-Server Daten zwischenspeichern und daher schneller auf Anfragen reagieren kann als ein entfernter Server. Wird nach www.FreeBSD.org gesucht, leitet der Resolver diese Anfrage an den Nameserver des ISPs weiter und nimmt danach das Ergebnis der Abfrage entgegen. Existiert ein lokaler, zwischenspeichernder DNS-Server, muss dieser die Anfrage nur einmal nach außen weitergeben. Für alle weiteren Anfragen ist dies nicht mehr nötig, da diese Information nun lokal gespeichert ist. Wie funktioniert <acronym>DNS</acronym>? Unter &os; wird der BIND-Daemon als named bezeichnet. Datei Beschreibung named Der BIND-Daemon. &man.rndc.8; Das Steuerprogramm für named. /etc/namedb Das Verzeichnis, in dem sich die Zoneninformationen für BIND befinden. /etc/namedb/named.conf Die Konfigurationsdatei für named. Je nachdem, wie eine Zone auf dem Server konfiguriert wurde, finden sich die zur Zone gehörendenden Dateien in den Unterverzeichnissen master, slave, oder dynamic des Verzeichnisses /etc/namedb. Diese Dateien enthalten die DNS-Informationen, die der Nameserver für die Beantwortung von Anfragen benötigt. BIND starten BIND Start Da BIND automatisch installiert wird, ist die Konfiguration relativ einfach. In der Voreinstellung wird ein in einer &man.chroot.8;-Umgebung betriebener named-Server eingerichtet. Um den Server manuell zu starten, verwenden Sie den folgenden Befehl: &prompt.root; /etc/rc.d/named forcestart Um den named-Daemon beim Systemstart automatisch zu starten, fügen Sie folgende Zeile in /etc/rc.conf ein: named_enable="YES" /etc/namedb/named.conf bietet zahlreiche Konfigurationsoptionen, die in diesem Dokument nicht alle beschrieben werden können. Wollen Sie die Startoptionen von named unter &os; anpassen, sollten Sie sich die named_*-Flags in der Datei /etc/defaults/rc.conf sowie die Manualpage zu &man.rc.conf.5; näher ansehen. Zusätzliche Informationen bietet Ihnen auch der Abschnitt des Handbuchs. Konfigurationsdateien BIND Konfigurationsdateien Die Konfigurationsdateien von named finden sich unter /etc/namedb und müssen in der Regel an Ihre Bedürfnisse angepasst werden. Es sei denn, Sie benötigen nur einen einfachen Resolver. Ein Großteil der Konfigurationsarbeiten erfolgt dabei in diesem Verzeichnis. <command>make-localhost</command> verwenden Um eine Master-Zone für den lokalen Rechner zu erstellen, wechseln Sie in das Verzeichnis /etc/namedb und führen dort den folgenden Befehl aus: &prompt.root; sh make-localhost Wenn es keine Probleme gab, sollte nun eine neue Datei im Unterverzeichnis master vorhanden sein. Diese heißt entweder localhost.rev (für den lokalen Domain-Namen) oder localhost-v6.rev (wenn Sie IPv6 einsetzen). Als Standardkonfigurationsdatei wird dabei named.conf verwendet. <filename>/etc/namedb/named.conf</filename> // $FreeBSD$ // // Refer to the named.conf(5) and named(8) man pages, and the documentation // in /usr/share/doc/bind9 for more details. // // If you are going to set up an authoritative server, make sure you // understand the hairy details of how DNS works. Even with // simple mistakes, you can break connectivity for affected parties, // or cause huge amounts of useless Internet traffic. options { directory "/etc/namedb"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; // If named is being used only as a local resolver, this is a safe default. // For named to be accessible to the network, comment this option, specify // the proper IP address, or delete this option. listen-on { 127.0.0.1; }; // If you have IPv6 enabled on this system, uncomment this option for // use as a local resolver. To give access to the network, specify // an IPv6 address, or the keyword "any". // listen-on-v6 { ::1; }; // In addition to the "forwarders" clause, you can force your name // server to never initiate queries of its own, but always ask its // forwarders only, by enabling the following line: // // forward only; // If you've got a DNS server around at your upstream provider, enter // its IP address here, and enable the line below. This will make you // benefit from its cache, thus reduce overall DNS traffic in the Internet. /* forwarders { 127.0.0.1; }; */ Um vom Cache Ihres Internetproviders zu profitieren, können hier forwarders aktiviert werden. Normalerweise sucht ein Nameserver das Internet rekursiv ab, bis er die gesuchte Antwort findet. Durch diese Option wird stets der Nameserver Ihres Internetproviders zuerst abgefragt, um von dessen Cache zu profitieren. Wenn es sich um einen schnellen, viel benutzten Nameserver handelt, kann dies zu einer Geschwindigkeitssteigerung führen. 127.0.0.1 funktioniert hier nicht. Ändern Sie diese Adresse in einen Nameserver Ihres Einwahlproviders. /* * If there is a firewall between you and name servers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND versions 8 and later * use a pseudo-random unprivileged UDP port by default. */ // query-source address * port 53; }; // If you enable a local name server, don't forget to enter 127.0.0.1 // first in your /etc/resolv.conf so this server will be queried. // Also, make sure to enable it in /etc/rc.conf. zone "." { type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "master/localhost.rev"; }; // RFC 3152 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" { type master; file "master/localhost-v6.rev"; }; // NB: Do not use the IP addresses below, they are faked, and only // serve demonstration/documentation purposes! // // Example slave zone config entries. It can be convenient to become // a slave at least for the zone your own domain is in. Ask // your network administrator for the IP address of the responsible // primary. // // Never forget to include the reverse lookup (IN-ADDR.ARPA) zone! // (This is named after the first bytes of the IP address, in reverse // order, with ".IN-ADDR.ARPA" appended.) // // Before starting to set up a primary zone, make sure you fully // understand how DNS and BIND works. There are sometimes // non-obvious pitfalls. Setting up a slave zone is simpler. // // NB: Don't blindly enable the examples below. :-) Use actual names // and addresses instead. /* An example master zone zone "example.net" { type master; file "master/example.net"; }; */ /* An example dynamic zone key "exampleorgkey" { algorithm hmac-md5; secret "sf87HJqjkqh8ac87a02lla=="; }; zone "example.org" { type master; allow-update { key "exampleorgkey"; }; file "dynamic/example.org"; }; */ /* Examples of forward and reverse slave zones zone "example.com" { type slave; file "slave/example.com"; masters { 192.168.1.1; }; }; zone "1.168.192.in-addr.arpa" { type slave; file "slave/1.168.192.in-addr.arpa"; masters { 192.168.1.1; }; }; */ Hierbei handelt es sich um Slave-Einträge für eine Reverse- und Forward-DNS-Zone, die in der Datei named.conf definiert sind. Für jede neue Zone muss ein zusätzlicher Eintrag in named.conf erstellt werden. Ein einfacher Eintrag für eine Zone example.org könnte beispielsweise so aussehen: zone "example.org" { type master; file "master/example.org"; }; Die Option legt fest, dass es sich um eine Master-Zone handelt, deren Zoneninformationen sich in der Datei /etc/namedb/master/example.org befinden. Diese Datei wird durch die Option festgelegt. zone "example.org" { type slave; file "slave/example.org"; }; Hier handelt es sich um einen Slaveserver, der seine Informationen vom Masterserver der betreffenden Zone bezieht und diese in der angegebenen Datei speichert. Wenn der Masterserver nicht erreichbar ist, verfügt der Slaveserver über die transferierten Zoneninformationen und kann diese an andere Rechner weitergeben. Zonendateien BIND Zonendatei Die in der Datei /etc/namedb/master/example.org definierte Zonendatei für example.org könnte etwa so aussehen: $TTL 3600 ; 1 hour example.org. IN SOA ns1.example.org. admin.example.org. ( 2006051501 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) ; DNS Servers IN NS ns1.example.org. IN NS ns2.example.org. ; MX Records IN MX 10 mx.example.org. IN MX 20 mail.example.org. IN A 192.168.1.1 ; Machine Names localhost IN A 127.0.0.1 ns1 IN A 192.168.1.2 ns2 IN A 192.168.1.3 mx IN A 192.168.1.4 mail IN A 192.168.1.5 ; Aliases www IN CNAME @ Beachten Sie, dass jeder mit einem . endende Rechnername ein exakter Rechnername ist, während sich alles ohne einen abschließenden . auf den Ursprung bezieht. www steht daher für www.Ursprung. In unserer fiktiven Zonendatei ist example.org. der Ursprung, daher steht www für www.example.org. Eine Zonendatei hat folgenden Aufbau: recordname IN recordtype value DNS Einträge Die am häufigsten verwendeten DNS-Einträge sind: SOA Start der Zonenautorität NS Ein autoritativer Nameserver A Eine Rechneradresse CNAME Der kanonische Name eines Alias MX Mail Exchanger PTR Ein (bei Reverse-DNS verwendeter) Domain Name Pointer example.org. IN SOA ns1.example.org. admin.example.org. ( 2006051501 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week 86400 ) ; Minimum TTL of 1 day example.org. Der Name der Domäne und damit der Ursprung dieser Zonendatei. ns1.example.org. Der primäre/autoritative Nameserver dieser Zone. admin.example.org. Die für diese Zone verantwortliche Person. Das Zeichen @ wird dabei ersetzt (admin@example.org wird also zu admin.example.org). 2006051501 Die Seriennummer der Datei. Sie muss stets inkrementiert werden, wenn die Zonendatei geändert wird. Viele Administratoren bevorzugen ein JJJJMMTTRR-Format, um die Seriennummer festzulegen. 2006051501 steht also für den 15.05.2006, die beiden letzten Stellen für die erste Modifikation der Zonendatei an diesem Tag. Die Seriennummer ist von großer Bedeutung, da Slaveserver daran eine aktualisierte Zonendatei erkennen können. IN NS ns1.example.org. Ein NS-Eintrag. Jeder Nameserver, der für eine Zone verantwortlich ist, muss über einen solchen Eintrag verfügen. localhost IN A 127.0.0.1 ns1 IN A 192.168.1.2 ns2 IN A 192.168.1.3 mx IN A 192.168.1.4 mail IN A 192.168.1.5 Der Eintrag A bezieht sich auf Rechnernamen. ns1.example.org würde also zu 192.168.1.2 aufgelöst werden. IN A 192.168.1.1 Diese Zeile weist die IP-Adresse 192.168.1.1 dem aktuellen Ursprung, in unserem Fall also example.org, zu. www IN CNAME @ Der Eintrag für den kanonischen Namen wird dazu verwendet, Aliase für einen Rechner zu vergeben. Im Beispiel ist www ein Alias für den Master-Rechner localhost.example.org oder 192.168.1.1). Durch die Option CNAME können Aliasnamen vergeben werden. Ein Rechnername kann aber auch abwechselnd verschiedenen Rechnern zugewiesen werden. MX-Eintrag IN MX 10 mail.example.org. Die Option MX legt fest, welcher Mailserver für eintreffende Mails der Zone verantwortlich ist. mail.example.org ist der Rechnername des Mailservers, der eine Priorität von 10 hat. Es können auch mehrere Mailserver mit verschiedener Priorität (10, 20, ...) vorhanden sein. Ein Mailserver, der eine Mail an example.org verschicken will, verwendet zuerst den MX mit der höchsten Priorität (das heißt den mit der niedrigsten Prioritätsnummer), danach den mit der nächsthöheren Priorität. Und dies solange, bis die E-Mail zugestellt werden kann. Für (bei Reverse-DNS verwendete) in-addr.arpa-Zonendateien wird das gleiche Format verwendet. Der einzige Unterschied besteht in der Verwendung der Option PTR an Stelle der Optionen A und CNAME. $TTL 3600 1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. ( 2006051501 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 3600 ) ; Minimum IN NS ns1.example.org. IN NS ns2.example.org. 1 IN PTR example.org. 2 IN PTR ns1.example.org. 3 IN PTR ns2.example.org. 4 IN PTR mx.example.org. 5 IN PTR mail.example.org. Durch diese Datei werden den Rechnernamen der fiktiven Domäne IP-Adressen zugewiesen. Zwischenspeichernde (cachende) Nameserver BIND Zwischenspeichernde Nameserver Ein cachender Nameserver ist für keine Zonen verantwortlich. Er stellt lediglich eigene Anfragen und speichert deren Ergebnisse ab. Um einen solchen Nameserver einzurichten, gehen Sie wie gewohnt vor, allerdings definieren Sie keine Zonen. Sicherheit Obwohl BIND die am meisten verwendete (und kontrollierte) Implementierung von DNS darstellt, werden dennoch manchmal neue Sicherheitsprobleme entdeckt. Zwar startet &os; named automatisch in einer &man.chroot.8;-Umgebung, es gibt aber noch weitere Sicherheitsmechanismen, mit denen Sie potentielle DNS-Serviceattacken erschweren können. Es ist daher eine gute Idee, die Sicherheitshinweise von CERT zu lesen sowie die Mailingliste &a.security-notifications; zu abonnieren, um sich über Sicherheitsprobleme im Zusammenhang mit dem Internet und FreeBSD zu informieren. Tritt ein Problem auf, kann es nie schaden, die Quellen zu aktualisieren und named neu zu kompilieren. Weitere Informationsquellen Hilfeseiten zu BIND/named: &man.rndc.8;, &man.named.8;, &man.named.conf.5; Offizielle ISC-Seite zu BIND Offizielles Forum zu ISC- BIND BIND FAQs O'Reilly DNS and BIND 5th Edition RFC1034 - Domain Names - Concepts and Facilities RFC1035 - Domain Names - Implementation and Specification Murray Stokely Beigetragen von Der Apache HTTP-Server Webserver konfigurieren Apache Überblick Einige der weltgrößten Internetauftritte laufen unter &os;. Die Mehrzahl der Webserver im Internet nutzt den Apache HTTP-Server. Die Installationspakete für den Apache sollten auf Ihrem Installationsmedium vorhanden sein. Wenn Sie den Apache noch nicht installiert haben, können Sie dies jederzeit über den Port www/apache13 oder www/apache20 nachholen. Nachdem der Apache erfolgreich installiert wurde, muss er noch konfiguriert werden. Dieser Abschnitt beschreibt die Version 1.3.X des Apache HTTP-Servers, da diese Version unter &os; am häufigsten verwendet wird. Apache 2.X bringt zwar viele Verbesserungen mit sich, wird hier aber nicht beschrieben. Sollten Sie an Apache 2.X interessiert sein, informieren Sie sich bitte auf . Konfiguration Apache Konfigurationsdatei Der Apache HTTP-Server wird unter &os; primär über die Datei /usr/local/etc/apache/httpd.conf konfiguriert. Bei dieser Datei handelt es sich um eine typische &unix;-Konfigurationsdatei, in der Kommentarzeilen mit einem #-Zeichen beginnen. Eine komplette Beschreibung aller Optionen würde den Rahmen dieses Handbuchs sprengen, daher beschreiben wir hier nur die am häufigsten verwendeten Optionen. ServerRoot "/usr/local" Legt das Standardwurzelverzeichnis für die Apache-Installation fest. Binärdateien werden in die Verzeichnisse bin und sbin unterhalb des Serverwurzelverzeichnisses installiert, während sich Konfigurationsdateien im Verzeichnis etc/apache befinden. ServerAdmin you@your.address Die E-Mail-Adresse, an die Mitteilungen über Serverprobleme geschickt werden sollen. Diese Adresse erscheint auf vom Server erzeugten Seiten, beispielsweise auf Fehlerseiten. ServerName www.example.com Über die Option ServerName können Sie einen Rechnernamen festlegen, den Ihr Server an die Clients sendet, wenn sich dieser von tatsächlichen Rechnernamen unterscheidet (sie könnten etwa www statt des richtigen Rechnernamens verwenden). DocumentRoot "/usr/local/www/data" DocumentRoot: Das Verzeichnis, in dem Sie Ihre Dokumente ablegen. In der Voreinstellung befinden sich alle Seiten in diesem Verzeichnis, durch symbolische Links oder Aliase lassen sich aber auch andere Orte festlegen. Es ist empfehlenswert, eine Sicherungskopie Ihrer Konfigurationsdatei anzulegen, bevor Sie Änderungen durchführen. Nachdem Sie die Konfiguration beendet haben, können Sie den Apache starten. Den <application>Apache</application> betreiben Apache Starten oder Beenden Der Apache wird, im Gegensatz zu vielen anderen Netzwerkservern, nicht vom inetd-Super-Server verwaltet, sondern wird als eigenständiger Server betrieben, um die Leistung für eintreffende HTTP-Anfragen von den Clients (also von Internetbrowsern) zu verbessern. Gestartet, beendet oder neu gestartet wird der Server über einen Shellskript-Wrapper. Um den Apache erstmals zu starten, geben Sie einfach Folgendes ein: &prompt.root; /usr/local/sbin/apachectl start Wenn Sie den Server beenden wollen, geben Sie Folgendes ein: &prompt.root; /usr/local/sbin/apachectl stop Wenn Sie die Konfigurationsdatei verändern, müssen Sie den Server neu starten: &prompt.root; /usr/local/sbin/apachectl restart Um den Apache ohne den Abbruch bestehender Verbindungen neu zu starten, geben Sie Folgendes ein: &prompt.root; /usr/local/sbin/apachectl graceful Diese und weitere Optionen werden in &man.apachectl.8; beschrieben. Um den Apache beim Systemstart zu starten, fügen Sie folgende Zeile in /etc/rc.conf ein: apache_enable="YES" Wenn Sie während des Systemstarts weitere Parameter an den Apache-httpd-Daemon übergeben wollen, können Sie diese durch eine zusätzliche Zeile in rc.conf angeben: apache_flags="" Nachdem der Webserver gestartet ist, können Sie sich Ihre Internetseite ansehen, indem Sie in Ihren Browser die Adresse http://localhost/ eingeben. Die vordefinierte Standardstartseite ist /usr/local/www/data/index.html. Virtual Hosting Der Apache unterstützt zwei Formen des Virtual Hostings. Die erste Möglichkeit bezeichnet man als namenbasiertes virtuelles Hosting. Dabei wird der HTTP/1.1-Header der Clients dazu verwendet, den Rechnernamen zu bestimmen. Dadurch wird es möglich, mehrere Domains unter der gleichen IP-Adresse zu betreiben. Damit der Apache namenbasierte virtuelle Domains verwalten kann, fügen Sie die folgende Zeile in httpd.conf ein: NameVirtualHost * Wenn Ihr Webserver www.domain.tld heißt und Sie die virtuelle Domain www.someotherdomain.tld einrichten wollen, ergänzen Sie httpd.conf um folgende Einträge: <VirtualHost *> ServerName www.domain.tld DocumentRoot /www/domain.tld </VirtualHost> <VirtualHost *> ServerName www.someotherdomain.tld DocumentRoot /www/someotherdomain.tld </VirtualHost> Ersetzen Sie dabei die Adressen sowie den Pfad zu den Dokumenten durch Ihre eigenen Einstellungen. Ausführliche Informationen zum Einrichten von virtuellen Domains finden Sie in der offiziellen Apache-Dokumentation unter . Häufig verwendete Apache-Module Apache Module Es gibt viele verschiedene Apache-Module, die den Server um zusätzliche Funktionen erweitern. Die FreeBSD-Ports-Sammlung ermöglicht es Ihnen, den Apache gemeinsam mit einigen der beliebtesten Zusatzmodule zu installieren. mod_ssl Webserver Verschlüsselung SSL Verschlüsselung Das Modul mod_ssl verwendet die OpenSSL-Bibliothek, um, unter Nutzung der Protokolle Secure Sockets Layer (SSL v2/v3) sowie Transport Layer Security (TLS v1) starke Verschlüsselung zu ermöglichen. Durch dieses Modul können Sie ein signiertes Zertifikat von einer Zertifizierungsstelle anfordern, damit Sie einen sicheren Webserver unter &os; betreiben können. Wenn Sie den Apache 1.3.X noch nicht installiert haben, können Sie über den Port www/apache13-modssl eine Apache-Version installieren, in die mod_ssl als Modul einkompiliert wurde. Bevorzugen Sie den Apache 2.X, installieren Sie stattdessen den Port www/apache20, bei dem die SSL-Unterstützung bereits in der Voreinstellung aktiviert ist. Dynamische Webseiten mit Perl & PHP In den vergangenen Jahren haben immer mehr Unternehmen das Internet als Mittel für die Steigerung ihrer Einnahmen sowie für die Erhöhung ihrer Reichweite entdeckt. Dadurch stieg auch die Nachfrage nach interaktiven Internetinhalten. Neben einigen Unternehmen, darunter µsoft;, die dafür proprietäre Produkte entwickelt haben, hat auch die Open Source Community auf diesen Umstand reagiert und unter anderem mit mod_perl und mod_php Möglichkeiten zur Generierung dynamischer Internetseiten geschaffen. mod_perl mod_perl Perl Die Kombination Apache/Perl vereinigt die Vorteile der Programmiersprache Perl und des Apache HTTP-Servers. Durch das Modul mod_perl ist es möglich, vollständig in Perl geschriebene Apache-Module zu erzeugen. Da der Perl-Interpreter in den Server eingebettet wird, müssen Sie weder einen externen Interpreter noch Perl zusätzlich aufrufen. mod_perl ist in verschiedenen Versionen erhältlich. Bevor Sie mod_perl einsetzen,denken Sie bitte daran, dass mod_perl 1.0 nur mit Apache 1.3 und mod_perl 2.0 nur mit Apache 2 zusammenarbeitet. mod_perl 1.0 kann über den Port www/mod_perl, eine statisch kompilierte Version hingegen über den Port www/apache13-modperl installiert werden. Für die Installation von mod_perl 2.0 schließlich verwenden Sie den Port www/mod_perl2. Tom Rhodes Geschrieben von mod_php mod_php PHP Bei PHP, dem Hypertext Preprocessor, handelt es sich um eine vielseitig verwendbare Skriptsprache, die besonders für die Internetprogrammierung geeignet ist. PHP kann in HTML eingebettet werden und ähnelt von der Syntax her Sprachen wie C, &java; und Perl. Das Hauptanliegen von PHP ist es, Internetprogrammierern die rasche Erstellung von dynamisch erzeugten Internetseiten zu ermöglichen. Damit Ihr System PHP5 unterstützt, müssen Sie als Erstes den Apache Webserver über den Port lang/php5 installieren. Wenn Sie den Port lang/php5 das erste Mal installieren, werden die verfügbaren Optionen (OPTIONS) automatisch angezeigt. Erscheint das Konfigurationsmenü bei Ihnen nicht, so liegt dies daran, dass Sie den Port lang/php5 schon einmal auf Ihrem System installiert hatten. Es ist aber jederzeit möglich, dieses Menü aus dem Ports-Verzeichnis heraus über folgenden Befehl erneut aufzurufen: &prompt.root; make config In diesem Konfigurationsmenü müssen Sie die Option APACHE auswählen, damit mod_php5 als ein vom Apache-Webserver ladbares Modul gebaut wird. Viele Seiten verwenden nach wie vor (beispielsweise wegen der benötigten Kompatibilität zu bereits vorhandenen Web-Applikationen) PHP4. Ist dies bei Ihnen der Fall, so müssen Sie statt mod_php5 mod_php4 über den Port lang/php4 installieren. Der Port lang/php4 unterstützt viele der Konfigurations- und Laufzeitoptionen von lang/php5. Dieser Port installiert und konfiguriert die Module, die für die Unterstützung von dynamischen PHP-Anwendungen benötigt werden. Stellen Sie danach sicher, dass Ihre /usr/local/etc/apache/httpd.conf die folgenden Abschnitte enthält: LoadModule php5_module libexec/apache/libphp5.so AddModule mod_php5.c <IfModule mod_php5.c> DirectoryIndex index.php index.html </IfModule> <IfModule mod_php5.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule> Nachdem dies erledigt ist, rufen Sie apachectl auf, um das PHP-Modul zu laden: &prompt.root; apachectl graceful Bei künftigen Upgrades von PHP wird make config nicht mehr benötigt, da die von Ihnen ursprünglich ausgewählten Optionen (OPTIONS) vom &os;-Ports-Framework automatisch gespeichert werden. Die PHP-Unterstützung von &os; ist stark modular aufgebaut, daher verfügt eine Basisinstallation nur über wenige Funktionen. Eine Erweiterung um zusätzliche Funktionen ist allerdings sehr einfach über den Port lang/php5-extensions möglich. Der Port bietet Ihnen ein Auswahlmenü, über das Sie verschiedene PHP-Erweiterungen installieren können. Alternativ können Sie einzelne Erweiterungen aber weiterhin direkt über den jeweiligen Port installieren. Um beispielsweise die Unterstützung des Datenbankservers MySQL in PHP5 zu aktivieren, installieren Sie den Port databases/php5-mysql. Nachdem Sie eine Erweiterung installiert haben, müssen Sie den Apache-Server neu starten, damit die Erweiterung auch erkannt wird: &prompt.root; apachectl graceful Ab nun wird MySQL von PHP unterstützt. Murray Stokely Beigetragen von FTP – File Transfer Protocol FTP-Server Überblick Das File Transfer Protocol (FTP) ermöglicht auf einfache Art und Weise den Dateiaustausch mit einem FTP-Server. Der FTP-Server ftpd ist bei &os; bereits im Basisystem enthalten. Daher sind Konfiguration und Betrieb eines FTP-Servers unter FreeBSD relativ einfach. Konfiguration Der wichtigste Punkt ist hier die Entscheidung darüber, welche Benutzer auf Ihren FTP-Server zugreifen dürfen. Ein FreeBSD-System verfügt über diverse Systembenutzerkonten, um einzelnen Daemonen den Zugriff auf das System zu ermöglichen. Anonyme Benutzer sollten sich allerdings nicht über diese Benutzerkonten anmelden dürfen. Die Datei /etc/ftpusers enthält alle Benutzer, die vom FTP-Zugriff ausgeschlossen sind. In der Voreinstellung gilt dies auch die gerade erwähnten Systembenutzerkonten. Sie können über diese Datei weitere Benutzer vom FTP-Zugriff ausschließen. Sie können den Zugriff für einige Benutzer einschränken, ohne FTP komplett zu verbieten. Dazu passen Sie /etc/ftpchroot entsprechend an. Diese Datei enthält Benutzer und Gruppen sowie die für sie geltenden FTP-Einschränkungen und wird in &man.ftpchroot.5; ausführlich beschrieben. FTP anonymous Wenn Sie einen anonymen FTP-Zugriff auf Ihren Server ermöglichen wollen, müssen Sie den Benutzer ftp auf Ihrem &os;-System anlegen. Danach können sich Benutzer mit dem Benutzernamen ftp oder anonymous auf Ihrem FTP-Server anmelden. Das Passwort ist dabei beliebig (allerdings wird dazu in der Regel eine E-Mail-Adresse verwendet). Meldet sich ein anonymer Benutzer an, aktiviert der FTP-Server &man.chroot.2;, um den Zugriff auf das Heimatverzeichnis des Benutzers ftp zu beschränken. Es gibt zwei Textdateien, deren Inhalt Sie bei der Anmeldung an Ihrem FTP-Server anzeigen lassen können. Der Inhalt von /etc/ftpwelcome wird angezeigt, bevor der Login-Prompt erscheint. Nach einer erfolgreichen Anmeldung wird der Inhalt von /etc/ftpmotd angezeigt. Beachten Sie aber, dass es dabei um einen Pfad relativ zur Umgebung des anzumeldenden Benutzers handelt. Bei einer anonymen Anmeldung würde also die Datei ~ftp/etc/ftpmotd angezeigt. Nachdem Sie den FTP-Server konfiguriert haben, müssen Sie Ihn in /etc/inetd.conf aktivieren. Dazu müssen Sie lediglich das Kommentarsymbol # am Beginn der bereits vorhandenen ftpd-Zeile entfernen: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l Nachdem Sie diese Änderung durchgeführt haben, müssen Sie, wie in beschrieben, die inetd-Konfiguration neu einlesen. Danach können Sie sich auf Ihrem FTP-Server anmelden: &prompt.user; ftp localhost Wartung syslog Logdateien FTP Der ftpd-Daemon verwendet &man.syslog.3;, um Protokolldateien zu erstellen. In der Voreinstellung werden alle FTP betreffenden Nachrichten in die Datei /var/log/xferlog geschrieben. Dies lässt sich aber durch das Einfügen der folgenden Zeile in /etc/syslog.conf ändern: ftp.info /var/log/xferlog FTP anonymous Beachten Sie, dass mit dem Betrieb eines anonymen FTP-Servers verschiedene Sicherheitsrisiken verbunden sind. Problematisch ist hier vor allem die Erlaubnis zum anonymen Upload von Dateien. Dadurch könnte Ihr Server zur Verbreitung von illegaler oder nicht lizensierter Software oder noch Schlimmeren missbraucht werden. Wollen Sie anonyme Uploads dennoch erlauben, sollten Sie die Zugriffsrechte so setzen, dass solche Dateien erst nach Ihrer Zustimmung von anderen Benutzern heruntergeladen werden können. Murray Stokely Beigetragen von Mit Samba einen Datei- und Druckserver für µsoft.windows;-Clients einrichten Samba-Server Microsoft Windows Dateiserver Windows-Clients Druckserver Windows-Clients Überblick Samba ist ein beliebtes Open Source-Softwarepaket, das es Ihnen ermöglicht, einen Datei- und Druckserver für µsoft.windows;-Clients einzurichten. Clients können sich dadurch mit einem FreeBSD-System verbinden und dessen Speicherplatz oder dessen Drucker verwenden. Dies genauso, als wenn es sich um lokale Drucker oder Festplatten handeln würde. Samba sollte als Softwarepaket auf Ihren Installationsmedien vorhanden sein. Wenn Sie Samba noch nicht installiert haben, können Sie dies jederzeit über den Port oder das Paket net/samba3 nachholen. Konfiguration Die Standardkonfigurationsdatei von Samba heißt /usr/local/etc/smb.conf.default. Diese Datei muss nach /usr/local/etc/smb.conf kopiert und angepasst werden, bevor Samba verwendet werden kann. Die Datei smb.conf enthält Laufzeitinformationen für Samba, beispielsweise Druckerdefinitionen oder filesystem shares, also Bereiche des Dateisystems, die Sie mit &windows;-Clients teilen wollen. Die Konfiguration der Datei smb.conf erfolgt webbasiert über das im Samba-Paket enthaltene Programm swat. Das Samba Web Administration Tool (SWAT) verwenden Das Samba Web Administration Tool (SWAT) wird als Daemon von inetd aktiviert. Daher müssen Sie den Kommentar vor der folgenden Zeile in /etc/inetd.conf entfernen, bevor Sie swat zur Konfiguration von Samba verwenden können: swat stream tcp nowait/400 root /usr/local/sbin/swat Wie bereits in beschrieben, müssen Sie die inetd-Konfiguration neu einlesen, nachdem Sie diese Änderung durchgeführt haben. Nachdem swat in der Datei inetd.conf aktiviert wurde, rufen Sie in Ihrem Internetbrowser die Adresse auf und melden sich mit dem root-Benutzerkonto an. Nachdem Sie sich erfolgreich angemeldet haben, wird die Hauptkonfigurationseite von Samba geladen. Sie können nun die Dokumentation lesen, oder durch einen Klick auf die Globals-Karteikarte mit der Konfiguration beginnen. Die Einstellungen, die Sie hier vornehmen können, entsprechen denen des Abschnitts [global] von /usr/local/etc/smb.conf. Globale Einstellungen Unabhängig davon, ob Sie swat verwenden, oder /usr/local/etc/smb.conf direkt editieren, sollten Sie zuerst folgende Einstellungen anpassen: workgroup Der NT-Domänenname oder der Arbeitsgruppenname der Rechner, die auf den Server Zugriff haben sollen. netbios name NetBIOS Legt den NetBIOS-Namen fest, unter dem der Samba-Server bekannt ist. In der Regel handelt es sich dabei um den ersten Teil des DNS-Namens des Servers. server string Legt die Beschreibung fest, die angezeigt werden soll, wenn mit net view oder über andere Netzwerkprogramme Informationen über den Server angefordert werden. Samba absichern Zwei der wichtigsten Einstellungen in /usr/local/etc/smb.conf betreffen das zu verwendende Sicherheitsmodell sowie das Backend-Passwortformat für die Benutzer der Samba-Clients. Folgende Optionen sind dafür verantwortlich: security Die häufigsten Optionen sind security = share und security = user. Wenn Ihre Clients Benutzernamen verwenden, die den Benutzernamen auf Ihrem &os;-Rechner entsprechen, dann sollten Sie die Einstellung user level verwenden. Dies ist auch die Standardeinstellung. Allerdings ist es dazu erforderlich, dass sich die Clients auf Ihrem Rechner anmelden, bevor sie auf gemeinsame Ressourcen zugreifen können. In der Einstellung share level müssen sich Clients nicht unter Verwendung eines gültigen Logins auf Ihrem Rechner anmelden, bevor sie auf gemeinsame Ressourcen zugreifen können. In früheren Samba-Versionen war dies die Standardeinstellung. passdb backend NIS+ LDAP SQL database Samba erlaubt verschiedene Backend-Authentifizierungsmodelle. Sie können Clients durch LDAP, NIS+, eine SQL-Datenbank oder eine Passwortdatei authentifizieren. In der Voreinstellung wird smbpasswd verwendet. Diese Methode wird im folgenden Abschnitt näher beschrieben. Wenn Sie smbpasswd verwenden, müssen Sie die Datei /usr/local/private/smbpasswd erzeugen, damit Samba in der Lage ist, Clients zu authentifizieren. Wenn Sie auf Ihrem &unix;-Rechner vorhandenen Benutzern den Zugriff von einem &windows;-Client aus ermöglichen wollen, verwenden Sie den folgenden Befehl: &prompt.root; smbpasswd -a username - Für ausführliche Informationen zur Konfiguration - von Samba sollten Sie das - Official Samba HOWTO lesen. Sie sollten aber bereits + Ausführliche Informationen zur Konfiguration + von Samba finden Sie im + Official Samba HOWTO. Sie sollten aber bereits nach dem Lesen dieses Abschnitts in der Lage sein, Samba zu starten. <application>Samba</application> starten Der Port net/samba3 legt ein neues Startskript an, mit dem Samba gesteuert (also etwa gestartet oder beendet) werden kann. Um dieses Skript zu aktivieren, fügen Sie folgende Zeile in /etc/rc.conf ein: samba_enable="YES" Durch diesen Eintrag wird Samba beim Systemstart automatisch aktiviert. Danach können Sie Samba jederzeit durch folgenden Befehl starten: &prompt.root; /usr/local/etc/rc.d/samba start Starting SAMBA: removing stale tdbs : Starting nmbd. Starting smbd. Weitere Informationen zu den rc-Startskripten finden Sie im des Handbuchs. Samba verwendet drei Daemonen. Beachten Sie, dass sowohl nmbd als auch smbd durch das Skript samba.sh gestartet werden. Wenn Sie die winbind name resolution services in smb.conf aktiviert haben, wird zusätzlich der winbindd-Daemon gestartet. Sie können Samba jederzeit durch den folgenden Befehl beenden: &prompt.root; /usr/local/etc/rc.d/samba.sh stop Samba ist ein komplexes Softwarepaket mit umfassenden Funktionen, die eine weitreichende Integration von µsoft.windows;-Netzwerken ermöglichen. Für eine Beschreibung dieser Zusatzfunktionen sollten Sie sich auf umsehen. Tom Hukins Beigetragen von Die Uhrzeit mit NTP synchronisieren NTP Überblick Da die interne Uhrzeit eines Computers nie ganz exakt ist, wurde mit NTP (Network Time Protocol) eine Möglichkeit geschaffen, die exakte Uhrzeit zu ermitteln und festzulegen. Viele Internetdienste sind von einer exakten Uhrzeit abhängig. Ein Webserver könnte beispielsweise die Anforderung erhalten, eine Datei zu versenden, wenn sich diese in einer bestimmten Zeitspanne geändert hat. In einem lokalen Netzwerk ist es unbedingt notwendig, dass Rechner, die Dateien von einem gemeinsamen Dateiserver beziehen, ihre Uhrzeit synchronisieren, damit die Zeitstempel der Dateien konstistent bleiben. Dienste wie &man.cron.8; führen Befehle zu einem bestimmten Zeitpunkt aus. Ist die Uhrzeit nicht korrekt, kann dies zu Problemen führen. NTP ntpd &os; verwendet den &man.ntpd.8;- NTP-Server, um die genaue Uhrzeit von anderen NTP-Servern abzufragen, die eigene Systemzeit zu setzen, oder um diese anderen Rechnern anzubieten. Einen passenden NTP-Server auswählen NTP Serverwahl Um die Uhrzeit zu synchronisieren, müssen Sie sich mit einem NTP-Server verbinden. Ihr Netzwerkadministrator oder Ihr Internetprovider haben vielleicht schon einen NTP-Server eingerichtet. Lesen Sie deren Dokumentation, um dies zu überprüfen. Es gibt im Internet eine Liste mit frei zugänglichen NTP-Servern, aus der Sie sich einen in Ihrer Nähe gelegenen Server auswählen können. Beachten Sie aber auf jeden Fall die Nutzungsbedingungen des entsprechenden Servers, und fragen Sie um Erlaubnis, wenn dies nötig ist. Die Auswahl von mehreren NTP-Servern kann sinnvoll sein, wenn ein Server ausfällt oder falsche Zeiten liefert. &man.ntpd.8; verwendet die Antworten anderer Server, um zuverlässige Server zu bestimmen, die dann bevorzugt abgefragt werden. NTP unter &os; einrichten NTP Konfiguration NTP aktivieren ntpdate Wenn Sie Ihre Uhrzeit nur beim Systemstart synchronisieren wollen, können Sie &man.ntpdate.8; verwenden. Für Desktoprechner, die regelmäßig neu gestartet werden und keine ständige Synchronisation benötigen, ist dies akzeptabel. In allen anderen Fällen sollten Sie jedoch &man.ntpd.8; verwenden. Die Ausführung von &man.ntpdate.8; während des Systemstarts ist aber auch für Rechner, die &man.ntpd.8; verwenden, sinnvoll. &man.ntpd.8; passt die Systemzeit nur bei größeren Abweichungen an, während &man.ntpdate.8; die Zeit immer synchronisiert, egal wie groß die Differenz zwischen Systemzeit und korrekter Zeit ist. Um &man.ntpdate.8; beim Systemstart zu aktivieren, fügen Sie den Eintrag ntpdate_enable="YES" in /etc/rc.conf ein. Außerdem müssen Sie alle Server, mit denen Sie sich synchronisieren wollen, sowie alle an &man.ntpdate.8; zu übergebenden Optionen in den ntpdate_flags angeben. NTP ntp.conf NTP einrichten Die Konfiguration von NTP erfolgt über die Datei /etc/ntp.conf, und wird in der Hilfeseite &man.ntp.conf.5; beschrieben. Dazu ein einfaches Beispiel: server ntplocal.example.com prefer server timeserver.example.org server ntp2a.example.net driftfile /var/db/ntp.drift Die Option server legt die zu verwendenden Server fest, wobei jeder Server in einer eigenen Zeile steht. Wenn ein Server mit der Option prefer versehen ist, wie dies hier bei ntplocal.example.com der Fall ist, wird dieser Server bevorzugt verwendet. Eine Antwort von einem bevorzugten Server wird nur dann verworfen, wenn sie signifikant von denen anderer Server abweicht, ansonsten wird sie ohne Abfrage weiterer Server verwendet. Die Option prefer wird gewöhnlich nur für sehr zuverlässige und genaue Server verwendet, die über spezielle Hardware zur Zeitüberwachung verfügen. Die Option driftfile legt fest, in welcher Datei die Abweichungen der Systemuhr protokolliert werden. &man.ntpd.8; verwendet diese Datei, um die Systemzeit automatisch anzupassen, selbst wenn kurzzeitig kein NTP-Server zur Synchronisation verfügbar ist. Weiterhin legt die Option driftfile fest, wo Informationen über frühere Antworten des von Ihnen verwendeten NTP-Servers gespeichert werden sollen. Diese Datei enthält NTP-interne Informationen, sie sollte daher von anderen Prozessen nicht verändert werden. Den Zugang zu Ihrem NTP-Server beschränken In der Voreinstellung ist Ihr NTP-Server für alle Rechner im Internet erreichbar. Über die Option restrict in der Datei /etc/ntp.conf können Sie den Zugang zu Ihrem Server beschränken. Wenn Sie alle Rechner vom Zugriff auf Ihren NTP-Server ausschließen wollen, fügen Sie folgende Zeile in /etc/ntp.conf ein: restrict default ignore Wenn Sie nur Rechnern Ihres eigenen Netzwerks die Synchronisation mit Ihrem NTP-Server erlauben, gleichzeitig aber verhindern wollen, dass diese den NTP-Server konfigurieren oder als Server für andere Rechner dienen können, fügen Sie folgende Zeile ein: restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap Bei 192.168.1.0 handelt es sich um einen Rechner Ihres Netzwerks. 255.255.255.0 ist die Netzmaske Ihres Netzwerks. /etc/ntp.conf kann verschiedene restrict-Optionen enthalten. Weiteres erfahren Sie im Abschnitt Access Control Support der Hilfeseite &man.ntp.conf.5;. Den NTP-Server starten Damit der NTP-Server beim Systemstart automatisch gestartet wird, fügen Sie den Eintrag ntpd_enable="YES" in /etc/rc.conf ein. Wenn Sie weitere Argumente an &man.ntpd.8; übergeben wollen, passen Sie die Option ntpd_flags in der Datei /etc/rc.conf entsprechend an. Um den NTP-Server ohne einen Systemneustart zu starten, rufen Sie ntpd mit den unter ntpd_flags in /etc/rc.conf festgelegten Parametern auf. Hierzu ein Beispiel: &prompt.root; ntpd -p /var/run/ntpd.pid ntpd mit einer Einwahlverbindung verwenden &man.ntpd.8; benötigt keine ständige Internetverbindung. Wenn Sie sich ins Internet einwählen, ist es sinnvoll, zu verhindern, dass NTP-Verkehr eine Verbindung aufbauen oder aufrechterhalten kann. Wenn Sie user-PPP verwenden, können Sie dies in den filter-Direktiven von /etc/ppp/ppp.conf festlegen. Sehen Sie sich dazu das folgende Beispiel ein: set filter dial 0 deny udp src eq 123 # Prevent NTP traffic from initiating dial out set filter dial 1 permit 0 0 set filter alive 0 deny udp src eq 123 # Prevent incoming NTP traffic from keeping the connection open set filter alive 1 deny udp dst eq 123 # Prevent outgoing NTP traffic from keeping the connection open set filter alive 2 permit 0/0 0/0 Weitere Informationen finden Sie im Abschnitt PACKET FILTERING von &man.ppp.8; sowie in den Beispielen unter /usr/share/examples/ppp/. Einige Internetprovider blockieren Ports mit niedrigen Nummern. In solchen Fällen funktioniert NTP leider nicht, da Antworten eines NTP-Servers Ihren Rechner nicht erreichen werden. Weitere Informationen Weiterführende Dokumentation (im HTML-Format) zum NTP-Server finden Sie unter /usr/share/doc/ntp/. diff --git a/de_DE.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml b/de_DE.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml index bc97e8d6fd..a80486a7bc 100644 --- a/de_DE.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml +++ b/de_DE.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml @@ -1,1999 +1,1999 @@ &os; Glossar Dieser Abschnitt enthält Begriffe und Abkürzungen, die innerhalb des &os;-Projekts sowie der zugehörigen Dokumentation verwendet werden. A ACL ACPI AMD AML API APIC APM APOP ASL ATA ATM ACPI Machine Language AML Pseudocode, der von einer virtuellen Maschine innerhalb eines ACPI-konformen Betriebssystems ausgeführt wird. Bietet eine Verbindungsschicht (Layer) zwischen der verwendeten Hardware und der dokumentierten Schnittstelle, auf die das Betriebssystem zugreift. ACPI Source Language ASL Die Programmiersprache, in der die AML geschrieben ist. Access Control List ACL Advanced Configuration and Power Interface ACPI Eine Spezifikation, die eine Abstrahierung der Schnittstelle darstellt, die Hardware und Betriebssystem verbindet. Dadurch benötigt das Betriebssystem keine Informationen über die vorhandene Hardware, um diese einsetzen zu können. ACPI ist eine Weiterentwicklung von APM, PNPBIOS und anderen Technologien und bietet Funktionen zur Kontrolle des Energieverbrauchs, zur Versetzung von Rechnern in den Ruhezustand, zur Aktivierung und Deaktivierung von Geräten und andere mehr. Application Programming Interface API Eine Sammlung von Prozeduren, Protokollen und Werkzeugen, die das Zusammenspiel von verschiedenen Programmteilen festlegt. Wie, wann und warum arbeiten sie zusammen, welche Daten werden zwischen ihnen ausgetauscht und anderes mehr. Advanced Power Management APM Advanced Programmable Interrupt Controller APIC Advanced Technology Attachment ATA Asynchronous Transfer Mode ATM Authenticated Post Office Protocol APOP Automatic Mount Daemon AMD Ein Daemon, der ein Dateisystem automatisch einhängt, wenn auf eine Datei oder ein Verzeichnis dieses Dateisystems zugegriffen wird. B BAR BIND BIOS BSD Base Address Register BAR Register, die den zu einem PCI-Gerät gehörenden Adressbereich festlegen. Basic Input/Output System BIOS Die Bedeutung des Begriffs BIOS hängt vom Kontext ab, in dem es verwendet wird. Einmal wird damit der ROM-Chip bezeichnet, der über einen Basisbefehlssatz eine Schnittstelle zwischen Hard- und Software schafft. Aber auch die Routinen, die in diesen Chip implementiert wurden, und die dabei helfen, Ihr System zu starten, werden als BIOS bezeichnet. Und nicht zuletzt wird manchmal die Bildschirmmaske, über die der Bootprozess konfiguriert werden kann, ebenfalls als BIOS bezeichnet. Der Begriff BIOS ist zwar PC-spezifisch, andere Systeme verfügen aber über ähnliche Systeme. Berkeley Internet Name Domain BIND Eine Implementierung des DNS-Protokolls. Berkeley Software Distribution BSD Diesen Namen gab die Computer Systems Research Group (CSRG) der The University of California at Berkeley den Verbesserungen und Änderungen an AT&Ts 32V &unix;. &os; beruht auf der Arbeit der CSRG. Bikeshed Building Die Beobachtung, dass viele Leute Meinungen zu unkomplizierten Themen äußern, während gleichzeitig über ein kompliziertes Thema gar nicht oder nur wenig diskutiert wird. Die Herkunft des Ausdrucks wird in den FAQ erläutert. C CD CHAP CLIP COFF CPU CTS CVS Carrier Detect CD Ein RS232C-Signal. Notwendig, um eine serielle Verbindung aufbauen zu können. Central Processing Unit CPU Auch als Prozessor bekannt. Dieser stellt das Gehirn eines Computers dar, in dem alle Berechnungen erfolgen. Es gibt verschiedene Prozessor-Architekturen, die über verschiedene Befehlssätze verfügen, beispielsweise Intel-x86-, Sun SPARC-, PowerPC- und Alpha-Systeme. Challenge Handshake Authentication Protocol CHAP Classical IP over ATM CLIP Clear To Send CTS Ein RS232C-Signal. Das entfernte System erhält durch dieses Signal die Erlaubnis, Daten zu senden. Common Object File Format COFF Concurrent Versions System CVS D DAC DDB DES DHCP DNS DSDT DSR DTR DVMRP Discretionary Access Control DAC Data Encryption Standard DES Data Set Ready DSR Data Terminal Ready DTR Debugger DDB Differentiated System Description Table DSDT Distance-Vector Multicast Routing Protocol DVMRP Domain Name System DNS Das System, dass Klartext-Rechnernamen (wie mail.example.net) in Internet-IP-Adressen (oder umgekehrt) konvertiert. Dynamic Host Configuration Protocol DHCP Ein Protokoll, das auf Anforderung dynamisch eine IP-Adresse an einen Rechner vergibt. Diese Adresszuweisung wird als Lease bezeichnet. E ECOFF ELF ESP Encapsulated Security Payload ESP Executable and Linking Format ELF Extended COFF ECOFF F FADT FAT FAT16 FTP File Allocation Table FAT File Allocation Table (16-bit) FAT16 File Transfer Protocol FTP Ein auf TCP aufsetzendes Protokoll, das zum Transfer von Daten über ein TCP/IP-Netzwerk verwendet wird. Fixed ACPI Description Table FADT G GUI Giant Der Name für einen wechselseitigen Ausschluss (mutual exclusion), der einen großen Teil der Kernel-Ressourcen schützt. Zu Zeiten, als auf einer Maschine nur ein paar Prozesse liefen und die Maschine nur eine Netzwerkkarte und insbesondere nur einen Prozessor besaß, war dieser einfache Mechanismus zum Verriegeln (lock) einer Ressource völlig ausreichend. Heutzutage entstehen durch den wechselseitigen Ausschluss Geschwindigkeitsengpässe. Die &os;-Entwickler arbeiten daran, Giant durch Locks zu ersetzten, die einzelne Ressourcen schützen. Auf Einprozessor- und Mehrprozessor-Maschinen können dadurch mehr Prozesse parallel ausgeführt werden. Graphical User Interface GUI Eine grafische Oberfläche, über die der Anwender mit dem System interagiert. H HTML HUP HangUp HUP HyperText Markup Language HTML Die Auszeichnungssprache, mit der Internetseite erstellt werden können. I I/O IASL IMAP IP IPFW IPP IPv4 IPv6 ISP IP Firewall IPFW IP Version 4 IPv4 Die IP-Protokollversion 4, die 32-Bit-Adressen einsetzt. Diese Version stellt derzeit noch den in der Praxis am meisten verwendeten Standard dar, sollt aber sukzessive durch IPv6 ersetzt werden. IP Version 6 IPv6 Das neue IP-Protokoll. Es wurde entwickelt, weil der Adressraum von IPv4 nicht mehr ausreichend ist. IPv6 verwendet 128-Bit-Adressen. Input/Output I/O Intel’s ASL-Compiler IASL Intel’s Compiler zur Konvertierung von ASL nach AML. Internet Message Access Protocol IMAP Internet Printing Protocol IPP Internet Protocol IP Das Standardprotokoll zur Paketübertragung im Internet. Wurde ursprünglich vom U.S. Department of Defense entwickelt, und ist ein zentraler Bestandteile des TCP/IP-Stacks. Ohne das Internet Protocol wäre das Internet in der heutigen Form nicht möglich. Das Internet Protocol ist im RFC 791 definiert. Internet Service Provider ISP Ein Unternehmen, das anderen den Zugang zum Internet ermöglicht. K KAME Japanisch für Schildkröte. Der Begriff KAME wird in Computerkreisen für das KAME Project verwendet, das an einer IPv6-Implementierung arbeitet. KDC KLD KSE KVA Kbps Kernel &man.ld.1; KLD Kernel Scheduler Entities KSE Threads, die im Kernel laufen. Näheres entnehmen Sie der Home-Page des Projekts. Kernel Virtual Address KVA Key Distribution Center KDC Kilo Bits Per Second Kbps Maßeinheit, in der die Bandbreite (also die Menge der Daten, die in einer bestimmten Zeit übertragen werden kann) angegeben wird. Statt Kilo können auch Mega, Giga, Tera und weitere Präfixe verwendet werden. L LAN LOR LPD Line Printer Daemon LPD Local Area Network LAN Ein Netzwerk, das nur in einem lokalen Bereich, wie einem Büro, einen Unternehmen oder einem Haus, eingesetzt wird. Lock Order Reversal LOR Der &os;-Kernel benutzt eine Reihe von Ressource-Locks, um den Zugriff auf Ressourcen zu regeln. In &os.current;-Kerneln (nicht in Release-Kerneln) befindet sich das Diagnose-System &man.witness.4;, das Verklemmungen (deadlock) zur Laufzeit erkennt. &man.witness.4; ist vorsichtig: daher gibt es schon mal Falschmeldungen aus. Eine richtig erkannte Verklemmung bedeutet soviel wie Wenn Sie Pech gehabt hätten, wäre es jetzt zu einer Verklemmung gekommen. Richtig erkannte Verklemmungen (LOR) werden schnell behoben. Prüfen Sie daher &a.current.url; und die Seite LORs Seen bevor Sie die Mailinglisten kontaktieren. M MAC MADT MFC MFP4 MFS MIT MLS MOTD MTA MUA Mail Transfer Agent MTA Eine Anwendung zum Transfer von E-Mails. Ein MTA war von jeher im BSD-Basissystem enthalten. Aktuell handelt es sich dabei um Sendmail. Es exisitieren aber auch zahlreiche andere MTAs, darunter postfix, qmail und Exim. Mail User Agent MUA Ein Programm zur Anzeige und zum Verfassen von E-Mails. Mandatory Access Control MAC Massachusetts Institute of Technology MIT Merge From Current MFC Das Einbringen von Funktionen oder Fehlerbehebungen aus dem -CURRENT-Zweig in einen anderen Zweig, meist -STABLE. Merge From Perforce MFP4 Das Einbringen von Funktionen oder Fehlerbehebungen aus dem Perforce-Repository des -CURRENT-Zweigs. Merge From Stable MFS Normalerweise werden Änderungen an &os; zuerst im -CURRENT-Zweig getestet und dann in den -STABLE-Zweig übernommen. Selten kommt es vor, dass eine Änderung zuerst im -STABLE-Zweig vorgenommen wird und anschließend im -CURRENT-Zweig übernommen wird. Dieser Ausdruck wird auch benutzt, wenn eine Fehlerbehebung von -STABLE in einem der Sicherheitszweige übernommen wird. Message Of The Day MOTD Eine Nachricht, die in der Regel beim Anmelden an einem System angezeigt wird. Enthält häufig Informationen für die Benutzer des Systems. Multi-Level Security MLS Multiple APIC Description Table MADT N NAT NDISulator NFS NTFS NTP Network Address Translation NAT Network File System NFS New Technology File System NTFS Ein von Microsoft entwickeltes Dateisystem, das in dessen New Technology-Betriebssystemen, wie &windows2k;, &windowsnt; und &windowsxp;, eingesetzt wird. Network Time Protocol NTP O OBE ODMR OS On-Demand Mail Relay ODMR Operating System OS Eine Sammlung von Programmen, Bibliotheken und Werkzeugen, die den Zugriff auf die Hardware eines Computers erlauben. Die Bandbreite aktueller Betriebssysteme reicht von einfachen Designs, die lediglich die Ausführung eines einzigen Programms und die Nutzung eines einzigen Geräts zur gleichen Zeit erlauben bis hin zu Multitasking- und Multiprozess-Systemen, die gleichzeitig Tausende Benutzer bedienen können, von denen jeder wiederum Dutzende Programme laufen lassen kann. Overtaken By Events OBE Zeigt an, dass eine gewünschte Änderung (aus einem Fehlerbericht oder einer Anforderung) überholt ist. Die Ursache können beispielsweise spätere Änderungen in &os;, geänderte Netzwerk-Standards oder jetzt veraltete Hardware sein. P p4 PAE PAM PAP PC PCNSFD PDF PID POLA POP POP3 PPD PPP PPPoA PPPoE PPP over ATM PPPoA PPP over Ethernet PPPoE PR PXE Password Authentication Protocol PAP Perforce Ein von Perforce Software entwickeltes Versionskontrollsystem, das mehr Funktionen als CVS aufweist. Obwohl es sich dabei nicht um Open-Source handelt, dürfen Open-Source-Projekte wie &os; die Software kostenlos einsetzen. Einige &os;-Entwickler verwenden ein Perforce-Repository, um Quellcode zu verwalten, der selbst für den -CURRENT-Zweig zu experimentell ist. Personal Computer PC Personal Computer Network File System Daemon PCNFSD Physical Address Extensions PAE Eine Möglichkeit, um auf Systemen, die physikalisch nur über einen 32-Bit-Adressraum verfügen, bis zu 64 GB RAM ansprechen zu können. Ohne PAE wären diese Systeme auf maximal 4 GB Hauptspeicher beschränkt. Pluggable Authentication Modules PAM Point-to-Point Protocol PPP Pointy Hat Ein Kopfschmuck, ähnlich den Eselsohren, der &os;-Committern gereicht wird, wenn sie den Bau kaputtmachen, Revisionsnummern verkleinern oder sonstigen Schaden im Quellbaum anrichten. Jeder Committer, der etwas taugt, besitzt schnell eine stattliche Sammlung. Der Begriff wird (meist?) scherzhaft verwendet. Portable Document Format PDF Post Office Protocol POP Post Office Protocol Version 3 POP3 PostScript Printer Description PPD Preboot eXecution Environment PXE Principle Of Least Astonishment POLA Prinzip der kleinsten Überraschung Änderungen an &os; sollten nach Möglichkeit für den Benutzer nachvollziehbar sein. Das willkürliche Umordnen der Variablen in /etc/defaults/rc.conf verletzt zum Beispiel dieses Prinzip. Entwickler beachten das Prinzip, wenn Sie über für Benutzer sichtbare Änderungen nachdenken. Problem Report PR Die Beschreibung eines Problems, das im &os;-Quellcode oder in der Dokumentation gefunden wurde. Lesen Sie dazu auch den Artikel Writing &os; Problem Reports. Process ID PID Eine eindeutige Zahl, die einem Prozess zugewiesen ist. Identifiziert den Prozess und erlaubt es, diesen Prozess zu bearbeiten. Project Evil Der Arbeitstitel des von Bill Paul geschriebenen NDISulator. Der Name bezieht sich darauf, dass es (philosophisch gesehen) schlimm ist, einen solchen Treiber überhaupt schreiben zu müssen. Der NDISulator ist ein Kompatibilitätsmodul, das es erlaubt, Microsoft Windows™ NDIS-Miniport-Netzwerktreiber mit &os;/i386 zu benutzen. Für gewöhnlich ist dies die einzige Möglichkeit, Karten mit einem Treiber, dessen Quellen verschlossen sind, zu benutzen. Siehe src/sys/compat/ndis/subr_ndis.c. R RA RAID RAM RD RFC RISC RPC RS232C RTS Random Access Memory RAM Received Data RD Recommended Standard 232C RS232C Ein Standard für die Kommunikation zwischen seriellen Geräten. Reduced Instruction Set Computer RISC Redundant Array of Inexpensive Disks RAID Remote Procedure Call RPC repocopy Repository Copy Eine direkte Kopie von Dateien innerhalb eines Repositories. Ohne eine Repocopy müsste ein Committer eine Datei mit cvs add an der neuen Position einfügen und mit cvs rm an der alten Position löschen. Der Nachteil dieser Methode wäre allerdings, dass dabei die Datei-Historie (also die CVS-Logs) nicht an die neue Position kopiert werden würde. Da das &os;-Project diese Informationen als äßerst nützlich ansieht, wird stattdessen häfig eine Repocopy durchgeführt. Bei diesem Prozess kopiert ein Repositoy Meister die Datei direkt innerhalb des Repository an die neue Position, statt &man.cvs.1; einzusetzen. Request For Comments RFC Eine Sammlung von Dokumenten, die wichtige Internetstandards, Protokolle und so weiter definieren und die unter www.rfc-editor.org zu finden sind. Kann aber auch allgemein verwendet werden, wenn jemand eine Änderung vorschlägt und dazu Feedback möchte. Request To Send RTS Router Advertisement RA S SCI SCSI SG SMB SMP SMTP SMTP AUTH SSH STR SMTP Authentication SMTP AUTH Server Message Block SMB Signal Ground SG Ein RS232-Pin oder -Draht, der als Untergrundreferenz für das Signal verwendet wird. Simple Mail Transfer Protocol SMTP Secure Shell SSH Small Computer System Interface SCSI Suspend To RAM STR Symmetric MultiProcessor SMP System Control Interrupt SCI T TCP TCP/IP TD TFTP TGT TSC Ticket-Granting Ticket TGT Time Stamp Counter TSC Ein interner Zähler bei modernen &pentium;-Prozessoren, der die Ticks der core frequency clock bestimmt. Transmission Control Protocol TCP Ein Protokoll, das auf dem IP-Protokoll aufsetzt. Es garantiert, dass Datenpakete zuverlässig und geordnet transportiert werden. Transmission Control Protocol/Internet Protocol TCP/IP Die Kombination aus TCP- und IP-Protokoll. Ein Großteil des Internets basiert auf TCP/IP. Transmitted Data TD Trivial FTP TFTP U UDP UFS1 UFS2 UID URL USB Uniform Resource Locator URL Unix File System Version 1 UFS1 Unix File System Version 2 UFS2 Universal Serial Bus USB User ID UID Eine eindeutige Nummer, die einem Benutzer eines Computers zugewiesen wird. Kann zur Identifizierung von zugewiesenen Ressourcen und Berechtigungen verwendet werden. User Datagram Protocol UDP V VPN Virtual Private Network VPN