Swap-Datei in Linux erstellen und aktivieren

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einleitung

In diesem Lab lernen Sie die wesentliche administrative Aufgabe des Erstellens und Aktivierens einer Swap-Datei unter Linux. Dieser Prozess ermöglicht es Ihnen, den virtuellen Speicher Ihres Systems zu erweitern, was entscheidend ist, wenn der physische RAM nicht ausreicht. Sie werden praktische Erfahrungen mit grundlegenden Befehlszeilen-Dienstprogrammen sammeln, um Systemressourcen effektiv zu verwalten und eine flexible Alternative zur Erstellung einer dedizierten Swap-Partition zu bieten.

Sie durchlaufen den vollständigen Workflow, beginnend damit, wie Sie den aktuellen Swap-Speicher mit dem Befehl swapon überprüfen. Als Nächstes erstellen Sie eine Datei für den Swap-Bereich mit dd, formatieren sie mit mkswap zur Verwendung als Swap und aktivieren sie dann. Zum Abschluss des Labs überprüfen Sie, ob die neue Swap-Datei erfolgreich konfiguriert und vom System erkannt wurde.

Überprüfung des aktuellen Swap-Speichers mit swapon

In diesem Schritt lernen Sie, wie Sie die aktuelle Swap-Speicher-Konfiguration auf Ihrem Linux-System überprüfen. Swap-Speicher ist ein Teil einer Festplatte, der als virtueller Speicher verwendet wird, wenn der physische Speicher (RAM) voll ist. Er ermöglicht es dem System, mehr Anwendungen auszuführen, als in den physischen RAM allein passen würden.

Zunächst verwenden Sie den Befehl swapon, ein Dienstprogramm zur Angabe von Geräten und Dateien für Paging und Swapping. Wir verwenden ihn mit der Option --show, um eine Zusammenfassung der aktiven Swap-Geräte anzuzeigen. Da die Verwaltung des Swap-Speichers eine administrative Aufgabe ist, müssen Sie sudo verwenden, um den Befehl mit Root-Privilegien auszuführen.

Führen Sie in Ihrem Terminal, das sich bereits im Verzeichnis ~/project befindet, den folgenden Befehl aus:

sudo swapon --show

Sie sehen eine Ausgabe, die der folgenden ähnelt. Die Details wie NAME und SIZE können je nach anfänglicher Konfiguration Ihrer virtuellen Maschine variieren. Es ist auch möglich, dass kein Swap-Speicher konfiguriert ist. In diesem Fall erzeugt dieser Befehl keine Ausgabe.

NAME        TYPE      SIZE USED PRIO
/dev/loop12 partition   2G   0B   -2

Lassen Sie uns die Ausgabe aufschlüsseln:

  • NAME: Der Name des Swap-Geräts oder der Swap-Datei. In diesem Beispiel ist es ein Loop-Gerät (/dev/loop12).
  • TYPE: Der Typ des Swap-Speichers, der eine partition oder eine file sein kann.
  • SIZE: Die Gesamtgröße des Swap-Speichers.
  • USED: Die Menge des aktuell genutzten Swap-Speichers.
  • PRIO: Die Priorität des Swap-Speichers. Wenn Sie mehrere Swap-Bereiche haben, wird der mit der höheren Priorität zuerst verwendet.

Durch die Ausführung dieses Befehls haben Sie die aktuelle Swap-Konfiguration des Systems erfolgreich überprüft. In den folgenden Schritten lernen Sie, wie Sie eine neue Swap-Datei erstellen und aktivieren, was eine flexible Möglichkeit ist, Swap-Speicher hinzuzufügen, ohne eine Festplatte neu partitionieren zu müssen.

Erstellen einer Datei für Swap-Speicher mit dd

Im vorherigen Schritt haben Sie gelernt, wie Sie die vorhandene Swap-Konfiguration anzeigen. Nun erstellen Sie eine dedizierte Datei, die als neuer Swap-Speicher verwendet wird. Die Verwendung einer Datei für Swap ist eine flexible Methode, da sie keine Neupartitionierung Ihrer Festplatte erfordert.

Wir verwenden den Befehl dd, ein leistungsstarkes Dienstprogramm zum Kopieren und Konvertieren von Daten. Es ist ideal für diese Aufgabe, da es eine Datei mit einer präzisen Größe erstellen kann, indem es von einem speziellen Systemgerät namens /dev/zero liest, das ein endloser Strom von Nullzeichen (Nullen) ist.

Um eine 250 MB große Datei namens swapfile in Ihrem aktuellen Verzeichnis (~/project) zu erstellen, führen Sie den folgenden Befehl aus. Sie benötigen sudo, da die Datei letztendlich vom System verwaltet wird.

