Partitionierung und Verzeichnisstruktur

Aus Linupedia
Wechseln zu: Navigation, Suche

Schon bei einer typischen Linux Grundinstallation werden einige 10tausend Dateien angelegt, mit einigen zusätzlichen Annehmlichkeiten und einiger Programmpakete kann man dann sehr schnell 100000 Dateien und weit mehr in seinem Linuxsystem haben. Da fragt man sich doch, wer soll sich da noch auskennen, und wer hält dort Ordnung

Die Linux-Verzeichnisstruktur verstehen

In Linux und allen anderen UNIX verwandten Betriebssystemen gibt es einen einzigen Dateibaum, der von einer einzigen Wurzel (eng. root) aus ( / ) Baumartig verzweigt. Dabei kann dieser Dateibaum sogar aus mehreren Filesystemen bestehen, die dort als Unterbaum an jeweils einer Position in die Gesamtstruktur eingehängt werden. So können zB auch Wechselmedien und Verzeichnisstrukturen von anderen Rechnern in diesen Dateibaum eingehängt werden. Diese Einhängepunkte nennt man (Mountpoints) den Vorgang des Einhängens selbst mounten. Damit dabei aber nun nicht jeder Rechner in seiner Filestruktur anders aussieht, braucht man darin eine bestimmte Ordnung. Diese Ordnung die den prinzipiellen Aufbau des Filesystems beschreibt ist der Filesystem Hierarchie Standard.

Dieser ist im Internet an vielen Stellen mehr oder weniger ausführlich auch in Deutsch beschrieben, so dass wir hier an dieser Stelle auf eine eigene Beschreibung verzichten können und stattdessen auf einige dieser Seiten verweisen.

An dieser Stelle soll das Filesystem einmal von einer anderen Seite beleuchtet werden.

Besonders Linuxneulinge sind manchmal schon bei der Installation überfordert, wenn es um das Erstellen der richtigen Partitionsgrößen und das Festlegen der richtigen Partitionierung für ihr eigenes Linux geht. So kommt es dann nicht selten vor, dass dann nach einiger Zeit ein Filesystem zu klein wird, ein anderes jedoch viel zu groß gewählt wurde. So steht man vor der Aufgabe, Filesysteme zu verschieben, Partitionsgrößen zu ändern, oder das ganze Betriebssystem noch einmal von ganz unten neu aufzubauen. Die Installation von Linux enthält zwar Distributionsabhängig in der Dokumentation oder der Onlinehilfe beim Installieren einige Hinweise, diese reichen jedoch oftmals nicht für alle Eventualitäten aus.

Zum Verstehen der nächsten Abschnitte sollten jetzt die Begriffe Partition , Filesystem , Mountpoint und ihr Zusammenwirken im Dateibaum schon vom Prinzip klar sein.

In dem folgendem Bild wird jetzt trotzdem nocheinmal ein typischer Linuxdateibaum gezeigt. In ihm sind typische und mögliche Mountpoints eingetragen, und die einzelnen Abschnitte dann farbig gekennzeichnet.

Dateibaum.gif


Root ( / ) (rot)

  • In ihm sind alle Dateien angelegt, die das System schon während des bootens benötigt, ein großteil der Konfigurationsdateien und das Homeverzeichnis vom root
  • Das Filesystem muss während der Laufzeit von Linux immer beschreibbar sein, und kann auch nicht ausgehängt werden.
  • Es muss zwingend die hier rot angezeigten Directories enthalten, sonst kann Linux nicht starten, oder ist im Fehlerfall unter Umständen nicht administrierbar.
  • Der hier rot angezeigte Bereich im Dateibaum wird (soweit root nicht unnötige Dateien in seinem Homeverzeichnis hordet) nicht größer als 500 MByte


/var (braun)

  • hier befinden sich veränderliche Daten von Linux (unter anderen auch Mails, Druckaufträge)
  • Filesystem muss immer zum Schreiben gemountet sein, und kann nicht ausgehängt werden
  • Filesystem kann bei bestimmter Verwendung als Server hier schnell viel Speicherplatz benötigen.
  • Im Normalfall sollten hier 1 bis 2GB ausreichen, wenn jedoch hier zB. Datenbanken, Mail- oder FTP- Webserver viele Daten anlegen, muss man das berücksichtigen.


/var/tmp

  • Wird seltener als separates Filesystem betrieben.
  • eine Größe bis 500MB sollten im Normalfall vollkommen ausreichend sein, könnte nicht ausgehängt werden.


