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

30

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

Im Ruhezustand musste Linux (Ubuntu Jaunty) ausgetauscht werden. Ich hatte eine 100-GB-Ersatzpartition, also habe ich diese als Swap eingerichtet, aber damit bin ich nicht zufrieden. Es wird immer nur für den Ruhezustand verwendet (es ist immer viel RAM frei und das System wechselt nie) und es ist auch ein wenig groß für den Austausch. Außerdem werde ich es irgendwann für etwas anderes brauchen.

Wie kann ich in Ubuntu Jaunty ohne Swap-Partition in den Ruhezustand wechseln (Suspend to Disk)?

Hanno Fietz
quelle
3
Hier eine offizielle Anleitung von Debian über Ruhezustand ohne Tausch: wiki.debian.org/Hibernation/Hibernate_Without_Swap_Partition
Francesco
Obwohl Sie über viel RAM verfügen, kann das Austauschen auch zur Leistungssteigerung beitragen, wenn der nicht verwendete (und daher ausgelagerte) Anwendungscode zum Zwischenspeichern von Daten verwendet wird.
Michael Schmid

Antworten:

23

Ungetestete Idee: Warum erstellen Sie keinen Wrapper für s2diskoder welches Dienstprogramm behandelt die Suspendierung der Festplatte, die eine Auslagerungsdatei (im Gegensatz zu einer Auslagerungspartition) verwaltet, und löscht diese beim Fortsetzen?

  • 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

Das Wiederaufnehmen von Auslagerungsdateien ist möglich und auf kernel.org dokumentiert

Robert Munteanu
quelle
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 mit dem Blockgerät?
Hanno Fietz
In meinem Update finden Sie einen Link zur Dokumentation zum Fortsetzen von Auslagerungsdateien.
Robert Munteanu
8
Bitte, fügen Sie den Befehl hinzu chmod 0600 /swapfile. Eine weltweit lesbare Auslagerungsdatei ist eine große lokale Sicherheitsanfälligkeit.
user4035
2
Ich weiß, das ist alt, aber ich würde "abgeschnitten" anstelle von "dd" verwenden. Sie müssen eigentlich nichts auf die Festplatte schreiben.
Guido
4
Tatsächlich müssen Sie eine Sequenz von etwas auf die Festplatte schreiben, um die Datei mit abgeschnittenen Ergebnissen zu erstellen swapon: /swapfile: skipping - it appears to have holes..
hlovdal
9

Sie haben hier wahrscheinlich zwei Möglichkeiten,

  1. Betrachten Sie eine Auslagerungsdatei anstelle einer Auslagerungspartition
    • 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 Fortsetzen verlassen.

Update: Der Kommentar macht einen guten Punkt über langsamen USB-Ruhezustand.
Überprüfen Sie also die nummerierte Reihenfolge - das erste Schema enthält Notizen für den Ruhezustand mithilfe von Auslagerungsdateien.


Aus Neugier
würde ich gerne wissen, warum Sie in den Ruhezustand wechseln möchten, wenn Linux wie Ubuntu heruntergefahren und so schnell gestartet werden kann.
Ich rate,

  • Sie laden Ihren 8-GB-RAM mit einigen Anwendungen und lassen sie dort
  • oder Sie Wake-up-on-LAN

Aber ist das wirklich so? Oder haben Sie einen anderen Grund zum Winterschlaf?

Ich benutze ein USB-Boot-Ubuntu und immer heruntergefahren.

nik
quelle
2
Suspend to USB-Stick wäre so langsam .
Tadeusz A. Kadłubowski
6
Ich neige dazu, während der Arbeit viele Dinge zu öffnen, und ich mag es, alles zurück zu haben, wie es am nächsten Tag war. Ubuntu ist schnell zu starten (eigentlich scheint es mir schneller zu sein, als es wieder aufzunehmen), aber Eclipse, Firefox usw. könnten es nicht sein und andere Apps könnten ihren aktuellen Status beim Schließen nicht einmal speichern.
Hanno Fietz
2
@Hanno, mit Firefox können Sie Sitzungen auch bis zu Ihrer Bildlaufposition speichern. Save-and-Quite ist also großartig. Ich bin nicht sicher, was Eclipse kann.
Nik
3
Firefox merkt sich nicht, in welchem ​​Arbeitsbereich sich die einzelnen Fenster befanden. Daher muss der kleine PITA darauf warten, dass sie alle geladen werden, umverteilt werden. Es gibt auch keine Möglichkeit, den Status von Dingen wie Terminalfenstern wiederherzustellen.
Intuited
Mit diesem USB-Flash-Stick würde der Ruhezustand von 8 GB Speicher weniger als eine Minute dauern .
Intuited
4

