Einführung: Schnittstelle Kommandozeile
Teil 5

von Peter Kelly (critter)

Das Linux Dateisystem

Das Dateisystem von Linux ist aufgebaut wie ein auf dem Kopf stehender Baum mit dem Wurzelverzeichnis / an oberster Stelle. Verwechseln Sie dies nicht mit dem Benutzer "root". Das Wurzelverzeichnis ist der Ausgangspunkt des Dateisystems. Es verzweigt sich in Äste und diese verzweigen sich wieder weiter. Die 1 Verzweigungsebene ist weitgehend standardisiert, wenn auch manche Distributionen einige spezielle Verzeichnisse hinzufügen. Das können Sie übrigens auch selbst tun. Der Ort, wo eine Datei oder ein Verzeichnis innerhalb des Dateisystems gefunden werden kann, wird durch den Pfad "path" beschrieben. Der Pfad zur ersten Verzeichnisebene ist immer /{Verzeichnisname}, z.B.: /home/. Auf Ihrem Weg durch das Dateisystem fügen Sie jedes Mal wenn Sie eine neue Ebene erreichen/eröffnen, ein / an. Eine bestimmte Datei ist also z.B.: folgendermaßen gekennzeichnet:

/home/jane/MeinVerzeichnis/MeineDatei1..

Diese Datei befindet sich auf der 3 Verzeichnisebene. Ihre oben angegebene Kennzeichnung nennt man den absoluten Pfad. Wenn Jane sich in ihrem Heimatverzeichnis /home/jane, befindet erreicht sie die gleiche Datei unter /MeinVerzeichnis/MeineDatei1. Dies ist der relative Pfad. Relativ deswegen, weil er von dem Ort ausgeht an dem man sich gegenwärtig befindet.

Das Standarddateisystem von PCLinuxOS sieht folgendermaßen aus:

/           Das Wurzelverzeichnis
/bin        Kommandos, die für die Benutzer zur Verfügung stehen
/boot       Dateien, die vom Systemstartprogramm (grub) genutzt werden
/dev        Hardware(Geräte) werden wie Dateien angesprochen;
            hier sind sie zugänglich. /etc Verschiedene Skripte und Konfigurationsdateien des Systems /home Verzeichnisse der Benutzer wobei /home/jane Janes Benutzerverzeichnis /home/john Johns Benutzerverzeichnis /initrd Ein spezielles Verzeichnis das Linux während des Bootens nutzt /lib Gemeinsame Bibliotheken und Routinen,
            die von verschiedenen Anwendungen genutzt werden /media Ort an dem das System externe Geräte (z.B.: USB-Sticks) einbindet
            (mountet) /mnt Hier werden oft andere Dateisysteme eingebunden (gemountet) /opt Zusätzliche Anwendungsprogramme von anderen Anbietern /proc Speicherresistentes Dateisystem, das den Systemzustand verfolgt /root Das Heimatverzeichnis des Systemverwalters root /sbin Systemadministration und privilegierte Befehle /sys Ein virtuelles Dateisystem, verwandt mit dem /proc Verzeichnis.
            Hier werden dynamische Kernel Daten verwaltet. /tmp Bereich für die Speicherung von temporären Dateien
            (gesamtes System) /usr Andere installierte Anwendungen, Dokumentation und
            gemeinsam genutzte Ressourcen wie z.B.: Icons /var Verschiedene Logdateien, Mail- u. Druckerspooler und ähnliches.

Alle Distributionen die Sie verwenden können, weichen nur unwesentlich von diesem Grundschema ab. Kleinere Änderungen sind allerdings möglich.

Das genannte Grundschema ist unabhängig vom Speichergerät auf dem die Verzeichnisse zu finden sein müssen. Das hängt davon ab, wo das resistente Dateisystem des Gerätes im Verzeichnisbaum eingebunden ist. Beachten Sie dass /proc und /sys nicht auf einer Festplatte vorhanden sind. Diese Verzeichnisse sind ausschließlich speicherresistent. Geben Sie in der Shell du -sh /sys ein um anzuzeigen wie das /sys Verzeichnis die Festplatte belegt.

Einbinden (mounting) und Lösen von Einbindungen (unmounting) von Dateisystemen

Wenn Sie das System starten (booten) wird dem Gerät, mit der Wurzel des Dateisystems, der Pfad / zugewiesen. Der Einrichtungsprozess erzeugt die notwendigen Verzeichnisse der ersten Ebene, wie sie oben erklärt wurden. Wenn Sie eine eigene /home Partition eingerichtet haben, dann wird das /home Verzeichnis auf dieser Partition gefunden. Man sagt dann, dass diese Partition unter /home eingebunden ist. An jeder Stelle des Dateisystems können Sie zusätzliche Geräte nach Ihren Wünschen einbinden. Um ein Gerät einzubinden müssen Sie dem System verschiedene Informationen zur Verfügung stellen:

  • Den Typ des Dateisystems, dass das Gerät nutzt
  • Den Einhängepunkt (mount point) an dem das Gerät eingehängt werden soll
  • Den Gerätenamen oder eine Geräteidentifikationsnummer
  • Alle Optionen die das Einhängen und den Zugriff auf das Gerät beeinflussen.

