Kann ich Linux ohne Swap-Partition in den Ruhezustand versetzen?

34673
Hanno Fietz

Ich hatte keine Swap-Partition auf meinem PC eingerichtet, weil a) ich über ausreichend RAM (8 GB) und b) große Festplatten verfügte, die ich nicht in kleine Teile zerhacken wollte, daher sind meine kleinsten Partitionen 50 GiB, und ich benutze diese bereits für die Betriebssysteme.

Nun, zum Überwintern benötigte mein Linux (Ubuntu Jaunty) den Swap. Ich hatte eine freie 100-GB-Partition, also habe ich sie als Swap eingerichtet, aber damit bin ich nicht zufrieden. Es wird immer nur für den Winterschlaf verwendet (es gibt immer viel RAM frei und das System wechselt nie), und es ist auch ein wenig groß für Swap. Außerdem werde ich es irgendwann für etwas anderes brauchen.

Wie kann ich in Ubuntu Jaunty ohne Swap-Partition in den Ruhezustand versetzt werden?

30
Hier ein offizieller Leitfaden von Debian über den Ruhezustand ohne Swap: https://wiki.debian.org/Hibernation/Hibernate_Without_Swap_Partition Francesco vor 9 Jahren 3
Obwohl Sie über viel RAM verfügen, können Sie durch das Austauschen auch die Leistung steigern, wenn der Speicherplatz nicht verwendeten (und daher ausgelagerten) Anwendungscodes zum Zwischenspeichern von Daten verwendet wird. Michael Schmid vor 6 Jahren 0

4 Antworten auf die Frage

23
Robert Munteanu

Ungeprüfte Idee: Warum erstellen Sie keinen Wrapper für s2diskoder welches Dienstprogramm Suspend to Disk behandelt, das eine Auslagerungsdatei verwaltet (im Gegensatz zu einer Auslagerungspartition) und diese beim Wiederherstellen löscht?

  • Erstellen Sie die Auslagerungsdatei: dd if=/dev/zero of=/swapfile bs=1024 count=8388608(8 GB)
  • Richten Sie die Auslagerungsdatei ein: mkswap /swapfile
  • Nur wenn Sie Suspend setzen müssen, können Sie es aktivieren: swapon /swapfile
  • Wenn Sie fortfahren, können Sie es deaktivieren: swapoff /swapfile

Die Wiederaufnahme von Auslagerungsdateien ist möglich und wird auf kernel.org dokumentiert

