MKSWAP(8)

BEZEICHNUNG
mkswap - einen Linux-Auslagerungsspeicher einrichten

ÜBERSICHT

mkswap [Optionen] Gerät [Größe]

mkswap [Optionen] --size Größe --file Datei

BESCHREIBUNG

mkswap richtet einen Linux-Auslagerungsspeicher auf einem Gerät oder in einer Datei ein.

Das Argument Gerät ist üblicherweise eine Festplattenpartition (etwa /dev/sdb7), kann aber auch eine Datei sein. Der Linux-Kernel achtet nicht auf Partitionskennungen, aber viele Installationsskripte setzen voraus, dass Partitionen des hexadezimalen Typs 82 (LINUX_SWAP) Auslagerungspartitionen sind. (Warnung: Solaris verwendet diesen Typ ebenfalls. Seien Sie vorsichtig, um Ihre Solaris-Partitionen nicht zu zerstören.)

Der Parameter Blöcke ist entbehrlich, steht aber zwecks Abwärtskompatibilität zur Verfügung. Es handelt sich um die gewünschte Größe des Auslagerungsbereiches in 1024-Byte-Blöcken. mkswap verwendet die gesamte Partition oder Datei, falls die Größe nicht angegeben wird. Die Angabe ist jedoch keine gute Idee, denn ein Eingabefehler kann Ihre Festplatte zerstören.

Nach dem Anlegen des Auslagerungsbereiches müssen Sie den Befehl swapon(8) ausführen, um den Bereich nutzen zu können. Üblicherweise werden Auslagerungsbereiche auch in der Datei /etc/fstab aufgelistet, so dass sie beim Systemstart mittels des Befehls swapon -a innerhalb eines Skriptes in Betrieb genommen werden können.

WARNUNG

Der Auslagerungs-Header wirkt sich nicht auf den ersten Block aus. Ein Bootloader oder eine Laufwerksbezeichnung können sich dort befinden, aber diese Konstellation ist nicht empfehlenswert. Es ist besser, eine separate Partition für einen Linux-Auslagerungsbereich zu verwenden.

mkswap verhält sich wie viele andere mkfs-Werkzeuge, es löscht den ersten Block der Partition, um vorher darauf befindliche Dateisysteme unsichtbar zu machen.

Allerdings verweigert mkswap das Löschen des ersten Blocks auf einem Gerät mit einer Bezeichnung (SUN, BSD, ...).

OPTIONEN

-c, --check
    überprüft das Gerät (falls es sich um ein blockorientiertes Gerät handelt) auf fehlerhafte Blöcke, bevor der Auslagerungsbereich angelegt wird. Falls fehlerhafte Blöcke gefunden werden, wird deren Anzahl ausgegeben.

-F, --file
    erstellt eine Auslagerungsdatei mit den entsprechenden Dateizugriffsrechten und der Belegung der Blöcke auf dem Datenträger.

-f, --force
    erzwingt die Ausführung, selbst wenn der Befehl unlogisch wäre. Dies erlaubt die Erstellung eines Auslagerungsbereiches, der größer als die Datei oder die Partition ist, auf der er sich befinden soll.

    Außerdem verweigert mkswap mit dieser Option das Löschen des ersten Blocks auf einem Gerät mit einer Partitionstabelle.

-q, --quiet
    unterdrückt Ausgabe- und Warnmeldungen.

-L, --label Bezeichnung
    gibt eine Bezeichnung für dieses Gerät an, wodurch die Aktivierung mit swapon(8) anhand dieser Bezeichnung möglich ist.

--lock[=Modus]
    verwendet eine exklusive BSD-Sperre für das Gerät oder die Datei, auf dem/der es agiert. Das optionale Argument Modus kann yes, no (oder 1 und 0) oder nonblock sein. Falls das Argument Modus weggelassen wird, wird standardmäßig yes angenommen. Diese Option setzt die Umgebungsvariable $LOCK_BLOCK_DEVICE außer Kraft. Standardmäßig wird überhaupt keine Sperre gesetzt, dies wird aber empfohlen, um Kollisionen mit systemd-udevd(8) oder anderen Werkzeugen zu vermeiden.

-p, --pagesize Größe
    gibt die zu verwendende Größe der Seite (in Bytes) an. Diese Option ist normalerweise nicht erforderlich, da mkswap die Größe vom Kernel erhält.