Der Typ des Dateisystems sollte einer sein, den das System erkennt. Am wahrscheinlichsten werden Sie eines der folgenden Dateisysteme antreffen:

ext2
Das 2 erweiterte Dateisystem, auch als Linux Ursprungssystem bezeichnet. Es gab ein 1 aber das wird nicht länger unterstützt und sollte nicht verwendet werden.
ext3
Das ext2 System erweitert durch ein Journal. Erklärung folgt später.
ext4
Die nächste Entwicklungsstufe der ext Dateisysteme. Es ist noch in der Testphase, aber Sie können es schon verwendenn wenn Sie damit experimentieren wollen. Verwenden Sie es jedoch nicht in "kritischen Umfeldern" wie für Server oder für die Boot Partition eines Systems, es sei denn Ihre Distribution erlaubt es.
reiserfs
Ein bekanntes Linux Dateisystem mit Journaleigenschaften
iso9660
Wird für CDROM und DVD Speichermedien benutzt.
vfat
Für Zugriff auf Microsoft fat Dateisysteme
ntfs-3g
Der Open Source Treiber für den Zugriff auf Microsoft Windows ntfs Dateisysteme.
nfs
Netzwerk Dateisystem, nicht mit ntfs zu verwechseln.
swap
Das Linux swap Dateisystem.

Der Gerätename kann auf verschiedene Weise bezeichnet werden.

  • /dev/xxxx. ist die klassische Art und Weise.
  • LABEL={die Bezeichnung der Partition}. Das verwendet man um einfacher erkennen zu können was sich auf einer Partition befindet.
  • UUID={Universally Unique Identifier} Dieses System wird gegenwärtig von PCLinuxOS in /etc/fstab verwendet.

UUID sieht zunächst verwirrend aus, hat aber Vorteile bei Systemen mit mehreren Partitionen. Wenn Sie es mögen, dass sich das System um alles kümmert, dann sollten Sie es dabei belassen. Wenn Sie mehr Kontrolle möchten ist eine der anderen Möglichkeiten vielleicht besser geeignet.

Normalerweise sind die Standardoptionen ausreichend, in manchen Fällen möchten Sie aber doch zusätzliche Optionen angeben. Die am häufigsten benutzten sind:

  • auto oder noauto um die Einbindung beim Booten oder bei Eingabe des Befehls mount -a zu veranlassen oder nicht.
  • user um die Einbindung durch einen einfachen Benutzer zuzulassen. Dann können nur dieser Benutzer oder root das Dateisystem einbinden oder entfernen.
  • users erlaubt allen Benutzern die Einbindung oder das Entfernen des Dateisystems.
  • um das Dateisystem als nur lesbares (cdrom) oder mit Schreib-und Leserechten einzubinden.

Wenn Sie das mount Kommando "von Hand" nutzen, brauchen Sie root Rechte und geben dann auf der Kommandozeile folgendes ein, z.B.:

mount -t auto /dev/cdrom /media/cdrom -o ro

  • Dabei spezifiziert -t das Dateisystem. Im obigen Beispiel verlangen wir vom System dieses automatisch zu erkennen. Wenn diese Option ausgelassen wird, versucht das System von sich aus das Dateisystem zu erkennen.
  • -o startet eine durch Kommata getrennte Liste von Optionen, die steuert wie das Dateisystem eingebunden werden soll.
  • ro die „nur lesen” Option verwenden wir als einzige in diesem Beispiel.

Um eine mit ntfs formatierte Windows Partition einzubinden verwenden wir:
mount -t ntfs-3g /dev/sda1 /mnt/windows
(Voraussetzung ist, dass diese Partition sich auf dem Gerät sda1 befindet; d. Übersetzer)

Mit fdisk -l erfahren Sie welche Geräte mit welchem Dateisystem eingebunden sind..

pic1

Um nun die Kennung (Label), uuid und das Dateisystem eines Gerätes, das Sie einbinden wollen, herauszufinden geben Sie das Kommando:

blkid {Gerätename von fdisk} ein.

pic2

Wenn Sie Kennungen oder uuid benutzen wollen, dann verwenden Sie

-L {label} oder -U {uuid}.

pic3

Um eine Kennung für ein ext2, ext3 oder ext4 Dateisystem zu erzeugen, benutzen Sie den Befehl

