16.8 Dateisystem 

Linux ist wie eine Zwiebel? Stimmt, aber Sie werden dennoch nicht weinen, wenn Sie sich näher mit dem Aufbau von Linux beschäftigen. Die Überschrift soll das Schalenmodell verdeutlichen, das man zur Veranschaulichung von Linux verwenden kann.
Abbildung 16.10 Die Software-Schichten des Linux-Systems liegen übereinander wie bei einer Zwiebel.
Aufbau moderner Software-Struktur
Sie haben während des Boot-Vorgangs schon Bekanntschaft mit den einzelnen Schichten des Gesamtkunstwerks »Linux« gemacht. Wird ein Programm im System gestartet, so kommuniziert es über einige Ebenen hinweg mit der Hardware. Abbildung zeigt den prinzipiellen Aufbau moderner Software-Strukturen am Beispiel des Betriebssystems Linux.
Um zu verstehen, woran es liegt, wenn ein bestimmtes Programm nicht so läuft, wie Sie möchten, sollten Sie zuerst festzustellen versuchen, welche der obigen Schichten für die Fehlfunktion verantwortlich ist. Ein Beispiel: In den Internet-Newsgroups liest man oft von Linux-Einsteigern, die es geschafft haben, ihr System zum Absturz zu bringen. In 99,9 % aller Fälle ist das System aber gar nicht abgestürzt: Lediglich ein Glied der Kette funktioniert nicht mehr: Beispielsweise könnte ein Grafikprogramm den Fenstermanager zum Abstürzen gebracht haben.
Störungen bei der grafischen Oberfläche
Selbst wenn Sie während des Betriebs von Ubuntu plötzlich Störungen in der grafischen Oberfläche haben, wenn beim Einbinden von externen Grafikkartentreibern z. B. etwas schiefgelaufen ist, so haben Sie immer noch die Möglichkeit, auf der Konsole weiterzuarbeiten, um das Problem zu lösen. Wissen Sie noch, wie Sie auf die Konsole(n) von Linux gelangen? Richtig: Mit der Tastenkombination
+
+
bis
gelangen Sie auf die sechs Standardkonsolen von Linux, und mit
+
+
gelangen Sie zurück auf den X-Server.
| X-Server-Neustart mit der magischen Tastenkombination |
|
Für einen simplen Neustart des grafischen Systems (X-Server) brauchen Sie nicht das gesamte System zeitaufwendig neu zu starten. Bei Älteren Ubuntu-Versionen sorgt die Tastenkombination
|
|
Diese Tastenkombination ist nur für den Notfall gedacht, alle laufenden Programme werden sofort geschlossen, und Sie finden sich auf dem Anmeldebildschirm wieder. Wenn Sie laufende Programme auf diese Art und Weise »schließen«, ist ein Datenverlust meistens nicht zu vermeiden. |
16.8.1 Datenträger 