sudo dd if=/dev/zero of=swapfile bs=1M count=250

Lassen Sie uns diesen Befehl aufschlüsseln:

  • sudo: Führt den Befehl mit Root-Privilegien aus.
  • dd: Das von uns verwendete Befehlszeilen-Dienstprogramm.
  • if=/dev/zero: Gibt die input file (Eingabedatei) an. /dev/zero ist eine spezielle Datei, die einen Strom von Nullzeichen erzeugt.
  • of=swapfile: Gibt die output file (Ausgabedatei) an. Dies erstellt eine Datei namens swapfile im aktuellen Verzeichnis.
  • bs=1M: Legt die block size (Blockgröße) auf 1 Megabyte fest. dd liest und schreibt Daten in 1-MB-Blöcken.
  • count=250: Kopiert 250 Blöcke. Da unsere Blockgröße 1 MB beträgt, ergibt dies eine Datei von 250 * 1 MB = 250 MB.

Nachdem Sie den Befehl ausgeführt haben, sehen Sie eine Ausgabe, die den Erfolg des Vorgangs bestätigt:

250+0 records in
250+0 records out
262144000 bytes (262 MB, 250 MiB) copied, 0.270222 s, 970 MB/s

Sie haben nun erfolgreich eine 250 MB große Datei erstellt. Im nächsten Schritt formatieren Sie diese Datei, damit sie als Swap-Speicher erkannt wird, und legen die entsprechenden Berechtigungen dafür fest.

Formatieren der Datei als Swap mit mkswap

Im vorherigen Schritt haben Sie eine Datei namens swapfile erstellt, die mit Nullen gefüllt ist. Das Betriebssystem erkennt sie jedoch noch nicht als gültigen Swap-Bereich an. Sie müssen sie speziell für diesen Zweck formatieren. Hier kommt der Befehl mkswap ins Spiel.

Der Befehl mkswap richtet einen Linux-Swap-Bereich auf einem Gerät oder in einer Datei ein. Er schreibt eine spezielle Signatur in die Datei, die der Kernel identifizieren kann.

Zuerst formatieren wir die von Ihnen erstellte swapfile. Führen Sie in Ihrem Terminal den folgenden Befehl aus:

sudo mkswap swapfile

Nach Ausführung des Befehls sehen Sie eine Ausgabe, die angibt, dass der Swap-Bereich eingerichtet wurde. Das System weist Ihrem neuen Swap-Bereich eine eindeutige Kennung (UUID) zu. Möglicherweise sehen Sie auch eine Warnung bezüglich unsicherer Berechtigungen, die wir als Nächstes behandeln werden.

mkswap: swapfile: insecure permissions 0644, fix with: chmod 0600 swapfile
Setting up swapspace version 1, size = 250 MiB (262139904 bytes)
no label, UUID=aabf0226-9f7b-47f5-9ad3-10248552795c

Wichtiger Sicherheitshinweis: Eine Swap-Datei kann potenziell sensible Daten aus dem Arbeitsspeicher Ihres Computers enthalten. Aus Sicherheitsgründen ist es unerlässlich, dass nur der root-Benutzer Lese- und Schreibrechte darauf hat. Andere Benutzer im System sollten keinen Zugriff haben.

Um die korrekten Berechtigungen festzulegen, verwenden wir den Befehl chmod. Wir setzen die Berechtigungen auf 600, was dem Eigentümer (root) Lese- und Schreibzugriff gewährt und allen anderen jeglichen Zugriff entzieht.

Führen Sie den folgenden Befehl aus, um Ihre swapfile zu sichern:

sudo chmod 600 swapfile

Dieser Befehl erzeugt bei Erfolg keine Ausgabe. Sie haben nun die swapfile erfolgreich formatiert und ihre Berechtigungen gesichert. Sie ist nun bereit, aktiviert und vom System verwendet zu werden, was Sie im nächsten Schritt tun werden.

Aktivieren der neuen Swap-Datei mit swapon

Sie haben erfolgreich eine swapfile erstellt und vorbereitet. Sie ist nun formatiert und hat die korrekten Berechtigungen, aber der Linux-Kernel nutzt sie noch nicht als virtuellen Speicher. In diesem Schritt aktivieren Sie die Swap-Datei und stellen sie dem System zur Verfügung.

Dazu verwenden Sie erneut den Befehl swapon. Im ersten Schritt haben Sie ihn mit der Option --show verwendet, um die aktuelle Konfiguration anzuzeigen. Diesmal geben Sie den Pfad zu Ihrer swapfile als Argument an, um sie zu aktivieren.

Führen Sie in Ihrem Terminal im Verzeichnis ~/project den folgenden Befehl aus, um Ihren neuen Swap-Speicher zu aktivieren:

sudo swapon swapfile

Lassen Sie uns den Befehl überprüfen:

  • sudo: Dies ist notwendig, da die Aktivierung von Swap-Speicher eine systemweite Operation ist, die Root-Privilegien erfordert.
  • swapon: Der Befehl zum Aktivieren von Geräten und Dateien für das Swapping.
  • swapfile: Der Name der Datei, die Sie aktivieren möchten. Da Sie sich im Verzeichnis ~/project befinden, in dem sich die Datei befindet, müssen Sie nicht den vollständigen Pfad angeben.

Wenn der Befehl erfolgreich ist, erzeugt er keine Ausgabe. Dies ist das Standardverhalten vieler Linux-Befehle – keine Nachrichten sind gute Nachrichten.

Ihre swapfile ist nun aktiv und wird vom System als zusätzlicher virtueller Speicher genutzt. Im letzten Schritt überprüfen Sie, ob der neue Swap-Speicher erfolgreich zu den gesamten Speicherressourcen des Systems hinzugefügt wurde.

Überprüfung der neuen Swap-Speicher-Konfiguration

Herzlichen Glückwunsch! Sie haben erfolgreich eine neue Swap-Datei erstellt, formatiert und aktiviert. In diesem letzten Schritt überprüfen Sie, ob das System diese neue Ressource erkennt und zur Nutzung bereit ist. Dies bestätigt, dass alle vorherigen Schritte korrekt abgeschlossen wurden.

Beginnen wir mit demselben Befehl wie zu Beginn dieses Labs, swapon --show. Wenn Sie ihn jetzt ausführen, sollte eine aktualisierte Liste der aktiven Swap-Bereiche angezeigt werden, einschließlich der gerade hinzugefügten swapfile.

Führen Sie in Ihrem Terminal den folgenden Befehl aus:

sudo swapon --show

Die Ausgabe zeigt nun zwei Einträge an: die ursprüngliche Swap-Partition (falls vorhanden) und Ihre neue Swap-Datei. Beachten Sie die neue Zeile für /home/labex/project/swapfile.

NAME                         TYPE      SIZE USED PRIO
/dev/loop12                  partition   2G   0B   -2
/home/labex/project/swapfile file      250M   0B   -3

Wie Sie sehen können, erkennt das System nun einen Swap-Bereich vom Typ file mit einer Größe von 250M. Ihm wurde auch eine Priorität (PRIO) zugewiesen. Der Kernel verwendet zuerst den Swap-Bereich mit der höheren Priorität.

Ein weiterer nützlicher Befehl zur Überprüfung der Speicher- und Swap-Nutzung ist free. Die Verwendung der Option -h (--human) erleichtert die Lesbarkeit der Ausgabe, indem Größen in Megabyte (M) oder Gigabyte (G) angezeigt werden.

Führen Sie den Befehl free -h aus:

free -h

Sie sehen eine Zusammenfassung des Systemspeichers. Achten Sie besonders auf die Zeile Swap.

               total        used        free      shared  buff/cache   available
Mem:           3.5Gi       608Mi       732Mi        16Mi       2.2Gi       2.7Gi
Swap:          2.2Gi          0B       2.2Gi

Der Wert total in der Zeile Swap sollte nun die kombinierte Größe des ursprünglichen Swap-Bereichs und Ihrer neuen 250-MB-Datei widerspiegeln. Wenn Sie beispielsweise mit 2 GB Swap begonnen haben, beträgt die neue Gesamtsumme etwa 2,2 GB.

Sie haben erfolgreich eine neue Swap-Datei auf Ihrem Linux-System hinzugefügt und verifiziert, wodurch es über mehr virtuellen Speicher verfügt.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie eine Swap-Datei erstellen und aktivieren, um einem Linux-System virtuellen Speicher hinzuzufügen. Sie begannen mit der Überprüfung der vorhandenen Swap-Speicher-Konfiguration mithilfe des Befehls sudo swapon --show, um den aktuellen Zustand des virtuellen Speichers des Systems zu verstehen und dessen Ausgabe zu interpretieren.

Nach der anfänglichen Überprüfung erstellten Sie eine neue Swap-Datei mit dem Befehl dd, um den gewünschten Festplattenspeicher zuzuweisen. Anschließend formatierten Sie diese Datei für die Swap-Nutzung mit mkswap und aktivierten sie mit dem Befehl swapon, wodurch sie dem System sofort zur Verfügung gestellt wurde. Abschließend haben Sie durch erneutes Ausführen von swapon --show überprüft, ob die neue Swap-Datei erfolgreich hinzugefügt und aktiv war, und somit die aktualisierte Konfiguration bestätigt.