tune2fs -l {Kennung}.

Der Befehl mount ohne Zusatz(Option) erzeugt eine Liste aller eingebundenen Dateisysteme zusammen mit der Angabe des Typs. Mit dem Zusatz -l werden auch die Kennungen mit ausgegeben. Dies ist auch der Inhalt der Datei /etc/mtab, in welcher das System die Liste aller eingebundenen Dateisysteme speichert. Ein anderer Speicherort, der auch diese Liste enthält, ist /proc/mounts. Probieren Sie es durch die Eingabe von cat /proc/mounts aus.

mount -a bindet alle Geräte ein die in der Datei /etc/fstab aufgelistet sind, mit Ausnahme der Geräte, bei denen die Option noauto eingetragen ist.

Wenn ein Gerät in /etc/fstab eingetragen ist, brauchen Sie zum Einbinden nur den Gerätenamen oder den des Einhängepunktes.

Um ein Gerät auszuhängen verwendet man den Befehl umount. Achten Sie auf das fehlende n.

umount /dev/cdrom

umount -a hängt alle Dateisysteme aus. Ein Dateisystem kann aber nicht ausgehängt werden, wenn eine Datei oder ein Verzeichnis geöffnet ist. Das Wurzeldateisystem / eines laufenden Systems kann also nicht ausgehängt werden.

Warum muss man sich überhaupt ums Aushängen eines Dateisystems kümmern? Nun, das hat damit etwas zu tun dass die Dinge synchron gehalten werden müssen. Linux ist ein Multi-Tasking, Mehrbenutzersystem und muss als solches intelligenten Gebrauch von seinen Ressourcen wie Prozessor oder Speicherplatz machen. Solange es keine gegensätzliche Anweisung erhält schreibt das System Daten asynchron ins Dateisystem, das heisst, dass die Daten nicht dann geschrieben werden wenn der Befehl dazu erfolgt, sondern erst wenn das System annimmt, dass vorsichtigerweise Zeit dazu wäre. Selbst wenn Sie der einzige Benutzer des Systems sind, können Sie mehrere Anwendungen am Laufen haben die, von Zeit zu Zeit, Daten in eine Datei schreiben z.B.: eine automatische Datensicherung oder ein geplantes Ereignis wie ein Backup, das im Hintergrund läuft. Diese Daten können nicht alle gleichzeitig geschrieben werden, einige müssen zurückgestellt werden bis Zeit zum Schreiben verfügbar ist. Wenn Sie eine Floppy Disk entnehmen, ohne das Laufwerk vorher auszuhängen, können Sie Datenverlust erleiden und das System zum Gerätemanagment wird verwirrt. Der umount Befehl synchronisiert das Dateisystem bevor er es freigibt.

Zum Schutz vor Zerstörung von Dateisystemen die Daten asynchron schreiben, während einer Katastrophe für das System wie z..B.: ein Stromausfall, wurden journalisierende Dateisysteme eingeführt. Das Schreiben von Daten ist ein Vorgang der aus vielen Schritten besteht bei denen Daten, Inodes, Verzeichniseinträge und andere Metadaten eine Rolle spielen. Wenn irgendein Teil dieser Transaktion nicht beendet wird, wenn das System abgeschaltet wird, dann wird das Dateisystem zerstört. Bei grossen Dateisystemen kann es eine Weile dauern bis man das bemerkt, weil man sich alle Inodes und alle Blöcke einzeln ansehen muss. Bei einem jounalisierenden Dateisystem werden die Prozesse einer erlaubten Transaktion in einem zentralen Bereich gespeichert bevor irgend ein Schreibvorgang erfolgt. Wenn die Transaktion nicht vollständig ausgeführt wurde, wenn der Absturz (des Systems) eintritt, wird nach dem erneuten Booten des Systems das Journal wieder ausgelesen und die Transaktion vervollständigt. Das beschleunigt die Wiederherstellung stark. Ein ext2 Dateisystem kann ohne Datenverlust in ein ext3 Dateisystem mit folgendem Befehl umgewandelt werden: tune2fs -j /dev/xxxx.

Hat man ein Gerät wie z.B.: ein CD Laufwerk ausgehängt, so kann man es mit

eject -T (-T schaltet den Zustand des Gerätes von offen auf zu und umgekehrt) öffnen und die CD herausnehmen.

Sie können natürlich auch den Öffnungsknopf des Gerätes drücken. Aber wenn der PC unter einem Tisch steht, kann es manchmal hilfreich sein, einen Shortcut zu diesem Befehl auf Ihrem Desktop einzurichten. eject sollte automatisch das Gerät aushängen, wenn es nicht schon ausgehängt ist. Wenn Sie ein externes Floppy Laufwerk oder einen iPod (z.B.: die 2te Generation von Nano) haben, müssen Sie den eject Befehl eingeben bevor Sie das Gerät aushängen oder die Floppy entnehmen. eject stellt sicher, dass in den Datenpuffern verbliebene Daten ausgelesen werden und verhindert eine Zerstörung der Daten auf dem Datenträger oder dem Gerät.