Ich hatte auch an eine Auslagerungsdatei gedacht, aber ich weiß nicht, wie ich das beim Start an den Kernel weitergeben soll. Kann ich "resume = / path / to / file" genauso machen wie ich es mit dem Blockgerät tun würde? Hanno Fietz vor 14 Jahren 0
Siehe mein Update mit einem Link zur Dokumentation zum Wiederherstellen aus Auslagerungsdateien. Robert Munteanu vor 14 Jahren 0
Siehe auch die Antwort von Nik unten für ein gutes Ubuntu-Tutorial, das die im Kernel.org-Link oben beschriebenen Informationen verwendet. Hanno Fietz vor 14 Jahren 0
Bitte fügen Sie den Befehl "chmod 0600 / swapfile" hinzu. Eine weltweit lesbare Auslagerungsdatei ist eine große lokale Sicherheitsanfälligkeit. user4035 vor 10 Jahren 8
Ich weiß, das ist alt, aber ich würde anstelle von 'dd' 'truncate' verwenden. Sie müssen nichts auf die Festplatte schreiben. Guido vor 10 Jahren 1
Tatsächlich müssen Sie eine Sequenz von etwas auf die Festplatte schreiben und die Datei mit abgeschnittenen Ergebnissen in `swapon: / swapfile: überspringen - es scheint Löcher zu haben. ' hlovdal vor 10 Jahren 3
9
nik

Sie haben wahrscheinlich zwei Möglichkeiten hier,

  1. Betrachten Sie eine Swap-Datei anstelle einer Swap-Partition
    • Verwenden Sie einen kleinen (im Vergleich zu Ihren Partitionsgrößen aber ausreichend großen Speicher) USB-Stick für die Swap-Partition

Was auch immer Sie tun, ich denke, ein swapoffund swaponnach dem Lebenslauf wäre nützlich.
Und da Sie den Swap nicht wirklich benötigen, können Sie ihn swapoffnach dem Lebenslauf verlassen.

Update: Der Kommentar macht einen guten Punkt zum langsamen USB-Ruhezustand.
Also in der nummerierten Reihenfolge nachsehen - das erste Schema enthält Hinweise für den Ruhezustand mit Swap-Dateien.


Aus Neugier
möchte ich wissen, warum Sie den Winterschlaf halten möchten, wenn Linux wie Ubuntu so schnell herunterfahren und starten kann.
Ich rate,

  • Sie laden Ihren 8-GB-RAM mit einigen Anwendungen und lassen sie dort liegen
  • oder Sie wachen über LAN auf

Aber ist das wirklich so? oder haben Sie einen anderen Grund zum Überwintern?

Ich benutze ein USB-Boot-Ubuntu und fahre immer herunter.

An USB-Stick anhalten wäre * so langsam *. Tadeusz A. Kadłubowski vor 14 Jahren 2
Ich neige dazu, viele Sachen während der Arbeit zu öffnen, und ich mag es, alles wieder so zu haben, wie es am nächsten Tag war. Ubuntu ist schnell zu starten (für mich scheint es schneller als der Lebenslauf zu sein), Eclipse, Firefox usw. sind jedoch möglicherweise nicht der Fall, und andere Apps speichern beim Schließen möglicherweise nicht ihren aktuellen Status. Hanno Fietz vor 14 Jahren 6
Mit @Hanno, Firefox können Sie auch Sitzungen bis zu Ihrer Bildlaufposition speichern. Save-and-Quite ist also großartig. Nicht sicher, was Eclipse tun kann. nik vor 14 Jahren 2
Firefox kann sich nicht an den Arbeitsbereich erinnern, in dem sich die einzelnen Fenster befanden. Daher müssen Sie sie neu verteilen, nachdem sie gewartet haben, bis alle geladen sind. Es gibt auch keine Möglichkeit, den Zustand von Dingen wie Terminalfenstern wiederherzustellen. intuited vor 11 Jahren 3
Der Ruhezustand der gesamten 8 GB Speicher würde mit diesem USB-Flash-Stick weniger als eine Minute dauern (http://www.codinghorror.com/blog/2012/11/a-ssd-in-your-pocket.html). intuited vor 11 Jahren 0
4
nagul

Ja, aber nicht ohne Mühe. Es gibt zwei Möglichkeiten, unter Linux den Ruhezustand (Suspend-to-Disk) zu unterbrechen:

  1. swswap, das im Kernel enthalten ist
  2. Tuxonice (früher suspend2), was nicht der Fall ist.

Tuxonice ist als Patch für den Kernel verfügbar und ermöglicht das Schreiben des Suspend-Images in eine normale Datei.

Von Wikipedia :

TuxOnIce (formerly known as Suspend2) is an implementation of the suspend-to-disk (or hibernate) feature which is available as patches for the 2.6 Linux kernel. It was formerly known as 'swsusp'. During the 2.5 kernel era, Pavel Machek forked the original out-of-tree version of swsusp (then at approximately beta 10) and got it merged into the vanilla kernel, while development continued in the swsusp/Suspend2/TuxOnIce line. TuxOnIce includes support for SMP, highmem and preemption. Its major advantages over swsusp are:  * It has an extensible architecture that allows for arbitrary transformations on the image and arbitrary backends for writing the image; * It prepares the image and allocates storage prior to doing any storage and accounts for memory and storage usage very carefully, thereby becoming more reliable; * Its current modules for writing the image have been designed for speed, combining asynchronous I/O, multithreading and readahead with LZF compression in its default configuration to read and write the image as fast as hardware is able; * It has an active community supporting it via a wiki, mailing lists and irc channel (see the TuxOnIce website); * It is more flexible and configurable (via a /sys/power/tuxonice interface); * Whereas the current swsusp (and uswsusp) implementations support writing the image to one swap device only, TuxOnIce supports multiple devices in any combination of swap files and swap partitions. It can also write the image to an ordinary file, thereby avoiding potential race issues in freeing memory when preparing to suspend. * It supports encryption by various methods; * It can store a full image of memory (resulting in a more responsive system post-resume), while uswsusp and swsusp write at most half the amount of RAM. 

Da es nicht im Standardkernel enthalten ist, müssen Sie leider die für Jaunty verfügbaren Kernel-Patches abholen und den Kernel selbst kompilieren.

Es gibt einige erweiterten Anweisungen hier, aber Sie könnten Robert Vorschlag ausprobieren möchten, bevor Sie diese Straße wandern nach unten, es sei denn, Sie ein alter Hase sind auf eigene Kernel - Images rollen.

Nun, ich habe eine Reihe von Kernels handrollt (ich bin seit einigen Jahren ein Gentoo-Enthusiast), aber es gab einen Grund, warum ich zu Ubuntu gewechselt bin ...;) Hanno Fietz vor 14 Jahren 2
3
0x89

Wie Joel und Jeff im Podcast besprochen haben , ist das Deaktivieren von Swap im Allgemeinen keine gute Idee - selbst wenn sich das lohnen würde (was es nicht ist) etwas. Sie können einen Auftritt für weniger als zehn Cent bekommen (also Euro-Cent)!

zitieren:

Atwood: Ich denke, dass jeder Geek irgendwann diesen Gedankengang durchmacht: Ich habe Tonnen von Speicher, vielleicht kann ich meine Seitendatei abschalten. Ich habe tatsächlich einen Blogeintrag dazu. ... Die Pointe ist: Es lohnt sich nie.

Hören Sie sich den Podcast an, um mehr über die Konversation zu erfahren (er beginnt ungefähr bei Minute 59), oder lesen Sie die Frage unter Serverfault, auf die auf der Podcast-Seite (Frage 23621) verwiesen wird. Sie sprechen über die Windows-Seitendatei, das Argument gilt jedoch auch für UNIX (obwohl der Speicher möglicherweise auf andere Weise verwaltet wird).

Nun, es macht mir nichts aus, den Swap zu nutzen, tatsächlich verwendet mein aktuelles Setup nur diese 100-Gigabyte-Partition als Swap. Was mir allerdings einfällt, ist eine Swap-Partition *. 100-Gig-Swap ist totaler Blödsinn, und ich möchte keine winzige Partition nur für den Swap haben. Swapfile ist großartig für mich, dank der Antworten von Robert und nik, jetzt weiß ich auch, wie man sie für den Winterschlaf nutzt, also nutze ich sie. Hanno Fietz vor 14 Jahren 1
Was ist das Problem bei einer "winzigen" Partition? Übrigens Ich würde eine 8-GB-Partition nicht für winzig halten - ich habe Linux-Installationen jahrelang verwendet, die von einer Partition lebten, die kleiner war. Und der erste PC, den ich benutzt habe, hatte eine 20 MB Festplatte. 0x89 vor 14 Jahren 4
Eigentlich verwaltet Linux den Speicher völlig anders als Windows. Selbst auf meinem alten Laptop mit 2 GB RAM-Swap wird kaum Gebrauch gemacht, 200 MB entladen sind dort der Maximalwert, den ich gesehen habe vava vor 12 Jahren 1
@vava: Vielleicht hast du recht, ich habe meine Antwort etwas angepasst. Aber die Tatsache, dass Sie gesehen haben, dass 200 MB zu Ihrem Swap ausgelagert wurden, unterstützt tatsächlich meinen Punkt. 0x89 vor 12 Jahren 0