Handbuch:Alpha/Blöcke/Festplatten

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:Alpha/Blocks/Disks and the translation is 77% complete.
Outdated translations are marked like this.


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 Alpha-Systemen werden diese Slices genannt.

Hinweis
In den folgenden Sektionen verwenden die Anweisungen zur Installation die Beispiel-Partitionierung des ARC/AlphaBIOS Setup. Bitte passen Sie diese Ihren persönlichen Vorstellungen an!


Ein Partitionsschema entwerfen

Wie viele Partitionen und wie groß?

Bei dem Design des Partitionsschemas sollten die Anforderungen an das System und an die Dateisysteme berücksichtigt werden. Wenn es viele Nutzer gibt, ist eine eigene Partition /home/ ratsam, da diese die Sicherheit erhöht und Backups und andere Wartungsarbeiten vereinfacht. Wenn Gentoo installiert wird, um als Mailserver zu dienen, dann sollte es eine eigene Partition /var/ geben, weil alle Mails im Verzeichnis /var/ gespeichert werden. Spiele-Server werden eine eigene Partition /opt/ besitzen, da die meiste Spiele-Server-Software dort installiert wird. Der Grund für diese Empfehlungen ist ähnlich wie für das /home/ Verzeichnis: Sicherheit, Backups und Wartung.

Bei den meisten Gentoo-Installationen sollten /usr/ und /var/ relativ groß sein. In /usr werden die Mehrzahl der Anwendungen und auch der Linux Kernel Quellcode gespeichert (unter /usr/src). Standardmäßig enthält /var/ das Gentoo ebuild Repository (unter /var/db/repos/gentoo), das alleine schon rund 650 MiB Plattenplatz benötigt. Diese Größenabschätzung enthält noch nicht den benötigten Plattenplatz für die Verzeichnisse /var/cache/distfiles und /var/cache/binpkgs, die sich im Laufe der Zeit mit Source-Code Dateien und (optional) mit Binärpaketen füllen werden - je nachdem, wann und wie sie dem System hinzugefügt werden.

Die Anzahl und Größe der Partitionen hängt vom Abwägen der Vor- und Nachteile und der Auswahl der besten Lösung für einen gegebenen Anwendungsfall ab. Separate Partitionen oder Volumes haben folgende Vorteile:

  • Sie können das performanteste Dateisystem für jede Partition oder jedes Volume wählen.
  • Dem Gesamtsystem kann der freie Speicherplatz nicht ausgehen, wenn ein fehlerhaftes Tool kontinuierlich Dateien auf eine Partition oder ein Volume schreibt.
  • Falls nötig, kann die Zeit für Dateisystemüberprüfungen reduziert werden, da mehrere Überprüfungen gleichzeitig durchgeführt werden können. (Dieser Vorteil kommt aber eher bei mehreren Festplatten, als bei mehreren Partitionen auf einer Festplatte zum Tragen.)
  • 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.


Viele separate Partitionen können aber auch Nachteile haben:

  • Wenn diese schlecht an das System angepasst sind, kann es sein, dass eine Partition voll ist und auf einer anderen Partition noch viel freier Platz verfügbar ist.
  • Eine separate Partition für /usr/ kann es erforderlich machen, dass beim Booten ein initramfs verwendet wird, welches diese Partitionen vor der Ausführung anderer Boot-Skripte mountet. Das Erzeugen und Betreiben eines initramsfs ist nicht Teil dieses Handbuchs. Wir empfehlen Anfängern, für /usr/ keine eigene Partition zu verwenden.
  • Es gibt ein Limit von maximal 15 Partitionen für SCSI und SATA - es sei denn, der Datenträger nutzt GPT-Labels.
Hinweis
Installationen, die systemd als Dienst-und Init-System verwenden wollen, müssen /usr/ beim Booten verfügbar haben, entweder als Teil des Root-Dateisystems oder eingehängt über ein initramfs.

Was ist mit dem Swap-Speicher?

Es gibt keine perfekte Größe für den Swap-Speicher. Der Zweck von Swap-Speicher 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). Dadurch kann Arbeitsspeicher im RAM für den aktuell laufenden Prozess freigemacht werden. Werden die auf die Festplatte ausgelagerten Speicherseiten (Pages) jedoch plötzlich benötigt, müssen diese Seiten wieder zurück in den Arbeitsspeicher geladen werden (Page-In). Dies dauert jedoch erheblich länger, als wenn die Daten direkt aus dem RAM gelesen werden könnten (da Festplatten verglichen mit Arbeitsspeicher sehr langsam sind).

Wenn auf einem System keine speicherintensiven Anwendungen ausgeführt werden oder das System viel RAM zur Verfügung hat, benötigt es vermutlich nicht viel Swap-Speicher. Wenn jedoch der Ruhezustand "Hibernation" verwendet werden soll, wird der Swap-Speicher verwendet, um den gesamten Inhalt des Hauptspeichers (RAM) zu sichern (dieser Ruhezustand wird bei Desktop- und Laptop-Systemen häufiger verwendet, als bei Servern). Wenn das System den Ruhezustand "Hibernation" unterstützen soll, muss der Swap-Speicher so groß wie oder größer als der Hauptspeicher (RAM) sein.