Ja, aber nicht ohne Anstrengung. Es gibt 2 verschiedene Möglichkeiten, den Ruhezustand (Suspend-to-Disk) unter Linux zu aktivieren:

  1. Swap , der im Kernel enthalten ist
  2. tuxonice (ehemals suspend2) ist das nicht.

Tuxonice ist als Patch für den Kernel verfügbar und ermöglicht es Ihnen, das Suspend-Image in eine normale Datei zu schreiben.

Aus 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üssten Sie leider die für Jaunty verfügbaren Kernel-Patches abrufen und den Kernel selbst kompilieren.

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

Nagul
quelle
2
Nun, ich habe eine Reihe von Kerneln handrolliert (ich bin seit einigen Jahren ein Gentoo-Enthusiast), aber es gab einen Grund, warum ich zu Ubuntu gewechselt bin ...;)
Hanno Fietz
3

Wie Joel und Jeff im Podcast besprochen haben , ist es im Allgemeinen keine gute Idee, Swap auszuschalten - auch wenn es sich lohnen würde (was es nicht ist) -, der Speicherplatz ist heutzutage so unglaublich billig, dass Sie nichts kosten, wenn Sie ihn eingeschaltet lassen etwas. Sie können einen Auftritt für weniger als zehn Cent (das heißt Euro Cent) bekommen!

zitieren:

Atwood: Ich denke, dass jeder Geek irgendwann diesen Gedankenprozess durchläuft: Ich habe Tonnen und Tonnen von Speicher, vielleicht kann ich meine Auslagerungsdatei umdrehen. Ich habe tatsächlich einen Blogeintrag dazu. ... Die Pointe lautet: Es lohnt sich nie.

Hören Sie sich den Podcast an, um mehr über das Gespräch zu erfahren (ungefähr ab Minute 59), oder lesen Sie die Frage bei Serverfehler, die auf der Podcast-Seite verlinkt ist (Frage 23621). Sie sprechen über die Windows-Auslagerungsdatei, aber das Argument gilt auch für UNIX (obwohl sie den Speicher möglicherweise auf andere Weise verwalten).

0x89
quelle
1
Nun, es macht mir nichts aus, Swap zu haben, tatsächlich verwendet mein aktuelles Setup nur diese freie 100-Gig-Partition als Swap. Was mir allerdings etwas ausmacht, ist eine Swap- Partition . 100-Gig-Swap ist totaler Unsinn, und ich möchte keine winzige Partition nur für den Swap haben. Swapfile ist großartig für mich, dank Roberts und Niks Antworten, ich weiß jetzt auch, wie ich sie für den Winterschlaf verwende, also werde ich das verwenden.
Hanno Fietz
4
Was ist das Problem mit einer "winzigen" Partition? Btw. Ich würde eine 8-GB-Partition überhaupt nicht als winzig betrachten - ich habe jahrelang Linux-Installationen verwendet, die auf einer / -Partition ausgeführt wurden, die kleiner als diese war. Und der erste PC, den ich benutzt habe, hatte eine 20-MB-Festplatte.
0x89
1
Tatsächlich verwaltet Linux den Speicher auf eine völlig andere Weise als Windows. Sogar auf meinem alten Laptop mit 2 GB RAM-Swap wird es kaum gebraucht, 200 MB sind ausgelagert, es gibt den Maximalwert, den ich gesehen habe
vava
@vava: Vielleicht hast du recht, ich habe meine Antwort ein wenig angepasst. Aber die Tatsache, dass Sie 200 MB auf Ihren Swap ausgelagert sahen, unterstützt meinen Standpunkt.
0x89