Wenn Sie sich auf eine Entdeckungsreise durch Ihr neues System machen, werden Sie ziemlich schnell feststellen, dass es unter Linux keine Laufwerksbuchstaben wie beispielsweise \mbox{C:} gibt. Umsteiger von Windows auf Linux fragen sich oft, wo die gewohnten Laufwerksbuchstaben zu finden sind. Die Antwort ist einfach: Nirgendwo – es gibt sie schlichtweg nicht. Dateisysteme werden unter Linux ganz anders und wesentlich flexibler gehandhabt. Man spricht bei Linux von einem »Verzeichnisbaum«. Wir werden diesen im Folgenden gemeinsam genauer betrachten, beginnend bei den Wurzeln des Systems. Diese Wurzeln sind dafür verantwortlich, dass der Baum »Linux« einen sicheren Stand hat – selbst wenn ungebetene Gäste an ihm hochklettern möchten (z. B. Viren oder sonstige Eindringlinge).
Ubuntu wächst
Wir aber haben den Baum in unserem Computer – einem kleinen Biotop für vom Aussterben bedrohte Betriebssysteme – gepflanzt und ihn liebevoll gepflegt, bis er groß wurde. Nun dürfen wir auch in seine Krone klettern und den Ausblick von dort genießen. Und schauen Sie sich um, merken Sie, wie klein die Microsoft-Bäume von hier aus sind?
Skalierbarkeit
Nun aber genug mit den biologischen Abschweifungen und ran an die Arbeit. Datenträger befinden sich physisch immer an einem bestimmten Ort, dies ist keine Überraschung. Als »Datenträger« bezeichnet man unter anderem die Partition einer Festplatte oder ein CD-ROM-Laufwerk. In einem Linux-System werden diese Datenträger an einer bestimmten Stelle in einem Verzeichnisbaum verwendet (/home/media/cdrom, ...). An der Schreibweise dieser »Orte« können Sie schon erkennen, dass es sich um (beliebige) Verzeichnisse handelt.
Unter Linux lässt sich der Ort, an dem Sie auf einen Datenträger zugreifen können, beliebig festlegen. An der Stelle des Verzeichnisses /home/benutzer/test könnte sich demzufolge technisch gesehen eine Festplattenpartition befinden oder eine CD-ROM oder etwas ganz anderes.
Dies kann mehrere Vorteile haben, z. B. bei der Datensicherung. Ich möchte Ihnen hierzu ein kurzes Beispiel geben. Bei der Installation des Betriebssystems haben Sie alles auf einer einzigen Partition gespeichert, das System ebenso wie die Dateien der einzelnen Benutzer selbst. Nun haben Sie eine zusätzliche Festplatte oder Partition in Ihrem Computer und möchten diese Dateien auf die neue Partition verschieben. Unter Windows wären die Daten dann unter einem anderen Laufwerksbuchstaben erreichbar. Bei Linux nicht, /home bleibt /home, ob darunter nun die einzige Partition der einzigen Festplatte liegt, die dritte Partition auf der externen Festplatte oder eine Netzwerkfreigabe auf irgendeinem Server oder was auch immer. Man spricht hier in diesem Falle von Skalierbarkeit – Linux ist in höchstem Maße skalierbar.
Mounten
Jeder Datenträger kann also jederzeit an einer beliebigen Stelle in den Verzeichnisbaum eingehängt werden. Dieser Vorgang wird auch als »Einbinden« oder »Mounten« bezeichnet. Zwischen dem physischen Ort und dem Zugriffsort besteht kein notwendiger und oft störender Zusammenhang.
16.8.2 Die fstab 

