This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

Handbuch:Alpha/Installation/Festplatten

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:Alpha/Installation/Disks and the translation is 100% complete.
Alpha 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

Let's take a good look at disk-oriented aspects of Gentoo Linux and Linux in general, including Linux filesystems, partitions, and block devices. Once the ins and outs of disks and filesystems are understood, partitions and filesystems can be established for the Gentoo Linux installation.

To begin, let's look at block devices. The most famous block device is probably the one that represents the first drive in a Linux system, namely /dev/sda. SCSI and Serial ATA drives are both labeled /dev/sd*; even IDE drives are labeled /dev/sd* with the libata framework in the kernel. When using the old device framework, then the first IDE drive is /dev/hda.

The block devices above represent an abstract interface to the disk. User programs can use these block devices to interact with the disk without worrying about whether the drives are IDE, SCSI, or something else. The program can simply address the storage on the disk as a bunch of contiguous, randomly-accessible 512-byte blocks.


Slices

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.

Notiz
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!

Entwurf Partitionsschema

How many partitions and how big?

The number of partitions is highly dependent on the environment. For instance, if there are lots of users, then it is advised to have /home/ separate as it increases security and makes backups easier. If Gentoo is being installed to perform as a mail server, then /var/ should be separate as all mails are stored inside /var/. A good choice of filesystem will then maximize the performance. Game servers will have a separate /opt/ as most gaming servers are installed there. The reason is similar for the /home/ directory: security and backups. In most situations, /usr/ is to be kept big: not only will it contain the majority of applications, it typically also hosts the Gentoo ebuild repository (by default located at /usr/portage) which already takes around 650 MiB. This disk space estimate excludes the packages/ and distfiles/ directories that are generally stored within this ebuild repository.

It very much depends on what the administrator wants to achieve. Separate partitions or volumes have the following advantages:

  • Choose the best performing filesystem for each partition or volume.
  • The entire system cannot run out of free space if one defunct tool is continuously writing files to a partition or volume.
  • If necessary, file system checks are reduced in time, as multiple checks can be done in parallel (although this advantage is more with multiple disks than it is with multiple partitions).
  • Security can be enhanced by mounting some partitions or volumes read-only, nosuid (setuid bits are ignored), noexec (executable bits are ignored) etc.

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.

What about swap space?

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).

When the system is not going to run memory intensive applications or the system has lots of memory available, then it probably does not need much swap space. However, swap space is also used to store the entire memory in case of hibernation. If the system is going to need hibernation, then a bigger swap space is necessary, often at least the amount of memory installed in the system.


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.



Erstellung von Dateisystemen

Einleitung

Now that the partitions are created, it is time to place a filesystem on them. In the next section the various file systems that Linux supports are described. Readers that already know which filesystem to use can continue with Applying a filesystem to a partition. The others should read on to learn about the available filesystems...

Dateisysteme

Several filesystems are available. Some of them are found stable on the alpha architecture - it is advised to read up on the filesystems and their support state before selecting a more experimental one for important partitions.