Für Geräte, die beim Systemstart eingebunden werden müssen oder solche, die regelmässig eingehängt oder ausgehängt werden, führt das System eine Tabelle mit den entsprechenden Informationen. Diese Tabelle steht im Verzeichnis etc und heisst fstab.

pic4

Die Abbildung oben zeigt eine ziemlich standardmässige fstab. Sehen Sie sich die erste Zeile an. Hier wird dem System mitgeteilt, dass /dev/hda1beim Wurzelverzeichnis / eingehängt werden soll, das ext3 Dateisystem verwendet wird und dass das Einhängen mit Standardoptionen durchgeführt werden soll. Die letzten beiden Ziffern dienen der Vollständigkeit und haben mit der einzuhängenden Partition nichts zu tun. Die erste Ziffer heisst "dump"-Zahl. Bei "dump" handelt es sich um ein Backup Programm. Es prüft diese Zahl um zu entscheiden, ob dieses Dateisystem in das Backup miteinbezogen werden soll. 0 bedeutet "nicht einbeziehen". Die zweite Zahl bestimmt die Reihenfolge einer Überprüfung von Dateisystemen mit fsck Hilfsprogrammen. In der Regel bekommt hier das Wurzeldateisystem den Wert 1 zugewiesen und andere zu überprüfende Dateisysteme eine 2. Wenn ein Dateisystem bei einer vollständigen Systemüberprüfung ausgelassen werden soll muss hier 0 eingetragen sein.

Mit Partitionen und Dateisystemen arbeiten

Viele Leute haben Schwierigkeiten mit dem Manangement von Partitionen. Partitionen sind aber weder schwer zu verstehen, noch bergen sie grundsätzliche Schwierigkeiten. Manchmal jedoch werden die Konfigurationsdateien zerstört, über die die Partitionen angesprochen werden.

Eine Festplatte kann in kleinere Bereiche aufgeteilt werden. Dort können verschiedene Betriebssysteme eingerichtet oder Datenbereiche voneinander getrennt werden. Als das System zur Partitionierung vorgeschlagen wurde und Festplatten noch wenig Speicherkapazität hatten (wenige MB; meine erste Platte hatte 40 MB Wow, so viel Platz!), meinte man, dass 4 Partitionen für eine Platte ausreichen. Mit zunehmender Grösse der Speicherkapazität von Festplatten wurde es nötig einen Umweg auszuarbeiten der mehr als 4 Partitionen zuliess. Die ursprünglichen Partitionen wurden als primäre Partitionen gekennzeichnet und wenn eine von diesen geopfert und als erweiterte Partition eingerichtet wurde, dann konnten innerhalb dieser Partition logische Partitionen. Die Partitionstabelle kann nur eine erweiterte Partition enthalten.

Bei Linux gibt es viele Hilfsprogramme um mit Partitionen umzugehen, kleine cli-only Hilfsmittel und vollständig ausgearbeitete Anwendungen mit graphischer Oberfläche. Das PCLinuxOS Kontrollzentrum stellt mit dem excellenten Diskdrake ein graphisches Hilfsmittel zur Verfügung , dessen Benutzung auch für den allerneuesten Linux Nutzer "radically simple" ist. Wir verwenden jedoch im Folgenden das Kommandozeilenprogramm (cli-only) fdisk.

Es gibt mehrere Gründe fdisk zu verwenden. Es ist sehr gefährlich mit Partitionen umzugehen und in einer graphischen Umgebung kann man mit einem "happy-click" leicht ein ganzes System löschen (es kann allerdings solange wiederhergestellt werden, als noch kein neues Dateisystem auf die Partition geschrieben wurde). Über die Kommandozeile einer Konsole beschränken sich die Eingaben auf die jeweils vorliegende Aufgabe. Ein kleines Hilfsmittel wie fdisk besitzt nur wenige Optionen und in diesem Fall bedeutet weniger "ist besser". fdisk oder etwas Vergleichbares ist bei jeder Distribution vorhanden.

fdisk -l haben wir schon genutzt um eine Geräteliste zu erhalten. Jetzt geben wir

fdisk {Gerät}

ein.

fdisk kennt nur ganze Geräte, also bedeutet hier Gerätename der Name ohne Partitionsnummer. Benutzen Sie also /dev/hda und nicht /dev/hda1.

pic5

Mit der Eingabe von m (und Enter) erhalten wir zu jeder Zeit eine Liste der zur Verfügung stehenden Befehle.