Jedes Dateisystem kann einem Mount-Punkt (Einhängepunkt) zugewiesen werden. So weiß das System beim Start, welcher Datenträger z. B. das Verzeichnis /home enthält oder wo das CD-ROM-Laufwerk einzuhängen ist. Diese Zuordnungen sind in einer Datei namens fstab (Filesystem TABle) gespeichert, die sich im Verzeichnis /etc befindet. In dieser /etc/fstab werden die physischen Datenträger gemeinsam mit ihren Einhängepunkten aufgelistet.
Abbildung 16.11 Ein Beispiel für eine fstab-Datei
Konfigurationsdateien
Die meisten editierbaren Konfigurationsdateien für einzelne Bestandteile des Systems befinden sich im Verzeichnis /etc. Sie finden hier unter anderem die Dateien /etc/apt/sources.list zum Bearbeiten der Paketquellen sowie /etc/X11/xorg.config zum Modifizieren der Konfiguration des X-Servers. Sämtliche Dateien sind generell für das Bearbeiten durch einzelne User gesperrt. Nur Benutzer mit sudo-Rechten dürfen diese Dateien editieren (lesbar sind sie für jeden).
Wenn Sie fstab bearbeiten möchten, rufen Sie die Datei wie folgt auf:
user$ sudo gedit /etc/fstab
Die Datei fstab besteht aus mehreren Einträgen:
- Geräte Im Verzeichnis /dev befinden sich alle Gerätedateien, mit deren Hilfe sich die Hardware, also das physikalische Gerät (z. B. eine Partition auf einer Festplatte oder ein CD-ROM-Laufwerk) ansprechen lässt. Wenn Sie in dieses Verzeichnis hineinschauen, werden Sie den Nautilus wahrscheinlich gleich wieder erschrocken schließen. Eine unüberschaubare Anzahl an Gerätetreibern erwartet Sie dort. Aber keine Angst: Auch wenn es nicht so aussehen mag, die Bezeichnung dieser Geräte folgt einem einfachen Schema, das Sie nun kennenlernen werden.
- An erster Stelle steht die Art des Geräts:
- IDE-Festplatten (also fast alle normalen, internen Festplatten) beginnen mit den Buchstaben hd.
- Normale CD/DVD-Laufwerke (ATAPI) beginnen ebenfalls mit hd, denn sie werden ebenso wie IDE-Festplatten angeschlossen.
- SCSI-Festplatten (dazu zählen auch Festplatten, die über USB oder Firewire angeschlossen sind) beginnen mit sd.
- Externe oder SCSI-CD/DVD-Laufwerke beginnen mit scd.
Nun kann es in einem Computer mehrere IDE-Anschlüsse geben, sodass die bisherige Benennung nicht ausreicht. Deswegen folgt als nächster Buchstabe die Art des Anschlusses. Bei IDE-Geräten (interne Festplatten und CD-ROM-Laufwerke) ist es wichtig, mit welchem IDE-Anschluss das Gerät verbunden ist. Jeder Anschluss kann zwei Geräte aufnehmen (die dann »Master« und »Slave« genannt werden):
- Das Master-Gerät am ersten IDE-Anschluss erhält den Buchstaben a
- (/dev/hda).
- Das Slave-Gerät am ersten IDE-Anschluss erhält den Buchstaben b
- (/dev/hdb).
- Das Master-Gerät am zweiten IDE-Anschluss erhält den Buchstaben c
- (/dev/hdc).
- Das Slave-Gerät am zweiten IDE-Anschluss erhält den Buchstaben d
- (/dev/hdd).
- Bei SCSI-Festplatten werden die Buchstaben der Reihe nach verwendet
- (/dev/sda, /dev/sdb, /dev/sdc, ...).
- SCSI- oder externe CD-ROMS werden, bei 0 beginnend, durchnummeriert
- (/dev/scd0, /dev/scd1, ...).
Das ist aber noch nicht alles. Festplatten können darüber hinaus in mehrere Partitionen unterteilt sein.
Es gibt zwei Arten von Partitionen:
- Die klassischen primären Partitionen werden von 1 bis 4 nummeriert (/dev/hda1, /dev/sdb3, ...).
- Eine der primären Partitionen kann als erweiterte Partition weitere Partitionen, die sogenannten logischen Laufwerke, enthalten. Deren Benennung beginnt in jedem Fall bei der Ziffer 5 (/dev/hdb5, /dev/sda12, ...).
- RAID-Geräte beginnen mit md und werden dann mit 0 beginnend hochgezählt (dev/md0, /dev/md1, ...).
Logische Volumes, wie sie von LVM oder EVMS erzeugt werden, finden sich an gesonderter Stelle. Hierzu empfiehlt sich die Lektüre der jeweiligen Anleitung.
- Dateisystem
Das Dateisystem ist der dritte Eintrag in der fstab. Die Daten auf einem Datenträger sind dort nicht willkürlich verteilt oder einfach aneinandergehängt, sondern so organisiert, dass man auf einzelne Dateien und Verzeichnisse zugreifen, diese verschieben und bearbeiten sowie Berechtigungen zuweisen kann. Die zugrundeliegenden Organisationsprinzipien, die solche Aktivitäten erst ermöglichen, werden als Dateisysteme bezeichnet. Es gibt verschiedene Typen, von denen die folgenden für Sie von Interesse sein könnten:
ext3 ist das Standard-Dateisystem für Festplatten unter Linux.
iso9660 und udf werden auf CD-ROMs und DVDs verwendet. Sie kennen keine Berechtigungen. udf wird für DVD-RAMs verwendet.
NTFS ist das Dateisystem neuerer Windows-Versionen wie 2000 oder XP. Da die Spezifikation von NFTS geheim ist und freie Treiber den Interessen von Microsoft zuwiderlaufen, müssen die NTFS-Treiber in Linux mit großem Aufwand per Reverse-Engineering geschrieben werden. NTFS lässt sich von Linux daher zwar lesen, aber nicht sicher beschreiben.
FAT ist das Dateisystem der Windows-Versionen bis Win98/ME. Es ist ziemlich primitiv, neigt zur Fragmentierung und unterstützt keine Berechtigungen. Allerdings kann Linux FAT beschreiben, sodass sich eine mit FAT formatierte Partition zum Datenaustausch mit Windows anbietet.
Es gibt bei Linux noch andere Dateisysteme für Festplatten, z. B. ReiserFS oder XFS, die je nach Einsatz in manchen Punkten gegenüber ext3 Vorteile haben können.
- Mount-Optionen Die fstab hat noch mehr Informationen zu bieten. Es folgen verschiedene Optionen, die festlegen, auf welche Weise das betreffende Dateisystem eingehängt werden soll. Beispielsweise führt die Option ro (readonly) dazu, dass auf dem Dateisystem nichts geschrieben werden kann, und noexec (no execution) verbietet das Ausführen von Dateien.
Eine ausführliche Auflistung aller Optionen findet sich in der Anleitung zum Befehl mount, die Sie im Terminal mit
man mount
aufrufen können.
Was bedeuten diese zwei Zahlen?
Am Ende der fstab-Zeile stehen zwei merkwürdige Zahlen. Die erste Zahl bezieht sich auf das Programm dumpfs und wird im Moment ignoriert. Sie ist sozusagen prophylaktisch eingebaut, falls sie später gebraucht wird. Die zweite Zahl gibt an, ob und in welcher Reihenfolge das Dateisystem beim Systemstart in die regelmäßigen Fehlerüberprüfungen einbezogen werden soll. Meistens ist an dieser Stelle für die Root-Partition (die Wurzel des Dateisystems, /) 1 eingetragen, für alle anderen Partitionen 2 (danach prüfen) oder 0 (keine Überprüfung).
Das Programm dumpfs gibt Informationen über den Superblock und die Blockgruppen eines entsprechenden Gerätes heraus.
Welches ist die gesuchte Partition?
Es kann vorkommen, dass Sie sich einmal einen Überblick über die Partitionen auf einer Festplatte verschaffen wollen.
Damit Sie nicht erst einen Text-Editor bemühen müssen (oder falls Sie keine grafische Benutzeroberfläche zur Verfügung haben), können Sie sich die grundlegenden Informationen auch in einem Terminal anschauen:
sudo fdisk -l
Anhand des Partitionstyps und der relativen Größe lässt sich dann die gesuchte Partition meist leicht herleiten.
Manuelles Mounten
Der Befehl mount wird verwendet, um ein Dateisystem einzuhängen. Ein typischer Befehl sieht zum Beispiel so aus:
mount -t ext3 -o ro,noexec /dev/hda5 /media/data
Befehlssystem
Die Option -t gibt den Dateisystemtyp an und kann meist entfallen, da das Dateisystem normalerweise automatisch erkannt wird. Die Option -o wird von den Mount-Optionen gefolgt. Sie entfällt, wenn keine Optionen anzugeben sind. Wenn ein Dateisystem genau so eingehängt werden soll, wie es in der fstab eingetragen ist, kann entweder die Angabe des Gerätes oder die des Mount-Punktes entfallen.
Zum Aushängen dient der Befehl umount (unmount), gefolgt von der Angabe des Gerätes oder des Mount-Punktes.
16.8.3 Swap 

