Handbuch:IA64/Installation/Festplatten

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:IA64/Installation/Disks and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
IA64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


Einführung in blockorientierte Geräte

Blockorientierte Geräte

Schauen wir uns die Festplattenbezogenen Aspekte von Gentoo Linux und Linux im Allgemeinen mit Linux Dateisystemen, Partitionen und blockorientierten Geräten (Block Devices) an. Wenn Sie die Vor- und Nachteile von Festplatten und Dateisystemen verstanden haben werden wir die Partitionen und Dateisysteme für die Linux-Installation erstellen.

Zu Beginn schauen wir uns blockorientierte Geräte an. Das berühmteste Block Device ist vermutlich jenes, das das erste Laufwerk eines Linux-Systems ist, nämlich /dev/sda. SCSI und serielle ATA Laufwerke werden beide /dev/sd* benannt. Sogar IDE Laufwerke mit neuem libata Framework im Kernel werden so benannt. Bei der Verwendung des alten Geräte Framework ist das erste IDE Laufwerk /dev/hda.

Die oben genannten blockorientierten Geräte repräsentieren eine abstrakte Schnittstelle zur Festplatte. Benutzerprogramme können diese Block Devices nutzen um mit der Festplatte zu interagieren, ohne sich darum sorgen zu müssen ob die Festplatten über IDE, SCSI oder etwas anderes angebunden sind. Das Programm kann den Speicher auf der Festplatte einfach als eine Anhäufung zusammenhängender 512-Byte Blöcke mit wahlfreiem Zugriff ansprechen.


Partitionen

Obwohl es theoretisch möglich wäre eine vollständige Festplatte zu nutzen um ein Linux-System unterzubringen, kommt das in der Praxis fast nie vor. Stattdessen werden komplette Festplatten Block Devices in kleinere, besser handhabbare Block Devices unterteilt. Auf IA64 Systemen werden diese Partitionen genannt.

Itanium Systeme verwenden zum Booten EFI, das Extensible Firmware Interface. Das Partitionstabellen-Format das EFI versteht wird GPT oder GUID Partition Table genannt. Das Partitionierungsprogramm das GPT versteht wird "parted" genannt, darum ist dies das Tool das wir unten verwenden. Darüber hinaus kann EFI nur FAT Dateisysteme lesen, deshalb ist dies das Format für die EFI Bootpartition. Dort installiert "elilo" den Kernel.

Erweiterte Speichermöglichkeit

Die IA64 Installations-CDs bieten Unterstützung für LVM2. LVM2 erhöht die Flexibilität, die das Partitionieren anbietet. Während der Installationsanleitungen konzentrieren wir uns auf "normale" Partitionen, aber es ist dennoch gut zu wissen, dass auch LVM2 unterstützt wird.

Entwurf Partitionsschema

Wie viele und wie groß

Die Anzahl der Partitionen hängt stark von der Verwendungsumgebung ab. Wenn es beispielsweise viele Nutzer gibt, ist eine eigene Partition /home/ ratsam, da diese die Sicherheit erhöht und Backups vereinfacht. Wenn Gentoo installiert wird um als Mailserver zu dienen, dann sollte es ein eigenes /var/ geben weil alle Mails in /var/ gespeichert werden. Eine gute Wahl des Dateisystems maximiert dann die Performance. Spieleserver werden eine eigene Partition /opt/ besitzen, da die meisten Spieleserver dort installiert sind. Der Grund ist ähnlich wie für /home/: Sicherheit und Backups. In den meisten Situationen, muss /usr/ groß gehalten werden: Es enthält unter anderem die Mehrzahl der Anwendungen. Der Portage-Tree alleine benötigt um 500 MB ohne die unterschiedlichen Quellen die darin gespeichert sind.

Wie man sieht, hängt die Wahl sehr stark davon ab, was man als Administrator erreichen möchte. Separate Partitionen oder Volumes haben folgende Vorteile:

  • Wählen Sie das performanteste Dateisystem für jede Partition oder jedes Volume.
  • Dem Gesamtsystem kann der freie Speicherplatz nicht ausgehen, wenn ein fehlerhaftes Tool kontinuierlich Dateien auf eine Partition oder ein Volume schreibt.
  • Falls nötig werden Dateisystemüberprüfungen zeitlich reduziert, da mehrere Überprüfungen gleichzeitig durchgeführt werden können. (Wenngleich dieser Vorteil eher bei mehreren Festplatte als bei Partitionen zum Tragen kommt.)
  • Sie können die Sicherheit erhöhen indem Sie einige Partitionen oder Volumes read-only, nosuid (setuid Flags werden ignoriert), noexec (executable Flags werden ignoriert) etc. einbinden.

