Gentoo Logo

[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


4. Vorbereiten der Festplatte(n)

Inhalt:

4.a. Einführung in Block Devices

Block Devices

Wir werden einen guten Einblick in die auf Festplatten bezogenen Aspekte von Gentoo Linux und Linux im allgemeinen, inklusive Linux-Dateisystemen, Partitionen und Block Devices erhalten. Dann, sobald Sie mit den Vor- und Nachteilen von Festplatten und Dateisystemen vertraut sind, werden Sie durch den Prozess des Partitionierens und der Dateisystemerstellung für Ihre Gentoo Linux Installation geführt.

Zu Beginn werden wir Ihnen Block Devices vorstellen. Das berühmteste Block Device is wahrscheinlich das, welches das erste IDE Laufwerk in einem Linux-System repräsentiert, namentlich /dev/hda. Wenn Ihr System SCSI- oder SATA-Laufwerke verwendet, dann wäre Ihre erste Festplatte /dev/sda.

Das obige Block Device repräsentiert ein abstraktes Interface zur Festplatte. Benutzerprogramme können diese Block Devices benutzen, um Ihre Festplatte anzusprechen, ohne sich darum zu kümmern, ob Ihre Festplatten IDE, SCSI oder irgendwas anderes sind. Das Programm kann den Speicherplatz auf der Festplatte einfach als eine Anhäufung von zusammenhängenden, beliebig zugreifbaren 512-Byte Blöcken ansprechen.

Partitionen und Slices

Obwohl es theoretisch möglich ist eine ganze Festplatte zu nutzen, um Ihr Linux-System zu beherbergen, wird dies in der Praxis so gut wie nie gemacht. Stattdessen werden komplette Festplatten Block Devices in kleinere, besser verwaltbare Block Devices unterteilt. Auf den meisten Systemen werden sie Partitionen genannt. Andere Architekturen benutzen ähnliche Techniken, welche Slices genannt werden.

Partitionen

Es wird zwischen drei Partitionstypen unterschieden: primäre, erweiterte und logische.

Eine primäre Partition ist eine Partition, deren Informationen im MBR (Master Boot Record) gespeichert sind. Da ein MBR sehr klein ist (512 Bytes), können nur vier primäre Partitionen definiert werden (zum Beispiel /dev/hda1 bis /dev/hda4).

Eine erweiterte Partition ist eine spezielle primäre Partition (was bedeutet, dass eine erweiterte Partition eine der vier möglichen primären Partitionen sein muss), welche mehrere Partitionen beinhaltet. Eine solche Partition existierte ursprünglich nicht, aber da vier Partitionen zu wenig sind, wurden sie erfunden, um das Format zu erweitern ohne die Rückwärtskompabilität zu verlieren.

Eine logische Partition ist eine Partition innerhalb einer erweiterten Partition. Ihre Definitionen sind nicht im MBR gespeichert, sondern in der erweiterten Partition.

4.b. Erstellung eines Partitionsschemas

Standard-Partitionsschema

Wenn Sie nicht daran interessiert sind ein Partitionsschema für Ihr System zu erstellen, können Sie das Partitionsschema verwenden, welches wir in diesem Handbuch benutzen:

Partition Dateisystem Größe Beschreibung
/dev/hda1 ext2 32M Boot-Partition
/dev/hda2 (swap) 512M Swap-Partition
/dev/hda3 ext3 Rest der Festplatte Root-Partition

Wenn Sie daran interessiert sind zu erfahren, wie groß eine Partition sein sollte, oder auch wie viele Partitionen (oder Volumes) Sie benötigen, lesen Sie weiter. Anderenfalls fahren Sie nun mit dem Partitionieren Ihrer Festplatte fort:

Wie viele und wie groß?

Die Anzahl an Partitionen hängt von Ihrer Umgebung ab. Wenn Sie z.B. eine Menge User haben, wollen Sie höchst wahrscheinlich Ihr /home separat halten, da es die Sicherheit erhöht und Backups einfacher macht. Wenn Sie Gentoo installieren um als Mailserver zu fungieren, sollten Sie /var separat halten, da alle Mails in /var gespeichert werden. Eine gute Wahl des Dateisystems maximiert dann zusätzlich die Performance. Gameserver sollten ein separates /opt haben, da die meisten Game-Server dort installiert werden. Der Grund ist ähnlich wie bei /home: Sicherheit und Backups. Es liegt definitiv in Ihrem Interesse, /usr groß zu halten: es wird nicht nur die Mehrheit der Programme enthalten; der Portage Baum allein belegt etwa 500Mbyte, ohne die verschiedensten Quellen die darin gespeichert sind mitzurechnen.

Wie Sie sehen können, hängt es sehr stark davon ab, was Sie erreichen wollen. Separate Partitionen oder Volumes haben folgende Vorteile:

  • Sie können das Filesystem mit der höchsten Performance für jede Partition oder jedes Volume auswählen
  • Ihr System behält noch freien Speicherplatz, selbst wenn ein defektes Tool ununterbrochen Dateien auf eine Partition oder ein Volume schreibt
  • Falls nötig können Dateisystem-Checks zeitlich verkürzt werden, indem mehrere Checks parallel durchgeführt werden können (obwohl dieser Vorteil eher mit mehreren Festplatten als mit mehreren Partitionen zum Tragen kommt)
  • Die Sicherheit kann erhöht werden, indem Sie einige Partitionen oder Volumes read-only, nosuid (setuid-Bits werden ignoriert), noexec (executable-Bits werden ignoriert) etc. mounten.

Mehrere Partitionen haben jedoch einen großen Nachteil: wenn sie nicht ordentlich konfiguriert werden, könnte das Resultat ein System sein, welches viel Speicherplatz auf der einen Partition und keinen auf einer anderen frei hat. Es gibt weiterhin ein 15-Partitionen-Limit für SCSI und SATA.

Als Beispiel zeigen wir Ihnen die Partitionierung einer 20GB-Festplatte, welche in einem Notebook zu Demonstrationszwecken genutzt wird (inklusive Webserver, Mailserver, Gnome, ...):

Befehlsauflistung 2.1: Beispielverteilung für Dateisysteme

$ df -h
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hda5     ext3    509M  132M  351M  28% /
/dev/hda2     ext3    5.0G  3.0G  1.8G  63% /home
/dev/hda7     ext3    7.9G  6.2G  1.3G  83% /usr
/dev/hda8     ext3   1011M  483M  477M  51% /opt
/dev/hda9     ext3    2.0G  607M  1.3G  32% /var
/dev/hda1     ext2     51M   17M   31M  36% /boot
/dev/hda6     swap    516M   12M  504M   2% <not mounted>
(Unpartitionierter Speicherplatz für zukünftige Benutzung: 2 GB)

/usr ist ziemlich voll (83% used), aber sobald die ganze Software installiert ist, tendiert /usr nicht mehr dazu allzuviel zu wachsen.Die Zuweisung von einigen Gigabyte Festplattenspeicher für /var erscheint exzessiv, Sie sollten aber daran denken, dass Portage diese Partition standardmäßig zur Kompilierung von Paketen verwendet. Wenn Sie /var eine etwas angemessenere Größe, wie z.B. 1GB, zuweisen möchten, müssen Sie die PORTAGE_TMPDIR Variable in /etc/make.conf auf eine Partition mit genügend freiem Speicherplatz verweisen lassen, damit genug freier Speicher auch für extrem große Pakete wie OpenOffice vorhanden ist.

4.c. Partitionierung Ihrer Festplatte

Die folgenden Teile erklären, wie das bereits beschriebene Beispiel-Partitionslayout erstellt wird:

Partition Beschreibung
/dev/hda1 Boot-Partition
/dev/hda2 Swap-Partition
/dev/hda3 Root-Partition

Ändern Sie Ihr Partitionslayout nach Ihren eigenen Vorstellungen.

Die derzeitige Partitionstabelle ansehen

fdisk ist ein verbreitetes und mächtiges Tool um Ihre Festplatte in Partitionen zu teilen. Starten Sie fdisk für Ihre Festplatte (in unserem Beispiel benutzen wir /dev/hda):

Befehlsauflistung 3.1: Starten von fdisk

# fdisk /dev/hda

Sobald Sie in fdisk sind, werden Sie mit folgendem Prompt begrüßt:

Befehlsauflistung 3.2: fdisk-Prompt

Command (m for help):

Drücken Sie p um Ihre derzeitige Partitionstabelle anzeigen zu lassen:

Befehlsauflistung 3.3: Eine Beispiel-Partitionstabelle

Command (m for help): p

Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1        14    105808+  83  Linux
/dev/hda2            15        49    264600   82  Linux swap
/dev/hda3            50        70    158760   83  Linux
/dev/hda4            71      2184  15981840    5  Extended
/dev/hda5            71       209   1050808+  83  Linux
/dev/hda6           210       348   1050808+  83  Linux
/dev/hda7           349       626   2101648+  83  Linux
/dev/hda8           627       904   2101648+  83  Linux
/dev/hda9           905      2184   9676768+  83  Linux

Command (m for help):

Diese Festplatte beherbergt sieben Linux-Dateisysteme (jedes mit einer dazugehörigen Partition, gelistet als "Linux") und auch eine Swap-Partition (gelistet als "Linux swap").

Löschen aller Partitionen

Zuerst entfernen wir alle existierenden Partitionen von der Festplatte. Drücken Sie d um eine Partition zu löschen. Zum Beispiel um ein bestehendes /dev/hda1 zu löschen:

Befehlsauflistung 3.4: Löschen einer Partition

Command (m for help): d
Partition number (1-4): 1

Die Partition wurde zum Löschen markiert und wird nicht mehr angezeigt, wenn Sie p drücken, sie wird aber nicht gelöscht, bis Ihre Änderungen gespeichert sind. Wenn Sie einen Fehler gemacht haben und ohne zu speichern abbrechen wollen, drücken Sie umgehend q und Enter; Ihre Partition wird dann nicht gelöscht.

Angenommen, dass Sie wirklich all Ihre Partitionen auf Ihrer Festplatte löschen wollen, drücken Sie noch einmal p um die Partitionstabelle anzuzeigen und dann d und die Nummer der Partition die Sie löschen wollen. Irgendwann werden Sie eine leere Partitionstabelle haben:

Befehlsauflistung 3.5: Eine leere Partitionstabelle

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System

Command (m for help):

Jetzt, da die Partitionstabelle im Speicher leer ist, sind wir vorbereitet, um die Partitionen zu erstellen. Wir werden ein Standard-Partitionsschema benutzen, wie wir es zuvor angesprochen haben. Natürlich sollten Sie die Instruktionen nicht buchstäblich ausführen, wenn Sie ein anderes Partitions-Schema verwenden wollen!

Erstellung der Boot-Partition

Zuerst erstellen wir eine kleine Boot-Partition. Drücken Sie n um eine neue Partition zu erstellen, dann p um eine primäre Partition zu wählen, gefolgt von 1 für die erste primäre Partition. Wenn Sie nach dem ersten Zylinder gefragt werden, drücken Sie Enter. Für den letzten Zylinder geben Sie +32M ein, um eine 32MB-Partition zu erzeugen.

Befehlsauflistung 3.6: Erstellen der Boot-Partition

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1): (Enter-Taste drücken)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M