pic6

Es gibt nur 16 Befehle, einschliesslich des m für die Befehlsliste.

Linux nutzt die Partitionstabellen von DOS. Es ist also unwahrscheinlich, dass Sie jemals den 'b' oder 's' Befehl brauchen werden und ich glaube, dass zunächst auch die 'x' Option vermieden werden sollte. Dann verbleiben 12 Befehle mit denen wir unser System zerstören können, aber nur einer kann das wirklich, - der 'w' Befehl. Solange Sie diesen Befehl nicht eingegeben haben wird noch keine Veränderung, die Sie eingegeben haben, permanent wirksam. Der 'q' Befehl ist unsere Freifahrkarte zurück zum ursprünglichen Zustand. Immer wenn wir q eingeben, landen wir wieder im System, ohne dass irgendeine Veränderung vorgenommen wird. Sofort und ohne Probleme.

Die übrigen Befehle bedeuten folgendes:

  • a Manche Versionen des Bootloaders von MSDOS/Windows erwarten, nur eine einzige primäre, bootbare Partition anzutreffen, in der Regel die 1 Partition der Festplatte. Linux Bootloader (Grub/Lilo) ignorieren diese Option wenn sie gesetzt ist. Wenn Sie Linux und Windows parallel booten, können Sie die Option stehen lassen ohne etwas befürchten zu müssen.
  • c Unter Linux ist dieses 'flag' normalerweise nicht gesetzt, wenn doch kann es zu Problemen bei überlappenden Partitionen kommen. Am besten, man lässt es unverändert.
  • d Eine Partition löschen.
  • l Eine Liste aller Partitionstypen ausgeben, die fdisk kennt.
  • n Eine neue Partition erzeugen.
  • o Eine neue Partitionstabelle erzeugen und die alte (Tabelle) durch diese ersetzen - dadurch werden alle Partitionen vom Gerät entfernt. Vorsichtig benutzen!
  • p Partitionstabelle am Bildschirm ausgeben.
  • t Ändern der Dateisystemidentifikationsnummer der Partition - Diese Hexadezimalzahl teilt dem System mit, welches Dateisystem es auf der Partition erwarten kann, z.B.: 83 beim ext2/ext3 Dateisystem.
  • u Schaltet bei der Bildschirmausgabe die Anzeige von Zylindern auf Sektoren um und umgekehrt.
  • v Überprüft die Integrität der Partitionstabelle.

Sie können mit diesen wenigen Befehlen herumexperimentieren bis Sie sich damit angefreundet haben, verwenden Sie jedoch nicht den 'w' Befehl solange Sie sich nicht ganz sicher sind. Mit 'q' verlassen Sie jederzeit das Programm.

pic7

Schauen Sie sich den Screenshot des 'p' Befehls an (Bild oben). Wir erhalten einen Überblick über das Layout des gesamten Gerätes, - in diesem Fall die IDE Festplatte Nr.1. (Bemerkung: Heute wird IDE als PATA bezeichnet (für Parallel ATA), um es von SATA (Seriel ATA) zu unterscheiden. Bezogen auf die Technologie sind die Bezeichnungen PATA und IDE austauschbar). Das Laufwerk ist in 16644 Zylinder unterteilt, folglich muss jede Partition auf einem Zylinder zwischen 1 und 16644 angelegt werden. Wenn das nicht der Fall ist haben Sie ein Problem. Die Zylinder 1 bis 4 sind für primäre Partitionen reserviert, gleichgültig ob sie vorhanden sind oder nicht. Die Numerierung logischer Partitionen beginnt ab Zylinder 5 aufwärts.

Im Beispiel umfasst die erste Partition 8591 Zylinder und ist eine primäre Partition.

Partition 2 ist ebenfalls eine primäre Partition. Sie ist als erweiterte Partition eingerichtet und belegt den Rest der Platte, es kann also keine zusätzlichen primären Partitionen mehr geben. Diese Partition beginnt also mit Zylinder 8592 und belegt die restlichen Zylinder bis 16644 am Ende der Platte.

Die Partition 5 beginnt ebenfalls bei Zylinder 8593 und reicht bis Zylinder 9649. Dies ist die erste logische Partition.

Partition 6 ist die 2te logische Partition und belegt die verbliebenen Zylinder.

Das funktioniert alles recht nett und nutzt den gesamten Plattenplatz, -oder, oder etwa nicht wirklich? Schalten wir einmal mit dem Befehl u die Bildschirmanzeige von Zylinder auf Sektoren um.

pic8

Da sehen wir jetzt einige Lücken zwischen den Anfangs und Endwerten. Das ist aber vollkommen in Ordnung. Partitionen müssen, mit Ausnahme der Partition 1, an einer Zylindergrenze anfangen.