/var/www oder /var/ftp (bei openSUSE ausgelagert in /srv/www bzw. /srv/ftp)

  • dieses sind spezielle Verzeichnisse für die Serverdienste und sollten dringend auf separate Filesysteme gelegt werden, sobald hier größere Server laufen.
  • die Größe richtet sich hier dann natürlich nach den Aufgaben des Servers
  • kann zu Wartungsaufgaben ausgehängt werden, wenn die Server vorher angehalten werden


/boot (gelb)

  • hier befinden sich im wesentlichen der Kernel und die Bootkonfiguration, sowie die Bereiche des Bootloaders die nur zum Starten von Linux benötigt werden.
  • Als eigenes Filesystem benötigt es nur wenige MByte (empfohlen 32MB -64MB) und muss während der Arbeit mit Linux nicht eingehängt sein, oder darf "nur Lesen" gemountet sein. Nur während bestimmter Konfigurationen und Updates muss es beschreibbar eingehängt sein.
  • Die Partition dieses Filesystems sollte sich möglichst am Anfang der Festplatte befinden, da auf diese Dateien mittels BIOS-Funktionen zugegriffen werden muss.
  • heute ist es nicht mehr allzuoft erforderlich dies als eigenes Filesystem auszulegen und wird heute oft auf Rootfilesytem belassen.
  • Sollte nach einer Installation ohne separates /boot zu Bootproblemen kommen, sollte man es mal mit separatem /boot versuchen.


/tmp

  • hier werden die meisten temporären Dateien abgelegt, kann im laufenden Betrieb nicht ausgehängt werden.
  • Bei Rechnern auf denen mehrere User arbeiten, sollte man /tmp als eigenes Filesystem anlegen, oder die Nutzung von Dateien mittels Disk Quota beschränken. Wird der Rechner jedoch nur als Router oder als ähnlicher Server genutzt, kann man /tmp getrost mit auf der Rootpartition belassen.
  • Die benötigte Größe ist je nach Benutzung des Rechners recht unterschiedlich, man sollte jedoch für einen Rechner auf dem auch Multimediaanwendungen laufen sollen, durchaus einmal einrechen, das es auch Anwendungen gibt, die dort bis 5 GB freien Plattenplatz haben möchten. (Es ist jedoch meist auch möglich solche Anwendungen so zu konfigurieren, dass die temporären Dateien wo anders abgelegt werden.) Auf einen typischen Linuxrechner sollten 2 bis 4 GB Größe als /tmp durchaus ausreichen. Gegebenenfalls muss man hier durch die Konfiguration der Programme dann den Zugriff einschränken, oder Prüfen ob die Temporären Dateien wieder gelöscht werden. ( /tmp Dateien automatisch löschen )


/usr (blau, steht für unix system resource und nicht für user)

  • diese benötigt den meisten Platz vom Betriebssystem.
  • Das Filesystem kann während der normalen Arbeit mit Linux "read only" eingehängt sein, nur zu Updates und bei der Installation muss es zum Schreiben zu öffnen sein.
  • dieses Filesystem kann im laufenden Betrieb nicht ausgehängt werden
  • je nach geplanten Installationsumfang darf man schon mal mit 5 GB (nur blauer Bereich) benötigten Platz hier einrechnen.


/usr/local (grün)

  • hier befinden sich Programme die nicht zur Distribution gehören, also zB selbst aus den Quellen erstellt werden.
  • Normalerweise belässt man das mit auf /usr und rechnet mit bis 1GB für diesen Bereich. In Ausnahmefällen, wenn von vorn herein fest steht, dass vieles Distributionsfremdes installiert wird, oder zB sehr viel mit solchen Programmen experimentiert wird, dann kann es von Vorteil sein, dieses als eigene Partition anzulegen
  • Kann "read only" eingehängt werden, es gilt das selbe wie unter /usr
  • kann unter Umständen im laufenden Betrieb kurzzeitig für Wartungsarbeiten ausgehängt werden


/usr/src (Hell Magenta)

  • Hier befinden sich der Quellcode von Linux sowie Quellcode von Programmen und Dateien die während der Kompilation daraus entstehen.
  • normaler Weise belasst man das auf /usr , wer jedoch selbst programmiert oder viele Programme selbst übersetzt, für den kann es von Vorteil sein hier eine eigene Partition zu nutzen.
  • Im normalen Betrieb von Linux sollte "read only" reichen, wenn allerdings hier kompiliert werden soll, benötigt man Schreibrechte.
  • kann im laufenden Betrieb für Wartungsarbeiten ausgehängt werden, oder nur bei Bedarf gemountet werden
  • die Größe schwankt hier, je nachdem was man vorhat, Um zB eine Kernel zu kompilieren, sollte man hier 500-700MB einrechnen. Für jemanden der nicht selbst kompiliert aber zB mittels APT, Smart oder sonstigen Paketmanagern installieren möchte sollte hier einige GB zur Verfügung haben