Wenn Sie jetzt p drücken, sollten Sie die folgende Partitionstabelle sehen:

Befehlsauflistung 3.7: Erstellte Boot-Partition

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1          1        14    105808+  83  Linux

Sie müssen diese Partition bootbar machen. Drücken Sie a um das Boot-Flag auf dieser Partition zu aktivieren und wählen Sie 1. Wenn Sie wiederum p drücken, werden Sie feststellen, dass in der "Boot"-Spalte ein * platziert ist.

Erstellen der Swap-Partition

Nun erstellen Sie die Swap-Partition. Dazu drücken Sie n um eine Partition zu erstellen, dann p um fdisk mitzuteilen, dass Sie eine primäre Partition anlegen möchten. Dann drücken Sie 2 um die zweite primäre Partition, dev/hda2 in unserem Fall, anzulegen. Wenn Sie nach dem ersten Zylinder gefragt werden, drücken Sie Enter. Wenn Sie nach dem letzen Zylinder gefragt werden, tippen Sie +512M um eine Partition mit einer Größe von 512 MB zu erstellen. Nachdem Sie dies getan haben, müssen Sie mit t den Partitionstyp festlegen, mit 2 die gerade angelegte Partition auswählen und dann mit 82 den Partitionstyp als "Linux Swap" festlegen. Nachdem Sie diese Schritte abgeschlossen haben, drücken Sie p und Sie erhalten eine Paritionstabelle, die dieser recht ähnlich schaut:

Befehlsauflistung 3.8: Partitionstabelle nach dem Erstellen der Swap-Partition

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap

Erstellen der Root-Partition

Zum Schluss müssen Sie noch die Root-Partition erstellen. Dazu drücken Sie n um eine Partition zu erstellen, dann p um fdisk mitzuteilen, dass Sie eine primäre Partition anlegen möchten. Dann drücken Sie 3 um die dritte primäre Partition, dev/hda3 in unserem Fall, anzulegen. Wenn Sie nach dem ersten Zylinder gefragt werden, drücken Sie Enter. Wenn Sie nach dem letzen Zylinder gefragt werden, tippen Sie Enter um eine Partition zu erstellen, die den restlichen freien Platz belegt. Nachdem Sie diese Schritte abgeschlossen haben, drücken Sie p und Sie erhalten eine Paritionstabelle, die dieser recht ähnlich sieht:

Befehlsauflistung 3.9: Partitionstabelle nach dem Erstellen der Root-Partition

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap
/dev/hda3         82      3876  28690200   83  Linux

Speichern der Partitionstabelle

Um die Partitionstablle zu speichern und fdisk zu verlassen, drücken Sie w.

Befehlsauflistung 3.10: Speichern und verlassen von fdisk

Command (m for help): w

Nachdem Ihre Partitionen nun erstellt sind können Sie mit dem Erstellen der Dateisysteme fortfahren.

