Kapitel 9. Platten, Dateisysteme und Boot Loader

9.1. Wie kann ich meine neue Festplatte in mein FreeBSD-System einbinden?
9.2. Wie verschiebe ich mein System auf meine neue, große Platte?
9.3. Gefährdet eine “dangerously dedicated” Festplatte meine Gesundheit?
9.4. Auf welchen Partitionen kann ich problemlos Soft Updates einsetzen? Ich habe gehört, das der Einsatz von Soft Updates auf / Probleme verursachen kann.
9.5. Was stimmt mit meinem ccd(4) nicht?
9.6. Warum kann ich den Plattenlabel meines ccd(4) nicht editieren?
9.7. Kann ich andere fremde Dateisysteme unter FreeBSD mounten?
9.8. Wie mounte ich eine erweiterte DOS-Partition?
9.9. Gibt es ein verschlüsselndes Dateisystem für FreeBSD?
9.10. Wie kann ich den Windows NT®-Loader zum Booten von FreeBSD verwenden?
9.11. Wie boote ich FreeBSD und Linux® mit LILO?
9.12. Wie boote ich FreeBSD und Linux mit GRUB?
9.13. Wie boote ich FreeBSD und Linux mit BootEasy?
9.14. Wie kann ich das ??? des Boot-Managers durch etwas Sinnvolles ersetzen?
9.15. Ich habe ein Wechsellaufwerk. Wie benutze ich es?
9.16. Wieso erhalte ich die Meldung “Incorrect super block” beim Mounten einer CD-ROM?
9.17. Wieso erhalte ich die Meldung “Device not configured”, wenn ich eine CD-ROM mounte?
9.18. Wieso werden alle Sonderzeichen in den Dateinamen auf meinen CDs durch “?” ersetzt, wenn ich die CD unter FreeBSD benutze?
9.19. Ich habe eine CD mit FreeBSD gebrannt und kann sie nicht mit anderen Betriebssystemen lesen. Warum?
9.20. Wie kann ich ein Image einer Daten-CD erzeugen?
9.21. Wieso kommt mount nicht meiner Audio-CD zurecht?
9.22. Wie nutze ich mount für eine Multi-Session CD?
9.23. Wie lasse ich normale Benutzer Disketten, CD-ROMs und andere Wechseldatenträger mounten?
9.24. Wieso geben die Befehle du und df unterschiedliche Werte für den freien Plattenplatz aus?
9.25. Wie kann ich den Swap-Bereich vergrößern?
9.26. Warum ist meine Festplatte unter FreeBSD kleiner, als sie laut Hersteller sein soll?
9.27. Warum kann eine Partition zu mehr als 100% gefüllt sein?

9.1. Wie kann ich meine neue Festplatte in mein FreeBSD-System einbinden?

Lesen Sie den Abschnitt Hinzufügen von Laufwerken im Handbuch.

9.2. 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 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 sysinstall(8) oder fdisk(8) und disklabel(8). Weiterhin sollten Sie mit boot0cfg(8) auf beiden Platten booteasy installieren, damit Sie in der Lage sind, das alte und das neue System abwechselnd zu starten, nachdem der Kopiervorgang abgeschlossen ist.

Nachdem Sie die neue Platte eingerichtet haben, können Sie Ihre Daten verschieben. Dummerweise können Sie die Daten nicht einfach kopieren. Dinge wie Gerätedateien (in /dev), erweiterte Dateiattribute und symbolische Links führen dazu, dass das in die Hose geht. Sie müssen ein Programm benutzen, das damit umgehen kann, und das ist 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 dump(8) und restore(8) benutzen, um Ihr Root-Filesystem zu verschieben. Es könnte auch mit tar(1) funktionieren - oder auch nicht. Sie sollten ebenfalls dump(8) und 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:

  1. Richten Sie in der neuen Partition mit newfs ein Dateisystem ein.

  2. Mounten Sie die Partition temporär an einer geeigneten Stelle.

  3. Wechseln Sie mit cd in dieses Verzeichnis.

  4. 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:

