rampke.de Archive

Ungeordnetes zu FreeBSD

07 March 2008

Ich habe ein bisschen mit FreeBSD herumgespielt. Weil sich die Installation und was danach kommt ein bisschen anfühlt wie Linux Ende der 90-er hier eine (nicht ganz so) kurze Zusammenfassung meiner Erfahrungen und was man dabei so beachten sollte. Ich habe ein bisschen mit FreeBSD herumgespielt. Weil sich die Installation und was danach kommt ein bisschen anfühlt wie Linux Ende der 90-er hier eine (nicht ganz so) kurze Zusammenfassung meiner Erfahrungen und was man dabei so beachten sollte.

Für die Semesterferien vorlesungsfreie Zeit habe ich mir mal wieder meinen alten PC vom Dachboden geholt, um ein paar Betriebssysteme auszuprobieren. Der erste Schritt hat gleich viel Spaß gemacht: Windows XP plattmachen. Auf einer Zweitfestplatte lungerte dann sogar noch ein inaktives (d.h. nicht im Bootloader vermerktes), veraltetes, aber funktionsfähiges Ubuntu rum, was für solche Experimente gar nicht verkehrt ist.

Auf die erste Festplatte kam dann auch gleich mal das aktuelle Kubuntu, erwartungsgemäß ziemlich schmerzfrei.