-U, --uuid UUID
    gibt die zu verwendende UUID an. Standardmäßig wird eine UUID erzeugt. Das Format der UUID ist eine Reihe von Hexadezimalzahlen, die durch Bindestriche getrennt sind, wie folgt: "c1b9d5a2-f162-11cf-9ece-0020afc76f16". Der UUID-Parameter kann auch einer der folgenden sein:

    clear
        leert die UUID des Dateisystems.

    random
        erzeugt zufallsbasiert eine neue UUID

    time
        erzeugt zeitbasiert eine neue UUID

-e, --endianness BYTEREIHENFOLGE
    gibt die zu verwendende BYTEREIHENFOLGE an, gültige Argumente sind native, little oder big. Die Vorgabe ist native.

-o, --offset Versatz
    gibt den Versatz an, wo der Auslagerungsbereich geschrieben werden soll.

-s, --size Größe
    gibt die Größe der erstellten Auslagerungsdatei in Byte an. Der Größenangabe können Suffixe KiB (=1024), MiB (=1024*1024) und so weiter für GiB, TiB, PiB, EiB, ZiB und YiB folgen (das »iB« ist optional, zum Beispiel ist »K« gleichbedeutend mit »KiB«). Falls die Datei existiert und größer als die angegebene Größe ist, wird sie auf diese Größe gekürzt. Diese Option ergibt nur dann Sinn, wenn Sie sie zusammen mit --file verwenden.

-v, --swapversion 1
    gibt die Version von swap-space an. Diese Option ist gegenwärtig wirkungslos, da die alte Option -v 0 obsolet ist und nun nur noch -v 1 unterstützt wird. Der Kernel unterstützt das swap-space-Format Version 0 seit der Linux-Version 2.5.22 nicht mehr (Juni 2002). Die neue Version 1 wird seit 2.1.17 unterstützt (August 1998).

--verbose
    aktiviert die ausführliche Ausgabe. Mit dieser Option gibt mkswap mehr Details zu während der Einrichtung des Auslagerungsbereichs erkannten Problemen aus.

-h, --help
    zeigt einen Hilfetext an und beendet das Programm.

-V, --version
    zeigt Versionsinformationen an und beendet das Programm.

UMGEBUNGSVARIABLEN

LIBBLKID_DEBUG=all
    aktiviert die Debug-Ausgabe für libblkid.

LOCK_BLOCK_DEVICE=<Modus>
    verwendet eine exklusive BSD-Sperre. Der Modus ist »1« oder »0«. Siehe --lock für weitere Details.

ANMERKUNGEN

Die maximal sinnvolle Größe eines Auslagerungsbereiches hängt von der Architektur und der Kernel-Version ab.

Die maximale Anzahl der addressierbaren Seiten im Header eines Auslagerungsbereiches ist 4294967295 (vorzeichenlose 32-Bit-Ganzzahl). Der verbleibende Platz im Auslagerungsgerät wird ignoriert.

Gegenwärtig erlaubt Linux 32 Auslagerungsbereiche. Die in Betrieb befindlichen Auslagerungsbereiche sind in der Datei /proc/swaps zu sehen.

mkswap verweigert die Erstellung von Bereichen, die kleiner als 10 Seiten sind.

Falls Sie nicht wissen, welche Speicherseitengröße Ihr Rechner verwendet, können Sie diese mit getconf PAGESIZE ermitteln.

Neben mkswap --file ist es auch möglich, die Auslagerungsdatei manuell zu erzeugen, bevor sie mit mkswap initialisiert wird, beispielsweise mit dem Befehl

Seit Version 2.41 setzt mkswap --file das »nocow«-Attribut für neu erzeugte Dateien, um Auslagerungsdateien auf Btrfs-Dateisystemen zu unterstützen.

    # dd if=/dev/zero of=swapfile bs=1MiB count=$((8*1024))

um eine 8 GiB-Auslagerungsdatei zu erstellen.

Bitte lesen Sie in solch einem Fall die Hinweise in swapon(8) zu den Einschränkungen der Verwendung von Auslagerungsdateien (Löcher, Vorzuweisungen und Copy-on-Write-Probleme).

SIEHE AUCH

fdisk(8), swapon(8)

FEHLER MELDEN

Nutzen Sie zum Melden von Fehlern das

VERFÜGBARKEIT

Der Befehl mkswap ist Teil des Pakets util-linux, welches aus dem heruntergeladen werden kann.