Swap ist eine Art »Hintergrundspeicher« auf einem Massenspeichergerät (beispielsweise die Festplatte), der zusammen mit dem physikalisch vorhandenen Speicher (RAM = Random Access Memory) den sogenannten virtuellen Speicher (VM = Virtual Memory) bildet. Swap ist im Vergleich zu anderen Speichern sehr langsam – am schnellsten ist das CPU-Register, dann kommen die Level-1- und –2- (und evtl. –3-)Caches.
Wie groß soll Swap sein?
Sehr oft hört man, dass der Swap-Bereich ungefähr doppelt so groß wie der RAM sein soll. In vielen Fällen macht es aber keinen Sinn, sehr viel Swap anzulegen, auch wenn es bei der Größe heutiger Festplatten kaum eine Rolle spielt, ob man einige GB für einen Swap-Bereich reserviert.
Je nach Bedarf kann der Linux-Kernel Speicherseiten auslagern, d. h., vom RAM in den Swap-Bereich verlagern. Selbst bei genügend RAM kann eine Swap-Partition aber Vorteile bringen, da Speicherseiten, auf die lange nicht zugegriffen wurde, ausgelagert werden können. So kann der physikalische Speicher beispielsweise als Cache genutzt werden.
Oftmals verwenden PCs ein Suspend-to-Disk, um den Rechner schlafen zu legen. Dazu werden die Speicherseiten auf der Swap-Partition auf der Festplatte abgelegt. Beim nächsten Booten wird der Resume-Parameter durch den Kernel ausgewertet, und wenn eine entsprechende Signatur in der Swap-Partition gefunden wird, werden die Speicherseiten zurück in den RAM geladen. Um dieses Feature zu nutzen, sollte die Swap-Partition auf der Festplatte also ausreichend groß sein.
Lässt sich das Swap-Verhalten beeinflussen?
Der Kernel hat im Prinzip zwei Möglichkeiten, wenn der RAM momentan vollständig genutzt wird (used, shared, buffer, cache). Er kann den Cache verkleinern, indem er die ältesten Daten im Cache verwirft, oder es können Speicherseiten, die nur selten angesprochen werden, in den Swap-Bereich ausgelagert werden. Es gibt swappiness (/proc/sys/vm/swappiness).
Swappiness
Der Standardwert für swappiness ist 60, im Prinzip kann swappiness Werte zwischen 0 und 100 annehmen. Bei einem Wert von 100 wird der Kernel stets das Auslagern von inaktiven Speicherseiten bevorzugen. Bei einem Wert von 0 wird der Kernel stets das Verkleinern des Caches bevorzugen. Falls übrigens Speicherseiten in den Swap-Bereich ausgelagert wurden und sich danach später die Speicherbelegung des Systems reduziert, so werden die ausgelagerten Seiten nicht automatisch zurück in den RAM geladen (das wäre ineffizient). So kann es passieren, dass eigentlich RAM wirklich frei ist (free, also auch nicht als Cache genutzt wird), trotzdem aber auch Swap-Bereich in Gebrauch ist. Mit einem einfachen echo-Befehl können Sie einen anderen Wert nach /proc/sys/vm/swappiness schreiben – wie üblich beim Tunen des Systems über das proc-Filesystem sollten Sie dabei aber sehr umsichtig vorgehen.
|
Zum Anlegen einer Swap-Datei generieren Sie sich mit dd eine Datei bestimmter Größe mit Nullen (Auslesen von /dev/zero): |
| dd if=/dev/zero of=/swap.file bs=1M count=500 chmod 0600 /swap.file mkswap /swap.file swapon -v /swap.file swapon on /swap.file |
|
Diese Datei wird dann mithilfe von mkswap in eine Swap-Datei umgewandelt, die wiederum mit swapon aktiviert werden kann. Haben Sie mehrere Swap-Bereiche unterschiedlicher Schnelligkeit, so sollten Sie gegebenenfalls geeignete Prioritäten für die jeweiligen Bereiche angeben. Nach erfolgreicher Aktivierung sollte der neue Swap-Bereich in der Ausgabe von cat /proc/swaps gelistet werden: |
| cat /proc/swaps Filename Type Size Used Priority /dev/hda6 partition 1052216 3300 –1 Filename Type Size Used Priority /dev/hda6 partition 1052216 3300 –1 /swap.file file 511992 0 –2 |
|
Wird beim swapon-Befehl keine Priorität explizit angegeben, so erhält der erste Swap-Bereich eine Standardpriorität, der zweite Bereich eine etwas niedrigere Priorität usw. Swap-Bereiche mit höherer Priorität werden beim Auslagern gegenüber Bereichen mit niedrigerer Priorität bevorzugt. |
16.8.4 Der Verzeichnisbaum 