Die Veränderung der Grösse von Partitionen ist eine riskante Angelegenheit. Eine Partition kann als Behälter für ein Dateisystem angesehen werden. Sie können also fdisk benutzen um diese Partition aus der Partitionstabelle zu löschen und dann eine neue anlegen. Sie müssen dann die Grösse des Dateisystems mit einem Hilfsprogramm wie resize2fs ändern. Oder Sie verwenden gparted oder diskdrake als Hilfsmittel die das für Sie erledigen. In jedem Fall handelt es sich um einen gefährlichen Prozess, den ich nicht einleiten würde ohne vorher ein aktuelles und verlässliches Backup aller Daten der Partition gewonnen zu haben. Wenn ein solches Backup verfügbar ist, ist es besser, die (alte) Partition zu löschen, eine neue mit neuem Dateisystem einzurichten und auf diese das Backup zurückzuspielen. (Bemerkung: Typischerweise ist diese letztere Methode auch die schnellere).

Um eine Partition einhängen zu können muss sie ein gültiges Dateisystem besitzen.

pic9

Die Partition wurde mit der Kennzahl 83 erzeugt, das System erwartet also ein Dateisystem vom Typ 'Linux Native', welches wir erzeugen müssen. Der entsprechende Befehl hierfür ist mkfs. Dieser initialisiert oder formatiert das Dateisystem, belegt es mit Dingen wie Verzeichnistabellen, Inode Tabellen und bestimmt die Blockgrössen usw. Im Gegensatz zur Erzeugung einer Partitionstabelle überschreibt dieser Prozess vorhandene Daten.

Wenn Sie mkfs an einemTerminal eingeben, und dann die 'Tab' Taste drücken, werden Sie sehen dass es viele Varianten dieses Befehls gibt. Sie können jene verwenden die zu dem Dateisystem passt, das Sie erzeugen wollen, oder Sie können mkfs mit der -t Option verwenden und den Typ des Dateisystems angeben.

Warnung! Stellen Sie sicher, dass Sie die richtige Zielpartition angegeben haben, es wird keine Warnung ausgegeben und alle Daten auf der Partition werden überschrieben!

pic10

Es gibt natürlich eine Vielzahl von Optionen für den Befehl, die es Ihnen erlauben die Einrichtung des Dateisystems exakt zu kontrollieren, aber ich ziehe es bei so grundlegenden Dingen vor, die Standardeinstellungen zu übernehmen. An der Ausgabe sehen Sie, dass eine automatische Überprüfung des Dateisystem in vorgegebenen Intervallen stattfindet, aber Sie können diese auch selbst durchführen. Dann muss das Laufwerk vorher ausgehängt werden. Um das root Dateisystem zu überprüfen ist es am einfachsten von einer Life CD zu booten und die Prüfung dann vorzunehmen, wenn das System über die Life CD läuft.

Um ein Dateisystem zu überprüfen verwenden Sie den Befehl fsck. Jedes Dateisystem hat sein eigenes spezifisches Prüfprogramm und fsck stellt ein 'front end' für diese Hilfsprogramme dar. Wenn der Typ des Dateisystems bekannt ist,kann er über die -t Option mitangegeben werden, oder fsck sucht ihn in /etc/fstab. Wenn Sie den Namen des richtigen Hilfsprogramms kennen können Sie dieses natürlich direkt aufrufen.

fsck -t ext3 /dev/hdb5 oder fsck.ext3 /dev/hdb5

Ob eine Platte automatisch überprüft wird oder nicht, wird durch den Wert, der in der 6.ten Spalte in der Datei /etc/fstab, bestimmt. Die Häufigkeit der Überprüfung von ext Dateisystemen wird durch die Anzahl von Systemstarts festgelegt. Mit dem Hilfsprogramm tune2fs kann die Zahl der Systemstarts, nach denen der Systemcheck eingeleitet wird, verändert werden.

Der Befehl tune2fs -i kann das Überprüfungsintervall in Tage umwandeln. Für Wochen oder Monate verwenden Sie -w oder -m.

pic11

Swapspeicher

Das Dateisystem für Swapspeicher löst immer heftige Diskussionen aus. Es hat seine eigenen Hilfsprogramme und wird vom System und nicht von den Benutzern verwendet. Eine Frage, die immer wieder gestellt wird, ist "Habe ich genug Swapspeicher"?. Die Antwort ist immer dieselbe: "Das kommt darauf an".

