![]() |
|
Linux - Wegweiser zur Installation & Konfiguration, 3. AuflageOnline-VersionBitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.
|
Auf Unix-Systemen ist ein Dateisystem ein Gerät (device), das für die Aufnahme von Dateien formatiert wurde (zum Beispiel Festplatten, Disketten oder CD-ROMs). Dateisysteme finden Sie auf diesen Geräten ebenso wie auf anderen, die willkürlichen Zugriff (random access) erlauben. (Die wichtigste Ausnahme sind Streamer, auf die nur sequentiell zugegriffen werden kann und die deshalb per se kein Dateisystem enthalten können.)
Das genaue Format und die Methode der Speicherung von Dateien sind nicht wichtig. Das System stellt ein gemeinsames Interface für alle Dateisystemtypen bereit, mit denen es arbeiten kann. Unter Linux gehören das Second Extended Filesystem (oder ext2fs) dazu, unter dem Sie wahrscheinlich Ihre Linux-Dateien ablegen; das MS-DOS-Dateisystem, mit dessen Hilfe Sie auf Dateien in DOS-Partitionen und auf DOS-formatierten Disketten zugreifen; außerdem verschiedene andere wie zum Beispiel das ISO-9660-Dateisystem für CD-ROMs.
Jeder dieser Dateisystemtypen benutzt ein anderes Format für die Speicherung von Daten. Wenn Sie allerdings unter Linux auf ein beliebiges Dateisystem zugreifen, wird das System Ihnen die Daten in der vertrauten Umgebung von Verzeichnishierarchien, zusammen mit den Angaben zu Eigner und Gruppe, den Berechtigungsbits sowie allen anderen bekannten Merkmalen, präsentieren.
Tatsächlich werden die Informationen zu Eignerschaft, Berechtigungen usw. nur von den Dateisystemen verwaltet, die für die Speicherung von Linux-Dateien vorgesehen sind. Bei solchen Dateisystemen, die diese Informationen nicht speichern, »erfinden« die Treiber, mit denen auf die Dateisysteme zugegriffen wird, diese Informationen. Das MS-DOS-Dateisystem zum Beispiel kennt das Konzept der Eignerschaft gar nicht; deshalb werden alle Dateien so dargestellt, als ob sie root gehörten. Auf diese Weise gleichen sich die Dateisysteme oberhalb einer bestimmten Ebene, und jeder Datei werden gewisse Attribute zugeordnet. Ob das darunterliegende Dateisystem diese Attribute nutzt oder nicht, ist eine ganz andere Frage.
Als Systemverwalter müssen Sie wissen, wie Dateisysteme erzeugt werden, falls Sie Linux-Dateien auf Disketten speichern oder zusätzliche Dateisysteme auf der Festplatte einrichten wollen. Sie werden auch verschiedene Tools kennenlernen müssen, mit denen Dateisysteme im Fall von Datenverlusten geprüft und repariert werden. Außerdem müssen Sie wissen, mit welchen Befehlen und Dateien auf Dateisysteme von Diskette oder CD-ROM zugegriffen wird.
In Tabelle 6-1 finden Sie alle Dateisystemtypen aufgelistet, die vom Linux-Kernel in der Version 2.2.2 unterstützt werden. Es werden ständig neue Typen hinzugefügt, und für mehrere hier nicht aufgeführte Dateisysteme gibt es experimentelle Treiber. Im Verzeichnis /usr/src/linux/fs können Sie nachsehen, welche Typen von Dateisystemen Ihr Kernel unterstützt. Beim Kompilieren des Kernels können Sie bestimmen, welche Dateisysteme unterstützt werden sollen. Lesen Sie dazu den Abschnitt »Den Kernel kompilieren« in Kapitel 7, Software und den Kernel aktualisieren. |
Jeder Dateisystemtyp hat individuelle Eigenschaften und Beschränkungen; MS-DOS zum Beispiel erlaubt nur achtstellige Dateinamen mit einer dreistelligen Erweiterung. Sie sollten dieses Dateisystem nur für den Zugriff auf bereits existierende DOS-Partitionen oder -Disketten benutzen. Sie werden für den größten Teil der Arbeit unter Linux das Second Extended-Dateisystem benutzen, das in erster Linie für Linux entwickelt wurde. Es erlaubt Dateinamen bis zu einer Länge von 256 Stellen, Dateisysteme bis zu vier Terabytes Größe und bietet einen Haufen anderer Vorteile. Frühere Linux-Systeme benutzten die inzwischen verdrängten Dateisysteme Extended (nicht mehr unterstützt) und Minix. (Ursprünglich wurde Minix aus mehreren Gründen benutzt. Einerseits wurde Linux am Anfang unter Minix kompiliert. Andererseits kannte sich Linus mit Minix ziemlich gut aus, und es war einfach, Minix in die frühen Original-Kernels einzubinden.) Das Xia-Dateisystem wird nicht mehr unterstützt.
Das ROM-Dateisystem werden Sie nur sehr selten benötigen. Es ist sehr klein, unterstützt keine Schreibvorgänge und ist vor allem zur Verwendung in RAM-Disks bei der Systemkonfiguration, beim Booten oder sogar in EPROMS gedacht.
Das Dateisystem UMSDOS wird für die Installation eines Linux-Systems in einem Verzeichnis innerhalb einer bestehenden DOS-Partition benutzt. Auf diese Weise können Linux-Neulinge mit Linux experimentieren, ohne die Festplatte neu zu partitionieren. Das MS-DOS-Dateisystem dagegen wird für den direkten Zugriff auf DOS-Dateien benutzt. Auf Dateien auf Partitionen, die mit Windows 95 oder Windows 98 angelegt wurden, kann mit dem VFAT-Dateisystem zugegriffen werden, während das NTFS-Dateisystem den Zugriff auf Windows NT-Dateien ermöglicht. Das Dateisystem HPFS dient dem Zugriff auf das OS/2-Dateisystem.
Mit der CVF-FAT-Erweiterung zum DOS-FAT-Dateisystem ist es möglich, auf Partitionen zuzugreifen, die mit DoubleSpace/DriveSpace von Microsoft oder mit Stakker von Stac komprimiert worden sind. Lesen Sie dazu die Datei Documentation/ filesystems/fat_cvf.txt in den Kernel-Quellen.
/proc ist ein virtuelles Dateisystem, das heißt, daß ihm kein Speicherplatz zugeordnet ist. Näheres hierzu finden Sie in Kapitel 5, Grundlagen der Systemverwaltung. Fußnoten 1 |
Das ISO-9660-Dateisystem (früher als High Sierra Filesystem bekannt und auf anderen Unix-Systemen mit hsfs abgekürzt) wird von den meisten CD-ROMs benutzt. Ähnlich wie unter DOS sind auch hier die Länge der Dateinamen und die Menge der Informationen, die zu jeder Datei gespeichert werden, beschränkt. Die meisten CD-ROMs kennen allerdings die Rock-Ridge-Erweiterungen zum ISO-9660-Standard, so daß der Kernel-Treiber den Dateien lange Namen, Eignerschaft und Berechtigungen zuordnen kann. Als Folge bekommen Sie beim Zugriff auf eine ISO-9660-CD-ROM unter DOS nur Dateinamen im 8.3-Format, während Sie unter Linux die »echten«, kompletten Namen erhalten.
Außerdem unterstützt Linux jetzt auch die Microsoft-Joliet-Erweiterungen von ISO 9660, die mit langen Dateinamen mit Unicode-Zeichen umgehen können. Das wird zur Zeit noch nicht besonders viel verwendet, kann aber in Zukunft wertvoll sein, weil Unicode ein international akzeptierter Standard für die Codierung von Zeichensystemen ist.
Weiter kennt Linux vier Dateisysteme, die in anderen Unix-Systemen für PCs verwendet werden: UFS, Xenix, System V und Coherent. (Die drei letzteren werden in Wirklichkeit von demselben Kernel-Treiber mit jeweils leicht geänderten Parametern bedient.) Falls Sie auf Dateisysteme stoßen, die in einem dieser Formate erzeugt wurden, können Sie auf die Dateien darin auch unter Linux zugreifen.
Schließlich gibt es einen Haufen von Dateisystemen für den Zugriff auf Daten auf Partitionen, die von anderen Dateisystemen als den DOS- und Unix-Familien angelegt worden sind. Diese unterstützen das Acorn Disk Filing System (ADFS), die AmigaOS-Dateisysteme (allerdings werden Disketten nur auf Amigas unterstützt), das HFS des Apple Macintosh und das QNX4-Dateisystem. Die meisten dieser spezialisierten Dateisysteme sind nur auf bestimmten Hardwarearchitekturen nützlich. Beispielsweise werden Sie in einem Intel-Rechner sicherlich keine Festplatten haben, die mit einem Amiga-Dateisystem formatiert sind. Wenn Sie einen dieser Treiber benötigen, lesen Sie bitte die zugehörigen Informationen; manche von ihnen befinden sich noch in einem experimentellen Zustand.
Damit Sie unter Linux auf ein beliebiges Dateisystem zugreifen können, müssen Sie es auf ein bestimmtes Verzeichnis aufsetzen (mounten). Dies läßt die Dateien in diesem Dateisystem so erscheinen, als ob sie in diesem Verzeichnis stünden, so daß Sie darauf zugreifen können.
Dies wird mit dem Befehl mount erledigt und muß in der Regel als root ausgeführt werden. (Wir werden noch sehen, daß normale Benutzer mount ausführen können, wenn der betreffende Gerätename in der Datei /etc/fstab aufgelistet ist.) Der Befehl hat folgendes Format:
Der typ ist der Name des Dateisystems, wie er in Tabelle 6-1 erscheint; das gerät ist das physikalische Gerät, auf dem das Dateisystem existiert (der Gerätename in /dev); und der mount-point (Aufsetzpunkt) ist das Verzeichnis, auf das dieses Dateisystem aufgesetzt wird. Sie müssen das Verzeichnis vor dem Aufruf von mount anlegen.
Wenn Sie zum Beispiel ein Second Extended-Dateisystem auf /dev/hda2 haben, das Sie auf das Verzeichnis /mnt aufsetzen möchten, geben Sie folgenden Befehl ein:
Wenn alles klappt, sollten Sie auf das Dateisystem unter /mnt zugreifen können. Entsprechend mounten wir mit folgendem Befehl ein Dateisystem, das sich auf einer Diskette befindet, die unter Windows formatiert wurde und daher ein DOS-Dateisystem hat:
Anschließend können Sie unter /mnt auf Dateien zugreifen, die auf einer DOS-formatierten Diskette stehen.
Der Befehl mount kennt viele Optionen, die Sie mit dem Schalter -o spezifizieren können. Ein Beispiel: Die Dateisysteme MS-DOS und ISO9660 unterstützen die »automatische Konvertierung« von Textdateien im DOS-Format (in denen am Ende jeder Zeile CR-LF steht) in das Unix-Format (bei dem am Zeilenende nur ein LF steht). Mit dem Befehl:
schalten Sie diese Konvertierung bei solchen Dateien ein, deren Suffix nicht auf eine Binärdatei hinweist (wie .exe, .bin usw.).
Eine häufig benutzte Option beim Aufsetzen ist -o ro (oder, mit demselben Effekt, -r), mit der Sie Dateisysteme im Lesemodus (read-only) aufsetzen. Alle schreibenden Zugriffe auf ein solches Dateisystem haben die Fehlermeldung »permission denied« zur Folge. Medien, die nicht beschrieben werden können (etwa CD-ROMs), müssen »read-only« aufgesetzt werden. Wenn Sie versuchen, eine CD-ROM ohne die Option -r zu mounten, erhalten Sie die nervige Fehlermeldung:
Geben Sie in diesem Fall statt dessen ein:
Dies gilt auch, wenn Sie versuchen, eine schreibgeschützte Diskette zu mounten.
In der Manpage zu mount finden Sie alle Optionen für das Aufsetzen von Dateisystemen. Sie werden nicht alle davon sofort benutzen, aber eines Tages müssen Sie vielleicht doch auf einige davon zurückgreifen.
Das Gegenteil zum Aufsetzen eines Dateisystems ist natürlich das Absetzen (unmounting). Das Absetzen bewirkt zweierlei: Der Inhalt des Dateisystems wird aus den Systempuffern aktualisiert, und auf das Dateisystem kann nicht mehr über seinen Aufsetzpunkt zugegriffen werden. Anschließend können Sie auf diesen Mount-Point ein anderes Dateisystem aufsetzen.
Das Absetzen geschieht mit dem Befehl umount (beachten Sie, daß das »n« in der Vorsilbe von »unmount« fehlt). Ein Beispiel:
setzt das Dateisystem auf /dev/fd0 ab. Mit einem Befehl wie
setzen Sie ein beliebiges, auf ein bestimmtes Verzeichnis aufgesetztes Dateisystem ab.
Ebenso wie bei Festplatten wird auch das Lesen und Schreiben von/auf Diskettendateisysteme(n) im Arbeitsspeicher gepuffert. Das bedeutet, daß das Laufwerk beim Lesen und Schreiben nicht sofort aktiv wird. Das System arbeitet die Ein-/ Ausgabe von/auf Disketten asynchron ab und führt Lese- und Schreibvorgänge nur durch, wenn es wirklich notwendig ist. Wenn Sie also eine kleine Datei auf die Diskette kopieren, und die Kontrolleuchte am Laufwerk blinkt nicht sofort auf, brauchen Sie nicht in Panik auszubrechen - die Daten werden schließlich doch noch geschrieben. Mit dem Befehl sync zwingen Sie das System, alle Puffer für das Dateisystem zu leeren, das heißt, daß alle Daten in den Puffern physikalisch auf die Diskette geschrieben werden. Dasselbe geschieht beim Absetzen eines Dateisystems.
Wenn Sie gewöhnlichen Sterblichen erlauben wollen, bestimmte Geräte auf- und abzusetzen, gibt es zwei Möglichkeiten. Die erste davon ist, für ein solches Gerät die Option user in /etc/fstab einzutragen (wir gehen später in diesem Abschnitt darauf ein). Danach sind alle Benutzer in der Lage, mount und umount für dieses Gerät aufzurufen. Die andere Möglichkeit ist die Benutzung eines Programms, das unter Linux das Auf- und Absetzen übernimmt. Diese Programme werden mit setuid root ausgeführt und erlauben normalen Benutzern das Aufsetzen bestimmter Geräte. Im allgemeinen werden Sie nicht zulassen, daß Benutzer eine Festplattenpartition auf- und absetzen, aber die Benutzung eines CD-ROM- oder Diskettenlaufwerks könnte erlaubt sein.
Es gibt eine ganze Reihe von Fehlern, die beim Mounten von Dateisystemen auftreten können. Unglücklicherweise gibt mount auf verschiedene Probleme dieselbe Fehlermeldung aus:
wrong fs type ist einfach zu verstehen: Es bedeutet, daß Sie dem Befehl mount den verkehrten Typ übergeben haben. Wenn Sie keinen Typ angeben, versucht mount, den richtigen Typ anhand des Superblocks zu erraten (das funktioniert nur mit den Dateisystemen minix, ext, ext2, xia und iso9660). Wenn das nicht funktioniert, probiert mount alle im Kernel enthaltenen Treiber aus (die in /proc/filesystems aufgeführt sind). Hat auch das nicht funktioniert, dann erklärt sich mount für gescheitert. device already mounted
bedeutet, daß das Gerät schon auf einem anderen Verzeichnis aufgesetzt ist. Der mount-Befehl ohne Argumente sagt Ihnen, welche Geräte wo aufgesetzt sind:
Wir sehen zwei Festplattenpartitionen, eine vom Typ ext2, die andere vom Typ msdos; ein CD-ROM-Laufwerk, das auf /cdrom aufgesetzt ist; und schließlich das Dateisystem /proc. Das letzte Feld in jeder Zeile (zum Beispiel (rw
)) zeigt die Optionen, unter denen das Dateisystem aufgesetzt ist. Mehr dazu in Kürze. Beachten Sie, daß das CD-ROM-Laufwerk auf /cdrom aufsetzt. Wenn Sie häufig mit CD-ROMs arbeiten, ist es eine gute Idee, ein Verzeichnis /cdrom anzulegen, um dieses Gerät dort zu mounten. /mnt wird im allgemeinen benutzt, um dort Dateisysteme wie etwa Disketten vorübergehend aufzusetzen.
Die Fehlermeldung mount-point busy ist schwer nachzuvollziehen. Grundsätzlich deutet sie auf irgendeine Art von Aktivität unterhalb des Mount-Point hin, die verhindert, daß Sie dort ein Dateisystem aufsetzen. Meistens ist das eine offene Datei unterhalb dieses Verzeichnisses oder ein Prozeß, der sein aktuelles Arbeitsverzeichnis unterhalb des Aufsetzpunktes hat. Stellen Sie beim Aufruf von mount sicher, daß sich Ihre Root-Shell nicht innerhalb von mount-point befindet; gehen Sie dazu mit cd / in die oberste Verzeichnisebene. Es könnte auch sein, daß bereits ein anderes Dateisystem auf demselben Mount-Point aufsetzt; mit mount ohne Argumente können Sie dies feststellen.
Die Meldung other error ist natürlich nicht sehr hilfreich. Es gibt verschiedene Fälle, in denen mount mißlingen könnte. Falls das betreffende Dateisystem irgendwelche Daten- oder Datenträgerfehler enthält, wird mount eventuell melden, daß es den Superblock des Dateisystems nicht lesen kann. Unter Unix-artigen Betriebssystemen enthält der Superblock den Teil des Dateisystems, der Informationen zu einzelnen Dateien und die Attribute des Dateisystems insgesamt enthält. Wenn Sie versuchen, ein CD-ROM- oder Diskettenlaufwerk aufzusetzen, ohne daß eine CD-ROM oder Diskette vorhanden ist, erhalten Sie eine Meldung wie diese:
Disketten sind besonders anfällig für physikalische Schäden (mehr als Sie vielleicht glauben). CD-ROMs leiden unter Staub, Kratzern, Fingerabdrücken und werden auch nicht gerne verkehrt herum eingelegt. (Wenn Sie versuchen, Ihre Garth Brooks-CD als ISO9660-Format zu mounten, werden Sie wahrscheinlich ähnliche Probleme bekommen.)
Vergewissern Sie sich auch, daß der Aufsetzpunkt, den Sie benutzen möchten (etwa /mnt), tatsächlich existiert. Falls das nicht der Fall ist, können Sie ihn mit dem Befehl mkdir anlegen.
Falls beim Aufsetzen oder beim Zugriff auf ein Dateisystem Probleme auftauchen, kann es sein, daß Daten beschädigt sind. Unter Linux gibt es verschiedene Tools zum Reparieren bestimmter Dateisystemtypen. Im Abschnitt »Dateisysteme prüfen und reparieren« weiter hinten in diesem Kapitel finden Sie mehr zu diesem Thema.
Beim Booten setzt das System automatisch mehrere Dateisysteme auf. Dies wird von der Datei /etc/fstab gesteuert, die einen Eintrag für jedes Dateisystem enthält, das beim Booten aufgesetzt werden soll. Die Zeilen haben das Format:
Dabei haben gerät, mount-point und typ dieselbe Bedeutung wie im Befehl mount; optionen ist eine durch Kommata getrennte Liste der Optionen, die Sie bei mount mit dem Schalter -o angeben würden.
So könnte eine Datei /etc/fstab aussehen:
Die letzte Zeile in dieser Datei bezeichnet eine Swap-Partition. Im Abschnitt »Swap-Space benutzen« weiter unten in diesem Kapitel gehen wir genauer darauf ein.
Die Manpage zu mount enthält die möglichen Werte für optionen. Wenn Sie mehr als eine Option angeben wollen, führen Sie sie durch Kommata getrennt, aber ohne Leerstellen dazwischen auf: |
Die Option user läßt auch andere Benutzer als root Dateisysteme aufsetzen. Wenn diese Option eingetragen ist, kann ein Benutzer zum Beispiel mit
ein CD-ROM-Laufwerk aufsetzen. Beachten Sie, daß Sie immer nur ein Gerät oder einen Mount-Point (aber nicht beide) an mount übergeben. Der Befehl wird den Aufsetzpunkt oder das Gerät in /etc/fstab nachschlagen und das Gerät mit den dort eingetragenen Parametern aufsetzen. Auf diese Weise lassen sich Geräte, die in /etc/fstab eingetragen sind, ganz einfach mounten.
Sie sollten für die meisten Dateisysteme die Option defaults (Standardwerte) benutzen; damit schalten Sie eine Reihe weiterer Optionen ein, wie zum Beispiel rw (Schreib- und Lesezugriff), async (asynchrones Leeren der E/A-Puffer) usw. Solange Sie keinen besonderen Grund haben, diese Parameter zu ändern, sollten Sie defaults für fast alle Dateisysteme und ro ausschließlich für Geräte mit Lesezugriff (wie CD-ROMs) verwenden. Eine weitere möglicherweise nützliche Option ist umask
, mit der Sie die Default-Maske für die Zugriffsrechte setzen können, was insbesondere bei fremden Dateisystemen interessant sein kann.
Mit dem Befehl mount -a werden alle Dateisysteme aufgesetzt, die in /etc/fstab eingetragen sind. Der Befehl wird beim Booten von einem der Skripten in /etc/rc.d (oder wo auch immer Ihre Distribution ihre Konfigurationsdateien unterbringt) ausgeführt, in der Regel rc.sysinit. Auf diese Weise werden alle in /etc/fstab aufgeführten Dateisysteme beim Systemstart aktiviert; alle Partitionen Ihrer Festplatte, das CD-ROM-Laufwerk usw. werden aufgesetzt.
Hierzu gibt es eine Ausnahme: das Dateisystem root. Dieses Dateisystem, das in der Regel auf / aufgesetzt wird, enthält meistens sowohl die Datei /etc/fstab als auch die Skripten in /etc/rc.d. Damit der Kernel darauf zugreifen kann, muß er beim Booten das Root-Dateisystem selbst aufsetzen. Das Gerät, das das Root-Dateisystem enthält, ist direkt in den Kernel einkompiliert und kann mit dem Befehl rdev geändert werden (lesen Sie hierzu »Von einer Diskette booten« in Kapitel 5, Grundlagen der Systemverwaltung). Während des Bootens versucht der Kernel, dieses Gerät als Root-Dateisystem aufzusetzen, und probiert dazu nacheinander verschiedene Dateisystemtypen aus (zuerst Minix, dann Extended usw.). Wenn Sie beim Booten eine Fehlermeldung wie |
erhalten, kann das eine der folgenden Ursachen haben:
|
Für jeden dieser Fälle gilt, daß der Kernel nicht weiterarbeiten kann und in »Panik« ausbricht. Lesen Sie im Abschnitt »Die Rettung in der Not« in Kapitel 8, Andere Administrationsaufgaben, nach, was Sie tun können. Falls ein beschädigtes Dateisystem die Ursache ist, läßt sich das in der Regel beheben. Lesen Sie dazu »Dateisysteme prüfen und reparieren«. |
Ein Dateisystem muß nicht in /etc/fstab eingetragen sein, damit es aufgesetzt werden kann, aber für das »automatische« Aufsetzen durch mount -a sowie die Benutzung der Option user ist dies Voraussetzung.
Wenn Sie auf viele verschiedene Dateisysteme (und insbesondere solche im Netzwerk) zugreifen müssen, dann ist vielleicht eine noch relativ neue Funktion des Linux-Kernels interessant für Sie: der automounter. Dabei handelt es sich um eine Kombination aus Kernel-Code, einem Dämon und einigen Konfigurationsdateien, die automatisch bemerkt, wenn jemand auf ein Dateisystem zugreifen will, und dieses dann transparent lädt. Wenn das Dateisystem einige Zeit nicht benutzt wurde, dann hängt es der Automounter automatisch aus, um Ressourcen wie Speicher und Netzwerkkapazität zu sparen.
Wenn Sie den Automounter verwenden wollen, müssen Sie dieses Feature zunächst beim Kompilieren des Kernels einschalten (siehe »Einen neuen Kernel erstellen«). Außerdem benötigen Sie die NFS-Option. |
Als nächstes müssen Sie den automount-Dämon starten. Weil dieses Feature ziemlich neu ist, ist es auf Ihrer Distribution vielleicht noch nicht enthalten. Suchen Sie nach dem Verzeichnis /usr/lib/autofs; wenn dieses noch nicht vorhanden ist, müssen Sie sich das Paket autofs von einem Linux-Server Ihrer Wahl besorgen und entsprechend den Installationsanweisungen installieren.
Sie können Dateisysteme an beliebigen Stellen automatisch mounten, aber der Einfachheit halber gehen wir hier davon aus, daß Sie alle Dateisysteme unterhalb eines einzigen Verzeichnisses mounten wollen, das wir hier /automount nennen. Wenn Sie die Einhängpunkte (automount points) für das automatische Mounten über Ihr Dateisystem verteilen wollen, dann müssen Sie mehrere automount-Dämonen verwenden.
Wenn Sie das autofs-Paket selbst kompiliert haben, sollten Sie damit anfangen, die Beispiel-Konfigurationsdateien zu kopieren, die Sie im sample-Verzeichnis finden. Diese können Sie dann Ihren Bedürfnissen anpassen. Dazu kopieren Sie die Dateien sample/auto.master und sample/auto.misc in das Verzeichnis /etc und die Datei sample/rc.autofs unter dem Namen autofs dahin, wo Ihre Distribution die Boot-Skripten unterbringt. Wir gehen hier von /sbin/init.d aus.
Die erste Konfigurationsdatei, die Sie editieren müssen, ist /etc/auto.master. Sie enthält alle Verzeichnisse (die sogenannten Mount-Punkte), unter denen der Automounter Partitionen aufsetzen soll. Weil wir uns entschieden haben, für dieses Beispiel nur ein Verzeichnis zu verwenden, müssen wir hier auch nur einen Eintrag vornehmen. Die Datei könnte folgendermaßen aussehen:
Diese Datei besteht aus Zeilen mit je zwei Einträgen, die durch Leerraum (whitespace) voneinander getrennt sind. Der erste Eintrag gibt den Mount-Punkt an, der zweite die sogenannte Map-Datei, die wiederum angibt, wie und wo die Geräte und Partitionen automatisch zu mounten sind. Sie brauchen für jeden Mount-Punkt eine solche Map-Datei.
In unserem Fall sieht /etc/auto.misc folgendermaßen aus:
Auch diese Datei besteht aus einzeiligen Einträgen, die jeweils ein Gerät oder eine aufzusetzende Partition angeben. Die Zeilen bestehen aus zwei notwendigen und einem optionalen Feld, die durch Leerraum voneinander getrennt werden. Der erste Wert muß angegeben werden und bezeichnet das Verzeichnis, auf das das Gerät oder die Partition dieses Eintrags gemountet werden soll. Dieser Wert wird an den Mount-Punkt angehängt, so daß die CD-ROM automatisch nach /automount/cd gemountet wird.
Der zweite Wert ist optional und gibt die für die mount-Operation zu verwendenden Schalter an. Diese entsprechen den Optionen des mount-Befehls, mit der Ausnahme, daß der Typ mit der Option -fstype= anstelle von -T angegeben wird.
Der dritte Wert schließlich gibt die zu mountende Partition oder das zu mountende Gerät an. Wir haben hier das erste SCSI-CD-ROM-Laufwerk und das erste Diskettenlaufwerk angegeben. Der Doppelpunkt vor dem Eintrag muß da stehen; er trennt den Host-Teil vom Gerät/Verzeichnis-Teil, ganz so wie bei mount. Weil sich diese beiden Geräte auf dem lokalen Rechner befinden, steht links von den Doppelpunkten nichts. Wenn wir beispielsweise das Verzeichnis sources vom NFS-Server Sourcemaster automatisch mounten wollten, würden wir folgendes angeben:
Nachdem Sie die Konfigurationsdateien für Ihr System angepaßt haben, können Sie den Automount-Dämon mit folgendem Befehl starten (ersetzen Sie den Pfad gegebenenfalls durch einen für Ihr System passenden):
Weil dieser Befehl ziemlich schweigsam ist, sollten Sie kontrollieren, ob der Automounter auch wirklich gestartet worden ist. Das geht beispielsweise mit folgendem Befehl:
Aber es ist schwierig, anhand der Ausgaben zu sehen, ob der Automounter wirklich läuft. Besser ist es daher zu überprüfen, ob der automount-Prozeß existiert:
Wenn dieser Befehl den Automount-Prozeß anzeigt, dann sollte alles in Ordnung sein. Wenn das nicht der Fall ist, müssen Sie Ihre Konfigurationsdateien noch einmal überprüfen. Es kann natürlich auch sein, daß die notwendige Kernel-Unterstützung nicht vorhanden ist: Entweder ist die Automount-Unterstützung nicht im Kernel, oder Sie haben sie als Modul kompiliert, dieses aber nicht installiert. Wenn das das Problem ist, dann können Sie es mit
Wenn der Automounter zu Ihrer Zufriedenheit funktioniert, können Sie den modprobe-Aufruf und den autofs-Aufruf in einer der Boot-Konfigurationsdateien Ihres Systems, wie etwa /etc/rc.local, /sbin/init.d/boot.local oder was auch immer Ihre Distribution verwendet, setzen.
Wenn alles funktioniert, müssen Sie jetzt nur noch auf eines der Verzeichnisse unterhalb des Mount-Punktes zugreifen, woraufhin der Automounter das entsprechende Gerät automatisch für Sie mounten wird. Wenn Sie beispielsweise
eingeben, dann wird der Automounter automatisch die CD-ROM mounten, damit ls deren Inhalt anzeigen kann. Der einzige Unterschied zwischen normalem und automatischem Mounten besteht in einer geringen Verzögerung, bis die Ausgabe kommt (beim automatischen Mounten).
Um Ressourcen einzusparen, hängt der Automounter die Partition oder das Gerät aus, wenn es eine gewisse Zeit keinen Zugriff gegeben hat (der Default sind fünf Minuten).
Mit dem Befehl mkfs erzeugen Sie ein Dateisystem. Das Anlegen eines Dateisystems entspricht dem »Formatieren« einer Partition oder Diskette als Vorbereitung für das Speichern von Daten.
Zu jedem Dateisystemtyp gehört ein eigener mkfs-Befehl - für MS-DOS ist das zum Beispiel mkfs.msdos, ein Second Extended-Dateisystem wird mit mkfs.ext2 erzeugt usw. Das Programm mkfs selbst ist ein Frontend (Hilfsprogramm), das beliebige Dateisysteme erzeugen kann, indem es die passende Version von mkfs aufruft. Fußnoten 2
Bei der Installation Ihres Linux-Systems haben Sie eventuell mit einem Befehl wie mke2fs ein Dateisystem von Hand erzeugt. (Falls nicht, hat die Installationssoftware das für Sie erledigt.) Tatsächlich ist mke2fs dasselbe wie mkfs.ext2. Die Programme sind identisch (und auf vielen Systemen ist das eine nur ein Link auf das andere), aber man benutzt die Version mkfs.dateisystemtyp, damit es für mkfs einfacher wird, das entsprechende Programm für jedes Dateisystem auszuführen. Wenn Sie das Frontend mkfs nicht auf Ihrem System haben, können Sie auch mke2fs oder mkfs.ext2 direkt aufrufen.
Wir gehen davon aus, daß Sie das Frontend mkfs benutzen; dann erzeugen Sie mit folgendem Befehl ein Dateisystem:
Dabei ist typ der zu erzeugende Dateisystemtyp, wie er in Tabelle 6-1 erscheint, gerätedatei gibt an, wo das Dateisystem erzeugt werden soll (zum Beispiel /dev/fd0 für eine Diskette), und blöcke geben die Größe des Dateisystems in Blökken zu 1024 Bytes an.
Wenn Sie zum Beispiel ein ext2-Dateisystem auf einer Diskette anlegen möchten, geben Sie ein:
Hier werden 1 440 Blöcke angegeben, womit eine 3,5-Zoll-HD-Diskette mit 1,44 Megabytes bezeichnet wird. Wenn Sie statt dessen -t msdos eingeben würden, könnten Sie eine DOS-formatierte Diskette erzeugen.
Anschließend können wir die Diskette mounten, wie wir das im vorhergehenden Abschnitt beschrieben haben, Dateien dorthin kopieren usw. Vergessen Sie nicht, die Diskette wieder abzusetzen, bevor Sie sie aus dem Laufwerk entfernen.
Auf dieselbe Weise erzeugen Sie auch ein Dateisystem auf einer Festplattenpartition, nur geben Sie dabei den Namen der Partition (etwa /dev/hda2) als Gerätedatei an. Versuchen Sie niemals, auf einem Gerätenamen wie /dev/hda ein Dateisystem zu erzeugen. Dies gilt für die gesamte Festplatte, nicht nur eine einzelne Partition. Mit dem Befehl fdisk können Sie Partitionen einrichten, wie wir das im Abschnitt »Linux-Partitionen anlegen« in Kapitel 3, Installation und erste Konfigurationsarbeiten, beschrieben haben. |
Sie sollten beim Erzeugen von Dateisystemen auf Festplattenpartitionen ganz besonders vorsichtig sein. Vergewissern Sie sich, daß die Werte für Gerätedatei und Blöcke korrekt sind. Wenn Sie eine falsche Gerätedatei angeben, kann es passieren, daß Sie Daten in bestehenden Dateisystemen zerstören. Wenn Sie einen falschen Wert für die Blöcke angeben, überschreiben Sie eventuell Daten in anderen Partitionen. Geben Sie für die Blöcke genau den Wert ein, den fdisk von Linux meldet. Wenn Sie Dateisysteme auf Disketten erzeugen möchten, ist es meistens eine gute Idee, zunächst eine Low-Level-Formatierung vorzunehmen. Damit werden die Sektor- und Spurinformationen auf die Diskette geschrieben, so daß bei der Benutzung der Gerätenamen /dev/fd0 und /dev/fd1 die Diskettenkapazität automatisch erkannt wird. Der FORMAT-Befehl unter DOS ist eine Möglichkeit der Low-Level-Formatierung; eine andere Möglichkeit ist das Programm fdformat unter Linux. Fußnoten 3 Wenn Sie zum Beispiel die Diskette im ersten Diskettenlaufwerk formatieren möchten, geben Sie ein: Mit der Option -n zu fdformat überspringen Sie die Verifizierung. Alle Versionen von mkfs für die einzelnen Dateisystemtypen unterstützen verschiedene nützliche Optionen. Fast alle Versionen kennen die Option -c, mit der beim Erzeugen des Dateisystems eine Überprüfung des physikalischen Mediums auf beschädigte Blöcke eingeschaltet wird. Wenn beschädigte Blöcke gefunden werden, werden diese markiert und bei Schreibvorgängen in diesem Dateisystem ausgespart. Wenn Sie solche spezifischen Optionen benutzen möchten, sollten Sie sie hinter der Option -t typ von mkfs angeben, etwa so: Sehen Sie in der Manpage der betreffenden Version von mkfs nach, welche speziellen Optionen unterstützt werden. (Für das Second Extended-Dateisystem lesen Sie also in der Manpage zu mke2fs nach.) Eventuell haben Sie nicht alle speziellen Versionen von mkfs installiert. Falls nicht, kann mkfs nicht ausgeführt werden, wenn Sie versuchen, ein Dateisystem eines Typs zu erzeugen, für den Sie kein mkfs.typ installiert haben. Irgendwo gibt es für fast alle Dateisystemtypen, die von Linux unterstützt werden, auch ein entsprechendes mkfs.typ.
Dateisysteme prüfen und reparierenVon Zeit zu Zeit werden Sie die Linux-Dateisysteme auf ihre Konsistenz untersuchen und gegebenenfalls reparieren müssen, wenn dabei Fehler oder verlorene Daten festgestellt werden. Solche Fehler entstehen in der Regel bei einem Systemcrash oder durch Stromausfall, wenn der Kernel keine Gelegenheit mehr hat, den Inhalt der Schreibpuffer auf die Festplatte zu bringen. Meist sind solche Fehler relativ unbedeutend. Wenn das System allerdings beim Schreiben einer großen Datei unterbrochen wird, könnte diese Datei verlorengehen, wobei die Blöcke, die zu dieser Datei gehören, als »belegt« (in use) markiert werden, obwohl es dafür keinen Dateieintrag gibt. Solche Fehler können auch entstehen, wenn versehentlich Daten direkt auf die Festplatte (etwa /dev/hda) oder eine der Partitionen geschrieben werden. Das Programm fsck dient der Untersuchung von Dateisystemen und gegebenenfalls der Beseitigung von Fehlern. Wie mkfs ist auch fsck ein Frontend für dateisystemspezifische Versionen von fsck.typ, wie etwa fsck.ext2 für das Second Extended-Dateisystem. (Ähnlich wie bei mkfs.ext2 ist auch fsck.ext2 ein symbolischer Link auf e2fsck. Sie könnten eines der Programme auch direkt aufrufen, falls das Frontend fsck nicht installiert ist.) Die Anwendung von fsck ist recht einfach; der Befehl hat das Format: wobei typ den Typ des zu reparierenden Dateisystems bezeichnet, wie er in Tabelle 6-1 erscheint, und gerätedatei das Gerät (Partition oder Diskette), auf dem sich das Dateisystem befindet. Wenn wir beispielsweise das ext2-Dateisystem auf /dev/hda2 überprüfen wollen, geben wir ein:
Beachten Sie zunächst, daß die Prüfung eines aufgesetzten Dateisystems ausdrücklich bestätigt werden muß. Falls während der Ausführung von fsck in einem aufgesetzten Dateisystem Fehler gefunden und korrigiert werden, müssen Sie das System neu booten. Das liegt daran, daß die Änderungen, die fsck durchführt, eventuell nicht an das System zurückgemeldet werden, um dem System den aktuellen Aufbau des Dateisystems mitzuteilen. Im allgemeinen ist es keine gute Idee, aufgesetzte Dateisysteme zu prüfen. Wie Sie sehen, wurden in unserem Beispiel mehrere Probleme entdeckt und korrigiert. Da dieses Dateisystem aufgesetzt war, werden wir aufgefordert, den Rechner neu zu booten.
Damit das Root-Dateisystem als read-only aufgesetzt wird, können Sie entweder die Boot-Option ro benutzen oder mit dem Befehl rdev das Read-only-Flag direkt im Kernel setzen. Viele Linux-Systeme prüfen die Dateisysteme selbständig beim Booten. Dazu wird in der Regel fsck von /etc/rc.d/rc.sysinit aus aufgerufen. Wenn dies geschieht, wird Linux das Root-Dateisystem zunächst als read-only mounten, es mit fsck prüfen und dann mit wieder aufsetzen. Die Option -o remount bewirkt, daß das betreffende Dateisystem mit den neuen Parametern erneut aufgesetzt wird (remount); in diesem Fall wird durch die Option -w (entspricht -o rw) das Dateisystem als read-write aufgesetzt. Das Ergebnis dieser Operation ist ein Root-Dateisystem mit Lese- und Schreibzugriff. Wenn fsck während des Bootens aufgerufen wird, prüft es alle Dateisysteme außer Root, bevor diese aufgesetzt werden. Sobald fsck beendet ist, werden mit mount die anderen Dateisysteme aufgesetzt. In den Dateien unter /etc/rc.d, insbesondere rc.sysinit (sofern vorhanden), können Sie sehen, wie das geschieht. Wenn Sie diesen Schritt auf Ihrem System unterbinden wollen, sollten Sie in den entsprechenden Dateien in /etc/rc.d die Zeilen auskommentieren, in denen fsck aufgerufen wird. Es gibt mehrere Optionen, die Sie mit dem dateisystemspezifischen fsck angeben können. Die meisten Typen kennen die Option -a, die automatisch alle Aufforderungen bestätigt, die von fsck.typ eventuell ausgegeben werden, die Option -c, die die Suche nach defekten Blöcken einschaltet (wie bei mkfs), und die Option -v, die während der Überprüfung ausführliche Meldungen ausgibt. Sie sollten diese Optionen hinter dem Argument -ttyp angeben, etwa so: um fsck mit ausführlichen Meldungen aufzurufen. In den Manpages zu fsck und e2fsck finden Sie weitere Details. Es gibt nicht für alle Dateisystemtypen, die von Linux unterstützt werden, eine fsck-Version. Wenn Sie MS-DOS-Dateisysteme prüfen und reparieren wollen, sollten Sie dazu eines der DOS-Programme, wie zum Beispiel die Norton Utilities, verwenden. Auf jeden Fall sollte Ihr System Versionen von fsck für die Dateisysteme Second Extended, Minix und Xia enthalten.
Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center O'Reilly Home | O'Reilly-Partnerbuchhandlungen | Bestellinformationen | Kontaktieren Sie uns International | Über O'Reilly | Tochterfirmen © 2000, O'Reilly Verlag |