Gentoo Logo

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


4. Vorbereiten der Festplatte(n)

Inhalt:

4.a. Einführung in blockorientierte Geräte

Block Devices

Wir werden einen guten Einblick in die 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 ist wahrscheinlich das, welches das erste Laufwerk in einem Linux System repräsentiert, namentlich /dev/sda. SCSI- und Serial-ATA-Laufwerke erhalten beide Namen mit /dev/sd*; selbst IDE-Laufwerke werden mit dem neuen libata-Framework im Kernel mit einem /dev/sd* Namen versehen. Wenn Sie noch das alte Geräte-Framework verwenden wird Ihr erstes IDE-Laufwerk /dev/hda sein.

Das obige Block Device repräsentiert eine abstrakte Schnittstelle zur Festplatte. Benutzerprogramme können dieses Block Device benutzen, um Ihre Festplatte anzusprechen, ohne sich darum zu kümmern, ob Ihre Festplatten IDE, SCSI oder irgendetwas 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

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. Sie werden Partitionen genannt.

Itanium-Systeme benutzen zum booten EFI, das Extensible Firmware Interface. Das Partitionstabellen-Format das EFI verwendet nennt sich GPT, oder GUID-Partitions-Tabelle. Das Partitionierungs-Programm, das GPT versteht nennt sich "parted". Dieses Tool werden wir also im folgenden benutzen. Zusätzlich ist EFI in der Lage FAT-Dateisysteme zu lesen. Dies wird das Format sein, welches wir für unsere boot-Partition benutzen werden, also wo durch "elilo" der Kernel installiert wird.

Erweiterte Speicherung

Die IA64-Installations-CDs unterstützen LVM2. LVM2 erhöht die Flexibilität ihrer Partitionierung. Während der Installations-Anweisungen richten wir unser Augenmerk auf "normale" Partitionen, es ist aber gut LVM2 im Hinterkopf zu behalten.

4.b. Erstellen eines Partitionsschemas

Default-Partitions-Schema

Wenn Sie kein eigenes Partitions-Schema für ihr System aufstellen möchten, können Sie folgenden Vorschlag benutzen:

Partition Dateisystem Größe Beschreibung
/dev/sda1 vfat 32M EFI Boot Partition
/dev/sda2 (swap) 512M Swap Partition
/dev/sda3 ext4 Rest der Festplatte Root Partition

Wenn Sie wissen möchten wie groß eine Partition sein sollte, oder sogar wie viele Partitionen Sie brauchen, lesen Sie weiter. Anderenfalls fahren Sie mit dem Partitionieren Ihrer Festplatte unter dem Abschnitt Benutzen von parted zum 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 behalten: 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, in dem 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.

Jedoch haben mehrere Partitionen auch Nachteile: Wenn sie nicht ordentlich konfiguriert werden, werden Sie ein System haben, das viel Speicherplatz auf der einen Partition und keinen auf einer anderen frei hat. Ein weiteres Ärgernis ist, dass separate Partitionen - insbesondere für wichtige Einhängepunkte wie /usr oder /var - es häufig erforderlich machen, dass mit einem initramfs gebootet wird, das die Partitionen mountet, bevor andere Boot-Skripte starten. Das ist jedoch nicht immer nötig, daher treffen Sie diese Entscheidung bitte selbst.

Es gibt weiterhin ein Limit von 15 Partitionen bei SCSI und SATA, sofern Sie keine GPT-Labels verwenden.

Wir zeigen Ihnen eine Beispiel-Partitionierung anhand einer 20GB-Festplatte, eingebaut in einen Demonstrations-Laptop (mit Webserver, Mailserver, Gnome...):

Befehlsauflistung 2.1: Beispiel einer Partitionierung

$ df -h
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda5     ext4    509M  132M  351M  28% /
/dev/sda2     ext4    5.0G  3.0G  1.8G  63% /home
/dev/sda7     ext4    7.9G  6.2G  1.3G  83% /usr
/dev/sda8     ext4   1011M  483M  477M  51% /opt
/dev/sda9     ext4    2.0G  607M  1.3G  32% /var
/dev/sda1     ext2     51M   17M   31M  36% /boot
/dev/sda6     swap    516M   12M  504M   2% <not mounted>
(Unpartitionierter Platz für zukünftige Verwendung: 2 GB)

/usr ist in diesem Beispiel nahezu voll (83% benutzt), aber wenn einmal sämtliche Software insatlliert ist, wächst der Speicherplatzverbrauch in /usr nicht mehr allzu sehr. Der recht groß bemessene Platz von /var scheint etwas übertrieben, doch bedenken Sie, dass diese Partition standartmäßig von Portage genutzt wird um Pakete zu kompilieren. Wenn Sie /var kleiner halten wollen, etwa 1GB, müssen Sie ihre PORTAGE_TMPDIR-Variable in /etc/portage/make.conf ändern. Sie muss auf eine Partition mit genug Speicherplatz verweisen, um auch extrem große Pakete wie z.B. OpenOffice kompilieren zu können.