# newfs /dev/ad1s1a
# mount /dev/ad1s1a /mnt
# cd /mnt
# dump 0af - / | restore rf -

Wenn Sie Ihre Partitionen mit 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:

# newfs /dev/ad1s1a
# mount /dev/ad1s1a /mnt
# cd /mnt
# dump 0af - / | restore rf -
# cd var
# dump 0af - /var | restore rf -

Wenn Sie ein Verzeichnis aus einer Partition herauslösen wollen, also z.B. /var auf eine eigene Partition verlegen wollen, dann müssen Sie zunächst beide Partitionen anlegen. Danach müssen Sie die untergeordnete Partition im passenden Verzeichnis unterhalb des temporären mount points mounten und zum Abschluß die alte Partition verschieben:

# newfs /dev/ad1s1a
# newfs /dev/ad1s1d
# mount /dev/ad1s1a /mnt
# mkdir /mnt/var
# mount /dev/ad1s1d /mnt/var
# cd /mnt
# dump 0af - / | restore rf -

Eventuell sagen Ihnen für Benutzerdaten cpio(1), pax(1) oder tar(1) eher zu als dump(8). Allerdings haben alle diese Programme den Nachteil, dass sie die erweiterten Dateiattribute nicht verstehen, daher sollten Sie bei ihrem Einsatz aufpassen.

9.3. 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(8)-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(8)-Tabelle betrachtet werden würde. Abhängig von der Qualität ihres Designs werden sie sich bei Ihnen beschweren, sobald sie mit einer solchen Platte in Kontakt kommen, oder noch schlimmer, sie könnten den Bootstrap von 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 -v 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 mit diesem Befehl tun:

# 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.

9.4. 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 /boot/kernel/kernel und der Inhalt /etc werden nur bei der Wartung des Systems geändert, oder wenn Benutzer ihre Passwörter ändern. Wenn das System in den 30 Sekunden nach einer solchen Änderung abstürzt, ist es möglich, das Daten verloren gehen. Dieses Risiko ist in den meisten Fällen unerheblich, aber es ist vorhanden. Wenn das zu viel Risiko ist, dann sollten Sie Soft Updates nicht auf der Root-Partition einsetzen.

/ war schon immer eine der kleinsten Partitionen. Wenn Sie das Verzeichnis /tmp direkt auf / und in Ihrem /tmp viel Betrieb ist, kann es gelegentlich zu den oben beschriebenen Platzproblemen kommen. Um das Problem zu lösen, sollten sie einen symbolischen Link von /tmp nach /var/tmp legen.

9.5. Was stimmt mit meinem ccd(4) nicht?

Das Symptom hierfür ist:

# 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(4)-Treiber verlangt Partitionen vom Typ FS_BSDFFS. Editieren Sie den Plattenlabel der Platten, die Sie zu verknüpfen versuchen und ändern Sie die Typen der Partitionen in 4.2BSD.

9.6. Warum kann ich den Plattenlabel meines ccd(4) nicht editieren?

Das Symptom hierfür ist:

# disklabel ccd0
(hier wird etwas vernünftiges ausgegeben; versuchen wir nun, es zu editieren)
# disklabel -e ccd0
(editieren, speichern, beenden)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial label

Der Grund ist, dass der von ccd(4) zurückgelieferte Plattenlabel ein “vorgetäuschter” ist, der sich nicht wirklich auf der Platte befindet. Sie können das Problem beheben, indem Sie ihn explizit zurückschreiben, wie z.B. hier:

# disklabel ccd0 > /tmp/disklabel.tmp
# disklabel -Rr ccd0 /tmp/disklabel.tmp
# disklabel -e ccd0
(nun wird es funktionieren)

9.7. Kann ich andere fremde Dateisysteme unter FreeBSD mounten?

FreeBSD unterstützt verschiedene fremde Dateisysteme.

UFS

UFS-CD-ROMs 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.

ext2/ext3

FreeBSD unterstützt ext2fs und ext3fs-Partitionen. Unter mount_ext2fs(8) finden Sie weitere Informationen.

NTFS

