From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:SPARC/Installation/Disks and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
SPARC Handbuch
Über die Installation
Auswahl des Mediums
Konfiguration des Netzwerks
Vorbereiten der Festplatte(n)
Installation des Stage Archivs
Installation des Basissystems
Konfiguration des Kernels
Konfiguration des Systems
Installation der Tools
Konfiguration des Bootloaders
Arbeiten mit Gentoo
Arbeiten mit Portage
Dateien und Verzeichnisse
Mischen von Softwarezweigen
Zusätzliche Tools
Eigener Portage-Tree
Erweiterte Portage-Features
Zu Beginn
Fortgeschrittene Konfiguration
Modulare Vernetzung
Drahtlose Netzwerke
Funktionalität hinzufügen
Dynamisches Management

Einführung in blockorientierte Geräte

Blockorientierte Geräte

Schauen wir uns die Festplatten-spezifischen Aspekte von Gentoo Linux und Linux im Allgemeinen an - insbesondere Linux Dateisysteme, Partitionen und blockorientierte Geräte (Block Devices). Wenn Sie die Vor- und Nachteile von Festplatten und Dateisystemen verstanden haben, können Sie 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 werden mit dem libata Framework im Kernel so benannt. Bei der Verwendung des alten Geräte Frameworks 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 anderem 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.


Although it is theoretically possible to use the entire disk to house a Linux system, this is almost never done in practice. Instead, full disk block devices are split up in smaller, more manageable block devices. These are known as partitions or slices.

The first partition on the first SCSI disk is /dev/sda1, the second /dev/sda2 and so on.

The third partition on Sun systems is set aside as a special "whole disk" slice. This partition must not contain a file system.

Users who are used to the DOS partitioning scheme should note that Sun disklabels do not have "primary" and "extended" partitions. Instead, up to eight partitions are available per drive, with the third of these being reserved.

Designing a partition scheme

How many partitions and how big?

The design of disk partition layout is highly dependent on the demands of the system. If there are lots of users, then it is advised to have /home on a separate partition which will increase security and make backups and other types of maintenance easier. If Gentoo is being installed to perform as a mail server, then /var should be a separate partition as all mails are stored inside the /var directory. Game servers may have a separate /opt partition since most gaming server software is installed therein. The reasoning for these is similar to the /home directory: security, backups, and maintenance.

In most situations on Gentoo, /usr and /var should be kept relatively large in size. /usr hosts the majority of applications available on the system and the Linux kernel sources (under /usr/src). By default, /var hosts the Gentoo ebuild repository (located at /var/db/repos/gentoo) which, depending on the file system, generally consumes around 650 MiB of disk space. This space estimate excludes the /var/cache/distfiles and /var/cache/binpkgs directories, which will gradually fill with source files and (optionally) binary packages respectively as they are added to the system.

How many partitions and how big very much depends on considering the trade-offs and choosing the best option for the circumstance. 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.

However, multiple partitions have certain disadvantages as well:

  • If not configured properly, the system might have lots of free space on one partition and little free space on another.
  • Another nuisance is that separate partitions - especially for important mount points like /usr/ or /var/ - often require the administrator to boot with an initramfs to mount the partition before other boot scripts start. This is not always the case though, so results may vary.
  • There is also a 15-partition limit for SCSI and SATA unless the disk uses GPT labels.

What about swap space?

There is no perfect value for the swap partition. The purpose of swap space is to provide disk storage to the kernel when internal memory (RAM) is under pressure. A swap space allows for the kernel to move memory pages that are not likely to be accessed soon to disk (swap or page-out), freeing memory. Of course, if that memory is suddenly needed, these pages need to be put back in memory (page-in) which will take a while (as disks are very slow compared to internal memory).

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.

Default partition scheme

The table below suggests a suitable starting point for most systems. Note that this is only an example, so feel free to use different partitioning schemes.