4.c. Benutzen von parted zum Partitionieren ihrer Festplatte

Im folgenden wird erklärt wie sie das zuvor beschriebene Beispiel einer Partitionierung umsetzen:

Partition Beschreibung
/dev/sda1 EFI Boot Partition
/dev/sda2 Swap Partition
/dev/sda3 Root Partition

Passen Sie das Partitions-Layout Ihren eigenen Vorstellungen entsprechend an.

Das aktuelle Partitions-Layout ansehen

parted ist der GNU-Partitions-Editor. Starten Sie parted auf Ihrer Festplatte (in unserem Beispiel verwenden wir /dev/sda):

Befehlsauflistung 3.1: Parted starten

#
parted /dev/sda

Einmal gestartet, wird Sie parted mit einer Eingabeaufforderung wie dieser begrüßen:

Befehlsauflistung 3.2: Parted Eingabeaufforderung

GNU Parted 1.6.22
Copyright (C) 1998 - 2005 Free Software Foundation, Inc.
This program is free software, covered by the GNU General Public License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

Using /dev/sda
(parted)

Tippen Sie help um alle verfügbaren Kommandos angezeigt zu bekommen. Ein weiteres Kommando ist print, welches Sie als nächstes eingeben sollten um Ihre derzeitige Konfiguration anzeigen zu lassen:

Befehlsauflistung 3.3: Eine Beispielkonfiguration

(parted) print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017    203.938  fat32                             boot
2        203.938   4243.468  linux-swap
3       4243.469  34724.281  ext4

Diese Konfiguration ähnelt sehr unserer Empfehlung weiter oben. Achten Sie darauf, dass der Dateisystem-Typ in der zweiten Zeile GPT ist. Wenn dies davon abweicht, wird Ihr IA64-System nicht in der Lage sein von dieser Festplatte zu booten. Um die Arbeitsweise zu demonstrieren, werden wir die Beispielpartitionen löschen und neu erstellen.

Alle Partitionen löschen

Notiz: Im Gegensatz zu anderen Partitionierungsprogrammen, wie z.B. fdisk, werden parted-Kommandos leider sofort wirksam. Das heißt, dass, wenn Sie einmal begonnen haben Partitionen zu löschen oder hinzuzufügen, Sie nicht einfach ohne die Festplatte zu beschreiben abbrechen können.

Der einfache Weg alle Partitionen zu entfernen ist eine neue Partitionstabelle zu schreiben. Dies garantiert, dass wir den korrekten Partitionstyp benutzen. Nachdem Sie das getan haben, haben Sie eine leere GPT-Partitionstabelle.

Befehlsauflistung 3.4: Eine neue Partitions-Tabelle erstellen

(parted) mklabel gpt
(parted) print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags

Jetzt, da die Partitionstabelle leer ist, können wir Partitionen erstellen. Wir benutzen hier das bereits oben besprochene Partitionsschema.

Die EFI-Boot-Partition erstellen

Als erstes erstellen wir eine kleine EFI-Boot-Partition. Diese muß vom Typ FAT sein, damit die IA64-Firmware sie lesen kann. In unserem Beispiel hat diese Partition eine Größe von 32 MB, was ausreichend ist um Kernel und die elilo-Konfiguration zu speichern. Jeder IA64-Kernel wird etwa 5 MB groß sein, diese Konfiguration läßt Ihnen also genug Platz zum Experimentieren.

Befehlsauflistung 3.5: Die Boot-Partition erstellen

(parted) mkpart primary fat32 0 32
(parted) print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017     32.000  fat32

Die Swap-Partition erstellen

Jetzt erstellen wir die Swap-Partition. Die klassische Größe für den Swap ist doppelt so groß wie der eingebaute RAM. In modernen Systemen ist so viel Platz nicht mehr nötig, 512 MB sind auf den meisten Desktop-PCs ausreichend. Für einen Server sollten Sie etwas mehr einplanen, da diese etwas anspruchsvoller sind.

Befehlsauflistung 3.6: Die Swap-Partition erstellen

(parted) mkpart primary linux-swap 32 544
(parted) print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017     32.000  fat32
2         32.000    544.000

Die Root-Partition erstellen