btrfs
A next generation filesystem that provides many advanced features such as snapshotting, self-healing through checksums, transparent compression, subvolumes and integrated RAID. A few distributions have begun to ship it as an out-of-the-box option, but it is not production ready. Reports of filesystem corruption are common. Its developers urge people to run the latest kernel version for safety because the older ones have known problems. This has been the case for years and it is too early to tell if things have changed. Fixes for corruption issues are rarely backported to older kernels. Proceed with caution when using this filesystem!
ext2
This is the tried and true Linux filesystem but doesn't have metadata journaling, which means that routine ext2 filesystem checks at startup time can be quite time-consuming. There is now quite a selection of newer-generation journaled filesystems that can be checked for consistency very quickly and are thus generally preferred over their non-journaled counterparts. Journaled filesystems prevent long delays when the system is booted and the filesystem happens to be in an inconsistent state.
ext3
The journaled version of the ext2 filesystem, providing metadata journaling for fast recovery in addition to other enhanced journaling modes like full data and ordered data journaling. It uses an HTree index that enables high performance in almost all situations. In short, ext3 is a very good and reliable filesystem.
ext4
Initially created as a fork of ext3, ext4 brings new features, performance improvements, and removal of size limits with moderate changes to the on-disk format. It can span volumes up to 1 EB and with maximum file size of 16TB. Instead of the classic ext2/3 bitmap block allocation ext4 uses extents, which improve large file performance and reduce fragmentation. Ext4 also provides more sophisticated block allocation algorithms (delayed allocation and multiblock allocation) giving the filesystem driver more ways to optimize the layout of data on the disk. Ext4 is the recommended all-purpose all-platform filesystem.
f2fs
The Flash-Friendly File System was originally created by Samsung for the use with NAND flash memory. As of Q2, 2016, this filesystem is still considered immature, but it is a decent choice when installing Gentoo to microSD cards, USB drives, or other flash-based storage devices.
JFS
IBM's high-performance journaling filesystem. JFS is a light, fast and reliable B+tree-based filesystem with good performance in various conditions.
ReiserFS
A B+tree-based journaled filesystem that has good overall performance, especially when dealing with many tiny files at the cost of more CPU cycles. ReiserFS appears to be less maintained than other filesystems.
XFS
A filesystem with metadata journaling which comes with a robust feature-set and is optimized for scalability. XFS seems to be less forgiving to various hardware problems.
vfat
Also known as FAT32, is supported by Linux but does not support any permission settings. It is mostly used for interoperability with other operating systems (mainly Microsoft Windows) but is also a necessity for some system firmware (like UEFI).
NTFS
This "New Technology" filesystem is the flagship filesystem of Microsoft Windows. Similar to vfat above it does not store permission settings or extended attributes necessary for BSD or Linux to function properly, therefore it cannot be used as a root filesystem. It should only be used for interoperability with Microsoft Windows systems (note the emphasis on only).

When using ext2, ext3, or ext4 on a small partition (less than 8GB), then the file system must be created with the proper options to reserve enough inodes. The mke2fs (mkfs.ext2) application uses the "bytes-per-inode" setting to calculate how many inodes a file system should have. On smaller partitions, it is advised to increase the calculated number of inodes.

Bei ext2 kann dies mit dem folgenden Befehl erfolgen:

root #mkfs.ext2 -T small /dev/<device>

Bei ext3 und ext4 fügen Sie die Option -j hinzu um Journaling zu aktivieren:

root #mkfs.ext2 -j -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 #mkfs.ext2 -i <ratio> /dev/<device>

Dateisystem auf Partition anlegen

To create a filesystem on a partition or volume, there are user space utilities available for each possible filesystem. Click the filesystem's name in the table below for additional information on each filesystem:

Filesystem Creation command On minimal CD? Package
btrfs mkfs.btrfs Yes sys-fs/btrfs-progs
ext2 mkfs.ext2 Yes sys-fs/e2fsprogs
ext3 mkfs.ext3 Yes sys-fs/e2fsprogs
ext4 mkfs.ext4 Yes sys-fs/e2fsprogs
f2fs mkfs.f2fs Yes sys-fs/f2fs-tools
jfs mkfs.jfs Yes sys-fs/jfsutils
reiserfs mkfs.reiserfs Yes sys-fs/reiserfsprogs
xfs mkfs.xfs Yes sys-fs/xfsprogs
vfat mkfs.vfat Yes sys-fs/dosfstools
NTFS mkfs.ntfs Yes sys-fs/ntfs3g

For instance, to have the boot partition (/dev/sda1) in ext2 and the root partition (/dev/sda3) in ext4 as used in the example partition structure, the following commands would be used:

root #mkfs.ext2 /dev/sda1
root #mkfs.ext4 /dev/sda3

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

Activating the swap partition

mkswap is the command that is used to initialize swap partitions:

root #mkswap /dev/sda2

To activate the swap partition, use swapon:

root #swapon /dev/sda2

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

Einhängen

Now that the partitions are initialized and are housing a filesystem, it is time to mount those partitions. Use the mount command, but don't forget to create the necessary mount directories for every partition created. As an example we mount the root partition:

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.