Ein NTFS-Treiber, der nur Lesezugriffe gestattet, ist Teil von FreeBSD. Weitere Informationen entnehmen Sie bitte der Hilfeseite mount_ntfs(8). Ein Port von ntfs-3g unterstützt Schreiboperationen auf NTFS (siehe sysutils/fusefs-ntfs).

FAT

FreeBSD enthält ein FAT-Treiber, der Lese- und Schreibzugriffe ermöglicht. Weitere Informationen entnehmen Sie bitte der Hilfeseite mount_msdosfs(8).

ZFS

Zum jetzigen Zeitpunkt enthält FreeBSD eine Portierung von Sun™s ZFS Treiber. Die aktuelle Empfehlung ist, es nur auf amd64 Plattformen mit ausreichend Hauptspeicher zu verwenden. Mehr Informationen finden Sie in der Manualpage zfs(8).

FreeBSD unterstützt auch verschiedene Netzwerk-Dateisysteme, wie NFS (mount_nfs(8)), NetWare (mount_nwfs(8)), sowie die SMB-Dateisysteme von Microsoft (mount_smbfs(8)). In Ports die auf FUSE (sysutils/fusefs-kmod) basieren, können Sie viele weitere Dateisysteme finden.

9.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, wird eine Gerätedatei für “Slice 5” im Verzeichnis /dev erstellt, also mounten Sie diese einfach:

# mount -t msdosfs /dev/da1s5 /dos/e

9.9. Gibt es ein verschlüsselndes Dateisystem für FreeBSD?

Ja. Sie können entweder gbde(8) oder geli(8) einsetzen. Lesen Sie dazu auch den Abschnitt Partitionen verschlüsseln des Handbuchs.

9.10. Wie kann ich den Windows NT®-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/Windows NT-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 Windows NT-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(8) 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(8) mit NULL-Zeichen ausgefüllt wird, bevor /boot/boot0 in den MBR kopiert wird.

Warnung: 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.

9.11. 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)/boot/kernel/kernel

Sie können 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.

9.12. Wie boote ich FreeBSD und Linux mit GRUB?

Es ist sehr einfach, GRUB zum Starten von FreeBSD einzusetzen. Dazu müssen Sie lediglich die folgenden Zeilen in die Konfigurationsdatei /boot/grub/menu.lst (oder /boot/grub/grub.conf bei manchen Systemen wie z.B. Red Hat Linux und dessen Abkömmlinge) aufnehmen.

title 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.

9.13. 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® und Linux benutzen, wird das ohnehin empfohlen, um es einfacher zu machen, Linux wieder zu booten, wenn es nötig werden sollte, dass Sie Windows neu installieren (Windows ist ein eifersüchtiges Betriebssystem, das kein anderes Betriebssystem im Master Boot Sektor duldet).

9.14. 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.

9.15. Ich habe ein Wechsellaufwerk. Wie benutze ich es?

Ob es sich um ein Wechsellaufwerk handelt, um ein Zip® 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:

# mount -t msdosfs /dev/fd0c /floppy

oder diesen:

# mount -t msdosfs /dev/da2s4 /zip

für eine ZIP-Disk mit der Herstellerkonfiguration.

Benutzen Sie bei anderen Platten fdisk(8) oder 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 fdisk(8) oder sysinstall(8) benutzen, oder, bei einem kleinen Laufwerk, dem Sie eine Unterstützung für mehrere Betriebssysteme nicht zumuten wollen, entfernen Sie einfach die komplette FAT Partitionstabelle (Slices) und benutzen Sie einfach die BSD-Partitionierung:

# dd if=/dev/zero of=/dev/rda2 count=2
# disklabel -Brw da2 auto

Sie können disklabel(8) oder sysinstall(8) benutzen, um mehrere BSD-Partitionen zu erstellen. Dies werden Sie sicherlich bei einer fest eingebauten Platte wollen, aber bei einem Wechsellaufwerk wie einem ZIP ist das wahrscheinlich irrelevant.