4.d. Erstellen der Dateisysteme

Einleitung

Jetzt sind Ihre Partitionen erstellt, so dass es nun an der Zeit ist Dateisysteme anzulegen. Wenn Sie mit dem zufrieden sind, was wir Ihnen vorschlagen, dann fahren Sie mit Dateisystem auf einer Partition anlegen fort. Wenn nicht, lesen Sie weiter, um ein wenig mehr über Dateisysteme zu lernen...

Dateisysteme?

Verschiedene Dateisysteme sind verfügbar. Einige von ihnen sind als stabil auf amd64 gekennzeichnet, andere nicht. Die folgenden Dateisystem sind als stabil auf amd64 gekennzeichnet: ext2 und ext3. JFS und ReiserFS können funktionieren, benötigen aber weitere Prüfung. Wenn Sie ein Abenteuer suchen können Sie eines der nicht unterstützten Dateisysteme nutzen.

ext2 ist das erprobte und wahre Linux-Dateisystem, unterstützt aber kein Metadata Journaling, was bedeutet, dass routinemäßige Dateisystem-Checks beim Booten sehr zeitaufwändig sein können. Es gibt mittlerweile eine Auswahl an journalisierenden Dateisystemen neuerer Generation, die die Konsistenzchecks sehr schnell erledigen und dadurch im Vergleich mit den nicht-journalisierenden Gegenstücken vorzuziehen sind. Jounalisierende Dateisysteme verhindern lange Verzögerungen beim Booten, wenn sich das Dateisystem in einem inkonsistenten Zustand befindet.

ext3 ist die journalisierende Version des ext2-Dateisystems, die Metadata Journaling für schnelle Wiederherstellung sowie andere verbesserte Journaling-Modi wie "full data" und "ordered data" Jornaling unterstützt. ext3 ist ein sehr gutes und verlässliches Dateisystem. Es hat eine zusätzliche b-tree-Indexing-Option die in fast allen Situationen hohe Performance ermöglicht. Sie können diese Indizierung aktivieren indem Sie -O dir_index zum Befehl mke2fs hinzufügen. Kurz gesagt: ext3 ist ein exzellentes Dateisystem.

ReiserFS ist ein B*-tree-basierendes Dateisystem mit einer guten Performance und überholt sowohl ext2 und ext3 im Umgang mit kleinen Dateien (Dateien kleiner als 4k) oftmals mit einem Faktor von 10x-15x. ReiserFS skaliert extrem gut und hat Metadata Journaling. Seit Kernel 2.4.18+ ist ReiserFS stabil und sowohl als Dateisystem für generelle Anwendungen, als auch für extreme Fälle wie große Dateisysteme, den Gebrauch mit vielen kleinen Dateien, den Gebrauch mit sehr großen Dateien und Verzeichnissen mit tausenden von Dateien brauchbar.

XFS ist ein Dateisytem mit Metadata Journaling, das mit einem robusten Feature-Set kommt und auf Skalierbarkeit ausgelegt ist. Wir empfehlen den Einsatz dieses Dateisystems nur auf Linux-Systemen mit High-End SCSI und/oder Fibre Channel Storage und einer redundaten Stromversorgung. Da XFS agressiv vom RAM Gebrauch macht, können unsachgemäß designte Programme (solche die keine Vorsichtsmaßnahmen treffen, wenn sie auf die Festplatte schreiben und davon gibt es einige) dazu führen, dass eine ganze Menge Daten verloren gehen, wenn das System unerwartet ausfällt.

JFS ist IBMs Hochleistungs Journaling Dateisystem. Es ist vor kurzem einsatzbereit geworden und es gibt noch keine ausreichende Spur, so dass seine allgemeine Stabilität an diesem Punkt weder positiv noch negativ kommentiert werden kann.

