[ << ]
[ < ]
[ 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>
|
/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 ]
[ > ]
[ >> ]
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.
|