[ << ]
[ < ]
[ 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>
|
/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):
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 ]
[ > ]
[ >> ]
Die Inhalte dieses Dokuments sind, sofern nicht explizit
anders genannt, unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert. Die Gentoo Name and Logo
Usage Guidelines treffen zu.
|