Als generelle Regel gilt: der Swap-Speicher sollte zwei Mal so groß sein wie der Arbeitsspeicher (RAM). Auf Systemen mit mehreren (rotierenden) Festplatten ist es sinnvoll, eine Swap-Partition auf jeder Festplatte einzurichten, damit Schreib-/Lese-Operationen parallel ausgeführt werden können. Je schneller auf einen Festplatte zugegriffen werden kann, desto schneller wird das System arbeiten, wenn auf Swap-Speicher zugegriffen werden muss. Wenn zwischen rotierenden Festplatten und SSDs gewählt werden kann, ist es aus Performance-Sicht besser, den Swap-Speicher auf die SSD zu legen. Alternativ zu Swap-Partitionen können auch Swap-Dateien verwendet werden; dies ist hauptsächlich interessant bei Systemen mit sehr geringem Festplatten-Platz.


Festplatte mit fdisk partitionieren (nur SRM)

Die folgenden Abschnitte erklären, wie das Slice-Layout Beispiel für SRM zu erstellen ist:

Slice Beschreibung
/dev/sda1 Swap Slice
/dev/sda2 Root Slice
/dev/sda3 Gesamte Festplatte (benötigt)

Ändern Sie das Slice Layout Ihren Vorstellungen entsprechend ab.

Verfügbare Festplatten identifizieren

Um herauszufinden welche Festplatten im System laufen, verwenden sie die folgenden Befehle:

Für IDE Festplatten:

root #dmesg | grep 'drive$'

Für SCSI Festplatten:

root #dmesg | grep 'scsi'

Die Ausgabe zeigt an, welche Festplatten erkannt wurden und deren jeweiligen /dev/ Eintrag. In den folgenden Abschnitten gehen wir davon aus, dass es sich um eine SCSI Festplatte auf /dev/sda handelt.

Starten Sie jetzt fdisk:

root #fdisk /dev/sda

Löschen aller Slices

Wenn die Festplatte komplett leer ist, dann erstellen Sie zunächst ein BDS Disklabel.

Command (m for help):b
/dev/sda contains no disklabel.
Do you want to create a disklabel? (y/n) y
A bunch of drive-specific info will show here
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  c:        1      5290*     5289*    unused        0     0

Wir beginnen mit dem Löschen aller Slices mit Ausnahme der 'c'-Slice (eine Anforderung bei der Nutzung von BSD Disklabels). Im Nachfolgenden zeigen wir, wie eine Slice gelöscht wird (im Beispiel verwenden wir 'a'). Wiederholen Sie den Vorgang um alle anderen Slices zu löschen (wieder mit Ausnahme der 'c'-Slice).

Verwenden Sie p um alle existierenden Slices anzuzeigen. d wird zum Löschen einer Slice betätigt.

BSD disklabel command (m for help):p
8 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        1       235*      234*    4.2BSD     1024  8192    16
  b:      235*      469*      234*      swap
  c:        1      5290*     5289*    unused        0     0
  d:      469*     2076*     1607*    unused        0     0
  e:     2076*     3683*     1607*    unused        0     0
  f:     3683*     5290*     1607*    unused        0     0
  g:      469*     1749*     1280     4.2BSD     1024  8192    16
  h:     1749*     5290*     3541*    unused        0     0
BSD disklabel command (m for help):d
Partition (a-h): a

Nachdem Sie diesen Vorgang für alle Slices wiederholt haben, sollte die Auflistung in etwa wie folgt aussehen:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  c:        1      5290*     5289*    unused        0     0

Swap Slice erstellen

Auf Alpha basierten Systemen gibt es keine Notwendigkeit für eine separate Boot Slice. Wie auch immer, der erste Zylinder darf nicht verwendet werden, weil das "aboot" Abbild dort abgelegt wird.

Wir werden eine Swap Slice beginnend beim dritten Zylinder, mit einer Gesamtgröße von 1 GB erstellen. Verwenden Sie n um eine neue Slice anzulegen. Nach der Erzeugung der Slice ändern Sie den Typ auf 1 (eins), was Swap bedeutet.

BSD disklabel command (m for help):n
Partition (a-p): a
First cylinder (1-5290, default 1): 3
Last cylinder or +size or +sizeM or +sizeK (3-5290, default 5290): +1024M
BSD disklabel command (m for help):t
Partition (a-c): a
Hex code (type L to list codes): 1

Nach diesen Schritten sollte Ihr Layout ähnlich dem folgenden aussehen:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        3      1003      1001       swap
  c:        1      5290*     5289*    unused        0     0

Root Slice erstellen