Zum Schluß erstellen wir noch die Root-Partition. In unserem Beispiel nimmt diese den gesamten restlichen Platz der Festplatte ein, der noch zur Verfügung steht. Wir nutzen ext4, Sie können aber außerdem noch zwischen ext2, JFS, ReiserFS oder XFS wählen, ganz nach Ihrem Geschmack. Das eigentliche Dateisystem wird in diesem Schritt noch nicht erstellt, es wird nur festgelegt welche Arten von Dateisystemen auf jeder Partition Platz finden werden.

Befehlsauflistung 3.7: Die Root-Partition erstellen

(parted) mkpart primary ext4 544 34732.890
(parted) print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017     32.000  fat32
2         32.000    544.000
3        544.000  34732.874

Parted beenden

Um Parted zu beenden, tippen Sie einfach quit. Es ist nicht nötig das Partitions-Layout in einem separaten Schritt auf die Festplatte zu schreiben. Wenn Sie parted verlassen erinnert es Sie nocheinmal daran Ihre /etc/fstab anzupassen, was wir später auch tun werden.

Befehlsauflistung 3.8: Parted beenden

(parted) quit
Information: Don't forget to update /etc/fstab, if necessary.

Jetzt, da Sie die Partitionen erstellt haben, können Sie mit dem Erstellen von Dateisystemen fortfahren.

4.d. Erstellen von Dateisystemen

Einführung

Nun ist es Zeit die Dateisysteme auf den Partitionen einzurichten. Wenn es Ihnen egal ist, welches Dateisystem Sie benutzen und Sie mit unserer Wahl glücklich sind, fahren Sie mit dem Schritt Das Dateisystem auf die Partition schreiben fort. Anderenfalls lesen Sie weiter um etwas über Dateisysteme zu lernen...

Dateisysteme

Der Linux-Kernel unterstützt zahlreiche Dateisysteme. Wir erklären vfat, ext2, ext3, ext4, ReiserFS, XFS und JFS, da diese die unter Linux gebräuchlichsten Dateisysteme sind.

vfat ist das MS-DOS Dateisystem, aktualisiert um lange Dateinamen zu erlauben. Es ist außerdem das einzige Dateisystem, welches die EFI-Firmware auf ia64-Systemen versteht. Die Boot-Partition auf ia64-Systemen sollte immer vfat sein aber für Ihre Datenpartitionen sollten Sie eines der folgenden Dateisysteme wählen.

ext2 ist das erprobte und wahre Linux Dateisystem, unterstützt aber keine Metadaten-Journalisierung, was bedeutet, dass routinemäßige Überprüfungen des Dateisystem beim Booten ziemlich 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. Wenn Sie vorhaben, Gentoo auf einer sehr kleinen Platte (weniger als 4GB) zu installieren, dann müssen Sie ext2 anweisen, genügend Inodes zu reservieren, wenn Sie das Dateisystem erstellen. Die Applikation mke2fs verwendet die Einstellung "bytes-per-inode", um zu berechnen, wie viele Inodes ein Dateisystem haben sollte. Durch Verwenden von mke2fs -T small /dev/<device> vervierfacht sich die Anzahl an Inodes für ein gegebenes Dateisystem in der Regel, da sich die "bytes-per-inode" von 16kB auf 4kB pro Inode reduzieren. Sie können dies noch weiter tunen durch Verwenden von mke2fs -i <Verhältnis> /dev/<device>.

ext3 ist die journalisierte Version des ext2-Dateisystem. Es liefert Metadaten-Journalisierung für schnelle Wiederherstellung, sowie andere verbesserte Journalisierungs-Modi wie "Full Data"- und "Ordered Data"-Journalisierung. Es verwendet einen HTree-Index der in fast allen Situation zu einer hohen Performance führt. Kurz, ext3 ist ein sehr gutes und verlässliches Dateisystem. Wenn Sie vorhaben, Gentoo auf einer sehr kleinen Platte (weniger als 4GB) zu installieren, dann müssen Sie ext2 anweisen, genügend Inodes zu reservieren, wenn Sie das Dateisystem erstellen. Die Applikation mke2fs verwendet die Einstellung "bytes-per-inode", um zu berechnen, wie viele Inodes ein Dateisystem haben sollte. Durch Verwenden von mke2fs -j -T small /dev/<device> vervierfacht sich die Anzahl an Inodes für ein gegebenes Dateisystem in der Regel, da sich die "bytes-per-inode" von 16kB auf 4kB pro Inode reduzieren. Sie können dies noch weiter tunen durch Verwenden von mke2fs -j -i <Verhältnis> /dev/<device>.