Swapspeicher wurde eingeführt als Speicher noch sehr teuer war und damit nur sehr beschränkt zur Verfügung stand. Bei hoher Systemlast kam es vor, dass Speicher sehr knapp wurde, was wiederum bedeutete, dass das System damit beschäftigt war Sachen hin- und herzuschieben nur um am Laufen zu bleiben. Daraus ergab sich ein langsames und schlecht reagierendes System. Mit Swapspeicher wurde der Systemadministrator in die Lage versetzt temporären Speicherplatz bereitzustellen. Dabei wurden Daten vom Speicher in viel langsameren Speicherplatz auf der Festplatte verlagert (swapped). Das war aber immer nur eine zeitlich begrenzte Lösung. Wenn Swapspeicher häufig (vom System) genutzt wurde, war das immer ein Zeichen, dass der installierte Speicher für die Aufgaben des Systems unzureichend war.

Heutzutage haben sich die Dinge geändert und moderne Systeme verfügen über grosse Speicherressourcen. Früher galt als Faustregel als Swapspeicher die doppelte Grösse des RAM Speichers zu wählen. Also, wenn Sie nur wenig RAM haben -z.B.: 256 MB, dann wären 512 MB Swapspeicher vernünftig. Wenn Ihre Maschine jetzt aber 2 GB oder mehr Speicher hat, dann wäre es ziemlich lächerlich das doppelte als Swap einzurichten, unter Umständen würde dies das System sogar verlangsamen. Wenn Sie viele speicherintensive Programme wie z.B.: Videobearbeitung nutzen kann sich mehr Swapspeicher vorteihaft auswirken. Auch wenn Sie einen Laptop mit Hibernation benutzen brauchen Sie etwas mehr Swapspeicher als RAM, weil beim Eintritt in den Hibernationsmodus der gesamte Speicherinhalt in den Swapspeicher kopiert wird und bei Beendigung wieder zurück. Wichtig ist, den Speichergebrauch zu beobachten, entweder mit einem grafischen Hilfsmittel oder mit dem Befehl free. Man kann den Swapspeicher immer vergrössern.

Swapspeicher kann als Partition oder als Datei angelegt sein. Partitionen sind bevorzugt, weil sie oft schneller sind, aber auch Swapdateien konnen zeitweise hervorragend geeignet sein, nämlich dann, wenn das System plötzlich nur noch wenig RAM und SWAP zur Verfügung hat. Verwenden Sie fdisk und die Typenangabe 82 (Linux swap) um eine Swappartition einzurichten.

Das Einrichten einer Swapdatei ist etwas komplizierter. Sie müssen eine Datei der gewünschten Grösse einrichten und dann Daten in diese Datei schreiben. Mit dem Befehl

dd if=/dev/zero of=/myswap bs=1024 count=131072.

richten Sie eine Swapdatei mit 128 MB (131072 Blöcke mit 1024 Bytes) und dem Namen myswap im Wurzelverzeichnis ein und füllen sie mit Nullzeichen.

Jetzt sollte man sich vergewissern dass das System alle Daten in die Datei geschrieben hat. Der einfache Befehl hierfür ist sync.

Die Datei muss formatiert und als Swapdateisystem initialisiert werden:

mkswap/myswap 131072

Jetzt müssen wir noch die Dateirechte ändern, damit nur das System Schreib- und Lesezugriff hat.

chmod 0600 /myswap

Jetzt kann die Datei benutzt werden. Sie kann mit den Befehlen swapon /myswap und swapoff /myswap zugeschaltet oder abgeschaltet werden.

Bevor Sie die Datei löschen müssen Sie zuerst den Swapspeicher mit dem swapoff Befehl abschalten.

pic12

Wenn Sie ihn dauernd verwenden wollen, können Sie die /etc/fstab durch einen Eintrag ergänzen:

/myswap swap swap defaults 0 0

Es gibt einige Systemverzeichnisse, /dev und /proc, die nähere Erläuterungen benötigen.

/dev

Anders als die anderen Verzeichnisse, die erkennbar Dateien enthalten, ist dieses Verzeichnis etwas eigenartig. Aber auch dieses Verzeichnis enthält Dateien - Gerätedateien. Wie schon früher erwähnt behandelt Linux alles wie eine Datei. Gerätedateien sagen uns also wie wir mit der Hardware des Systems kommunizieren müssen. Es gibt zwei unterschiedliche Typen: Blockgeräte zum Speichern von Daten und Eingabegeräte für den Datenaustausch. Eine Festplatte ist ein Blockgerät und eine Tastatur ein Eingabegerät.

Bei der Langform der Ausgabe des Inhaltes eines Verzeichnisses mit ls -l kennzeichnet das erste Zeichen in einer Zeile den Dateityp. - für eine normale Datei, d für ein Verzeichnis und l für einen Verweis (link) auf eine andere Datei. Wenn wir ls -l /dev eingeben, werden wir feststellen, dass abgesehen von einigen Zeilen, die mit d oder l beginnen, die meisten mit b oder c beginnen und damit ein Blockgerät oder ein Eingabegerät kennzeichnen. Jedes Gerät des Systems und sogar auch einige, die gar nicht vorhanden sind, werden hier gemeinsam mit den Speichergeräten aufgelistet. /dev/null und dev/zero haben wir schon kennen gelernt.