Wer werden nun die Root Slice beginnend mit dem ersten Zylinder nach der Swap Slice erstellen. Verwenden Sie den p Befehl um zu sehen, wo die Swap Slice endet. In unserem Beispiel ist dies bei 1003, so dass die Root Slice bei 1004 beginnt.

Ein weiteres Problem ist, dass es derzeit einen Bug in fdisk gibt. Dieser führt dazu, dass fdisk meint es würde ein Zylinder mehr zur Verfügung stehen als tatsächlich der Fall ist. In anderen Worten: Wenn Sie nach dem letzten Zylinder gefragt werden, verringern Sie die Zylindernummer (im Beispiel: 5290) um eins.

Wenn die Slice erzeugt wurde ändern Sie den Typ für ext2 auf 8.

BSD disklabel command (m for help):n
Partition (a-p): b
First cylinder (1-5290, default 1): 1004
Last cylinder or +size or +sizeM or +sizeK (1004-5290, default 5290): 5289
BSD disklabel command (m for help):t
Partition (a-c): b
Hex code (type L to list codes): 8

Das Slice Layout sollte nun ähnlich dem folgenden aussehen:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        3      1003      1001       swap
  b:     1004      5289      4286       ext2
  c:        1      5290*     5289*    unused        0     0

Slice Layout speichern und fdisk beenden

Beenden Sie das Programm fdisk durch Drücken der Taste w. Dies wird gleichzeitig das Slice Layout speichern.

Command (m for help):w

Festplatte mit fdisk partitionieren (nur ARC/AlphaBIOS)

Die folgenden Abschnitte beschreiben, wie das Slice-Layout Beispiel für ARC/AlphaBIOS erzeugt wird:

Slice Beschreibugn
/dev/sda1 Boot Partition
/dev/sda2 Swap Partition
/dev/sda3 Root Partition

Ändern Sie das Layout der Partitionen entsprechend Ihrer Vorstellungen ab.

Verfügbare Festplatten identifizieren

Um herauszufinden welche Festplatten im System laufen, verwenden Sie die Folgenden Befehle:

Für IDE Festplatten:

root #dmesg | grep 'drive$'

Für SCSI Festplatten:

root #dmesg | grep 'scsi'

Abhängig von der Ausgabe sollte einfach zu erkennen sein, welche Festplatten gefunden wurden und deren zugehörige /dev/ Einträge. In den folgenden Abschnitten gehen wir davon aus, Dass es sich um eine SCSI Festplatte an /dev/sda handelt.

Starten Sie jetzt fdisk:

root #fdisk /dev/sda

Löschen aller Partitionen

Wenn die Festplatte komplett leer ist, dann müssen Sie zuerst ein DOS Disklabel erstellen.

Command (m for help):o
Building a new DOS disklabel.

Wir beginnen mit dem Löschen aller Partitionen. Im folgenden wird gezeigt, wie man eine Partition löscht (im Beispiel verwenden wir '1'). Wiederholen Sie den Vorgang um auch alle anderen Partitionen zu löschen.

Verwenden Sie p um alle existierenden Partitionen anzeigen zu lassen. Betätigen Sie d zum Löschen einer Partition.

command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         478      489456   83  Linux
/dev/sda2             479        8727     8446976    5  Extended
/dev/sda5             479        1433      977904   83  Linux Swap
/dev/sda6            1434        8727     7469040   83  Linux
command (m for help):d
Partition number (1-6): 1

Boot Partition erstellen

Auf Alpha-Systemen die MILO zum Booten verwenden, müssen wir eine kleine vfat Bootpartition erstellen.

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-8727, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-8727, default 8727): +16M
Command (m for help):t
Selected partition 1
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)

Swap Partition erstellen

Wir werden eine Swap Partition mit einer Gesamtkapazität von 1 GB erzeugen. Drücken Sie n um eine neue Partition zu erstellen.

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (17-8727, default 17): 17
Last cylinder or +size or +sizeM or +sizeK (17-8727, default 8727): +1000M
Command (m for help):t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)

Nach diesen Schritten sollte Ihr Layout ähnlich dem folgenden aussehen:

Command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          16       16368    6  FAT16
/dev/sda2              17         971      977920   82  Linux swap

Root Partition erstellen

Wir werden nun die Roop Partition erzeugen. Verwenden Sie wieder einfach den Befehl n.

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (972-8727, default 972): 972
Last cylinder or +size or +sizeM or +sizeK (972-8727, default 8727): 8727

Nach diesen Schritten sollte Ihr Layout ähnlich dem folgenden aussehen:

Command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          16       16368    6  FAT16
/dev/sda2              17         971      977920   82  Linux swap
/dev/sda3             972        8727     7942144   83  Linux

Partitionslayout Speichern und fdisk beenden

Speichern Sie die Änderungen, die Sie in fdisk vorgenommen haben durch Eingabe von w. Durch diesen Befehl wird gleichzeitig auch das Programm beendet.

Command (m for help):w

Nachdem die Partitionen jetzt erstellt sind, fahren sie nun beim Abschnitt Dateisystem erstellen fort.