Zweites Probiersystem wurde (hauptsächlich wegen ZFS Solaris, das erstmal mit exorbitanten Speicherforderungen für den grafischen Installer schockte. Nach ein bisschen Probieren war aber dann die Kombination von Menüpunkten gefunden, die den textbasierten Installer loslegen ließ. Damit war die Installation dann nicht weiter problematisch, wenn man Linux schon vor Ubuntu kannte.

Zuletzt kam FreeBSD an die Reihe. Nachdem ich ein wenig mit Solaris hantiert hatte kam die Meldung von FreeBSD 7.0-RELEASE, das ich mir natürlich sofort besorgt habe. Die Installation ging dann auch relativ reibungs-, aber auch glanzlos vonstatten. Einen grafischen Installer gibt es nach wie vor nicht.

Die auswählbaren Software-“Distributionen” sind auch nicht ganz durchsichtig. Da es an Platz nicht mangelt habe ich sie einfach im Zweifel angewählt; trotzdem ist die Auswahl nach der Installation nicht berauschend.

Partitionen und Ähnliches

Zuvor ging es aber ans Partitionieren bzw. einweisen in die vorhandenen Partitionen. Genau wie Solaris verwendet FreeBSD UFS. Beide teilen die ihnen zugewiesene Partition auch noch zusätzlich auf. Hier ist Vorsicht angebracht: Was in der Linux- und Windows-Welt Partitionen sind, sind bei FreeBSD Slices, die weitere Unterteilung dann sind Partitionen. Bei Solaris ist es genau umgekehrt: Partitionen sind das, was der normale Linuxer als solche kennt, die weitere Unterteilung sind Slices. Verwirrend, aber zumindest im FreeBSD-Installer deutlich erklärt.

Festplatten-, Slice- und Partitionsdevices liegen unter /dev und haben das Muster (bei Standard-IDE-Festplatten) a{disknr}s{Slicenr.}{Partitionsbuchst.}. Dabei sind also die BSD-“Partitionen” durch Buchstaben gekennzeichnet, die Festplatten und Slices (aka. Partitionen im Linux-Sinne) nummeriert. Es erscheinen nur die tatsächlich vorhandenen Devicedateien, d.h. mit ls /dev/ad* kann man sich schnell einen Überblick verschaffen, was überhaupt da ist. Etwas detaillierter geht das mit fdisk (ohne Parameter listet es den Inhalt der ersten Festplatte auf, ansonsten wie immer den Devicenamen anhängen), das aber root-Rechte verlangt. Der Inhalt von Extended-Partitionen wird nicht automatisch angezeigt, hier ist eine Extra-Abfrage mit fdisk /dev/ad0s4 (Dateiname nach Bedarf ersetzen) nötig.

Der Installer kann die Partitionsaufteilung automatisch übernehmen, es empfiehlt sich ihn genau das tun zu lassen und dann nicht mehr daran rumzufummeln. Es werden weite Teile des Systems in eine große Partition gelegt, die in /usr eingehängt wird; in der “Haupt”-Partition verbleibt nur ein Rumpfsystem.

Nach der Installation waren die Bootloader von Linux (GRUB) und Solaris (GRUB, modifiziert) erst einmal ausgeknockt. Vorsichtshalber hatte ich aber den Linux-GRUB (der als zentraler Startpunkt dienen soll) nicht nur in den MBR, sondern auch in den Bootsektor der Linux-Partition geschrieben, so dass ich diese nur wieder als aktiv markieren musste. Um den FreeBSD-Bootloader nachzuladen steht in der Konfigurationsdatei /boot/grub/menu.lst des Linux-GRUB so etwas wie

title FreeBSD rootnoverify (hd0,1) chainloader +1 boot

Achtung: GRUB beginnt die Festplatten- und Partitionszählung bei 0, d.h. obiges Beispiel lädt den Bootloader von der zweiten Partition auf der ersten Festplatte im System. In vielen Beispielen steht auch noch die Zeile makeactive. Das ist nicht zu empfehlen, da dadurch das Bootflag in der Partitionstabelle gesetzt und beim nächsten Mal gleich FreeBSD gestartet wird. Windows scheint das zu benötigen, BSD ist da wie auch Linux nicht wählerisch.

Konfiguration

Einige rudimentäre Konfigurationsoptionen bietet der FreeBSD-Installer während und nach der Installation. Er kann auch als sysinstall nachträglich aufgerufen werden. Die wichtigste Kofigurationsdatei ist /etc/rc.config, in der Parameter für die Daemons festgelegt werden, die beim Start anlaufen. Ein deutsches Tastaturlayout wird durch den Eintrag keymap="german.iso" eingestellt. Achtung: sysinstall hängt neue und modifizierte Einträge einfach an das Ende der Datei an, wo sie die Wirkung davorstehender überschreiben. Also nach unten schauen und ggf. nicht nur den ersten Eintrag bearbeiten!

Die sonstigen Konfigurationsdateien sind verteilt zwischen /etc und /usr/local/etc.

Wichtig für Linux-UmsteigerInnen ist dabei, dass normale Benutzer von Haus aus nicht einmal su benutzen dürfen; dafür müssen sie Mitglied der Gruppe wheel sein. Das lässt sich mit pw mod group wheel -m {user} erreichen. sudo ist von Haus aus nicht installiert, lässt sich aber mit pkg_add -r sudo nachholen (Näheres zum Packagesystem s.u.).

Grafik

Zur Konfiguration des Grafiksystems gibt es einiges zu sagen. Zuallererst bietet es sich an, die Maus für die Konsole zu aktivieren. Für eine USB-Maus muss in /etc/rc.conf:

moused_enable="YES" moused_flags=" " moused_port="/dev/ums0" moused_type="auto"

Das Gerät kann evtl. abweichen, lässt sich aber durch Überfliegen von dmesg | less in der Regel finden. Wichtig: Für USB-Mäuse ist der Typ immer auto.

Jetzt aber wirklich zur Grafik: Zuallererst sollte mit Xorg -configure (als root) eine Ausgangskonfiguration xorg.conf.new erzeugt werden. Diese kann nun nach /etc/X11/xorg.conf verschoben und angepasst werden. Da die Maus nun schon vom Systemservice betrieben wird, genügen nun die Zeilen

Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" EndSection

Kein ZAxisMapping, kein Protokollgefummel - alles schon erledigt, auch das Mausrad funktioniert. (um das rauszufinden, habe ich lange gebraucht!)

Die Tastatur muss aufs neue eingedeutscht werden; hier habe ich schamlos bei Ubuntu geklaut:

Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "de" EndSection

Ich habe mich (vorerst) für Gnome als grafische Oberfläche entschieden; das wird (vorausgesetzt es wurde bei der Installation schon gewählt) durch die Zeile gnome_enable="yes" in rc.conf umgesetzt. Sie führt auch dazu, dass der grafische Login-Manager gdm und damit das ganze Grafiksystem beim Start geladen wird.

Das Grafiksystem sollte jetzt im Grunde funktionieren (ggf. noch /usr/local/etc/rc.d/gdm restart).

Paketverwaltung

Heutzutage bringt jedes anständige freie Betriebssystem von Haus aus eine Paketverwaltung mit. FreeBSD geht sogar noch weiter und besitzt gewissermaßen eineinhalb Paketverwaltungen: Neben pkgsrc für Binärpakete lässt sich bei der Installation auswählen, ob ports installiert werden soll. ports ist eine große Sammlung von Scripts und Makefiles, mit der sich Programme aus den Quellcodes übersetzen und installieren lassen. Das Herunterladen erfolgt dabei automatisch! Die ganze Sammlung liegt unter /usr/ports. Im Ordner des jeweiligen Programmes kann dieses mit make install clean (u.U. mit root-Rechten) heruntergeladen, übersetzt und installiert werden. Danach ist es im Paketsystem von pkgsrc integriert, die Deinstallation erfolgt dann über dieses.

Mit pkgsrc lassen sich viele Programme aber auch direkt aus bereits übersetzten Paketen installieren. Falls das Programmpaket lokal vorliegt kann es mit pkg_add {Datei} installiert werden. mit pkg_add -r {Programmname} versucht pkgsrc es vom FreeBSD-Server zu ziehen und zu installieren.

Nähere Informationen zu beiden gibt es im FreeBSD-Handbuch, Kapitel 4.

Zu pkgsrc scheint es kein grafisches Interface zu geben, aber zumindest können die Pakete unter pkgsrc.se durchsucht werden.

Treiber

Zu Treibern gibt es wenig allgemeines zu sagen. Was nicht auf Anhieb funktioniert (bei mir war das nur der Sound) kann in den Hardware Notes gesucht werden. Dort steht es dann unter dem jeweiligen Treiber, der dazu installiert werden muss; hier helfen wieder pkgsrc und ports.

Was fehlt

Flash! Es gibt keinen Flash-Player für FreeBSD. Da FreeBSD 7 binärkompatibel zu Linux ist, kann der Linux-Treiber theoretisch installiert werden, funktioniert aber auch nur in für Linux übersetzten Browsern. Möglicherweise soll es dabei auch noch Stabilitätsprobleme geben. Ich werde das in den nächsten Tagen mal ausprobieren.

Fazit

FreeBSD hängt den modernen Linux-Distributionen in Sachen Benutzerfreundlichkeit noch um einige Jahre hinterher. Wer aber Spaß an ein bisschen Bastelei hat bekommt ein rasend schnelles System, das nicht einmal der Durchschnittsgeek hat. ZFS (das ich aber erst unter Solaris ausprobiert habe, ds aber von FreeBSD unterstützt wird) ist ein Quantensprung in der Datei(system)verwaltung und ist hoffentlich auch bald unter Linux und (brauchbar) auf Mac OS X zu haben. Windowser werden wohl wie immer in die Röhre gucken…