Im Dateisystembaum von Linux gibt es drei wichtige Verzeichnisse, die Sie auf jeden Fall kennen sollten:
- /home enthält die persönlichen Verzeichnisse der Benutzer.
- In /media erscheinen Wechseldatenträger wie CD-ROMs oder USB-Sticks (natürlich erscheint alles auch auf dem Desktop, sodass Sie nur draufklicken brauchen).
- /mnt kann wie /media zum Einbinden zusätzlicher Datenträger verwendet werden.
Solange ein Datenträger eingehängt (gemountet) ist, darf man ihn nicht entfernen. Bei CDs wird einfach die Schublade verriegelt, bei USB-Sticks muss man allerdings selbst aufpassen: Klicken Sie vor dem Abziehen des Sticks immer auf das passende Symbol auf dem Desktop, und bestätigen Sie dann Datenträger aushängen.
Wenn Sie ein Gerät nicht ordentlich wieder aus dem Dateibaum aushängen, können Daten verloren gehen.
Abbildung 16.12 Verzeichnishierarchie unter Linux
Filesystem Hierarchy Standard
Dass Sie Geräte aus dem Sateisystem entfernen müssen, ist im Prinzip bei Windows nicht anders, nur wissen Sie jetzt durch Linux, warum dies so ist. Die Verzeichnisse eines Linux-Systems folgen bis auf wenige Ausnahmen den Regeln, die der sogenannte Filesystem Hierarchy Standard festlegt. Dies ist ein Standard, auf den sich die Linux-Distributoren geeinigt haben. Diese Festlegung hat den enormen Vorteil, dass bei allen Linux-Distributionen das Dateisystem gleich aufgebaut ist und weitgehend dieselben Verzeichnisse enthält.
Welche Verzeichnisse dies sind, werden wir uns im Folgenden erarbeiten:
- / Das ist das Haupt-, Root- oder Wurzelverzeichnis, der Beginn des Verzeichnisbaums. Hier sollten möglichst keine Dateien liegen, nur Verzeichnisse.
- /bin Hier befinden sich wichtige Programme (binaries) zur Systemverwaltung, die immer verfügbar sein müssen, wie echo oder kill. Anwendungsprogramme (wie z. B. OpenOffice) befinden sich nicht in diesem Verzeichnis.
- /boot Dieses Verzeichnis beinhaltet das Herz des Betriebssystems, den Kernel. Außerdem enthält es den Boot-Loader.
- /cdrom Dieses Verzeichnis gehört nicht zum Standard-Verzeichnisbaum. Es ist unter Ubuntu lediglich eine Verknüpfung mit dem Verzeichnis /media/cdrom0, dem eigentlichen Einhängepunkt einer CD-ROM.
- /dev Dieses Verzeichnis enthält ausschließlich Gerätedateien für die gesamte Peripherie (devices). Solche Gerätedateien dienen als Schnittstellen für die eingesetzte Hardware. Zum Beispiel ist /dev/fd0 für die Kommunikation mit dem (ersten) Diskettenlaufwerk (floppy disk 0) zuständig.
- /etc Hier befinden sich die globalen Konfigurationsdateien des Systems. Dies sind in der Regel einfache Textdateien, die mit einem beliebigen Editor verändert werden können. Die Filesystem-Tabelle (fstab) befindet sich z. B. in diesem Verzeichnis.
- /floppy Dieses Verzeichnis ist eigentlich gar keines, sondern eine Verknüpfung zu dem Ordner, der die Dateien des Diskettenlaufwerks enthält. Dieser Ordner kann an verschiedenen Stellen im Dateisystem liegen, findet sich meist jedoch entweder unter /mnt/floppy oder bei manchen neueren Distributionen wie z. B. Ubuntu unter /media/floppy.
- /home Das Home-Verzeichnis ist wohl eines der meistgenutzten Verzeichnisse. Die Heimatverzeichnisse der angelegten Benutzer werden hier als Unterverzeichnisse angelegt. Nur in seinem Home-Verzeichnis kann ein Benutzer Dateien und Verzeichnisse anlegen, ändern oder löschen.
- /initrd Hierbei handelt es sich meist um eine Verknüpfung zu der initial ramdisk des (üblicherweise) neuesten installierten Kernels. Bei Ubuntu ist das Verzeichnis leer.
- /lib Hier liegen die Programmbibliotheken (libraries). Diese Bibliotheken enthalten Funktionen, die von mehreren Programmen gleichzeitig genutzt werden. Das spart jede Menge Systemressourcen. Von diesem Verzeichnis sollten Sie am besten die Finger lassen!
- /lost+found Auch dieses Verzeichnis gehört nicht zum Standard-Verzeichnisbaum. Es wird nur angelegt, wenn man das Dateisystem ext3 verwendet, und ist normalerweise leer. Bei einem Systemabsturz (z. B. durch Blitzschlag) werden gerettete Daten beim nächsten Systemstart hierher verschoben.
- /media In diesem Verzeichnis werden – allerdings nicht bei allen Distributionen – die Mount-Punkte für Wechseldatenträger (CD-ROM-Laufwerk, Diskettenlaufwerk) als Unterverzeichnisse angelegt. Andere Distributionen nutzen dafür das Verzeichnis /mnt.
- /mnt Das Standard-Mount-Verzeichnis unter Linux heißt /mnt. Es wird zwar unter Ubuntu standardmäßig nicht benutzt, ist aber vorhanden. Stattdessen wird das Verzeichnis /media verwendet. Festplatten-Partitionen anderer Betriebssysteme sollten Sie aber der Ordnung halber hier einhängen.
- /opt Gehört nicht zum Standard und ist auch nicht bei jeder Distribution im Dateisystem vorhanden. In /opt können vom Benutzer selbst installierte Programme, die nicht als Pakete vorliegen, (optional) installiert werden.
- /proc Ist ein (virtuelles) Dateisystem, in dem Informationen über aktuell laufende Prozesse (process) in Unterverzeichnissen gespeichert werden.
- /root Das Heimatverzeichnis des Superusers Root. Es liegt traditionell im Wurzelverzeichnis, damit der Systemverwalter auch bei Wartungsarbeiten darauf Zugriff hat.
- /sbin Hierin befinden sich, ähnlich wie in /bin, wichtige Programme, die nur mit Systemverwaltungsrechten ausgeführt werden dürfen.
- /srv Gehört nicht zum Standard. Dieses Verzeichnis soll Beispielumgebungen für Web- und FTP-Server enthalten. Unter Ubuntu ist es in der Regel leer.
- /sys Gehört nicht zum Standard. Dieses Verzeichnis enthält unter Ubuntu Systeminformationen des Kernels
- /tmp Dieses Verzeichnis kann jederzeit von Benutzern und Programmen als Ablage für temporäre Dateien verwendet werden. Daher hat auch jeder Benutzer in diesem Verzeichnis Schreibrechte.
- /usr Das Kürzel bedeutet nicht, wie vielfach angenommen, User, sondern Unix System Resources. Das Verzeichnis /usr hat die umfangreichste Struktur des Linux-Systems. Hier liegt ein Großteil der (als Pakete) installierten Programme, die meisten davon im Unterverzeichnis /usr/bin. Auch die Dateien der grafischen Oberfläche (X-Window-System) werden hier gespeichert.
- /var Hier werden, ähnlich wie in /tmp, Daten gespeichert, die sich ständig verändern, so z. B. die Zwischenablage, die Druckerwarteschlange oder (noch) ungesendete E-Mails.
16.8.5 Beschädigte Dateisysteme reparieren 