ext4 ist ein Dateisystem, das basierend auf ext3 erstellt wurde und neue Features sowie Performance-Verbesserungen mit sich bringt. Zusätzlich wurden Größenbeschränkungen entfernt und nur mäßige Änderungen am Format auf der Platte vorgenommen. ext4 unterstützt Laufwerke mit einer Größe von bis zu 1 EB und eine maximale Dateigröße von 16 TB. Anstelle der klassischen Bitmap-Block-Allokation von ext2/3, verwendet ext4 Extents, die die Performance bei großen Dateien verbessert und Fragmentierung reduziert. Ext4 bietet zudem ausgeklügeltere Blockallokationsalgorithmen (verzögerte Allokation und Multiblock-Allokation), was es dem Dateisystemtreiber erlaubt, das Layout der Daten auf der Platte zu optimieren. Das ext4-Dateisystem ist ein Kompromiss zwischen produktionssnaher Code-Stabilität und dem Wunsch, Erweiterungen zu einem fast ein Jahrzehnt altem Dateisystem einzuführen. Ext4 ist das empfohlene universell einsetzbare Dateisystem für alle Plattformen.

JFS ist IBMs journalisiertes Hochgeschwindigkeits-Dateisystem. JFS ist schlankes, schnelles und verläßliches B+Tree basierendes Dateisystem mit guter Performance in zahlreichen Situationen.

ReiserFS ist ein auf B+-Trees basierendes Dateisystem mit einer insgesamt guten Performance, besonders wenn mit vielen sehr kleinen Dateien, zur Last von mehr CPU-Zyklen, gearbeitet wird. ReiserFS hat den Anschein weniger gepflegt zu werden als andere Dateisysteme.

XFS ist ein Dateisystem mit Metadaten-Journalisierung, es liefert einen robusten Satz von Features und ist auf Skalierbarkeit optimiert. XFS scheint weniger robust zu sein bei verschiedenen Hardware-Problemen.

Dateisystem auf einer Partition anlegen

Um ein Dateisystem auf einer Partition oder einem Volume zu erstellen, gibt es für jedes mögliche Dateisystem entsprechende Programme:

Dateisystem Kommando zur Erstellung
vfat mkdosfs
ext2 mkfs.ext2
ext3 mkfs.ext3
ext4 mkfs.ext4
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

Zum Beispiel, um die Boot-Partition (/dev/sda1 in unserem Beispiel) als VFAT und die Root-Partition (/dev/sda3 in unserem Beispiel) als ext4 zu formatieren, würden Sie folgendes benutzen:

Befehlsauflistung 4.1: Dateisystem auf einer Partition anlegen

# mkdosfs /dev/sda1
# mkfs.ext4 /dev/sda3

Aktivieren der Swap Partition

mkswap ist das Kommando zur Initialisierung von Swap-Partitionen:

Befehlsauflistung 4.2: Erstellen einer Swap Signatur

# mkswap /dev/sda2

Um Swap-Partitionen zu aktivieren, nutzen Sie swapon:

Befehlsauflistung 4.3: Aktivieren der Swap-Partition

# swapon /dev/sda2

Erstellen und aktivieren Sie jetzt den Swap mit den oben erwähnten Befehlen.

4.e. Mounting

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

Befehlsauflistung 5.1: Mounten von Partition

# mount /dev/sda3 /mnt/gentoo

Notiz: Leider wird, im Gegensatz zu anderen Architekturen die Gentoo unterstützt, /boot auf IA64-Systemen nicht gemountet. Der Grund dafür ist, dass die EFI-Boot-Partition jedesmal wenn Sie elilo aufrufen automatisch gemountet und geschrieben wird. Dies hat zur Folge, dass /boot auf dem Root-Filesystem liegt und Sie dort Ihre Kernel ablegen, welche in der elilo-Konfiguration angegeben sind.

Notiz: Wenn Sie Ihr /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.

Außerdem müssen wir noch das proc-Dateisystem (eine virtuelle Schnittstelle zum Kernel) auf /proc mounten. Vorher ist es jedoch nötig, dass wir unsere Daten auf die Partitionen schreiben.

Fahren Sie mit der Installation der Gentoo Installationsdateien fort.


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


Drucken

Alles ansehen

Seite aktualisiert 23. Februar 2013

Die Originalversion dieses Dokuments wurde zuletzt am 23. Januar 2014 aktualisiert

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

Grant Goodyear
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Tim Yamin
Gentoo IA64 developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

Mike Frysinger
Gentoo * developer

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

Stuart Longland
Bearbeiter

Tobias Scherbaum
Bearbeiter

Xavier Neys
Bearbeiter

Joshua Saddler
Bearbeiter

Gerald J. Normandin Jr.
Korrektor

Donnie Berkholz
Korrektor

Ken Nowack
Korrektor

Lars Weiler
Mitarbeiter

Maik Jurischka
Übersetzer

Donate to support our development efforts.

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