Jedoch haben viele Partitionen auch Nachteile. Wenn diese schlecht auf das System angepasst sind, hat dieses viel freien Speicherplatz auf einer Partition und keinen auf einer Anderen mehr übrig. Ein weiterer Nachteil besteht darin, dass separate Partitionen - vor allem für wichtige Mount-Pfade wie /usr/ oder /var/ - es notwendig ein initramfs während des Bootens zu benutzen, welches diese Partitionen vor der Ausführung anderer Bootskripte mountet.

Weiterhin gibt es ein Limit von maximal 15 Partitionen für SCSI und SATA Datenträger, es sei denn der Datenträger nutzt GPT-labels.

Was ist mit dem Swap-Speicher

Die perfekte Größe für eine Swap-Partition gibt es nicht. Der Zweck von Swap-Speicher es ist Festplattenspeicherplatz für den Kernel bereitzuhalten, wenn der interne Speicher (RAM) knapp wird. Der Swap-Speicher erlaubt dem Kernel Speicherseiten auf die vermutlich nicht bald zugegriffen wird auf die Platte auszulagern (Swap oder Page-Out) um Arbeitsspeicher freizumachen. Wird der Speicherinhalt plötzlich benötigt, müssen diese Speicherseiten (Pages) wieder zurück in den Arbeitsspeicher geladen werden (Page-In), dies dauert eine Weile (da Festplatten verglichen mit Arbeitsspeicher sehr langsam sind).

Wenn auf dem System keine Speicherintensiven Anwendungen ausgeführt werden oder das System viel Speicher zur Verfügung hat, benötigt es vermutlich nicht viel Swap-Speicher. Allerdings wird der Swap-Speicher ebenfalls dazu verwendet den gesamten Speicherinhalt im Ruhezustand (Hibernation) aufzunehmen. Wenn das System den Ruhezustand benötigt, brauchen Sie daher einen größeren Swap-Speicher. In den meisten Fällen ist dies mindestens so groß wie der im System installierte Arbeitsspeicher.


Nicht-Standard Beispiel-Partitionsschema

Eine Beispiel-Partitionierung für eine 20 GB Festplatte ist unten dargestellt, verwendet in einen Demonstrations-Laptop (mit Webserver, Mailserver, Gnome, ...):

root #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 Bereich für zukünftige Verwendung: 2 GB)

/usr/ ist hier ziemlich voll (83% belegt), aber wenn die gesamte Software erst einmal installiert ist, wächst /usr/ normalerweise nicht mehr viel. Die Zuweisung einiger Gigabytes Festplatten-Speicher für /var/ mag übertrieben scheinen, denken Sie aber daran, dass portage diese Partition standardmäßig zum kompilieren von Paketen verwendet. Um /var/ in einer vernünftigen Größe (z.B. 1 GB) zu halten, ändern Sie die PORTAGE_TMPDIR Variable in /etc/portage/make.conf um auf eine Partition mit genügend freier Festplattenkapazität zum Kompilieren von sehr großen Paketen wie LibreOffice zu verweisen.

Fesplatte partitionieren mit parted

Die folgenden Teile erklären, wie Sie das Beispiel-Partitionslayout erstellen, das wir im Rest der Installationsanleitung verwenden, nämlich:

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

Ändern Sie das Partitions-Layout Ihren Vorstellungen entsprechen ab.

Anzeigen des Partitions-Layouts

parted ist der GNU Partition Editor. Wenden Sie parted auf die Festplatte an (in unserem Beispiel verwenden wir /dev/sda):

root #parted /dev/sda

Wenn Sie in parted angekommen sind, erscheint eine Eingabeaufforderung die folgendermaßen aussieht:

(parted)

An dieser Stelle ist eines der verfügbaren Kommandos help, um andere zur Verfügung stehende Kommandos anzuzeigen. Ein anderer Befehl ist print, um die derzeitige Festplattenkonfiguration anzuzeigen:

(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 ist sehr ähnlich zu der oben empfohlenen. Achten Sie in der zweiten Zeile darauf, dass die Partitionstabelle vom Typ GPT ist. Wenn es ein anderer Typ ist, wird das ia64 System nicht von dieser Festplatte booten können. Zur Erklärung wie Partitionen erzeugt werden, lassen Sie uns erst die Partitionen löschen und sie anschließend neu erzeugen.

Löschen aller Partitionen

Notiz
Im Gegensatz zu fdisk und einigen anderen Partitionierungs-Programmen, die Änderungen so lange verschieben bis der Schreibbefehl erteilt wird, haben die parted Kommandos sofortige Wirkung. Das heißt wenn Partition hinzugefügt oder entfernt wurden gibt es keine "Rückgängig" Funktion.

Der einfache Weg um alle Partitionen zu löschen und neu anzufangen der garantiert, dass wir den richtigen Partitionstyp verwenden ist eine neue Partitionstabelle mit dem Befehl mklabel zu erstellen. Dies führt zu einer leeren GPT Partitionstabelle.

(parted) mklabelgpt
(parted) mklabelprint
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, sind wir soweit um die Partitionen zu erstellen. Wie wir zuvor angesprochen haben, werden wir ein Standard-Partitionsschema verwenden. Natürlich brauchen Sie diese Anweisungen nicht haargenau zu befolgen, sondern können sie Ihren persönlichen Bedürfnissen anpassen.

EFI Boot Partition erstellen

Erzeugen Sie als erstes eine kleinen EFI Boot Partition im FAT Dateisystem, damit die IA64 Firmware sie lesen kann. In unserem Beispiel ist sie 32 MB groß, das zum speichern von Kerneln und elilo Konfigurationen geeignet sein sollte. Rechnen Sie damit, dass jeder IA64 Kernel um die 5 MB groß ist. Diese Konfiguration lässt somit etwas Spielraum zum Experimentieren.

(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

Swap Partition erstellen

Lassen Sie uns nun die Swap Partition erstellen. Die klassische Größe einer Swap Partition war zwei mal so groß wie der Arbeitsspeicher im System. In modernen Systemen mit viel Arbeitsspeicher ist dies nicht länger notwendig. In den meisten Desktop Systemen reicht eine 512 Megabyte große Swap Partition aus. Für einen Server sollten Sie etwas mehr in Betracht ziehen, um die zu erwartenden Bedürfnisse zu berücksichtigen.

(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

Root Partition erstellen

Schließlich erstellen wir die Root Partition. Unsere Konfiguration wird dazu führen, dass die Root Partition die noch verbleibende Festplatte belegt. Wir verwenden standardmäßig ext4, aber es sind auch ext2, jfs, reiserfs oder xfs möglich. Das eigentliche Dateisystem wird nicht in diesem Schritt erzeugt, aber die Partitionstabelle enthält die Angabe, welche Partition welches Dateisystem beinhaltet und es ist eine gute Idee, die Tabelle passend zum Verwendungszweck anzulegen.

(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

Zum Beenden von parted tippen Sie quit. Es besteht keine Notwendigkeit in einem separaten Schritt das Partitionslayout zu speichern, weil parted das bereits bei jedem einzelnen der vorigen Schritte getan hat. parted wird Sie daran erinnern die Datei /etc/fstab zu aktualisieren, was wir später in der Installationsanleitung tun werden.

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


Erstellung von Dateisystemen

Einleitung

Jetzt da die Partitionen erzeugt sind, ist es an der Zeit ein Dateisystem darauf anzulegen. Im nächsten Abschnitt werden die unterschiedlichen Dateisysteme beschrieben, die Linux unterstützt. Leser die bereits wissen welches Dateisystem sie verwenden wollen, können bei Dateisystem auf Partition anlegen fortfahren. Andernfalls lesen Sie bitte weiter um über die verfügbaren Dateisysteme zu erfahren ...

Dateisysteme

Mehrere Dateisysteme sind verfügbar. Einige davon gelten als stabil auf der ia64 Architektur. Es ist ratsam sich über das Dateisystem und dessen Unterstützungsgrad zu informieren, bevor Sie sich für ein eher experimentelles für wichtige Partitionen entscheiden.

ext2
Das ist das erprobte und wahre Linux Dateisystem aber es hat kein Metadaten-Journaling. Dies bedeutet, dass normale ext2 Dateisystemüberprüfungen beim Systemstart ziemlich zeitaufwändig sein können. Mittlerweile gibt es eine gute Auswahl an Journaling-Dateisystemen, die sehr schnell auf Konsistenz überprüft werden können und deshalb ihren Nicht-Journaling-Ausführungen im Allgemeinen bevorzugt werden. Journaling-Dateisysteme verhindern lange Verzögerungen wenn das System gebootet ist und es passiert, dass das Dateisystem in einem inkonsistenten Zustand ist.
ext3
Die Journaling-Version des Dateisystems ext2. Es bietet Metadaten-Journaling für schnelle Wiederherstellung zusätzlich zu anderen Journaling-Modi wie Full-Data- und Ordered-Data-Journaling. Es verwendet einen H-Baum (Htree) Index der hohe Leistung in fast allen Situationen ermöglicht. Kurz gesagt, ext3 ist ein sehr gutes und verlässliches Dateisystem.
ext4
Ursprünglich als Abspaltung von ext3 entstanden, bringt ext4 neue Funktionen, Leistungsverbesserungen und den Wegfall der Größenbeschränkungen durch moderate Änderungen des On-Disk-Formats. Es kann Datenträger mit bis zu 1 EB und mit Dateigrößen von bis zu 16 TB umspannen. Anstelle der klassischen ext2/3 Bitmap-Block-Allokation nutzt ext4 Extents, die die Performance bei großen Dateien verbessern und Fragmentierung reduzieren. ext4 bietet zusätzlich ausgereiftere Block-Allokation-Algorithmen (Zeitverzögerte Allokation und Mehrfache Preallokation), die dem Dateisystemtreiber mehrere Möglichen bieten das Layout der Daten auf der Festplatte zu optimieren. Es ist das empfohlene Allzweck-Dateisystem für jede Plattform.
JFS
Das Hochleistungs-Journaling-Dateisystem von IBM. JFS ist ein schlankes, schnelles und verlässliches B+-Baum basiertes Dateisystem mit guter Performance unter verschiedensten Gegebenheiten.
ReiserFS
Ein B+-Baum basiertes Journaling-Dateisystem mit einer guten Allgemeinleistung, besonders im Umgang mit winzigen Dateien für den Preis von mehreren CPU-Zyklen. ReiserFS scheint weniger gewartet zu werden als andere Dateisysteme.
XFS
Ein Dateisystem mit Metadaten-Journaling, das mit einer Reihe robuster Fähigkeiten daherkommt und für Skalierbarkeit optimiert ist. XFS scheint gegenüber unterschiedlichen Hardwareproblemen weniger Fehlertolerant zu sein.
vfat
Ebenfalls als FAT32 bekannt, wird es von Linux unterstützt, aber unterstützt selbst keine Berechtigungseinstellungen. Es wird vor allem aus Kompatibilitätsgründen zu anderen Betriebssystemen (hauptsächlich Microsoft Windows) verwendet. vfat ist zudem eine Notwendigkeit für manche Systemfirmware (wie UEFI).

Bei der Verwendung von ext2, ext3 oder ext4 auf kleinen Partitionen (kleiner als 8 GB), sollte das Dateisystem mit den passenden Optionen erstellt werden um genügend Inodes zu reservieren. Die Anwendung mke2fs verwendet die "bytes-per-inode"-Einstellung um zu berechnen wie viele Inodes eine Dateisystem haben sollte. Auf kleineren Partitionen ist es ratsam die berechnete Anzahl der Inodes zu erhöhen.

Bei ext2 kann dies mit dem folgenden Befehl erfolgen:

root #mke2fs -T small /dev/<device>

Dies vervierfacht die Zahl der Inodes für ein angegebenes Dateisystem in der Regel, da es dessen "bytes-per-inode" (Bytes pro Inode) von 16 kB auf 4 kB pro Inode reduziert. Durch die Angabe des Verhältnisses kann dies sogar weiter optimiert werden:

root #mke2fs -i <ratio> /dev/<device>

Dateisystem auf Partition anlegen

Um ein Dateisystem auf einer Partition oder einem Datenträger zu erstellen, gibt es für jedes mögliche Dateisystem Werkzeuge:

Dateisystem Befehl
ext2 mkfs.ext2
ext3 mkfs.ext3
ext4 mkfs.ext4
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs
vfat mkfs.vfat

Um beispielsweise die Root-Partition (/dev/sda3) in ext4 wie in der Beispiel-Partitionsstruktur zu bekommen, würden die folgenden Befehle benutzt:

root #mkfs.ext4 /dev/sda3

Erzeugen Sie nun die Dateisysteme auf den zuvor erzeugten Partitionen (oder logischen Laufwerken).

Aktivieren der Swap-Partition

mkswap ist der Befehl der verwendet wird um Swap-Partitionen zu initialisieren:

root #mkswap /dev/sda2

Zur Aktivierung der Swap-Partition verwenden Sie swapon:

root #swapon /dev/sda2

Erzeugen und aktivieren Sie jetzt die Swap-Partition mit den oben genannten Befehlen.

Einhängen

Nun, da die Partitionen initialisiert sind und ein Dateisystem beinhalten, ist es an der Zeit diese einzuhängen. Verwenden Sie den Befehl mount, aber vergessen Sie nicht die notwendigen Einhänge-Verzeichnisse für jede Partition zu erzeugen. Als Beispiel hängen wir die Root-Partition ein:

root #mount /dev/sda3 /mnt/gentoo
Notiz
Wenn sich /tmp/ auf einer separaten Partition befinden muss, ändern Sie die Berechtigungen nach dem Einhängen folgendermaßen:
root #chmod 1777 /mnt/gentoo/tmp
Dies gilt ebenfalls für /var/tmp.

In der Anleitung wird später das Dateisystem proc (eine virtuelle Schnittstelle zum Kernel) zusammen mit anderen Kernel-Pseudodateisystemen eingehängt. Zunächst installieren wir jedoch die Gentoo Installationsdateien.