Einführung
In diesem Lab lernen Sie, wie Sie eine Swap-Datei unter Linux erstellen und aktivieren. Dadurch können Sie den virtuellen Speicher Ihres Systems vergrößern, was wichtig ist, wenn der physische Arbeitsspeicher nicht ausreicht. Sie sammeln praktische Erfahrung mit grundlegenden Befehlszeilenprogrammen zur effizienten Verwaltung von Systemressourcen. Eine Swap-Datei bietet dabei eine flexible Alternative zum Erstellen einer eigenen Swap-Partition.
Sie durchlaufen den vollständigen Arbeitsablauf: Zuerst prüfen Sie mit dem Befehl swapon den aktuell konfigurierten Swap-Speicher. Danach erstellen Sie mit dd eine Datei für den Swap-Bereich, formatieren sie mit mkswap als Swap-Speicher, aktivieren sie und konfigurieren Linux so, dass die Datei nach einem Neustart automatisch wieder aktiviert wird. Zum Abschluss überprüfen Sie, ob die neue Swap-Datei erfolgreich eingerichtet und vom System erkannt wurde.
Den aktuellen Swap-Speicher mit swapon prüfen
In diesem Schritt prüfen Sie die aktuelle Swap-Konfiguration Ihres Linux-Systems. Swap-Speicher ist ein Teil der Festplatte, der als virtueller Speicher verwendet wird, wenn der physische Arbeitsspeicher (RAM) vollständig belegt ist. Dadurch kann das System mehr Anwendungen ausführen, als allein in den physischen Arbeitsspeicher passen würden.
Verwenden Sie zunächst den Befehl swapon. Dieses Dienstprogramm legt Geräte und Dateien für Paging und Swapping fest. Mit der Option --show zeigen Sie eine Zusammenfassung der aktiven Swap-Geräte an. Da die Verwaltung des Swap-Speichers eine administrative Aufgabe ist, müssen Sie den Befehl mit sudo und damit mit Root-Berechtigungen ausführen.
Ihr Terminal befindet sich bereits im Verzeichnis ~/project. Führen Sie dort den folgenden Befehl aus:
sudo swapon --show
Die Ausgabe sieht ähnlich wie die folgende aus. Angaben wie NAME und SIZE können je nach Ausgangskonfiguration Ihrer virtuellen Maschine abweichen. Es ist auch möglich, dass kein Swap-Speicher konfiguriert ist. In diesem Fall erzeugt der Befehl keine Ausgabe.
NAME TYPE SIZE USED PRIO
/dev/loop12 partition 2G 0B -2
Die einzelnen Spalten haben folgende Bedeutung:
- NAME: Der Name des Swap-Geräts oder der Swap-Datei. In diesem Beispiel handelt es sich um ein Loop-Gerät (
/dev/loop12). - TYPE: Der Typ des Swap-Speichers:
partitionfür eine Partition oderfilefür eine Datei. - SIZE: Die Gesamtgröße des Swap-Speichers.
- USED: Die aktuell verwendete Größe des Swap-Speichers.
- PRIO: Die Priorität des Swap-Speichers. Wenn mehrere Swap-Bereiche vorhanden sind, verwendet das System zuerst den Bereich mit der höheren Priorität.
Mit diesem Befehl haben Sie die aktuelle Swap-Konfiguration des Systems erfolgreich geprüft. In den folgenden Schritten erstellen und aktivieren Sie eine neue Swap-Datei. Damit können Sie Swap-Speicher hinzufügen, ohne eine Festplatte neu zu partitionieren.
Mit dd eine Datei für den Swap-Speicher erstellen
In diesem Schritt erstellen Sie eine eigene Datei, die als neuer Swap-Speicher verwendet wird. Eine Swap-Datei ist eine flexible Lösung, weil Sie dafür die Festplatte nicht neu partitionieren müssen.
Verwenden Sie den Befehl dd, ein leistungsfähiges Dienstprogramm zum Kopieren und Konvertieren von Daten. dd eignet sich für diese Aufgabe, weil es eine Datei mit exakt festgelegter Größe erstellen kann. Dazu liest es Daten aus dem speziellen Systemgerät /dev/zero, das einen endlosen Strom von Nullzeichen liefert.
Erstellen Sie in Ihrem aktuellen Verzeichnis (~/project) eine 250 MB große Datei mit dem Namen swapfile. Führen Sie dazu den folgenden Befehl aus. Sie benötigen sudo, weil die Datei später vom System verwaltet wird.
sudo dd if=/dev/zero of=swapfile bs=1M count=250
Die Bestandteile des Befehls haben folgende Bedeutung:
sudo: Führt den Befehl mit Root-Berechtigungen aus.dd: Das verwendete Befehlszeilenprogramm.if=/dev/zero: Gibt die input-file, also die Eingabedatei, an./dev/zeroist eine spezielle Datei, die einen Strom von Nullzeichen erzeugt.of=swapfile: Gibt die output-file, also die Ausgabedatei, an. Dadurch wird im aktuellen Verzeichnis eine Datei mit dem Namenswapfileerstellt.bs=1M: Legt die block size, also die Blockgröße, auf 1 Megabyte fest.ddliest und schreibt die Daten in Blöcken von jeweils 1 MB.count=250: Kopiert 250 Blöcke. Bei einer Blockgröße von 1M ergibt das eine Datei mit 250 * 1M = 250 MB.
Nach der Ausführung sehen Sie eine Ausgabe, die den erfolgreichen Abschluss 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 jetzt 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 passenden Berechtigungen fest.
Die Datei mit mkswap als Swap formatieren
In diesem Schritt formatieren Sie die erstellte Datei swapfile, damit das Betriebssystem sie als gültigen Swap-Bereich erkennt. Dafür verwenden Sie den Befehl mkswap.
Der Befehl mkswap richtet auf einem Gerät oder in einer Datei einen Linux-Swap-Bereich ein. Dazu schreibt er eine spezielle Signatur in die Datei, die der Kernel erkennen kann.
Formatieren Sie zunächst die erstellte Datei swapfile. Führen Sie dazu in Ihrem Terminal den folgenden Befehl aus:
sudo mkswap swapfile
Nach der Ausführung zeigt die Ausgabe an, dass der Swap-Speicher eingerichtet wurde. Das System weist dem neuen Swap-Bereich eine eindeutige UUID zu. Möglicherweise sehen Sie außerdem eine Warnung zu unsicheren Berechtigungen. Diese beheben Sie im nächsten Schritt.
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 vertrauliche Daten aus dem Arbeitsspeicher Ihres Computers enthalten. Aus Sicherheitsgründen darf ausschließlich der Benutzer root die Datei lesen und beschreiben. Andere Benutzer des Systems dürfen keinen Zugriff darauf haben.
Verwenden Sie zum Festlegen der korrekten Berechtigungen den Befehl chmod. Setzen Sie die Berechtigungen auf 600. Dadurch erhält der Eigentümer (root) Lese- und Schreibzugriff, während alle anderen Benutzer keinen Zugriff haben.
Sichern Sie Ihre Datei swapfile mit dem folgenden Befehl:
sudo chmod 600 swapfile
Bei erfolgreicher Ausführung erzeugt dieser Befehl keine Ausgabe. Sie haben die Datei swapfile nun erfolgreich als Swap formatiert und ihre Berechtigungen gesichert. Die Datei kann jetzt aktiviert und vom System verwendet werden. Das erledigen Sie im nächsten Schritt.
Die neue Swap-Datei aktivieren und dauerhaft einrichten
Sie haben die Datei swapfile erfolgreich erstellt und vorbereitet. Sie ist formatiert und verfügt über die korrekten Berechtigungen. Der Linux-Kernel verwendet sie jedoch noch nicht als virtuellen Speicher. In diesem Schritt aktivieren Sie die Swap-Datei, damit sie dem System zur Verfügung steht.
Verwenden Sie dafür erneut den Befehl swapon. Im ersten Schritt haben Sie ihn mit der Option --show verwendet, um die aktuelle Konfiguration anzuzeigen. Diesmal übergeben Sie den Pfad zu Ihrer Datei swapfile als Argument, um sie zu aktivieren.
Ihr Terminal befindet sich im Verzeichnis ~/project. Aktivieren Sie dort den neuen Swap-Speicher mit folgendem Befehl:
sudo swapon swapfile
Der Befehl besteht aus folgenden Teilen:
sudo: Diese Angabe ist erforderlich, weil das Aktivieren von Swap-Speicher eine systemweite Operation ist, für die Root-Berechtigungen benötigt werden.swapon: Der Befehl zum Aktivieren von Geräten und Dateien für Swapping.swapfile: Der Name der zu aktivierenden Datei. Da Sie sich im Verzeichnis~/projectbefinden, in dem die Datei liegt, müssen Sie keinen vollständigen Pfad angeben.
Bei erfolgreicher Ausführung erzeugt der Befehl keine Ausgabe. Das ist bei vielen Linux-Befehlen normal: Wenn keine Fehlermeldung erscheint, war die Ausführung erfolgreich.
Der Befehl swapon aktiviert die Datei jedoch nur für den aktuellen Systemstart. Damit Linux die Datei nach einem Neustart automatisch aktiviert, fügen Sie ihren absoluten Pfad zu /etc/fstab hinzu:
echo '/home/labex/project/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Die sechs Felder identifizieren die Swap-Datei, verwenden none, weil Swap keinen Einhängepunkt besitzt, legen mit swap den Typ und mit sw die Standardoption fest und deaktivieren mit den letzten beiden Nullen Dump- und Dateisystemprüfungen.
Ihre Datei swapfile ist jetzt aktiv und so konfiguriert, dass sie auch nach Neustarts verfügbar bleibt. Im letzten Schritt überprüfen Sie, ob der neue Swap-Speicher erfolgreich zu den gesamten Speicherressourcen des Systems hinzugefügt wurde.
Die Konfiguration des neuen Swap-Speichers überprüfen
In diesem Schritt überprüfen Sie, ob das System die neue Swap-Datei erkennt, nachdem Sie sie erstellt, formatiert, aktiviert und dauerhaft konfiguriert haben. Damit bestätigen Sie, dass alle vorherigen Schritte korrekt ausgeführt wurden.
Verwenden Sie zunächst denselben Befehl wie zu Beginn dieses Labs: swapon --show. Die Ausgabe sollte jetzt eine aktualisierte Liste der aktiven Swap-Bereiche anzeigen, einschließlich der gerade hinzugefügten Datei swapfile.
Führen Sie in Ihrem Terminal den folgenden Befehl aus:
sudo swapon --show
Die Ausgabe enthält nun zwei Einträge: die ursprüngliche Swap-Partition, sofern eine vorhanden war, und Ihre neue Swap-Datei. Achten Sie auf 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
Das System erkennt jetzt einen Swap-Bereich vom Typ file mit einer Größe von 250M. Außerdem wurde ihm eine Priorität (PRIO) zugewiesen. Der Kernel verwendet zuerst den Swap-Bereich mit der höheren Priorität.
Mit dem Befehl free können Sie außerdem die Nutzung von Arbeitsspeicher und Swap überprüfen. Die Option -h (--human) macht die Ausgabe leichter lesbar, weil 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 jetzt die kombinierte Größe des ursprünglichen Swap-Speichers und Ihrer neuen 250-MB-Datei anzeigen. Wenn zu Beginn beispielsweise 2G Swap-Speicher vorhanden waren, beträgt der neue Gesamtwert ungefähr 2.2G.
Sie haben erfolgreich eine neue Swap-Datei zu Ihrem Linux-System hinzugefügt und überprüft. Das System verfügt nun über mehr virtuellen Speicher.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie eine Swap-Datei erstellen und aktivieren, um einem Linux-System virtuellen Speicher hinzuzufügen. Zu Beginn haben Sie mit dem Befehl sudo swapon --show die vorhandene Swap-Konfiguration geprüft, um den aktuellen Zustand des virtuellen Speichers zu verstehen und die Ausgabe zu interpretieren.
Anschließend haben Sie mit dem Befehl dd eine neue Swap-Datei erstellt und den gewünschten Speicherplatz auf der Festplatte zugewiesen. Danach haben Sie die Datei mit mkswap für die Verwendung als Swap formatiert, mit dem Befehl swapon aktiviert und in /etc/fstab eingetragen, damit Linux sie nach einem Neustart automatisch wieder aktiviert. Zum Abschluss haben Sie mit einem erneuten Aufruf von swapon --show überprüft, dass die neue Swap-Datei erfolgreich hinzugefügt und aktiviert wurde.