Wenn Sie sich die Liste mit den Speicher- u. Eingabegeräten anschauen, werden Sie etwas Merkwürdiges hinsichtlich der Dateigröße feststellen. Zwei durch ein Komma getrennte Zahlen sind hier angegeben. Es handelt sich dabei nicht um die Dateigröße, sondern um die sogenannten „major“ und „minor“ Gerätezahlen. Die major Gerätezahl spezifiziert den Typ des Gerätes. Der Kernel braucht sie um festzulegen welchen Treiber er zur Kommunikation mit dem Gerät braucht. Die minor Gerätezahl bezieht sich auf ein ganz spezielles Gerät. Hier ein Beispiel:

Der erste IDE/PATA Kanal eines PC kann 2 Geräte (master/slave) aufnehmen. Ihm ist das Blockgerät major 3 zugewiesen. Die Bezeichnung des ersten vollständigen Geräts ist dann hda - block 3,0. Die Partitionen auf dem Gerät werden dann fortlaufend numeriert.

hda1    3, 1
hda2    3, 2

(und so weiter).

Das zweite Gerät ist:

hdb    block 3,64
hdb1   3,65
hdb2   3,66

usw. Der zweite ide Kanal (hdc & hdd) erhält major Geratezahl 22.

SCSI Geräte (darunter SATA Laufwerke und USB Speichergeräte) beginnen mit der major Zahl 8. Minor Zahlen wiederholen sich mit einer Periode von 16, es kann also höchstens 15 Partitionen auf einem Gerät geben.

Die Numerierung von Partitionen auf SCSI Geräten ist vergleichbar mit der von IDE/PATA Geräten. Sie haben folgende Bezeichnungen:

sda1    8, 1
sda2    8, 2

Das ist immer so bei Systemen die mit SATA Laufwerken ausgerüstet sind. Sind USB Speichermedien, einschliesslich externer Festplatten und Speicherkartenleser (SD/MMC, MemoryStick, CompactFlash, etc) vorhanden, ist der Gerätename sdx. Dabei wird x durch die Reihenfolge bestimmt, mit der das USB Gerät ins System eingebunden wird. Nehmen wir ein Beispiel. Ein Laptop besitzt ein SATA Laufwerk und einen eingebauten Kartenleser der SD/MMC und MemoryStick Karten lesen und beschreiben kann. Dann heissen die Festplatte sda und der Kartenleser sdb. Wenn Sie eine externe Festplatte anschliessen, erhält diese die Bezeichnung sdc.

/proc

Hier gibt es eine Fülle wertvoller Informationen. Sie stellen den kompletten Zustand des Systems dar. Leider ist es nicht einfach, genau das zu finden, was Sie wollen und wenn Sie es finden, werden Sie von der Detailfülle überwältigt sein. Wenn Sie sich das Verzeichnis anschauen, werden Sie viele Unterverzeichnisse finden die anstelle von Namen mit Zahlen gekennzeichnet sind. Jedes dieser Verzeichnisse enthält alle Einzelheiten über einen laufenden Prozess. Die Zahlen sind Prozesskennzahlen und das erste dieser Unterverzeichnisse trägt die Bezeichnung 1 für den Prozess 1 - init, der erste Prozess der boot Sequenz. Wenn Sie ein wenig in diesen Verzeichnissen herumstöbern, können Sie Dinge herausfinden wie den vollständigen Befehl für das Starten des Prozesses, sein gegenwärtiges Arbeitsverzeichnis und eine Menge anderer Dinge, die der Kernel „cool“ findet, für uns Sterbliche aber wenig Bedeutung haben. Wenn Sie diese mit Zahlen bezeichneten Unterverzeichnisse nicht weiter beachten, kommt mehr verständlicher Sinn in die Sache. Wenn Sie alles über Ihren Prozessor wissen wollen, versuchen Sie es mal mit cat /proc/cpuinfo. Sie wünschen eine Liste der Module? Benutzen Sie cat /proc/modules. Hier sind die meisten Dateien nur lesbar (read only), manche jedoch, insbesondere viele im Verzeichnis /proc/sys können auch beschrieben werden. Auch wenn Änderungen nur bis zum nächsten Systemstart bestand haben, sollten Sie hier vorsichtig sein.

Ein Beispiel hierfür: Sie wollen temporär den hostname Ihrer Maschine ändern und geben als root echo newhostname > /proc/sys/kernel/hostname. ein. Starten Sie ein neues Terminal und sehen Sie sich die Auswirkung an.