Wie deaktiviere ich den Swap?

83

Ich habe einige sensible Daten im RAM, die ich nicht auf der Festplatte sein möchte. Wie deaktiviere ich Swap? Ich habe mehr als genug RAM. Wenn der RAM zu hoch wird, habe ich keine Probleme mit der Beendigung von Prozessen. Wie deaktiviere ich den Swap?

Hinweis: Ich habe keine Swap-Partition und diese wird in einer VM (VMWare) ausgeführt.


quelle
2
Selbst wenn Sie viel RAM haben, ist es nicht die beste Idee, vollständig ohne Swap zu arbeiten (siehe zum Beispiel alexonlinux.com/swap-vs-no-swap ). Abhängig von Ihren Anforderungen können Sie erwägen, die Swap-Partition auf einem mit dm-crypt gesicherten Gerät zu platzieren, damit alles, was darauf geschrieben wird, verschlüsselt wird. Sie müssen in einem solchen Fall sicherstellen, dass der Swap aktiviert wird, nachdem verschlüsselte Volumes verfügbar sind, und deaktiviert wird, bevor die Gerätezuordnung deaktiviert wird (ich denke, das ist Standard bei Ubuntu, bin mir aber nicht sicher). Durchsuchen Sie das Web nach "verschlüsseltem Tausch", um zahlreiche Anleitungen zu finden.
Quelle:
1
Apropos: askubuntu.com/questions/248158/… Sie müssen nicht tauschen, bis Sie es brauchen. Und dann brauchst du es wirklich.
Was ist mit einem Cryptswap? / dev / mapper / cryptswap1

Antworten:

121

Verwenden

sudo swapoff -a  

ist die übliche Art, Swap zu deaktivieren, wobei der swapon -aBefehl verwendet wird, um es wieder zu aktivieren. Sehen Sie man swapoff für weitere Informationen über Swap für explizite Geräte ausschalten.

ubfan1
quelle
7
Dies scheint nicht über einen Neustart bestehen zu bleiben?
Ebyrob
19
Permanente Änderungen am Swap werden normalerweise in / etc / fstab vorgenommen.
Ubfan1
Kopieren wir das einfach in / etc / fstab
Max
6
Nein. Stattdessen kommentieren Sie die Auslagerungszeile in / etc / fstab aus.
Torsten Bronger
Sie können in anderen Antworten nachlesen, wie Sie sie auskommentieren können.
Carolus
25