Zum Schluß erstellen Sie ein neues Dateisystem - dieses befindet sich auf unserem ZIP-Laufwerk und belegt die gesamte Platte:

# newfs /dev/rda2c

anschließend mounten Sie es:

# 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

9.16. Wieso erhalte ich die Meldung “Incorrect super block” beim Mounten einer CD-ROM?

Sie müssen 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.

9.17. Wieso erhalte ich die Meldung “Device not configured”, wenn ich eine CD-ROM mounte?

Das bedeutet im allgemeinen, dass sich keine CD-ROM im Laufwerk befindet, oder, dass das Laufwerk auf dem Bus nicht sichtbar ist. Dieses Problem wird im Kapitel Benutzung von Daten-CDs des Handbuchs ausführlich diskutiert.

9.18. Wieso werden alle Sonderzeichen in den Dateinamen auf meinen CDs durch “?” ersetzt, wenn ich die CD unter FreeBSD benutze?

Wahrscheinlich werden auf der CD-ROM die “Joliet” Erweiterungen für die Speicherung von Datei- und Verzeichnisnamen benutzt. Werfen Sie einen Blick in das Kapitel Erzeugung von CD-ROMs im Handbuch, speziell in den Abschnitt über Benutzung von Daten-CDs.

[Anmerkung des Übersetzers: Es geht hier nicht um die deutschen Sonderzeichen, da diese schon im normalen ISO8859-1 enthalten sind. Die Probleme treten auf, wenn man z.B. russische CDs (ISO8859-5) verwendet.]

9.19. 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-Dateisystem erzeugt zu haben. Werfen Sie einen Blick in das Kapitel Erzeugung von CD-ROMs im Handbuch, speziell in den Abschnitt über reine Daten-CDs.

9.20. 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.

9.21. 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.

9.22. Wie nutze ich mount für eine Multi-Session CD?

Standardmäßig benutzt mount(8) den letzten (aktuellsten) Daten-Track der CD. Wenn Sie eine ältere Session benutzen wollen, müssen Sie diese mit der Option -s definieren. Weitere Informationen finden Sie in der Onlinehilfe zu mount_cd9660(8)

9.23. Wie lasse ich normale Benutzer Disketten, CD-ROMs und andere Wechseldatenträger mounten?

Normale Benutzer können dazu berechtigt werden, Geräte zu mounten. Das geht so:

  1. Setzen Sie als root die sysctl-Variable vfs.usermount auf 1:

    # sysctl -w vfs.usermount=1
    
  2. 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:

    # chmod 666 /dev/fd0
    

    Um den Mitgliedern der Gruppe operator den Zugriff auf das CD-ROM zu gestatten:

    # chgrp operator /dev/acd0c
    # chmod 640 /dev/acd0c
    
  3. Sie müssen zusätzlich /etc/devfs.conf anpassen, weil diese Einstellungen ansonsten beim Systemneustart verloren gehen.

    Damit normale Benutzer beispielsweise das erste Diskettenlaufwerk mounten können, fügen Sie als root folgende Zeilen in /etc/devfs.conf ein:

    # Allen Benutzern erlauben, das erste Diskettenlaufwerk zu mounten.
    own       /dev/fd0        root:operator
    perm      /dev/fd0        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
    
  4. 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:

% mkdir ~/my-mount-point
% mount -t msdosfs /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:

% mkdir ~/my-mount-point
% mount -t cd9660 /dev/acd0c ~/my-mount-point

Das Unmounten des Gerätes ist simpel:

% 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.

Anmerkung: Denken Sie daran, dass Sie die Gerätenamen in diesen Beispielen an Ihre Konfiguration anpassen müssen.

9.24. 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 newsyslog(8) einsetzen.

9.25. 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.

9.26. Warum ist meine Festplatte unter FreeBSD kleiner, als sie laut Hersteller sein soll?

Festplattenhersteller definieren ein Gigabyte als eine Milliarde Bytes, für FreeBSD 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 FreeBSD (in der Voreinstellung) 8 % des Plattenplatzes für sich reserviert.

9.27. 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. 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 -m Option von tunefs(8) einstellen.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.