A separate /boot partition is generally not recommended on SPARC, as it complicates the bootloader configuration.
Partition Filesystem Size Mount Point Description
/dev/sda1 ext4 <2 GB / Root partition. For SPARC64 systems with OBP versions 3 or less, this must be less than 2 GB in size, and the first partition on the disk. More recent OBP versions can deal with larger root partitions and, as such, can support having /usr, /var and other locations on the same partition.
/dev/sda2 swap 512 MB none Swap partition. For bootstrap and certain larger compiles, at least 512 MB of RAM (including swap) is required.
/dev/sda3 none Whole disk none Whole disk partition. This is required on SPARC systems.
/dev/sda4 ext4 at least 2 GB /usr /usr partition. Applications are installed here. By default this partition is also used for Portage data (which takes around 500 MB excluding source code).
/dev/sda5 ext4 at least 1 GB /var /var partition. Used for program-generated data. By default Portage uses this partition for temporary space whilst compiling. Certain larger applications such as Mozilla and LibreOffice.org can require over 1 GB of temporary space here when building.
/dev/sda6 ext4 remaining space /home /home partition. Used for users' home directories.

Using fdisk to partition the disk

The following parts explain how to create the example partition layout described previously, namely:

Partition Description
/dev/sda1 /
/dev/sda2 swap
/dev/sda3 whole disk slice
/dev/sda4 /usr
/dev/sda5 /var
/dev/sda6 /home

Change the partition layout as required. Remember to keep the root partition entirely within the first 2 GB of the disk for older systems. There is also a 15-partition limit for SCSI and SATA.

Firing up fdisk

Start fdisk with the disk as argument:

root #fdisk /dev/sda
Command (m for help):

To view the available partitions, type in p:

Command (m for help):p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
   Device Flag    Start       End    Blocks   Id  System
/dev/sda1             0       488    499712   83  Linux native
/dev/sda2           488       976    499712   82  Linux swap
/dev/sda3             0      8635   8842240    5  Whole disk
/dev/sda4           976      1953   1000448   83  Linux native
/dev/sda5          1953      2144    195584   83  Linux native
/dev/sda6          2144      8635   6646784   83  Linux native

Note the Sun disk label in the output. If this is missing, the disk is using the DOS-partitioning, not the Sun partitioning. In this case, use s to ensure that the disk has a Sun partition table:

Command (m for help):s
Building a new sun disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Drive type
   ?   auto configure
   0   custom (with hardware detected defaults)
   a   Quantum ProDrive 80S
   b   Quantum ProDrive 105S
   c   CDC Wren IV 94171-344
   d   IBM DPES-31080
   e   IBM DORS-32160
   f   IBM DNES-318350
   g   SEAGATE ST34371
   h   SUN0104
   i   SUN0207
   j   SUN0327
   k   SUN0340
   l   SUN0424
   m   SUN0535
   n   SUN0669
   o   SUN1.0G
   p   SUN1.05
   q   SUN1.3G
   r   SUN2.1G
   s   IOMEGA Jaz
Select type (? for auto, 0 for custom): 0
Heads (1-1024, default 64): 
Using default value 64
Sectors/track (1-1024, default 32): 
Using default value 32
Cylinders (1-65535, default 8635): 
Using default value 8635
Alternate cylinders (0-65535, default 2): 
Using default value 2
Physical cylinders (0-65535, default 8637): 
Using default value 8637
Rotation speed (rpm) (1-100000, default 5400): 10000
Interleave factor (1-32, default 1): 
Using default value 1
Extra sectors per cylinder (0-32, default 0): 
Using default value 0

The right values can be found in the documentation of the hard disk itself. The 'auto configure' option does not usually work.

Deleting existing partitions

It's time to delete any existing partitions. To do this, type d and hit Enter. Give the partition number to delete. To delete a pre-existing /dev/sda1, type:

Command (m for help):d
Partition number (1-4): 1

Do not delete partition 3 (whole disk). This is required. If this partition does not exist, follow the "Creating a Sun Disklabel" instructions above.

After deleting all partitions except the Whole disk slice,a partition layout similar to the following should show up:

Command (m for help):p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
   Device Flag    Start       End    Blocks   Id  System
/dev/sda3             0      8635   8842240    5  Whole disk

Creating the root partition