Sie können Swap nach dem Neustart deaktivieren, indem Sie einfach den Swap-Eintrag in der /etc/fstabDatei auskommentieren (# vor der Zeile hinzufügen) . Dadurch wird verhindert, dass die Swap-Partition nach einem Neustart automatisch bereitgestellt wird. So führen Sie dies in einem einzigen Befehl aus:

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

oder einfach:

sudo sed -i '/ swap / s/^/#/' /etc/fstab

Nun /etc/fstabsieht Ihr Swap-Eintrag in etwa so aus:

#UUID=xxxxxxxx-xxxx-xxxxx-xxx-xxxxxxxxxxx none            swap    sw              0       0

Mit Ihren eigenen Zahlen und Kleinbuchstaben anstelle der Buchstaben "x".

Avinash Raj
quelle
2
Warum hat Ihre angegebene UUID konkrete Ziffern? Sollten sie für alle UUIDs identisch sein? Die UUIDs meiner Partitionen stimmen nicht mit den von Ihnen angegebenen Ziffern überein.
Ruslan
Ihre sed-Befehle funktionieren nicht, wenn die Felder durch Tabulatoren (keine Leerzeichen) getrennt sind. Es ist besser als sed -ri '/\sswap\s/s/^#?/#/' /etc/fstabPS geschrieben: Ich habe auch hinzugefügt #?, um zusätzliche Änderungen an / etc / fstab zu verhindern, wenn die Zeile bereits deaktiviert ist.
Alek_A
4

Wenn Sie sich Gedanken über den Inhalt des Swaps machen, können Sie ihn wie gewohnt mit ausschalten sudo swapoff -aund das Swap-Gerät dann mit dd mit Nullen oder Zufallsdaten füllen.

Verwenden Sie zuerst den Inhalt von fstab, um Ihre Swap-Datei oder Ihr Gerät zu finden ( less /etc/fstab)

Nachdem es gefunden und doppelt und dreifach überprüft wurde, ob es sich beispielsweise bei sda5 oder /swapfile (Swap-Partitionen wurden ab 17.04 standardmäßig durch eine Swap- Datei ersetzt) ​​befindet .

Im Fall einer Swap-Partition oder eines Swap-Laufwerks: (vorangestellt mit / dev) setzen Sie den Befehl "disk destroyer" ab (nicht leichtfertig zu verwenden)

sudo dd if=/dev/zero of=swapErsetzen Sie das Wort Swap durch das Swap-Gerät oder die Datei, in der Sie sich befinden/etc/fstab

es voller Nullen oder

sudo dd if=/dev/random of=swapErsetzen Sie das Wort Swap erneut durch das Swap-Gerät oder die Datei, in der Sie sich befinden/etc/fstab

es voller zufälliger Daten zu sprengen.

Im Falle einer Auslagerungsdatei (mit nur einem Pfad vorangestellt): Sie können die Datei einfach mit löschenrm /path/to/swapfile

Beim nächsten Einschalten mit tauschen

swapon -a

Das System wird es gerne wieder verwenden. Wenn Sie über genügend RAM verfügen, müssen Sie möglicherweise überhaupt nicht tauschen. Geben Sie den Befehl aus

free Wenn das System stark ausgelastet ist, prüfen Sie, wie viel davon für diese Bestimmung verwendet wird.

Wenn Sie feststellen, dass Sie permanent keinen Swap benötigen (für den Ruhezustand oder etwas anderes), können Sie diese Zeile in fstab einfach auskommentieren, wie hier vorgeschlagen

kostenlos

Elder Geek
quelle
3

Es mag eine lahme Lösung sein, aber ich habe sie oft benutzt. Sie können einfach eingeben

sudo -s
crontab -e

Und füge hinzu

@reboot sudo swapoff -a  

Daher wird es beim Booten automatisch deaktiviert.

user10635
quelle
4
Ich hoffe, es versteht sich von selbst, dass dies eine sehr schlechte Methode ist. Warum eine Boot-Zeit - Aufgabe erstellen deaktivieren eine weitere Option, wenn es eine andere Datei , die bearbeitet werden können , um es in erster Linie eingeschaltet aufhören,
underscore_d
Vielleicht nicht so ästhetisch, aber es gibt nichts Schlechtes daran. Wenn Sie bereits sehr an die Verwendung von Crontab gewöhnt sind, ist diese Lösung ein wenig einfacher und sinnvoller als das blinde Kopieren dessen, was andere Benutzer in SE Ihnen anordneten, in / etc / fstab. Und Sie werden sich immer noch daran erinnern, wie Sie es mit einem neuen Computer machen können, ohne erneut googeln zu müssen. Ich weiß kaum, was Crontab ist und kenne mich sowieso viel besser mit Festplattenpartitionen aus, aber die Logik bleibt bestehen.
Nicholas Pipitone
Eigentlich könnte dies die bessere Lösung sein. Da / etc / fstab-Vorschläge nur für Swap-Partitionen funktionieren. Diese Lösung gilt für Linux-Setups, unabhängig davon, ob sie eine Partition oder eine Auslagerungsdatei verwenden.
Nicholas Pipitone
2
sudo swapoff -a

Der obige Befehl deaktiviert Swap nur für eine aktuelle Sitzung . Sie müssen die Swap-Partition in der Datei / etc / fstab auskommentieren. Dazu müssen Sie nur "#" (Kommentarzeile) am Anfang der Auslagerungszeile einfügen. Schritte sind wie folgt:

  1. Öffnen Sie die Datei fstab und geben Sie sudo gedit /etc/fstabterminal ein.

Der Inhalt der Datei würde folgendermaßen aussehen:

proc            /proc           proc    nodev,noexec,nosuid 0       0
/host/ubuntu/disks/root.disk /               ext4    loop,errors=remount-ro 0       1
/host/ubuntu/disks/swap.disk none            swap    loop,sw         0       0
#/dev/sda10 /media/ASD  vfat    defaults    0   0
#/dev/sda1  /media/98   vfat    defaults    0   0
  1. Fügen Sie einfach einen Hash (#) am Anfang der Swap-Partitionszeile hinzu, damit die Zeile wie folgt aussieht:

#/host/ubuntu/disks/swap.disk none swap loop,sw 0 0

  1. Starten Sie Ihren PC neu
Sohail xIN3N
quelle
0

Gehen Sie in Terminal und führen Sie diesen Befehl aus : gnome-disks. Es ist nicht in allen Distributionen installiert. Befolgen Sie in diesem Fall die Anweisungen zum Installieren und versuchen Sie es erneut. Suchen Sie im linken Bereich nach einem Gerät mit dem Wort "Swap". Es hat normalerweise die gleiche Größe wie Ihr physisches Gedächtnis. Klicken Sie auf die quadratische Schaltfläche, um sie zu deaktivieren. Authentifizieren Sie diese Änderung mit Ihrem Root-Passwort.

Screenshot: http://imgur.com/Og6igqb

In der Anwendung System Monitor (Gnome-System-Monitor) sehen Sie, dass der Swap-Bereich als 'nicht verfügbar' gemeldet wird. Der Auslagerungsbereich ist deaktiviert, wird jedoch nicht gelöscht. Sie können es in Zukunft problemlos wieder aktivieren. Das Löschen des Auslagerungsspeichers hat meinem System keinen Schaden zugefügt, aber Sie werden mehr Arbeit für sich selbst schaffen, wenn Sie entscheiden, dass Sie es in Zukunft zurückhaben möchten (Ruhezustand).

edit: um zu verhindern, dass es beim Start gemountet wird, solltest du in gnome-disks unter "Edit Mount Options ..." die Option "Mount at startup" deaktivieren.

user170544
quelle
1
Denken Sie, dass dies die Besorgnis der Benutzer über vertrauliche Daten auf der Swap-Partition beantwortet? Kannst du uns sagen warum?
Elder Geek
1
Der Hauptpunkt des Benutzers war die Frage, wie der Tausch deaktiviert werden soll. Wenn Sie sensible Daten haben, sollten Sie im Idealfall die Pre-Boot-Verschlüsselung verwenden.
user170544
1
Ich bin mit Respekt anderer Meinung. Wenn ich die Frage lese, ist der erste Satz, auf den ich stoße, "Ich habe einige vertrauliche Daten im RAM, die ich lieber nicht auf der Festplatte habe." Ich glaube, das war sein Hauptanliegen, weshalb er damit angefangen hat. Unabhängig davon glaube ich, dass ich jeden Aspekt seiner Frage in meiner Antwort behandelt habe. Betrachten Sie es als hilfreiches Beispiel.
Elder Geek
0

Ersetzen Sie das defaultsmit sw,noautoin der Zeile, die aus dem Swap-Eintrag in der Datei besteht /etc/fstab:

/dev/mapper/centos-swap swap  swap    sw,noauto        0 0

(Der Weg /dev/mapper/centos-swapist wahrscheinlich anders für Sie).

Jetzt checke die Ausgabe nach dem Neustart aus, dein Swap wird nie gemountet:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         100        3408           8         282        3483
**Swap:             0           0           0**
askb
quelle