Eine vorhandene Systemkomplettsicherung ist ungemein beruhigend. Dennoch kann das Rückspielen des Backups nur den Systemzustand zum Zeitpunkt der Datensicherung wieder herstellen. Daten, die in der Zwischenzeit auf dem Computer gelandet sind, verliert man trotzdem. Daher ist es immer sinnvoll, vor einer eventuellen Rücksicherung zu versuchen, ein »zerschossenes« System zu reanimieren.
| Dateien finden und sortieren |
|
Sie brauchen nicht immer Ihre Desktop-Suche zu bemühen, wenn Sie mal schnell und bequem eine Datei finden wollen. Die Dateisuche funktioniert auch hervorragend im Terminal. Eine Allzweckwaffe gegen verlorene Dateien ist der Befehl find. |
|
Um Dateien übersichtlich darzustellen, bietet es sich an, diese nach ihrem Zeitstempel zu sortieren (inklusive Unterverzeichnisse). Dies geschieht mit folgendem Befehl: |
| find . -printf 'TY-Tm-Td:TT p n' | sort |
|
Das Kürzel T steht für die mtime (Modifikationszeitpunkt). Sie können hier auch C (Change Time) oder A (Access Time) verwenden. Y, m, d stehen für Year, month, day, geben also die Reihenfolge der Darstellung an. Um nun bestimmte Dateien zu finden, bietet es ich an, diese nach ihrem Erstellungsdatum zu filtern: |
| find . -mtime +0 – Dateien, die älter als 24 Stunden sind |
| find . -mtime 0 – oder –1, Dateien, die jünger als 24 Stunden sind |
Das kommt in den besten Familien vor: Ein Mitbewohner steckt den Staubsauger in die Steckdose, die Sicherung fliegt raus und das gerade hochgefahrene Linux-System wird in einer Nanosekunde von 100 auf Null gefahren. Linux-Veteranen der ersten Stunde wissen, was in früheren Zeiten damit verbunden war: eine mühsame Überprüfung des Dateisystems, die einige Zeit in Anspruch nahm.
Grund für die Verhaltensweise ist der Linux-typische Umgang mit Schreib-/Lesevorgängen im System: Das System puffert diese im RAM und führt den Befehl dann aus, wenn wenig zu tun ist. Hier wirkt sich ein Crash natürlich tödlich aus: Stürzt das System ab, wenn noch nicht alle Schreib-/Lesevorgänge abgeschlossen sind, so kommt es unweigerlich zu Datenverlusten. Nach dem erneuten Hochfahren des Computers müssen Sie dann in jedem Fall das Dateisystem überprüfen, was je nach Größe der Partition recht langwierig sein kann.
Journaling-Dateisysteme
Heute verwendet man unter Linux sogenannte Journaling-Dateisysteme. Diese führen genau Protokoll über alle anstehenden und abgeschlossenen Dateioperationen, sodass ein Datei-Systemcheck relativ schnell erfolgen kann.
Für den Zweck der Überprüfung dieser Dateisysteme bieten sich mehrere Tools an. Die Kommandos beginnen allesamt mit fsck. Bei Ubuntu wird eine Vielzahl von Dateisystemen unterstützt:
user$ fsck <Tabulatortaste><Tabulatortaste> fsck fsck.ext3 fsck.msdos fsck.reiserfs fsck.cramfs fsck.jfs fsck.nfs fsck.vfat fsck.ext2 fsck.minix fsck.reiser4 fsck.xfs
Bevor Sie aber eines Ihrer installierten Systeme auf Herz und Nieren prüfen, beachten Sie folgenden wichtigen Hinweis: Ein Dateisystem, das überprüft werden soll, muss ausgebunden sein! Anderenfalls bestehen gute Chancen, durch die Reparatur den Zustand des Systems zu »verschlimmbessern«.
Ein ext2- bzw. ext3-Dateisystem überprüfen Sie folgendermaßen: Geben Sie direkt auf einer Kommandozeile den Befehl
user$ sudo fsck /dev/hda9 fsck 1.35 e2fsck 1.35 /dev/hda9: i.O., 154647/738432 Dateien
ein. Wenn Sie zu dieser langwierigen Aktion einen Fortschrittsbalken sehen möchten, verwenden Sie den Parameter -C. Sollte die Routine nun auf Fehler stoßen, so wird versucht, diese zu reparieren. Bestätigen Sie in diesem Fall sämtliche Nachfragen mit
. Zur Überprüfung des Reiser-Dateisystems verwenden Sie den folgenden Befehl:
user$ sudo reiserfsck --check /dev/hda10
Weitere Parameter und deren Wirkungsweise entnehmen Sie bitte den Manpages von fsck und reiserfsck.







Jetzt bestellen