Next create the root partition. To do this, type n to create a new partition, then type 1 to create the partition. When prompted for the first cylinder, hit Enter. When prompted for the last cylinder, type +512M to create a partition 512 MB in size. Make sure that the entire root partition fits within the first 2 GB of the disk. The output of these steps is as follows:

Command (m for help):n
Partition number (1-8): 1
First cylinder (0-8635): (press Enter)
Last cylinder or +size or +sizeM or +sizeK (0-8635, default 8635): +512M

When listing the partitions (through p), the following partition printout is shown:

Command (m for help):p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
   Device Flag    Start       End    Blocks   Id  System
/dev/sda1             0       488    499712   83  Linux native
/dev/sda3             0      8635   8842240    5  Whole disk

Creating a swap partition

Next, let's create the swap partition. To do this, type n to create a new partition, then 2 to create the second partition, /dev/sda2 in our case. When prompted for the first cylinder, hit Enter. When prompted for the last cylinder, type +512M to create a partition 512 MB in size. After this, type t to set the partition type, 2 to select the partition just created and then type in 82 to set the partition type to "Linux Swap". After completing these steps, typing p should display a partition table that looks similar to this:

root #Command (m for help):
root #p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
   Device Flag    Start       End    Blocks   Id  System
/dev/sda1             0       488    499712   83  Linux native
/dev/sda2           488       976    499712   82  Linux swap
/dev/sda3             0      8635   8842240    5  Whole disk

Creating the usr, var and home partitions

Finally, let's create the /usr, /var and /home partitions. As before, type n to create a new partition, then type 4 to create the third partition (we do not count the whole disk as being a partition), /dev/sda4 in our case. When prompted for the first cylinder, hit Enter. When prompted for the last cylinder, enter +2048M to create a partition 2 GB in size. Repeat this process for /dev/sda5 and sda6, using the desired sizes. When finished, the partition table will look similar to the following:

Command (m for help):p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
   Device Flag    Start       End    Blocks   Id  System
/dev/sda1             0       488    499712   83  Linux native
/dev/sda2           488       976    499712   82  Linux swap
/dev/sda3             0      8635   8842240    5  Whole disk
/dev/sda4           976      1953   1000448   83  Linux native
/dev/sda5          1953      2144    195584   83  Linux native
/dev/sda6          2144      8635   6646784   83  Linux native

Save and exit

Save the partition layout and exit fdisk by typing w:

Command (m for help):w

Erstellen von Dateisystemen


Nachdem die Partitionen angelegt wurden, ist es an der Zeit, Dateisysteme 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 einer Partition anlegen fortfahren. Alle anderen sollten weiterlesen, um mehr über die verfügbaren Dateisysteme zu erfahren ...


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

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!
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.
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.
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.
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.
Das Hochleistungs-Journaling-Dateisystem von IBM. JFS ist ein schlankes, schnelles und verlässliches B+-Baum basiertes Dateisystem mit guter Performance unter verschiedensten Gegebenheiten.
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.
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.
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).
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).

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 (mkfs.ext2) 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, ext3 und ext4 kann dies mit einem der folgenden Befehle erfolgen:

root #mkfs.ext2 -T small /dev/<device>
root #mkfs.ext3 -T small /dev/<device>
root #mkfs.ext4 -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 einer Partition anlegen

Dateisysteme können mit Hilfe von Programmen auf einer Partition oder auf einem Datenträger angelegt werden. Die folgende Tabelle zeigt, welchen Befehl Sie für welches Dateisystem benötigen. Um weitere Informationen zu einem Dateisystem zu erhalten, können Sie auf den Namen des Dateisystems klicken.

Dateisystem Befehl zum Anlegen Teil der Minimal CD? Gentoo Paket
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

Um beispielsweise die root-Partition (/dev/sda1) mit ext4 zu formatieren (wie in der Beispiel-Partitionsstruktur), würde man folgende Befehle verwenden:

root #mkfs.ext4 /dev/sda1

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 der Root-Partition

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/sda1 /mnt/gentoo
Wenn sich /tmp/ auf einer separaten Partition befinden muss, ändern Sie die Berechtigungen nach dem Einhängen:
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 Pseudo-Dateisystemen eingehängt. Zunächst installieren wir jedoch die Gentoo Installationsdateien.