/proc und /sys

  • Spezielle Verzeichnisse von Linux, es wird hier kein richtiges Filesystem eingehängt, sonder ist nur Schnittstelle zum Kernel
  • dafür braucht kein Filesystem zur Verfügung gestellt werden.


/opt (schwarz)

  • Hier werden optionale Programme abgelegt, ZB: KDE GNOME OpenOffice (wird von einigen Linuxdistributionen nicht genutzt)
  • Wird nur meistens auf kleineren Systemen auf der Rootpartition belassen und nicht als eigenes Filesystem betrieben.
  • Die Größe ist überschaubar, da man in der Regel die größeren optionalen Programme kennt, die installiert werden sollen.
  • Für KDE Gnome und OpenOffice sollte man ca. 2GB rechnen
  • kann im Laufenden Betrieb "readonly" gemountet werden.
  • Aushängen für Wartungsarbeiten ist im Runlevel 1, 2 und oft auch 3 möglich, eventuell müssen davor dort laufende optionale Server vorher gestoppt werden.


/media/....

  • hier werden die Wechseldatenträger CD DVD Floppy USB usw gemountet


/home

  • hier befinden sich die Homeverzeichnisse und die Daten der einzelnen User
  • sollte immer als eigenes Verzeichnis angelegt werden, sobald am Rechner richtige User arbeiten
  • die Größe richtet sich nach dem Platzbedarf der User, es kann aber auch für jeden User ein extra Filesystem gemountet werden.
  • Kann im Runlevel 1, oder wenn keine User angemeldet sind im Runlevel 2 und 3 für Wartungsarbeiten ausgehängt werden


/mnt

  • dieser Mountpoint wird bei jeder Installation automatisch mit angelegt, und sollte nicht fest für eine Filesystem vergeben werden, sondern frei für speziell temporäres Mounten zB bei Wartungsarbeiten zur Verfügung stehen.


Swap

  • Swap ist der Auslagerungsort für den Hauptspeicher, und wird oft als Partition angelegt
  • Swap wird nicht in das Filesystem eingehängt sondern direkt im Kernel und kann auch nicht direkt benutzt werden, sondern wird vom Kernel verwaltet
  • früher ( bei damals noch 4-32MB Hauptspeicher) war die Faustregel Swap=doppelte Größe vom Hauptspeicher, diese Aussage ist bei den heutigen Speichergrößen etwas überholt, wird aber immer noch gerne als Anhaltspunkt genommen.
  • Prinzipiell je größer der Hauptspeicher, desto kleiner darf Swap werden. Bei 1GB Hauptspeicher wird auf einem normalem Rechner schon fast nie Swap benötigt.
  • Swap wird aber auf alle Fälle benötigt bei "Suspend to Disk" und sollte hier mindestens so groß sein, wie der Hauptspeicher selbst.


Wie aus dieser Aufstellung ersichtlich ist, hängt es sehr stark davon ab, zu was der Rechner nun benutzt werden soll, um eine für diesen Rechner optimale Partitionierung festzulegen. Bei einer optimalen Partitionierung sollten alle Filesysteme nicht über 80% belegt sein. Aber auch die Möglichkeit, dass bestimmte Filesysteme read only gemountet werden können, was im laufenden Betrieb eine deutliche Erhöhung der Sicherheit des Rechners darstellt, spielt heute öfter eine Rolle. Unter gewissen Umständen kann auch die Tatsache, dass die einzelnen Filesysteme unterschiedliche Eigenschaften haben und damit verbunden dann auch bestimmte Performancevorteile auf bestimmten Abschnitten des Filesystems, dazu führen, dass man mit mehr Partitionen arbeitet, als es notwendig wäre.

Beachten sollte man:

  • Homeverzeichnisse der User und größere Verzeichnisse für Server sollten nach Möglichkeit immer separat vom Rootfilesystem gehalten werden.
  • Sollten diese Verzeichnisse nicht vom Rootverzeichnis getrennt sein, sollte man Vorsorge treffen, damit einzelne User oder Server nicht durch irgendwelche Aktionen das Rootfilesysteme bis zum Anschlag vollschreiben können, und somit das Betriebssystem komplett ausbremsen können.

Weitere Links

Platteneinbau und Partitionierung unter Linux

http://www.easylinux.de/Artikel/ausgabe/2003/12/030-platteneinbau/index.html


--Robi 01:09, 1. Nov 2006 (CET)