Eine Partition mit einem Dateisystem formatieren

Um ein Dateisystem auf einer Partition oder einem Volume zu erstellen, gibt es für jedes Dateisystem Tools:

Dateisystem Kommando
ext2 mke2fs
ext3 mke2fs -j
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

Um die Boot-Partition (/dev/hda1 in unserem Beispiel) als ext2 und die Root-Partition (/dev/hda3 in unserem Beispiel) als ext3 (wie in unserem Beispiel) zu formatieren, führen Sie folgende Kommandos aus:

Befehlsauflistung 4.1: Eine Partition mit einem Dateisystem formatieren

# mke2fs /dev/hda1
# mke2fs -j /dev/hda3

Erstellen Sie nun die Dateisysteme auf Ihren neu erstellten Partionen.

Aktivieren der Swap-Partition

mkswap ist das Kommando, mit dem Sie die Swap-Partition initialisieren:

Befehlsauflistung 4.2: Erstellen der Swap-Signatur

# mkswap /dev/hda2

Um die Swap-Partition zu aktivieren, benutzen Sie swapon:

Befehlsauflistung 4.3: Aktivieren der Swap-Partition

# swapon /dev/hda2

Erstellen und aktivieren Sie jetzt Ihre Swap Partition, indem Sie die obigen Kommandos benutzen.

4.e. Mounten

Nachdem Ihre Partitionen nun initialisiert sind und ein Dateisystem beinhalten, ist es an der Zeit diese Partitionen zu mounten. Benutzen Sie das Kommando mount. Vergessen Sie nicht die notwendigen Mount-Verzeichnisse für jede erstellte Partition anzulegen. Als Beispiel mounten wir die Partitionen root und boot:

Befehlsauflistung 5.1: Mounten von Partitionen

# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot

Notiz: Wenn Sie /tmp auf eine separate Partition legen möchten, stellen Sie sicher, dass Sie die Berechtigungen nach dem mounten ändern: chmod 1777 /mnt/gentoo/tmp. Dies gilt auch für /var/tmp.

Sie müssen auch noch das proc-Dateisystem (ein virtuelles Interface zum Kernel) auf /proc mounten. Zunächst müssen wir jedoch alle Dateien auf der Partition ablegen.

Fahren Sie mit der Installation der Gentoo Installations-Dateien fort.


[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


Drucken

Alles ansehen

Seite aktualisiert 9. August 2006

Diese Übersetzung wird nicht länger gepflegt

Zusammenfassung: Um Gentoo installieren zu können, müssen Sie die benötigten Partitionen erstellen. Dieses Kapitel beschreibt, wie Sie eine Festplatte für die zukünftige Benutzung partitionieren.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 Entwickler

Tavis Ormandy
Gentoo Alpha Entwickler

Jason Huebel
Gentoo AMD64 Entwickler

Guy Martin
Gentoo HPPA Entwickler

Pieter Van den Abeele
Gentoo PPC Entwickler

Joe Kallar
Gentoo SPARC Entwickler

John P. Davis
Bearbeiter

Pierre-Henri Jondot
Bearbeiter

Eric Stockbridge
Bearbeiter

Rajiv Manglani
Bearbeiter

Jungmin Seo
Bearbeiter

Stoyan Zhekov
Bearbeiter

Jared Hudson
Bearbeiter

Colin Morey
Bearbeiter

Jorge Paulo
Bearbeiter

Carl Anderson
Bearbeiter

Jon Portnoy
Bearbeiter

Zack Gilburd
Bearbeiter

Jack Morgan
Bearbeiter

Benny Chuang
Bearbeiter

Erwin
Bearbeiter

Joshua Kinard
Bearbeiter

Tobias Scherbaum
Bearbeiter

Xavier Neys
Bearbeiter

Grant Goodyear
Korrektor

Gerald J. Normandin Jr.
Korrektor

Donnie Berkholz
Korrektor

Ken Nowack
Korrektor

Lars Weiler
Mitarbeiter

Tobias Scherbaum
Übersetzer

Jens Schittenhelm
Übersetzer

Patrick Sudowe
Übersetzer

Torsten Veller
Übersetzer

Michael Frey
Übersetzer

Markus Nigbur
Übersetzer

Boris Ruppert
Übersetzer

Jan Hendrik Grahl
Übersetzer

Christian Hartmann
Korrektor

Martin Bürger
Übersetzer

Sophie Lee
Übersetzer

Thomas Gabelmann
Übersetzer

Timo Rothweiler
Übersetzer

Sebastian Westermayer
Übersetzer

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.