SWAP erstellen bzw. vergrößern/verkleinern
Wie der Name Swap bereits vermuten lässt, steht bei einer Swap-Partition bzw. einem Swap-File etwas im Austausch. Auszulagernde Daten werden für gewöhnlich im Arbeitsspeicher geparkt. Ist der Arbeitsspeicher jedoch voll, können weitere Daten in die Swap-Partition geschoben werden. Zwar ist die Auslagerung auf eine Swap-Partition weniger performant, aus Anwendungssicht besteht jedoch keinerlei Unterschied.
Während einer Linux-Installation wird standardmäßig eine solche Partition angelegt. Ist dies nicht der Fall, oder soll die Größe einer bereits bestehenden nachträglich vergrößert/verkleinert werden, sind nur wenige Befehle notwendig, die im folgenden Beitrag geschildert werden.
Ob eine Swap-Partition oder ein Swap-File existiert, können wir mit dem folgenden Befehl herausfinden:
free -h
Neben dem installierten RAM-Speicher wird außerdem der vorhandene Swap gelistet. Sollte kein Swap existieren, erscheint in der Ausgabe lediglich eine Größe von Swap: 0G 0G 0G.
Folgendermaßen lässt sich nun der Ort der Swap-Datei in Erfahrung bringen:
sudo swapon -show
In diesem Fall liegt das Swap-File unter /swapfile. Dies stellt auch den Standard-Namen sowie den Standard-Ablageort dar.
Da wir nun die benötigten Informationen zum existierenden (oder nicht existierenden) Swap herausgefunden haben, machen wir uns an die Erstellung bzw. der Erweiterung ebendiesen.
Zunächst wird der Swap abgeschaltet:
sudo swapoff -a
Dies kann, je nach Swap-Größe, einige Minuten dauern. Anschließend wird das Swap-File angepasst. Liegt dieses unter /swapfile (wie in unserem Fall), sähe der Befehl folgendermaßen aus:
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
Dieses Kommando erstellt die leere Datei /swapfile mit der Größe von acht Gigabyte. Die Größe kann je nach belieben angepasst werden. Ändert hierzu einfach die Zahl hinter dem Parameter bs=. Sollte der Befehl mit folgender Fehlermeldung abbrechen …
memory exhausted by input buffer of size
… verringert ihr den Blocksize auf z.B. 1 Megabyte und erhöht dafür den count auf die entsprechende Größe, sodass die gewünschte Swap-Größe erreicht wird:
sudo dd if=/dev/zero of=/swapfile bs=1M count=8000
Nun wird noch die Zugriffsberechtigung der Swap-Datei angepasst …
sudo chmod 600 /swapfile
… die eben erzeugte Datei zum Swap deklariert …
sudo mkswap /swapfile
… und der Swap wieder eingeschaltet:
sudo swapon /swapfile
Falls der Swap neu erstellt wurde oder die Datei nun woanders als zuvor liegt, muss noch der Mount unter /etc/fstab angepasst werden. Dies könnte beispielsweise folgendermaßen aussehen:
### Öffnet die /etc/fstab
sudo nano /etc/fstab
### und fügt beispielsweise die untenstehende Zeile ein
/swapfile none swap sw 0 0
Damit wäre der Swap auch schon erstellt bzw. von der Größe her angepasst.
Hallo derlinuxwikinger,
habe eben nach deiner Anleitung meine Swapdatei von 2 GiB auf 6 GiB vergrößert. Das hat auf Anhieb und sehr einfach funktioniert. Vielen Dank 🙂
Danke für die gute Beschreibung des Vorganges! Funktioniert tadellos.
Eine Anleitung, die ohne jegliche Fehlermeldungen auf Anhieb funktioniert hat. Schnell und unkompliziert. Danke.
Top Anleitung, vielen Dank
Besten Dank für das Feedback!
Hallo, bei mir scheint da was nicht zu stimmen:
GNU nano 7.2 /etc/fstab *
# /etc/fstab: static file system information.
#
# Use ‚blkid‘ to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
# / was on /dev/nvme0n1p2 during installation
UUID=58930977-1c6f-42ba-898a-b646dd5d9a5b / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=A544-D3FB /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
Ich habe den letzten Befehl „sudo nano /etc/fstab“ eingegeben und jetzt wird mir unten im Terminal diese Leiste angezeigt. Ich komme nicht mehr weiter. Will ich das Terminal schließen, kommt: Der Prozess läuft noch, ob ich ihn abbrechen will.
Ich hatte das vor ein paar Wochen schon mal versucht, nur die Swap wird anscheinend nicht zugeordnet.
Jetzt wollte ich den Prozess nochmals laufen lassen.
Gleiches Spiel, ich weiß nicht mehr weiter.
Hallo Michael,
„der Prozess läuft noch“ ist mir im nano-Kontext noch nicht untergekommen. Ist deine fstab-Datei möglicherweise in dem Moment, in dem du sie bearbeiten möchtest, bereits von einem anderen Programm geöffnet?
Wann genau erscheint denn die Fehlermeldung? Etwa bei dem Befehl „swapon“ oder nachdem du die fstab-Datei geändert hast?
Gib sicherheitshalber mal folgenden Befehl ein nachdem du die fstab-Datei geändert hast …
mount -a
und dann nochmal „swapon“ oder editiere die Datei ggf. mal mit einem anderen Editor wie z.B. vi oder vim.
viele Grüße,
Marian
Hallo Marian,
hm, was ich mich erinnern kann, nach dem „sudo nano … „-Befehl.
Da konnte ich auch nichts mehr eingeben, sondern nur schleißen.
Lieben Dank für deine Hilfe, aber mir ist das doch alles etwas zu kompliziert. Ich habe mich jetzt an „linuxguides.de“ gewandt.
Die sollen das für mich machen.
Du kannst meinen Fall (Beschreibung) auch gerne wieder löschen.
Danke, Michael
Okay,
dann drücke ich dir da die Daumen dass es noch funktioniert. 🙂
Hallo und guten Morgen !
Ich bin mit der Anleitung ganz gut zurecht gekommen bis zu diesem Schritt:
Befehl: „sudo swapon /swapfile“
Fehlermeldung kommt:
„swapon: /swapfile: wird übersprungen – scheint Löcher zu enthalten.“
Die Auslagerungsdatei wird nach dem abschalten jetzt als „nicht aktiv“ angezeigt. Auch wird kein Ordnerpfad oder name mehr angezeigt nach dem „show – Befehl“.
Ich denke, es liegt an mir. Weil ich mit den Befehlen nicht viel anfangen kann. Gibt es trotzdem eine Möglichkeit das Problem zu lösen ?
Vielen lieben Dank schon mal !
Viele Grüße,
Linux-Anfängernutzer
Hey,
in dem Fall ist dein Swap-File wohl im wahrsten Sinne des Wortes „duchlöchert“ und hat einige ausgelassene Datenblöcke. In diesem Fall könntest du nochmal folgende Schritte ausführen.
Deaktiviere ggf. das alte Swap-File, falls überhaupt aktiv (Passe ggf. den Pfad und Namen entsprechend deines Swap-Files an):
sudo swapoff /swapfile
Lösche dann dieses Swap-File:
sudo rm /swapfile
Leg dir anschließend ein neues an (wie in der Anleitung beschrieben), setze die korrekten Berechtigungen, deklariere die Datei als Swap und aktiviere sie:
sudo dd if=/dev/zero of=/swapfile bs=1M count=8000
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Falls bei keinem der Befehle ein Fehler aufgetreten ist, solltest du nun ein funktionierendes Swap-File unter /swapfile erzeugt und dies aktiviert haben.
viele Grüße